XXX00000000000C HLT :IS_BOOT ? IS_WAIT ? CR(0, ACC()) : FH(8) : (CR(CR(0) & 0xF0), FH(0xB), FL(0x5)) // Halting XXX00011111110C NOP :$IB==$IB // No operation 0000000XXX0XXX_ PREFIX R#X/P#X :0 // Prefix for R#X!/P#X! X1000011101XXXE PUSH+ U#X :HEAP(U#X()) // Push pointer into stack X1000011111XXXE POP+ U#X :U#X(HEAP()) // Pop pointer from stack XXXXXX11111110C NOP #Z :#Z // Hollow operation through #Z ticks XXX10010101XXXA ALU#X IB :$1=ALU#X(DROP(FH()),$IB),ACC($1),FL($1.hi()) // ALU#X! with retained and immediate XXXXXX10101XXXA ALU#X Z#Z,IB :$1=ALU#X(Z#Z(),$IB),Z#Z($1),FL($1.hi()) // ALU#X! with Z#Z! and byte XXX1000XXX1XXXA ALU#X Z#Y :$1=ALU#X(DROP(#Y),REG(#Y)),REG(#Y,$1),FL($1.hi()) // ALU#X! with Z#Y! and retained XXXXXX0XXX1XXXA ALU#X Z#Z,R#Y :$1=ALU#X(Z#Z(),R#Y()),Z#Z($1),FL($1.hi()) // ALU#X! with Z#Z! and R#Y! 000XXX0XXX0XXXC HLT #Z :IS_BOOT && IS_WAIT ? FH()==(#Z+8) ? ACC(PORT(ACC())) : FH()>=8 ? PORT(ACC(),REG(#Z)) : ACC(CR(#Z)) : FH(#Z+8) // Hold #Z index number X1000011001XXXD INC+ Q#X :Q#X(Q#X()+1) // Increment Q#X! X1000011011XXXD DEC+ Q#X :Q#X(Q#X()-1) // Decrement Q#X! XXX00011001111A CMC :FL(FL() ^ 2) // Complement carry flag XXXXXX11001110D ADC BX,P#Z :$1=BX()+P#Z()+(_CF?1:0),$2=($1>>15)&2,FL((FL()& 0xD)|$2), BX($1) // Addition register pair with carry X10XXX11001XXXD ADD Q#X,P#Z :$1=Q#X()+P#Z()+(_CF?0:0),$2=($1>>15)&2,FL((FL()& 0xD)|$2), Q#X($1) // Addition register pair XXXXXX11011110D SBB BX,P#Z :$1=BX()-P#Z()-(_CF?1:0),$2=($1>>15)&2,FL((FL()& 0xD)|$2), BX($1) // Subtraction register pair with borrow X10XXX11011XXXD SUB Q#X,P#Z :$1=Q#X()-P#Z()-(_CF?0:0),$2=($1>>15)&2,FL((FL()& 0xD)|$2), Q#X($1) // Subtraction register pair XXX00011001010A XCHG :$1=ACC(); for($2=0,$0=0;$0<8;++$0,$1>>=1) $2=($2<<1)+($1&1); ACC($2)>0 // Exchange retained bits by mirror XXXXXX11001010A XCHG P#Z :$1=DST(),DST(P#Z()),P#Z($1) // Exchange P#Z! with retained pair XXXXXX11001111A XCHG R#Z :$1=ACC(),ACC(R#Z()),R#Z($1) // Exchange R#Z! with retained register XXX100110X1XXXA ALU#W :$1=ACC(ALU#W(ACC())),FL($1.hi()) // ALU#W! with retained XXXXXX110X1XXXA ALU#W Z#Z :$1=Z#Z(ALU#W(Z#Z())),FL($1.hi()) // ALU#W! with Z#Z! 01110000000XXXD PUSH+ T#X+[T#Y] :HEAP(T#X()+DW(T#Y())) // Correct effective address in stack 0111000XXX0XXXD PUSH+ T#X+T#Y :HEAP(T#X()+T#Y()) // Push effective address into stack 1111000XXX0000D PUSH+ [T#X]-T#Y :HEAP(HEAP()-T#Y()) // Correct effective address in stack 1111000XXX0XXXD PUSH+ T#X-T#Y :HEAP(T#X()-T#Y()) // Push effective address into stack XXXXXX00000000C HLT R#Z :/*IS_BOOT && */IS_WAIT ? FH() == #Z ? ACC(CTX(ACC())) : $IR ? CTX(ACC(),R#Z()) : CR(FH(),R#Z()) : FH(#Z) // Hold R#Z!/P#Z! as retained XXX0000XXX0XXXF MOV R#X,R#Y :R#X(R#Y()) // Move R#Y! data into R#X! XXX00010100XXXF MOV R#X,IB :R#X($IB) // Move immediate data into R#X! XXX00010110000B JCND#X $+IB :CND#X?IP(IP()+$IV):0 // Relative branching if CND#X! XXX00010110001E BIAS $+IB :HEAP($IP+$IV) // Push instruction based relative address XXX00010110XXXB CCND#X $+IB :CND#X?HEAP(IP())+IP(IP()+$IV):0 // Relative call if CND#X! XXX00011000XXXA INC+ R#X :$1=ADD(R#X(),1),R#X($1),FL($1.hi()) // Increment R#X! XXX00011010XXXA DEC+ R#X :$1=SUB(R#X(),1),R#X($1),FL($1.hi()) // Decrement R#X! X00XXX1111XXXXB INT #T :HEAP($IP)+IP(JP(#T<10?0:1))>0 // Programm interruption indexed by #T XXX10011101110F XCHG [SP] :$1=DST(),DST(DW($2=SP())), DW($2, $1) // Exchange retained pair with stack heap XXXXXX11101110F XCHG P#Z,[SP] :$1=P#Z(),P#Z(DW(SP())), DW(SP(), $1) // Exchange pair P#Z with stack heap 001XXX0XXX0XXXF XCHG P#Z,P#Y :$1=P#Z(),P#Z(P#Y()),P#Y($1) // Exchange P#Z! and P#Y! 010XXX0XXX0XXXF XCHG R#Z,R#Y :$1=R#Z(),R#Z(R#Y()),R#Y($1) // Exchange R#Z! and R#Y! 011XXX0XXX0XXXD LEA P#Z,T#X+T#Y :P#Z(T#X()+T#Y()) // Load T#X!+T#Y! effective address into P#Z 111XXX0XXX0XXXD LEA P#Z,T#X-T#Y :P#Z(T#X()-T#Y()) // Load T#X!-T#Y! effective address into P#Z XXXXXX10100000E POP+ [P#Z+IB] :DW(P#Z()+$IV,HEAP()) // Pop data into memory indexed by P#Z XXXXXX10100XXXF MOV R#X,[P#Z+IB] :trace.is_port=IP_BP; trace.is_context=IP_SP; R#X(DB(P#Z()+$IV)) // Move memory data by P#Z pointer into R#X XXXXXX10110000E PUSH+ [P#Z+IB] :HEAP(DW(P#Z()+$IV)) // Push data from memory indexed by P#Z XXXXXX10110XXXF MOV [P#Z+IB],R#X :trace.is_port=IP_BP; trace.is_context=IP_SP; DB(P#Z()+$IV,R#X()) // Move R#X register data into memory by P#Z XXX10011101111E PUSH :HEAP(DST()) // Push retained pair XXXXXX11101111E PUSH+ S#Z :HEAP(S#Z()) // Push service S#Z register pair to stack XXX10011111111E POP :DST(HEAP()) // Pop retained pair XXXXXX11111111E POP+ S#Z :S#Z(HEAP()) // Pop service S#Z register pair from stack XXXXXX11101010E PUSH+ R#Z :DUP(#Z) // Dup R#Z register history XXXXXX11101011C SKIP [R#Z] :FH(R#Z()|8),FL((FL() & 0x02) | 0x05) // Exclude next operations by R#Z bits XXXXXX11101100C SKIP R#Z :FH(#Z), FL((FL() & 0x02) | 0x05) // Exclude next operations by R#Z counter XXXXXX11101101C SKIP #Z :FH(#Z | 8), FL((FL() & 0x02) | 0x05) // Exclude next operations by #Z times XXXXXX11111010E POP+ R#Z :DROP(#Z) // Drop R#Z register history XXXXXX11111011C LOOP [R#Z] :FH(R#Z()|8),FL((FL() & 0x02) | 0x09) // Forcing next operation by R#Z bits XXXXXX11111100C LOOP R#Z :FH(#Z), FL((FL() & 0x02) | 0x09) // Forcing next operation by R#Z counter XXXXXX11111101C LOOP #Z :FH(#Z | 8), FL((FL() & 0x02) | 0x09) // Forcing next operation by #Z times XXXXXX100XXXXXE PUSH+ #VIB :HEAP(0x#V00 + $IB) // Push immediate data into stack 0XX10010111XXXX --- IB :return 0 // Reserved extended code XXX10010111010E LEA +IB :DST(DST()+$IB) // Load retained effective address X1010010111XXXF MOV [U#X],IB :DB(U#X(),$IB) // Load immediate data into memory by U#X XXXXXX10111000B JMP $+#UIB :$IW==-2?(FL((FL() & 0x02) | 0x0D),trace.expression=""):IP(IP()+$IW) // Unonditional relative branching XXXXXX10111001B CALL $+#UIB :$IW==-2?0:HEAP(IP(IP()+$IW)) // Unconditional relative call XXXXXX10111XXXB JCND#X $+#UIB :CND#X?IP(IP()+$IW):0 // Branching if CND#X! XXXXXXXXXXXXXXX --- :return 0 // Reserved code // Helpers ALU08 ROL ROL Roll Overflow Left ALU09 RCL RCL Roll Cyclic Left ALU0A XCHG ALU0F NEG 0 ALU18 ROR ROR Roll Overflow Right ALU19 RCR RCR Roll Cyclic Right ALU1A RAR RAR Roll Arithmetic Right ALU1F NOT NOT Bitwise NOT ALU0 ADC ADC Addition with carry ALU1 SBB SBB Subtract with borrow ALU2 ADD ADD Addition ALU3 SUB SUB Subtract ALU4 AND AND Bitwise AND/conjunct ALU5 OR OR Bitwise OR/disjunct ALU6 XOR XOR Bitwise eXclusive OR ALU7 CMP CMP Comparation // Register descriptions // Pointers P0 IP IP IP P1 BP BP BP P2 SI SI SI P3 DI DI DI P4 SP SP SP P5 BX BX DX P6 CX CX CX P7 DX DX DX // Quad Q3 BX BX BX Q4 CX CX CX Q5 DX DX DX Q6 SP SP SP // Regular R0 [BX] _BX_ [BX] R1 BH BH BH R2 CH CH CH R3 DH DH DH R4 AL AL AL R5 BL BL BL R6 CL CL CL R7 DL DL DL // Special S0 IP IP IP S1 BP BP BP S2 SI SI SI S3 DI DI DI S4 [SP] _SP_ [SP] S5 EX Extend Ex S6 SX SX Sx S7 TX Timers Tx // Tabular T0 SP SP SP T1 BP BP BP T2 SI SI SI T3 DI DI DI T4 AL _AL_ AL T5 BX BX BX T6 CX CX CX T7 DX DX DX // Unical U2 AX AX AX U3 BX BX BX U4 CX CX CX U5 DX DX DX Z0 AL AL AL Z1 BH BH BH Z2 CH CH CH Z3 DH DH DH Z4 AL AL AL Z5 BL BL BL Z6 CL CL CL Z7 DL DL DL _ZF ZF !!(FL() & 1) _CF CF !!(FL() & 2) _PF PF !!(FL() & 4) _SF SF !!(FL() & 8) // Conditional CND0 PE !!(FL() & 4) Parity is Even CND1 PO !(FL() & 4) Parity is Odd CND2 S !!(FL() & 8) result is Signed CND3 NS !(FL() & 8) result is Not Signed CND4 C !!(FL() & 2) result with Carry CND5 NC !(FL() & 2) result with No Carry CND6 Z !!(FL() & 1) result is Equal CND7 NZ !(FL() & 1) result is Not Equal IS_BOOT IS_BOOT (CR() == 0) IS_WAIT IS_WAIT ($IE == 3) IP_BP IP_BP (BP().hi()==IP().hi() && ((#Z==1)||(#Z==4))) IP_SP IP_SP (SP().hi()==IP().hi() && (#Z==4)) // Aliases WAIT!0 @B8 FE F0 Express Function #0 WAIT!1 @B8 FE F1 Express Function #1 WAIT!2 @B8 FE F2 Express Function #2 WAIT!3 @B8 FE F3 Express Function #3 WAIT!4 @B8 FE F4 Express Function #4 WAIT!5 @B8 FE F5 Express Function #5 WAIT!6 @B8 FE F6 Express Function #6 WAIT!7 @B8 FE F7 Express Function #7 WAIT!8 @B8 FE F8 Express Function #8 WAIT!9 @B8 FE F9 Express Function #9 CALL![SP] @EE Call subroutine WAIT! @B8 FE Waitable mode HLT 0 @00 HLT BP @11 00 HLT SI @22 00 HLT DI @33 00 HLT [SP] @44 00 HLT BX @55 00 HLT CX @66 00 HLT DX @77 00 CLC! @BD 01 CF Clear CARRY FLAG STC! @BC 01 CF Store CARRY FLAG RPE! @B0 FF Return by EVEN PARITY RPO! @B1 FF Return by ODD PARITY RS! @BA FF Return by Positive RNS! @BB FF Return by Negative RC! @BC FF Return by CARRY RNC! @BD FF Return by not CARRY RZ! @BE FF Return by ZERO RNZ! @BF FF Return by not ZERO RET! @FF Return from subroutine MOV!BX,CX @21 65 Load %Y register pair to %X MOV!BX,DX @31 75 Load %Y register pair to %X MOV!CX,BX @12 56 Load %Y register pair to %X MOV!CX,DX @31 76 Load %Y register pair to %X MOV!DX,BX @13 57 Load %Y register pair to %X MOV!DX,CX @23 67 Load %Y register pair to %X MOV!BP,SI @22 EF 11 FF Load %Y register pair to %X MOV!BP,DI @33 EF 11 FF Load %Y register pair to %X MOV!BP,BX @EB 11 FF Load %Y register pair to %X MOV!BP,CX @EC 11 FF Load %Y register pair to %X MOV!BP,DX @ED 11 FF Load %Y register pair to %X MOV!SI,BP @11 EF 22 FF Load %Y register pair to %X MOV!SI,DI @33 EF 22 FF Load %Y register pair to %X MOV!SI,BX @EB 22 FF Load %Y register pair to %X MOV!SI,CX @EC 22 FF Load %Y register pair to %X MOV!SI,DX @ED 22 FF Load %Y register pair to %X MOV!DI,BP @11 EF 33 FF Load %Y register pair to %X MOV!DI,SI @22 EF 33 FF Load %Y register pair to %X MOV!DI,BX @EB 33 FF Load %Y register pair to %X MOV!DI,CX @EC 33 FF Load %Y register pair to %X MOV!DI,DX @ED 33 FF Load %Y register pair to %X MOV!BX,BP @11 EF FB Load %Y register pair to %X MOV!BX,SI @22 EF FB Load %Y register pair to %X MOV!BX,DI @33 EF FB Load %Y register pair to %X MOV!CX,BP @11 EF FC Load %Y register pair to %X MOV!CX,SI @22 EF FC Load %Y register pair to %X MOV!CX,DI @33 EF FC Load %Y register pair to %X MOV!DX,BP @11 EF FD Load %Y register pair to %X MOV!DX,SI @22 EF FD Load %Y register pair to %X MOV!DX,DI @33 EF FD Load %Y register pair to %X MOV [0],BH @00 B8 FE 11 00 Set control register #%X by %Y MOV [0],CH @00 B8 FE 22 00 Set control register #%X by %Y MOV [0],DH @00 B8 FE 33 00 Set control register #%X by %Y MOV [0],AL @00 B8 FE 44 00 Set control register #%X by %Y MOV [0],BL @00 B8 FE 55 00 Set control register #%X by %Y MOV [0],CL @00 B8 FE 66 00 Set control register #%X by %Y MOV [0],DL @00 B8 FE 77 00 Set control register #%X by %Y MOV [1],BH @11 11 B8 FE 11 00 Set control register #%X by %Y MOV [1],CH @11 11 B8 FE 22 00 Set control register #%X by %Y MOV [1],DH @11 11 B8 FE 33 00 Set control register #%X by %Y MOV [1],AL @11 11 B8 FE 44 00 Set control register #%X by %Y MOV [1],BL @11 11 B8 FE 55 00 Set control register #%X by %Y MOV [1],CL @11 11 B8 FE 66 00 Set control register #%X by %Y MOV [1],DL @11 11 B8 FE 77 00 Set control register #%X by %Y MOV [2],BH @22 22 B8 FE 11 00 Set control register #%X by %Y MOV [2],CH @22 22 B8 FE 22 00 Set control register #%X by %Y MOV [2],DH @22 22 B8 FE 33 00 Set control register #%X by %Y MOV [2],AL @22 22 B8 FE 44 00 Set control register #%X by %Y MOV [2],BL @22 22 B8 FE 55 00 Set control register #%X by %Y MOV [2],CL @22 22 B8 FE 66 00 Set control register #%X by %Y MOV [2],DL @22 22 B8 FE 77 00 Set control register #%X by %Y MOV [3],BH @33 33 B8 FE 11 00 Set control register #%X by %Y MOV [3],CH @33 33 B8 FE 22 00 Set control register #%X by %Y MOV [3],DH @33 33 B8 FE 33 00 Set control register #%X by %Y MOV [3],AL @33 33 B8 FE 44 00 Set control register #%X by %Y MOV [3],BL @33 33 B8 FE 55 00 Set control register #%X by %Y MOV [3],CL @33 33 B8 FE 66 00 Set control register #%X by %Y MOV [3],DL @33 33 B8 FE 77 00 Set control register #%X by %Y MOV [4],BH @44 44 B8 FE 11 00 Set control register #%X by %Y MOV [4],CH @44 44 B8 FE 22 00 Set control register #%X by %Y MOV [4],DH @44 44 B8 FE 33 00 Set control register #%X by %Y MOV [4],AL @44 44 B8 FE 44 00 Set control register #%X by %Y MOV [4],BL @44 44 B8 FE 55 00 Set control register #%X by %Y MOV [4],CL @44 44 B8 FE 66 00 Set control register #%X by %Y MOV [4],DL @44 44 B8 FE 77 00 Set control register #%X by %Y MOV [5],BH @55 55 B8 FE 11 00 Set control register #%X by %Y MOV [5],CH @55 55 B8 FE 22 00 Set control register #%X by %Y MOV [5],DH @55 55 B8 FE 33 00 Set control register #%X by %Y MOV [5],AL @55 55 B8 FE 44 00 Set control register #%X by %Y MOV [5],BL @55 55 B8 FE 55 00 Set control register #%X by %Y MOV [5],CL @55 55 B8 FE 66 00 Set control register #%X by %Y MOV [5],DL @55 55 B8 FE 77 00 Set control register #%X by %Y MOV [6],BH @66 66 B8 FE 11 00 Set control register #%X by %Y MOV [6],CH @66 66 B8 FE 22 00 Set control register #%X by %Y MOV [6],DH @66 66 B8 FE 33 00 Set control register #%X by %Y MOV [6],AL @66 66 B8 FE 44 00 Set control register #%X by %Y MOV [6],BL @66 66 B8 FE 55 00 Set control register #%X by %Y MOV [6],CL @66 66 B8 FE 66 00 Set control register #%X by %Y MOV [6],DL @66 66 B8 FE 77 00 Set control register #%X by %Y MOV [7],BH @77 77 B8 FE 11 00 Set control register #%X by %Y MOV [7],CH @77 77 B8 FE 22 00 Set control register #%X by %Y MOV [7],DH @77 77 B8 FE 33 00 Set control register #%X by %Y MOV [7],AL @77 77 B8 FE 44 00 Set control register #%X by %Y MOV [7],BL @77 77 B8 FE 55 00 Set control register #%X by %Y MOV [7],CL @77 77 B8 FE 66 00 Set control register #%X by %Y MOV [7],DL @77 77 B8 FE 77 00 Set control register #%X by %Y MOV BH,[0] @11 00 B8 FE 00 Get control register #%Y to %X MOV CH,[0] @22 00 B8 FE 00 Get control register #%Y to %X MOV DH,[0] @33 00 B8 FE 00 Get control register #%Y to %X MOV AL,[0] @44 00 B8 FE 00 Get control register #%Y to %X MOV BL,[0] @55 00 B8 FE 00 Get control register #%Y to %X MOV CL,[0] @66 00 B8 FE 00 Get control register #%Y to %X MOV DL,[0] @77 00 B8 FE 00 Get control register #%Y to %X MOV BH,[1] @11 00 B8 FE 11 11 Get control register #%Y to %X MOV CH,[1] @22 00 B8 FE 11 11 Get control register #%Y to %X MOV DH,[1] @33 00 B8 FE 11 11 Get control register #%Y to %X MOV AL,[1] @44 00 B8 FE 11 11 Get control register #%Y to %X MOV BL,[1] @55 00 B8 FE 11 11 Get control register #%Y to %X MOV CL,[1] @66 00 B8 FE 11 11 Get control register #%Y to %X MOV DL,[1] @77 00 B8 FE 11 11 Get control register #%Y to %X MOV BH,[2] @11 00 B8 FE 22 22 Get control register #%Y to %X MOV CH,[2] @22 00 B8 FE 22 22 Get control register #%Y to %X MOV DH,[2] @33 00 B8 FE 22 22 Get control register #%Y to %X MOV AL,[2] @44 00 B8 FE 22 22 Get control register #%Y to %X MOV BL,[2] @55 00 B8 FE 22 22 Get control register #%Y to %X MOV CL,[2] @66 00 B8 FE 22 22 Get control register #%Y to %X MOV DL,[2] @77 00 B8 FE 22 22 Get control register #%Y to %X MOV BH,[3] @11 00 B8 FE 33 33 Get control register #%Y to %X MOV CH,[3] @22 00 B8 FE 33 33 Get control register #%Y to %X MOV DH,[3] @33 00 B8 FE 33 33 Get control register #%Y to %X MOV AL,[3] @44 00 B8 FE 33 33 Get control register #%Y to %X MOV BL,[3] @55 00 B8 FE 33 33 Get control register #%Y to %X MOV CL,[3] @66 00 B8 FE 33 33 Get control register #%Y to %X MOV DL,[3] @77 00 B8 FE 33 33 Get control register #%Y to %X MOV BH,[4] @11 00 B8 FE 44 44 Get control register #%Y to %X MOV CH,[4] @22 00 B8 FE 44 44 Get control register #%Y to %X MOV DH,[4] @33 00 B8 FE 44 44 Get control register #%Y to %X MOV AL,[4] @44 00 B8 FE 44 44 Get control register #%Y to %X MOV BL,[4] @55 00 B8 FE 44 44 Get control register #%Y to %X MOV CL,[4] @66 00 B8 FE 44 44 Get control register #%Y to %X MOV DL,[4] @77 00 B8 FE 44 44 Get control register #%Y to %X MOV BH,[5] @11 00 B8 FE 55 55 Get control register #%Y to %X MOV CH,[5] @22 00 B8 FE 55 55 Get control register #%Y to %X MOV DH,[5] @33 00 B8 FE 55 55 Get control register #%Y to %X MOV AL,[5] @44 00 B8 FE 55 55 Get control register #%Y to %X MOV BL,[5] @55 00 B8 FE 55 55 Get control register #%Y to %X MOV CL,[5] @66 00 B8 FE 55 55 Get control register #%Y to %X MOV DL,[5] @77 00 B8 FE 55 55 Get control register #%Y to %X MOV BH,[6] @11 00 B8 FE 66 66 Get control register #%Y to %X MOV CH,[6] @22 00 B8 FE 66 66 Get control register #%Y to %X MOV DH,[6] @33 00 B8 FE 66 66 Get control register #%Y to %X MOV AL,[6] @44 00 B8 FE 66 66 Get control register #%Y to %X MOV BL,[6] @55 00 B8 FE 66 66 Get control register #%Y to %X MOV CL,[6] @66 00 B8 FE 66 66 Get control register #%Y to %X MOV DL,[6] @77 00 B8 FE 66 66 Get control register #%Y to %X MOV BH,[7] @11 00 B8 FE 77 77 Get control register #%Y to %X MOV CH,[7] @22 00 B8 FE 77 77 Get control register #%Y to %X MOV DH,[7] @33 00 B8 FE 77 77 Get control register #%Y to %X MOV AL,[7] @44 00 B8 FE 77 77 Get control register #%Y to %X MOV BL,[7] @55 00 B8 FE 77 77 Get control register #%Y to %X MOV CL,[7] @66 00 B8 FE 77 77 Get control register #%Y to %X MOV DL,[7] @77 00 B8 FE 77 77 Get control register #%Y to %X MOV BH,[BH] @11 00 B8 FE 11 00 Read context cell [%X] to %X MOV CH,[CH] @22 00 B8 FE 22 00 Read context cell [%X] to %X MOV DH,[DH] @33 00 B8 FE 33 00 Read context cell [%X] to %X MOV AL,[AL] @44 00 B8 FE 44 00 Read context cell [%X] to %X MOV BL,[BL] @55 00 B8 FE 55 00 Read context cell [%X] to %X MOV CL,[CL] @66 00 B8 FE 66 00 Read context cell [%X] to %X MOV DL,[DL] @77 00 B8 FE 77 00 Read context cell [%X] to %X MOV [BH],CH @11 00 B8 FE 22 00 Write %Y to context cell [%X] MOV [BH],DH @11 00 B8 FE 33 00 Write %Y to context cell [%X] MOV [BH],AL @11 00 B8 FE 44 00 Write %Y to context cell [%X] MOV [BH],BL @11 00 B8 FE 55 00 Write %Y to context cell [%X] MOV [BH],CL @11 00 B8 FE 66 00 Write %Y to context cell [%X] MOV [BH],DL @11 00 B8 FE 77 00 Write %Y to context cell [%X] MOV [CH],BH @22 00 B8 FE 11 00 Write %Y to context cell [%X] MOV [CH],DH @22 00 B8 FE 33 00 Write %Y to context cell [%X] MOV [CH],AL @22 00 B8 FE 44 00 Write %Y to context cell [%X] MOV [CH],BL @22 00 B8 FE 55 00 Write %Y to context cell [%X] MOV [CH],CL @22 00 B8 FE 66 00 Write %Y to context cell [%X] MOV [CH],DL @22 00 B8 FE 77 00 Write %Y to context cell [%X] MOV [DH],BH @33 00 B8 FE 11 00 Write %Y to context cell [%X] MOV [DH],CH @33 00 B8 FE 22 00 Write %Y to context cell [%X] MOV [DH],AL @33 00 B8 FE 44 00 Write %Y to context cell [%X] MOV [DH],BL @33 00 B8 FE 55 00 Write %Y to context cell [%X] MOV [DH],CL @33 00 B8 FE 66 00 Write %Y to context cell [%X] MOV [DH],DL @33 00 B8 FE 77 00 Write %Y to context cell [%X] MOV [AL],BH @44 00 B8 FE 11 00 Write %Y to context cell [%X] MOV [AL],CH @44 00 B8 FE 22 00 Write %Y to context cell [%X] MOV [AL],DH @44 00 B8 FE 33 00 Write %Y to context cell [%X] MOV [AL],BL @44 00 B8 FE 55 00 Write %Y to context cell [%X] MOV [AL],CL @44 00 B8 FE 66 00 Write %Y to context cell [%X] MOV [AL],DL @44 00 B8 FE 77 00 Write %Y to context cell [%X] MOV [BL],BH @55 00 B8 FE 11 00 Write %Y to context cell [%X] MOV [BL],CH @55 00 B8 FE 22 00 Write %Y to context cell [%X] MOV [BL],DH @55 00 B8 FE 33 00 Write %Y to context cell [%X] MOV [BL],AL @55 00 B8 FE 44 00 Write %Y to context cell [%X] MOV [BL],CL @55 00 B8 FE 66 00 Write %Y to context cell [%X] MOV [BL],DL @55 00 B8 FE 77 00 Write %Y to context cell [%X] MOV [CL],BH @66 00 B8 FE 11 00 Write %Y to context cell [%X] MOV [CL],CH @66 00 B8 FE 22 00 Write %Y to context cell [%X] MOV [CL],DH @66 00 B8 FE 33 00 Write %Y to context cell [%X] MOV [CL],AL @66 00 B8 FE 44 00 Write %Y to context cell [%X] MOV [CL],BL @66 00 B8 FE 55 00 Write %Y to context cell [%X] MOV [CL],DL @66 00 B8 FE 77 00 Write %Y to context cell [%X] MOV [DL],BH @77 00 B8 FE 11 00 Write %Y to context cell [%X] MOV [DL],CH @77 00 B8 FE 22 00 Write %Y to context cell [%X] MOV [DL],DH @77 00 B8 FE 33 00 Write %Y to context cell [%X] MOV [DL],AL @77 00 B8 FE 44 00 Write %Y to context cell [%X] MOV [DL],BL @77 00 B8 FE 55 00 Write %Y to context cell [%X] MOV [DL],CL @77 00 B8 FE 66 00 Write %Y to context cell [%X] IN BH @11 11 B8 FE 11 11 Input to %X from port %X IN CH @22 22 B8 FE 22 22 Input to %X from port %X IN DH @33 33 B8 FE 33 33 Input to %X from port %X IN AL @44 44 B8 FE 44 44 Input to %X from port %X IN BL @55 55 B8 FE 55 55 Input to %X from port %X IN CL @66 66 B8 FE 66 66 Input to %X from port %X IN DL @77 77 B8 FE 77 77 Input to %X from port %X OUT BH,CH @11 11 B8 FE 22 22 Output %Y to port %X OUT BH,DH @11 11 B8 FE 33 33 Output %Y to port %X OUT BH,AL @11 11 B8 FE 44 44 Output %Y to port %X OUT BH,BL @11 11 B8 FE 55 55 Output %Y to port %X OUT BH,CL @11 11 B8 FE 66 66 Output %Y to port %X OUT BH,DL @11 11 B8 FE 77 77 Output %Y to port %X OUT CH,BH @22 22 B8 FE 11 11 Output %Y to port %X OUT CH,DH @22 22 B8 FE 33 33 Output %Y to port %X OUT CH,AL @22 22 B8 FE 44 44 Output %Y to port %X OUT CH,BL @22 22 B8 FE 55 55 Output %Y to port %X OUT CH,CL @22 22 B8 FE 66 66 Output %Y to port %X OUT CH,DL @22 22 B8 FE 77 77 Output %Y to port %X OUT DH,BH @33 33 B8 FE 11 11 Output %Y to port %X OUT DH,CH @33 33 B8 FE 22 22 Output %Y to port %X OUT DH,AL @33 33 B8 FE 44 44 Output %Y to port %X OUT DH,BL @33 33 B8 FE 55 55 Output %Y to port %X OUT DH,CL @33 33 B8 FE 66 66 Output %Y to port %X OUT DH,DL @33 33 B8 FE 77 77 Output %Y to port %X OUT AL,BH @44 44 B8 FE 11 11 Output %Y to port %X OUT AL,CH @44 44 B8 FE 22 22 Output %Y to port %X OUT AL,DH @44 44 B8 FE 33 33 Output %Y to port %X OUT AL,BL @44 44 B8 FE 55 55 Output %Y to port %X OUT AL,CL @44 44 B8 FE 66 66 Output %Y to port %X OUT AL,DL @44 44 B8 FE 77 77 Output %Y to port %X OUT BL,BH @55 55 B8 FE 11 11 Output %Y to port %X OUT BL,CH @55 55 B8 FE 22 22 Output %Y to port %X OUT BL,DH @55 55 B8 FE 33 33 Output %Y to port %X OUT BL,AL @55 55 B8 FE 44 44 Output %Y to port %X OUT BL,CL @55 55 B8 FE 66 66 Output %Y to port %X OUT BL,DL @55 55 B8 FE 77 77 Output %Y to port %X OUT CL,BH @66 66 B8 FE 11 11 Output %Y to port %X OUT CL,CH @66 66 B8 FE 22 22 Output %Y to port %X OUT CL,DH @66 66 B8 FE 33 33 Output %Y to port %X OUT CL,AL @66 66 B8 FE 44 44 Output %Y to port %X OUT CL,BL @66 66 B8 FE 55 55 Output %Y to port %X OUT CL,DL @66 66 B8 FE 77 77 Output %Y to port %X OUT DL,BH @77 77 B8 FE 11 11 Output %Y to port %X OUT DL,CH @77 77 B8 FE 22 22 Output %Y to port %X OUT DL,DH @77 77 B8 FE 33 33 Output %Y to port %X OUT DL,AL @77 77 B8 FE 44 44 Output %Y to port %X OUT DL,BL @77 77 B8 FE 55 55 Output %Y to port %X OUT DL,CL @77 77 B8 FE 66 66 Output %Y to port %X ASCx0000 FF FF FF FF FF FF FF FF C7 C7 C7 C7 FF FF FF FF ASCx0010 F8 F8 F8 F8 FF FF FF FF C0 C0 C0 C0 FF FF FF FF ASCx0020 FF FF FF FF F8 F8 F8 F8 C7 C7 C7 C7 F8 F8 F8 F8 ASCx0030 F8 F8 F8 F8 F8 F8 F8 F8 C0 C0 C0 C0 F8 F8 F8 F8 ASCx0040 FF FF FF FF FF FF FF FF F3 F3 C0 D2 F3 F3 ED DE ASCx0050 FF FF FF FF FF FF FF FF F3 E1 C0 F3 F3 F3 F3 F3 ASCx0060 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ASCx0070 F7 F3 D1 C0 C0 D1 F3 F7 F3 F3 F3 F3 F3 C0 E1 F3 ASCx0080 FF FF FF FF C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 ASCx0090 F8 F8 F8 F8 C7 C7 C7 C7 C0 C0 C0 C0 C7 C7 C7 C7 ASCx00A0 FF FF FF FF C0 C0 C0 C0 C7 C7 C7 C7 C0 C0 C0 C0 ASCx00B0 F8 F8 F8 F8 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ASCx00C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ASCx00D0 FF FF FF FF FF FF FF FF F3 F3 F3 F3 F3 F3 F3 F3 ASCx00E0 FF FF FF C0 C0 FF FF FF FB F3 E2 C0 C0 E2 F3 FB ASCx00F0 C7 DF DF D8 C2 FA FA FA FF FF FF FF FF FF FF FF ASCx0100 FF FF FF FF FF FF FF FF FB FB FB FB FB FF FB FF ASCx0110 F5 F5 F5 FF FF FF FF FF F5 F5 E0 F5 E0 F5 F5 FF ASCx0120 FB F0 EB F1 FA E1 FB FF E7 E6 FD FB F7 EC FC FF ASCx0130 FB F5 F5 F3 EA ED F2 FF F9 F9 FD FB FF FF FF FF ASCx0140 FD FB F7 F7 F7 FB FD FF F7 FB FD FD FD FB F7 FF ASCx0150 FF FB EA F1 EA FB FF FF FF FB FB E0 FB FB FF FF ASCx0160 FF FF FF F3 F3 FB F7 FF FF FF FF E0 FF FF FF FF ASCx0170 FF FF FF FF FF F3 F3 FF FF FE FD FB F7 EF FF FF ASCx0180 F1 EE EC EA E6 EE F1 FF FB F3 FB FB FB FB F1 FF ASCx0190 F1 EE FE F9 F7 EF E0 FF E0 FE FD F9 FE EE F1 FF ASCx01A0 FD F9 F5 ED E0 FD FD FF E0 EF E1 FE FE EE F1 FF ASCx01B0 F8 F7 EF E1 EE EE F1 FF E0 FE FD FB F7 F7 F7 FF ASCx01C0 F1 EE EE F1 EE EE F1 FF F1 EE EE F0 FE FD E3 FF ASCx01D0 FF F3 F3 FF FF F3 F3 FF F3 F3 FF F3 F3 FB F7 FF ASCx01E0 FD FB F7 EF F7 FB FD FF FF FF E0 FF E0 FF FF FF ASCx01F0 F7 FB FD FE FD FB F7 FF F1 EE FE FD FB FF FB FF ASCx0200 F1 EE EC EA E8 EF F1 FF FB F5 EE EE E0 EE EE FF ASCx0210 E1 EE EE E1 EE EE E1 FF F1 EE EF EF EF EE F1 FF ASCx0220 E1 F6 F6 F6 F6 F6 E1 FF E0 EF EF E1 EF EF E0 FF ASCx0230 E0 EF EF E1 EF EF EF FF F1 EE EF EF EC EE F0 FF ASCx0240 EE EE EE E0 EE EE EE FF F1 FB FB FB FB FB F1 FF ASCx0250 FE FE FE FE EE EE F1 FF EE ED EB E7 EB ED EE FF ASCx0260 EF EF EF EF EF EE E0 FF EE E4 EA EA EE EE EE FF ASCx0270 EE EE E6 EA EC EE EE FF F1 EE EE EE EE EE F1 FF ASCx0280 E1 EE EE E1 EF EF EF FF F1 EE EE EE EA ED F2 FF ASCx0290 E1 EE EE E1 EB ED EE FF F1 EE EF F1 FE EE F1 FF ASCx02A0 E0 FB FB FB FB FB FB FF EE EE EE EE EE EE F1 FF ASCx02B0 EE EE EE F5 F5 FB FB FF EE EE EE EA EA EA F5 FF ASCx02C0 EE EE F5 FB F5 EE EE FF EE EE F5 FB FB FB FB FF ASCx02D0 E0 FE FD F1 F7 EF E0 FF F1 F7 F7 F7 F7 F7 F1 FF ASCx02E0 FF EF F7 FB FD FE FF FF F1 FD FD FD FD FD F1 FF ASCx02F0 F1 EE FF FF FF FF FF FF FF FF FF FF FF FF E0 FF ASCx0300 ED EA EA E2 EA EA ED FF FB F5 EE EE E0 EE EE FF ASCx0310 E0 EF EF E1 EE EE E1 FF ED ED ED ED ED E0 FE FF ASCx0320 F9 F5 F5 F5 F5 E0 EE FF E0 EF EF E1 EF EF E0 FF ASCx0330 FB E0 EA EA E0 FB FB FF E0 EE EF EF EF EF EF FF ASCx0340 EE EE F5 FB F5 EE EE FF EE EE EC EA E6 EE EE FF ASCx0350 EA EE EC EA E6 EE EE FF EE ED EB E7 EB ED EE FF ASCx0360 F8 F6 F6 F6 F6 F6 F6 FF EE E4 EA EA EE EE EE FF ASCx0370 EE EE EE E0 EE EE EE FF F1 EE EE EE EE EE F1 FF ASCx0380 E0 EE EE EE EE EE EE FF F0 EE EE F0 FA F6 EE FF ASCx0390 E1 EE EE E1 EF EF EF FF F1 EE EF EF EF EE F1 FF ASCx03A0 E0 FB FB FB FB FB FB FF EE EE EE F5 FB F7 EF FF ASCx03B0 EE EA EA F1 EA EA EE FF E1 EE EE E1 EE EE E1 FF ASCx03C0 EF EF EF E1 EE EE E1 FF EE EE EE E6 EA EA E6 FF ASCx03D0 F1 EE EE F9 FE EE F1 FF EE EA EA EA EA EA E0 FF ASCx03E0 F1 EE FE F8 FE EE F1 FF EA EA EA EA EA E0 FE FF ASCx03F0 EE EE EE E0 FE FE FE FF C0 C0 C0 C0 C0 C0 C0 FF ASCx0400 FF FF FF FF FF FF FF FF C7 C7 C7 C7 FF FF FF FF ASCx0410 F8 F8 F8 F8 FF FF FF FF C0 C0 C0 C0 FF FF FF FF ASCx0420 FF FF FF FF F8 F8 F8 F8 C7 C7 C7 C7 F8 F8 F8 F8 ASCx0430 F8 F8 F8 F8 F8 F8 F8 F8 C0 C0 C0 C0 F8 F8 F8 F8 ASCx0440 FF FF FF FF FF FF FF FF F3 F3 C0 D2 F3 F3 ED DE ASCx0450 FF FF FF FF FF FF FF FF F3 E1 C0 F3 F3 F3 F3 F3 ASCx0460 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ASCx0470 F7 F3 D1 C0 C0 D1 F3 F7 F3 F3 F3 F3 F3 C0 E1 F3 ASCx0480 FF FF FF FF C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 C7 ASCx0490 F8 F8 F8 F8 C7 C7 C7 C7 C0 C0 C0 C0 C7 C7 C7 C7 ASCx04A0 FF FF FF FF C0 C0 C0 C0 C7 C7 C7 C7 C0 C0 C0 C0 ASCx04B0 F8 F8 F8 F8 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ASCx04C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ASCx04D0 FF FF FF FF FF FF FF FF F3 F3 F3 F3 F3 F3 F3 F3 ASCx04E0 FF FF FF C0 C0 FF FF FF FB F3 E2 C0 C0 E2 F3 FB ASCx04F0 C7 DF DF D8 C2 FA FA FA FF FF FF FF FF FF FF FF ASCx0500 FF FF FF FF FF FF FF FF FB FB FB FB FB FF FB FF ASCx0510 F5 F5 F5 FF FF FF FF FF F5 F5 E0 F5 E0 F5 F5 FF ASCx0520 FB F0 EB F1 FA E1 FB FF E7 E6 FD FB F7 EC FC FF ASCx0530 FB F5 F5 F3 EA ED F2 FF F9 F9 FD FB FF FF FF FF ASCx0540 FD FB F7 F7 F7 FB FD FF F7 FB FD FD FD FB F7 FF ASCx0550 FF FB EA F1 EA FB FF FF FF FB FB E0 FB FB FF FF ASCx0560 FF FF FF F3 F3 FB F7 FF FF FF FF E0 FF FF FF FF ASCx0570 FF FF FF FF FF F3 F3 FF FF FE FD FB F7 EF FF FF ASCx0580 F1 EE EC EA E6 EE F1 FF FB F3 FB FB FB FB F1 FF ASCx0590 F1 EE FE F9 F7 EF E0 FF E0 FE FD F9 FE EE F1 FF ASCx05A0 FD F9 F5 ED E0 FD FD FF E0 EF E1 FE FE EE F1 FF ASCx05B0 F8 F7 EF E1 EE EE F1 FF E0 FE FD FB F7 F7 F7 FF ASCx05C0 F1 EE EE F1 EE EE F1 FF F1 EE EE F0 FE FD E3 FF ASCx05D0 FF F3 F3 FF FF F3 F3 FF F3 F3 FF F3 F3 FB F7 FF ASCx05E0 FD FB F7 EF F7 FB FD FF FF FF E0 FF E0 FF FF FF ASCx05F0 F7 FB FD FE FD FB F7 FF F1 EE FE FD FB FF FB FF ASCx0600 EF F7 FB FF FF FF FF FF FF FF F1 ED ED ED F2 FF ASCx0610 F7 F7 F1 F6 F6 F6 F1 FF FF FF F8 F7 F7 F7 F8 FF ASCx0620 FE FE F8 F6 F6 F6 F8 FF FF FF F9 F6 F1 F7 F8 FF ASCx0630 F9 F6 F7 E3 F7 F7 F7 FF FF FF F8 F6 F8 FE F1 FF ASCx0640 F7 F7 F1 F6 F6 F6 F6 FF FD FF F9 FD FD FD F8 FF ASCx0650 FE FF FE FE FE F6 F9 FF F7 F7 F6 F5 F3 F5 F6 FF ASCx0660 F9 FD FD FD FD FD F8 FF FF FF E5 EA EA EA EA FF ASCx0670 FF FF F1 F6 F6 F6 F6 FF FF FF F9 F6 F6 F6 F9 FF ASCx0680 FF FF F1 F6 F6 F1 F7 FF FF FF F8 F6 F6 F8 FE FF ASCx0690 FF FF F1 F6 F7 F7 F7 FF FF FF F8 F7 F9 FE F1 FF ASCx06A0 F7 F7 E3 F7 F7 F6 F9 FF FF FF EE EE EE EE F1 FF ASCx06B0 FF FF EE EE EE F5 FB FF FF FF EE EE EA EA F5 FF ASCx06C0 FF FF EE F5 FD F5 EE FF FF FF F6 F6 F8 FE F1 FF ASCx06D0 FF FF F0 FE F9 F7 F0 FF FE FD FD FB FD FD FE FF ASCx06E0 F7 F7 F7 FF F7 F7 F7 FF EF F7 F7 FB F7 F7 EE FF ASCx06F0 FF FF F7 F3 F0 FC FE FF F7 F3 E1 C0 E1 F3 FB FF ASCx0700 FF FF ED EA E2 EA ED FF FF FF F1 FE F8 F6 F9 FF ASCx0710 FF FF F8 F7 F1 F6 F1 FF FF FF ED ED ED ED E0 FE ASCx0720 FF FF F9 F6 F8 FE F0 FF FF FF F9 F6 F1 F7 F8 FF ASCx0730 FF FF FB F1 EA F1 FB FB FF FF F0 F7 F7 F7 F7 FF ASCx0740 FF FF F6 F9 F9 F6 F6 FF FF FF F6 F6 F4 F2 F6 FF ASCx0750 F9 FF F6 F6 F4 F2 F6 FF FF FF F6 F5 F3 F5 F6 FF ASCx0760 FF FF FC FA F6 F6 F6 FF FF FF EE E4 EA EA EE FF ASCx0770 FF FF F6 F6 F0 F6 F6 FF FF FF F9 F6 F6 F6 F9 FF ASCx0780 FF FF F0 F6 F6 F6 F6 FF FF FF F8 F6 F8 FA F6 FF ASCx0790 FF FF F1 F6 F1 F7 F7 F7 FF FF F8 F7 F7 F7 F8 FF ASCx07A0 FF FF E0 FB FB FB FB FF FF FF F6 F6 F8 FE F1 FF ASCx07B0 FF FF EA EA F1 EA EA FF FF FF F1 F6 F1 F6 F1 FF ASCx07C0 FF FF F7 F7 F1 F6 F1 FF FF FF EE EE E6 EA E6 FF ASCx07D0 FF FF F9 F6 FD FE F1 FF FF FF EA EA EA EA E0 FF ASCx07E0 FF FF F1 FE F8 FE F1 FF FF FF D5 D5 D5 D5 C0 FE ASCx07F0 FF FF F6 F6 F0 FE FE FF FF E7 E7 81 81 E7 E7 FF







