Retro-gaming fun with a joystick: new software release (v1.6.0)

264 views
Skip to first unread message

TheHighNibble

unread,
Apr 13, 2020, 3:27:26 AM4/13/20
to IMSAI 8080esp
April 2020 Release - 2


See the release notes for details.

TIP: when trying to play Spacewar for the first few times, it is worth reading the documentation and learning how to turn off the sun.



John Kennedy

unread,
Apr 13, 2020, 10:38:02 AM4/13/20
to IMSAI 8080esp
Ooo the Easter Bunny has arrived!

John Kennedy

unread,
Apr 13, 2020, 3:44:25 PM4/13/20
to IMSAI 8080esp
I've been playing Spacewar with myself. It's pretty cool - must have been mind-blowing when it first came out!
I found the docs for Sparewar, but can't quite work out how to turn off the sun.

TheHighNibble

unread,
Apr 13, 2020, 4:27:54 PM4/13/20
to IMSAI 8080esp
Well the manual says...

OPTIONS
Several options may be selected when the game is restarted.
- Hold down the switches corresponding to the desired options on
one console and depress and release switches 2 and 3 on the
other console
Switch - Option
2 -Eliminate the sun and its gravity
3 -Cause the sun to be lethal.
4 -Eliminate the starfield.

Sounds easy enough :-)

John Kennedy

unread,
Apr 13, 2020, 4:31:12 PM4/13/20
to IMSAI 8080esp
Sounds easy - then you wonder what a console is, what buttons are 2 and 3, how you can press them AND the buttons on a second console etc. If you tell me you’ve done it, I’ll keep trying between meetings. :)

TheHighNibble

unread,
Apr 13, 2020, 4:46:34 PM4/13/20
to IMSAI 8080esp
Yes, I’ve done it. Do you want to know the magic incantation?

Hints:
A “console” is a joystick/gamepad
Button 2 is X, Button 3 is B (as per the release notes)
The other clue you need is also in the release notes.

John Kennedy

unread,
Apr 13, 2020, 5:24:15 PM4/13/20
to IMSAI 8080esp
no - no spoilers!

John Kennedy

unread,
Apr 13, 2020, 9:43:06 PM4/13/20
to IMSAI 8080esp
Ah, you swapped the button for switching between joysticks. So I'm a little closer now.

Screen Shot 2020-04-13 at 6.41.44 PM.png


I definitely need to read up on programming with the Dazzler. If I can write a few Forth words to display something I'll consider that a win.


On Monday, April 13, 2020 at 1:46:34 PM UTC-7, TheHighNibble wrote:

TheHighNibble

unread,
Apr 13, 2020, 9:59:42 PM4/13/20
to IMSAI 8080esp
The keyword you are looking for in the release notes is "latch".

John Kennedy

unread,
Apr 13, 2020, 10:30:54 PM4/13/20
to IMSAI 8080esp
That was painful :-)

I do enjoy the fact the game uses the Programming Output LEDs to keep score.

Screen Shot 2020-04-13 at 7.30.13 PM.png

John Kennedy

unread,
Apr 13, 2020, 10:55:30 PM4/13/20
to IMSAI 8080esp

Using the figForth disks that Udo published last week, I can now turn on the Dazzler display and switch between its low res / "high" res, mono and color modes.


If you run this, it will loop until you flip up only the left-most switch (15). But flipping up 14 to 12 will change the display (or turn it off).


: DAZZLER_ON 128 14 P! ;

: DAZZLE DAZZLER_ON BEGIN 255 P@  DUP 128 = IF ABORT THEN 15 P! 0 UNTIL ;

Udo Munk

unread,
Apr 14, 2020, 2:10:51 AM4/14/20
to IMSAI 8080esp
On Tuesday, April 14, 2020 at 4:55:30 AM UTC+2, John Kennedy wrote:

Using the figForth disks that Udo published last week, I can now turn on the Dazzler display and switch between its low res / "high" res, mono and color modes.


You can do such stuff with the VIO too, the character set includes pseudo graphics and it's similar to Trash-80. 

Martin Reinhardt

unread,
Apr 14, 2020, 3:16:43 AM4/14/20
to IMSAI 8080esp

