Page 1 of 1

OP-80a, Punched Tape and BASIC

PostPosted: January 30th, 2020, 3:24 pm
by GlassTTY
Hi, I am fairly new to the Altair but am having great fun with the clone. I have an issue with my OP-80a Tape Reader and the punched tape I have and would really appreciate some help in getting something running.

I have interfaced the OP-80a to the clone using an Ardunio Micro, this provides a serial output at 9600 baud and connects to the SIO associated with the cassette interface. I am sure there are better hardware solutions for interfacing the OP-80, however, I already had an Arduino and it took less than an hour to knock up a sketch to sort the whole thing out. I would have found a hardware solution quite hard.

The tape I have is 4K BASIC Version 3.2, and was supplied with the OP-80a kit (http://jmprecision.co.uk) and, in order to test my Arduino solution and set light levels and so on, I connected the serial output to my Mac and dumped the contents of the tape to a binary file using some Python. I did this several times in order to compare for consistency.

Once I could see the contents of the tape reliably streaming over the serial port, I connected the thing to the Altair's SIO (6/7 @ 9600 baud) and ran the Multi-Boot Loader at 17700 with sense switches 12, 8, 9 all set (my console is on the first 2SIO). Once I saw the lights change after a few seconds I started pulling the tape, however, despite many many attempts I have not been able to load the tape successfully.

Comparing my tape dumps to the '4K BASIC Ver 3-2.tap' file located in the 'Software and More' download from AltairClone.com I can see that there are some subtle differences. There are a few odd bytes that are different which could simply be my lighting levels etc.(although all my dumps are identical) I will work on this some more, however, the main difference is that with the '4K BASIC Ver 3-2.tap' file there is a string of NULLs after the first 200 bytes or so. With my tape these NULLs are not there. I am guessing that this marks the end of the second stage loader? If so, I am wondering if the lack of these NULLs means that the second stage loader doesn't have time to start up before bytes start arriving?

Anyway, all of this leaves me with a whole bundle of questions...

e.g.

    How does the load process work
    What is the tape format
    How does the loader know when the tape has ended?
    What address is BASIC loaded into?
    Will BASIC run automatically when the tape ends?
    Can anyone help me source a tape based on the '4K BASIC Ver 3-2.tap' file mentioned above?

In terms of the Arduino interface, the details are here https://glasstty.com/wiki/index.php/The ... Paper_Tape
I have also updated the OP80a thread with details in case anyone is interested.

Re: OP-80a, Punched Tape and BASIC

PostPosted: January 30th, 2020, 7:51 pm
by AltairClone
The first page of this document is a good overview of the Altair tape content and will answer several of the questions you listed: https://deramp.com/downloads/mfe_archiv ... %20CPM.pdf

Re: OP-80a, Punched Tape and BASIC

PostPosted: January 31st, 2020, 10:15 am
by GlassTTY
AltairClone wrote:The first page of this document is a good overview of the Altair tape content and will answer several of the questions you listed: https://deramp.com/downloads/mfe_archiv ... %20CPM.pdf


Thanks, I will take a look.