Altair 680

138 views
Skip to first unread message

John Kennedy

unread,
Nov 22, 2025, 9:47:06 PMNov 22
to Altair-Duino
First? :-)

IMG_0418.jpg

Kelly Loyd

unread,
Nov 22, 2025, 10:27:48 PMNov 22
to Altair-Duino
Mine is done! Works well.
IMG_6861.jpeg

On Saturday, November 22, 2025 at 8:47:06 PM UTC-6 johntk...@gmail.com wrote:
First? :-)

IMG_0418.jpg

John Kennedy

unread,
Nov 22, 2025, 10:29:35 PMNov 22
to Altair-Duino
My case arrives in a few days.

Meanwhile.. how does one run a VTL program?

Tom Lake

unread,
Nov 23, 2025, 4:23:38 AMNov 23
to Altair-Duino
Do you have the manual? If not, here it is:
VTL Manual

To start a program, set the program counter (#) to the line number to execute.
If the program starts at 10, do
#=10
and the program will run.

Tom Lake

unread,
Nov 23, 2025, 4:29:40 AMNov 23
to Altair-Duino
To run a program from the first line, no matter what the line number is, do
#=1

Chris Davis

unread,
Nov 23, 2025, 8:20:40 AMNov 23
to Altair-Duino
Great to hear!  Were the instructions correct (and not confusing)?  Everything works?

Kelly Loyd

unread,
Nov 23, 2025, 9:47:27 AMNov 23
to Altair-Duino
Chris, everything works right. My serial port wiring was backwards... but it worked after I swapped the wires. The 3rd Party case is mediocre, but that's not under our control. The screws just fell out, seemed stripped. but I've got plenty of self tappers that fit.
The Hex bolts for the serial port are a wee bit short for the thicker back plate, I had others of those from another project. Now it fits and I can use the serial port. 
The software works right.
I can't tell but it seems like it's running at 500KHz or am I wrong? For Next loop of 1,000 took about 10 seconds and you can see the LEDs flicker. 

This is just a minor thing, but when the 6800 hits the WAI instruction, I get


Simulation halted!
Last instruction executed: PC=0126 opcode=3E
PC=0127 SP=00D6 IX=1C63
A=25 B=D0 CCR=D3

I have the old 6800 emulator code and that ties in with what the original author did.

1. Reasons to stop. The simulator can be stopped by:

WAI instruction
I/O error in I/O simulator
Invalid OP code (if ITRAP is set on CPU)
Invalid mamory address (if MTRAP is set on CPU)

So that is working as designed.

If I am running on the USB port, I have to unplug the USB and back in again. 
If running on the Serial Port, it's just a power cycle. 

I thought about bodging the Arduino reset button to put it outside the case, but that's extremely kludgy. :D 

I wonder if any of the "Illegal" instructions could just dump us back into the monitor. On a real 6800, one would have to toggle RESET low. 

Overall it's a great product, the build instructions were clear. I like the spacers on the toggle switches, makes it look nice. My unit powered up and started working right away.


Chris Davis

unread,
Nov 23, 2025, 10:26:38 AMNov 23
to Altair-Duino
Thanks for the info.  I have not done a lot of benchmarking, but I suspect it is running a bit slow.

I also had a problem with the screws from the case easily stripping the plastic part of the case.  I put a drip of wood glue/Elmer's glue in the stripped holes and that works.

I thought I did have all illegal instructions dumping back into the monitor, so I'll take a look at that.

Kelly Loyd

unread,
Nov 23, 2025, 2:46:05 PMNov 23
to Altair-Duino
I just tried a couple of ones I know. HCF (Halt and Catch Fire)
Both of those drop back to the monitor.

Just for fun, I put in a short "do nothing" assembly program.
   0100   86 00         start   LDAA    #$00
   0102   ce 20 00      DELAY   LDX     #$2000
   0105   09            LOOP    DEX    
   0106   26 fd                 BNE     LOOP
   0108   b7 01 10              STAA    AOUT
   010b   3f                    SWI

It dropped back to the monitor on the SWI, which seems correct. Many 6800 examples say to use SWI as a programmer breakpoint.
I then checked the monitor documentation... how to get the register dump. After the SWI, the registers are pushed on the stack.. and N shows the stack. 

.N 00EB D4
.N 00EC 00
.N 00ED 00
.N 00EE 00
.N 00EF 00
.N 00F0 01
.N 00F1 0C

CC=D4, A=00, B=00, X = 0000, PC = 010C

SWTBug puts me back in the monitor on the SWI and does a register dump, but then it was a later monitor program.

I would say I probably found the only one that causes the sim to halt... I didn't check all of them.

Cheers,
Kelly 

Chris Davis

unread,
Nov 24, 2025, 8:31:04 AMNov 24
to Altair-Duino
Thanks.  The 6800 code is from William Beech, written for SIMH and adapted for the Arduino Due by Bela Torok.  James Nichols (a former Apple and AMD engineer) took that code and cleaned it up a bit.

John Kennedy

unread,
Nov 24, 2025, 10:27:12 AMNov 24
to Altair-Duino
The instructions were great. Usually I try to solder the Arduino on the wrong side of the circuitboard, but this time I managed to resist. And adding the pins to the Arduino first meant the fit was good.
The only mistake I made was forgetting to solder the SD card to the circuitboard, and I only noticed that until everything else was put together. However, even then I was able to solder it into place.
The software/firmware seems to work fine - the only thing that confused me was running a VTL program (answered in this thread) and  wasn't sure how access the different modes when powering from the USB port, but when powered using the PSU and my own serial to USB cable it worked fine. I'll revise that when I get the case and have more time to play.

Reply all
Reply to author
Forward
0 new messages