; scmp.asm HALT ; 00 XAE ; 01 CCL ; 02 SCL ; 03 DINT ; 04 IEN ; 05 CSA ; 06 CAS ; 07 NOP ; 08 DB 09H ; 09 DB 0AH ; 0A DB 0BH ; 0B DB 0CH ; 0C DB 0DH ; 0D DB 0EH ; 0E DB 0FH ; 0F DB 10H ; 10 DB 11H ; 11 DB 12H ; 12 DB 13H ; 13 DB 14H ; 14 DB 15H ; 15 DB 16H ; 16 DB 17H ; 17 DB 18H ; 18 SIO ; 19 DB 1AH ; 1A DB 1BH ; 1B SR ; 1C SRL ; 1D RR ; 1E RRL ; 1F DB 20H ; 20 DB 21H ; 21 DB 22H ; 22 DB 23H ; 23 DB 24H ; 24 DB 25H ; 25 DB 26H ; 26 DB 27H ; 27 DB 28H ; 28 DB 29H ; 29 DB 2AH ; 2A DB 2BH ; 2B DB 2CH ; 2C DB 2DH ; 2D DB 2EH ; 2E DB 2FH ; 2F XPAL P0 ; 30 XPAL P1 ; 31 XPAL P2 ; 32 XPAL P3 ; 33 XPAH P0 ; 34 XPAH P1 ; 35 XPAH P2 ; 36 XPAH P3 ; 37 DB 38H ; 38 DB 39H ; 39 DB 3AH ; 3A DB 3BH ; 3B XPPC P0 ; 3C XPPC P1 ; 3D XPPC P2 ; 3E XPPC P3 ; 3F LDE ; 40 DB 41H ; 41 DB 42H ; 42 DB 43H ; 43 DB 44H ; 44 DB 45H ; 45 DB 46H ; 46 DB 47H ; 47 DB 48H ; 48 DB 49H ; 49 DB 4AH ; 4A DB 4BH ; 4B DB 4CH ; 4C DB 4DH ; 4D DB 4EH ; 4E DB 4FH ; 4F ANE ; 50 DB 51H ; 51 DB 52H ; 52 DB 53H ; 53 DB 54H ; 54 DB 55H ; 55 DB 56H ; 56 DB 57H ; 57 ORE ; 58 DB 59H ; 59 DB 5AH ; 5A DB 5BH ; 5B DB 5CH ; 5C DB 5DH ; 5D DB 5EH ; 5E DB 5FH ; 5F XRE ; 60 DB 61H ; 61 DB 62H ; 62 DB 63H ; 63 DB 64H ; 64 DB 65H ; 65 DB 66H ; 66 DB 67H ; 67 DAE ; 68 DB 69H ; 69 DB 6AH ; 6A DB 6BH ; 6B DB 6CH ; 6C DB 6DH ; 6D DB 6EH ; 6E DB 6FH ; 6F ADE ; 70 DB 71H ; 71 DB 72H ; 72 DB 73H ; 73 DB 74H ; 74 DB 75H ; 75 DB 76H ; 76 DB 77H ; 77 CAE ; 78 DB 79H ; 79 DB 7AH ; 7A DB 7BH ; 7B DB 7CH ; 7C DB 7DH ; 7D DB 7EH ; 7E DB 7FH ; 7F DB 80H ; 80 DB 81H ; 81 DB 82H ; 82 DB 83H ; 83 DB 84H ; 84 DB 85H ; 85 DB 86H ; 86 DB 87H ; 87 DB 88H ; 88 DB 89H ; 89 DB 8AH ; 8A DB 8BH ; 8B DB 8CH ; 8C DB 8DH ; 8D DB 8EH ; 8E DLY 0FFH ; 8F FF JMP $ ; 90 FE JMP 0(P1) ; 91 00 JMP 0(P2) ; 92 00 JMP 0(P3) ; 93 00 JP $ ; 94 FE JP 0(P1) ; 95 00 JP 0(P2) ; 96 00 JP 0(P3) ; 97 00 JZ $ ; 98 FE JZ 0(P1) ; 99 00 JZ 0(P2) ; 9A 00 JZ 0(P3) ; 9B 00 JNZ $ ; 9C FE JNZ 0(P1) ; 9D 00 JNZ 0(P2) ; 9E 00 JNZ 0(P3) ; 9F 00 DB 0A0H ; A0 DB 0A1H ; A1 DB 0A2H ; A2 DB 0A3H ; A3 DB 0A4H ; A4 DB 0A5H ; A5 DB 0A6H ; A6 DB 0A7H ; A7 ILD $ ; A8 FE ILD 0(P1) ; A9 00 ILD 0(P2) ; AA 00 ILD 0(P3) ; AB 00 DB 0ACH ; AC DB 0ADH ; AD DB 0AEH ; AE DB 0AFH ; AF DB 0B0H ; B0 DB 0B1H ; B1 DB 0B2H ; B2 DB 0B3H ; B3 DB 0B4H ; B4 DB 0B5H ; B5 DB 0B6H ; B6 DB 0B7H ; B7 DLD $ ; B8 FE DLD 0(P1) ; B9 00 DLD 0(P2) ; BA 00 DLD 0(P3) ; BB 00 DB 0BCH ; BC DB 0BDH ; BD DB 0BEH ; BE DB 0BFH ; BF LD $ ; C0 FF LD 0(P1) ; C1 00 LD 0(P2) ; C2 00 LD 0(P3) ; C3 00 LDI 00H ; C4 00 LD @0(P1) ; C5 00 LD @0(P2) ; C6 00 LD @0(P3) ; C7 00 ST $ ; C8 FF ST 0(P1) ; C9 00 ST 0(P2) ; CA 00 ST 0(P3) ; CB 00 DB 0CCH ; CC ST @0(P1) ; CD 00 ST @0(P2) ; CE 00 ST @0(P3) ; CF 00 AND $ ; D0 FF AND 0(P1) ; D1 00 AND 0(P2) ; D2 00 AND 0(P3) ; D3 00 ANI 00H ; D4 00 AND @0(P1) ; D5 00 AND @0(P2) ; D6 00 AND @0(P3) ; D7 00 OR $ ; D8 FF OR 0(P1) ; D9 00 OR 0(P2) ; DA 00 OR 0(P3) ; DB 00 ORI 00H ; DC 00 OR @0(P1) ; DD 00 OR @0(P2) ; DE 00 OR @0(P3) ; DF 00 XOR $ ; E0 FF XOR 0(P1) ; E1 00 XOR 0(P2) ; E2 00 XOR 0(P3) ; E3 00 XRI 00H ; E4 00 XOR @0(P1) ; E5 00 XOR @0(P2) ; E6 00 XOR @0(P3) ; E7 00 DAD $ ; E8 FF DAD 0(P1) ; E9 00 DAD 0(P2) ; EA 00 DAD 0(P3) ; EB 00 DAI 00H ; EC 00 DAD @0(P1) ; ED 00 DAD @0(P2) ; EE 00 DAD @0(P3) ; EF 00 ADD $ ; F0 FF ADD 0(P1) ; F1 00 ADD 0(P2) ; F2 00 ADD 0(P3) ; F3 00 ADI 00H ; F4 00 ADD @0(P1) ; F5 00 ADD @0(P2) ; F6 00 ADD @0(P3) ; F7 00 CAD $ ; F8 FF CAD 0(P1) ; F9 00 CAD 0(P2) ; FA 00 CAD 0(P3) ; FB 00 CAI 00H ; FC 00 CAD @0(P1) ; FD 00 CAD @0(P2) ; FE 00 CAD @0(P3) ; FF 00 ; test syntax variations LD (P1) ; F1 00 LD 0(P1) ; F1 00 LD @(P1) ; F5 00 LD @0(P1) ; F5 00 ; test JS and LDPI pseudo-ops JS P3,$1234 ; C4 12 37 C4 33 33 3F LDPI P3,$1234 ; C4 12 37 C4 34 33 if 0 ; test immediate out of range LDI -129 ; SHOULD ERROR LDI -128 LDI 127 LDI 128 LDI 255 LDI 256 ; SHOULD ERROR ; test PC-relative out of range LD $-128 ; SHOULD ERROR LD $-127 LD $-126 LD $+127 LD $+128 LD $+129 ; SHOULD ERROR JMP $-127 ; SHOULD ERROR JMP $-126 JMP $-125 JMP $+128 JMP $+129 JMP $+130 ; SHOULD ERROR LD -129(P1) ; SHOULD ERROR LD -128(P1) LD 127(P1) LD 128(P1) ; SHOULD ERROR LD @-129(P1) ; SHOULD ERROR LD @-128(P1) LD @127(P1) LD @128(P1) ; SHOULD ERROR endif END