In the first video, we are taking a first look and measure the performance of the system in terms of executed instructions per second - how does it compare to the Microtronic, Kosmos CP1, and the Philips Masterlab? How many MIPS (Million Instructions per Second) can it do? Or is it more in the HIPS (Hundred Instructions per Second) region? See for yourself:
In the second video, I give an in-depth overview of the system and we are writing a complex program to explore its emulated, virtual machine language. The program aims to give an impression of the machine's capabilities and covers a good amount of the instruction set, including hex display & LED output, keypad input, arithmetics, comparisons, conditional branching, and different addressing modes, including indexed memory access. The different registers and build-in "firmware sub-routines (CALs)" are explained as well. After watching this video, you'll have a pretty good overview and understanding of the machine's capabilities:
Here is my instruction set cheat sheet here - the Science Fair manual is quite instructive and contains great examples, explaining every op-code in good detail. However, it really lacks a number of overview tables. This table is meant to fill that gap:
0 | KA | 0 | A <- keyboard (use with JUMP, Flag = 0 when key, else 1) 1 | AO | 1 | Hex disp <- A 2 | CH | 2 | A <-> B exchange, and Y <-> Z as well 3 | CY | 3 | A <-> Y exchange 4 | AM | 4 | M(Y) <- A 5 | MA | 5 | A <- M(Y) 6 | M+ | 6 | A <- A + M(Y) 7 | M- | 7 | A <- A - M(Y) 8 | TIA n | 8 n | A <- n 9 | AIA n | 9 n | A <- A + n A | TIY n | A n | Y <- n B | AIY n | B n | Y <- Y + n C | CIA n | C n | A = n -> Flag ( then 0, else 1) D | CIY n | D n | Y = n -> Flag ( then 0, else 1) E | CAL #routine | E n | Call subroutine, argument in A if needed F | JUMP high low | F high low | Goto 16*high + low ---------------------------------------------------------------------------- RSTO: 0 - turn off HEX display SETR: 1 - turn on LEDs (from Y: 0..6) RSTR: 2 - turn off LEDs ----: 3 - not used CMPL: 4 - complement A (bit flip) CHNG: 5 - exchange A <-> A', B <-> B', Y <-> Y', Z <-> Z' SIFT: 6 - shift right A ENDS: 7 - make end sound ERRS: 8 - make error sound SHTS: 9 - make short sound LONS: A - make long sound SUND: B - make organ sound (from A) TIMR: C - timer (from A) DSPR: D - show mem at addresses 50 - 51 (LEDs) and 52 (HEX) DEM-: E - Dec. sub of 2 digits -> DEC; M(Y) <- M(Y) - A in DEC; Y <- Y - 1 DEM+: F - Dec. add of 2 digits -> DEC; M(Y) <- M(Y) + A in DEC; Y <- Y - 1
Please find the program from the video in the files section.
In the third video - "In 80 Nibbles around the Towers of Hanoi!" (SCNR) - I am demonstrating Jason's implementation of the recursive version that he describes in his log entry:
Thanks Michael for sharing your videos! I am looking for more :)