Sunday 13 August 2017

1040 STE : Revival : CosmosEx

CosmosEx

Earlier last year (which seems a *long* time ago now, for many reasons...) I got my hands on a CosmosEx device from Jookie, and since then, when time and geopolitical angst has allowed, I've been really enjoying using it with the old Atari 1040 STE.

It's a really powerful little device, but can be tricky to get to grips with, so I thought I would detail how I've put mine together and some of the things I've done with it. 

Installation and ACSI extension

First of all, I had a quandary about how to install it. I'm really *really* reluctant to make any modifications to an original ST case, so I wanted to try to find a solution that didn't involve any amateurish cutting on my part.

The unit fits neatly into the internal floppy drive space. It uses the floppy's molex power connector, and the existing floppy ribbon cable plugs straight in. That's the easy part.

The ACSI cable that allows for hard disk emulation, as well as all the other really clever stuff, either has to be routed out to the rear external ACSI port, or soldered directly to the motherboard internally. The latter was a non-starter for me and I didn't want to have to cut a notch or hole in the back of the case to route the cable, as suggested in the manual and other places.

Instead, what I did was to put together an extension cable, allowing me to route the cable out of the floppy drive slot at the side, and round the back to the ACSI port. In my machine, at least, there's just enough room between the CosmosEx and the case for the ribbon cable to squeeze through.

I've seen other users who have cut away the casing at the side, leaving a big rectangular gap, but I found I could access all the ports I needed on the CosmosEx without doing this. Two USB ports are obscured, but I can live with just the other two.

The ACSI extension cable was a little tricky to source parts for. I found a female-to-female 20 pin ribbon cable, but this needed a gender changer of some kind to connect with the supplied 20-pin female to DB-19 cable. I thought that some header pins would do the trick, but the ones I ordered were a millimetre or so too short! In the end I cut up an old floppy drive ribbon cable and laboriously soldered two male 20-pin JTAG header connectors to either end. Not ideal, but it works!

With it all working and at home inside the case, the next thing was to set it up for the various configurations I would need. I won't go through the basic initial setup, as there are some excellent guides on this by Jookie, DrCoolZic and others. Here are my configurations, though:

Working configurations

SD card

The SD card hard drive is the most straightforward to set up and use. First of all I created a floppy disk image with the ICD Pro hard disk driver and tools and then formatted and partitioned my SD card.

There's a good tutorial here, so I won't go over this again.

Once the SD card was ready, I set: 
ACSI 0 as SD Card
ACSI 1 as CE_DD
in the CosmosEx configuration tool.

Booting it this way gives me drives C to J for my SD card partitions and then CE_DD (CosmosEx Disk Driver) provides O for the CosmosEx tools drive (for accessing the configuration tool and other bits and bobs) and with L, the drive letter for USB sticks.

Using a USB thumb drive I was able to copy across all the HD-installable games and tools I needed. Awesome!

On the SD card, I have CE_DD.PRG in my AUTO folder. This does the same job as having CE_DD in the ACSI chain, but I like to have the latter just in case something happens to my SD card, leaving me unable to access the configuration tools at all.

There seems to be some confusion about what should be in the AUTO folder. Apart from CE_DD.PRG, I also have CE_STING.PRG (see below) but I also use Super Boot 8.1 so that I can pick and choose between these and others, depending on how I feel :)

Floppy games (no ce_dd)

Using the floppy disk emulation to load bootable games (what else?!) proved to be a bit trickier to get going. With floppy disk games, you really don't want to be using up valuable memory with hard disk drivers and the like, so booting from the A: drive before these kick in is what's required. Sometimes, though, menu disks' 'anti-virus' bootsectors seems to get in the way of things - they'll display first.

The most reliable way to configure this, I've found, is to alter the CosmosEx config, so that:
ACSI 0 is CE_DD
all the other ACSI slots are empty
Then, insert the floppy, reboot and mash the 'A' key so that the system boots from the floppy before anything else is loaded. It works most of the time, but some menu disks are a bit temperamental.

Again, I could just clear the ACSI slots entirely, but there's always a danger of not being able to access the configuration tools (say, if the network doesn't come up) if CE_DD isn't there at all.

HD image file on USB

Last year I opened a thread in the Atari-Forum, in the CosmosEx section, suggesting a useful feature (for me, at least) - being able to mount hard disk image files.

There were a few reasons for this. I thought it would be interesting to try out some of the files I've seen floating around on websites and forums, such as Minix, ST Mint and others which people have put together containing lots of hard disk-installed games, without having to use a new SD card each time.

Mainly, though, I wanted to be able to experiment further with a system I'd been building in the Hatari emulator, and I liked the idea of being able to move the same hard disk image file back and forth between the real hardware and an emulator.

Very kindly, Jookie and the team implemented this feature, with a nice interface in the configuration utility.

