Deposit Not Depositing

General discussions related to the Altair 8800 Clone

Deposit Not Depositing

Postby toml_12953 » October 20th, 2017, 3:15 am

I have firmware 1.92. My setup has the turnkey ROM loaded and I execute Altair Disk BASIC at power-up. Once BASIC has started, If I raise Stop and Reset, all the lights come on as usual. Now if I set all address switches down and raise Deposit, all the data lights go off as they should but if I next raise Examine (still at address 0), the original data is there that was there from before the Deposit. If I Deposit again, the data lights go out and Examine will show 0 at location 0 as expected. Why do I have to Deposit twice to put a value in memory? My unit seems to run all the programs I've tried OK but Deposit from the front panel is wonky (although consistent.) Is there an easy fix?
toml_12953
 
Posts: 297
Joined: June 7th, 2013, 12:54 pm

Re: Deposit Not Depositing

Postby AltairClone » October 20th, 2017, 6:29 pm

Front panel deposit works fine for me with the same firmware version.

You mentioned the Turnkey montor ROM, do you also have the Turnkey board enabled? (e.g., auto jump after power on or reset?). If so, that's what you're seeing. Keep in mind that the real Turnkey board takes over the bus after a reset and attempts to force JMP to the start address during the first three bus cycles. Recall also that the front panel on an Altair does an examine operation by executing JMP to the address on the switches (and then remains stopped). Both the Turnkey auto-jump and the front panel examine are walking all over each other when you're doing the first examine, after which, the Turnkey board no longer over-drives the bus since the first three bus cycles are then over due to the examine JMP.

Mike
AltairClone
Site Admin
 
Posts: 632
Joined: April 5th, 2013, 10:55 am

Re: Deposit Not Depositing

Postby toml_12953 » October 20th, 2017, 7:57 pm

AltairClone wrote:Front panel deposit works fine for me with the same firmware version.

You mentioned the Turnkey montor ROM, do you also have the Turnkey board enabled? (e.g., auto jump after power on or reset?). If so, that's what you're seeing. Keep in mind that the real Turnkey board takes over the bus after a reset and attempts to force JMP to the start address during the first three bus cycles. Recall also that the front panel on an Altair does an examine operation by executing JMP to the address on the switches (and then remains stopped). Both the Turnkey auto-jump and the front panel examine are walking all over each other when you're doing the first examine, after which, the Turnkey board no longer over-drives the bus since the first three bus cycles are then over due to the examine JMP.

Mike

Ah! Yes, That's what's happening. Thanks for the explanation. I didn't think it was something too serious since the machine runs software flawlessly.
toml_12953
 
Posts: 297
Joined: June 7th, 2013, 12:54 pm

Re: Deposit Not Depositing

Postby AltairClone » October 25th, 2017, 10:11 pm

This thread made me want to dig deeper into what actually happens when a deposit is done immediately following a reset when a Turnkey board is in a system. This is an interesting corner case.

During the first three bus cycles after a reset, the Turnkey board drives the data bus with a JMP opcode followed by the two bytes of the auto-start address. During these first three cycles, the Turnkey board over-drives the MREAD line on the bus to a low state so that no RAM or ROM boards on the bus see the MREAD signal from the CPU. This, in turn, keeps RAM or ROM from responding to the first three CPU cycles after a reset.

Because the Turnkey board drives the data bus following a reset, the value shown on the data LEDs for address zero after a reset is always 0C3h (the JMP opcode from the Turnkey board) and not the value in RAM at memory location zero.

If a DEPOSIT operation is done to location zero immediately after reset, the value from the lower eight switches is written to RAM as expected, however, since the data LEDs are driven from the bus, and the Turnkey board is still driving the data bus, the LEDs continue to show 0C3h - the JMP instruction from the Turnkey board - and not the value deposited into RAM.

Note that a DEPOSIT NEXT operation on the front panel executes a NOP instruction to advance the PC by one before executing a write to RAM. This uses one of the three cycles the Turnkey board counts. An EXAMINE operation does a JMP XXXX to the address on the front panel switches. This uses up all three cycles of the Turnkey auto-jump sequence.

Even though the Turnkey module is driving the data bus, front panel operations still work because the front panel bypasses the main data bus and injects its data directly into the 8080's data bus on the CPU board with a separate eight-pin harness.

Presently, the Altair Clone does not correctly duplicate all aspects of this behavior. To correct this, I am working on an update to the Clone firmware that I will release in the next few days.

Mike
AltairClone
Site Admin
 
Posts: 632
Joined: April 5th, 2013, 10:55 am

Re: Deposit Not Depositing

Postby toml_12953 » October 26th, 2017, 3:46 pm

AltairClone wrote:Presently, the Altair Clone does not correctly duplicate all aspects of this behavior. To correct this, I am working on an update to the Clone firmware that I will release in the next few days.

Mike


You're welcome :)
toml_12953
 
Posts: 297
Joined: June 7th, 2013, 12:54 pm


Return to General Discussions

Who is online

Users browsing this forum: No registered users and 15 guests

cron