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?

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.

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.

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.

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.