This is a clone of wixette's 8800-simulator repository. https://github.com/wixette/8800-simulator
Go to file
wixette 320271b756 hide debug tab and ref tab from the beginning 2020-03-09 00:36:56 +08:00
asm collect tiny programs together to ease the test process 2020-03-07 02:37:04 +08:00
css hide debug tab and ref tab from the beginning 2020-03-09 00:36:56 +08:00
design compress the images 2020-03-08 22:55:02 +08:00
doc reference doc, vector design file, base lib and sample asm code. 2020-03-06 01:04:34 +08:00
js fix Chinese translation 2020-03-09 00:33:31 +08:00
media add sound files 2020-03-08 11:13:33 +08:00
.gitignore update gitignore 2020-03-06 12:35:56 +08:00
index.html fix messages and translations 2020-03-08 21:46:12 +08:00
LICENSE init commit 2020-03-06 01:03:42 +08:00
README.md Update README.md 2020-03-08 22:43:04 +08:00
text-mode.html viewport instruction 2020-03-07 02:54:12 +08:00

Altair 8800 simulator.

A JavaScript simulator to demonstrate the front panel operations of Altair 8800.

Usage

Simply open index.html in browser, or copy the entire dir to your web server's root dir.

The simulator UI supports English and Chinese for now. In a desktop browser, you may use mouse to toggle or click the switches on the panel directly.

There is a DEBUG tab where you can check the internal status of the simulated 8080 CPU, or the contents of the simulator's memory.

The simulator works fine with modern mobile browsers, except that it is a bit challenging to touch a single switch on the panel on a mobile screen. Although, the helper switch buttons below the panel can be used as an alternative solution.

A Quick Tutorial

With a running Altair 8800 simulator, how to input and run the following program to calculate 1 + 2 = 3:

        LDA 0080H  ; 00 111 010
                   ; 10 000 000
                   ; 00 000 000
        MOV B,A    ; 01 000 111
        LDA 0081H  ; 00 111 010
                   ; 10 000 001
                   ; 00 000 000
        ADD B      ; 10 000 000
        STA 0082H  ; 00 110 010
                   ; 10 000 010
                   ; 00 000 000
        JMP 0000H  ; 11 000 011
                   ; 00 000 000
                   ; 00 000 000
  1. Turn on Altair 8800 by clicking OFF/ON switch.
  2. Set switches A7-A0 to 00 111 010 (up for 1, down for 0).
  3. Click "DEPOSIT".
  4. Set switches A7-A0 to 10 000 000.
  5. Click "DEPOSIT NEXT".
  6. Repeat step 4-5 to input the following bytes one by one: 00 000 000, 01 000 111, 00 111 010, 10 000 001, 00 000 000, 10 000 000, 00 110 010, 10 000 010, 00 000 000, 11 000 011, 00 000 000, 00 000 000.
  7. Set switches A7-A0 to 10 000 000.
  8. Click "EXAMINE".
  9. Set switches A7-A0 to 00 000 001 (the first number to be added, or 1 in decimal).
  10. Click "DEPOSIT".
  11. Set switches A7-A0 to 00 000 010 (the second number to be added, or 2 in decimal).
  12. Click "DEPOSIT NEXT".
  13. Click "RESET".
  14. Click "RUN" and wait for a few seconds.
  15. Click "STOP".
  16. Set switches A7-A0 to 10 000 010 (the address that holds the sum).
  17. Click "EXAMINE".
  18. The LEDs D7-D0 show the result 00 000 011 (3 in decimal).
  19. Turn off Altair 8800.

References

Acknowledgements

I use https://github.com/maly/8080js to execute Intel 8080 instruments.

The Quick Tutoral in the simulator UI refers to an example program got from the original Altair 8800 Operator's Manual.

The interaction design took another Altair 8800 simulator as a reference.