IMSAI ran 24/7 for 5 days without issues, but after I updated it to 1.6.0 It's not booting not even AP mode. I tried all combination of reset I could think of and then I thought maybe flash the esp, but I get the following error:

Any ideaw of what I am doing wrong:

Serial port /dev/tty.SLAB_USBtoUART
Connecting........_
Chip is ESP32-PICO-D4 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, Embedded Flash, Coding Scheme None
Crystal is 40MHz
MAC: d8:a0:1d:69:af:50
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Warning: Could not auto-detect Flash size (FlashID=0x0, SizeID=0x0), defaulting to 4MB
Compressed 8192 bytes to 31...
Wrote 8192 bytes (31 compressed) at 0x0000d000 in 0.0 seconds (effective 7513.0 kbit/s)...

A fatal error occurred: Timed out waiting for packet header

TheHighNibble

unread,
Apr 14, 2020, 3:40:00 AM4/14/20
to IMSAI 8080esp
You can't flash the ESP32-PICO-KIT module while it is connected to the IMSAI 8080 PCB.

Try removing the ESP32-PICO-KIT module and flash it over the USB cable while it is on its own.

Martin Reinhardt

unread,
Apr 14, 2020, 3:53:34 AM4/14/20
to IMSAI 8080esp
Thank you, the flashing worked after removing esp32 :-). I will check with a serial cable tomorrow if i can see why it's not powering on/startup.

Colin Little

unread,
Apr 14, 2020, 4:20:43 AM4/14/20
to IMSAI 8080esp
Expedited the update but extremely frustrated .... I need to search out a joystick!!!
All working great thank you !!!


John Kennedy

unread,
Apr 14, 2020, 10:11:52 AM4/14/20
to IMSAI 8080esp
I'll have to look at VIO programming too.

I was temporarily stuck in my Forth/Dazzler experiments as I'm not sure what location in memory would be safe to move the screen RAM too - or how to ask Forth to reserve memory at a specific address.

Udo Munk

unread,
Apr 14, 2020, 12:04:41 PM4/14/20
to IMSAI 8080esp
On Tuesday, April 14, 2020 at 4:11:52 PM UTC+2, John Kennedy wrote:
I was temporarily stuck in my Forth/Dazzler experiments as I'm not sure what location in memory would be safe to move the screen RAM too - or how to ask Forth to reserve memory at a specific address.

If you look at the source code there is a define EM, top of memory, which I set to A000H. So you can
use memory from there up to the BDOS. You can overwrite the CCP, but not BDOS and BIOS, as
usual.

John Kennedy

unread,
Apr 14, 2020, 1:18:06 PM4/14/20
to IMSAI 8080esp
Perfect.

I can now switch on the Dazzler and move screen RAM to memory address hA000 with a 208 14 P!, and then writing to it seems to work as expected, e.g.

255 40960 !
0 40960 !

Now I see from the docs that the memory mapping isn't entirely straightforward, but I've written games for the ZX Spectrum so I'm no stranger to that.

A Forth word to plot at X,Y would be my next goal. Thanks!

Martin Reinhardt

unread,
Apr 14, 2020, 10:06:12 PM4/14/20
to IMSAI 8080esp
It's alive again! It appears a bad solder contact on the microSD card reader caused this not starting up issue. So it was pure coincidence and had nothing to do with the upgrade, sorry.

John Kennedy

unread,
Apr 15, 2020, 2:22:45 AM4/15/20
to IMSAI 8080esp
Ok that's enough for one day.

Screen Shot 2020-04-14 at 11.19.38 PM.png

Udo Munk

unread,
Apr 15, 2020, 2:56:21 AM4/15/20
to IMSAI 8080esp
Cool, it draws :)

Instead LOAD 102 use --> to load the next screen independent on what it is. Helps if you need
to move screens for making room later.

Udo Munk

unread,
Apr 15, 2020, 8:22:00 AM4/15/20
to IMSAI 8080esp
Updated to 1.6.0 worked nicely. The tty seems to work better and smoother, I have set the conf value to 33
as suggested. Nice joystick icon, now I don't have some sort of game controller to play with the thing, oh well.
I'm missing the additional manuals though.

Do not forget to update your CP/M 3 disks after update to 1.6.0 !

Udo Munk