Rebused Instructions Set Computer Emulator

F1: Step / ^Cycle / $Stop
F3: ^Push IP / $Pop IP
F4: Start/Stop / $Start
F5: Assembly / ^Reset
F6: Rewind  IP/Speed/Cycles
F7: Toggle switch
F8: Forward IP/Speed/Cycles
F9: 
Break: Toggle break-point

$ - Shift+
^ - Ctrl+
@ - Alt+

Intuitive clear mnemonic to quick memorize
|Codes|Key|Elementary description_________
  00  :Nil-Null of instruction queue / HLT
xA..xB:A/B-Add / Subtract
xC..xD:C/D-Conjunction / Disjunction
  xE  : E -Exclusive bitwise OR
A0..A7: A -Access to bytes
A8..AF:A/A-Access to ALU
B0..B7: B -Branches to nearest substitutes
B8..BF:B/F-Branches to near labels by flag
C0..C7: C -Increment
  CA  :RAL-Concatenate Access roll
  CF  :C/F-Carry Flag complement
D0..D7: D -Decrement
  DA  :RAR-Descended Access roll
  DF  :D/F-Data Formation by NOT
  EE  :E/E-Exchange
F0..F9:F/x-Functions of BIOS-API
  FE  :F/E-Fiction Execute / NOP
  FF  :F/F-Finalize the Function / RET
+EC/ED:Exclude operations by Counter/Data
+FC/FD:Forcing operation by Counter/Data
 +EF  :E/F-Enter register Feature
 +FF  :F/F-Flush register Feature
Simplest protection from errors in code:
Examples|Macros
CF BC FD|CLC   ; Clear the Carry Flag
CF BD FD|STC   ; Store the Carry Flag
BE FF   |RZ    ; Return by Zero Flag
BF FF   |RNZ   ; Return by no Zero Flag