OpenCores
URL https://opencores.org/ocsvn/xgate/xgate/trunk

Subversion Repositories xgate

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /xgate
    from Rev 2 to Rev 3
    Reverse comparison

Rev 2 → Rev 3

/trunk/bench/tools/a.out Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream
trunk/bench/tools/a.out Property changes : Deleted: svn:executable Deleted: svn:mime-type ## -1 +0,0 ## -application/octet-stream \ No newline at end of property Index: trunk/bench/tools/HSW12ASM/test_XGATE.lst =================================================================== --- trunk/bench/tools/HSW12ASM/test_XGATE.lst (revision 2) +++ trunk/bench/tools/HSW12ASM/test_XGATE.lst (nonexistent) @@ -1,111 +0,0 @@ -?????? XGATE CODE: CPU XGATE -00B000 003000 ORG $B000 -00B000 003000 DS.W 2 ; reserve two words at cahnnel 0 - ; channel 1 -00B004 003004 20 1E DC.W _START ; point to start address -00B006 003006 00 7B DC.W V_PTR ; point to initial variables -002000 0F6000 ORG $2000 ; with comment -002000 0F6000 -> $007B V_PTR EQU 123 -002000 0F6000 -> $00D0 SPI0 EQU $D0 -002000 0F6000 -> $0005 SPI_CR EQU 5 -002000 0F6000 20 42 DC.W BACK_ -002002 0F6002 DS.W 8 -002012 0F6012 56 DC.B $56 -002013 0F6013 DS.B 11 -00201E 0F601E ALIGN 1 -00201E 0F601E _START -00201E 0F601E 02 F8 TFR R2,CCR ; R2 = CCR -002020 0F6020 01 F9 TFR CCR,R1 ; CCR = R1 - ;empty line -002022 0F6022 41 25 LDB R1,(R1,#SPI_CR) ; willi -002024 0F6024 49 24 LDW R1,(R1,#4) -002026 0F6026 51 24 STB R1,(R1,#4) ; willi -002028 0F6028 59 24 STW R1,(R1,#4) -00202A 0F602A 61 28 LDB R1,(R1,R2) -00202C 0F602C 69 28 LDW R1,(R1,R2) -00202E 0F602E 71 28 STB R1,(R1,R2) -002030 0F6030 79 28 STW R1,(R1,R2) -002032 0F6032 61 29 LDB R1,(R1,R2+) -002034 0F6034 69 29 LDW R1,(R1,R2+) -002036 0F6036 71 29 STB R1,(R1,R2+) -002038 0F6038 79 29 STW R1,(R1,R2+) -00203A 0F603A 61 2A LDB R1,(R1,-R2) -00203C 0F603C 69 2A LDW R1,(R1,-R2) -00203E 0F603E 71 2A STB R1,(R1,-R2) -002040 0F6040 79 2A STW R1,(R1,-R2) -002042 0F6042 03 F4 BACK_ SEX R3 -002044 0F6044 04 F5 PAR R4 -002046 0F6046 07 F6 JAL R7 -002048 0F6048 01 F0 CSEM #1 ; semaphores -00204A 0F604A 01 F1 CSEM R1 ; same as above + 1 -00204C 0F604C 07 F2 SSEM #7 ; semaphores -00204E 0F604E 07 F3 SSEM R7 ; same as above + 1 -002050 0F6050 0C B0 BFFO R4,R5 -002052 0F6052 0E F1 ASR R6,R7 -002054 0F6054 0A 52 CSL R2,R2 -002056 0F6056 0D 73 CSR R5,R3 -002058 0F6058 0A 14 LSL R2,R0 -00205A 0F605A 08 75 LSR R0,R3 -00205C 0F605C 0C 56 ROL R4,R2 -00205E 0F605E 0D D7 ROR R5,R6 -002060 0F6060 0E 19 ASR R6,#1 -002062 0F6062 0A 2A CSL R2,#2 -002064 0F6064 0D 3B CSR R5,#3 -002066 0F6066 0A 4C LSL R2,#4 -002068 0F6068 08 5D LSR R0,#5 -00206A 0F606A 0C 6E ROL R4,#6 -00206C 0F606C 0D 7F ROR R5,#7 -00206E 0F606E 10 28 AND R0,R1,R2 ; bit compare R1,R2 -002070 0F6070 11 4E OR R1,R2,R3 -002072 0F6072 12 0F XNOR R2,R0,R3 ; invert R3 -002074 0F6074 12 0F COM R2,R3 ; as pseudo op with two operands (r2 = ~r3) -002076 0F6076 13 0F COM R3 ; as pseudo op with single op (r3 = ~r3) -002078 0F6078 18 4C SUB R0,R2,R3 ; compare -00207A 0F607A 18 4C CMP R2,R3 ; compare as pseudo op -00207C 0F607C 18 40 SUB R0,R2,R0 ; compare -00207E 0F607E 1A 0C NEG R2,R3 ; as pseudo op with two operands (r3 = 0-r2) -002080 0F6080 1B 0C NEG R3 ; as pseudo op with single op (r3 = 0-r3) -002082 0F6082 18 40 TST R2 ; compare as pseudo op -002084 0F6084 1C B9 SBC R4,R5,R6 -002086 0F6086 18 B9 SBC R0,R5,R6 -002088 0F6088 18 B9 CPC R5,R6 ; compare as pseudo op -00208A 0F608A 1E FE ADD R6,R7,R7 ; R7*2 -00208C 0F608C 1B 47 ADC R3,R2,R1 -00208E 0F608E 20 00 BCC *+2 -002090 0F6090 22 00 BCS *+2 -002092 0F6092 27 FF BEQ * -002094 0F6094 24 00 BNE FWD -002096 0F6096 29 D5 FWD BPL BACK_ -002098 0F6098 2B D4 BMI BACK_ -00209A 0F609A 2C 00 BVC *+2 -00209C 0F609C 2E 00 BVS *+2 -00209E 0F609E 30 00 BHI *+2 -0020A0 0F60A0 32 00 BLS *+2 -0020A2 0F60A2 34 00 BGE *+2 -0020A4 0F60A4 38 00 BGT *+2 -0020A6 0F60A6 3F CD BRA BACK_ -0020A8 0F60A8 64 BB BFEXT R4,R5,R6 -0020AA 0F60AA 6C BB BFINS R4,R5,R6 ; clear BitField -0020AC 0F60AC 74 1B BFINSI R4,R0,R6 ; set BF -0020AE 0F60AE 7C BB BFINSX R4,R5,R6 ; toggle -0020B0 0F60B0 83 FE ANDL R3,#$FE -0020B2 0F60B2 8B 13 ANDH R3,#4+(5*3) ; 19dec = $13 -0020B4 0F60B4 93 FE BITL R3,#($FE+1-1) ; $FE -0020B6 0F60B6 9B FF BITH R3,#255 -0020B8 0F60B8 A3 01 ORL R3,#~$FE ; should be 1 -0020BA 0F60BA AB 00 ORH R3,#~(~0) ; should be 0 -0020BC 0F60BC B3 FE XNORL R3,#$FE -0020BE 0F60BE BB FE XNORH R3,#~$01 ; toggle bit 0 = $FE -0020C0 0F60C0 C3 00 SUBL R3,#0 -0020C2 0F60C2 CC 02 SUBH R4,#2 -0020C4 0F60C4 D3 00 CMPL R3,#0 -0020C6 0F60C6 DC 02 CPCH R4,#2 -0020C8 0F60C8 E3 00 ADDL R3,#0 -0020CA 0F60CA EC 02 ADDH R4,#2 -0020CC 0F60CC F3 00 LDL R3,#0 -0020CE 0F60CE FC 02 LDH R4,#2 -0020D0 0F60D0 03 00 SIF -0020D2 0F60D2 07 F7 SIF R7 -0020D4 0F60D4 00 00 BRK -0020D6 0F60D6 01 00 NOP -0020D8 0F60D8 02 00 RTS Index: trunk/bench/tools/HSW12ASM/test_XGATE_pag.s28 =================================================================== --- trunk/bench/tools/HSW12ASM/test_XGATE_pag.s28 (revision 2) +++ trunk/bench/tools/HSW12ASM/test_XGATE_pag.s28 (nonexistent) @@ -1,8 +0,0 @@ -S00D0000544553545F5847415445DA -S206002000204277 -S20600201256FF72 -S24400201E02F801F9412549245124592461286928712879286129692971297929612A692A712A792A03F404F507F601F001F107F207F30CB00EF10A520D730A1408750C5665 -S24400205E0DD70E190A2A0D3B0A4C085D0C6E0D7F1028114E120F120F130F184C184C18401A0C1B0C18401CB918B918B91EFE1B472000220027FF240029D52BD42C002E005D -S24000209E30003200340038003FCD64BB6CBB741B7CBB83FE8B1393FE9BFFA301AB00B3FEBBFEC300CC02D300DC02E300EC02F300FC02030007F700000100020010 -S20800B004201E007B8A -S804000000FB Index: trunk/bench/tools/HSW12ASM/test_S12.s =================================================================== --- trunk/bench/tools/HSW12ASM/test_S12.s (revision 2) +++ trunk/bench/tools/HSW12ASM/test_S12.s (nonexistent) @@ -1,5563 +0,0 @@ - -* -* S12 test case -* - - CPU S12 - -char equ 65 -immed equ $72 -dir equ $55 -ext equ $1234 -ind equ $37 -small equ $e -mask equ %11001100 -ROTATE000 EQU $0188 -ROTATE001 EQU $8944 -ROTATE002 EQU $3333 -ROTATE003 EQU $4444 -INDEX EQU 3 -* -* -* - ORG $1000 - -TEST1 EQU 1 -TEST2 EQU 2 -TEST3 EQU 3 -TEST4 EQU 4 -TEST5 EQU 5 -TEST6 EQU 6 -TEST7 EQU 7 -TEST8 EQU 8 - -#ifdef TEST1 - ldaa #TEST1 -#ifdef TEST2 - ldaa #TEST2 -#ifndef TEST3 - ldab #TEST3 -#ifdef TEST4 - ldab #TEST4 -#endif -#ifdef TEST5 - ldaa #TEST5 -*#ifdef TEST6 -* ldaa #TEST6 -*#ifdef TEST7 -* ldaa #TEST7 -*#ifdef TEST8 -* ldaa #TEST8 -*#endif -*#endif -*#endif -#else - ldd #3333 -#ifdef TEST7 - ldd #7777 -#else - ldaa #'N' -#endif -#endif -#else - ldd #3333 -#ifdef TEST17 - ldd #7777 -#else - ldaa #'N' -#endif -#endif -#endif -#endif -*#endif - - ORG $4000 - - - movb 5,-y,-16,sp - -#ifdef a4fn - movb 5,-y,-16,x -#endif - -#ifdef b32ff - movb 5,-y,-16,y -#endif - -; funny ` test -; stinky `` test -; - movb 5,-y,-small,pc -happy` - - movb 5,-y,-small,sp - movb 5,y-,-small,sp - - - dw 2 - db 2 - dc.w 2 - dc.b 2 - fcb 2 - fdb 2222 - ds 34 - ds.b 34 - ds.w 34 - rmb 34 - rmw 34 - -bb equ 1 - -#ifdef aa - movb 5,-y,-small,x -#endif - - movb 5,-y,-small,y - -#ifdef aa - movb 5,-y,0,pc -#endif - - movb 5,-y,0,sp - trap $39 - -#ifdef aa - bclr 1,+sp,#$55 - bclr 1,sp-,#$55 -#endif - -#ifdef bb - bclr 1,+x,$55 - bclr 1,+x,#$55 -#endif - - bclr dir,$55 - bclr dir,#$55 - - bclr ext,$55 - bclr ext,#$55 - - brclr 1,+sp,$55, * - brclr 1,+sp,#$55, * - - brset 1,+sp,$55,* - brset 1,+sp,#$55,* - - brset dir,$55,* - brset dir,#$55,* - - brset ext,$55,* - brset ext,#$55,* - - bset 1,+sp,$55 - bset 1,+sp,#$55 - - bset dir,$55 - bset dir,#$55 - - movw ext, 2,x - movw 2,x, 0,x - - movb 1,sp, ext - movb 1,sp, 12,x - movw 2,sp, ext - movw 2,sp, 12,x - - - movb #immed, 1,-sp - movw ext, 2,-sp - movb ext, 1,-sp - movw #immed, 2,-sp - movw #immed, 2,-sp - aba - abx - aby - ALIGN 0 - adca #immed - adca #immed - adca #immed - adca #immed - adca #immed -#ifndef dense - adca 1,+sp -#else - adca 1,+x -#endif - adca 1,+y - LOC - adca 8,+sp ; a comma is in , order in the comment - adca 8,+y - adca ,pc - adca ,sp - adca ,x - - adca ,y - adca 1,-sp -reset - adca 1,-x - adca 1,-y - adca 8,-sp -reset` - adca 8,-x - adca 8,-y - adca -1,sp - adca -1,x -* -* helwo warry bud -* hewe is you comment -* - adca -1,y - adca -16,sp - lbls reset ;mert - jsr reset-*,pc - jsr *,pc - jsr * - lbls * - adca -16,x - adca -16,y - adca -17,sp - ALIGN 1 - adca -17,x - adca -17,y - ALIGN 3 - adca -small,pc - adca -small,sp - adca -small,x - ALIGN 7 - adca -small,y - adca 0,pc - adca 0,sp - adca 0,x - adca 0,y - adca 1,sp+ - adca 1,x+ - adca ext,x - adca ext,x - adca ext,x - adca ext,x - adca ext,x - adca 1,y+ - adca 1,sp - adca 1,x - adca 1,y - adca 1,sp- - adca 1,x- - adca 1,y- - adca 125,pc - adca 125,sp - adca 125,x - adca 125,y - adca 15,sp - adca 15,x - adca 15,y - adca 16,sp - adca 16,x - adca 16,y - adca 8,sp+ - adca 8,x+ - adca 8,y+ - adca 8,sp- - adca 8,x- - adca 8,y- - adca a,sp - adca a,x - adca a,y - adca b,sp - adca b,x - adca b,y - adca d,sp - adca d,x - adca d,y - adca dir - adca dir - adca ext - adca ext - adca ext,sp - adca ext,x - adca ext,y - adca ind,pc - adca ind,sp - adca ind,x - adca ind,y - adca small,pc - adca small,sp - adca small,x - adca small,y - adcb #immed - adcb 1,+sp - adcb -small,pc - adcb 125,pc - adcb dir - adcb ext - adcb ext,sp - adda #immed - adda 1,+sp - adda dir - adda ext - adda ext - addb #immed - addb 1,+sp - addb dir - addb ext - addd #immed - addd 1,+sp - addd dir - addd ext - anda #immed - anda 1,+sp - anda dir - anda ext - andb #immed - andb 1,+sp - andb dir - andb ext - andcc #immed - asl 1,+sp - asl dir - asl ext - asla - aslb - asld - asr 1,+sp - asr dir - asr ext - asra - asrb - bcc * - bcs * - beq * - bge * - bgt * - bhi * - bita #immed - bita 1,+sp - bita dir - bita ext - bitb #immed - bitb 1,+sp - bitb dir - bitb ext - ble * - bls * - blt * - bmi * - bne * - bpl * - bra * - brn * - bsr * - bvc * - bvs * - cba - clc - cli - clr 1,+sp - clr dir - clr ext - clra - clrb - clv - cmpa #immed - cmpa 1,+sp - cmpa dir - cmpa ext - - cmpb #immed - cmpb #immed - cmpb 1,+sp - cmpb 1,+x - cmpb 1,+y - cmpb 8,+sp - cmpb 8,+x - cmpb 8,+y - cmpb ,pc - cmpb ,sp - cmpb ,x - cmpb ,y - cmpb 1,-sp - cmpb 1,-x - cmpb 1,-y - cmpb 8,-sp - cmpb 8,-x - cmpb 8,-y - cmpb -1,sp - cmpb -1,x - cmpb -1,y - cmpb -16,sp - cmpb -16,x - cmpb -16,y - cmpb -17,sp - cmpb -17,x - cmpb -17,y - cmpb -small,pc - cmpb -small,sp - cmpb -small,x - cmpb -small,y - cmpb 0,pc - cmpb 0,sp - cmpb 0,x - cmpb 0,y - cmpb 1,sp+ - cmpb 1,x+ - cmpb 1,y+ - cmpb 1,sp - cmpb 1,x - cmpb 1,y - cmpb 1,sp- - cmpb 1,x- - cmpb 1,y- - cmpb 125,pc - cmpb 125,sp - cmpb 125,x - cmpb 125,y - cmpb 15,sp - cmpb 15,x - cmpb 15,y - cmpb 16,sp - cmpb 16,x - cmpb 16,y - cmpb 8,sp+ - cmpb 8,x+ - cmpb 8,y+ - cmpb 8,sp- - cmpb 8,x- - cmpb 8,y- - cmpb a,sp - cmpb a,x - cmpb a,y - cmpb b,sp - cmpb b,x - cmpb b,y - cmpb d,sp - cmpb d,x - cmpb d,y - cmpb dir - cmpb dir - cmpb ext - cmpb ext - cmpb ext,sp - cmpb ext,x - cmpb ext,y - cmpb ind,pc - cmpb ind,sp - cmpb ind,x - cmpb ind,y - cmpb small,pc - cmpb small,sp - cmpb small,x - cmpb small,y - com 1,+sp - com 1,+x - com 1,+y - com 8,+sp - com 8,+x - com 8,+y - com ,pc - com ,sp - com ,x - com ,y - com 1,-sp - com 1,-x - com 1,-y - com 8,-sp - com 8,-x - com 8,-y - com -1,sp - com -1,x - com -1,y - com -16,sp - com -16,x - com -16,y - com -17,sp - com -17,x - com -17,y - com -small,pc - com -small,sp - com -small,x - com -small,y - com 0,pc - com 0,sp - com 0,x - com 0,y - com 1,sp+ - com 1,x+ - com 1,y+ - com 1,sp - com 1,x - com 1,y - com 1,sp- - com 1,x- - com 1,y- - com 125,pc - com 125,sp - com 125,x - com 125,y - com 15,sp - com 15,x - com 15,y - com 16,sp - com 16,x - com 16,y - com 8,sp+ - com 8,x+ - com 8,y+ - com 8,sp- - com 8,x- - com 8,y- - com a,sp - com a,x - com a,y - com b,sp - com b,x - com b,y - com d,sp - com d,x - com d,y - com dir - com ext - com ext - com ext,sp - com ext,x - com ext,y - com ind,pc - com ind,sp - com ind,x - com ind,y - com small,pc - com small,sp - com small,x - com small,y - coma - comb - cpd #immed - cpd #immed - cpd 1,+sp - cpd 1,+x - cpd 1,+y - cpd 8,+sp - cpd 8,+x - cpd 8,+y - cpd ,pc - cpd ,sp - cpd ,x - cpd ,y - cpd 1,-sp - cpd 1,-x - cpd 1,-y - cpd 8,-sp - cpd 8,-x - cpd 8,-y - cpd -1,sp - cpd -1,x - cpd -1,y - cpd -16,sp - cpd -16,x - cpd -16,y - cpd -17,sp - cpd -17,x - cpd -17,y - cpd -small,pc - cpd -small,sp - cpd -small,x - cpd -small,y - cpd 0,pc - cpd 0,sp - cpd 0,x - cpd 0,y - cpd 1,sp+ - cpd 1,x+ - cpd 1,y+ - cpd 1,sp - cpd 1,x - cpd 1,y - cpd 1,sp- - cpd 1,x- - cpd 1,y- - cpd 125,pc - cpd 125,sp - cpd 125,x - cpd 125,y - cpd 15,sp - cpd 15,x - cpd 15,y - cpd 16,sp - cpd 16,x - cpd 16,y - cpd 8,sp+ - cpd 8,x+ - cpd 8,y+ - cpd 8,sp- - cpd 8,x- - cpd 8,y- - cpd a,sp - cpd a,x - cpd a,y - cpd b,sp - cpd b,x - cpd b,y - cpd d,sp - cpd d,x - cpd d,y - cpd dir - cpd dir - cpd ext - cpd ext - cpd ext,sp - cpd ext,x - cpd ext,y - cpd ind,pc - cpd ind,sp - cpd ind,x - cpd ind,y - cpd small,pc - cpd small,sp - cpd small,x - cpd small,y - cps #immed - cps 1,+sp - cps 1,+x - cps 1,+y - cps 8,+sp - cps 8,+x - cps 8,+y - cps ,pc - cps ,sp - cps ,x - cps ,y - cps 1,-sp - cps 1,-x - cps 1,-y - cps 8,-sp - cps 8,-x - cps 8,-y - cps -1,sp - cps -1,x - cps -1,y - cps -16,sp - cps -16,x - cps -16,y - cps -17,sp - cps -17,x - cps -17,y - cps -small,pc - cps -small,sp - cps -small,x - cps -small,y - cps 0,pc - cps 0,sp - cps 0,x - cps 0,y - cps 1,sp+ - cps 1,x+ - cps 1,y+ - cps 1,sp - cps 1,x - cps 1,y - cps 1,sp- - cps 1,x- - cps 1,y- - cps 125,pc - cps 125,sp - cps 125,x - cps 125,y - cps 15,sp - cps 15,x - cps 15,y - cps 16,sp - cps 16,x - cps 16,y - cps 8,sp+ - cps 8,x+ - cps 8,y+ - cps 8,sp- - cps 8,x- - cps 8,y- - cps a,sp - cps a,x - cps a,y - cps b,sp - cps b,x - cps b,y - cps d,sp - cps d,x - cps d,y - cps dir - cps dir - cps ext - cps ext - cps ext,sp - cps ext,x - cps ext,y - cps ind,pc - cps ind,sp - cps ind,x - cps ind,y - cps small,pc - cps small,sp - cps small,x - cps small,y - cpx #immed - cpx #immed - cpx 1,+sp - cpx 1,+x - cpx 1,+y - cpx 8,+sp - cpx 8,+x - cpx 8,+y - cpx ,pc - cpx ,sp - cpx ,x - cpx ,y - cpx 1,-sp - cpx 1,-x - cpx 1,-y - cpx 8,-sp - cpx 8,-x - cpx 8,-y - cpx -1,sp - cpx -1,x - cpx -1,y - cpx -16,sp - cpx -16,x - cpx -16,y - cpx -17,sp - cpx -17,x - cpx -17,y - cpx -small,pc - cpx -small,sp - cpx -small,x - cpx -small,y - cpx 0,pc - cpx 0,sp - cpx 0,x - cpx 0,y - cpx 1,sp+ - cpx 1,x+ - cpx 1,y+ - cpx 1,sp - cpx 1,x - cpx 1,y - cpx 1,sp- - cpx 1,x- - cpx 1,y- - cpx 125,pc - cpx 125,sp - cpx 125,x - cpx 125,y - cpx 15,sp - cpx 15,x - cpx 15,y - cpx 16,sp - cpx 16,x - cpx 16,y - cpx 8,sp+ - cpx 8,x+ - cpx 8,y+ - cpx 8,sp- - cpx 8,x- - cpx 8,y- - cpx a,sp - cpx a,x - cpx a,y - cpx b,sp - cpx b,x - cpx b,y - cpx d,sp - cpx d,x - cpx d,y - cpx dir - cpx dir - cpx ext - cpx ext - cpx ext,sp - cpx ext,x - cpx ext,y - cpx ind,pc - cpx ind,sp - cpx ind,x - cpx ind,y - cpx small,pc - cpx small,sp - cpx small,x - cpx small,y - cpy #immed - cpy #immed - cpy 1,+sp - cpy 1,+x - cpy 1,+y - cpy 8,+sp - cpy 8,+x - cpy 8,+y - cpy ,pc - cpy ,sp - cpy ,x - cpy ,y - cpy 1,-sp - cpy 1,-x - cpy 1,-y - cpy 8,-sp - cpy 8,-x - cpy 8,-y - cpy -1,sp - cpy -1,x - cpy -1,y - cpy -16,sp - cpy -16,x - cpy -16,y - cpy -17,sp - cpy -17,x - cpy -17,y - cpy -small,pc - cpy -small,sp - cpy -small,x - cpy -small,y - cpy 0,pc - cpy 0,sp - cpy 0,x - cpy 0,y - cpy 1,sp+ - cpy 1,x+ - cpy 1,y+ - cpy 1,sp - cpy 1,x - cpy 1,y - cpy 1,sp- - cpy 1,x- - cpy 1,y- - cpy 125,pc - cpy 125,sp - cpy 125,x - cpy 125,y - cpy 15,sp - cpy 15,x - cpy 15,y - cpy 16,sp - cpy 16,x - cpy 16,y - cpy 8,sp+ - cpy 8,x+ - cpy 8,y+ - cpy 8,sp- - cpy 8,x- - cpy 8,y- - cpy a,sp - cpy a,x - cpy a,y - cpy b,sp - cpy b,x - cpy b,y - cpy d,sp - cpy d,x - cpy d,y - cpy dir - cpy dir - cpy ext - cpy ext - cpy ext,sp - cpy ext,x - cpy ext,y - cpy ind,pc - cpy ind,sp - cpy ind,x - cpy ind,y - cpy small,pc - cpy small,sp - cpy small,x - cpy small,y - daa - dbne a, * - dbne b, * - dbne x, * - dbne y, * - dec 1,+sp - dec 1,+x - dec 1,+y - dec 8,+sp - dec 8,+x - dec 8,+y - dec ,pc - dec ,sp - dec ,x - dec ,y - dec 1,-sp - dec 1,-x - dec 1,-y - dec 8,-sp - dec 8,-x - dec 8,-y - dec -1,sp - dec -1,x - dec -1,y - dec -16,sp - dec -16,x - dec -16,y - dec -17,sp - dec -17,x - dec -17,y - dec -small,pc - dec -small,sp - dec -small,x - dec -small,y - dec 0,pc - dec 0,sp - dec 0,x - dec 0,y - dec 1,sp+ - dec 1,x+ - dec 1,y+ - dec 1,sp - dec 1,x - dec 1,y - dec 1,sp- - dec 1,x- - dec 1,y- - dec 125,pc - dec 125,sp - dec 125,x - dec 125,y - dec 15,sp - dec 15,x - dec 15,y - dec 16,sp - dec 16,x - dec 16,y - dec 8,sp+ - dec 8,x+ - dec 8,y+ - dec 8,sp- - dec 8,x- - dec 8,y- - dec a,sp - dec a,x - dec a,y - dec b,sp - dec b,x - dec b,y - dec d,sp - dec d,x - dec d,y - dec dir - dec ext - dec ext - dec ext,sp - dec ext,x - dec ext,y - dec ind,pc - dec ind,sp - dec ind,x - dec ind,y - dec small,pc - dec small,sp - dec small,x - dec small,y - deca - decb - des - dex - dey - ediv - edivs - emacs dir - emacs ext - emacs small - emaxd 1,+sp - emaxd 1,+x - emaxd 1,+y - emaxd 8,+sp - emaxd 8,+x - emaxd 8,+y - emaxd ,pc - emaxd ,sp - emaxd ,x - emaxd ,y - emaxd 1,-sp - emaxd 1,-x - emaxd 1,-y - emaxd 8,-sp - emaxd 8,-x - emaxd 8,-y - emaxd -1,sp - emaxd -1,x - emaxd -1,y - emaxd -16,sp - emaxd -16,x - emaxd -16,y - emaxd -17,sp - emaxd -17,x - emaxd -17,y - emaxd -small,pc - emaxd -small,sp - emaxd -small,x - emaxd -small,y - emaxd 0,pc - emaxd 0,sp - emaxd 0,x - emaxd 0,y - emaxd 1,sp+ - emaxd 1,x+ - emaxd 1,y+ - emaxd 1,sp - emaxd 1,x - emaxd 1,y - emaxd 1,sp- - emaxd 1,x- - emaxd 1,y- - emaxd 125,pc - emaxd 125,sp - emaxd 125,x - emaxd 125,y - emaxd 15,sp - emaxd 15,x - emaxd 15,y - emaxd 16,sp - emaxd 16,x - emaxd 16,y - emaxd 8,sp+ - emaxd 8,x+ - emaxd 8,y+ - emaxd 8,sp- - emaxd 8,x- - emaxd 8,y- - emaxd a,sp - emaxd a,x - emaxd a,y - emaxd b,sp - emaxd b,x - emaxd b,y - emaxd d,sp - emaxd d,x - emaxd d,y - emaxd ext,sp - emaxd ext,x - emaxd ext,y - emaxd ind,pc - emaxd ind,sp - emaxd ind,x - emaxd ind,y - emaxd small,pc - emaxd small,sp - emaxd small,x - emaxd small,y - emaxm 1,+sp - emaxm 1,+x - emaxm 1,+y - emaxm 8,+sp - emaxm 8,+x - emaxm 8,+y - emaxm ,pc - emaxm ,sp - emaxm ,x - emaxm ,y - emaxm 1,-sp - emaxm 1,-x - emaxm 1,-y - emaxm 8,-sp - emaxm 8,-x - emaxm 8,-y - emaxm -1,sp - emaxm -1,x - emaxm -1,y - emaxm -16,sp - emaxm -16,x - emaxm -16,y - emaxm -17,sp - emaxm -17,x - emaxm -17,y - emaxm -small,pc - emaxm -small,sp - emaxm -small,x - emaxm -small,y - emaxm 0,pc - emaxm 0,sp - emaxm 0,x - emaxm 0,y - emaxm 1,sp+ - emaxm 1,x+ - emaxm 1,y+ - emaxm 1,sp - emaxm 1,x - emaxm 1,y - emaxm 1,sp- - emaxm 1,x- - emaxm 1,y- - emaxm 125,pc - emaxm 125,sp - emaxm 125,x - emaxm 125,y - emaxm 15,sp - emaxm 15,x - emaxm 15,y - emaxm 16,sp - emaxm 16,x - emaxm 16,y - emaxm 8,sp+ - emaxm 8,x+ - emaxm 8,y+ - emaxm 8,sp- - emaxm 8,x- - emaxm 8,y- - emaxm a,sp - emaxm a,x - emaxm a,y - emaxm b,sp - emaxm b,x - emaxm b,y - emaxm d,sp - emaxm d,x - emaxm d,y - emaxm ext,sp - emaxm ext,x - emaxm ext,y - emaxm ind,pc - emaxm ind,sp - emaxm ind,x - emaxm ind,y - emaxm small,pc - emaxm small,sp - emaxm small,x - emaxm small,y - emind 1,+sp - emind 1,+x - emind 1,+y - emind 8,+sp - emind 8,+x - emind 8,+y - emind ,pc - emind ,sp - emind ,x - emind ,y - emind 1,-sp - emind 1,-x - emind 1,-y - emind 8,-sp - emind 8,-x - emind 8,-y - emind -1,sp - emind -1,x - emind -1,y - emind -16,sp - emind -16,x - emind -16,y - emind -17,sp - emind -17,x - emind -17,y - emind -small,pc - emind -small,sp - emind -small,x - emind -small,y - emind 0,pc - emind 0,sp - emind 0,x - emind 0,y - emind 1,sp+ - emind 1,x+ - emind 1,y+ - emind 1,sp - emind 1,x - emind 1,y - emind 1,sp- - emind 1,x- - emind 1,y- - emind 125,pc - emind 125,sp - emind 125,x - emind 125,y - emind 15,sp - emind 15,x - emind 15,y - emind 16,sp - emind 16,x - emind 16,y - emind 8,sp+ - emind 8,x+ - emind 8,y+ - emind 8,sp- - emind 8,x- - emind 8,y- - emind a,sp - emind a,x - emind a,y - emind b,sp - emind b,x - emind b,y - emind d,sp - emind d,x - emind d,y - emind ext,sp - emind ext,x - emind ext,y - emind ind,pc - emind ind,sp - emind ind,x - emind ind,y - emind small,pc - emind small,sp - emind small,x - emind small,y - eminm 1,+sp - eminm 1,+x - eminm 1,+y - eminm 8,+sp - eminm 8,+x - eminm 8,+y - eminm ,pc - eminm ,sp - eminm ,x - eminm ,y - eminm 1,-sp - eminm 1,-x - eminm 1,-y - eminm 8,-sp - eminm 8,-x - eminm 8,-y - eminm -1,sp - eminm -1,x - eminm -1,y - eminm -16,sp - eminm -16,x - eminm -16,y - eminm -17,sp - eminm -17,x - eminm -17,y - eminm -small,pc - eminm -small,sp - eminm -small,x - eminm -small,y - eminm 0,pc - eminm 0,sp - eminm 0,x - eminm 0,y - eminm 1,sp+ - eminm 1,x+ - eminm 1,y+ - eminm 1,sp - eminm 1,x - eminm 1,y - eminm 1,sp- - eminm 1,x- - eminm 1,y- - eminm 125,pc - eminm 125,sp - eminm 125,x - eminm 125,y - eminm 15,sp - eminm 15,x - eminm 15,y - eminm 16,sp - eminm 16,x - eminm 16,y - eminm 8,sp+ - eminm 8,x+ - eminm 8,y+ - eminm 8,sp- - eminm 8,x- - eminm 8,y- - eminm a,sp - eminm a,x - eminm a,y - eminm b,sp - eminm b,x - eminm b,y - eminm d,sp - eminm d,x - eminm d,y - eminm ext,sp - eminm ext,x - eminm ext,y - eminm ind,pc - eminm ind,sp - eminm ind,x - eminm ind,y - eminm small,pc - eminm small,sp - eminm small,x - eminm small,y - eora #immed - eora #immed - eora 1,+sp - eora 1,+x - eora 1,+y - eora 8,+sp - eora 8,+x - eora 8,+y - eora ,pc - eora ,sp - eora ,x - eora ,y - eora 1,-sp - eora 1,-x - eora 1,-y - eora 8,-sp - eora 8,-x - eora 8,-y - eora -1,sp - eora -1,x - eora -1,y - eora -16,sp - eora -16,x - eora -16,y - eora -17,sp - eora -17,x - eora -17,y - eora -small,pc - eora -small,sp - eora -small,x - eora -small,y - eora 0,pc - eora 0,sp - eora 0,x - eora 0,y - eora 1,sp+ - eora 1,x+ - eora 1,y+ - eora 1,sp - eora 1,x - eora 1,y - eora 1,sp- - eora 1,x- - eora 1,y- - eora 125,pc - eora 125,sp - eora 125,x - eora 125,y - eora 15,sp - eora 15,x - eora 15,y - eora 16,sp - eora 16,x - eora 16,y - eora 8,sp+ - eora 8,x+ - eora 8,y+ - eora 8,sp- - eora 8,x- - eora 8,y- - eora a,sp - eora a,x - eora a,y - eora b,sp - eora b,x - eora b,y - eora d,sp - eora d,x - eora d,y - eora dir - eora dir - eora ext - eora ext - eora ext,sp - eora ext,x - eora ext,y - eora ind,pc - eora ind,sp - eora ind,x - eora ind,y - eora small,pc - eora small,sp - eora small,x - eora small,y - eorb #immed - eorb #immed - eorb 1,+sp - eorb 1,+x - eorb 1,+y - eorb 8,+sp - eorb 8,+x - eorb 8,+y - eorb ,pc - eorb ,sp - eorb ,x - eorb ,y - eorb 1,-sp - eorb 1,-x - eorb 1,-y - eorb 8,-sp - eorb 8,-x - eorb 8,-y - eorb -1,sp - eorb -1,x - eorb -1,y - eorb -16,sp - eorb -16,x - eorb -16,y - eorb -17,sp - eorb -17,x - eorb -17,y - eorb -small,pc - eorb -small,sp - eorb -small,x - eorb -small,y - eorb 0,pc - eorb 0,sp - eorb 0,x - eorb 0,y - eorb 1,sp+ - eorb 1,x+ - eorb 1,y+ - eorb 1,sp - eorb 1,x - eorb 1,y - eorb 1,sp- - eorb 1,x- - eorb 1,y- - eorb 125,pc - eorb 125,sp - eorb 125,x - eorb 125,y - eorb 15,sp - eorb 15,x - eorb 15,y - eorb 16,sp - eorb 16,x - eorb 16,y - eorb 8,sp+ - eorb 8,x+ - eorb 8,y+ - eorb 8,sp- - eorb 8,x- - eorb 8,y- - eorb a,sp - eorb a,x - eorb a,y - eorb b,sp - eorb b,x - eorb b,y - eorb d,sp - eorb d,x - eorb d,y - eorb dir - eorb dir - eorb ext - eorb ext - eorb ext,sp - eorb ext,x - eorb ext,y - eorb ind,pc - eorb ind,sp - eorb ind,x - eorb ind,y - eorb small,pc - eorb small,sp - eorb small,x - eorb small,y - etbl 5,x - exg a, a - exg a, b - exg a, b - exg a, ccr - exg a, d - exg a, sp - exg a, x - exg a, x - exg a, y - exg a, x - exg b, a - exg b, b - exg b, ccr - exg b, d - exg b, sp - exg b, x - exg b, y - exg ccr, a - exg ccr, b - exg ccr, ccr - exg ccr, d - exg ccr, sp - exg ccr, x - exg ccr, y - exg d, a - exg d, b - exg d, ccr - exg d, d - exg d, sp - exg d, x - exg d, y - exg sp, a - exg sp, b - exg sp, ccr - exg sp, d - exg sp, sp - exg sp, x - exg sp, y - exg x, a - exg x, b - exg x, ccr - exg x, d - exg x, sp - exg x, x - exg x, y - exg x,y - exg y, a - exg y, b - exg y, ccr - exg y, d - exg y, sp - exg y, x - exg y, y - fdiv - idiv - inc 1,+sp - inc 1,+x - inc 1,+y - inc 8,+sp - inc 8,+x - inc 8,+y - inc ,pc - inc ,sp - inc ,x - inc ,y - inc 1,-sp - inc 1,-x - inc 1,-y - inc 8,-sp - inc 8,-x - inc 8,-y - inc -1,sp - inc -1,x - inc -1,y - inc -16,sp - inc -16,x - inc -16,y - inc -17,sp - inc -17,x - inc -17,y - inc -small,pc - inc -small,sp - inc -small,x - inc -small,y - inc 0,pc - inc 0,sp - inc 0,x - inc 0,y - inc 1,sp+ - inc 1,x+ - inc 1,y+ - inc 1,sp - inc 1,x - inc 1,y - inc 1,sp- - inc 1,x- - inc 1,y- - inc 125,pc - inc 125,sp - inc 125,x - inc 125,y - inc 15,sp - inc 15,x - inc 15,y - inc 16,sp - inc 16,x - inc 16,y - inc 8,sp+ - inc 8,x+ - inc 8,y+ - inc 8,sp- - inc 8,x- - inc 8,y- - inc a,sp - inc a,x - inc a,y - inc b,sp - inc b,x - inc b,y - inc d,sp - inc d,x - inc d,y - inc dir - inc ext - inc ext - inc ext,sp - inc ext,x - inc ext,y - inc ind,pc - inc ind,sp - inc ind,x - inc ind,y - inc small,pc - inc small,sp - inc small,x - inc small,y - inca - incb - ins - inx - iny - jmp 1,+sp - jmp 1,+x - jmp 1,+y - jmp 8,+sp - jmp 8,+x - jmp 8,+y - jmp ,pc - jmp ,sp - jmp ,x - jmp ,y - jmp 1,-sp - jmp 1,-x - jmp 1,-y - jmp 8,-sp - jmp 8,-x - jmp 8,-y - jmp -1,sp - jmp -1,x - jmp -1,y - jmp -16,sp - jmp -16,x - jmp -16,y - jmp -17,sp - jmp -17,x - jmp -17,y - jmp -small,pc - jmp -small,sp - jmp -small,x - jmp -small,y - jmp 0,pc - jmp 0,sp - jmp 0,x - jmp 0,y - jmp 1,sp+ - jmp 1,x+ - jmp 1,y+ - jmp 1,sp - jmp 1,x - jmp 1,y - jmp 1,sp- - jmp 1,x- - jmp 1,y- - jmp 125,pc - jmp 125,sp - jmp 125,x - jmp 125,y - jmp 15,sp - jmp 15,x - jmp 15,y - jmp 16,sp - jmp 16,x - jmp 16,y - jmp 8,sp+ - jmp 8,x+ - jmp 8,y+ - jmp 8,sp- - jmp 8,x- - jmp 8,y- - jmp a,sp - jmp a,x - jmp a,y - jmp b,sp - jmp b,x - jmp b,y - jmp d,sp - jmp d,x - jmp d,y - jmp dir - jmp ext - jmp ext - jmp ext,sp - jmp ext,x - jmp ext,y - jmp ind,pc - jmp ind,sp - jmp ind,x - jmp ind,y - jmp small,pc - jmp small,sp - jmp small,x - jmp small,y - jsr 1,+sp - jsr 1,+x - jsr 1,+y - jsr 8,+sp - jsr 8,+x - jsr 8,+y - jsr ,pc - jsr ,sp - jsr ,x - jsr ,y - jsr 1,-sp - jsr 1,-x - jsr 1,-y - jsr 8,-sp - jsr 8,-x - jsr 8,-y - jsr -1,sp - jsr -1,x - jsr -1,y - jsr -16,sp - jsr -16,x - jsr -16,y - jsr -17,sp - jsr -17,x - jsr -17,y - jsr -small,pc - jsr -small,sp - jsr -small,x - jsr -small,y - jsr 0,pc - jsr 0,sp - jsr 0,x - jsr 0,y - jsr 1,sp+ - jsr 1,x+ - jsr 1,y+ - jsr 1,sp - jsr 1,x - jsr 1,y - jsr 1,sp- - jsr 1,x- - jsr 1,y- - jsr 125,pc - jsr 125,sp - jsr 125,x - jsr 125,y - jsr 15,sp - jsr 15,x - jsr 15,y - jsr 16,sp - jsr 16,x - jsr 16,y - jsr 8,sp+ - jsr 8,x+ - jsr 8,y+ - jsr 8,sp- - jsr 8,x- - jsr 8,y- - jsr a,sp - jsr a,x - jsr a,y - jsr b,sp - jsr b,x - jsr b,y - jsr d,sp - jsr d,x - jsr d,y - jsr dir - jsr dir - jsr ext - jsr ext - jsr ext - jsr ext,sp - jsr ext,x - jsr ext,y - jsr ind,pc - jsr ind,sp - jsr ind,x - jsr ind,y - jsr small,pc - jsr small,sp - jsr small,x - jsr small,y - lbcc * - lbcc * - lbcs * - lbeq * - lbge * - lbgt * - lbhi * - lble * - lbls * - lblt * - lbmi * - lbne * - lbpl * - lbra * - lbrn * - lbls * - lbvc * - lbvs * - ldaa #immed - ldaa #immed - ldaa 1,+sp - ldaa 1,+x - ldaa 1,+y - ldaa 8,+sp - ldaa 8,+x - ldaa 8,+y - ldaa ,pc - ldaa ,sp - ldaa ,x - ldaa ,y - ldaa 1,-sp - ldaa 1,-x - ldaa 1,-y - ldaa 8,-sp - ldaa 8,-x - ldaa 8,-y - ldaa -1,sp - ldaa -1,x - ldaa -1,y - ldaa -16,sp - ldaa -16,x - ldaa -16,y - ldaa -17,sp - ldaa -17,x - ldaa -17,y - ldaa -small,pc - ldaa -small,sp - ldaa -small,x - ldaa -small,y - ldaa 0,pc - ldaa 0,sp - ldaa 0,x - ldaa 0,y - ldaa 1,sp+ - ldaa 1,x+ - ldaa 1,y+ - ldaa 1,sp - ldaa 1,x - ldaa 1,y - ldaa 1,sp- - ldaa 1,x- - ldaa 1,y- - ldaa 125,pc - ldaa 125,sp - ldaa 125,x - ldaa 125,y - ldaa 15,sp - ldaa 15,x - ldaa 15,y - ldaa 16,sp - ldaa 16,x - ldaa 16,y - ldaa 8,sp+ - ldaa 8,x+ - ldaa 8,y+ - ldaa 8,sp- - ldaa 8,x- - ldaa 8,y- - ldaa a,sp - ldaa a,x - ldaa a,y - ldaa b,sp - ldaa b,x - ldaa b,y - ldaa d,sp - ldaa d,x - ldaa d,y - ldaa dir - ldaa dir - ldaa ext - ldaa ext - ldaa ext,sp - ldaa ext,x - ldaa ext,y - ldaa ind,pc - ldaa ind,sp - ldaa ind,x - ldaa ind,y - ldaa small,pc - ldaa small,sp - ldaa small,x - ldaa small,y - ldab #immed - ldab #immed - ldab 1,+sp - ldab 1,+x - ldab 1,+y - ldab 8,+sp - ldab 8,+x - ldab 8,+y - ldab ,pc - ldab ,sp - ldab ,x - ldab ,y - ldab 1,-sp - ldab 1,-x - ldab 1,-y - ldab 8,-sp - ldab 8,-x - ldab 8,-y - ldab -1,sp - ldab -1,x - ldab -1,y - ldab -16,sp - ldab -16,x - ldab -16,y - ldab -17,sp - ldab -17,x - ldab -17,y - ldab -small,pc - ldab -small,sp - ldab -small,x - ldab -small,y - ldab 0,pc - ldab 0,sp - ldab 0,x - ldab 0,y - ldab 1,sp+ - ldab 1,x+ - ldab 1,y+ - ldab 1,sp - ldab 1,x - ldab 1,y - ldab 1,sp- - ldab 1,x- - ldab 1,y- - ldab 125,pc - ldab 125,sp - ldab 125,x - ldab 125,y - ldab 15,sp - ldab 15,x - ldab 15,y - ldab 16,sp - ldab 16,x - ldab 16,y - ldab 8,sp+ - ldab 8,x+ - ldab 8,y+ - ldab 8,sp- - ldab 8,x- - ldab 8,y- - ldab a,sp - ldab a,x - ldab a,y - ldab b,sp - ldab b,x - ldab b,y - ldab d,sp - ldab d,x - ldab d,y - ldab dir - ldab dir - ldab ext - ldab ext - ldab ext,sp - ldab ext,x - ldab ext,y - ldab ind,pc - ldab ind,sp - ldab ind,x - ldab ind,y - ldab small,pc - ldab small,sp - ldab small,x - ldab small,y - ldd #immed - ldd #immed - ldd 1,+sp - ldd 1,+x - ldd 1,+y - ldd 8,+sp - ldd 8,+x - ldd 8,+y - ldd ,pc - ldd ,sp - ldd ,x - ldd ,y - ldd 1,-sp - ldd 1,-x - ldd 1,-y - ldd 8,-sp - ldd 8,-x - ldd 8,-y - ldd -1,sp - ldd -1,x - ldd -1,y - ldd -16,sp - ldd -16,x - ldd -16,y - ldd -17,sp - ldd -17,x - ldd -17,y - ldd -small,pc - ldd -small,sp - ldd -small,x - ldd -small,y - ldd 0,pc - ldd 0,sp - ldd 0,x - ldd 0,y - ldd 1,sp+ - ldd 1,x+ - ldd 1,y+ - ldd 1,sp - ldd 1,x - ldd 1,y - ldd 1,sp- - ldd 1,x- - ldd 1,y- - ldd 125,pc - ldd 125,sp - ldd 125,x - ldd 125,y - ldd 15,sp - ldd 15,x - ldd 15,y - ldd 16,sp - ldd 16,x - ldd 16,y - ldd 8,sp+ - ldd 8,x+ - ldd 8,y+ - ldd 8,sp- - ldd 8,x- - ldd 8,y- - ldd a,sp - ldd a,x - ldd a,y - ldd b,sp - ldd b,x - ldd b,y - ldd d,sp - ldd d,x - ldd d,y - ldd dir - ldd dir - ldd ext - ldd ext - ldd ext,sp - ldd ext,x - ldd ext,y - ldd ind,pc - ldd ind,sp - ldd ind,x - ldd ind,y - ldd small,pc - ldd small,sp - ldd small,x - ldd small,y - lds #immed - lds #immed - lds 1,+sp - lds 1,+x - lds 1,+y - lds 8,+sp - lds 8,+x - lds 8,+y - lds ,pc - lds ,sp - lds ,x - lds ,y - lds 1,-sp - lds 1,-x - lds 1,-y - lds 8,-sp - lds 8,-x - lds 8,-y - lds -1,sp - lds -1,x - lds -1,y - lds -16,sp - lds -16,x - lds -16,y - lds -17,sp - lds -17,x - lds -17,y - lds -small,pc - lds -small,sp - lds -small,x - lds -small,y - lds 0,pc - lds 0,sp - lds 0,x - lds 0,y - lds 1,sp+ - lds 1,x+ - lds 1,y+ - lds 1,sp - lds 1,x - lds 1,y - lds 1,sp- - lds 1,x- - lds 1,y- - lds 125,pc - lds 125,sp - lds 125,x - lds 125,y - lds 15,sp - lds 15,x - lds 15,y - lds 16,sp - lds 16,x - lds 16,y - lds 8,sp+ - lds 8,x+ - lds 8,y+ - lds 8,sp- - lds 8,x- - lds 8,y- - lds a,sp - lds a,x - lds a,y - lds b,sp - lds b,x - lds b,y - lds d,sp - lds d,x - lds d,y - lds dir - lds ext - lds ext,sp - lds ext,x - lds ext,y - lds ind,pc - lds ind,sp - lds ind,x - lds ind,y - lds small,pc - lds small,sp - lds small,x - lds small,y - ldx #immed - ldx #immed - ldx 1,+sp - ldx 1,+x - ldx 1,+y - ldx 8,+sp - ldx 8,+x - ldx 8,+y - ldx ,pc - ldx ,sp - ldx ,x - ldx ,y - ldx 1,-sp - ldx 1,-x - ldx 1,-y - ldx 8,-sp - ldx 8,-x - ldx 8,-y - ldx -1,sp - ldx -1,x - ldx -1,y - ldx -16,sp - ldx -16,x - ldx -16,y - ldx -17,sp - ldx -17,x - ldx -17,y - ldx -small,pc - ldx -small,sp - ldx -small,x - ldx -small,y - ldx 0,pc - ldx 0,sp - ldx 0,x - ldx 0,y - ldx 1,sp+ - ldx 1,x+ - ldx 1,y+ - ldx 1,sp - ldx 1,x - ldx 1,y - ldx 1,sp- - ldx 1,x- - ldx 1,y- - ldx 125,pc - ldx 125,sp - ldx 125,x - ldx 125,y - ldx 15,sp - ldx 15,x - ldx 15,y - ldx 16,sp - ldx 16,x - ldx 16,y - ldx 8,sp+ - ldx 8,x+ - ldx 8,y+ - ldx 8,sp- - ldx 8,x- - ldx 8,y- - ldx a,sp - ldx a,x - ldx a,y - ldx b,sp - ldx b,x - ldx b,y - ldx d,sp - ldx d,x - ldx d,y - ldx dir - ldx dir - ldx ext - ldx ext - ldx ext,sp - ldx ext,x - ldx ext,y - ldx ind,pc - ldx ind,sp - ldx ind,x - ldx ind,y - ldx small,pc - ldx small,sp - ldx small,x - ldx small,y - ldy #immed - ldy #immed - ldy 1,+sp - ldy 1,+x - ldy 1,+y - ldy 8,+sp - ldy 8,+x - ldy 8,+y - ldy ,pc - ldy ,sp - ldy ,x - ldy ,y - ldy 1,-sp - ldy 1,-x - ldy 1,-y - ldy 8,-sp - ldy 8,-x - ldy 8,-y - ldy -1,sp - ldy -1,x - ldy -1,y - ldy -16,sp - ldy -16,x - ldy -16,y - ldy -17,sp - ldy -17,x - ldy -17,y - ldy -small,pc - ldy -small,sp - ldy -small,x - ldy -small,y - ldy 0,pc - ldy 0,sp - ldy 0,x - ldy 0,y - ldy 1,sp+ - ldy 1,x+ - ldy 1,y+ - ldy 1,sp - ldy 1,x - ldy 1,y - ldy 1,sp- - ldy 1,x- - ldy 1,y- - ldy 125,pc - ldy 125,sp - ldy 125,x - ldy 125,y - ldy 15,sp - ldy 15,x - ldy 15,y - ldy 16,sp - ldy 16,x - ldy 16,y - ldy 8,sp+ - ldy 8,x+ - ldy 8,y+ - ldy 8,sp- - ldy 8,x- - ldy 8,y- - ldy a,sp - ldy a,x - ldy a,y - ldy b,sp - ldy b,x - ldy b,y - ldy d,sp - ldy d,x - ldy d,y - ldy dir - ldy dir - ldy ext - ldy ext - ldy ext,sp - ldy ext,x - ldy ext,y - ldy ind,pc - ldy ind,sp - ldy ind,x - ldy ind,y - ldy small,pc - ldy small,sp - ldy small,x - ldy small,y - leas 1,+sp - leas 1,+x - leas 1,+y - leas 8,+sp - leas 8,+x - leas 8,+y - leas ,pc - leas ,sp - leas ,x - leas ,y - leas 1,-sp - leas 1,-x - leas 1,-y - leas 8,-sp - leas 8,-x - leas 8,-y - leas -1,sp - leas -1,x - leas -1,y - leas -16,sp - leas -16,x - leas -16,y - leas -17,sp - leas -17,x - leas -17,y - leas -small,pc - leas -small,sp - leas -small,x - leas -small,y - leas 0,pc - leas 0,sp - leas 0,x - leas 0,y - leas 1,sp+ - leas 1,x+ - leas 1,y+ - leas 1,sp - leas 1,x - leas 1,y - leas 1,sp- - leas 1,x- - leas 1,y- - leas 125,pc - leas 125,sp - leas 125,x - leas 125,y - leas 15,sp - leas 15,x - leas 15,y - leas 16,sp - leas 16,x - leas 16,y - leas 8,sp+ - leas 8,x+ - leas 8,y+ - leas 8,sp- - leas 8,x- - leas 8,y- - leas a,sp - leas a,x - leas a,y - leas b,sp - leas b,x - leas b,y - leas d,sp - leas d,x - leas d,y - leas ext,sp - leas ext,x - leas ext,y - leas ind,pc - leas ind,sp - leas ind,x - leas ind,y - leas small,pc - leas small,sp - leas small,x - leas small,y - leax 1,+sp - leax 1,+x - leax 1,+y - leax 8,+sp - leax 8,+x - leax 8,+y - leax ,pc - leax ,sp - leax ,x - leax ,y - leax 1,-sp - leax 1,-x - leax 1,-y - leax 8,-sp - leax 8,-x - leax 8,-y - leax -1,sp - leax -1,x - leax -1,y - leax -16,sp - leax -16,x - leax -16,y - leax -17,sp - leax -17,x - leax -17,y - leax -small,pc - leax -small,sp - leax -small,x - leax -small,y - leax 0,pc - leax 0,sp - leax 0,x - leax 0,y - leax 1,sp+ - leax 1,x+ - leax 1,y+ - leax 1,sp - leax 1,x - leax 1,y - leax 1,sp- - leax 1,x- - leax 1,y- - leax 125,pc - leax 125,sp - leax 125,x - leax 125,y - leax 15,sp - leax 15,x - leax 15,y - leax 16,sp - leax 16,x - leax 16,y - leax 8,sp+ - leax 8,x+ - leax 8,y+ - leax 8,sp- - leax 8,x- - leax 8,y- - leax a,sp - leax a,x - leax a,y - leax b,sp - leax b,x - leax b,y - leax d,sp - leax d,x - leax d,y - leax ext,sp - leax ext,x - leax ext,y - leax ind,pc - leax ind,sp - leax ind,x - leax ind,y - leax small,pc - leax small,sp - leax small,x - leax small,y - leay 1,+sp - leay 1,+x - leay 1,+y - leay 8,+sp - leay 8,+x - leay 8,+y - leay ,pc - leay ,sp - leay ,x - leay ,y - leay 1,-sp - leay 1,-x - leay 1,-y - leay 8,-sp - leay 8,-x - leay 8,-y - leay -1,sp - leay -1,x - leay -1,y - leay -16,sp - leay -16,x - leay -16,y - leay -17,sp - leay -17,x - leay -17,y - leay -small,pc - leay -small,sp - leay -small,x - leay -small,y - leay 0,pc - leay 0,sp - leay 0,x - leay 0,y - leay 1,sp+ - leay 1,x+ - leay 1,y+ - leay 1,sp - leay 1,x - leay 1,y - leay 1,sp- - leay 1,x- - leay 1,y- - leay 125,pc - leay 125,sp - leay 125,x - leay 125,y - leay 15,sp - leay 15,x - leay 15,y - leay 16,sp - leay 16,x - leay 16,y - leay 8,sp+ - leay 8,x+ - leay 8,y+ - leay 8,sp- - leay 8,x- - leay 8,y- - leay a,sp - leay a,x - leay a,y - leay b,sp - leay b,x - leay b,y - leay d,sp - leay d,x - leay d,y - leay ext,sp - leay ext,x - leay ext,y - leay ind,pc - leay ind,sp - leay ind,x - leay ind,y - leay small,pc - leay small,sp - leay small,x - leay small,y - lsl 1,+sp - lsl 1,+x - lsl 1,+y - lsl 8,+sp - lsl 8,+x - lsl 8,+y - lsl ,pc - lsl ,sp - lsl ,x - lsl ,y - lsl 1,-sp - lsl 1,-x - lsl 1,-y - lsl 8,-sp - lsl 8,-x - lsl 8,-y - lsl -1,sp - lsl -1,x - lsl -1,y - lsl -16,sp - lsl -16,x - lsl -16,y - lsl -17,sp - lsl -17,x - lsl -17,y - lsl -small,pc - lsl -small,sp - lsl -small,x - lsl -small,y - lsl 0,pc - lsl 0,sp - lsl 0,x - lsl 0,y - lsl 1,sp+ - lsl 1,x+ - lsl 1,y+ - lsl 1,sp - lsl 1,x - lsl 1,y - lsl 1,sp- - lsl 1,x- - lsl 1,y- - lsl 125,pc - lsl 125,sp - lsl 125,x - lsl 125,y - lsl 15,sp - lsl 15,x - lsl 15,y - lsl 16,sp - lsl 16,x - lsl 16,y - lsl 8,sp+ - lsl 8,x+ - lsl 8,y+ - lsl 8,sp- - lsl 8,x- - lsl 8,y- - lsl a,sp - lsl a,x - lsl a,y - lsl b,sp - lsl b,x - lsl b,y - lsl d,sp - lsl d,x - lsl d,y - lsl dir - lsl ext - lsl ext - lsl ext,sp - lsl ext,x - lsl ext,y - lsl ind,pc - lsl ind,sp - lsl ind,x - lsl ind,y - lsl small,pc - lsl small,sp - lsl small,x - lsl small,y - lsla - lslb - lsld - lsr 1,+sp - lsr 1,+x - lsr 1,+y - lsr 8,+sp - lsr 8,+x - lsr 8,+y - lsr ,pc - lsr ,sp - lsr ,x - lsr ,y - lsr 1,-sp - lsr 1,-x - lsr 1,-y - lsr 8,-sp - lsr 8,-x - lsr 8,-y - lsr -1,sp - lsr -1,x - lsr -1,y - lsr -16,sp - lsr -16,x - lsr -16,y - lsr -17,sp - lsr -17,x - lsr -17,y - lsr -small,pc - lsr -small,sp - lsr -small,x - lsr -small,y - lsr 0,pc - lsr 0,sp - lsr 0,x - lsr 0,y - lsr 1,sp+ - lsr 1,x+ - lsr 1,y+ - lsr 1,sp - lsr 1,x - lsr 1,y - lsr 1,sp- - lsr 1,x- - lsr 1,y- - lsr 125,pc - lsr 125,sp - lsr 125,x - lsr 125,y - lsr 15,sp - lsr 15,x - lsr 15,y - lsr 16,sp - lsr 16,x - lsr 16,y - lsr 8,sp+ - lsr 8,x+ - lsr 8,y+ - lsr 8,sp- - lsr 8,x- - lsr 8,y- - lsr a,sp - lsr a,x - lsr a,y - lsr b,sp - lsr b,x - lsr b,y - lsr d,sp - lsr d,x - lsr d,y - lsr dir - lsr ext - lsr ext - lsr ext,sp - lsr ext,x - lsr ext,y - lsr ind,pc - lsr ind,sp - lsr ind,x - lsr ind,y - lsr small,pc - lsr small,sp - lsr small,x - lsr small,y - lsra - lsrb - lsrd - lsrd - maxa 1,+sp - maxa 1,+x - maxa 1,+y - maxa 8,+sp - maxa 8,+x - maxa 8,+y - maxa ,pc - maxa ,sp - maxa ,x - maxa ,y - maxa 1,-sp - maxa 1,-x - maxa 1,-y - maxa 8,-sp - maxa 8,-x - maxa 8,-y - maxa -1,sp - maxa -1,x - maxa -1,y - maxa -16,sp - maxa -16,x - maxa -16,y - maxa -17,sp - maxa -17,x - maxa -17,y - maxa -small,pc - maxa -small,sp - maxa -small,x - maxa -small,y - maxa 0,pc - maxa 0,sp - maxa 0,x - maxa 0,y - maxa 1,sp+ - maxa 1,x+ - maxa 1,y+ - maxa 1,sp - maxa 1,x - maxa 1,y - maxa 1,sp- - maxa 1,x- - maxa 1,y- - maxa 125,pc - maxa 125,sp - maxa 125,x - maxa 125,y - maxa 15,sp - maxa 15,x - maxa 15,y - maxa 16,sp - maxa 16,x - maxa 16,y - maxa 8,sp+ - maxa 8,x+ - maxa 8,y+ - maxa 8,sp- - maxa 8,x- - maxa 8,y- - maxa a,sp - maxa a,x - maxa a,y - maxa b,sp - maxa b,x - maxa b,y - maxa d,sp - maxa d,x - maxa d,y - maxa ext,sp - maxa ext,x - maxa ext,y - maxa ind,pc - maxa ind,sp - maxa ind,x - maxa ind,y - maxa small,pc - maxa small,sp - maxa small,x - maxa small,y - maxm 1,+sp - maxm 1,+x - maxm 1,+y - maxm 8,+sp - maxm 8,+x - maxm 8,+y - maxm ,pc - maxm ,sp - maxm ,x - maxm ,y - maxm 1,-sp - maxm 1,-x - maxm 1,-y - maxm 8,-sp - maxm 8,-x - maxm 8,-y - maxm -1,sp - maxm -1,x - maxm -1,y - maxm -16,sp - maxm -16,x - maxm -16,y - maxm -17,sp - maxm -17,x - maxm -17,y - maxm -small,pc - maxm -small,sp - maxm -small,x - maxm -small,y - maxm 0,pc - maxm 0,sp - maxm 0,x - maxm 0,y - maxm 1,sp+ - maxm 1,x+ - maxm 1,y+ - maxm 1,sp - maxm 1,x - maxm 1,y - maxm 1,sp- - maxm 1,x- - maxm 1,y- - maxm 125,pc - maxm 125,sp - maxm 125,x - maxm 125,y - maxm 15,sp - maxm 15,x - maxm 15,y - maxm 16,sp - maxm 16,x - maxm 16,y - maxm 8,sp+ - maxm 8,x+ - maxm 8,y+ - maxm 8,sp- - maxm 8,x- - maxm 8,y- - maxm a,sp - maxm a,x - maxm a,y - maxm b,sp - maxm b,x - maxm b,y - maxm d,sp - maxm d,x - maxm d,y - maxm ext,sp - maxm ext,x - maxm ext,y - maxm ind,pc - maxm ind,sp - maxm ind,x - maxm ind,y - maxm small,pc - maxm small,sp - maxm small,x - maxm small,y - mem - mina 1,+sp - mina 1,+x - mina 1,+y - mina 8,+sp - mina 8,+x - mina 8,+y - mina ,pc - mina ,sp - mina ,x - mina ,y - mina 1,-sp - mina 1,-x - mina 1,-y - mina 8,-sp - mina 8,-x - mina 8,-y - mina -1,sp - mina -1,x - mina -1,y - mina -16,sp - mina -16,x - mina -16,y - mina -17,sp - mina -17,x - mina -17,y - mina -small,pc - mina -small,sp - mina -small,x - mina -small,y - mina 0,pc - mina 0,sp - mina 0,x - mina 0,y - mina 1,sp+ - mina 1,x+ - mina 1,y+ - mina 1,sp - mina 1,x - mina 1,y - mina 1,sp- - mina 1,x- - mina 1,y- - mina 125,pc - mina 125,sp - mina 125,x - mina 125,y - mina 15,sp - mina 15,x - mina 15,y - mina 16,sp - mina 16,x - mina 16,y - mina 8,sp+ - mina 8,x+ - mina 8,y+ - mina 8,sp- - mina 8,x- - mina 8,y- - mina a,sp - mina a,x - mina a,y - mina b,sp - mina b,x - mina b,y - mina d,sp - mina d,x - mina d,y - mina ext,sp - mina ext,x - mina ext,y - mina ind,pc - mina ind,sp - mina ind,x - mina ind,y - mina small,pc - mina small,sp - mina small,x - mina small,y - minm 1,+sp - minm 1,+x - minm 1,+y - minm 8,+sp - minm 8,+x - minm 8,+y - minm ,pc - minm ,sp - minm ,x - minm ,y - minm 1,-sp - minm 1,-x - minm 1,-y - minm 8,-sp - minm 8,-x - minm 8,-y - minm -1,sp - minm -1,x - minm -1,y - minm -16,sp - minm -16,x - minm -16,y - minm -17,sp - minm -17,x - minm -17,y - minm -small,pc - minm -small,sp - minm -small,x - minm -small,y - minm 0,pc - minm 0,sp - minm 0,x - minm 0,y - minm 1,sp+ - minm 1,x+ - minm 1,y+ - minm 1,sp - minm 1,x - minm 1,y - minm 1,sp- - minm 1,x- - minm 1,y- - minm 125,pc - minm 125,sp - minm 125,x - minm 125,y - minm 15,sp - minm 15,x - minm 15,y - minm 16,sp - minm 16,x - minm 16,y - minm 8,sp+ - minm 8,x+ - minm 8,y+ - minm 8,sp- - minm 8,x- - minm 8,y- - minm a,sp - minm a,x - minm a,y - minm b,sp - minm b,x - minm b,y - minm d,sp - minm d,x - minm d,y - minm ext,sp - minm ext,x - minm ext,y - minm ind,pc - minm ind,sp - minm ind,x - minm ind,y - minm small,pc - minm small,sp - minm small,x - minm small,y - mul - neg 1,+sp - neg 1,+x - neg 1,+y - neg 8,+sp - neg 8,+x - neg 8,+y - neg ,pc - neg ,sp - neg ,x - neg ,y - neg 1,-sp - neg 1,-x - neg 1,-y - neg 8,-sp - neg 8,-x - neg 8,-y - neg -1,sp - neg -1,x - neg -1,y - neg -16,sp - neg -16,x - neg -16,y - neg -17,sp - neg -17,x - neg -17,y - neg -small,pc - neg -small,sp - neg -small,x - neg -small,y - neg 0,pc - neg 0,sp - neg 0,x - neg 0,y - neg 1,sp+ - neg 1,x+ - neg 1,y+ - neg 1,sp - neg 1,x - neg 1,y - neg 1,sp- - neg 1,x- - neg 1,y- - neg 125,pc - neg 125,sp - neg 125,x - neg 125,y - neg 15,sp - neg 15,x - neg 15,y - neg 16,sp - neg 16,x - neg 16,y - neg 8,sp+ - neg 8,x+ - neg 8,y+ - neg 8,sp- - neg 8,x- - neg 8,y- - neg a,sp - neg a,x - neg a,y - neg b,sp - neg b,x - neg b,y - neg d,sp - neg d,x - neg d,y - neg dir - neg ext - neg ext - neg ext,sp - neg ext,x - neg ext,y - neg ind,pc - neg ind,sp - neg ind,x - neg ind,y - neg small,pc - neg small,sp - neg small,x - neg small,y - nega - negb - nop - oraa #immed - oraa #immed - oraa 1,+sp - oraa 1,+x - oraa 1,+y - oraa 8,+sp - oraa 8,+x - oraa 8,+y - oraa ,pc - oraa ,sp - oraa ,x - oraa ,y - oraa 1,-sp - oraa 1,-x - oraa 1,-y - oraa 8,-sp - oraa 8,-x - oraa 8,-y - oraa -1,sp - oraa -1,x - oraa -1,y - oraa -16,sp - oraa -16,x - oraa -16,y - oraa -17,sp - oraa -17,x - oraa -17,y - oraa -small,pc - oraa -small,sp - oraa -small,x - oraa -small,y - oraa 0,pc - oraa 0,sp - oraa 0,x - oraa 0,y - oraa 1,sp+ - oraa 1,x+ - oraa 1,y+ - oraa 1,sp - oraa 1,x - oraa 1,y - oraa 1,sp- - oraa 1,x- - oraa 1,y- - oraa 125,pc - oraa 125,sp - oraa 125,x - oraa 125,y - oraa 15,sp - oraa 15,x - oraa 15,y - oraa 16,sp - oraa 16,x - oraa 16,y - oraa 8,sp+ - oraa 8,x+ - oraa 8,y+ - oraa 8,sp- - oraa 8,x- - oraa 8,y- - oraa a,sp - oraa a,x - oraa a,y - oraa b,sp - oraa b,x - oraa b,y - oraa d,sp - oraa d,x - oraa d,y - oraa dir - oraa dir - oraa ext - oraa ext - oraa ext,sp - oraa ext,x - oraa ext,y - oraa ind,pc - oraa ind,sp - oraa ind,x - oraa ind,y - oraa small,pc - oraa small,sp - oraa small,x - oraa small,y - orab #immed - orab #immed - orab 1,+sp - orab 1,+x - orab 1,+y - orab 8,+sp - orab 8,+x - orab 8,+y - orab ,pc - orab ,sp - orab ,x - orab ,y - orab 1,-sp - orab 1,-x - orab 1,-y - orab 8,-sp - orab 8,-x - orab 8,-y - orab -1,sp - orab -1,x - orab -1,y - orab -16,sp - orab -16,x - orab -16,y - orab -17,sp - orab -17,x - orab -17,y - orab -small,pc - orab -small,sp - orab -small,x - orab -small,y - orab 0,pc - orab 0,sp - orab 0,x - orab 0,y - orab 1,sp+ - orab 1,x+ - orab 1,y+ - orab 1,sp - orab 1,x - orab 1,y - orab 1,sp- - orab 1,x- - orab 1,y- - orab 125,pc - orab 125,sp - orab 125,x - orab 125,y - orab 15,sp - orab 15,x - orab 15,y - orab 16,sp - orab 16,x - orab 16,y - orab 8,sp+ - orab 8,x+ - orab 8,y+ - orab 8,sp- - orab 8,x- - orab 8,y- - orab a,sp - orab a,x - orab a,y - orab b,sp - orab b,x - orab b,y - orab d,sp - orab d,x - orab d,y - orab dir - orab dir - orab ext - orab ext - orab ext,sp - orab ext,x - orab ext,y - orab ind,pc - orab ind,sp - orab ind,x - orab ind,y - orab small,pc - orab small,sp - orab small,x - orab small,y - orcc #immed - psha - pshb - pshd - pshx - pshy - pula - pulb - pulc - puld - pulx - puly - rev - rol 1,+sp - rol 1,+x - rol 1,+y - rol 8,+sp - rol 8,+x - rol 8,+y - rol ,pc - rol ,sp - rol ,x - rol ,y - rol 1,-sp - rol 1,-x - rol 1,-y - rol 8,-sp - rol 8,-x - rol 8,-y - rol -1,sp - rol -1,x - rol -1,y - rol -16,sp - rol -16,x - rol -16,y - rol -17,sp - rol -17,x - rol -17,y - rol -small,pc - rol -small,sp - rol -small,x - rol -small,y - rol 0,pc - rol 0,sp - rol 0,x - rol 0,y - rol 1,sp+ - rol 1,x+ - rol 1,y+ - rol 1,sp - rol 1,x - rol 1,y - rol 1,sp- - rol 1,x- - rol 1,y- - rol 125,pc - rol 125,sp - rol 125,x - rol 125,y - rol 15,sp - rol 15,x - rol 15,y - rol 16,sp - rol 16,x - rol 16,y - rol 8,sp+ - rol 8,x+ - rol 8,y+ - rol 8,sp- - rol 8,x- - rol 8,y- - rol a,sp - rol a,x - rol a,y - rol b,sp - rol b,x - rol b,y - rol d,sp - rol d,x - rol d,y - rol dir - rol ext - rol ext - rol ext,sp - rol ext,x - rol ext,y - rol ind,pc - rol ind,sp - rol ind,x - rol ind,y - rol small,pc - rol small,sp - rol small,x - rol small,y - rola - rolb - ror 1,+sp - ror 1,+x - ror 1,+y - ror 8,+sp - ror 8,+x - ror 8,+y - ror ,pc - ror ,sp - ror ,x - ror ,y - ror 1,-sp - ror 1,-x - ror 1,-y - ror 8,-sp - ror 8,-x - ror 8,-y - ror -1,sp - ror -1,x - ror -1,y - ror -16,sp - ror -16,x - ror -16,y - ror -17,sp - ror -17,x - ror -17,y - ror -small,pc - ror -small,sp - ror -small,x - ror -small,y - ror 0,pc - ror 0,sp - ror 0,x - ror 0,y - ror 1,sp+ - ror 1,x+ - ror 1,y+ - ror 1,sp - ror 1,x - ror 1,y - ror 1,sp- - ror 1,x- - ror 1,y- - ror 125,pc - ror 125,sp - ror 125,x - ror 125,y - ror 15,sp - ror 15,x - ror 15,y - ror 16,sp - ror 16,x - ror 16,y - ror 8,sp+ - ror 8,x+ - ror 8,y+ - ror 8,sp- - ror 8,x- - ror 8,y- - ror a,sp - ror a,x - ror a,y - ror b,sp - ror b,x - ror b,y - ror d,sp - ror d,x - ror d,y - ror dir - ror ext - ror ext - ror ext,sp - ror ext,x - ror ext,y - ror ind,pc - ror ind,sp - ror ind,x - ror ind,y - ror small,pc - ror small,sp - ror small,x - ror small,y - rora - rorb - rti - rts - sba - sbca #immed - sbca #immed - sbca 1,+sp - sbca 1,+x - sbca 1,+y - sbca 8,+sp - sbca 8,+x - sbca 8,+y - sbca ,pc - sbca ,sp - sbca ,x - sbca ,y - sbca 1,-sp - sbca 1,-x - sbca 1,-y - sbca 8,-sp - sbca 8,-x - sbca 8,-y - sbca -1,sp - sbca -1,x - sbca -1,y - sbca -16,sp - sbca -16,x - sbca -16,y - sbca -17,sp - sbca -17,x - sbca -17,y - sbca -small,pc - sbca -small,sp - sbca -small,x - sbca -small,y - sbca 0,pc - sbca 0,sp - sbca 0,x - sbca 0,y - sbca 1,sp+ - sbca 1,x+ - sbca 1,y+ - sbca 1,sp - sbca 1,x - sbca 1,y - sbca 1,sp- - sbca 1,x- - sbca 1,y- - sbca 125,pc - sbca 125,sp - sbca 125,x - sbca 125,y - sbca 15,sp - sbca 15,x - sbca 15,y - sbca 16,sp - sbca 16,x - sbca 16,y - sbca 8,sp+ - sbca 8,x+ - sbca 8,y+ - sbca 8,sp- - sbca 8,x- - sbca 8,y- - sbca a,sp - sbca a,x - sbca a,y - sbca b,sp - sbca b,x - sbca b,y - sbca d,sp - sbca d,x - sbca d,y - sbca dir - sbca dir - sbca ext - sbca ext - sbca ext,sp - sbca ext,x - sbca ext,y - sbca ind,pc - sbca ind,sp - sbca ind,x - sbca ind,y - sbca small,pc - sbca small,sp - sbca small,x - sbca small,y - sbcb #immed - sbcb #immed - sbcb 1,+sp - sbcb 1,+x - sbcb 1,+y - sbcb 8,+sp - sbcb 8,+x - sbcb 8,+y - sbcb ,pc - sbcb ,sp - sbcb ,x - sbcb ,y - sbcb 1,-sp - sbcb 1,-x - sbcb 1,-y - sbcb 8,-sp - sbcb 8,-x - sbcb 8,-y - sbcb -1,sp - sbcb -1,x - sbcb -1,y - sbcb -16,sp - sbcb -16,x - sbcb -16,y - sbcb -17,sp - sbcb -17,x - sbcb -17,y - sbcb -small,pc - sbcb -small,sp - sbcb -small,x - sbcb -small,y - sbcb 0,pc - sbcb 0,sp - sbcb 0,x - sbcb 0,y - sbcb 1,sp+ - sbcb 1,x+ - sbcb 1,y+ - sbcb 1,sp - sbcb 1,x - sbcb 1,y - sbcb 1,sp- - sbcb 1,x- - sbcb 1,y- - sbcb 125,pc - sbcb 125,sp - sbcb 125,x - sbcb 125,y - sbcb 15,sp - sbcb 15,x - sbcb 15,y - sbcb 16,sp - sbcb 16,x - sbcb 16,y - sbcb 8,sp+ - sbcb 8,x+ - sbcb 8,y+ - sbcb 8,sp- - sbcb 8,x- - sbcb 8,y- - sbcb a,sp - sbcb a,x - sbcb a,y - sbcb b,sp - sbcb b,x - sbcb b,y - sbcb d,sp - sbcb d,x - sbcb d,y - sbcb dir - sbcb dir - sbcb ext - sbcb ext - sbcb ext,sp - sbcb ext,x - sbcb ext,y - sbcb ind,pc - sbcb ind,sp - sbcb ind,x - sbcb ind,y - sbcb small,pc - sbcb small,sp - sbcb small,x - sbcb small,y - sec - sei - sev - sex a, d - sex a, sp - sex a,sp - sex a, x - sex a,x - sex a, y - sex a,y - sex b, d - sex b, sp - sex b,sp - sex b, x - sex b,x - sex b, y - sex b,y - sex ccr, d - sex ccr, sp - sex ccr, x - sex ccr, y - staa 1,+sp - staa 1,+x - staa 1,+y - staa 8,+sp - staa 8,+x - staa 8,+y - staa ,pc - staa ,sp - staa ,x - staa ,y - staa 1,-sp - staa 1,-x - staa 1,-y - staa 8,-sp - staa 8,-x - staa 8,-y - staa -1,sp - staa -1,x - staa -1,y - staa -16,sp - staa -16,x - staa -16,y - staa -17,sp - staa -17,x - staa -17,y - staa -small,pc - staa -small,sp - staa -small,x - staa -small,y - staa 0,pc - staa 0,sp - staa 0,x - staa 0,y - staa 1,sp+ - staa 1,x+ - staa 1,y+ - staa 1,sp - staa 1,x - staa 1,y - staa 1,sp- - staa 1,x- - staa 1,y- - staa 125,pc - staa 125,sp - staa 125,x - staa 125,y - staa 15,sp - staa 15,x - staa 15,y - staa 16,sp - staa 16,x - staa 16,y - staa 8,sp+ - staa 8,x+ - staa 8,y+ - staa 8,sp- - staa 8,x- - staa 8,y- - staa a,sp - staa a,x - staa a,y - staa b,sp - staa b,x - staa b,y - staa d,sp - staa d,x - staa d,y - staa dir - staa dir - staa ext - staa ext - staa ext,sp - staa ext,x - staa ext,y - staa ind,pc - staa ind,sp - staa ind,x - staa ind,y - staa small,pc - staa small,sp - staa small,x - staa small,y - stab 1,+sp - stab 1,+x - stab 1,+y - stab 8,+sp - stab 8,+x - stab 8,+y - stab ,pc - stab ,sp - stab ,x - stab ,y - stab 1,-sp - stab 1,-x - stab 1,-y - stab 8,-sp - stab 8,-x - stab 8,-y - stab -1,sp - stab -1,x - stab -1,y - stab -16,sp - stab -16,x - stab -16,y - stab -17,sp - stab -17,x - stab -17,y - stab -small,pc - stab -small,sp - stab -small,x - stab -small,y - stab 0,pc - stab 0,sp - stab 0,x - stab 0,y - stab 1,sp+ - stab 1,x+ - stab 1,y+ - stab 1,sp - stab 1,x - stab 1,y - stab 1,sp- - stab 1,x- - stab 1,y- - stab 125,pc - stab 125,sp - stab 125,x - stab 125,y - stab 15,sp - stab 15,x - stab 15,y - stab 16,sp - stab 16,x - stab 16,y - stab 8,sp+ - stab 8,x+ - stab 8,y+ - stab 8,sp- - stab 8,x- - stab 8,y- - stab a,sp - stab a,x - stab a,y - stab b,sp - stab b,x - stab b,y - stab d,sp - stab d,x - stab d,y - stab dir - stab dir - stab ext - stab ext - stab ext,sp - stab ext,x - stab ext,y - stab ind,pc - stab ind,sp - stab ind,x - stab ind,y - stab small,pc - stab small,sp - stab small,x - stab small,y - std 1,+sp - std 1,+x - std 1,+y - std 8,+sp - std 8,+x - std 8,+y - std ,pc - std ,sp - std ,x - std ,y - std 1,-sp - std 1,-x - std 1,-y - std 8,-sp - std 8,-x - std 8,-y - std -1,sp - std -1,x - std -1,y - std -16,sp - std -16,x - std -16,y - std -17,sp - std -17,x - std -17,y - std -small,pc - std -small,sp - std -small,x - std -small,y - std 0,pc - std 0,sp - std 0,x - std 0,y - std 1,sp+ - std 1,x+ - std 1,y+ - std 1,sp - std 1,x - std 1,y - std 1,sp- - std 1,x- - std 1,y- - std 125,pc - std 125,sp - std 125,x - std 125,y - std 15,sp - std 15,x - std 15,y - std 16,sp - std 16,x - std 16,y - std 8,sp+ - std 8,x+ - std 8,y+ - std 8,sp- - std 8,x- - std 8,y- - std a,sp - std a,x - std a,y - std b,sp - std b,x - std b,y - std d,sp - std d,x - std d,y - std dir - std dir - std ext - std ext - std ext,sp - std ext,x - std ext,y - std ind,pc - std ind,sp - std ind,x - std ind,y - std small,pc - std small,sp - std small,x - std small,y - stop - sts 1,+sp - sts 1,+x - sts 1,+y - sts 8,+sp - sts 8,+x - sts 8,+y - sts ,pc - sts ,sp - sts ,x - sts ,y - sts 1,-sp - sts 1,-x - sts 1,-y - sts 8,-sp - sts 8,-x - sts 8,-y - sts -1,sp - sts -1,x - sts -1,y - sts -16,sp - sts -16,x - sts -16,y - sts -17,sp - sts -17,x - sts -17,y - sts -small,pc - sts -small,sp - sts -small,x - sts -small,y - sts 0,pc - sts 0,sp - sts 0,x - sts 0,y - sts 1,sp+ - sts 1,x+ - sts 1,y+ - sts 1,sp - sts 1,x - sts 1,y - sts 1,sp- - sts 1,x- - sts 1,y- - sts 125,pc - sts 125,sp - sts 125,x - sts 125,y - sts 15,sp - sts 15,x - sts 15,y - sts 16,sp - sts 16,x - sts 16,y - sts 8,sp+ - sts 8,x+ - sts 8,y+ - sts 8,sp- - sts 8,x- - sts 8,y- - sts a,sp - sts a,x - sts a,y - sts b,sp - sts b,x - sts b,y - sts d,sp - sts d,x - sts d,y - sts dir - sts ext - sts ext,sp - sts ext,x - sts ext,y - sts ind,pc - sts ind,sp - sts ind,x - sts ind,y - sts small,pc - sts small,sp - sts small,x - sts small,y - stx 1,+sp - stx 1,+x - stx 1,+y - stx 8,+sp - stx 8,+x - stx 8,+y - stx ,pc - stx ,sp - stx ,x - stx ,y - stx 1,-sp - stx 1,-x - stx 1,-y - stx 8,-sp - stx 8,-x - stx 8,-y - stx -1,sp - stx -1,x - stx -1,y - stx -16,sp - stx -16,x - stx -16,y - stx -17,sp - stx -17,x - stx -17,y - stx -small,pc - stx -small,sp - stx -small,x - stx -small,y - stx 0,pc - stx 0,sp - stx 0,x - stx 0,y - stx 1,sp+ - stx 1,x+ - stx 1,y+ - stx 1,sp - stx 1,x - stx 1,y - stx 1,sp- - stx 1,x- - stx 1,y- - stx 125,pc - stx 125,sp - stx 125,x - stx 125,y - stx 15,sp - stx 15,x - stx 15,y - stx 16,sp - stx 16,x - stx 16,y - stx 8,sp+ - stx 8,x+ - stx 8,y+ - stx 8,sp- - stx 8,x- - stx 8,y- - stx a,sp - stx a,x - stx a,y - stx b,sp - stx b,x - stx b,y - stx d,sp - stx d,x - stx d,y - stx dir - stx dir - stx ext - stx ext - stx ext,sp - stx ext,x - stx ext,y - stx ind,pc - stx ind,sp - stx ind,x - stx ind,y - stx small,pc - stx small,sp - stx small,x - stx small,y - sty 1,+sp - sty 1,+x - sty 1,+y - sty 8,+sp - sty 8,+x - sty 8,+y - sty ,pc - sty ,sp - sty ,x - sty ,y - sty 1,-sp - sty 1,-x - sty 1,-y - sty 8,-sp - sty 8,-x - sty 8,-y - sty -1,sp - sty -1,x - sty -1,y - sty -16,sp - sty -16,x - sty -16,y - sty -17,sp - sty -17,x - sty -17,y - sty -small,pc - sty -small,sp - sty -small,x - sty -small,y - sty 0,pc - sty 0,sp - sty 0,x - sty 0,y - sty 1,sp+ - sty 1,x+ - sty 1,y+ - sty 1,sp - sty 1,x - sty 1,y - sty 1,sp- - sty 1,x- - sty 1,y- - sty 125,pc - sty 125,sp - sty 125,x - sty 125,y - sty 15,sp - sty 15,x - sty 15,y - sty 16,sp - sty 16,x - sty 16,y - sty 8,sp+ - sty 8,x+ - sty 8,y+ - sty 8,sp- - sty 8,x- - sty 8,y- - sty a,sp - sty a,x - sty a,y - sty b,sp - sty b,x - sty b,y - sty d,sp - sty d,x - sty d,y - sty dir - sty dir - sty ext - sty ext - sty ext,sp - sty ext,x - sty ext,y - sty ind,pc - sty ind,sp - sty ind,x - sty ind,y - sty small,pc - sty small,sp - sty small,x - sty small,y - suba #immed - suba 1,+sp - suba 1,+x - suba 1,+y - suba 8,+sp - suba 8,+x - suba 8,+y - suba ,pc - suba ,sp - suba ,x - suba ,y - suba 1,-sp - suba 1,-x - suba 1,-y - suba 8,-sp - suba 8,-x - suba 8,-y - suba -1,sp - suba -1,x - suba -1,y - suba -16,sp - suba -16,x - suba -16,y - suba -17,sp - suba -17,x - suba -17,y - suba -small,pc - suba -small,sp - suba -small,x - suba -small,y - suba 0,pc - suba 0,sp - suba 0,x - suba 0,y - suba 1,sp+ - suba 1,x+ - suba 1,y+ - suba 1,sp - suba 1,x - suba 1,y - suba 1,sp- - suba 1,x- - suba 1,y- - suba 125,pc - suba 125,sp - suba 125,x - suba 125,y - suba 15,sp - suba 15,x - suba 15,y - suba 16,sp - suba 16,x - suba 16,y - suba 8,sp+ - suba 8,x+ - suba 8,y+ - suba 8,sp- - suba 8,x- - suba 8,y- - suba a,sp - suba a,x - suba a,y - suba b,sp - suba b,x - suba b,y - suba d,sp - suba d,x - suba d,y - suba dir - suba ext - suba ext,sp - suba ext,x - suba ext,y - suba ind,pc - suba ind,sp - suba ind,x - suba ind,y - suba small,pc - suba small,sp - suba small,x - suba small,y - subb #immed - subb #immed - subb 1,+sp - subb 1,+x - subb 1,+y - subb 8,+sp - subb 8,+x - subb 8,+y - subb ,pc - subb ,sp - subb ,x - subb ,y - subb 1,-sp - subb 1,-x - subb 1,-y - subb 8,-sp - subb 8,-x - subb 8,-y - subb -1,sp - subb -1,x - subb -1,y - subb -16,sp - subb -16,x - subb -16,y - subb -17,sp - subb -17,x - subb -17,y - subb -small,pc - subb -small,sp - subb -small,x - subb -small,y - subb 0,pc - subb 0,sp - subb 0,x - subb 0,y - subb 1,sp+ - subb 1,x+ - subb 1,y+ - subb 1,sp - subb 1,x - subb 1,y - subb 1,sp- - subb 1,x- - subb 1,y- - subb 125,pc - subb 125,sp - subb 125,x - subb 125,y - subb 15,sp - subb 15,x - subb 15,y - subb 16,sp - subb 16,x - subb 16,y - subb 8,sp+ - subb 8,x+ - subb 8,y+ - subb 8,sp- - subb 8,x- - subb 8,y- - subb a,sp - subb a,x - subb a,y - subb b,sp - subb b,x - subb b,y - subb d,sp - subb d,x - subb d,y - subb dir - subb dir - subb ext - subb ext - subb ext,sp - subb ext,x - subb ext,y - subb ind,pc - subb ind,sp - subb ind,x - subb ind,y - subb small,pc - subb small,sp - subb small,x - subb small,y - subd #immed - subd #immed - subd 1,+sp - subd 1,+x - subd 1,+y - subd 8,+sp - subd 8,+x - subd 8,+y - subd ,pc - subd ,sp - subd ,x - subd ,y - subd 1,-sp - subd 1,-x - subd 1,-y - subd 8,-sp - subd 8,-x - subd 8,-y - subd -1,sp - subd -1,x - subd -1,y - subd -16,sp - subd -16,x - subd -16,y - subd -17,sp - subd -17,x - subd -17,y - subd -small,pc - subd -small,sp - subd -small,x - subd -small,y - subd 0,pc - subd 0,sp - subd 0,x - subd 0,y - subd 1,sp+ - subd 1,x+ - subd 1,y+ - subd 1,sp - subd 1,x - subd 1,y - subd 1,sp- - subd 1,x- - subd 1,y- - subd 125,pc - subd 125,sp - subd 125,x - subd 125,y - subd 15,sp - subd 15,x - subd 15,y - subd 16,sp - subd 16,x - subd 16,y - subd 8,sp+ - subd 8,x+ - subd 8,y+ - subd 8,sp- - subd 8,x- - subd 8,y- - subd a,sp - subd a,x - subd a,y - subd b,sp - subd b,x - subd b,y - subd d,sp - subd d,x - subd d,y - subd dir - subd dir - subd ext - subd ext - subd ext,sp - subd ext,x - subd ext,y - subd ind,pc - subd ind,sp - subd ind,x - subd ind,y - subd small,pc - subd small,sp - subd small,x - subd small,y - swi - tab - tap - tba - tbl b,x - tfr a, a - tfr a,a - tfr a, b - tfr a,b - tfr a, ccr - tfr a, d - tfr a, sp - tfr a, x - tfr a,x - tfr a, y - tfr a,y - tfr b, a - tfr b, b - tfr b, ccr - tfr b, d - tfr b, sp - tfr b, x - tfr b, y - tfr ccr, a - tfr ccr, b - tfr ccr, ccr - tfr ccr, d - tfr ccr, sp - tfr ccr, x - tfr ccr, y - tfr d, a - tfr d, b - tfr d, ccr - tfr d, d - tfr d, sp - tfr d, x - tfr d, y - tfr sp, a - tfr sp, b - tfr sp, ccr - tfr sp, d - tfr sp, sp - tfr sp, x - tfr sp, y - tfr x, a - tfr x, b - tfr x, ccr - tfr x, d - tfr x, sp - tfr x, x - tfr x, y - tfr y, a - tfr y, b - tfr y, ccr - tfr y, d - tfr y, sp - tfr y, x - tfr y, y - tpa - tst 1,+sp - tst 1,+x - tst 1,+y - tst 8,+sp - tst 8,+x - tst 8,+y - tst ,pc - tst ,sp - tst ,x - tst ,y - tst 1,-sp - tst 1,-x - tst 1,-y - tst 8,-sp - tst 8,-x - tst 8,-y - tst -1,sp - tst -1,x - tst -1,y - tst -16,sp - tst -16,x - tst -16,y - tst -17,sp - tst -17,x - tst -17,y - tst -small,pc - tst -small,sp - tst -small,x - tst -small,y - tst 0,pc - tst 0,sp - tst 0,x - tst 0,y - tst 1,sp+ - tst 1,x+ - tst 1,y+ - tst 1,sp - tst 1,x - tst 1,y - tst 1,sp- - tst 1,x- - tst 1,y- - tst 125,pc - tst 125,sp - tst 125,x - tst 125,y - tst 15,sp - tst 15,x - tst 15,y - tst 16,sp - tst 16,x - tst 16,y - tst 8,sp+ - tst 8,x+ - tst 8,y+ - tst 8,sp- - tst 8,x- - tst 8,y- - tst a,sp - tst a,x - tst a,y - tst b,sp - tst b,x - tst b,y - tst d,sp - tst d,x - tst d,y - tst dir - tst ext - tst ext - tst ext,sp - tst ext,x - tst ext,y - tst ind,pc - tst ind,sp - tst ind,x - tst ind,y - tst small,pc - tst small,sp - tst small,x - tst small,y - tsta - tstb - tsx - tsy - txs - tys - wai - wav - xgdx - xgdy - call 1,+sp, $55 - call 1,+x, $55 - call 1,+y, $55 - call 8,+sp, $55 - call 8,+x, $55 - call 8,+y, $55 - call ,pc, $55 - call ,sp, $55 - call ,x, $55 - call ,y, $55 - call 1,-sp, $55 - call 1,-x, $55 - call 1,-y, $55 - call 8,-sp, $55 - call 8,-x, $55 - call 8,-y, $55 - call -1,sp, $55 - call -1,x, $55 - call -1,y, $55 - call -16,sp, $55 - call -16,x, $55 - call -16,y, $55 - call -17,sp, $55 - call -17,x, $55 - call -17,y, $55 - call -small,pc, $55 - call -small,sp, $55 - call -small,x, $55 - call -small,y, $55 - call 0,pc, $55 - call 0,sp, $55 - call 0,x, $55 - call 0,y, $55 - call 1,sp+, $55 - call 1,x+, $55 - call 1,y+, $55 - call 1,sp, $55 - call 1,x, $55 - call 1,y, $55 - call 1,sp-, $55 - call 1,x-, $55 - call 1,y-, $55 - call 125,pc, $55 - call 125,sp, $55 - call 125,x, $55 - call 125,y, $55 - call 15,sp, $55 - call 15,x, $55 - call 15,y, $55 - call 16,sp, $55 - call 16,x, $55 - call 16,y, $55 - call 8,sp+, $55 - call 8,x+, $55 - call 8,y+, $55 - call 8,sp-, $55 - call 8,x-, $55 - call 8,y-, $55 - call a,sp, $55 - call a,x, $55 - call a,y, $55 - call b,sp, $55 - call b,x, $55 - call b,y, $55 - call d,sp, $55 - call d,x, $55 - call d,y, $55 - call dir, $55 - call ext, $55 - call ext,sp, $55 - call ext,x, $55 - call ext,y, $55 - call ind,pc, $55 - call ind,sp, $55 - call ind,x, $55 - call ind,y, $55 - call small,pc, $55 - call small,sp, $55 - call small,x, $55 - call small,y, $55 - pshc - rtc - movb #immed, 3,+x - movb #immed, 5,-y - movb #immed, 5,sp - movb #immed, ext - movb 1,+sp, 3,+x - movb 1,+sp, 5,-y - movb 1,+sp, 5,sp - movb 1,+sp, ext - movb 1,+x, 3,+x - movb 1,+x, 5,-y - movb 1,+x, 5,sp - movb 1,+x, ext - movb 1,+y, 3,+x - movb 1,+y, 5,-y - movb 1,+y, 5,sp - movb 1,+y, ext - movb 3,+x, 1,+sp - movb 3,+x, 1,+x - movb 3,+x, 1,+y - movb 3,+x, 8,+sp - movb 3,+x, 8,+x - movb 3,+x, 8,+y - movb 3,+x, ,pc - movb 3,+x, ,sp - movb 3,+x, ,x - movb 3,+x, ,y - movb 3,+x, 1,-sp - movb 3,+x, 1,-x - movb 3,+x, 1,-y - movb 3,+x, 8,-sp - movb 3,+x, 8,-x - movb 3,+x, 8,-y - movb 3,+x, -1,sp - movb 3,+x, -1,x - movb 3,+x, -1,y - movb 3,+x, -16,sp - movb 3,+x, -16,x - movb 3,+x, -16,y - movb 3,+x, -small,pc - movb 3,+x, -small,sp - movb 3,+x, -small,x - movb 3,+x, -small,y - movb 3,+x, 0,pc - movb 3,+x, 0,sp - movb 3,+x, 0,x - movb 3,+x, 0,y - movb 3,+x, 1,sp+ - movb 3,+x, 1,x+ - movb 3,+x, 1,y+ - movb 3,+x, 1,sp - movb 3,+x, 1,x - movb 3,+x, 1,y - movb 3,+x, 1,sp- - movb 3,+x, 1,x- - movb 3,+x, 1,y- - movb 3,+x, 15,sp - movb 3,+x, 15,x - movb 3,+x, 15,y - movb 3,+x, 8,sp+ - movb 3,+x, 8,x+ - movb 3,+x, 8,y+ - movb 3,+x, 8,sp- - movb 3,+x, 8,x- - movb 3,+x, 8,y- - movb 3,+x, a,sp - movb 3,+x, a,x - movb 3,+x, a,y - movb 3,+x, b,sp - movb 3,+x, b,x - movb 3,+x, b,y - movb 3,+x, d,sp - movb 3,+x, d,x - movb 3,+x, d,y - movb 3,+x, ext - movb 3,+x, small,pc - movb 3,+x, small,sp - movb 3,+x, small,x - movb 3,+x, small,y - movb 8,+sp, 3,+x - movb 8,+sp, 5,-y - movb 8,+sp, 5,sp - movb 8,+sp, ext - movb 8,+x, 3,+x - movb 8,+x, 5,-y - movb 8,+x, 5,sp - movb 8,+x, ext - movb 8,+y, 3,+x - movb 8,+y, 5,-y - movb 8,+y, 5,sp - movb 8,+y, ext - movb ,pc, 3,+x - movb ,pc, 5,-y - movb ,pc, 5,sp - movb ,pc, ext - movb ,sp, 3,+x - movb ,sp, 5,-y - movb ,sp, 5,sp - movb ,sp, ext - movb ,x, 3,+x - movb ,x, 5,-y - movb ,x, 5,sp - movb ,x, ext - movb ,y, 3,+x - movb ,y, 5,-y - movb ,y, 5,sp - movb ,y, ext - movb 1,-sp, 3,+x - movb 1,-sp, 5,-y - movb 1,-sp, 5,sp - movb 1,-sp, ext - movb 1,-x, 3,+x - movb 1,-x, 5,-y - movb 1,-x, 5,sp - movb 1,-x, ext - movb 1,-y, 3,+x - movb 1,-y, 5,-y - movb 1,-y, 5,sp - movb 1,-y, ext - movb 8,-sp, 3,+x - movb 8,-sp, 5,-y - movb 8,-sp, 5,sp - movb 8,-sp, ext - movb 8,-x, 3,+x - movb 8,-x, 5,-y - movb 8,-x, 5,sp - movb 8,-x, ext - movb 8,-y, 3,+x - movb 8,-y, 5,-y - movb 8,-y, 5,sp - movb 8,-y, ext - movb -1,sp, 3,+x - movb -1,sp, 5,-y - movb -1,sp, 5,sp - movb -1,sp, ext - movb -1,x, 3,+x - movb -1,x, 5,-y - movb -1,x, 5,sp - movb -1,x, ext - movb -1,y, 3,+x - movb -1,y, 5,-y - movb -1,y, 5,sp - movb -1,y, ext - movb -16,sp, 3,+x - movb -16,sp, 5,-y - movb -16,sp, 5,sp - movb -16,sp, ext - movb -16,x, 3,+x - movb -16,x, 5,-y - movb -16,x, 5,sp - movb -16,x, ext - movb -16,y, 3,+x - movb -16,y, 5,-y - movb -16,y, 5,sp - movb -16,y, ext - movb -small,pc, 3,+x - movb -small,pc, 5,-y - movb -small,pc, 5,sp - movb -small,pc, ext - movb -small,sp, 3,+x - movb -small,sp, 5,-y - movb -small,sp, 5,sp - movb -small,sp, ext - movb -small,x, 3,+x - movb -small,x, 5,-y - movb -small,x, 5,sp - movb -small,x, ext - movb -small,y, 3,+x - movb -small,y, 5,-y - movb -small,y, 5,sp - movb -small,y, ext - movb 0,pc, 3,+x - movb 0,pc, 5,-y - movb 0,pc, 5,sp - movb 0,pc, ext - movb 0,sp, 3,+x - movb 0,sp, 5,-y - movb 0,sp, 5,sp - movb 0,sp, ext - movb 0,x, 3,+x - movb 0,x, 5,-y - movb 0,x, 5,sp - movb 0,x, ext - movb 0,y, 3,+x - movb 0,y, 5,-y - movb 0,y, 5,sp - movb 0,y, ext - movb 1,sp+, 3,+x - movb 1,sp+, 5,-y - movb 1,sp+, 5,sp - movb 1,sp+, ext - movb 1,x+, 3,+x - movb 1,x+, 5,-y - movb 1,x+, 5,sp - movb 1,x+, ext - movb 1,y+, 3,+x - movb 1,y+, 5,-y - movb 1,y+, 5,sp - movb 1,y+, ext - movb 1,sp, 3,+x - movb 1,sp, 5,-y - movb 1,sp, 5,sp - movb 1,sp, ext - movb 1,x, 3,+x - movb 1,x, 5,-y - movb 1,x, 5,sp - movb 1,x, ext - movb 1,y, 3,+x - movb 1,y, 5,-y - movb 1,y, 5,sp - movb 1,y, ext - movb 1,sp-, 3,+x - movb 1,sp-, 5,-y - movb 1,sp-, 5,sp - movb 1,sp-, ext - movb 1,x-, 3,+x - movb 1,x-, 5,-y - movb 1,x-, 5,sp - movb 1,x-, ext - movb 1,y-, 3,+x - movb 1,y-, 5,-y - movb 1,y-, 5,sp - movb 1,y-, ext - movb 5,-y, 1,+sp - movb 5,-y, 1,+x - movb 5,-y, 1,+y - movb 5,-y, 8,+sp - movb 5,-y, 8,+x - movb 5,-y, 8,+y - movb 5,-y, ,pc - movb 5,-y, ,sp - movb 5,-y, ,x - movb 5,-y, ,y - movb 5,-y, 1,-sp - movb 5,-y, 1,-x - movb 5,-y, 1,-y - movb 5,-y, 8,-sp - movb 5,-y, 8,-x - movb 5,-y, 8,-y - movb 5,-y, -1,sp - movb 5,-y, -1,x - movb 5,-y, -1,y - movb 5,-y, -16,sp - movb 5,-y, -16,x - movb 5,-y, -16,y - movb 5,-y, -small,pc - movb 5,-y, -small,sp - movb 5,-y, -small,x - movb 5,-y, -small,y - movb 5,-y, 0,pc - movb 5,-y, 0,sp - movb 5,-y, 0,x - movb 5,-y, 0,y - movb 5,-y, 1,sp+ - movb 5,-y, 1,x+ - movb 5,-y, 1,y+ - movb 5,-y, 1,sp - movb 5,-y, 1,x - movb 5,-y, 1,y - movb 5,-y, 1,sp- - movb 5,-y, 1,x- - movb 5,-y, 1,y- - movb 5,-y, 15,sp - movb 5,-y, 15,x - movb 5,-y, 15,y - movb 5,-y, 8,sp+ - movb 5,-y, 8,x+ - movb 5,-y, 8,y+ - movb 5,-y, 8,sp- - movb 5,-y, 8,x- - movb 5,-y, 8,y- - movb 5,-y, a,sp - movb 5,-y, a,x - movb 5,-y, a,y - movb 5,-y, b,sp - movb 5,-y, b,x - movb 5,-y, b,y - movb 5,-y, d,sp - movb 5,-y, d,x - movb 5,-y, d,y - movb 5,-y, ext - movb 5,-y, small,pc - movb 5,-y, small,sp - movb 5,-y, small,x - movb 5,-y, small,y - movb 15,sp, 3,+x - movb 15,sp, 5,-y - movb 15,sp, 5,sp - movb 15,sp, ext - movb 15,x, 3,+x - movb 15,x, 5,-y - movb 15,x, 5,sp - movb 15,x, ext - movb 15,y, 3,+x - movb 15,y, 5,-y - movb 15,y, 5,sp - movb 15,y, ext - movb 5,sp, 1,+sp - movb 5,sp, 1,+x - movb 5,sp, 1,+y - movb 5,sp, 8,+sp - movb 5,sp, 8,+x - movb 5,sp, 8,+y - movb 5,sp,,pc - movb 5,sp,,sp - movb 5,sp,,x - movb 5,sp,,y - movb 5,sp, 1,-sp - movb 5,sp, 1,-x - movb 5,sp, 1,-y - movb 5,sp, 8,-sp - movb 5,sp, 8,-x - movb 5,sp, 8,-y - movb 5,sp, -1,sp - movb 5,sp, -1,x - movb 5,sp, -1,y - movb 5,sp, -16,sp - movb 5,sp, -16,x - movb 5,sp, -16,y - movb 5,sp, -small,pc - movb 5,sp, -small,sp - movb 5,sp, -small,x - movb 5,sp, -small,y - movb 5,sp, 0,pc - movb 5,sp, 0,sp - movb 5,sp, 0,x - movb 5,sp, 0,y - movb 5,sp, 1,sp+ - movb 5,sp, 1,x+ - movb 5,sp, 1,y+ - movb 5,sp, 1,sp - movb 5,sp, 1,x - movb 5,sp, 1,y - movb 5,sp, 1,sp- - movb 5,sp, 1,x- - movb 5,sp, 1,y- - movb 5,sp, 8,sp+ - movb 5,sp, 8,x+ - movb 5,sp, 8,y+ - movb 5,sp, 8,sp- - movb 5,sp, 8,x- - movb 5,sp, 8,y- - movb 5,sp, a,sp - movb 5,sp, a,x - movb 5,sp, a,y - movb 5,sp, b,sp - movb 5,sp, b,x - movb 5,sp, b,y - movb 5,sp, d,sp - movb 5,sp, d,x - movb 5,sp, d,y - movb 5,sp, ext - movb 5,sp, small,pc - movb 5,sp, small,sp - movb 5,sp, small,x - movb 5,sp, small,y - movb 8,sp+, 3,+x - movb 8,sp+, 5,-y - movb 8,sp+, 5,sp - movb 8,sp+, ext - movb 8,x+, 3,+x - movb 8,x+, 5,-y - movb 8,x+, 5,sp - movb 8,x+, ext - movb 8,y+, 3,+x - movb 8,y+, 5,-y - movb 8,y+, 5,sp - movb 8,y+, ext - movb 8,sp-, 3,+x - movb 8,sp-, 5,-y - movb 8,sp-, 5,sp - movb 8,sp-, ext - movb 8,x-, 3,+x - movb 8,x-, 5,-y - movb 8,x-, 5,sp - movb 8,x-, ext - movb 8,y-, 3,+x - movb 8,y-, 5,-y - movb 8,y-, 5,sp - movb 8,y-, ext - movb a,sp, 3,+x - movb a,sp, 5,-y - movb a,sp, 5,sp - movb a,sp, ext - movb a,x, 3,+x - movb a,x, 5,-y - movb a,x, 5,sp - movb a,x, ext - movb a,y, 3,+x - movb a,y, 5,-y - movb a,y, 5,sp - movb a,y, ext - movb b,sp, 3,+x - movb b,sp, 5,-y - movb b,sp, 5,sp - movb b,sp, ext - movb b,x, 3,+x - movb b,x, 5,-y - movb b,x, 5,sp - movb b,x, ext - movb b,y, 3,+x - movb b,y, 5,-y - movb b,y, 5,sp - movb b,y, ext - movb d,sp, 3,+x - movb d,sp, 5,-y - movb d,sp, 5,sp - movb d,sp, ext - movb d,x, 3,+x - movb d,x, 5,-y - movb d,x, 5,sp - movb d,x, ext - movb d,y, 3,+x - movb d,y, 5,-y - movb d,y, 5,sp - movb d,y, ext - movb ext, 1,+sp - movb ext, 1,+x - movb ext, 1,+y - movb ext, 8,+sp - movb ext, 8,+x - movb ext, 8,+y - movb ext, ,pc - movb ext, ,sp - movb ext, ,x - movb ext, ,y - movb ext, 1,-sp - movb ext, 1,-x - movb ext, 1,-y - movb ext, 8,-sp - movb ext, 8,-x - movb ext, 8,-y - movb ext, -1,sp - movb ext, -1,x - movb ext, -1,y - movb ext, -16,sp - movb ext, -16,x - movb ext, -16,y - movb ext, -small,pc - movb ext, -small,sp - movb ext, -small,x - movb ext, -small,y - movb ext, 0,pc - movb ext, 0,sp - movb ext, 0,x - movb ext, 0,y - movb ext, 1,sp+ - movb ext, 1,x+ - movb ext, 1,y+ - movb ext, 1,sp - movb ext, 1,x - movb ext, 1,y - movb ext, 1,sp- - movb ext, 1,x- - movb ext, 1,y- - movb ext, 8,sp+ - movb ext, 8,x+ - movb ext, 8,y+ - movb ext, 8,sp- - movb ext, 8,x- - movb ext, 8,y- - movb ext, a,sp - movb ext, a,x - movb ext, a,y - movb ext, b,sp - movb ext, b,x - movb ext, b,y - movb ext, d,sp - movb ext, d,x - movb ext, d,y - movb ext, ext - movb ext, small,pc - movb ext, small,sp - movb ext, small,x - movb ext, small,y - movb small,pc, 3,+x - movb small,pc, 5,-y - movb small,pc, 5,sp - movb small,pc, ext - movb small,sp, 3,+x - movb small,sp, 5,-y - movb small,sp, 5,sp - movb small,sp, ext - movb small,x, 3,+x - movb small,x, 5,-y - movb small,x, 5,sp - movb small,x, ext - movb small,y, 3,+x - movb small,y, 5,-y - movb small,y, 5,sp - movb small,y, ext - movw #immed, 3,+x - movw #immed, 5,-y - movw #immed, 5,sp - movw #immed, ext - movw 1,+sp, 3,+x - movw 1,+sp, 5,-y - movw 1,+sp, 5,sp - movw 1,+sp, ext - movw 1,+x, 3,+x - movw 1,+x, 5,-y - movw 1,+x, 5,sp - movw 1,+x, ext - movw 1,+y, 3,+x - movw 1,+y, 5,-y - movw 1,+y, 5,sp - movw 1,+y, ext - movw 3,+x, 1,+sp - movw 3,+x, 1,+x - movw 3,+x, 1,+y - movw 3,+x, 8,+sp - movw 3,+x, 8,+x - movw 3,+x, 8,+y - movw 3,+x, ,pc - movw 3,+x, ,sp - movw 3,+x, ,x - movw 3,+x, ,y - movw 3,+x, 1,-sp - movw 3,+x, 1,-x - movw 3,+x, 1,-y - movw 3,+x, 8,-sp - movw 3,+x, 8,-x - movw 3,+x, 8,-y - movw 3,+x, -1,sp - movw 3,+x, -1,x - movw 3,+x, -1,y - movw 3,+x, -16,sp - movw 3,+x, -16,x - movw 3,+x, -16,y - movw 3,+x, -small,pc - movw 3,+x, -small,sp - movw 3,+x, -small,x - movw 3,+x, -small,y - movw 3,+x, 0,pc - movw 3,+x, 0,sp - movw 3,+x, 0,x - movw 3,+x, 0,y - movw 3,+x, 1,sp+ - movw 3,+x, 1,x+ - movw 3,+x, 1,y+ - movw 3,+x, 1,sp - movw 3,+x, 1,x - movw 3,+x, 1,y - movw 3,+x, 1,sp- - movw 3,+x, 1,x- - movw 3,+x, 1,y- - movw 3,+x, 8,sp+ - movw 3,+x, 8,x+ - movw 3,+x, 8,y+ - movw 3,+x, 8,sp- - movw 3,+x, 8,x- - movw 3,+x, 8,y- - movw 3,+x, a,sp - movw 3,+x, a,x - movw 3,+x, a,y - movw 3,+x, b,sp - movw 3,+x, b,x - movw 3,+x, b,y - movw 3,+x, d,sp - movw 3,+x, d,x - movw 3,+x, d,y - movw 3,+x, ext - movw 3,+x , small,pc - movw 3,+x , small,sp - movw 3,+x , small,x - movw 3,+x , small,y - movw 8,+sp , 3,+x - movw 8,+sp , 5,-y - movw 8,+sp , 5,sp - movw 8,+sp , ext - movw 8,+x , 3,+x - movw 8,+x , 5,-y - movw 8,+x , 5,sp - movw 8,+x , ext - movw 8,+y , 3,+x - movw 8,+y , 5,-y - movw 8,+y , 5,sp - movw 8,+y , ext - movw ,pc , 3,+x - movw ,pc , 5,-y - movw ,pc , 5,sp - movw ,pc , ext - movw ,sp , 3,+x - movw ,sp , 5,-y - movw ,sp , 5,sp - movw ,sp , ext - movw ,x , 3,+x - movw ,x , 5,-y - movw ,x , 5,sp - movw ,x , ext - movw ,y , 3,+x - movw ,y , 5,-y - movw ,y , 5,sp - movw ,y , ext - movw 1,-sp , 3,+x - movw 1,-sp , 5,-y - movw 1,-sp , 5,sp - movw 1,-sp , ext - movw 1,-x , 3,+x - movw 1,-x , 5,-y - movw 1,-x , 5,sp - movw 1,-x , ext - movw 1,-y , 3,+x - movw 1,-y , 5,-y - movw 1,-y , 5,sp - movw 1,-y , ext - movw 8,-sp , 3,+x - movw 8,-sp , 5,-y - movw 8,-sp , 5,sp - movw 8,-sp , ext - movw 8,-x , 3,+x - movw 8,-x , 5,-y - movw 8,-x , 5,sp - movw 8,-x , ext - movw 8,-y , 3,+x - movw 8,-y , 5,-y - movw 8,-y , 5,sp - movw 8,-y , ext - movw -1,sp , 3,+x - movw -1,sp , 5,-y - movw -1,sp , 5,sp - movw -1,sp , ext - movw -1,x , 3,+x - movw -1,x , 5,-y - movw -1,x , 5,sp - movw -1,x , ext - movw -1,y , 3,+x - movw -1,y , 5,-y - movw -1,y , 5,sp - movw -1,y , ext - movw -16,sp , 3,+x - movw -16,sp , 5,-y - movw -16,sp , 5,sp - movw -16,sp , ext - movw -16,x , 3,+x - movw -16,x , 5,-y - movw -16,x , 5,sp - movw -16,x , ext - movw -16,y , 3,+x - movw -16,y , 5,-y - movw -16,y , 5,sp - movw -16,y , ext - movw -small,pc,3,+x - movw -small,pc,5,-y - movw -small,pc,5,sp - movw -small,pc,ext - movw -small,sp,3,+x - movw -small,sp,5,-y - movw -small,sp,5,sp - movw -small,sp,ext - movw -small,x, 3,+x - movw -small,x, 5,-y - movw -small,x, 5,sp - movw -small,x, ext - movw -small,y, 3,+x - movw -small,y, 5,-y - movw -small,y, 5,sp - movw -small,y, ext - movw 0,pc, 3,+x - movw 0,pc, 5,-y - movw 0,pc, 5,sp - movw 0,pc, ext - movw 0,sp, 3,+x - movw 0,sp, 5,-y - movw 0,sp, 5,sp - movw 0,sp, ext - movw 0,x, 3,+x - movw 0,x, 5,-y - movw 0,x, 5,sp - movw 0,x, ext - movw 0,y, 3,+x - movw 0,y, 5,-y - movw 0,y, 5,sp - movw 0,y, ext - movw 1,sp+, 3,+x - movw 1,sp+, 5,-y - movw 1,sp+, 5,sp - movw 1,sp+, ext - movw 1,x+, 3,+x - movw 1,x+, 5,-y - movw 1,x+, 5,sp - movw 1,x+, ext - movw 1,y+, 3,+x - movw 1,y+, 5,-y - movw 1,y+, 5,sp - movw 1,y+, ext - movw 1,sp, 3,+x - movw 1,sp, 5,-y - movw 1,sp, 5,sp - movw 1,sp, ext - movw 1,x, 3,+x - movw 1,x, 5,-y - movw 1,x, 5,sp - movw 1,x, ext - movw 1,y, 3,+x - movw 1,y, 5,-y - movw 1,y, 5,sp - movw 1,y, ext - movw 1,sp-, 3,+x - movw 1,sp-, 5,-y - movw 1,sp-, 5,sp - movw 1,sp-, ext - movw 1,x-, 3,+x - movw 1,x-, 5,-y - movw 1,x-, 5,sp - movw 1,x-, ext - movw 1,y-, 3,+x - movw 1,y-, 5,-y - movw 1,y-, 5,sp - movw 1,y-, ext - movw 5,-y, 1,+sp - movw 5,-y, 1,+x - movw 5,-y, 1,+y - movw 5,-y, 8,+sp - movw 5,-y, 8,+x - movw 5,-y, 8,+y - movw 5,-y, ,pc - movw 5,-y, ,sp - movw 5,-y, ,x - movw 5,-y, ,y - movw 5,-y, 1,-sp - movw 5,-y, 1,-x - movw 5,-y, 1,-y - movw 5,-y, 8,-sp - movw 5,-y, 8,-x - movw 5,-y, 8,-y - movw 5,-y, -1,sp - movw 5,-y, -1,x - movw 5,-y, -1,y - movw 5,-y, -16,sp - movw 5,-y, -16,x - movw 5,-y, -16,y - movw 5,-y, -small,pc - movw 5,-y, -small,sp - movw 5,-y, -small,x - movw 5,-y, -small,y - movw 5,-y, 0,pc - movw 5,-y, 0,sp - movw 5,-y, 0,x - movw 5,-y, 0,y - movw 5,-y, 1,sp+ - movw 5,-y, 1,x+ - movw 5,-y, 1,y+ - movw 5,-y, 1,sp - movw 5,-y, 1,x - movw 5,-y, 1,y - movw 5,-y, 1,sp- - movw 5,-y, 1,x- - movw 5,-y, 1,y- - movw 5,-y, 15,sp - movw 5,-y, 15,x - movw 5,-y, 15,y - movw 5,-y, 8,sp+ - movw 5,-y, 8,x+ - movw 5,-y, 8,y+ - movw 5,-y, 8,sp- - movw 5,-y, 8,x- - movw 5,-y, 8,y- - movw 5,-y, a,sp - movw 5,-y, a,x - movw 5,-y, a,y - movw 5,-y, b,sp - movw 5,-y, b,x - movw 5,-y, b,y - movw 5,-y, d,sp - movw 5,-y, d,x - movw 5,-y, d,y - movw 5,-y, ext - movw 5,-y, small,pc - movw 5,-y, small,sp - movw 5,-y, small,x - movw 5,-y, small,y - movw 15,sp, 3,+x - movw 15,sp, 5,-y - movw 15,sp, 5,sp - movw 15,sp, ext - movw 15,x, 3,+x - movw 15,x, 5,-y - movw 15,x, 5,sp - movw 15,x, ext - movw 15,y, 3,+x - movw 15,y, 5,-y - movw 15,y, 5,sp - movw 15,y, ext - movw 5,sp, 1,+sp - movw 5,sp, 1,+x - movw 5,sp, 1,+y - movw 5,sp, 8,+sp - movw 5,sp, 8,+x - movw 5,sp, 8,+y - movw 5,sp,,pc - movw 5,sp,,sp - movw 5,sp,,x - movw 5,sp,,y - movw 5,sp, 1,-sp - movw 5,sp, 1,-x - movw 5,sp, 1,-y - movw 5,sp, 8,-sp - movw 5,sp, 8,-x - movw 5,sp, 8,-y - movw 5,sp, -1,sp - movw 5,sp, -1,x - movw 5,sp, -1,y - movw 5,sp, -16,sp - movw 5,sp, -16,x - movw 5,sp, -16,y - movw 5,sp, -small,pc - movw 5,sp, -small,sp - movw 5,sp, -small,x - movw 5,sp, -small,y - movw 5,sp, 0,pc - movw 5,sp, 0,sp - movw 5,sp, 0,x - movw 5,sp, 0,y - movw 5,sp, 1,sp+ - movw 5,sp, 1,x+ - movw 5,sp, 1,y+ - movw 5,sp, 1,sp - movw 5,sp, 1,x - movw 5,sp, 1,y - movw 5,sp, 1,sp- - movw 5,sp, 1,x- - movw 5,sp, 1,y- - movw 5,sp, 8,sp+ - movw 5,sp, 8,x+ - movw 5,sp, 8,y+ - movw 5,sp, 8,sp- - movw 5,sp, 8,x- - movw 5,sp, 8,y- - movw 5,sp, a,sp - movw 5,sp, a,x - movw 5,sp, a,y - movw 5,sp, b,sp - movw 5,sp, b,x - movw 5,sp, b,y - movw 5,sp, d,sp - movw 5,sp, d,x - movw 5,sp, d,y - movw 5,sp, ext - movw 5,sp, small,pc - movw 5,sp, small,sp - movw 5,sp, small,x - movw 5,sp, small,y - movw 8,sp+, 3,+x - movw 8,sp+, 5,-y - movw 8,sp+, 5,sp - movw 8,sp+, ext - movw 8,x+, 3,+x - movw 8,x+, 5,-y - movw 8,x+, 5,sp - movw 8,x+, ext - movw 8,y+, 3,+x - movw 8,y+, 5,-y - movw 8,y+, 5,sp - movw 8,y+, ext - movw 8,sp-, 3,+x - movw 8,sp-, 5,-y - movw 8,sp-, 5,sp - movw 8,sp-, ext - movw 8,x-, 3,+x - movw 8,x-, 5,-y - movw 8,x-, 5,sp - movw 8,x-, ext - movw 8,y-, 3,+x - movw 8,y-, 5,-y - movw 8,y-, 5,sp - movw 8,y-, ext - movw a,sp, 3,+x - movw a,sp, 5,-y - movw a,sp, 5,sp - movw a,sp, ext - movw a,x, 3,+x - movw a,x, 5,-y - movw a,x, 5,sp - movw a,x, ext - movw a,y, 3,+x - movw a,y, 5,-y - movw a,y, 5,sp - movw a,y, ext - movw b,sp, 3,+x - movw b,sp, 5,-y - movw b,sp, 5,sp - movw b,sp, ext - movw b,x, 3,+x - movw b,x, 5,-y - movw b,x, 5,sp - movw b,x, ext - movw b,y, 3,+x - movw b,y, 5,-y - movw b,y, 5,sp - movw b,y, ext - movw d,sp, 3,+x - movw d,sp, 5,-y - movw d,sp, 5,sp - movw d,sp, ext - movw d,x, 3,+x - movw d,x, 5,-y - movw d,x, 5,sp - movw d,x, ext - movw d,y, 3,+x - movw d,y, 5,-y - movw d,y, 5,sp - movw d,y, ext - movw ext, 1,+sp - movw ext, 1,+x - movw ext, 1,+y - movw ext, 8,+sp - movw ext, 8,+x - movw ext, 8,+y - movw ext,,pc - movw ext,,sp - movw ext,,x - movw ext,,y - movw ext, 1,-sp - movw ext, 1,-x - movw ext, 1,-y - movw ext, 8,-sp - movw ext, 8,-x - movw ext, 8,-y - movw ext, -1,sp - movw ext, -1,x - movw ext, -1,y - movw ext, -16,sp - movw ext, -16,x - movw ext, -16,y - movw ext, -small,pc - movw ext, -small,sp - movw ext, -small,x - movw ext, -small,y - movw ext, 0,pc - movw ext, 0,sp - movw ext, 0,x - movw ext, 0,y - movw ext, 1,sp+ - movw ext, 1,x+ - movw ext, 1,y+ - movw ext, 1,sp - movw ext, 1,x - movw ext, 1,y - movw ext, 1,sp- - movw ext, 1,x- - movw ext, 1,y- - movw ext, 8,sp+ - movw ext, 8,x+ - movw ext, 8,y+ - movw ext, 8,sp- - movw ext, 8,x- - movw ext, 8,y- - movw ext, a,sp - movw ext, a,x - movw ext, a,y - movw ext, b,sp - movw ext, b,x - movw ext, b,y - movw ext, d,sp - movw ext, d,x - movw ext, d,y - movw ext, ext - movw ext, small,pc - movw ext, small,sp - movw ext, small,x - movw ext, small,y - movw small,pc, 3,+x - movw small,pc, 5,-y - movw small,pc, 5,sp - movw small,pc, ext - movw small,sp, 3,+x - movw small,sp, 5,-y - movw small,sp, 5,sp - movw small,sp, ext - movw small,x , 3,+x - movw small,x , 5,-y - movw small,x , 5,sp - movw small,x , ext - movw small,y , 3,+x - movw small,y , 5,-y - movw small,y , 5,sp - movw small,y , ext - movb 1,x+, 1,y- - movb 0,x, 0,x - - - -
trunk/bench/tools/HSW12ASM/test_S12.s Property changes : Deleted: svn:executable Index: trunk/bench/tools/HSW12ASM/hsw12asm.pl =================================================================== --- trunk/bench/tools/HSW12ASM/hsw12asm.pl (revision 2) +++ trunk/bench/tools/HSW12ASM/hsw12asm.pl (nonexistent) @@ -1,217 +0,0 @@ -#! /usr/bin/perl -w -################################################################################## -# HSW12 # -################################################################################## -# file: hsw12asm.pl # -# author: Dirk Heisswolf # -# purpose: HSW12 Command Line Assembler # -################################################################################## -# Copyright (C) 2003-2009 by Dirk Heisswolf. All rights reserved. # -# This file is part of "HSW12". HSW12 is free software; # -# You must comply to the license.txt file # -################################################################################## -=pod -=head1 NAME - -hsw12asm.pl - HSW12 Command Line Assembler - -=head1 SYNOPSIS - - hsw12asm.pl -L -D - -=head1 REQUIRES - -perl5.005, hsw12_asm, File::Basename, FindBin - -=head1 DESCRIPTION - -This script is a command line frontend to the HSW12 Assembler. - -=head1 METHODS - -=over 4 - -=item hsw12.pl -L -D - - Starts the HSW12 Assembler. - This script reads the following arguments: - 1. src files: source code files(*.s) - 2. library pathes: directories to search for include files - 3. defines: assembler defines - -=back - -=head1 AUTHOR - -Dirk Heisswolf - -=head1 VERSION HISTORY - -=item V00.00 - Feb 9, 2003 - - initial release - -=item V00.01 - Apr 2, 2003 - - -added "-s28" and "-s19" command line options - -=item V00.02 - Apr 29, 2003 - - -making use of the new "verbose mode" - -=cut - -################# -# Perl settings # -################# -use 5.005; -#use warnings; -use File::Basename; -use FindBin qw($RealBin); -use lib $RealBin; -require hsw12_asm; - -############### -# global vars # -############### -@src_files = (); -@lib_files = (); -%defines = (); -$prog_name = ""; -$arg_type = "src"; -$srec_format = $hsw12_asm::srec_def_format; -$srec_data_length = $hsw12_asm::srec_def_data_length; -$srec_add_s5 = $hsw12_asm::srec_def_add_s5; -$srec_word_entries = 1; -$code = {}; - -########################## -# read command line args # -########################## -foreach $arg (@ARGV) { - if ($arg =~ /^\s*\-L\s*$/i) { - $arg_type = "lib"; - } elsif ($arg =~ /^\s*\-D\s*$/i) { - $arg_type = "def"; - } elsif ($arg =~ /^\s*\-s19\s*$/i) { - $srec_format = "S19"; - if ($srec_data_length > 32) { - $srec_data_length = 32; - } - } elsif ($arg =~ /^\s*\-s28\s*$/i) { - $srec_format = "S28"; - } elsif ($arg =~ /^\s*\-/) { - #ignore - } elsif ($arg_type eq "src") { - #sourcs file - push @src_files, $arg; - } elsif ($arg_type eq "lib") { - #library path - if ($arg !~ /\/$/) {$arg = sprintf("%s/", $arg);} - unshift @lib_files, $arg; - } elsif ($arg_type eq "def") { - #precompiler define - if ($arg =~ /^\s*(\w+)=(\w+)\s*$/) { - $defines{uc($1)} = $2; - } elsif ($arg =~ /^\s*(\w+)\s*$/) { - $defines{uc($1)} = ""; - } - } -} - -################### -# print help text # -################### -if ($#src_files < 0) { - printf "usage: %s [-s19|-s28] [-L ] [-D ]\n", $0; - print "\n"; - exit; -} - -########################## -# determine program name # -########################## -$prog_name = basename($src_files[0], ".s"); - -################### -# add default lib # -################### -if ($#lib_files < 0) { - push @lib_files, sprintf("%s/", dirname($src_files[0])); -} - -####################### -# compile source code # -####################### -#printf STDERR "src files: \"%s\"\n", join("\", \"", @src_files); -#printf STDERR "lib files: \"%s\"\n", join("\", \"", @lib_files); -#printf STDERR "defines: \"%s\"\n", join("\", \"", @defines); -$code = hsw12_asm->new(\@src_files, \@lib_files, \%defines, "S12", 1); - -################### -# write list file # -################### -if (open (FILEHANDLE, sprintf(">%s.lst", $prog_name))) { - $out_string = $code->print_listing(); - print FILEHANDLE $out_string; - #print STDOUT $out_string; - close FILEHANDLE; -} else { - printf STDERR "Can't open list file \"%s.lst\"\n", $prog_name; - exit; -} - -##################### -# check code status # -##################### -if ($code->{problems}) { - printf STDERR "Problem summary: %s\n", $code->{problems}; -} else { - - ######################### - # write linear S-record # - ######################### - if (open (FILEHANDLE, sprintf(">%s_lin.%s\n", $prog_name, lc($srec_format)))) { - $out_string = $code->print_lin_srec(uc($prog_name), - $srec_format, - $srec_data_length, - $srec_add_s5, - $srec_word_entries); - print FILEHANDLE $out_string; - close FILEHANDLE; - } else { - printf STDERR "Can't open S-recordfile \"%s_lin.%s\"\n", $prog_name, lc(srec_format); - exit; - } - - ######################## - # write paged S-record # - ######################## - if (open (FILEHANDLE, sprintf(">%s_pag.%s\n", $prog_name, lc($srec_format)))) { - $out_string = $code->print_pag_srec(uc($prog_name), - $srec_format, - $srec_data_length, - $srec_add_s5, - $srec_word_entries); - print FILEHANDLE $out_string; - close FILEHANDLE; - } else { - printf STDERR "Can't open S-recordfile \"%s_pag.%s\"\n", $prog_name, lc($srec_format); - exit; - } -} - - - - - - - - - - - - - - -
trunk/bench/tools/HSW12ASM/hsw12asm.pl Property changes : Deleted: svn:executable Index: trunk/bench/tools/HSW12ASM/hsw12_asm.pm =================================================================== --- trunk/bench/tools/HSW12ASM/hsw12_asm.pm (revision 2) +++ trunk/bench/tools/HSW12ASM/hsw12_asm.pm (nonexistent) @@ -1,11810 +0,0 @@ -#! /usr/bin/env perl -################################################################################## -# HC(S)12 ASSEMBLER # -################################################################################## -# file: hsw12_asm.pm # -# author: Dirk Heisswolf # -# purpose: This is the core of the HSW12 Assembler # -################################################################################## -# Copyright (C) 2003-2009 by Dirk Heisswolf. All rights reserved. # -# This file is part of "HSW12". HSW12 is free software; # -# You must comply to the license.txt file # -################################################################################## -=pod -=head1 NAME - -hsw12_asm - HC(S) Assembler - -=head1 SYNOPSIS - - require hsw12_asm - - $asm = hsw12_asm->new(\@source_files, \@library_dirs, \%assembler_defines, $cpu, $verbose); - print FILEHANDLE $asm->print_listing(); - print FILEHANDLE $asm->print_lin_srec(); - print FILEHANDLE $asm->print_pag_srec(); - -=head1 REQUIRES - -perl5.005, File::Basename, FindBin, Text::Tabs - -=head1 DESCRIPTION - -This module provides subroutines to... - -=over 4 - - - compile HC(S)12 assembler source code - - create code lisings - - create linear and paged S-Records - - provide access to the symbols used in the source code - -=back - -=head1 METHODS - -=head2 Creation - -=over 4 - -=item hsw12_asm->new(\@source_files, \@library_dirs, \%assembler_defines, $verbose) - - Creates and returns an hsw12_asm object. - This method requires five arguments: - 1. \@source_files: a list of files to compile (array reference) - 2. \@library_dirs: a list of directories to search include files in (array reference) - 3. \%assembler_defines: assembler defines to set before compiling the source code (hash reference) - 4. $cpu: the target CPU ("HC11", "HC12"/"S12", "S12X", "XGATE") (string) - 5. $verbose: switch to enable progress messages (boolean) - -=back - -=head2 Outputs - -=over 4 - -=item $asm_object->print_listing() - - Returns the listing of the assembler source code (string). - -=item $asm_object->print_lin_srec($string, - $srec_format, - $srec_length, - $s5, - $fill_bytes) - - Returns a linear S-Record of the compiled code (string). - This method requires five arguments: - 1. $string: S0 header (string) - 2. $srec_format: address format: S19, S28, or S37 (string) - 3. $srec_length: nuber of data bytes in S-Record (integer) - 4. $fill_bytes: add fill bytes (boolean) - -=item $asm_object->print_pag_srec($string, - $srec_format, - $srec_length, - $s5, - $fill_bytes) - - Returns a paged S-Record of the compiled code (string). - This method requires five arguments: - 1. $string: S0 header (string) - 2. $srec_format: address format: S19, S28, or S37 (string) - 3. $srec_length: nuber of data bytes in S-Record (integer) - 4. $fill_bytes: add fill bytes (boolean) - -=item $asm_object->print_pag_srec($string, - $srec_format, - $srec_length, - $s5, - $fill_bytes) - - Returns a paged S-Record of the compiled code (string). - This method requires five arguments: - 1. $string: S0 header (string) - 2. $srec_format: address format: S19, S28, or S37 (string) - 3. $srec_length: nuber of data bytes in S-Record (integer) - 4. $fill_bytes: add fill bytes (boolean) - -=back - -=head2 Misc - -=over 4 - -=item $asm_object->reload(boolean) - This method requires one argument: - 1. $verbose: switch to enable progress messages (boolean) - - Recompiles the source code files. - -=item $asm_object->$evaluate_expression($expr, $pc_lin, $pc_pag, $loc) - - Converts an expression into an integer and resolves compiler symbols. - This method requires four arguments: - 1. $expr: expression (string) - 2. $pc_lin: current linear program counter (integer) - 3. $pc_pag: current paged program counter (integer) - 4. $loc: current "LOC" count (integer) - -=back - -=head1 AUTHOR - -Dirk Heisswolf - -=head1 VERSION HISTORY - -=item V00.00 - Feb 9, 2003 - - initial release - -=item V00.01 - Feb 23, 2003 - - -fixed BCC opcode - -fixed relative address mode - -replacing tabs with Text::Tabs::expand() - -=item V00.02 - Feb 24, 2003 - - -fixed compiler symbol table - -=item V00.03 - Feb 28, 2003 - - -fixed IDX1 addressing mode - -fixed IDX2 addressing mode - -fixed REL9 addressing mode for DBEQ, DBNE, IBEQ, IBNE - -fixed EXG and TFR command - -=item V00.04 - Mar 2, 2003 - - -fixed ascii expressions - -allow value changes of symbols during compilation - -fixed FCC pseudo opcode - -fixed long hex codes in listing - -=item V00.05 - Mar 11, 2003 - - -new default mapping for linear PC: - $0000 - $3FFF are mapped to flash page $3D - -=item V00.06 - Mar 28, 2003 - - -fixed S-Record output (data fields used to be one byte too short) - -=item V00.07 - Apr 1, 2003 - - -added options to configure the S-Record format, including "fill bytes" - -=item V00.08 - Apr 23, 2003 - - -fixed S0 record format - -fixd fill byte insertion - -=item V00.09 - Apr 29, 2003 - - -added member variable "compile_count" - -undefined symbols will now generate errors - -accepting "_" on integer numbers - -added a "verbose mode" to print out progress messages - -=item V00.10 - May 6, 2003 - - -bugfix in "evaluate_expression" - -=item V00.11 - Jun 5, 2003 - - -bugfix in "precompile" - -=item V00.12 - Sep 22, 2003 - - -allow more generic instruction tables - -=item V00.13 - Sep 27, 2003 - - -added HC11, S12X, and XGATE instruction tables - -=item V00.14 - Sep 28, 2003 - - -added XGATE pseudo instructions - -=item V00.15 - Sep 30, 2003 - - -added XGATE "IDO5" address mode - -=item V00.16 - Nov 24, 2003 - - -fixed relaxed error condition of "REL8" address mode - -=item V00.17 - Nov 27, 2003 - - -updated S12X SEX instruction - -=item V00.18 - Jan 27, 2004 - - -fixed missing S12X move address modes - -various minor fixes - -=item V00.19 - Feb 13, 2004 - - -fixed regular expressions for parsing pseudo opcodes - -=item V00.20 - Mar 9, 2004 - - -detect auto in/decrement of PC - -=item V00.21 - Aug 4, 2004 - - -added XGATE command "TFR RD,PC" - -=item V00.22 - Oct 28, 2004 - - -fixed "TFR", "EXG", and "SEX" instructions - -added pseudo opcodes which are to be ignored - -=item V00.23 - Nov 26, 2004 - - -fixed regular expression "TFR Rx,PC" - -added 16-bit immediatate pseudo instructions - -=item V00.24 - Apr 24, 2005 - - -automatically turn branch instructions into long branches - if out of range - -added pseudo opcode "JOB" to automatically choose between - "BRA rel8" and "JMP ext" opcodes - -added pseudo opcode "JOBSR" to automatically choose between - "BSR rel8" and "JSR ext" opcodes - -=cut - -################# -# Perl settings # -################# -#use warnings; -#use strict; - -#################### -# create namespace # -#################### -package hsw12_asm; - -########### -# modules # -########### -use IO::File; -use Fcntl; -use Text::Tabs; - -#################### -# global variables # -#################### -#@source_files (array) -#@libraies (array) -#@initial_defs (hash) -#$problems (boolean) -#@code (array) -#%precomp_defs (hash) -#%comp_symbols (hash) -#%lin_addrspace (hash) -#%pag_addrspace (hash) -#$compile_count (integer) -#$verbose (boolean) - -############# -# constants # -############# -########### -# version # -########### -*version = \"00.24";#" - -############################# -# default S-record settings # -############################# -*srec_def_format = \"S28";#" -*srec_def_data_length = \64; -*srec_def_add_s5 = \0; -*srec_def_fill_byte = \0xff; - -################### -# path delimeters # -################### -*path_del = \qr/[\/\\]/; -*path_absolute = \qr/^\.?[\/\\]/; - -######################## -# code entry structure # -######################## -*code_entry_line = \0; -*code_entry_file = \1; -*code_entry_code = \2; -*code_entry_label = \3; -*code_entry_opcode = \4; -*code_entry_args = \5; -*code_entry_lin_pc = \6; -*code_entry_pag_pc = \7; -*code_entry_hex = \8; -*code_entry_bytes = \9; -*code_entry_errors = \10; - -########################### -# precompiler expressions # -########################### -*precomp_directive = \qr/^\#(\w+)\s*([\S]*)\s*([^;]*)\s*[;\*]?/; #$1:directive $2:name $3:value -*precomp_define = \qr/define/i; -*precomp_undef = \qr/undef/i; -*precomp_ifdef = \qr/ifdef/i; -*precomp_ifndef = \qr/ifndef/i; -*precomp_else = \qr/else/i; -*precomp_endif = \qr/endif/i; -*precomp_include = \qr/include/i; -*precomp_blanc_line = \qr/^\s*$/; -*precomp_comment_line = \qr/^\s*[\;\*]/; -*precomp_opcode = \qr/^([^\#]\w*\`?):?\s*([\w\.]*)\s*([^;]*)\s*[;\*]?/; #$1:label $2:opcode $3:arguments - -############# -# TFR codes # -############# -*tfr_s12 = \0; -*tfr_s12x = \1; -*tfr_tfr = \0; -*tfr_sex = \1; -*tfr_exg = \2; - -############################ -# address mode expressions # -############################ -#operands (S12) -*op_keywords = \qr/^\s*(A|B|D|X|Y|PC|SP|UNMAPPED|R[0-7])\s*$/i; #$1: keyword -#*del = \qr/\s*,\s*/; -*del = \qr/\s*[\s,]\s*/; -*op_expr = \qr/([^\"\'\s\,]+\'?|\".*\"|\'.*\')/i; -*op_offset = \qr/([^\"\'\s\,]*\'?|\".*\"|\'.*\')/i; -*op_imm = \qr/\#$op_expr/i; -*op_dir = \qr/>/; -*op_no_oprtr = \qr/[^\-\+\/%&\|~<>\s]/; -*op_term = \qr/\%[01]+|[0-9]+|\$[0-9a-fA-F]+|\"(\w)\"|\*|\@/; -*op_binery = \qr/^\s*([~\-]?)\s*\%([01_]+)\s*$/; #$1:complement $2:binery number -*op_dec = \qr/^\s*([~\-]?)\s*([0-9_]+)\s*$/; #$1:complement $2:decimal number -*op_hex = \qr/^\s*([~\-]?)\s*\$([0-9a-fA-F_]+)\s*$/; #$1:complement $2:hex number -*op_ascii = \qr/^\s*([~\-]?)\s*[\'\"](.+)[\'\"]\s*$/; #$1:complement $2:ASCII caracter -*op_symbol = \qr/^\s*([~\-]?)\s*([\w]+[\`]?)\s*$/; #$1:complement $2:symbol -#*op_symbol = \qr/^\s*([~\-]?)\s*([\w]+[\`]?|[\`])\s*$/; #$1:complement $2:symbol -*op_curr_lin_pc = \qr/^\s*([~\-]?)\s*\@\s*$/; -*op_curr_pag_pc = \qr/^\s*([~\-]?)\s*\*\s*$/; -*op_formula = \qr/^\s*($op_psop)\s*$/; #$1:formula -*op_formula_pars = \qr/^\s*(.*)\s*\(\s*([^\(\)]+)\s*\)\s*(.*)\s*$/; #$1:leftside $2:inside $3:rightside -*op_formula_complement = \qr/^\s*([~\-])\s*([~\-].*)\s*$/; #$1:leftside $2:rightside -*op_formula_and = \qr/^\s*([^\&]*)\s*\&\s*(.+)\s*$/; #$1:leftside $2:rightside -*op_formula_or = \qr/^\s*([^\|]*)\s*\|\s*(.+)\s*$/; #$1:leftside $2:rightside -*op_formula_exor = \qr/^\s*([^\^]*)\s*\^\s*(.+)\s*$/; #$1:leftside $2:rightside -*op_formula_rightshift = \qr/^\s*([^>]*)\s*>>\s*(.+)\s*$/; #$1:leftside $2:rightside -*op_formula_leftshift = \qr/^\s*([^<]*)\s*<<\s*(.+)\s*$/; #$1:leftside $2:rightside -*op_formula_mul = \qr/^\s*(.*$op_no_oprtr)\s*\*\s*(.+)\s*$/; #$1:leftside $2:rightside -*op_formula_div = \qr/^\s*([^\/]*)\s*\/\s*(.+)\s*$/; #$1:leftside $2:rightside -*op_formula_mod = \qr/^\s*(.*$op_no_oprtr)\s*\%\s*(.*)\s*$/; #$1:leftside $2:rightside -*op_formula_plus = \qr/^\s*([^\+]*)\s*\+\s*(.+)\s*$/; #$1:leftside $2:rightside -*op_formula_minus = \qr/^\s*(.*$op_no_oprtr)\s*\-\s*(.+)\s*$/; #$1:leftside $2:rightside -*op_whitespace = \qr/^\s*$/; - -######################## -# compiler expressions # -######################## -*cmp_no_hexcode = \qr/^\s*(.*?[^0-9a-fA-F\ ].*?)\s*$/; #$1:string - -############# -# cpu types # -############# -*cpu_hc11 = \qr/^\s*HC11\s*$/i; -*cpu_s12 = \qr/^\s*((HC)|(S))12\s*$/i; -*cpu_s12x = \qr/^\s*S12X\s*$/i; -*cpu_xgate = \qr/^\s*XGATE\s*$/i; - -################# -# opcode tables # -################# -#HC11: MNEMONIC ADDRESS MODE OPCODE -*opctab_hc11 = \{"ABA" => [[$amod_inh, \&check_inh, "1B" ]], #INH - "ABX" => [[$amod_inh, \&check_inh, "3A" ]], #INH - "ABY" => [[$amod_inh, \&check_inh, "18 3A"]], #INH - "ADCA" => [[$amod_imm8, \&check_imm8, "89" ], #IMM - [$amod_dir, \&check_dir, "99" ], #DIR - [$amod_ext, \&check_ext, "B9" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "A9" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 A9"]], #IND,Y - "ADCB" => [[$amod_imm8, \&check_imm8, "C9" ], #IMM - [$amod_dir, \&check_dir, "D9" ], #DIR - [$amod_ext, \&check_ext, "F9" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "E9" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 E9"]], #IND,Y - "ADDA" => [[$amod_imm8, \&check_imm8, "8B" ], #IMM - [$amod_dir, \&check_dir, "9B" ], #DIR - [$amod_ext, \&check_ext, "BB" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "AB" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 AB"]], #IND,Y - "ADDB" => [[$amod_imm8, \&check_imm8, "CB" ], #IMM - [$amod_dir, \&check_dir, "DB" ], #DIR - [$amod_ext, \&check_ext, "FB" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "EB" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 EB"]], #IND,Y - "ADDD" => [[$amod_imm16, \&check_imm16, "C3" ], #IMM - [$amod_dir, \&check_dir, "D3" ], #DIR - [$amod_ext, \&check_ext, "F3" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "E3" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 E3"]], #IND,Y - "ANDA" => [[$amod_imm8, \&check_imm8, "84" ], #IMM - [$amod_dir, \&check_dir, "94" ], #DIR - [$amod_ext, \&check_ext, "B4" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "A4" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 A4"]], #IND,Y - "ANDB" => [[$amod_imm8, \&check_imm8, "C4" ], #IMM - [$amod_dir, \&check_dir, "D4" ], #DIR - [$amod_ext, \&check_ext, "F4" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "E4" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 E4"]], #IND,Y - "ASL" => [[$amod_ext, \&check_ext, "78" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "68" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 68"]], #IND,Y - "ASLA" => [[$amod_inh, \&check_inh, "48" ]], #INH - "ASLB" => [[$amod_inh, \&check_inh, "58" ]], #INH - "ASLD" => [[$amod_inh, \&check_inh, "05" ]], #INH - "ASR" => [[$amod_ext, \&check_ext, "77" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "67" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 67"]], #IND,Y - "ASRA" => [[$amod_inh, \&check_inh, "47" ]], #INH - "ASRB" => [[$amod_inh, \&check_inh, "57" ]], #INH - "BCC" => [[$amod_rel8, \&check_rel8, "24" ]], #REL - "BCLR" => [[$amod_dir_msk, \&check_dir_msk, "15" ], #DIR - [$amod_hc11_indx_msk, \&check_hc11_indx_msk, "1D" ], #IND,X - [$amod_hc11_indy_msk, \&check_hc11_indy_msk, "18 1D"]], #IND,Y - "BCS" => [[$amod_rel8, \&check_rel8, "25" ]], #REL - "BEQ" => [[$amod_rel8, \&check_rel8, "27" ]], #REL - "BGE" => [[$amod_rel8, \&check_rel8, "2C" ]], #REL - "BGT" => [[$amod_rel8, \&check_rel8, "2E" ]], #REL - "BHI" => [[$amod_rel8, \&check_rel8, "22" ]], #REL - "BHS" => [[$amod_rel8, \&check_rel8, "24" ]], #REL - "BITA" => [[$amod_imm8, \&check_imm8, "85" ], #IMM - [$amod_dir, \&check_dir, "95" ], #DIR - [$amod_ext, \&check_ext, "B5" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "A5" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 A5"]], #IND,Y - "BITB" => [[$amod_imm8, \&check_imm8, "C5" ], #IMM - [$amod_dir, \&check_dir, "D5" ], #DIR - [$amod_ext, \&check_ext, "F5" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "E5" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 E5"]], #IND,Y - "BLE" => [[$amod_rel8, \&check_rel8, "2F" ]], #REL - "BLO" => [[$amod_rel8, \&check_rel8, "25" ]], #REL - "BLS" => [[$amod_rel8, \&check_rel8, "23" ]], #REL - "BLT" => [[$amod_rel8, \&check_rel8, "2D" ]], #REL - "BMI" => [[$amod_rel8, \&check_rel8, "2B" ]], #REL - "BNE" => [[$amod_rel8, \&check_rel8, "26" ]], #REL - "BPL" => [[$amod_rel8, \&check_rel8, "2A" ]], #REL - "BRA" => [[$amod_rel8, \&check_rel8, "20" ]], #REL - "BRCLR" => [[$amod_dir_msk_rel, \&check_dir_msk_rel, "13" ], #DIR - [$amod_hc11_indx_msk_rel, \&check_hc11_indx_msk_rel, "1F" ], #IND,X - [$amod_hc11_indy_msk_rel, \&check_hc11_indy_msk_rel, "18 1F"]], #IND,Y - "BRN" => [[$amod_rel8, \&check_rel8, "21" ]], #REL - "BRSET" => [[$amod_dir_msk_rel, \&check_dir_msk_rel, "12" ], #DIR - [$amod_hc11_indx_msk_rel, \&check_hc11_indx_msk_rel, "1E" ], #IND,X - [$amod_hc11_indy_msk_rel, \&check_hc11_indy_msk_rel, "18 1E"]], #IND,Y - "BSET" => [[$amod_dir_msk, \&check_dir_msk, "14" ], #DIR - [$amod_hc11_indx_msk, \&check_hc11_indx_msk, "1C" ], #IND,X - [$amod_hc11_indy_msk, \&check_hc11_indy_msk, "18 1C"]], #IND,Y - "BSR" => [[$amod_rel8, \&check_rel8, "8D" ]], #REL - "BVC" => [[$amod_rel8, \&check_rel8, "28" ]], #REL - "BVS" => [[$amod_rel8, \&check_rel8, "29" ]], #REL - "CBA" => [[$amod_inh, \&check_inh, "11" ]], #INH - "CLC" => [[$amod_inh, \&check_inh, "0C" ]], #INH - "CLI" => [[$amod_inh, \&check_inh, "0E" ]], #INH - "CLR" => [[$amod_ext, \&check_ext, "7F" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "6F" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 6F"]], #IND,Y - "CLRA" => [[$amod_inh, \&check_inh, "4F" ]], #INH - "CLRB" => [[$amod_inh, \&check_inh, "5F" ]], #INH - "CLV" => [[$amod_inh, \&check_inh, "0A" ]], #INH - "CMPA" => [[$amod_imm8, \&check_imm8, "81" ], #IMM - [$amod_dir, \&check_dir, "91" ], #DIR - [$amod_ext, \&check_ext, "B1" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "A1" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 A1"]], #IND,Y - "CMPB" => [[$amod_imm8, \&check_imm8, "C1" ], #IMM - [$amod_dir, \&check_dir, "D1" ], #DIR - [$amod_ext, \&check_ext, "F1" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "E1" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 E1"]], #IND,Y - "COM" => [[$amod_ext, \&check_ext, "73" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "63" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 63"]], #IND,Y - "COMA" => [[$amod_inh, \&check_inh, "43" ]], #INH - "COMB" => [[$amod_inh, \&check_inh, "53" ]], #INH - "CPD" => [[$amod_imm16, \&check_imm16, "1A 83"], #IMM - [$amod_dir, \&check_dir, "1A 93"], #DIR - [$amod_ext, \&check_ext, "1A B3"], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "1A A3"], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "CD A3"]], #IND,Y - "CPX" => [[$amod_imm16, \&check_imm16, "8C" ], #IMM - [$amod_dir, \&check_dir, "9C" ], #DIR - [$amod_ext, \&check_ext, "BC" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "AC" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "CD AC"]], #IND,Y - "CPY" => [[$amod_imm16, \&check_imm16, "18 8D"], #IMM - [$amod_dir, \&check_dir, "18 9D"], #DIR - [$amod_ext, \&check_ext, "18 BD"], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "1A AC"], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 AC"]], #IND,Y - "DAA" => [[$amod_inh, \&check_inh, "19" ]], #INH - "DEC" => [[$amod_ext, \&check_ext, "7A" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "6A" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 6A"]], #IND,Y - "DECA" => [[$amod_inh, \&check_inh, "4A" ]], #INH - "DECB" => [[$amod_inh, \&check_inh, "5A" ]], #INH - "DES" => [[$amod_inh, \&check_inh, "34" ]], #INH - "DEX" => [[$amod_inh, \&check_inh, "09" ]], #INH - "DEY" => [[$amod_inh, \&check_inh, "18 09"]], #INH - "EORA" => [[$amod_imm8, \&check_imm8, "88" ], #IMM - [$amod_dir, \&check_dir, "98" ], #DIR - [$amod_ext, \&check_ext, "B8" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "A8" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 A8"]], #IND,Y - "EORB" => [[$amod_imm8, \&check_imm8, "C8" ], #IMM - [$amod_dir, \&check_dir, "D8" ], #DIR - [$amod_ext, \&check_ext, "F8" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "E8" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 E8"]], #IND,Y - "FDIV" => [[$amod_inh, \&check_inh, "03" ]], #INH - "IDIV" => [[$amod_inh, \&check_inh, "02" ]], #INH - "INC" => [[$amod_ext, \&check_ext, "7C" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "6C" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 6C"]], #IND,Y - "INCA" => [[$amod_inh, \&check_inh, "4C" ]], #INH - "INCB" => [[$amod_inh, \&check_inh, "5C" ]], #INH - "INS" => [[$amod_inh, \&check_inh, "31" ]], #INH - "INX" => [[$amod_inh, \&check_inh, "08" ]], #INH - "INY" => [[$amod_inh, \&check_inh, "18 08"]], #INH - "JMP" => [[$amod_ext, \&check_ext, "7E" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "6E" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 6E"]], #IND,Y - "JSR" => [[$amod_dir, \&check_dir, "9D" ], #DIR - [$amod_ext, \&check_ext, "BD" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "AD" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 AD"]], #IND,Y - "LDAA" => [[$amod_imm8, \&check_imm8, "86" ], #IMM - [$amod_dir, \&check_dir, "96" ], #DIR - [$amod_ext, \&check_ext, "B6" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "A6" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 A6"]], #IND,Y - "LDAB" => [[$amod_imm8, \&check_imm8, "C6" ], #IMM - [$amod_dir, \&check_dir, "D6" ], #DIR - [$amod_ext, \&check_ext, "F6" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "E6" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 E6"]], #IND,Y - "LDD" => [[$amod_imm16, \&check_imm16, "CC" ], #IMM - [$amod_dir, \&check_dir, "DC" ], #DIR - [$amod_ext, \&check_ext, "FC" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "EC" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 EC"]], #IND,Y - "LDS" => [[$amod_imm16, \&check_imm16, "8E" ], #IMM - [$amod_dir, \&check_dir, "9E" ], #DIR - [$amod_ext, \&check_ext, "BE" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "AE" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 AE"]], #IND,Y - "LDX" => [[$amod_imm16, \&check_imm16, "CE" ], #IMM - [$amod_dir, \&check_dir, "DE" ], #DIR - [$amod_ext, \&check_ext, "FE" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "EE" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "CD EE"]], #IND,Y - "LDY" => [[$amod_imm16, \&check_imm16, "18 CE"], #IMM - [$amod_dir, \&check_dir, "18 DE"], #DIR - [$amod_ext, \&check_ext, "18 FE"], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "1A EE"], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 EE"]], #IND,Y - "LSL" => [[$amod_ext, \&check_ext, "78" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "68" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 68"]], #IND,Y - "LSLA" => [[$amod_inh, \&check_inh, "48" ]], #INH - "LSLB" => [[$amod_inh, \&check_inh, "58" ]], #INH - "LSLD" => [[$amod_inh, \&check_inh, "05" ]], #INH - "LSR" => [[$amod_ext, \&check_ext, "74" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "64" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 64"]], #IND,Y - "LSRA" => [[$amod_inh, \&check_inh, "44" ]], #INH - "LSRB" => [[$amod_inh, \&check_inh, "54" ]], #INH - "LSRD" => [[$amod_inh, \&check_inh, "04" ]], #INH - "MUL" => [[$amod_inh, \&check_inh, "3D" ]], #INH - "NEG" => [[$amod_ext, \&check_ext, "70" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "60" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 60"]], #IND,Y - "NEGA" => [[$amod_inh, \&check_inh, "40" ]], #INH - "NEGB" => [[$amod_inh, \&check_inh, "50" ]], #INH - "NOP" => [[$amod_inh, \&check_inh, "01" ]], #INH - "ORAA" => [[$amod_imm8, \&check_imm8, "8A" ], #IMM - [$amod_dir, \&check_dir, "9A" ], #DIR - [$amod_ext, \&check_ext, "BA" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "AA" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 AA"]], #IND,Y - "ORAB" => [[$amod_imm8, \&check_imm8, "CA" ], #IMM - [$amod_dir, \&check_dir, "DA" ], #DIR - [$amod_ext, \&check_ext, "FA" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "EA" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 EA"]], #IND,Y - "PSHA" => [[$amod_inh, \&check_inh, "36" ]], #INH - "PSHB" => [[$amod_inh, \&check_inh, "37" ]], #INH - "PSHX" => [[$amod_inh, \&check_inh, "3C" ]], #INH - "PSHY" => [[$amod_inh, \&check_inh, "18 3C"]], #INH - "PULA" => [[$amod_inh, \&check_inh, "32" ]], #INH - "PULB" => [[$amod_inh, \&check_inh, "33" ]], #INH - "PULX" => [[$amod_inh, \&check_inh, "38" ]], #INH - "PULY" => [[$amod_inh, \&check_inh, "18 38"]], #INH - "ROL" => [[$amod_ext, \&check_ext, "79" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "69" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 69"]], #IND,Y - "ROLA" => [[$amod_inh, \&check_inh, "49" ]], #INH - "ROLB" => [[$amod_inh, \&check_inh, "59" ]], #INH - "ROR" => [[$amod_ext, \&check_ext, "76" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "66" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 66"]], #IND,Y - "RORA" => [[$amod_inh, \&check_inh, "46" ]], #INH - "RORB" => [[$amod_inh, \&check_inh, "56" ]], #INH - "RTI" => [[$amod_inh, \&check_inh, "3B" ]], #INH - "RTS" => [[$amod_inh, \&check_inh, "39" ]], #INH - "SBA" => [[$amod_inh, \&check_inh, "10" ]], #INH - "SBCA" => [[$amod_imm8, \&check_imm8, "82" ], #IMM - [$amod_dir, \&check_dir, "92" ], #DIR - [$amod_ext, \&check_ext, "B2" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "A2" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 A2"]], #IND,Y - "SBCB" => [[$amod_imm8, \&check_imm8, "C2" ], #IMM - [$amod_dir, \&check_dir, "D2" ], #DIR - [$amod_ext, \&check_ext, "F2" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "E2" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 E2"]], #IND,Y - "SEC" => [[$amod_inh, \&check_inh, "0D" ]], #INH - "SEI" => [[$amod_inh, \&check_inh, "0F" ]], #INH - "SEV" => [[$amod_inh, \&check_inh, "0B" ]], #INH - "STAA" => [[$amod_dir, \&check_dir, "97" ], #DIR - [$amod_ext, \&check_ext, "B7" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "A7" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 A7"]], #IND,Y - "STAB" => [[$amod_dir, \&check_dir, "D7" ], #DIR - [$amod_ext, \&check_ext, "F7" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "E7" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 E7"]], #IND,Y - "STD" => [[$amod_dir, \&check_dir, "DD" ], #DIR - [$amod_ext, \&check_ext, "FD" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "ED" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 ED"]], #IND,Y - "STOP" => [[$amod_inh, \&check_inh, "18 3E"]], #INH - "STS" => [[$amod_dir, \&check_dir, "9F" ], #DIR - [$amod_ext, \&check_ext, "BF" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "AF" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 AF"]], #IND,Y - "STX" => [[$amod_dir, \&check_dir, "DF" ], #DIR - [$amod_ext, \&check_ext, "FF" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "EF" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "CD EF"]], #IND,Y - "STY" => [[$amod_dir, \&check_dir, "18 DF"], #DIR - [$amod_ext, \&check_ext, "18 FF"], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "1A EF"], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 EF"]], #IND,Y - "SUBA" => [[$amod_imm8, \&check_imm8, "80" ], #IMM - [$amod_dir, \&check_dir, "90" ], #DIR - [$amod_ext, \&check_ext, "B0" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "A0" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 A0"]], #IND,Y - "SUBB" => [[$amod_imm8, \&check_imm8, "C0" ], #IMM - [$amod_dir, \&check_dir, "D0" ], #DIR - [$amod_ext, \&check_ext, "F0" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "E0" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 E0"]], #IND,Y - "SUBD" => [[$amod_imm16, \&check_imm16, "83" ], #IMM - [$amod_dir, \&check_dir, "93" ], #DIR - [$amod_ext, \&check_ext, "B3" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "A3" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 A3"]], #IND,Y - "SWI" => [[$amod_inh, \&check_inh, "3F" ]], #INH - "TAB" => [[$amod_inh, \&check_inh, "16" ]], #INH - "TAP" => [[$amod_inh, \&check_inh, "06" ]], #INH - "TBA" => [[$amod_inh, \&check_inh, "17" ]], #INH - "TEST" => [[$amod_inh, \&check_inh, "00" ]], #INH - "TPA" => [[$amod_inh, \&check_inh, "07" ]], #INH - "TST" => [[$amod_ext, \&check_ext, "7D" ], #EXT - [$amod_hc11_indx, \&check_hc11_indx, "6D" ], #IND,X - [$amod_hc11_indy, \&check_hc11_indy, "18 6D"]], #IND,Y - "TSTA" => [[$amod_inh, \&check_inh, "4D" ]], #INH - "TSTB" => [[$amod_inh, \&check_inh, "5D" ]], #INH - "TSX" => [[$amod_inh, \&check_inh, "30" ]], #INH - "TSY" => [[$amod_inh, \&check_inh, "18 30"]], #INH - "TXS" => [[$amod_inh, \&check_inh, "35" ]], #INH - "TYS" => [[$amod_inh, \&check_inh, "18 35"]], #INH - "WAI" => [[$amod_inh, \&check_inh, "3E" ]], #INH - "XGDX" => [[$amod_inh, \&check_inh, "8F" ]], #INH - "XGDY" => [[$amod_inh, \&check_inh, "18 8F"]]};#INH - -#HC12/S12: MNEMONIC ADDRESS MODE OPCODE -*opctab_s12 = \{"ABA" => [[$amod_inh, \&check_inh, "18 06"]], #INH - "ABX" => [[$amod_inh, \&check_inh, "1A E5"]], #INH - "ABY" => [[$amod_inh, \&check_inh, "19 ED"]], #INH - "ADCA" => [[$amod_imm8, \&check_imm8, "89" ], #IMM - [$amod_dir, \&check_dir, "99" ], #DIR - [$amod_ext, \&check_ext, "B9" ], #EXT - [$amod_idx, \&check_idx, "A9" ], #IDX - [$amod_idx1, \&check_idx1, "A9" ], #IDX1 - [$amod_idx2, \&check_idx2, "A9" ], #IDX2 - [$amod_ididx, \&check_ididx, "A9" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "A9" ]], #[IDX2] - "ADCB" => [[$amod_imm8, \&check_imm8, "C9" ], #IMM - [$amod_dir, \&check_dir, "D9" ], #DIR - [$amod_ext, \&check_ext, "F9" ], #EXT - [$amod_idx, \&check_idx, "E9" ], #IDX - [$amod_idx1, \&check_idx1, "E9" ], #IDX1 - [$amod_idx2, \&check_idx2, "E9" ], #IDX2 - [$amod_ididx, \&check_ididx, "E9" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "E9" ]], #[IDX2] - "ADDA" => [[$amod_imm8, \&check_imm8, "8B" ], #IMM - [$amod_dir, \&check_dir, "9B" ], #DIR - [$amod_ext, \&check_ext, "BB" ], #EXT - [$amod_idx, \&check_idx, "AB" ], #IDX - [$amod_idx1, \&check_idx1, "AB" ], #IDX1 - [$amod_idx2, \&check_idx2, "AB" ], #IDX2 - [$amod_ididx, \&check_ididx, "AB" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "AB" ]], #[IDX2] - "ADDB" => [[$amod_imm8, \&check_imm8, "CB" ], #IMM - [$amod_dir, \&check_dir, "DB" ], #DIR - [$amod_ext, \&check_ext, "FB" ], #EXT - [$amod_idx, \&check_idx, "EB" ], #IDX - [$amod_idx1, \&check_idx1, "EB" ], #IDX1 - [$amod_idx2, \&check_idx2, "EB" ], #IDX2 - [$amod_ididx, \&check_ididx, "EB" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "EB" ]], #[IDX2] - "ADDD" => [[$amod_imm16, \&check_imm16, "C3" ], #IMM - [$amod_dir, \&check_dir, "D3" ], #DIR - [$amod_ext, \&check_ext, "F3" ], #EXT - [$amod_idx, \&check_idx, "E3" ], #IDX - [$amod_idx1, \&check_idx1, "E3" ], #IDX1 - [$amod_idx2, \&check_idx2, "E3" ], #IDX2 - [$amod_ididx, \&check_ididx, "E3" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "E3" ]], #[IDX2] - "ANDA" => [[$amod_imm8, \&check_imm8, "84" ], #IMM - [$amod_dir, \&check_dir, "94" ], #DIR - [$amod_ext, \&check_ext, "B4" ], #EXT - [$amod_idx, \&check_idx, "A4" ], #IDX - [$amod_idx1, \&check_idx1, "A4" ], #IDX1 - [$amod_idx2, \&check_idx2, "A4" ], #IDX2 - [$amod_ididx, \&check_ididx, "A4" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "A4" ]], #[IDX2] - "ANDB" => [[$amod_imm8, \&check_imm8, "C4" ], #IMM - [$amod_dir, \&check_dir, "D4" ], #DIR - [$amod_ext, \&check_ext, "F4" ], #EXT - [$amod_idx, \&check_idx, "E4" ], #IDX - [$amod_idx1, \&check_idx1, "E4" ], #IDX1 - [$amod_idx2, \&check_idx2, "E4" ], #IDX2 - [$amod_ididx, \&check_ididx, "E4" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "E4" ]], #[IDX2] - "ANDCC" => [[$amod_imm8, \&check_imm8, "10" ]], #IMM - "ASL" => [[$amod_ext, \&check_ext, "78" ], #EXT - [$amod_idx, \&check_idx, "68" ], #IDX - [$amod_idx1, \&check_idx1, "68" ], #IDX1 - [$amod_idx2, \&check_idx2, "68" ], #IDX2 - [$amod_ididx, \&check_ididx, "68" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "68" ]], #[IDX2] - "ASLA" => [[$amod_inh, \&check_inh, "48" ]], #INH - "ASLB" => [[$amod_inh, \&check_inh, "58" ]], #INH - "ASLD" => [[$amod_inh, \&check_inh, "59" ]], #INH - "ASR" => [[$amod_ext, \&check_ext, "77" ], #EXT - [$amod_idx, \&check_idx, "67" ], #IDX - [$amod_idx1, \&check_idx1, "67" ], #IDX1 - [$amod_idx2, \&check_idx2, "67" ], #IDX2 - [$amod_ididx, \&check_ididx, "67" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "67" ]], #[IDX2] - "ASRA" => [[$amod_inh, \&check_inh, "47" ]], #INH - "ASRB" => [[$amod_inh, \&check_inh, "57" ]], #INH - "BCC" => [[$amod_rel8, \&check_rel8, "24" ], #REL - [$amod_rel16, \&check_rel16, "18 24"]], #REL - "BCLR" => [[$amod_dir_msk, \&check_dir_msk, "4D" ], #DIR - [$amod_ext_msk, \&check_ext_msk, "1D" ], #EXT - [$amod_idx_msk, \&check_idx_msk, "0D" ], #IDX - [$amod_idx1_msk, \&check_idx1_msk, "0D" ], #IDX1 - [$amod_idx2_msk, \&check_idx2_msk, "0D" ]], #IDX2 - "BCS" => [[$amod_rel8, \&check_rel8, "25" ], #REL - [$amod_rel16, \&check_rel16, "18 25"]], #REL - "BEQ" => [[$amod_rel8, \&check_rel8, "27" ], #REL - [$amod_rel16, \&check_rel16, "18 27"]], #REL - "BGE" => [[$amod_rel8, \&check_rel8, "2C" ], #REL - [$amod_rel16, \&check_rel16, "18 2C"]], #REL - "BKGD" => [[$amod_inh, \&check_inh, "00" ]], #INH - "BGT" => [[$amod_rel8, \&check_rel8, "2E" ], #REL - [$amod_rel16, \&check_rel16, "18 2E"]], #REL - "BHI" => [[$amod_rel8, \&check_rel8, "22" ], #REL - [$amod_rel16, \&check_rel16, "18 22"]], #REL - "BHS" => [[$amod_rel8, \&check_rel8, "24" ], #REL - [$amod_rel16, \&check_rel16, "18 24"]], #REL - "BITA" => [[$amod_imm8, \&check_imm8, "85" ], #IMM - [$amod_dir, \&check_dir, "95" ], #DIR - [$amod_ext, \&check_ext, "B5" ], #EXT - [$amod_idx, \&check_idx, "A5" ], #IDX - [$amod_idx1, \&check_idx1, "A5" ], #IDX1 - [$amod_idx2, \&check_idx2, "A5" ], #IDX2 - [$amod_ididx, \&check_ididx, "A5" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "A5" ]], #[IDX2] - "BITB" => [[$amod_imm8, \&check_imm8, "C5" ], #IMM - [$amod_dir, \&check_dir, "D5" ], #DIR - [$amod_ext, \&check_ext, "F5" ], #EXT - [$amod_idx, \&check_idx, "E5" ], #IDX - [$amod_idx1, \&check_idx1, "E5" ], #IDX1 - [$amod_idx2, \&check_idx2, "E5" ], #IDX2 - [$amod_ididx, \&check_ididx, "E5" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "E5" ]], #[IDX2] - "BLE" => [[$amod_rel8, \&check_rel8, "2F" ], #REL - [$amod_rel16, \&check_rel16, "18 2F"]], #REL - "BLO" => [[$amod_rel8, \&check_rel8, "25" ], #REL - [$amod_rel16, \&check_rel16, "18 25"]], #REL - "BLS" => [[$amod_rel8, \&check_rel8, "23" ], #REL - [$amod_rel16, \&check_rel16, "18 23"]], #REL - "BLT" => [[$amod_rel8, \&check_rel8, "2D" ], #REL - [$amod_rel16, \&check_rel16, "18 2D"]], #REL - "BMI" => [[$amod_rel8, \&check_rel8, "2B" ], #REL - [$amod_rel16, \&check_rel16, "18 2B"]], #REL - "BNE" => [[$amod_rel8, \&check_rel8, "26" ], #REL - [$amod_rel16, \&check_rel16, "18 26"]], #REL - "BPL" => [[$amod_rel8, \&check_rel8, "2A" ], #REL - [$amod_rel16, \&check_rel16, "18 2A"]], #REL - "BRA" => [[$amod_rel8, \&check_rel8, "20" ], #REL - [$amod_rel16, \&check_rel16, "18 20"]], #REL - "BRCLR" => [[$amod_dir_msk_rel, \&check_dir_msk_rel, "4F" ], #DIR - [$amod_ext_msk_rel, \&check_ext_msk_rel, "1F" ], #EXT - [$amod_idx_msk_rel, \&check_idx_msk_rel, "0F" ], #IDX - [$amod_idx1_msk_rel, \&check_idx1_msk_rel, "0F" ], #IDX1 - [$amod_idx2_msk_rel, \&check_idx2_msk_rel, "0F" ]], #IDX2 - "BRN" => [[$amod_rel8, \&check_rel8, "21" ], #REL - [$amod_rel16, \&check_rel16, "18 21"]], #REL - "BRSET" => [[$amod_dir_msk_rel, \&check_dir_msk_rel, "4E" ], #DIR - [$amod_ext_msk_rel, \&check_ext_msk_rel, "1E" ], #EXT - [$amod_idx_msk_rel, \&check_idx_msk_rel, "0E" ], #IDX - [$amod_idx1_msk_rel, \&check_idx1_msk_rel, "0E" ], #IDX1 - [$amod_idx2_msk_rel, \&check_idx2_msk_rel, "0E" ]], #IDX2 - "BSET" => [[$amod_dir_msk, \&check_dir_msk, "4C" ], #DIR - [$amod_ext_msk, \&check_ext_msk, "1C" ], #EXT - [$amod_idx_msk, \&check_idx_msk, "0C" ], #IDX - [$amod_idx1_msk, \&check_idx1_msk, "0C" ], #IDX1 - [$amod_idx2_msk, \&check_idx2_msk, "0C" ]], #IDX2 - "BSR" => [[$amod_rel8, \&check_rel8, "07" ]], #REL - "BVC" => [[$amod_rel8, \&check_rel8, "28" ], #REL - [$amod_rel16, \&check_rel16, "18 28"]], #REL - "BVS" => [[$amod_rel8, \&check_rel8, "29" ], #REL - [$amod_rel16, \&check_rel16, "18 29"]], #REL - "CALL" => [[$amod_ext_pgimpl, \&check_ext_pgimpl, "4A" ], #EXT - [$amod_ext_pg, \&check_ext_pg, "4A" ], #EXT - [$amod_idx_pg, \&check_idx_pg, "4B" ], #IDX - [$amod_idx1_pg, \&check_idx1_pg, "4B" ], #IDX1 - [$amod_idx2_pg, \&check_idx2_pg, "4B" ], #IDX2 - [$amod_ididx_pg, \&check_ididx_pg, "4B" ], #[D,IDX] - [$amod_iidx2_pg, \&check_iidx2_pg, "4B" ]], #[IDX2] - "CBA" => [[$amod_inh, \&check_inh, "18 17"]], #INH - "CLC" => [[$amod_inh, \&check_inh, "10 FE"]], #INH - "CLI" => [[$amod_inh, \&check_inh, "10 EF"]], #INH - "CLR" => [[$amod_ext, \&check_ext, "79" ], #EXT - [$amod_idx, \&check_idx, "69" ], #IDX - [$amod_idx1, \&check_idx1, "69" ], #IDX1 - [$amod_idx2, \&check_idx2, "69" ], #IDX2 - [$amod_ididx, \&check_ididx, "69" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "69" ]], #[IDX2] - "CLRA" => [[$amod_inh, \&check_inh, "87" ]], #INH - "CLRB" => [[$amod_inh, \&check_inh, "C7" ]], #INH - "CLV" => [[$amod_inh, \&check_inh, "10 FD"]], #INH - "CMPA" => [[$amod_imm8, \&check_imm8, "81" ], #IMM - [$amod_dir, \&check_dir, "91" ], #DIR - [$amod_ext, \&check_ext, "B1" ], #EXT - [$amod_idx, \&check_idx, "A1" ], #IDX - [$amod_idx1, \&check_idx1, "A1" ], #IDX1 - [$amod_idx2, \&check_idx2, "A1" ], #IDX2 - [$amod_ididx, \&check_ididx, "A1" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "A1" ]], #[IDX2] - "CMPB" => [[$amod_imm8, \&check_imm8, "C1" ], #IMM - [$amod_dir, \&check_dir, "D1" ], #DIR - [$amod_ext, \&check_ext, "F1" ], #EXT - [$amod_idx, \&check_idx, "E1" ], #IDX - [$amod_idx1, \&check_idx1, "E1" ], #IDX1 - [$amod_idx2, \&check_idx2, "E1" ], #IDX2 - [$amod_ididx, \&check_ididx, "E1" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "E1" ]], #[IDX2] - "COM" => [[$amod_ext, \&check_ext, "71" ], #EXT - [$amod_idx, \&check_idx, "61" ], #IDX - [$amod_idx1, \&check_idx1, "61" ], #IDX1 - [$amod_idx2, \&check_idx2, "61" ], #IDX2 - [$amod_ididx, \&check_ididx, "61" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "61" ]], #[IDX2] - "COMA" => [[$amod_inh, \&check_inh, "41" ]], #INH - "COMB" => [[$amod_inh, \&check_inh, "51" ]], #INH - "CPD" => [[$amod_imm16, \&check_imm16, "8C" ], #IMM - [$amod_dir, \&check_dir, "9C" ], #DIR - [$amod_ext, \&check_ext, "BC" ], #EXT - [$amod_idx, \&check_idx, "AC" ], #IDX - [$amod_idx1, \&check_idx1, "AC" ], #IDX1 - [$amod_idx2, \&check_idx2, "AC" ], #IDX2 - [$amod_ididx, \&check_ididx, "AC" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "AC" ]], #[IDX2] - "CPS" => [[$amod_imm16, \&check_imm16, "8F" ], #IMM - [$amod_dir, \&check_dir, "9F" ], #DIR - [$amod_ext, \&check_ext, "BF" ], #EXT - [$amod_idx, \&check_idx, "AF" ], #IDX - [$amod_idx1, \&check_idx1, "AF" ], #IDX1 - [$amod_idx2, \&check_idx2, "AF" ], #IDX2 - [$amod_ididx, \&check_ididx, "AF" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "AF" ]], #[IDX2] - "CPX" => [[$amod_imm16, \&check_imm16, "8E" ], #IMM - [$amod_dir, \&check_dir, "9E" ], #DIR - [$amod_ext, \&check_ext, "BE" ], #EXT - [$amod_idx, \&check_idx, "AE" ], #IDX - [$amod_idx1, \&check_idx1, "AE" ], #IDX1 - [$amod_idx2, \&check_idx2, "AE" ], #IDX2 - [$amod_ididx, \&check_ididx, "AE" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "AE" ]], #[IDX2] - "CPY" => [[$amod_imm16, \&check_imm16, "8D" ], #IMM - [$amod_dir, \&check_dir, "9D" ], #DIR - [$amod_ext, \&check_ext, "BD" ], #EXT - [$amod_idx, \&check_idx, "AD" ], #IDX - [$amod_idx1, \&check_idx1, "AD" ], #IDX1 - [$amod_idx2, \&check_idx2, "AD" ], #IDX2 - [$amod_ididx, \&check_ididx, "AD" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "AD" ]], #[IDX2] - "DAA" => [[$amod_inh, \&check_inh, "18 07"]], #INH - "DBEQ" => [[$amod_dbeq, \&check_dbeq, "04" ]], #REL - "DBNE" => [[$amod_dbne, \&check_dbne, "04" ]], #REL - "DEC" => [[$amod_ext, \&check_ext, "73" ], #EXT - [$amod_idx, \&check_idx, "63" ], #IDX - [$amod_idx1, \&check_idx1, "63" ], #IDX1 - [$amod_idx2, \&check_idx2, "63" ], #IDX2 - [$amod_ididx, \&check_ididx, "63" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "63" ]], #[IDX2] - "DECA" => [[$amod_inh, \&check_inh, "43" ]], #INH - "DECB" => [[$amod_inh, \&check_inh, "53" ]], #INH - "DES" => [[$amod_inh, \&check_inh, "1B 9F"]], #INH - "DEX" => [[$amod_inh, \&check_inh, "09" ]], #INH - "DEY" => [[$amod_inh, \&check_inh, "03" ]], #INH - "EDIV" => [[$amod_inh, \&check_inh, "11" ]], #INH - "EDIVS" => [[$amod_inh, \&check_inh, "18 14"]], #INH - "EMACS" => [[$amod_ext, \&check_ext, "18 12"]], #EXT - "EMAXD" => [[$amod_idx, \&check_idx, "18 1A"], #IDX - [$amod_idx1, \&check_idx1, "18 1A"], #IDX1 - [$amod_idx2, \&check_idx2, "18 1A"], #IDX2 - [$amod_ididx, \&check_ididx, "18 1A"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 1A"]], #[IDX2] - "EMAXM" => [[$amod_idx, \&check_idx, "18 1E"], #IDX - [$amod_idx1, \&check_idx1, "18 1E"], #IDX1 - [$amod_idx2, \&check_idx2, "18 1E"], #IDX2 - [$amod_ididx, \&check_ididx, "18 1E"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 1E"]], #[IDX2] - "EMIND" => [[$amod_idx, \&check_idx, "18 1B"], #IDX - [$amod_idx1, \&check_idx1, "18 1B"], #IDX1 - [$amod_idx2, \&check_idx2, "18 1B"], #IDX2 - [$amod_ididx, \&check_ididx, "18 1B"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 1B"]], #[IDX2] - "EMINM" => [[$amod_idx, \&check_idx, "18 1F"], #IDX - [$amod_idx1, \&check_idx1, "18 1F"], #IDX1 - [$amod_idx2, \&check_idx2, "18 1F"], #IDX2 - [$amod_ididx, \&check_ididx, "18 1F"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 1F"]], #[IDX2] - "EMUL" => [[$amod_inh, \&check_inh, "13" ]], #INH - "EMULS" => [[$amod_inh, \&check_inh, "18 13"]], #INH - "EORA" => [[$amod_imm8, \&check_imm8, "88" ], #IMM - [$amod_dir, \&check_dir, "98" ], #DIR - [$amod_ext, \&check_ext, "B8" ], #EXT - [$amod_idx, \&check_idx, "A8" ], #IDX - [$amod_idx1, \&check_idx1, "A8" ], #IDX1 - [$amod_idx2, \&check_idx2, "A8" ], #IDX2 - [$amod_ididx, \&check_ididx, "A8" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "A8" ]], #[IDX2] - "EORB" => [[$amod_imm8, \&check_imm8, "C8" ], #IMM - [$amod_dir, \&check_dir, "D8" ], #DIR - [$amod_ext, \&check_ext, "F8" ], #EXT - [$amod_idx, \&check_idx, "E8" ], #IDX - [$amod_idx1, \&check_idx1, "E8" ], #IDX1 - [$amod_idx2, \&check_idx2, "E8" ], #IDX2 - [$amod_ididx, \&check_ididx, "E8" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "E8" ]], #[IDX2] - "ETBL" => [[$amod_idx, \&check_idx, "18 3F"]], #IDX - "EXG" => [[$amod_exg, \&check_exg, "B7" ]], #INH - "FDIV" => [[$amod_inh, \&check_inh, "18 11"]], #INH - "IBEQ" => [[$amod_ibeq, \&check_ibeq, "04" ]], #REL - "IBNE" => [[$amod_ibne, \&check_ibne, "04" ]], #REL - "IDIV" => [[$amod_inh, \&check_inh, "18 10"]], #INH - "IDIVS" => [[$amod_inh, \&check_inh, "18 15"]], #INH - "INC" => [[$amod_ext, \&check_ext, "72" ], #EXT - [$amod_idx, \&check_idx, "62" ], #IDX - [$amod_idx1, \&check_idx1, "62" ], #IDX1 - [$amod_idx2, \&check_idx2, "62" ], #IDX2 - [$amod_ididx, \&check_ididx, "62" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "62" ]], #[IDX2] - "INCA" => [[$amod_inh, \&check_inh, "42" ]], #INH - "INCB" => [[$amod_inh, \&check_inh, "52" ]], #INH - "INS" => [[$amod_inh, \&check_inh, "1B 81"]], #INH - "INX" => [[$amod_inh, \&check_inh, "08" ]], #INH - "INY" => [[$amod_inh, \&check_inh, "02" ]], #INH - "JMP" => [[$amod_ext, \&check_ext, "06" ], #EXT - [$amod_idx, \&check_idx, "05" ], #IDX - [$amod_idx1, \&check_idx1, "05" ], #IDX1 - [$amod_idx2, \&check_idx2, "05" ], #IDX2 - [$amod_ididx, \&check_ididx, "05" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "05" ]], #[IDX2] - "JOB" => [[$amod_rel8, \&check_rel8, "20" ], #REL - [$amod_ext, \&check_ext, "06" ]], #EXT - "JOBSR" => [[$amod_rel8, \&check_rel8, "07" ], #REL - [$amod_ext, \&check_ext, "16" ]], #EXT - "JSR" => [[$amod_dir, \&check_dir, "17" ], #DIR - [$amod_ext, \&check_ext, "16" ], #EXT - [$amod_idx, \&check_idx, "15" ], #IDX - [$amod_idx1, \&check_idx1, "15" ], #IDX1 - [$amod_idx2, \&check_idx2, "15" ], #IDX2 - [$amod_ididx, \&check_ididx, "15" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "15" ]], #[IDX2] - "LBCC" => [[$amod_rel16, \&check_rel16, "18 24"]], #REL - "LBCS" => [[$amod_rel16, \&check_rel16, "18 25"]], #REL - "LBEQ" => [[$amod_rel16, \&check_rel16, "18 27"]], #REL - "LBGE" => [[$amod_rel16, \&check_rel16, "18 2C"]], #REL - "LBGT" => [[$amod_rel16, \&check_rel16, "18 2E"]], #REL - "LBHI" => [[$amod_rel16, \&check_rel16, "18 22"]], #REL - "LBHS" => [[$amod_rel16, \&check_rel16, "18 24"]], #REL - "LBLE" => [[$amod_rel16, \&check_rel16, "18 2F"]], #REL - "LBLO" => [[$amod_rel16, \&check_rel16, "18 25"]], #REL - "LBLS" => [[$amod_rel16, \&check_rel16, "18 23"]], #REL - "LBLT" => [[$amod_rel16, \&check_rel16, "18 2D"]], #REL - "LBMI" => [[$amod_rel16, \&check_rel16, "18 2B"]], #REL - "LBNE" => [[$amod_rel16, \&check_rel16, "18 26"]], #REL - "LBPL" => [[$amod_rel16, \&check_rel16, "18 2A"]], #REL - "LBRA" => [[$amod_rel16, \&check_rel16, "18 20"]], #REL - "LBRN" => [[$amod_rel16, \&check_rel16, "18 21"]], #REL - "LBVC" => [[$amod_rel16, \&check_rel16, "18 28"]], #REL - "LBVS" => [[$amod_rel16, \&check_rel16, "18 29"]], #REL - "LDAA" => [[$amod_imm8, \&check_imm8, "86" ], #IMM - [$amod_dir, \&check_dir, "96" ], #DIR - [$amod_ext, \&check_ext, "B6" ], #EXT - [$amod_idx, \&check_idx, "A6" ], #IDX - [$amod_idx1, \&check_idx1, "A6" ], #IDX1 - [$amod_idx2, \&check_idx2, "A6" ], #IDX2 - [$amod_ididx, \&check_ididx, "A6" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "A6" ]], #[IDX2] - "LDAB" => [[$amod_imm8, \&check_imm8, "C6" ], #IMM - [$amod_dir, \&check_dir, "D6" ], #DIR - [$amod_ext, \&check_ext, "F6" ], #EXT - [$amod_idx, \&check_idx, "E6" ], #IDX - [$amod_idx1, \&check_idx1, "E6" ], #IDX1 - [$amod_idx2, \&check_idx2, "E6" ], #IDX2 - [$amod_ididx, \&check_ididx, "E6" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "E6" ]], #[IDX2] - "LDD" => [[$amod_imm16, \&check_imm16, "CC" ], #IMM - [$amod_dir, \&check_dir, "DC" ], #DIR - [$amod_ext, \&check_ext, "FC" ], #EXT - [$amod_idx, \&check_idx, "EC" ], #IDX - [$amod_idx1, \&check_idx1, "EC" ], #IDX1 - [$amod_idx2, \&check_idx2, "EC" ], #IDX2 - [$amod_ididx, \&check_ididx, "EC" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "EC" ]], #[IDX2] - "LDS" => [[$amod_imm16, \&check_imm16, "CF" ], #IMM - [$amod_dir, \&check_dir, "DF" ], #DIR - [$amod_ext, \&check_ext, "FF" ], #EXT - [$amod_idx, \&check_idx, "EF" ], #IDX - [$amod_idx1, \&check_idx1, "EF" ], #IDX1 - [$amod_idx2, \&check_idx2, "EF" ], #IDX2 - [$amod_ididx, \&check_ididx, "EF" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "EF" ]], #[IDX2] - "LDX" => [[$amod_imm16, \&check_imm16, "CE" ], #IMM - [$amod_dir, \&check_dir, "DE" ], #DIR - [$amod_ext, \&check_ext, "FE" ], #EXT - [$amod_idx, \&check_idx, "EE" ], #IDX - [$amod_idx1, \&check_idx1, "EE" ], #IDX1 - [$amod_idx2, \&check_idx2, "EE" ], #IDX2 - [$amod_ididx, \&check_ididx, "EE" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "EE" ]], #[IDX2] - "LDY" => [[$amod_imm16, \&check_imm16, "CD" ], #IMM - [$amod_dir, \&check_dir, "DD" ], #DIR - [$amod_ext, \&check_ext, "FD" ], #EXT - [$amod_idx, \&check_idx, "ED" ], #IDX - [$amod_idx1, \&check_idx1, "ED" ], #IDX1 - [$amod_idx2, \&check_idx2, "ED" ], #IDX2 - [$amod_ididx, \&check_ididx, "ED" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "ED" ]], #[IDX2] - "LEAS" => [[$amod_idx, \&check_idx, "1B" ], #IDX - [$amod_idx1, \&check_idx1, "1B" ], #IDX1 - [$amod_idx2, \&check_idx2, "1B" ]], #IDX2 - "LEAX" => [[$amod_idx, \&check_idx, "1A" ], #IDX - [$amod_idx1, \&check_idx1, "1A" ], #IDX1 - [$amod_idx2, \&check_idx2, "1A" ]], #IDX2 - "LEAY" => [[$amod_idx, \&check_idx, "19" ], #IDX - [$amod_idx1, \&check_idx1, "19" ], #IDX1 - [$amod_idx2, \&check_idx2, "19" ]], #IDX2 - "LSL" => [[$amod_ext, \&check_ext, "78" ], #EXT - [$amod_idx, \&check_idx, "68" ], #IDX - [$amod_idx1, \&check_idx1, "68" ], #IDX1 - [$amod_idx2, \&check_idx2, "68" ], #IDX2 - [$amod_ididx, \&check_ididx, "68" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "68" ]], #[IDX2] - "LSLA" => [[$amod_inh, \&check_inh, "48" ]], #INH - "LSLB" => [[$amod_inh, \&check_inh, "58" ]], #INH - "LSLD" => [[$amod_inh, \&check_inh, "59" ]], #INH - "LSR" => [[$amod_ext, \&check_ext, "74" ], #EXT - [$amod_idx, \&check_idx, "64" ], #IDX - [$amod_idx1, \&check_idx1, "64" ], #IDX1 - [$amod_idx2, \&check_idx2, "64" ], #IDX2 - [$amod_ididx, \&check_ididx, "64" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "64" ]], #[IDX2] - "LSRA" => [[$amod_inh, \&check_inh, "44" ]], #INH - "LSRB" => [[$amod_inh, \&check_inh, "54" ]], #INH - "LSRD" => [[$amod_inh, \&check_inh, "49" ]], #INH - "MAXA" => [[$amod_idx, \&check_idx, "18 18"], #IDX - [$amod_idx1, \&check_idx1, "18 18"], #IDX1 - [$amod_idx2, \&check_idx2, "18 18"], #IDX2 - [$amod_ididx, \&check_ididx, "18 18"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 18"]], #[IDX2] - "MAXM" => [[$amod_idx, \&check_idx, "18 1C"], #IDX - [$amod_idx1, \&check_idx1, "18 1C"], #IDX1 - [$amod_idx2, \&check_idx2, "18 1C"], #IDX2 - [$amod_ididx, \&check_ididx, "18 1C"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 1C"]], #[IDX2] - "MEM" => [[$amod_inh, \&check_inh, "01" ]], #INH - "MINA" => [[$amod_idx, \&check_idx, "18 19"], #IDX - [$amod_idx1, \&check_idx1, "18 19"], #IDX1 - [$amod_idx2, \&check_idx2, "18 19"], #IDX2 - [$amod_ididx, \&check_ididx, "18 19"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 19"]], #[IDX2] - "MINM" => [[$amod_idx, \&check_idx, "18 1D"], #IDX - [$amod_idx1, \&check_idx1, "18 1D"], #IDX1 - [$amod_idx2, \&check_idx2, "18 1D"], #IDX2 - [$amod_ididx, \&check_ididx, "18 1D"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 1D"]], #[IDX2] - "MOVB" => [[$amod_imm8_ext, \&check_imm8_ext, "18 0B"], #IMM-EXT - [$amod_imm8_idx, \&check_imm8_idx, "18 08"], #IMM-IDX - [$amod_ext_ext, \&check_ext_ext, "18 0C"], #EXT-EXT - [$amod_ext_idx, \&check_ext_idx, "18 09"], #EXT-IDX - [$amod_idx_ext, \&check_idx_ext, "18 0D"], #IDX-EXT - [$amod_idx_idx, \&check_idx_idx, "18 0A"]], #IDX-IDX - "MOVW" => [[$amod_imm16_ext, \&check_imm16_ext, "18 03"], #IMM-EXT - [$amod_imm16_idx, \&check_imm16_idx, "18 00"], #IMM-IDX - [$amod_ext_ext, \&check_ext_ext, "18 04"], #EXT-EXT - [$amod_ext_idx, \&check_ext_idx, "18 01"], #EXT-IDX - [$amod_idx_ext, \&check_idx_ext, "18 05"], #IDX-EXT - [$amod_idx_idx, \&check_idx_idx, "18 02"]], #IDX-IDX - "MUL" => [[$amod_inh, \&check_inh, "12" ]], #INH - "NEG" => [[$amod_ext, \&check_ext, "70" ], #EXT - [$amod_idx, \&check_idx, "60" ], #IDX - [$amod_idx1, \&check_idx1, "60" ], #IDX1 - [$amod_idx2, \&check_idx2, "60" ], #IDX2 - [$amod_ididx, \&check_ididx, "60" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "60" ]], #[IDX2] - "NEGA" => [[$amod_inh, \&check_inh, "40" ]], #INH - "NEGB" => [[$amod_inh, \&check_inh, "50" ]], #INH - "NOP" => [[$amod_inh, \&check_inh, "A7" ]], #INH - "ORAA" => [[$amod_imm8, \&check_imm8, "8A" ], #IMM - [$amod_dir, \&check_dir, "9A" ], #DIR - [$amod_ext, \&check_ext, "BA" ], #EXT - [$amod_idx, \&check_idx, "AA" ], #IDX - [$amod_idx1, \&check_idx1, "AA" ], #IDX1 - [$amod_idx2, \&check_idx2, "AA" ], #IDX2 - [$amod_ididx, \&check_ididx, "AA" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "AA" ]], #[IDX2] - "ORAB" => [[$amod_imm8, \&check_imm8, "CA" ], #IMM - [$amod_dir, \&check_dir, "DA" ], #DIR - [$amod_ext, \&check_ext, "FA" ], #EXT - [$amod_idx, \&check_idx, "EA" ], #IDX - [$amod_idx1, \&check_idx1, "EA" ], #IDX1 - [$amod_idx2, \&check_idx2, "EA" ], #IDX2 - [$amod_ididx, \&check_ididx, "EA" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "EA" ]], #[IDX2] - "ORCC" => [[$amod_imm8, \&check_imm8, "14" ]], #INH - "PSHA" => [[$amod_inh, \&check_inh, "36" ]], #INH - "PSHB" => [[$amod_inh, \&check_inh, "37" ]], #INH - "PSHC" => [[$amod_inh, \&check_inh, "39" ]], #INH - "PSHD" => [[$amod_inh, \&check_inh, "3B" ]], #INH - "PSHX" => [[$amod_inh, \&check_inh, "34" ]], #INH - "PSHY" => [[$amod_inh, \&check_inh, "35" ]], #INH - "PULA" => [[$amod_inh, \&check_inh, "32" ]], #INH - "PULB" => [[$amod_inh, \&check_inh, "33" ]], #INH - "PULC" => [[$amod_inh, \&check_inh, "38" ]], #INH - "PULD" => [[$amod_inh, \&check_inh, "3A" ]], #INH - "PULX" => [[$amod_inh, \&check_inh, "30" ]], #INH - "PULY" => [[$amod_inh, \&check_inh, "31" ]], #INH - "REV" => [[$amod_inh, \&check_inh, "18 3A"]], #INH - "REVW" => [[$amod_inh, \&check_inh, "18 3B"]], #INH - "ROL" => [[$amod_ext, \&check_ext, "75" ], #EXT - [$amod_idx, \&check_idx, "65" ], #IDX - [$amod_idx1, \&check_idx1, "65" ], #IDX1 - [$amod_idx2, \&check_idx2, "65" ], #IDX2 - [$amod_ididx, \&check_ididx, "65" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "65" ]], #[IDX2] - "ROLA" => [[$amod_inh, \&check_inh, "45" ]], #INH - "ROLB" => [[$amod_inh, \&check_inh, "55" ]], #INH - "ROR" => [[$amod_ext, \&check_ext, "76" ], #EXT - [$amod_idx, \&check_idx, "66" ], #IDX - [$amod_idx1, \&check_idx1, "66" ], #IDX1 - [$amod_idx2, \&check_idx2, "66" ], #IDX2 - [$amod_ididx, \&check_ididx, "66" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "66" ]], #[IDX2] - "RORA" => [[$amod_inh, \&check_inh, "46" ]], #INH - "RORB" => [[$amod_inh, \&check_inh, "56" ]], #INH - "RTC" => [[$amod_inh, \&check_inh, "0A" ]], #INH - "RTI" => [[$amod_inh, \&check_inh, "0B" ]], #INH - "RTS" => [[$amod_inh, \&check_inh, "3D" ]], #INH - "SBA" => [[$amod_inh, \&check_inh, "18 16"]], #INH - "SBCA" => [[$amod_imm8, \&check_imm8, "82" ], #IMM - [$amod_dir, \&check_dir, "92" ], #DIR - [$amod_ext, \&check_ext, "B2" ], #EXT - [$amod_idx, \&check_idx, "A2" ], #IDX - [$amod_idx1, \&check_idx1, "A2" ], #IDX1 - [$amod_idx2, \&check_idx2, "A2" ], #IDX2 - [$amod_ididx, \&check_ididx, "A2" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "A2" ]], #[IDX2] - "SBCB" => [[$amod_imm8, \&check_imm8, "C2" ], #IMM - [$amod_dir, \&check_dir, "D2" ], #DIR - [$amod_ext, \&check_ext, "F2" ], #EXT - [$amod_idx, \&check_idx, "E2" ], #IDX - [$amod_idx1, \&check_idx1, "E2" ], #IDX1 - [$amod_idx2, \&check_idx2, "E2" ], #IDX2 - [$amod_ididx, \&check_ididx, "E2" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "E2" ]], #[IDX2] - "SEC" => [[$amod_inh, \&check_inh, "14 01"]], #INH - "SEI" => [[$amod_inh, \&check_inh, "14 10"]], #INH - "SEV" => [[$amod_inh, \&check_inh, "14 02"]], #INH - "SEX" => [[$amod_tfr, \&check_sex, "B7" ]], #INH - "STAA" => [[$amod_dir, \&check_dir, "5A" ], #DIR - [$amod_ext, \&check_ext, "7A" ], #EXT - [$amod_idx, \&check_idx, "6A" ], #IDX - [$amod_idx1, \&check_idx1, "6A" ], #IDX1 - [$amod_idx2, \&check_idx2, "6A" ], #IDX2 - [$amod_ididx, \&check_ididx, "6A" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "6A" ]], #[IDX2] - "STAB" => [[$amod_dir, \&check_dir, "5B" ], #DIR - [$amod_ext, \&check_ext, "7B" ], #EXT - [$amod_idx, \&check_idx, "6B" ], #IDX - [$amod_idx1, \&check_idx1, "6B" ], #IDX1 - [$amod_idx2, \&check_idx2, "6B" ], #IDX2 - [$amod_ididx, \&check_ididx, "6B" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "6B" ]], #[IDX2] - "STD" => [[$amod_dir, \&check_dir, "5C" ], #DIR - [$amod_ext, \&check_ext, "7C" ], #EXT - [$amod_idx, \&check_idx, "6C" ], #IDX - [$amod_idx1, \&check_idx1, "6C" ], #IDX1 - [$amod_idx2, \&check_idx2, "6C" ], #IDX2 - [$amod_ididx, \&check_ididx, "6C" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "6C" ]], #[IDX2] - "STOP" => [[$amod_inh, \&check_inh, "18 3E"]], #INH - "STS" => [[$amod_dir, \&check_dir, "5F" ], #DIR - [$amod_ext, \&check_ext, "7F" ], #EXT - [$amod_idx, \&check_idx, "6F" ], #IDX - [$amod_idx1, \&check_idx1, "6F" ], #IDX1 - [$amod_idx2, \&check_idx2, "6F" ], #IDX2 - [$amod_ididx, \&check_ididx, "6F" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "6F" ]], #[IDX2] - "STX" => [[$amod_dir, \&check_dir, "5E" ], #DIR - [$amod_ext, \&check_ext, "7E" ], #EXT - [$amod_idx, \&check_idx, "6E" ], #IDX - [$amod_idx1, \&check_idx1, "6E" ], #IDX1 - [$amod_idx2, \&check_idx2, "6E" ], #IDX2 - [$amod_ididx, \&check_ididx, "6E" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "6E" ]], #[IDX2] - "STY" => [[$amod_dir, \&check_dir, "5D" ], #DIR - [$amod_ext, \&check_ext, "7D" ], #EXT - [$amod_idx, \&check_idx, "6D" ], #IDX - [$amod_idx1, \&check_idx1, "6D" ], #IDX1 - [$amod_idx2, \&check_idx2, "6D" ], #IDX2 - [$amod_ididx, \&check_ididx, "6D" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "6D" ]], #[IDX2] - "SUBA" => [[$amod_imm8, \&check_imm8, "80" ], #IMM - [$amod_dir, \&check_dir, "90" ], #DIR - [$amod_ext, \&check_ext, "B0" ], #EXT - [$amod_idx, \&check_idx, "A0" ], #IDX - [$amod_idx1, \&check_idx1, "A0" ], #IDX1 - [$amod_idx2, \&check_idx2, "A0" ], #IDX2 - [$amod_ididx, \&check_ididx, "A0" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "A0" ]], #[IDX2] - "SUBB" => [[$amod_imm8, \&check_imm8, "C0" ], #IMM - [$amod_dir, \&check_dir, "D0" ], #DIR - [$amod_ext, \&check_ext, "F0" ], #EXT - [$amod_idx, \&check_idx, "E0" ], #IDX - [$amod_idx1, \&check_idx1, "E0" ], #IDX1 - [$amod_idx2, \&check_idx2, "E0" ], #IDX2 - [$amod_ididx, \&check_ididx, "E0" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "E0" ]], #[IDX2] - "SUBD" => [[$amod_imm16, \&check_imm16, "83" ], #IMM - [$amod_dir, \&check_dir, "93" ], #DIR - [$amod_ext, \&check_ext, "B3" ], #EXT - [$amod_idx, \&check_idx, "A3" ], #IDX - [$amod_idx1, \&check_idx1, "A3" ], #IDX1 - [$amod_idx2, \&check_idx2, "A3" ], #IDX2 - [$amod_ididx, \&check_ididx, "A3" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "A3" ]], #[IDX2] - "SWI" => [[$amod_inh, \&check_inh, "3F" ]], #INH - "TAB" => [[$amod_inh, \&check_inh, "18 0E"]], #INH - "TAP" => [[$amod_inh, \&check_inh, "B7 02"]], #INH - "TBA" => [[$amod_inh, \&check_inh, "18 0F"]], #INH - "TBEQ" => [[$amod_tbeq, \&check_tbeq, "04" ]], #REL - "TBL" => [[$amod_idx, \&check_idx, "18 3D"]], #IDX - "TBNE" => [[$amod_tbne, \&check_tbne, "04" ]], #REL - "TFR" => [[$amod_tfr, \&check_tfr, "B7" ]], #INH - "TPA" => [[$amod_inh, \&check_inh, "B7 20"]], #INH - "TRAP" => [[$amod_trap, \&check_trap, "18" ]], #INH - "TST" => [[$amod_ext, \&check_ext, "F7" ], #EXT - [$amod_idx, \&check_idx, "E7" ], #IDX - [$amod_idx1, \&check_idx1, "E7" ], #IDX1 - [$amod_idx2, \&check_idx2, "E7" ], #IDX2 - [$amod_ididx, \&check_ididx, "E7" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "E7" ]], #[IDX2] - "TSTA" => [[$amod_inh, \&check_inh, "97" ]], #INH - "TSTB" => [[$amod_inh, \&check_inh, "D7" ]], #INH - "TSX" => [[$amod_inh, \&check_inh, "B7 75"]], #INH - "TSY" => [[$amod_inh, \&check_inh, "B7 76"]], #INH - "TXS" => [[$amod_inh, \&check_inh, "B7 57"]], #INH - "TYS" => [[$amod_inh, \&check_inh, "B7 67"]], #INH - "WAI" => [[$amod_inh, \&check_inh, "3E" ]], #INH - "WAV" => [[$amod_inh, \&check_inh, "18 3C"]], #INH - "WAVR" => [[$amod_inh, \&check_inh, "3C" ]], #INH - "XGDX" => [[$amod_inh, \&check_inh, "B7 C5"]], #INH - "XGDY" => [[$amod_inh, \&check_inh, "B7 C6"]]};#INH - -#S12X: MNEMONIC ADDRESS MODE OPCODE -*opctab_s12x = \{"ABA" => [[$amod_inh, \&check_inh, "18 06"]], #INH - "ABX" => [[$amod_inh, \&check_inh, "1A E5"]], #INH - "ABY" => [[$amod_inh, \&check_inh, "19 ED"]], #INH - "ADCA" => [[$amod_imm8, \&check_imm8, "89" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "99" ], #DIR - [$amod_ext, \&check_ext, "B9" ], #EXT - [$amod_idx, \&check_idx, "A9" ], #IDX - [$amod_idx1, \&check_idx1, "A9" ], #IDX1 - [$amod_idx2, \&check_idx2, "A9" ], #IDX2 - [$amod_ididx, \&check_ididx, "A9" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "A9" ]], #[IDX2] - "ADCB" => [[$amod_imm8, \&check_imm8, "C9" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "D9" ], #DIR - [$amod_ext, \&check_ext, "F9" ], #EXT - [$amod_idx, \&check_idx, "E9" ], #IDX - [$amod_idx1, \&check_idx1, "E9" ], #IDX1 - [$amod_idx2, \&check_idx2, "E9" ], #IDX2 - [$amod_ididx, \&check_ididx, "E9" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "E9" ]], #[IDX2] - "ADED" => [[$amod_imm16, \&check_imm16, "18 C3"], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "18 D3"], #DIR - [$amod_ext, \&check_ext, "18 F3"], #EXT - [$amod_idx, \&check_idx, "18 E3"], #IDX - [$amod_idx1, \&check_idx1, "18 E3"], #IDX1 - [$amod_idx2, \&check_idx2, "18 E3"], #IDX2 - [$amod_ididx, \&check_ididx, "18 E3"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 E3"]], #[IDX2] - "ADEX" => [[$amod_imm16, \&check_imm16, "18 89"], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "18 99"], #DIR - [$amod_ext, \&check_ext, "18 B9"], #EXT - [$amod_idx, \&check_idx, "18 A9"], #IDX - [$amod_idx1, \&check_idx1, "18 A9"], #IDX1 - [$amod_idx2, \&check_idx2, "18 A9"], #IDX2 - [$amod_ididx, \&check_ididx, "18 A9"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 A9"]], #[IDX2] - "ADEY" => [[$amod_imm16, \&check_imm16, "18 C9"], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "18 D9"], #DIR - [$amod_ext, \&check_ext, "18 F9"], #EXT - [$amod_idx, \&check_idx, "18 E9"], #IDX - [$amod_idx1, \&check_idx1, "18 E9"], #IDX1 - [$amod_idx2, \&check_idx2, "18 E9"], #IDX2 - [$amod_ididx, \&check_ididx, "18 E9"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 E9"]], #[IDX2] - "ADDA" => [[$amod_imm8, \&check_imm8, "8B" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "9B" ], #DIR - [$amod_ext, \&check_ext, "BB" ], #EXT - [$amod_idx, \&check_idx, "AB" ], #IDX - [$amod_idx1, \&check_idx1, "AB" ], #IDX1 - [$amod_idx2, \&check_idx2, "AB" ], #IDX2 - [$amod_ididx, \&check_ididx, "AB" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "AB" ]], #[IDX2] - "ADDB" => [[$amod_imm8, \&check_imm8, "CB" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "DB" ], #DIR - [$amod_ext, \&check_ext, "FB" ], #EXT - [$amod_idx, \&check_idx, "EB" ], #IDX - [$amod_idx1, \&check_idx1, "EB" ], #IDX1 - [$amod_idx2, \&check_idx2, "EB" ], #IDX2 - [$amod_ididx, \&check_ididx, "EB" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "EB" ]], #[IDX2] - "ADDD" => [[$amod_imm16, \&check_imm16, "C3" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "D3" ], #DIR - [$amod_ext, \&check_ext, "F3" ], #EXT - [$amod_idx, \&check_idx, "E3" ], #IDX - [$amod_idx1, \&check_idx1, "E3" ], #IDX1 - [$amod_idx2, \&check_idx2, "E3" ], #IDX2 - [$amod_ididx, \&check_ididx, "E3" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "E3" ]], #[IDX2] - "ADDX" => [[$amod_imm16, \&check_imm16, "18 8B"], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "18 9B"], #DIR - [$amod_ext, \&check_ext, "18 BB"], #EXT - [$amod_idx, \&check_idx, "18 AB"], #IDX - [$amod_idx1, \&check_idx1, "18 AB"], #IDX1 - [$amod_idx2, \&check_idx2, "18 AB"], #IDX2 - [$amod_ididx, \&check_ididx, "18 AB"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 AB"]], #[IDX2] - "ADDY" => [[$amod_imm16, \&check_imm16, "18 CB"], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "18 DB"], #DIR - [$amod_ext, \&check_ext, "18 FB"], #EXT - [$amod_idx, \&check_idx, "18 EB"], #IDX - [$amod_idx1, \&check_idx1, "18 EB"], #IDX1 - [$amod_idx2, \&check_idx2, "18 EB"], #IDX2 - [$amod_ididx, \&check_ididx, "18 EB"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 EB"]], #[IDX2] - "ANDA" => [[$amod_imm8, \&check_imm8, "84" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "94" ], #DIR - [$amod_ext, \&check_ext, "B4" ], #EXT - [$amod_idx, \&check_idx, "A4" ], #IDX - [$amod_idx1, \&check_idx1, "A4" ], #IDX1 - [$amod_idx2, \&check_idx2, "A4" ], #IDX2 - [$amod_ididx, \&check_ididx, "A4" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "A4" ]], #[IDX2] - "ANDB" => [[$amod_imm8, \&check_imm8, "C4" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "D4" ], #DIR - [$amod_ext, \&check_ext, "F4" ], #EXT - [$amod_idx, \&check_idx, "E4" ], #IDX - [$amod_idx1, \&check_idx1, "E4" ], #IDX1 - [$amod_idx2, \&check_idx2, "E4" ], #IDX2 - [$amod_ididx, \&check_ididx, "E4" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "E4" ]], #[IDX2] - "ANDX" => [[$amod_imm16, \&check_imm16, "18 84"], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "18 94"], #DIR - [$amod_ext, \&check_ext, "18 B4"], #EXT - [$amod_idx, \&check_idx, "18 A4"], #IDX - [$amod_idx1, \&check_idx1, "18 A4"], #IDX1 - [$amod_idx2, \&check_idx2, "18 A4"], #IDX2 - [$amod_ididx, \&check_ididx, "18 A4"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 A4"]], #[IDX2] - "ANDY" => [[$amod_imm16, \&check_imm16, "18 C4"], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "18 D4"], #DIR - [$amod_ext, \&check_ext, "18 F4"], #EXT - [$amod_idx, \&check_idx, "18 E4"], #IDX - [$amod_idx1, \&check_idx1, "18 E4"], #IDX1 - [$amod_idx2, \&check_idx2, "18 E4"], #IDX2 - [$amod_ididx, \&check_ididx, "18 E4"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 E4"]], #[IDX2] - "ANDCC" => [[$amod_imm8, \&check_imm8, "10" ]], #IMM - "ASL" => [[$amod_ext, \&check_ext, "78" ], #EXT - [$amod_idx, \&check_idx, "68" ], #IDX - [$amod_idx1, \&check_idx1, "68" ], #IDX1 - [$amod_idx2, \&check_idx2, "68" ], #IDX2 - [$amod_ididx, \&check_ididx, "68" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "68" ]], #[IDX2] - "ASLA" => [[$amod_inh, \&check_inh, "48" ]], #INH - "ASLB" => [[$amod_inh, \&check_inh, "58" ]], #INH - "ANDCC" => [[$amod_imm8, \&check_imm8, "10" ]], #IMM - "ASLW" => [[$amod_ext, \&check_ext, "18 78"], #EXT - [$amod_idx, \&check_idx, "18 68"], #IDX - [$amod_idx1, \&check_idx1, "18 68"], #IDX1 - [$amod_idx2, \&check_idx2, "18 68"], #IDX2 - [$amod_ididx, \&check_ididx, "18 68"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 68"]], #[IDX2] - "ASLX" => [[$amod_inh, \&check_inh, "18 48"]], #INH - "ASLY" => [[$amod_inh, \&check_inh, "18 58"]], #INH - "ASLD" => [[$amod_inh, \&check_inh, "59" ]], #INH - "ASR" => [[$amod_ext, \&check_ext, "77" ], #EXT - [$amod_idx, \&check_idx, "67" ], #IDX - [$amod_idx1, \&check_idx1, "67" ], #IDX1 - [$amod_idx2, \&check_idx2, "67" ], #IDX2 - [$amod_ididx, \&check_ididx, "67" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "67" ]], #[IDX2] - "ASRA" => [[$amod_inh, \&check_inh, "47" ]], #INH - "ASRB" => [[$amod_inh, \&check_inh, "57" ]], #INH - "ASRW" => [[$amod_ext, \&check_ext, "18 77"], #EXT - [$amod_idx, \&check_idx, "18 67"], #IDX - [$amod_idx1, \&check_idx1, "18 67"], #IDX1 - [$amod_idx2, \&check_idx2, "18 67"], #IDX2 - [$amod_ididx, \&check_ididx, "18 67"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 67"]], #[IDX2] - "ASRX" => [[$amod_inh, \&check_inh, "18 47"]], #INH - "ASRY" => [[$amod_inh, \&check_inh, "18 57"]], #INH - "BCC" => [[$amod_rel8, \&check_rel8, "24" ], #REL - [$amod_rel16, \&check_rel16, "18 24"]], #REL - "BCLR" => [[$amod_s12x_dir_msk, \&check_s12x_dir_msk, "4D" ], #DIR - [$amod_ext_msk, \&check_ext_msk, "1D" ], #EXT - [$amod_idx_msk, \&check_idx_msk, "0D" ], #IDX - [$amod_idx1_msk, \&check_idx1_msk, "0D" ], #IDX1 - [$amod_idx2_msk, \&check_idx2_msk, "0D" ]], #IDX2 - "BCS" => [[$amod_rel8, \&check_rel8, "25" ], #REL - [$amod_rel16, \&check_rel16, "18 25"]], #REL - "BEQ" => [[$amod_rel8, \&check_rel8, "27" ], #REL - [$amod_rel16, \&check_rel16, "18 27"]], #REL - "BGE" => [[$amod_rel8, \&check_rel8, "2C" ], #REL - [$amod_rel16, \&check_rel16, "18 2C"]], #REL - "BKGD" => [[$amod_inh, \&check_inh, "00" ]], #INH - "BGT" => [[$amod_rel8, \&check_rel8, "2E" ], #REL - [$amod_rel16, \&check_rel16, "18 2E"]], #REL - "BHI" => [[$amod_rel8, \&check_rel8, "22" ], #REL - [$amod_rel16, \&check_rel16, "18 22"]], #REL - "BHS" => [[$amod_rel8, \&check_rel8, "24" ], #REL - [$amod_rel16, \&check_rel16, "18 24"]], #REL - "BITA" => [[$amod_imm8, \&check_imm8, "85" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "95" ], #DIR - [$amod_ext, \&check_ext, "B5" ], #EXT - [$amod_idx, \&check_idx, "A5" ], #IDX - [$amod_idx1, \&check_idx1, "A5" ], #IDX1 - [$amod_idx2, \&check_idx2, "A5" ], #IDX2 - [$amod_ididx, \&check_ididx, "A5" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "A5" ]], #[IDX2] - "BITB" => [[$amod_imm8, \&check_imm8, "C5" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "D5" ], #DIR - [$amod_ext, \&check_ext, "F5" ], #EXT - [$amod_idx, \&check_idx, "E5" ], #IDX - [$amod_idx1, \&check_idx1, "E5" ], #IDX1 - [$amod_idx2, \&check_idx2, "E5" ], #IDX2 - [$amod_ididx, \&check_ididx, "E5" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "E5" ]], #[IDX2] - "BITX" => [[$amod_imm16, \&check_imm16, "18 85"], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "18 95"], #DIR - [$amod_ext, \&check_ext, "18 B5"], #EXT - [$amod_idx, \&check_idx, "18 A5"], #IDX - [$amod_idx1, \&check_idx1, "18 A5"], #IDX1 - [$amod_idx2, \&check_idx2, "18 A5"], #IDX2 - [$amod_ididx, \&check_ididx, "18 A5"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 A5"]], #[IDX2] - "BITY" => [[$amod_imm16, \&check_imm16, "18 C5"], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "18 D5"], #DIR - [$amod_ext, \&check_ext, "18 F5"], #EXT - [$amod_idx, \&check_idx, "18 E5"], #IDX - [$amod_idx1, \&check_idx1, "18 E5"], #IDX1 - [$amod_idx2, \&check_idx2, "18 E5"], #IDX2 - [$amod_ididx, \&check_ididx, "18 E5"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 E5"]], #[IDX2] - "BLE" => [[$amod_rel8, \&check_rel8, "2F" ], #REL - [$amod_rel16, \&check_rel16, "18 2F"]], #REL - "BLO" => [[$amod_rel8, \&check_rel8, "25" ], #REL - [$amod_rel16, \&check_rel16, "18 25"]], #REL - "BLS" => [[$amod_rel8, \&check_rel8, "23" ], #REL - [$amod_rel16, \&check_rel16, "18 23"]], #REL - "BLT" => [[$amod_rel8, \&check_rel8, "2D" ], #REL - [$amod_rel16, \&check_rel16, "18 2D"]], #REL - "BMI" => [[$amod_rel8, \&check_rel8, "2B" ], #REL - [$amod_rel16, \&check_rel16, "18 2B"]], #REL - "BNE" => [[$amod_rel8, \&check_rel8, "26" ], #REL - [$amod_rel16, \&check_rel16, "18 26"]], #REL - "BPL" => [[$amod_rel8, \&check_rel8, "2A" ], #REL - [$amod_rel16, \&check_rel16, "18 2A"]], #REL - "BRA" => [[$amod_rel8, \&check_rel8, "20" ], #REL - [$amod_rel16, \&check_rel16, "18 20"]], #REL - "BRCLR" => [[$amod_s12x_dir_msk_rel, \&check_s12x_dir_msk_rel, "4F" ], #DIR - [$amod_ext_msk_rel, \&check_ext_msk_rel, "1F" ], #EXT - [$amod_idx_msk_rel, \&check_idx_msk_rel, "0F" ], #IDX - [$amod_idx1_msk_rel, \&check_idx1_msk_rel, "0F" ], #IDX1 - [$amod_idx2_msk_rel, \&check_idx2_msk_rel, "0F" ]], #IDX2 - "BRN" => [[$amod_rel8, \&check_rel8, "21" ], #REL - [$amod_rel16, \&check_rel16, "18 21"]], #REL - "BRSET" => [[$amod_s12x_dir_msk_rel, \&check_s12x_dir_msk_rel, "4E" ], #DIR - [$amod_ext_msk_rel, \&check_ext_msk_rel, "1E" ], #EXT - [$amod_idx_msk_rel, \&check_idx_msk_rel, "0E" ], #IDX - [$amod_idx1_msk_rel, \&check_idx1_msk_rel, "0E" ], #IDX1 - [$amod_idx2_msk_rel, \&check_idx2_msk_rel, "0E" ]], #IDX2 - "BSET" => [[$amod_s12x_dir_msk, \&check_s12x_dir_msk, "4C" ], #DIR - [$amod_ext_msk, \&check_ext_msk, "1C" ], #EXT - [$amod_idx_msk, \&check_idx_msk, "0C" ], #IDX - [$amod_idx1_msk, \&check_idx1_msk, "0C" ], #IDX1 - [$amod_idx2_msk, \&check_idx2_msk, "0C" ]], #IDX2 - "BSR" => [[$amod_rel8, \&check_rel8, "07" ]], #REL - "BVC" => [[$amod_rel8, \&check_rel8, "28" ], #REL - [$amod_rel16, \&check_rel16, "18 28"]], #REL - "BVS" => [[$amod_rel8, \&check_rel8, "29" ], #REL - [$amod_rel16, \&check_rel16, "18 29"]], #REL - "BTAS" => [[$amod_s12x_dir_msk, \&check_s12x_dir_msk, "18 35"], #DIR - [$amod_ext_msk, \&check_ext_msk, "18 36"], #EXT - [$amod_idx_msk, \&check_idx_msk, "18 37"], #IDX - [$amod_idx1_msk, \&check_idx1_msk, "18 37"], #IDX1 - [$amod_idx2_msk, \&check_idx2_msk, "18 37"]], #IDX2 - "CALL" => [[$amod_ext_pgimpl, \&check_ext_pgimpl, "4A" ], #EXT - [$amod_ext_pg, \&check_ext_pg, "4A" ], #EXT - [$amod_idx_pg, \&check_idx_pg, "4B" ], #IDX - [$amod_idx1_pg, \&check_idx1_pg, "4B" ], #IDX1 - [$amod_idx2_pg, \&check_idx2_pg, "4B" ], #IDX2 - [$amod_ididx_pg, \&check_ididx_pg, "4B" ], #[D,IDX] - [$amod_iidx2_pg, \&check_iidx2_pg, "4B" ]], #[IDX2] - "CBA" => [[$amod_inh, \&check_inh, "18 17"]], #INH - "CLC" => [[$amod_inh, \&check_inh, "10 FE"]], #INH - "CLI" => [[$amod_inh, \&check_inh, "10 EF"]], #INH - "CLR" => [[$amod_ext, \&check_ext, "79" ], #EXT - [$amod_idx, \&check_idx, "69" ], #IDX - [$amod_idx1, \&check_idx1, "69" ], #IDX1 - [$amod_idx2, \&check_idx2, "69" ], #IDX2 - [$amod_ididx, \&check_ididx, "69" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "69" ]], #[IDX2] - "CLRA" => [[$amod_inh, \&check_inh, "87" ]], #INH - "CLRB" => [[$amod_inh, \&check_inh, "C7" ]], #INH - "CLRW" => [[$amod_ext, \&check_ext, "18 79"], #EXT - [$amod_idx, \&check_idx, "18 69"], #IDX - [$amod_idx1, \&check_idx1, "18 69"], #IDX1 - [$amod_idx2, \&check_idx2, "18 69"], #IDX2 - [$amod_ididx, \&check_ididx, "18 69"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 69"]], #[IDX2] - "CLRX" => [[$amod_inh, \&check_inh, "18 87"]], #INH - "CLRY" => [[$amod_inh, \&check_inh, "18 C7"]], #INH - "CLV" => [[$amod_inh, \&check_inh, "10 FD"]], #INH - "CMPA" => [[$amod_imm8, \&check_imm8, "81" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "91" ], #DIR - [$amod_ext, \&check_ext, "B1" ], #EXT - [$amod_idx, \&check_idx, "A1" ], #IDX - [$amod_idx1, \&check_idx1, "A1" ], #IDX1 - [$amod_idx2, \&check_idx2, "A1" ], #IDX2 - [$amod_ididx, \&check_ididx, "A1" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "A1" ]], #[IDX2] - "CMPB" => [[$amod_imm8, \&check_imm8, "C1" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "D1" ], #DIR - [$amod_ext, \&check_ext, "F1" ], #EXT - [$amod_idx, \&check_idx, "E1" ], #IDX - [$amod_idx1, \&check_idx1, "E1" ], #IDX1 - [$amod_idx2, \&check_idx2, "E1" ], #IDX2 - [$amod_ididx, \&check_ididx, "E1" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "E1" ]], #[IDX2] - "COM" => [[$amod_ext, \&check_ext, "71" ], #EXT - [$amod_idx, \&check_idx, "61" ], #IDX - [$amod_idx1, \&check_idx1, "61" ], #IDX1 - [$amod_idx2, \&check_idx2, "61" ], #IDX2 - [$amod_ididx, \&check_ididx, "61" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "61" ]], #[IDX2] - "COMA" => [[$amod_inh, \&check_inh, "41" ]], #INH - "COMB" => [[$amod_inh, \&check_inh, "51" ]], #INH - "COMW" => [[$amod_ext, \&check_ext, "18 71"], #EXT - [$amod_idx, \&check_idx, "18 61"], #IDX - [$amod_idx1, \&check_idx1, "18 61"], #IDX1 - [$amod_idx2, \&check_idx2, "18 61"], #IDX2 - [$amod_ididx, \&check_ididx, "18 61"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 61"]], #[IDX2] - "COMX" => [[$amod_inh, \&check_inh, "18 41"]], #INH - "COMY" => [[$amod_inh, \&check_inh, "18 51"]], #INH - "CPED" => [[$amod_imm16, \&check_imm16, "18 8C"], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "18 9C"], #DIR - [$amod_ext, \&check_ext, "18 BC"], #EXT - [$amod_idx, \&check_idx, "18 AC"], #IDX - [$amod_idx1, \&check_idx1, "18 AC"], #IDX1 - [$amod_idx2, \&check_idx2, "18 AC"], #IDX2 - [$amod_ididx, \&check_ididx, "18 AC"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 AC"]], #[IDX2] - "CPES" => [[$amod_imm16, \&check_imm16, "18 8F"], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "18 9F"], #DIR - [$amod_ext, \&check_ext, "18 BF"], #EXT - [$amod_idx, \&check_idx, "18 AF"], #IDX - [$amod_idx1, \&check_idx1, "18 AF"], #IDX1 - [$amod_idx2, \&check_idx2, "18 AF"], #IDX2 - [$amod_ididx, \&check_ididx, "18 AF"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 AF"]], #[IDX2] - "CPEX" => [[$amod_imm16, \&check_imm16, "18 8E"], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "18 9E"], #DIR - [$amod_ext, \&check_ext, "18 BE"], #EXT - [$amod_idx, \&check_idx, "18 AE"], #IDX - [$amod_idx1, \&check_idx1, "18 AE"], #IDX1 - [$amod_idx2, \&check_idx2, "18 AE"], #IDX2 - [$amod_ididx, \&check_ididx, "18 AE"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 AE"]], #[IDX2] - "CPEY" => [[$amod_imm16, \&check_imm16, "18 8D"], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "18 9D"], #DIR - [$amod_ext, \&check_ext, "18 BD"], #EXT - [$amod_idx, \&check_idx, "18 AD"], #IDX - [$amod_idx1, \&check_idx1, "18 AD"], #IDX1 - [$amod_idx2, \&check_idx2, "18 AD"], #IDX2 - [$amod_ididx, \&check_ididx, "18 AD"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 AD"]], #[IDX2] - "CPD" => [[$amod_imm16, \&check_imm16, "8C" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "9C" ], #DIR - [$amod_ext, \&check_ext, "BC" ], #EXT - [$amod_idx, \&check_idx, "AC" ], #IDX - [$amod_idx1, \&check_idx1, "AC" ], #IDX1 - [$amod_idx2, \&check_idx2, "AC" ], #IDX2 - [$amod_ididx, \&check_ididx, "AC" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "AC" ]], #[IDX2] - "CPS" => [[$amod_imm16, \&check_imm16, "8F" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "9F" ], #DIR - [$amod_ext, \&check_ext, "BF" ], #EXT - [$amod_idx, \&check_idx, "AF" ], #IDX - [$amod_idx1, \&check_idx1, "AF" ], #IDX1 - [$amod_idx2, \&check_idx2, "AF" ], #IDX2 - [$amod_ididx, \&check_ididx, "AF" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "AF" ]], #[IDX2] - "CPX" => [[$amod_imm16, \&check_imm16, "8E" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "9E" ], #DIR - [$amod_ext, \&check_ext, "BE" ], #EXT - [$amod_idx, \&check_idx, "AE" ], #IDX - [$amod_idx1, \&check_idx1, "AE" ], #IDX1 - [$amod_idx2, \&check_idx2, "AE" ], #IDX2 - [$amod_ididx, \&check_ididx, "AE" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "AE" ]], #[IDX2] - "CPY" => [[$amod_imm16, \&check_imm16, "8D" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "9D" ], #DIR - [$amod_ext, \&check_ext, "BD" ], #EXT - [$amod_idx, \&check_idx, "AD" ], #IDX - [$amod_idx1, \&check_idx1, "AD" ], #IDX1 - [$amod_idx2, \&check_idx2, "AD" ], #IDX2 - [$amod_ididx, \&check_ididx, "AD" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "AD" ]], #[IDX2] - "DAA" => [[$amod_inh, \&check_inh, "18 07"]], #INH - "DBEQ" => [[$amod_dbeq, \&check_dbeq, "04" ]], #REL - "DBNE" => [[$amod_dbne, \&check_dbne, "04" ]], #REL - "DEC" => [[$amod_ext, \&check_ext, "73" ], #EXT - [$amod_idx, \&check_idx, "63" ], #IDX - [$amod_idx1, \&check_idx1, "63" ], #IDX1 - [$amod_idx2, \&check_idx2, "63" ], #IDX2 - [$amod_ididx, \&check_ididx, "63" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "63" ]], #[IDX2] - "DECA" => [[$amod_inh, \&check_inh, "43" ]], #INH - "DECB" => [[$amod_inh, \&check_inh, "53" ]], #INH - "DECW" => [[$amod_ext, \&check_ext, "18 73"], #EXT - [$amod_idx, \&check_idx, "18 63"], #IDX - [$amod_idx1, \&check_idx1, "18 63"], #IDX1 - [$amod_idx2, \&check_idx2, "18 63"], #IDX2 - [$amod_ididx, \&check_ididx, "18 63"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 63"]], #[IDX2] - "DECX" => [[$amod_inh, \&check_inh, "18 43"]], #INH - "DECY" => [[$amod_inh, \&check_inh, "18 53"]], #INH - "DES" => [[$amod_inh, \&check_inh, "1B 9F"]], #INH - "DEX" => [[$amod_inh, \&check_inh, "09" ]], #INH - "DEY" => [[$amod_inh, \&check_inh, "03" ]], #INH - "EDIV" => [[$amod_inh, \&check_inh, "11" ]], #INH - "EDIVS" => [[$amod_inh, \&check_inh, "18 14"]], #INH - "EMACS" => [[$amod_ext, \&check_ext, "18 12"]], #EXT - "EMAXD" => [[$amod_idx, \&check_idx, "18 1A"], #IDX - [$amod_idx1, \&check_idx1, "18 1A"], #IDX1 - [$amod_idx2, \&check_idx2, "18 1A"], #IDX2 - [$amod_ididx, \&check_ididx, "18 1A"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 1A"]], #[IDX2] - "EMAXM" => [[$amod_idx, \&check_idx, "18 1E"], #IDX - [$amod_idx1, \&check_idx1, "18 1E"], #IDX1 - [$amod_idx2, \&check_idx2, "18 1E"], #IDX2 - [$amod_ididx, \&check_ididx, "18 1E"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 1E"]], #[IDX2] - "EMIND" => [[$amod_idx, \&check_idx, "18 1B"], #IDX - [$amod_idx1, \&check_idx1, "18 1B"], #IDX1 - [$amod_idx2, \&check_idx2, "18 1B"], #IDX2 - [$amod_ididx, \&check_ididx, "18 1B"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 1B"]], #[IDX2] - "EMINM" => [[$amod_idx, \&check_idx, "18 1F"], #IDX - [$amod_idx1, \&check_idx1, "18 1F"], #IDX1 - [$amod_idx2, \&check_idx2, "18 1F"], #IDX2 - [$amod_ididx, \&check_ididx, "18 1F"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 1F"]], #[IDX2] - "EMUL" => [[$amod_inh, \&check_inh, "13" ]], #INH - "EMULS" => [[$amod_inh, \&check_inh, "18 13"]], #INH - "EORA" => [[$amod_imm8, \&check_imm8, "88" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "98" ], #DIR - [$amod_ext, \&check_ext, "B8" ], #EXT - [$amod_idx, \&check_idx, "A8" ], #IDX - [$amod_idx1, \&check_idx1, "A8" ], #IDX1 - [$amod_idx2, \&check_idx2, "A8" ], #IDX2 - [$amod_ididx, \&check_ididx, "A8" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "A8" ]], #[IDX2] - "EORB" => [[$amod_imm8, \&check_imm8, "C8" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "D8" ], #DIR - [$amod_ext, \&check_ext, "F8" ], #EXT - [$amod_idx, \&check_idx, "E8" ], #IDX - [$amod_idx1, \&check_idx1, "E8" ], #IDX1 - [$amod_idx2, \&check_idx2, "E8" ], #IDX2 - [$amod_ididx, \&check_ididx, "E8" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "E8" ]], #[IDX2] - "EORX" => [[$amod_imm16, \&check_imm16, "18 88"], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "18 98"], #DIR - [$amod_ext, \&check_ext, "18 B8"], #EXT - [$amod_idx, \&check_idx, "18 A8"], #IDX - [$amod_idx1, \&check_idx1, "18 A8"], #IDX1 - [$amod_idx2, \&check_idx2, "18 A8"], #IDX2 - [$amod_ididx, \&check_ididx, "18 A8"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 A8"]], #[IDX2] - "EORY" => [[$amod_imm16, \&check_imm16, "18 C8"], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "18 D8"], #DIR - [$amod_ext, \&check_ext, "18 F8"], #EXT - [$amod_idx, \&check_idx, "18 E8"], #IDX - [$amod_idx1, \&check_idx1, "18 E8"], #IDX1 - [$amod_idx2, \&check_idx2, "18 E8"], #IDX2 - [$amod_ididx, \&check_ididx, "18 E8"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 E8"]], #[IDX2] - "ETBL" => [[$amod_idx, \&check_idx, "18 3F"]], #IDX - "EXG" => [[$amod_s12x_exg, \&check_s12x_exg, "B7" ]], #INH - "FDIV" => [[$amod_inh, \&check_inh, "18 11"]], #INH - "GLDAA" => [[$amod_s12x_dir, \&check_s12x_dir, "18 96"], #DIR - [$amod_ext, \&check_ext, "18 B6"], #EXT - [$amod_idx, \&check_idx, "18 A6"], #IDX - [$amod_idx1, \&check_idx1, "18 A6"], #IDX1 - [$amod_idx2, \&check_idx2, "18 A6"], #IDX2 - [$amod_ididx, \&check_ididx, "18 A6"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 A6"]], #[IDX2] - "GLDAB" => [[$amod_s12x_dir, \&check_s12x_dir, "18 D6"], #DIR - [$amod_ext, \&check_ext, "18 F6"], #EXT - [$amod_idx, \&check_idx, "18 E6"], #IDX - [$amod_idx1, \&check_idx1, "18 E6"], #IDX1 - [$amod_idx2, \&check_idx2, "18 E6"], #IDX2 - [$amod_ididx, \&check_ididx, "18 E6"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 E6"]], #[IDX2] - "GLDD" => [[$amod_s12x_dir, \&check_s12x_dir, "18 DC"], #DIR - [$amod_ext, \&check_ext, "18 FC"], #EXT - [$amod_idx, \&check_idx, "18 EC"], #IDX - [$amod_idx1, \&check_idx1, "18 EC"], #IDX1 - [$amod_idx2, \&check_idx2, "18 EC"], #IDX2 - [$amod_ididx, \&check_ididx, "18 EC"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 EC"]], #[IDX2] - "GLDS" => [[$amod_s12x_dir, \&check_s12x_dir, "18 DF"], #DIR - [$amod_ext, \&check_ext, "18 FF"], #EXT - [$amod_idx, \&check_idx, "18 EF"], #IDX - [$amod_idx1, \&check_idx1, "18 EF"], #IDX1 - [$amod_idx2, \&check_idx2, "18 EF"], #IDX2 - [$amod_ididx, \&check_ididx, "18 EF"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 EF"]], #[IDX2] - "GLDX" => [[$amod_s12x_dir, \&check_s12x_dir, "18 DE"], #DIR - [$amod_ext, \&check_ext, "18 FE"], #EXT - [$amod_idx, \&check_idx, "18 EE"], #IDX - [$amod_idx1, \&check_idx1, "18 EE"], #IDX1 - [$amod_idx2, \&check_idx2, "18 EE"], #IDX2 - [$amod_ididx, \&check_ididx, "18 EE"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 EE"]], #[IDX2] - "GLDY" => [[$amod_s12x_dir, \&check_s12x_dir, "18 DD"], #DIR - [$amod_ext, \&check_ext, "18 FD"], #EXT - [$amod_idx, \&check_idx, "18 ED"], #IDX - [$amod_idx1, \&check_idx1, "18 ED"], #IDX1 - [$amod_idx2, \&check_idx2, "18 ED"], #IDX2 - [$amod_ididx, \&check_ididx, "18 ED"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 ED"]], #[IDX2] - "GSTAA" => [[$amod_s12x_dir, \&check_s12x_dir, "18 5A"], #DIR - [$amod_ext, \&check_ext, "18 7A"], #EXT - [$amod_idx, \&check_idx, "18 6A"], #IDX - [$amod_idx1, \&check_idx1, "18 6A"], #IDX1 - [$amod_idx2, \&check_idx2, "18 6A"], #IDX2 - [$amod_ididx, \&check_ididx, "18 6A"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 6A"]], #[IDX2] - "GSTAB" => [[$amod_s12x_dir, \&check_s12x_dir, "18 5B"], #DIR - [$amod_ext, \&check_ext, "18 7B"], #EXT - [$amod_idx, \&check_idx, "18 6B"], #IDX - [$amod_idx1, \&check_idx1, "18 6B"], #IDX1 - [$amod_idx2, \&check_idx2, "18 6B"], #IDX2 - [$amod_ididx, \&check_ididx, "18 6B"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 6B"]], #[IDX2] - "GSTD" => [[$amod_s12x_dir, \&check_s12x_dir, "18 5C"], #DIR - [$amod_ext, \&check_ext, "18 7C"], #EXT - [$amod_idx, \&check_idx, "18 6C"], #IDX - [$amod_idx1, \&check_idx1, "18 6C"], #IDX1 - [$amod_idx2, \&check_idx2, "18 6C"], #IDX2 - [$amod_ididx, \&check_ididx, "18 6C"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 6C"]], #[IDX2] - "GSTS" => [[$amod_s12x_dir, \&check_s12x_dir, "18 5F"], #DIR - [$amod_ext, \&check_ext, "18 7F"], #EXT - [$amod_idx, \&check_idx, "18 6F"], #IDX - [$amod_idx1, \&check_idx1, "18 6F"], #IDX1 - [$amod_idx2, \&check_idx2, "18 6F"], #IDX2 - [$amod_ididx, \&check_ididx, "18 6F"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 6F"]], #[IDX2] - "GSTX" => [[$amod_s12x_dir, \&check_s12x_dir, "18 5E"], #DIR - [$amod_ext, \&check_ext, "18 7E"], #EXT - [$amod_idx, \&check_idx, "18 6E"], #IDX - [$amod_idx1, \&check_idx1, "18 6E"], #IDX1 - [$amod_idx2, \&check_idx2, "18 6E"], #IDX2 - [$amod_ididx, \&check_ididx, "18 6E"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 6E"]], #[IDX2] - "GSTY" => [[$amod_s12x_dir, \&check_s12x_dir, "18 5D"], #DIR - [$amod_ext, \&check_ext, "18 7D"], #EXT - [$amod_idx, \&check_idx, "18 6D"], #IDX - [$amod_idx1, \&check_idx1, "18 6D"], #IDX1 - [$amod_idx2, \&check_idx2, "18 6D"], #IDX2 - [$amod_ididx, \&check_ididx, "18 6D"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 6D"]], #[IDX2] - "IBEQ" => [[$amod_ibeq, \&check_ibeq, "04" ]], #REL - "IBNE" => [[$amod_ibne, \&check_ibne, "04" ]], #REL - "IDIV" => [[$amod_inh, \&check_inh, "18 10"]], #INH - "IDIVS" => [[$amod_inh, \&check_inh, "18 15"]], #INH - "INC" => [[$amod_ext, \&check_ext, "72" ], #EXT - [$amod_idx, \&check_idx, "62" ], #IDX - [$amod_idx1, \&check_idx1, "62" ], #IDX1 - [$amod_idx2, \&check_idx2, "62" ], #IDX2 - [$amod_ididx, \&check_ididx, "62" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "62" ]], #[IDX2] - "INCA" => [[$amod_inh, \&check_inh, "42" ]], #INH - "INCB" => [[$amod_inh, \&check_inh, "52" ]], #INH - "INCW" => [[$amod_ext, \&check_ext, "18 72"], #EXT - [$amod_idx, \&check_idx, "18 62"], #IDX - [$amod_idx1, \&check_idx1, "18 62"], #IDX1 - [$amod_idx2, \&check_idx2, "18 62"], #IDX2 - [$amod_ididx, \&check_ididx, "18 62"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 62"]], #[IDX2] - "INCX" => [[$amod_inh, \&check_inh, "18 42"]], #INH - "INCY" => [[$amod_inh, \&check_inh, "18 52"]], #INH - "INS" => [[$amod_inh, \&check_inh, "1B 81"]], #INH - "INX" => [[$amod_inh, \&check_inh, "08" ]], #INH - "INY" => [[$amod_inh, \&check_inh, "02" ]], #INH - "JMP" => [[$amod_ext, \&check_ext, "06" ], #EXT - [$amod_idx, \&check_idx, "05" ], #IDX - [$amod_idx1, \&check_idx1, "05" ], #IDX1 - [$amod_idx2, \&check_idx2, "05" ], #IDX2 - [$amod_ididx, \&check_ididx, "05" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "05" ]], #[IDX2] - "JOB" => [[$amod_rel8, \&check_rel8, "20" ], #REL - [$amod_ext, \&check_ext, "06" ]], #EXT - "JOBSR" => [[$amod_rel8, \&check_rel8, "07" ], #REL - [$amod_ext, \&check_ext, "16" ]], #EXT - "JSR" => [[$amod_s12x_dir, \&check_s12x_dir, "17" ], #DIR - [$amod_ext, \&check_ext, "16" ], #EXT - [$amod_idx, \&check_idx, "15" ], #IDX - [$amod_idx1, \&check_idx1, "15" ], #IDX1 - [$amod_idx2, \&check_idx2, "15" ], #IDX2 - [$amod_ididx, \&check_ididx, "15" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "15" ]], #[IDX2] - "LBCC" => [[$amod_rel16, \&check_rel16, "18 24"]], #REL - "LBCS" => [[$amod_rel16, \&check_rel16, "18 25"]], #REL - "LBEQ" => [[$amod_rel16, \&check_rel16, "18 27"]], #REL - "LBGE" => [[$amod_rel16, \&check_rel16, "18 2C"]], #REL - "LBGT" => [[$amod_rel16, \&check_rel16, "18 2E"]], #REL - "LBHI" => [[$amod_rel16, \&check_rel16, "18 22"]], #REL - "LBHS" => [[$amod_rel16, \&check_rel16, "18 24"]], #REL - "LBLE" => [[$amod_rel16, \&check_rel16, "18 2F"]], #REL - "LBLO" => [[$amod_rel16, \&check_rel16, "18 25"]], #REL - "LBLS" => [[$amod_rel16, \&check_rel16, "18 23"]], #REL - "LBLT" => [[$amod_rel16, \&check_rel16, "18 2D"]], #REL - "LBMI" => [[$amod_rel16, \&check_rel16, "18 2B"]], #REL - "LBNE" => [[$amod_rel16, \&check_rel16, "18 26"]], #REL - "LBPL" => [[$amod_rel16, \&check_rel16, "18 2A"]], #REL - "LBRA" => [[$amod_rel16, \&check_rel16, "18 20"]], #REL - "LBRN" => [[$amod_rel16, \&check_rel16, "18 21"]], #REL - "LBVC" => [[$amod_rel16, \&check_rel16, "18 28"]], #REL - "LBVS" => [[$amod_rel16, \&check_rel16, "18 29"]], #REL - "LDAA" => [[$amod_imm8, \&check_imm8, "86" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "96" ], #DIR - [$amod_ext, \&check_ext, "B6" ], #EXT - [$amod_idx, \&check_idx, "A6" ], #IDX - [$amod_idx1, \&check_idx1, "A6" ], #IDX1 - [$amod_idx2, \&check_idx2, "A6" ], #IDX2 - [$amod_ididx, \&check_ididx, "A6" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "A6" ]], #[IDX2] - "LDAB" => [[$amod_imm8, \&check_imm8, "C6" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "D6" ], #DIR - [$amod_ext, \&check_ext, "F6" ], #EXT - [$amod_idx, \&check_idx, "E6" ], #IDX - [$amod_idx1, \&check_idx1, "E6" ], #IDX1 - [$amod_idx2, \&check_idx2, "E6" ], #IDX2 - [$amod_ididx, \&check_ididx, "E6" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "E6" ]], #[IDX2] - "LDD" => [[$amod_imm16, \&check_imm16, "CC" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "DC" ], #DIR - [$amod_ext, \&check_ext, "FC" ], #EXT - [$amod_idx, \&check_idx, "EC" ], #IDX - [$amod_idx1, \&check_idx1, "EC" ], #IDX1 - [$amod_idx2, \&check_idx2, "EC" ], #IDX2 - [$amod_ididx, \&check_ididx, "EC" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "EC" ]], #[IDX2] - "LDS" => [[$amod_imm16, \&check_imm16, "CF" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "DF" ], #DIR - [$amod_ext, \&check_ext, "FF" ], #EXT - [$amod_idx, \&check_idx, "EF" ], #IDX - [$amod_idx1, \&check_idx1, "EF" ], #IDX1 - [$amod_idx2, \&check_idx2, "EF" ], #IDX2 - [$amod_ididx, \&check_ididx, "EF" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "EF" ]], #[IDX2] - "LDX" => [[$amod_imm16, \&check_imm16, "CE" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "DE" ], #DIR - [$amod_ext, \&check_ext, "FE" ], #EXT - [$amod_idx, \&check_idx, "EE" ], #IDX - [$amod_idx1, \&check_idx1, "EE" ], #IDX1 - [$amod_idx2, \&check_idx2, "EE" ], #IDX2 - [$amod_ididx, \&check_ididx, "EE" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "EE" ]], #[IDX2] - "LDY" => [[$amod_imm16, \&check_imm16, "CD" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "DD" ], #DIR - [$amod_ext, \&check_ext, "FD" ], #EXT - [$amod_idx, \&check_idx, "ED" ], #IDX - [$amod_idx1, \&check_idx1, "ED" ], #IDX1 - [$amod_idx2, \&check_idx2, "ED" ], #IDX2 - [$amod_ididx, \&check_ididx, "ED" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "ED" ]], #[IDX2] - "LEAS" => [[$amod_idx, \&check_idx, "1B" ], #IDX - [$amod_idx1, \&check_idx1, "1B" ], #IDX1 - [$amod_idx2, \&check_idx2, "1B" ]], #IDX2 - "LEAX" => [[$amod_idx, \&check_idx, "1A" ], #IDX - [$amod_idx1, \&check_idx1, "1A" ], #IDX1 - [$amod_idx2, \&check_idx2, "1A" ]], #IDX2 - "LEAY" => [[$amod_idx, \&check_idx, "19" ], #IDX - [$amod_idx1, \&check_idx1, "19" ], #IDX1 - [$amod_idx2, \&check_idx2, "19" ]], #IDX2 - "LSL" => [[$amod_ext, \&check_ext, "78" ], #EXT - [$amod_idx, \&check_idx, "68" ], #IDX - [$amod_idx1, \&check_idx1, "68" ], #IDX1 - [$amod_idx2, \&check_idx2, "68" ], #IDX2 - [$amod_ididx, \&check_ididx, "68" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "68" ]], #[IDX2] - "LSLA" => [[$amod_inh, \&check_inh, "48" ]], #INH - "LSLB" => [[$amod_inh, \&check_inh, "58" ]], #INH - "LSLD" => [[$amod_inh, \&check_inh, "59" ]], #INH - "LSR" => [[$amod_ext, \&check_ext, "74" ], #EXT - [$amod_idx, \&check_idx, "64" ], #IDX - [$amod_idx1, \&check_idx1, "64" ], #IDX1 - [$amod_idx2, \&check_idx2, "64" ], #IDX2 - [$amod_ididx, \&check_ididx, "64" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "64" ]], #[IDX2] - "LSRA" => [[$amod_inh, \&check_inh, "44" ]], #INH - "LSRB" => [[$amod_inh, \&check_inh, "54" ]], #INH - "LSRW" => [[$amod_ext, \&check_ext, "18 74"], #EXT - [$amod_idx, \&check_idx, "18 64"], #IDX - [$amod_idx1, \&check_idx1, "18 64"], #IDX1 - [$amod_idx2, \&check_idx2, "18 64"], #IDX2 - [$amod_ididx, \&check_ididx, "18 64"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 64"]], #[IDX2] - "LSRX" => [[$amod_inh, \&check_inh, "18 44"]], #INH - "LSRY" => [[$amod_inh, \&check_inh, "18 54"]], #INH - "LSRD" => [[$amod_inh, \&check_inh, "49" ]], #INH - "MAXA" => [[$amod_idx, \&check_idx, "18 18"], #IDX - [$amod_idx1, \&check_idx1, "18 18"], #IDX1 - [$amod_idx2, \&check_idx2, "18 18"], #IDX2 - [$amod_ididx, \&check_ididx, "18 18"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 18"]], #[IDX2] - "MAXM" => [[$amod_idx, \&check_idx, "18 1C"], #IDX - [$amod_idx1, \&check_idx1, "18 1C"], #IDX1 - [$amod_idx2, \&check_idx2, "18 1C"], #IDX2 - [$amod_ididx, \&check_ididx, "18 1C"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 1C"]], #[IDX2] - "MEM" => [[$amod_inh, \&check_inh, "01" ]], #INH - "MINA" => [[$amod_idx, \&check_idx, "18 19"], #IDX - [$amod_idx1, \&check_idx1, "18 19"], #IDX1 - [$amod_idx2, \&check_idx2, "18 19"], #IDX2 - [$amod_ididx, \&check_ididx, "18 19"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 19"]], #[IDX2] - "MINM" => [[$amod_idx, \&check_idx, "18 1D"], #IDX - [$amod_idx1, \&check_idx1, "18 1D"], #IDX1 - [$amod_idx2, \&check_idx2, "18 1D"], #IDX2 - [$amod_ididx, \&check_ididx, "18 1D"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 1D"]], #[IDX2] - "MOVB" => [[$amod_imm8_ext, \&check_imm8_ext, "18 0B"], #IMM-EXT - [$amod_imm8_idx, \&check_imm8_idx, "18 08"], #IMM-IDX - [$amod_imm8_idx1, \&check_imm8_idx1, "18 08"], #IMM-IDX1 - [$amod_imm8_idx2, \&check_imm8_idx2, "18 08"], #IMM-IDX2 - [$amod_imm8_ididx, \&check_imm8_ididx, "18 08"], #IMM-[D,IDX] - [$amod_imm8_iidx2, \&check_imm8_iidx2, "18 08"], #IMM-[IDX2] - [$amod_ext_ext, \&check_ext_ext, "18 0C"], #EXT-EXT - [$amod_ext_idx, \&check_ext_idx, "18 09"], #EXT-IDX - [$amod_ext_idx1, \&check_ext_idx1, "18 09"], #EXT-IDX1 - [$amod_ext_idx2, \&check_ext_idx2, "18 09"], #EXT-IDX2 - [$amod_ext_ididx, \&check_ext_ididx, "18 09"], #EXT-[D,IDX] - [$amod_ext_iidx2, \&check_ext_iidx2, "18 09"], #EXT-[IDX2] - [$amod_idx_ext, \&check_idx_ext, "18 0D"], #IDX-EXT - [$amod_idx_idx, \&check_idx_idx, "18 0A"], #IDX-IDX - [$amod_idx_idx1, \&check_idx_idx1, "18 0A"], #IDX-IDX1 - [$amod_idx_idx2, \&check_idx_idx2, "18 0A"], #IDX-IDX2 - [$amod_idx_ididx, \&check_idx_ididx, "18 0A"], #IDX-[D,IDX] - [$amod_idx_iidx2, \&check_idx_iidx2, "18 0A"], #IDX-[IDX2] - [$amod_idx1_ext, \&check_idx1_ext, "18 0D"], #IDX1-EXT - [$amod_idx1_idx, \&check_idx1_idx, "18 0A"], #IDX1-IDX - [$amod_idx1_idx1, \&check_idx1_idx1, "18 0A"], #IDX1-IDX1 - [$amod_idx1_idx2, \&check_idx1_idx2, "18 0A"], #IDX1-IDX2 - [$amod_idx1_ididx, \&check_idx1_ididx, "18 0A"], #IDX1-[D,IDX] - [$amod_idx1_iidx2, \&check_idx1_iidx2, "18 0A"], #IDX1-[IDX2] - [$amod_idx2_ext, \&check_idx2_ext, "18 0D"], #IDX1-EXT - [$amod_idx2_idx, \&check_idx2_idx, "18 0A"], #IDX2-IDX - [$amod_idx2_idx1, \&check_idx2_idx1, "18 0A"], #IDX2-IDX1 - [$amod_idx2_idx2, \&check_idx2_idx2, "18 0A"], #IDX2-IDX2 - [$amod_idx2_ididx, \&check_idx2_ididx, "18 0A"], #IDX2-[D,IDX] - [$amod_idx2_iidx2, \&check_idx2_iidx2, "18 0A"], #IDX2-[IDX2] - [$amod_ididx_ext, \&check_ididx_ext, "18 0D"], #[D,IDX]-EXT - [$amod_ididx_idx, \&check_ididx_idx, "18 0A"], #[D,IDX]-IDX - [$amod_ididx_idx1, \&check_ididx_idx1, "18 0A"], #[D,IDX]-IDX1 - [$amod_ididx_idx2, \&check_ididx_idx2, "18 0A"], #[D,IDX]-IDX2 - [$amod_ididx_ididx, \&check_ididx_ididx, "18 0A"], #[D,IDX]-[D,IDX] - [$amod_ididx_iidx2, \&check_ididx_iidx2, "18 0A"], #[D,IDX]-[IDX2] - [$amod_iidx2_ext, \&check_iidx2_ext, "18 0D"], #[IDX2]-EXT - [$amod_iidx2_idx, \&check_iidx2_idx, "18 0A"], #[IDX2]-IDX - [$amod_iidx2_idx1, \&check_iidx2_idx1, "18 0A"], #[IDX2]-IDX1 - [$amod_iidx2_idx2, \&check_iidx2_idx2, "18 0A"], #[IDX2]-IDX2 - [$amod_iidx2_ididx, \&check_iidx2_ididx, "18 0A"], #[IDX2]-[D,IDX] - [$amod_iidx2_iidx2, \&check_iidx2_iidx2, "18 0A"]], #[IDX2]-[IDX2] - "MOVW" => [[$amod_imm16_ext, \&check_imm16_ext, "18 03"], #IMM-EXT - [$amod_imm16_idx, \&check_imm16_idx, "18 00"], #IMM-IDX - [$amod_imm16_idx1, \&check_imm16_idx1, "18 00"], #IMM-IDX1 - [$amod_imm16_idx2, \&check_imm16_idx2, "18 00"], #IMM-IDX2 - [$amod_imm16_ididx, \&check_imm16_ididx, "18 00"], #IMM-[D,IDX] - [$amod_imm16_iidx2, \&check_imm16_iidx2, "18 00"], #IMM-[IDX2] - [$amod_ext_ext, \&check_ext_ext, "18 04"], #EXT-EXT - [$amod_ext_idx, \&check_ext_idx, "18 01"], #EXT-IDX - [$amod_ext_idx1, \&check_ext_idx1, "18 01"], #EXT-IDX1 - [$amod_ext_idx2, \&check_ext_idx2, "18 01"], #EXT-IDX2 - [$amod_ext_ididx, \&check_ext_ididx, "18 01"], #EXT-[D,IDX] - [$amod_ext_iidx2, \&check_ext_iidx2, "18 01"], #EXT-[IDX2] - [$amod_idx_ext, \&check_idx_ext, "18 05"], #IDX-EXT - [$amod_idx_idx, \&check_idx_idx, "18 02"], #IDX-IDX - [$amod_idx_idx1, \&check_idx_idx1, "18 02"], #IDX-IDX1 - [$amod_idx_idx2, \&check_idx_idx2, "18 02"], #IDX-IDX2 - [$amod_idx_ididx, \&check_idx_ididx, "18 02"], #IDX-[D,IDX] - [$amod_idx_iidx2, \&check_idx_iidx2, "18 02"], #IDX-[IDX2] - [$amod_idx1_ext, \&check_idx1_ext, "18 05"], #IDX1-EXT - [$amod_idx1_idx, \&check_idx1_idx, "18 02"], #IDX1-IDX - [$amod_idx1_idx1, \&check_idx1_idx1, "18 02"], #IDX1-IDX1 - [$amod_idx1_idx2, \&check_idx1_idx2, "18 02"], #IDX1-IDX2 - [$amod_idx1_ididx, \&check_idx1_ididx, "18 02"], #IDX1-[D,IDX] - [$amod_idx1_iidx2, \&check_idx1_iidx2, "18 02"], #IDX1-[IDX2] - [$amod_idx2_ext, \&check_idx2_ext, "18 05"], #IDX1-EXT - [$amod_idx2_idx, \&check_idx2_idx, "18 02"], #IDX2-IDX - [$amod_idx2_idx1, \&check_idx2_idx1, "18 02"], #IDX2-IDX1 - [$amod_idx2_idx2, \&check_idx2_idx2, "18 02"], #IDX2-IDX2 - [$amod_idx2_ididx, \&check_idx2_ididx, "18 02"], #IDX2-[D,IDX] - [$amod_idx2_iidx2, \&check_idx2_iidx2, "18 02"], #IDX2-[IDX2] - [$amod_ididx_ext, \&check_ididx_ext, "18 05"], #[D,IDX]-EXT - [$amod_ididx_idx, \&check_ididx_idx, "18 02"], #[D,IDX]-IDX - [$amod_ididx_idx1, \&check_ididx_idx1, "18 02"], #[D,IDX]-IDX1 - [$amod_ididx_idx2, \&check_ididx_idx2, "18 02"], #[D,IDX]-IDX2 - [$amod_ididx_ididx, \&check_ididx_ididx, "18 02"], #[D,IDX]-[D,IDX] - [$amod_ididx_iidx2, \&check_ididx_iidx2, "18 02"], #[D,IDX]-[IDX2] - [$amod_iidx2_ext, \&check_iidx2_ext, "18 05"], #[IDX2]-EXT - [$amod_iidx2_idx, \&check_iidx2_idx, "18 02"], #[IDX2]-IDX - [$amod_iidx2_idx1, \&check_iidx2_idx1, "18 02"], #[IDX2]-IDX1 - [$amod_iidx2_idx2, \&check_iidx2_idx2, "18 02"], #[IDX2]-IDX2 - [$amod_iidx2_ididx, \&check_iidx2_ididx, "18 02"], #[IDX2]-[D,IDX] - [$amod_iidx2_iidx2, \&check_iidx2_iidx2, "18 02"]], #[IDX2]-[IDX2] - "MUL" => [[$amod_inh, \&check_inh, "12" ]], #INH - "NEG" => [[$amod_ext, \&check_ext, "70" ], #EXT - [$amod_idx, \&check_idx, "60" ], #IDX - [$amod_idx1, \&check_idx1, "60" ], #IDX1 - [$amod_idx2, \&check_idx2, "60" ], #IDX2 - [$amod_ididx, \&check_ididx, "60" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "60" ]], #[IDX2] - "NEGA" => [[$amod_inh, \&check_inh, "40" ]], #INH - "NEGB" => [[$amod_inh, \&check_inh, "50" ]], #INH - "NEGW" => [[$amod_ext, \&check_ext, "18 70"], #EXT - [$amod_idx, \&check_idx, "18 60"], #IDX - [$amod_idx1, \&check_idx1, "18 60"], #IDX1 - [$amod_idx2, \&check_idx2, "18 60"], #IDX2 - [$amod_ididx, \&check_ididx, "18 60"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 60"]], #[IDX2] - "NEGX" => [[$amod_inh, \&check_inh, "18 40"]], #INH - "NEGY" => [[$amod_inh, \&check_inh, "18 50"]], #INH - "NOP" => [[$amod_inh, \&check_inh, "A7" ]], #INH - "ORAA" => [[$amod_imm8, \&check_imm8, "8A" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "9A" ], #DIR - [$amod_ext, \&check_ext, "BA" ], #EXT - [$amod_idx, \&check_idx, "AA" ], #IDX - [$amod_idx1, \&check_idx1, "AA" ], #IDX1 - [$amod_idx2, \&check_idx2, "AA" ], #IDX2 - [$amod_ididx, \&check_ididx, "AA" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "AA" ]], #[IDX2] - "ORAB" => [[$amod_imm8, \&check_imm8, "CA" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "DA" ], #DIR - [$amod_ext, \&check_ext, "FA" ], #EXT - [$amod_idx, \&check_idx, "EA" ], #IDX - [$amod_idx1, \&check_idx1, "EA" ], #IDX1 - [$amod_idx2, \&check_idx2, "EA" ], #IDX2 - [$amod_ididx, \&check_ididx, "EA" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "EA" ]], #[IDX2] - "ORX" => [[$amod_imm16, \&check_imm16, "18 8A"], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "18 9A"], #DIR - [$amod_ext, \&check_ext, "18 BA"], #EXT - [$amod_idx, \&check_idx, "18 AA"], #IDX - [$amod_idx1, \&check_idx1, "18 AA"], #IDX1 - [$amod_idx2, \&check_idx2, "18 AA"], #IDX2 - [$amod_ididx, \&check_ididx, "18 AA"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 AA"]], #[IDX2] - "ORY" => [[$amod_imm16, \&check_imm16, "18 CA"], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "18 DA"], #DIR - [$amod_ext, \&check_ext, "18 FA"], #EXT - [$amod_idx, \&check_idx, "18 EA"], #IDX - [$amod_idx1, \&check_idx1, "18 EA"], #IDX1 - [$amod_idx2, \&check_idx2, "18 EA"], #IDX2 - [$amod_ididx, \&check_ididx, "18 EA"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 EA"]], #[IDX2] - "ORCC" => [[$amod_imm8, \&check_imm8, "14" ]], #INH - "PSHA" => [[$amod_inh, \&check_inh, "36" ]], #INH - "PSHB" => [[$amod_inh, \&check_inh, "37" ]], #INH - "PSHC" => [[$amod_inh, \&check_inh, "39" ]], #INH - "PSHCW" => [[$amod_inh, \&check_inh, "18 39"]], #INH - "PSHD" => [[$amod_inh, \&check_inh, "3B" ]], #INH - "PSHX" => [[$amod_inh, \&check_inh, "34" ]], #INH - "PSHY" => [[$amod_inh, \&check_inh, "35" ]], #INH - "PULA" => [[$amod_inh, \&check_inh, "32" ]], #INH - "PULB" => [[$amod_inh, \&check_inh, "33" ]], #INH - "PULC" => [[$amod_inh, \&check_inh, "38" ]], #INH - "PULCW" => [[$amod_inh, \&check_inh, "18 38"]], #INH - "PULD" => [[$amod_inh, \&check_inh, "3A" ]], #INH - "PULX" => [[$amod_inh, \&check_inh, "30" ]], #INH - "PULY" => [[$amod_inh, \&check_inh, "31" ]], #INH - "REV" => [[$amod_inh, \&check_inh, "18 3A"]], #INH - "REVW" => [[$amod_inh, \&check_inh, "18 3B"]], #INH - "ROL" => [[$amod_ext, \&check_ext, "75" ], #EXT - [$amod_idx, \&check_idx, "65" ], #IDX - [$amod_idx1, \&check_idx1, "65" ], #IDX1 - [$amod_idx2, \&check_idx2, "65" ], #IDX2 - [$amod_ididx, \&check_ididx, "65" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "65" ]], #[IDX2] - "ROLA" => [[$amod_inh, \&check_inh, "45" ]], #INH - "ROLB" => [[$amod_inh, \&check_inh, "55" ]], #INH - "ROLW" => [[$amod_ext, \&check_ext, "18 75"], #EXT - [$amod_idx, \&check_idx, "18 65"], #IDX - [$amod_idx1, \&check_idx1, "18 65"], #IDX1 - [$amod_idx2, \&check_idx2, "18 65"], #IDX2 - [$amod_ididx, \&check_ididx, "18 65"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 65"]], #[IDX2] - "ROLX" => [[$amod_inh, \&check_inh, "18 45"]], #INH - "ROLY" => [[$amod_inh, \&check_inh, "18 55"]], #INH - "ROR" => [[$amod_ext, \&check_ext, "76" ], #EXT - [$amod_idx, \&check_idx, "66" ], #IDX - [$amod_idx1, \&check_idx1, "66" ], #IDX1 - [$amod_idx2, \&check_idx2, "66" ], #IDX2 - [$amod_ididx, \&check_ididx, "66" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "66" ]], #[IDX2] - "RORA" => [[$amod_inh, \&check_inh, "46" ]], #INH - "RORB" => [[$amod_inh, \&check_inh, "56" ]], #INH - "RORW" => [[$amod_ext, \&check_ext, "18 76"], #EXT - [$amod_idx, \&check_idx, "18 66"], #IDX - [$amod_idx1, \&check_idx1, "18 66"], #IDX1 - [$amod_idx2, \&check_idx2, "18 66"], #IDX2 - [$amod_ididx, \&check_ididx, "18 66"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 66"]], #[IDX2] - "RORX" => [[$amod_inh, \&check_inh, "18 46"]], #INH - "RORY" => [[$amod_inh, \&check_inh, "18 56"]], #INH - "RTC" => [[$amod_inh, \&check_inh, "0A" ]], #INH - "RTI" => [[$amod_inh, \&check_inh, "0B" ]], #INH - "RTS" => [[$amod_inh, \&check_inh, "3D" ]], #INH - "SBA" => [[$amod_inh, \&check_inh, "18 16"]], #INH - "SBCA" => [[$amod_imm8, \&check_imm8, "82" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "92" ], #DIR - [$amod_ext, \&check_ext, "B2" ], #EXT - [$amod_idx, \&check_idx, "A2" ], #IDX - [$amod_idx1, \&check_idx1, "A2" ], #IDX1 - [$amod_idx2, \&check_idx2, "A2" ], #IDX2 - [$amod_ididx, \&check_ididx, "A2" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "A2" ]], #[IDX2] - "SBCB" => [[$amod_imm8, \&check_imm8, "C2" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "D2" ], #DIR - [$amod_ext, \&check_ext, "F2" ], #EXT - [$amod_idx, \&check_idx, "E2" ], #IDX - [$amod_idx1, \&check_idx1, "E2" ], #IDX1 - [$amod_idx2, \&check_idx2, "E2" ], #IDX2 - [$amod_ididx, \&check_ididx, "E2" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "E2" ]], #[IDX2] - "SBED" => [[$amod_imm16, \&check_imm16, "18 83"], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "18 93"], #DIR - [$amod_ext, \&check_ext, "18 B3"], #EXT - [$amod_idx, \&check_idx, "18 A3"], #IDX - [$amod_idx1, \&check_idx1, "18 A3"], #IDX1 - [$amod_idx2, \&check_idx2, "18 A3"], #IDX2 - [$amod_ididx, \&check_ididx, "18 A3"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 A3"]], #[IDX2] - "SBEX" => [[$amod_imm16, \&check_imm16, "18 82"], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "18 92"], #DIR - [$amod_ext, \&check_ext, "18 B2"], #EXT - [$amod_idx, \&check_idx, "18 A2"], #IDX - [$amod_idx1, \&check_idx1, "18 A2"], #IDX1 - [$amod_idx2, \&check_idx2, "18 A2"], #IDX2 - [$amod_ididx, \&check_ididx, "18 A2"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 A2"]], #[IDX2] - "SBEY" => [[$amod_imm16, \&check_imm16, "18 C2"], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "18 D2"], #DIR - [$amod_ext, \&check_ext, "18 F2"], #EXT - [$amod_idx, \&check_idx, "18 E2"], #IDX - [$amod_idx1, \&check_idx1, "18 E2"], #IDX1 - [$amod_idx2, \&check_idx2, "18 E2"], #IDX2 - [$amod_ididx, \&check_ididx, "18 E2"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 E2"]], #[IDX2] - "SEC" => [[$amod_inh, \&check_inh, "14 01"]], #INH - "SEI" => [[$amod_inh, \&check_inh, "14 10"]], #INH - "SEV" => [[$amod_inh, \&check_inh, "14 02"]], #INH - "SEX" => [[$amod_s12x_tfr, \&check_s12x_sex, "B7" ]], #INH - "STAA" => [[$amod_s12x_dir, \&check_s12x_dir, "5A" ], #DIR - [$amod_ext, \&check_ext, "7A" ], #EXT - [$amod_idx, \&check_idx, "6A" ], #IDX - [$amod_idx1, \&check_idx1, "6A" ], #IDX1 - [$amod_idx2, \&check_idx2, "6A" ], #IDX2 - [$amod_ididx, \&check_ididx, "6A" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "6A" ]], #[IDX2] - "STAB" => [[$amod_s12x_dir, \&check_s12x_dir, "5B" ], #DIR - [$amod_ext, \&check_ext, "7B" ], #EXT - [$amod_idx, \&check_idx, "6B" ], #IDX - [$amod_idx1, \&check_idx1, "6B" ], #IDX1 - [$amod_idx2, \&check_idx2, "6B" ], #IDX2 - [$amod_ididx, \&check_ididx, "6B" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "6B" ]], #[IDX2] - "STD" => [[$amod_s12x_dir, \&check_s12x_dir, "5C" ], #DIR - [$amod_ext, \&check_ext, "7C" ], #EXT - [$amod_idx, \&check_idx, "6C" ], #IDX - [$amod_idx1, \&check_idx1, "6C" ], #IDX1 - [$amod_idx2, \&check_idx2, "6C" ], #IDX2 - [$amod_ididx, \&check_ididx, "6C" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "6C" ]], #[IDX2] - "STOP" => [[$amod_inh, \&check_inh, "18 3E"]], #INH - "STS" => [[$amod_s12x_dir, \&check_s12x_dir, "5F" ], #DIR - [$amod_ext, \&check_ext, "7F" ], #EXT - [$amod_idx, \&check_idx, "6F" ], #IDX - [$amod_idx1, \&check_idx1, "6F" ], #IDX1 - [$amod_idx2, \&check_idx2, "6F" ], #IDX2 - [$amod_ididx, \&check_ididx, "6F" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "6F" ]], #[IDX2] - "STX" => [[$amod_s12x_dir, \&check_s12x_dir, "5E" ], #DIR - [$amod_ext, \&check_ext, "7E" ], #EXT - [$amod_idx, \&check_idx, "6E" ], #IDX - [$amod_idx1, \&check_idx1, "6E" ], #IDX1 - [$amod_idx2, \&check_idx2, "6E" ], #IDX2 - [$amod_ididx, \&check_ididx, "6E" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "6E" ]], #[IDX2] - "STY" => [[$amod_s12x_dir, \&check_s12x_dir, "5D" ], #DIR - [$amod_ext, \&check_ext, "7D" ], #EXT - [$amod_idx, \&check_idx, "6D" ], #IDX - [$amod_idx1, \&check_idx1, "6D" ], #IDX1 - [$amod_idx2, \&check_idx2, "6D" ], #IDX2 - [$amod_ididx, \&check_ididx, "6D" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "6D" ]], #[IDX2] - "SUBA" => [[$amod_imm8, \&check_imm8, "80" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "90" ], #DIR - [$amod_ext, \&check_ext, "B0" ], #EXT - [$amod_idx, \&check_idx, "A0" ], #IDX - [$amod_idx1, \&check_idx1, "A0" ], #IDX1 - [$amod_idx2, \&check_idx2, "A0" ], #IDX2 - [$amod_ididx, \&check_ididx, "A0" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "A0" ]], #[IDX2] - "SUBB" => [[$amod_imm8, \&check_imm8, "C0" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "D0" ], #DIR - [$amod_ext, \&check_ext, "F0" ], #EXT - [$amod_idx, \&check_idx, "E0" ], #IDX - [$amod_idx1, \&check_idx1, "E0" ], #IDX1 - [$amod_idx2, \&check_idx2, "E0" ], #IDX2 - [$amod_ididx, \&check_ididx, "E0" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "E0" ]], #[IDX2] - "SUBD" => [[$amod_imm16, \&check_imm16, "83" ], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "93" ], #DIR - [$amod_ext, \&check_ext, "B3" ], #EXT - [$amod_idx, \&check_idx, "A3" ], #IDX - [$amod_idx1, \&check_idx1, "A3" ], #IDX1 - [$amod_idx2, \&check_idx2, "A3" ], #IDX2 - [$amod_ididx, \&check_ididx, "A3" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "A3" ]], #[IDX2] - "SUBX" => [[$amod_imm16, \&check_imm16, "18 80"], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "18 90"], #DIR - [$amod_ext, \&check_ext, "18 B0"], #EXT - [$amod_idx, \&check_idx, "18 A0"], #IDX - [$amod_idx1, \&check_idx1, "18 A0"], #IDX1 - [$amod_idx2, \&check_idx2, "18 A0"], #IDX2 - [$amod_ididx, \&check_ididx, "18 A0"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 A0"]], #[IDX2] - "SUBY" => [[$amod_imm16, \&check_imm16, "18 C0"], #IMM - [$amod_s12x_dir, \&check_s12x_dir, "18 D0"], #DIR - [$amod_ext, \&check_ext, "18 F0"], #EXT - [$amod_idx, \&check_idx, "18 E0"], #IDX - [$amod_idx1, \&check_idx1, "18 E0"], #IDX1 - [$amod_idx2, \&check_idx2, "18 E0"], #IDX2 - [$amod_ididx, \&check_ididx, "18 E0"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 E0"]], #[IDX2] - "SWI" => [[$amod_inh, \&check_inh, "3F" ]], #INH - "TAB" => [[$amod_inh, \&check_inh, "18 0E"]], #INH - "TAP" => [[$amod_inh, \&check_inh, "B7 02"]], #INH - "TBA" => [[$amod_inh, \&check_inh, "18 0F"]], #INH - "TBEQ" => [[$amod_tbeq, \&check_tbeq, "04" ]], #REL - "TBL" => [[$amod_idx, \&check_idx, "18 3D"]], #IDX - "TBNE" => [[$amod_tbne, \&check_tbne, "04" ]], #REL - "TFR" => [[$amod_s12x_tfr, \&check_s12x_tfr, "B7" ]], #INH - "TPA" => [[$amod_inh, \&check_inh, "B7 20"]], #INH - "TRAP" => [[$amod_s12x_trap, \&check_s12x_trap, "18" ]], #INH - "TST" => [[$amod_ext, \&check_ext, "F7" ], #EXT - [$amod_idx, \&check_idx, "E7" ], #IDX - [$amod_idx1, \&check_idx1, "E7" ], #IDX1 - [$amod_idx2, \&check_idx2, "E7" ], #IDX2 - [$amod_ididx, \&check_ididx, "E7" ], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "E7" ]], #[IDX2] - "TSTA" => [[$amod_inh, \&check_inh, "97" ]], #INH - "TSTB" => [[$amod_inh, \&check_inh, "D7" ]], #INH - "TSTW" => [[$amod_ext, \&check_ext, "18 F7"], #EXT - [$amod_idx, \&check_idx, "18 E7"], #IDX - [$amod_idx1, \&check_idx1, "18 E7"], #IDX1 - [$amod_idx2, \&check_idx2, "18 E7"], #IDX2 - [$amod_ididx, \&check_ididx, "18 E7"], #[D,IDX] - [$amod_iidx2, \&check_iidx2, "18 E7"]], #[IDX2] - "TSTX" => [[$amod_inh, \&check_inh, "18 97"]], #INH - "TSTY" => [[$amod_inh, \&check_inh, "18 D7"]], #INH - "TSX" => [[$amod_inh, \&check_inh, "B7 75"]], #INH - "TSY" => [[$amod_inh, \&check_inh, "B7 76"]], #INH - "TXS" => [[$amod_inh, \&check_inh, "B7 57"]], #INH - "TYS" => [[$amod_inh, \&check_inh, "B7 67"]], #INH - "WAI" => [[$amod_inh, \&check_inh, "3E" ]], #INH - "WAV" => [[$amod_inh, \&check_inh, "18 3C"]], #INH - "WAVR" => [[$amod_inh, \&check_inh, "3C" ]], #INH - "XGDX" => [[$amod_inh, \&check_inh, "B7 C5"]], #INH - "XGDY" => [[$amod_inh, \&check_inh, "B7 C6"]]};#INH - -#XGATE: MNEMONIC ADDRESS MODE OPCODE -*opctab_xgate = \{"ADC" => [[$amod_xgate_tri, \&check_xgate_tri, "18 03"]], #TRI - "ADD" => [[$amod_xgate_tri, \&check_xgate_tri, "18 02"], #TRI - [$amod_xgate_imm16, \&check_xgate_imm16, "E0 00 E8 00"]], #IMM16 pseudo opcode - "ADDH" => [[$amod_xgate_imm8, \&check_xgate_imm8, "E8 00"]], #IMM8 - "ADDL" => [[$amod_xgate_imm8, \&check_xgate_imm8, "E0 00"]], #IMM8 - "AND" => [[$amod_xgate_tri, \&check_xgate_tri, "10 00"], #TRI - [$amod_xgate_imm16, \&check_xgate_imm16, "80 00 88 00"]], #IMM16 pseudo opcode - "ANDH" => [[$amod_xgate_imm8, \&check_xgate_imm8, "88 00"]], #IMM8 - "ANDL" => [[$amod_xgate_imm8, \&check_xgate_imm8, "80 00"]], #IMM8 - "ASR" => [[$amod_xgate_imm4, \&check_xgate_imm4, "08 09"], #IMM4 - [$amod_xgate_dya, \&check_xgate_dya, "08 11"]], #DYA - "BCC" => [[$amod_xgate_rel9, \&check_xgate_rel9, "20 00"]], #REL9 - "BCS" => [[$amod_xgate_rel9, \&check_xgate_rel9, "22 00"]], #REL9 - "BEQ" => [[$amod_xgate_rel9, \&check_xgate_rel9, "26 00"]], #REL9 - "BFEXT" => [[$amod_xgate_tri, \&check_xgate_tri, "60 03"]], #TRI - "BFFO" => [[$amod_xgate_dya, \&check_xgate_dya, "08 10"]], #DYA - "BFINS" => [[$amod_xgate_tri, \&check_xgate_tri, "68 03"]], #TRI - "BFINSI" => [[$amod_xgate_tri, \&check_xgate_tri, "70 03"]], #TRI - "BFINSX" => [[$amod_xgate_tri, \&check_xgate_tri, "78 03"]], #TRI - "BGE" => [[$amod_xgate_rel9, \&check_xgate_rel9, "34 00"]], #REL9 - "BGT" => [[$amod_xgate_rel9, \&check_xgate_rel9, "38 00"]], #REL9 - "BHI" => [[$amod_xgate_rel9, \&check_xgate_rel9, "30 00"]], #REL9 - "BHS" => [[$amod_xgate_rel9, \&check_xgate_rel9, "20 00"]], #REL9 pseudo opcode - "BITH" => [[$amod_xgate_imm8, \&check_xgate_imm8, "98 00"]], #IMM8 - "BITL" => [[$amod_xgate_imm8, \&check_xgate_imm8, "90 00"]], #IMM8 - "BLE" => [[$amod_xgate_rel9, \&check_xgate_rel9, "3A 00"]], #REL9 - "BLO" => [[$amod_xgate_rel9, \&check_xgate_rel9, "22 00"]], #REL9 pseudo opcode - "BLS" => [[$amod_xgate_rel9, \&check_xgate_rel9, "32 00"]], #REL9 - "BLT" => [[$amod_xgate_rel9, \&check_xgate_rel9, "36 00"]], #REL9 - "BMI" => [[$amod_xgate_rel9, \&check_xgate_rel9, "2A 00"]], #REL9 - "BNE" => [[$amod_xgate_rel9, \&check_xgate_rel9, "24 00"]], #REL9 - "BPL" => [[$amod_xgate_rel9, \&check_xgate_rel9, "28 00"]], #REL9 - "BRA" => [[$amod_xgate_rel10, \&check_xgate_rel10, "3C 00"]], #REL10 - "BRK" => [[$amod_inh, \&check_inh, "00 00"]], #INH - "BVC" => [[$amod_xgate_rel9, \&check_xgate_rel9, "2C 00"]], #REL9 - "BVS" => [[$amod_xgate_rel9, \&check_xgate_rel9, "2E 00"]], #REL9 - "COM" => [[$amod_xgate_mon, \&check_xgate_com_mon, "10 03"], #TRI pseudo opcode - [$amod_xgate_dya, \&check_xgate_com_dya, "10 03"]], #TRI pseudo opcode - "CMP" => [[$amod_xgate_dya, \&check_xgate_cmp_dya, "18 00"], #TRI pseudo opcode - [$amod_xgate_imm16, \&check_xgate_imm16, "D0 00 D8 00"]], #IMM16 pseudo opcode - "CMPL" => [[$amod_xgate_imm8, \&check_xgate_imm8, "D0 00"]], #IMM8 - "CPC" => [[$amod_xgate_dya, \&check_xgate_cmp_dya, "18 01"]], #TRI pseudo opcode - "CPCH" => [[$amod_xgate_imm8, \&check_xgate_imm8, "D8 00"]], #IMM8 - "CSEM" => [[$amod_xgate_mon, \&check_xgate_mon, "00 F1"], #MON - [$amod_xgate_imm3, \&check_xgate_imm3, "00 F0"]], #IMM3 - "CSL" => [[$amod_xgate_imm4, \&check_xgate_imm4, "08 0A"], #IMM4 - [$amod_xgate_dya, \&check_xgate_dya, "08 12"]], #DYA - "CSR" => [[$amod_xgate_imm4, \&check_xgate_imm4, "08 0B"], #IMM4 - [$amod_xgate_dya, \&check_xgate_dya, "08 13"]], #DYA - "JAL" => [[$amod_xgate_mon, \&check_xgate_mon, "00 F6"]], #MON - "LDB" => [[$amod_xgate_ido5, \&check_xgate_ido5, "40 00"], #IDO5 - [$amod_xgate_idr, \&check_xgate_idr, "60 00"], #IDR - [$amod_xgate_idri, \&check_xgate_idri, "60 01"], #IDR+ - [$amod_xgate_idrd, \&check_xgate_idrd, "60 02"]], #-IDR - "LDH" => [[$amod_xgate_imm8, \&check_xgate_imm8, "F8 00"]], #IMM8 - "LDL" => [[$amod_xgate_imm8, \&check_xgate_imm8, "F0 00"]], #IMM8 - "LDW" => [[$amod_xgate_ido5, \&check_xgate_ido5, "48 00"], #IDO5 - [$amod_xgate_idr, \&check_xgate_idr, "68 00"], #IDR - [$amod_xgate_idri, \&check_xgate_idri, "68 01"], #IDR+ - [$amod_xgate_idrd, \&check_xgate_idrd, "68 02"], #-IDR - [$amod_xgate_imm16, \&check_xgate_imm16, "F0 00 F8 00"]], #IMM16 pseudo opcode - "LSL" => [[$amod_xgate_imm4, \&check_xgate_imm4, "08 0C"], #IMM4 - [$amod_xgate_dya, \&check_xgate_dya, "08 14"]], #DYA - "LSR" => [[$amod_xgate_imm4, \&check_xgate_imm4, "08 0D"], #IMM4 - [$amod_xgate_dya, \&check_xgate_dya, "08 15"]], #DYA - "MOV" => [[$amod_xgate_dya, \&check_xgate_com_dya, "10 02"]], #TRI pseudo opcode - "NEG" => [[$amod_xgate_mon, \&check_xgate_com_mon, "18 00"], #TRI pseudo opcode - [$amod_xgate_dya, \&check_xgate_com_dya, "18 00"]], #TRI pseudo opcode - "NOP" => [[$amod_inh, \&check_inh, "01 00"]], #INH - "OR" => [[$amod_xgate_tri, \&check_xgate_tri, "10 02"], #TRI - [$amod_xgate_imm16, \&check_xgate_imm16, "A0 00 A8 00"]], #IMM16 pseudo opcode - "ORH" => [[$amod_xgate_imm8, \&check_xgate_imm8, "A8 00"]], #IMM8 - "ORL" => [[$amod_xgate_imm8, \&check_xgate_imm8, "A0 00"]], #IMM8 - "PAR" => [[$amod_xgate_mon, \&check_xgate_mon, "00 F5"]], #MON - "ROL" => [[$amod_xgate_imm4, \&check_xgate_imm4, "08 0E"], #IMM4 - [$amod_xgate_dya, \&check_xgate_dya, "08 16"]], #DYA - "ROR" => [[$amod_xgate_imm4, \&check_xgate_imm4, "08 0F"], #IMM4 - [$amod_xgate_dya, \&check_xgate_dya, "08 17"]], #DYA - "RTS" => [[$amod_inh, \&check_inh, "02 00"]], #INH - "SBC" => [[$amod_xgate_tri, \&check_xgate_tri, "18 01"]], #TRI - "SEX" => [[$amod_xgate_mon, \&check_xgate_mon, "00 F4"]], #MON - "SIF" => [[$amod_inh, \&check_inh, "03 00"], #INH - [$amod_xgate_mon, \&check_xgate_mon, "00 F7"]], #MON - "SSEM" => [[$amod_xgate_mon, \&check_xgate_mon, "00 f3"], #MON - [$amod_xgate_imm3, \&check_xgate_imm3, "00 F2"]], #IMM3 - "STB" => [[$amod_xgate_ido5, \&check_xgate_ido5, "50 00"], #IDO5 - [$amod_xgate_idr, \&check_xgate_idr, "70 00"], #IDR - [$amod_xgate_idri, \&check_xgate_idri, "70 01"], #IDR+ - [$amod_xgate_idrd, \&check_xgate_idrd, "70 02"]], #-IDR - "STW" => [[$amod_xgate_ido5, \&check_xgate_ido5, "58 00"], #IDO5 - [$amod_xgate_idr, \&check_xgate_idr, "78 00"], #IDR - [$amod_xgate_idri, \&check_xgate_idri, "78 01"], #IDR+ - [$amod_xgate_idrd, \&check_xgate_idrd, "78 02"]], #-IDR - "SUB" => [[$amod_xgate_tri, \&check_xgate_tri, "18 00"], #TRI - [$amod_xgate_imm16, \&check_xgate_imm16, "C0 00 C8 00"]], #IMM16 opcode - "SUBH" => [[$amod_xgate_imm8, \&check_xgate_imm8, "C8 00"]], #IMM8 - "SUBL" => [[$amod_xgate_imm8, \&check_xgate_imm8, "C0 00"]], #IMM8 - "TST" => [[$amod_xgate_mon, \&check_xgate_tst_mon, "18 00"]], #TRI pseudo opcode - "TFR" => [[$amod_xgate_tfr_rd_ccr, \&check_xgate_tfr_rd_ccr, "00 F8"], #MON - [$amod_xgate_tfr_ccr_rs, \&check_xgate_tfr_ccr_rs, "00 F9"], #MON - [$amod_xgate_tfr_rd_pc, \&check_xgate_tfr_rd_pc, "00 FA"]], #MON - "XNOR" => [[$amod_xgate_tri, \&check_xgate_tri, "10 03"], #TRI - [$amod_xgate_imm16, \&check_xgate_imm16, "B0 00 B8 00"]], #IMM16 opcode - "XNORH" => [[$amod_xgate_imm8, \&check_xgate_imm8, "B8 00"]], #IMM8 - "XNORL" => [[$amod_xgate_imm8, \&check_xgate_imm8, "B0 00"]]}; #IMM8 - -################## -# pseudo opcodes # -################## -# MNEMONIC SUBROUTINE -*pseudo_opcodes = \{"ALIGN" => \&psop_align, - "BSZ" => \&psop_zmb, - "CPU" => \&psop_cpu, - "DB" => \&psop_db, - "DC.B" => \&psop_db, - "DC.W" => \&psop_dw, - "DS" => \&psop_dsb, - "DS.B" => \&psop_dsb, - "DS.W" => \&psop_dsw, - "DW" => \&psop_dw, - "EQU" => \&psop_equ, - "FCB" => \&psop_db, - "FCC" => \&psop_fcc, - "FDB" => \&psop_dw, - "FILL" => \&psop_fill, - "LOC" => \&psop_loc, - "ORG" => \&psop_org, - "RMB" => \&psop_dsb, - "RMW" => \&psop_dsw, - "UNALIGN" => \&psop_unalign, - "ZMB" => \&psop_zmb, - #pseudo opcodes to ignore - "NAME" => \&psop_ignore, - "TTL" => \&psop_ignore, - "VER" => \&psop_ignore, - "VERSION" => \&psop_ignore, - "PAG" => \&psop_ignore, - "FUN" => \&psop_ignore, - "FUNA" => \&psop_ignore, - "END" => \&psop_ignore}; - -############### -# constructor # -############### -sub new { - my $proto = shift @_; - my $class = ref($proto) || $proto; - my $file_list = shift @_; - my $library_list = shift @_; - my $defines = shift @_; - my $cpu = shift @_; - my $verbose = shift @_; - my $self = {}; - - #initalize global variables - $self->{source_files} = $file_list; - $self->{libraries} = $library_list; - $self->{initial_defs} = $defines; - $self->{precomp_defs} = $defines; - $self->{cpu} = $cpu; - $self->{verbose} = $verbose; - - #reset remaining global variables - $self->{problems} = "no code"; - $self->{code} = []; - $self->{comp_symbols} = {}; - $self->{lin_addrspace} = {}; - $self->{pag_addrspace} = {}; - $self->{compile_count} = 0; - $self->{opcode_table} = $opctab_s12; - $self->{dir_page} = 0; - - #instantiate object - bless $self, $class; - #printf STDERR "libs: %s\n", join(", ", @$library_list); - - #compile code - $self->compile($file_list, $library_list); - - return $self; -} - -############## -# destructor # -############## -#sub DESTROY { -# my $self = shift @_; -#} - -########## -# reload # -########## -sub reload { - my $self = shift @_; - my $verbose = shift @_; - - #reset global variables - $self->{problems} = "no code"; - $self->{code} = []; - $self->{precomp_defs} = %{$self->{initial_defs}}; - $self->{comp_symbols} = {}; - $self->{lin_addrspace} = {}; - $self->{pag_addrspace} = {}; - $self->{compile_count} = 0; - if (defined $verbose) { - $self->{verbose} = $verbose; - } - - #compile code - $self->compile($self->{source_files}, $self->{libraries}); -} - -########### -# compile # -########### -sub compile { - my $self = shift @_; - my $file_list = shift @_; - my $library_list = shift @_; - #compile staus - my $old_undef_count; - my $new_undef_count; - my $redef_count; - my $error_count; - my $compile_count; - my $keep_compiling; - my $result_ok; - #compiler runs - my $max_comp_runs = 45; - - ############## - # precompile # - ############## - if (!$self->precompile($file_list, $library_list, [[1,1,1]])) { - #printf "precompiler symbols: %s\n", join("\n ", keys %{$self->{comp_symbols}}); - #$self->{problems} = "precompiler"; - - ################################################## - # export precompiler defines to compiler symbols # - ################################################## - $self->export_precomp_defs(); - - ########### - # compile # - ########### - $self->{compile_count} = 0; - $old_undef_count = $#{$self->{code}}; - $redef_count = 0; - $keep_compiling = 1; - $result_ok = 1; - - - #print progress messages - if ($self->{verbose}) { - print STDOUT "\n"; - print STDOUT "COMPILE RUN UNDEFINED SYMBOLS REDEFINED SYMBOLS\n"; - print STDOUT "=========== ================= =================\n"; - } - - while ($keep_compiling) { - $self->{compile_count} = ($self->{compile_count} + 1); - #compile run - ($error_count, $new_undef_count, $redef_count) = @{$self->compile_run()}; - #print progress messages - if ($self->{verbose}) { - printf STDOUT "%8d %17d %17d\n", $self->{compile_count}, $new_undef_count, $redef_count; - } - #printf STDERR "compile run: %d\n", $self->{compile_count}; - #printf STDERR "errors: %d\n", $error_count; - #printf STDERR "old undefs: %d\n", $old_undef_count; - #printf STDERR "new undefs: %d\n", $new_undef_count; - #printf STDERR "redefs: %d\n", $redef_count; - #printf STDERR "symbols: \"%s\"\n", join("\", \"", keys %{$self->{comp_symbols}});; - - ################# - # check results # - ################# - if ($error_count > 0) { - ################### - # compiler errors # - ################### - $keep_compiling = 0; - $result_ok = 0; - if ($error_count == 1) { - $self->{problems} = "1 compiler error!"; - } else { - $self->{problems} = sprintf("%d compiler errors!", $error_count); - } - } elsif ($self->{compile_count} >= $max_comp_runs) { - ########################## - # too many compiler runs # - ########################## - $keep_compiling = 0; - $result_ok = 0; - $self->{problems} = sprintf("%d assembler runs and no success!", $max_comp_runs); - #} elsif (($new_undef_count > 0) && - # ($new_undef_count >= $old_undef_count)) { - # ###################### - # # unresolved opcodes # - # ###################### - # $keep_compiling = 0; - # $result_ok = 0; - # $self->{problems} = sprintf("%d undefined opcodes!", $new_undef_count); - } elsif (($new_undef_count == 0) && - ($redef_count == 0)) { - ########################## - # compilation successful # - ########################## - $keep_compiling = 0; - $result_ok = 1; - $self->{problems} = 0; - } - ########################## - # update old undef count # - ########################## - $old_undef_count = $new_undef_count; - } - - ##################################### - # see if compilation was successful # - ##################################### - if ($result_ok) { - ############################ - # determine address spaces # - ############################ - $self->determine_addrspaces(); - } - } else { - $self->{problems} = "precompiler error"; - } - #print "error_count = $error_count\n"; - #print "undef_count = $new_undef_count\n"; - #print "compile_count = $self->{compile_count}\n"; - -} - -############## -# precompile # -############## -sub precompile { - my $self = shift @_; - my $file_list = shift @_; - my $library_list = shift @_; - my $ifdef_stack = shift @_; - - #file - my $file_handle; - my $file_name; - my $library_path; - my $file; - #errors - my $error; - my $error_count; - #line - my $line; - my $line_count; - my $label; - my $opcode; - my $arguments; - my $directive; - my $arg1; - my $arg2; - #source code - my @srccode_sequence; - #temporary - my $match; - my $value; - - ############# - # file loop # - ############# - foreach $file_name (@$file_list) { - ############################ - # determine full file name # - ############################ - #printf "file_name: %s\n", $file_name; - $error = 0; - if ($file_name =~ /$path_absolute/) { - #asolute path - $file = $file_name; - if (-e $file) { - if (-r $file) { - if ($file_handle = IO::File->new($file, O_RDONLY)) { - } else { - $error = sprintf("unable to open file \"%s\" (%s)", $file, $!); - #print "$error\n"; - } - } else { - $error = sprintf("file \"%s\" is not readable", $file); - #print "$error\n"; - } - } else { - $error = sprintf("file \"%s\" does not exist", $file); - #print "$error\n"; - } - } else { - #library path - $match = 0; - ################ - # library loop # - ################ - foreach $library_path (@$library_list) { - if (!$match && !$error) { - $file = sprintf("%s%s", $library_path, $file_name); - #printf STDERR "file: \"%s\"\n", $file; - if (-e $file) { - $match = 1; - if (-r $file) { - if ($file_handle = IO::File->new($file, O_RDONLY)) { - } else { - $error = sprintf("unable to open file \"%s\" (%s)", $file, $!); - #print "$error\n"; - } - } else { - $error = sprintf("file \"%s\" is not readable", $file); - #print "$error\n"; - } - } - } - } - if (!$match) { - $file = $file_name; - $error = sprintf("file \"%s\" does not exist in any library path", $file); - #print "$error\n"; - } - } - ################# - # quit on error # - ################# - if ($error) { - #store error message - push @{$self->{code}}, [undef, #line count - \$file, #file name - [], #code sequence - "", #label - "", #opcode - "", #arguments - undef, #linear pc - undef, #paged pc - undef, #hex code - undef, #bytes - [$error]]; #errors - return 1; - } - - - #reset variables - $error = 0; - $error_count = 0; - $line_count = 0; - @srccode_sequence = (); - ############# - # line loop # - ############# - while ($line = <$file_handle>) { - #trim line - chomp $line; - $line =~ s/\s*$//; - - #untabify line - #print STDERR "before: $line\n"; - $Text::Tabs::tabstop = 8; - $line = Text::Tabs::expand($line); - #print STDERR "after: $line\n"; - - #increment line count - $line_count++; - - #printf "ifds: %d %d %d %d\n", ($#$ifdef_stack, - # $ifdef_stack->[$#$ifdef_stack]->[0], - # $ifdef_stack->[$#$ifdef_stack]->[1], - # $ifdef_stack->[$#$ifdef_stack]->[2]); - #printf "line: %s\n", $line; - ############## - # parse line # - ############## - for ($line) { - ################ - # comment line # - ################ - /$precomp_comment_line/ && do { - #print " => is comment\n"; - #check ifdef stack - if ($ifdef_stack->[$#$ifdef_stack]->[0]){ - #store comment line - push @srccode_sequence, $line; - } - last;}; - ########## - # opcode # - ########## - /$precomp_opcode/ && do { - #print " => is opcode\n"; - #line =~ $precomp_opcode - $label = $1; - $opcode = $2; - $arguments = $3; - $label =~ s/^\s*//; - $label =~ s/\s*$//; - $opcode =~ s/^\s*//; - $opcode =~ s/\s*$//; - $arguments =~ s/^\s*//; - $arguments =~ s/\s*$//; - - #printf " ===> \"%s\" \"%s\" \"%s\"\n", $label, $opcode, $arguments; - #check ifdef stack - if ($ifdef_stack->[$#$ifdef_stack]->[0]){ - #store source code line - push @srccode_sequence, $line; - push @{$self->{code}}, [$line_count, #line count - \$file, #file name - [@srccode_sequence], #code sequence - $label, #label - $opcode, #opcode - $arguments, #arguments - undef, #linear pc - undef, #paged pc - undef, #hex code - undef, #bytes - 0]; #errors - #reset code buffer - @srccode_sequence = (); - - #add label to precompiler defines (makes HSW12 behave a little more like AS12) - if ($label =~ /\S/) { - $self->{precomp_defs}->{uc($label)} = ""; - } - } - last;}; - ############## - # blanc line # - ############## - /$precomp_blanc_line/ && do { - #print " => is blanc line\n"; - #check ifdef stack - if ($ifdef_stack->[$#$ifdef_stack]->[0]){ - #store comment line - #push @srccode_sequence, ""; - } - last;}; - ######################### - # precompiler directive # - ######################### - /$precomp_directive/ && do { - #print " => is precompiler directive\n"; - #line =~ $precomp_directive - my $directive = $1; - my $arg1 = $2; - my $arg2 = $3; - #printf "\"%s\" \"%s\" \"%s\"\n", $directive, $arg1, $arg2; - - for ($directive) { - ########## - # define # - ########## - /$precomp_define/ && do { - #print " => define\n"; - #print " $arg1 $arg2\n"; - #check ifdef stack - if ($ifdef_stack->[$#$ifdef_stack]->[0]){ - #store precompiler define - $self->{precomp_defs}->{uc($arg1)} = uc($arg2); - #printf " ==> %s\n", $self->{precomp_defs}->{uc($arg1)}; - } - last;}; - ######### - # undef # - ######### - /$precomp_undef/ && do { - #print " => undef\n"; - #check ifdef stack - if ($ifdef_stack->[$#$ifdef_stack]->[0]){ - if (exists $self->{precomp_defs}->{uc($arg1)}) { - delete $self->{precomp_defs}->{uc($arg1)}; - } - } - last;}; - ######### - # ifdef # - ######### - /$precomp_ifdef/ && do { - #print " => ifdef\n"; - #check ifdef stack - if ($ifdef_stack->[$#$ifdef_stack]->[0]){ - if (exists $self->{precomp_defs}->{uc($arg1)}) { - push @$ifdef_stack, [1, 0, 1]; - } else { - push @$ifdef_stack, [0, 0, 1]; - } - } else { - push @$ifdef_stack, [0, 0, 0]; - } - last;}; - ########## - # ifndef # - ########## - /$precomp_ifndef/ && do { - #print " => ifndef\n"; - #printf " => %s\n", join(", ", keys %{$self->{precomp_defs}}); - #check ifdef stack - if ($ifdef_stack->[$#$ifdef_stack]->[0]){ - if (! exists $self->{precomp_defs}->{uc($arg1)}) { - push @$ifdef_stack, [1, 0, 1]; - } else { - push @$ifdef_stack, [0, 0, 1]; - } - } else { - push @$ifdef_stack, [0, 0, 0]; - } - last;}; - ######## - # else # - ######## - /$precomp_else/ && do { - #print " => else\n"; - #check ifdef stack - if ($ifdef_stack->[$#$ifdef_stack]->[1]){ - #unexpected "else" - $error = "unexpected \"#else\" directive"; - #print " => ERROR! $error\n"; - #store source code line - push @srccode_sequence, $line; - #store error message - push @{$self->{code}}, [$line_count, #line count - \$file, #file name - [@srccode_sequence], #code sequence - "", #label - "", #opcode - "", #arguments - undef, #linear pc - undef, #paged pc - undef, #hex code - undef, #bytes - [$error]]; #errors - $file_handle->close(); - return ++$error_count; - } else { - if ($ifdef_stack->[$#$ifdef_stack]->[2]){ - #set else-flag - $ifdef_stack->[$#$ifdef_stack]->[1] = 1; - #invert ifdef-flag - $ifdef_stack->[$#$ifdef_stack]->[0] = (! $ifdef_stack->[$#$ifdef_stack]->[0]); - } - } - last;}; - ######### - # endif # - ######### - /$precomp_endif/ && do { - #print " => endif\n"; - #check ifdef stack - if ($#$ifdef_stack <= 0){ - #unexpected "else" - $error = "unexpected \"#endif\" directive"; - #print " => ERROR! $error\n"; - #store source code line - push @srccode_sequence, $line; - #store error message - push @{$self->{code}}, [$line_count, #line count - \$file, #file name - [@srccode_sequence], #code sequence - "", #label - "", #opcode - "", #arguments - undef, #linear pc - undef, #paged pc - undef, #hex code - undef, #bytes - [$error]]; #errors - $file_handle->close(); - return ++$error_count; - } else { - pop @$ifdef_stack; - } - last;}; - ########### - # include # - ########### - /$precomp_include/ && do { - #print " => include $arg1\n"; - #check ifdef stack - if ($ifdef_stack->[$#$ifdef_stack]->[0]) { - #precompile include file - $value = $self->precompile([$arg1], $library_list, $ifdef_stack); - if ($value) { - $file_handle->close(); - return ($value + $error_count); - } - } - last;}; - ################################# - # invalid precompiler directive # - ################################# - // && do { - #print " => invalid precompiler directive\n"; - #check ifdef stack - if ($ifdef_stack->[$#$ifdef_stack]->[0]){ - #unexpected "else" - $error = "invalid precompiler directive"; - #store source code line - push @srccode_sequence, $line; - #store error message - push @{$self->{code}}, [$line_count, #line count - \$file, #file name - [@srccode_sequence], #code sequence - "", #label - "", #opcode - "", #arguments - undef, #linear pc - undef, #paged pc - undef, #hex code - undef, #bytes - [$error]]; #errors - $error_count++; - @srccode_sequence = (); - } - last;}; - } - last;}; - ################## - # invalid syntax # - ################## - // && do { - #print " => invalid syntax\n"; - #check ifdef stack - if ($ifdef_stack->[$#$ifdef_stack]->[0]){ - #unexpected "else" - $error = "invalid syntax"; - #store source code line - push @srccode_sequence, $line; - #store error message - push @{$self->{code}}, [$line_count, #line count - \$file, #file name - [@srccode_sequence], #code sequence - "", #label - "", #opcode - "", #arguments - undef, #linear pc - undef, #paged pc - undef, #hex code - undef, #bytes - [$error]]; #errors - $error_count++; - @srccode_sequence = (); - } - last;}; - } - } - } - $file_handle->close(); - return $error_count; -} - -####################### -# export_precomp_defs # -####################### -sub export_precomp_defs { - my $self = shift @_; - my $key; - my $string; - my $error; - my $value; - - ########################### - # precompiler define loop # - ########################### - foreach $key (keys %{$self->{precomp_defs}}) { - $string = $self->{precomp_defs}->{uc($key)}; - #default value - if (!defined $string) { - #$string = "1"; - $string = undef; - } elsif ($string =~ /^\s*$/) { - #$string = "1"; - $string = undef; - } - - #check if symbol already exists - if (! exists $self->{comp_symbols}->{uc($key)}) { - - if (!defined $string) { - $error = 0; - $value = undef; - } else { - ($error, $value) = @{$self->evaluate_expression($string, undef, undef, undef)}; - } - #export define - $self->{comp_symbols}->{uc($key)} = $value; - #printf "\"%s\" \"%s\" \"%s\"\n", $key, $string, $value; - } - } -} - -############### -# compile_run # -############### -sub compile_run { - my $self = shift @_; - - #code - my $code_entry; - my $code_label; - my $code_opcode; - my $code_args; - my $code_pc_lin; - my $code_pc_pag; - my $code_hex; - my $code_byte_cnt; - #opcode - my $opcode_entries; - my $opcode_entry; - my $opcode_amode_expr; - my $opcode_amode_check; - my $opcode_amode_opcode; - #label - my %labels; - my $label_value; - my $label_ok; - #program counters - my $pc_lin; - my $pc_pag; - #loc count - my $loc_cnt; - #problem counters - my $error_count; - my $undef_count; - my $redef_count; - #temporary - my $result; - my $error; - my $match; - - ####################### - # initialize counters # - ####################### - $pc_lin = undef; - $pc_pag = undef; - $loc_cnt = 0; - $error_count = 0; - $undef_count = 0; - $redef_count = 0; - - ##################### - # reset labels hash # - ##################### - %labels = (); - - ##################### - # reset direct page # - ##################### - $self->{dir_page} = 0; - - ############# - # code loop # - ############# - #print "compile_run:\n"; - foreach $code_entry (@{$self->{code}}) { - $code_label = $code_entry->[3]; - $code_opcode = $code_entry->[4]; - $code_args = $code_entry->[5]; - $code_pc_lin = $code_entry->[6]; - $code_pc_pag = $code_entry->[7]; - $code_hex = $code_entry->[8]; - $code_byte_cnt = $code_entry->[9]; - - #print STDERR "error_count = $error_count\n"; - #print STDERR "undef_count = $undef_count\n"; - #printf STDERR "%-8s %-8s %s\n", $code_label, $code_opcode, $code_args; - - ######################## - # set program counters # - ######################## - if (defined $pc_lin) { - $code_entry->[6] = $pc_lin; - } - if (defined $pc_pag) { - $code_entry->[7] = $pc_pag; - } - - ################### - # set label_value # - ################### - $label_value = $pc_pag; - - ##################### - # determine hexcode # - ##################### - if (exists $self->{opcode_table}->{uc($code_opcode)}) { - ################ - # valid opcode # - ################ - $opcode_entries = $self->{opcode_table}->{uc($code_opcode)}; - $match = 0; - $error = 0; - $result = 0; - foreach $opcode_entry (@$opcode_entries) { - if (!$match && !$error) { - $opcode_amode_expr = $opcode_entry->[0]; - $opcode_amode_check = $opcode_entry->[1]; - $opcode_amode_opcode = $opcode_entry->[2]; - #check address mode - #printf STDERR "valid opcode: %s %s (%s)\n", $code_opcode, $code_args, $opcode_amode_opcode; - if ($code_args =~ $opcode_amode_expr) { - $error = 0; - $result = 0; - #printf STDERR "valid arg format: %s \"%s\" (%s)\n", $code_opcode, $1, $opcode_amode_opcode; - if (&{$opcode_amode_check}($self, - [$1,$2,$3,$4,$5,$6,$7,$8], - $pc_lin, $pc_pag, $loc_cnt, - \$opcode_entry->[2], - \$error, - \$result)) { - #printf STDERR "valid args: %s (%s)\n", $code_opcode, $opcode_amode_opcode; - $match = 1; - if ($error) { - #syntax error - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $error_count++; - #printf STDERR "ERROR: %s %s %s\n", $code_opcode, $opcode_amode_opcode, $opcode_amode_expr; - } elsif ($result) { - #opcode found - $code_entry->[8] = $result; - $code_entry->[9] = split " ", $result; - if (defined $pc_lin) { - #increment linear PC - $pc_lin = $pc_lin + $code_entry->[9]; - } - if (defined $pc_pag) { - ####################################### - # check if a 16k boundary is chrossed # - ####################################### - if (($pc_pag >> 14) != - (($pc_pag + $code_entry->[9]) >> 14)) { - $error = sprintf("16k boundary crossed: %.6X -> %.6X", ($pc_pag, - ($pc_pag + $code_entry->[9]))); - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $error_count++; - $pc_lin = undef; - } - #increment paged PC - $pc_pag = $pc_pag + $code_entry->[9]; - if ($result =~ $cmp_no_hexcode) { - $undef_count++; - #print "$opcode_hexargs\n"; - } - } else { - # undefined PC - $undef_count++; - } - } else { - #opcode undefined - #$pc_lin = undef; #Better results if program counter keep an approximate value - #$pc_pag = undef; - $undef_count++; - #printf STDERR "OPCODE UNDEFINED\n"; - } - } - }#else {printf STDERR "MISMATCH: \"%s\" \"%s\"\n", $code_args, $opcode_amode_expr;} - } - } - if (!$match) { - if (!$error) { - $error = sprintf("invalid address mode for opcode \"%s\" (%s)", (uc($code_opcode), - $code_args)); - } - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $error_count++; - } - } elsif (exists $pseudo_opcodes->{uc($code_opcode)}) { - ####################### - # valid pseudo opcode # - ####################### - #print "valid pseudo opcode: $code_opcode ($code_entry->[0])\n"; - $pseudo_opcodes->{uc($code_opcode)}($self, - \$pc_lin, - \$pc_pag, - \$loc_cnt, - \$error_count, - \$undef_count, - \$label_value, - $code_entry); - - } elsif ($code_opcode =~ /^\s*$/) { - ############### - # plain label # - ############### - $code_entry->[8] = ""; - } else { - ################## - # invalid opcode # - ################## - $error = sprintf("invalid opcode \"%s\"", $code_opcode); - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $error_count++; - $pc_lin = undef; - $pc_pag = undef; - #print "$error\n"; - } - - ############# - # set label # - ############# - if ($code_label =~ /\S/) { - - #use upper case symbol names - $code_label = uc($code_label); - #substitute LOC count - if ($code_label =~ /^\s*(.+)\`\s*$/) { - $code_label = uc(sprintf("%s%.4d", $1, $loc_cnt)); - } - - ################################# - # check for label redefinitions # - ################################# - $label_ok = 1; - if (exists $labels{uc($code_label)}) { - if (defined $labels{uc($code_label)}) { - if (defined $label_value) { - if ($labels{uc($code_label)} != $label_value) { - $error = sprintf("illegal redefinition of symbol \"%s\" (\$%X -> \$%X)", (uc($code_label), - $self->{comp_symbols}->{$code_label}, - $label_value)); - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $error_count++; - $label_ok = 0; - } - } - } - } else { - $labels{uc($code_label)} = $label_value; - } - - if ($label_ok == 1) { - ############### - # check label # - ############### - if (exists $self->{comp_symbols}->{$code_label}) { - if (defined $self->{comp_symbols}->{$code_label}) { - if (defined $label_value) { - if ($self->{comp_symbols}->{$code_label} != $label_value) { - ###################### - # label redefinition # - ###################### - #if ($self->{compile_count} >= 20) { - # printf STDERR "REDEF: %s %s %s (%s %s)\n", ($code_label, - # $self->{comp_symbols}->{$code_label}, - # $label_value, - # ${$code_entry->[1]}, - # $code_entry->[0]); - #} - $redef_count++; - $self->{comp_symbols}->{$code_label} = $label_value; - } - } else { - ###################### - # label redefinition # - ###################### - #if ($self->{compile_count} >= 20) { - # printf STDERR "REDEF: %s %s undef (%s %s)\n", ($code_label, - # $self->{comp_symbols}->{$code_label}, - # ${$code_entry->[1]}, - # $code_entry->[0]); - #} - $redef_count++; - $self->{comp_symbols}->{$code_label} = undef; - } - } else { - #################### - # label definition # - #################### - $self->{comp_symbols}->{$code_label} = $label_value; - } - } else { - ######################## - # new label definition # - ######################## - $self->{comp_symbols}->{$code_label} = $label_value; - } - } - } - } - return [$error_count, $undef_count, $redef_count]; -} - -#################### -# set_opcode_table # -#################### -sub set_opcode_table { - my $self = shift @_; - my $cpu = shift @_; - #print STDERR "CPU: $cpu\n"; - - for ($cpu) { - ######## - # HC11 # - ######## - /$cpu_hc11/ && do { - $self->{opcode_table} = $opctab_hc11; - return 0; last;}; - ############ - # HC12/S12 # - ############ - /$cpu_s12/ && do { - $self->{opcode_table} = $opctab_s12; - return 0; last;}; - ######## - # S12X # - ######## - /$cpu_s12x/ && do { - $self->{opcode_table} = $opctab_s12x; - return 0; last;}; - ######### - # XGATE # - ######### - /$cpu_xgate/ && do { - $self->{opcode_table} = $opctab_xgate; - return 0; last;}; - ############### - # DEFAULT CPU # - ############### - $self->{opcode_table} = $opctab_s12; - return sprintf "invalid CPU \"%s\". Using S12 opcode map instead.", $cpu; - } -} - -####################### -# evaluate_expression # -####################### -sub evaluate_expression { - my $self = shift @_; - my $expr = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - - #terminal - my $complement; - my $string; - #binery conversion - my $binery_value; - my $binery_char; - #ascii conversion - my $ascii_value; - my $ascii_char; - #symbol lookup - my $symbol_name; - #formula - my $formula; - my $formula_left; - my $formula_middle; - my $formula_right; - my $formula_resolved_left; - my $formula_resolved_middle; - my $formula_resolved_right; - my $formula_error; - #printf "expr = \"%s\"\n", $expr; - - if (defined $expr) { - #trim expression - #$expr =~ s/^\s*//; - #$expr =~ s/\s*$//; - - for ($expr) { - ################# - # binary number # - ################# - /$op_binery/ && do { - $complement = $1; - $string = $2; - #printf "terminal bin: \"%s\" \"%s\"\n", $complement, $string; - $binery_value = 0; - foreach $binery_char (split //, $string) { - if ($binery_char =~ /^[01]$/) { - $binery_value = $binery_value << 1; - if ($binery_char ne "0") { - $binery_value++; - } - } - } - for ($complement) { - /^~$/ && do { - #1's complement - return [0, (~$binery_value)]; - last;}; - /^\-$/ && do { - #2's complement - return [0, ($binery_value * -1)]; - last;}; - /^\s*$/ && do { - #no complement - return [0, $binery_value]; - last;}; - #syntax error - return [sprintf("wrong syntax \"%s%s\"", $complement, $string), undef]; - } - last;}; - ################## - # decimal number # - ################## - /$op_dec/ && do { - $complement = $1; - $string = $2; - $string =~ s/_//g; - #printf "terminal dec: \"%s\" \"%s\"\n", $complement, $string; - for ($complement) { - /^~$/ && do { - #1's complement - return [0, (~(int(sprintf("%d", $string))))]; - last;}; - /^\-$/ && do { - #2's complement - return [0, (int(sprintf("%d", $string)) * (-1))]; - last;}; - /^\s*$/ && do { - #no complement - return [0, int(sprintf("%d", $string))]; - last;}; - #syntax error - return [sprintf("wrong syntax \"%s%s\"", $complement, $string), undef]; - } - last;}; - ###################### - # hexadecimal number # - ###################### - /$op_hex/ && do { - $complement = $1; - $string = $2; - $string =~ s/_//g; - #printf "terminal hex: \"%s\" \"%s\"\n", $complement, $string; - for ($complement) { - /^~$/ && do { - #1's complement - return [0, (~(hex($string)))]; - last;}; - /^\-$/ && do { - #2's complement - return [0, (hex($string) * (-1))]; - last;}; - /^\s*$/ && do { - #no complement - return [0, hex($string)]; - last;}; - #syntax error - return [sprintf("wrong syntax \"%s%s\"", $complement, $string), undef]; - } - last;}; - ################### - # ASCII character # - ################### - /$op_ascii/ && do { - $complement = $1; - $string = $2; - #printf "terminal ascii: \"%s\" \"%s\"\n", $complement, $string; - - #replace escaped characters - $string =~ s/\\,/,/g; #escaped commas - #$string =~ s/\\\ /\ /g; #escaped spaces - #$string =~ s/\\\t/\t/g; #escaped tabss - - $ascii_value = 0; - foreach $ascii_char (split //, $string) { - $ascii_value = $ascii_value << 8; - $ascii_value = $ascii_value | ord($ascii_char); - } - for ($complement) { - /^~$/ && do { - #1's complement - return [0, (~$ascii_value)]; - last;}; - /^\-$/ && do { - #2's complement - return [0, ($ascii_value * (-1))]; - last;}; - /^\s*$/ && do { - #no complement - return [0, $ascii_value]; - last;}; - #syntax error - return [sprintf("wrong syntax \"%s%s\"", $complement, $string), undef]; - } - last;}; - #################### - # current linear PC # - #################### - /$op_curr_lin_pc/ && do { - $complement = $1; - #printf "terminal addr: \"%s\" \"%s\"\n", $complement, $comp_pc_paged; - for ($complement) { - /^~$/ && do { - #1's complement - return [0, (~$pc_lin)]; - last;}; - /^\-$/ && do { - #2's complement - return [0, ($pc_lin * (-1))]; - last;}; - /^\s*$/ && do { - #no complement - return [0, $pc_lin]; - last;}; - #syntax error - return [sprintf("wrong syntax \"%s%s\"", $complement, $string), undef]; - } - last;}; - #################### - # current paged PC # - #################### - /$op_curr_pag_pc/ && do { - $complement = $1; - #printf "terminal addr: \"%s\" \"%s\"\n", $complement, $comp_pc_paged; - for ($complement) { - /^~$/ && do { - #1's complement - return [0, (~$pc_pag)]; - last;}; - /^\-$/ && do { - #2's complement - return [0, ($pc_pag * (-1))]; - last;}; - /^\s*$/ && do { - #no complement - return [0, $pc_pag]; - last;}; - #syntax error - return [sprintf("wrong syntax \"%s%s\"", $complement, $string), undef]; - } - last;}; - ################### - # compiler symbol # - ################### - /$op_symbol/ && do { - $complement = $1; - $string = uc($2); - ######################## - # substitute loc count # - ######################## - #substitute LOC count - if ($string =~ /^\s*(.+)\`\s*$/) { - #if ($string =~ /^\s*(.*)\`\s*$/) { - $string = sprintf("%s%.4d", $1, $loc_cnt); - } - #printf "terminal symb: \"%s\" \"%s\"\n", $complement, $string; - if ($string !~ $op_keywords) { - if (exists $self->{comp_symbols}->{uc($string)}) { - if (defined $self->{comp_symbols}->{uc($string)}) { - #printf STDERR "symbol: \"%s\" \"%s\"\n", uc($string), $self->{comp_symbols}->{uc($string)}; - - for ($complement) { - /^~$/ && do { - #1's complement - return [0, (~$self->{comp_symbols}->{uc($string)})]; - last;}; - /^\-$/ && do { - #2's complement - return [0, ($self->{comp_symbols}->{uc($string)} * (-1))]; - last;}; - /^\s*$/ && do { - #no complement - return [0, $self->{comp_symbols}->{uc($string)}]; - last;}; - #syntax error - return [sprintf("wrong syntax \"%s%s\"", $complement, $string), undef]; - } - } else { - return [0, undef]; - } - } elsif (! exists $self->{compile_count}) { - return [sprintf("unknown symbol \"%s\"", $string), undef]; - } elsif ($self->{compile_count} > 1) { - return [sprintf("unknown symbol \"%s\"", $string), undef]; - } else { - return [0, undef]; - } - } else { - return [sprintf("invalid use of keyword \"%s\"", $string), undef]; - } - last;}; - ############### - # parenthesis # - ############### - /$op_formula_pars/ && do { - $formula_left = $1; - $formula_middle = $2; - $formula_right = $3; - ($formula_error, $formula_resolved_middle) = @{$self->evaluate_expression($formula_middle, $pc_lin, $pc_pag, $loc_cnt)}; - if ($formula_error) { - return [$formula_error, undef]; - } elsif (! defined $formula_resolved_middle) { - return [0, undef]; - } else { - $formula = sprintf("%s%d%s", ($formula_left, - $formula_resolved_middle, - $formula_right)); - - return $self->evaluate_expression($formula, $pc_lin, $pc_pag, $loc_cnt); - } - last;}; - ############################# - # double negation/invertion # - ############################# - /$op_formula_complement/ && do { - $complement = $1; - $formula_right = $2; - ($formula_error, $formula_resolved_right) = @{$self->evaluate_expression($formula_right, $pc_lin, $pc_pag, $loc_cnt)}; - if ($formula_error) { - return [$formula_error, undef]; - } elsif (! defined $formula_resolved_right) { - return [0, undef]; - } else { - for ($complement) { - /^~$/ && do { - #1's complement - return [0, (~$formula_resolved_right)]; - last;}; - /^\-$/ && do { - #2's complement - return [0, ($formula_resolved_right * (-1))]; - last;}; - #syntax error - return [sprintf("wrong syntax \"%s%s\"", $complement, $formula_right), undef]; - } - } - last;}; - ####### - # and # - ####### - /$op_formula_and/ && do { - $formula_left = $1; - $formula_right = $2; - #printf "resolve ANDs: \"%s\" \"%s\"\n", $formula_left, $formula_right; - - #evaluate left formula - ($formula_error, $formula_resolved_left) = @{$self->evaluate_expression($formula_left, $pc_lin, $pc_pag, $loc_cnt)}; - if ($formula_error) { - return [$formula_error, undef]; - } elsif (! defined $formula_resolved_left) { - return [0, undef]; - } else { - #evaluate right formula - ($formula_error, $formula_resolved_right) = @{$self->evaluate_expression($formula_right, $pc_lin, $pc_pag, $loc_cnt)}; - if ($formula_error) { - return [$formula_error, undef]; - } elsif (! defined $formula_resolved_right) { - return [0, undef]; - } else { - return [0, ($formula_resolved_left & $formula_resolved_right)]; - } - } - last;}; - ###### - # or # - ###### - /$op_formula_or/ && do { - $formula_left = $1; - $formula_right = $2; - #printf "resolve ORs: \"%s\" \"%s\"\n", $formula_left, $formula_right; - - #evaluate left formula - ($formula_error, $formula_resolved_left) = @{$self->evaluate_expression($formula_left, $pc_lin, $pc_pag, $loc_cnt)}; - if ($formula_error) { - return [$formula_error, undef]; - } elsif (! defined $formula_resolved_left) { - return [0, undef]; - } else { - #evaluate right formula - ($formula_error, $formula_resolved_right) = @{$self->evaluate_expression($formula_right, $pc_lin, $pc_pag, $loc_cnt)}; - if ($formula_error) { - return [$formula_error, undef]; - } elsif (! defined $formula_resolved_right) { - return [0, undef]; - } else { - return [0, ($formula_resolved_left | $formula_resolved_right)]; - } - } - last;}; - ######## - # exor # - ######## - /$op_formula_exor/ && do { - $formula_left = $1; - $formula_right = $2; - #printf "resolve EXORs: \"%s\" \"%s\"\n", $formula_left, $formula_right; - - #evaluate left formula - ($formula_error, $formula_resolved_left) = @{$self->evaluate_expression($formula_left, $pc_lin, $pc_pag, $loc_cnt)}; - if ($formula_error) { - return [$formula_error, undef]; - } elsif (! defined $formula_resolved_left) { - return [0, undef]; - } else { - #evaluate right formula - ($formula_error, $formula_resolved_right) = @{$self->evaluate_expression($formula_right, $pc_lin, $pc_pag, $loc_cnt)}; - if ($formula_error) { - return [$formula_error, undef]; - } elsif (! defined $formula_resolved_right) { - return [0, undef]; - } else { - return [0, ($formula_resolved_left ^ $formula_resolved_right)]; - } - } - last;}; - ############## - # rightshift # - ############## - /$op_formula_rightshift/ && do { - $formula_left = $1; - $formula_right = $2; - #printf "resolve RIGHTSHIFTSs: \"%s\" \"%s\"\n", $formula_left, $formula_right; - - #evaluate left formula - ($formula_error, $formula_resolved_left) = @{$self->evaluate_expression($formula_left, $pc_lin, $pc_pag, $loc_cnt)}; - if ($formula_error) { - return [$formula_error, undef]; - } elsif (! defined $formula_resolved_left) { - return [0, undef]; - } else { - #evaluate right formula - ($formula_error, $formula_resolved_right) = @{$self->evaluate_expression($formula_right, $pc_lin, $pc_pag, $loc_cnt)}; - if ($formula_error) { - return [$formula_error, undef]; - } elsif (! defined $formula_resolved_right) { - return [0, undef]; - } else { - return [0, ($formula_resolved_left >> $formula_resolved_right)]; - } - } - last;}; - ############# - # leftshift # - ############# - /$op_formula_leftshift/ && do { - $formula_left = $1; - $formula_right = $2; - #printf "resolve LEFTSHIFTs: \"%s\" \"%s\"\n", $formula_left, $formula_right; - - #evaluate left formula - ($formula_error, $formula_resolved_left) = @{$self->evaluate_expression($formula_left, $pc_lin, $pc_pag, $loc_cnt)}; - if ($formula_error) { - return [$formula_error, undef]; - } elsif (! defined $formula_resolved_left) { - return [0, undef]; - } else { - #evaluate right formula - ($formula_error, $formula_resolved_right) = @{$self->evaluate_expression($formula_right, $pc_lin, $pc_pag, $loc_cnt)}; - if ($formula_error) { - return [$formula_error, undef]; - } elsif (! defined $formula_resolved_right) { - return [0, undef]; - } else { - return [0, ($formula_resolved_left << $formula_resolved_right)]; - } - } - last;}; - ################## - # multiplication # - ################## - /$op_formula_mul/ && do { - $formula_left = $1; - $formula_right = $2; - #printf "resolve MULs: \"%s\" \"%s\"\n", $formula_left, $formula_right; - - #evaluate left formula - ($formula_error, $formula_resolved_left) = @{$self->evaluate_expression($formula_left, $pc_lin, $pc_pag, $loc_cnt)}; - if ($formula_error) { - return [$formula_error, undef]; - } elsif (! defined $formula_resolved_left) { - return [0, undef]; - } else { - #evaluate right formula - ($formula_error, $formula_resolved_right) = @{$self->evaluate_expression($formula_right, $pc_lin, $pc_pag, $loc_cnt)}; - if ($formula_error) { - return [$formula_error, undef]; - } elsif (! defined $formula_resolved_right) { - return [0, undef]; - } else { - return [0, ($formula_resolved_left * $formula_resolved_right)]; - } - } - last;}; - ############ - # division # - ############ - /$op_formula_div/ && do { - $formula_left = $1; - $formula_right = $2; - #printf "resolve DIVs: \"%s\" \"%s\"\n", $formula_left, $formula_right; - - #evaluate left formula - ($formula_error, $formula_resolved_left) = @{$self->evaluate_expression($formula_left, $pc_lin, $pc_pag, $loc_cnt)}; - if ($formula_error) { - return [$formula_error, undef]; - } elsif (! defined $formula_resolved_left) { - return [0, undef]; - } else { - #evaluate right formula - ($formula_error, $formula_resolved_right) = @{$self->evaluate_expression($formula_right, $pc_lin, $pc_pag, $loc_cnt)}; - if ($formula_error) { - return [$formula_error, undef]; - } elsif (! defined $formula_resolved_right) { - return [0, undef]; - } else { - return [0, int($formula_resolved_left / $formula_resolved_right)]; - } - } - last;}; - ########### - # modulus # - ########### - /$op_formula_mod/ && do { - $formula_left = $1; - $formula_right = $2; - #printf "resolve MODs: \"%s\" \"%s\"\n", $formula_left, $formula_right; - - #evaluate left formula - ($formula_error, $formula_resolved_left) = @{$self->evaluate_expression($formula_left, $pc_lin, $pc_pag, $loc_cnt)}; - if ($formula_error) { - return [$formula_error, undef]; - } elsif (! defined $formula_resolved_left) { - return [0, undef]; - } else { - #evaluate right formula - ($formula_error, $formula_resolved_right) = @{$self->evaluate_expression($formula_right, $pc_lin, $pc_pag, $loc_cnt)}; - if ($formula_error) { - return [$formula_error, undef]; - } elsif (! defined $formula_resolved_right) { - return [0, undef]; - } else { - return [0, ($formula_resolved_left % $formula_resolved_right)]; - } - } - last;}; - ######## - # plus # - ######## - /$op_formula_plus/ && do { - $formula_left = $1; - $formula_right = $2; - #printf "resolve PLUSes: \"%s\" \"%s\"\n", $formula_left, $formula_right; - - #evaluate left formula - ($formula_error, $formula_resolved_left) = @{$self->evaluate_expression($formula_left, $pc_lin, $pc_pag, $loc_cnt)}; - if ($formula_error) { - return [$formula_error, undef]; - } elsif (! defined $formula_resolved_left) { - return [0, undef]; - } else { - #evaluate right formula - ($formula_error, $formula_resolved_right) = @{$self->evaluate_expression($formula_right, $pc_lin, $pc_pag, $loc_cnt)}; - if ($formula_error) { - return [$formula_error, undef]; - } elsif (! defined $formula_resolved_right) { - return [0, undef]; - } else { - return [0, ($formula_resolved_left + $formula_resolved_right)]; - } - } - last;}; - ######### - # minus # - ######### - /$op_formula_minus/ && do { - $formula_left = $1; - $formula_right = $2; - #printf "resolve MINUSes: \"%s\" \"%s\"\n", $formula_left, $formula_right; - - #evaluate left formula - ($formula_error, $formula_resolved_left) = @{$self->evaluate_expression($formula_left, $pc_lin, $pc_pag, $loc_cnt)}; - if ($formula_error) { - return [$formula_error, undef]; - } elsif (! defined $formula_resolved_left) { - return [0, undef]; - } else { - #evaluate right formula - ($formula_error, $formula_resolved_right) = @{$self->evaluate_expression($formula_right, $pc_lin, $pc_pag, $loc_cnt)}; - if ($formula_error) { - return [$formula_error, undef]; - } elsif (! defined $formula_resolved_right) { - return [0, undef]; - } else { - return [0, ($formula_resolved_left - $formula_resolved_right)]; - } - } - last;}; - ############## - # whitespace # - ############## - /$op_whitespace/ && do { - return [0, undef]; - last;}; - ################## - # unknown syntax # - ################## - return [sprintf("wrong syntax \"%s\"", $expr), undef]; - #return [sprintf("wrong syntax", $expr), undef]; - } - } else { - return [0, undef]; - } - return [0, undef]; -} - -######################## -# determine_addrspaces # -######################## -sub determine_addrspaces { - my $self = shift @_; - - #code - my $code_pc_lin; - my $code_pc_pag; - #data - my $address; - my $byte; - - ######################## - # reset address spaces # - ######################## - $self->{lin_addrspace} = {}; - $self->{pag_addrspace} = {}; - - ############# - # code loop # - ############# - #print "compile_run:\n"; - foreach $code_entry (@{$self->{code}}) { - $code_pc_lin = $code_entry->[6]; - $code_pc_pag = $code_entry->[7]; - $code_hex = $code_entry->[8]; - - ######################## - # linear address space # - ######################## - if (defined $code_pc_lin) { - $address = $code_pc_lin; - if (($code_hex !~ /$cmp_no_hexcode/) && - ($code_hex !~ /^\s*$/)) { - foreach $byte (split /\s+/, $code_hex) { - $self->{lin_addrspace}->{$address} = [hex($byte), - $code_entry]; - $address++; - } - } - } - - ####################### - # paged address space # - ####################### - if (defined $code_pc_pag) { - $address = $code_pc_pag; - if (($code_hex !~ /$cmp_no_hexcode/) && - ($code_hex !~ /^\s*$/)) { - foreach $byte (split /\s+/, $code_hex) { - $self->{pag_addrspace}->{$address} = [hex($byte), - $code_entry]; - $address++; - } - } - } - } -} - -########### -# outputs # -########### -################# -# print_listing # -################# -sub print_listing { - my $self = shift @_; - - #code - my $code_entry; - my $code_file; - my $code_line; - my $code_comments; - my $code_pc_lin; - my $code_pc_pag; - my $code_hex; - my $code_errors; - my $code_error; - my $code_pc_lin_string; - my $code_pc_pag_string; - my @code_hex_bytes; - my @code_hex_strings; - my $code_hex_string; - #comments - my @cmt_lines; - my $cmt_line; - my $cmt_last_line; - #output - my $out_string; - - ############################ - # initialize output string # - ############################ - $out_string = ""; - - ############# - # code loop # - ############# - foreach $code_entry (@{$self->{code}}) { - - $code_line = $code_entry->[0]; - $code_file = $code_entry->[1]; - $code_comments = $code_entry->[2]; - $code_pc_lin = $code_entry->[6]; - $code_pc_pag = $code_entry->[7]; - $code_hex = $code_entry->[8]; - $code_errors = $code_entry->[10]; - - #convert integers to strings - if (defined $code_pc_lin) { - $code_pc_lin_string = sprintf("%.6X", $code_pc_lin); - } else { - #$code_pc_lin_string = "??????"; - $code_pc_lin_string = " "; - - } - if (defined $code_pc_pag) { - $code_pc_pag_string = sprintf("%.6X", $code_pc_pag); - } else { - $code_pc_pag_string = "??????"; - } - - if (defined $code_hex) { - for ($code_hex) { - ################################## - # whitespaces instead of hexcode # - ################################## - /^\s*$/ && do { - @code_hex_strings = (""); - last;}; - ############################# - # string instead of hexcode # - ############################# - /$cmp_no_hexcode/ && do { - @code_hex_strings = ($1); - last;}; - ########### - # hexcode # - ########### - @code_hex_strings = (); - @code_hex_bytes = split /\s+/, $code_hex; - while ($#code_hex_bytes >= 0) { - $code_hex_string = ""; - if ($#code_hex_bytes >= 0) {$code_hex_string = sprintf("%s %s", ($code_hex_string, - (shift @code_hex_bytes)));} - if ($#code_hex_bytes >= 0) {$code_hex_string = sprintf("%s %s", ($code_hex_string, - (shift @code_hex_bytes)));} - if ($#code_hex_bytes >= 0) {$code_hex_string = sprintf("%s %s", ($code_hex_string, - (shift @code_hex_bytes)));} - if ($#code_hex_bytes >= 0) {$code_hex_string = sprintf("%s %s", ($code_hex_string, - (shift @code_hex_bytes)));} - if ($#code_hex_bytes >= 0) {$code_hex_string = sprintf("%s %s", ($code_hex_string, - (shift @code_hex_bytes)));} - if ($#code_hex_bytes >= 0) {$code_hex_string = sprintf("%s %s", ($code_hex_string, - (shift @code_hex_bytes)));} - if ($#code_hex_bytes >= 0) {$code_hex_string = sprintf("%s %s", ($code_hex_string, - (shift @code_hex_bytes)));} - if ($#code_hex_bytes >= 0) {$code_hex_string = sprintf("%s %s", ($code_hex_string, - (shift @code_hex_bytes)));} - #trim string - $code_hex_string =~ s/^\s*//; - $code_hex_string =~ s/\s*$//; - push @code_hex_strings, $code_hex_string; - } - } - } else { - @code_hex_strings = ("??"); - } - - ################## - # print comments # - ################## - @cmt_lines = @$code_comments; - $cmt_last_line = pop @cmt_lines; - foreach $cmt_line (@cmt_lines) { - $out_string .= sprintf("%-6s %-6s %-23s %ls\n", "", "", "", $cmt_line); - } - - ################### - # print code line # - ################### - $out_string .= sprintf("%-6s %-6s %-23s %ls\n", ($code_pc_pag_string, - $code_pc_lin_string, - shift @code_hex_strings, - $cmt_last_line)); - - ############################## - # print additional hex bytes # - ############################## - foreach $code_hex_string (@code_hex_strings) { - $out_string .= sprintf("%-6s %-6s %-23s %ls\n", "", "", $code_hex_string, ""); - } - - ################ - # print errors # - ################ - foreach $code_error (@$code_errors) { - $out_string .= sprintf("%-6s %-6s %-23s ERROR! %s (%s, line: %d)\n", ("", "", "", - $code_error, - $$code_file, - $code_line)); - } - } - return $out_string; -} - -################## -# print_lin_srec # -################## -sub print_lin_srec { - my $self = shift @_; - my $string = shift @_; - my $srec_format = shift @_; - my $srec_data_length = shift @_; - my $srec_add_s5 = shift @_; - my $srec_word_entries = shift @_; - - #S-records - my $srec_count; - my @srec_bytes; - my $srec_address; - #memoryspace - my $mem_addr; - my $mem_entry; - my $mem_byte; - #output - my $out_string; - - ############################ - # initialize output string # - ############################ - $out_string = ""; - - ################ - # print header # - ################ - $out_string .= sprintf("%s", $self->gen_header_srec($string, $srec_data_length)); - - ################ - # address loop # - ################ - $srec_count = 0; - @srec_bytes = (); - foreach $mem_addr (sort {$a <=> $b} keys %{$self->{lin_addrspace}}) { - $mem_entry = $self->{lin_addrspace}->{$mem_addr}; - $mem_byte = $mem_entry->[0]; - - - #printf STDERR "address: %X\n", $mem_addr; - if ($#srec_bytes < 0) { - ########################## - # new group of S-records # - ########################## - #print STDERR "new S-Record\n"; - if ($srec_word_entries && ($mem_addr & 1)) { - ###################################### - # odd start address => add fill byte # - ###################################### - #print STDERR " => odd start address!\n"; - $srec_address = $mem_addr - 1; - push @srec_bytes, $srec_def_fill_byte; - push @srec_bytes, $mem_byte; - } else { - ###################### - # even start address # - ###################### - #print STDERR " => even start address!\n"; - $srec_address = $mem_addr; - push @srec_bytes, $mem_byte; - } - } elsif ($mem_addr == ($srec_address + $#srec_bytes + 1)) { - ####################################### - # add data byte to group of S-records # - ####################################### - #printf STDERR " => add byte (%X %X)\n", $srec_address, ($#srec_bytes + 1); - push @srec_bytes, $mem_byte; - } elsif ($srec_word_entries && - ($mem_addr == ($srec_address + $#srec_bytes + 2))) { - #################################################### - # add one fill byte and data to group of S-records # - #################################################### - #printf STDERR " => add 1 fill byte (%X %X)\n", $srec_address, ($#srec_bytes + 1); - push @srec_bytes, $srec_def_fill_byte; - push @srec_bytes, $mem_byte; - } elsif ($srec_word_entries && - ($mem_addr & 1) && - ($mem_addr == ($srec_address + $#srec_bytes + 3))) { - ##################################################### - # add two fill bytes and data to group of S-records # - ##################################################### - #printf STDERR " => add 2 fill bytes (%X %X)\n", $srec_address, ($#srec_bytes + 1); - push @srec_bytes, $srec_def_fill_byte; - push @srec_bytes, $srec_def_fill_byte; - push @srec_bytes, $mem_byte; - } else { - ############################ - # print group of S-records # - ############################ - if ($srec_word_entries && (($#srec_bytes + 1) & 1)) { - ############################################ - # add fill byte at the end of the S-Record # - ############################################ - #printf STDERR " => add ending fill bytes (%X)\n", ($#srec_bytes + 1); - push @srec_bytes, $srec_def_fill_byte; - } - while ($#srec_bytes >= 0) { - if (($#srec_bytes + 1) <= $srec_data_length) { - $out_string .= sprintf("%s\n", $self->gen_data_srec($srec_address, - \@srec_bytes, - $srec_format)); - @srec_bytes = (); - } else { - $out_string .= sprintf("%s\n", $self->gen_data_srec($srec_address, - [splice(@srec_bytes, 0, - $srec_data_length)], - $srec_format)); - $srec_address = $srec_address + $srec_data_length; - } - $srec_count++; - if (($srec_add_s5 > 0) && - ($srec_add_s5 <= $srec_count)) { - $out_string .= sprintf("%s\n", $self->gen_s5rec($srec_count)); - $srec_count = 0; - } - } - ########################## - # new group of S-records # - ########################## - #print STDERR "next S-Record\n"; - if ($srec_word_entries && ($mem_addr & 1)) { - ###################################### - # odd start address => add fill byte # - ###################################### - #print STDERR " => odd start address!\n"; - $srec_address = $mem_addr - 1; - push @srec_bytes, $srec_def_fill_byte; - push @srec_bytes, $mem_byte; - } else { - ###################### - # even start address # - ###################### - #print STDERR " => even start address!\n"; - $srec_address = $mem_addr; - push @srec_bytes, $mem_byte; - } - } - } - ############################# - # print remaining S-records # - ############################# - if ($srec_word_entries && (($#srec_bytes + 1) & 1)) { - ############################################ - # add fill byte at the end of the S-Record # - ############################################ - #printf STDERR " => add ending fill bytes (%X)\n", ($#srec_bytes + 1); - push @srec_bytes, $srec_def_fill_byte; - } - while ($#srec_bytes >= 0) { - if (($#srec_bytes + 1) <= $srec_data_length) { - $out_string .= sprintf("%s\n", $self->gen_data_srec($srec_address, - \@srec_bytes, - $srec_format)); - @srec_bytes = (); - } else { - $out_string .= sprintf("%s\n", $self->gen_data_srec($srec_address, - [splice(@srec_bytes, 0, - $srec_data_length)], - $srec_format)); - $srec_address = $srec_address + $srec_data_length; - } - $srec_count++; - if (($srec_add_s5 > 0) && - ($srec_add_s5 <= $srec_count)) { - $out_string .= sprintf("%s\n", $self->gen_s5rec($srec_count)); - $srec_count = 0; - } - } - #################################### - # print S5 for remaining S-records # - #################################### - if (($srec_add_s5 > 0) && - ($srec_count > 0)) { - $out_string .= sprintf("%s\n", $self->gen_s5rec($srec_count)); - } - - ################ - # print ending # - ################ - $out_string .= sprintf("%s\n", $self->gen_end_srec($srec_format)); - return $out_string; -} - -################## -# print_pag_srec # -################## -sub print_pag_srec { - my $self = shift @_; - my $string = shift @_; - my $srec_format = shift @_; - my $srec_data_length = shift @_; - my $srec_add_s5 = shift @_; - my $srec_word_entries = shift @_; - - #S-records - my $srec_count; - my @srec_bytes; - my $srec_address; - #memoryspace - my $mem_addr; - my $mem_entry; - my $mem_byte; - #output - my $out_string; - - ############################ - # initialize output string # - ############################ - $out_string = ""; - - ################ - # print header # - ################ - $out_string .= sprintf("%s", $self->gen_header_srec($string, $srec_data_length)); - - ################ - # address loop # - ################ - $srec_count = 0; - @srec_bytes = (); - foreach $mem_addr (sort {$a <=> $b} keys %{$self->{pag_addrspace}}) { - $mem_entry = $self->{pag_addrspace}->{$mem_addr}; - $mem_byte = $mem_entry->[0]; - - #printf STDERR "address: %X\n", $mem_addr; - if ($#srec_bytes < 0) { - ########################## - # new group of S-records # - ########################## - #print STDERR "new S-Record\n"; - if ($srec_word_entries && ($mem_addr & 1)) { - ###################################### - # odd start address => add fill byte # - ###################################### - #print STDERR " => odd start address!\n"; - $srec_address = $mem_addr - 1; - push @srec_bytes, $srec_def_fill_byte; - push @srec_bytes, $mem_byte; - } else { - ###################### - # even start address # - ###################### - #print STDERR " => even start address!\n"; - $srec_address = $mem_addr; - push @srec_bytes, $mem_byte; - } - } elsif ($mem_addr == ($srec_address + $#srec_bytes + 1)) { - ####################################### - # add data byte to group of S-records # - ####################################### - #printf STDERR " => add byte (%X %X)\n", $srec_address, ($#srec_bytes + 1); - push @srec_bytes, $mem_byte; - } elsif ($srec_word_entries && - ($mem_addr == ($srec_address + $#srec_bytes + 2))) { - #################################################### - # add one fill byte and data to group of S-records # - #################################################### - #printf STDERR " => add 1 fill byte (%X %X)\n", $srec_address, ($#srec_bytes + 1); - push @srec_bytes, $srec_def_fill_byte; - push @srec_bytes, $mem_byte; - } elsif ($srec_word_entries && - ($mem_addr & 1) && - ($mem_addr == ($srec_address + $#srec_bytes + 3))) { - ##################################################### - # add two fill bytes and data to group of S-records # - ##################################################### - #printf STDERR " => add 2 fill bytes (%X %X)\n", $srec_address, ($#srec_bytes + 1); - push @srec_bytes, $srec_def_fill_byte; - push @srec_bytes, $srec_def_fill_byte; - push @srec_bytes, $mem_byte; - } else { - ############################ - # print group of S-records # - ############################ - if ($srec_word_entries && (($#srec_bytes + 1) & 1)) { - ############################################ - # add fill byte at the end of the S-Record # - ############################################ - #printf STDERR " => add ending fill bytes (%X)\n", ($#srec_bytes + 1); - push @srec_bytes, $srec_def_fill_byte; - } - while ($#srec_bytes >= 0) { - if (($#srec_bytes + 1) <= $srec_data_length) { - $out_string .= sprintf("%s\n", $self->gen_data_srec($srec_address, - \@srec_bytes, - $srec_format)); - @srec_bytes = (); - } else { - $out_string .= sprintf("%s\n", $self->gen_data_srec($srec_address, - [splice(@srec_bytes, 0, - $srec_data_length)], - $srec_format)); - $srec_address = $srec_address + $srec_data_length; - } - $srec_count++; - if (($srec_add_s5 > 0) && - ($srec_add_s5 <= $srec_count)) { - $out_string .= sprintf("%s\n", $self->gen_s5rec($srec_count)); - $srec_count = 0; - } - } - ########################## - # new group of S-records # - ########################## - #print STDERR "next S-Record\n"; - if ($srec_word_entries && ($mem_addr & 1)) { - ###################################### - # odd start address => add fill byte # - ###################################### - #print STDERR " => odd start address!\n"; - $srec_address = $mem_addr - 1; - push @srec_bytes, $srec_def_fill_byte; - push @srec_bytes, $mem_byte; - } else { - ###################### - # even start address # - ###################### - #print STDERR " => even start address!\n"; - $srec_address = $mem_addr; - push @srec_bytes, $mem_byte; - } - } - } - ############################# - # print remaining S-records # - ############################# - if ($srec_word_entries && (($#srec_bytes + 1) & 1)) { - ############################################ - # add fill byte at the end of the S-Record # - ############################################ - #printf STDERR " => add ending fill bytes (%X)\n", ($#srec_bytes + 1); - push @srec_bytes, $srec_def_fill_byte; - } - while ($#srec_bytes >= 0) { - if (($#srec_bytes + 1) <= $srec_data_length) { - $out_string .= sprintf("%s\n", $self->gen_data_srec($srec_address, - \@srec_bytes, - $srec_format)); - @srec_bytes = (); - } else { - $out_string .= sprintf("%s\n", $self->gen_data_srec($srec_address, - [splice(@srec_bytes, 0, - $srec_data_length)], - $srec_format)); - $srec_address = $srec_address + $srec_data_length; - } - $srec_count++; - if (($srec_add_s5 > 0) && - ($srec_add_s5 <= $srec_count)) { - $out_string .= sprintf("%s\n", $self->gen_s5rec($srec_count)); - $srec_count = 0; - } - } - #################################### - # print S5 for remaining S-records # - #################################### - if (($srec_add_s5 > 0) && - ($srec_count > 0)) { - $out_string .= sprintf("%s\n", $self->gen_s5rec($srec_count)); - } - - ################ - # print ending # - ################ - $out_string .= sprintf("%s\n", $self->gen_end_srec($srec_format)); - return $out_string; -} - -################### -# gen_header_srec # -################### -sub gen_header_srec { - my $self = shift @_; - my $string = shift @_; - my $srec_data_length = shift @_; - - #data - my $char; - #hex codes - my @hex_string; - my @hex_line; - my $hex_code; - #checksum - my $sum; - #S-record - my $record; - - ######################## - # conver string to hex # - ######################## - @hex_string = (); - foreach $char (split //, $string) { - push @hex_string, ord($char); - } - #printf STDERR "hex string length: %s \"%s\"\n", $#hex_string, $string; - - ################# - # hex code loop # - ################# - while ($#hex_string >= 0) { - @hex_line = splice @hex_string, 0, $srec_data_length; - #printf STDERR "srec_data_length: \"%s\"\n", $srec_data_length; - #printf STDERR "hex line: \"%s\"\n", join("\", \"", @hex_line); - #printf STDERR "hex line length: %s\n", $#hex_line; - - ##################### - # add address field # - ##################### - unshift @hex_line, 0; - unshift @hex_line, 0; - - #################### - # add length field # - #################### - unshift @hex_line, ($#hex_line + 2); - - ###################### - # add checksum field # - ###################### - $sum = 0; - foreach $hex_code (@hex_line) { - $sum = $sum + $hex_code; - } - push @hex_line, (0xff - ($sum & 0xff)); - - ##################### - # generate S-record # - ##################### - $record = "S0"; - foreach $hex_code (@hex_line) { - $record = sprintf("%s%.2X", $record, $hex_code); - } - $record = sprintf("%s\n", $record); - } - - ######################## - # return header string # - ######################## - return $record; -} - -################# -# gen_data_srec # -################# -sub gen_data_srec { - my $self = shift @_; - my $address = shift @_; - my $data = shift @_; - my $format = shift @_; - - #hex codes - my @hex_codes; - my $hex_code; - #checksum - my $sum; - #S-record - my $record; - - ####################### - # write address field # - ####################### - for ($format) { - /^S3.$/i && do { - ############# - # S3 record # - ############# - $record = "S3"; - @hex_codes = ((($address >> 24) & 0xff), - (($address >> 16) & 0xff), - (($address >> 8) & 0xff), - ( $address & 0xff)); - last;}; - /^S2.$/i && do { - ############# - # S2 record # - ############# - $record = "S2"; - @hex_codes = ((($address >> 16) & 0xff), - (($address >> 8) & 0xff), - ( $address & 0xff)); - last;}; - /^S1.$/i && do { - ############# - # S1 record # - ############# - $record = "S1"; - @hex_codes = ((($address >> 8) & 0xff), - ( $address & 0xff)); - last;}; - ################## - # invalid format # - ################## - return 0; - } - - ################## - # add data field # - ################## - push @hex_codes, @$data; - - #################### - # add length field # - #################### - unshift @hex_codes, ($#hex_codes + 2); - - ###################### - # add checksum field # - ###################### - $sum = 0; - foreach $hex_code (@hex_codes) { - $sum = $sum + $hex_code; - } - push @hex_codes, (0xff - ($sum & 0xff)); - - ##################### - # generate S-record # - ##################### - foreach $hex_code (@hex_codes) { - $record = sprintf("%s%.2X", $record, $hex_code); - } - - ######################## - # return header string # - ######################## - return $record; -} - -############# -# gen_s5rec # -############# -sub gen_s5rec { - my $self = shift @_; - my $number = shift @_; - - #hex codes - my @hex_codes; - my $hex_code; - #checksum - my $sum; - #S-record - my $record; - - ####################### - # write address field # - ####################### - @hex_codes = ((($number >> 8) & 0xff), - ( $number & 0xff)); - - #################### - # add length field # - #################### - unshift @hex_codes, 3; - - ###################### - # add checksum field # - ###################### - $sum = 0; - foreach $hex_code (@hex_codes) { - $sum = $sum + $hex_code; - } - push @hex_codes, (0xff - ($sum & 0xff)); - - ##################### - # generate S-record # - ##################### - $record = "S5"; - foreach $hex_code (@hex_codes) { - $record = sprintf("%s%.2X", $record, $hex_code); - } - - ######################## - # return header string # - ######################## - return $record; -} - -################ -# gen_end_srec # -################ -sub gen_end_srec { - my $self = shift @_; - my $format = shift @_; - - for ($format) { - /^S.7$/i && do { - ############# - # S7 record # - ############# - return "S70500000000FA"; - last;}; - /^S.8$/i && do { - ############# - # S8 record # - ############# - return "S804000000FB"; - last;}; - /^S.9$/i && do { - ############# - # S9 record # - ############# - return "S9030000FC"; - last;}; - ################## - # invalid format # - ################## - return 0; - } -} - -######################### -# pseudo opcode handler # -######################### -############### -# psop_align # -############### -sub psop_align { - my $self = shift @_; - my $pc_lin_ref = shift @_; - my $pc_pag_ref = shift @_; - my $loc_cnt_ref = shift @_; - my $error_count_ref = shift @_; - my $undef_count_ref = shift @_; - my $label_value_ref = shift @_; - my $code_entry = shift @_; - - #arguments - my $code_args; - my $bit_mask; - my $bit_mask_res; - my $fill_byte; - my $fill_byte_res; - #hex code - my @hex_code; - #temporary - my $error; - my $value; - - ################## - # read arguments # - ################## - $code_args = $code_entry->[5]; - $code_args =~ s/^\s*//; - $code_args =~ s/\s*$//; - for ($code_args) { - ############ - # bit mask # - ############ - /$psop_1_arg/ && do { - $bit_mask = $1; - #printf STDERR "ALLIGN: \"%X\"\n", $bit_mask; - - ###################### - # determine bit mask # - ###################### - ($error, $bit_mask_res) = @{$self->evaluate_expression($bit_mask, - $$pc_lin_ref, - $$pc_pag_ref, - $$loc_cnt_ref)}; - if ($error) { - ################ - # syntax error # - ################ - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - $code_entry->[6] = undef; - $code_entry->[7] = undef; - $$label_value_ref = undef; - } elsif (! defined $bit_mask_res) { - ################### - # undefined value # - ################### - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - $code_entry->[6] = undef; - $code_entry->[7] = undef; - $$label_value_ref = undef; - } elsif (! defined $$pc_pag_ref) { - ###################### - # undefined paged PC # - ###################### - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - $code_entry->[6] = undef; - $code_entry->[7] = undef; - $$label_value_ref = undef; - } else { - ################## - # valid bit mask # - ################## - while ($$pc_pag_ref & $bit_mask_res) { - if (defined $$pc_lin_ref) {$$pc_lin_ref++;} - if (defined $$pc_pag_ref) {$$pc_pag_ref++;} - } - $code_entry->[6] = $$pc_lin_ref; - $code_entry->[7] = $$pc_pag_ref; - $code_entry->[8] = ""; - $$label_value_ref = $$pc_pag_ref; - } - last;}; - ####################### - # bit mask, fill byte # - ####################### - /$psop_2_args/ && do { - $bit_mask = $1; - $fill_byte = $2; - ###################### - # determine bit mask # - ###################### - ($error, $bit_mask_res) = @{$self->evaluate_expression($bit_mask, - $$pc_lin_ref, - $$pc_pag_ref, - $$loc_cnt_ref)}; - if ($error) { - ################ - # syntax error # - ################ - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - $$label_value_ref = undef; - } elsif (! defined $bit_mask_res) { - ################### - # undefined value # - ################### - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - $$label_value_ref = undef; - $$undef_count++; - } else { - ################## - # valid bit mask # - ################## - ####################### - # determine fill byte # - ####################### - ($error, $fill_byte_res) = @{$self->evaluate_expression($fill_byte, - $$pc_lin_ref, - $$pc_pag_ref, - $$loc_cnt_ref)}; - if ($error) { - ################ - # syntax error # - ################ - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - return; - } elsif (! defined $fill_byte_res) { - ################### - # undefined value # - ################### - while ($$pc_pag_ref & $bit_mask_res) { - if (defined $$pc_lin_ref) {$$pc_lin_ref++;} - if (defined $$pc_pag_ref) {$$pc_pag_ref++;} - } - $$label_value_ref = $$pc_pag_ref; - #undefine hexcode - $code_entry->[8] = undef; - $$undef_count++; - } else { - ################### - # valid fill byte # - ################### - @hex_code = (); - while ($$pc_pag_ref & $bit_mask_res) { - if (defined $$pc_lin_ref) {$$pc_lin_ref++;} - if (defined $$pc_pag_ref) {$$pc_pag_ref++;} - push @hex_code, sprintf("%.2X", ($fill_byte_res & 0xff)); - } - #set hex code and byte count - $code_entry->[8] = join " ", @hex_code; - $code_entry->[9] = ($#hex_code + 1); - } - } - last;}; - ################ - # syntax error # - ################ - $error = sprintf("invalid argument for pseudo opcode ALIGN (%s)",$code_args); - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - $code_entry->[8] = undef; - } -} - -############ -# psop_cpu # -############ -sub psop_cpu { - my $self = shift @_; - my $pc_lin_ref = shift @_; - my $pc_pag_ref = shift @_; - my $loc_cnt_ref = shift @_; - my $error_count_ref = shift @_; - my $undef_count_ref = shift @_; - my $label_value_ref = shift @_; - my $code_entry = shift @_; - - #arguments - my $code_args; - #temporary - my $error; - my $value; - - ################## - # read arguments # - ################## - $code_label = $code_entry->[1]; - $code_args = $code_entry->[5]; - - ################## - # check argument # - ################## - if ($code_args =~ /$psop_1_arg/) { - ################ - # one argument # - ################ - $value = $1; - #print STDERR "CPU: $value\n"; - $error = $self->set_opcode_table($value); - if ($error) { - ################ - # syntax error # - ################ - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - } else { - ################## - # valid argument # - ################## - #check if symbol already exists - $code_entry->[8] = sprintf("%s CODE:", $value); - } - } else { - ################ - # syntax error # - ################ - $error = sprintf("invalid argument for pseudo opcode CPU (%s)",$code_args); - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - } -} - -########### -# psop_db # -########### -sub psop_db { - my $self = shift @_; - my $pc_lin_ref = shift @_; - my $pc_pag_ref = shift @_; - my $loc_cnt_ref = shift @_; - my $error_count_ref = shift @_; - my $undef_count_ref = shift @_; - my $label_value_ref = shift @_; - my $code_entry = shift @_; - - #arguments - my $code_args; - my $code_arg; - my @code_args_res; - my $code_args_defined; - #temporary - my $error; - my $value; - - ################## - # read arguments # - ################## - $code_args = $code_entry->[5]; - - ##################### - # resolve arguments # - ##################### - @code_args_res = (); - $code_args_defined = 1; - foreach $code_arg (split $del, $code_args) { - ($error, $value) = @{$self->evaluate_expression($code_arg, - $$pc_lin_ref, - $$pc_pag_ref, - $$loc_cnt_ref)}; - if ($error) { - ################ - # syntax error # - ################ - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - if (defined $$pc_lin_ref) {$$pc_lin_ref++;} - if (defined $$pc_pag_ref) {$$pc_pag_ref++;} - push @code_args_res, 0; - $code_args_defined = 0; - } elsif (! defined $value) { - ################### - # undefined value # - ################### - if (defined $$pc_lin_ref) {$$pc_lin_ref++;} - if (defined $$pc_pag_ref) {$$pc_pag_ref++;} - push @code_args_res, 0; - $code_args_defined = 0; - } else { - ################## - # valid argument # - ################## - if (defined $$pc_lin_ref) {$$pc_lin_ref++;} - if (defined $$pc_pag_ref) {$$pc_pag_ref++;} - push @code_args_res, sprintf("%.2X", ($value & 0xff)); - } - } - - #set hex code and byte count - if ($code_args_defined) { - $code_entry->[8] = join " ", @code_args_res; - } else { - $$undef_count_ref++; - } - $code_entry->[9] = ($#code_args_res + 1); -} - -########### -# psop_dw # -########### -sub psop_dw { - my $self = shift @_; - my $pc_lin_ref = shift @_; - my $pc_pag_ref = shift @_; - my $loc_cnt_ref = shift @_; - my $error_count_ref = shift @_; - my $undef_count_ref = shift @_; - my $label_value_ref = shift @_; - my $code_entry = shift @_; - - - #arguments - my $code_args; - my $code_arg; - my @code_args_res; - my $code_args_defined; - #temporary - my $error; - my $value; - - ################## - # read arguments # - ################## - $code_args = $code_entry->[5]; - - ##################### - # resolve arguments # - ##################### - @code_args_res = (); - $code_args_defined = 1; - foreach $code_arg (split $del, $code_args) { - ($error, $value) = @{$self->evaluate_expression($code_arg, - $$pc_lin_ref, - $$pc_pag_ref, - $$loc_cnt_ref)}; - if ($error) { - ################ - # syntax error # - ################ - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - if (defined $$pc_lin_ref) {$$pc_lin_ref++;} - if (defined $$pc_pag_ref) {$$pc_pag_ref++;} - push @code_args_res, 0; - $code_args_defined = 0; - } elsif (! defined $value) { - ################### - # undefined value # - ################### - if (defined $$pc_lin_ref) {$$pc_lin_ref++;} - if (defined $$pc_pag_ref) {$$pc_pag_ref++;} - push @code_args_res, 0; - $code_args_defined = 0; - } else { - ################## - # valid argument # - ################## - if (defined $$pc_lin_ref) {$$pc_lin_ref += 2;} - if (defined $$pc_pag_ref) {$$pc_pag_ref += 2;} - push @code_args_res, sprintf("%.2X", (($value >> 8) & 0xff)); - push @code_args_res, sprintf("%.2X", ( $value & 0xff)); - } - } - - #set hex code and byte count - if ($code_args_defined) { - $code_entry->[8] = join " ", @code_args_res; - } else { - $$undef_count_ref++; - } - $code_entry->[9] = ($#code_args_res + 1); -} - - -############ -# psop_dsb # -############ -sub psop_dsb { - my $self = shift @_; - my $pc_lin_ref = shift @_; - my $pc_pag_ref = shift @_; - my $loc_cnt_ref = shift @_; - my $error_count_ref = shift @_; - my $undef_count_ref = shift @_; - my $label_value_ref = shift @_; - my $code_entry = shift @_; - - #arguments - my $code_args; - #temporary - my $error; - my $value; - - ################## - # read arguments # - ################## - $code_args = $code_entry->[5]; - - ################## - # check argument # - ################## - if ($code_args =~ /$psop_1_arg/) { - ################ - # one argument # - ################ - ($error, $value) = @{$self->evaluate_expression($1, - $$pc_lin_ref, - $$pc_pag_ref, - $$loc_cnt_ref)}; - if ($error) { - ################ - # syntax error # - ################ - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - } elsif (! defined $value) { - ################### - # undefined value # - ################### - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - } else { - ################## - # valid argument # - ################## - if (defined $$pc_lin_ref) {$$pc_lin_ref = $$pc_lin_ref + $value;} - if (defined $$pc_pag_ref) {$$pc_pag_ref = $$pc_pag_ref + $value;} - $code_entry->[8] = ""; - } - } else { - ################ - # syntax error # - ################ - $error = sprintf("invalid argument for pseudo opcode DS (%s)",$code_args); - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - } -} - -############ -# psop_dsw # -############ -sub psop_dsw { - my $self = shift @_; - my $pc_lin_ref = shift @_; - my $pc_pag_ref = shift @_; - my $loc_cnt_ref = shift @_; - my $error_count_ref = shift @_; - my $undef_count_ref = shift @_; - my $label_value_ref = shift @_; - my $code_entry = shift @_; - - #arguments - my $code_args; - #temporary - my $error; - my $value; - - ################## - # read arguments # - ################## - $code_args = $code_entry->[5]; - - ################## - # check argument # - ################## - if ($code_args =~ /$psop_1_arg/) { - ################ - # one argument # - ################ - ($error, $value) = @{$self->evaluate_expression($1, - $$pc_lin_ref, - $$pc_pag_ref, - $$loc_cnt_ref)}; - if ($error) { - ################ - # syntax error # - ################ - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - } elsif (! defined $value) { - ################### - # undefined value # - ################### - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - } else { - ################## - # valid argument # - ################## - if (defined $$pc_lin_ref) {$$pc_lin_ref = $$pc_lin_ref + ($value * 2);} - if (defined $$pc_pag_ref) {$$pc_pag_ref = $$pc_pag_ref + ($value * 2);} - $code_entry->[8] = ""; - } - } else { - ################ - # syntax error # - ################ - $error = sprintf("invalid argument for pseudo opcode DS.W (%s)",$code_args); - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - } -} - -############ -# psop_equ # -############ -sub psop_equ { - my $self = shift @_; - my $pc_lin_ref = shift @_; - my $pc_pag_ref = shift @_; - my $loc_cnt_ref = shift @_; - my $error_count_ref = shift @_; - my $undef_count_ref = shift @_; - my $label_value_ref = shift @_; - my $code_entry = shift @_; - - #arguments - my $code_label; - my $code_args; - #temporary - my $error; - my $value; - - ################## - # read arguments # - ################## - $code_label = $code_entry->[1]; - $code_args = $code_entry->[5]; - - ################## - # check argument # - ################## - if ($code_args =~ /$psop_1_arg/) { - ################ - # one argument # - ################ - ($error, $value) = @{$self->evaluate_expression($1, - $$pc_lin_ref, - $$pc_pag_ref, - $$loc_cnt_ref)}; - if ($error) { - ################ - # syntax error # - ################ - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - } elsif (! defined $value) { - ################### - # undefined value # - ################### - $$label_value_ref = undef; - $code_entry->[8] = sprintf("-> ????", $value); - } else { - ################## - # valid argument # - ################## - #check if symbol already exists - $$label_value_ref = $value; - $code_entry->[8] = sprintf("-> \$%.4X", $value); - } - } else { - ################ - # syntax error # - ################ - $error = sprintf("invalid argument for pseudo opcode EQU (%s)",$code_args); - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - } -} - -############ -# psop_fcc # -############ -sub psop_fcc { - my $self = shift @_; - my $pc_lin_ref = shift @_; - my $pc_pag_ref = shift @_; - my $loc_cnt_ref = shift @_; - my $error_count_ref = shift @_; - my $undef_count_ref = shift @_; - my $label_value_ref = shift @_; - my $code_entry = shift @_; - - #arguments - my $code_args; - my $string; - my $first_char; - #hex code - my $char; - my @hex_code; - #temporary - - ################## - # read arguments # - ################## - $code_args = $code_entry->[5]; - - ################## - # check argument # - ################## - if ($code_args =~ /$psop_string/) { - $string = $1; - - #trim string - $string =~ s/^\s*//; - $string =~ s/\s*$//; - - #trim first character - $string =~ s/^(.)//; - $first_char = $1; - - #trim send of string - if ($string =~ /^(.*)$first_char/) {$string = $1;} - #printf STDERR "fcc: \"%s\" \"%s\"\n", $first_char, $string; - - #convert string - @hex_code = (); - foreach $char (split //, $string) { - push @hex_code, sprintf("%.2X", ord($char)); - if (defined $$pc_lin_ref) {$$pc_lin_ref++;} - if (defined $$pc_pag_ref) {$$pc_pag_ref++;} - } - #set hex code and byte count - $code_entry->[8] = join " ", @hex_code; - $code_entry->[9] = ($#hex_code + 1); - - } else { - ################ - # syntax error # - ################ - $error = sprintf("invalid argument for pseudo opcode FCC (%s)",$code_args); - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - } -} - - -############# -# psop_fill # -############# -sub psop_fill { - my $self = shift @_; - my $pc_lin_ref = shift @_; - my $pc_pag_ref = shift @_; - my $loc_cnt_ref = shift @_; - my $error_count_ref = shift @_; - my $undef_count_ref = shift @_; - my $label_value_ref = shift @_; - my $code_entry = shift @_; - - #arguments - my $code_args; - my $byte_count; - my $byte_count_res; - my $fill_byte; - my $fill_byte_res; - #hex code - my @hex_code; - #temporary - my $error; - my $value; - my $i; - - ################## - # read arguments # - ################## - $code_args = $code_entry->[5]; - if ($code_entry =~ /$psop_2_args/) { - $fill_byte = $1; - $byte_count = $2; - - ######################## - # determine byte count # - ######################## - ($error, $byte_count_res) = $self->evaluate_expression($byte_count, - $$pc_lin_ref, - $$pc_pag_ref, - $$loc_cnt_ref); - if ($error) { - ################ - # syntax error # - ################ - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - } elsif (! defined $byte_count_res) { - ################### - # undefined value # - ################### - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - $$label_value_ref = undef; - $$undef_count++; - } else { - #################### - # valid byte count # - #################### - ####################### - # determine fill byte # - ####################### - ($error, $fill_byte_res) = $self->evaluate_expression($fill_byte, - $$pc_lin_ref, - $$pc_pag_ref, - $$loc_cnt_ref); - if ($error) { - ################ - # syntax error # - ################ - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - return; - } elsif (! defined $fill_byte_res) { - ################### - # undefined value # - ################### - if (defined $$pc_lin_ref) {$$pc_lin_ref = $$pc_lin_ref + $byte_count_res;} - if (defined $$pc_pag_ref) {$$pc_pag_ref = $$pc_pag_ref + $byte_count_res;} - #undefine hexcode - $code_entry->[8] = undef; - $$undef_count++; - } else { - ################### - # valid fill byte # - ################### - @hex_code = (); - foreach $i (1..$byte_count_ref) { - push @hex_code, sprintf("%.2X", ($fill_byte_res & 0x00)); - } - if (defined $$pc_lin_ref) {$$pc_lin_ref = $$pc_lin_ref + $byte_count_res;} - if (defined $$pc_pag_ref) {$$pc_pag_ref = $$pc_pag_ref + $byte_count_res;} - #set hex code and byte count - $code_entry->[8] = join " ", @hex_code; - $code_entry->[9] = ($#hex_code + 1); - } - } - } else { - ################ - # syntax error # - ################ - $error = sprintf("invalid argument for pseudo opcode FILL (%s)",$code_args); - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - } -} - -############ -# psop_loc # -############ -sub psop_loc { - my $self = shift @_; - my $pc_lin_ref = shift @_; - my $pc_pag_ref = shift @_; - my $loc_cnt_ref = shift @_; - my $error_count_ref = shift @_; - my $undef_count_ref = shift @_; - my $label_value_ref = shift @_; - my $code_entry = shift @_; - - #arguments - my $code_args; - - ################## - # read arguments # - ################## - $code_args = $code_entry->[5]; - - ################## - # check argument # - ################## - if ($code_args =~ /$psop_no_arg/) { - - #increment LOC count - $$loc_cnt_ref++; - - $code_entry->[8] = sprintf("\"`\" = %.4d", $$loc_cnt_ref); - - } else { - ################ - # syntax error # - ################ - $error = sprintf("invalid argument for pseudo opcode LOC (%s)",$code_args); - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - } -} - -############ -# psop_org # -############ -sub psop_org { - my $self = shift @_; - my $pc_lin_ref = shift @_; - my $pc_pag_ref = shift @_; - my $loc_cnt_ref = shift @_; - my $error_count_ref = shift @_; - my $undef_count_ref = shift @_; - my $label_value_ref = shift @_; - my $code_entry = shift @_; - - #arguments - my $code_args; - my $pc_lin; - my $pc_lin_res; - my $pc_pag; - my $pc_pag_res; - #hex code - my @hex_code; - #temporary - my $error; - my $value; - - ################## - # read arguments # - ################## - $code_args = $code_entry->[5]; - for ($code_args) { - ############ - # paged pc # - ############ - /$psop_1_arg/ && do { - $pc_pag = $1; - $code_entry->[8] = ""; - ###################### - # determine paged PC # - ###################### - ($error, $pc_pag_res) = @{$self->evaluate_expression($pc_pag, - $$pc_lin_ref, - $$pc_pag_ref, - $$loc_cnt_ref)}; - if ($error) { - ################ - # syntax error # - ################ - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - #print "$error\n"; - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - $code_entry->[6] = undef; - $code_entry->[7] = undef; - } elsif (! defined $pc_pag_res) { - ################### - # undefined value # - ################### - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - $code_entry->[6] = undef; - $code_entry->[7] = undef; - $$label_value_ref = undef; - } else { - ################## - # valid paged pc # - ################## - $$pc_pag_ref = $pc_pag_res; - $code_entry->[7] = $pc_pag_res; - $$label_value_ref = $pc_pag_res; - ####################### - # determine linear pc # - ####################### - if ((($pc_pag_res & 0xffff) >= 0x0000) && - (($pc_pag_res & 0xffff) < 0x4000)) { - ##################### - # fixed page => $3D # - ##################### - $$pc_lin_ref = ((0x3d * 0x4000) + (($pc_pag_res - 0x0000) & 0xffff)); - $code_entry->[6] = $$pc_lin_ref; - } elsif ((($pc_pag_res & 0xffff) >= 0x4000) && - (($pc_pag_res & 0xffff) < 0x8000)) { - ##################### - # fixed page => $3E # - ##################### - $$pc_lin_ref = ((0x3e * 0x4000) + (($pc_pag_res - 0x4000) & 0xffff)); - $code_entry->[6] = $$pc_lin_ref; - } elsif ((($pc_pag_res & 0xffff) >= 0x8000) && - (($pc_pag_res & 0xffff) < 0xC000)) { - ##################### - # paged memory area # - ##################### - $$pc_lin_ref = (((($pc_pag_res >> 16) & 0xff) * 0x4000) + (($pc_pag_res - 0x8000) & 0xffff)); - $code_entry->[6] = $$pc_lin_ref; - } else { - #################### - # fixed page => 3F # - #################### - $$pc_lin_ref = ((0x3f * 0x4000) + (($pc_pag_res - 0xc000) & 0xffff)); - $code_entry->[6] = $$pc_lin_ref; - } - } - last;}; - ####################### - # paged and linear PC # - ####################### - /$psop_2_args/ && do { - $pc_pag = $1; - $pc_lin = $2; - #printf STDERR "ORG %s ->\n", $code_args; - #printf STDERR "ORG %s %s ->\n", $pc_pag, $pc_lin; - $code_entry->[8] = ""; - ###################### - # determine paged PC # - ###################### - ($error, $pc_pag_res) = @{$self->evaluate_expression($pc_pag, - $$pc_lin_ref, - $$pc_pag_ref, - $$loc_cnt_ref)}; - if ($error) { - ################ - # syntax error # - ################ - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - #print "$error\n"; - $$pc_pag_ref = undef; - $code_entry->[7] = undef; - } elsif (! defined $pc_pag_res) { - ################### - # undefined value # - ################### - $$pc_pag_ref = undef; - $code_entry->[7] = undef; - $$label_value_ref = undef; - } else { - ################## - # valid paged pc # - ################## - $$pc_pag_ref = $pc_pag_res; - $code_entry->[7] = $pc_pag_res; - $$label_value_ref = $pc_pag_res; - } - ####################### - # determine linear PC # - ####################### - if ($pc_lin =~ /$op_unmapped/) { - ######################### - # linear pc is unmapped # - ######################### - $$pc_lin_ref = undef; - $code_entry->[6] = undef; - } else { - ####################### - # evaluate expression # - ####################### - ($error, $pc_lin_res) = @{$self->evaluate_expression($pc_lin, - $$pc_lin_ref, - $$pc_pag_ref, - $$loc_cnt_ref)}; - if ($error) { - ################ - # syntax error # - ################ - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - #print "$error\n"; - $$pc_lin_ref = undef; - $code_entry->[6] = undef; - } elsif (! defined $pc_pag_res) { - ################### - # undefined value # - ################### - $$pc_lin_ref = undef; - $code_entry->[6] = undef; - } else { - ################### - # valid linear pc # - ################### - $$pc_lin_ref = $pc_lin_res; - $code_entry->[6] = $pc_lin_res; - } - } - #printf STDERR "ORG %X %X\n", $pc_pag_res, $pc_lin_res; - last;}; - ################ - # syntax error # - ################ - $error = sprintf("invalid argument for pseudo opcode ORG (%s)",$code_args); - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - #print "$error\n"; - $$error_count_ref++; - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - $code_entry->[6] = undef; - $code_entry->[7] = undef; - $code_entry->[8] = undef; - } -} - -############## -# psop_setdp # -############## -sub psop_setdp { - my $self = shift @_; - my $pc_lin_ref = shift @_; - my $pc_pag_ref = shift @_; - my $loc_cnt_ref = shift @_; - my $error_count_ref = shift @_; - my $undef_count_ref = shift @_; - my $label_value_ref = shift @_; - my $code_entry = shift @_; - - #arguments - my $code_args; - #temporary - my $error; - my $value; - - ################## - # read arguments # - ################## - $code_label = $code_entry->[1]; - $code_args = $code_entry->[5]; - - ################## - # check argument # - ################## - if ($code_args =~ /$psop_1_arg/) { - ################ - # one argument # - ################ - ($error, $value) = $self->evaluate_expression($1, - $$pc_lin_ref, - $$pc_pag_ref, - $$loc_cnt_ref); - if ($error) { - ################ - # syntax error # - ################ - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - } else { - ################## - # valid argument # - ################## - #set direct page - $self->{dir_page} = $value; - } - } else { - ################ - # syntax error # - ################ - $error = sprintf("invalid argument for pseudo opcode CPU (%s)",$code_args); - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - } -} - -################ -# psop_unalign # -################ -sub psop_unalign { - my $self = shift @_; - my $pc_lin_ref = shift @_; - my $pc_pag_ref = shift @_; - my $loc_cnt_ref = shift @_; - my $error_count_ref = shift @_; - my $undef_count_ref = shift @_; - my $label_value_ref = shift @_; - my $code_entry = shift @_; - - #arguments - my $code_args; - my $bit_mask; - my $bit_mask_res; - my $fill_byte; - my $fill_byte_res; - #hex code - my @hex_code; - #temporary - my $error; - my $value; - - ################## - # read arguments # - ################## - $code_args = $code_entry->[5]; - for ($code_args) { - ############ - # bit mask # - ############ - /$psop_1_arg/ && do { - $bit_mask = $1; - ###################### - # determine bit mask # - ###################### - ($error, $bit_mask_res) = $self->evaluate_expression($bit_mask, - $$pc_lin_ref, - $$pc_pag_ref, - $$loc_cnt_ref); - if ($error) { - ################ - # syntax error # - ################ - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - $code_entry->[6] = undef; - $code_entry->[7] = undef; - $$label_value_ref = undef; - } elsif (! defined $bit_mask_res) { - ################### - # undefined value # - ################### - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - $code_entry->[6] = undef; - $code_entry->[7] = undef; - $$label_value_ref = undef; - } elsif (! defined $$pc_pag_ref) { - ###################### - # undefined paged PC # - ###################### - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - $code_entry->[6] = undef; - $code_entry->[7] = undef; - $$label_value_ref = undef; - } else { - ################## - # valid bit mask # - ################## - while (~$$pc_pag_ref & $bit_mask_res) { - if (defined $$pc_lin_ref) {$$pc_lin_ref++;} - if (defined $$pc_pag_ref) {$$pc_pag_ref++;} - } - $code_entry->[6] = $$pc_lin_ref; - $code_entry->[7] = $$pc_pag_ref; - $code_entry->[8] = ""; - $$label_value_ref = $$pc_pag_ref; - } - last;}; - ####################### - # bit mask, fill byte # - ####################### - /$psop_2_args/ && do { - $bit_mask = $1; - $fill_byte = $2; - ###################### - # determine bit mask # - ###################### - ($error, $bit_mask_res) = $self->evaluate_expression($bit_mask, - $$pc_lin_ref, - $$pc_pag_ref, - $$loc_cnt_ref); - if ($error) { - ################ - # syntax error # - ################ - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - $$label_value_ref = undef; - } elsif (! defined $bit_mask_res) { - ################### - # undefined value # - ################### - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - $$label_value_ref = undef; - $$undef_count++; - } else { - ################## - # valid bit mask # - ################## - ####################### - # determine fill byte # - ####################### - ($error, $fill_byte_res) = $self->evaluate_expression($fill_byte, - $$pc_lin_ref, - $$pc_pag_ref, - $$loc_cnt_ref); - if ($error) { - ################ - # syntax error # - ################ - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - return; - } elsif (! defined $fill_byte_res) { - ################### - # undefined value # - ################### - while (~$$pc_pag_ref & $bit_mask_res) { - if (defined $$pc_lin_ref) {$$pc_lin_ref++;} - if (defined $$pc_pag_ref) {$$pc_pag_ref++;} - } - $$label_value_ref = $$pc_pag_ref; - #undefine hexcode - $code_entry->[8] = undef; - $$undef_count++; - } else { - ################### - # valid fill byte # - ################### - @hex_code = (); - while (~$$pc_pag_ref & $bit_mask_res) { - if (defined $$pc_lin_ref) {$$pc_lin_ref++;} - if (defined $$pc_pag_ref) {$$pc_pag_ref++;} - push @hex_code, sprintf("%.2X", ($fill_byte_res & 0xff)); - } - #set hex code and byte count - $code_entry->[8] = join " ", @hex_code; - $code_entry->[9] = ($#hex_code + 1); - } - } - last;}; - ################ - # syntax error # - ################ - $error = sprintf("invalid argument for pseudo opcode UNALIGN (%s)",$code_args); - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - $code_entry->[8] = undef; - } -} - -############ -# psop_zmb # -############ -sub psop_zmb { - my $self = shift @_; - my $pc_lin_ref = shift @_; - my $pc_pag_ref = shift @_; - my $loc_cnt_ref = shift @_; - my $error_count_ref = shift @_; - my $undef_count_ref = shift @_; - my $label_value_ref = shift @_; - my $code_entry = shift @_; - - #arguments - my $code_label; - my $code_args; - #byte count - my $byte_count; - #hex code - my @hex_code; - #temporary - my $error; - my $value; - - ################## - # read arguments # - ################## - $code_args = $code_entry->[5]; - - ################## - # check argument # - ################## - if ($code_args =~ /$psop_1_arg/) { - ################ - # one argument # - ################ - ($error, $value) = @{$self->evaluate_expression($1, - $$pc_lin_ref, - $$pc_pag_ref, - $$loc_cnt_ref)}; - if ($error) { - ################ - # syntax error # - ################ - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - } elsif (! defined $value) { - ################### - # undefined value # - ################### - #undefine hexcode - $$undef_count++; - $$pc_lin_ref = undef; - $$pc_pag_ref = undef; - } else { - ################## - # valid argument # - ################## - @hex_code = (); - foreach $byte_count (1..$value) { - push @hex_code, "00"; - } - if (defined $$pc_lin_ref) {$$pc_lin_ref = ($$pc_lin_ref + $value);} - if (defined $$pc_pag_ref) {$$pc_pag_ref = ($$pc_lin_ref + $value);} - #set hex code and byte count - $code_entry->[8] = join " ", @hex_code; - $code_entry->[9] = ($#hex_code + 1); - } - } else { - ################ - # syntax error # - ################ - $error = sprintf("invalid argument for pseudo opcode ZMB (%s)",$code_args); - $code_entry->[10] = [@{$code_entry->[10]}, $error]; - $$error_count_ref++; - } -} - -############### -# psop_ignore # -############### -sub psop_ignore { - my $self = shift @_; - my $pc_lin_ref = shift @_; - my $pc_pag_ref = shift @_; - my $loc_cnt_ref = shift @_; - my $error_count_ref = shift @_; - my $undef_count_ref = shift @_; - my $label_value_ref = shift @_; - my $code_entry = shift @_; - - ################## - # valid argument # - ################## - #check if symbol already exists - $code_entry->[8] = sprintf("IGNORED!"); -} - -######################## -# address mode ckecker # -######################## -############# -# check_inh # -############# -sub check_inh { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - - $$result_ref = $$hex_ref; - return 1; -} - -############## -# check_imm8 # -############## -sub check_imm8 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - $self->get_byte(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value); - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; -} - -############### -# check_imm16 # -############### -sub check_imm16 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - $self->get_word(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value); - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; -} - -############# -# check_dir # -############# -sub check_dir { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - if ($arg_ref->[0] =~ $op_keywords) {return 0;} - if ($self->get_dir(0, \$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value)) { - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################## -# check_s12x_dir # -################## -sub check_s12x_dir { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - if ($arg_ref->[0] =~ $op_keywords) {return 0;} - if ($self->get_dir($self->{dir_page}, \$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value)) { - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -############# -# check_ext # -############# -sub check_ext { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - if ($arg_ref->[0] =~ $op_keywords) {return 0;} - $self->get_word(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value); - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; -} - -############## -# check_rel8 # -############## -sub check_rel8 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - #printf STDERR "check_rel8: %s\n", $arg_ref->[0]; - if ($self->get_rel8(2, \$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value)) { - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -############### -# check_rel16 # -############### -sub check_rel16 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - $self->get_rel16(4, \$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value); - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; -} - -############# -# check_idx # -############# -sub check_idx { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - #printf STDERR "IDX: \"%s\"\n", join("\", \"", - # $arg_ref->[0], - # $arg_ref->[1], - # $arg_ref->[2], - # $arg_ref->[3]); - - if ($self->get_idx(\$arg_ref->[0], - \$arg_ref->[1], - \$arg_ref->[2], - \$arg_ref->[3], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value)) { - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -############## -# check_idx1 # -############## -sub check_idx1 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - if ($self->get_idx1(\$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value)) { - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -############## -# check_idx2 # -############## -sub check_idx2 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - if ($self->get_idx2(0xe2, - \$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value)) { - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -############### -# check_ididx # -############### -sub check_ididx { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - if ($self->get_ididx(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value)) { - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -############### -# check_iidx2 # -############### -sub check_iidx2 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - if ($self->get_idx2(0xe3, - \$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value)) { - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################# -# check_dir_msk # -################# -sub check_dir_msk { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $mask; - my $address; - - if ($arg_ref->[0] =~ $op_keywords) {return 0;} - $self->get_byte(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$mask); - if ($self->get_dir(0, \$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - if ((defined $mask) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $mask)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -###################### -# check_s12x_dir_msk # -###################### -sub check_s12x_dir_msk { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $mask; - my $address; - - if ($arg_ref->[0] =~ $op_keywords) {return 0;} - $self->get_byte(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$mask); - if ($self->get_dir($self->{dir_page}, \$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - if ((defined $mask) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $mask)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################# -# check_ext_msk # -################# -sub check_ext_msk { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $mask; - my $address; - - if ($arg_ref->[0] =~ $op_keywords) {return 0;} - $self->get_byte(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$mask); - $self->get_word(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address); - if ((defined $mask) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $mask)); - } else { - $$result_ref = undef; - } - return 1; -} - -################# -# check_idx_msk # -################# -sub check_idx_msk { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $mask; - my $address; - - $self->get_byte(\$arg_ref->[4], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$mask); - if ($self->get_idx(\$arg_ref->[0], - \$arg_ref->[1], - \$arg_ref->[2], - \$arg_ref->[3], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - if ((defined $mask) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $mask)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################## -# check_idx1_msk # -################## -sub check_idx1_msk { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $mask; - my $address; - - $self->get_byte(\$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$mask); - if ($self->get_idx1(\$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - if ((defined $mask) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $mask)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################## -# check_idx2_msk # -################## -sub check_idx2_msk { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $mask; - my $address; - - $self->get_byte(\$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$mask); - if ($self->get_idx2(0xe2, - \$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - if ((defined $mask) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $mask)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -##################### -# check_dir_msk_rel # -##################### -sub check_dir_msk_rel { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $rel; - my $mask; - my $address; - - if ($arg_ref->[0] =~ $op_keywords) {return 0;} - if ($self->get_dir(0, \$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - $self->get_byte(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$mask); - $self->get_rel8(4, \$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$rel); - if ((defined $rel) && (defined $mask) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $mask, $rel)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -########################## -# check_s12x_dir_msk_rel # -########################## -sub check_s12x_dir_msk_rel { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $rel; - my $mask; - my $address; - - #printf STDERR "check_s12x_dir_msk_rel: \"%s\" %X\n", $arg_ref->[0], $dir_pag; - if ($arg_ref->[0] =~ $op_keywords) {return 0;} - if ($self->get_dir($self->{dir_page}, \$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - $self->get_byte(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$mask); - $self->get_rel8(4, \$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$rel); - if ((defined $rel) && (defined $mask) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $mask, $rel)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -##################### -# check_ext_msk_rel # -##################### -sub check_ext_msk_rel { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $rel; - my $mask; - my $address; - - if ($arg_ref->[0] =~ $op_keywords) {return 0;} - $self->get_rel8(5, \$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$rel); - $self->get_byte(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$mask); - $self->get_word(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address); - if ((defined $rel) && (defined $mask) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $mask, $rel)); - } else { - $$result_ref = undef; - } - return 1; -} - -##################### -# check_idx_msk_rel # -##################### -sub check_idx_msk_rel { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $rel; - my $mask; - my $address; - - $self->get_rel8(4, \$arg_ref->[5], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$rel); - $self->get_byte(\$arg_ref->[4], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$mask); - if ($self->get_idx(\$arg_ref->[0], - \$arg_ref->[1], - \$arg_ref->[2], - \$arg_ref->[3], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - if ((defined $rel) && (defined $mask) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $mask, $rel)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -###################### -# check_idx1_msk_rel # -###################### -sub check_idx1_msk_rel { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $rel; - my $mask; - my $address; - - $self->get_rel8(5, \$arg_ref->[3], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$rel); - $self->get_byte(\$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$mask); - if ($self->get_idx1(\$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - if ((defined $rel) && (defined $mask) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $mask, $rel)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -###################### -# check_idx2_msk_rel # -###################### -sub check_idx2_msk_rel { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $rel; - my $mask; - my $address; - - $self->get_rel8(6, \$arg_ref->[3], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$rel); - $self->get_byte(\$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$mask); - if ($self->get_idx2(0xe2, - \$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - if ((defined $rel) && (defined $mask) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $mask, $rel)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -#################### -# check_ext_pgimpl # -#################### -sub check_ext_pgimpl { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $address; - - if ($arg_ref->[0] =~ $op_keywords) {return 0;} - $self->get_ext_pgimpl(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address); - if (defined $address) { - $$result_ref = join(" ", ($$hex_ref, $address)); - } else { - $$result_ref = undef; - } - return 1; -} - -################ -# check_ext_pg # -################ -sub check_ext_pg { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $page; - my $address; - - if ($arg_ref->[0] =~ $op_keywords) {return 0;} - $self->get_byte(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$page); - $self->get_word(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address); - $$result_ref = join(" ", ($$hex_ref, $address, $page)); - return 1; -} - -################ -# check_idx_pg # -################ -sub check_idx_pg { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $page; - my $address; - - $self->get_byte(\$arg_ref->[4], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$page); - if ($self->get_idx(\$arg_ref->[0], - \$arg_ref->[1], - \$arg_ref->[2], - \$arg_ref->[3], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - if ((defined $page) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $page)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################# -# check_idx1_pg # -################# -sub check_idx1_pg { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $page; - my $address; - - $self->get_byte(\$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$page); - if ($self->get_idx1(\$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - if ((defined $page) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $page)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################# -# check_idx2_pg # -################# -sub check_idx2_pg { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $page; - my $address; - - $self->get_byte(\$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$page); - if ($self->get_idx2(0xe2, - \$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - if ((defined $page) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $page)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################## -# check_ididx_pg # -################## -sub check_ididx_pg { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $page; - my $address; - - $self->get_byte(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$page); - if ($self->get_ididx(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - if ((defined $page) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $page)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################## -# check_iidx2_pg # -################## -sub check_iidx2_pg { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $page; - my $address; - - $self->get_byte(\$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$page); - if ($self->get_idx2(0xe3, - \$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - if ((defined $page) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $page)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################## -# check_imm8_ext # -################## -sub check_imm8_ext { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $data; - my $address; - - if ($arg_ref->[1] =~ $op_keywords) {return 0;} - $self->get_word(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address); - $self->get_byte(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$data); - if ((defined $data) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $data, $address)); - } else { - $$result_ref = undef; - } - return 1; -} - -################## -# check_imm8_idx # -################## -sub check_imm8_idx { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $data; - my $address; - - if ($self->get_idx(\$arg_ref->[1], - \$arg_ref->[2], - \$arg_ref->[3], - \$arg_ref->[4], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - $self->get_byte(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$data); - if ((defined $data) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $data)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################### -# check_imm8_idx1 # -################### -sub check_imm8_idx1 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $data; - my $address; - - if ($self->get_idx1(\$arg_ref->[1], - \$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - $self->get_byte(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$data); - if ((defined $data) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $data)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################### -# check_imm8_idx2 # -################### -sub check_imm8_idx2 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $data; - my $address; - - if ($self->get_idx2(\$arg_ref->[1], - \$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - $self->get_byte(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$data); - if ((defined $data) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $data)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -#################### -# check_imm8_ididx # -#################### -sub check_imm8_ididx { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $data; - my $address; - - if ($self->get_ididx(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - $self->get_byte(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$data); - if ((defined $data) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $data)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################### -# check_imm8_iidx2 # -################### -sub check_imm8_iidx2 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $data; - my $address; - - if ($self->get_idx2(\$arg_ref->[1], - \$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - $self->get_byte(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$data); - if ((defined $data) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $data)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################### -# check_imm16_ext # -################### -sub check_imm16_ext { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $data; - my $address; - - if ($arg_ref->[1] =~ $op_keywords) {return 0;} - $self->get_word(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address); - $self->get_word(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$data); - if ((defined $data) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $data, $address)); - } else { - $$result_ref = undef; - } - return 1; -} - -################### -# check_imm16_idx # -################### -sub check_imm16_idx { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $data; - my $address; - - if ($self->get_idx(\$arg_ref->[1], - \$arg_ref->[2], - \$arg_ref->[3], - \$arg_ref->[4], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - $self->get_word(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$data); - if ((defined $data) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $data)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -#################### -# check_imm16_idx1 # -#################### -sub check_imm16_idx1 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $data; - my $address; - - if ($self->get_idx1(\$arg_ref->[1], - \$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - $self->get_word(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$data); - if ((defined $data) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $data)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -#################### -# check_imm16_idx2 # -#################### -sub check_imm16_idx2 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $data; - my $address; - - if ($self->get_idx2(\$arg_ref->[1], - \$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - $self->get_word(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$data); - if ((defined $data) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $data)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -##################### -# check_imm16_ididx # -##################### -sub check_imm16_ididx { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $data; - my $address; - - if ($self->get_ididx(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - $self->get_word(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$data); - if ((defined $data) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $data)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -##################### -# check_imm16_iidx2 # -##################### -sub check_imm16_iidx2 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $data; - my $address; - - if ($self->get_idx2(\$arg_ref->[1], - \$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address)) { - $self->get_word(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$data); - if ((defined $data) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $data)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################# -# check_ext_ext # -################# -sub check_ext_ext { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($arg_ref->[0] =~ $op_keywords) {return 0;} - if ($arg_ref->[1] =~ $op_keywords) {return 0;} - $self->get_word(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1); - $self->get_word(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0); - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; -} - -################# -# check_ext_idx # -################# -sub check_ext_idx { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - #printf STDERR "check_ext_idx: \"$arg_ref->[0]\" \"$arg_ref->[1]\" \"$arg_ref->[2]\" \"$arg_ref->[3]\" \"$arg_ref->[4]\"\n"; - - if ($arg_ref->[0] =~ $op_keywords) {return 0;} - if ($self->get_idx(\$arg_ref->[1], - \$arg_ref->[2], - \$arg_ref->[3], - \$arg_ref->[4], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - $self->get_word(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0); - if ((defined $addr1) && (defined $addr0)) { - $$result_ref = join(" ", ($$hex_ref, $addr1, $addr0)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################## -# check_ext_idx1 # -################## -sub check_ext_idx1 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - #printf STDERR "check_ext_idx1: \"$arg_ref->[0]\" \"$arg_ref->[1]\" \"$arg_ref->[2]\"\n"; - - if ($arg_ref->[0] =~ $op_keywords) {return 0;} - if ($self->get_idx1(\$arg_ref->[1], - \$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - $self->get_word(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0); - if ((defined $addr1) && (defined $addr0)) { - $$result_ref = join(" ", ($$hex_ref, $addr1, $addr0)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################## -# check_ext_idx2 # -################## -sub check_ext_idx2 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - #printf STDERR "check_ext_idx2: \"$arg_ref->[0]\" \"$arg_ref->[1]\" \"$arg_ref->[2]\"\n"; - - if ($arg_ref->[0] =~ $op_keywords) {return 0;} - if ($self->get_idx2(\$arg_ref->[1], - \$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - $self->get_word(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0); - if ((defined $addr1) && (defined $addr0)) { - $$result_ref = join(" ", ($$hex_ref, $addr1, $addr0)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################### -# check_ext_ididx # -################### -sub check_ext_ididx { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - #printf STDERR "check_ext_ididx: \"$arg_ref->[0]\" \"$arg_ref->[1]\"\n"; - - if ($arg_ref->[0] =~ $op_keywords) {return 0;} - if ($self->get_ididx(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - $self->get_word(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0); - if ((defined $addr1) && (defined $addr0)) { - $$result_ref = join(" ", ($$hex_ref, $addr1, $addr0)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################### -# check_ext_iidx2 # -################### -sub check_ext_iidx2 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - #printf STDERR "check_ext_iidx2: \"$arg_ref->[0]\" \"$arg_ref->[1]\" \"$arg_ref->[2]\"\n"; - - if ($arg_ref->[0] =~ $op_keywords) {return 0;} - if ($self->get_idx2(\$arg_ref->[1], - \$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - $self->get_word(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0); - if ((defined $addr1) && (defined $addr0)) { - $$result_ref = join(" ", ($$hex_ref, $addr1, $addr0)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################# -# check_idx_ext # -################# -sub check_idx_ext { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($arg_ref->[4] =~ $op_keywords) {return 0;} - $self->get_word(\$arg_ref->[4], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1); - if ($self->get_idx(\$arg_ref->[0], - \$arg_ref->[1], - \$arg_ref->[2], - \$arg_ref->[3], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################# -# check_idx_idx # -################# -sub check_idx_idx { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_idx(\$arg_ref->[4], - \$arg_ref->[5], - \$arg_ref->[6], - \$arg_ref->[7], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_idx(\$arg_ref->[0], - \$arg_ref->[1], - \$arg_ref->[2], - \$arg_ref->[3], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -################## -# check_idx_idx1 # -################## -sub check_idx_idx1 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_idx1(\$arg_ref->[4], - \$arg_ref->[5], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_idx(\$arg_ref->[0], - \$arg_ref->[1], - \$arg_ref->[2], - \$arg_ref->[3], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -################## -# check_idx_idx2 # -################## -sub check_idx_idx2 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_idx2(\$arg_ref->[4], - \$arg_ref->[5], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_idx(\$arg_ref->[0], - \$arg_ref->[1], - \$arg_ref->[2], - \$arg_ref->[3], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -################### -# check_idx_ididx # -################### -sub check_idx_ididx { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_ididx(\$arg_ref->[4], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_idx(\$arg_ref->[0], - \$arg_ref->[1], - \$arg_ref->[2], - \$arg_ref->[3], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -################### -# check_idx_iidx2 # -################### -sub check_idx_iidx2 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_idx2(\$arg_ref->[4], - \$arg_ref->[5], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_idx(\$arg_ref->[0], - \$arg_ref->[1], - \$arg_ref->[2], - \$arg_ref->[3], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -################## -# check_idx1_ext # -################## -sub check_idx1_ext { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($arg_ref->[2] =~ $op_keywords) {return 0;} - $self->get_word(\$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1); - if ($self->get_idx1(\$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################## -# check_idx1_idx # -################## -sub check_idx1_idx { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_idx(\$arg_ref->[2], - \$arg_ref->[3], - \$arg_ref->[4], - \$arg_ref->[5], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_idx1(\$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -################### -# check_idx1_idx1 # -################### -sub check_idx1_idx1 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_idx1(\$arg_ref->[2], - \$arg_ref->[3], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_idx1(\$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -################### -# check_idx1_idx2 # -################### -sub check_idx1_idx2 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_idx2(\$arg_ref->[2], - \$arg_ref->[3], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_idx1(\$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -#################### -# check_idx1_ididx # -#################### -sub check_idx1_ididx { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_ididx(\$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_idx1(\$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -#################### -# check_idx1_iidx2 # -#################### -sub check_idx1_iidx2 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_idx2(\$arg_ref->[2], - \$arg_ref->[3], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_idx1(\$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -################## -# check_idx2_ext # -################## -sub check_idx2_ext { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($arg_ref->[2] =~ $op_keywords) {return 0;} - $self->get_word(\$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1); - if ($self->get_idx2(\$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################## -# check_idx2_idx # -################## -sub check_idx2_idx { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_idx(\$arg_ref->[2], - \$arg_ref->[3], - \$arg_ref->[4], - \$arg_ref->[5], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_idx2(\$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -################### -# check_idx2_idx1 # -################### -sub check_idx2_idx1 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_idx1(\$arg_ref->[2], - \$arg_ref->[3], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_idx2(\$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -################### -# check_idx2_idx2 # -################### -sub check_idx2_idx2 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_idx2(\$arg_ref->[2], - \$arg_ref->[3], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_idx2(\$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -#################### -# check_idx2_ididx # -#################### -sub check_idx2_ididx { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_ididx(\$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_idx2(\$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -#################### -# check_idx2_iidx2 # -#################### -sub check_idx2_iidx2 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_idx2(\$arg_ref->[2], - \$arg_ref->[3], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_idx2(\$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -################### -# check_ididx_ext # -################### -sub check_ididx_ext { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($arg_ref->[1] =~ $op_keywords) {return 0;} - $self->get_word(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1); - if ($self->get_ididx(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################### -# check_ididx_idx # -################### -sub check_ididx_idx { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_idx(\$arg_ref->[1], - \$arg_ref->[2], - \$arg_ref->[3], - \$arg_ref->[4], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_ididx(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -#################### -# check_ididx_idx1 # -#################### -sub check_ididx_idx1 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_idx1(\$arg_ref->[1], - \$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_ididx(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -#################### -# check_ididx_idx2 # -#################### -sub check_ididx_idx2 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_idx2(\$arg_ref->[1], - \$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_ididx(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -##################### -# check_ididx_ididx # -##################### -sub check_ididx_ididx { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_ididx(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_ididx(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -##################### -# check_ididx_iidx2 # -##################### -sub check_ididx_iidx2 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_idx2(\$arg_ref->[1], - \$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_ididx(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -################### -# check_iidx2_ext # -################### -sub check_iidx2_ext { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($arg_ref->[2] =~ $op_keywords) {return 0;} - $self->get_word(\$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1); - if ($self->get_idx2(\$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################### -# check_iidx2_idx # -################### -sub check_iidx2_idx { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_idx(\$arg_ref->[2], - \$arg_ref->[3], - \$arg_ref->[4], - \$arg_ref->[5], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_idx2(\$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -#################### -# check_iidx2_idx1 # -#################### -sub check_iidx2_idx1 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_idx1(\$arg_ref->[2], - \$arg_ref->[3], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_idx2(\$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -#################### -# check_iidx2_idx2 # -#################### -sub check_iidx2_idx2 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_idx2(\$arg_ref->[2], - \$arg_ref->[3], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_idx2(\$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -##################### -# check_iidx2_ididx # -##################### -sub check_iidx2_ididx { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_ididx(\$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_idx2(\$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -##################### -# check_iidx2_iidx2 # -##################### -sub check_iidx2_iidx2 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $addr0; - my $addr1; - - if ($self->get_idx2(\$arg_ref->[2], - \$arg_ref->[3], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr1)) { - if ($self->get_idx2(\$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$addr0)) { - if ((defined $addr0) && (defined $addr1)) { - $$result_ref = join(" ", ($$hex_ref, $addr0, $addr1)); - } else { - $$result_ref = undef; - } - return 1; - } - } - return 0; -} - -############# -# check_exg # -############# -sub check_exg { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - if ($self->get_tfr($tfr_s12, - $tfr_exg, - \$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value)) { - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################## -# check_s12x_exg # -################## -sub check_s12x_exg { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - if ($self->get_tfr($tfr_s12x, - $tfr_exg, - \$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value)) { - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -############# -# check_tfr # -############# -sub check_tfr { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - if ($self->get_tfr($tfr_s12, - $tfr_tfr, - \$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value)) { - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################## -# check_s12x_tfr # -################## -sub check_s12x_tfr { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - if ($self->get_tfr($tfr_s12x, - $tfr_tfr, - \$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value)) { - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -############# -# check_sex # -############# -sub check_sex { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - if ($self->get_tfr($tfr_s12, - $tfr_sex, - \$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value)) { - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -################## -# check_s12x_sex # -################## -sub check_s12x_sex { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - if ($self->get_tfr($tfr_s12x, - $tfr_sex, - \$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value)) { - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -############## -# check_dbeq # -############## -sub check_dbeq { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - if ($self->get_dbeq(0x00, - \$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value)) { - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -############## -# check_dbne # -############## -sub check_dbne { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - if ($self->get_dbeq(0x20, - \$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value)) { - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -############## -# check_tbeq # -############## -sub check_tbeq { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - if ($self->get_dbeq(0x40, - \$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value)) { - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -############## -# check_tbne # -############## -sub check_tbne { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - if ($self->get_dbeq(0x60, - \$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value)) { - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -############## -# check_ibeq # -############## -sub check_ibeq { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - if ($self->get_dbeq(0x80, - \$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value)) { - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -############## -# check_ibne # -############## -sub check_ibne { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - if ($self->get_dbeq(0xa0, - \$arg_ref->[0], - \$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value)) { - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -############## -# check_trap # -############## -sub check_trap { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - $self->get_trap(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value); - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; -} - -################### -# check_s12x_trap # -################### -sub check_s12x_trap { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - $self->get_s12x_trap(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value); - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; -} - -################### -# check_hc11_indx # -################### -sub check_hc11_indx { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - #printf STDERR "check_hc11_indx: %s \"%s\"\n", $#$arg_ref, $arg_ref->[0]; - if ($arg_ref->[0] =~ /^\s*$/) { - $value = "00"; - } else { - $self->get_byte(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value); - } - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; -} - -################### -# check_hc11_indy # -################### -sub check_hc11_indy { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - if ($arg_ref->[0] =~ /^\s*$/) { - $value = "00"; - } else { - $self->get_byte(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value); - } - if (defined $value) { - $$result_ref = join(" ", ($$hex_ref, $value)); - } else { - $$result_ref = undef; - } - return 1; -} - -####################### -# check_hc11_indx_msk # -####################### -sub check_hc11_indx_msk { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $mask; - my $address; - - $self->get_byte(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$mask); - $self->get_byte(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address); - if ((defined $mask) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $mask)); - } else { - $$result_ref = undef; - } - return 1; -} - -####################### -# check_hc11_indy_msk # -####################### -sub check_hc11_indy_msk { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $mask; - my $address; - - $self->get_byte(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$mask); - $self->get_byte(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address); - if ((defined $mask) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $mask)); - } else { - $$result_ref = undef; - } - return 1; -} - -########################### -# check_hc11_indx_msk_rel # -########################### -sub check_hc11_indx_msk_rel { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $rel; - my $mask; - my $address; - - if ($self->get_rel8(4, \$arg_ref->[5], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$rel)) { - $self->get_byte(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$mask); - $self->get_byte(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address); - if ((defined $mask) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $mask)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -########################### -# check_hc11_indy_msk_rel # -########################### -sub check_hc11_indy_msk_rel { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $rel; - my $mask; - my $address; - - if ($self->get_rel8(5, \$arg_ref->[5], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$rel)) { - $self->get_byte(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$mask); - $self->get_bute(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$address); - if ((defined $mask) && (defined $address)) { - $$result_ref = join(" ", ($$hex_ref, $address, $mask)); - } else { - $$result_ref = undef; - } - return 1; - } - return 0; -} - -#################### -# check_xgate_imm3 # -#################### -sub check_xgate_imm3 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - my $hex; - - $self->get_xgate_imm(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value); - $hex = $$hex_ref; - $hex =~ s/\s//g; - $hex = hex($hex); - if (defined $value) { - if ($value == ($value & 0x7)) { - $value = (($value<<8) | $hex); - $$result_ref = sprintf("%.2X %.2X", (($value>>8) & 0xff), ($value & 0xff)); - return 1; - } else { - $$error_ref = "invalid semaphore index"; - return 1; - } - } else { - $$result_ref = sprintf("%.1X? %.2X", (($hex>>12) & 0xf), ($hex & 0xff)); - return 1; - } -} - -#################### -# check_xgate_imm4 # -#################### -sub check_xgate_imm4 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - my $reg; - my $hex; - - if ($self->get_xgate_gpr(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg)) { - $self->get_xgate_imm(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value); - $hex = $$hex_ref; - $hex =~ s/\s//g; - $hex = hex($hex); - if (defined $value) { - $value = $value & 0xf; - $value = (($reg<<8) | ($value<<4) | $hex); - $$result_ref = sprintf("%.2X %.2X", (($value>>8) & 0xff), ($value & 0xff)); - return 1; - } else { - $value = (($reg<<8) | $hex); - $$result_ref = sprintf("%.2X ?%.1X", (($value>>8) & 0xff), ($value & 0x0f)); - return 1; - } - } - return 0; -} - -#################### -# check_xgate_imm8 # -#################### -sub check_xgate_imm8 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - my $reg; - my $hex; - - if ($self->get_xgate_gpr(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg)) { - $self->get_xgate_imm(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value); - $hex = $$hex_ref; - $hex =~ s/\s//g; - $hex = hex($hex); - if (defined $value) { - $value = $value & 0xff; - $value = (($reg<<8) | $value | $hex); - $$result_ref = sprintf("%.2X %.2X", (($value>>8) & 0xff), ($value & 0xff)); - return 1; - } else { - $$result_ref = sprintf("%.1X? ??", (($hex>>12) & 0x0f)); - return 1; - } - } - return 0; -} - -##################### -# check_xgate_imm16 # -##################### -sub check_xgate_imm16 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - my $lvalue; - my $hvalue; - my $reg; - my $hex; - - if ($self->get_xgate_gpr(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg)) { - $self->get_xgate_imm(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value); - $hex = $$hex_ref; - $hex =~ s/\s//g; - $hex = hex($hex); - if (defined $value) { - $lvalue = $value & 0xff; - $hvalue = ($value>>8) & 0xff; - $value = (($reg<<24) | ($lvalue<<16) | ($reg<<8) | $hvalue | $hex); - $$result_ref = sprintf("%.2X %.2X %.2X %.2X", ((($value>>24) & 0xff), - (($value>>16) & 0xff), - (($value>>8) & 0xff), - ($value & 0xff))); - return 1; - } else { - $$result_ref = sprintf("%.1X? ?? %.1X? ??", ((($hex>>28) & 0xf), - (($hex>>12) & 0x0f))); - return 1; - } - } - return 0; -} - -################### -# check_xgate_mon # -################### -sub check_xgate_mon { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $reg1; - my $hex; - - if ($self->get_xgate_gpr(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg1)) { - $hex = $$hex_ref; - $hex =~ s/\s//g; - $hex = hex($hex); - $value = (($reg1<<8) | $hex); - $$result_ref = sprintf("%.2X %.2X", (($value>>8) & 0xff), ($value & 0xff)); - return 1; - } - return 0; -} - -################### -# check_xgate_dya # -################### -sub check_xgate_dya { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $reg1; - my $reg2; - my $hex; - - if ($self->get_xgate_gpr(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg2)) { - if ($self->get_xgate_gpr(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg1)) { - $hex = $$hex_ref; - $hex =~ s/\s//g; - $hex = hex($hex); - $value = (($reg1<<8) | ($reg2<<5) | $hex); - $$result_ref = sprintf("%.2X %.2X", (($value>>8) & 0xff), ($value & 0xff)); - return 1; - } - } - return 0; -} - -################### -# check_xgate_tri # -################### -sub check_xgate_tri { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $reg1; - my $reg2; - my $reg3; - my $hex; - - if ($self->get_xgate_gpr(\$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg3)) { - if ($self->get_xgate_gpr(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg2)) { - if ($self->get_xgate_gpr(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg1)) { - $hex = $$hex_ref; - $hex =~ s/\s//g; - $hex = hex($hex); - $value = (($reg1<<8) | ($reg2<<5) | ($reg3<<2) | $hex); - $$result_ref = sprintf("%.2X %.2X", (($value>>8) & 0xff), ($value & 0xff)); - return 1; - } - } - } - return 0; -} - -#################### -# check_xgate_rel9 # -#################### -sub check_xgate_rel9 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - my $hex; - - $self->get_xgate_rel(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value); - $hex = $$hex_ref; - $hex =~ s/\s//g; - $hex = hex($hex); - if (defined $value) { - if (($value <= 511) && ($value >= -512)) { - $value = (($value & 0x1ff) | $hex); - $$result_ref = sprintf("%.2X %.2X", (($value>>8) & 0xff), ($value & 0xff)); - return 1; - } else { - #$$error_ref = sprintf("branch address is out of range (%d bytes)", $value); - $$result_ref = sprintf("%.1X? ??", (($hex>>12) & 0xf)); - return 1; - } - } else { - $$result_ref = sprintf("%.1X? ??", (($hex>>12) & 0xf)); - return 1; - } -} - -##################### -# check_xgate_rel10 # -##################### -sub check_xgate_rel10 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - my $hex; - - $self->get_xgate_rel(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value); - $hex = $$hex_ref; - $hex =~ s/\s//g; - $hex = hex($hex); - if (defined $value) { - if (($value <= 1023) && ($value >= -1024)) { - $value = (($value & 0x3ff) | $hex); - $$result_ref = sprintf("%.2X %.2X", (($value>>8) & 0xff), ($value & 0xff)); - return 1; - } else { - #$$error_ref = sprintf("branch address is out of range (%d bytes)", $value); - $$result_ref = sprintf("%.1X? ??", (($hex>>12) & 0xf)); - return 1; - } - } else { - $$result_ref = sprintf("%.1X? ??", (($hex>>12) & 0xf)); - return 1; - } -} - -#################### -# check_xgate_ido5 # -#################### -sub check_xgate_ido5 { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - my $reg1; - my $reg2; - my $hex; - - if ($self->get_xgate_gpr(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg2)) { - if ($self->get_xgate_gpr(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg1)) { - $self->get_xgate_imm(\$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$value); - $hex = $$hex_ref; - $hex =~ s/\s//g; - $hex = hex($hex); - #printf STDERR "check_xgate_ido5: \"%s\" -> %X\n", $arg_ref->[2], $value; - - if (defined $value) { - $value = $value & 0x1f; - $value = (($reg1<<8) | ($reg2<<5) | $value | $hex); - $$result_ref = sprintf("%.2X %.2X", (($value>>8) & 0xff), ($value & 0xff)); - return 1; - } else { - $value = (($reg1<<8) | $hex); - $$result_ref = sprintf("%.2X ??", (($value>>8) & 0xff)); - return 1; - } - } - } - return 0; -} - -################### -# check_xgate_idr # -################### -sub check_xgate_idr { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $reg1; - my $reg2; - my $reg3; - my $hex; - - if ($self->get_xgate_gpr(\$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg3)) { - if ($self->get_xgate_gpr(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg2)) { - if ($self->get_xgate_gpr(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg1)) { - $hex = $$hex_ref; - $hex =~ s/\s//g; - $hex = hex($hex); - $value = (($reg1<<8) | ($reg2<<5) | ($reg3<<2) | $hex); - $$result_ref = sprintf("%.2X %.2X", (($value>>8) & 0xff), ($value & 0xff)); - return 1; - } - } - } - return 0; -} - -#################### -# check_xgate_idri # -#################### -sub check_xgate_idri { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $reg1; - my $reg2; - my $reg3; - my $hex; - - if ($self->get_xgate_gpr(\$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg3)) { - if ($self->get_xgate_gpr(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg2)) { - if ($self->get_xgate_gpr(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg1)) { - $hex = $$hex_ref; - $hex =~ s/\s//g; - $hex = hex($hex); - $value = (($reg1<<8) | ($reg2<<5) | ($reg3<<2) | $hex); - $$result_ref = sprintf("%.2X %.2X", (($value>>8) & 0xff), ($value & 0xff)); - return 1; - } - } - } - return 0; -} -#################### -# check_xgate_idrd # -#################### -sub check_xgate_idrd { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $reg1; - my $reg2; - my $reg3; - my $hex; - - if ($self->get_xgate_gpr(\$arg_ref->[2], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg3)) { - if ($self->get_xgate_gpr(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg2)) { - if ($self->get_xgate_gpr(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg1)) { - $hex = $$hex_ref; - $hex =~ s/\s//g; - $hex = hex($hex); - $value = (($reg1<<8) | ($reg2<<5) | ($reg3<<2) | $hex); - $$result_ref = sprintf("%.2X %.2X", (($value>>8) & 0xff), ($value & 0xff)); - return 1; - } - } - } - return 0; -} - -########################## -# check_xgate_tfr_rd_ccr # -########################## -sub check_xgate_tfr_rd_ccr { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $reg1; - my $hex; - - if ($self->get_xgate_gpr(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg1)) { - $hex = $$hex_ref; - $hex =~ s/\s//g; - $hex = hex($hex); - $value = (($reg1<<8) | $hex); - $$result_ref = sprintf("%.2X %.2X", (($value>>8) & 0xff), ($value & 0xff)); - return 1; - } - return 0; -} - -########################## -# check_xgate_tfr_ccr_rs # -########################## -sub check_xgate_tfr_ccr_rs { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $reg1; - my $hex; - - if ($self->get_xgate_gpr(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg1)) { - $hex = $$hex_ref; - $hex =~ s/\s//g; - $hex = hex($hex); - $value = (($reg1<<8) | $hex); - $$result_ref = sprintf("%.2X %.2X", (($value>>8) & 0xff), ($value & 0xff)); - return 1; - } - return 0; -} - -######################### -# check_xgate_tfr_rd_pc # -######################### -sub check_xgate_tfr_rd_pc { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $reg1; - my $hex; - - if ($self->get_xgate_gpr(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg1)) { - $hex = $$hex_ref; - $hex =~ s/\s//g; - $hex = hex($hex); - $value = (($reg1<<8) | $hex); - $$result_ref = sprintf("%.2X %.2X", (($value>>8) & 0xff), ($value & 0xff)); - return 1; - } - #printf STDERR "check_xgate_tfr_rd_pc failed!\n"; - return 0; -} - -####################### -# check_xgate_com_mon # -####################### -sub check_xgate_com_mon { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $reg1; - my $hex; - - if ($self->get_xgate_gpr(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg1)) { - $hex = $$hex_ref; - $hex =~ s/\s//g; - $hex = hex($hex); - $value = (($reg1<<8) | ($reg1<<2) | $hex); - $$result_ref = sprintf("%.2X %.2X", (($value>>8) & 0xff), ($value & 0xff)); - return 1; - } - return 0; -} - -####################### -# check_xgate_tst_mon # -####################### -sub check_xgate_tst_mon { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $reg1; - my $hex; - - if ($self->get_xgate_gpr(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg1)) { - $hex = $$hex_ref; - $hex =~ s/\s//g; - $hex = hex($hex); - $value = (($reg1<<5) | $hex); - $$result_ref = sprintf("%.2X %.2X", (($value>>8) & 0xff), ($value & 0xff)); - return 1; - } - return 0; -} - -####################### -# check_xgate_com_dya # -####################### -sub check_xgate_com_dya { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $reg1; - my $reg2; - my $hex; - - if ($self->get_xgate_gpr(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg2)) { - if ($self->get_xgate_gpr(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg1)) { - $hex = $$hex_ref; - $hex =~ s/\s//g; - $hex = hex($hex); - $value = (($reg1<<8) | ($reg2<<2) | $hex); - $$result_ref = sprintf("%.2X %.2X", (($value>>8) & 0xff), ($value & 0xff)); - return 1; - } - } - return 0; -} - -####################### -# check_xgate_cmp_dya # -####################### -sub check_xgate_cmp_dya { - my $self = shift @_; - my $arg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $hex_ref = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $reg1; - my $reg2; - my $hex; - - if ($self->get_xgate_gpr(\$arg_ref->[1], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg2)) { - if ($self->get_xgate_gpr(\$arg_ref->[0], $pc_lin, $pc_pag, $loc_cnt, $error_ref, \$reg1)) { - $hex = $$hex_ref; - $hex =~ s/\s//g; - $hex = hex($hex); - $value = (($reg1<<5) | ($reg2<<2) | $hex); - $$result_ref = sprintf("%.2X %.2X", (($value>>8) & 0xff), ($value & 0xff)); - return 1; - } - } - return 0; -} - -############ -# get_byte # -############ -sub get_byte { - my $self = shift @_; - my $string_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $error; - my $value; - my $eval; - - #printf STDERR "get_byte: \"%s\"\n", $$string_ref; - - ($error, $value) = @{$self->evaluate_expression($$string_ref, $pc_lin, $pc_pag, $loc_cnt)}; - if ($error) {$$error_ref = $error;} - if (defined $value) { - $$result_ref = sprintf("%.2X", ($value & 0xff)); - } else { - $$result_ref = "??"; - } -} - -############ -# get_word # -############ -sub get_word { - my $self = shift @_; - my $string_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $error; - my $value; - - ($error, $value) = @{$self->evaluate_expression($$string_ref, $pc_lin, $pc_pag, $loc_cnt)}; - if ($error) {$$error_ref = $error;} - if (defined $value) { - $$result_ref = sprintf("%.2X %.2X", (($value>>8) & 0xff), ($value & 0xff)); - } else { - $$result_ref = "?? ??"; - } -} - -########### -# get_dir # -########### -sub get_dir { - my $self = shift @_; - my $dir_page = shift @_; - my $string_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $error; - my $value; - - ($error, $value) = @{$self->evaluate_expression($$string_ref, $pc_lin, $pc_pag, $loc_cnt)}; - if ($error) {$$error_ref = $error;} - #printf STDERR "DIR: %X %X\n", (($value>>8) & 0xff), ($dir_page & 0xff); - if (defined $value) { - if ((($value>>8) & 0xff) == ($dir_page & 0xff)) { - $$result_ref = sprintf("%.2X", ($value & 0xff)); - return 1; - } else { - return 0; - } - } - #$$result_ref = "??"; - #return 1; - return 0; -} - -############ -# get_rel8 # -############ -sub get_rel8 { - my $self = shift @_; - my $offset = shift @_; - my $string_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $error; - my $reladdr; - my $value; - - #printf STDERR "get_rel8: %s\n", $$string_ref; - ($error, $value) = @{$self->evaluate_expression($$string_ref, $pc_lin, $pc_pag, $loc_cnt)}; - if ($error) {$$error_ref = $error;} - if (defined $value) { - if (defined $pc_pag) { - $reladdr = ((int($value & 0xffff) - int($pc_pag & 0xffff)) - $offset); - if (($reladdr >= -128) && ($reladdr <= 127)) { - $$result_ref = sprintf("%.2X", ($reladdr & 0xff)); - return 1; - } else { - $$result_ref = "??"; - #return 1; - return 0; - } - } - } - $$result_ref = "??"; - return 0; - #return 1; -} - -############# -# get_rel16 # -############# -sub get_rel16 { - my $self = shift @_; - my $offset = shift @_; - my $string_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $error; - my $reladdr; - my $value; - - ($error, $value) = @{$self->evaluate_expression($$string_ref, $pc_lin, $pc_pag, $loc_cnt)}; - if ($error) {$$error_ref = $error;} - if (defined $value) { - if (defined $pc_pag) { - $reladdr = ((int($value & 0xffff) - int($pc_pag & 0xffff)) - $offset); - $$result_ref = sprintf("%.2X %.2X", ((($reladdr >> 8) & 0xff), - ($reladdr & 0xff))); - return 1; - } - } - $$result_ref = "?? ??"; - return 1; -} - -########### -# get_idx # -########### -sub get_idx { - my $self = shift @_; - my $offset_ref = shift @_; - my $preinc_ref = shift @_; - my $reg_ref = shift @_; - my $postinc_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - my $indexreg_code = 0x00; - my $post_byte = 0x00; - #temporary - my $error; - my $value; - - #printf STDERR "get_idx: \"%s\"\n", join("\", \"", - # $$offset_ref, - # $$preinc_ref, - # $$reg_ref, - # $$postinc_ref); - - ############################ - # determine index register # - ############################ - for ($$reg_ref) { - ########### - # INDEX X # - ########### - /^\s*X\s*$/i && do { - $indexreg_code = 0x00; - last;}; - ########### - # INDEX Y # - ########### - /^\s*Y\s*$/i && do { - $indexreg_code = 0x01; - last;}; - ###### - # SP # - ###### - /^\s*SP\s*$/i && do { - $indexreg_code = 0x02; - last;}; - ###### - # PC # - ###### - /^\s*PC\s*$/i && do { - if (($$preinc_ref !~ /^\s*$/) || - ($$postinc_ref !~ /^\s*$/)) { - #illegal address mode - #$$error_ref = "Illegal auto in/decrement of PC"; - return 0; - } - $indexreg_code = 0x03; - last;}; - ############ - # no match # - ############ - return 0; - } - - #################### - # determine offset # - #################### - for ($$offset_ref) { - ########## - # ACCU A # - ########## - /^\s*A\s*$/i && do { - if (($$preinc_ref !~ /^\s*$/) || - ($$postinc_ref !~ /^\s*$/)) { - return 0; - } else { - $post_byte = 0xe4 | ($indexreg_code << 3); - $$result_ref = sprintf("%.2X", ($post_byte & 0xff)); - return 1; - } - last;}; - ########## - # ACCU B # - ########## - /^\s*B\s*$/i && do { - if (($$preinc_ref !~ /^\s*$/) || - ($$postinc_ref !~ /^\s*$/)) { - return 0; - } else { - $post_byte = 0xe5 | ($indexreg_code << 3); - $$result_ref = sprintf("%.2X", ($post_byte & 0xff)); - return 1; - } - last;}; - ########## - # ACCU D # - ########## - /^\s*D\s*$/i && do { - if (($$preinc_ref !~ /^\s*$/) || - ($$postinc_ref !~ /^\s*$/)) { - return 0; - } else { - $post_byte = 0xe6 | ($indexreg_code << 3); - $$result_ref = sprintf("%.2X", ($post_byte & 0xff)); - return 1; - } - last;}; - - ################### - # constant offset # - ################### - if ($$offset_ref =~ /^\s*$/) { - $value = 0; - } else { - ($error, $value) = @{$self->evaluate_expression($$offset_ref, $pc_lin, $pc_pag, $loc_cnt)}; - if ($error) {$$error_ref = $error;} - } - if (defined $value) { - ############################### - # determine pre/postincrement # - ############################### - if (($$preinc_ref =~ /^\s*$/) && - ($$postinc_ref =~ /^\s*$/)) { - ########################### - # no pre or postincrement # - ########################### - if (($value >= -16) && ($value <= 15)) { - $post_byte = ($indexreg_code << 6) | ($value & 0x1f); - $$result_ref = sprintf("%.2X", ($post_byte & 0xff)); - return 1; - } else { - #offset too big - return 0; - } - } else { - ######################## - # pre or postincrement # - ######################## - if ((($value >= -8) && ($value <= -1)) || - (($value >= 1) && ($value <= 8))) { - - if (($$preinc_ref =~ /^\s*\+\s*$/) && - ($$postinc_ref =~ /^\s*$/)) { - ################ - # preincrement # - ################ - if ($value > 0) { - $post_byte = (0x20 | - ($indexreg_code << 6) | - (($value - 1) & 0x0f)); - } else { - $post_byte = (0x28 | - ($indexreg_code << 6) | - ($value & 0x0f)); - } - $$result_ref = sprintf("%.2X", ($post_byte & 0xff)); - return 1; - } elsif (($$preinc_ref =~ /^\s*\-\s*$/) && - ($$postinc_ref =~ /^\s*$/)) { - ################ - # predecrement # - ################ - if ($value > 0) { - $post_byte = (0x28 | - ($indexreg_code << 6) | - ((-1 * $value) & 0x0f)); - } else { - $post_byte = (0x20 | - ($indexreg_code << 6) | - (((-1 * $value) - 1) & 0x0f)); - } - $$result_ref = sprintf("%.2X", ($post_byte & 0xff)); - return 1; - } elsif (($$preinc_ref =~ /^\s*$/) && - ($$postinc_ref =~ /^\s*\+\s*$/)) { - ################# - # postincrement # - ################# - if ($value > 0) { - $post_byte = (0x30 | - ($indexreg_code << 6) | - (($value - 1) & 0x0f)); - } else { - $post_byte = (0x38 | - ($indexreg_code << 6) | - ($value & 0x0f)); - } - $$result_ref = sprintf("%.2X", ($post_byte & 0xff)); - return 1; - } elsif (($$preinc_ref =~ /^\s*$/) && - ($$postinc_ref =~ /^\s*\-\s*$/)) { - ################# - # postdecrement # - ################# - if ($value > 0) { - $post_byte = (0x38 | - ($indexreg_code << 6) | - ((-1 * $value) & 0x0f)); - } else { - $post_byte = (0x30 | - ($indexreg_code << 6) | - (((-1 * $value) - 1) & 0x0f)); - } - $$result_ref = sprintf("%.2X", ($post_byte & 0xff)); - return 1; - } else { - ####################### - # invalid combination # - ####################### - return 0; - } - } else { - #offset too big (or zero) - return 0; - } - } - } else { - return [0, "??"]; - } - } -} - -############ -# get_idx1 # -############ -sub get_idx1 { - my $self = shift @_; - my $offset_ref = shift @_; - my $reg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - my $indexreg_code = 0x00; - my $post_byte = 0x00; - #temporary - my $error; - my $value; - - #printf STDERR "get_idx1: \"%s\"\n", join("\", \"", - # $$offset_ref, - # $$reg_ref); - - ################ - # check offset # - ################ - if ($$offset_ref =~ $op_keywords) { - return 0; - } - - ############################ - # determine index register # - ############################ - for ($$reg_ref) { - ########### - # INDEX X # - ########### - /^\s*X\s*$/i && do { - $indexreg_code = 0x00; - last;}; - ########### - # INDEX Y # - ########### - /^\s*Y\s*$/i && do { - $indexreg_code = 0x01; - last;}; - ###### - # SP # - ###### - /^\s*SP\s*$/i && do { - $indexreg_code = 0x02; - last;}; - ###### - # PC # - ###### - /^\s*PC\s*$/i && do { - $indexreg_code = 0x03; - last;}; - ############ - # no match # - ############ - return 0; - } - - #################### - # determine offset # - #################### - if ($$offset_ref =~ /^\s*$/) { - $value = 0; - } else { - ($error, $value) = @{$self->evaluate_expression($$offset_ref, $pc_lin, $pc_pag, $loc_cnt)}; - if ($error) {$$error_ref = $error;} - } - if (defined $value) { - #print STDERR "value: $value\n"; - if (($value >= -256) && ($value <= 255)) { - ###################### - # determine hex code # - ###################### - if ($value >= 0) { - $post_byte = (0xe0 | - ($indexreg_code << 3)); - } else { - $post_byte = (0xe1 | - ($indexreg_code << 3)); - } - $$result_ref = sprintf("%.2X %.2X", (($post_byte & 0xff), - ($value & 0xff))); - return 1; - } else { - #offset too big - return 0; - } - } else { - $$result_ref = "?? ??"; - return 1; - } -} - -############ -# get_idx2 # -############ -sub get_idx2 { - my $self = shift @_; - my $post_byte_base = shift @_; - my $offset_ref = shift @_; - my $reg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - my $indexreg_code = 0x00; - my $post_byte = 0x00; - #temporary - my $error; - my $value; - - #printf STDERR "get_idx2: \"%s\"\n", join("\", \"", - # $$offset_ref, - # $$reg_ref); - - ################ - # check offset # - ################ - if ($$offset_ref =~ $op_keywords) { - return 0; - } - - ############################ - # determine index register # - ############################ - for ($$reg_ref) { - ########### - # INDEX X # - ########### - /^\s*X\s*$/i && do { - $indexreg_code = 0x00; - last;}; - ########### - # INDEX Y # - ########### - /^\s*Y\s*$/i && do { - $indexreg_code = 0x01; - last;}; - ###### - # SP # - ###### - /^\s*SP\s*$/i && do { - $indexreg_code = 0x02; - last;}; - ###### - # PC # - ###### - /^\s*PC\s*$/i && do { - $indexreg_code = 0x03; - last;}; - ############ - # no match # - ############ - return 0; - } - - #################### - # determine offset # - #################### - if ($$offset_ref =~ /^\s*$/) { - $value = 0; - } else { - ($error, $value) = @{$self->evaluate_expression($$offset_ref, $pc_lin, $pc_pag, $loc_cnt)}; - if ($error) {$$error_ref = $error;} - } - if (defined $value) { - #print STDERR "value: $value\n"; - ###################### - # determine hex code # - ###################### - $post_byte = ($post_byte_base | - ($indexreg_code << 3)); - $$result_ref = sprintf("%.2X %.2X %.2X", (($post_byte & 0xff), - (($value >> 8) & 0xff), - ($value & 0xff))); - return 1; - } else { - $$result_ref = "?? ?? ??"; - return 1; - } -} - -############# -# get_ididx # -############# -sub get_ididx { - my $self = shift @_; - my $reg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - my $indexreg_code = 0x00; - my $post_byte = 0x00; - #temporary - my $value; - - ############################ - # determine index register # - ############################ - for ($indexreg) { - ########### - # INDEX X # - ########### - /^\s*X\s*$/i && do { - $$result_ref = sprintf("%.2X", 0xe7); - return 1; - last;}; - ########### - # INDEX Y # - ########### - /^\s*Y\s*$/i && do { - $$result_ref = sprintf("%.2X", 0xef); - return 1; - last;}; - ###### - # SP # - ###### - /^\s*SP\s*$/i && do { - $$result_ref = sprintf("%.2X", 0xf7); - return 1; - last;}; - ###### - # PC # - ###### - /^\s*PC\s*$/i && do { - $$result_ref = sprintf("%.2X", 0xff); - return 1; - last;}; - ############ - # no match # - ############ - return 0; - } -} - -################## -# get_ext_pgimpl # -################## -sub get_ext_pgimpl { - my $self = shift @_; - my $string_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $error; - my $value; - - ($error, $value) = @{$self->evaluate_expression($$string_ref, $pc_lin, $pc_pag, $loc_cnt)}; - if ($error) {$$error_ref = $error;} - if (defined $value) { - $$result_ref = sprintf("%.2X %.2X %.2X", ((($value>>8) & 0xff), - ($value & 0xff), - (($value >> 16) & 0xff))); - } else { - $$result_ref = "?? ?? ??"; - } -} - -########### -# get_tfr # -########### -sub get_tfr { - my $self = shift @_; - my $cpu = shift @_; - my $tfr_type = shift @_; - my $src_reg_ref = shift @_; - my $dst_reg_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - my $extension_byte = 0; - my $error = 0; - #printf STDERR "S12X TFR: \"%s\" \"%s\"\n", $$src_reg_ref, $$dst_reg_ref; - - ################## - # extension byte # - ################## - for ($tfr_type) { - ($tfr_type == $tfr_tfr) && do {$extension_byte = 0x00;last;}; - ($tfr_type == $tfr_sex) && do {$extension_byte = 0x00;last;}; - ($tfr_type == $tfr_exg) && do {$extension_byte = 0x80;last;}; - } - - ################### - # source register # - ################### - for ($$src_reg_ref) { - ########## - # ACCU A # - ########## - /^\s*(A)\s*$/i && do { - for ($$dst_reg_ref) { - ########## - # A -> A # - ########## - /^\s*A\s*$/i && do { - $extension_byte = $extension_byte | 0x00; - if ($tfr_type == $tfr_sex) {$error = 1;} - last;}; - ########## - # A -> B # - ########## - /^\s*B\s*$/i && do { - $extension_byte = $extension_byte | 0x01; - if ($tfr_type == $tfr_sex) {$error = 1;} - last;}; - ################# - # A -> CCR,CCRL # - ################# - /^\s*(CCR|CCRL)\s*$/i && do { - $extension_byte = $extension_byte | 0x02; - if ($tfr_type == $tfr_sex) {$error = 1;} - last;}; - ############# - # A -> TMP2 # - ############# - /^\s*(TMP2)\s*$/i && do { - $extension_byte = $extension_byte | 0x03; - last;}; - ########## - # A -> D # - ########## - /^\s*D\s*$/i && do { - $extension_byte = $extension_byte | 0x04; - last;}; - ########## - # A -> X # - ########## - /^\s*(X)\s*$/i && do { - $extension_byte = $extension_byte | 0x05; - last;}; - ########## - # A -> Y # - ########## - /^\s*(Y)\s*$/i && do { - $extension_byte = $extension_byte | 0x06; - last;}; - ########### - # A -> SP # - ########### - /^\s*(SP)\s*$/i && do { - $extension_byte = $extension_byte | 0x07; - last;}; - ############# - # A -> CCRH # - ############# - /^\s*(CCRH)\s*$/i && do { - $extension_byte = $extension_byte | 0x0a; - if (($cpu == $tfr_s12) || ($tfr_type == $tfr_sex)) {$error = 1;} - last;}; - ############## - # A -> TMP2H # - ############## - /^\s*(TMP2H)\s*$/i && do { - $extension_byte = $extension_byte | 0x0b; - if (($cpu == $tfr_s12) || ($tfr_type == $tfr_sex)) {$error = 1;} - last;}; - ########### - # A -> XH # - ########### - /^\s*(XH)\s*$/i && do { - $extension_byte = $extension_byte | 0x0d; - if (($cpu == $tfr_s12) || ($tfr_type == $tfr_sex)) {$error = 1;} - last;}; - ########### - # A -> YH # - ########### - /^\s*(YH)\s*$/i && do { - $extension_byte = $extension_byte | 0x0e; - if (($cpu == $tfr_s12) || ($tfr_type == $tfr_sex)) {$error = 1;} - last;}; - ############ - # A -> SPH # - ############ - /^\s*(SPH)\s*$/i && do { - $extension_byte = $extension_byte | 0x0f; - if (($cpu == $tfr_s12) || ($tfr_type == $tfr_sex)) {$error = 1;} - last;}; - ############ - # no match # - ############ - $error = 1; - } - last;}; - ########## - # ACCU B # - ########## - /^\s*(B)\s*$/i && do { - for ($$dst_reg_ref) { - ########## - # B -> A # - ########## - /^\s*A\s*$/i && do { - $extension_byte = $extension_byte | 0x10; - if ($tfr_type == $tfr_sex) {$error = 1;} - last;}; - ########## - # B -> B # - ########## - /^\s*B\s*$/i && do { - $extension_byte = $extension_byte | 0x11; - if ($tfr_type == $tfr_sex) {$error = 1;} - last;}; - ################# - # B -> CCR,CCRL # - ################# - /^\s*(CCR|CCRL)\s*$/i && do { - $extension_byte = $extension_byte | 0x12; - if ($tfr_type == $tfr_sex) {$error = 1;} - last;}; - ############# - # B -> TMP2 # - ############# - /^\s*(TMP2)\s*$/i && do { - $extension_byte = $extension_byte | 0x13; - last;}; - ########## - # B -> D # - ########## - /^\s*D\s*$/i && do { - $extension_byte = $extension_byte | 0x14; - last;}; - ########## - # B -> X # - ########## - /^\s*(X)\s*$/i && do { - $extension_byte = $extension_byte | 0x15; - last;}; - ########## - # B -> Y # - ########## - /^\s*(Y)\s*$/i && do { - $extension_byte = $extension_byte | 0x16; - last;}; - ########### - # B -> SP # - ########### - /^\s*(SP)\s*$/i && do { - $extension_byte = $extension_byte | 0x17; - last;}; - ############## - # B -> TMP2L # - ############## - /^\s*(TMP2L)\s*$/i && do { - $extension_byte = $extension_byte | 0x1b; - if (($cpu == $tfr_s12) || ($tfr_type == $tfr_sex)) {$error = 1;} - last;}; - ########### - # B -> XL # - ########### - /^\s*(XL)\s*$/i && do { - $extension_byte = $extension_byte | 0x1d; - if (($cpu == $tfr_s12) || ($tfr_type == $tfr_sex)) {$error = 1;} - last;}; - ########### - # B -> YL # - ########### - /^\s*(YL)\s*$/i && do { - $extension_byte = $extension_byte | 0x1e; - if (($cpu == $tfr_s12) || ($tfr_type == $tfr_sex)) {$error = 1;} - last;}; - ############ - # B -> SPL # - ############ - /^\s*(SPL)\s*$/i && do { - $extension_byte = $extension_byte | 0x1f; - if (($cpu == $tfr_s12) || ($tfr_type == $tfr_sex)) {$error = 1;} - last;}; - ############ - # no match # - ############ - $error = 1;; - } - last;}; - ############ - # CCR,CCRL # - ############ - /^\s*(CCR|CCRL)\s*$/i && do { - for ($$dst_reg_ref) { - ################# - # CCR,CCRL -> A # - ################# - /^\s*A\s*$/i && do { - $extension_byte = $extension_byte | 0x20; - if ($tfr_type == $tfr_sex) {$error = 1;} - last;}; - ################# - # CCR,CCRL -> B # - ################# - /^\s*B\s*$/i && do { - $extension_byte = $extension_byte | 0x21; - if ($tfr_type == $tfr_sex) {$error = 1;} - last;}; - ######################## - # CCR,CCRL -> CCR,CCRL # - ######################## - /^\s*(CCR|CCRL)\s*$/i && do { - $extension_byte = $extension_byte | 0x22; - if ($tfr_type == $tfr_sex) {$error = 1;} - last;}; - #################### - # CCR,CCRL -> TMP2 # - #################### - /^\s*(TMP2)\s*$/i && do { - $extension_byte = $extension_byte | 0x23; - last;}; - ################# - # CCR,CCRL -> D # - ################# - /^\s*D\s*$/i && do { - $extension_byte = $extension_byte | 0x24; - last;}; - ################# - # CCR,CCRL -> X # - ################# - /^\s*(X)\s*$/i && do { - $extension_byte = $extension_byte | 0x25; - last;}; - ################# - # CCR,CCRL -> Y # - ################# - /^\s*(Y)\s*$/i && do { - $extension_byte = $extension_byte | 0x26; - last;}; - ################## - # CCR,CCRL -> SP # - ################## - /^\s*(SP)\s*$/i && do { - $extension_byte = $extension_byte | 0x27; - last;}; - ############ - # no match # - ############ - $error = 1; - } - last;}; - ######## - # CCRH # - ######## - /^\s*(CCRH)\s*$/i && do { - if (($cpu == $tfr_s12) || ($tfr_type == $tfr_sex)) {$error = 1;} - for ($$dst_reg_ref) { - ############# - # CCRH -> A # - ############# - /^\s*A\s*$/i && do { - $extension_byte = $extension_byte | 0x28; - last;}; - ############ - # no match # - ############ - $error = 1; - } - last;}; - ######## - # CCRW # - ######## - /^\s*(CCRW)\s*$/i && do { - if (($cpu == $tfr_s12) || ($tfr_type == $tfr_sex)) {$error = 1;} - for ($$dst_reg_ref) { - ################ - # CCRW -> CCRW # - ################ - /^\s*(CCRW)\s*$/i && do { - $extension_byte = $extension_byte | 0x2a; - last;}; - ################ - # CCRW -> TMP2 # - ################ - /^\s*(TMP2)\s*$/i && do { - $extension_byte = $extension_byte | 0x2b; - last;}; - ############# - # CCRW -> D # - ############# - /^\s*D\s*$/i && do { - $extension_byte = $extension_byte | 0x2c; - last;}; - ############# - # CCRW -> X # - ############# - /^\s*(X)\s*$/i && do { - $extension_byte = $extension_byte | 0x2d; - last;}; - ############# - # CCRW -> Y # - ############# - /^\s*(Y)\s*$/i && do { - $extension_byte = $extension_byte | 0x2e; - last;}; - ############## - # CCRW -> SP # - ############## - /^\s*(SP)\s*$/i && do { - $extension_byte = $extension_byte | 0x2f; - last;}; - ############ - # no match # - ############ - $error = 1; - } - last;}; - ######## - # TMP3 # - ######## - /^\s*(TMP3)\s*$/i && do { - if ($tfr_type == $tfr_sex) {$error = 1;} - for ($$dst_reg_ref) { - ############# - # TMP3 -> A # - ############# - /^\s*A\s*$/i && do { - $extension_byte = $extension_byte | 0x30; - last;}; - ############# - # TMP3 -> B # - ############# - /^\s*B\s*$/i && do { - $extension_byte = $extension_byte | 0x31; - last;}; - #################### - # TMP3 -> CCR,CCRL # - #################### - /^\s*(CCR|CCRL)\s*$/i && do { - $extension_byte = $extension_byte | 0x32; - last;}; - ################ - # TMP3 -> TMP2 # - ################ - /^\s*(TMP2)\s*$/i && do { - $extension_byte = $extension_byte | 0x33; - last;}; - ############# - # TMP3 -> D # - ############# - /^\s*D\s*$/i && do { - $extension_byte = $extension_byte | 0x34; - last;}; - ############# - # TMP3 -> X # - ############# - /^\s*(X)\s*$/i && do { - $extension_byte = $extension_byte | 0x35; - last;}; - ############# - # TMP3 -> Y # - ############# - /^\s*(Y)\s*$/i && do { - $extension_byte = $extension_byte | 0x36; - last;}; - ############## - # TMP3 -> SP # - ############## - /^\s*(SP)\s*$/i && do { - $extension_byte = $extension_byte | 0x37; - last;}; - ################ - # TMP3 -> CCRW # - ################ - /^\s*(CCRW)\s*$/i && do { - if ($cpu == $tfr_s12) {$error = 1;} - $extension_byte = $extension_byte | 0x3A; - last;}; - ############ - # no match # - ############ - $error = 1; - } - last;}; - ######### - # TMP3L # - ######### - /^\s*(TMP3L)\s*$/i && do { - if ($tfr_type == $tfr_sex) {$error = 1;} - for ($$dst_reg_ref) { - ############## - # TMP3L -> A # - ############## - /^\s*A\s*$/i && do { - $extension_byte = $extension_byte | 0x30; - last;}; - ############## - # TMP3L -> B # - ############## - /^\s*B\s*$/i && do { - $extension_byte = $extension_byte | 0x31; - last;}; - #################### - # TMP3 -> CCR,CCRL # - #################### - /^\s*(CCR|CCRL)\s*$/i && do { - $extension_byte = $extension_byte | 0x32; - last;}; - ############ - # no match # - ############ - $error = 1; - } - last;}; - ######### - # TMP3H # - ######### - /^\s*(TMP3H)\s*$/i && do { - if (($cpu == $tfr_s12) || ($tfr_type == $tfr_sex)) {$error = 1;} - for ($$dst_reg_ref) { - ############# - # CCRH -> A # - ############# - /^\s*A\s*$/i && do { - $extension_byte = $extension_byte | 0x38; - last;}; - ############ - # no match # - ############ - $error = 1; - } - last;}; - ######## - # TMP1 # - ######## - /^\s*(TMP1)\s*$/i && do { - if (($cpu == $tfr_s12) || ($tfr_type == $tfr_sex)) {$error = 1;} - for ($$dst_reg_ref) { - ############# - # CCRH -> D # - ############# - /^\s*D\s*$/i && do { - $extension_byte = $extension_byte | 0x3C; - last;}; - ############ - # no match # - ############ - $error = 1; - } - last;}; - ########## - # ACCU D # - ########## - /^\s*(D)\s*$/i && do { - for ($$dst_reg_ref) { - ########## - # D -> A # - ########## - /^\s*A\s*$/i && do { - $extension_byte = $extension_byte | 0x40; - if ($tfr_type == $tfr_sex) {$error = 1;} - last;}; - ########## - # D -> B # - ########## - /^\s*B\s*$/i && do { - $extension_byte = $extension_byte | 0x41; - if ($tfr_type == $tfr_sex) {$error = 1;} - last;}; - ################# - # D -> CCR,CCRL # - ################# - /^\s*(CCR|CCRL)\s*$/i && do { - $extension_byte = $extension_byte | 0x42; - if ($tfr_type == $tfr_sex) {$error = 1;} - last;}; - ############# - # D -> TMP2 # - ############# - /^\s*(TMP2)\s*$/i && do { - $extension_byte = $extension_byte | 0x43; - if ($tfr_type == $tfr_sex) {$error = 1;} - last;}; - ########## - # D -> D # - ########## - /^\s*D\s*$/i && do { - $extension_byte = $extension_byte | 0x44; - if ($tfr_type == $tfr_sex) {$error = 1;} - last;}; - ########## - # D -> X # - ########## - /^\s*(X)\s*$/i && do { - $extension_byte = $extension_byte | 0x45; - last;}; - ########## - # D -> Y # - ########## - /^\s*(Y)\s*$/i && do { - $extension_byte = $extension_byte | 0x46; - last;}; - ########### - # D -> SP # - ########### - /^\s*(SP)\s*$/i && do { - $extension_byte = $extension_byte | 0x47; - if ($tfr_type == $tfr_sex) {$error = 1;} - last;}; - ############# - # D -> CCRW # - ############# - /^\s*(CCRW)\s*$/i && do { - $extension_byte = $extension_byte | 0x4a; - if (($cpu == $tfr_s12) || ($tfr_type == $tfr_sex)) {$error = 1;} - last;}; - ############# - # D -> TMP1 # - ############# - /^\s*(TMP1)\s*$/i && do { - $extension_byte = $extension_byte | 0x4b; - if (($cpu == $tfr_s12) || ($tfr_type == $tfr_sex)) {$error = 1;} - last;}; - ############ - # no match # - ############ - $error = 1; - } - last;}; - ########### - # INDEX X # - ########### - /^\s*(X)\s*$/i && do { - if ($tfr_type == $tfr_sex) {$error = 1;} - for ($$dst_reg_ref) { - ########## - # X -> A # - ########## - /^\s*A\s*$/i && do { - $extension_byte = $extension_byte | 0x50; - last;}; - ########## - # X -> B # - ########## - /^\s*B\s*$/i && do { - $extension_byte = $extension_byte | 0x51; - last;}; - ################# - # X -> CCR,CCRL # - ################# - /^\s*(CCR|CCRL)\s*$/i && do { - $extension_byte = $extension_byte | 0x52; - last;}; - ############# - # X -> TMP2 # - ############# - /^\s*(TMP2)\s*$/i && do { - $extension_byte = $extension_byte | 0x53; - last;}; - ########## - # X -> D # - ########## - /^\s*D\s*$/i && do { - $extension_byte = $extension_byte | 0x54; - last;}; - ########## - # X -> X # - ########## - /^\s*(X)\s*$/i && do { - $extension_byte = $extension_byte | 0x55; - last;}; - ########## - # X -> Y # - ########## - /^\s*(Y)\s*$/i && do { - $extension_byte = $extension_byte | 0x56; - last;}; - ########### - # X -> SP # - ########### - /^\s*(SP)\s*$/i && do { - $extension_byte = $extension_byte | 0x57; - last;}; - ############# - # X -> CCRW # - ############# - /^\s*(CCRW)\s*$/i && do { - if ($cpu == $tfr_s12) {$error = 1;} - $extension_byte = $extension_byte | 0x5A; - last;}; - ############ - # no match # - ############ - $error = 1; - } - last;}; - ############ - # INDEX XL # - ############ - /^\s*(XL)\s*$/i && do { - if ($tfr_type == $tfr_sex) {$error = 1;} - for ($$dst_reg_ref) { - ########### - # XL -> A # - ########### - /^\s*A\s*$/i && do { - $extension_byte = $extension_byte | 0x50; - last;}; - ########### - # XL -> B # - ########### - /^\s*B\s*$/i && do { - $extension_byte = $extension_byte | 0x51; - last;}; - ################## - # XL -> CCR,CCRL # - ################## - /^\s*(CCR|CCRL)\s*$/i && do { - $extension_byte = $extension_byte | 0x52; - last;}; - ############ - # no match # - ############ - $error = 1; - } - last;}; - ############ - # INDEX XH # - ############ - /^\s*(XH)\s*$/i && do { - if (($cpu == $tfr_s12) || ($tfr_type == $tfr_sex)) {$error = 1;} - for ($$dst_reg_ref) { - ########### - # XH -> A # - ########### - /^\s*A\s*$/i && do { - $extension_byte = $extension_byte | 0x58; - last;}; - ############ - # no match # - ############ - $error = 1; - } - last;}; - ########### - # INDEX Y # - ########### - /^\s*(Y)\s*$/i && do { - if ($tfr_type == $tfr_sex) {$error = 1;} - for ($$dst_reg_ref) { - ########## - # Y -> A # - ########## - /^\s*A\s*$/i && do { - $extension_byte = $extension_byte | 0x60; - last;}; - ########## - # Y -> B # - ########## - /^\s*B\s*$/i && do { - $extension_byte = $extension_byte | 0x61; - last;}; - ################# - # Y -> CCR,CCRL # - ################# - /^\s*(CCR|CCRL)\s*$/i && do { - $extension_byte = $extension_byte | 0x62; - last;}; - ############# - # Y -> TMP2 # - ############# - /^\s*(TMP2)\s*$/i && do { - $extension_byte = $extension_byte | 0x63; - last;}; - ########## - # Y -> D # - ########## - /^\s*D\s*$/i && do { - $extension_byte = $extension_byte | 0x64; - last;}; - ########## - # Y -> X # - ########## - /^\s*(X)\s*$/i && do { - $extension_byte = $extension_byte | 0x65; - last;}; - ########## - # Y -> Y # - ########## - /^\s*(Y)\s*$/i && do { - $extension_byte = $extension_byte | 0x66; - last;}; - ########### - # Y -> SP # - ########### - /^\s*(SP)\s*$/i && do { - $extension_byte = $extension_byte | 0x67; - last;}; - ############# - # Y -> CCRW # - ############# - /^\s*(CCRW)\s*$/i && do { - if ($cpu == $tfr_s12) {$error = 1;} - $extension_byte = $extension_byte | 0x6A; - last;}; - ############ - # no match # - ############ - $error = 1; - } - last;}; - ############ - # INDEX YL # - ############ - /^\s*(YL)\s*$/i && do { - if ($tfr_type == $tfr_sex) {$error = 1;} - for ($$dst_reg_ref) { - ########### - # YL -> A # - ########### - /^\s*A\s*$/i && do { - $extension_byte = $extension_byte | 0x60; - last;}; - ########### - # YL -> B # - ########### - /^\s*B\s*$/i && do { - $extension_byte = $extension_byte | 0x61; - last;}; - ################## - # YL -> CCR,CCRL # - ################## - /^\s*(CCR|CCRL)\s*$/i && do { - $extension_byte = $extension_byte | 0x62; - last;}; - ############ - # no match # - ############ - $error = 1; - } - last;}; - ############ - # INDEX YH # - ############ - /^\s*(YH)\s*$/i && do { - if (($cpu == $tfr_s12) || ($tfr_type == $tfr_sex)) {$error = 1;} - for ($$dst_reg_ref) { - ########### - # YH -> A # - ########### - /^\s*A\s*$/i && do { - $extension_byte = $extension_byte | 0x68; - last;}; - ############ - # no match # - ############ - $error = 1; - } - last;}; - ################# - # STACK POINTER # - ################# - /^\s*(SP)\s*$/i && do { - if ($tfr_type == $tfr_sex) {$error = 1;} - for ($$dst_reg_ref) { - ########### - # SP -> A # - ########### - /^\s*A\s*$/i && do { - $extension_byte = $extension_byte | 0x70; - last;}; - ########### - # SP -> B # - ########### - /^\s*B\s*$/i && do { - $extension_byte = $extension_byte | 0x71; - last;}; - ################## - # SP -> CCR,CCRL # - ################## - /^\s*(CCR|CCRL)\s*$/i && do { - $extension_byte = $extension_byte | 0x72; - last;}; - ############## - # SP -> TMP2 # - ############## - /^\s*(TMP2)\s*$/i && do { - $extension_byte = $extension_byte | 0x73; - last;}; - ########### - # SP -> D # - ########### - /^\s*D\s*$/i && do { - $extension_byte = $extension_byte | 0x74; - last;}; - ########### - # SP -> X # - ########### - /^\s*(X)\s*$/i && do { - $extension_byte = $extension_byte | 0x75; - last;}; - ########### - # SP -> Y # - ########### - /^\s*(Y)\s*$/i && do { - $extension_byte = $extension_byte | 0x76; - last;}; - ############ - # SP -> SP # - ############ - /^\s*(SP)\s*$/i && do { - $extension_byte = $extension_byte | 0x77; - last;}; - ############## - # SP -> CCRW # - ############## - /^\s*(CCRW)\s*$/i && do { - if ($cpu == $tfr_s12) {$error = 1;} - $extension_byte = $extension_byte | 0x7A; - last;}; - ############ - # no match # - ############ - $error = 1; - } - last;}; - ####### - # SPL # - ####### - /^\s*(SPL)\s*$/i && do { - if ($tfr_type == $tfr_sex) {$error = 1;} - for ($$dst_reg_ref) { - ############ - # SPL -> A # - ############ - /^\s*A\s*$/i && do { - $extension_byte = $extension_byte | 0x70; - last;}; - ############ - # SPL -> B # - ############ - /^\s*B\s*$/i && do { - $extension_byte = $extension_byte | 0x71; - last;}; - ################### - # SPL -> CCR,CCRL # - ################### - /^\s*(CCR|CCRL)\s*$/i && do { - $extension_byte = $extension_byte | 0x72; - last;}; - ############ - # no match # - ############ - $error = 1; - } - last;}; - ####### - # SPH # - ####### - /^\s*(SPH)\s*$/i && do { - if (($cpu == $tfr_s12) || ($tfr_type == $tfr_sex)) {$error = 1;} - for ($$dst_reg_ref) { - ############ - # SPH -> A # - ############ - /^\s*A\s*$/i && do { - $extension_byte = $extension_byte | 0x78; - last;}; - ############ - # no match # - ############ - $error = 1; - } - last;}; - ############ - # no match # - ############ - $error = 1; - } - $$result_ref = sprintf("%.2X", $extension_byte); - if ($error) { - $$error_ref = sprintf("invalid register transfer \"%s -> %s\"", uc($$src_reg_ref), uc($$dst_reg_ref)); - } - return 1; -} - -############ -# get_dbeq # -############ -sub get_dbeq { - my $self = shift @_; - my $post_byte_base = shift @_; - my $reg_ref = shift @_; - my $addr_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - my $post_byte = $post_byte_base; - #temporary - my $error; - my $value; - my $rel_addr; - - ################### - # resolve address # - ################### - ($error, $value) = @{$self->evaluate_expression($$addr_ref, $pc_lin, $pc_pag, $loc_cnt)}; - if ($error) {$$error_ref = $error;} - if (defined $value) { - if (defined $pc_pag) { - #printf STDERR "expression: \"%s\"\n", $$addr_ref; - #printf STDERR "pc_pag: \"%X\" \"%s\"\n", $pc_pag, $pc_pag; - #printf STDERR "value: \"%X\" \"%s\"\n", $value, $value; - $rel_addr = int($value & 0xffff) - int($pc_pag & 0xffff) - 3; - #printf STDERR "rel_addr: \"%X\" \"%s\"\n", $rel_addr, $rel_addr; - if (($rel_addr >= -256) && ($rel_addr <= 255)) { - if ($rel_addr < 0) { - $post_byte = $post_byte | 0x10; - } - #################### - # resolve register # - #################### - for ($$reg_ref) { - ########## - # ACCU A # - ########## - /^\s*A\s*$/i && do { - $post_byte = $post_byte | 0x00; - last;}; - ########## - # ACCU B # - ########## - /^\s*B\s*$/i && do { - $post_byte = $post_byte | 0x01; - last;}; - ########## - # ACCU D # - ########## - /^\s*D\s*$/i && do { - $post_byte = $post_byte | 0x04; - last;}; - ########### - # INDEX X # - ########### - /^\s*X\s*$/i && do { - $post_byte = $post_byte | 0x05; - last;}; - ########### - # INDEX Y # - ########### - /^\s*Y\s*$/i && do { - $post_byte = $post_byte | 0x06; - last;}; - ###### - # SP # - ###### - /^\s*SP\s*$/i && do { - $post_byte = $post_byte | 0x07; - last;}; - ############ - # no match # - ############ - return 0; - } - - ################### - # return hex code # - ################### - $$result_ref = sprintf("%.2X %.2X", (($post_byte & 0xff), - ($rel_addr & 0xff))); - return 1; - } else { - return 0; - } - } else { - $$result_ref = "?? ??"; - return 1; - } - } else { - $$result_ref = "?? ??"; - return 1; - } -} - -############ -# get_trap # -############ -sub get_trap { - my $self = shift @_; - my $string_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $error; - my $value; - - ($error, $value) = @{$self->evaluate_expression($$string_ref, $pc_lin, $pc_pag, $loc_cnt)}; - if ($error) {$$error_ref = $error;} - if (defined $value) { - $value = $value & 0xff; - if ((($value >= 0x30) && ($value <= 0x39)) || - (($value >= 0x40) && ($value <= 0xff))) { - $$result_ref = sprintf("%.2X", $value); - return 1; - } else { - $$error_ref = sprintf("illegal trap number \$%.2X", $value); - $$result_ref = "??"; - return 1; - } - } else { - $$result_ref = "??"; - return 1; - } -} - -################# -# get_s12x_trap # -################# -sub get_s12x_trap { - my $self = shift @_; - my $string_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $error; - my $value; - - ($error, $value) = @{$self->evaluate_expression($$string_ref, $pc_lin, $pc_pag, $loc_cnt)}; - if ($error) {$$error_ref = $error;} - if (defined $value) { - $value = $value & 0xff; - if ((($value >= 0x30) && ($value <= 0x34)) || - (($value >= 0x49) && ($value <= 0x4f)) || - ($value == 0x59) || - ($value == 0x81) || - ($value == 0x86) || - ($value == 0x91) || - ($value == 0xa1) || - ($value == 0xa7) || - ($value == 0xb1) || - ($value == 0xb7) || - ($value == 0xc1) || - ($value == 0xc6) || - (($value >= 0xcc) && ($value <= 0xcf)) || - ($value == 0xd1) || - ($value == 0xe1) || - ($value == 0xf1)) { - $$result_ref = sprintf("%.2X", $value); - return 1; - } else { - $$error_ref = sprintf("illegal trap number \$%.2X", $value); - $$result_ref = "??"; - return 1; - } - } else { - $$result_ref = "??"; - return 1; - } -} - -################# -# get_xgate_imm # -################# -sub get_xgate_imm { - my $self = shift @_; - my $string_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - - ($$error_ref, $$result_ref) = @{$self->evaluate_expression($$string_ref, $pc_lin, $pc_pag, $loc_cnt)}; - return 1; -} - -################# -# get_xgate_gpr # -################# -sub get_xgate_gpr { - my $self = shift @_; - my $string_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - - #################### - # resolve register # - #################### - if ($$string_ref =~ /\s*R([0-7])\s*$/i) { - $$result_ref = $1 & 0x07; - return 1; - } - return 0; -} - -################# -# get_xgate_rel # -################# -sub get_xgate_rel { - my $self = shift @_; - my $string_ref = shift @_; - my $pc_lin = shift @_; - my $pc_pag = shift @_; - my $loc_cnt = shift @_; - my $error_ref = shift @_; - my $result_ref = shift @_; - #temporary - my $value; - - if (defined $pc_pag) { - ($$error_ref, $value) = @{$self->evaluate_expression($$string_ref, $pc_lin, $pc_pag, $loc_cnt)}; - if (defined $value) { - $$result_ref = ((int($value & 0xffff) - (int($pc_pag & 0xffff) +2)) /2); - } else { - $$result_ref = undef; - } - } else { - $$result_ref = undef; - } - return 1; -}
trunk/bench/tools/HSW12ASM/hsw12_asm.pm Property changes : Deleted: svn:executable Index: trunk/bench/tools/HSW12ASM/test_XGATE.s =================================================================== --- trunk/bench/tools/HSW12ASM/test_XGATE.s (revision 2) +++ trunk/bench/tools/HSW12ASM/test_XGATE.s (nonexistent) @@ -1,136 +0,0 @@ - CPU XGATE - - ORG $B000 - DS.W 2 ; reserve two words at cahnnel 0 - ; channel 1 - DC.W _START ; point to start address - DC.W V_PTR ; point to initial variables - - ORG $2000 ; with comment - -V_PTR EQU 123 -SPI0 EQU $D0 -SPI_CR EQU 5 - - DC.W BACK_ - DS.W 8 - DC.B $56 - DS.B 11 - - ALIGN 1 - -_START - TFR R2,CCR ; R2 = CCR - TFR CCR,R1 ; CCR = R1 - -;empty line - LDB R1,(R1,#SPI_CR) ; willi - LDW R1,(R1,#4) - STB R1,(R1,#4) ; willi - STW R1,(R1,#4) - LDB R1,(R1,R2) - LDW R1,(R1,R2) - STB R1,(R1,R2) - STW R1,(R1,R2) - LDB R1,(R1,R2+) - LDW R1,(R1,R2+) - STB R1,(R1,R2+) - STW R1,(R1,R2+) - LDB R1,(R1,-R2) - LDW R1,(R1,-R2) - STB R1,(R1,-R2) - STW R1,(R1,-R2) - -BACK_ SEX R3 - PAR R4 - JAL R7 - - CSEM #1 ; semaphores - CSEM R1 ; same as above + 1 - - SSEM #7 ; semaphores - SSEM R7 ; same as above + 1 - - BFFO R4,R5 - ASR R6,R7 - CSL R2,R2 - CSR R5,R3 - LSL R2,R0 - LSR R0,R3 - ROL R4,R2 - ROR R5,R6 - - ASR R6,#1 - CSL R2,#2 - CSR R5,#3 - LSL R2,#4 - LSR R0,#5 - ROL R4,#6 - ROR R5,#7 - - AND R0,R1,R2 ; bit compare R1,R2 - OR R1,R2,R3 - XNOR R2,R0,R3 ; invert R3 - COM R2,R3 ; as pseudo op with two operands (r2 = ~r3) - COM R3 ; as pseudo op with single op (r3 = ~r3) - - SUB R0,R2,R3 ; compare - CMP R2,R3 ; compare as pseudo op - SUB R0,R2,R0 ; compare - NEG R2,R3 ; as pseudo op with two operands (r3 = 0-r2) - NEG R3 ; as pseudo op with single op (r3 = 0-r3) - TST R2 ; compare as pseudo op - SBC R4,R5,R6 - SBC R0,R5,R6 - CPC R5,R6 ; compare as pseudo op - ADD R6,R7,R7 ; R7*2 - ADC R3,R2,R1 - - BCC *+2 - BCS *+2 - BEQ * - BNE FWD - -FWD BPL BACK_ - BMI BACK_ - BVC *+2 - BVS *+2 - BHI *+2 - BLS *+2 - BGE *+2 - BGT *+2 - BRA BACK_ - - BFEXT R4,R5,R6 - BFINS R4,R5,R6 ; clear BitField - BFINSI R4,R0,R6 ; set BF - BFINSX R4,R5,R6 ; toggle - - ANDL R3,#$FE - ANDH R3,#4+(5*3) ; 19dec = $13 - BITL R3,#($FE+1-1) ; $FE - BITH R3,#255 - ORL R3,#~$FE ; should be 1 - ORH R3,#~(~0) ; should be 0 - XNORL R3,#$FE - XNORH R3,#~$01 ; toggle bit 0 = $FE - - SUBL R3,#0 - SUBH R4,#2 - CMPL R3,#0 - CPCH R4,#2 - ADDL R3,#0 - ADDH R4,#2 - LDL R3,#0 - LDH R4,#2 - - SIF - SIF R7 - BRK - NOP - RTS - - - - -
trunk/bench/tools/HSW12ASM/test_XGATE.s Property changes : Deleted: svn:executable Index: trunk/bench/tools/HSW12ASM/test_XGATE_lin.s28 =================================================================== --- trunk/bench/tools/HSW12ASM/test_XGATE_lin.s28 (revision 2) +++ trunk/bench/tools/HSW12ASM/test_XGATE_lin.s28 (nonexistent) @@ -1,8 +0,0 @@ -S00D0000544553545F5847415445DA -S208003004201E007B0A -S2060F6000204228 -S2060F601256FF23 -S2440F601E02F801F9412549245124592461286928712879286129692971297929612A692A712A792A03F404F507F601F001F107F207F30CB00EF10A520D730A1408750C5616 -S2440F605E0DD70E190A2A0D3B0A4C085D0C6E0D7F1028114E120F120F130F184C184C18401A0C1B0C18401CB918B918B91EFE1B472000220027FF240029D52BD42C002E000E -S2400F609E30003200340038003FCD64BB6CBB741B7CBB83FE8B1393FE9BFFA301AB00B3FEBBFEC300CC02D300DC02E300EC02F300FC02030007F7000001000200C1 -S804000000FB Index: trunk/bench/tools/HSW12ASM/license.txt =================================================================== --- trunk/bench/tools/HSW12ASM/license.txt (revision 2) +++ trunk/bench/tools/HSW12ASM/license.txt (nonexistent) @@ -1,504 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! - -
trunk/bench/tools/HSW12ASM/license.txt Property changes : Deleted: svn:executable Index: trunk/bench/tools/HSW12ASM/test_S12X.s =================================================================== --- trunk/bench/tools/HSW12ASM/test_S12X.s (revision 2) +++ trunk/bench/tools/HSW12ASM/test_S12X.s (nonexistent) @@ -1,8374 +0,0 @@ -* -* S12X test case -* - - CPU S12X - -char equ 65 -immed equ $72 -dir equ $55 -ext equ $1234 -ind equ $37 -small equ $e -mask equ %11001100 -ROTATE000 EQU $0188 -ROTATE001 EQU $8944 -ROTATE002 EQU $3333 -ROTATE003 EQU $4444 -INDEX EQU 3 -* -* -* - ORG $1000 - -TEST1 EQU 1 -TEST2 EQU 2 -TEST3 EQU 3 -TEST4 EQU 4 -TEST5 EQU 5 -TEST6 EQU 6 -TEST7 EQU 7 -TEST8 EQU 8 - -#ifdef TEST1 - ldaa #TEST1 -#ifdef TEST2 - ldaa #TEST2 -#ifndef TEST3 - ldab #TEST3 -#ifdef TEST4 - ldab #TEST4 -#endif -#ifdef TEST5 - ldaa #TEST5 -*#ifdef TEST6 -* ldaa #TEST6 -*#ifdef TEST7 -* ldaa #TEST7 -*#ifdef TEST8 -* ldaa #TEST8 -*#endif -*#endif -*#endif -#else - ldd #3333 -#ifdef TEST7 - ldd #7777 -#else - ldaa #'N' -#endif -#endif -#else - ldd #3333 -#ifdef TEST17 - ldd #7777 -#else - ldaa #'N' -#endif -#endif -#endif -#endif -*#endif - - ORG $4000 - - - movb 5,-y,-16,sp - -#ifdef a4fn - movb 5,-y,-16,x -#endif - -#ifdef b32ff - movb 5,-y,-16,y -#endif - -; funny ` test -; stinky `` test -; - movb 5,-y -small,pc - movb 5,-y,-small,pc -happy` - - movb 5,-y -small,sp - movb 5,-y,-small,sp - movb 5,y- -small,sp - movb 5,y-,-small,sp - - - dw 2 - db 2 - dc.w 2 - dc.b 2 - fcb 2 - fdb 2222 - ds 34 - ds.b 34 - ds.w 34 - rmb 34 - rmw 34 - -bb equ 1 - -#ifdef aa - movb 5,-y -small,x - movb 5,-y,-small,x -#endif - - movb 5,-y -small,y - movb 5,-y,-small,y - -#ifdef aa - movb 5,-y 0,pc - movb 5,-y,0,pc -#endif - - movb 5,-y 0,sp - movb 5,-y,0,sp - trap $49 - -#ifdef aa - bclr 1,+sp $55 - bclr 1,+sp #$55 - bclr 1,+sp,#$55 - bclr 1,sp-,#$55 - bclr 1,sp- #$55 -#endif - -#ifdef bb - bclr 1,+x $55 - bclr 1,+x #$55 - bclr 1,+x,$55 - bclr 1,+x,#$55 -#endif - - bclr dir $55 - bclr dir #$55 - bclr dir,$55 - bclr dir,#$55 - - bclr ext $55 - bclr ext #$55 - bclr ext,$55 - bclr ext,#$55 - - brclr 1,+sp $55 * - brclr 1,+sp #$55 * - brclr 1,+sp,$55 * - brclr 1,+sp,#$55 * - - brclr dir $55 * - brclr dir #$55 * - brclr dir,$55 * - brclr dir,#$55 * - - brclr ext $55 * - brclr ext #$55 * - brclr ext,$55,* - brclr ext,#$55,* - - brset 1,+sp $55 * - brset 1,+sp #$55 * - brset 1,+sp,$55,* - brset 1,+sp,#$55,* - - brset dir $55 * - brset dir #$55 * - brset dir,$55,* - brset dir,#$55,* - - brset ext $55 * - brset ext #$55 * - brset ext,$55,* - brset ext,#$55,* - - bset 1,+sp $55 - bset 1,+sp #$55 - bset 1,+sp,$55 - bset 1,+sp,#$55 - - btas 1,+sp $55 ;s12x dark blue - btas 1,+sp #$55 ;s12x dark blue - btas 1,+sp,$55 ;s12x dark blue - btas 1,+sp,#$55 ;s12x dark blue - - bset dir $55 - bset dir #$55 - bset dir,$55 - bset dir,#$55 - - btas dir $55 ;s12x dark blue - btas dir #$55 ;s12x dark blue - btas dir,$55 ;s12x dark blue - btas dir,#$55 ;s12x dark blue - - bset dir $55 - bset dir #$55 - bset dir,$55 - bset dir,#$55 - - btas dir $55 ;s12x dark blue - btas dir #$55 ;s12x dark blue - btas dir,$55 ;s12x dark blue - btas dir,#$55 ;s12x dark blue - - bset ext $55 - bset ext #$55 - bset ext,$55 - bset ext,#$55 - - btas ext $55 ;s12x dark blue - btas ext #$55 ;s12x dark blue - btas ext,$55 ;s12x dark blue - btas ext,#$55 ;s12x dark blue - - movw ext 2,x - movw 2,x 0,x - - movb 1,sp ext - movb 1,sp 12,x - movw 2,sp ext - movw 2,sp 12,x - - movb #immed 1,-sp - movw ext 2,-sp - movb ext 1,-sp - movw #immed 2,-sp - movw #immed 2,-sp - aba - abx - aby - ALIGN 0 - adca #immed - adca #immed - adca #immed - adca #immed - adca #immed -#ifndef dense - adca 1,+sp -#else - adca 1,+x -#endif - adca 1,+y - LOC - adca 8,+sp ; a comma is in , order in the comment - adca 8,+y - adca ,pc - adca ,sp - adca ,x - - adca ,y - adca 1,-sp -reset - adca 1,-x - adca 1,-y - adca 8,-sp -reset` - adca 8,-x - adca 8,-y - adca -1,sp - adca -1,x -* -* helwo warry bud -* hewe is you comment -* - adca -1,y - adca -16,sp - jsr reset-*,pc - jsr *,pc - jsr * - adca -16,x - adca -16,y - adca -17,sp - ALIGN 1 - adca -17,x - adca -17,y - ALIGN 3 - adca -small,pc - adca -small,sp - adca -small,x - ALIGN 7 - adca -small,y - adca 0,pc - adca 0,sp - adca 0,x - adca 0,y - adca 1,sp+ - adca 1,x+ - adca ext,x - adca ext,x - adca ext,x - adca ext,x - adca ext,x - adca 1,y+ - adca 1,sp - adca 1,x - adca 1,y - adca 1,sp- - adca 1,x- - adca 1,y- - adca 125,pc - adca 125,sp - adca 125,x - adca 125,y - adca 15,sp - adca 15,x - adca 15,y - adca 16,sp - adca 16,x - adca 16,y - adca 8,sp+ - adca 8,x+ - adca 8,y+ - adca 8,sp- - adca 8,x- - adca 8,y- - adca a,sp - adca a,x - adca a,y - adca b,sp - adca b,x - adca b,y - adca d,sp - adca d,x - adca d,y - adca dir - adca dir - adca ext - adca ext - adca ext,sp - adca ext,x - adca ext,y - adca ind,pc - adca ind,sp - adca ind,x - adca ind,y - adca small,pc - adca small,sp - adca small,x - adca small,y - - adex #immed ;s12x yellow - adex 1,+sp ;s12x yellow - adex -small,pc ;s12x yellow - adex 125,pc ;s12x yellow - adex dir ;s12x yellow - adex ext ;s12x yellow - adex ext,sp ;s12x yellow - - adcb #immed - adcb 1,+sp - adcb -small,pc - adcb 125,pc - adcb dir - adcb ext - adcb ext,sp - - adey #immed ;s12x yellow - adey 1,+sp ;s12x yellow - adey -small,pc ;s12x yellow - adey 125,pc ;s12x yellow - adey dir ;s12x yellow - adey ext ;s12x yellow - adey ext,sp ;s12x yellow - - adda #immed - adda 1,+sp - adda dir - adda ext - adda ext - - addx #immed ;s12x yellow - addx 1,+sp ;s12x yellow - addx dir ;s12x yellow - addx ext ;s12x yellow - addx ext ;s12x yellow - - addb #immed - addb 1,+sp - addb dir - addb ext - - addy #immed ;s12x yellow - addy 1,+sp ;s12x yellow - addy dir ;s12x yellow - addy ext ;s12x yellow - - addd #immed - addd 1,+sp - addd dir - addd ext - - aded #immed ;s12x red - aded 1,+sp ;s12x red - aded dir ;s12x red - aded ext ;s12x red - - anda #immed - anda 1,+sp - anda dir - anda ext - - andx #immed ;s12x yellow - andx 1,+sp ;s12x yellow - andx dir ;s12x yellow - andx ext ;s12x yellow - - andb #immed - andb 1,+sp - andb dir - andb ext - - andy #immed ;s12x yellow - andy 1,+sp ;s12x yellow - andy dir ;s12x yellow - andy ext ;s12x yellow - - andcc #immed - asl 1,+sp - asl dir - asl ext - - aslw 1,+sp ;s12x green - aslw dir ;s12x green - aslw ext ;s12x green - - asla - aslb - asld - - aslx ;s12x yellow - asly ;s12x yellow - - asr 1,+sp - asr dir - asr ext - - asrw 1,+sp ;s12x green - asrw dir ;s12x green - asrw ext ;s12x green - - asra - asrb - - asrx ;s12x yellow - asry ;s12x yellow - - bcc * - bcs * - beq * - bge * - bgt * - bhi * - bita #immed - bita 1,+sp - bita dir - bita ext - - bitx #immed ;s12x yellow - bitx 1,+sp ;s12x yellow - bitx dir ;s12x yellow - bitx ext ;s12x yellow - - bitb #immed - bitb 1,+sp - bitb dir - bitb ext - - bity #immed ;s12x yellow - bity 1,+sp ;s12x yellow - bity dir ;s12x yellow - bity ext ;s12x yellow - - ble * - bls * - blt * - bmi * - bne * - bpl * - bra * - brn * - bsr * - bvc * - bvs * - cba - clc - cli - clr 1,+sp - clr dir - clr ext - - clrw 1,+sp ;s12x green - clrw dir ;s12x green - clrw ext ;s12x green - - clra - clrb - - clrx ;s12 yellow - clry ;s12 yellow - - clv - cmpa #immed - cmpa 1,+sp - cmpa dir - cmpa ext - - cmpb #immed - cmpb #immed - cmpb 1,+sp - cmpb 1,+x - cmpb 1,+y - cmpb 8,+sp - cmpb 8,+x - cmpb 8,+y - cmpb ,pc - cmpb ,sp - cmpb ,x - cmpb ,y - cmpb 1,-sp - cmpb 1,-x - cmpb 1,-y - cmpb 8,-sp - cmpb 8,-x - cmpb 8,-y - cmpb -1,sp - cmpb -1,x - cmpb -1,y - cmpb -16,sp - cmpb -16,x - cmpb -16,y - cmpb -17,sp - cmpb -17,x - cmpb -17,y - cmpb -small,pc - cmpb -small,sp - cmpb -small,x - cmpb -small,y - cmpb 0,pc - cmpb 0,sp - cmpb 0,x - cmpb 0,y - cmpb 1,sp+ - cmpb 1,x+ - cmpb 1,y+ - cmpb 1,sp - cmpb 1,x - cmpb 1,y - cmpb 1,sp- - cmpb 1,x- - cmpb 1,y- - cmpb 125,pc - cmpb 125,sp - cmpb 125,x - cmpb 125,y - cmpb 15,sp - cmpb 15,x - cmpb 15,y - cmpb 16,sp - cmpb 16,x - cmpb 16,y - cmpb 8,sp+ - cmpb 8,x+ - cmpb 8,y+ - cmpb 8,sp- - cmpb 8,x- - cmpb 8,y- - cmpb a,sp - cmpb a,x - cmpb a,y - cmpb b,sp - cmpb b,x - cmpb b,y - cmpb d,sp - cmpb d,x - cmpb d,y - cmpb dir - cmpb dir - cmpb ext - cmpb ext - cmpb ext,sp - cmpb ext,x - cmpb ext,y - cmpb ind,pc - cmpb ind,sp - cmpb ind,x - cmpb ind,y - cmpb small,pc - cmpb small,sp - cmpb small,x - cmpb small,y - com 1,+sp - com 1,+x - com 1,+y - com 8,+sp - com 8,+x - com 8,+y - com ,pc - com ,sp - com ,x - com ,y - com 1,-sp - com 1,-x - com 1,-y - com 8,-sp - com 8,-x - com 8,-y - com -1,sp - com -1,x - com -1,y - com -16,sp - com -16,x - com -16,y - com -17,sp - com -17,x - com -17,y - com -small,pc - com -small,sp - com -small,x - com -small,y - com 0,pc - com 0,sp - com 0,x - com 0,y - com 1,sp+ - com 1,x+ - com 1,y+ - com 1,sp - com 1,x - com 1,y - com 1,sp- - com 1,x- - com 1,y- - com 125,pc - com 125,sp - com 125,x - com 125,y - com 15,sp - com 15,x - com 15,y - com 16,sp - com 16,x - com 16,y - com 8,sp+ - com 8,x+ - com 8,y+ - com 8,sp- - com 8,x- - com 8,y- - com a,sp - com a,x - com a,y - com b,sp - com b,x - com b,y - com d,sp - com d,x - com d,y - com dir - com ext - com ext - com ext,sp - com ext,x - com ext,y - com ind,pc - com ind,sp - com ind,x - com ind,y - com small,pc - com small,sp - com small,x - com small,y - - comw 1,+sp ;s12x green - comw 1,+x ;s12x green - comw 1,+y ;s12x green - comw 8,+sp ;s12x green - comw 8,+x ;s12x green - comw 8,+y ;s12x green - comw ,pc ;s12x green - comw ,sp ;s12x green - comw ,x ;s12x green - comw ,y ;s12x green - comw 1,-sp ;s12x green - comw 1,-x ;s12x green - comw 1,-y ;s12x green - comw 8,-sp ;s12x green - comw 8,-x ;s12x green - comw 8,-y ;s12x green - comw -1,sp ;s12x green - comw -1,x ;s12x green - comw -1,y ;s12x green - comw -16,sp ;s12x green - comw -16,x ;s12x green - comw -16,y ;s12x green - comw -17,sp ;s12x green - comw -17,x ;s12x green - comw -17,y ;s12x green - comw -small,pc ;s12x green - comw -small,sp ;s12x green - comw -small,x ;s12x green - comw -small,y ;s12x green - comw 0,pc ;s12x green - comw 0,sp ;s12x green - comw 0,x ;s12x green - comw 0,y ;s12x green - comw 1,sp+ ;s12x green - comw 1,x+ ;s12x green - comw 1,y+ ;s12x green - comw 1,sp ;s12x green - comw 1,x ;s12x green - comw 1,y ;s12x green - comw 1,sp- ;s12x green - comw 1,x- ;s12x green - comw 1,y- ;s12x green - comw 125,pc ;s12x green - comw 125,sp ;s12x green - comw 125,x ;s12x green - comw 125,y ;s12x green - comw 15,sp ;s12x green - comw 15,x ;s12x green - comw 15,y ;s12x green - comw 16,sp ;s12x green - comw 16,x ;s12x green - comw 16,y ;s12x green - comw 8,sp+ ;s12x green - comw 8,x+ ;s12x green - comw 8,y+ ;s12x green - comw 8,sp- ;s12x green - comw 8,x- ;s12x green - comw 8,y- ;s12x green - comw a,sp ;s12x green - comw a,x ;s12x green - comw a,y ;s12x green - comw b,sp ;s12x green - comw b,x ;s12x green - comw b,y ;s12x green - comw d,sp ;s12x green - comw d,x ;s12x green - comw d,y ;s12x green - comw dir ;s12x green - comw ext ;s12x green - comw ext ;s12x green - comw ext,sp ;s12x green - comw ext,x ;s12x green - comw ext,y ;s12x green - comw ind,pc ;s12x green - comw ind,sp ;s12x green - comw ind,x ;s12x green - comw ind,y ;s12x green - comw small,pc ;s12x green - comw small,sp ;s12x green - comw small,x ;s12x green - comw small,y ;s12x green - - coma - comb - - comx ;s12x yellow - comy ;s12x yellow - - cpd #immed - cpd 1,+sp - cpd 1,+x - cpd 1,+y - cpd 8,+sp - cpd 8,+x - cpd 8,+y - cpd ,pc - cpd ,sp - cpd ,x - cpd ,y - cpd 1,-sp - cpd 1,-x - cpd 1,-y - cpd 8,-sp - cpd 8,-x - cpd 8,-y - cpd -1,sp - cpd -1,x - cpd -1,y - cpd -16,sp - cpd -16,x - cpd -16,y - cpd -17,sp - cpd -17,x - cpd -17,y - cpd -small,pc - cpd -small,sp - cpd -small,x - cpd -small,y - cpd 0,pc - cpd 0,sp - cpd 0,x - cpd 0,y - cpd 1,sp+ - cpd 1,x+ - cpd 1,y+ - cpd 1,sp - cpd 1,x - cpd 1,y - cpd 1,sp- - cpd 1,x- - cpd 1,y- - cpd 125,pc - cpd 125,sp - cpd 125,x - cpd 125,y - cpd 15,sp - cpd 15,x - cpd 15,y - cpd 16,sp - cpd 16,x - cpd 16,y - cpd 8,sp+ - cpd 8,x+ - cpd 8,y+ - cpd 8,sp- - cpd 8,x- - cpd 8,y- - cpd a,sp - cpd a,x - cpd a,y - cpd b,sp - cpd b,x - cpd b,y - cpd d,sp - cpd d,x - cpd d,y - cpd dir - cpd dir - cpd ext - cpd ext - cpd ext,sp - cpd ext,x - cpd ext,y - cpd ind,pc - cpd ind,sp - cpd ind,x - cpd ind,y - cpd small,pc - cpd small,sp - cpd small,x - cpd small,y - cps #immed - cps 1,+sp - cps 1,+x - cps 1,+y - cps 8,+sp - cps 8,+x - cps 8,+y - cps ,pc - cps ,sp - cps ,x - cps ,y - cps 1,-sp - cps 1,-x - cps 1,-y - cps 8,-sp - cps 8,-x - cps 8,-y - cps -1,sp - cps -1,x - cps -1,y - cps -16,sp - cps -16,x - cps -16,y - cps -17,sp - cps -17,x - cps -17,y - cps -small,pc - cps -small,sp - cps -small,x - cps -small,y - cps 0,pc - cps 0,sp - cps 0,x - cps 0,y - cps 1,sp+ - cps 1,x+ - cps 1,y+ - cps 1,sp - cps 1,x - cps 1,y - cps 1,sp- - cps 1,x- - cps 1,y- - cps 125,pc - cps 125,sp - cps 125,x - cps 125,y - cps 15,sp - cps 15,x - cps 15,y - cps 16,sp - cps 16,x - cps 16,y - cps 8,sp+ - cps 8,x+ - cps 8,y+ - cps 8,sp- - cps 8,x- - cps 8,y- - cps a,sp - cps a,x - cps a,y - cps b,sp - cps b,x - cps b,y - cps d,sp - cps d,x - cps d,y - cps dir - cps dir - cps ext - cps ext - cps ext,sp - cps ext,x - cps ext,y - cps ind,pc - cps ind,sp - cps ind,x - cps ind,y - cps small,pc - cps small,sp - cps small,x - cps small,y - cpx #immed - cpx #immed - cpx 1,+sp - cpx 1,+x - cpx 1,+y - cpx 8,+sp - cpx 8,+x - cpx 8,+y - cpx ,pc - cpx ,sp - cpx ,x - cpx ,y - cpx 1,-sp - cpx 1,-x - cpx 1,-y - cpx 8,-sp - cpx 8,-x - cpx 8,-y - cpx -1,sp - cpx -1,x - cpx -1,y - cpx -16,sp - cpx -16,x - cpx -16,y - cpx -17,sp - cpx -17,x - cpx -17,y - cpx -small,pc - cpx -small,sp - cpx -small,x - cpx -small,y - cpx 0,pc - cpx 0,sp - cpx 0,x - cpx 0,y - cpx 1,sp+ - cpx 1,x+ - cpx 1,y+ - cpx 1,sp - cpx 1,x - cpx 1,y - cpx 1,sp- - cpx 1,x- - cpx 1,y- - cpx 125,pc - cpx 125,sp - cpx 125,x - cpx 125,y - cpx 15,sp - cpx 15,x - cpx 15,y - cpx 16,sp - cpx 16,x - cpx 16,y - cpx 8,sp+ - cpx 8,x+ - cpx 8,y+ - cpx 8,sp- - cpx 8,x- - cpx 8,y- - cpx a,sp - cpx a,x - cpx a,y - cpx b,sp - cpx b,x - cpx b,y - cpx d,sp - cpx d,x - cpx d,y - cpx dir - cpx dir - cpx ext - cpx ext - cpx ext,sp - cpx ext,x - cpx ext,y - cpx ind,pc - cpx ind,sp - cpx ind,x - cpx ind,y - cpx small,pc - cpx small,sp - cpx small,x - cpx small,y - cpy #immed - cpy #immed - cpy 1,+sp - cpy 1,+x - cpy 1,+y - cpy 8,+sp - cpy 8,+x - cpy 8,+y - cpy ,pc - cpy ,sp - cpy ,x - cpy ,y - cpy 1,-sp - cpy 1,-x - cpy 1,-y - cpy 8,-sp - cpy 8,-x - cpy 8,-y - cpy -1,sp - cpy -1,x - cpy -1,y - cpy -16,sp - cpy -16,x - cpy -16,y - cpy -17,sp - cpy -17,x - cpy -17,y - cpy -small,pc - cpy -small,sp - cpy -small,x - cpy -small,y - cpy 0,pc - cpy 0,sp - cpy 0,x - cpy 0,y - cpy 1,sp+ - cpy 1,x+ - cpy 1,y+ - cpy 1,sp - cpy 1,x - cpy 1,y - cpy 1,sp- - cpy 1,x- - cpy 1,y- - cpy 125,pc - cpy 125,sp - cpy 125,x - cpy 125,y - cpy 15,sp - cpy 15,x - cpy 15,y - cpy 16,sp - cpy 16,x - cpy 16,y - cpy 8,sp+ - cpy 8,x+ - cpy 8,y+ - cpy 8,sp- - cpy 8,x- - cpy 8,y- - cpy a,sp - cpy a,x - cpy a,y - cpy b,sp - cpy b,x - cpy b,y - cpy d,sp - cpy d,x - cpy d,y - cpy dir - cpy dir - cpy ext - cpy ext - cpy ext,sp - cpy ext,x - cpy ext,y - cpy ind,pc - cpy ind,sp - cpy ind,x - cpy ind,y - cpy small,pc - cpy small,sp - cpy small,x - cpy small,y - - cped #immed ;s12x magenta - cped 1,+sp ;s12x magenta - cped 1,+x ;s12x magenta - cped 1,+y ;s12x magenta - cped 8,+sp ;s12x magenta - cped 8,+x ;s12x magenta - cped 8,+y ;s12x magenta - cped ,pc ;s12x magenta - cped ,sp ;s12x magenta - cped ,x ;s12x magenta - cped ,y ;s12x magenta - cped 1,-sp ;s12x magenta - cped 1,-x ;s12x magenta - cped 1,-y ;s12x magenta - cped 8,-sp ;s12x magenta - cped 8,-x ;s12x magenta - cped 8,-y ;s12x magenta - cped -1,sp ;s12x magenta - cped -1,x ;s12x magenta - cped -1,y ;s12x magenta - cped -16,sp ;s12x magenta - cped -16,x ;s12x magenta - cped -16,y ;s12x magenta - cped -17,sp ;s12x magenta - cped -17,x ;s12x magenta - cped -17,y ;s12x magenta - cped -small,pc ;s12x magenta - cped -small,sp ;s12x magenta - cped -small,x ;s12x magenta - cped -small,y ;s12x magenta - cped 0,pc ;s12x magenta - cped 0,sp ;s12x magenta - cped 0,x ;s12x magenta - cped 0,y ;s12x magenta - cped 1,sp+ ;s12x magenta - cped 1,x+ ;s12x magenta - cped 1,y+ ;s12x magenta - cped 1,sp ;s12x magenta - cped 1,x ;s12x magenta - cped 1,y ;s12x magenta - cped 1,sp- ;s12x magenta - cped 1,x- ;s12x magenta - cped 1,y- ;s12x magenta - cped 125,pc ;s12x magenta - cped 125,sp ;s12x magenta - cped 125,x ;s12x magenta - cped 125,y ;s12x magenta - cped 15,sp ;s12x magenta - cped 15,x ;s12x magenta - cped 15,y ;s12x magenta - cped 16,sp ;s12x magenta - cped 16,x ;s12x magenta - cped 16,y ;s12x magenta - cped 8,sp+ ;s12x magenta - cped 8,x+ ;s12x magenta - cped 8,y+ ;s12x magenta - cped 8,sp- ;s12x magenta - cped 8,x- ;s12x magenta - cped 8,y- ;s12x magenta - cped a,sp ;s12x magenta - cped a,x ;s12x magenta - cped a,y ;s12x magenta - cped b,sp ;s12x magenta - cped b,x ;s12x magenta - cped b,y ;s12x magenta - cped d,sp ;s12x magenta - cped d,x ;s12x magenta - cped d,y ;s12x magenta - cped dir ;s12x magenta - cped dir ;s12x magenta - cped ext ;s12x magenta - cped ext ;s12x magenta - cped ext,sp ;s12x magenta - cped ext,x ;s12x magenta - cped ext,y ;s12x magenta - cped ind,pc ;s12x magenta - cped ind,sp ;s12x magenta - cped ind,x ;s12x magenta - cped ind,y ;s12x magenta - cped small,pc ;s12x magenta - cped small,sp ;s12x magenta - cped small,x ;s12x magenta - cped small,y ;s12x magenta - cpes #immed ;s12x magenta - cpes 1,+sp ;s12x magenta - cpes 1,+x ;s12x magenta - cpes 1,+y ;s12x magenta - cpes 8,+sp ;s12x magenta - cpes 8,+x ;s12x magenta - cpes 8,+y ;s12x magenta - cpes ,pc ;s12x magenta - cpes ,sp ;s12x magenta - cpes ,x ;s12x magenta - cpes ,y ;s12x magenta - cpes 1,-sp ;s12x magenta - cpes 1,-x ;s12x magenta - cpes 1,-y ;s12x magenta - cpes 8,-sp ;s12x magenta - cpes 8,-x ;s12x magenta - cpes 8,-y ;s12x magenta - cpes -1,sp ;s12x magenta - cpes -1,x ;s12x magenta - cpes -1,y ;s12x magenta - cpes -16,sp ;s12x magenta - cpes -16,x ;s12x magenta - cpes -16,y ;s12x magenta - cpes -17,sp ;s12x magenta - cpes -17,x ;s12x magenta - cpes -17,y ;s12x magenta - cpes -small,pc ;s12x magenta - cpes -small,sp ;s12x magenta - cpes -small,x ;s12x magenta - cpes -small,y ;s12x magenta - cpes 0,pc ;s12x magenta - cpes 0,sp ;s12x magenta - cpes 0,x ;s12x magenta - cpes 0,y ;s12x magenta - cpes 1,sp+ ;s12x magenta - cpes 1,x+ ;s12x magenta - cpes 1,y+ ;s12x magenta - cpes 1,sp ;s12x magenta - cpes 1,x ;s12x magenta - cpes 1,y ;s12x magenta - cpes 1,sp- ;s12x magenta - cpes 1,x- ;s12x magenta - cpes 1,y- ;s12x magenta - cpes 125,pc ;s12x magenta - cpes 125,sp ;s12x magenta - cpes 125,x ;s12x magenta - cpes 125,y ;s12x magenta - cpes 15,sp ;s12x magenta - cpes 15,x ;s12x magenta - cpes 15,y ;s12x magenta - cpes 16,sp ;s12x magenta - cpes 16,x ;s12x magenta - cpes 16,y ;s12x magenta - cpes 8,sp+ ;s12x magenta - cpes 8,x+ ;s12x magenta - cpes 8,y+ ;s12x magenta - cpes 8,sp- ;s12x magenta - cpes 8,x- ;s12x magenta - cpes 8,y- ;s12x magenta - cpes a,sp ;s12x magenta - cpes a,x ;s12x magenta - cpes a,y ;s12x magenta - cpes b,sp ;s12x magenta - cpes b,x ;s12x magenta - cpes b,y ;s12x magenta - cpes d,sp ;s12x magenta - cpes d,x ;s12x magenta - cpes d,y ;s12x magenta - cpes dir ;s12x magenta - cpes dir ;s12x magenta - cpes ext ;s12x magenta - cpes ext ;s12x magenta - cpes ext,sp ;s12x magenta - cpes ext,x ;s12x magenta - cpes ext,y ;s12x magenta - cpes ind,pc ;s12x magenta - cpes ind,sp ;s12x magenta - cpes ind,x ;s12x magenta - cpes ind,y ;s12x magenta - cpes small,pc ;s12x magenta - cpes small,sp ;s12x magenta - cpes small,x ;s12x magenta - cpes small,y ;s12x magenta - cpex #immed ;s12x magenta - cpex #immed ;s12x magenta - cpex 1,+sp ;s12x magenta - cpex 1,+x ;s12x magenta - cpex 1,+y ;s12x magenta - cpex 8,+sp ;s12x magenta - cpex 8,+x ;s12x magenta - cpex 8,+y ;s12x magenta - cpex ,pc ;s12x magenta - cpex ,sp ;s12x magenta - cpex ,x ;s12x magenta - cpex ,y ;s12x magenta - cpex 1,-sp ;s12x magenta - cpex 1,-x ;s12x magenta - cpex 1,-y ;s12x magenta - cpex 8,-sp ;s12x magenta - cpex 8,-x ;s12x magenta - cpex 8,-y ;s12x magenta - cpex -1,sp ;s12x magenta - cpex -1,x ;s12x magenta - cpex -1,y ;s12x magenta - cpex -16,sp ;s12x magenta - cpex -16,x ;s12x magenta - cpex -16,y ;s12x magenta - cpex -17,sp ;s12x magenta - cpex -17,x ;s12x magenta - cpex -17,y ;s12x magenta - cpex -small,pc ;s12x magenta - cpex -small,sp ;s12x magenta - cpex -small,x ;s12x magenta - cpex -small,y ;s12x magenta - cpex 0,pc ;s12x magenta - cpex 0,sp ;s12x magenta - cpex 0,x ;s12x magenta - cpex 0,y ;s12x magenta - cpex 1,sp+ ;s12x magenta - cpex 1,x+ ;s12x magenta - cpex 1,y+ ;s12x magenta - cpex 1,sp ;s12x magenta - cpex 1,x ;s12x magenta - cpex 1,y ;s12x magenta - cpex 1,sp- ;s12x magenta - cpex 1,x- ;s12x magenta - cpex 1,y- ;s12x magenta - cpex 125,pc ;s12x magenta - cpex 125,sp ;s12x magenta - cpex 125,x ;s12x magenta - cpex 125,y ;s12x magenta - cpex 15,sp ;s12x magenta - cpex 15,x ;s12x magenta - cpex 15,y ;s12x magenta - cpex 16,sp ;s12x magenta - cpex 16,x ;s12x magenta - cpex 16,y ;s12x magenta - cpex 8,sp+ ;s12x magenta - cpex 8,x+ ;s12x magenta - cpex 8,y+ ;s12x magenta - cpex 8,sp- ;s12x magenta - cpex 8,x- ;s12x magenta - cpex 8,y- ;s12x magenta - cpex a,sp ;s12x magenta - cpex a,x ;s12x magenta - cpex a,y ;s12x magenta - cpex b,sp ;s12x magenta - cpex b,x ;s12x magenta - cpex b,y ;s12x magenta - cpex d,sp ;s12x magenta - cpex d,x ;s12x magenta - cpex d,y ;s12x magenta - cpex dir ;s12x magenta - cpex dir ;s12x magenta - cpex ext ;s12x magenta - cpex ext ;s12x magenta - cpex ext,sp ;s12x magenta - cpex ext,x ;s12x magenta - cpex ext,y ;s12x magenta - cpex ind,pc ;s12x magenta - cpex ind,sp ;s12x magenta - cpex ind,x ;s12x magenta - cpex ind,y ;s12x magenta - cpex small,pc ;s12x magenta - cpex small,sp ;s12x magenta - cpex small,x ;s12x magenta - cpex small,y ;s12x magenta - cpey #immed ;s12x magenta - cpey #immed ;s12x magenta - cpey 1,+sp ;s12x magenta - cpey 1,+x ;s12x magenta - cpey 1,+y ;s12x magenta - cpey 8,+sp ;s12x magenta - cpey 8,+x ;s12x magenta - cpey 8,+y ;s12x magenta - cpey ,pc ;s12x magenta - cpey ,sp ;s12x magenta - cpey ,x ;s12x magenta - cpey ,y ;s12x magenta - cpey 1,-sp ;s12x magenta - cpey 1,-x ;s12x magenta - cpey 1,-y ;s12x magenta - cpey 8,-sp ;s12x magenta - cpey 8,-x ;s12x magenta - cpey 8,-y ;s12x magenta - cpey -1,sp ;s12x magenta - cpey -1,x ;s12x magenta - cpey -1,y ;s12x magenta - cpey -16,sp ;s12x magenta - cpey -16,x ;s12x magenta - cpey -16,y ;s12x magenta - cpey -17,sp ;s12x magenta - cpey -17,x ;s12x magenta - cpey -17,y ;s12x magenta - cpey -small,pc ;s12x magenta - cpey -small,sp ;s12x magenta - cpey -small,x ;s12x magenta - cpey -small,y ;s12x magenta - cpey 0,pc ;s12x magenta - cpey 0,sp ;s12x magenta - cpey 0,x ;s12x magenta - cpey 0,y ;s12x magenta - cpey 1,sp+ ;s12x magenta - cpey 1,x+ ;s12x magenta - cpey 1,y+ ;s12x magenta - cpey 1,sp ;s12x magenta - cpey 1,x ;s12x magenta - cpey 1,y ;s12x magenta - cpey 1,sp- ;s12x magenta - cpey 1,x- ;s12x magenta - cpey 1,y- ;s12x magenta - cpey 125,pc ;s12x magenta - cpey 125,sp ;s12x magenta - cpey 125,x ;s12x magenta - cpey 125,y ;s12x magenta - cpey 15,sp ;s12x magenta - cpey 15,x ;s12x magenta - cpey 15,y ;s12x magenta - cpey 16,sp ;s12x magenta - cpey 16,x ;s12x magenta - cpey 16,y ;s12x magenta - cpey 8,sp+ ;s12x magenta - cpey 8,x+ ;s12x magenta - cpey 8,y+ ;s12x magenta - cpey 8,sp- ;s12x magenta - cpey 8,x- ;s12x magenta - cpey 8,y- ;s12x magenta - cpey a,sp ;s12x magenta - cpey a,x ;s12x magenta - cpey a,y ;s12x magenta - cpey b,sp ;s12x magenta - cpey b,x ;s12x magenta - cpey b,y ;s12x magenta - cpey d,sp ;s12x magenta - cpey d,x ;s12x magenta - cpey d,y ;s12x magenta - cpey dir ;s12x magenta - cpey dir ;s12x magenta - cpey ext ;s12x magenta - cpey ext ;s12x magenta - cpey ext,sp ;s12x magenta - cpey ext,x ;s12x magenta - cpey ext,y ;s12x magenta - cpey ind,pc ;s12x magenta - cpey ind,sp ;s12x magenta - cpey ind,x ;s12x magenta - cpey ind,y ;s12x magenta - cpey small,pc ;s12x magenta - cpey small,sp ;s12x magenta - cpey small,x ;s12x magenta - cpey small,y ;s12x magenta - - daa - dbne a * - dbne b * - dbne x * - dbne y * - - decw 1,+sp ;s12x green - decw 1,+x ;s12x green - decw 1,+y ;s12x green - decw 8,+sp ;s12x green - decw 8,+x ;s12x green - decw 8,+y ;s12x green - decw ,pc ;s12x green - decw ,sp ;s12x green - decw ,x ;s12x green - decw ,y ;s12x green - decw 1,-sp ;s12x green - decw 1,-x ;s12x green - decw 1,-y ;s12x green - decw 8,-sp ;s12x green - decw 8,-x ;s12x green - decw 8,-y ;s12x green - decw -1,sp ;s12x green - decw -1,x ;s12x green - decw -1,y ;s12x green - decw -16,sp ;s12x green - decw -16,x ;s12x green - decw -16,y ;s12x green - decw -17,sp ;s12x green - decw -17,x ;s12x green - decw -17,y ;s12x green - decw -small,pc ;s12x green - decw -small,sp ;s12x green - decw -small,x ;s12x green - decw -small,y ;s12x green - decw 0,pc ;s12x green - decw 0,sp ;s12x green - decw 0,x ;s12x green - decw 0,y ;s12x green - decw 1,sp+ ;s12x green - decw 1,x+ ;s12x green - decw 1,y+ ;s12x green - decw 1,sp ;s12x green - decw 1,x ;s12x green - decw 1,y ;s12x green - decw 1,sp- ;s12x green - decw 1,x- ;s12x green - decw 1,y- ;s12x green - decw 125,pc ;s12x green - decw 125,sp ;s12x green - decw 125,x ;s12x green - decw 125,y ;s12x green - decw 15,sp ;s12x green - decw 15,x ;s12x green - decw 15,y ;s12x green - decw 16,sp ;s12x green - decw 16,x ;s12x green - decw 16,y ;s12x green - decw 8,sp+ ;s12x green - decw 8,x+ ;s12x green - decw 8,y+ ;s12x green - decw 8,sp- ;s12x green - decw 8,x- ;s12x green - decw 8,y- ;s12x green - decw a,sp ;s12x green - decw a,x ;s12x green - decw a,y ;s12x green - decw b,sp ;s12x green - decw b,x ;s12x green - decw b,y ;s12x green - decw d,sp ;s12x green - decw d,x ;s12x green - decw d,y ;s12x green - decw dir ;s12x green - decw ext ;s12x green - decw ext ;s12x green - decw ext,sp ;s12x green - decw ext,x ;s12x green - decw ext,y ;s12x green - decw ind,pc ;s12x green - decw ind,sp ;s12x green - decw ind,x ;s12x green - decw ind,y ;s12x green - decw small,pc ;s12x green - decw small,sp ;s12x green - decw small,x ;s12x green - decw small,y ;s12x green - - deca - decb - - decx ;s12x yellow - decy ;s12x yellow - - des - dex - dey - ediv - edivs - emacs dir - emacs ext - emacs small - emaxd 1,+sp - emaxd 1,+x - emaxd 1,+y - emaxd 8,+sp - emaxd 8,+x - emaxd 8,+y - emaxd ,pc - emaxd ,sp - emaxd ,x - emaxd ,y - emaxd 1,-sp - emaxd 1,-x - emaxd 1,-y - emaxd 8,-sp - emaxd 8,-x - emaxd 8,-y - emaxd -1,sp - emaxd -1,x - emaxd -1,y - emaxd -16,sp - emaxd -16,x - emaxd -16,y - emaxd -17,sp - emaxd -17,x - emaxd -17,y - emaxd -small,pc - emaxd -small,sp - emaxd -small,x - emaxd -small,y - emaxd 0,pc - emaxd 0,sp - emaxd 0,x - emaxd 0,y - emaxd 1,sp+ - emaxd 1,x+ - emaxd 1,y+ - emaxd 1,sp - emaxd 1,x - emaxd 1,y - emaxd 1,sp- - emaxd 1,x- - emaxd 1,y- - emaxd 125,pc - emaxd 125,sp - emaxd 125,x - emaxd 125,y - emaxd 15,sp - emaxd 15,x - emaxd 15,y - emaxd 16,sp - emaxd 16,x - emaxd 16,y - emaxd 8,sp+ - emaxd 8,x+ - emaxd 8,y+ - emaxd 8,sp- - emaxd 8,x- - emaxd 8,y- - emaxd a,sp - emaxd a,x - emaxd a,y - emaxd b,sp - emaxd b,x - emaxd b,y - emaxd d,sp - emaxd d,x - emaxd d,y - emaxd ext,sp - emaxd ext,x - emaxd ext,y - emaxd ind,pc - emaxd ind,sp - emaxd ind,x - emaxd ind,y - emaxd small,pc - emaxd small,sp - emaxd small,x - emaxd small,y - emaxm 1,+sp - emaxm 1,+x - emaxm 1,+y - emaxm 8,+sp - emaxm 8,+x - emaxm 8,+y - emaxm ,pc - emaxm ,sp - emaxm ,x - emaxm ,y - emaxm 1,-sp - emaxm 1,-x - emaxm 1,-y - emaxm 8,-sp - emaxm 8,-x - emaxm 8,-y - emaxm -1,sp - emaxm -1,x - emaxm -1,y - emaxm -16,sp - emaxm -16,x - emaxm -16,y - emaxm -17,sp - emaxm -17,x - emaxm -17,y - emaxm -small,pc - emaxm -small,sp - emaxm -small,x - emaxm -small,y - emaxm 0,pc - emaxm 0,sp - emaxm 0,x - emaxm 0,y - emaxm 1,sp+ - emaxm 1,x+ - emaxm 1,y+ - emaxm 1,sp - emaxm 1,x - emaxm 1,y - emaxm 1,sp- - emaxm 1,x- - emaxm 1,y- - emaxm 125,pc - emaxm 125,sp - emaxm 125,x - emaxm 125,y - emaxm 15,sp - emaxm 15,x - emaxm 15,y - emaxm 16,sp - emaxm 16,x - emaxm 16,y - emaxm 8,sp+ - emaxm 8,x+ - emaxm 8,y+ - emaxm 8,sp- - emaxm 8,x- - emaxm 8,y- - emaxm a,sp - emaxm a,x - emaxm a,y - emaxm b,sp - emaxm b,x - emaxm b,y - emaxm d,sp - emaxm d,x - emaxm d,y - emaxm ext,sp - emaxm ext,x - emaxm ext,y - emaxm ind,pc - emaxm ind,sp - emaxm ind,x - emaxm ind,y - emaxm small,pc - emaxm small,sp - emaxm small,x - emaxm small,y - emind 1,+sp - emind 1,+x - emind 1,+y - emind 8,+sp - emind 8,+x - emind 8,+y - emind ,pc - emind ,sp - emind ,x - emind ,y - emind 1,-sp - emind 1,-x - emind 1,-y - emind 8,-sp - emind 8,-x - emind 8,-y - emind -1,sp - emind -1,x - emind -1,y - emind -16,sp - emind -16,x - emind -16,y - emind -17,sp - emind -17,x - emind -17,y - emind -small,pc - emind -small,sp - emind -small,x - emind -small,y - emind 0,pc - emind 0,sp - emind 0,x - emind 0,y - emind 1,sp+ - emind 1,x+ - emind 1,y+ - emind 1,sp - emind 1,x - emind 1,y - emind 1,sp- - emind 1,x- - emind 1,y- - emind 125,pc - emind 125,sp - emind 125,x - emind 125,y - emind 15,sp - emind 15,x - emind 15,y - emind 16,sp - emind 16,x - emind 16,y - emind 8,sp+ - emind 8,x+ - emind 8,y+ - emind 8,sp- - emind 8,x- - emind 8,y- - emind a,sp - emind a,x - emind a,y - emind b,sp - emind b,x - emind b,y - emind d,sp - emind d,x - emind d,y - emind ext,sp - emind ext,x - emind ext,y - emind ind,pc - emind ind,sp - emind ind,x - emind ind,y - emind small,pc - emind small,sp - emind small,x - emind small,y - eminm 1,+sp - eminm 1,+x - eminm 1,+y - eminm 8,+sp - eminm 8,+x - eminm 8,+y - eminm ,pc - eminm ,sp - eminm ,x - eminm ,y - eminm 1,-sp - eminm 1,-x - eminm 1,-y - eminm 8,-sp - eminm 8,-x - eminm 8,-y - eminm -1,sp - eminm -1,x - eminm -1,y - eminm -16,sp - eminm -16,x - eminm -16,y - eminm -17,sp - eminm -17,x - eminm -17,y - eminm -small,pc - eminm -small,sp - eminm -small,x - eminm -small,y - eminm 0,pc - eminm 0,sp - eminm 0,x - eminm 0,y - eminm 1,sp+ - eminm 1,x+ - eminm 1,y+ - eminm 1,sp - eminm 1,x - eminm 1,y - eminm 1,sp- - eminm 1,x- - eminm 1,y- - eminm 125,pc - eminm 125,sp - eminm 125,x - eminm 125,y - eminm 15,sp - eminm 15,x - eminm 15,y - eminm 16,sp - eminm 16,x - eminm 16,y - eminm 8,sp+ - eminm 8,x+ - eminm 8,y+ - eminm 8,sp- - eminm 8,x- - eminm 8,y- - eminm a,sp - eminm a,x - eminm a,y - eminm b,sp - eminm b,x - eminm b,y - eminm d,sp - eminm d,x - eminm d,y - eminm ext,sp - eminm ext,x - eminm ext,y - eminm ind,pc - eminm ind,sp - eminm ind,x - eminm ind,y - eminm small,pc - eminm small,sp - eminm small,x - eminm small,y - eora #immed - eora #immed - eora 1,+sp - eora 1,+x - eora 1,+y - eora 8,+sp - eora 8,+x - eora 8,+y - eora ,pc - eora ,sp - eora ,x - eora ,y - eora 1,-sp - eora 1,-x - eora 1,-y - eora 8,-sp - eora 8,-x - eora 8,-y - eora -1,sp - eora -1,x - eora -1,y - eora -16,sp - eora -16,x - eora -16,y - eora -17,sp - eora -17,x - eora -17,y - eora -small,pc - eora -small,sp - eora -small,x - eora -small,y - eora 0,pc - eora 0,sp - eora 0,x - eora 0,y - eora 1,sp+ - eora 1,x+ - eora 1,y+ - eora 1,sp - eora 1,x - eora 1,y - eora 1,sp- - eora 1,x- - eora 1,y- - eora 125,pc - eora 125,sp - eora 125,x - eora 125,y - eora 15,sp - eora 15,x - eora 15,y - eora 16,sp - eora 16,x - eora 16,y - eora 8,sp+ - eora 8,x+ - eora 8,y+ - eora 8,sp- - eora 8,x- - eora 8,y- - eora a,sp - eora a,x - eora a,y - eora b,sp - eora b,x - eora b,y - eora d,sp - eora d,x - eora d,y - eora dir - eora dir - eora ext - eora ext - eora ext,sp - eora ext,x - eora ext,y - eora ind,pc - eora ind,sp - eora ind,x - eora ind,y - eora small,pc - eora small,sp - eora small,x - eora small,y - - eorx #immed ;s12 yellow - eorx #immed ;s12 yellow - eorx 1,+sp ;s12 yellow - eorx 1,+x ;s12 yellow - eorx 1,+y ;s12 yellow - eorx 8,+sp ;s12 yellow - eorx 8,+x ;s12 yellow - eorx 8,+y ;s12 yellow - eorx ,pc ;s12 yellow - eorx ,sp ;s12 yellow - eorx ,x ;s12 yellow - eorx ,y ;s12 yellow - eorx 1,-sp ;s12 yellow - eorx 1,-x ;s12 yellow - eorx 1,-y ;s12 yellow - eorx 8,-sp ;s12 yellow - eorx 8,-x ;s12 yellow - eorx 8,-y ;s12 yellow - eorx -1,sp ;s12 yellow - eorx -1,x ;s12 yellow - eorx -1,y ;s12 yellow - eorx -16,sp ;s12 yellow - eorx -16,x ;s12 yellow - eorx -16,y ;s12 yellow - eorx -17,sp ;s12 yellow - eorx -17,x ;s12 yellow - eorx -17,y ;s12 yellow - eorx -small,pc ;s12 yellow - eorx -small,sp ;s12 yellow - eorx -small,x ;s12 yellow - eorx -small,y ;s12 yellow - eorx 0,pc ;s12 yellow - eorx 0,sp ;s12 yellow - eorx 0,x ;s12 yellow - eorx 0,y ;s12 yellow - eorx 1,sp+ ;s12 yellow - eorx 1,x+ ;s12 yellow - eorx 1,y+ ;s12 yellow - eorx 1,sp ;s12 yellow - eorx 1,x ;s12 yellow - eorx 1,y ;s12 yellow - eorx 1,sp- ;s12 yellow - eorx 1,x- ;s12 yellow - eorx 1,y- ;s12 yellow - eorx 125,pc ;s12 yellow - eorx 125,sp ;s12 yellow - eorx 125,x ;s12 yellow - eorx 125,y ;s12 yellow - eorx 15,sp ;s12 yellow - eorx 15,x ;s12 yellow - eorx 15,y ;s12 yellow - eorx 16,sp ;s12 yellow - eorx 16,x ;s12 yellow - eorx 16,y ;s12 yellow - eorx 8,sp+ ;s12 yellow - eorx 8,x+ ;s12 yellow - eorx 8,y+ ;s12 yellow - eorx 8,sp- ;s12 yellow - eorx 8,x- ;s12 yellow - eorx 8,y- ;s12 yellow - eorx a,sp ;s12 yellow - eorx a,x ;s12 yellow - eorx a,y ;s12 yellow - eorx b,sp ;s12 yellow - eorx b,x ;s12 yellow - eorx b,y ;s12 yellow - eorx d,sp ;s12 yellow - eorx d,x ;s12 yellow - eorx d,y ;s12 yellow - eorx dir ;s12 yellow - eorx dir ;s12 yellow - eorx ext ;s12 yellow - eorx ext ;s12 yellow - eorx ext,sp ;s12 yellow - eorx ext,x ;s12 yellow - eorx ext,y ;s12 yellow - eorx ind,pc ;s12 yellow - eorx ind,sp ;s12 yellow - eorx ind,x ;s12 yellow - eorx ind,y ;s12 yellow - eorx small,pc ;s12 yellow - eorx small,sp ;s12 yellow - eorx small,x ;s12 yellow - eorx small,y ;s12 yellow - - eorb #immed - eorb 1,+sp - eorb 1,+x - eorb 1,+y - eorb 8,+sp - eorb 8,+x - eorb 8,+y - eorb ,pc - eorb ,sp - eorb ,x - eorb ,y - eorb 1,-sp - eorb 1,-x - eorb 1,-y - eorb 8,-sp - eorb 8,-x - eorb 8,-y - eorb -1,sp - eorb -1,x - eorb -1,y - eorb -16,sp - eorb -16,x - eorb -16,y - eorb -17,sp - eorb -17,x - eorb -17,y - eorb -small,pc - eorb -small,sp - eorb -small,x - eorb -small,y - eorb 0,pc - eorb 0,sp - eorb 0,x - eorb 0,y - eorb 1,sp+ - eorb 1,x+ - eorb 1,y+ - eorb 1,sp - eorb 1,x - eorb 1,y - eorb 1,sp- - eorb 1,x- - eorb 1,y- - eorb 125,pc - eorb 125,sp - eorb 125,x - eorb 125,y - eorb 15,sp - eorb 15,x - eorb 15,y - eorb 16,sp - eorb 16,x - eorb 16,y - eorb 8,sp+ - eorb 8,x+ - eorb 8,y+ - eorb 8,sp- - eorb 8,x- - eorb 8,y- - eorb a,sp - eorb a,x - eorb a,y - eorb b,sp - eorb b,x - eorb b,y - eorb d,sp - eorb d,x - eorb d,y - eorb dir - eorb dir - eorb ext - eorb ext - eorb ext,sp - eorb ext,x - eorb ext,y - eorb ind,pc - eorb ind,sp - eorb ind,x - eorb ind,y - eorb small,pc - eorb small,sp - eorb small,x - eorb small,y - - eory #immed ;s12x yellow - eory 1,+sp ;s12x yellow - eory 1,+x ;s12x yellow - eory 1,+y ;s12x yellow - eory 8,+sp ;s12x yellow - eory 8,+x ;s12x yellow - eory 8,+y ;s12x yellow - eory ,pc ;s12x yellow - eory ,sp ;s12x yellow - eory ,x ;s12x yellow - eory ,y ;s12x yellow - eory 1,-sp ;s12x yellow - eory 1,-x ;s12x yellow - eory 1,-y ;s12x yellow - eory 8,-sp ;s12x yellow - eory 8,-x ;s12x yellow - eory 8,-y ;s12x yellow - eory -1,sp ;s12x yellow - eory -1,x ;s12x yellow - eory -1,y ;s12x yellow - eory -16,sp ;s12x yellow - eory -16,x ;s12x yellow - eory -16,y ;s12x yellow - eory -17,sp ;s12x yellow - eory -17,x ;s12x yellow - eory -17,y ;s12x yellow - eory -small,pc ;s12x yellow - eory -small,sp ;s12x yellow - eory -small,x ;s12x yellow - eory -small,y ;s12x yellow - eory 0,pc ;s12x yellow - eory 0,sp ;s12x yellow - eory 0,x ;s12x yellow - eory 0,y ;s12x yellow - eory 1,sp+ ;s12x yellow - eory 1,x+ ;s12x yellow - eory 1,y+ ;s12x yellow - eory 1,sp ;s12x yellow - eory 1,x ;s12x yellow - eory 1,y ;s12x yellow - eory 1,sp- ;s12x yellow - eory 1,x- ;s12x yellow - eory 1,y- ;s12x yellow - eory 125,pc ;s12x yellow - eory 125,sp ;s12x yellow - eory 125,x ;s12x yellow - eory 125,y ;s12x yellow - eory 15,sp ;s12x yellow - eory 15,x ;s12x yellow - eory 15,y ;s12x yellow - eory 16,sp ;s12x yellow - eory 16,x ;s12x yellow - eory 16,y ;s12x yellow - eory 8,sp+ ;s12x yellow - eory 8,x+ ;s12x yellow - eory 8,y+ ;s12x yellow - eory 8,sp- ;s12x yellow - eory 8,x- ;s12x yellow - eory 8,y- ;s12x yellow - eory a,sp ;s12x yellow - eory a,x ;s12x yellow - eory a,y ;s12x yellow - eory b,sp ;s12x yellow - eory b,x ;s12x yellow - eory b,y ;s12x yellow - eory d,sp ;s12x yellow - eory d,x ;s12x yellow - eory d,y ;s12x yellow - eory dir ;s12x yellow - eory dir ;s12x yellow - eory ext ;s12x yellow - eory ext ;s12x yellow - eory ext,sp ;s12x yellow - eory ext,x ;s12x yellow - eory ext,y ;s12x yellow - eory ind,pc ;s12x yellow - eory ind,sp ;s12x yellow - eory ind,x ;s12x yellow - eory ind,y ;s12x yellow - eory small,pc ;s12x yellow - eory small,sp ;s12x yellow - eory small,x ;s12x yellow - eory small,y ;s12x yellow - - etbl 5,x - exg a a - exg a b - exg a,b - exg a ccr - exg a ccrl ;s12x exg alternative - exg a ccrh ;s12x exg new - exg a d - exg a sp - exg a x - exg a,x - exg a y - exg a,x - exg b a - exg b b - exg b ccr - exg b ccrl ;s12x exg alternative - ;exg b ccrh ;s12x exg new - exg b d - exg b sp - exg b x - exg b y - exg ccr a - exg ccrl a ;s12x exg alternative - exg ccrh a ;s12x exg new - exg ccr b - exg ccrl b ;s12x exg alternative - ;exg ccrh b ;s12x exg new - exg ccr ccr - exg ccrw ccrw ;s12x exg new - exg ccr d ;?????? - exg ccrl d ;s12x exg alternative - exg ccrw d ;s12x exg new - exg ccr sp - exg ccrl sp ;s12x exg alternative - exg ccrw sp ;s12x exg new - exg ccr x - exg ccrl x ;s12x exg alternative - exg ccrw x ;s12x exg new - exg ccr y - exg ccrl y ;s12x exg alternative - exg ccrw y ;s12x exg new - exg d a - exg d b - exg d ccr - exg d ccrl ;?????? - exg d ccrw ;s12x exg new - exg d d - exg d sp - exg d x - exg d y - exg sp a - exg sp b - exg sp ccr - exg sp ccrl ;s12x exg alternative - exg sp ccrw ;s12x exg new - exg sp d - exg sp sp - exg sp x - exg sp y - exg x a - exg x b - exg x ccr - exg x ccrl ;s12x exg alternative - exg x ccrw ;s12x exg new - exg x d - exg x sp - exg x x - exg x y - exg x,y - exg y a - exg y b - exg y ccr - exg y ccrl ;s12x exg alternative - exg y ccrw ;s12x exg new - exg y d - exg y sp - exg y x - exg y y - fdiv - idiv - inc 1,+sp - inc 1,+x - inc 1,+y - inc 8,+sp - inc 8,+x - inc 8,+y - inc ,pc - inc ,sp - inc ,x - inc ,y - inc 1,-sp - inc 1,-x - inc 1,-y - inc 8,-sp - inc 8,-x - inc 8,-y - inc -1,sp - inc -1,x - inc -1,y - inc -16,sp - inc -16,x - inc -16,y - inc -17,sp - inc -17,x - inc -17,y - inc -small,pc - inc -small,sp - inc -small,x - inc -small,y - inc 0,pc - inc 0,sp - inc 0,x - inc 0,y - inc 1,sp+ - inc 1,x+ - inc 1,y+ - inc 1,sp - inc 1,x - inc 1,y - inc 1,sp- - inc 1,x- - inc 1,y- - inc 125,pc - inc 125,sp - inc 125,x - inc 125,y - inc 15,sp - inc 15,x - inc 15,y - inc 16,sp - inc 16,x - inc 16,y - inc 8,sp+ - inc 8,x+ - inc 8,y+ - inc 8,sp- - inc 8,x- - inc 8,y- - inc a,sp - inc a,x - inc a,y - inc b,sp - inc b,x - inc b,y - inc d,sp - inc d,x - inc d,y - inc dir - inc ext - inc ext - inc ext,sp - inc ext,x - inc ext,y - inc ind,pc - inc ind,sp - inc ind,x - inc ind,y - inc small,pc - inc small,sp - inc small,x - inc small,y - - incw 1,+sp ;s12x green - incw 1,+x ;s12x green - incw 1,+y ;s12x green - incw 8,+sp ;s12x green - incw 8,+x ;s12x green - incw 8,+y ;s12x green - incw ,pc ;s12x green - incw ,sp ;s12x green - incw ,x ;s12x green - incw ,y ;s12x green - incw 1,-sp ;s12x green - incw 1,-x ;s12x green - incw 1,-y ;s12x green - incw 8,-sp ;s12x green - incw 8,-x ;s12x green - incw 8,-y ;s12x green - incw -1,sp ;s12x green - incw -1,x ;s12x green - incw -1,y ;s12x green - incw -16,sp ;s12x green - incw -16,x ;s12x green - incw -16,y ;s12x green - incw -17,sp ;s12x green - incw -17,x ;s12x green - incw -17,y ;s12x green - incw -small,pc ;s12x green - incw -small,sp ;s12x green - incw -small,x ;s12x green - incw -small,y ;s12x green - incw 0,pc ;s12x green - incw 0,sp ;s12x green - incw 0,x ;s12x green - incw 0,y ;s12x green - incw 1,sp+ ;s12x green - incw 1,x+ ;s12x green - incw 1,y+ ;s12x green - incw 1,sp ;s12x green - incw 1,x ;s12x green - incw 1,y ;s12x green - incw 1,sp- ;s12x green - incw 1,x- ;s12x green - incw 1,y- ;s12x green - incw 125,pc ;s12x green - incw 125,sp ;s12x green - incw 125,x ;s12x green - incw 125,y ;s12x green - incw 15,sp ;s12x green - incw 15,x ;s12x green - incw 15,y ;s12x green - incw 16,sp ;s12x green - incw 16,x ;s12x green - incw 16,y ;s12x green - incw 8,sp+ ;s12x green - incw 8,x+ ;s12x green - incw 8,y+ ;s12x green - incw 8,sp- ;s12x green - incw 8,x- ;s12x green - incw 8,y- ;s12x green - incw a,sp ;s12x green - incw a,x ;s12x green - incw a,y ;s12x green - incw b,sp ;s12x green - incw b,x ;s12x green - incw b,y ;s12x green - incw d,sp ;s12x green - incw d,x ;s12x green - incw d,y ;s12x green - incw dir ;s12x green - incw ext ;s12x green - incw ext ;s12x green - incw ext,sp ;s12x green - incw ext,x ;s12x green - incw ext,y ;s12x green - incw ind,pc ;s12x green - incw ind,sp ;s12x green - incw ind,x ;s12x green - incw ind,y ;s12x green - incw small,pc ;s12x green - incw small,sp ;s12x green - incw small,x ;s12x green - incw small,y ;s12x green - - inca - incb - - incx ;s12x yellow - incy ;s12x yellow - - ins - inx - iny - jmp 1,+sp - jmp 1,+x - jmp 1,+y - jmp 8,+sp - jmp 8,+x - jmp 8,+y - jmp ,pc - jmp ,sp - jmp ,x - jmp ,y - jmp 1,-sp - jmp 1,-x - jmp 1,-y - jmp 8,-sp - jmp 8,-x - jmp 8,-y - jmp -1,sp - jmp -1,x - jmp -1,y - jmp -16,sp - jmp -16,x - jmp -16,y - jmp -17,sp - jmp -17,x - jmp -17,y - jmp -small,pc - jmp -small,sp - jmp -small,x - jmp -small,y - jmp 0,pc - jmp 0,sp - jmp 0,x - jmp 0,y - jmp 1,sp+ - jmp 1,x+ - jmp 1,y+ - jmp 1,sp - jmp 1,x - jmp 1,y - jmp 1,sp- - jmp 1,x- - jmp 1,y- - jmp 125,pc - jmp 125,sp - jmp 125,x - jmp 125,y - jmp 15,sp - jmp 15,x - jmp 15,y - jmp 16,sp - jmp 16,x - jmp 16,y - jmp 8,sp+ - jmp 8,x+ - jmp 8,y+ - jmp 8,sp- - jmp 8,x- - jmp 8,y- - jmp a,sp - jmp a,x - jmp a,y - jmp b,sp - jmp b,x - jmp b,y - jmp d,sp - jmp d,x - jmp d,y - jmp dir - jmp ext - jmp ext - jmp ext,sp - jmp ext,x - jmp ext,y - jmp ind,pc - jmp ind,sp - jmp ind,x - jmp ind,y - jmp small,pc - jmp small,sp - jmp small,x - jmp small,y - jsr 1,+sp - jsr 1,+x - jsr 1,+y - jsr 8,+sp - jsr 8,+x - jsr 8,+y - jsr ,pc - jsr ,sp - jsr ,x - jsr ,y - jsr 1,-sp - jsr 1,-x - jsr 1,-y - jsr 8,-sp - jsr 8,-x - jsr 8,-y - jsr -1,sp - jsr -1,x - jsr -1,y - jsr -16,sp - jsr -16,x - jsr -16,y - jsr -17,sp - jsr -17,x - jsr -17,y - jsr -small,pc - jsr -small,sp - jsr -small,x - jsr -small,y - jsr 0,pc - jsr 0,sp - jsr 0,x - jsr 0,y - jsr 1,sp+ - jsr 1,x+ - jsr 1,y+ - jsr 1,sp - jsr 1,x - jsr 1,y - jsr 1,sp- - jsr 1,x- - jsr 1,y- - jsr 125,pc - jsr 125,sp - jsr 125,x - jsr 125,y - jsr 15,sp - jsr 15,x - jsr 15,y - jsr 16,sp - jsr 16,x - jsr 16,y - jsr 8,sp+ - jsr 8,x+ - jsr 8,y+ - jsr 8,sp- - jsr 8,x- - jsr 8,y- - jsr a,sp - jsr a,x - jsr a,y - jsr b,sp - jsr b,x - jsr b,y - jsr d,sp - jsr d,x - jsr d,y - jsr dir - jsr dir - jsr ext - jsr ext - jsr ext - jsr ext,sp - jsr ext,x - jsr ext,y - jsr ind,pc - jsr ind,sp - jsr ind,x - jsr ind,y - jsr small,pc - jsr small,sp - jsr small,x - jsr small,y - lbcc * - lbcc * - lbcs * - lbeq * - lbge * - lbgt * - lbhi * - lble * - lbls * - lblt * - lbmi * - lbne * - lbpl * - lbra * - lbrn * - lbvc * - lbvs * - - ldaa #immed - ldaa 1,+sp - ldaa 1,+x - ldaa 1,+y - ldaa 8,+sp - ldaa 8,+x - ldaa 8,+y - ldaa ,pc - ldaa ,sp - ldaa ,x - ldaa ,y - ldaa 1,-sp - ldaa 1,-x - ldaa 1,-y - ldaa 8,-sp - ldaa 8,-x - ldaa 8,-y - ldaa -1,sp - ldaa -1,x - ldaa -1,y - ldaa -16,sp - ldaa -16,x - ldaa -16,y - ldaa -17,sp - ldaa -17,x - ldaa -17,y - ldaa -small,pc - ldaa -small,sp - ldaa -small,x - ldaa -small,y - ldaa 0,pc - ldaa 0,sp - ldaa 0,x - ldaa 0,y - ldaa 1,sp+ - ldaa 1,x+ - ldaa 1,y+ - ldaa 1,sp - ldaa 1,x - ldaa 1,y - ldaa 1,sp- - ldaa 1,x- - ldaa 1,y- - ldaa 125,pc - ldaa 125,sp - ldaa 125,x - ldaa 125,y - ldaa 15,sp - ldaa 15,x - ldaa 15,y - ldaa 16,sp - ldaa 16,x - ldaa 16,y - ldaa 8,sp+ - ldaa 8,x+ - ldaa 8,y+ - ldaa 8,sp- - ldaa 8,x- - ldaa 8,y- - ldaa a,sp - ldaa a,x - ldaa a,y - ldaa b,sp - ldaa b,x - ldaa b,y - ldaa d,sp - ldaa d,x - ldaa d,y - ldaa dir - ldaa dir - ldaa ext - ldaa ext - ldaa ext,sp - ldaa ext,x - ldaa ext,y - ldaa ind,pc - ldaa ind,sp - ldaa ind,x - ldaa ind,y - ldaa small,pc - ldaa small,sp - ldaa small,x - ldaa small,y - ldab #immed - ldab #immed - ldab 1,+sp - ldab 1,+x - ldab 1,+y - ldab 8,+sp - ldab 8,+x - ldab 8,+y - ldab ,pc - ldab ,sp - ldab ,x - ldab ,y - ldab 1,-sp - ldab 1,-x - ldab 1,-y - ldab 8,-sp - ldab 8,-x - ldab 8,-y - ldab -1,sp - ldab -1,x - ldab -1,y - ldab -16,sp - ldab -16,x - ldab -16,y - ldab -17,sp - ldab -17,x - ldab -17,y - ldab -small,pc - ldab -small,sp - ldab -small,x - ldab -small,y - ldab 0,pc - ldab 0,sp - ldab 0,x - ldab 0,y - ldab 1,sp+ - ldab 1,x+ - ldab 1,y+ - ldab 1,sp - ldab 1,x - ldab 1,y - ldab 1,sp- - ldab 1,x- - ldab 1,y- - ldab 125,pc - ldab 125,sp - ldab 125,x - ldab 125,y - ldab 15,sp - ldab 15,x - ldab 15,y - ldab 16,sp - ldab 16,x - ldab 16,y - ldab 8,sp+ - ldab 8,x+ - ldab 8,y+ - ldab 8,sp- - ldab 8,x- - ldab 8,y- - ldab a,sp - ldab a,x - ldab a,y - ldab b,sp - ldab b,x - ldab b,y - ldab d,sp - ldab d,x - ldab d,y - ldab dir - ldab dir - ldab ext - ldab ext - ldab ext,sp - ldab ext,x - ldab ext,y - ldab ind,pc - ldab ind,sp - ldab ind,x - ldab ind,y - ldab small,pc - ldab small,sp - ldab small,x - ldab small,y - ldd #immed - ldd #immed - ldd 1,+sp - ldd 1,+x - ldd 1,+y - ldd 8,+sp - ldd 8,+x - ldd 8,+y - ldd ,pc - ldd ,sp - ldd ,x - ldd ,y - ldd 1,-sp - ldd 1,-x - ldd 1,-y - ldd 8,-sp - ldd 8,-x - ldd 8,-y - ldd -1,sp - ldd -1,x - ldd -1,y - ldd -16,sp - ldd -16,x - ldd -16,y - ldd -17,sp - ldd -17,x - ldd -17,y - ldd -small,pc - ldd -small,sp - ldd -small,x - ldd -small,y - ldd 0,pc - ldd 0,sp - ldd 0,x - ldd 0,y - ldd 1,sp+ - ldd 1,x+ - ldd 1,y+ - ldd 1,sp - ldd 1,x - ldd 1,y - ldd 1,sp- - ldd 1,x- - ldd 1,y- - ldd 125,pc - ldd 125,sp - ldd 125,x - ldd 125,y - ldd 15,sp - ldd 15,x - ldd 15,y - ldd 16,sp - ldd 16,x - ldd 16,y - ldd 8,sp+ - ldd 8,x+ - ldd 8,y+ - ldd 8,sp- - ldd 8,x- - ldd 8,y- - ldd a,sp - ldd a,x - ldd a,y - ldd b,sp - ldd b,x - ldd b,y - ldd d,sp - ldd d,x - ldd d,y - ldd dir - ldd dir - ldd ext - ldd ext - ldd ext,sp - ldd ext,x - ldd ext,y - ldd ind,pc - ldd ind,sp - ldd ind,x - ldd ind,y - ldd small,pc - ldd small,sp - ldd small,x - ldd small,y - lds #immed - lds #immed - lds 1,+sp - lds 1,+x - lds 1,+y - lds 8,+sp - lds 8,+x - lds 8,+y - lds ,pc - lds ,sp - lds ,x - lds ,y - lds 1,-sp - lds 1,-x - lds 1,-y - lds 8,-sp - lds 8,-x - lds 8,-y - lds -1,sp - lds -1,x - lds -1,y - lds -16,sp - lds -16,x - lds -16,y - lds -17,sp - lds -17,x - lds -17,y - lds -small,pc - lds -small,sp - lds -small,x - lds -small,y - lds 0,pc - lds 0,sp - lds 0,x - lds 0,y - lds 1,sp+ - lds 1,x+ - lds 1,y+ - lds 1,sp - lds 1,x - lds 1,y - lds 1,sp- - lds 1,x- - lds 1,y- - lds 125,pc - lds 125,sp - lds 125,x - lds 125,y - lds 15,sp - lds 15,x - lds 15,y - lds 16,sp - lds 16,x - lds 16,y - lds 8,sp+ - lds 8,x+ - lds 8,y+ - lds 8,sp- - lds 8,x- - lds 8,y- - lds a,sp - lds a,x - lds a,y - lds b,sp - lds b,x - lds b,y - lds d,sp - lds d,x - lds d,y - lds dir - lds ext - lds ext,sp - lds ext,x - lds ext,y - lds ind,pc - lds ind,sp - lds ind,x - lds ind,y - lds small,pc - lds small,sp - lds small,x - lds small,y - ldx #immed - ldx #immed - ldx 1,+sp - ldx 1,+x - ldx 1,+y - ldx 8,+sp - ldx 8,+x - ldx 8,+y - ldx ,pc - ldx ,sp - ldx ,x - ldx ,y - ldx 1,-sp - ldx 1,-x - ldx 1,-y - ldx 8,-sp - ldx 8,-x - ldx 8,-y - ldx -1,sp - ldx -1,x - ldx -1,y - ldx -16,sp - ldx -16,x - ldx -16,y - ldx -17,sp - ldx -17,x - ldx -17,y - ldx -small,pc - ldx -small,sp - ldx -small,x - ldx -small,y - ldx 0,pc - ldx 0,sp - ldx 0,x - ldx 0,y - ldx 1,sp+ - ldx 1,x+ - ldx 1,y+ - ldx 1,sp - ldx 1,x - ldx 1,y - ldx 1,sp- - ldx 1,x- - ldx 1,y- - ldx 125,pc - ldx 125,sp - ldx 125,x - ldx 125,y - ldx 15,sp - ldx 15,x - ldx 15,y - ldx 16,sp - ldx 16,x - ldx 16,y - ldx 8,sp+ - ldx 8,x+ - ldx 8,y+ - ldx 8,sp- - ldx 8,x- - ldx 8,y- - ldx a,sp - ldx a,x - ldx a,y - ldx b,sp - ldx b,x - ldx b,y - ldx d,sp - ldx d,x - ldx d,y - ldx dir - ldx dir - ldx ext - ldx ext - ldx ext,sp - ldx ext,x - ldx ext,y - ldx ind,pc - ldx ind,sp - ldx ind,x - ldx ind,y - ldx small,pc - ldx small,sp - ldx small,x - ldx small,y - ldy #immed - ldy #immed - ldy 1,+sp - ldy 1,+x - ldy 1,+y - ldy 8,+sp - ldy 8,+x - ldy 8,+y - ldy ,pc - ldy ,sp - ldy ,x - ldy ,y - ldy 1,-sp - ldy 1,-x - ldy 1,-y - ldy 8,-sp - ldy 8,-x - ldy 8,-y - ldy -1,sp - ldy -1,x - ldy -1,y - ldy -16,sp - ldy -16,x - ldy -16,y - ldy -17,sp - ldy -17,x - ldy -17,y - ldy -small,pc - ldy -small,sp - ldy -small,x - ldy -small,y - ldy 0,pc - ldy 0,sp - ldy 0,x - ldy 0,y - ldy 1,sp+ - ldy 1,x+ - ldy 1,y+ - ldy 1,sp - ldy 1,x - ldy 1,y - ldy 1,sp- - ldy 1,x- - ldy 1,y- - ldy 125,pc - ldy 125,sp - ldy 125,x - ldy 125,y - ldy 15,sp - ldy 15,x - ldy 15,y - ldy 16,sp - ldy 16,x - ldy 16,y - ldy 8,sp+ - ldy 8,x+ - ldy 8,y+ - ldy 8,sp- - ldy 8,x- - ldy 8,y- - ldy a,sp - ldy a,x - ldy a,y - ldy b,sp - ldy b,x - ldy b,y - ldy d,sp - ldy d,x - ldy d,y - ldy dir - ldy dir - ldy ext - ldy ext - ldy ext,sp - ldy ext,x - ldy ext,y - ldy ind,pc - ldy ind,sp - ldy ind,x - ldy ind,y - ldy small,pc - ldy small,sp - ldy small,x - ldy small,y - - gldaa 1,+sp ;s12x cyan - gldaa 1,+x ;s12x cyan - gldaa 1,+y ;s12x cyan - gldaa 8,+sp ;s12x cyan - gldaa 8,+x ;s12x cyan - gldaa 8,+y ;s12x cyan - gldaa ,pc ;s12x cyan - gldaa ,sp ;s12x cyan - gldaa ,x ;s12x cyan - gldaa ,y ;s12x cyan - gldaa 1,-sp ;s12x cyan - gldaa 1,-x ;s12x cyan - gldaa 1,-y ;s12x cyan - gldaa 8,-sp ;s12x cyan - gldaa 8,-x ;s12x cyan - gldaa 8,-y ;s12x cyan - gldaa -1,sp ;s12x cyan - gldaa -1,x ;s12x cyan - gldaa -1,y ;s12x cyan - gldaa -16,sp ;s12x cyan - gldaa -16,x ;s12x cyan - gldaa -16,y ;s12x cyan - gldaa -17,sp ;s12x cyan - gldaa -17,x ;s12x cyan - gldaa -17,y ;s12x cyan - gldaa -small,pc ;s12x cyan - gldaa -small,sp ;s12x cyan - gldaa -small,x ;s12x cyan - gldaa -small,y ;s12x cyan - gldaa 0,pc ;s12x cyan - gldaa 0,sp ;s12x cyan - gldaa 0,x ;s12x cyan - gldaa 0,y ;s12x cyan - gldaa 1,sp+ ;s12x cyan - gldaa 1,x+ ;s12x cyan - gldaa 1,y+ ;s12x cyan - gldaa 1,sp ;s12x cyan - gldaa 1,x ;s12x cyan - gldaa 1,y ;s12x cyan - gldaa 1,sp- ;s12x cyan - gldaa 1,x- ;s12x cyan - gldaa 1,y- ;s12x cyan - gldaa 125,pc ;s12x cyan - gldaa 125,sp ;s12x cyan - gldaa 125,x ;s12x cyan - gldaa 125,y ;s12x cyan - gldaa 15,sp ;s12x cyan - gldaa 15,x ;s12x cyan - gldaa 15,y ;s12x cyan - gldaa 16,sp ;s12x cyan - gldaa 16,x ;s12x cyan - gldaa 16,y ;s12x cyan - gldaa 8,sp+ ;s12x cyan - gldaa 8,x+ ;s12x cyan - gldaa 8,y+ ;s12x cyan - gldaa 8,sp- ;s12x cyan - gldaa 8,x- ;s12x cyan - gldaa 8,y- ;s12x cyan - gldaa a,sp ;s12x cyan - gldaa a,x ;s12x cyan - gldaa a,y ;s12x cyan - gldaa b,sp ;s12x cyan - gldaa b,x ;s12x cyan - gldaa b,y ;s12x cyan - gldaa d,sp ;s12x cyan - gldaa d,x ;s12x cyan - gldaa d,y ;s12x cyan - gldaa dir ;s12x cyan - gldaa dir ;s12x cyan - gldaa ext ;s12x cyan - gldaa ext ;s12x cyan - gldaa ext,sp ;s12x cyan - gldaa ext,x ;s12x cyan - gldaa ext,y ;s12x cyan - gldaa ind,pc ;s12x cyan - gldaa ind,sp ;s12x cyan - gldaa ind,x ;s12x cyan - gldaa ind,y ;s12x cyan - gldaa small,pc ;s12x cyan - gldaa small,sp ;s12x cyan - gldaa small,x ;s12x cyan - gldaa small,y ;s12x cyan - gldab 1,+sp ;s12x cyan - gldab 1,+x ;s12x cyan - gldab 1,+y ;s12x cyan - gldab 8,+sp ;s12x cyan - gldab 8,+x ;s12x cyan - gldab 8,+y ;s12x cyan - gldab ,pc ;s12x cyan - gldab ,sp ;s12x cyan - gldab ,x ;s12x cyan - gldab ,y ;s12x cyan - gldab 1,-sp ;s12x cyan - gldab 1,-x ;s12x cyan - gldab 1,-y ;s12x cyan - gldab 8,-sp ;s12x cyan - gldab 8,-x ;s12x cyan - gldab 8,-y ;s12x cyan - gldab -1,sp ;s12x cyan - gldab -1,x ;s12x cyan - gldab -1,y ;s12x cyan - gldab -16,sp ;s12x cyan - gldab -16,x ;s12x cyan - gldab -16,y ;s12x cyan - gldab -17,sp ;s12x cyan - gldab -17,x ;s12x cyan - gldab -17,y ;s12x cyan - gldab -small,pc ;s12x cyan - gldab -small,sp ;s12x cyan - gldab -small,x ;s12x cyan - gldab -small,y ;s12x cyan - gldab 0,pc ;s12x cyan - gldab 0,sp ;s12x cyan - gldab 0,x ;s12x cyan - gldab 0,y ;s12x cyan - gldab 1,sp+ ;s12x cyan - gldab 1,x+ ;s12x cyan - gldab 1,y+ ;s12x cyan - gldab 1,sp ;s12x cyan - gldab 1,x ;s12x cyan - gldab 1,y ;s12x cyan - gldab 1,sp- ;s12x cyan - gldab 1,x- ;s12x cyan - gldab 1,y- ;s12x cyan - gldab 125,pc ;s12x cyan - gldab 125,sp ;s12x cyan - gldab 125,x ;s12x cyan - gldab 125,y ;s12x cyan - gldab 15,sp ;s12x cyan - gldab 15,x ;s12x cyan - gldab 15,y ;s12x cyan - gldab 16,sp ;s12x cyan - gldab 16,x ;s12x cyan - gldab 16,y ;s12x cyan - gldab 8,sp+ ;s12x cyan - gldab 8,x+ ;s12x cyan - gldab 8,y+ ;s12x cyan - gldab 8,sp- ;s12x cyan - gldab 8,x- ;s12x cyan - gldab 8,y- ;s12x cyan - gldab a,sp ;s12x cyan - gldab a,x ;s12x cyan - gldab a,y ;s12x cyan - gldab b,sp ;s12x cyan - gldab b,x ;s12x cyan - gldab b,y ;s12x cyan - gldab d,sp ;s12x cyan - gldab d,x ;s12x cyan - gldab d,y ;s12x cyan - gldab dir ;s12x cyan - gldab dir ;s12x cyan - gldab ext ;s12x cyan - gldab ext ;s12x cyan - gldab ext,sp ;s12x cyan - gldab ext,x ;s12x cyan - gldab ext,y ;s12x cyan - gldab ind,pc ;s12x cyan - gldab ind,sp ;s12x cyan - gldab ind,x ;s12x cyan - gldab ind,y ;s12x cyan - gldab small,pc ;s12x cyan - gldab small,sp ;s12x cyan - gldab small,x ;s12x cyan - gldab small,y ;s12x cyan - gldd 1,+sp ;s12x cyan - gldd 1,+x ;s12x cyan - gldd 1,+y ;s12x cyan - gldd 8,+sp ;s12x cyan - gldd 8,+x ;s12x cyan - gldd 8,+y ;s12x cyan - gldd ,pc ;s12x cyan - gldd ,sp ;s12x cyan - gldd ,x ;s12x cyan - gldd ,y ;s12x cyan - gldd 1,-sp ;s12x cyan - gldd 1,-x ;s12x cyan - gldd 1,-y ;s12x cyan - gldd 8,-sp ;s12x cyan - gldd 8,-x ;s12x cyan - gldd 8,-y ;s12x cyan - gldd -1,sp ;s12x cyan - gldd -1,x ;s12x cyan - gldd -1,y ;s12x cyan - gldd -16,sp ;s12x cyan - gldd -16,x ;s12x cyan - gldd -16,y ;s12x cyan - gldd -17,sp ;s12x cyan - gldd -17,x ;s12x cyan - gldd -17,y ;s12x cyan - gldd -small,pc ;s12x cyan - gldd -small,sp ;s12x cyan - gldd -small,x ;s12x cyan - gldd -small,y ;s12x cyan - gldd 0,pc ;s12x cyan - gldd 0,sp ;s12x cyan - gldd 0,x ;s12x cyan - gldd 0,y ;s12x cyan - gldd 1,sp+ ;s12x cyan - gldd 1,x+ ;s12x cyan - gldd 1,y+ ;s12x cyan - gldd 1,sp ;s12x cyan - gldd 1,x ;s12x cyan - gldd 1,y ;s12x cyan - gldd 1,sp- ;s12x cyan - gldd 1,x- ;s12x cyan - gldd 1,y- ;s12x cyan - gldd 125,pc ;s12x cyan - gldd 125,sp ;s12x cyan - gldd 125,x ;s12x cyan - gldd 125,y ;s12x cyan - gldd 15,sp ;s12x cyan - gldd 15,x ;s12x cyan - gldd 15,y ;s12x cyan - gldd 16,sp ;s12x cyan - gldd 16,x ;s12x cyan - gldd 16,y ;s12x cyan - gldd 8,sp+ ;s12x cyan - gldd 8,x+ ;s12x cyan - gldd 8,y+ ;s12x cyan - gldd 8,sp- ;s12x cyan - gldd 8,x- ;s12x cyan - gldd 8,y- ;s12x cyan - gldd a,sp ;s12x cyan - gldd a,x ;s12x cyan - gldd a,y ;s12x cyan - gldd b,sp ;s12x cyan - gldd b,x ;s12x cyan - gldd b,y ;s12x cyan - gldd d,sp ;s12x cyan - gldd d,x ;s12x cyan - gldd d,y ;s12x cyan - gldd dir ;s12x cyan - gldd dir ;s12x cyan - gldd ext ;s12x cyan - gldd ext ;s12x cyan - gldd ext,sp ;s12x cyan - gldd ext,x ;s12x cyan - gldd ext,y ;s12x cyan - gldd ind,pc ;s12x cyan - gldd ind,sp ;s12x cyan - gldd ind,x ;s12x cyan - gldd ind,y ;s12x cyan - gldd small,pc ;s12x cyan - gldd small,sp ;s12x cyan - gldd small,x ;s12x cyan - gldd small,y ;s12x cyan - glds 1,+sp ;s12x cyan - glds 1,+x ;s12x cyan - glds 1,+y ;s12x cyan - glds 8,+sp ;s12x cyan - glds 8,+x ;s12x cyan - glds 8,+y ;s12x cyan - glds ,pc ;s12x cyan - glds ,sp ;s12x cyan - glds ,x ;s12x cyan - glds ,y ;s12x cyan - glds 1,-sp ;s12x cyan - glds 1,-x ;s12x cyan - glds 1,-y ;s12x cyan - glds 8,-sp ;s12x cyan - glds 8,-x ;s12x cyan - glds 8,-y ;s12x cyan - glds -1,sp ;s12x cyan - glds -1,x ;s12x cyan - glds -1,y ;s12x cyan - glds -16,sp ;s12x cyan - glds -16,x ;s12x cyan - glds -16,y ;s12x cyan - glds -17,sp ;s12x cyan - glds -17,x ;s12x cyan - glds -17,y ;s12x cyan - glds -small,pc ;s12x cyan - glds -small,sp ;s12x cyan - glds -small,x ;s12x cyan - glds -small,y ;s12x cyan - glds 0,pc ;s12x cyan - glds 0,sp ;s12x cyan - glds 0,x ;s12x cyan - glds 0,y ;s12x cyan - glds 1,sp+ ;s12x cyan - glds 1,x+ ;s12x cyan - glds 1,y+ ;s12x cyan - glds 1,sp ;s12x cyan - glds 1,x ;s12x cyan - glds 1,y ;s12x cyan - glds 1,sp- ;s12x cyan - glds 1,x- ;s12x cyan - glds 1,y- ;s12x cyan - glds 125,pc ;s12x cyan - glds 125,sp ;s12x cyan - glds 125,x ;s12x cyan - glds 125,y ;s12x cyan - glds 15,sp ;s12x cyan - glds 15,x ;s12x cyan - glds 15,y ;s12x cyan - glds 16,sp ;s12x cyan - glds 16,x ;s12x cyan - glds 16,y ;s12x cyan - glds 8,sp+ ;s12x cyan - glds 8,x+ ;s12x cyan - glds 8,y+ ;s12x cyan - glds 8,sp- ;s12x cyan - glds 8,x- ;s12x cyan - glds 8,y- ;s12x cyan - glds a,sp ;s12x cyan - glds a,x ;s12x cyan - glds a,y ;s12x cyan - glds b,sp ;s12x cyan - glds b,x ;s12x cyan - glds b,y ;s12x cyan - glds d,sp ;s12x cyan - glds d,x ;s12x cyan - glds d,y ;s12x cyan - glds dir ;s12x cyan - glds ext ;s12x cyan - glds ext,sp ;s12x cyan - glds ext,x ;s12x cyan - glds ext,y ;s12x cyan - glds ind,pc ;s12x cyan - glds ind,sp ;s12x cyan - glds ind,x ;s12x cyan - glds ind,y ;s12x cyan - glds small,pc ;s12x cyan - glds small,sp ;s12x cyan - glds small,x ;s12x cyan - glds small,y ;s12x cyan - gldx 1,+sp ;s12x cyan - gldx 1,+x ;s12x cyan - gldx 1,+y ;s12x cyan - gldx 8,+sp ;s12x cyan - gldx 8,+x ;s12x cyan - gldx 8,+y ;s12x cyan - gldx ,pc ;s12x cyan - gldx ,sp ;s12x cyan - gldx ,x ;s12x cyan - gldx ,y ;s12x cyan - gldx 1,-sp ;s12x cyan - gldx 1,-x ;s12x cyan - gldx 1,-y ;s12x cyan - gldx 8,-sp ;s12x cyan - gldx 8,-x ;s12x cyan - gldx 8,-y ;s12x cyan - gldx -1,sp ;s12x cyan - gldx -1,x ;s12x cyan - gldx -1,y ;s12x cyan - gldx -16,sp ;s12x cyan - gldx -16,x ;s12x cyan - gldx -16,y ;s12x cyan - gldx -17,sp ;s12x cyan - gldx -17,x ;s12x cyan - gldx -17,y ;s12x cyan - gldx -small,pc ;s12x cyan - gldx -small,sp ;s12x cyan - gldx -small,x ;s12x cyan - gldx -small,y ;s12x cyan - gldx 0,pc ;s12x cyan - gldx 0,sp ;s12x cyan - gldx 0,x ;s12x cyan - gldx 0,y ;s12x cyan - gldx 1,sp+ ;s12x cyan - gldx 1,x+ ;s12x cyan - gldx 1,y+ ;s12x cyan - gldx 1,sp ;s12x cyan - gldx 1,x ;s12x cyan - gldx 1,y ;s12x cyan - gldx 1,sp- ;s12x cyan - gldx 1,x- ;s12x cyan - gldx 1,y- ;s12x cyan - gldx 125,pc ;s12x cyan - gldx 125,sp ;s12x cyan - gldx 125,x ;s12x cyan - gldx 125,y ;s12x cyan - gldx 15,sp ;s12x cyan - gldx 15,x ;s12x cyan - gldx 15,y ;s12x cyan - gldx 16,sp ;s12x cyan - gldx 16,x ;s12x cyan - gldx 16,y ;s12x cyan - gldx 8,sp+ ;s12x cyan - gldx 8,x+ ;s12x cyan - gldx 8,y+ ;s12x cyan - gldx 8,sp- ;s12x cyan - gldx 8,x- ;s12x cyan - gldx 8,y- ;s12x cyan - gldx a,sp ;s12x cyan - gldx a,x ;s12x cyan - gldx a,y ;s12x cyan - gldx b,sp ;s12x cyan - gldx b,x ;s12x cyan - gldx b,y ;s12x cyan - gldx d,sp ;s12x cyan - gldx d,x ;s12x cyan - gldx d,y ;s12x cyan - gldx dir ;s12x cyan - gldx dir ;s12x cyan - gldx ext ;s12x cyan - gldx ext ;s12x cyan - gldx ext,sp ;s12x cyan - gldx ext,x ;s12x cyan - gldx ext,y ;s12x cyan - gldx ind,pc ;s12x cyan - gldx ind,sp ;s12x cyan - gldx ind,x ;s12x cyan - gldx ind,y ;s12x cyan - gldx small,pc ;s12x cyan - gldx small,sp ;s12x cyan - gldx small,x ;s12x cyan - gldx small,y ;s12x cyan - gldy 1,+sp ;s12x cyan - gldy 1,+x ;s12x cyan - gldy 1,+y ;s12x cyan - gldy 8,+sp ;s12x cyan - gldy 8,+x ;s12x cyan - gldy 8,+y ;s12x cyan - gldy ,pc ;s12x cyan - gldy ,sp ;s12x cyan - gldy ,x ;s12x cyan - gldy ,y ;s12x cyan - gldy 1,-sp ;s12x cyan - gldy 1,-x ;s12x cyan - gldy 1,-y ;s12x cyan - gldy 8,-sp ;s12x cyan - gldy 8,-x ;s12x cyan - gldy 8,-y ;s12x cyan - gldy -1,sp ;s12x cyan - gldy -1,x ;s12x cyan - gldy -1,y ;s12x cyan - gldy -16,sp ;s12x cyan - gldy -16,x ;s12x cyan - gldy -16,y ;s12x cyan - gldy -17,sp ;s12x cyan - gldy -17,x ;s12x cyan - gldy -17,y ;s12x cyan - gldy -small,pc ;s12x cyan - gldy -small,sp ;s12x cyan - gldy -small,x ;s12x cyan - gldy -small,y ;s12x cyan - gldy 0,pc ;s12x cyan - gldy 0,sp ;s12x cyan - gldy 0,x ;s12x cyan - gldy 0,y ;s12x cyan - gldy 1,sp+ ;s12x cyan - gldy 1,x+ ;s12x cyan - gldy 1,y+ ;s12x cyan - gldy 1,sp ;s12x cyan - gldy 1,x ;s12x cyan - gldy 1,y ;s12x cyan - gldy 1,sp- ;s12x cyan - gldy 1,x- ;s12x cyan - gldy 1,y- ;s12x cyan - gldy 125,pc ;s12x cyan - gldy 125,sp ;s12x cyan - gldy 125,x ;s12x cyan - gldy 125,y ;s12x cyan - gldy 15,sp ;s12x cyan - gldy 15,x ;s12x cyan - gldy 15,y ;s12x cyan - gldy 16,sp ;s12x cyan - gldy 16,x ;s12x cyan - gldy 16,y ;s12x cyan - gldy 8,sp+ ;s12x cyan - gldy 8,x+ ;s12x cyan - gldy 8,y+ ;s12x cyan - gldy 8,sp- ;s12x cyan - gldy 8,x- ;s12x cyan - gldy 8,y- ;s12x cyan - gldy a,sp ;s12x cyan - gldy a,x ;s12x cyan - gldy a,y ;s12x cyan - gldy b,sp ;s12x cyan - gldy b,x ;s12x cyan - gldy b,y ;s12x cyan - gldy d,sp ;s12x cyan - gldy d,x ;s12x cyan - gldy d,y ;s12x cyan - gldy dir ;s12x cyan - gldy dir ;s12x cyan - gldy ext ;s12x cyan - gldy ext ;s12x cyan - gldy ext,sp ;s12x cyan - gldy ext,x ;s12x cyan - gldy ext,y ;s12x cyan - gldy ind,pc ;s12x cyan - gldy ind,sp ;s12x cyan - gldy ind,x ;s12x cyan - gldy ind,y ;s12x cyan - gldy small,pc ;s12x cyan - gldy small,sp ;s12x cyan - gldy small,x ;s12x cyan - gldy small,y ;s12x cyan - - leas 1,+sp - leas 1,+x - leas 1,+y - leas 8,+sp - leas 8,+x - leas 8,+y - leas ,pc - leas ,sp - leas ,x - leas ,y - leas 1,-sp - leas 1,-x - leas 1,-y - leas 8,-sp - leas 8,-x - leas 8,-y - leas -1,sp - leas -1,x - leas -1,y - leas -16,sp - leas -16,x - leas -16,y - leas -17,sp - leas -17,x - leas -17,y - leas -small,pc - leas -small,sp - leas -small,x - leas -small,y - leas 0,pc - leas 0,sp - leas 0,x - leas 0,y - leas 1,sp+ - leas 1,x+ - leas 1,y+ - leas 1,sp - leas 1,x - leas 1,y - leas 1,sp- - leas 1,x- - leas 1,y- - leas 125,pc - leas 125,sp - leas 125,x - leas 125,y - leas 15,sp - leas 15,x - leas 15,y - leas 16,sp - leas 16,x - leas 16,y - leas 8,sp+ - leas 8,x+ - leas 8,y+ - leas 8,sp- - leas 8,x- - leas 8,y- - leas a,sp - leas a,x - leas a,y - leas b,sp - leas b,x - leas b,y - leas d,sp - leas d,x - leas d,y - leas ext,sp - leas ext,x - leas ext,y - leas ind,pc - leas ind,sp - leas ind,x - leas ind,y - leas small,pc - leas small,sp - leas small,x - leas small,y - leax 1,+sp - leax 1,+x - leax 1,+y - leax 8,+sp - leax 8,+x - leax 8,+y - leax ,pc - leax ,sp - leax ,x - leax ,y - leax 1,-sp - leax 1,-x - leax 1,-y - leax 8,-sp - leax 8,-x - leax 8,-y - leax -1,sp - leax -1,x - leax -1,y - leax -16,sp - leax -16,x - leax -16,y - leax -17,sp - leax -17,x - leax -17,y - leax -small,pc - leax -small,sp - leax -small,x - leax -small,y - leax 0,pc - leax 0,sp - leax 0,x - leax 0,y - leax 1,sp+ - leax 1,x+ - leax 1,y+ - leax 1,sp - leax 1,x - leax 1,y - leax 1,sp- - leax 1,x- - leax 1,y- - leax 125,pc - leax 125,sp - leax 125,x - leax 125,y - leax 15,sp - leax 15,x - leax 15,y - leax 16,sp - leax 16,x - leax 16,y - leax 8,sp+ - leax 8,x+ - leax 8,y+ - leax 8,sp- - leax 8,x- - leax 8,y- - leax a,sp - leax a,x - leax a,y - leax b,sp - leax b,x - leax b,y - leax d,sp - leax d,x - leax d,y - leax ext,sp - leax ext,x - leax ext,y - leax ind,pc - leax ind,sp - leax ind,x - leax ind,y - leax small,pc - leax small,sp - leax small,x - leax small,y - leay 1,+sp - leay 1,+x - leay 1,+y - leay 8,+sp - leay 8,+x - leay 8,+y - leay ,pc - leay ,sp - leay ,x - leay ,y - leay 1,-sp - leay 1,-x - leay 1,-y - leay 8,-sp - leay 8,-x - leay 8,-y - leay -1,sp - leay -1,x - leay -1,y - leay -16,sp - leay -16,x - leay -16,y - leay -17,sp - leay -17,x - leay -17,y - leay -small,pc - leay -small,sp - leay -small,x - leay -small,y - leay 0,pc - leay 0,sp - leay 0,x - leay 0,y - leay 1,sp+ - leay 1,x+ - leay 1,y+ - leay 1,sp - leay 1,x - leay 1,y - leay 1,sp- - leay 1,x- - leay 1,y- - leay 125,pc - leay 125,sp - leay 125,x - leay 125,y - leay 15,sp - leay 15,x - leay 15,y - leay 16,sp - leay 16,x - leay 16,y - leay 8,sp+ - leay 8,x+ - leay 8,y+ - leay 8,sp- - leay 8,x- - leay 8,y- - leay a,sp - leay a,x - leay a,y - leay b,sp - leay b,x - leay b,y - leay d,sp - leay d,x - leay d,y - leay ext,sp - leay ext,x - leay ext,y - leay ind,pc - leay ind,sp - leay ind,x - leay ind,y - leay small,pc - leay small,sp - leay small,x - leay small,y - lsl 1,+sp - lsl 1,+x - lsl 1,+y - lsl 8,+sp - lsl 8,+x - lsl 8,+y - lsl ,pc - lsl ,sp - lsl ,x - lsl ,y - lsl 1,-sp - lsl 1,-x - lsl 1,-y - lsl 8,-sp - lsl 8,-x - lsl 8,-y - lsl -1,sp - lsl -1,x - lsl -1,y - lsl -16,sp - lsl -16,x - lsl -16,y - lsl -17,sp - lsl -17,x - lsl -17,y - lsl -small,pc - lsl -small,sp - lsl -small,x - lsl -small,y - lsl 0,pc - lsl 0,sp - lsl 0,x - lsl 0,y - lsl 1,sp+ - lsl 1,x+ - lsl 1,y+ - lsl 1,sp - lsl 1,x - lsl 1,y - lsl 1,sp- - lsl 1,x- - lsl 1,y- - lsl 125,pc - lsl 125,sp - lsl 125,x - lsl 125,y - lsl 15,sp - lsl 15,x - lsl 15,y - lsl 16,sp - lsl 16,x - lsl 16,y - lsl 8,sp+ - lsl 8,x+ - lsl 8,y+ - lsl 8,sp- - lsl 8,x- - lsl 8,y- - lsl a,sp - lsl a,x - lsl a,y - lsl b,sp - lsl b,x - lsl b,y - lsl d,sp - lsl d,x - lsl d,y - lsl dir - lsl ext - lsl ext - lsl ext,sp - lsl ext,x - lsl ext,y - lsl ind,pc - lsl ind,sp - lsl ind,x - lsl ind,y - lsl small,pc - lsl small,sp - lsl small,x - lsl small,y - lsla - lslb - lsld - lsr 1,+sp - lsr 1,+x - lsr 1,+y - lsr 8,+sp - lsr 8,+x - lsr 8,+y - lsr ,pc - lsr ,sp - lsr ,x - lsr ,y - lsr 1,-sp - lsr 1,-x - lsr 1,-y - lsr 8,-sp - lsr 8,-x - lsr 8,-y - lsr -1,sp - lsr -1,x - lsr -1,y - lsr -16,sp - lsr -16,x - lsr -16,y - lsr -17,sp - lsr -17,x - lsr -17,y - lsr -small,pc - lsr -small,sp - lsr -small,x - lsr -small,y - lsr 0,pc - lsr 0,sp - lsr 0,x - lsr 0,y - lsr 1,sp+ - lsr 1,x+ - lsr 1,y+ - lsr 1,sp - lsr 1,x - lsr 1,y - lsr 1,sp- - lsr 1,x- - lsr 1,y- - lsr 125,pc - lsr 125,sp - lsr 125,x - lsr 125,y - lsr 15,sp - lsr 15,x - lsr 15,y - lsr 16,sp - lsr 16,x - lsr 16,y - lsr 8,sp+ - lsr 8,x+ - lsr 8,y+ - lsr 8,sp- - lsr 8,x- - lsr 8,y- - lsr a,sp - lsr a,x - lsr a,y - lsr b,sp - lsr b,x - lsr b,y - lsr d,sp - lsr d,x - lsr d,y - lsr dir - lsr ext - lsr ext - lsr ext,sp - lsr ext,x - lsr ext,y - lsr ind,pc - lsr ind,sp - lsr ind,x - lsr ind,y - lsr small,pc - lsr small,sp - lsr small,x - lsr small,y - - lsrw 1,+sp ;s12x green - lsrw 1,+x ;s12x green - lsrw 1,+y ;s12x green - lsrw 8,+sp ;s12x green - lsrw 8,+x ;s12x green - lsrw 8,+y ;s12x green - lsrw ,pc ;s12x green - lsrw ,sp ;s12x green - lsrw ,x ;s12x green - lsrw ,y ;s12x green - lsrw 1,-sp ;s12x green - lsrw 1,-x ;s12x green - lsrw 1,-y ;s12x green - lsrw 8,-sp ;s12x green - lsrw 8,-x ;s12x green - lsrw 8,-y ;s12x green - lsrw -1,sp ;s12x green - lsrw -1,x ;s12x green - lsrw -1,y ;s12x green - lsrw -16,sp ;s12x green - lsrw -16,x ;s12x green - lsrw -16,y ;s12x green - lsrw -17,sp ;s12x green - lsrw -17,x ;s12x green - lsrw -17,y ;s12x green - lsrw -small,pc ;s12x green - lsrw -small,sp ;s12x green - lsrw -small,x ;s12x green - lsrw -small,y ;s12x green - lsrw 0,pc ;s12x green - lsrw 0,sp ;s12x green - lsrw 0,x ;s12x green - lsrw 0,y ;s12x green - lsrw 1,sp+ ;s12x green - lsrw 1,x+ ;s12x green - lsrw 1,y+ ;s12x green - lsrw 1,sp ;s12x green - lsrw 1,x ;s12x green - lsrw 1,y ;s12x green - lsrw 1,sp- ;s12x green - lsrw 1,x- ;s12x green - lsrw 1,y- ;s12x green - lsrw 125,pc ;s12x green - lsrw 125,sp ;s12x green - lsrw 125,x ;s12x green - lsrw 125,y ;s12x green - lsrw 15,sp ;s12x green - lsrw 15,x ;s12x green - lsrw 15,y ;s12x green - lsrw 16,sp ;s12x green - lsrw 16,x ;s12x green - lsrw 16,y ;s12x green - lsrw 8,sp+ ;s12x green - lsrw 8,x+ ;s12x green - lsrw 8,y+ ;s12x green - lsrw 8,sp- ;s12x green - lsrw 8,x- ;s12x green - lsrw 8,y- ;s12x green - lsrw a,sp ;s12x green - lsrw a,x ;s12x green - lsrw a,y ;s12x green - lsrw b,sp ;s12x green - lsrw b,x ;s12x green - lsrw b,y ;s12x green - lsrw d,sp ;s12x green - lsrw d,x ;s12x green - lsrw d,y ;s12x green - lsrw dir ;s12x green - lsrw ext ;s12x green - lsrw ext ;s12x green - lsrw ext,sp ;s12x green - lsrw ext,x ;s12x green - lsrw ext,y ;s12x green - lsrw ind,pc ;s12x green - lsrw ind,sp ;s12x green - lsrw ind,x ;s12x green - lsrw ind,y ;s12x green - lsrw small,pc ;s12x green - lsrw small,sp ;s12x green - lsrw small,x ;s12x green - lsrw small,y ;s12x green - - lsra - lsrb - - lsrx ;s12x yellow - lsry ;s12x yellow - - lsrd - lsrd - maxa 1,+sp - maxa 1,+x - maxa 1,+y - maxa 8,+sp - maxa 8,+x - maxa 8,+y - maxa ,pc - maxa ,sp - maxa ,x - maxa ,y - maxa 1,-sp - maxa 1,-x - maxa 1,-y - maxa 8,-sp - maxa 8,-x - maxa 8,-y - maxa -1,sp - maxa -1,x - maxa -1,y - maxa -16,sp - maxa -16,x - maxa -16,y - maxa -17,sp - maxa -17,x - maxa -17,y - maxa -small,pc - maxa -small,sp - maxa -small,x - maxa -small,y - maxa 0,pc - maxa 0,sp - maxa 0,x - maxa 0,y - maxa 1,sp+ - maxa 1,x+ - maxa 1,y+ - maxa 1,sp - maxa 1,x - maxa 1,y - maxa 1,sp- - maxa 1,x- - maxa 1,y- - maxa 125,pc - maxa 125,sp - maxa 125,x - maxa 125,y - maxa 15,sp - maxa 15,x - maxa 15,y - maxa 16,sp - maxa 16,x - maxa 16,y - maxa 8,sp+ - maxa 8,x+ - maxa 8,y+ - maxa 8,sp- - maxa 8,x- - maxa 8,y- - maxa a,sp - maxa a,x - maxa a,y - maxa b,sp - maxa b,x - maxa b,y - maxa d,sp - maxa d,x - maxa d,y - maxa ext,sp - maxa ext,x - maxa ext,y - maxa ind,pc - maxa ind,sp - maxa ind,x - maxa ind,y - maxa small,pc - maxa small,sp - maxa small,x - maxa small,y - maxm 1,+sp - maxm 1,+x - maxm 1,+y - maxm 8,+sp - maxm 8,+x - maxm 8,+y - maxm ,pc - maxm ,sp - maxm ,x - maxm ,y - maxm 1,-sp - maxm 1,-x - maxm 1,-y - maxm 8,-sp - maxm 8,-x - maxm 8,-y - maxm -1,sp - maxm -1,x - maxm -1,y - maxm -16,sp - maxm -16,x - maxm -16,y - maxm -17,sp - maxm -17,x - maxm -17,y - maxm -small,pc - maxm -small,sp - maxm -small,x - maxm -small,y - maxm 0,pc - maxm 0,sp - maxm 0,x - maxm 0,y - maxm 1,sp+ - maxm 1,x+ - maxm 1,y+ - maxm 1,sp - maxm 1,x - maxm 1,y - maxm 1,sp- - maxm 1,x- - maxm 1,y- - maxm 125,pc - maxm 125,sp - maxm 125,x - maxm 125,y - maxm 15,sp - maxm 15,x - maxm 15,y - maxm 16,sp - maxm 16,x - maxm 16,y - maxm 8,sp+ - maxm 8,x+ - maxm 8,y+ - maxm 8,sp- - maxm 8,x- - maxm 8,y- - maxm a,sp - maxm a,x - maxm a,y - maxm b,sp - maxm b,x - maxm b,y - maxm d,sp - maxm d,x - maxm d,y - maxm ext,sp - maxm ext,x - maxm ext,y - maxm ind,pc - maxm ind,sp - maxm ind,x - maxm ind,y - maxm small,pc - maxm small,sp - maxm small,x - maxm small,y - mem - mina 1,+sp - mina 1,+x - mina 1,+y - mina 8,+sp - mina 8,+x - mina 8,+y - mina ,pc - mina ,sp - mina ,x - mina ,y - mina 1,-sp - mina 1,-x - mina 1,-y - mina 8,-sp - mina 8,-x - mina 8,-y - mina -1,sp - mina -1,x - mina -1,y - mina -16,sp - mina -16,x - mina -16,y - mina -17,sp - mina -17,x - mina -17,y - mina -small,pc - mina -small,sp - mina -small,x - mina -small,y - mina 0,pc - mina 0,sp - mina 0,x - mina 0,y - mina 1,sp+ - mina 1,x+ - mina 1,y+ - mina 1,sp - mina 1,x - mina 1,y - mina 1,sp- - mina 1,x- - mina 1,y- - mina 125,pc - mina 125,sp - mina 125,x - mina 125,y - mina 15,sp - mina 15,x - mina 15,y - mina 16,sp - mina 16,x - mina 16,y - mina 8,sp+ - mina 8,x+ - mina 8,y+ - mina 8,sp- - mina 8,x- - mina 8,y- - mina a,sp - mina a,x - mina a,y - mina b,sp - mina b,x - mina b,y - mina d,sp - mina d,x - mina d,y - mina ext,sp - mina ext,x - mina ext,y - mina ind,pc - mina ind,sp - mina ind,x - mina ind,y - mina small,pc - mina small,sp - mina small,x - mina small,y - minm 1,+sp - minm 1,+x - minm 1,+y - minm 8,+sp - minm 8,+x - minm 8,+y - minm ,pc - minm ,sp - minm ,x - minm ,y - minm 1,-sp - minm 1,-x - minm 1,-y - minm 8,-sp - minm 8,-x - minm 8,-y - minm -1,sp - minm -1,x - minm -1,y - minm -16,sp - minm -16,x - minm -16,y - minm -17,sp - minm -17,x - minm -17,y - minm -small,pc - minm -small,sp - minm -small,x - minm -small,y - minm 0,pc - minm 0,sp - minm 0,x - minm 0,y - minm 1,sp+ - minm 1,x+ - minm 1,y+ - minm 1,sp - minm 1,x - minm 1,y - minm 1,sp- - minm 1,x- - minm 1,y- - minm 125,pc - minm 125,sp - minm 125,x - minm 125,y - minm 15,sp - minm 15,x - minm 15,y - minm 16,sp - minm 16,x - minm 16,y - minm 8,sp+ - minm 8,x+ - minm 8,y+ - minm 8,sp- - minm 8,x- - minm 8,y- - minm a,sp - minm a,x - minm a,y - minm b,sp - minm b,x - minm b,y - minm d,sp - minm d,x - minm d,y - minm ext,sp - minm ext,x - minm ext,y - minm ind,pc - minm ind,sp - minm ind,x - minm ind,y - minm small,pc - minm small,sp - minm small,x - minm small,y - mul - neg 1,+sp - neg 1,+x - neg 1,+y - neg 8,+sp - neg 8,+x - neg 8,+y - neg ,pc - neg ,sp - neg ,x - neg ,y - neg 1,-sp - neg 1,-x - neg 1,-y - neg 8,-sp - neg 8,-x - neg 8,-y - neg -1,sp - neg -1,x - neg -1,y - neg -16,sp - neg -16,x - neg -16,y - neg -17,sp - neg -17,x - neg -17,y - neg -small,pc - neg -small,sp - neg -small,x - neg -small,y - neg 0,pc - neg 0,sp - neg 0,x - neg 0,y - neg 1,sp+ - neg 1,x+ - neg 1,y+ - neg 1,sp - neg 1,x - neg 1,y - neg 1,sp- - neg 1,x- - neg 1,y- - neg 125,pc - neg 125,sp - neg 125,x - neg 125,y - neg 15,sp - neg 15,x - neg 15,y - neg 16,sp - neg 16,x - neg 16,y - neg 8,sp+ - neg 8,x+ - neg 8,y+ - neg 8,sp- - neg 8,x- - neg 8,y- - neg a,sp - neg a,x - neg a,y - neg b,sp - neg b,x - neg b,y - neg d,sp - neg d,x - neg d,y - neg dir - neg ext - neg ext - neg ext,sp - neg ext,x - neg ext,y - neg ind,pc - neg ind,sp - neg ind,x - neg ind,y - neg small,pc - neg small,sp - neg small,x - neg small,y - - negw 1,+sp ;s12x green - negw 1,+x ;s12x green - negw 1,+y ;s12x green - negw 8,+sp ;s12x green - negw 8,+x ;s12x green - negw 8,+y ;s12x green - negw ,pc ;s12x green - negw ,sp ;s12x green - negw ,x ;s12x green - negw ,y ;s12x green - negw 1,-sp ;s12x green - negw 1,-x ;s12x green - negw 1,-y ;s12x green - negw 8,-sp ;s12x green - negw 8,-x ;s12x green - negw 8,-y ;s12x green - negw -1,sp ;s12x green - negw -1,x ;s12x green - negw -1,y ;s12x green - negw -16,sp ;s12x green - negw -16,x ;s12x green - negw -16,y ;s12x green - negw -17,sp ;s12x green - negw -17,x ;s12x green - negw -17,y ;s12x green - negw -small,pc ;s12x green - negw -small,sp ;s12x green - negw -small,x ;s12x green - negw -small,y ;s12x green - negw 0,pc ;s12x green - negw 0,sp ;s12x green - negw 0,x ;s12x green - negw 0,y ;s12x green - negw 1,sp+ ;s12x green - negw 1,x+ ;s12x green - negw 1,y+ ;s12x green - negw 1,sp ;s12x green - negw 1,x ;s12x green - negw 1,y ;s12x green - negw 1,sp- ;s12x green - negw 1,x- ;s12x green - negw 1,y- ;s12x green - negw 125,pc ;s12x green - negw 125,sp ;s12x green - negw 125,x ;s12x green - negw 125,y ;s12x green - negw 15,sp ;s12x green - negw 15,x ;s12x green - negw 15,y ;s12x green - negw 16,sp ;s12x green - negw 16,x ;s12x green - negw 16,y ;s12x green - negw 8,sp+ ;s12x green - negw 8,x+ ;s12x green - negw 8,y+ ;s12x green - negw 8,sp- ;s12x green - negw 8,x- ;s12x green - negw 8,y- ;s12x green - negw a,sp ;s12x green - negw a,x ;s12x green - negw a,y ;s12x green - negw b,sp ;s12x green - negw b,x ;s12x green - negw b,y ;s12x green - negw d,sp ;s12x green - negw d,x ;s12x green - negw d,y ;s12x green - negw dir ;s12x green - negw ext ;s12x green - negw ext ;s12x green - negw ext,sp ;s12x green - negw ext,x ;s12x green - negw ext,y ;s12x green - negw ind,pc ;s12x green - negw ind,sp ;s12x green - negw ind,x ;s12x green - negw ind,y ;s12x green - negw small,pc ;s12x green - negw small,sp ;s12x green - negw small,x ;s12x green - negw small,y ;s12x green - - nega - negb - - negx ;s12x yellow - negy ;s12x yellow - - nop - oraa #immed - oraa 1,+sp - oraa 1,+x - oraa 1,+y - oraa 8,+sp - oraa 8,+x - oraa 8,+y - oraa ,pc - oraa ,sp - oraa ,x - oraa ,y - oraa 1,-sp - oraa 1,-x - oraa 1,-y - oraa 8,-sp - oraa 8,-x - oraa 8,-y - oraa -1,sp - oraa -1,x - oraa -1,y - oraa -16,sp - oraa -16,x - oraa -16,y - oraa -17,sp - oraa -17,x - oraa -17,y - oraa -small,pc - oraa -small,sp - oraa -small,x - oraa -small,y - oraa 0,pc - oraa 0,sp - oraa 0,x - oraa 0,y - oraa 1,sp+ - oraa 1,x+ - oraa 1,y+ - oraa 1,sp - oraa 1,x - oraa 1,y - oraa 1,sp- - oraa 1,x- - oraa 1,y- - oraa 125,pc - oraa 125,sp - oraa 125,x - oraa 125,y - oraa 15,sp - oraa 15,x - oraa 15,y - oraa 16,sp - oraa 16,x - oraa 16,y - oraa 8,sp+ - oraa 8,x+ - oraa 8,y+ - oraa 8,sp- - oraa 8,x- - oraa 8,y- - oraa a,sp - oraa a,x - oraa a,y - oraa b,sp - oraa b,x - oraa b,y - oraa d,sp - oraa d,x - oraa d,y - oraa dir - oraa dir - oraa ext - oraa ext - oraa ext,sp - oraa ext,x - oraa ext,y - oraa ind,pc - oraa ind,sp - oraa ind,x - oraa ind,y - oraa small,pc - oraa small,sp - oraa small,x - oraa small,y - - orx #immed ;s12x yellow - orx 1,+sp ;s12x yellow - orx 1,+x ;s12x yellow - orx 1,+y ;s12x yellow - orx 8,+sp ;s12x yellow - orx 8,+x ;s12x yellow - orx 8,+y ;s12x yellow - orx ,pc ;s12x yellow - orx ,sp ;s12x yellow - orx ,x ;s12x yellow - orx ,y ;s12x yellow - orx 1,-sp ;s12x yellow - orx 1,-x ;s12x yellow - orx 1,-y ;s12x yellow - orx 8,-sp ;s12x yellow - orx 8,-x ;s12x yellow - orx 8,-y ;s12x yellow - orx -1,sp ;s12x yellow - orx -1,x ;s12x yellow - orx -1,y ;s12x yellow - orx -16,sp ;s12x yellow - orx -16,x ;s12x yellow - orx -16,y ;s12x yellow - orx -17,sp ;s12x yellow - orx -17,x ;s12x yellow - orx -17,y ;s12x yellow - orx -small,pc ;s12x yellow - orx -small,sp ;s12x yellow - orx -small,x ;s12x yellow - orx -small,y ;s12x yellow - orx 0,pc ;s12x yellow - orx 0,sp ;s12x yellow - orx 0,x ;s12x yellow - orx 0,y ;s12x yellow - orx 1,sp+ ;s12x yellow - orx 1,x+ ;s12x yellow - orx 1,y+ ;s12x yellow - orx 1,sp ;s12x yellow - orx 1,x ;s12x yellow - orx 1,y ;s12x yellow - orx 1,sp- ;s12x yellow - orx 1,x- ;s12x yellow - orx 1,y- ;s12x yellow - orx 125,pc ;s12x yellow - orx 125,sp ;s12x yellow - orx 125,x ;s12x yellow - orx 125,y ;s12x yellow - orx 15,sp ;s12x yellow - orx 15,x ;s12x yellow - orx 15,y ;s12x yellow - orx 16,sp ;s12x yellow - orx 16,x ;s12x yellow - orx 16,y ;s12x yellow - orx 8,sp+ ;s12x yellow - orx 8,x+ ;s12x yellow - orx 8,y+ ;s12x yellow - orx 8,sp- ;s12x yellow - orx 8,x- ;s12x yellow - orx 8,y- ;s12x yellow - orx a,sp ;s12x yellow - orx a,x ;s12x yellow - orx a,y ;s12x yellow - orx b,sp ;s12x yellow - orx b,x ;s12x yellow - orx b,y ;s12x yellow - orx d,sp ;s12x yellow - orx d,x ;s12x yellow - orx d,y ;s12x yellow - orx dir ;s12x yellow - orx dir ;s12x yellow - orx ext ;s12x yellow - orx ext ;s12x yellow - orx ext,sp ;s12x yellow - orx ext,x ;s12x yellow - orx ext,y ;s12x yellow - orx ind,pc ;s12x yellow - orx ind,sp ;s12x yellow - orx ind,x ;s12x yellow - orx ind,y ;s12x yellow - orx small,pc ;s12x yellow - orx small,sp ;s12x yellow - orx small,x ;s12x yellow - orx small,y ;s12x yellow - - ory #immed ;s12x yellow - ory 1,+sp ;s12x yellow - ory 1,+x ;s12x yellow - ory 1,+y ;s12x yellow - ory 8,+sp ;s12x yellow - ory 8,+x ;s12x yellow - ory 8,+y ;s12x yellow - ory ,pc ;s12x yellow - ory ,sp ;s12x yellow - ory ,x ;s12x yellow - ory ,y ;s12x yellow - ory 1,-sp ;s12x yellow - ory 1,-x ;s12x yellow - ory 1,-y ;s12x yellow - ory 8,-sp ;s12x yellow - ory 8,-x ;s12x yellow - ory 8,-y ;s12x yellow - ory -1,sp ;s12x yellow - ory -1,x ;s12x yellow - ory -1,y ;s12x yellow - ory -16,sp ;s12x yellow - ory -16,x ;s12x yellow - ory -16,y ;s12x yellow - ory -17,sp ;s12x yellow - ory -17,x ;s12x yellow - ory -17,y ;s12x yellow - ory -small,pc ;s12x yellow - ory -small,sp ;s12x yellow - ory -small,x ;s12x yellow - ory -small,y ;s12x yellow - ory 0,pc ;s12x yellow - ory 0,sp ;s12x yellow - ory 0,x ;s12x yellow - ory 0,y ;s12x yellow - ory 1,sp+ ;s12x yellow - ory 1,x+ ;s12x yellow - ory 1,y+ ;s12x yellow - ory 1,sp ;s12x yellow - ory 1,x ;s12x yellow - ory 1,y ;s12x yellow - ory 1,sp- ;s12x yellow - ory 1,x- ;s12x yellow - ory 1,y- ;s12x yellow - ory 125,pc ;s12x yellow - ory 125,sp ;s12x yellow - ory 125,x ;s12x yellow - ory 125,y ;s12x yellow - ory 15,sp ;s12x yellow - ory 15,x ;s12x yellow - ory 15,y ;s12x yellow - ory 16,sp ;s12x yellow - ory 16,x ;s12x yellow - ory 16,y ;s12x yellow - ory 8,sp+ ;s12x yellow - ory 8,x+ ;s12x yellow - ory 8,y+ ;s12x yellow - ory 8,sp- ;s12x yellow - ory 8,x- ;s12x yellow - ory 8,y- ;s12x yellow - ory a,sp ;s12x yellow - ory a,x ;s12x yellow - ory a,y ;s12x yellow - ory b,sp ;s12x yellow - ory b,x ;s12x yellow - ory b,y ;s12x yellow - ory d,sp ;s12x yellow - ory d,x ;s12x yellow - ory d,y ;s12x yellow - ory dir ;s12x yellow - ory dir ;s12x yellow - ory ext ;s12x yellow - ory ext ;s12x yellow - ory ext,sp ;s12x yellow - ory ext,x ;s12x yellow - ory ext,y ;s12x yellow - ory ind,pc ;s12x yellow - ory ind,sp ;s12x yellow - ory ind,x ;s12x yellow - ory ind,y ;s12x yellow - ory small,pc ;s12x yellow - ory small,sp ;s12x yellow - ory small,x ;s12x yellow - ory small,y ;s12x yellow - - orcc #immed - psha - pshb - pshd - pshx - pshy - pula - pulb - pulc - - pulcw ;s12x dark blue - - puld - pulx - puly - rev - rol 1,+sp - rol 1,+x - rol 1,+y - rol 8,+sp - rol 8,+x - rol 8,+y - rol ,pc - rol ,sp - rol ,x - rol ,y - rol 1,-sp - rol 1,-x - rol 1,-y - rol 8,-sp - rol 8,-x - rol 8,-y - rol -1,sp - rol -1,x - rol -1,y - rol -16,sp - rol -16,x - rol -16,y - rol -17,sp - rol -17,x - rol -17,y - rol -small,pc - rol -small,sp - rol -small,x - rol -small,y - rol 0,pc - rol 0,sp - rol 0,x - rol 0,y - rol 1,sp+ - rol 1,x+ - rol 1,y+ - rol 1,sp - rol 1,x - rol 1,y - rol 1,sp- - rol 1,x- - rol 1,y- - rol 125,pc - rol 125,sp - rol 125,x - rol 125,y - rol 15,sp - rol 15,x - rol 15,y - rol 16,sp - rol 16,x - rol 16,y - rol 8,sp+ - rol 8,x+ - rol 8,y+ - rol 8,sp- - rol 8,x- - rol 8,y- - rol a,sp - rol a,x - rol a,y - rol b,sp - rol b,x - rol b,y - rol d,sp - rol d,x - rol d,y - rol dir - rol ext - rol ext - rol ext,sp - rol ext,x - rol ext,y - rol ind,pc - rol ind,sp - rol ind,x - rol ind,y - rol small,pc - rol small,sp - rol small,x - rol small,y - - rolw 1,+sp ;s12x green - rolw 1,+x ;s12x green - rolw 1,+y ;s12x green - rolw 8,+sp ;s12x green - rolw 8,+x ;s12x green - rolw 8,+y ;s12x green - rolw ,pc ;s12x green - rolw ,sp ;s12x green - rolw ,x ;s12x green - rolw ,y ;s12x green - rolw 1,-sp ;s12x green - rolw 1,-x ;s12x green - rolw 1,-y ;s12x green - rolw 8,-sp ;s12x green - rolw 8,-x ;s12x green - rolw 8,-y ;s12x green - rolw -1,sp ;s12x green - rolw -1,x ;s12x green - rolw -1,y ;s12x green - rolw -16,sp ;s12x green - rolw -16,x ;s12x green - rolw -16,y ;s12x green - rolw -17,sp ;s12x green - rolw -17,x ;s12x green - rolw -17,y ;s12x green - rolw -small,pc ;s12x green - rolw -small,sp ;s12x green - rolw -small,x ;s12x green - rolw -small,y ;s12x green - rolw 0,pc ;s12x green - rolw 0,sp ;s12x green - rolw 0,x ;s12x green - rolw 0,y ;s12x green - rolw 1,sp+ ;s12x green - rolw 1,x+ ;s12x green - rolw 1,y+ ;s12x green - rolw 1,sp ;s12x green - rolw 1,x ;s12x green - rolw 1,y ;s12x green - rolw 1,sp- ;s12x green - rolw 1,x- ;s12x green - rolw 1,y- ;s12x green - rolw 125,pc ;s12x green - rolw 125,sp ;s12x green - rolw 125,x ;s12x green - rolw 125,y ;s12x green - rolw 15,sp ;s12x green - rolw 15,x ;s12x green - rolw 15,y ;s12x green - rolw 16,sp ;s12x green - rolw 16,x ;s12x green - rolw 16,y ;s12x green - rolw 8,sp+ ;s12x green - rolw 8,x+ ;s12x green - rolw 8,y+ ;s12x green - rolw 8,sp- ;s12x green - rolw 8,x- ;s12x green - rolw 8,y- ;s12x green - rolw a,sp ;s12x green - rolw a,x ;s12x green - rolw a,y ;s12x green - rolw b,sp ;s12x green - rolw b,x ;s12x green - rolw b,y ;s12x green - rolw d,sp ;s12x green - rolw d,x ;s12x green - rolw d,y ;s12x green - rolw dir ;s12x green - rolw ext ;s12x green - rolw ext ;s12x green - rolw ext,sp ;s12x green - rolw ext,x ;s12x green - rolw ext,y ;s12x green - rolw ind,pc ;s12x green - rolw ind,sp ;s12x green - rolw ind,x ;s12x green - rolw ind,y ;s12x green - rolw small,pc ;s12x green - rolw small,sp ;s12x green - rolw small,x ;s12x green - rolw small,y ;s12x green - - rola - rolb - - rolx ;s12x yellow - roly ;s12x yellow - - ror 1,+sp - ror 1,+x - ror 1,+y - ror 8,+sp - ror 8,+x - ror 8,+y - ror ,pc - ror ,sp - ror ,x - ror ,y - ror 1,-sp - ror 1,-x - ror 1,-y - ror 8,-sp - ror 8,-x - ror 8,-y - ror -1,sp - ror -1,x - ror -1,y - ror -16,sp - ror -16,x - ror -16,y - ror -17,sp - ror -17,x - ror -17,y - ror -small,pc - ror -small,sp - ror -small,x - ror -small,y - ror 0,pc - ror 0,sp - ror 0,x - ror 0,y - ror 1,sp+ - ror 1,x+ - ror 1,y+ - ror 1,sp - ror 1,x - ror 1,y - ror 1,sp- - ror 1,x- - ror 1,y- - ror 125,pc - ror 125,sp - ror 125,x - ror 125,y - ror 15,sp - ror 15,x - ror 15,y - ror 16,sp - ror 16,x - ror 16,y - ror 8,sp+ - ror 8,x+ - ror 8,y+ - ror 8,sp- - ror 8,x- - ror 8,y- - ror a,sp - ror a,x - ror a,y - ror b,sp - ror b,x - ror b,y - ror d,sp - ror d,x - ror d,y - ror dir - ror ext - ror ext - ror ext,sp - ror ext,x - ror ext,y - ror ind,pc - ror ind,sp - ror ind,x - ror ind,y - ror small,pc - ror small,sp - ror small,x - ror small,y - - rorw 1,+sp ;s12x green - rorw 1,+x ;s12x green - rorw 1,+y ;s12x green - rorw 8,+sp ;s12x green - rorw 8,+x ;s12x green - rorw 8,+y ;s12x green - rorw ,pc ;s12x green - rorw ,sp ;s12x green - rorw ,x ;s12x green - rorw ,y ;s12x green - rorw 1,-sp ;s12x green - rorw 1,-x ;s12x green - rorw 1,-y ;s12x green - rorw 8,-sp ;s12x green - rorw 8,-x ;s12x green - rorw 8,-y ;s12x green - rorw -1,sp ;s12x green - rorw -1,x ;s12x green - rorw -1,y ;s12x green - rorw -16,sp ;s12x green - rorw -16,x ;s12x green - rorw -16,y ;s12x green - rorw -17,sp ;s12x green - rorw -17,x ;s12x green - rorw -17,y ;s12x green - rorw -small,pc ;s12x green - rorw -small,sp ;s12x green - rorw -small,x ;s12x green - rorw -small,y ;s12x green - rorw 0,pc ;s12x green - rorw 0,sp ;s12x green - rorw 0,x ;s12x green - rorw 0,y ;s12x green - rorw 1,sp+ ;s12x green - rorw 1,x+ ;s12x green - rorw 1,y+ ;s12x green - rorw 1,sp ;s12x green - rorw 1,x ;s12x green - rorw 1,y ;s12x green - rorw 1,sp- ;s12x green - rorw 1,x- ;s12x green - rorw 1,y- ;s12x green - rorw 125,pc ;s12x green - rorw 125,sp ;s12x green - rorw 125,x ;s12x green - rorw 125,y ;s12x green - rorw 15,sp ;s12x green - rorw 15,x ;s12x green - rorw 15,y ;s12x green - rorw 16,sp ;s12x green - rorw 16,x ;s12x green - rorw 16,y ;s12x green - rorw 8,sp+ ;s12x green - rorw 8,x+ ;s12x green - rorw 8,y+ ;s12x green - rorw 8,sp- ;s12x green - rorw 8,x- ;s12x green - rorw 8,y- ;s12x green - rorw a,sp ;s12x green - rorw a,x ;s12x green - rorw a,y ;s12x green - rorw b,sp ;s12x green - rorw b,x ;s12x green - rorw b,y ;s12x green - rorw d,sp ;s12x green - rorw d,x ;s12x green - rorw d,y ;s12x green - rorw dir ;s12x green - rorw ext ;s12x green - rorw ext ;s12x green - rorw ext,sp ;s12x green - rorw ext,x ;s12x green - rorw ext,y ;s12x green - rorw ind,pc ;s12x green - rorw ind,sp ;s12x green - rorw ind,x ;s12x green - rorw ind,y ;s12x green - rorw small,pc ;s12x green - rorw small,sp ;s12x green - rorw small,x ;s12x green - rorw small,y ;s12x green - - rora - rorb - - rorx ;s12x yellow - rory ;s12x yellow - - rti - rts - sba - sbca #immed - sbca 1,+sp - sbca 1,+x - sbca 1,+y - sbca 8,+sp - sbca 8,+x - sbca 8,+y - sbca ,pc - sbca ,sp - sbca ,x - sbca ,y - sbca 1,-sp - sbca 1,-x - sbca 1,-y - sbca 8,-sp - sbca 8,-x - sbca 8,-y - sbca -1,sp - sbca -1,x - sbca -1,y - sbca -16,sp - sbca -16,x - sbca -16,y - sbca -17,sp - sbca -17,x - sbca -17,y - sbca -small,pc - sbca -small,sp - sbca -small,x - sbca -small,y - sbca 0,pc - sbca 0,sp - sbca 0,x - sbca 0,y - sbca 1,sp+ - sbca 1,x+ - sbca 1,y+ - sbca 1,sp - sbca 1,x - sbca 1,y - sbca 1,sp- - sbca 1,x- - sbca 1,y- - sbca 125,pc - sbca 125,sp - sbca 125,x - sbca 125,y - sbca 15,sp - sbca 15,x - sbca 15,y - sbca 16,sp - sbca 16,x - sbca 16,y - sbca 8,sp+ - sbca 8,x+ - sbca 8,y+ - sbca 8,sp- - sbca 8,x- - sbca 8,y- - sbca a,sp - sbca a,x - sbca a,y - sbca b,sp - sbca b,x - sbca b,y - sbca d,sp - sbca d,x - sbca d,y - sbca dir - sbca dir - sbca ext - sbca ext - sbca ext,sp - sbca ext,x - sbca ext,y - sbca ind,pc - sbca ind,sp - sbca ind,x - sbca ind,y - sbca small,pc - sbca small,sp - sbca small,x - sbca small,y - - sbex #immed ;s12x yellow - sbex 1,+sp ;s12x yellow - sbex 1,+x ;s12x yellow - sbex 1,+y ;s12x yellow - sbex 8,+sp ;s12x yellow - sbex 8,+x ;s12x yellow - sbex 8,+y ;s12x yellow - sbex ,pc ;s12x yellow - sbex ,sp ;s12x yellow - sbex ,x ;s12x yellow - sbex ,y ;s12x yellow - sbex 1,-sp ;s12x yellow - sbex 1,-x ;s12x yellow - sbex 1,-y ;s12x yellow - sbex 8,-sp ;s12x yellow - sbex 8,-x ;s12x yellow - sbex 8,-y ;s12x yellow - sbex -1,sp ;s12x yellow - sbex -1,x ;s12x yellow - sbex -1,y ;s12x yellow - sbex -16,sp ;s12x yellow - sbex -16,x ;s12x yellow - sbex -16,y ;s12x yellow - sbex -17,sp ;s12x yellow - sbex -17,x ;s12x yellow - sbex -17,y ;s12x yellow - sbex -small,pc ;s12x yellow - sbex -small,sp ;s12x yellow - sbex -small,x ;s12x yellow - sbex -small,y ;s12x yellow - sbex 0,pc ;s12x yellow - sbex 0,sp ;s12x yellow - sbex 0,x ;s12x yellow - sbex 0,y ;s12x yellow - sbex 1,sp+ ;s12x yellow - sbex 1,x+ ;s12x yellow - sbex 1,y+ ;s12x yellow - sbex 1,sp ;s12x yellow - sbex 1,x ;s12x yellow - sbex 1,y ;s12x yellow - sbex 1,sp- ;s12x yellow - sbex 1,x- ;s12x yellow - sbex 1,y- ;s12x yellow - sbex 125,pc ;s12x yellow - sbex 125,sp ;s12x yellow - sbex 125,x ;s12x yellow - sbex 125,y ;s12x yellow - sbex 15,sp ;s12x yellow - sbex 15,x ;s12x yellow - sbex 15,y ;s12x yellow - sbex 16,sp ;s12x yellow - sbex 16,x ;s12x yellow - sbex 16,y ;s12x yellow - sbex 8,sp+ ;s12x yellow - sbex 8,x+ ;s12x yellow - sbex 8,y+ ;s12x yellow - sbex 8,sp- ;s12x yellow - sbex 8,x- ;s12x yellow - sbex 8,y- ;s12x yellow - sbex a,sp ;s12x yellow - sbex a,x ;s12x yellow - sbex a,y ;s12x yellow - sbex b,sp ;s12x yellow - sbex b,x ;s12x yellow - sbex b,y ;s12x yellow - sbex d,sp ;s12x yellow - sbex d,x ;s12x yellow - sbex d,y ;s12x yellow - sbex dir ;s12x yellow - sbex dir ;s12x yellow - sbex ext ;s12x yellow - sbex ext ;s12x yellow - sbex ext,sp ;s12x yellow - sbex ext,x ;s12x yellow - sbex ext,y ;s12x yellow - sbex ind,pc ;s12x yellow - sbex ind,sp ;s12x yellow - sbex ind,x ;s12x yellow - sbex ind,y ;s12x yellow - sbex small,pc ;s12x yellow - sbex small,sp ;s12x yellow - sbex small,x ;s12x yellow - sbex small,y ;s12x yellow - - sbcb #immed - sbcb 1,+sp - sbcb 1,+x - sbcb 1,+y - sbcb 8,+sp - sbcb 8,+x - sbcb 8,+y - sbcb ,pc - sbcb ,sp - sbcb ,x - sbcb ,y - sbcb 1,-sp - sbcb 1,-x - sbcb 1,-y - sbcb 8,-sp - sbcb 8,-x - sbcb 8,-y - sbcb -1,sp - sbcb -1,x - sbcb -1,y - sbcb -16,sp - sbcb -16,x - sbcb -16,y - sbcb -17,sp - sbcb -17,x - sbcb -17,y - sbcb -small,pc - sbcb -small,sp - sbcb -small,x - sbcb -small,y - sbcb 0,pc - sbcb 0,sp - sbcb 0,x - sbcb 0,y - sbcb 1,sp+ - sbcb 1,x+ - sbcb 1,y+ - sbcb 1,sp - sbcb 1,x - sbcb 1,y - sbcb 1,sp- - sbcb 1,x- - sbcb 1,y- - sbcb 125,pc - sbcb 125,sp - sbcb 125,x - sbcb 125,y - sbcb 15,sp - sbcb 15,x - sbcb 15,y - sbcb 16,sp - sbcb 16,x - sbcb 16,y - sbcb 8,sp+ - sbcb 8,x+ - sbcb 8,y+ - sbcb 8,sp- - sbcb 8,x- - sbcb 8,y- - sbcb a,sp - sbcb a,x - sbcb a,y - sbcb b,sp - sbcb b,x - sbcb b,y - sbcb d,sp - sbcb d,x - sbcb d,y - sbcb dir - sbcb dir - sbcb ext - sbcb ext - sbcb ext,sp - sbcb ext,x - sbcb ext,y - sbcb ind,pc - sbcb ind,sp - sbcb ind,x - sbcb ind,y - sbcb small,pc - sbcb small,sp - sbcb small,x - sbcb small,y - - sbey #immed ;s12x yellow - sbey 1,+sp ;s12x yellow - sbey 1,+x ;s12x yellow - sbey 1,+y ;s12x yellow - sbey 8,+sp ;s12x yellow - sbey 8,+x ;s12x yellow - sbey 8,+y ;s12x yellow - sbey ,pc ;s12x yellow - sbey ,sp ;s12x yellow - sbey ,x ;s12x yellow - sbey ,y ;s12x yellow - sbey 1,-sp ;s12x yellow - sbey 1,-x ;s12x yellow - sbey 1,-y ;s12x yellow - sbey 8,-sp ;s12x yellow - sbey 8,-x ;s12x yellow - sbey 8,-y ;s12x yellow - sbey -1,sp ;s12x yellow - sbey -1,x ;s12x yellow - sbey -1,y ;s12x yellow - sbey -16,sp ;s12x yellow - sbey -16,x ;s12x yellow - sbey -16,y ;s12x yellow - sbey -17,sp ;s12x yellow - sbey -17,x ;s12x yellow - sbey -17,y ;s12x yellow - sbey -small,pc ;s12x yellow - sbey -small,sp ;s12x yellow - sbey -small,x ;s12x yellow - sbey -small,y ;s12x yellow - sbey 0,pc ;s12x yellow - sbey 0,sp ;s12x yellow - sbey 0,x ;s12x yellow - sbey 0,y ;s12x yellow - sbey 1,sp+ ;s12x yellow - sbey 1,x+ ;s12x yellow - sbey 1,y+ ;s12x yellow - sbey 1,sp ;s12x yellow - sbey 1,x ;s12x yellow - sbey 1,y ;s12x yellow - sbey 1,sp- ;s12x yellow - sbey 1,x- ;s12x yellow - sbey 1,y- ;s12x yellow - sbey 125,pc ;s12x yellow - sbey 125,sp ;s12x yellow - sbey 125,x ;s12x yellow - sbey 125,y ;s12x yellow - sbey 15,sp ;s12x yellow - sbey 15,x ;s12x yellow - sbey 15,y ;s12x yellow - sbey 16,sp ;s12x yellow - sbey 16,x ;s12x yellow - sbey 16,y ;s12x yellow - sbey 8,sp+ ;s12x yellow - sbey 8,x+ ;s12x yellow - sbey 8,y+ ;s12x yellow - sbey 8,sp- ;s12x yellow - sbey 8,x- ;s12x yellow - sbey 8,y- ;s12x yellow - sbey a,sp ;s12x yellow - sbey a,x ;s12x yellow - sbey a,y ;s12x yellow - sbey b,sp ;s12x yellow - sbey b,x ;s12x yellow - sbey b,y ;s12x yellow - sbey d,sp ;s12x yellow - sbey d,x ;s12x yellow - sbey d,y ;s12x yellow - sbey dir ;s12x yellow - sbey dir ;s12x yellow - sbey ext ;s12x yellow - sbey ext ;s12x yellow - sbey ext,sp ;s12x yellow - sbey ext,x ;s12x yellow - sbey ext,y ;s12x yellow - sbey ind,pc ;s12x yellow - sbey ind,sp ;s12x yellow - sbey ind,x ;s12x yellow - sbey ind,y ;s12x yellow - sbey small,pc ;s12x yellow - sbey small,sp ;s12x yellow - sbey small,x ;s12x yellow - sbey small,y ;s12x yellow - - sec - sei - sev - sex a d - sex a sp - sex a,sp - sex a x - sex a,x - sex a y - sex a,y - sex b d - sex b sp - sex b,sp - sex b x - sex b,x - sex b y - sex b,y - sex ccr d - sex ccr sp - sex ccr x - sex ccr y - staa 1,+sp - staa 1,+x - staa 1,+y - staa 8,+sp - staa 8,+x - staa 8,+y - staa ,pc - staa ,sp - staa ,x - staa ,y - staa 1,-sp - staa 1,-x - staa 1,-y - staa 8,-sp - staa 8,-x - staa 8,-y - staa -1,sp - staa -1,x - staa -1,y - staa -16,sp - staa -16,x - staa -16,y - staa -17,sp - staa -17,x - staa -17,y - staa -small,pc - staa -small,sp - staa -small,x - staa -small,y - staa 0,pc - staa 0,sp - staa 0,x - staa 0,y - staa 1,sp+ - staa 1,x+ - staa 1,y+ - staa 1,sp - staa 1,x - staa 1,y - staa 1,sp- - staa 1,x- - staa 1,y- - staa 125,pc - staa 125,sp - staa 125,x - staa 125,y - staa 15,sp - staa 15,x - staa 15,y - staa 16,sp - staa 16,x - staa 16,y - staa 8,sp+ - staa 8,x+ - staa 8,y+ - staa 8,sp- - staa 8,x- - staa 8,y- - staa a,sp - staa a,x - staa a,y - staa b,sp - staa b,x - staa b,y - staa d,sp - staa d,x - staa d,y - staa dir - staa dir - staa ext - staa ext - staa ext,sp - staa ext,x - staa ext,y - staa ind,pc - staa ind,sp - staa ind,x - staa ind,y - staa small,pc - staa small,sp - staa small,x - staa small,y - stab 1,+sp - stab 1,+x - stab 1,+y - stab 8,+sp - stab 8,+x - stab 8,+y - stab ,pc - stab ,sp - stab ,x - stab ,y - stab 1,-sp - stab 1,-x - stab 1,-y - stab 8,-sp - stab 8,-x - stab 8,-y - stab -1,sp - stab -1,x - stab -1,y - stab -16,sp - stab -16,x - stab -16,y - stab -17,sp - stab -17,x - stab -17,y - stab -small,pc - stab -small,sp - stab -small,x - stab -small,y - stab 0,pc - stab 0,sp - stab 0,x - stab 0,y - stab 1,sp+ - stab 1,x+ - stab 1,y+ - stab 1,sp - stab 1,x - stab 1,y - stab 1,sp- - stab 1,x- - stab 1,y- - stab 125,pc - stab 125,sp - stab 125,x - stab 125,y - stab 15,sp - stab 15,x - stab 15,y - stab 16,sp - stab 16,x - stab 16,y - stab 8,sp+ - stab 8,x+ - stab 8,y+ - stab 8,sp- - stab 8,x- - stab 8,y- - stab a,sp - stab a,x - stab a,y - stab b,sp - stab b,x - stab b,y - stab d,sp - stab d,x - stab d,y - stab dir - stab dir - stab ext - stab ext - stab ext,sp - stab ext,x - stab ext,y - stab ind,pc - stab ind,sp - stab ind,x - stab ind,y - stab small,pc - stab small,sp - stab small,x - stab small,y - std 1,+sp - std 1,+x - std 1,+y - std 8,+sp - std 8,+x - std 8,+y - std ,pc - std ,sp - std ,x - std ,y - std 1,-sp - std 1,-x - std 1,-y - std 8,-sp - std 8,-x - std 8,-y - std -1,sp - std -1,x - std -1,y - std -16,sp - std -16,x - std -16,y - std -17,sp - std -17,x - std -17,y - std -small,pc - std -small,sp - std -small,x - std -small,y - std 0,pc - std 0,sp - std 0,x - std 0,y - std 1,sp+ - std 1,x+ - std 1,y+ - std 1,sp - std 1,x - std 1,y - std 1,sp- - std 1,x- - std 1,y- - std 125,pc - std 125,sp - std 125,x - std 125,y - std 15,sp - std 15,x - std 15,y - std 16,sp - std 16,x - std 16,y - std 8,sp+ - std 8,x+ - std 8,y+ - std 8,sp- - std 8,x- - std 8,y- - std a,sp - std a,x - std a,y - std b,sp - std b,x - std b,y - std d,sp - std d,x - std d,y - std dir - std dir - std ext - std ext - std ext,sp - std ext,x - std ext,y - std ind,pc - std ind,sp - std ind,x - std ind,y - std small,pc - std small,sp - std small,x - std small,y - stop - sts 1,+sp - sts 1,+x - sts 1,+y - sts 8,+sp - sts 8,+x - sts 8,+y - sts ,pc - sts ,sp - sts ,x - sts ,y - sts 1,-sp - sts 1,-x - sts 1,-y - sts 8,-sp - sts 8,-x - sts 8,-y - sts -1,sp - sts -1,x - sts -1,y - sts -16,sp - sts -16,x - sts -16,y - sts -17,sp - sts -17,x - sts -17,y - sts -small,pc - sts -small,sp - sts -small,x - sts -small,y - sts 0,pc - sts 0,sp - sts 0,x - sts 0,y - sts 1,sp+ - sts 1,x+ - sts 1,y+ - sts 1,sp - sts 1,x - sts 1,y - sts 1,sp- - sts 1,x- - sts 1,y- - sts 125,pc - sts 125,sp - sts 125,x - sts 125,y - sts 15,sp - sts 15,x - sts 15,y - sts 16,sp - sts 16,x - sts 16,y - sts 8,sp+ - sts 8,x+ - sts 8,y+ - sts 8,sp- - sts 8,x- - sts 8,y- - sts a,sp - sts a,x - sts a,y - sts b,sp - sts b,x - sts b,y - sts d,sp - sts d,x - sts d,y - sts dir - sts ext - sts ext,sp - sts ext,x - sts ext,y - sts ind,pc - sts ind,sp - sts ind,x - sts ind,y - sts small,pc - sts small,sp - sts small,x - sts small,y - stx 1,+sp - stx 1,+x - stx 1,+y - stx 8,+sp - stx 8,+x - stx 8,+y - stx ,pc - stx ,sp - stx ,x - stx ,y - stx 1,-sp - stx 1,-x - stx 1,-y - stx 8,-sp - stx 8,-x - stx 8,-y - stx -1,sp - stx -1,x - stx -1,y - stx -16,sp - stx -16,x - stx -16,y - stx -17,sp - stx -17,x - stx -17,y - stx -small,pc - stx -small,sp - stx -small,x - stx -small,y - stx 0,pc - stx 0,sp - stx 0,x - stx 0,y - stx 1,sp+ - stx 1,x+ - stx 1,y+ - stx 1,sp - stx 1,x - stx 1,y - stx 1,sp- - stx 1,x- - stx 1,y- - stx 125,pc - stx 125,sp - stx 125,x - stx 125,y - stx 15,sp - stx 15,x - stx 15,y - stx 16,sp - stx 16,x - stx 16,y - stx 8,sp+ - stx 8,x+ - stx 8,y+ - stx 8,sp- - stx 8,x- - stx 8,y- - stx a,sp - stx a,x - stx a,y - stx b,sp - stx b,x - stx b,y - stx d,sp - stx d,x - stx d,y - stx dir - stx dir - stx ext - stx ext - stx ext,sp - stx ext,x - stx ext,y - stx ind,pc - stx ind,sp - stx ind,x - stx ind,y - stx small,pc - stx small,sp - stx small,x - stx small,y - sty 1,+sp - sty 1,+x - sty 1,+y - sty 8,+sp - sty 8,+x - sty 8,+y - sty ,pc - sty ,sp - sty ,x - sty ,y - sty 1,-sp - sty 1,-x - sty 1,-y - sty 8,-sp - sty 8,-x - sty 8,-y - sty -1,sp - sty -1,x - sty -1,y - sty -16,sp - sty -16,x - sty -16,y - sty -17,sp - sty -17,x - sty -17,y - sty -small,pc - sty -small,sp - sty -small,x - sty -small,y - sty 0,pc - sty 0,sp - sty 0,x - sty 0,y - sty 1,sp+ - sty 1,x+ - sty 1,y+ - sty 1,sp - sty 1,x - sty 1,y - sty 1,sp- - sty 1,x- - sty 1,y- - sty 125,pc - sty 125,sp - sty 125,x - sty 125,y - sty 15,sp - sty 15,x - sty 15,y - sty 16,sp - sty 16,x - sty 16,y - sty 8,sp+ - sty 8,x+ - sty 8,y+ - sty 8,sp- - sty 8,x- - sty 8,y- - sty a,sp - sty a,x - sty a,y - sty b,sp - sty b,x - sty b,y - sty d,sp - sty d,x - sty d,y - sty dir - sty dir - sty ext - sty ext - sty ext,sp - sty ext,x - sty ext,y - sty ind,pc - sty ind,sp - sty ind,x - sty ind,y - sty small,pc - sty small,sp - sty small,x - sty small,y - - ORG $8000 - gstaa 1,+sp ;s12x cyan - gstaa 1,+x ;s12x cyan - gstaa 1,+y ;s12x cyan - gstaa 8,+sp ;s12x cyan - gstaa 8,+x ;s12x cyan - gstaa 8,+y ;s12x cyan - gstaa ,pc ;s12x cyan - gstaa ,sp ;s12x cyan - gstaa ,x ;s12x cyan - gstaa ,y ;s12x cyan - gstaa 1,-sp ;s12x cyan - gstaa 1,-x ;s12x cyan - gstaa 1,-y ;s12x cyan - gstaa 8,-sp ;s12x cyan - gstaa 8,-x ;s12x cyan - gstaa 8,-y ;s12x cyan - gstaa -1,sp ;s12x cyan - gstaa -1,x ;s12x cyan - gstaa -1,y ;s12x cyan - gstaa -16,sp ;s12x cyan - gstaa -16,x ;s12x cyan - gstaa -16,y ;s12x cyan - gstaa -17,sp ;s12x cyan - gstaa -17,x ;s12x cyan - gstaa -17,y ;s12x cyan - gstaa -small,pc ;s12x cyan - gstaa -small,sp ;s12x cyan - gstaa -small,x ;s12x cyan - gstaa -small,y ;s12x cyan - gstaa 0,pc ;s12x cyan - gstaa 0,sp ;s12x cyan - gstaa 0,x ;s12x cyan - gstaa 0,y ;s12x cyan - gstaa 1,sp+ ;s12x cyan - gstaa 1,x+ ;s12x cyan - gstaa 1,y+ ;s12x cyan - gstaa 1,sp ;s12x cyan - gstaa 1,x ;s12x cyan - gstaa 1,y ;s12x cyan - gstaa 1,sp- ;s12x cyan - gstaa 1,x- ;s12x cyan - gstaa 1,y- ;s12x cyan - gstaa 125,pc ;s12x cyan - gstaa 125,sp ;s12x cyan - gstaa 125,x ;s12x cyan - gstaa 125,y ;s12x cyan - gstaa 15,sp ;s12x cyan - gstaa 15,x ;s12x cyan - gstaa 15,y ;s12x cyan - gstaa 16,sp ;s12x cyan - gstaa 16,x ;s12x cyan - gstaa 16,y ;s12x cyan - gstaa 8,sp+ ;s12x cyan - gstaa 8,x+ ;s12x cyan - gstaa 8,y+ ;s12x cyan - gstaa 8,sp- ;s12x cyan - gstaa 8,x- ;s12x cyan - gstaa 8,y- ;s12x cyan - gstaa a,sp ;s12x cyan - gstaa a,x ;s12x cyan - gstaa a,y ;s12x cyan - gstaa b,sp ;s12x cyan - gstaa b,x ;s12x cyan - gstaa b,y ;s12x cyan - gstaa d,sp ;s12x cyan - gstaa d,x ;s12x cyan - gstaa d,y ;s12x cyan - gstaa dir ;s12x cyan - gstaa dir ;s12x cyan - gstaa ext ;s12x cyan - gstaa ext ;s12x cyan - gstaa ext,sp ;s12x cyan - gstaa ext,x ;s12x cyan - gstaa ext,y ;s12x cyan - gstaa ind,pc ;s12x cyan - gstaa ind,sp ;s12x cyan - gstaa ind,x ;s12x cyan - gstaa ind,y ;s12x cyan - gstaa small,pc ;s12x cyan - gstaa small,sp ;s12x cyan - gstaa small,x ;s12x cyan - gstaa small,y ;s12x cyan - gstab 1,+sp ;s12x cyan - gstab 1,+x ;s12x cyan - gstab 1,+y ;s12x cyan - gstab 8,+sp ;s12x cyan - gstab 8,+x ;s12x cyan - gstab 8,+y ;s12x cyan - gstab ,pc ;s12x cyan - gstab ,sp ;s12x cyan - gstab ,x ;s12x cyan - gstab ,y ;s12x cyan - gstab 1,-sp ;s12x cyan - gstab 1,-x ;s12x cyan - gstab 1,-y ;s12x cyan - gstab 8,-sp ;s12x cyan - gstab 8,-x ;s12x cyan - gstab 8,-y ;s12x cyan - gstab -1,sp ;s12x cyan - gstab -1,x ;s12x cyan - gstab -1,y ;s12x cyan - gstab -16,sp ;s12x cyan - gstab -16,x ;s12x cyan - gstab -16,y ;s12x cyan - gstab -17,sp ;s12x cyan - gstab -17,x ;s12x cyan - gstab -17,y ;s12x cyan - gstab -small,pc ;s12x cyan - gstab -small,sp ;s12x cyan - gstab -small,x ;s12x cyan - gstab -small,y ;s12x cyan - gstab 0,pc ;s12x cyan - gstab 0,sp ;s12x cyan - gstab 0,x ;s12x cyan - gstab 0,y ;s12x cyan - gstab 1,sp+ ;s12x cyan - gstab 1,x+ ;s12x cyan - gstab 1,y+ ;s12x cyan - gstab 1,sp ;s12x cyan - gstab 1,x ;s12x cyan - gstab 1,y ;s12x cyan - gstab 1,sp- ;s12x cyan - gstab 1,x- ;s12x cyan - gstab 1,y- ;s12x cyan - gstab 125,pc ;s12x cyan - gstab 125,sp ;s12x cyan - gstab 125,x ;s12x cyan - gstab 125,y ;s12x cyan - gstab 15,sp ;s12x cyan - gstab 15,x ;s12x cyan - gstab 15,y ;s12x cyan - gstab 16,sp ;s12x cyan - gstab 16,x ;s12x cyan - gstab 16,y ;s12x cyan - gstab 8,sp+ ;s12x cyan - gstab 8,x+ ;s12x cyan - gstab 8,y+ ;s12x cyan - gstab 8,sp- ;s12x cyan - gstab 8,x- ;s12x cyan - gstab 8,y- ;s12x cyan - gstab a,sp ;s12x cyan - gstab a,x ;s12x cyan - gstab a,y ;s12x cyan - gstab b,sp ;s12x cyan - gstab b,x ;s12x cyan - gstab b,y ;s12x cyan - gstab d,sp ;s12x cyan - gstab d,x ;s12x cyan - gstab d,y ;s12x cyan - gstab dir ;s12x cyan - gstab dir ;s12x cyan - gstab ext ;s12x cyan - gstab ext ;s12x cyan - gstab ext,sp ;s12x cyan - gstab ext,x ;s12x cyan - gstab ext,y ;s12x cyan - gstab ind,pc ;s12x cyan - gstab ind,sp ;s12x cyan - gstab ind,x ;s12x cyan - gstab ind,y ;s12x cyan - gstab small,pc ;s12x cyan - gstab small,sp ;s12x cyan - gstab small,x ;s12x cyan - gstab small,y ;s12x cyan - gstd 1,+sp ;s12x cyan - gstd 1,+x ;s12x cyan - gstd 1,+y ;s12x cyan - gstd 8,+sp ;s12x cyan - gstd 8,+x ;s12x cyan - gstd 8,+y ;s12x cyan - gstd ,pc ;s12x cyan - gstd ,sp ;s12x cyan - gstd ,x ;s12x cyan - gstd ,y ;s12x cyan - gstd 1,-sp ;s12x cyan - gstd 1,-x ;s12x cyan - gstd 1,-y ;s12x cyan - gstd 8,-sp ;s12x cyan - gstd 8,-x ;s12x cyan - gstd 8,-y ;s12x cyan - gstd -1,sp ;s12x cyan - gstd -1,x ;s12x cyan - gstd -1,y ;s12x cyan - gstd -16,sp ;s12x cyan - gstd -16,x ;s12x cyan - gstd -16,y ;s12x cyan - gstd -17,sp ;s12x cyan - gstd -17,x ;s12x cyan - gstd -17,y ;s12x cyan - gstd -small,pc ;s12x cyan - gstd -small,sp ;s12x cyan - gstd -small,x ;s12x cyan - gstd -small,y ;s12x cyan - gstd 0,pc ;s12x cyan - gstd 0,sp ;s12x cyan - gstd 0,x ;s12x cyan - gstd 0,y ;s12x cyan - gstd 1,sp+ ;s12x cyan - gstd 1,x+ ;s12x cyan - gstd 1,y+ ;s12x cyan - gstd 1,sp ;s12x cyan - gstd 1,x ;s12x cyan - gstd 1,y ;s12x cyan - gstd 1,sp- ;s12x cyan - gstd 1,x- ;s12x cyan - gstd 1,y- ;s12x cyan - gstd 125,pc ;s12x cyan - gstd 125,sp ;s12x cyan - gstd 125,x ;s12x cyan - gstd 125,y ;s12x cyan - gstd 15,sp ;s12x cyan - gstd 15,x ;s12x cyan - gstd 15,y ;s12x cyan - gstd 16,sp ;s12x cyan - gstd 16,x ;s12x cyan - gstd 16,y ;s12x cyan - gstd 8,sp+ ;s12x cyan - gstd 8,x+ ;s12x cyan - gstd 8,y+ ;s12x cyan - gstd 8,sp- ;s12x cyan - gstd 8,x- ;s12x cyan - gstd 8,y- ;s12x cyan - gstd a,sp ;s12x cyan - gstd a,x ;s12x cyan - gstd a,y ;s12x cyan - gstd b,sp ;s12x cyan - gstd b,x ;s12x cyan - gstd b,y ;s12x cyan - gstd d,sp ;s12x cyan - gstd d,x ;s12x cyan - gstd d,y ;s12x cyan - gstd dir ;s12x cyan - gstd dir ;s12x cyan - gstd ext ;s12x cyan - gstd ext ;s12x cyan - gstd ext,sp ;s12x cyan - gstd ext,x ;s12x cyan - gstd ext,y ;s12x cyan - gstd ind,pc ;s12x cyan - gstd ind,sp ;s12x cyan - gstd ind,x ;s12x cyan - gstd ind,y ;s12x cyan - gstd small,pc ;s12x cyan - gstd small,sp ;s12x cyan - gstd small,x ;s12x cyan - gstd small,y ;s12x cyan - gsts 1,+sp ;s12x cyan - gsts 1,+x ;s12x cyan - gsts 1,+y ;s12x cyan - gsts 8,+sp ;s12x cyan - gsts 8,+x ;s12x cyan - gsts 8,+y ;s12x cyan - gsts ,pc ;s12x cyan - gsts ,sp ;s12x cyan - gsts ,x ;s12x cyan - gsts ,y ;s12x cyan - gsts 1,-sp ;s12x cyan - gsts 1,-x ;s12x cyan - gsts 1,-y ;s12x cyan - gsts 8,-sp ;s12x cyan - gsts 8,-x ;s12x cyan - gsts 8,-y ;s12x cyan - gsts -1,sp ;s12x cyan - gsts -1,x ;s12x cyan - gsts -1,y ;s12x cyan - gsts -16,sp ;s12x cyan - gsts -16,x ;s12x cyan - gsts -16,y ;s12x cyan - gsts -17,sp ;s12x cyan - gsts -17,x ;s12x cyan - gsts -17,y ;s12x cyan - gsts -small,pc ;s12x cyan - gsts -small,sp ;s12x cyan - gsts -small,x ;s12x cyan - gsts -small,y ;s12x cyan - gsts 0,pc ;s12x cyan - gsts 0,sp ;s12x cyan - gsts 0,x ;s12x cyan - gsts 0,y ;s12x cyan - gsts 1,sp+ ;s12x cyan - gsts 1,x+ ;s12x cyan - gsts 1,y+ ;s12x cyan - gsts 1,sp ;s12x cyan - gsts 1,x ;s12x cyan - gsts 1,y ;s12x cyan - gsts 1,sp- ;s12x cyan - gsts 1,x- ;s12x cyan - gsts 1,y- ;s12x cyan - gsts 125,pc ;s12x cyan - gsts 125,sp ;s12x cyan - gsts 125,x ;s12x cyan - gsts 125,y ;s12x cyan - gsts 15,sp ;s12x cyan - gsts 15,x ;s12x cyan - gsts 15,y ;s12x cyan - gsts 16,sp ;s12x cyan - gsts 16,x ;s12x cyan - gsts 16,y ;s12x cyan - gsts 8,sp+ ;s12x cyan - gsts 8,x+ ;s12x cyan - gsts 8,y+ ;s12x cyan - gsts 8,sp- ;s12x cyan - gsts 8,x- ;s12x cyan - gsts 8,y- ;s12x cyan - gsts a,sp ;s12x cyan - gsts a,x ;s12x cyan - gsts a,y ;s12x cyan - gsts b,sp ;s12x cyan - gsts b,x ;s12x cyan - gsts b,y ;s12x cyan - gsts d,sp ;s12x cyan - gsts d,x ;s12x cyan - gsts d,y ;s12x cyan - gsts dir ;s12x cyan - gsts ext ;s12x cyan - gsts ext,sp ;s12x cyan - gsts ext,x ;s12x cyan - gsts ext,y ;s12x cyan - gsts ind,pc ;s12x cyan - gsts ind,sp ;s12x cyan - gsts ind,x ;s12x cyan - gsts ind,y ;s12x cyan - gsts small,pc ;s12x cyan - gsts small,sp ;s12x cyan - gsts small,x ;s12x cyan - gsts small,y ;s12x cyan - gstx 1,+sp ;s12x cyan - gstx 1,+x ;s12x cyan - gstx 1,+y ;s12x cyan - gstx 8,+sp ;s12x cyan - gstx 8,+x ;s12x cyan - gstx 8,+y ;s12x cyan - gstx ,pc ;s12x cyan - gstx ,sp ;s12x cyan - gstx ,x ;s12x cyan - gstx ,y ;s12x cyan - gstx 1,-sp ;s12x cyan - gstx 1,-x ;s12x cyan - gstx 1,-y ;s12x cyan - gstx 8,-sp ;s12x cyan - gstx 8,-x ;s12x cyan - gstx 8,-y ;s12x cyan - gstx -1,sp ;s12x cyan - gstx -1,x ;s12x cyan - gstx -1,y ;s12x cyan - gstx -16,sp ;s12x cyan - gstx -16,x ;s12x cyan - gstx -16,y ;s12x cyan - gstx -17,sp ;s12x cyan - gstx -17,x ;s12x cyan - gstx -17,y ;s12x cyan - gstx -small,pc ;s12x cyan - gstx -small,sp ;s12x cyan - gstx -small,x ;s12x cyan - gstx -small,y ;s12x cyan - gstx 0,pc ;s12x cyan - gstx 0,sp ;s12x cyan - gstx 0,x ;s12x cyan - gstx 0,y ;s12x cyan - gstx 1,sp+ ;s12x cyan - gstx 1,x+ ;s12x cyan - gstx 1,y+ ;s12x cyan - gstx 1,sp ;s12x cyan - gstx 1,x ;s12x cyan - gstx 1,y ;s12x cyan - gstx 1,sp- ;s12x cyan - gstx 1,x- ;s12x cyan - gstx 1,y- ;s12x cyan - gstx 125,pc ;s12x cyan - gstx 125,sp ;s12x cyan - gstx 125,x ;s12x cyan - gstx 125,y ;s12x cyan - gstx 15,sp ;s12x cyan - gstx 15,x ;s12x cyan - gstx 15,y ;s12x cyan - gstx 16,sp ;s12x cyan - gstx 16,x ;s12x cyan - gstx 16,y ;s12x cyan - gstx 8,sp+ ;s12x cyan - gstx 8,x+ ;s12x cyan - gstx 8,y+ ;s12x cyan - gstx 8,sp- ;s12x cyan - gstx 8,x- ;s12x cyan - gstx 8,y- ;s12x cyan - gstx a,sp ;s12x cyan - gstx a,x ;s12x cyan - gstx a,y ;s12x cyan - gstx b,sp ;s12x cyan - gstx b,x ;s12x cyan - gstx b,y ;s12x cyan - gstx d,sp ;s12x cyan - gstx d,x ;s12x cyan - gstx d,y ;s12x cyan - gstx dir ;s12x cyan - gstx dir ;s12x cyan - gstx ext ;s12x cyan - gstx ext ;s12x cyan - gstx ext,sp ;s12x cyan - gstx ext,x ;s12x cyan - gstx ext,y ;s12x cyan - gstx ind,pc ;s12x cyan - gstx ind,sp ;s12x cyan - gstx ind,x ;s12x cyan - gstx ind,y ;s12x cyan - gstx small,pc ;s12x cyan - gstx small,sp ;s12x cyan - gstx small,x ;s12x cyan - gstx small,y ;s12x cyan - gsty 1,+sp ;s12x cyan - gsty 1,+x ;s12x cyan - gsty 1,+y ;s12x cyan - gsty 8,+sp ;s12x cyan - gsty 8,+x ;s12x cyan - gsty 8,+y ;s12x cyan - gsty ,pc ;s12x cyan - gsty ,sp ;s12x cyan - gsty ,x ;s12x cyan - gsty ,y ;s12x cyan - gsty 1,-sp ;s12x cyan - gsty 1,-x ;s12x cyan - gsty 1,-y ;s12x cyan - gsty 8,-sp ;s12x cyan - gsty 8,-x ;s12x cyan - gsty 8,-y ;s12x cyan - gsty -1,sp ;s12x cyan - gsty -1,x ;s12x cyan - gsty -1,y ;s12x cyan - gsty -16,sp ;s12x cyan - gsty -16,x ;s12x cyan - gsty -16,y ;s12x cyan - gsty -17,sp ;s12x cyan - gsty -17,x ;s12x cyan - gsty -17,y ;s12x cyan - gsty -small,pc ;s12x cyan - gsty -small,sp ;s12x cyan - gsty -small,x ;s12x cyan - gsty -small,y ;s12x cyan - gsty 0,pc ;s12x cyan - gsty 0,sp ;s12x cyan - gsty 0,x ;s12x cyan - gsty 0,y ;s12x cyan - gsty 1,sp+ ;s12x cyan - gsty 1,x+ ;s12x cyan - gsty 1,y+ ;s12x cyan - gsty 1,sp ;s12x cyan - gsty 1,x ;s12x cyan - gsty 1,y ;s12x cyan - gsty 1,sp- ;s12x cyan - gsty 1,x- ;s12x cyan - gsty 1,y- ;s12x cyan - gsty 125,pc ;s12x cyan - gsty 125,sp ;s12x cyan - gsty 125,x ;s12x cyan - gsty 125,y ;s12x cyan - gsty 15,sp ;s12x cyan - gsty 15,x ;s12x cyan - gsty 15,y ;s12x cyan - gsty 16,sp ;s12x cyan - gsty 16,x ;s12x cyan - gsty 16,y ;s12x cyan - gsty 8,sp+ ;s12x cyan - gsty 8,x+ ;s12x cyan - gsty 8,y+ ;s12x cyan - gsty 8,sp- ;s12x cyan - gsty 8,x- ;s12x cyan - gsty 8,y- ;s12x cyan - gsty a,sp ;s12x cyan - gsty a,x ;s12x cyan - gsty a,y ;s12x cyan - gsty b,sp ;s12x cyan - gsty b,x ;s12x cyan - gsty b,y ;s12x cyan - gsty d,sp ;s12x cyan - gsty d,x ;s12x cyan - gsty d,y ;s12x cyan - gsty dir ;s12x cyan - gsty dir ;s12x cyan - gsty ext ;s12x cyan - gsty ext ;s12x cyan - gsty ext,sp ;s12x cyan - gsty ext,x ;s12x cyan - gsty ext,y ;s12x cyan - gsty ind,pc ;s12x cyan - gsty ind,sp ;s12x cyan - gsty ind,x ;s12x cyan - gsty ind,y ;s12x cyan - gsty small,pc ;s12x cyan - gsty small,sp ;s12x cyan - gsty small,x ;s12x cyan - gsty small,y ;s12x cyan - - suba #immed - suba 1,+sp - suba 1,+x - suba 1,+y - suba 8,+sp - suba 8,+x - suba 8,+y - suba ,pc - suba ,sp - suba ,x - suba ,y - suba 1,-sp - suba 1,-x - suba 1,-y - suba 8,-sp - suba 8,-x - suba 8,-y - suba -1,sp - suba -1,x - suba -1,y - suba -16,sp - suba -16,x - suba -16,y - suba -17,sp - suba -17,x - suba -17,y - suba -small,pc - suba -small,sp - suba -small,x - suba -small,y - suba 0,pc - suba 0,sp - suba 0,x - suba 0,y - suba 1,sp+ - suba 1,x+ - suba 1,y+ - suba 1,sp - suba 1,x - suba 1,y - suba 1,sp- - suba 1,x- - suba 1,y- - suba 125,pc - suba 125,sp - suba 125,x - suba 125,y - suba 15,sp - suba 15,x - suba 15,y - suba 16,sp - suba 16,x - suba 16,y - suba 8,sp+ - suba 8,x+ - suba 8,y+ - suba 8,sp- - suba 8,x- - suba 8,y- - suba a,sp - suba a,x - suba a,y - suba b,sp - suba b,x - suba b,y - suba d,sp - suba d,x - suba d,y - suba dir - suba ext - suba ext,sp - suba ext,x - suba ext,y - suba ind,pc - suba ind,sp - suba ind,x - suba ind,y - suba small,pc - suba small,sp - suba small,x - suba small,y - - subx #immed ;s12x yellow - subx 1,+sp ;s12x yellow - subx 1,+x ;s12x yellow - subx 1,+y ;s12x yellow - subx 8,+sp ;s12x yellow - subx 8,+x ;s12x yellow - subx 8,+y ;s12x yellow - subx ,pc ;s12x yellow - subx ,sp ;s12x yellow - subx ,x ;s12x yellow - subx ,y ;s12x yellow - subx 1,-sp ;s12x yellow - subx 1,-x ;s12x yellow - subx 1,-y ;s12x yellow - subx 8,-sp ;s12x yellow - subx 8,-x ;s12x yellow - subx 8,-y ;s12x yellow - subx -1,sp ;s12x yellow - subx -1,x ;s12x yellow - subx -1,y ;s12x yellow - subx -16,sp ;s12x yellow - subx -16,x ;s12x yellow - subx -16,y ;s12x yellow - subx -17,sp ;s12x yellow - subx -17,x ;s12x yellow - subx -17,y ;s12x yellow - subx -small,pc ;s12x yellow - subx -small,sp ;s12x yellow - subx -small,x ;s12x yellow - subx -small,y ;s12x yellow - subx 0,pc ;s12x yellow - subx 0,sp ;s12x yellow - subx 0,x ;s12x yellow - subx 0,y ;s12x yellow - subx 1,sp+ ;s12x yellow - subx 1,x+ ;s12x yellow - subx 1,y+ ;s12x yellow - subx 1,sp ;s12x yellow - subx 1,x ;s12x yellow - subx 1,y ;s12x yellow - subx 1,sp- ;s12x yellow - subx 1,x- ;s12x yellow - subx 1,y- ;s12x yellow - subx 125,pc ;s12x yellow - subx 125,sp ;s12x yellow - subx 125,x ;s12x yellow - subx 125,y ;s12x yellow - subx 15,sp ;s12x yellow - subx 15,x ;s12x yellow - subx 15,y ;s12x yellow - subx 16,sp ;s12x yellow - subx 16,x ;s12x yellow - subx 16,y ;s12x yellow - subx 8,sp+ ;s12x yellow - subx 8,x+ ;s12x yellow - subx 8,y+ ;s12x yellow - subx 8,sp- ;s12x yellow - subx 8,x- ;s12x yellow - subx 8,y- ;s12x yellow - subx a,sp ;s12x yellow - subx a,x ;s12x yellow - subx a,y ;s12x yellow - subx b,sp ;s12x yellow - subx b,x ;s12x yellow - subx b,y ;s12x yellow - subx d,sp ;s12x yellow - subx d,x ;s12x yellow - subx d,y ;s12x yellow - subx dir ;s12x yellow - subx ext ;s12x yellow - subx ext,sp ;s12x yellow - subx ext,x ;s12x yellow - subx ext,y ;s12x yellow - subx ind,pc ;s12x yellow - subx ind,sp ;s12x yellow - subx ind,x ;s12x yellow - subx ind,y ;s12x yellow - subx small,pc ;s12x yellow - subx small,sp ;s12x yellow - subx small,x ;s12x yellow - subx small,y ;s12x yellow - - subb #immed - subb 1,+sp - subb 1,+x - subb 1,+y - subb 8,+sp - subb 8,+x - subb 8,+y - subb ,pc - subb ,sp - subb ,x - subb ,y - subb 1,-sp - subb 1,-x - subb 1,-y - subb 8,-sp - subb 8,-x - subb 8,-y - subb -1,sp - subb -1,x - subb -1,y - subb -16,sp - subb -16,x - subb -16,y - subb -17,sp - subb -17,x - subb -17,y - subb -small,pc - subb -small,sp - subb -small,x - subb -small,y - subb 0,pc - subb 0,sp - subb 0,x - subb 0,y - subb 1,sp+ - subb 1,x+ - subb 1,y+ - subb 1,sp - subb 1,x - subb 1,y - subb 1,sp- - subb 1,x- - subb 1,y- - subb 125,pc - subb 125,sp - subb 125,x - subb 125,y - subb 15,sp - subb 15,x - subb 15,y - subb 16,sp - subb 16,x - subb 16,y - subb 8,sp+ - subb 8,x+ - subb 8,y+ - subb 8,sp- - subb 8,x- - subb 8,y- - subb a,sp - subb a,x - subb a,y - subb b,sp - subb b,x - subb b,y - subb d,sp - subb d,x - subb d,y - subb dir - subb dir - subb ext - subb ext - subb ext,sp - subb ext,x - subb ext,y - subb ind,pc - subb ind,sp - subb ind,x - subb ind,y - subb small,pc - subb small,sp - subb small,x - subb small,y - - suby #immed ;s12x yellow - suby 1,+sp ;s12x yellow - suby 1,+x ;s12x yellow - suby 1,+y ;s12x yellow - suby 8,+sp ;s12x yellow - suby 8,+x ;s12x yellow - suby 8,+y ;s12x yellow - suby ,pc ;s12x yellow - suby ,sp ;s12x yellow - suby ,x ;s12x yellow - suby ,y ;s12x yellow - suby 1,-sp ;s12x yellow - suby 1,-x ;s12x yellow - suby 1,-y ;s12x yellow - suby 8,-sp ;s12x yellow - suby 8,-x ;s12x yellow - suby 8,-y ;s12x yellow - suby -1,sp ;s12x yellow - suby -1,x ;s12x yellow - suby -1,y ;s12x yellow - suby -16,sp ;s12x yellow - suby -16,x ;s12x yellow - suby -16,y ;s12x yellow - suby -17,sp ;s12x yellow - suby -17,x ;s12x yellow - suby -17,y ;s12x yellow - suby -small,pc ;s12x yellow - suby -small,sp ;s12x yellow - suby -small,x ;s12x yellow - suby -small,y ;s12x yellow - suby 0,pc ;s12x yellow - suby 0,sp ;s12x yellow - suby 0,x ;s12x yellow - suby 0,y ;s12x yellow - suby 1,sp+ ;s12x yellow - suby 1,x+ ;s12x yellow - suby 1,y+ ;s12x yellow - suby 1,sp ;s12x yellow - suby 1,x ;s12x yellow - suby 1,y ;s12x yellow - suby 1,sp- ;s12x yellow - suby 1,x- ;s12x yellow - suby 1,y- ;s12x yellow - suby 125,pc ;s12x yellow - suby 125,sp ;s12x yellow - suby 125,x ;s12x yellow - suby 125,y ;s12x yellow - suby 15,sp ;s12x yellow - suby 15,x ;s12x yellow - suby 15,y ;s12x yellow - suby 16,sp ;s12x yellow - suby 16,x ;s12x yellow - suby 16,y ;s12x yellow - suby 8,sp+ ;s12x yellow - suby 8,x+ ;s12x yellow - suby 8,y+ ;s12x yellow - suby 8,sp- ;s12x yellow - suby 8,x- ;s12x yellow - suby 8,y- ;s12x yellow - suby a,sp ;s12x yellow - suby a,x ;s12x yellow - suby a,y ;s12x yellow - suby b,sp ;s12x yellow - suby b,x ;s12x yellow - suby b,y ;s12x yellow - suby d,sp ;s12x yellow - suby d,x ;s12x yellow - suby d,y ;s12x yellow - suby dir ;s12x yellow - suby dir ;s12x yellow - suby ext ;s12x yellow - suby ext ;s12x yellow - suby ext,sp ;s12x yellow - suby ext,x ;s12x yellow - suby ext,y ;s12x yellow - suby ind,pc ;s12x yellow - suby ind,sp ;s12x yellow - suby ind,x ;s12x yellow - suby ind,y ;s12x yellow - suby small,pc ;s12x yellow - suby small,sp ;s12x yellow - suby small,x ;s12x yellow - suby small,y ;s12x yellow - - subd #immed - subd 1,+sp - subd 1,+x - subd 1,+y - subd 8,+sp - subd 8,+x - subd 8,+y - subd ,pc - subd ,sp - subd ,x - subd ,y - subd 1,-sp - subd 1,-x - subd 1,-y - subd 8,-sp - subd 8,-x - subd 8,-y - subd -1,sp - subd -1,x - subd -1,y - subd -16,sp - subd -16,x - subd -16,y - subd -17,sp - subd -17,x - subd -17,y - subd -small,pc - subd -small,sp - subd -small,x - subd -small,y - subd 0,pc - subd 0,sp - subd 0,x - subd 0,y - subd 1,sp+ - subd 1,x+ - subd 1,y+ - subd 1,sp - subd 1,x - subd 1,y - subd 1,sp- - subd 1,x- - subd 1,y- - subd 125,pc - subd 125,sp - subd 125,x - subd 125,y - subd 15,sp - subd 15,x - subd 15,y - subd 16,sp - subd 16,x - subd 16,y - subd 8,sp+ - subd 8,x+ - subd 8,y+ - subd 8,sp- - subd 8,x- - subd 8,y- - subd a,sp - subd a,x - subd a,y - subd b,sp - subd b,x - subd b,y - subd d,sp - subd d,x - subd d,y - subd dir - subd dir - subd ext - subd ext - subd ext,sp - subd ext,x - subd ext,y - subd ind,pc - subd ind,sp - subd ind,x - subd ind,y - subd small,pc - subd small,sp - subd small,x - subd small,y - - sbed #immed ;s12x red - sbed #immed ;s12x red - sbed 1,+sp ;s12x red - sbed 1,+x ;s12x red - sbed 1,+y ;s12x red - sbed 8,+sp ;s12x red - sbed 8,+x ;s12x red - sbed 8,+y ;s12x red - sbed ,pc ;s12x red - sbed ,sp ;s12x red - sbed ,x ;s12x red - sbed ,y ;s12x red - sbed 1,-sp ;s12x red - sbed 1,-x ;s12x red - sbed 1,-y ;s12x red - sbed 8,-sp ;s12x red - sbed 8,-x ;s12x red - sbed 8,-y ;s12x red - sbed -1,sp ;s12x red - sbed -1,x ;s12x red - sbed -1,y ;s12x red - sbed -16,sp ;s12x red - sbed -16,x ;s12x red - sbed -16,y ;s12x red - sbed -17,sp ;s12x red - sbed -17,x ;s12x red - sbed -17,y ;s12x red - sbed -small,pc ;s12x red - sbed -small,sp ;s12x red - sbed -small,x ;s12x red - sbed -small,y ;s12x red - sbed 0,pc ;s12x red - sbed 0,sp ;s12x red - sbed 0,x ;s12x red - sbed 0,y ;s12x red - sbed 1,sp+ ;s12x red - sbed 1,x+ ;s12x red - sbed 1,y+ ;s12x red - sbed 1,sp ;s12x red - sbed 1,x ;s12x red - sbed 1,y ;s12x red - sbed 1,sp- ;s12x red - sbed 1,x- ;s12x red - sbed 1,y- ;s12x red - sbed 125,pc ;s12x red - sbed 125,sp ;s12x red - sbed 125,x ;s12x red - sbed 125,y ;s12x red - sbed 15,sp ;s12x red - sbed 15,x ;s12x red - sbed 15,y ;s12x red - sbed 16,sp ;s12x red - sbed 16,x ;s12x red - sbed 16,y ;s12x red - sbed 8,sp+ ;s12x red - sbed 8,x+ ;s12x red - sbed 8,y+ ;s12x red - sbed 8,sp- ;s12x red - sbed 8,x- ;s12x red - sbed 8,y- ;s12x red - sbed a,sp ;s12x red - sbed a,x ;s12x red - sbed a,y ;s12x red - sbed b,sp ;s12x red - sbed b,x ;s12x red - sbed b,y ;s12x red - sbed d,sp ;s12x red - sbed d,x ;s12x red - sbed d,y ;s12x red - sbed dir ;s12x red - sbed dir ;s12x red - sbed ext ;s12x red - sbed ext ;s12x red - sbed ext,sp ;s12x red - sbed ext,x ;s12x red - sbed ext,y ;s12x red - sbed ind,pc ;s12x red - sbed ind,sp ;s12x red - sbed ind,x ;s12x red - sbed ind,y ;s12x red - sbed small,pc ;s12x red - sbed small,sp ;s12x red - sbed small,x ;s12x red - sbed small,y ;s12x red - - swi - - tab - tap - tba - tbl b,x - tfr a a - tfr a,a - tfr a b - tfr a,b - tfr a ccr - tfr a ccrl ;s12x tfr alternative - tfr a ccrh ;s12x tfr new - tfr a d - tfr a sp - tfr a x - tfr a,x - tfr a y - tfr a,y - tfr b a - tfr b b - tfr b ccr - tfr b ccrl ;s12x tfr alternative - ;tfr b ccrh ;s12x tfr new - tfr b d - tfr b sp - tfr b x - tfr b y - tfr ccr a - tfr ccrl a ;s12x tfr alternative - tfr ccrh a ;s12x tfr new - tfr ccr b - tfr ccrl b ;s12x alternative - ;tfr ccrh b ;s12x new - tfr ccr ccr - tfr ccrl ccrl ;s12x tfr alternative - tfr ccrw ccrw ;s12x tfr new - tfr ccr d - tfr ccrl d ;s12x tfr alternative - tfr ccrw d ;s12x tfr new - tfr ccr sp - tfr ccrl sp ;s12x tfr alternative - tfr ccrw sp ;s12x tfr new - tfr ccr x - tfr ccrl x ;s12x tfr alternative - tfr ccrw x ;s12x tfr new - tfr ccr y - tfr ccrl y ;s12x tfr alternative - tfr ccrw y ;s12x tfr new - tfr d a - tfr d b - ;tfr d ccr ;?????? ?JW? - ;tfr d ccrw ;s12x tfr new ?JW? - tfr d d - tfr d sp - tfr d x - tfr d y - tfr sp a - tfr sp b - tfr sp ccr - tfr sp ccrl ;s12x tfr alternative - tfr sp ccrw ;s12x tfr new - tfr sp d - tfr sp sp - tfr sp x - tfr sp y - tfr x a - tfr x b - tfr x ccr - tfr x ccrl ;s12x tfr alternative - tfr x ccrw ;s12x tfr new - tfr x d - tfr x sp - tfr x x - tfr x y - tfr y a - tfr y b - tfr y ccr - tfr y ccrl ;s12x tfr alternative - tfr y ccrw ;s12x tfr new - tfr y d - tfr y sp - tfr y x - tfr y y - tpa - tst 1,+sp - tst 1,+x - tst 1,+y - tst 8,+sp - tst 8,+x - tst 8,+y - tst ,pc - tst ,sp - tst ,x - tst ,y - tst 1,-sp - tst 1,-x - tst 1,-y - tst 8,-sp - tst 8,-x - tst 8,-y - tst -1,sp - tst -1,x - tst -1,y - tst -16,sp - tst -16,x - tst -16,y - tst -17,sp - tst -17,x - tst -17,y - tst -small,pc - tst -small,sp - tst -small,x - tst -small,y - tst 0,pc - tst 0,sp - tst 0,x - tst 0,y - tst 1,sp+ - tst 1,x+ - tst 1,y+ - tst 1,sp - tst 1,x - tst 1,y - tst 1,sp- - tst 1,x- - tst 1,y- - tst 125,pc - tst 125,sp - tst 125,x - tst 125,y - tst 15,sp - tst 15,x - tst 15,y - tst 16,sp - tst 16,x - tst 16,y - tst 8,sp+ - tst 8,x+ - tst 8,y+ - tst 8,sp- - tst 8,x- - tst 8,y- - tst a,sp - tst a,x - tst a,y - tst b,sp - tst b,x - tst b,y - tst d,sp - tst d,x - tst d,y - tst dir - tst ext - tst ext - tst ext,sp - tst ext,x - tst ext,y - tst ind,pc - tst ind,sp - tst ind,x - tst ind,y - tst small,pc - tst small,sp - tst small,x - tst small,y - - tstw 1,+sp ;s12x green - tstw 1,+x ;s12x green - tstw 1,+y ;s12x green - tstw 8,+sp ;s12x green - tstw 8,+x ;s12x green - tstw 8,+y ;s12x green - tstw ,pc ;s12x green - tstw ,sp ;s12x green - tstw ,x ;s12x green - tstw ,y ;s12x green - tstw 1,-sp ;s12x green - tstw 1,-x ;s12x green - tstw 1,-y ;s12x green - tstw 8,-sp ;s12x green - tstw 8,-x ;s12x green - tstw 8,-y ;s12x green - tstw -1,sp ;s12x green - tstw -1,x ;s12x green - tstw -1,y ;s12x green - tstw -16,sp ;s12x green - tstw -16,x ;s12x green - tstw -16,y ;s12x green - tstw -17,sp ;s12x green - tstw -17,x ;s12x green - tstw -17,y ;s12x green - tstw -small,pc ;s12x green - tstw -small,sp ;s12x green - tstw -small,x ;s12x green - tstw -small,y ;s12x green - tstw 0,pc ;s12x green - tstw 0,sp ;s12x green - tstw 0,x ;s12x green - tstw 0,y ;s12x green - tstw 1,sp+ ;s12x green - tstw 1,x+ ;s12x green - tstw 1,y+ ;s12x green - tstw 1,sp ;s12x green - tstw 1,x ;s12x green - tstw 1,y ;s12x green - tstw 1,sp- ;s12x green - tstw 1,x- ;s12x green - tstw 1,y- ;s12x green - tstw 125,pc ;s12x green - tstw 125,sp ;s12x green - tstw 125,x ;s12x green - tstw 125,y ;s12x green - tstw 15,sp ;s12x green - tstw 15,x ;s12x green - tstw 15,y ;s12x green - tstw 16,sp ;s12x green - tstw 16,x ;s12x green - tstw 16,y ;s12x green - tstw 8,sp+ ;s12x green - tstw 8,x+ ;s12x green - tstw 8,y+ ;s12x green - tstw 8,sp- ;s12x green - tstw 8,x- ;s12x green - tstw 8,y- ;s12x green - tstw a,sp ;s12x green - tstw a,x ;s12x green - tstw a,y ;s12x green - tstw b,sp ;s12x green - tstw b,x ;s12x green - tstw b,y ;s12x green - tstw d,sp ;s12x green - tstw d,x ;s12x green - tstw d,y ;s12x green - tstw dir ;s12x green - tstw ext ;s12x green - tstw ext ;s12x green - tstw ext,sp ;s12x green - tstw ext,x ;s12x green - tstw ext,y ;s12x green - tstw ind,pc ;s12x green - tstw ind,sp ;s12x green - tstw ind,x ;s12x green - tstw ind,y ;s12x green - tstw small,pc ;s12x green - tstw small,sp ;s12x green - tstw small,x ;s12x green - tstw small,y ;s12x green - - tsta - tstb - tstx ;s12x yellow - tsty ;s12x yellow - tsx - tsy - txs - tys - wai - wav - xgdx - xgdy - call 1,+sp $55 - call 1,+x $55 - call 1,+y $55 - call 8,+sp $55 - call 8,+x $55 - call 8,+y $55 - call ,pc $55 - call ,sp $55 - call ,x $55 - call ,y $55 - call 1,-sp $55 - call 1,-x $55 - call 1,-y $55 - call 8,-sp $55 - call 8,-x $55 - call 8,-y $55 - call -1,sp $55 - call -1,x $55 - call -1,y $55 - call -16,sp $55 - call -16,x $55 - call -16,y $55 - call -17,sp $55 - call -17,x $55 - call -17,y $55 - call -small,pc $55 - call -small,sp $55 - call -small,x $55 - call -small,y $55 - call 0,pc $55 - call 0,sp $55 - call 0,x $55 - call 0,y $55 - call 1,sp+ $55 - call 1,x+ $55 - call 1,y+ $55 - call 1,sp $55 - call 1,x $55 - call 1,y $55 - call 1,sp- $55 - call 1,x- $55 - call 1,y- $55 - call 125,pc $55 - call 125,sp $55 - call 125,x $55 - call 125,y $55 - call 15,sp $55 - call 15,x $55 - call 15,y $55 - call 16,sp $55 - call 16,x $55 - call 16,y $55 - call 8,sp+ $55 - call 8,x+ $55 - call 8,y+ $55 - call 8,sp- $55 - call 8,x- $55 - call 8,y- $55 - call a,sp $55 - call a,x $55 - call a,y $55 - call b,sp $55 - call b,x $55 - call b,y $55 - call d,sp $55 - call d,x $55 - call d,y $55 - call dir $55 - call ext $55 - call ext,sp $55 - call ext,x $55 - call ext,y $55 - call ind,pc $55 - call ind,sp $55 - call ind,x $55 - call ind,y $55 - call small,pc $55 - call small,sp $55 - call small,x $55 - call small,y $55 - pshc - - pshcw ;s12x dark blue - - rtc - movb #immed 3,+x - movb #immed 5,-y - movb #immed 5,sp - movb #immed ext - movb 1,+sp 3,+x - movb 1,+sp 5,-y - movb 1,+sp 5,sp - movb 1,+sp ext - movb 1,+x 3,+x - movb 1,+x 5,-y - movb 1,+x 5,sp - movb 1,+x ext - movb 1,+y 3,+x - movb 1,+y 5,-y - movb 1,+y 5,sp - movb 1,+y ext - movb 3,+x 1,+sp - movb 3,+x 1,+x - movb 3,+x 1,+y - movb 3,+x 8,+sp - movb 3,+x 8,+x - movb 3,+x 8,+y - movb 3,+x ,pc - movb 3,+x ,sp - movb 3,+x ,x - movb 3,+x ,y - movb 3,+x 1,-sp - movb 3,+x 1,-x - movb 3,+x 1,-y - movb 3,+x 8,-sp - movb 3,+x 8,-x - movb 3,+x 8,-y - movb 3,+x -1,sp - movb 3,+x -1,x - movb 3,+x -1,y - movb 3,+x -16,sp - movb 3,+x -16,x - movb 3,+x -16,y - movb 3,+x -small,pc - movb 3,+x -small,sp - movb 3,+x -small,x - movb 3,+x -small,y - movb 3,+x 0,pc - movb 3,+x 0,sp - movb 3,+x 0,x - movb 3,+x 0,y - movb 3,+x 1,sp+ - movb 3,+x 1,x+ - movb 3,+x 1,y+ - movb 3,+x 1,sp - movb 3,+x 1,x - movb 3,+x 1,y - movb 3,+x 1,sp- - movb 3,+x 1,x- - movb 3,+x 1,y- - movb 3,+x 15,sp - movb 3,+x 15,x - movb 3,+x 15,y - movb 3,+x 8,sp+ - movb 3,+x 8,x+ - movb 3,+x 8,y+ - movb 3,+x 8,sp- - movb 3,+x 8,x- - movb 3,+x 8,y- - movb 3,+x a,sp - movb 3,+x a,x - movb 3,+x a,y - movb 3,+x b,sp - movb 3,+x b,x - movb 3,+x b,y - movb 3,+x d,sp - movb 3,+x d,x - movb 3,+x d,y - movb 3,+x ext - movb 3,+x small,pc - movb 3,+x small,sp - movb 3,+x small,x - movb 3,+x small,y - movb 8,+sp 3,+x - movb 8,+sp 5,-y - movb 8,+sp 5,sp - movb 8,+sp ext - movb 8,+x 3,+x - movb 8,+x 5,-y - movb 8,+x 5,sp - movb 8,+x ext - movb 8,+y 3,+x - movb 8,+y 5,-y - movb 8,+y 5,sp - movb 8,+y ext - movb ,pc 3,+x - movb ,pc 5,-y - movb ,pc 5,sp - movb ,pc ext - movb ,sp 3,+x - movb ,sp 5,-y - movb ,sp 5,sp - movb ,sp ext - movb ,x 3,+x - movb ,x 5,-y - movb ,x 5,sp - movb ,x ext - movb ,y 3,+x - movb ,y 5,-y - movb ,y 5,sp - movb ,y ext - movb 1,-sp 3,+x - movb 1,-sp 5,-y - movb 1,-sp 5,sp - movb 1,-sp ext - movb 1,-x 3,+x - movb 1,-x 5,-y - movb 1,-x 5,sp - movb 1,-x ext - movb 1,-y 3,+x - movb 1,-y 5,-y - movb 1,-y 5,sp - movb 1,-y ext - movb 8,-sp 3,+x - movb 8,-sp 5,-y - movb 8,-sp 5,sp - movb 8,-sp ext - movb 8,-x 3,+x - movb 8,-x 5,-y - movb 8,-x 5,sp - movb 8,-x ext - movb 8,-y 3,+x - movb 8,-y 5,-y - movb 8,-y 5,sp - movb 8,-y ext - movb -1,sp 3,+x - movb -1,sp 5,-y - movb -1,sp 5,sp - movb -1,sp ext - movb -1,x 3,+x - movb -1,x 5,-y - movb -1,x 5,sp - movb -1,x ext - movb -1,y 3,+x - movb -1,y 5,-y - movb -1,y 5,sp - movb -1,y ext - movb -16,sp 3,+x - movb -16,sp 5,-y - movb -16,sp 5,sp - movb -16,sp ext - movb -16,x 3,+x - movb -16,x 5,-y - movb -16,x 5,sp - movb -16,x ext - movb -16,y 3,+x - movb -16,y 5,-y - movb -16,y 5,sp - movb -16,y ext - movb -small,pc 3,+x - movb -small,pc 5,-y - movb -small,pc 5,sp - movb -small,pc ext - movb -small,sp 3,+x - movb -small,sp 5,-y - movb -small,sp 5,sp - movb -small,sp ext - movb -small,x 3,+x - movb -small,x 5,-y - movb -small,x 5,sp - movb -small,x ext - movb -small,y 3,+x - movb -small,y 5,-y - movb -small,y 5,sp - movb -small,y ext - movb 0,pc 3,+x - movb 0,pc 5,-y - movb 0,pc 5,sp - movb 0,pc ext - movb 0,sp 3,+x - movb 0,sp 5,-y - movb 0,sp 5,sp - movb 0,sp ext - movb 0,x 3,+x - movb 0,x 5,-y - movb 0,x 5,sp - movb 0,x ext - movb 0,y 3,+x - movb 0,y 5,-y - movb 0,y 5,sp - movb 0,y ext - movb 1,sp+ 3,+x - movb 1,sp+ 5,-y - movb 1,sp+ 5,sp - movb 1,sp+ ext - movb 1,x+ 3,+x - movb 1,x+ 5,-y - movb 1,x+ 5,sp - movb 1,x+ ext - movb 1,y+ 3,+x - movb 1,y+ 5,-y - movb 1,y+ 5,sp - movb 1,y+ ext - movb 1,sp 3,+x - movb 1,sp 5,-y - movb 1,sp 5,sp - movb 1,sp ext - movb 1,x 3,+x - movb 1,x 5,-y - movb 1,x 5,sp - movb 1,x ext - movb 1,y 3,+x - movb 1,y 5,-y - movb 1,y 5,sp - movb 1,y ext - movb 1,sp- 3,+x - movb 1,sp- 5,-y - movb 1,sp- 5,sp - movb 1,sp- ext - movb 1,x- 3,+x - movb 1,x- 5,-y - movb 1,x- 5,sp - movb 1,x- ext - movb 1,y- 3,+x - movb 1,y- 5,-y - movb 1,y- 5,sp - movb 1,y- ext - movb 5,-y 1,+sp - movb 5,-y 1,+x - movb 5,-y 1,+y - movb 5,-y 8,+sp - movb 5,-y 8,+x - movb 5,-y 8,+y - movb 5,-y ,pc - movb 5,-y ,sp - movb 5,-y ,x - movb 5,-y ,y - movb 5,-y 1,-sp - movb 5,-y 1,-x - movb 5,-y 1,-y - movb 5,-y 8,-sp - movb 5,-y 8,-x - movb 5,-y 8,-y - movb 5,-y -1,sp - movb 5,-y -1,x - movb 5,-y -1,y - movb 5,-y -16,sp - movb 5,-y -16,x - movb 5,-y -16,y - movb 5,-y -small,pc - movb 5,-y -small,sp - movb 5,-y -small,x - movb 5,-y -small,y - movb 5,-y 0,pc - movb 5,-y 0,sp - movb 5,-y 0,x - movb 5,-y 0,y - movb 5,-y 1,sp+ - movb 5,-y 1,x+ - movb 5,-y 1,y+ - movb 5,-y 1,sp - movb 5,-y 1,x - movb 5,-y 1,y - movb 5,-y 1,sp- - movb 5,-y 1,x- - movb 5,-y 1,y- - movb 5,-y 15,sp - movb 5,-y 15,x - movb 5,-y 15,y - movb 5,-y 8,sp+ - movb 5,-y 8,x+ - movb 5,-y 8,y+ - movb 5,-y 8,sp- - movb 5,-y 8,x- - movb 5,-y 8,y- - movb 5,-y a,sp - movb 5,-y a,x - movb 5,-y a,y - movb 5,-y b,sp - movb 5,-y b,x - movb 5,-y b,y - movb 5,-y d,sp - movb 5,-y d,x - movb 5,-y d,y - movb 5,-y ext - movb 5,-y small,pc - movb 5,-y small,sp - movb 5,-y small,x - movb 5,-y small,y - movb 15,sp 3,+x - movb 15,sp 5,-y - movb 15,sp 5,sp - movb 15,sp ext - movb 15,x 3,+x - movb 15,x 5,-y - movb 15,x 5,sp - movb 15,x ext - movb 15,y 3,+x - movb 15,y 5,-y - movb 15,y 5,sp - movb 15,y ext - movb 5,sp 1,+sp - movb 5,sp 1,+x - movb 5,sp 1,+y - movb 5,sp 8,+sp - movb 5,sp 8,+x - movb 5,sp 8,+y - movb 5,sp ,pc - movb 5,sp ,sp - movb 5,sp ,x - movb 5,sp ,y - movb 5,sp 1,-sp - movb 5,sp 1,-x - movb 5,sp 1,-y - movb 5,sp 8,-sp - movb 5,sp 8,-x - movb 5,sp 8,-y - movb 5,sp -1,sp - movb 5,sp -1,x - movb 5,sp -1,y - movb 5,sp -16,sp - movb 5,sp -16,x - movb 5,sp -16,y - movb 5,sp -small,pc - movb 5,sp -small,sp - movb 5,sp -small,x - movb 5,sp -small,y - movb 5,sp 0,pc - movb 5,sp 0,sp - movb 5,sp 0,x - movb 5,sp 0,y - movb 5,sp 1,sp+ - movb 5,sp 1,x+ - movb 5,sp 1,y+ - movb 5,sp 1,sp - movb 5,sp 1,x - movb 5,sp 1,y - movb 5,sp 1,sp- - movb 5,sp 1,x- - movb 5,sp 1,y- - movb 5,sp 8,sp+ - movb 5,sp 8,x+ - movb 5,sp 8,y+ - movb 5,sp 8,sp- - movb 5,sp 8,x- - movb 5,sp 8,y- - movb 5,sp a,sp - movb 5,sp a,x - movb 5,sp a,y - movb 5,sp b,sp - movb 5,sp b,x - movb 5,sp b,y - movb 5,sp d,sp - movb 5,sp d,x - movb 5,sp d,y - movb 5,sp ext - movb 5,sp small,pc - movb 5,sp small,sp - movb 5,sp small,x - movb 5,sp small,y - movb 8,sp+ 3,+x - movb 8,sp+ 5,-y - movb 8,sp+ 5,sp - movb 8,sp+ ext - movb 8,x+ 3,+x - movb 8,x+ 5,-y - movb 8,x+ 5,sp - movb 8,x+ ext - movb 8,y+ 3,+x - movb 8,y+ 5,-y - movb 8,y+ 5,sp - movb 8,y+ ext - movb 8,sp- 3,+x - movb 8,sp- 5,-y - movb 8,sp- 5,sp - movb 8,sp- ext - movb 8,x- 3,+x - movb 8,x- 5,-y - movb 8,x- 5,sp - movb 8,x- ext - movb 8,y- 3,+x - movb 8,y- 5,-y - movb 8,y- 5,sp - movb 8,y- ext - movb a,sp 3,+x - movb a,sp 5,-y - movb a,sp 5,sp - movb a,sp ext - movb a,x 3,+x - movb a,x 5,-y - movb a,x 5,sp - movb a,x ext - movb a,y 3,+x - movb a,y 5,-y - movb a,y 5,sp - movb a,y ext - movb b,sp 3,+x - movb b,sp 5,-y - movb b,sp 5,sp - movb b,sp ext - movb b,x 3,+x - movb b,x 5,-y - movb b,x 5,sp - movb b,x ext - movb b,y 3,+x - movb b,y 5,-y - movb b,y 5,sp - movb b,y ext - movb d,sp 3,+x - movb d,sp 5,-y - movb d,sp 5,sp - movb d,sp ext - movb d,x 3,+x - movb d,x 5,-y - movb d,x 5,sp - movb d,x ext - movb d,y 3,+x - movb d,y 5,-y - movb d,y 5,sp - movb d,y ext - movb ext 1,+sp - movb ext 1,+x - movb ext 1,+y - movb ext 8,+sp - movb ext 8,+x - movb ext 8,+y - movb ext ,pc - movb ext ,sp - movb ext ,x - movb ext ,y - movb ext 1,-sp - movb ext 1,-x - movb ext 1,-y - movb ext 8,-sp - movb ext 8,-x - movb ext 8,-y - movb ext -1,sp - movb ext -1,x - movb ext -1,y - movb ext -16,sp - movb ext -16,x - movb ext -16,y - movb ext -small,pc - movb ext -small,sp - movb ext -small,x - movb ext -small,y - movb ext 0,pc - movb ext 0,sp - movb ext 0,x - movb ext 0,y - movb ext 1,sp+ - movb ext 1,x+ - movb ext 1,y+ - movb ext 1,sp - movb ext 1,x - movb ext 1,y - movb ext 1,sp- - movb ext 1,x- - movb ext 1,y- - movb ext 8,sp+ - movb ext 8,x+ - movb ext 8,y+ - movb ext 8,sp- - movb ext 8,x- - movb ext 8,y- - movb ext a,sp - movb ext a,x - movb ext a,y - movb ext b,sp - movb ext b,x - movb ext b,y - movb ext d,sp - movb ext d,x - movb ext d,y - movb ext ext - movb ext small,pc - movb ext small,sp - movb ext small,x - movb ext small,y - movb small,pc 3,+x - movb small,pc 5,-y - movb small,pc 5,sp - movb small,pc ext - movb small,sp 3,+x - movb small,sp 5,-y - movb small,sp 5,sp - movb small,sp ext - movb small,x 3,+x - movb small,x 5,-y - movb small,x 5,sp - movb small,x ext - movb small,y 3,+x - movb small,y 5,-y - movb small,y 5,sp - movb small,y ext - movw #immed 3,+x - movw #immed 5,-y - movw #immed 5,sp - movw #immed ext - movw 1,+sp 3,+x - movw 1,+sp 5,-y - movw 1,+sp 5,sp - movw 1,+sp ext - movw 1,+x 3,+x - movw 1,+x 5,-y - movw 1,+x 5,sp - movw 1,+x ext - movw 1,+y 3,+x - movw 1,+y 5,-y - movw 1,+y 5,sp - movw 1,+y ext - movw 3,+x 1,+sp - movw 3,+x 1,+x - movw 3,+x 1,+y - movw 3,+x 8,+sp - movw 3,+x 8,+x - movw 3,+x 8,+y - movw 3,+x ,pc - movw 3,+x ,sp - movw 3,+x ,x - movw 3,+x ,y - movw 3,+x 1,-sp - movw 3,+x 1,-x - movw 3,+x 1,-y - movw 3,+x 8,-sp - movw 3,+x 8,-x - movw 3,+x 8,-y - movw 3,+x -1,sp - movw 3,+x -1,x - movw 3,+x -1,y - movw 3,+x -16,sp - movw 3,+x -16,x - movw 3,+x -16,y - movw 3,+x -small,pc - movw 3,+x -small,sp - movw 3,+x -small,x - movw 3,+x -small,y - movw 3,+x 0,pc - movw 3,+x 0,sp - movw 3,+x 0,x - movw 3,+x 0,y - movw 3,+x 1,sp+ - movw 3,+x 1,x+ - movw 3,+x 1,y+ - movw 3,+x 1,sp - movw 3,+x 1,x - movw 3,+x 1,y - movw 3,+x 1,sp- - movw 3,+x 1,x- - movw 3,+x 1,y- - movw 3,+x 8,sp+ - movw 3,+x 8,x+ - movw 3,+x 8,y+ - movw 3,+x 8,sp- - movw 3,+x 8,x- - movw 3,+x 8,y- - movw 3,+x a,sp - movw 3,+x a,x - movw 3,+x a,y - movw 3,+x b,sp - movw 3,+x b,x - movw 3,+x b,y - movw 3,+x d,sp - movw 3,+x d,x - movw 3,+x d,y - movw 3,+x ext - movw 3,+x small,pc - movw 3,+x small,sp - movw 3,+x small,x - movw 3,+x small,y - movw 8,+sp 3,+x - movw 8,+sp 5,-y - movw 8,+sp 5,sp - movw 8,+sp ext - movw 8,+x 3,+x - movw 8,+x 5,-y - movw 8,+x 5,sp - movw 8,+x ext - movw 8,+y 3,+x - movw 8,+y 5,-y - movw 8,+y 5,sp - movw 8,+y ext - movw ,pc 3,+x - movw ,pc 5,-y - movw ,pc 5,sp - movw ,pc ext - movw ,sp 3,+x - movw ,sp 5,-y - movw ,sp 5,sp - movw ,sp ext - movw ,x 3,+x - movw ,x 5,-y - movw ,x 5,sp - movw ,x ext - movw ,y 3,+x - movw ,y 5,-y - movw ,y 5,sp - movw ,y ext - movw 1,-sp 3,+x - movw 1,-sp 5,-y - movw 1,-sp 5,sp - movw 1,-sp ext - movw 1,-x 3,+x - movw 1,-x 5,-y - movw 1,-x 5,sp - movw 1,-x ext - movw 1,-y 3,+x - movw 1,-y 5,-y - movw 1,-y 5,sp - movw 1,-y ext - movw 8,-sp 3,+x - movw 8,-sp 5,-y - movw 8,-sp 5,sp - movw 8,-sp ext - movw 8,-x 3,+x - movw 8,-x 5,-y - movw 8,-x 5,sp - movw 8,-x ext - movw 8,-y 3,+x - movw 8,-y 5,-y - movw 8,-y 5,sp - movw 8,-y ext - movw -1,sp 3,+x - movw -1,sp 5,-y - movw -1,sp 5,sp - movw -1,sp ext - movw -1,x 3,+x - movw -1,x 5,-y - movw -1,x 5,sp - movw -1,x ext - movw -1,y 3,+x - movw -1,y 5,-y - movw -1,y 5,sp - movw -1,y ext - movw -16,sp 3,+x - movw -16,sp 5,-y - movw -16,sp 5,sp - movw -16,sp ext - movw -16,x 3,+x - movw -16,x 5,-y - movw -16,x 5,sp - movw -16,x ext - movw -16,y 3,+x - movw -16,y 5,-y - movw -16,y 5,sp - movw -16,y ext - movw -small,pc 3,+x - movw -small,pc 5,-y - movw -small,pc 5,sp - movw -small,pc ext - movw -small,sp 3,+x - movw -small,sp 5,-y - movw -small,sp 5,sp - movw -small,sp ext - movw -small,x 3,+x - movw -small,x 5,-y - movw -small,x 5,sp - movw -small,x ext - movw -small,y 3,+x - movw -small,y 5,-y - movw -small,y 5,sp - movw -small,y ext - movw 0,pc 3,+x - movw 0,pc 5,-y - movw 0,pc 5,sp - movw 0,pc ext - movw 0,sp 3,+x - movw 0,sp 5,-y - movw 0,sp 5,sp - movw 0,sp ext - movw 0,x 3,+x - movw 0,x 5,-y - movw 0,x 5,sp - movw 0,x ext - movw 0,y 3,+x - movw 0,y 5,-y - movw 0,y 5,sp - movw 0,y ext - movw 1,sp+ 3,+x - movw 1,sp+ 5,-y - movw 1,sp+ 5,sp - movw 1,sp+ ext - movw 1,x+ 3,+x - movw 1,x+ 5,-y - movw 1,x+ 5,sp - movw 1,x+ ext - movw 1,y+ 3,+x - movw 1,y+ 5,-y - movw 1,y+ 5,sp - movw 1,y+ ext - movw 1,sp 3,+x - movw 1,sp 5,-y - movw 1,sp 5,sp - movw 1,sp ext - movw 1,x 3,+x - movw 1,x 5,-y - movw 1,x 5,sp - movw 1,x ext - movw 1,y 3,+x - movw 1,y 5,-y - movw 1,y 5,sp - movw 1,y ext - movw 1,sp- 3,+x - movw 1,sp- 5,-y - movw 1,sp- 5,sp - movw 1,sp- ext - movw 1,x- 3,+x - movw 1,x- 5,-y - movw 1,x- 5,sp - movw 1,x- ext - movw 1,y- 3,+x - movw 1,y- 5,-y - movw 1,y- 5,sp - movw 1,y- ext - movw 5,-y 1,+sp - movw 5,-y 1,+x - movw 5,-y 1,+y - movw 5,-y 8,+sp - movw 5,-y 8,+x - movw 5,-y 8,+y - movw 5,-y ,pc - movw 5,-y ,sp - movw 5,-y ,x - movw 5,-y ,y - movw 5,-y 1,-sp - movw 5,-y 1,-x - movw 5,-y 1,-y - movw 5,-y 8,-sp - movw 5,-y 8,-x - movw 5,-y 8,-y - movw 5,-y -1,sp - movw 5,-y -1,x - movw 5,-y -1,y - movw 5,-y -16,sp - movw 5,-y -16,x - movw 5,-y -16,y - movw 5,-y -small,pc - movw 5,-y -small,sp - movw 5,-y -small,x - movw 5,-y -small,y - movw 5,-y 0,pc - movw 5,-y 0,sp - movw 5,-y 0,x - movw 5,-y 0,y - movw 5,-y 1,sp+ - movw 5,-y 1,x+ - movw 5,-y 1,y+ - movw 5,-y 1,sp - movw 5,-y 1,x - movw 5,-y 1,y - movw 5,-y 1,sp- - movw 5,-y 1,x- - movw 5,-y 1,y- - movw 5,-y 15,sp - movw 5,-y 15,x - movw 5,-y 15,y - movw 5,-y 8,sp+ - movw 5,-y 8,x+ - movw 5,-y 8,y+ - movw 5,-y 8,sp- - movw 5,-y 8,x- - movw 5,-y 8,y- - movw 5,-y a,sp - movw 5,-y a,x - movw 5,-y a,y - movw 5,-y b,sp - movw 5,-y b,x - movw 5,-y b,y - movw 5,-y d,sp - movw 5,-y d,x - movw 5,-y d,y - movw 5,-y ext - movw 5,-y small,pc - movw 5,-y small,sp - movw 5,-y small,x - movw 5,-y small,y - movw 15,sp 3,+x - movw 15,sp 5,-y - movw 15,sp 5,sp - movw 15,sp ext - movw 15,x 3,+x - movw 15,x 5,-y - movw 15,x 5,sp - movw 15,x ext - movw 15,y 3,+x - movw 15,y 5,-y - movw 15,y 5,sp - movw 15,y ext - movw 5,sp 1,+sp - movw 5,sp 1,+x - movw 5,sp 1,+y - movw 5,sp 8,+sp - movw 5,sp 8,+x - movw 5,sp 8,+y - movw 5,sp ,pc - movw 5,sp ,sp - movw 5,sp ,x - movw 5,sp ,y - movw 5,sp 1,-sp - movw 5,sp 1,-x - movw 5,sp 1,-y - movw 5,sp 8,-sp - movw 5,sp 8,-x - movw 5,sp 8,-y - movw 5,sp -1,sp - movw 5,sp -1,x - movw 5,sp -1,y - movw 5,sp -16,sp - movw 5,sp -16,x - movw 5,sp -16,y - movw 5,sp -small,pc - movw 5,sp -small,sp - movw 5,sp -small,x - movw 5,sp -small,y - movw 5,sp 0,pc - movw 5,sp 0,sp - movw 5,sp 0,x - movw 5,sp 0,y - movw 5,sp 1,sp+ - movw 5,sp 1,x+ - movw 5,sp 1,y+ - movw 5,sp 1,sp - movw 5,sp 1,x - movw 5,sp 1,y - movw 5,sp 1,sp- - movw 5,sp 1,x- - movw 5,sp 1,y- - movw 5,sp 8,sp+ - movw 5,sp 8,x+ - movw 5,sp 8,y+ - movw 5,sp 8,sp- - movw 5,sp 8,x- - movw 5,sp 8,y- - movw 5,sp a,sp - movw 5,sp a,x - movw 5,sp a,y - movw 5,sp b,sp - movw 5,sp b,x - movw 5,sp b,y - movw 5,sp d,sp - movw 5,sp d,x - movw 5,sp d,y - movw 5,sp ext - movw 5,sp small,pc - movw 5,sp small,sp - movw 5,sp small,x - movw 5,sp small,y - movw 8,sp+ 3,+x - movw 8,sp+ 5,-y - movw 8,sp+ 5,sp - movw 8,sp+ ext - movw 8,x+ 3,+x - movw 8,x+ 5,-y - movw 8,x+ 5,sp - movw 8,x+ ext - movw 8,y+ 3,+x - movw 8,y+ 5,-y - movw 8,y+ 5,sp - movw 8,y+ ext - movw 8,sp- 3,+x - movw 8,sp- 5,-y - movw 8,sp- 5,sp - movw 8,sp- ext - movw 8,x- 3,+x - movw 8,x- 5,-y - movw 8,x- 5,sp - movw 8,x- ext - movw 8,y- 3,+x - movw 8,y- 5,-y - movw 8,y- 5,sp - movw 8,y- ext - movw a,sp 3,+x - movw a,sp 5,-y - movw a,sp 5,sp - movw a,sp ext - movw a,x 3,+x - movw a,x 5,-y - movw a,x 5,sp - movw a,x ext - movw a,y 3,+x - movw a,y 5,-y - movw a,y 5,sp - movw a,y ext - movw b,sp 3,+x - movw b,sp 5,-y - movw b,sp 5,sp - movw b,sp ext - movw b,x 3,+x - movw b,x 5,-y - movw b,x 5,sp - movw b,x ext - movw b,y 3,+x - movw b,y 5,-y - movw b,y 5,sp - movw b,y ext - movw d,sp 3,+x - movw d,sp 5,-y - movw d,sp 5,sp - movw d,sp ext - movw d,x 3,+x - movw d,x 5,-y - movw d,x 5,sp - movw d,x ext - movw d,y 3,+x - movw d,y 5,-y - movw d,y 5,sp - movw d,y ext - movw ext 1,+sp - movw ext 1,+x - movw ext 1,+y - movw ext 8,+sp - movw ext 8,+x - movw ext 8,+y - movw ext ,pc - movw ext ,sp - movw ext ,x - movw ext ,y - movw ext 1,-sp - movw ext 1,-x - movw ext 1,-y - movw ext 8,-sp - movw ext 8,-x - movw ext 8,-y - movw ext -1,sp - movw ext -1,x - movw ext -1,y - movw ext -16,sp - movw ext -16,x - movw ext -16,y - movw ext -small,pc - movw ext -small,sp - movw ext -small,x - movw ext -small,y - movw ext 0,pc - movw ext 0,sp - movw ext 0,x - movw ext 0,y - movw ext 1,sp+ - movw ext 1,x+ - movw ext 1,y+ - movw ext 1,sp - movw ext 1,x - movw ext 1,y - movw ext 1,sp- - movw ext 1,x- - movw ext 1,y- - movw ext 8,sp+ - movw ext 8,x+ - movw ext 8,y+ - movw ext 8,sp- - movw ext 8,x- - movw ext 8,y- - movw ext a,sp - movw ext a,x - movw ext a,y - movw ext b,sp - movw ext b,x - movw ext b,y - movw ext d,sp - movw ext d,x - movw ext d,y - movw ext ext - movw ext small,pc - movw ext small,sp - movw ext small,x - movw ext small,y - movw small,pc 3,+x - movw small,pc 5,-y - movw small,pc 5,sp - movw small,pc ext - movw small,sp 3,+x - movw small,sp 5,-y - movw small,sp 5,sp - movw small,sp ext - movw small,x 3,+x - movw small,x 5,-y - movw small,x 5,sp - movw small,x ext - movw small,y 3,+x - movw small,y 5,-y - movw small,y 5,sp - movw small,y ext - movb 1,x+ 1,y- - movb 0,x 0,x
trunk/bench/tools/HSW12ASM/test_S12X.s Property changes : Deleted: svn:executable Index: trunk/bench/tools/HSW12ASM/test_HC11.s =================================================================== --- trunk/bench/tools/HSW12ASM/test_HC11.s (revision 2) +++ trunk/bench/tools/HSW12ASM/test_HC11.s (nonexistent) @@ -1,1317 +0,0 @@ -* -* HC11 test case -* - CPU HC11 - -char equ 65 -immed equ $72 -dir equ $55 -ext equ $1234 -ind equ $37 -small equ $e -mask equ %11001100 -ROTATE000 EQU $0188 -ROTATE001 EQU $8944 -ROTATE002 EQU $3333 -ROTATE003 EQU $4444 -INDEX EQU 3 -* -* -* - ORG $1000 -TEST1 EQU 1 -TEST2 EQU 2 -TEST3 EQU 3 -TEST4 EQU 4 -TEST5 EQU 5 -TEST6 EQU 6 -TEST7 EQU 7 -TEST8 EQU 8 - -#ifdef TEST1 - ldaa #TEST1 -#ifdef TEST2 - ldaa #TEST2 -#ifndef TEST3 - ldab #TEST3 -#ifdef TEST4 - ldab #TEST4 -#endif -#ifdef TEST5 - ldaa #TEST5 -*#ifdef TEST6 -* ldaa #TEST6 -*#ifdef TEST7 -* ldaa #TEST7 -*#ifdef TEST8 -* ldaa #TEST8 -*#endif -*#endif -*#endif -#else - ldd #3333 -#ifdef TEST7 - ldd #7777 -#else - ldaa #'N' -#endif -#endif -#else - ldd #3333 -#ifdef TEST17 - ldd #7777 -#else - ldaa #'N' -#endif -#endif -#endif -#endif -*#endif - ORG $4000 - -#ifdef a4fn -#endif -#ifdef b32ff -#endif -; funny ` test -; stinky `` test -; -happy` - - dw 2 - db 2 - dc.w 2 - dc.b 2 - fcb 2 - fdb 2222 - ds 34 - ds.b 34 - ds.w 34 - rmb 34 - rmw 34 -bb equ 1 -#ifdef aa -#endif -#ifdef aa -#endif - -#ifdef aa -#endif -#ifdef bb -#endif - bclr dir,$55 - bclr dir,#$55 - - brset dir,$55,* - brset dir,#$55,* - - bset dir,$55 - bset dir,#$55 - - aba - abx - aby - ALIGN 0 - adca #immed - adca #immed - adca #immed - adca #immed - adca #immed -#ifndef dense -#else -#endif - LOC - adca ,x - adca ,y -reset -reset` - adca -1,x -* -* helwo warry bud -* hewe is you comment -* - adca -1,y - jsr * - adca -16,x - adca -16,y - ALIGN 1 - adca -17,x - adca -17,y - ALIGN 3 - adca -small,x - ALIGN 7 - adca -small,y - adca 0,x - adca 0,y - adca ext,x - adca ext,x - adca ext,x - adca ext,x - adca ext,x - adca 1,x - adca 1,y - adca 125,x - adca 125,y - adca 15,x - adca 15,y - adca 16,x - adca 16,y - adca dir - adca dir - adca ext - adca ext - adca ext,x - adca ext,y - adca small,x - adca small,y - adcb #immed - adcb dir - adcb ext - adda #immed - adda dir - adda ext - adda ext - addb #immed - addb dir - addb ext - addd #immed - addd dir - addd ext - anda #immed - anda dir - anda ext - andb #immed - andb dir - andb ext - asl dir - asl ext - asla - aslb - asld - asr dir - asr ext - asra - asrb - bcc * - bcs * - beq * - bge * - bgt * - bhi * - bita #immed - bita dir - bita ext - bitb #immed - bitb dir - bitb ext - ble * - bls * - blt * - bmi * - bne * - bpl * - bra * - brn * - bsr * - bvc * - bvs * - cba - clc - cli - clr dir - clr ext - clra - clrb - clv - cmpa #immed - cmpa dir - cmpa ext - cmpb #immed - cmpb #immed - cmpb ,x - cmpb ,y - cmpb -1,x - cmpb -1,y - cmpb -16,x - cmpb -16,y - cmpb -17,x - cmpb -17,y - cmpb -small,x - cmpb -small,y - cmpb 0,x - cmpb 0,y - cmpb 1,x - cmpb 1,y - cmpb 125,x - cmpb 125,y - cmpb 15,x - cmpb 15,y - cmpb 16,x - cmpb 16,y - cmpb dir - cmpb dir - cmpb ext - cmpb ext - cmpb ext,x - cmpb ext,y - cmpb small,x - cmpb small,y - com ,x - com ,y - com -1,x - com -1,y - com -16,x - com -16,y - com -17,x - com -17,y - com -small,x - com -small,y - com 0,x - com 0,y - com 1,x - com 1,y - com 125,x - com 125,y - com 15,x - com 15,y - com 16,x - com 16,y - com dir - com ext - com ext - com ext,x - com ext,y - com small,x - com small,y - coma - comb - cpd #immed - cpd #immed - cpd ,x - cpd ,y - cpd -1,x - cpd -1,y - cpd -16,x - cpd -16,y - cpd -17,x - cpd -17,y - cpd -small,x - cpd -small,y - cpd 0,x - cpd 0,y - cpd 1,x - cpd 1,y - cpd 125,x - cpd 125,y - cpd 15,x - cpd 15,y - cpd 16,x - cpd 16,y - cpd dir - cpd dir - cpd ext - cpd ext - cpd ext,x - cpd ext,y - cpd small,x - cpd small,y - cpx #immed - cpx #immed - cpx ,x - cpx ,y - cpx -1,x - cpx -1,y - cpx -16,x - cpx -16,y - cpx -17,x - cpx -17,y - cpx -small,x - cpx -small,y - cpx 0,x - cpx 0,y - cpx 1,x - cpx 1,y - cpx 125,x - cpx 125,y - cpx 15,x - cpx 15,y - cpx 16,x - cpx 16,y - cpx dir - cpx dir - cpx ext - cpx ext - cpx ext,x - cpx ext,y - cpx small,x - cpx small,y - cpy #immed - cpy #immed - cpy ,x - cpy ,y - cpy -1,x - cpy -1,y - cpy -16,x - cpy -16,y - cpy -17,x - cpy -17,y - cpy -small,x - cpy -small,y - cpy 0,x - cpy 0,y - cpy 1,x - cpy 1,y - cpy 125,x - cpy 125,y - cpy 15,x - cpy 15,y - cpy 16,x - cpy 16,y - cpy dir - cpy dir - cpy ext - cpy ext - cpy ext,x - cpy ext,y - cpy small,x - cpy small,y - daa - dec ,x - dec ,y - dec -1,x - dec -1,y - dec -16,x - dec -16,y - dec -17,x - dec -17,y - dec -small,x - dec -small,y - dec 0,x - dec 0,y - dec 1,x - dec 1,y - dec 125,x - dec 125,y - dec 15,x - dec 15,y - dec 16,x - dec 16,y - dec dir - dec ext - dec ext - dec ext,x - dec ext,y - dec small,x - dec small,y - deca - decb - des - dex - dey - eora #immed - eora #immed - eora ,x - eora ,y - eora -1,x - eora -1,y - eora -16,x - eora -16,y - eora -17,x - eora -17,y - eora -small,x - eora -small,y - eora 0,x - eora 0,y - eora 1,x - eora 1,y - eora 125,x - eora 125,y - eora 15,x - eora 15,y - eora 16,x - eora 16,y - eora dir - eora dir - eora ext - eora ext - eora ext,x - eora ext,y - eora small,x - eora small,y - eorb #immed - eorb #immed - eorb ,x - eorb ,y - eorb -1,x - eorb -1,y - eorb -16,x - eorb -16,y - eorb -17,x - eorb -17,y - eorb -small,x - eorb -small,y - eorb 0,x - eorb 0,y - eorb 1,x - eorb 1,y - eorb 125,x - eorb 125,y - eorb 15,x - eorb 15,y - eorb 16,x - eorb 16,y - eorb dir - eorb dir - eorb ext - eorb ext - eorb ext,x - eorb ext,y - eorb small,x - eorb small,y - fdiv - idiv - inc ,x - inc ,y - inc -1,x - inc -1,y - inc -16,x - inc -16,y - inc -17,x - inc -17,y - inc -small,x - inc -small,y - inc 0,x - inc 0,y - inc 1,x - inc 1,y - inc 125,x - inc 125,y - inc 15,x - inc 15,y - inc 16,x - inc 16,y - inc dir - inc ext - inc ext - inc ext,x - inc ext,y - inc small,x - inc small,y - inca - incb - ins - inx - iny - jmp ,x - jmp ,y - jmp -1,x - jmp -1,y - jmp -16,x - jmp -16,y - jmp -17,x - jmp -17,y - jmp -small,x - jmp -small,y - jmp 0,x - jmp 0,y - jmp 1,x - jmp 1,y - jmp 125,x - jmp 125,y - jmp 15,x - jmp 15,y - jmp 16,x - jmp 16,y - jmp dir - jmp ext - jmp ext - jmp ext,x - jmp ext,y - jmp small,x - jmp small,y - jsr ,x - jsr ,y - jsr -1,x - jsr -1,y - jsr -16,x - jsr -16,y - jsr -17,x - jsr -17,y - jsr -small,x - jsr -small,y - jsr 0,x - jsr 0,y - jsr 1,x - jsr 1,y - jsr 125,x - jsr 125,y - jsr 15,x - jsr 15,y - jsr 16,x - jsr 16,y - jsr dir - jsr dir - jsr ext - jsr ext - jsr ext - jsr ext,x - jsr ext,y - jsr small,x - jsr small,y - ldaa #immed - ldaa #immed - ldaa ,x - ldaa ,y - ldaa -1,x - ldaa -1,y - ldaa -16,x - ldaa -16,y - ldaa -17,x - ldaa -17,y - ldaa -small,x - ldaa -small,y - ldaa 0,x - ldaa 0,y - ldaa 1,x - ldaa 1,y - ldaa 125,x - ldaa 125,y - ldaa 15,x - ldaa 15,y - ldaa 16,x - ldaa 16,y - ldaa dir - ldaa dir - ldaa ext - ldaa ext - ldaa ext,x - ldaa ext,y - ldaa small,x - ldaa small,y - ldab #immed - ldab #immed - ldab ,x - ldab ,y - ldab -1,x - ldab -1,y - ldab -16,x - ldab -16,y - ldab -17,x - ldab -17,y - ldab -small,x - ldab -small,y - ldab 0,x - ldab 0,y - ldab 1,x - ldab 1,y - ldab 125,x - ldab 125,y - ldab 15,x - ldab 15,y - ldab 16,x - ldab 16,y - ldab dir - ldab dir - ldab ext - ldab ext - ldab ext,x - ldab ext,y - ldab small,x - ldab small,y - ldd #immed - ldd #immed - ldd ,x - ldd ,y - ldd -1,x - ldd -1,y - ldd -16,x - ldd -16,y - ldd -17,x - ldd -17,y - ldd -small,x - ldd -small,y - ldd 0,x - ldd 0,y - ldd 1,x - ldd 1,y - ldd 125,x - ldd 125,y - ldd 15,x - ldd 15,y - ldd 16,x - ldd 16,y - ldd dir - ldd dir - ldd ext - ldd ext - ldd ext,x - ldd ext,y - ldd small,x - ldd small,y - lds #immed - lds #immed - lds ,x - lds ,y - lds -1,x - lds -1,y - lds -16,x - lds -16,y - lds -17,x - lds -17,y - lds -small,x - lds -small,y - lds 0,x - lds 0,y - lds 1,x - lds 1,y - lds 125,x - lds 125,y - lds 15,x - lds 15,y - lds 16,x - lds 16,y - lds dir - lds ext - lds ext,x - lds ext,y - lds small,x - lds small,y - ldx #immed - ldx #immed - ldx ,x - ldx ,y - ldx -1,x - ldx -1,y - ldx -16,x - ldx -16,y - ldx -17,x - ldx -17,y - ldx -small,x - ldx -small,y - ldx 0,x - ldx 0,y - ldx 1,x - ldx 1,y - ldx 125,x - ldx 125,y - ldx 15,x - ldx 15,y - ldx 16,x - ldx 16,y - ldx dir - ldx dir - ldx ext - ldx ext - ldx ext,x - ldx ext,y - ldx small,x - ldx small,y - ldy #immed - ldy #immed - ldy ,x - ldy ,y - ldy -1,x - ldy -1,y - ldy -16,x - ldy -16,y - ldy -17,x - ldy -17,y - ldy -small,x - ldy -small,y - ldy 0,x - ldy 0,y - ldy 1,x - ldy 1,y - ldy 125,x - ldy 125,y - ldy 15,x - ldy 15,y - ldy 16,x - ldy 16,y - ldy dir - ldy dir - ldy ext - ldy ext - ldy ext,x - ldy ext,y - ldy small,x - ldy small,y - lsl ,x - lsl ,y - lsl -1,x - lsl -1,y - lsl -16,x - lsl -16,y - lsl -17,x - lsl -17,y - lsl -small,x - lsl -small,y - lsl 0,x - lsl 0,y - lsl 1,x - lsl 1,y - lsl 125,x - lsl 125,y - lsl 15,x - lsl 15,y - lsl 16,x - lsl 16,y - lsl dir - lsl ext - lsl ext - lsl ext,x - lsl ext,y - lsl small,x - lsl small,y - lsla - lslb - lsld - lsr ,x - lsr ,y - lsr -1,x - lsr -1,y - lsr -16,x - lsr -16,y - lsr -17,x - lsr -17,y - lsr -small,x - lsr -small,y - lsr 0,x - lsr 0,y - lsr 1,x - lsr 1,y - lsr 125,x - lsr 125,y - lsr 15,x - lsr 15,y - lsr 16,x - lsr 16,y - lsr dir - lsr ext - lsr ext - lsr ext,x - lsr ext,y - lsr small,x - lsr small,y - lsra - lsrb - lsrd - lsrd - mul - neg ,x - neg ,y - neg -1,x - neg -1,y - neg -16,x - neg -16,y - neg -17,x - neg -17,y - neg -small,x - neg -small,y - neg 0,x - neg 0,y - neg 1,x - neg 1,y - neg 125,x - neg 125,y - neg 15,x - neg 15,y - neg 16,x - neg 16,y - neg dir - neg ext - neg ext - neg ext,x - neg ext,y - neg small,x - neg small,y - nega - negb - nop - oraa #immed - oraa #immed - oraa ,x - oraa ,y - oraa -1,x - oraa -1,y - oraa -16,x - oraa -16,y - oraa -17,x - oraa -17,y - oraa -small,x - oraa -small,y - oraa 0,x - oraa 0,y - oraa 1,x - oraa 1,y - oraa 125,x - oraa 125,y - oraa 15,x - oraa 15,y - oraa 16,x - oraa 16,y - oraa dir - oraa dir - oraa ext - oraa ext - oraa ext,x - oraa ext,y - oraa small,x - oraa small,y - orab #immed - orab #immed - orab ,x - orab ,y - orab -1,x - orab -1,y - orab -16,x - orab -16,y - orab -17,x - orab -17,y - orab -small,x - orab -small,y - orab 0,x - orab 0,y - orab 1,x - orab 1,y - orab 125,x - orab 125,y - orab 15,x - orab 15,y - orab 16,x - orab 16,y - orab dir - orab dir - orab ext - orab ext - orab ext,x - orab ext,y - orab small,x - orab small,y - psha - pshb - pshx - pshy - pula - pulb - pulx - puly - rol ,x - rol ,y - rol -1,x - rol -1,y - rol -16,x - rol -16,y - rol -17,x - rol -17,y - rol -small,x - rol -small,y - rol 0,x - rol 0,y - rol 1,x - rol 1,y - rol 125,x - rol 125,y - rol 15,x - rol 15,y - rol 16,x - rol 16,y - rol dir - rol ext - rol ext - rol ext,x - rol ext,y - rol small,x - rol small,y - rola - rolb - ror ,x - ror ,y - ror -1,x - ror -1,y - ror -16,x - ror -16,y - ror -17,x - ror -17,y - ror -small,x - ror -small,y - ror 0,x - ror 0,y - ror 1,x - ror 1,y - ror 125,x - ror 125,y - ror 15,x - ror 15,y - ror 16,x - ror 16,y - ror dir - ror ext - ror ext - ror ext,x - ror ext,y - ror small,x - ror small,y - rora - rorb - rti - rts - sba - sbca #immed - sbca #immed - sbca ,x - sbca ,y - sbca -1,x - sbca -1,y - sbca -16,x - sbca -16,y - sbca -17,x - sbca -17,y - sbca -small,x - sbca -small,y - sbca 0,x - sbca 0,y - sbca 1,x - sbca 1,y - sbca 125,x - sbca 125,y - sbca 15,x - sbca 15,y - sbca 16,x - sbca 16,y - sbca dir - sbca dir - sbca ext - sbca ext - sbca ext,x - sbca ext,y - sbca small,x - sbca small,y - sbcb #immed - sbcb #immed - sbcb ,x - sbcb ,y - sbcb -1,x - sbcb -1,y - sbcb -16,x - sbcb -16,y - sbcb -17,x - sbcb -17,y - sbcb -small,x - sbcb -small,y - sbcb 0,x - sbcb 0,y - sbcb 1,x - sbcb 1,y - sbcb 125,x - sbcb 125,y - sbcb 15,x - sbcb 15,y - sbcb 16,x - sbcb 16,y - sbcb dir - sbcb dir - sbcb ext - sbcb ext - sbcb ext,x - sbcb ext,y - sbcb small,x - sbcb small,y - sec - sei - sev - staa ,x - staa ,y - staa -1,x - staa -1,y - staa -16,x - staa -16,y - staa -17,x - staa -17,y - staa -small,x - staa -small,y - staa 0,x - staa 0,y - staa 1,x - staa 1,y - staa 125,x - staa 125,y - staa 15,x - staa 15,y - staa 16,x - staa 16,y - staa dir - staa dir - staa ext - staa ext - staa ext,x - staa ext,y - staa small,x - staa small,y - stab ,x - stab ,y - stab -1,x - stab -1,y - stab -16,x - stab -16,y - stab -17,x - stab -17,y - stab -small,x - stab -small,y - stab 0,x - stab 0,y - stab 1,x - stab 1,y - stab 125,x - stab 125,y - stab 15,x - stab 15,y - stab 16,x - stab 16,y - stab dir - stab dir - stab ext - stab ext - stab ext,x - stab ext,y - stab small,x - stab small,y - std ,x - std ,y - std -1,x - std -1,y - std -16,x - std -16,y - std -17,x - std -17,y - std -small,x - std -small,y - std 0,x - std 0,y - std 1,x - std 1,y - std 125,x - std 125,y - std 15,x - std 15,y - std 16,x - std 16,y - std dir - std dir - std ext - std ext - std ext,x - std ext,y - std small,x - std small,y - stop - sts ,x - sts ,y - sts -1,x - sts -1,y - sts -16,x - sts -16,y - sts -17,x - sts -17,y - sts -small,x - sts -small,y - sts 0,x - sts 0,y - sts 1,x - sts 1,y - sts 125,x - sts 125,y - sts 15,x - sts 15,y - sts 16,x - sts 16,y - sts dir - sts ext - sts ext,x - sts ext,y - sts small,x - sts small,y - stx ,x - stx ,y - stx -1,x - stx -1,y - stx -16,x - stx -16,y - stx -17,x - stx -17,y - stx -small,x - stx -small,y - stx 0,x - stx 0,y - stx 1,x - stx 1,y - stx 125,x - stx 125,y - stx 15,x - stx 15,y - stx 16,x - stx 16,y - stx dir - stx dir - stx ext - stx ext - stx ext,x - stx ext,y - stx small,x - stx small,y - sty ,x - sty ,y - sty -1,x - sty -1,y - sty -16,x - sty -16,y - sty -17,x - sty -17,y - sty -small,x - sty -small,y - sty 0,x - sty 0,y - sty 1,x - sty 1,y - sty 125,x - sty 125,y - sty 15,x - sty 15,y - sty 16,x - sty 16,y - sty dir - sty dir - sty ext - sty ext - sty ext,x - sty ext,y - sty small,x - sty small,y - suba #immed - suba ,x - suba ,y - suba -1,x - suba -1,y - suba -16,x - suba -16,y - suba -17,x - suba -17,y - suba -small,x - suba -small,y - suba 0,x - suba 0,y - suba 1,x - suba 1,y - suba 125,x - suba 125,y - suba 15,x - suba 15,y - suba 16,x - suba 16,y - suba dir - suba ext - suba ext,x - suba ext,y - suba small,x - suba small,y - subb #immed - subb #immed - subb ,x - subb ,y - subb -1,x - subb -1,y - subb -16,x - subb -16,y - subb -17,x - subb -17,y - subb -small,x - subb -small,y - subb 0,x - subb 0,y - subb 1,x - subb 1,y - subb 125,x - subb 125,y - subb 15,x - subb 15,y - subb 16,x - subb 16,y - subb dir - subb dir - subb ext - subb ext - subb ext,x - subb ext,y - subb small,x - subb small,y - subd #immed - subd #immed - subd ,x - subd ,y - subd -1,x - subd -1,y - subd -16,x - subd -16,y - subd -17,x - subd -17,y - subd -small,x - subd -small,y - subd 0,x - subd 0,y - subd 1,x - subd 1,y - subd 125,x - subd 125,y - subd 15,x - subd 15,y - subd 16,x - subd 16,y - subd dir - subd dir - subd ext - subd ext - subd ext,x - subd ext,y - subd small,x - subd small,y - swi - tab - tap - tba - tpa - tst ,x - tst ,y - tst -1,x - tst -1,y - tst -16,x - tst -16,y - tst -17,x - tst -17,y - tst -small,x - tst -small,y - tst 0,x - tst 0,y - tst 1,x - tst 1,y - tst 125,x - tst 125,y - tst 15,x - tst 15,y - tst 16,x - tst 16,y - tst dir - tst ext - tst ext - tst ext,x - tst ext,y - tst small,x - tst small,y - tsta - tstb - tsx - tsy - txs - tys - wai - xgdx - xgdy
trunk/bench/tools/HSW12ASM/test_HC11.s Property changes : Deleted: svn:executable

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.