unread,
Apr 15, 2020, 8:29:12 AM4/15/20
to IMSAI 8080esp
I have manually uploaded the missing manuals by drag and drop of the .pdf's into the manual screen. It will only let me upload the .pdf's and not the neato .png images, wondering how to get them in there?

TheHighNibble

unread,
Apr 15, 2020, 10:25:05 AM4/15/20
to IMSAI 8080esp
Yes, this is a short fall in the update process. The "update.bin" file that I provide currently only includes the new 'www' path content, but checking the code I wrote for this I see it is possible to include updates to any path on the micro-SD card.

I don't like the idea of including disk images in the update this way, for fear of overwriting a disk image that you have modified. But it should be safe enough to include new MAN: content (path: /imsai/manual).

Right now you have 3 options: 
  1. mount the micro-SD on a PC and copy the .png files yourself
  2. wait  about 12 hours (until my morning, when I trust myself more to get it right :-) ) and I will post an update.bin file here that just updates the content of the MAN: with the new documents and their icons (.png files).


Udo Munk

unread,
Apr 15, 2020, 10:47:57 AM4/15/20
to IMSAI 8080esp
Ah OK, also tried building my own update.bin with imsai/manual it it, but didn't work.

I'll just wait, no need to hurry, I can read the PDFs on a modern computer, but sure would be nice
to have it in the replicas manual library too.

Thanks in advance.

TheHighNibble

unread,
Apr 16, 2020, 5:37:43 AM4/16/20
to IMSAI 8080esp
The attached update.bin file will update only the new/updated MAN: contents for the v1.6.0 release.
It contains:
CP-M 80 Kermit.pdf
CP-M 80 Kermit.pdf.png
Cromemco D+7A IO.pdf
Cromemco D+7A IO.pdf.png
Cromemco Dazzler Games.pdf
Cromemco Dazzler Games.pdf.png
Cromemco JS-1 Joystick.pdf
Cromemco JS-1 Joystick.pdf.png
Memon80 Users Manual.pdf
Memon80 Users Manual.pdf.png 

update.bin

Udo Munk

unread,
Apr 16, 2020, 6:13:27 AM4/16/20
to IMSAI 8080esp
On Thursday, April 16, 2020 at 11:37:43 AM UTC+2, TheHighNibble wrote:
The attached update.bin file will update only the new/updated MAN: contents for the v1.6.0 release.

This works, many thanks for the update. 

Kurt Hamm

unread,
Aug 13, 2022, 4:56:00 PM8/13/22
to IMSAI 8080esp
ok.  I have been beating my head against the wall on tis one for a while.  I get that the latch button is the left shoulder.  My understanding is that you press and hold X, then press latch, then press and release X and B.  I have restarted the game and the two ships get quickly draw to the star and are destroyed.  The console moves I am making have no effect. 

I just want to turn off gravity.

HELP!  I am an IDIOT!

Kurt

TheHighNibble

unread,
Aug 13, 2022, 11:44:29 PM8/13/22
to IMSAI 8080esp
OK, reading the Cromemco Dazzler Games manual says: To eliminate the Sun (and its gravity) hold down button 2 on one joystick, while resetting the game by pressing buttons 2 & 3 simultaneously on the other joystick.

So to achieve that with one gamepad - 
  • hold down 'X' (button 2) on the game pad (let's say you are currently joystick 1)
  • while this is down - tap the left-shoulder button to switch to joystick 2  - this will also latch button 2 for joystick 1
  • now press both 'X' (button 2) and 'B' (button 3) to reset/restart the game
  • I'd tap the left-shoulder again at this point to return to joystick 1 and release the latched button
I have't got my IMSAI8080 setup to test this as I'm madly trying to finish the firmware for the Cromemco Z-1.

Report back if you get it to work. Shout even louder if you don't.

Kurt Hamm

unread,
Aug 14, 2022, 10:45:54 PM8/14/22
to IMSAI 8080esp
I was able to figure it out, but my buttons were different.  I attached a picture of the console I am using.  X works for firing torpedoes.  I found that the green "y" button corresponds to switch 2 and red "A" works as switch 3.  When I use these buttons, they work just like the manual says and I can remove the sun and gravity.  I am not sure if this is just my gamepad.

20220814_212824.jpg

Reply all
Reply to author
Forward
0 new messages