Can't get the MITS Programming System to work

123 views
Skip to first unread message

Magnus Olsson

unread,
Jun 9, 2021, 4:02:19 PM6/9/21
to Altair-Duino
I finished building my kit on Monday night and have been trying out various things since then, from playing Kill the Bit to booting CP/M and playing Zork, and so far everything seems to work beautifully, except for one thing:

I can't get the MITS Programming System II to work.

I'm following the instructions in the emulator manual, page 36. To save you from having to look it up, here is what the second example says:

Example usage #2: insert into edit buffer, then assemble
1) Make sure simulator is configured to send SIO output and SIO2 port 1 output to your terminal
2) [STOP]+[RESET] reset Altair
3) [A15-A3 down, A2, A1, A0 up] select program #7 (PS2 monitor) using SIO card with interrupts
4) [AUX1 down] load and run PS2 monitor and mount PS2 cassette tape
5) OPN ABS,AC assign ACR to ABS device (to load editor/assembler)
6) EDT start editor (to load it into memory)

For step 1, I went into the setup menu and checked that both these ports are assigned to the Arduino programming port (where my terminal is connected).

I then follow step 2-5 and everything seems to work. I get the monitor prompt after steps 4 and 5. 

Then I type in EDT and press return and absolutely nothing happens. If the system was reading from the simulated tape, I assume that the address lights would be flickering, right? But they are absolutely steady. I waited for 15 minutes with no result.

At this point, I can't think of anything to do but STOP+RESET. Then I get the text "unmounting PS tape", so the tape was mounted, it's just that the system refused to read from it.

What am I missing here? 


Magnus Olsson

unread,
Jun 9, 2021, 4:06:17 PM6/9/21
to Altair-Duino
A small correction:

It's not quite true that absolutely nothing happens when i type EDT<CR>. Actually, the adress lights change - they go to 007527 and then stop flickering and stay that way.

da...@hansels.net

unread,
Jun 10, 2021, 12:01:54 PM6/10/21
to Altair-Duino
Due to some recent changes, the tape emulation that is used when reading the virtual PS2
tape only works if the ACR serial device is actually mapped to a serial port. Please try this:
In the config menu, select "E" to configure serial cards, then "2" to configure the ACR device.
Then press "i" to map the ACR device to an otherwise unused serial port (for example native USB).
Apply the changes and it should start working (note that it takes about 5 seconds to start EDT).

David

Magnus Olsson

unread,
Jun 10, 2021, 3:24:57 PM6/10/21
to Altair-Duino
Thank you, that helped! 

The instructions tell me to load an example assembly program with AUX2, but then just tells me that example 81 doesn't exist. 
I guess that is because the emulator is compiler with the Z80 option set? No problem, I found the example in the emulator source
code and I'll be able to enter it manually.

Thanks for creating this awesome emulator!

Magnus Olsson

unread,
Jun 10, 2021, 3:46:02 PM6/10/21
to Altair-Duino
A follow-up question: what does it really mean that the tape interface is attached to a host serial port? Will it read data from that port of it is connected?

da...@hansels.net

unread,
Jun 10, 2021, 7:16:50 PM6/10/21
to Altair-Duino
Yes, with Z80 support enabled there is not enough program space in the Arduino to store
everything so I cut out the least-used parts such as the ASM examples. As you said you can
still copy-and-paste them in manually.

As for the ACR device, yes, if ACR is assigned to a serial port on the host then any data
sent to the ACR by the emulated software will be sent to that port and data received on
that port will look (to the emulated software) like it was received from the ACR. The host
serial port will use whatever baud rate it is configured for. However, the ACR on the Altair
was 300 baud so any software will expect data to arrive at a speed of about 30 characters
per second. So if you want to use this make sure you are not sending (much) too fast.
Also, as long as the virtual PS2 tape is mounted it will override the serial port. You need
to unmount the tape (push CLR down) before attempting to use the port.

Note that if you type in a program you can then use the AD's serial port capture function
to save it (see bottom of page 8 in the documentation). The documentation talks about
saving/loading in BASIC but the procedure is the same for PS2 (though I don't remember
the exact commands for save/load in the EDT editor right now).

David
Reply all
Reply to author
Forward
0 new messages