A few weeks ago I acquired a computer I never had the chance to play around with when it was new, an Atari Mega STE. It’s the culmination of Atari’s 16 bit line of computers, very compatible with the ST(E) range yet much more expandable, usually coming with a SCSI adapter and HD (1.44MB) floppy support. Besides the expandability, it can run at 16Mhz, with cache, compared to 8MHz for the rest of the ST(E) computers. It also has a socket for a 68881/68882 FPU.
However, a few very early Mega STEs didn’t come with 1.44MB floppy support, and there aren’t really any Atari dealers left if you want to sort that out – or for that matter add the logic chip needed for the FPU. So, during the last few weeks, I’ve sorted out what needed to be done to get the machine “up to spec”.
1) I found a wonderful guide over at D-Bug’s site on replacing the (VERY LOUD!) PSU fan with something almost completely silent.
2) I realized the mythical Epson 340 floppy drive (Atari’s HD drive of choice) was also sold under the HP brand as Hewlett Packard D2035-60011, and snagged two quite cheaply off Ebay. The big benefit of using the Epson is that you can transplant the eject button and faceplate from the old 720KB drive and thus no modification to the casing is needed.
3) After some searching I found GAL files for both 1.44MB floppy support and the FPU support, and thanks to a fellow retro computing enthusiast (hi joska) I had both chips programmed. See below for more detail.
4) I figured out that there was a cheap and easy replacement for the original RTC battery – see separate post.
5) TOS 2.06. Yes, my machine came with 2.05. This was by far the easiest part ..
I really only bought the machine to be able to test compatibility with my software, I already have both a very tricked out STE as well as a heavily upgraded Mega ST, but I’m getting to appreciate the Mega STE more for every day. Maybe I need to have three different Atari models at my desk at all times?
Additional details for the curious:
FPU upgrade. As can be seen in Atari’s official installation manual most motherboards come with a jumper W3 that should be opened when you add an FPU. My motherboard didn’t, since it’s an older revision. According to the manual there should then be a resistor on the bottom side of the motherboard that you need to remove. At first I thought mine had already been patched, since a resistor was placed in the socket topside – but due to needing to do something else on the bottom side later (see below) I found out there indeed was a resistor there as well. Remove, insert the C301903 GAL, insert FPU (a 68882 in my case), test with Gembench 4.03 and everything’s fine.
HD floppy upgrade. After purchasing the Epson 340 (HP version) and transplanting the faceplate and eject button, I replaced the C301901-001 PAL with the newly programmed C301901-002 GAL code. See Atari’s official manual for details. Naturally my motherboard was again of the very old revision indicated and there was no continuity between U7 (the CPU) pin 32 and UA2 (the GAL) pin 19. This was why I had to turn over the motherboard and make that patch. After that all that’s needed is to change dip switch number #7 to on and test the new HD floppy support. Recalling common knowledge from way back then I didn’t bother to exchange the floppy controller to the AJAX model, since it was a WD1772-0202. Other WD-models might be more of a hit’n’miss whether they can handle 16MHz or not.
This weekend is a long weekend in Sweden – and of course I’m away from home, hacking away at the infrastructure I’m far away from. During that hacking I needed to change a mapped port in my router, and suddenly realized I couldn’t. I use the latest Airport Extreme (it really has the best performance, throughput as well as wireless stability) and the only machines I remote into are Linux (Ubuntu 16.x) based.
Conundrum. To begin with I feel this is quite lazy of Apple – they have software for not only Mac and iOS but Windows as well. My previous home server was indeed a Mac (Mac Mini, 2007 model) but since Apple no longer supports it with security updates I had to change. Linux feels more future proof. But I digress.
There’s apparently an old Java based library to interface with Airport Extremes, but not only does it rely on outdated Java versions, but it’s also very limited in what configs you can change with it. The other alternative is of course to see if Wine works.
Which it does. However, I did not get it to work at all first – nothing happened after installation when I tried to run the config app. Luckily someone else had already figured out that if you’re on 64-bit (and let’s face it, we all are today) you need to explicitly use Wine in 32-bit mode for the Airport Extreme config application to work.
Tada! Port mapping changed.
This last weekend me and many others were participating at the third incarnation of the STNICCC Atari ST conference. The first and original one was held in 1990 – where sadly I didn’t attend – and the second one was held as a reunion in the year 2000. Back then they joked about meeting up again in the far far away future of 2015.
… and that happened. Me and two others from my old demo crew had written a brand new demo that we showed at the demo competition, and additionally I had been asked by the organizer to do a talk on the latest findings with regards to two of the Atari ST’s more magical demo tricks – overscan and sync scroll.
The talk was recorded, and I’ve uploaded a version where I’ve tried to clean up the audio to Youtube. My slides (even the final version which I was unable to use during the presentation) can be found in the video description.
update 2015-12-31: I mention in the talk that I will release source code showing how you can detect the wakestates yourself. Now done. Code and pre-built binaries here.
update 2016-09-09: Link updated with fresh build.
A few weeks ago I spent some time with the excellent sc68 software written by Benjamin Gérard (Ben/Overlanders). It’s a suite of software that can faithfully reproduce the workings of the YM2149 sound chip in the Atari ST and convert/play songs made for it. Additionally, which was the reason I took a look at it, Ben had made a VLC compatible plugin.
Since the Mac sorely lacks a competent playlist capable Atari ST music player (XSC doesn’t do playlists, Audio Overload isn’t fully compatible) I was really interested to see if the *nix support in sc68 was enough for me to be able to compile a working plugin for OS X as well.
It was. Enjoy. (I am! Thanks Ben :))
It’s somewhat easy finding modern software able to read ancient data formats (note, “somewhat”). It’s often more difficult finding the opposite – conversion from modern formats to older ones.
When I’ve wanted to edit graphics using modern software (GIMP) and convert it to Atari ST I’ve so far used the excellent Netpbm package. The steps have involved converting my image in GIMP to use a colormap of suitable size, save the image as a .ppm file and then use ppmtopi1 to (finally) get an Atari ST compatible low resolution image in “Degas” format, a popular image editor back then.
This weekend I grew somewhat tired at all those steps – and additionally I wanted to convert an image to the Atari ST medium resolution format (.pi2). There’s no such application in the Netpbm suite.
It’s not completely plug’n’play, but here’s a link to PNGconv, a project I just published to Github. It’s a Java program that takes any input format Java understands (JPG, BMP, PNG, GIF .. ) and outputs as Atari ST low/medium/high (.pi1/.pi2/.pi3).
I’m probably the only one who’s ever going to use it, but you know what they say about programmers. We’ll happily spend hours now making sure we’re spending “less” hours somewhere down the road ;)
-You’re getting a 3D printer? Why – what will you use it for?
-Oh you know, it’s handy to have around when stuff around the house breaks down. Making spare parts, repairs, stuff like that.
I’ve seen it lots of times. I’ve said it more than a few times leading up to when I purchased my own 3D printer. And finally it came true. Well, almost. Apparently when me and my sister, with families, visited our parents recently they felt the coffee machine needed a good cleaning. However, either because of the dishwasher or just due to age a piece of plastic holding a metal spring developed a crack – making the drip stop quite ineffective.
A perfect opportunity to show how useful a 3D printer can be around the house – wouldn’t you say? It also looked quite easy – there was plenty of room around the actual plastic component to force a printed holder, a belt of sorts, onto it. After careful measurements while I was there, which turned out to be in error, followed by renewed measurements by my father, I sent the printed part by postal mail earlier this week. And tonight I got the following picture.
The piece fits perfectly and the drip stop is back in action. Score one for the 3D printer – a few hundred more of these repairs and it’ll have paid for itself! ;)
Legend: Metal = spring, black plastic square = original & cracked, white square = newly printed part
It’s retro computing time again!
As part of my quite extensive rebuild of one of my Atari STE machines I want to have both an HxC SD floppy emulator as well as the original floppy disk drive mounted internally in the machine at the same time. While that in itself is just a question of making a cable that supports both, another problem quickly arises. In most cases you would want the machine to boot off the HxC (drive A:) and the internal floppy would then be drive B:. However, in some cases there’s clearly a point in booting off the internal floppy instead – and for that it has to be drive A:.
In real Shugart floppy speak this amounts to the drive select signals, DS0 and DS1. On a modern ST both are available on the internal cable, and one (DS0) on the external. What we want is obviously to mount a switch that will swap these two signals at will.
This is a solved problem. DS0 originates from pin 20 of the YM 2149 sound chip (really!) and DS1 is on pin 19. Cutting these two pins and then soldering two cables from the motherboard to the middle pins of a DPDT (dual pole, dual throw) switch and two cables from pin 19 and 20 to one side, crossed over to the other side, will do. It’s also possible to achieve a swap between an internal floppy and an external drive without cutting pins – some prefer to avoid that – but it won’t swap the two internal signals.
Yesterday I really wanted to avoid cutting pins – but at the same time I needed a way to switch not only internal and external, but the two signals on the internal cable as well. I thus had to innovate a bit, and this post details the result. All pictures from a regular STE – I haven’t looked into what’s different on a regular ST or Mega model.
This is our area of interest – before any modifications have been done. Pin 20 and 19 of the YM 2149 soundchip are clearly visible (upper left of the chip from this angle) – and you can also see that pin 19 can be traced to a via. There’s no visible trace from pin 20 – leading us to conclude that it’s on the bottom side of the motherboard. Also note the three solder points named W300 and W301 respectively (square solder pad is pin 1 on each) – these are very much involved in what we want to do. DS1, pin 19, is available on W300-1 and DS0, pin 20, is available on W301-1. We see that W301-1 can be traced to a via just below it as well.
Turning over the motherboard we can see that pin 20 is indeed connected to the same via we just traced from W301-1 – but it’s also traced to another via on the other side of the chip! This second via is found topside at the ‘C’ in ‘C113’. With this knowledge we can now conclude that if we do not want to cut the actual pins 19 and 20 of the sound chip, we have a few cuts to make to traces on the motherboard. We must cut both traces originating from pin 20 on the bottom side of the motherboard, before the vias, as well as the trace to the via topside from pin 19.
Make sure to measure resistance with an Ohm meter to know when you’ve cut through the traces, and don’t cut off anything else. There’s plenty of space on the bottom side of the motherboard, a bit less topside.
Once we’ve done these cuts, we’ve effectively severed the connections of the originating signals on the sound chip pins from where they go on the motherboard (internal cable as well as external port). However, we’ve also severed the connection between the two different directions pin 20 went off to – so we have to repair that topside. The easiest way is to solder a wire between the vias we just traced it to.
We also have to mount the wires to our switch, of course. We pick up the signals directly from pin 19 and 20 – to the end points of our switch (crossed over at one of the sides). We then solder wires from the middle pins of the switch to W300-1 and W301-1. And we’re done.
This will switch not only the signals on the internal cable – but also swap internal and external. It’s effectively exactly the same as what’s achieved by cutting the pins off the chip as described in many places on the web.
So why didn’t I just do that?
Well. I seem to have misplaced my side cutter. So .. there. Enjoy.