MaRS232

Oh no, more silly nonsense. It was created for CSSCGC 2022.

MaRS232.MDR updated!

This "game" is designed for two ZX Spectrum machines each equipped with an Interface 1 and connected by RS232 link, with one Microdrive between them. (It was conceived to use the proprietary Sinclair Net protocol but alas that's not readily emulable so RS232 will have to do instead). We can emulate it using Fuse's IF1 and RS232 implementation*.

Loading the game

Here's the macOS zsh script I use to launch two instances of Fuse and connect them via a FIFO to simulate an RS232 link:

#!/bin/zsh mkfifo fuse.rx fuse.tx fuse --machine 48 --interface1 --microdrive-file MaRS232.MDR --rs232-tx fuse.rx --rs232-rx fuse.tx & fuse --machine 128 --interface1 --rs232-tx fuse.tx --rs232-rx fuse.rx rm fuse.rx rm fuse.tx

I've used a 48K and a 128K here just to tell them apart a bit more easily, but it would work just as well with two 48Ks. 16K isn't supported becuase of the memory needed to store and transfer the SCREEN$. I'm not sure about other RS232 interfaces, but they should work if compatible with the Interface 1. ZX Spectrum +2A and +3 are not supported.

Note Fuse doesn’t come with an Interface 1 ROM so you'll need to acquire that first. (Thanks to Andy for reminding me of this!) Either v1 or v2 should be fine, drop it into the same place Fuse keeps all its other ROMs. It should be named if1-2.rom.

  1. On the 48K Spectrum (which should have the Microdrive attached and the cartridge inserted) hit R for RUN then press ENTER
  2. Over on the 128K, drop into 128 BASIC and type LOAD *"b" then press ENTER. (You shouldn't need to interact directly with this Spectrum again, but the display must be visible).
  3. The two should communicate (borders should flicker black and white).
  4. You will be asked whether you are using real hardware or not (i.e. emulation). It just corrects for key-repeat delay really. Enter n for "no" or any other key for yes.
  5. The 48K Spectrum is Mission Control. This Fuse window should have focus. Keystrokes will be automatically transmitted to the other Spectrum.
  6. The 128K Spectrum is the Mars rover, it will await commands and display information on the screen.
  7. Please note: interplanetary communication is hard! I bet even NASA need to turn it off and back on again sometimes. If the Mission Control jams up, just BREAK into the program and RUN it again. This is a fun ACCURATE SIMULATION meta-minigame and NOT a BUG.

* It's not quite the same as a real Interface 1 RS232 connection (it seems to do some buffering for example) so you'll be asked whether you are using real hardware or not, which just introduces a delay as a simple way to debounce the keystrokes before they are transmitted. My original solution to this was to wait for an ACK byte to be sent back from the remote Spectrum. This worked under emulation but not on the real devices. Gah! Hence the ugly option of just asking you at the start.

Playing the game

Demonstration


Thanks to the Library of PCG Clip Art - Disc 30 for the rocket graphic.

Yon wee robot is from inspired by Alien 8.


Wiring diagram

Note this is not a standard DE-9 null modem.

An RS232 cable is available from Sinclair Research. For details of how to obtain this cable, see the software and peripherals catalogue included with the ZX Interface 1. Alternatively you can wire up your own cable follows:

wiring diagram
Wiring diagram. TX and RX (pins 2 and 3) must be crossed over, as must DTR and CTS (pins 4 and 5). Earth/ground (pin 7) must be connected.

In memoriam

Phil's cartridge No.2, RIP