Значит, что меня так метнуло к этому
Busch 2090 Education Computer и
TMS 1600:
На представленной выше системе команд
TMS 1000 и очень нищебродской архитектуре

в
Busch 2090 интерпретируют вот такую систему команд:
Code: Select all
Command Set
n = numerical constant
a = address (two nibbles)
s = source register
d = destination register
Mnemonic Code Description
MOV 0 s d s -> d
MOVI 1 n d n -> d
AND 2 s d s AND d -> d
ANDI 3 n d n AND d -> d
ADD 4 s d d + s-> d
ADDI 5 n d d + n-> d
SUB 6 s d d - s -> d
SUBI 7 n d d - n -> d
CMP 8 s d compare s and d
CMPI 9 n d compare n and d
OR A s d s OR d -> d
CALL B a a jump to subroutine at a a
GOTO C a a goto a a
BRC D a a branch if carry set
BRZ E a a branch if zero
MAS F 7 d move d to register bank 2
INV F 8 d invert d
SHR F 9 d shift d right
SHL F A d shift d left
ADC F B d add carry to d
SUBC F C d subtract carry from d
DIN F D d get I/O input in d (not implemented)
DOT F E s put d to I/O
KIN F F d get keyboard input into d
DISP F n s display n digits, beginning at register s
HALT F 0 0 program stop
NOP F 0 1 no operation
DISOUT F 0 2 display off
HXDZ F 0 3 hexadecimal to decimal conversion in reg D-E-F
DZHX F 0 4 decimal to hexadecimal conversion in reg D-E-F
RND F 0 5 generate random number in reg D-E-F (well, not really!)
TIME F 0 6 fetch time of day in reg A-B-C-D-E-F (not implemented)
RET F 0 7 return from subroutine
CLEAR F 0 8 set all registers to 0
STC F 0 9 set carry flag
RSC F 0 A reset carry flag
MULT F 0 B multiplication reg 0-5 with reg 0-5 of bank 2
DIV F 0 C division reg 0-3 with reg 0-3 of bank 2
EXRL F 0 D exchange reg 0-7 of bank 1 with reg 0-7 of bank 2
EXRM F 0 E exchange reg 8-F of bank 1 with reg 8-F of bank 2
EXRA F 0 F exchange reg 0-7 with reg 8-f
То есть, очень похоже на нашу задачу - интерпретировать систему команд
i8080 на убогом
самодельном 4-битном ЦПУ.
Поскольку я не имею никакого опыта программирования таких нищебродских девайсов,
я решил попробовать достать у
Busch их прошивку, чтобы глянуть как они это сделали,
т.е. "
танцевать от прототипа".
У
TMS 1600 нет всего, что я только хотел доделать - косвенной адресации...
переходов по табличной записи в программный счетчик.
Но у них - в
Busch 2090 - всё это работает и неплохо!
Может быть того, что я уже сделал, вполне и достаточно, чтобы заняться интерпретатором
команд
i8080 ?