My HD image

My hard disk image file has 4 partitions and the main partition boots into Geneva and Neodesk 4. The second partition contains some files and applications, and the third has emulators which run on the ST. The final partition is a Mac formatted partition for Mac emulation under Spectre GCR! More of that later.

One of the main reasons for running this system on an image file is because Spectre GCR can only run on hard disks which contain four partitions or less, and the last one must be the Mac one. On modern SD cards or USB sticks this would mean a lot of wasted space!

ACSI Configuration

ACSI 0 is CE_DD
ACSI 1 is Raw Image

Boot process

  1. Cold boot and allow CE_DD to boot from 'O'. Access the configuration tool and reset the HD image path in settings (the internal mount point occasionally changes between /mnt/sda1 and /mnt/sdb1, especially if you are plugging and unplugging the USB stick, so best to make sure it's right)
  2. Reset the ST
  3. Hit 'C' key so that the ST boots from drive C before CE_DD is loaded (I keep CE_DD in the chain so that if it all goes wrong - and that has happened to me - I can go back and allow it to load so that I can access the configuration tools)

It works really well, although it did take me a long time to figure out the processes above, and what was required for them to work each time.

Other things I've tried

SpectreGCR

'This is not a Macintosh disk' errorHere are a few tips to get this working:

Disable the floppy drive in the CosmosEx config tool (it causes a disk error on starting up the Macintosh otherwise) Enabling the floppy drive once booted into System 6 results in 'This is not a Macintosh Disk' and a flashing A which effectively halts the system.

Mac OS 6.0.8 running on an Atari STE But, we can use emulators (Mini vMac and Hatari) on a PC or Mac to transfer Mac files over to the image file and then mount on the ST. At the moment, the only reliable way I've found to do this is using 400Kb floppy images which can be read on both, so anything bigger has to be broken down into chunks. I'd love to hear about a better way that works!

Within the Spectre application (I'm using 3.0), before booting into System 6, select the Mac partition so that's it's ticked and make sure to also tick 'Automount HD'.

The Macintosh system looks great on the Atari SM124 high res monitor, and if I can find an easy way to transfer files across I think this will be a lot of fun.

Minix 2

Various disk images for this system are available from here.

Configuration:
ACSI 0 is Raw Image
ACSI 1 is CE_DD (just in case!)

It boots fine, although slowly. I'm not really sure it has any useful purpose, but it was fun to see it boot!

ST_Mint 0.7

Disk image available here.

Works fine with the same ACSI configuration as my own HD image:
ACSI 0 is CE_DD
ACSI 1 is Raw Image
Remember to mash the 'C' key before CE_DD gets loaded!

Again, I'm not really sure what to do with it, but it looks lovely :)

FakeSTinG

If you've read my previous posts about getting the Mega ST up and running and connected to the Internet, you'll understand why I was interested to hear about the networking possibilities of the CosmosEx. Because the Raspberry Pi inside the CosmosEx is already connected to the network, it makes sense to allow the ST to piggyback on this connection rather than have to fiddle around with extra hardware.

The provided 'fakeSTinG' driver has to be loaded in the AUTO folder, so I've set up a separate Super Boot configuration which allows me to choose whether to load it or not.

Once loaded, any applications which support STinG should use the CosmosEx's network connection.

It works really well, but one thing is keeping me from using it much so far. For some reason, the telnet application I use seems to think the 'S' key is being held down, so it's impossible to use any telnet BBS's. I haven't managed to work out whether the fault is with my ST's keyboard (it's possible, some keys on the left-hand side don't work properly any more) or if something's up with the network stack. More investigation required...

Remote configuration


The CosmosEx has a lovely web interface, so you can remote control the Atari mouse and keyboard, change settings and upload floppy image files to the floppy disk emulator. Unfortunately, I've had a few problems where occasionally the device doesn't pick up an IP address from my router (quite possibly the fault of my router, rather than the device!).

If the configuration utility is accessible on the 'O' drive on the ST, the solution is to launch the utility, then press F8 to drop into the CosmosEx's Linux console and type 'ifup eth0'. This seems to kick the dhcp process into life and the device will pick up its IP address.

As I explained above, if CE_DD isn't loaded and can't be accessed, and the network isn't up, then you can be in a pickle. At that point the only way to reconfigure the ACSI chain is to open up the ST, pull of the CosmosEx, hook it up to an HDMI monitor and USB keyboard and then log in to the internal Raspberry Pi. Not fun!

Onwards

There are lots of other potential features/uses for the CosmosEx, including printer support, which would be really exciting if they can be implemented. Jookie has done an amazing job putting together the device and the software it comes with, and it's to be hoped that he and the community will continue to develop and enhance it.

I'm sure I'm not doing everything 100% right, so if you've any comments, let me know below!