Known original game formats: Linked: Sabre Wulf ZX Spectrum 48K Atic Atac ZX Spectrum 48K Jetpac ZX Spectrum 16K Jetman ZX Spectrum 48K (type-in) Alien8 ZX Spectrum 48K Gunfright ZX Spectrum 48K Unlinked: Underwurlde ZX Spectrum 48K Knightlore ZX Spectrum 48K Pssst ZX Spectrum 16K Cookie ZX Spectrum 16K 7F0D28E0 107410 accepts: A0=, A1=, A2= SLL T8,A2,0x8 ANDI T9,T8,0700 SLL T6,A2,0x5 ANDI T7,T6,1800 SLL V1,A2,0x2 OR T3,T7,T9 SRA T0,A1,0x3 ANDI T8,V1,03E0 ADDIU SP,SP,FFF8 ADDU T7,T8,T0 SW S0,0004 (SP) ADDU T9,T7,A0 LBU T1,1800 (T9) ANDI T4,V1,00E0 OR T5,T3,T4 OR T6,T5,T0 ANDI T3,T1,0080 OR S0,A3,R0 ADDU V0,T6,A0 BEQ T3,R0,7F0D2958 OR T2,T1,R0 LUI T4,8005 LBU T4,ED04 (T4) ;T4=8004ED04: OR V1,T1,R0 ANDI T5,V1,0007 BEQ T4,R0,7F0D2958 OR V1,T5,R0 SRA T6,T1,0x3 BEQ R0,R0,7F0D296C ANDI A0,T6,0007 //7F0D2958: OR A0,T2,R0 ANDI T7,A0,0007 SRA T9,T2,0x3 OR A0,T7,R0 //7F0D2968: ANDI V1,T9,0007 ANDI T4,T2,0040 BNE T4,R0,7F0D2990 OR A1,R0,R0 //7F0D2978: ADDIU A0,A0,0008 ADDIU V1,V1,0008 ANDI T5,A0,00FF ANDI T6,V1,00FF OR A0,T5,R0 OR V1,T6,R0 //7F0D2990: ADDIU T1,R0,0008 //7F0D2994: LBU A3,0000 (V0) ADDIU A1,A1,0001 ADDIU V0,V0,0100 ANDI T8,A3,0080 BEQ T8,R0,7F0D29B4 ANDI T7,A3,0040 BEQ R0,R0,7F0D29B8 OR A2,A0,R0 //7F0D29B4: OR A2,V1,R0 //7F0D29B8: BEQ T7,R0,7F0D29C8 SLL T9,A2,0x4 BEQ R0,R0,7F0D29CC OR T0,A0,R0 //7F0D29C8: OR T0,V1,R0 //7F0D29CC: OR T3,T0,T9 ANDI T4,A3,0020 BEQ T4,R0,7F0D29E4 SB T3,0000 (S0) BEQ R0,R0,7F0D29E8 OR A2,A0,R0 //7F0D29E4: OR A2,V1,R0 //7F0D29E8: ANDI T5,A3,0010 BEQ T5,R0,7F0D29FC SLL T6,A2,0x4 BEQ R0,R0,7F0D2A00 OR T0,A0,R0 //7F0D29FC: OR T0,V1,R0 //7F0D2A00: OR T8,T0,T6 ANDI T7,A3,0008 BEQ T7,R0,7F0D2A18 SB T8,0001 (S0) BEQ R0,R0,7F0D2A1C OR A2,A0,R0 //7F0D2A18: OR A2,V1,R0 //7F0D2A1C: ANDI T9,A3,0004 BEQ T9,R0,7F0D2A30 SLL T3,A2,0x4 BEQ R0,R0,7F0D2A34 OR T0,A0,R0 //7F0D2A30: OR T0,V1,R0 //7F0D2A34: OR T4,T0,T3 ANDI T5,A3,0002 BEQ T5,R0,7F0D2A4C SB T4,0002 (S0) BEQ R0,R0,7F0D2A50 OR A2,A0,R0 //7F0D2A4C: OR A2,V1,R0 //7F0D2A50: ANDI T6,A3,0001 BEQ T6,R0,7F0D2A64 SLL T8,A2,0x4 BEQ R0,R0,7F0D2A68 OR T0,A0,R0 //7F0D2A64: OR T0,V1,R0 //7F0D2A68: OR T7,T0,T8 SB T7,0003 (S0) BNE A1,T1,7F0D2994 ADDIU S0,S0,0020 //7F0D2A78: return LW S0,0004 (SP) JR RA ADDIU SP,SP,0008 7F0D2A84 1075B4 LUI V0,8005 ADDIU V0,V0,ED08 LBU T6,0000 (V0) ;T6=8004ED08: ADDIU AT,R0,0019 ADDIU SP,SP,FFA0 ADDIU T7,T6,0001 ANDI T8,T7,00FF :T8=(T6+1)->byte DIV T8,AT SW S5,002C (SP) MFHI T9 OR S5,A0,R0 SW RA,003C (SP) SW S8,0038 (SP) SW S7,0034 (SP) SW S6,0030 (SP) SW S4,0028 (SP) SW S3,0024 (SP) SW S2,0020 (SP) SW S1,001C (SP) SW S0,0018 (SP) SW A1,0064 (SP) BNE T9,R0,7F0D2B48 SB T7,0000 (V0) //7F0D2AE0: SB R0,0000 (V0) LUI S6,8009 ADDIU S6,S6,E32C ;S6=8008E32C: ADDIU V0,R0,0001 OR V1,R0,R0 ;V1=0 init. offset //7F0D2AF4: memset buffer with 01 LW T0,0000 (S6) ADDIU AT,R0,0300 ADDU T1,T0,V1 SB V0,0000 (T1) LW T2,0000 (S6) ADDU T3,T2,V1 SB V0,0001 (T3) LW T4,0000 (S6) ADDU T5,T4,V1 SB V0,0002 (T5) LW T6,0000 (S6) ADDU T7,T6,V1 ADDIU V1,V1,0004 BNE V1,AT,7F0D2AF4 ;loop through all 300 bytes SB V0,0003 (T7) //7F0D2B30: LUI V0,8005 ADDIU V0,V0,ED04 LBU T8,0000 (V0) ;T8=8004ED04: ADDIU T9,R0,0001 SUBU T0,T9,T8 SB T0,0000 (V0) //7F0D2B48: LUI S6,8009 ADDIU S6,S6,E32C ;S6=8008E32C: SW R0,0058 (SP) LW T1,0058 (SP) OR S7,R0,R0 SRA T2,T1,0x6 SLL T3,T2,0x2 SW T3,0040 (SP) ADDIU S8,T1,0040 //7F0D2B6C: LW T4,0040 (SP) LW S4,0058 (SP) SRA T5,S7,0x6 LW T9,0064 (SP) ADDU T6,T4,T5 SLL T7,T6,0xB SLT AT,S4,S8 BEQ AT,R0,7F0D2BF8 ADDU S1,T7,T9 ADDIU S3,S7,0040 //7F0D2B94: SLT AT,S7,S3 BEQ AT,R0,7F0D2BE8 OR S0,S7,R0 SRA S2,S4,0x3 SLL T0,S2,0x5 OR S2,T0,R0 //7F0D2BAC: LW T1,0000 (S6) SRA T2,S0,0x3 OR T3,S2,T2 ADDU T4,T3,T1 LBU T5,0000 (T4) OR A0,S5,R0 OR A1,S0,R0 BEQ T5,R0,7F0D2BD8 OR A2,S4,R0 JAL 7F0D28E0 OR A3,S1,R0 //7F0D2BD8: ADDIU S0,S0,0008 SLT AT,S0,S3 BNE AT,R0,7F0D2BAC ADDIU S1,S1,0004 //7F0D2BE8: ADDIU S4,S4,0008 SLT AT,S4,S8 BNE AT,R0,7F0D2B94 ADDIU S1,S1,00E0 //7F0D2BF8: ADDIU S7,S7,0040 SLTI AT,S7,0100 BNEL AT,R0,7F0D2B70 LW T4,0040 (SP) SLTI AT,S8,00C0 BNE AT,R0,7F0D2B54 SW S8,0058 (SP) OR V0,R0,R0 //7F0D2C18: LW T7,0000 (S6) ADDIU AT,R0,0300 ADDU T9,T7,V0 SB R0,0000 (T9) LW T8,0000 (S6) ADDU T0,T8,V0 SB R0,0001 (T0) LW T2,0000 (S6) ADDU T3,T2,V0 SB R0,0002 (T3) LW T1,0000 (S6) ADDU T4,T1,V0 ADDIU V0,V0,0004 BNE V0,AT,7F0D2C18 SB R0,0003 (T4) //7F0D2C54: return LW RA,003C (SP) LW S0,0018 (SP) LW S1,001C (SP) LW S2,0020 (SP) LW S3,0024 (SP) LW S4,0028 (SP) LW S5,002C (SP) LW S6,0030 (SP) LW S7,0034 (SP) LW S8,0038 (SP) JR RA ADDIU SP,SP,0060 7F0D2C84 1077B4 Spectrum: read player1's controller input as Kempston joystick Redirects keys depending on game. L unloads the program manager and probably end emulation. ADDIU SP,SP,FFC8 SW RA,0014 (SP) SW R0,0034 (SP) SW R0,0030 (SP) SW R0,002C (SP) SW R0,0028 (SP) JAL 7000BD0C ;redirect to ramrom replay and record handlers if set SW R0,0024 (SP) //7F0D2CA4: player 1: buttons held OR A0,R0,R0 ;A0=0: player 1 JAL 7000C30C ;V0=player A0's buttons A1 held ORI A1,R0,FFFF ;A1= all //7F0D2CB0: player 1: stick left/right OR A0,R0,R0 ;A0=0: player 1 ADDIU A1,R0,FFFD ;A1= -3: left deadzone ADDIU A2,R0,0003 ;A2= 3: right deadzone JAL 7000C4B4 ;V0=player A0's control stick left/right SW V0,0020 (SP) ;SP+20= buttons held //7F0D2CC4: player 1: stick up/down OR A0,R0,R0 ;A0=0: player 1 ADDIU A1,R0,FFFD ;A1= -3: down deadzone ADDIU A2,R0,0003 ;A2= 3: up deadzone JAL 7000C528 ;V0=player A0's control stick up/down SW V0,001C (SP) ;SP+1C= stick left/right //7F0D2CD8: ADDIU T6,R0,00FF LUI AT,8005 LUI A0,8005 LUI A1,8005 LW A3,0020 (SP) ;A3= buttons held LW T0,001C (SP) ;T0= stick left/right ADDIU A1,A1,EC3D ADDIU A0,A0,EC35 SB T6,EC34 (AT) ADDIU V1,R0,00FF //7F0D2D00: set 8004EC34-8004EC3D to FF ADDIU A0,A0,0004 SB V1,FFFD (A0) SB V1,FFFE (A0) SB V1,FFFF (A0) BNE A0,A1,7F0D2D00 SB V1,FFFC (A0) //7F0D2D18: test ACTION ANDI T7,A3,2000 BEQ T7,R0,7F0D2D2C ;branch if Z not held ANDI T9,A3,0202 ADDIU T8,R0,0001 SW T8,0024 (SP) ;SP+24= TRUE //7F0D2D2C: test LEFT BNE T9,R0,7F0D2D3C ;branch if left c or + ANDI T2,A3,0101 SLTI AT,T0,FFFF ;TRUE if stick left BEQ AT,R0,7F0D2D44 //7F0D2D3C: set LEFT ADDIU T1,R0,0001 SW T1,002C (SP) ;SP+2C= TRUE //7F0D2D44: test RIGHT BNE T2,R0,7F0D2D54 ;branch if right c or + ANDI T4,A3,0808 SLTI AT,T0,0002 ;FALSE if stick right BNE AT,R0,7F0D2D5C //7F0D2D54: set RIGHT ADDIU T3,R0,0001 SW T3,0028 (SP) ;SP+28= TRUE //7F0D2D5C: test UP BNE T4,R0,7F0D2D6C ;branch if up c or + ANDI T5,A3,0404 SLTI AT,V0,0002 ;FALSE if stick up BNE AT,R0,7F0D2D74 //7F0D2D6C: set UP ADDIU A1,R0,0001 SW A1,0034 (SP) ;SP+34= TRUE //7F0D2D74: test DOWN BNE T5,R0,7F0D2D84 ;branch if down c or + LW A1,0034 (SP) ;A1= UP SLTI AT,V0,FFFF ;TRUE if stick down BEQ AT,R0,7F0D2D8C //7F0D2D84: set DOWN ADDIU A2,R0,0001 SW A2,0030 (SP) ;SP+30= TRUE //7F0D2D8C: jetpac's controls LUI V1,8009 LBU V1,E34D (V1) ;V1=8008E34D: cur.game# ADDIU A0,R0,0002 LW A2,0030 (SP) ;A2= DOWN BNE A0,V1,7F0D2DB4 ;branch if not game 2: jetpac ADDIU V0,R0,0004 ANDI T6,A3,C000 BEQ T6,R0,7F0D2DB4 ;if A or B pressed, set UP NOP ADDIU A1,R0,0001 ;A1= UP //7F0D2DB4: Alien8 and KnightLore controls BEQ V0,V1,7F0D2DC0 ADDIU AT,R0,0007 BNE V1,AT,7F0D2DD0 //7F0D2DC0: if A or B pressed, set DOWN ANDI T7,A3,C000 BEQ T7,R0,7F0D2DD0 NOP ADDIU A2,R0,0001 ;A2= DOWN //7F0D2DD0: game 0,1,4,6,7,9 BEQ V1,R0,7F0D2DFC ADDIU AT,R0,0001 BEQ V1,AT,7F0D2DFC ADDIU AT,R0,0006 BEQ V1,AT,7F0D2DFC ADDIU AT,R0,0009 BEQL V1,AT,7F0D2E00 ANDI T8,A3,C000 BEQ V0,V1,7F0D2DFC ADDIU AT,R0,0007 BNE V1,AT,7F0D2E18 //7F0D2DFC: SabreWulf, Atic Atac, Underwurlde, Cookie, Alien8, and KnightLore controls ANDI T8,A3,C000 BEQ T8,R0,7F0D2E18 ;if A or B pressed, unset flag LUI V0,8005 ADDIU V0,V0,EC34 LBU T9,0004 (V0) ANDI T1,T9,00FE SB T1,0004 (V0) ;8004EC34 &= ~1: '0' key //7F0D2E18: jetpac and Pssst controls LUI V0,8005 BEQ A0,V1,7F0D2E2C ;branch if jetpac ADDIU V0,V0,EC34 ;V0=8004EC34: ADDIU AT,R0,0008 BNE V1,AT,7F0D2E44 //7F0D2E2C: if A or B pressed, unset flag ANDI T2,A3,C000 BEQL T2,R0,7F0D2E48 ADDIU AT,R0,0005 LBU T3,0003 (V0) ANDI T4,T3,00EF SB T4,0003 (V0) ;8004EC37 &= ~10: '5' key //7F0D2E44: gunfright controls (1: toggle 1-2pl, 2: input types, 3: start) ADDIU AT,R0,0005 BNE V1,AT,7F0D2E64 ANDI T5,A3,C000 BEQL T5,R0,7F0D2E68 ;if A or B pressed, unset flag ADDIU AT,R0,0003 LBU T6,0003 (V0) ANDI T7,T6,00FB SB T7,0003 (V0) ;8004EC37 &= ~4: '3' //7F0D2E64: jetman controls ADDIU AT,R0,0003 BNE V1,AT,7F0D2EAC ;branch if not jetman ANDI T8,A3,C000 BEQ T8,R0,7F0D2E84 ;if A or B pressed, unset flag ANDI T2,A3,8000 LBU T9,0004 (V0) ANDI T1,T9,00EF SB T1,0004 (V0) ;8004EC38 &= ~10: '6' //7F0D2E84: if jetman A pressed, unset flag BEQ T2,R0,7F0D2E98 ANDI T5,A3,4000 LBU T3,0000 (V0) ANDI T4,T3,00FD SB T4,0000 (V0) ;8004EC34 &= ~2 //7F0D2E98: if jetman B pressed, unset flag BEQL T5,R0,7F0D2EB0 ADDIU AT,R0,0006 LBU T6,0007 (V0) ANDI T7,T6,00FE SB T7,0007 (V0) ;8004EC3B &= ~1 //7F0D2EAC: underwurlde controls ADDIU AT,R0,0006 BNE V1,AT,7F0D2ED8 ANDI T8,A3,8000 BEQ T8,R0,7F0D2EC4 ;if A pressed set UP ANDI A0,A3,4000 ADDIU A1,R0,0001 ;A1= UP //7F0D2EC4: if underwurlde B pressed, unset flag BEQL A0,R0,7F0D2EDC ADDIU AT,R0,0001 LBU T9,0007 (V0) ANDI T1,T9,00FE SB T1,0007 (V0) ;8004EC3B &= ~1 //7F0D2ED8: atic atac controls (4-knight, 5-wizard, 6-serf) ADDIU AT,R0,0001 BNE V1,AT,7F0D2F34 ANDI T2,A3,C000 BEQ T2,R0,7F0D2EF8 ;if A or B pressed, unset flag ANDI T5,A3,0200 LBU T3,0000 (V0) ANDI T4,T3,00FD SB T4,0000 (V0) ;8004EC34 &= ~2 //7F0D2EF8: if + left, unset flag BEQ T5,R0,7F0D2F0C ANDI T8,A3,0400 LBU T6,0003 (V0) ANDI T7,T6,00F7 SB T7,0003 (V0) ;8004EC37 &= ~8 //7F0D2F0C: if + down, unset flag BEQ T8,R0,7F0D2F20 ANDI T2,A3,0100 LBU T9,0003 (V0) ANDI T1,T9,00EF SB T1,0003 (V0) ;8004EC37 &= ~10 //7F0D2F20: if + right, unset flag BEQL T2,R0,7F0D2F38 ANDI T5,A3,0020 LBU T3,0004 (V0) ANDI T4,T3,00EF SB T4,0004 (V0) ;8004EC38 &= ~10 //7F0D2F34: general controls: L button ANDI T5,A3,0020 BEQ T5,R0,7F0D2F88 ;branch if L not pressed LUI AT,8005 LUI V0,8009 ADDIU V0,V0,E328 ;V0=8008E328: p->spectrum.ROMs OR V1,R0,R0 ;V1=0 init. offset ADDIU A0,R0,4000 //7F0D2F50: NULL monitor program LW T6,0000 (V0) ADDU T7,T6,V1 SB R0,0000 (T7) LW T8,0000 (V0) ADDU T9,T8,V1 SB R0,0001 (T9) LW T1,0000 (V0) ADDU T2,T1,V1 SB R0,0002 (T2) LW T3,0000 (V0) ADDU T4,T3,V1 ADDIU V1,V1,0004 BNE V1,A0,7F0D2F50 SB R0,0003 (T4) //7F0D2F88: LW T5,0024 (SP) ;T5= ACTION LW T2,002C (SP) ;T2= LEFT SLL T7,A1,0x3 ;08 if UP SLL T6,T5,0x4 ;10 if ACTION LW T5,0028 (SP) ;T5= RIGHT OR T8,T6,T7 SLL T9,A2,0x2 ;04 if DOWN LW RA,0014 (SP) OR T1,T8,T9 SLL T3,T2,0x1 ;02 if LEFT OR T4,T1,T3 OR T6,T4,T5 ;ACTION | UP | DOWN | LEFT | RIGHT SB T6,EC40 (AT) ;controls->8004EC40 JR RA ADDIU SP,SP,0038 7F0D2FC4 107AF4 initialize Spectrum running game index A0 accepts: A0=game# (only permits 0-4, not 0-9) ADDIU SP,SP,FFE8 SW RA,0014 (SP) SW A0,0018 (SP) ADDIU A0,R0,0100 ;A0= 100 bytes JAL 70009720 ;V0=p->A0 bytes allocated in bank A1 ADDIU A1,R0,0004 ;A1= bank 4 LUI A2,8009 ADDIU A2,A2,E334 SW V0,0000 (A2) ;V0->8008E334: OR A0,R0,R0 ADDIU A3,R0,0004 ADDIU A1,R0,0008 //7F0D2FF4: OR V1,R0,R0 OR V0,R0,R0 ;V0=0 byte.bitcount //7F0D2FFC: SRAV T6,A0,V0 ANDI T7,T6,0001 BEQ T7,R0,7F0D3010 ;increment V1 only if bit set ADDIU V0,V0,0001 ;V0+=1 ADDIU V1,V1,0001 //7F0D3010: BNEL V0,A1,7F0D3000 ;loop for byte SRAV T6,A0,V0 //7F0D3018: ANDI T8,V1,0001 BEQL T8,R0,7F0D3038 LW T2,0000 (A2) LW T9,0000 (A2) ADDU T1,T9,A0 BEQ R0,R0,7F0D3040 SB R0,0000 (T1) ;0->8008E334+offset: //7F0D3034: LW T2,0000 (A2) ADDU T3,T2,A0 SB A3,0000 (T3) ;4->8008E334+offset: //7F0D3040: loop for entire file ADDIU A0,A0,0001 ;A0+=1 next offset SLTI AT,A0,0100 BNEL AT,R0,7F0D2FF8 OR V1,R0,R0 //7F0D3050: allocate some buffers ADDIU A0,R0,6000 ;A0= 6000 bytes JAL 70009720 ;V0=p->A0 bytes allocated in bank A1 ADDIU A1,R0,0004 ;A1= bank 4 LUI AT,8009 SW V0,E330 (AT) ;V0->8008E330: ADDIU A0,R0,0300 JAL 70009720 ;V0=p->A0 bytes allocated in bank A1 ADDIU A1,R0,0004 ;A1= bank 4 LUI V1,8009 ADDIU V1,V1,E32C SW V0,0000 (V1) ;V0->8008E32C: ADDIU V0,R0,0001 OR A0,R0,R0 //7F0D3084: initialize values in 8008E32C to 1 LW T4,0000 (V1) ADDU T5,T4,A0 ADDIU A0,A0,0001 SLTI AT,A0,0300 BNE AT,R0,7F0D3084 SB V0,0000 (T5) ;1->8008E32C+offset //7F0D309C: allocate buffer for ROMs LUI A0,0001 ;A0= 10000 bytes JAL 70009720 ;V0=p->A0 bytes allocated in bank A1 ADDIU A1,R0,0004 ;A1= bank 4 LUI T0,8009 ADDIU T0,T0,E328 LUI A0,8006 SW V0,0000 (T0) ;V0->8008E328: target for ROMs //7F0D30B8: load the spectrum monitor ADDIU A0,A0,C114 ;A0=8005C114: "em/data/spec_rom.seg.rz" ADDIU A1,R0,0001 ADDIU A2,R0,0100 JAL 7F0BCD04 ;load resource named A0 ADDIU A3,R0,0004 ;A3= bank 4 LUI V1,8009 ADDIU V1,V1,E320 LUI T0,8009 ADDIU T0,T0,E328 SW V0,0000 (V1) ;V0->8008E320: p->Spectrum monitor prog. OR A0,R0,R0 //7F0D30E4: copy 4000 bytes from spec_rom to 8008E328 buffer LW T6,0000 (V1) LW T9,0000 (T0) ADDU T7,T6,A0 ADDU T1,T9,A0 LBU T8,0000 (T7) ADDIU A0,A0,0001 SLTI AT,A0,4000 BNE AT,R0,7F0D30E4 SB T8,0000 (T1) //7F0D3108: save the game index, which they shortchanged... LW T2,0018 (SP) LUI V1,8009 ADDIU V1,V1,E34D ;V1=8008E34D: cur.game# ANDI V0,T2,00FF ;V0=A0 f/caller: game# SLTI AT,V0,0005 BNE AT,R0,7F0D312C ;okay if 0-4 SB T2,0000 (V1) ;8008E34D= A0 f/caller SB R0,0000 (V1) ;0->8008E34D ANDI V0,R0,00FF ;V0=0 //7F0D312C: load the game's snapshot SLL T3,V0,0x2 LUI A0,8005 ADDU A0,A0,T3 LW A0,ED2C (A0) ;A0=8004ED2C+offset: p->spectrum game name ADDIU A1,R0,0001 ADDIU A2,R0,0100 JAL 7F0BCD04 ;load resource named A0 ADDIU A3,R0,0004 ;A3= bank 4 LUI V1,8009 ADDIU V1,V1,E324 SW V0,0000 (V1) ;V0->8008E324: p->loaded spectrum game data LUI T0,8009 ADDIU T0,T0,E328 ORI V0,R0,C000 OR A0,R0,R0 //7F0D3168: copy game's RAM dump after the emulator code, skipping header of 1B. LW T4,0000 (V1) LW T7,0000 (T0) ADDU T5,A0,T4 LBU T6,001B (T5) ADDU T9,T7,A0 SB T6,4000 (T9) LW T8,0000 (V1) LW T3,0000 (T0) ADDU T1,A0,T8 LBU T2,001C (T1) ADDU T4,T3,A0 SB T2,4001 (T4) LW T5,0000 (V1) LW T9,0000 (T0) ADDU T7,A0,T5 LBU T6,001D (T7) ADDU T8,T9,A0 SB T6,4002 (T8) LW T1,0000 (V1) LW T4,0000 (T0) ADDU T3,A0,T1 LBU T2,001E (T3) ADDU T5,T4,A0 ADDIU A0,A0,0004 BNE A0,V0,7F0D3168 SB T2,4003 (T5) //7F0D31D0: load snapshot (SNA) LW V0,0000 (V1) ;V0->8008E324: p->loaded spectrum game data LUI AT,8009 LUI A1,8009 LBU T7,0000 (V0) ADDIU A1,A1,E34B LUI A2,8009 SB T7,E348 (AT) ;header+0 -> 8008E348: I LBU T9,0001 (V0) LUI AT,8009 ADDIU A2,A2,E352 SB T9,E347 (AT) ;header+1 -> 8008E347: lH' LBU T6,0002 (V0) LUI AT,8009 LUI A3,8009 SB T6,E346 (AT) ;header+2 -> 8008E346: Lh' LBU T8,0003 (V0) LUI AT,8009 ADDIU A3,A3,E34C SB T8,E345 (AT) ;header+3 -> 8008E345: dE' LBU T1,0004 (V0) LUI AT,8009 SB T1,E344 (AT) ;header+4 -> 8008E344: De' LBU T3,0005 (V0) LUI AT,8009 SB T3,E343 (AT) ;header+5 -> 8008E343: bC' LBU T4,0006 (V0) LUI AT,8009 SB T4,E342 (AT) ;header+6 -> 8008E342: Bc' LBU T2,0007 (V0) LUI AT,8009 SB T2,E341 (AT) ;header+7 -> 8008E341: aF' LBU T5,0008 (V0) LUI AT,8009 SB T5,E340 (AT) ;header+8 -> 8008E340: Af' LBU T7,0009 (V0) LUI AT,8009 SB T7,E33F (AT) ;header+9 -> 8008E33F: hL LBU T9,000A (V0) LUI AT,8009 SB T9,E33E (AT) ;header+A -> 8008E33E: Hl LBU T6,000B (V0) LUI AT,8009 SB T6,E33D (AT) ;header+B -> 8008E33D: dE LBU T8,000C (V0) LUI AT,8009 SB T8,E33C (AT) ;header+C -> 8008E33C: De LBU T1,000D (V0) LUI AT,8009 SB T1,E33B (AT) ;header+D -> 8008E33B: bC LBU T3,000E (V0) LUI AT,8009 SB T3,E33A (AT) ;header+E -> 8008E33A: Bc LBU T4,0010 (V0) LBU T5,000F (V0) LUI AT,8009 SLL T2,T4,0x8 ADDU T7,T2,T5 ;T7= head[10]<<8 | head[F]: little-endian SH T7,E350 (AT) ;header[10:F] -> 8008E350: IY LBU T9,0012 (V0) LBU T8,0011 (V0) LUI AT,8009 SLL T6,T9,0x8 ADDU T1,T6,T8 SH T1,E34E (AT) ;header[12:11] -> 8008E34E: IX LBU T3,0013 (V0) ;T3= header[13]: interrupt LUI AT,8009 SRA T4,T3,0x2 ANDI T5,T4,0001 SB T5,0000 (A1) ;8008E34B = True if header[13] & 4 set: IFF2's interrupt enabled/disabled flag SB T5,E34A (AT) ;8008E34A = True if header[13] & 4 set LBU T7,0014 (V0) LUI AT,8009 SB T7,E349 (AT) ;header[14] -> 8008E349; R LBU T9,0015 (V0) LUI AT,8009 SB T9,E339 (AT) ;header[15] -> 8008E339: aF LBU T6,0016 (V0) LUI AT,8009 SB T6,E338 (AT) ;header[16] -> 8008E348: Af LBU T8,0018 (V0) LBU T3,0017 (V0) LUI AT,8009 SLL T1,T8,0x8 ADDU T4,T1,T3 SH T4,0000 (A2) ;header[18:17] -> 8008E352: SP LBU T2,0019 (V0) ;T2=header[19] ANDI A0,T2,00FF BLEZ A0,7F0D333C ;if > 0, add 1 to value SB T2,0000 (A3) ;header[19] -> 8008E34C: IMx (interrupt mode 0,1,2) ADDIU T5,A0,0001 SB T5,0000 (A3) ;header[19]+1 -> 8008E34C //7F0D323C: LHU V1,0000 (A2) ;V1= header[18:17]: SP LW V0,0000 (T0) ;V0= 8008E328: p->emu+game LW RA,0014 (SP) ADDIU T4,V1,0002 ADDU T6,V0,V1 LBU T8,0001 (T6) ;T8=emu+SP+1: pC ADDU T7,V1,V0 LBU T9,0000 (T7) ;T8=emu+SP+0: Pc SLL T1,T8,0x8 ADDIU SP,SP,0018 OR T3,T9,T1 SH T3,E354 (AT) ;8008E354 = emu+offset[1:0]: PC address, POPped from stack JR RA SH T4,0000 (A2) ;header[18:17]+=2: SP+=2 7F0D3374 107EA4 run Spectrum game ADDIU SP,SP,FFE8 SW RA,0014 (SP) JAL 7F0D2C84 ;Spectrum: read player1's controller input NOP JAL 7F0D382C ;Spectrum: processor emulation NOP LUI A0,8009 LW A0,E328 (A0) ;A0=8008E328: p->spectrum.ROMs LUI A1,8009 LW A1,E330 (A1) ;A1=8008E330: ???, 6000 large JAL 7F0D2A84 ADDIU A0,A0,4000 ;A0+=4000: p->spectrum.ROMs.game LW RA,0014 (SP) ADDIU SP,SP,0018 JR RA NOP 7F0D33B4 107EE4 Spectrum: draw screen accepts: A0=p->display list ADDIU SP,SP,FF60 OR V0,A0,R0 SW RA,002C (SP) SW S8,0028 (SP) SW S7,0024 (SP) SW S6,0020 (SP) SW S5,001C (SP) SW S4,0018 (SP) SW S3,0014 (SP) SW S2,0010 (SP) SW S1,000C (SP) SW S0,0008 (SP) LUI T3,E700 ADDIU A0,A0,0008 SW T3,0000 (V0) ;DL+0= rdp.pipesync.u SW R0,0004 (V0) ;DL+4= rdp.pipesync.l OR V1,A0,R0 LUI T6,8005 ADDIU T6,T6,ED0C ADDIU A0,A0,0008 LUI S0,FD10 SW T6,0004 (V1) ;DL+4= rdp.settextureimage.l: 8004ED0C OR A1,A0,R0 LUI T7,F500 SW S0,0000 (V1) ;DL+0= rdp.settextureimage.u: ci16 ORI T7,T7,0300 ADDIU A0,A0,0008 LUI S1,0700 SW T7,0000 (A1) ;DL+0= rdp.settile.u: rgba16, line 1, tmem 100 OR A2,A0,R0 SW S1,0004 (A1) ;DL+4= rdp.settile.l: tile #7 ADDIU A0,A0,0008 LUI S2,E600 OR A3,A0,R0 SW S2,0000 (A2) ;DL+0= rdp.loadsync.u SW R0,0004 (A2) ;DL+4= rdp.loadsync.l LUI T9,0703 ORI T9,T9,C000 ADDIU A0,A0,0008 LUI T8,F000 SW T8,0000 (A3) ;DL+0= rdp.loadtlut.u: (0,0) SW T9,0004 (A3) ;DL+4= rdp.loadtlut.l: tile #7; 10 entries at 0 OR V0,A0,R0 LUI T6,BA00 ORI T6,T6,1301 ADDIU A0,A0,0008 SW T6,0000 (V0) ;DL+0= rsp.setothermode_h.u: shift 13, 1 bit OR V1,A0,R0 SW R0,0004 (V0) ;DL+4= rsp.setothermode_h.l: texture perspective: none LUI T8,0F0A LUI T7,B900 ORI T7,T7,031D ORI T8,T8,4000 ADDIU A0,A0,0008 SW T8,0004 (V1) ;DL+4= rsp.setothermode_l.l: converge delta-ST clamp, force blender, blender: alpha memory, 0, alpha in, alpha fog, alpha shade, alpha 0 SW T7,0000 (V1) ;DL+0= rsp.setothermode_l.u: shift 3, 1D bits OR A1,A0,R0 LUI T9,FCFF ORI T9,T9,FFFF ADDIU A0,A0,0008 LUI T6,FFFC ORI T6,T6,F87C SW T9,0000 (A1) ;DL+0= rsp.setcombine.u OR A2,A0,R0 SW T6,0004 (A1) ;DL+4= rsp.setcombine.l LUI T7,BA00 ORI T7,T7,0C02 ADDIU A0,A0,0008 SW T7,0000 (A2) ;DL+0= rsp.setothermode_h.u: shift C, 2 bits SW R0,0004 (A2) ;DL+4= rsp.setothermode_h.l: texture filter: point OR A3,A0,R0 LUI T8,BB00 ORI T8,T8,0001 ADDIU T9,R0,FFFF SW T9,0004 (A3) ;DL+0= rsp.texture.l: default s,t SW T8,0000 (A3) ;DL+0= rsp.texture.u: no bowtie, no binary, on LUI S3,8009 LUI S6,073F LUI S7,BA00 LUI RA,F540 ADDIU A0,A0,0008 ORI RA,RA,0800 ORI S7,S7,0E02 ORI S6,S6,F200 ADDIU S3,S3,E330 ;S3=8008E330: SW R0,003C (SP) OR V0,R0,R0 LUI S4,F510 LUI S5,F300 ORI S8,R0,8000 LW T0,003C (SP) ADDIU V1,V0,0001 SLL T4,V1,0x6 SLL T5,V0,0x6 ADDIU T5,T5,0018 ADDIU T4,T4,0018 SLL T7,T4,0x2 SLL T9,T5,0x2 SLL T6,T0,0xB OR T0,T6,R0 ANDI T5,T9,0FFF ANDI T4,T7,0FFF SW V1,0034 (SP) OR A3,R0,R0 OR V0,A0,R0 ADDIU A0,A0,0008 SW T3,0000 (V0) ;DL+0= rdp.pipesync.u SW R0,0004 (V0) ;DL+4= rdp.pipesync.l OR V1,A0,R0 SW S0,0000 (V1) ;DL+0= rdp.settextureimage.u: ci16 LW T7,0000 (S3) ADDIU A0,A0,0008 OR A1,A0,R0 ADDU T8,T0,T7 SW T8,0004 (V1) ;DL+4= rdp.settextureimage.l: ADDIU A0,A0,0008 OR A2,A0,R0 SW S1,0004 (A1) SW S4,0000 (A1) ADDIU A0,A0,0008 OR T1,A0,R0 SW R0,0004 (A2) ;DL+4= rdp.loadsync.l SW S2,0000 (A2) ;DL+0= rdp.loadsync.u ADDIU A0,A0,0008 OR V0,A0,R0 SW S6,0004 (T1) ;DL+4= rdp.loadblock.l: tile #7; lrs 3FF, lrt 200 SW S5,0000 (T1) ;DL+0= rdp.loadblock.u: uls 0, ult 0 ADDIU A0,A0,0008 SW R0,0004 (V0) ;DL+4= rdp.pipesync.l SW T3,0000 (V0) ;DL+0= rdp.pipesync.u OR V1,A0,R0 ADDIU A0,A0,0008 OR A1,A0,R0 LUI T9,0001 SW S7,0000 (V1) ;DL+0= rdp.setothermode_h.u: shift E, 2 bits SW S8,0004 (V1) ;DL+4= rdp.setothermode_h.l: texture lookup table type: rgba ORI T9,T9,8060 SW T9,0004 (A1) ;DL+4= rdp.settile.l: tile #0; mask t 5, mask s 6 ADDIU A0,A0,0008 ADDIU V0,A3,0001 SW RA,0000 (A1) ;DL+0= rdp.settile.u: ci4, line 4 OR A2,A0,R0 LUI T7,007E LUI T6,F200 SLL T8,V0,0x6 SW T6,0000 (A2) ;DL+0= rdp.settilesize.u: ulr 0, ult 0 ORI T7,T7,07E0 ADDIU T9,T8,0020 SW T7,0004 (A2) ;DL+4= rdp.settilesize.l: tile #0; lrs 7E0, lrt 7E0 SLL T6,T9,0x2 ANDI T7,T6,0FFF SLL T8,T7,0xC LUI AT,E400 OR T9,T8,AT ADDIU A0,A0,0008 OR T6,T9,T4 SLL T7,A3,0x6 ADDIU T8,T7,0020 OR T2,A0,R0 SW T6,0000 (T2) ;DL+0= rdp.texrect.1.u: SLL T9,T8,0x2 ANDI T6,T9,0FFF SLL T7,T6,0xC ADDIU A0,A0,0008 OR V1,A0,R0 OR T8,T7,T5 SW T8,0004 (T2) ;DL+4= rdp.texrect.1.l: ADDIU A0,A0,0008 OR A1,A0,R0 LUI T7,0400 LUI T9,B400 ADDIU AT,R0,0004 SW T9,0000 (V1) ;DL+8= rdp.rdphalf_u ORI T7,T7,0400 SW R0,0004 (V1) ;DL+C= rdp.texrect.2.u: uls 0, ult 0 LUI T6,B300 OR A3,V0,R0 ADDIU T0,T0,0800 SW T6,0000 (A1) ;DL+10= rdp.rdphalf_l SW T7,0004 (A1) ;DL+14= rdp.texrect.2.l: dsdx 400, dtdy 400 BNE V0,AT,7F0D3554 ADDIU A0,A0,0008 LW T8,003C (SP) LW V0,0034 (SP) ADDIU AT,R0,0003 ADDIU T9,T8,0004 BNE V0,AT,7F0D351C SW T9,003C (SP) LW RA,002C (SP) LW S0,0008 (SP) LW S1,000C (SP) LW S2,0010 (SP) LW S3,0014 (SP) LW S4,0018 (SP) LW S5,001C (SP) LW S6,0020 (SP) LW S7,0024 (SP) LW S8,0028 (SP) ADDIU SP,SP,00A0 JR RA OR V0,A0,R0 7F0D36D8 108208 V0=input from source port (A1,A2) accepts: A0=(unused), A1=key: reg, A2=key: source: FE=keyboard, 1F=controller Port address is released to response: 111..... ........ device ...11111 ........ unset bit of half-row you're looking up (0xF would be row 5) ........ 11111111 source device Response should be a byte: 111..... specifies type of device (101: issue 2 keyboard, 111: issue 3 keyboard) ...11111 bit is zero if key pressed SW A1,0004 (SP) ;SP+4=A1 ANDI T6,A1,00FF ANDI V0,A2,00FF ADDIU AT,R0,00FE OR A1,T6,R0 ;A1->byte SW A0,0000 (SP) ;SP+0=A0 BNE V0,AT,7F0D37B4 ;use keyboard feed if 0xFE SW A2,0008 (SP) ;SP+8=A2 LUI A2,8005 ADDIU V1,R0,00FF ;V1=FF: init. mask ADDIU A2,A2,EC34 ;A2=8004EC34: keyboard buffer(?) OR V0,R0,R0 ;V0=0: init. offset ADDIU A3,R0,0008 //7F0D370C: loop to mask away any keys pressed in the packets being tested ANDI T8,A1,0001 BNE T8,R0,7F0D372C ;skip if reg set OR A0,A1,R0 ADDU T9,A2,V0 LBU T0,0000 (T9) ;T0=8004EC34+offset: AND V1,V1,T0 ANDI T1,V1,00FF OR V1,T1,R0 ;V1=masked keys //7F0D372C: SRL A1,A0,0x1 ;A1>>=1: next reg bit ANDI A0,A1,00FF ANDI T3,A0,0001 BNE T3,R0,7F0D3754 ;skip if reg set SRL A1,A0,0x1 ;A1>>=1 ADDU T4,A2,V0 LBU T5,0001 (T4) ;T0=8004EC34+offset+1: AND V1,V1,T5 ANDI T6,V1,00FF OR V1,T6,R0 ;V1=masked keys //7F0D3754: ANDI A0,A1,00FF ANDI T8,A0,0001 BNE T8,R0,7F0D3778 ;skip if reg set SRL A1,A0,0x1 ;A1>>=1 ADDU T9,A2,V0 LBU T0,0002 (T9) ;T0=8004EC34+offset+2: AND V1,V1,T0 ANDI T1,V1,00FF OR V1,T1,R0 ;V1=masked keys //7F0D3778: ANDI A0,A1,00FF ANDI T3,A0,0001 BNE T3,R0,7F0D379C ;skip if reg set SRL A1,A0,0x1 ;A1>>=1 ADDU T4,A2,V0 LBU T5,0003 (T4) ;T0=8004EC34+offset+3: AND V1,V1,T5 ANDI T6,V1,00FF OR V1,T6,R0 ;V1=masked keys //7F0D379C: return keyboard output ANDI T7,A1,00FF ADDIU V0,V0,0004 ;V0+=4 next four offsets BNE V0,A3,7F0D370C ;loop twice OR A1,T7,R0 JR RA OR V0,V1,R0 ;V0=key mask //7F0D37B4: Kempston joystick ADDIU AT,R0,001F BNE V0,AT,7F0D37C8 ;use controller if 1F LUI V0,8005 JR RA LBU V0,EC40 (V0) ;V0=8004EC40: controls //7F0D37C8: no output: all keys masked ADDIU V0,R0,00FF JR RA NOP 7F0D37D4 108304 unconditional return JR RA NOP 7F0D37DC 10830C V0= A3 written to port A2 or 0 if not required; A2 must be port 254 accepts: A0=#cycles (unused), A1=spec.A (unused), A2=port, A3=value ANDI T6,A2,00FF ADDIU AT,R0,00FE SW A0,0000 (SP) ;SP+0= #cycles SW A1,0004 (SP) ;SP+4= value SW A2,0008 (SP) ;SP+8= spec.A SW A3,000C (SP) ;SP+C= spec.A BNE T6,AT,7F0D3820 ;do nothing if not -2 ANDI T7,A3,00FF //7F0D37FC: port 254: keyboard LUI T8,8005 LBU T8,ED54 (T8) ;T8=8004ED54 ANDI V0,T7,0007 ;V0= entry->nibble LUI AT,8005 BEQ V0,T8,7F0D3818 ;skip if values same NOP SB V0,ED54 (AT) ;V0->8004ED54: update value //7F0D3818: JR RA OR V0,R0,R0 //7F0D3820: OR V0,R0,R0 JR RA NOP 7F0D382C 10835C Spectrum hardware emulation ADDIU SP,SP,FD50 LUI T6,0001 ORI T6,T6,1100 SW T6,0280 (SP) ;SP+280=11100: #cycles LUI T6,8009 LBU T6,E341 (T6) LUI T5,8009 LUI T7,8009 LUI T8,8009 LUI T9,8009 LUI T0,8009 LUI T1,8009 LBU T5,E340 (T5) LBU T7,E342 (T7) LBU T8,E343 (T8) LBU T9,E344 (T9) LBU T0,E345 (T0) LBU T1,E346 (T1) SB R0,02A5 (SP) SB R0,02A0 (SP) SB R0,02A1 (SP) SB R0,02A2 (SP) SB R0,02A3 (SP) SB R0,02A4 (SP) SB R0,02A6 (SP) SB T6,02A5 (SP) LUI T6,8009 SB T5,02A6 (SP) SB T7,02A4 (SP) SB T8,02A3 (SP) SB T9,02A2 (SP) SB T0,02A1 (SP) SB T1,02A0 (SP) LBU T6,E349 (T6) LUI T2,8009 LUI T3,8009 LUI T4,8009 LUI T5,8009 LUI T7,8009 LUI T8,8009 LUI T9,8009 LUI T0,8009 LUI T1,8009 LBU T2,E347 (T2) ;T2=8008E347: LBU T3,E34A (T3) ;T3=8008E34A: spec.IFF2 (l) LBU T4,E34B (T4) ;T4=8008E34B: spec.IFF2 (u) LBU T5,E348 (T5) ;T5=8008E348: spec.I LBU T7,E34C (T7) ;T7=8008E34C: spec.IM LHU T8,E34E (T8) ;T8=8008E34E: spec.IX LHU T9,E350 (T9) ;T9=8008E350: spec.IY LHU T0,E352 (T0) ;T0=8008E352: spec.SP LHU T1,E354 (T1) ;T1=8008E354: spec.PC SW S7,0030 (SP) SW S6,002C (SP) SW S5,0028 (SP) SW S4,0024 (SP) SW S3,0020 (SP) SW S2,001C (SP) SW S1,0018 (SP) SW S0,0014 (SP) LUI AT,0001 SB R0,029B (SP) SB R0,029C (SP) SB R0,029D (SP) SB R0,02A7 (SP) SB R0,029E (SP) SB R0,029F (SP) SH R0,0298 (SP) ;spec.PC = 0 SH R0,0292 (SP) SH R0,0294 (SP) SH R0,0296 (SP) SW R0,0288 (SP) LUI S0,8009 LUI S1,8009 LUI S2,8009 LUI S3,8009 LUI S4,8009 LUI S5,8009 LUI S6,8009 LUI S7,8009 ORI AT,AT,1100 ;AT=11100 SW RA,0034 (SP) SB R0,0286 (SP) SB R0,0287 (SP) SW R0,028C (SP) ;SP+28C=0: reset cycles LBU S0,E338 (S0) LBU S1,E339 (S1) LBU S2,E33A (S2) LBU S3,E33B (S3) LBU S4,E33C (S4) LBU S5,E33D (S5) LBU S6,E33E (S6) LBU S7,E33F (S7) SB T6,02A7 (SP) SW T6,0288 (SP) SB T2,029F (SP) SB T3,029D (SP) ;SP+29D = spec.IFF2 (l) SB T4,029C (SP) ;SP+29C = spec.IFF2 (u) SB T5,029E (SP) ;SP+29E = spec.I SB T7,029B (SP) ;SP+29B = spec.IM SH T8,0296 (SP) ;SP+296 = spec.IX SH T9,0294 (SP) ;SP+294 = spec.IY SH T0,0292 (SP) ;SP+292 = spec.SP BNE AT,R0,7F0D39D8 ;branch if AT set SH T1,0298 (SP) ;SP+298 = spec.PC LBU T3,0285 (SP) BNE T3,R0,7F0E281C //7F0D39D8: LUI T7,8009 LBU T4,0286 (SP) LW T7,E328 (T7) ;T7=p->spectrum.ROMs LHU T6,0298 (SP) ;T6=spec.PC ADDIU T5,R0,0001 SB R0,0286 (SP) SB T5,0285 (SP) SB T4,0287 (SP) ADDU T8,T6,T7 LBU T9,0000 (T8) ;T9= ROM+offset: cmd LW T1,0288 (SP) ADDIU T0,T6,0001 ANDI T3,T9,00FF SLTIU AT,T3,0100 ADDIU T2,T1,0001 SH T0,0298 (SP) ;spec.PC+=1 SW T2,0288 (SP) BEQ AT,R0,7F0E27FC SB T9,0284 (SP) SLL T3,T3,0x2 LUI AT,8006 ADDU AT,AT,T3 LW T3,C12C (AT) ;T3=8005C12C+offset: p->handler for cmd JR T3 NOP //7F0D3A3C: 00: NOP 4 LW T4,028C (SP) ADDIU T5,T4,0004 BEQ R0,R0,7F0E27FC SW T5,028C (SP) ;cycles+=4 //7F0D3A4C: 01: LD BC,nn 10 LW T7,028C (SP) LHU T9,0298 (SP) ;T9=spec.PC LUI T6,8009 LW T6,E328 (T6) ;T6=p->spectrum.ROMs ADDIU T8,T7,000A SW T8,028C (SP) ;cycles+=A ADDIU T4,T9,0001 ADDU T0,T9,T6 LBU S3,0000 (T0) ;S3= val.l: set to C ANDI T2,T4,FFFF SH T4,0298 (SP) ;spec.PC+=1 ADDU T3,T2,T6 LBU S2,0000 (T3) ;S2=val.u: set to B ADDIU T5,T4,0001 BEQ R0,R0,7F0E27FC SH T5,0298 (SP) ;spec.PC+=2 //7F0D3A8C 02: LD (BC),A 7 LW T7,028C (SP) SLL T0,S2,0x8 OR T9,T0,S3 ;T9= (S2,S3): spec.BC SLTI AT,T9,5B00 ADDIU T8,T7,0007 BNE AT,R0,7F0D3AC4 SW T8,028C (SP) ;cycles+=7 LUI T2,8009 LW T2,E328 (T2) ;T2=p->spectrum.ROMs SLL T6,S2,0x8 OR T3,T6,S3 ;T3= spec.BC ADDU T1,T2,T3 BEQ R0,R0,7F0E27FC SB S0,0000 (T1) ;S0->ROM+BC: set A to BC //7F0D3AC4: SLL T4,S2,0x8 OR T5,T4,S3 ;T5= spec.BC SLTI AT,T5,5800 BNE AT,R0,7F0D3B10 SLL T5,S2,0x8 LUI T7,8009 LW T7,E328 (T7) ;T7=p->spectrum.ROMs SLL T8,S2,0x8 OR T0,T8,S3 ;T0= spec.BC ADDU T9,T7,T0 SB S0,0000 (T9) ;S0->ROM+BC LUI T2,8009 LW T2,E32C (T2) SLL T3,S2,0x8 OR T1,T3,S3 ADDIU T6,R0,0001 ADDU T4,T2,T1 BEQ R0,R0,7F0E27FC SB T6,A800 (T4) //7F0D3B10: OR T8,T5,S3 ;T8=spec.BC SLTI AT,T8,4000 BNE AT,R0,7F0E27FC LUI T7,8009 LW T7,E328 (T7) ;T7=p->spectrum.ROMs SLL T0,S2,0x8 OR T9,T0,S3 ADDU T3,T7,T9 SB S0,0000 (T3) SLL T1,S2,0x8 OR T6,T1,S3 LUI T3,8009 SLL T8,S2,0x8 LW T3,E32C (T3) OR T0,T8,S3 ANDI T4,T6,1800 SRA T5,T4,0x3 ANDI T7,T0,00FF OR T9,T5,T7 ADDIU T2,R0,0001 ADDU T1,T3,T9 BEQ R0,R0,7F0E27FC SB T2,0000 (T1) //7F0D3B6C: 03: INC BC 6 LW T6,028C (SP) ADDIU S3,S3,0001 ;S3+=1 C+=1 ANDI T8,S3,00FF ADDIU T4,T6,0006 SW T4,028C (SP) ;cycles+=6 BNE T8,R0,7F0E27FC ;if overflow, also increment B OR S3,T8,R0 ADDIU S2,S2,0001 ;S2+=1 B+=1 ANDI T0,S2,00FF BEQ R0,R0,7F0E27FC OR S2,T0,R0 //7F0D3B98: 04: INC B 4 ADDIU S2,S2,0001 ;S2+=1 B+=1 ANDI T3,S2,00FF LW T5,028C (SP) ANDI T2,T3,000F SLTIU T1,T2,0001 OR S2,T3,R0 SLTIU T9,T3,0001 ANDI T4,T3,00A8 ANDI T6,S1,0001 OR T8,T6,T4 XORI T2,S2,0080 SLL T0,T1,0x4 ADDIU T7,T5,0004 OR T5,T8,T0 SLTIU T2,T2,0001 SLL T3,T9,0x6 SW T9,0044 (SP) OR T9,T5,T3 SLL T6,T2,0x2 OR S1,T9,T6 ANDI T4,S1,00FF SW T7,028C (SP) ;cycles+=4 OR S1,T4,R0 BEQ R0,R0,7F0E27FC SW T1,0048 (SP) //7F0D3BFC: 05: DEC B 4 LW T1,028C (SP) ANDI T0,S2,000F ADDIU S2,S2,FFFF ;S2-=1 B-=1 ADDIU T8,T1,0004 SW T8,028C (SP) ;cycles+=4 ANDI T6,S2,00FF SLTIU T7,T0,0001 SLL T3,T7,0x4 XORI T8,T6,007F SLTIU T8,T8,0001 ANDI T5,S1,0001 OR S1,T5,T3 SLL T0,T8,0x2 SW T7,0048 (SP) SLTIU T4,T6,0001 ANDI T1,T6,00A8 OR T7,T1,T0 SLL T3,T4,0x6 OR T2,T7,T3 ORI T9,S1,0002 OR S1,T9,T2 ANDI T9,S1,00FF OR S1,T9,R0 SW T4,0044 (SP) BEQ R0,R0,7F0E27FC OR S2,T6,R0 //7F0D3C64: 06: LD B,n 7 LW T6,028C (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=p->spectrum.ROMs LHU T8,0298 (SP) ;T8=spec.PC ADDIU T4,T6,0007 SW T4,028C (SP) ;cycles+=7 ADDU T0,T8,T1 LBU S2,0000 (T0) ;S2= val: B ADDIU T5,T8,0001 BEQ R0,R0,7F0E27FC SH T5,0298 (SP) ;spec.PC+=1 //7F0D3C90: 07: RLCA 4 SLL T2,S0,0x1 ;T2= spec.A * 2 SRA T9,S0,0x7 ;T9= sign of spec.A OR S0,T2,T9 ;spec.A = roll left 1 bit (order: 65432107) LW T7,028C (SP) ANDI T6,S0,00FF ANDI T1,T6,0029 ;T1= spec.A & 29 (00101001) ANDI T4,S1,00C4 ;T4= carry & C4 (11000100) OR S1,T4,T1 ;S1 = flags (12 cleared) ANDI T0,S1,00FF ADDIU T3,T7,0004 SW T3,028C (SP) ;cycles+=4 OR S0,T6,R0 BEQ R0,R0,7F0E27FC OR S1,T0,R0 //7F0D3CC8: 08: EX AF,AF' 4 LW T8,028C (SP) SB S0,027F (SP) SB S1,027E (SP) LBU T7,027F (SP) LBU T3,027E (SP) LBU S0,02A6 (SP) LBU S1,02A5 (SP) ADDIU T5,T8,0004 SW T5,028C (SP) ;cycles+=4 SB T7,02A6 (SP) BEQ R0,R0,7F0E27FC SB T3,02A5 (SP) //7F0D3CF8: 09: ADD HL,BC 11 LW T2,028C (SP) LBU T6,0287 (SP) LBU T1,0287 (SP) ADDIU T9,T2,000B BNE T6,R0,7F0D3D7C SW T9,028C (SP) ;cycles+=B ADDU T4,S7,S3 ANDI T1,T4,FFFF SRL T0,T1,0x8 ANDI T5,T0,FFFF ANDI T8,S6,000F ADDU T7,T5,T8 ANDI T3,S2,000F ADDU T2,T7,T3 SH T4,027C (SP) ADDIU AT,R0,000F SLT T9,AT,T2 LBU S7,027D (SP) ADDU T5,S6,S2 ADDU T2,T0,T5 SH T0,027C (SP) SH T2,027C (SP) LBU S6,027D (SP) SLL T6,T9,0x4 ;T6= HALFCARRY flag (10) ANDI T4,S1,00C4 ;T4= retained flags (11000100) OR T1,T6,T4 SRA T9,T2,0x8 ANDI T3,S6,0028 OR T6,T3,T9 OR S1,T1,T6 ANDI T4,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T4,R0 //7F0D3D7C: ADDIU AT,R0,0001 BNE T1,AT,7F0D3D94 SLL T2,S2,0x8 LHU T0,0296 (SP) BEQ R0,R0,7F0D3D9C SW T0,0278 (SP) //7F0D3D94: LHU T8,0294 (SP) SW T8,0278 (SP) //7F0D3D9C: LW T5,0278 (SP) OR T3,T2,S3 ADDIU AT,R0,0FFF ANDI T7,T5,0FFF ADDU T9,T7,T3 SLTU T6,AT,T9 LBU T3,0287 (SP) SLL T4,T6,0x4 ANDI T1,S1,00C4 SLL T8,S2,0x8 OR T2,T8,S3 OR S1,T1,T4 ANDI T0,S1,00FF ADDIU AT,R0,0001 ADDU T7,T5,T2 SW T7,0278 (SP) BNE T3,AT,7F0D3DEC OR S1,T0,R0 BEQ R0,R0,7F0D3DF4 SH T7,0296 (SP) //7F0D3DEC: LW T9,0278 (SP) SH T9,0294 (SP) //7F0D3DF4: LW T6,0278 (SP) SRL T1,T6,0x8 ANDI T4,T1,0028 SRL T0,T6,0x10 OR T8,T4,T0 OR S1,S1,T8 ANDI T5,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T5,R0 //7F0D3E18: 0A: LD A,(BC) 7 LW T2,028C (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=p->spectrum.ROMs SLL T7,S2,0x8 OR T9,T7,S3 ;T9=spec.BC ADDIU T3,T2,0007 SW T3,028C (SP) ;cycles+=7 ADDU T6,T9,T1 BEQ R0,R0,7F0E27FC LBU S0,0000 (T6) ;S0=ROM+BC: load to A //7F0D3E40: 0B: DEC BC 6 LW T4,028C (SP) SLTIU T8,S3,0001 ADDIU S3,S3,FFFF ;S3-=1 C-=1 ANDI T5,S3,00FF ADDIU T0,T4,0006 SW T0,028C (SP) ;cycles+=6 OR S3,T5,R0 BEQ T8,R0,7F0E27FC ;carry if necessary SW T8,0048 (SP) ADDIU S2,S2,FFFF ;S2-=1 B-=1 ANDI T3,S2,00FF BEQ R0,R0,7F0E27FC OR S2,T3,R0 //7F0D3E74: 0C: INC C 4 ADDIU S3,S3,0001 ;S3+=1 C+=1 ANDI T1,S3,00FF LW T7,028C (SP) ANDI T4,T1,000F SLTIU T0,T4,0001 OR S3,T1,R0 SLTIU T6,T1,0001 ANDI T5,T1,00A8 ANDI T8,S1,0001 OR T2,T8,T5 XORI T4,S3,0080 SLL T3,T0,0x4 ADDIU T9,T7,0004 OR T7,T2,T3 SLTIU T4,T4,0001 SLL T1,T6,0x6 SW T6,0044 (SP) OR T6,T7,T1 SLL T8,T4,0x2 OR S1,T6,T8 ANDI T5,S1,00FF SW T9,028C (SP) ;cycles+=4 OR S1,T5,R0 BEQ R0,R0,7F0E27FC SW T0,0048 (SP) //7F0D3ED8: 0D: DEC C 4 LW T0,028C (SP) ANDI T3,S3,000F ADDIU S3,S3,FFFF ;S3-=1 C-=1 ADDIU T2,T0,0004 SW T2,028C (SP) ;cycles+=4 ANDI T8,S3,00FF SLTIU T9,T3,0001 SLL T1,T9,0x4 XORI T2,T8,007F SLTIU T2,T2,0001 ANDI T7,S1,0001 OR S1,T7,T1 SLL T3,T2,0x2 SW T9,0048 (SP) SLTIU T5,T8,0001 ANDI T0,T8,00A8 OR T9,T0,T3 SLL T1,T5,0x6 OR T4,T9,T1 ORI T6,S1,0002 OR S1,T6,T4 ANDI T6,S1,00FF OR S1,T6,R0 SW T5,0044 (SP) BEQ R0,R0,7F0E27FC OR S3,T8,R0 //7F0D3F40: 0E: LD C,n 7 LW T8,028C (SP) LUI T0,8009 LW T0,E328 (T0) ;T0=p->spectrum.ROMs LHU T2,0298 (SP) ;T2=spec.PC ADDIU T5,T8,0007 SW T5,028C (SP) ;cycles+=7 ADDU T3,T2,T0 LBU S3,0000 (T3) ;S3= val: load to C ADDIU T7,T2,0001 BEQ R0,R0,7F0E27FC SH T7,0298 (SP) ;spec.PC+=1 //7F0D3F6C: 0F: RRCA 4 ANDI T6,S0,0001 SRA T5,S0,0x1 SLL T0,S0,0x7 OR S0,T5,T0 LW T9,028C (SP) ANDI T4,S1,00C4 ANDI T3,S0,00FF OR T8,T4,T6 ANDI T2,T3,0028 OR S1,T8,T2 ANDI T7,S1,00FF ADDIU T1,T9,0004 SW T1,028C (SP) ;cycles+=4 OR S0,T3,R0 BEQ R0,R0,7F0E27FC OR S1,T7,R0 //7F0D3FAC: 10: DJNZ d 13(8) LW T9,028C (SP) ADDIU S2,S2,FFFF ;spec.B-=1 ANDI T4,S2,00FF ADDIU T1,T9,0008 SW T1,028C (SP) ;cycles+=8 BNE T4,R0,7F0D3FD8 ;return if B empty OR S2,T4,R0 LHU T6,0298 (SP) ADDIU T8,T6,0001 BEQ R0,R0,7F0E27FC SH T8,0298 (SP) ;spec.PC+=1 //7F0D3FD8: LUI T0,8009 LW T0,E328 (T0) ;T0=p->spectrum.ROMs LHU T5,0298 (SP) ;T5=spec.PC LW T1,028C (SP) ADDU T3,T5,T0 LB T2,0000 (T3) ;T2= val ADDIU T4,T1,0005 SW T4,028C (SP) ;cycles+=5 13 total on jump ADDU T7,T5,T2 ADDIU T9,T7,0001 SH T9,0298 (SP) ;spec.PC+= val+1 BEQ R0,R0,7F0E27FC SW T2,0274 (SP) //7F0D400C: 11: LD DE,nn 10 LW T6,028C (SP) LHU T0,0298 (SP) ;T0=spec.PC LUI T3,8009 LW T3,E328 (T3) ;T3=p->spectrum.ROMs ADDIU T8,T6,000A SW T8,028C (SP) ;cycles+=A ADDIU T1,T0,0001 ADDU T5,T0,T3 LBU S5,0000 (T5) ;S5=ROM+PC: set to E ANDI T7,T1,FFFF SH T1,0298 (SP) ;spec.PC+=1 ADDU T9,T7,T3 LBU S4,0000 (T9) ;S4=ROM+PC+1: set to D ADDIU T4,T1,0001 BEQ R0,R0,7F0E27FC SH T4,0298 (SP) ;spec.PC+=1 //7F0D404C: 12: LD (DE),A 7 LW T6,028C (SP) SLL T5,S4,0x8 OR T0,T5,S5 ;T0= spec.DE SLTI AT,T0,5B00 ADDIU T8,T6,0007 BNE AT,R0,7F0D4084 SW T8,028C (SP) ;cycles+=7 LUI T7,8009 LW T7,E328 (T7) ;T7=p->spectrum.ROMs SLL T3,S4,0x8 OR T9,T3,S5 ;T9= spec.DE ADDU T2,T7,T9 BEQ R0,R0,7F0E27FC SB S0,0000 (T2) ;A0->ROM+DE //7F0D4084: SLL T1,S4,0x8 OR T4,T1,S5 SLTI AT,T4,5800 BNE AT,R0,7F0D40D0 SLL T4,S4,0x8 LUI T6,8009 LW T6,E328 (T6) ;T6=p->spectrum.ROMs SLL T8,S4,0x8 OR T5,T8,S5 ADDU T0,T6,T5 SB S0,0000 (T0) LUI T7,8009 LW T7,E32C (T7) SLL T9,S4,0x8 OR T2,T9,S5 ADDIU T3,R0,0001 ADDU T1,T7,T2 BEQ R0,R0,7F0E27FC SB T3,A800 (T1) //7F0D40D0: OR T8,T4,S5 SLTI AT,T8,4000 BNE AT,R0,7F0E27FC LUI T6,8009 LW T6,E328 (T6) ;T6=p->spectrum.ROMs SLL T5,S4,0x8 OR T0,T5,S5 ADDU T9,T6,T0 SB S0,0000 (T9) SLL T2,S4,0x8 OR T3,T2,S5 LUI T9,8009 SLL T8,S4,0x8 LW T9,E32C (T9) OR T5,T8,S5 ANDI T1,T3,1800 SRA T4,T1,0x3 ANDI T6,T5,00FF OR T0,T4,T6 ADDIU T7,R0,0001 ADDU T2,T9,T0 BEQ R0,R0,7F0E27FC SB T7,0000 (T2) //7F0D412C: 13: 1NC DE 6 LW T3,028C (SP) ADDIU S5,S5,0001 ;S5+=1 spec.E+=1 ANDI T8,S5,00FF ADDIU T1,T3,0006 SW T1,028C (SP) ;cycles+=6 BNE T8,R0,7F0E27FC ;inc D on overflow OR S5,T8,R0 ADDIU S4,S4,0001 ;S4+=1 spec.D+=1 ANDI T5,S4,00FF BEQ R0,R0,7F0E27FC OR S4,T5,R0 //7F0D4158: 14: INC D 4 ADDIU S4,S4,0001 ;S4+=1 spec.D+=1 ANDI T9,S4,00FF LW T4,028C (SP) ANDI T7,T9,000F SLTIU T2,T7,0001 OR S4,T9,R0 SLTIU T0,T9,0001 ANDI T1,T9,00A8 ANDI T3,S1,0001 OR T8,T3,T1 XORI T7,S4,0080 SLL T5,T2,0x4 ADDIU T6,T4,0004 OR T4,T8,T5 SLTIU T7,T7,0001 SLL T9,T0,0x6 SW T0,0044 (SP) OR T0,T4,T9 SLL T3,T7,0x2 OR S1,T0,T3 ANDI T1,S1,00FF SW T6,028C (SP) ;cycles+=4 OR S1,T1,R0 BEQ R0,R0,7F0E27FC SW T2,0048 (SP) //7F0D41BC: 15: DEC D 4 LW T2,028C (SP) ANDI T5,S4,000F ADDIU S4,S4,FFFF ;S4-=1 spec.D-=1 ADDIU T8,T2,0004 SW T8,028C (SP) ;cycles+=4 ANDI T3,S4,00FF SLTIU T6,T5,0001 SLL T9,T6,0x4 XORI T8,T3,007F SLTIU T8,T8,0001 ANDI T4,S1,0001 OR S1,T4,T9 SLL T5,T8,0x2 SW T6,0048 (SP) SLTIU T1,T3,0001 ANDI T2,T3,00A8 OR T6,T2,T5 SLL T9,T1,0x6 OR T7,T6,T9 ORI T0,S1,0002 OR S1,T0,T7 ANDI T0,S1,00FF OR S1,T0,R0 SW T1,0044 (SP) BEQ R0,R0,7F0E27FC OR S4,T3,R0 //7F0D4224: 16: LD D,n 7 LW T3,028C (SP) LUI T2,8009 LW T2,E328 (T2) ;T2=p->spectrum.ROMs LHU T8,0298 (SP) ;T8=spec.PC ADDIU T1,T3,0007 SW T1,028C (SP) ;cycles+=7 ADDU T5,T8,T2 LBU S4,0000 (T5) ;S4= val: set to D ADDIU T4,T8,0001 BEQ R0,R0,7F0E27FC SH T4,0298 (SP) ;spec.PC+=1 //7F0D4250: 17: RLA 4 SRA T7,S0,0x7 SLL T0,S0,0x1 ANDI T3,S1,0001 OR S0,T0,T3 LW T6,028C (SP) ANDI T1,S0,00FF ANDI T5,T1,0028 ANDI T2,S1,00C4 OR T8,T2,T5 OR S1,T8,T7 ADDIU T9,T6,0004 ANDI T6,S1,00FF SW T9,028C (SP) ;cycles+=4 SW T7,0270 (SP) OR S0,T1,R0 BEQ R0,R0,7F0E27FC OR S1,T6,R0 //7F0D4294: 18: JR n 12(7) LW T9,028C (SP) LUI T3,8009 LW T3,E328 (T3) ;T3=p->spectrum.ROMs LHU T0,0298 (SP) ;T0= spec.PC ADDIU T7,T9,0007 SW T7,028C (SP) ;cycles+=7 ADDU T1,T0,T3 LB T2,0000 (T1) ;T2= val ADDIU T6,T7,0005 SW T6,028C (SP) ;cycles+=5 12 total ADDU T5,T0,T2 ADDIU T8,T5,0001 SH T8,0298 (SP) ;spec.PC = ROM+d+1 BEQ R0,R0,7F0E27FC SW T2,026C (SP) //7F0D42D0: 19: ADD HL,DE 11 LW T9,028C (SP) LBU T3,0287 (SP) LBU T0,0287 (SP) ADDIU T7,T9,000B BNE T3,R0,7F0D4354 SW T7,028C (SP) ;cycles+=B ADDU T1,S7,S5 ANDI T0,T1,FFFF SRL T2,T0,0x8 ANDI T8,T2,FFFF ANDI T5,S6,000F ADDU T4,T8,T5 ANDI T6,S4,000F ADDU T9,T4,T6 SH T1,026A (SP) ADDIU AT,R0,000F SLT T7,AT,T9 LBU S7,026B (SP) ADDU T8,S6,S4 ADDU T9,T2,T8 SH T2,026A (SP) SH T9,026A (SP) LBU S6,026B (SP) SLL T3,T7,0x4 ANDI T1,S1,00C4 OR T0,T3,T1 SRA T7,T9,0x8 ANDI T6,S6,0028 OR T3,T6,T7 OR S1,T0,T3 ANDI T1,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T1,R0 //7F0D4354: ADDIU AT,R0,0001 BNE T0,AT,7F0D436C SLL T9,S4,0x8 LHU T2,0296 (SP) BEQ R0,R0,7F0D4374 SW T2,0264 (SP) //7F0D436C: LHU T5,0294 (SP) SW T5,0264 (SP) LW T8,0264 (SP) OR T6,T9,S5 ADDIU AT,R0,0FFF ANDI T4,T8,0FFF ADDU T7,T4,T6 SLTU T3,AT,T7 LBU T6,0287 (SP) SLL T1,T3,0x4 ANDI T0,S1,00C4 SLL T5,S4,0x8 OR T9,T5,S5 OR S1,T0,T1 ANDI T2,S1,00FF ADDIU AT,R0,0001 ADDU T4,T8,T9 SW T4,0264 (SP) BNE T6,AT,7F0D43C4 OR S1,T2,R0 BEQ R0,R0,7F0D43CC SH T4,0296 (SP) //7F0D43C4: LW T7,0264 (SP) SH T7,0294 (SP) //7F0D43CC: LW T3,0264 (SP) SRL T0,T3,0x8 ANDI T1,T0,0028 SRL T2,T3,0x10 OR T5,T1,T2 OR S1,S1,T5 ANDI T8,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T8,R0 //7F0D43F0: 1A: LD A,(DE) 7 LW T9,028C (SP) LUI T0,8009 LW T0,E328 (T0) ;T0=p->spectrum.ROMs SLL T4,S4,0x8 OR T7,T4,S5 ADDIU T6,T9,0007 SW T6,028C (SP) ;cycles+=7 ADDU T3,T7,T0 BEQ R0,R0,7F0E27FC LBU S0,0000 (T3) //7F0D4418: 1B: DEC DE 6 LW T1,028C (SP) SLTIU T5,S5,0001 ADDIU S5,S5,FFFF ;S5-=1 spec.E-=1 ANDI T8,S5,00FF ADDIU T2,T1,0006 SW T2,028C (SP) ;cycles+=6 OR S5,T8,R0 BEQ T5,R0,7F0E27FC ;dec D on overflow SW T5,0048 (SP) ADDIU S4,S4,FFFF ;S4-=1 spec.D-=1 ANDI T6,S4,00FF BEQ R0,R0,7F0E27FC OR S4,T6,R0 //7F0D444C: 1C: INC E 4 ADDIU S5,S5,0001 ;S5+=1 spec.E+=1 ANDI T0,S5,00FF LW T4,028C (SP) ANDI T1,T0,000F SLTIU T2,T1,0001 OR S5,T0,R0 SLTIU T3,T0,0001 ANDI T8,T0,00A8 ANDI T5,S1,0001 OR T9,T5,T8 XORI T1,S5,0080 SLL T6,T2,0x4 ADDIU T7,T4,0004 OR T4,T9,T6 SLTIU T1,T1,0001 SLL T0,T3,0x6 SW T3,0044 (SP) OR T3,T4,T0 SLL T5,T1,0x2 OR S1,T3,T5 ANDI T8,S1,00FF SW T7,028C (SP) ;cycles+=4 OR S1,T8,R0 BEQ R0,R0,7F0E27FC SW T2,0048 (SP) //7F0D44B0: 1D: DEC E 4 LW T2,028C (SP) ANDI T6,S5,000F ADDIU S5,S5,FFFF ;S5-=1 spec.E-=1 ADDIU T9,T2,0004 SW T9,028C (SP) ;cycles+=4 ANDI T5,S5,00FF SLTIU T7,T6,0001 SLL T0,T7,0x4 XORI T9,T5,007F SLTIU T9,T9,0001 ANDI T4,S1,0001 OR S1,T4,T0 SLL T6,T9,0x2 SW T7,0048 (SP) SLTIU T8,T5,0001 ANDI T2,T5,00A8 OR T7,T2,T6 SLL T0,T8,0x6 OR T1,T7,T0 ORI T3,S1,0002 OR S1,T3,T1 ANDI T3,S1,00FF OR S1,T3,R0 SW T8,0044 (SP) BEQ R0,R0,7F0E27FC OR S5,T5,R0 //7F0D4518: 1E: LD E,n 7 LW T5,028C (SP) LUI T2,8009 LW T2,E328 (T2) ;T2=p->spectrum.ROMs LHU T9,0298 (SP) ;T9=spec.PC ADDIU T8,T5,0007 SW T8,028C (SP) ;cycles+=7 ADDU T6,T9,T2 LBU S5,0000 (T6) ;S5= val: set spec.E ADDIU T4,T9,0001 BEQ R0,R0,7F0E27FC SH T4,0298 (SP) ;spec.PC+=1 //7F0D4544: 1F: RRA 4 ANDI T1,S0,0001 SRA T3,S0,0x1 SLL T5,S1,0x7 OR S0,T3,T5 LW T7,028C (SP) ANDI T8,S0,00FF ANDI T6,T8,0028 ANDI T2,S1,00C4 OR T9,T2,T6 OR S1,T9,T1 ADDIU T0,T7,0004 ANDI T7,S1,00FF SW T0,028C (SP) ;cycles+=4 SW T1,0260 (SP) OR S0,T8,R0 BEQ R0,R0,7F0E27FC OR S1,T7,R0 //7F0D4588: 20: JR NZ,n 12(7) LW T0,028C (SP) ANDI T3,S1,0040 LHU T2,0298 (SP) ;T2=spec.PC ADDIU T1,T0,0007 BEQ T3,R0,7F0D45B0 SW T1,028C (SP) ;cycles+=7 LHU T5,0298 (SP) ADDIU T8,T5,0001 BEQ R0,R0,7F0E27FC SH T8,0298 (SP) ;spec.SP+=1 LUI T6,8009 LW T6,E328 (T6) ;T6=p->spectrum.ROMs LW T1,028C (SP) ADDU T9,T2,T6 LB T4,0000 (T9) ;T4= val ADDIU T3,T1,0005 SW T3,028C (SP) ;cycles+=5 total 12 ADDU T7,T2,T4 ADDIU T0,T7,0001 SH T0,0298 (SP) BEQ R0,R0,7F0E27FC SW T4,025C (SP) //7F0D45E0: 21: LD HL,nn 10 LW T5,028C (SP) LBU T6,0287 (SP) LHU T9,0298 (SP) ;T9=spec.PC ADDIU T8,T5,000A BNE T6,R0,7F0D4628 SW T8,028C (SP) ;cycles+=A LUI T2,8009 LW T2,E328 (T2) ;T2=p->spectrum.ROMs ADDIU T3,T9,0001 ANDI T0,T3,FFFF ADDU T4,T9,T2 LBU S7,0000 (T4) SH T3,0298 (SP) ;spec.PC+=1 ADDU T1,T0,T2 LBU S6,0000 (T1) ADDIU T5,T3,0001 BEQ R0,R0,7F0E27FC SH T5,0298 (SP) ;spec.PC+=1 //7F0D4628: LBU T8,0287 (SP) ADDIU AT,R0,0001 LHU T6,0298 (SP) ;T6=spec.PC BNE T8,AT,7F0D4664 LHU T5,0298 (SP) ;T5=spec.PC LUI T4,8009 LW T4,E328 (T4) ;T4=p->spectrum.ROMs ADDU T2,T4,T6 LBU T1,0001 (T2) ADDU T9,T6,T4 LBU T0,0000 (T9) SLL T7,T1,0x8 OR T3,T0,T7 BEQ R0,R0,7F0D4688 SH T3,0296 (SP) //7F0D4664: LUI T8,8009 LW T8,E328 (T8) ;T8=p->spectrum.ROMs ADDU T6,T8,T5 LBU T2,0001 (T6) ADDU T9,T5,T8 LBU T4,0000 (T9) SLL T1,T2,0x8 OR T0,T4,T1 SH T0,0294 (SP) //7F0D4688: LHU T7,0298 (SP) ADDIU T3,T7,0002 BEQ R0,R0,7F0E27FC SH T3,0298 (SP) ;spec.PC+=2 //7F0D4698: 22: LD (nn),HL 16 LW T9,028C (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=p->spectrum.ROMs LHU T5,0298 (SP) ;T5=spec.PC ADDIU T8,T9,0010 SW T8,028C (SP) ;cycles+=10 ADDU T1,T6,T5 LBU T0,0001 (T1) ADDU T2,T5,T6 LBU T4,0000 (T2) LBU T8,0287 (SP) SLL T7,T0,0x8 ADDIU T9,T5,0002 OR T3,T4,T7 SH T3,025A (SP) BNE T8,R0,7F0D4828 SH T9,0298 (SP) ;spec.PC+=2 ANDI T2,T3,FFFF SLTI AT,T2,5B00 BNE AT,R0,7F0D4700 LHU T0,025A (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=p->spectrum.ROMs ADDU T1,T6,T2 BEQ R0,R0,7F0D4778 SB S7,0000 (T1) //7F0D4700: SLTI AT,T0,5800 BNE AT,R0,7F0D4738 LHU T6,025A (SP) LUI T4,8009 LW T4,E328 (T4) ;T4=p->spectrum.ROMs LUI T5,8009 ADDIU T3,R0,0001 ADDU T7,T4,T0 SB S7,0000 (T7) LHU T9,025A (SP) LW T5,E32C (T5) ADDU T8,T5,T9 BEQ R0,R0,7F0D4778 SB T3,A800 (T8) //7F0D4738: SLTI AT,T6,4000 BNE AT,R0,7F0D4778 LUI T2,8009 LW T2,E328 (T2) ;T2=p->spectrum.ROMs LUI T8,8009 ADDIU T4,R0,0001 ADDU T1,T2,T6 SB S7,0000 (T1) LHU T0,025A (SP) LW T8,E32C (T8) ANDI T7,T0,1800 SRA T5,T7,0x3 ANDI T9,T0,00FF OR T3,T5,T9 ADDU T2,T8,T3 SB T4,0000 (T2) //7F0D4778: LHU T6,025A (SP) LHU T5,025A (SP) LUI T7,8009 ADDIU T1,T6,0001 SLTI AT,T1,5B00 BNE AT,R0,7F0D47A4 ADDIU T9,T5,0001 LW T7,E328 (T7) ;T7=p->spectrum.ROMs ADDU T0,T7,T6 BEQ R0,R0,7F0E27FC SB S6,0001 (T0) //7F0D47A4: SLTI AT,T9,5800 BNE AT,R0,7F0D47DC LHU T6,025A (SP) LUI T8,8009 LW T8,E328 (T8) ;T8=p->spectrum.ROMs LUI T2,8009 ADDIU T4,R0,0001 ADDU T3,T8,T5 SB S6,0001 (T3) LHU T1,025A (SP) LW T2,E32C (T2) ADDU T7,T2,T1 BEQ R0,R0,7F0E27FC SB T4,A801 (T7) //7F0D47DC: ADDIU T0,T6,0001 SLTI AT,T0,4000 BNE AT,R0,7F0E27FC LUI T9,8009 LW T9,E328 (T9) ;T9=p->spectrum.ROMs ADDIU T5,R0,0001 ADDU T8,T9,T6 SB S6,0001 (T8) LHU T3,025A (SP) LUI T9,8009 LW T9,E32C (T9) ADDIU T2,T3,0001 ANDI T1,T2,1800 SRA T4,T1,0x3 ANDI T7,T2,00FF OR T0,T4,T7 ADDU T6,T9,T0 BEQ R0,R0,7F0E27FC SB T5,0000 (T6) //7F0D4728: LBU T8,0287 (SP) ADDIU AT,R0,0001 LHU T3,025A (SP) BNE T8,AT,7F0D49A4 SLTI AT,T3,5B00 BNE AT,R0,7F0D485C LHU T7,025A (SP) LUI T2,8009 LW T2,E328 (T2) ;T2=p->spectrum.ROMs LHU T1,0296 (SP) ADDU T4,T2,T3 BEQ R0,R0,7F0D48DC SB T1,0000 (T4) //7F0D475C: SLTI AT,T7,5800 BNE AT,R0,7F0D4898 LHU T1,025A (SP) LUI T0,8009 LW T0,E328 (T0) ;T0=p->spectrum.ROMs LHU T9,0296 (SP) LUI T8,8009 ADDU T5,T0,T7 SB T9,0000 (T5) LHU T2,025A (SP) LW T8,E32C (T8) ADDIU T6,R0,0001 ADDU T3,T8,T2 BEQ R0,R0,7F0D48DC SB T6,A800 (T3) //7F0D4798: SLTI AT,T1,4000 BNE AT,R0,7F0D48DC LUI T0,8009 LW T0,E328 (T0) ;T0=p->spectrum.ROMs LHU T4,0296 (SP) ADDIU T9,R0,0001 ADDU T7,T0,T1 SB T4,0000 (T7) LHU T5,025A (SP) LUI T0,8009 LW T0,E32C (T0) ANDI T8,T5,1800 SRA T2,T8,0x3 ANDI T6,T5,00FF OR T3,T2,T6 ADDU T1,T0,T3 SB T9,0000 (T1) LHU T4,025A (SP) LHU T0,025A (SP) LHU T8,0296 (SP) ADDIU T7,T4,0001 SLTI AT,T7,5B00 BNE AT,R0,7F0D4910 ADDIU T3,T0,0001 LUI T2,8009 LW T2,E328 (T2) ;T2=p->spectrum.ROMs SRA T5,T8,0x8 ADDU T6,T2,T4 BEQ R0,R0,7F0E27FC SB T5,0001 (T6) //7F0D4810: SLTI AT,T3,5800 BNE AT,R0,7F0D4950 LHU T3,025A (SP) LUI T7,8009 LW T7,E328 (T7) ;T7=p->spectrum.ROMs LHU T9,0296 (SP) LUI T4,8009 ADDU T8,T7,T0 SRA T1,T9,0x8 SB T1,0001 (T8) LHU T5,025A (SP) LW T4,E32C (T4) ADDIU T2,R0,0001 ADDU T6,T4,T5 BEQ R0,R0,7F0E27FC SB T2,A801 (T6) //7F0D4850: ADDIU T9,T3,0001 SLTI AT,T9,4000 BNE AT,R0,7F0E27FC LHU T7,0296 (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=p->spectrum.ROMs SRA T0,T7,0x8 ADDIU T4,R0,0001 ADDU T8,T1,T3 SB T0,0001 (T8) LHU T5,025A (SP) LUI T3,8009 LW T3,E32C (T3) ADDIU T2,T5,0001 ANDI T6,T2,1800 SRA T9,T6,0x3 ANDI T7,T2,00FF OR T1,T9,T7 ADDU T0,T3,T1 BEQ R0,R0,7F0E27FC SB T4,0000 (T0) //7F0D48A4: LHU T8,025A (SP) LHU T9,025A (SP) LUI T6,8009 SLTI AT,T8,5B00 BNEL AT,R0,7F0D49D4 SLTI AT,T9,5800 LW T6,E328 (T6) ;T6=p->spectrum.ROMs LHU T5,0294 (SP) ADDU T2,T6,T8 BEQ R0,R0,7F0D4A50 SB T5,0000 (T2) //7F0D48D0: SLTI AT,T9,5800 BNE AT,R0,7F0D4A0C LHU T5,025A (SP) LUI T3,8009 LW T3,E328 (T3) ;T3=p->spectrum.ROMs LHU T7,0294 (SP) LUI T0,8009 ADDU T1,T3,T9 SB T7,0000 (T1) LHU T6,025A (SP) LW T0,E32C (T0) ADDIU T4,R0,0001 ADDU T8,T0,T6 BEQ R0,R0,7F0D4A50 SB T4,A800 (T8) //7F0D490C: SLTI AT,T5,4000 BNE AT,R0,7F0D4A50 LUI T3,8009 LW T3,E328 (T3) ;T3=p->spectrum.ROMs LHU T2,0294 (SP) ADDIU T7,R0,0001 ADDU T9,T3,T5 SB T2,0000 (T9) LHU T1,025A (SP) LUI T3,8009 LW T3,E32C (T3) ANDI T0,T1,1800 SRA T6,T0,0x3 ANDI T4,T1,00FF OR T8,T6,T4 ADDU T5,T3,T8 SB T7,0000 (T5) LHU T2,025A (SP) LHU T3,025A (SP) LHU T0,0294 (SP) ADDIU T9,T2,0001 SLTI AT,T9,5B00 BNE AT,R0,7F0D4A84 ADDIU T8,T3,0001 LUI T6,8009 LW T6,E328 (T6) ;T6=p->spectrum.ROMs SRA T1,T0,0x8 ADDU T4,T6,T2 BEQ R0,R0,7F0E27FC SB T1,0001 (T4) //7F0D4A84: SLTI AT,T8,5800 BNE AT,R0,7F0D4AC4 LHU T8,025A (SP) LUI T9,8009 LW T9,E328 (T9) ;T9=p->spectrum.ROMs LHU T7,0294 (SP) LUI T2,8009 ADDU T0,T9,T3 SRA T5,T7,0x8 SB T5,0001 (T0) LHU T1,025A (SP) LW T2,E32C (T2) ADDIU T6,R0,0001 ADDU T4,T2,T1 BEQ R0,R0,7F0E27FC SB T6,A801 (T4) //7F0D4AC4: ADDIU T7,T8,0001 SLTI AT,T7,4000 BNE AT,R0,7F0E27FC LHU T9,0294 (SP) LUI T5,8009 LW T5,E328 (T5) ;T5=p->spectrum.ROMs SRA T3,T9,0x8 ADDIU T2,R0,0001 ADDU T0,T5,T8 SB T3,0001 (T0) LHU T1,025A (SP) LUI T8,8009 LW T8,E32C (T8) ADDIU T6,T1,0001 ANDI T4,T6,1800 SRA T7,T4,0x3 ANDI T9,T6,00FF OR T5,T7,T9 ADDU T3,T8,T5 BEQ R0,R0,7F0E27FC SB T2,0000 (T3) //7F0D4B18: 23: INC HL 6 LW T0,028C (SP) LBU T4,0287 (SP) LBU T9,0287 (SP) ADDIU T1,T0,0006 BNE T4,R0,7F0D4B50 SW T1,028C (SP) ;cycles+=6 ADDIU S7,S7,0001 ANDI T6,S7,00FF BNE T6,R0,7F0E27FC OR S7,T6,R0 ADDIU S6,S6,0001 ANDI T7,S6,00FF BEQ R0,R0,7F0E27FC OR S6,T7,R0 //7F0D4B50: ADDIU AT,R0,0001 BNE T9,AT,7F0D4B6C LHU T2,0294 (SP) LHU T8,0296 (SP) ADDIU T5,T8,0001 BEQ R0,R0,7F0E27FC SH T5,0296 (SP) //7F0D4B6C: ADDIU T3,T2,0001 BEQ R0,R0,7F0E27FC SH T3,0294 (SP) //7F0D4B78: 24: INC H 4 LW T0,028C (SP) LBU T4,0287 (SP) LBU T8,0287 (SP) ADDIU T1,T0,0004 BNE T4,R0,7F0D4BE8 SW T1,028C (SP) ;cycles+=4 ADDIU S6,S6,0001 ANDI T6,S6,00FF ANDI T9,T6,000F SLTIU T8,T9,0001 OR S6,T6,R0 SLTIU T7,T6,0001 ANDI T2,T6,00A8 ANDI T5,S1,0001 OR T3,T5,T2 XORI T9,S6,0080 SLL T0,T8,0x4 OR T1,T3,T0 SLTIU T9,T9,0001 SLL T6,T7,0x6 SW T7,0044 (SP) OR T7,T1,T6 SLL T5,T9,0x2 OR S1,T7,T5 ANDI T2,S1,00FF OR S1,T2,R0 BEQ R0,R0,7F0E27FC SW T8,0048 (SP) //7F0D4BE8: ADDIU AT,R0,0001 BNE T8,AT,7F0D4C00 LHU T0,0294 (SP) LHU T3,0296 (SP) BEQ R0,R0,7F0D4C04 SW T3,0048 (SP) //7F0D4C00: SW T0,0048 (SP) //7F0D4C04: LW T4,0048 (SP) ANDI T0,S1,0001 ADDIU AT,R0,0001 SRA T6,T4,0x8 ADDIU T2,T6,0001 ANDI T7,T2,00FF SLTIU T5,T7,0001 ANDI T4,T2,00FF SB T6,0259 (SP) ANDI T1,T4,00A8 SW T5,0044 (SP) ANDI T8,T2,000F LW T9,0044 (SP) SLTIU T3,T8,0001 OR T6,T0,T1 SLL T7,T3,0x4 OR T5,T6,T7 XORI T0,T4,0080 SB T2,0259 (SP) SLTIU T0,T0,0001 SLL T2,T9,0x6 LBU T6,0287 (SP) OR T8,T5,T2 SLL T1,T0,0x2 OR S1,T8,T1 SW T3,0048 (SP) ANDI T3,S1,00FF BNE T6,AT,7F0D4C90 OR S1,T3,R0 LHU T7,0296 (SP) SLL T5,T4,0x8 ANDI T9,T7,00FF OR T2,T9,T5 BEQ R0,R0,7F0E27FC SH T2,0296 (SP) //7F0D4C90: LHU T0,0294 (SP) LBU T1,0259 (SP) ANDI T8,T0,00FF SLL T3,T1,0x8 OR T6,T8,T3 BEQ R0,R0,7F0E27FC SH T6,0294 (SP) //7F0D4CAC: 25: DEC H 4 LW T7,028C (SP) LBU T9,0287 (SP) LBU T6,0287 (SP) ADDIU T4,T7,0004 BNE T9,R0,7F0D4D20 SW T4,028C (SP) ;cycles+=4 ANDI T5,S6,000F ADDIU S6,S6,FFFF ANDI T6,S6,00FF SLTIU T2,T5,0001 SLL T1,T2,0x4 XORI T9,T6,007F SLTIU T9,T9,0001 ANDI T0,S1,0001 OR S1,T0,T1 SLL T5,T9,0x2 SW T2,0048 (SP) SLTIU T7,T6,0001 ANDI T4,T6,00A8 OR T2,T4,T5 SLL T1,T7,0x6 OR T8,T2,T1 ORI T3,S1,0002 OR S1,T3,T8 ANDI T3,S1,00FF OR S1,T3,R0 SW T7,0044 (SP) BEQ R0,R0,7F0E27FC OR S6,T6,R0 //7F0D4D20: ADDIU AT,R0,0001 BNE T6,AT,7F0D4D38 LHU T9,0294 (SP) LHU T7,0296 (SP) BEQ R0,R0,7F0D4D3C SW T7,0048 (SP) //7F0D4D38: SW T9,0048 (SP) //7F0D4D3C: LW T4,0048 (SP) ANDI T8,S1,0001 ADDIU AT,R0,0001 SRA T0,T4,0x8 ANDI T2,T0,000F SLTIU T1,T2,0001 SLL T3,T1,0x4 OR S1,T8,T3 ANDI T9,T0,00FF ADDIU T4,T9,FFFF ANDI T8,T4,00FF XORI T3,T8,007F ORI T6,S1,0002 SB T0,0258 (SP) OR S1,T6,R0 SLTIU T3,T3,0001 ANDI T5,T4,00FF SW T1,0048 (SP) ANDI T1,T4,00A8 SLTIU T0,T5,0001 SLL T6,T3,0x2 OR T7,T1,T6 SLL T9,T0,0x6 LBU T8,0287 (SP) OR T5,T7,T9 OR S1,S1,T5 ANDI T2,S1,00FF OR S1,T2,R0 SW T0,0044 (SP) BNE T8,AT,7F0D4DD0 SB T4,0258 (SP) LHU T3,0296 (SP) SLL T0,T4,0x8 ANDI T1,T3,00FF OR T7,T1,T0 BEQ R0,R0,7F0E27FC SH T7,0296 (SP) //7F0D4DD0: LHU T9,0294 (SP) LBU T2,0258 (SP) ANDI T5,T9,00FF SLL T8,T2,0x8 OR T3,T5,T8 BEQ R0,R0,7F0E27FC SH T3,0294 (SP) //7F0D4DEC: 26: LD H,n 7 LW T4,028C (SP) LBU T1,0287 (SP) LBU T2,0287 (SP) ADDIU T6,T4,0007 BNE T1,R0,7F0D4E1C SW T6,028C (SP) ;cycles+=7 LUI T7,8009 LW T7,E328 (T7) ;T7=p->spectrum.ROMs LHU T0,0298 (SP) ;T0=spec.PC ADDU T9,T0,T7 BEQ R0,R0,7F0D4E78 LBU S6,0000 (T9) //7F0D4E1C: ADDIU AT,R0,0001 BNE T2,AT,7F0D4E54 LHU T9,0298 (SP) ;T9=spec.PC LUI T8,8009 LW T8,E328 (T8) ;T8=p->spectrum.ROMs LHU T5,0298 (SP) ;T5=spec.PC LHU T1,0296 (SP) ADDU T3,T5,T8 LBU T4,0000 (T3) ANDI T0,T1,00FF SLL T6,T4,0x8 OR T7,T6,T0 BEQ R0,R0,7F0D4E78 SH T7,0296 (SP) //7F0D4E54: LUI T2,8009 LW T2,E328 (T2) ;T2=p->spectrum.ROMs LHU T4,0294 (SP) ADDU T5,T9,T2 LBU T8,0000 (T5) ANDI T1,T4,00FF SLL T3,T8,0x8 OR T6,T3,T1 SH T6,0294 (SP) LHU T0,0298 (SP) ;T0=spec.PC ADDIU T7,T0,0001 BEQ R0,R0,7F0E27FC SH T7,0298 (SP) ;spec.PC+=1 //7F0D4E88: 27: DAA 4 LW T9,028C (SP) ANDI T5,S1,0001 ANDI T8,S1,0010 ADDIU T2,T9,0004 SW T2,028C (SP) ;cycles+=4 SB T5,0256 (SP) BNE T8,R0,7F0D4EB4 SB R0,0257 (SP) ANDI T4,S0,000F SLTI AT,T4,000A BNE AT,R0,7F0D4EBC ADDIU T3,R0,0006 SB T3,0257 (SP) ANDI T1,S1,0001 BNE T1,R0,7F0D4ED8 ANDI T9,S1,0002 SRA T6,S0,0x4 SLTI AT,T6,000A BNE AT,R0,7F0D4EE4 NOP LBU T0,0257 (SP) ORI T7,T0,0060 SB T7,0257 (SP) BEQ T9,R0,7F0D4F5C SLTI AT,S0,0091 LBU T2,0257 (SP) ANDI T7,S0,000F SUBU T5,S0,T2 ANDI T8,T5,01FF ANDI T3,T8,00A8 SRA T6,T8,0x8 ANDI T9,T2,000F SLT T5,T7,T9 OR T0,T3,T6 XOR T3,S0,T2 SLL T4,T5,0x4 XOR T9,T8,S0 SH T8,0254 (SP) LBU S0,0255 (SP) ANDI T6,T3,0080 AND T5,T6,T9 OR T1,T0,T4 SRA T0,T5,0x5 OR S1,T1,T0 SB T2,0253 (SP) SLTIU T3,S0,0001 SLL T7,T3,0x6 ORI T2,S1,0002 OR S1,T2,T7 ANDI T6,S1,00FF OR S1,T6,R0 BEQ R0,R0,7F0D4FE8 SW T3,0048 (SP) //7F0D4F5C: BNE AT,R0,7F0D4F78 ANDI T9,S0,000F SLTI AT,T9,000A BNE AT,R0,7F0D4F78 LBU T5,0257 (SP) ORI T1,T5,0060 SB T1,0257 (SP) LBU T0,0257 (SP) ANDI T6,S0,000F ADDIU AT,R0,000F ADDU T2,S0,T0 ANDI T3,T2,00A8 SRA T8,T2,0x8 ANDI T9,T0,000F ADDU T5,T6,T9 OR T7,T3,T8 NOR T8,S0,R0 SLT T1,AT,T5 XOR T5,T2,S0 SH T2,0250 (SP) LBU S0,0251 (SP) SLL T4,T1,0x4 XOR T6,T8,T0 ANDI T9,T6,0080 AND T1,T9,T5 OR T3,T7,T4 SRA T7,T1,0x5 SLTIU T8,S0,0001 SLL T6,T8,0x6 OR T4,T3,T7 OR S1,T4,T6 ANDI T2,S1,00FF OR S1,T2,R0 SW T8,0048 (SP) SB T0,024F (SP) LUI T9,8009 LW T9,E334 (T9) LBU T3,0256 (SP) ADDU T5,S0,T9 LBU T1,0000 (T5) OR T7,S1,T3 ANDI T4,T7,00FB OR S1,T1,T4 ANDI T8,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T8,R0 //7F0D5014: 28: JR Z,n 12(7) LW T0,028C (SP) ANDI T2,S1,0040 ;T2= ZERO flag LHU T9,0298 (SP) ;T9=spec.PC ADDIU T6,T0,0007 BEQ T2,R0,7F0D5058 ;branch if ZERO not set SW T6,028C (SP) ;cycles+=7 LUI T5,8009 LW T5,E328 (T5) ;T5=p->spectrum.ROMs ADDIU T0,T6,0005 ADDU T3,T9,T5 LB T7,0000 (T3) ;T7=ROM+PC: n SW T0,028C (SP) ;cycles+=5 12 total ADDU T1,T9,T7 ADDIU T4,T1,0001 SH T4,0298 (SP) ;PC+= n+1 BEQ R0,R0,7F0E27FC SW T7,0248 (SP) ;SP+248= n //7F0D5058: if set, advance to next cmd LHU T6,0298 (SP) ;T6=spec.PC ADDIU T2,T6,0001 BEQ R0,R0,7F0E27FC SH T2,0298 (SP) ;spec.PC+=1 //7F0D5068: 29: ADD HL,HL 11 LW T5,028C (SP) LBU T9,0287 (SP) ADDIU T3,T5,000B BNE T9,R0,7F0D518C SW T3,028C (SP) ;cycles+=B BNE T9,R0,7F0D50F0 LBU T1,0287 (SP) ADDU T7,S7,S7 ANDI T1,T7,FFFF SRL T4,T1,0x8 ANDI T0,T4,FFFF ANDI T8,S6,000F ADDU T6,T0,T8 ANDI T2,S6,000F ADDU T5,T6,T2 SH T7,0246 (SP) ADDIU AT,R0,000F SLT T3,AT,T5 LBU S7,0247 (SP) ADDU T0,S6,S6 ADDU T5,T4,T0 SH T4,0246 (SP) SH T5,0246 (SP) LBU S6,0247 (SP) SLL T9,T3,0x4 ANDI T7,S1,00C4 OR T1,T9,T7 SRA T3,T5,0x8 ANDI T2,S6,0028 OR T9,T2,T3 OR S1,T1,T9 ANDI T7,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T7,R0 //7F0D50F0: ADDIU AT,R0,0001 BNE T1,AT,7F0D5108 SLL T5,S6,0x8 LHU T4,0296 (SP) BEQ R0,R0,7F0D5110 SW T4,0240 (SP) //7F0D5108: LHU T8,0294 (SP) SW T8,0240 (SP) LW T0,0240 (SP) OR T2,T5,S7 ADDIU AT,R0,0FFF ANDI T6,T0,0FFF ADDU T3,T6,T2 SLTU T9,AT,T3 LBU T2,0287 (SP) SLL T7,T9,0x4 ANDI T1,S1,00C4 SLL T8,S6,0x8 OR T5,T8,S7 OR S1,T1,T7 ANDI T4,S1,00FF ADDIU AT,R0,0001 ADDU T6,T0,T5 SW T6,0240 (SP) BNE T2,AT,7F0D5160 OR S1,T4,R0 BEQ R0,R0,7F0D5168 SH T6,0296 (SP) //7F0D5160: LW T3,0240 (SP) SH T3,0294 (SP) LW T9,0240 (SP) SRL T1,T9,0x8 ANDI T7,T1,0028 SRL T4,T9,0x10 OR T8,T7,T4 OR S1,S1,T8 ANDI T0,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T0,R0 //7F0D518C: LBU T5,0287 (SP) ADDIU AT,R0,0001 LBU T1,0287 (SP) BNE T5,AT,7F0D52C0 NOP BNE T5,R0,7F0D5220 LBU T0,0287 (SP) LHU T2,0296 (SP) ANDI T7,S6,000F ADDIU AT,R0,000F ANDI T6,T2,00FF ADDU T3,S7,T6 ANDI T1,T3,FFFF SRL T9,T1,0x8 ANDI T4,T9,FFFF SRA T0,T2,0x8 ANDI T5,T0,000F ADDU T8,T4,T7 ADDU T6,T8,T5 SH T3,023E (SP) SLT T3,AT,T6 SLL T1,T3,0x4 LBU S7,023F (SP) ADDU T2,S6,T0 ADDU T3,T9,T2 SH T9,023E (SP) SH T3,023E (SP) LBU S6,023F (SP) ANDI T4,S1,00C4 OR T7,T1,T4 SRA T1,T3,0x8 ANDI T6,S6,0028 OR T4,T6,T1 OR S1,T7,T4 ANDI T7,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T7,R0 //7F0D5220: ADDIU AT,R0,0001 BNE T0,AT,7F0D5238 LHU T8,0294 (SP) LHU T9,0296 (SP) BEQ R0,R0,7F0D523C SW T9,0238 (SP) //7F0D5238: SW T8,0238 (SP) LHU T2,0296 (SP) LW T4,0238 (SP) ADDIU AT,R0,0FFF SRA T5,T2,0x8 SLL T3,T5,0x8 ANDI T6,T2,00FF OR T1,T3,T6 ANDI T7,T4,0FFF ADDU T0,T7,T1 SLTU T9,AT,T0 LBU T6,0287 (SP) SLL T8,T9,0x4 ANDI T5,S1,00C4 OR S1,T5,T8 ANDI T2,S1,00FF ADDIU AT,R0,0001 ADDU T3,T4,T1 SW T3,0238 (SP) BNE T6,AT,7F0D5294 OR S1,T2,R0 BEQ R0,R0,7F0D529C SH T3,0296 (SP) //7F0D5294: LW T7,0238 (SP) SH T7,0294 (SP) LW T0,0238 (SP) SRL T9,T0,0x8 ANDI T5,T9,0028 SRL T8,T0,0x10 OR T2,T5,T8 OR S1,S1,T2 ANDI T4,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T4,R0 //7F0D52C0: BNE T1,R0,7F0D5340 LBU T4,0287 (SP) LHU T6,0294 (SP) ANDI T5,S6,000F ADDIU AT,R0,000F ANDI T3,T6,00FF ADDU T7,S7,T3 ANDI T9,T7,FFFF SRL T0,T9,0x8 ANDI T8,T0,FFFF SRA T4,T6,0x8 ANDI T1,T4,000F ADDU T2,T8,T5 ADDU T3,T2,T1 SH T7,0236 (SP) SLT T7,AT,T3 SLL T9,T7,0x4 LBU S7,0237 (SP) ADDU T6,S6,T4 ADDU T7,T0,T6 SH T0,0236 (SP) SH T7,0236 (SP) LBU S6,0237 (SP) ANDI T8,S1,00C4 OR T5,T9,T8 SRA T9,T7,0x8 ANDI T3,S6,0028 OR T8,T3,T9 OR S1,T5,T8 ANDI T5,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T5,R0 //7F0D5340: ADDIU AT,R0,0001 BNE T4,AT,7F0D5358 LHU T2,0294 (SP) LHU T0,0296 (SP) BEQ R0,R0,7F0D535C SW T0,0230 (SP) //7F0D5358: SW T2,0230 (SP) LHU T6,0294 (SP) LW T8,0230 (SP) ADDIU AT,R0,0FFF SRA T1,T6,0x8 SLL T7,T1,0x8 ANDI T3,T6,00FF OR T9,T7,T3 ANDI T5,T8,0FFF ADDU T4,T5,T9 SLTU T0,AT,T4 LBU T3,0287 (SP) SLL T2,T0,0x4 ANDI T1,S1,00C4 OR S1,T1,T2 ANDI T6,S1,00FF ADDIU AT,R0,0001 ADDU T7,T8,T9 SW T7,0230 (SP) BNE T3,AT,7F0D53B4 OR S1,T6,R0 BEQ R0,R0,7F0D53BC SH T7,0296 (SP) //7F0D53B4: LW T5,0230 (SP) SH T5,0294 (SP) LW T4,0230 (SP) SRL T0,T4,0x8 ANDI T1,T0,0028 SRL T2,T4,0x10 OR T6,T1,T2 OR S1,S1,T6 ANDI T8,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T8,R0 //7F0D53E0: 2A: LD HL,(nn) 16 LW T9,028C (SP) LUI T5,8009 LW T5,E328 (T5) ;T5=p->spectrum.ROMs LHU T7,0298 (SP) ;T7=spec.PC ADDIU T3,T9,0010 SW T3,028C (SP) ;cycles+=10 ADDU T1,T5,T7 LBU T2,0001 (T1) ;T2= val ADDU T0,T7,T5 LBU T4,0000 (T0) LBU T3,0287 (SP) SLL T6,T2,0x8 ADDIU T9,T7,0002 OR T8,T4,T6 SH T8,022E (SP) BNE T3,R0,7F0D5438 SH T9,0298 (SP) ;spec.PC+=2 ANDI T0,T8,FFFF ADDU T1,T0,T5 LBU S7,0000 (T1) BEQ R0,R0,7F0E27FC LBU S6,0001 (T1) //7F0D5438: LBU T2,0287 (SP) ADDIU AT,R0,0001 LHU T4,022E (SP) BNE T2,AT,7F0D5474 LHU T1,022E (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=p->spectrum.ROMs ADDU T9,T6,T4 LBU T3,0001 (T9) ADDU T8,T4,T6 LBU T7,0000 (T8) SLL T0,T3,0x8 OR T5,T7,T0 BEQ R0,R0,7F0E27FC SH T5,0296 (SP) //7F0D5474: LUI T2,8009 LW T2,E328 (T2) ;T2=p->spectrum.ROMs ADDU T4,T2,T1 LBU T9,0001 (T4) ADDU T8,T1,T2 LBU T6,0000 (T8) SLL T3,T9,0x8 OR T7,T6,T3 BEQ R0,R0,7F0E27FC SH T7,0294 (SP) //7F0D549C: 2B: DEC HL 6 LW T0,028C (SP) LBU T8,0287 (SP) LBU T6,0287 (SP) ADDIU T5,T0,0006 BNE T8,R0,7F0D54DC SW T5,028C (SP) ;cycles+=6 SLTIU T2,S7,0001 ADDIU S7,S7,FFFF ANDI T1,S7,00FF OR S7,T1,R0 BEQ T2,R0,7F0E27FC SW T2,0048 (SP) ADDIU S6,S6,FFFF ANDI T9,S6,00FF BEQ R0,R0,7F0E27FC OR S6,T9,R0 //7F0D54DC: ADDIU AT,R0,0001 BNE T6,AT,7F0D54F8 LHU T0,0294 (SP) LHU T3,0296 (SP) ADDIU T7,T3,FFFF BEQ R0,R0,7F0E27FC SH T7,0296 (SP) //7F0D54F8: ADDIU T5,T0,FFFF BEQ R0,R0,7F0E27FC SH T5,0294 (SP) //7F0D5504: 2C: INC L 4 LW T8,028C (SP) LBU T1,0287 (SP) LBU T3,0287 (SP) ADDIU T2,T8,0004 BNE T1,R0,7F0D5574 SW T2,028C (SP) ;cycles+=4 ADDIU S7,S7,0001 ANDI T4,S7,00FF ANDI T6,T4,000F SLTIU T3,T6,0001 OR S7,T4,R0 SLTIU T9,T4,0001 ANDI T0,T4,00A8 ANDI T7,S1,0001 OR T5,T7,T0 XORI T6,S7,0080 SLL T8,T3,0x4 OR T2,T5,T8 SLTIU T6,T6,0001 SLL T4,T9,0x6 SW T9,0044 (SP) OR T9,T2,T4 SLL T7,T6,0x2 OR S1,T9,T7 ANDI T0,S1,00FF OR S1,T0,R0 BEQ R0,R0,7F0E27FC SW T3,0048 (SP) //7F0D5574: ADDIU AT,R0,0001 BNE T3,AT,7F0D558C LHU T8,0294 (SP) LHU T5,0296 (SP) BEQ R0,R0,7F0D5590 SB T5,022D (SP) //7F0D558C: SB T8,022D (SP) LBU T1,022D (SP) ANDI T3,S1,0001 ADDIU AT,R0,0001 ADDIU T2,T1,0001 ANDI T8,T2,00A8 OR T1,T3,T8 ANDI T4,T2,00FF ANDI T7,T2,000F SLTIU T0,T7,0001 SLTIU T6,T4,0001 SLL T4,T0,0x4 ANDI T3,T2,00FF XORI T8,T3,0080 OR T9,T1,T4 SLTIU T8,T8,0001 SLL T7,T6,0x6 SW T0,0048 (SP) LBU T4,0287 (SP) SLL T0,T8,0x2 OR T5,T9,T7 OR S1,T5,T0 ANDI T1,S1,00FF OR S1,T1,R0 SW T6,0044 (SP) BNE T4,AT,7F0D5610 SB T2,022D (SP) LHU T6,0296 (SP) ANDI T7,T2,00FF ANDI T9,T6,FF00 OR T3,T9,T7 BEQ R0,R0,7F0E27FC SH T3,0296 (SP) //7F0D5610: LHU T8,0294 (SP) LBU T0,022D (SP) ANDI T5,T8,FF00 OR T1,T5,T0 BEQ R0,R0,7F0E27FC SH T1,0294 (SP) //7F0D5628: 2D: DEC L 4 LW T4,028C (SP) LBU T2,0287 (SP) LBU T1,0287 (SP) ADDIU T6,T4,0004 BNE T2,R0,7F0D569C SW T6,028C (SP) ;cycles+=4 ANDI T9,S7,000F ADDIU S7,S7,FFFF ANDI T1,S7,00FF SLTIU T7,T9,0001 SLL T8,T7,0x4 XORI T2,T1,007F SLTIU T2,T2,0001 ANDI T3,S1,0001 OR S1,T3,T8 SLL T9,T2,0x2 SW T7,0048 (SP) SLTIU T4,T1,0001 ANDI T6,T1,00A8 OR T7,T6,T9 SLL T8,T4,0x6 OR T5,T7,T8 ORI T0,S1,0002 OR S1,T0,T5 ANDI T0,S1,00FF OR S1,T0,R0 SW T4,0044 (SP) BEQ R0,R0,7F0E27FC OR S7,T1,R0 //7F0D569C: ADDIU AT,R0,0001 BNE T1,AT,7F0D56B4 LHU T2,0294 (SP) LHU T4,0296 (SP) BEQ R0,R0,7F0D56B8 SB T4,022C (SP) //7F0D56B4: SB T2,022C (SP) LBU T6,022C (SP) ANDI T7,S1,0001 ADDIU AT,R0,0001 ANDI T9,T6,000F SLTIU T3,T9,0001 SLL T8,T3,0x4 OR S1,T7,T8 ADDIU T1,T6,FFFF ANDI T7,T1,00FF XORI T8,T7,007F ORI T5,S1,0002 OR S1,T5,R0 SLTIU T8,T8,0001 ANDI T4,T1,00FF SW T3,0048 (SP) ANDI T3,T1,00A8 SLTIU T2,T4,0001 SLL T5,T8,0x2 OR T0,T3,T5 SLL T6,T2,0x6 LBU T7,0287 (SP) OR T4,T0,T6 OR S1,S1,T4 ANDI T9,S1,00FF OR S1,T9,R0 SW T2,0044 (SP) BNE T7,AT,7F0D5740 SB T1,022C (SP) LHU T8,0296 (SP) ANDI T5,T1,00FF ANDI T3,T8,FF00 OR T2,T3,T5 BEQ R0,R0,7F0E27FC SH T2,0296 (SP) //7F0D5740: LHU T0,0294 (SP) LBU T4,022C (SP) ANDI T6,T0,FF00 OR T9,T6,T4 BEQ R0,R0,7F0E27FC SH T9,0294 (SP) //7F0D5758: 2E: LD L,n 7 LW T7,028C (SP) LBU T1,0287 (SP) LBU T0,0287 (SP) ADDIU T8,T7,0007 BNE T1,R0,7F0D5788 SW T8,028C (SP) ;cycles+=7 LUI T5,8009 LW T5,E328 (T5) ;T5=p->spectrum.ROMs LHU T3,0298 (SP) ;T3=spec.PC ADDU T2,T3,T5 BEQ R0,R0,7F0D57DC LBU S7,0000 (T2) ;S7= val //7F0D5788: ADDIU AT,R0,0001 BNE T0,AT,7F0D57BC LHU T5,0298 (SP) ;T5=spec.PC LUI T4,8009 LW T4,E328 (T4) ;T4=p->spectrum.ROMs LHU T6,0298 (SP) ;T6=spec.PC LHU T8,0296 (SP) ADDU T9,T6,T4 LBU T7,0000 (T9) ANDI T1,T8,FF00 OR T3,T7,T1 BEQ R0,R0,7F0D57DC SH T3,0296 (SP) //7F0D57BC: LUI T2,8009 LW T2,E328 (T2) ;T2=p->spectrum.ROMs LHU T4,0294 (SP) ADDU T0,T5,T2 LBU T6,0000 (T0) ANDI T9,T4,FF00 OR T8,T6,T9 SH T8,0294 (SP) LHU T7,0298 (SP) ADDIU T1,T7,0001 BEQ R0,R0,7F0E27FC SH T1,0298 (SP) ;spec.PC+=1 //7F0D57EC: 2F: CPL 4 NOR S0,S0,R0 ;spec.A = ~spec.A LW T3,028C (SP) ANDI T2,S0,00FF ANDI T4,T2,0028 ANDI T0,S1,00C5 ;T0=retained flags: (11000101) OR S1,T0,T4 ORI T6,S1,0012 ;T6= set HALFCARRY, ADDITION flags ADDIU T5,T3,0004 SW T5,028C (SP) ;cycles+=4 OR S0,T2,R0 BEQ R0,R0,7F0E27FC ANDI S1,T6,00FF //7F0D581C: 30: JR NC,n 12(7) LW T8,028C (SP) ANDI T1,S1,0001 LHU T2,0298 (SP) ;T2=spec.PC ADDIU T7,T8,0007 BEQ T1,R0,7F0D5844 SW T7,028C (SP) ;cycles+=7 LHU T3,0298 (SP) ;T3=spec.PC ADDIU T5,T3,0001 BEQ R0,R0,7F0E27FC SH T5,0298 (SP) ;spec.PC+=1 //7F0D5844: LUI T0,8009 LW T0,E328 (T0) ;T0=p->spectrum.ROMs LW T7,028C (SP) ADDU T4,T2,T0 LB T6,0000 (T4) ADDIU T1,T7,0005 SW T1,028C (SP) ;cycles+=5 C total ADDU T9,T2,T6 ADDIU T8,T9,0001 SH T8,0298 (SP) BEQ R0,R0,7F0E27FC SW T6,0228 (SP) //7F0D5874: 31: LD SP,nn 10 LW T3,028C (SP) LUI T4,8009 LW T4,E328 (T4) ;T4=p->spectrum.ROMs LHU T0,0298 (SP) ;T0=spec.PC ADDIU T5,T3,000A SW T5,028C (SP) ;cycles+=A ADDU T9,T4,T0 LBU T8,0001 (T9) ADDU T2,T0,T4 LBU T6,0000 (T2) SLL T7,T8,0x8 ADDIU T3,T0,0002 OR T1,T6,T7 SH T1,0292 (SP) BEQ R0,R0,7F0E27FC SH T3,0298 (SP) ;spec.PC+=2 //7F0D58B4: 32: LD (nn),A 13 LW T5,028C (SP) LUI T9,8009 LW T9,E328 (T9) ;T9=p->spectrum.ROMs LHU T4,0298 (SP) ;T4=spec.PC ADDIU T2,T5,000D SW T2,028C (SP) ;cycles+=D ADDU T7,T9,T4 LBU T1,0001 (T7) ADDU T8,T4,T9 LBU T6,0000 (T8) SLL T0,T1,0x8 ADDIU T5,T4,0002 OR T3,T6,T0 ANDI T2,T3,FFFF ;T2= ROM+PC[1:0]: offset SLTI AT,T2,5B00 SH T3,0226 (SP) BNE AT,R0,7F0D5910 SH T5,0298 (SP) ;spec.PC+=2 LUI T8,8009 LW T8,E328 (T8) ;T8=p->spectrum.ROMs ADDU T9,T8,T2 BEQ R0,R0,7F0E27FC SB S0,0000 (T9) ;spec.A -> ROM+offset //7F0D5910: LHU T7,0226 (SP) LHU T8,0226 (SP) LUI T1,8009 SLTI AT,T7,5800 BNEL AT,R0,7F0D5954 SLTI AT,T8,4000 LW T1,E328 (T1) ;T1=p->spectrum.ROMs LUI T3,8009 ADDIU T0,R0,0001 ADDU T6,T1,T7 SB S0,0000 (T6) LHU T4,0226 (SP) LW T3,E32C (T3) ADDU T5,T3,T4 BEQ R0,R0,7F0E27FC SB T0,A800 (T5) //7F0D5950: SLTI AT,T8,4000 BNE AT,R0,7F0E27FC LUI T2,8009 LW T2,E328 (T2) ;T2=p->spectrum.ROMs LUI T5,8009 ADDIU T1,R0,0001 ADDU T9,T2,T8 SB S0,0000 (T9) LHU T7,0226 (SP) LW T5,E32C (T5) ANDI T6,T7,1800 SRA T3,T6,0x3 ANDI T4,T7,00FF OR T0,T3,T4 ADDU T2,T5,T0 BEQ R0,R0,7F0E27FC SB T1,0000 (T2) //7F0D5994: 33: INC SP 6 LW T8,028C (SP) LHU T6,0292 (SP) ADDIU T9,T8,0006 ADDIU T7,T6,0001 SW T9,028C (SP) ;cycles+=6 BEQ R0,R0,7F0E27FC SH T7,0292 (SP) ;spec.SP+=1 //7F0D59B0: 34: INC (HL) 11 LW T3,028C (SP) LBU T5,0287 (SP) SLL T0,S6,0x8 ADDIU T4,T3,000B BNE T5,R0,7F0D59D4 SW T4,028C (SP) ;cycles+=B OR T1,T0,S7 BEQ R0,R0,7F0D5A28 SH T1,0224 (SP) //7F0D59D4: LW T2,028C (SP) LBU T9,0287 (SP) ADDIU AT,R0,0001 ADDIU T8,T2,0008 BNE T9,AT,7F0D59F8 SW T8,028C (SP) ;cycles+=8 LHU T6,0296 (SP) BEQ R0,R0,7F0D5A00 SW T6,0048 (SP) //7F0D59F8: LHU T7,0294 (SP) SW T7,0048 (SP) LUI T4,8009 LW T4,E328 (T4) ;T4=p->spectrum.ROMs LHU T3,0298 (SP) ;T3=spec.PC LW T1,0048 (SP) ADDU T5,T3,T4 LB T0,0000 (T5) ;T0= val ADDIU T8,T3,0001 SH T8,0298 (SP) ;spec.PC+=1 ADDU T2,T0,T1 SH T2,0224 (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=p->spectrum.ROMs LHU T9,0224 (SP) ADDU T7,T9,T6 LBU T4,0000 (T7) ANDI T9,S1,0001 ADDIU T5,T4,0001 ANDI T7,T5,00A8 SB T4,0223 (SP) OR T4,T9,T7 ANDI T0,T5,00FF ANDI T3,T5,000F SLTIU T8,T3,0001 SLTIU T1,T0,0001 SLL T0,T8,0x4 ANDI T9,T5,00FF XORI T7,T9,0080 OR T2,T4,T0 LHU T0,0224 (SP) SLTIU T7,T7,0001 SLL T3,T1,0x6 SW T8,0048 (SP) SLL T8,T7,0x2 OR T6,T2,T3 OR S1,T6,T8 ANDI T4,S1,00FF SLTI AT,T0,5B00 OR S1,T4,R0 SW T1,0044 (SP) BNE AT,R0,7F0D5AB8 SB T5,0223 (SP) LUI T2,8009 LW T2,E328 (T2) ;T2=p->spectrum.ROMs ADDU T3,T2,T0 BEQ R0,R0,7F0E27FC SB T5,0000 (T3) //7F0D5AB8: LHU T5,0224 (SP) LHU T1,0224 (SP) LUI T7,8009 SLTI AT,T5,5800 BNEL AT,R0,7F0D5B00 SLTI AT,T1,4000 LW T7,E328 (T7) ;T7=p->spectrum.ROMs LBU T9,0223 (SP) LUI T4,8009 ADDU T6,T7,T5 SB T9,0000 (T6) LHU T2,0224 (SP) LW T4,E32C (T4) ADDIU T8,R0,0001 ADDU T0,T4,T2 BEQ R0,R0,7F0E27FC SB T8,A800 (T0) //7F0D5AFC: SLTI AT,T1,4000 BNE AT,R0,7F0E27FC LUI T7,8009 LW T7,E328 (T7) ;T7=p->spectrum.ROMs LBU T3,0223 (SP) ADDIU T9,R0,0001 ADDU T5,T7,T1 SB T3,0000 (T5) LHU T6,0224 (SP) LUI T7,8009 LW T7,E32C (T7) ANDI T4,T6,1800 SRA T2,T4,0x3 ANDI T8,T6,00FF OR T0,T2,T8 ADDU T1,T7,T0 BEQ R0,R0,7F0E27FC SB T9,0000 (T1) //7F0D5B44: 35: DEC (HL) 11 LW T3,028C (SP) LBU T4,0287 (SP) SLL T6,S6,0x8 ADDIU T5,T3,000B BNE T4,R0,7F0D5B68 SW T5,028C (SP) ;cycles+=B OR T2,T6,S7 BEQ R0,R0,7F0D5BBC SH T2,0220 (SP) //7F0D5B68: LW T8,028C (SP) LBU T0,0287 (SP) ADDIU AT,R0,0001 ADDIU T7,T8,0008 BNE T0,AT,7F0D5B8C SW T7,028C (SP) ;cycles+=8 LHU T9,0296 (SP) BEQ R0,R0,7F0D5B94 SW T9,0048 (SP) //7F0D5B8C: LHU T1,0294 (SP) SW T1,0048 (SP) LUI T5,8009 LW T5,E328 (T5) ;T5=p->spectrum.ROMs LHU T3,0298 (SP) ;T3=spec.PC LW T2,0048 (SP) ADDU T4,T3,T5 LB T6,0000 (T4) ;T6=val ADDIU T7,T3,0001 SH T7,0298 (SP) ;spec.PC+=1 ADDU T8,T6,T2 SH T8,0220 (SP) LUI T9,8009 LW T9,E328 (T9) ;T9=p->spectrum.ROMs LHU T0,0220 (SP) ANDI T8,S1,0001 ADDU T1,T0,T9 LBU T5,0000 (T1) ANDI T4,T5,000F SLTIU T6,T4,0001 SLL T2,T6,0x4 OR S1,T8,T2 ADDIU T0,T5,FFFF ANDI T8,T0,00FF XORI T2,T8,007F ORI T3,S1,0002 SW T6,0048 (SP) ANDI T6,T0,00A8 OR S1,T3,R0 SLTIU T2,T2,0001 ANDI T9,T0,00FF SB T5,021F (SP) SB T0,021F (SP) SLTIU T1,T9,0001 SLL T3,T2,0x2 LHU T0,0220 (SP) OR T7,T6,T3 SLL T5,T1,0x6 OR T9,T7,T5 OR S1,S1,T9 ANDI T4,S1,00FF SLTI AT,T0,5B00 OR S1,T4,R0 BNE AT,R0,7F0D5C58 SW T1,0044 (SP) LUI T2,8009 LW T2,E328 (T2) ;T2=p->spectrum.ROMs LBU T8,021F (SP) ADDU T6,T2,T0 BEQ R0,R0,7F0E27FC SB T8,0000 (T6) //7F0D5C58: LHU T3,0220 (SP) LHU T8,0220 (SP) LUI T7,8009 SLTI AT,T3,5800 BNEL AT,R0,7F0D5CA0 SLTI AT,T8,4000 LW T7,E328 (T7) ;T7=p->spectrum.ROMs LBU T1,021F (SP) LUI T4,8009 ADDU T5,T7,T3 SB T1,0000 (T5) LHU T2,0220 (SP) LW T4,E32C (T4) ADDIU T9,R0,0001 ADDU T0,T4,T2 BEQ R0,R0,7F0E27FC SB T9,A800 (T0) //7F0D5C9C: SLTI AT,T8,4000 BNE AT,R0,7F0E27FC LUI T7,8009 LW T7,E328 (T7) ;T7=p->spectrum.ROMs LBU T6,021F (SP) ADDIU T1,R0,0001 ADDU T3,T7,T8 SB T6,0000 (T3) LHU T5,0220 (SP) LUI T7,8009 LW T7,E32C (T7) ANDI T4,T5,1800 SRA T2,T4,0x3 ANDI T9,T5,00FF OR T0,T2,T9 ADDU T8,T7,T0 BEQ R0,R0,7F0E27FC SB T1,0000 (T8) //7F0D5CE4: 36: LD (HL),n LW T6,028C (SP) LBU T4,0287 (SP) SLL T5,S6,0x8 ADDIU T3,T6,000A BNE T4,R0,7F0D5D08 SW T3,028C (SP) ;cycles+=A OR T2,T5,S7 BEQ R0,R0,7F0D5D5C SH T2,021C (SP) //7F0D5D08: LW T9,028C (SP) LBU T0,0287 (SP) ADDIU AT,R0,0001 ADDIU T7,T9,0005 BNE T0,AT,7F0D5D2C SW T7,028C (SP) ;cycles+=5 LHU T1,0296 (SP) BEQ R0,R0,7F0D5D34 SW T1,0048 (SP) //7F0D5D2C: LHU T8,0294 (SP) SW T8,0048 (SP) LUI T3,8009 LW T3,E328 (T3) ;T3=p->spectrum.ROMs LHU T6,0298 (SP) ;T6=spec.PC LW T2,0048 (SP) ADDU T4,T6,T3 LB T5,0000 (T4) ;T5= val ADDIU T7,T6,0001 SH T7,0298 (SP) ;spec.PC+=1 ADDU T9,T5,T2 SH T9,021C (SP) LHU T0,021C (SP) LHU T2,021C (SP) LHU T1,0298 (SP) ;T1=spec.PC SLTI AT,T0,5B00 BNE AT,R0,7F0D5D8C LUI T8,8009 LW T8,E328 (T8) ;T8=p->spectrum.ROMs ADDU T3,T1,T8 LBU T4,0000 (T3) ;T4= val ADDU T5,T8,T0 BEQ R0,R0,7F0D5E1C SB T4,0000 (T5) //7F0D5D8C: SLTI AT,T2,5800 BNE AT,R0,7F0D5DD0 LHU T9,021C (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=p->spectrum.ROMs LHU T9,0298 (SP) ;T9=spec.PC LUI T0,8009 ADDU T3,T6,T2 ADDU T7,T9,T6 LBU T1,0000 (T7) ;T1= val ADDIU T8,R0,0001 SB T1,0000 (T3) LHU T4,021C (SP) LW T0,E32C (T0) ADDU T5,T0,T4 BEQ R0,R0,7F0D5E1C SB T8,A800 (T5) //7F0D5DD0: SLTI AT,T9,4000 BNE AT,R0,7F0D5E1C LHU T7,0298 (SP) ;T7=spec.PC LUI T6,8009 LW T6,E328 (T6) ;T6=p->spectrum.ROMs ADDIU T0,R0,0001 ADDU T2,T7,T6 LBU T1,0000 (T2) ;T1= val ADDU T3,T6,T9 LUI T6,8009 SB T1,0000 (T3) LHU T4,021C (SP) LW T6,E32C (T6) ANDI T8,T4,1800 SRA T5,T8,0x3 ANDI T7,T4,00FF OR T2,T5,T7 ADDU T9,T6,T2 SB T0,0000 (T9) LHU T1,0298 (SP) ADDIU T3,T1,0001 BEQ R0,R0,7F0E27FC SH T3,0298 (SP) ;spec.PC+=1 //7F0D5E2C: 37: SCF 4 LW T8,028C (SP) ANDI T5,S1,00C4 ;T5= retained flags: (11000100) ORI T7,T5,0001 ;set CARRY ANDI T6,S0,0028 ;T6= spec.A & 28 (00101000) OR S1,T7,T6 ANDI T2,S1,00FF ADDIU T4,T8,0004 SW T4,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC OR S1,T2,R0 //7F0D5E54: 38: JR C,n 12(7) LW T0,028C (SP) ANDI T1,S1,0001 LHU T3,0298 (SP) ;T3=spec.PC ADDIU T9,T0,0007 BEQ T1,R0,7F0D5E98 SW T9,028C (SP) ;cycles+=7 LUI T8,8009 LW T8,E328 (T8) ;T8=p->spectrum.ROMs ADDIU T0,T9,0005 ADDU T4,T3,T8 LB T5,0000 (T4) ;T5=ROM+PC: n SW T0,028C (SP) ;cycles+=5 C total ADDU T7,T3,T5 ADDIU T6,T7,0001 SH T6,0298 (SP) ;spec.PC+= n+1 BEQ R0,R0,7F0E27FC SW T5,0218 (SP) //7F0D5E98: LHU T9,0298 (SP) ADDIU T1,T9,0001 BEQ R0,R0,7F0E27FC SH T1,0298 (SP) ;spec.PC+=1 //7F0D5EA8: 39: ADD HL,SP 11 LW T8,028C (SP) LBU T3,0287 (SP) LHU T5,0292 (SP) ADDIU T4,T8,000B BNE T3,R0,7F0D5F34 SW T4,028C (SP) ;cycles+=B ANDI T7,T5,00FF ADDU T6,S7,T7 ANDI T2,T6,FFFF SRL T0,T2,0x8 ANDI T1,T0,FFFF ANDI T9,S6,000F SRA T4,T5,0x8 ANDI T3,T4,000F ADDU T8,T1,T9 ADDU T7,T8,T3 SH T6,0216 (SP) ADDIU AT,R0,000F SLT T6,AT,T7 SLL T2,T6,0x4 LBU S7,0217 (SP) ADDU T5,S6,T4 ADDU T6,T0,T5 SH T0,0216 (SP) SH T6,0216 (SP) LBU S6,0217 (SP) ANDI T1,S1,00C4 OR T9,T2,T1 SRA T2,T6,0x8 ANDI T7,S6,0028 OR T1,T7,T2 OR S1,T9,T1 ANDI T9,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T9,R0 //7F0D5F34: LBU T4,0287 (SP) ADDIU AT,R0,0001 LHU T8,0294 (SP) BNE T4,AT,7F0D5F50 LHU T0,0296 (SP) BEQ R0,R0,7F0D5F54 SW T0,0210 (SP) //7F0D5F50: SW T8,0210 (SP) LHU T5,0292 (SP) LW T1,0210 (SP) ADDIU AT,R0,0FFF SRA T3,T5,0x8 SLL T6,T3,0x8 ANDI T7,T5,00FF OR T2,T6,T7 ANDI T9,T1,0FFF ADDU T4,T9,T2 SLTU T0,AT,T4 LBU T7,0287 (SP) SLL T8,T0,0x4 ANDI T3,S1,00C4 OR S1,T3,T8 ANDI T5,S1,00FF ADDIU AT,R0,0001 ADDU T6,T1,T2 SW T6,0210 (SP) BNE T7,AT,7F0D5FAC OR S1,T5,R0 BEQ R0,R0,7F0D5FB4 SH T6,0296 (SP) //7F0D5FAC: LW T9,0210 (SP) SH T9,0294 (SP) LW T4,0210 (SP) SRL T0,T4,0x8 ANDI T3,T0,0028 SRL T8,T4,0x10 OR T5,T3,T8 OR S1,S1,T5 ANDI T1,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T1,R0 //7F0D5FD8: 3A: LD A,(nn) 13 LW T2,028C (SP) LUI T9,8009 LW T9,E328 (T9) ;T9=p->spectrum.ROMs LHU T6,0298 (SP) ;T6=spec.PC ADDIU T7,T2,000D SW T7,028C (SP) ;cycles+=D ADDU T3,T9,T6 LBU T8,0001 (T3) ADDU T0,T6,T9 LBU T4,0000 (T0) SLL T5,T8,0x8 ADDIU T2,T6,0002 OR T1,T4,T5 ;T1=ROM+PC[1:0]: n ANDI T7,T1,FFFF SH T1,020E (SP) ;SP+20E= ROM+PC[1:0] SH T2,0298 (SP) ;spec.PC+=2 ADDU T0,T7,T9 BEQ R0,R0,7F0E27FC LBU S0,0000 (T0) ;S0=ROM+n: set spec.A to ROM[n] //7F0D6024: 3B: DEC SP 6 LW T3,028C (SP) LHU T4,0292 (SP) ;SP+292: spec.SP ADDIU T8,T3,0006 ADDIU T5,T4,FFFF SW T8,028C (SP) ;cycles+=6 BEQ R0,R0,7F0E27FC SH T5,0292 (SP) ;spec.SP-=1 //7F0D6040: 3C: INC A 4 ADDIU S0,S0,0001 ;S0+=1 spec.A+=1 ANDI T2,S0,00FF LW T1,028C (SP) ANDI T9,T2,000F ;T9=nibble.l SLTIU T0,T9,0001 ;T0= True if low nibble 0 OR S0,T2,R0 SLTIU T7,T2,0001 ;T7= True if A=0 ANDI T8,T2,00A8 ;T8= spec.A & A8 (10101000) ANDI T3,S1,0001 ;T3= retained flags (Carry) OR T4,T3,T8 XORI T9,S0,0080 SLL T5,T0,0x4 ;T5= (low nibble 0) flag (10) ADDIU T6,T1,0004 OR T1,T4,T5 SLTIU T9,T9,0001 ;T9= True if negative SLL T2,T7,0x6 ;T2= ZERO flag (40) SW T7,0044 (SP) ;SP+44= ZERO OR T7,T1,T2 SLL T3,T9,0x2 ;T3= Sign flag (4) OR S1,T7,T3 ANDI T8,S1,00FF SW T6,028C (SP) ;cycles-=4 OR S1,T8,R0 BEQ R0,R0,7F0E27FC SW T0,0048 (SP) //7F0D60A4: 3D: DEC A 4 LW T0,028C (SP) ANDI T5,S0,000F ADDIU S0,S0,FFFF ;S0-=1 spec.A-=1 ADDIU T4,T0,0004 SW T4,028C (SP) ;cycles+=4 ANDI T3,S0,00FF SLTIU T6,T5,0001 ;T6= True if lower nibble 0 SLL T2,T6,0x4 XORI T4,T3,007F SLTIU T4,T4,0001 ANDI T1,S1,0001 ;T1= retained flags (1) OR S1,T1,T2 SLL T5,T4,0x2 SW T6,0048 (SP) SLTIU T8,T3,0001 ;T8=True if zero ANDI T0,T3,00A8 OR T6,T0,T5 SLL T2,T8,0x6 ;T2= ZERO flag (40) OR T9,T6,T2 ORI T7,S1,0002 ;flags|= ADDITION OR S1,T7,T9 ANDI T7,S1,00FF OR S1,T7,R0 SW T8,0044 (SP) BEQ R0,R0,7F0E27FC OR S0,T3,R0 //7F0D610C: 3E: LD A,n 7 LW T3,028C (SP) LUI T0,8009 LW T0,E328 (T0) ;T0=p->spectrum.ROMs LHU T4,0298 (SP) ;T4=spec.PC ADDIU T8,T3,0007 SW T8,028C (SP) ;cycles+=7 ADDU T5,T4,T0 LBU S0,0000 (T5) ;spec.A = ROM+PC ADDIU T1,T4,0001 BEQ R0,R0,7F0E27FC SH T1,0298 (SP) ;spec.PC+=1 //7F0D6138: 3F: CCF 4 ANDI T7,S1,0001 LW T6,028C (SP) XORI T3,T7,0001 ;T3= CARRY flag inverted ANDI T9,S1,00C4 ;T9= retained flags (11000100) ANDI T0,S1,0001 ;T0= flags&1 SLL T5,T0,0x4 ;T5= (flags&1)-> (20) OR T8,T9,T3 OR T4,T8,T5 ANDI T1,S0,0028 ;T1= spec.A & 28 (00101000) OR S1,T4,T1 ADDIU T2,T6,0004 ANDI T6,S1,00FF SW T2,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC OR S1,T6,R0 //7F0D6174: 40: LD B,B 4 LW T2,028C (SP) ADDIU T7,T2,0004 BEQ R0,R0,7F0E27FC SW T7,028C (SP) ;cycles+=4 //7F0D6184: 41: LD B,C 4 LW T9,028C (SP) ANDI S2,S3,00FF ;S2=S3: spec.B = spec.C ADDIU T3,T9,0004 BEQ R0,R0,7F0E27FC SW T3,028C (SP) ;cycles+=4 //7F0D6198: 42: LD B,D 4 LW T0,028C (SP) ANDI S2,S4,00FF ;S2=S4: spec.B = spec.D ADDIU T8,T0,0004 BEQ R0,R0,7F0E27FC SW T8,028C (SP) ;cycles+=4 //7F0D61AC: 43: LD B,E 4 LW T5,028C (SP) ANDI S2,S5,00FF ;S2=S5: spec.B = spec.E ADDIU T4,T5,0004 BEQ R0,R0,7F0E27FC SW T4,028C (SP) ;cycles+=4 //7F0D61C0: 44: LD B,H 4 LW T1,028C (SP) LBU T2,0287 (SP) LBU T7,0287 (SP) ADDIU T6,T1,0004 BNE T2,R0,7F0D61E0 SW T6,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC ANDI S2,S6,00FF ;S2=S6: spec.B = spec.H //7F0D61E0: ADDIU AT,R0,0001 BNE T7,AT,7F0D61FC LHU T0,0294 (SP) LHU T9,0296 (SP) SRA T3,T9,0x8 BEQ R0,R0,7F0D6204 SW T3,0048 (SP) //7F0D61FC: SRA T8,T0,0x8 SW T8,0048 (SP) BEQ R0,R0,7F0E27FC LBU S2,004B (SP) //7F0D620C: 45: LD B,L 4 LW T5,028C (SP) LBU T1,0287 (SP) LBU T6,0287 (SP) ADDIU T4,T5,0004 BNE T1,R0,7F0D622C SW T4,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC ANDI S2,S7,00FF ;S2=S7: spec.B = spec.L //7F0D622C: ADDIU AT,R0,0001 BNE T6,AT,7F0D6248 LHU T9,0294 (SP) LHU T2,0296 (SP) ANDI T7,T2,00FF BEQ R0,R0,7F0D6250 SW T7,0048 (SP) //7F0D6248: ANDI T3,T9,00FF SW T3,0048 (SP) BEQ R0,R0,7F0E27FC LBU S2,004B (SP) //7F0D6258: 46: LD B,(HL) 7 LW T0,028C (SP) LBU T5,0287 (SP) SLL T4,S6,0x8 ADDIU T8,T0,0007 BNE T5,R0,7F0D627C SW T8,028C (SP) ;cycles+=7 OR T1,T4,S7 BEQ R0,R0,7F0D62D0 SH T1,020C (SP) //7F0D627C: LW T6,028C (SP) LBU T7,0287 (SP) ADDIU AT,R0,0001 ADDIU T2,T6,0008 BNE T7,AT,7F0D62A0 SW T2,028C (SP) ;cycles+=8 LHU T9,0296 (SP) BEQ R0,R0,7F0D62A8 SW T9,0048 (SP) //7F0D62A0: LHU T3,0294 (SP) SW T3,0048 (SP) LUI T8,8009 LW T8,E328 (T8) ;T8=p->spectrum.ROMs LHU T0,0298 (SP) ;T0=spec.PC LW T1,0048 (SP) ADDU T5,T0,T8 LB T4,0000 (T5) ADDIU T2,T0,0001 SH T2,0298 (SP) ;spec.PC+=1 ADDU T6,T4,T1 SH T6,020C (SP) LUI T9,8009 LW T9,E328 (T9) ;T9=p->spectrum.ROMs LHU T7,020C (SP) ADDU T3,T7,T9 BEQ R0,R0,7F0E27FC LBU S2,0000 (T3) //7F0D62E8: 47: LD B,A 4 LW T8,028C (SP) ANDI S2,S0,00FF ADDIU T5,T8,0004 BEQ R0,R0,7F0E27FC SW T5,028C (SP) ;cycles+=4 //7F0D62FC: 48: LD C,B 4 LW T4,028C (SP) ANDI S3,S2,00FF ADDIU T1,T4,0004 BEQ R0,R0,7F0E27FC SW T1,028C (SP) ;cycles+=4 //7F0D6310: 49: LD C,C 4 LW T6,028C (SP) ADDIU T0,T6,0004 BEQ R0,R0,7F0E27FC SW T0,028C (SP) ;cycles+=4 //7F0D6320: 4A: LD C,D 4 LW T2,028C (SP) ANDI S3,S4,00FF ADDIU T7,T2,0004 BEQ R0,R0,7F0E27FC SW T7,028C (SP) ;cycles+=4 //7F0D6334: 4B: LD C,E 4 LW T9,028C (SP) ANDI S3,S5,00FF ADDIU T3,T9,0004 BEQ R0,R0,7F0E27FC SW T3,028C (SP) ;cycles+=4 //7F0D6348: 4C: LD C,H 4 LW T8,028C (SP) LBU T4,0287 (SP) LBU T1,0287 (SP) ADDIU T5,T8,0004 BNE T4,R0,7F0D6368 SW T5,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC ANDI S3,S6,00FF //7F0D6368: ADDIU AT,R0,0001 BNE T1,AT,7F0D6384 LHU T2,0294 (SP) LHU T6,0296 (SP) SRA T0,T6,0x8 BEQ R0,R0,7F0D638C SW T0,0048 (SP) //7F0D6384: SRA T7,T2,0x8 SW T7,0048 (SP) BEQ R0,R0,7F0E27FC LBU S3,004B (SP) //7F0D6394: 4D: LD C,L 4 LW T9,028C (SP) LBU T8,0287 (SP) LBU T5,0287 (SP) ADDIU T3,T9,0004 BNE T8,R0,7F0D63B4 SW T3,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC ANDI S3,S7,00FF //7F0D63B4: ADDIU AT,R0,0001 BNE T5,AT,7F0D63D0 LHU T6,0294 (SP) LHU T4,0296 (SP) ANDI T1,T4,00FF BEQ R0,R0,7F0D63D8 SW T1,0048 (SP) //7F0D63D0: ANDI T0,T6,00FF SW T0,0048 (SP) BEQ R0,R0,7F0E27FC LBU S3,004B (SP) //7F0D63E0: 4E: LD C,(HL) 7 LW T2,028C (SP) LBU T9,0287 (SP) SLL T3,S6,0x8 ADDIU T7,T2,0007 BNE T9,R0,7F0D6404 SW T7,028C (SP) ;cycles+=7 OR T8,T3,S7 BEQ R0,R0,7F0D6458 SH T8,020A (SP) //7F0D6404: LW T5,028C (SP) LBU T1,0287 (SP) ADDIU AT,R0,0001 ADDIU T4,T5,0008 BNE T1,AT,7F0D6428 SW T4,028C (SP) ;cycles+=8 LHU T6,0296 (SP) BEQ R0,R0,7F0D6430 SW T6,0048 (SP) //7F0D6428: LHU T0,0294 (SP) SW T0,0048 (SP) LUI T7,8009 LW T7,E328 (T7) ;T7=p->spectrum.ROMs LHU T2,0298 (SP) ;T2=spec.PC LW T8,0048 (SP) ADDU T9,T2,T7 LB T3,0000 (T9) ADDIU T4,T2,0001 SH T4,0298 (SP) ;spec.PC+=1 ADDU T5,T3,T8 SH T5,020A (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=p->spectrum.ROMs LHU T1,020A (SP) ADDU T0,T1,T6 BEQ R0,R0,7F0E27FC LBU S3,0000 (T0) //7F0D6470: 4F: LD C,A 4 LW T7,028C (SP) ANDI S3,S0,00FF ;spec.C = spec.A ADDIU T9,T7,0004 BEQ R0,R0,7F0E27FC SW T9,028C (SP) ;cycles+=4 //7F0D6484: 50: LD D,B 4 LW T3,028C (SP) ANDI S4,S2,00FF ADDIU T8,T3,0004 BEQ R0,R0,7F0E27FC SW T8,028C (SP) ;cycles+=4 //7F0D6498: 51: LD D,C 4 LW T5,028C (SP) ANDI S4,S3,00FF ADDIU T2,T5,0004 BEQ R0,R0,7F0E27FC SW T2,028C (SP) ;cycles+=4 //7F0D64AC: 52: LD D,D 4 LW T4,028C (SP) ADDIU T1,T4,0004 BEQ R0,R0,7F0E27FC SW T1,028C (SP) ;cycles+=4 //7F0D64BC: 53: LD D,E 4 LW T6,028C (SP) ANDI S4,S5,00FF ADDIU T0,T6,0004 BEQ R0,R0,7F0E27FC SW T0,028C (SP) ;cycles+=4 //7F0D64D0: 54: LD D,H 4 LW T7,028C (SP) LBU T3,0287 (SP) LBU T8,0287 (SP) ADDIU T9,T7,0004 BNE T3,R0,7F0D64F0 SW T9,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC ANDI S4,S6,00FF //7F0D64F0: ADDIU AT,R0,0001 BNE T8,AT,7F0D650C LHU T4,0294 (SP) LHU T5,0296 (SP) SRA T2,T5,0x8 BEQ R0,R0,7F0D6514 SW T2,0048 (SP) //7F0D650C: SRA T1,T4,0x8 SW T1,0048 (SP) BEQ R0,R0,7F0E27FC LBU S4,004B (SP) //7F0D651C: 55: LD D,L 4 LW T6,028C (SP) LBU T7,0287 (SP) LBU T9,0287 (SP) ADDIU T0,T6,0004 BNE T7,R0,7F0D653C SW T0,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC ANDI S4,S7,00FF //7F0D653C: ADDIU AT,R0,0001 BNE T9,AT,7F0D6558 LHU T5,0294 (SP) LHU T3,0296 (SP) ANDI T8,T3,00FF BEQ R0,R0,7F0D6560 SW T8,0048 (SP) //7F0D6558: ANDI T2,T5,00FF SW T2,0048 (SP) BEQ R0,R0,7F0E27FC LBU S4,004B (SP) //7F0D6568: 56: LD D,(HL) 7 LW T4,028C (SP) LBU T6,0287 (SP) SLL T0,S6,0x8 ADDIU T1,T4,0007 BNE T6,R0,7F0D658C SW T1,028C (SP) ;cycles+=7 OR T7,T0,S7 BEQ R0,R0,7F0D65E0 SH T7,0208 (SP) //7F0D658C: LW T9,028C (SP) LBU T8,0287 (SP) ADDIU AT,R0,0001 ADDIU T3,T9,0008 BNE T8,AT,7F0D65B0 SW T3,028C (SP) ;cycles+=8 LHU T5,0296 (SP) BEQ R0,R0,7F0D65B8 SW T5,0048 (SP) //7F0D65B0: LHU T2,0294 (SP) SW T2,0048 (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=p->spectrum.ROMs LHU T4,0298 (SP) ;T4=spec.PC LW T7,0048 (SP) ADDU T6,T4,T1 LB T0,0000 (T6) ADDIU T3,T4,0001 SH T3,0298 (SP) ;spec.PC+=1 ADDU T9,T0,T7 SH T9,0208 (SP) LUI T5,8009 LW T5,E328 (T5) ;T5=p->spectrum.ROMs LHU T8,0208 (SP) ADDU T2,T8,T5 BEQ R0,R0,7F0E27FC LBU S4,0000 (T2) //7F0D65F8: 57: LD D,A 4 LW T1,028C (SP) ANDI S4,S0,00FF ADDIU T6,T1,0004 BEQ R0,R0,7F0E27FC SW T6,028C (SP) ;cycles+=4 //7F0D660C: 58: LD E,B 4 LW T0,028C (SP) ANDI S5,S2,00FF ADDIU T7,T0,0004 BEQ R0,R0,7F0E27FC SW T7,028C (SP) ;cycles+=4 //7F0D6620: 59: LD E,C 4 LW T9,028C (SP) ANDI S5,S3,00FF ADDIU T4,T9,0004 BEQ R0,R0,7F0E27FC SW T4,028C (SP) ;cycles+=4 //7F0D6634: 5A: LD E,D 4 LW T3,028C (SP) ANDI S5,S4,00FF ADDIU T8,T3,0004 BEQ R0,R0,7F0E27FC SW T8,028C (SP) ;cycles+=4 //7F0D6648: 5B: LD E,E 4 LW T5,028C (SP) ADDIU T2,T5,0004 BEQ R0,R0,7F0E27FC SW T2,028C (SP) ;cycles+=4 //7F0D6658: 5C: LD E,H 4 LW T1,028C (SP) LBU T0,0287 (SP) LBU T7,0287 (SP) ADDIU T6,T1,0004 BNE T0,R0,7F0D6678 SW T6,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC ANDI S5,S6,00FF //7F0D6678: ADDIU AT,R0,0001 BNE T7,AT,7F0D6694 LHU T3,0294 (SP) LHU T9,0296 (SP) SRA T4,T9,0x8 BEQ R0,R0,7F0D669C SW T4,0048 (SP) //7F0D6694: SRA T8,T3,0x8 SW T8,0048 (SP) BEQ R0,R0,7F0E27FC LBU S5,004B (SP) //7F0D66A4: 5D: LD E,L 4 LW T5,028C (SP) LBU T1,0287 (SP) LBU T6,0287 (SP) ADDIU T2,T5,0004 BNE T1,R0,7F0D66C4 SW T2,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC ANDI S5,S7,00FF //7F0D66C4: ADDIU AT,R0,0001 BNE T6,AT,7F0D66E0 LHU T9,0294 (SP) LHU T0,0296 (SP) ANDI T7,T0,00FF BEQ R0,R0,7F0D66E8 SW T7,0048 (SP) //7F0D66E0: ANDI T4,T9,00FF SW T4,0048 (SP) BEQ R0,R0,7F0E27FC LBU S5,004B (SP) //7F0D66F0: 5E: LD E,(HL) 7 LW T3,028C (SP) LBU T5,0287 (SP) SLL T2,S6,0x8 ADDIU T8,T3,0007 BNE T5,R0,7F0D6714 SW T8,028C (SP) ;cycles+=7 OR T1,T2,S7 BEQ R0,R0,7F0D6768 SH T1,0206 (SP) //7F0D6714: LW T6,028C (SP) LBU T7,0287 (SP) ADDIU AT,R0,0001 ADDIU T0,T6,0008 BNE T7,AT,7F0D6738 SW T0,028C (SP) ;cycles+=6 LHU T9,0296 (SP) BEQ R0,R0,7F0D6740 SW T9,0048 (SP) //7F0D6738: LHU T4,0294 (SP) SW T4,0048 (SP) LUI T8,8009 LW T8,E328 (T8) ;T8=p->spectrum.ROMs LHU T3,0298 (SP) ;T3=spec.PC LW T1,0048 (SP) ADDU T5,T3,T8 LB T2,0000 (T5) ADDIU T0,T3,0001 SH T0,0298 (SP) ;spec.PC+=1 ADDU T6,T2,T1 SH T6,0206 (SP) LUI T9,8009 LW T9,E328 (T9) ;T9=p->spectrum.ROMs LHU T7,0206 (SP) ADDU T4,T7,T9 BEQ R0,R0,7F0E27FC LBU S5,0000 (T4) //7F0D6780: 5F: LD E,A 4 LW T8,028C (SP) ANDI S5,S0,00FF ;S5=S0: spec.E = spec.A ADDIU T5,T8,0004 BEQ R0,R0,7F0E27FC SW T5,028C (SP) ;cycles+=4 //7F0D6794: 60: LD H,B 4 LW T2,028C (SP) LBU T6,0287 (SP) LBU T3,0287 (SP) ADDIU T1,T2,0004 BNE T6,R0,7F0D67B4 SW T1,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC ANDI S6,S2,00FF //7F0D67B4: ADDIU AT,R0,0001 BNE T3,AT,7F0D67D8 LHU T8,0294 (SP) LHU T0,0296 (SP) SLL T9,S2,0x8 ANDI T7,T0,00FF OR T4,T7,T9 BEQ R0,R0,7F0E27FC SH T4,0296 (SP) //7F0D67D8: ANDI T5,T8,00FF SLL T2,S2,0x8 OR T1,T5,T2 BEQ R0,R0,7F0E27FC SH T1,0294 (SP) //7F0D67EC: 61: LD H,C 4 LW T6,028C (SP) LBU T0,0287 (SP) LBU T7,0287 (SP) ADDIU T3,T6,0004 BNE T0,R0,7F0D680C SW T3,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC ANDI S6,S3,00FF //7F0D680C: ADDIU AT,R0,0001 BNE T7,AT,7F0D6830 LHU T2,0294 (SP) LHU T9,0296 (SP) SLL T8,S3,0x8 ANDI T4,T9,00FF OR T5,T4,T8 BEQ R0,R0,7F0E27FC SH T5,0296 (SP) //7F0D6830: ANDI T1,T2,00FF SLL T6,S3,0x8 OR T3,T1,T6 BEQ R0,R0,7F0E27FC SH T3,0294 (SP) //7F0D6844: 62: LD H,D 4 LW T0,028C (SP) LBU T9,0287 (SP) LBU T4,0287 (SP) ADDIU T7,T0,0004 BNE T9,R0,7F0D6864 SW T7,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC ANDI S6,S4,00FF //7F0D6864: ADDIU AT,R0,0001 BNE T4,AT,7F0D6888 LHU T6,0294 (SP) LHU T8,0296 (SP) SLL T2,S4,0x8 ANDI T5,T8,00FF OR T1,T5,T2 BEQ R0,R0,7F0E27FC SH T1,0296 (SP) //7F0D6888: ANDI T3,T6,00FF SLL T0,S4,0x8 OR T7,T3,T0 BEQ R0,R0,7F0E27FC SH T7,0294 (SP) //7F0D689C: 63: LD H,E 4 LW T9,028C (SP) LBU T8,0287 (SP) LBU T5,0287 (SP) ADDIU T4,T9,0004 BNE T8,R0,7F0D68BC SW T4,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC ANDI S6,S5,00FF //7F0D68BC: ADDIU AT,R0,0001 BNE T5,AT,7F0D68E0 LHU T0,0294 (SP) LHU T2,0296 (SP) SLL T6,S5,0x8 ANDI T1,T2,00FF OR T3,T1,T6 BEQ R0,R0,7F0E27FC SH T3,0296 (SP) //7F0D68E0: ANDI T7,T0,00FF SLL T9,S5,0x8 OR T4,T7,T9 BEQ R0,R0,7F0E27FC SH T4,0294 (SP) //7F0D68F4: 64: LD H,H 4 LW T8,028C (SP) ADDIU T5,T8,0004 BEQ R0,R0,7F0E27FC SW T5,028C (SP) ;cycles+=4 //7F0D6904: 65: LD H,L 4 LW T2,028C (SP) LBU T6,0287 (SP) LBU T5,0287 (SP) ADDIU T1,T2,0004 SLTIU T3,T6,0001 BEQ T3,R0,7F0D695C SW T1,028C (SP) ;cycles+=4 BEQ T3,R0,7F0D6930 LBU T0,0287 (SP) BEQ R0,R0,7F0E27FC ANDI S6,S7,00FF //7F0D6930: ADDIU AT,R0,0001 BNE T0,AT,7F0D694C LHU T4,0294 (SP) LHU T7,0296 (SP) ANDI T9,T7,00FF BEQ R0,R0,7F0D6954 SW T9,0048 (SP) //7F0D694C: ANDI T8,T4,00FF SW T8,0048 (SP) BEQ R0,R0,7F0E27FC LBU S6,004B (SP) //7F0D695C: ADDIU AT,R0,0001 BNE T5,AT,7F0D69C0 LBU T1,0287 (SP) BNE T5,R0,7F0D6978 LBU T2,0287 (SP) BEQ R0,R0,7F0D69A4 SW S7,0044 (SP) //7F0D6978: ADDIU AT,R0,0001 BNE T2,AT,7F0D6994 LHU T3,0294 (SP) LHU T1,0296 (SP) ANDI T6,T1,00FF BEQ R0,R0,7F0D699C SW T6,0040 (SP) //7F0D6994: ANDI T0,T3,00FF SW T0,0040 (SP) LW T7,0040 (SP) SW T7,0044 (SP) LW T9,0044 (SP) LHU T8,0296 (SP) SLL T4,T9,0x8 ANDI T5,T8,00FF OR T2,T4,T5 BEQ R0,R0,7F0E27FC SH T2,0296 (SP) //7F0D69C0: BNE T1,R0,7F0D69D0 LBU T6,0287 (SP) BEQ R0,R0,7F0D69FC SW S7,003C (SP) //7F0D69D0: ADDIU AT,R0,0001 BNE T6,AT,7F0D69EC LHU T7,0294 (SP) LHU T3,0296 (SP) ANDI T0,T3,00FF BEQ R0,R0,7F0D69F4 SW T0,0038 (SP) //7F0D69EC: ANDI T9,T7,00FF SW T9,0038 (SP) LW T8,0038 (SP) SW T8,003C (SP) LW T4,003C (SP) LHU T2,0294 (SP) SLL T5,T4,0x8 ANDI T1,T2,00FF OR T6,T5,T1 BEQ R0,R0,7F0E27FC SH T6,0294 (SP) //7F0D6A18: 66: LD H,(HL) 7 LW T3,028C (SP) LBU T7,0287 (SP) SLL T9,S6,0x8 ADDIU T0,T3,0007 BNE T7,R0,7F0D6A3C SW T0,028C (SP) ;cycles+=7 OR T8,T9,S7 BEQ R0,R0,7F0D6A90 SH T8,0204 (SP) //7F0D6A3C: LW T4,028C (SP) LBU T5,0287 (SP) ADDIU AT,R0,0001 ADDIU T2,T4,0008 BNE T5,AT,7F0D6A60 SW T2,028C (SP) ;cycles+=8 LHU T1,0296 (SP) BEQ R0,R0,7F0D6A68 SW T1,0048 (SP) //7F0D6A60: LHU T6,0294 (SP) SW T6,0048 (SP) LUI T0,8009 LW T0,E328 (T0) ;T0=p->spectrum.ROMs LHU T3,0298 (SP) ;T3=spec.PC LW T8,0048 (SP) ADDU T7,T3,T0 LB T9,0000 (T7) ADDIU T2,T3,0001 SH T2,0298 (SP) ;spec.PC+=1 ADDU T4,T9,T8 SH T4,0204 (SP) //7F0D6A90: LUI T1,8009 LW T1,E328 (T1) ;T1=p->spectrum.ROMs LHU T5,0204 (SP) ADDU T6,T5,T1 BEQ R0,R0,7F0E27FC LBU S6,0000 (T6) //7F0D6AA8: 67: LD H,A 4 LW T0,028C (SP) LBU T9,0287 (SP) LBU T8,0287 (SP) ADDIU T7,T0,0004 BNE T9,R0,7F0D6AC8 SW T7,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC ANDI S6,S0,00FF //7F0D6AC8: ADDIU AT,R0,0001 BNE T8,AT,7F0D6AEC LHU T1,0294 (SP) LHU T4,0296 (SP) SLL T2,S0,0x8 ANDI T3,T4,00FF OR T5,T3,T2 BEQ R0,R0,7F0E27FC SH T5,0296 (SP) //7F0D6AEC: ANDI T6,T1,00FF SLL T0,S0,0x8 OR T7,T6,T0 BEQ R0,R0,7F0E27FC SH T7,0294 (SP) //7F0D6B00: 68: LD L,B 4 LW T9,028C (SP) LBU T4,0287 (SP) LBU T3,0287 (SP) ADDIU T8,T9,0004 BNE T4,R0,7F0D6B20 SW T8,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC ANDI S7,S2,00FF //7F0D6B20: ADDIU AT,R0,0001 BNE T3,AT,7F0D6B40 LHU T6,0294 (SP) LHU T2,0296 (SP) ANDI T5,T2,FF00 OR T1,T5,S2 BEQ R0,R0,7F0E27FC SH T1,0296 (SP) //7F0D6B40: ANDI T0,T6,FF00 OR T7,T0,S2 BEQ R0,R0,7F0E27FC SH T7,0294 (SP) //7F0D6B50: 69: LD L,C 4 LW T9,028C (SP) LBU T4,0287 (SP) LBU T3,0287 (SP) ADDIU T8,T9,0004 BNE T4,R0,7F0D6B70 SW T8,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC ANDI S7,S3,00FF //7F0D6B70: ADDIU AT,R0,0001 BNE T3,AT,7F0D6B90 LHU T6,0294 (SP) LHU T2,0296 (SP) ANDI T5,T2,FF00 OR T1,T5,S3 BEQ R0,R0,7F0E27FC SH T1,0296 (SP) //7F0D6B90: ANDI T0,T6,FF00 OR T7,T0,S3 BEQ R0,R0,7F0E27FC SH T7,0294 (SP) //7F0D6BA0: 6A: LD L,D 4 LW T9,028C (SP) LBU T4,0287 (SP) LBU T3,0287 (SP) ADDIU T8,T9,0004 BNE T4,R0,7F0D6BC0 SW T8,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC ANDI S7,S4,00FF //7F0D6BC0: ADDIU AT,R0,0001 BNE T3,AT,7F0D6BE0 LHU T6,0294 (SP) LHU T2,0296 (SP) ANDI T5,T2,FF00 OR T1,T5,S4 BEQ R0,R0,7F0E27FC SH T1,0296 (SP) //7F0D6BE0: ANDI T0,T6,FF00 OR T7,T0,S4 BEQ R0,R0,7F0E27FC SH T7,0294 (SP) //7F0D6BF0: 6B: LD L,E 4 LW T9,028C (SP) LBU T4,0287 (SP) LBU T3,0287 (SP) ADDIU T8,T9,0004 BNE T4,R0,7F0D6C10 SW T8,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC ANDI S7,S5,00FF //7F0D6C10: ADDIU AT,R0,0001 BNE T3,AT,7F0D6C30 LHU T6,0294 (SP) LHU T2,0296 (SP) ANDI T5,T2,FF00 OR T1,T5,S5 BEQ R0,R0,7F0E27FC SH T1,0296 (SP) //7F0D6C30: ANDI T0,T6,FF00 OR T7,T0,S5 BEQ R0,R0,7F0E27FC SH T7,0294 (SP) //7F0D6C40: 6C: LD L,H 4 LW T9,028C (SP) LBU T4,0287 (SP) LBU T7,0287 (SP) ADDIU T8,T9,0004 SLTIU T3,T4,0001 BEQ T3,R0,7F0D6C98 SW T8,028C (SP) ;cycles+=4 BEQ T3,R0,7F0D6C6C LBU T2,0287 (SP) BEQ R0,R0,7F0E27FC ANDI S7,S6,00FF //7F0D6C6C: ADDIU AT,R0,0001 BNE T2,AT,7F0D6C88 LHU T6,0294 (SP) LHU T5,0296 (SP) SRA T1,T5,0x8 BEQ R0,R0,7F0D6C90 SW T1,0048 (SP) //7F0D6C88: SRA T0,T6,0x8 SW T0,0048 (SP) BEQ R0,R0,7F0E27FC LBU S7,004B (SP) //7F0D6C98: ADDIU AT,R0,0001 BNE T7,AT,7F0D6CF8 LBU T9,0287 (SP) BNE T7,R0,7F0D6CB4 LBU T9,0287 (SP) BEQ R0,R0,7F0D6CE0 SW S6,0044 (SP) //7F0D6CB4: ADDIU AT,R0,0001 BNE T9,AT,7F0D6CD0 LHU T3,0294 (SP) LHU T8,0296 (SP) SRA T4,T8,0x8 BEQ R0,R0,7F0D6CD8 SW T4,0040 (SP) //7F0D6CD0: SRA T2,T3,0x8 SW T2,0040 (SP) LW T5,0040 (SP) SW T5,0044 (SP) LHU T6,0296 (SP) LW T1,0044 (SP) ANDI T0,T6,FF00 OR T7,T1,T0 BEQ R0,R0,7F0E27FC SH T7,0296 (SP) //7F0D6CF8: BNE T9,R0,7F0D6D08 LBU T8,0287 (SP) BEQ R0,R0,7F0D6D34 SW S6,003C (SP) //7F0D6D08: ADDIU AT,R0,0001 BNE T8,AT,7F0D6D24 LHU T2,0294 (SP) LHU T4,0296 (SP) SRA T3,T4,0x8 BEQ R0,R0,7F0D6D2C SW T3,0038 (SP) //7F0D6D24: SRA T5,T2,0x8 SW T5,0038 (SP) LW T6,0038 (SP) SW T6,003C (SP) LHU T0,0294 (SP) LW T1,003C (SP) ANDI T7,T0,FF00 OR T9,T1,T7 BEQ R0,R0,7F0E27FC SH T9,0294 (SP) //7F0D6D4C: 6D: LD L,L 4 LW T8,028C (SP) ADDIU T4,T8,0004 BEQ R0,R0,7F0E27FC SW T4,028C (SP) ;cycles+=4 //7F0D6D5C: 6E: LD L,(HL) 7 LW T3,028C (SP) LBU T5,0287 (SP) SLL T6,S6,0x8 ADDIU T2,T3,0007 BNE T5,R0,7F0D6D80 SW T2,028C (SP) ;cycles+=7 OR T0,T6,S7 BEQ R0,R0,7F0D6DD4 SH T0,0202 (SP) //7F0D6D80: LW T1,028C (SP) LBU T9,0287 (SP) ADDIU AT,R0,0001 ADDIU T7,T1,0008 BNE T9,AT,7F0D6DA4 SW T7,028C (SP) ;cycles+=8 LHU T8,0296 (SP) BEQ R0,R0,7F0D6DAC SW T8,0048 (SP) //7F0D6DA4: LHU T4,0294 (SP) SW T4,0048 (SP) LUI T2,8009 LW T2,E328 (T2) ;T2=p->spectrum.ROMs LHU T3,0298 (SP) ;T3=spec.PC LW T0,0048 (SP) ADDU T5,T3,T2 LB T6,0000 (T5) ;T6= val ADDIU T7,T3,0001 SH T7,0298 (SP) ;spec.PC+=1 ADDU T1,T6,T0 SH T1,0202 (SP) LUI T8,8009 LW T8,E328 (T8) ;T8=p->spectrum.ROMs LHU T9,0202 (SP) ADDU T4,T9,T8 BEQ R0,R0,7F0E27FC LBU S7,0000 (T4) //7F0D6DEC: 6F: LD L,A 4 LW T2,028C (SP) LBU T6,0287 (SP) LBU T0,0287 (SP) ADDIU T5,T2,0004 BNE T6,R0,7F0D6E0C SW T5,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC ANDI S7,S0,00FF //7F0D6E0C: ADDIU AT,R0,0001 BNE T0,AT,7F0D6E2C LHU T9,0294 (SP) LHU T1,0296 (SP) ANDI T3,T1,FF00 OR T7,T3,S0 BEQ R0,R0,7F0E27FC SH T7,0296 (SP) //7F0D6E2C: ANDI T8,T9,FF00 OR T4,T8,S0 BEQ R0,R0,7F0E27FC SH T4,0294 (SP) //7F0D6E3C: 70: LD (HL),B 7 LW T2,028C (SP) LBU T6,0287 (SP) SLL T0,S6,0x8 ADDIU T5,T2,0007 BNE T6,R0,7F0D6E60 SW T5,028C (SP) ;cycles+=7 OR T1,T0,S7 BEQ R0,R0,7F0D6EB4 SH T1,0200 (SP) //7F0D6E60: LW T3,028C (SP) LBU T9,0287 (SP) ADDIU AT,R0,0001 ADDIU T7,T3,0008 BNE T9,AT,7F0D6E84 SW T7,028C (SP) ;cycles+=8 LHU T8,0296 (SP) BEQ R0,R0,7F0D6E8C SW T8,0048 (SP) //7F0D6E84: LHU T4,0294 (SP) SW T4,0048 (SP) LUI T5,8009 LW T5,E328 (T5) ;T5=p->spectrum.ROMs LHU T2,0298 (SP) ;T2=spec.PC LW T1,0048 (SP) ADDU T6,T2,T5 LB T0,0000 (T6) ADDIU T7,T2,0001 SH T7,0298 (SP) ;spec.PC+=1 ADDU T3,T0,T1 SH T3,0200 (SP) LHU T9,0200 (SP) LHU T5,0200 (SP) LUI T8,8009 SLTI AT,T9,5B00 BNEL AT,R0,7F0D6EE0 SLTI AT,T5,5800 LW T8,E328 (T8) ;T8=p->spectrum.ROMs ADDU T4,T8,T9 BEQ R0,R0,7F0E27FC SB S2,0000 (T4) //7F0D6EDC: SLTI AT,T5,5800 BNE AT,R0,7F0D6F14 LHU T8,0200 (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=p->spectrum.ROMs LUI T3,8009 ADDIU T1,R0,0001 ADDU T0,T6,T5 SB S2,0000 (T0) LHU T2,0200 (SP) LW T3,E32C (T3) ADDU T7,T3,T2 BEQ R0,R0,7F0E27FC SB T1,A800 (T7) //7F0D6F14: SLTI AT,T8,4000 BNE AT,R0,7F0E27FC LUI T9,8009 LW T9,E328 (T9) ;T9=p->spectrum.ROMs LUI T7,8009 ADDIU T6,R0,0001 ADDU T4,T9,T8 SB S2,0000 (T4) LHU T5,0200 (SP) LW T7,E32C (T7) ANDI T0,T5,1800 SRA T3,T0,0x3 ANDI T2,T5,00FF OR T1,T3,T2 ADDU T9,T7,T1 BEQ R0,R0,7F0E27FC SB T6,0000 (T9) //7F0D6F58: 71: LD (HL),C 7 LW T8,028C (SP) LBU T0,0287 (SP) SLL T5,S6,0x8 ADDIU T4,T8,0007 BNE T0,R0,7F0D6F7C SW T4,028C (SP) ;cycles+=7 OR T3,T5,S7 BEQ R0,R0,7F0D6FD0 SH T3,01FE (SP) //7F0D6F7C: LW T2,028C (SP) LBU T1,0287 (SP) ADDIU AT,R0,0001 ADDIU T7,T2,0008 BNE T1,AT,7F0D6FA0 SW T7,028C (SP) ;cycles+=8 LHU T6,0296 (SP) BEQ R0,R0,7F0D6FA8 SW T6,0048 (SP) //7F0D6FA0: LHU T9,0294 (SP) SW T9,0048 (SP) LUI T4,8009 LW T4,E328 (T4) ;T4=p->spectrum.ROMs LHU T8,0298 (SP) ;T8=spec.PC LW T3,0048 (SP) ADDU T0,T8,T4 LB T5,0000 (T0) ADDIU T7,T8,0001 SH T7,0298 (SP) ;spec.PC+=1 ADDU T2,T5,T3 SH T2,01FE (SP) LHU T1,01FE (SP) LHU T4,01FE (SP) LUI T6,8009 SLTI AT,T1,5B00 BNEL AT,R0,7F0D6FFC SLTI AT,T4,5800 LW T6,E328 (T6) ;T6=p->spectrum.ROMs ADDU T9,T6,T1 BEQ R0,R0,7F0E27FC SB S3,0000 (T9) //7F0D6FF8: SLTI AT,T4,5800 BNE AT,R0,7F0D7030 LHU T6,01FE (SP) LUI T0,8009 LW T0,E328 (T0) ;T0=p->spectrum.ROMs LUI T2,8009 ADDIU T3,R0,0001 ADDU T5,T0,T4 SB S3,0000 (T5) LHU T8,01FE (SP) LW T2,E32C (T2) ADDU T7,T2,T8 BEQ R0,R0,7F0E27FC SB T3,A800 (T7) //7F0D7030: SLTI AT,T6,4000 BNE AT,R0,7F0E27FC LUI T1,8009 LW T1,E328 (T1) ;T1=p->spectrum.ROMs LUI T7,8009 ADDIU T0,R0,0001 ADDU T9,T1,T6 SB S3,0000 (T9) LHU T4,01FE (SP) LW T7,E32C (T7) ANDI T5,T4,1800 SRA T2,T5,0x3 ANDI T8,T4,00FF OR T3,T2,T8 ADDU T1,T7,T3 BEQ R0,R0,7F0E27FC SB T0,0000 (T1) //7F0D7074: 72: LD (HL),D 7 LW T6,028C (SP) LBU T5,0287 (SP) SLL T4,S6,0x8 ADDIU T9,T6,0007 BNE T5,R0,7F0D7098 SW T9,028C (SP) ;cycles+=7 OR T2,T4,S7 BEQ R0,R0,7F0D70EC SH T2,01FC (SP) //7F0D7098: LW T8,028C (SP) LBU T3,0287 (SP) ADDIU AT,R0,0001 ADDIU T7,T8,0008 BNE T3,AT,7F0D70BC SW T7,028C (SP) ;cycles+=8 LHU T0,0296 (SP) BEQ R0,R0,7F0D70C4 SW T0,0048 (SP) //7F0D70BC: LHU T1,0294 (SP) SW T1,0048 (SP) LUI T9,8009 LW T9,E328 (T9) ;T9=p->spectrum.ROMs LHU T6,0298 (SP) ;T6=spec.PC LW T2,0048 (SP) ADDU T5,T6,T9 LB T4,0000 (T5) ADDIU T7,T6,0001 SH T7,0298 (SP) ;spec.PC+=1 ADDU T8,T4,T2 SH T8,01FC (SP) LHU T3,01FC (SP) LHU T9,01FC (SP) LUI T0,8009 SLTI AT,T3,5B00 BNEL AT,R0,7F0D7118 SLTI AT,T9,5800 LW T0,E328 (T0) ;T0=p->spectrum.ROMs ADDU T1,T0,T3 BEQ R0,R0,7F0E27FC SB S4,0000 (T1) //7F0D7114: SLTI AT,T9,5800 BNE AT,R0,7F0D714C LHU T0,01FC (SP) LUI T5,8009 LW T5,E328 (T5) ;T5=p->spectrum.ROMs LUI T8,8009 ADDIU T2,R0,0001 ADDU T4,T5,T9 SB S4,0000 (T4) LHU T6,01FC (SP) LW T8,E32C (T8) ADDU T7,T8,T6 BEQ R0,R0,7F0E27FC SB T2,A800 (T7) //7F0D714C: SLTI AT,T0,4000 BNE AT,R0,7F0E27FC LUI T3,8009 LW T3,E328 (T3) ;T3=p->spectrum.ROMs LUI T7,8009 ADDIU T5,R0,0001 ADDU T1,T3,T0 SB S4,0000 (T1) LHU T9,01FC (SP) LW T7,E32C (T7) ANDI T4,T9,1800 SRA T8,T4,0x3 ANDI T6,T9,00FF OR T2,T8,T6 ADDU T3,T7,T2 BEQ R0,R0,7F0E27FC SB T5,0000 (T3) //7F0D7190: 73: LD (HL),E 7 LW T0,028C (SP) LBU T4,0287 (SP) SLL T9,S6,0x8 ADDIU T1,T0,0007 BNE T4,R0,7F0D71B4 SW T1,028C (SP) ;cycles+=7 OR T8,T9,S7 BEQ R0,R0,7F0D7208 SH T8,01FA (SP) //7F0D71B4: LW T6,028C (SP) LBU T2,0287 (SP) ADDIU AT,R0,0001 ADDIU T7,T6,0008 BNE T2,AT,7F0D71D8 SW T7,028C (SP) ;cycles+=8 LHU T5,0296 (SP) BEQ R0,R0,7F0D71E0 SW T5,0048 (SP) //7F0D71D8: LHU T3,0294 (SP) SW T3,0048 (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=p->spectrum.ROMs LHU T0,0298 (SP) ;T0=spec.PC LW T8,0048 (SP) ADDU T4,T0,T1 LB T9,0000 (T4) ADDIU T7,T0,0001 SH T7,0298 (SP) ;spec.PC+=1 ADDU T6,T9,T8 SH T6,01FA (SP) LHU T2,01FA (SP) LHU T1,01FA (SP) LUI T5,8009 SLTI AT,T2,5B00 BNEL AT,R0,7F0D7234 SLTI AT,T1,5800 LW T5,E328 (T5) ;T5=p->spectrum.ROMs ADDU T3,T5,T2 BEQ R0,R0,7F0E27FC SB S5,0000 (T3) //7F0D7230: SLTI AT,T1,5800 BNE AT,R0,7F0D7268 LHU T5,01FA (SP) LUI T4,8009 LW T4,E328 (T4) ;T4=p->spectrum.ROMs LUI T6,8009 ADDIU T8,R0,0001 ADDU T9,T4,T1 SB S5,0000 (T9) LHU T0,01FA (SP) LW T6,E32C (T6) ADDU T7,T6,T0 BEQ R0,R0,7F0E27FC SB T8,A800 (T7) //7F0D7268: SLTI AT,T5,4000 BNE AT,R0,7F0E27FC LUI T2,8009 LW T2,E328 (T2) ;T2=p->spectrum.ROMs LUI T7,8009 ADDIU T4,R0,0001 ADDU T3,T2,T5 SB S5,0000 (T3) LHU T1,01FA (SP) LW T7,E32C (T7) ANDI T9,T1,1800 SRA T6,T9,0x3 ANDI T0,T1,00FF OR T8,T6,T0 ADDU T2,T7,T8 BEQ R0,R0,7F0E27FC SB T4,0000 (T2) //7F0D72AC: 74: LD (HL),H 7 LW T5,028C (SP) LBU T9,0287 (SP) SLL T1,S6,0x8 ADDIU T3,T5,0007 BNE T9,R0,7F0D72D0 SW T3,028C (SP) ;cycles+=7 OR T6,T1,S7 BEQ R0,R0,7F0D7324 SH T6,01F8 (SP) //7F0D72D0: LW T0,028C (SP) LBU T8,0287 (SP) ADDIU AT,R0,0001 ADDIU T7,T0,0008 BNE T8,AT,7F0D72F4 SW T7,028C (SP) ;cycles+=8 LHU T4,0296 (SP) BEQ R0,R0,7F0D72FC SW T4,0048 (SP) //7F0D72F4: LHU T2,0294 (SP) SW T2,0048 (SP) LUI T3,8009 LW T3,E328 (T3) ;T3=p->spectrum.ROMs LHU T5,0298 (SP) ;T5=spec.PC LW T6,0048 (SP) ADDU T9,T5,T3 LB T1,0000 (T9) ADDIU T7,T5,0001 SH T7,0298 (SP) ;spec.PC+=1 ADDU T0,T1,T6 SH T0,01F8 (SP) LHU T8,01F8 (SP) LHU T3,01F8 (SP) LUI T4,8009 SLTI AT,T8,5B00 BNEL AT,R0,7F0D7350 SLTI AT,T3,5800 LW T4,E328 (T4) ;T4=p->spectrum.ROMs ADDU T2,T4,T8 BEQ R0,R0,7F0E27FC SB S6,0000 (T2) //7F0D734C: SLTI AT,T3,5800 BNE AT,R0,7F0D7384 LHU T4,01F8 (SP) LUI T9,8009 LW T9,E328 (T9) ;T9=p->spectrum.ROMs LUI T0,8009 ADDIU T6,R0,0001 ADDU T1,T9,T3 SB S6,0000 (T1) LHU T5,01F8 (SP) LW T0,E32C (T0) ADDU T7,T0,T5 BEQ R0,R0,7F0E27FC SB T6,A800 (T7) //7F0D7384: SLTI AT,T4,4000 BNE AT,R0,7F0E27FC LUI T8,8009 LW T8,E328 (T8) ;T8=p->spectrum.ROMs LUI T7,8009 ADDIU T9,R0,0001 ADDU T2,T8,T4 SB S6,0000 (T2) LHU T3,01F8 (SP) LW T7,E32C (T7) ANDI T1,T3,1800 SRA T0,T1,0x3 ANDI T5,T3,00FF OR T6,T0,T5 ADDU T8,T7,T6 BEQ R0,R0,7F0E27FC SB T9,0000 (T8) //7F0D73C8: 75: LD (HL),L 7 LW T4,028C (SP) LBU T1,0287 (SP) SLL T3,S6,0x8 ADDIU T2,T4,0007 BNE T1,R0,7F0D73EC SW T2,028C (SP) ;cycles+=7 OR T0,T3,S7 BEQ R0,R0,7F0D7440 SH T0,01F6 (SP) //7F0D73EC: LW T5,028C (SP) LBU T6,0287 (SP) ADDIU AT,R0,0001 ADDIU T7,T5,0008 BNE T6,AT,7F0D7410 SW T7,028C (SP) ;cycles+=8 LHU T9,0296 (SP) BEQ R0,R0,7F0D7418 SW T9,0048 (SP) //7F0D7410: LHU T8,0294 (SP) SW T8,0048 (SP) LUI T2,8009 LW T2,E328 (T2) ;T2=p->spectrum.ROMs LHU T4,0298 (SP) ;T4=spec.PC LW T0,0048 (SP) ADDU T1,T4,T2 LB T3,0000 (T1) ADDIU T7,T4,0001 SH T7,0298 (SP) ;spec.PC+=1 ADDU T5,T3,T0 SH T5,01F6 (SP) LHU T6,01F6 (SP) LHU T2,01F6 (SP) LUI T9,8009 SLTI AT,T6,5B00 BNEL AT,R0,7F0D746C SLTI AT,T2,5800 LW T9,E328 (T9) ;T9=p->spectrum.ROMs ADDU T8,T9,T6 BEQ R0,R0,7F0E27FC SB S7,0000 (T8) //7F0D7468: SLTI AT,T2,5800 BNE AT,R0,7F0D74A0 LHU T9,01F6 (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=p->spectrum.ROMs LUI T5,8009 ADDIU T0,R0,0001 ADDU T3,T1,T2 SB S7,0000 (T3) LHU T4,01F6 (SP) LW T5,E32C (T5) ADDU T7,T5,T4 BEQ R0,R0,7F0E27FC SB T0,A800 (T7) //7F0D74A0: SLTI AT,T9,4000 BNE AT,R0,7F0E27FC LUI T6,8009 LW T6,E328 (T6) ;T6=p->spectrum.ROMs LUI T7,8009 ADDIU T1,R0,0001 ADDU T8,T6,T9 SB S7,0000 (T8) LHU T2,01F6 (SP) LW T7,E32C (T7) ANDI T3,T2,1800 SRA T5,T3,0x3 ANDI T4,T2,00FF OR T0,T5,T4 ADDU T6,T7,T0 BEQ R0,R0,7F0E27FC SB T1,0000 (T6) //7F0D74E4: 76: HALT 4 LW T9,028C (SP) LW T3,0280 (SP) ADDIU T8,T9,0004 SLTU AT,T8,T3 BEQ AT,R0,7F0D7514 SW T8,028C (SP) ;cycles+=4 SUBU T2,T3,T8 ADDIU T5,T2,0003 ADDIU AT,R0,FFFC AND T4,T5,AT ADDU T7,T8,T4 SW T7,028C (SP) LHU T0,0298 (SP) ;T0=spec.PC ADDIU T1,T0,FFFF BEQ R0,R0,7F0E27FC SH T1,0298 (SP) ;spec.PC-=1 //7F0D7524: 77: LD (HL),A 7 LW T6,028C (SP) LBU T3,0287 (SP) SLL T2,S6,0x8 ADDIU T9,T6,0007 BNE T3,R0,7F0D7548 SW T9,028C (SP) ;cycles+=7 OR T5,T2,S7 BEQ R0,R0,7F0D759C SH T5,01F4 (SP) //7F0D7548: LW T8,028C (SP) LBU T7,0287 (SP) ADDIU AT,R0,0001 ADDIU T4,T8,0008 BNE T7,AT,7F0D756C SW T4,028C (SP) ;cycles+=8 LHU T0,0296 (SP) BEQ R0,R0,7F0D7574 SW T0,0048 (SP) //7F0D756C: LHU T1,0294 (SP) SW T1,0048 (SP) LUI T9,8009 LW T9,E328 (T9) ;T9=p->spectrum.ROMs LHU T6,0298 (SP) ;T6=spec.PC LW T5,0048 (SP) ADDU T3,T6,T9 LB T2,0000 (T3) ADDIU T4,T6,0001 SH T4,0298 (SP) ;spec.PC+=1 ADDU T8,T2,T5 SH T8,01F4 (SP) LHU T7,01F4 (SP) LHU T9,01F4 (SP) LUI T0,8009 SLTI AT,T7,5B00 BNEL AT,R0,7F0D75C8 SLTI AT,T9,5800 LW T0,E328 (T0) ;T0=p->spectrum.ROMs ADDU T1,T0,T7 BEQ R0,R0,7F0E27FC SB S0,0000 (T1) //7F0D75C4: SLTI AT,T9,5800 BNE AT,R0,7F0D75FC LHU T0,01F4 (SP) LUI T3,8009 LW T3,E328 (T3) ;T3=p->spectrum.ROMs LUI T8,8009 ADDIU T5,R0,0001 ADDU T2,T3,T9 SB S0,0000 (T2) LHU T6,01F4 (SP) LW T8,E32C (T8) ADDU T4,T8,T6 BEQ R0,R0,7F0E27FC SB T5,A800 (T4) //7F0D75FC: SLTI AT,T0,4000 BNE AT,R0,7F0E27FC LUI T7,8009 LW T7,E328 (T7) ;T7=p->spectrum.ROMs LUI T4,8009 ADDIU T3,R0,0001 ADDU T1,T7,T0 SB S0,0000 (T1) LHU T9,01F4 (SP) LW T4,E32C (T4) ANDI T2,T9,1800 SRA T8,T2,0x3 ANDI T6,T9,00FF OR T5,T8,T6 ADDU T7,T4,T5 BEQ R0,R0,7F0E27FC SB T3,0000 (T7) //7F0D7640: 78: LD A,B 4 LW T0,028C (SP) ANDI S0,S2,00FF ADDIU T1,T0,0004 BEQ R0,R0,7F0E27FC SW T1,028C (SP) ;cycles+=4 //7F0D7654: 79: LD A,C 4 LW T2,028C (SP) ANDI S0,S3,00FF ;S0=S3: spec.A = spec.C ADDIU T9,T2,0004 BEQ R0,R0,7F0E27FC SW T9,028C (SP) ;cycles+=4 //7F0D7668: 7A: LD A,D 4 LW T8,028C (SP) ANDI S0,S4,00FF ;S0=S4: spec.A = spec.D ADDIU T6,T8,0004 BEQ R0,R0,7F0E27FC SW T6,028C (SP) ;cycles+=4 //7F0D767C: 7B: LD A,E 4 LW T4,028C (SP) ANDI S0,S5,00FF ;S0=S5: spec.A = spec.E ADDIU T5,T4,0004 BEQ R0,R0,7F0E27FC SW T5,028C (SP) ;cycles+=4 //7F0D7690: 7C: LD A,H 4 LW T3,028C (SP) LBU T0,0287 (SP) ;SP+287: LBU T1,0287 (SP) ADDIU T7,T3,0004 BNE T0,R0,7F0D76B0 SW T7,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC ANDI S0,S6,00FF ;S0=S6: spec.A = spec.H //7F0D76B0: ADDIU AT,R0,0001 BNE T1,AT,7F0D76CC LHU T8,0294 (SP) LHU T2,0296 (SP) SRA T9,T2,0x8 BEQ R0,R0,7F0D76D4 SW T9,0048 (SP) //7F0D76CC: SRA T6,T8,0x8 SW T6,0048 (SP) //7F0D76D4: BEQ R0,R0,7F0E27FC LBU S0,004B (SP) ;S0=SP+4B: //7F0D76DC: 7D: LD A,L 4 LW T4,028C (SP) LBU T3,0287 (SP) LBU T7,0287 (SP) ADDIU T5,T4,0004 BNE T3,R0,7F0D76FC SW T5,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC ANDI S0,S7,00FF ;S0=S7: spec.A = spec.L //7F0D76FC: ADDIU AT,R0,0001 BNE T7,AT,7F0D7718 LHU T2,0294 (SP) LHU T0,0296 (SP) ANDI T1,T0,00FF BEQ R0,R0,7F0D7720 SW T1,0048 (SP) //7F0D7718: ANDI T9,T2,00FF SW T9,0048 (SP) BEQ R0,R0,7F0E27FC LBU S0,004B (SP) //7F0D7728: 7E: LD A,(HL) 7 LW T8,028C (SP) LBU T4,0287 (SP) SLL T5,S6,0x8 ADDIU T6,T8,0007 BNE T4,R0,7F0D774C SW T6,028C (SP) ;cycles+=7 OR T3,T5,S7 BEQ R0,R0,7F0D77A0 SH T3,01F2 (SP) //7F0D774C: LW T7,028C (SP) LBU T1,0287 (SP) ADDIU AT,R0,0001 ADDIU T0,T7,0008 BNE T1,AT,7F0D7770 SW T0,028C (SP) ;cycles+=8 LHU T2,0296 (SP) BEQ R0,R0,7F0D7778 SW T2,0048 (SP) //7F0D7770: LHU T9,0294 (SP) SW T9,0048 (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=p->spectrum.ROMs LHU T8,0298 (SP) ;T8=spec.PC LW T3,0048 (SP) ADDU T4,T8,T6 LB T5,0000 (T4) ADDIU T0,T8,0001 SH T0,0298 (SP) ;spec.PC+=1 ADDU T7,T5,T3 SH T7,01F2 (SP) LUI T2,8009 LW T2,E328 (T2) ;T2=p->spectrum.ROMs LHU T1,01F2 (SP) ADDU T9,T1,T2 BEQ R0,R0,7F0E27FC LBU S0,0000 (T9) //7F0D77B8: 7F: LD A,A 4 LW T6,028C (SP) ADDIU T4,T6,0004 BEQ R0,R0,7F0E27FC SW T4,028C (SP) ;cycles+=4 //7F0D77C8: 80: ADD A,B 4 LW T5,028C (SP) ANDI T7,S2,00FF ADDU T0,S0,T7 ;T0= spec.A + spec.B ADDIU T3,T5,0004 ANDI T1,T0,00A8 ;T1= add & A8 (10101000) SRA T2,T0,0x8 ;T2= nonzero if overflow ANDI T4,T7,000F ANDI T6,S0,000F SW T3,028C (SP) ;cycles+=4 ADDU T5,T6,T4 OR T9,T1,T2 ADDIU AT,R0,000F SLT T3,AT,T5 NOR T2,S0,R0 XOR T5,T0,S0 SH T0,01F0 (SP) LBU S0,01F1 (SP) XOR T6,T2,T7 SLL T8,T3,0x4 ANDI T4,T6,0080 AND T3,T4,T5 OR T1,T9,T8 SRA T9,T3,0x5 SLTIU T2,S0,0001 ;T2= True if spec.A=0 SLL T6,T2,0x6 ;T6= ZERO flag (40) OR T8,T1,T9 OR S1,T8,T6 ANDI T0,S1,00FF OR S1,T0,R0 SW T2,0048 (SP) BEQ R0,R0,7F0E27FC SB S2,01EF (SP) //7F0D7848: 81: ADD A,C 4 LW T4,028C (SP) ANDI T3,S3,00FF ADDU T9,S0,T3 ADDIU T5,T4,0004 ANDI T8,T9,00A8 SRA T2,T9,0x8 ANDI T0,T3,000F ANDI T6,S0,000F SW T5,028C (SP) ;cycles+=4 ADDU T4,T6,T0 OR T7,T8,T2 ADDIU AT,R0,000F SLT T5,AT,T4 NOR T2,S0,R0 XOR T4,T9,S0 SH T9,01EC (SP) LBU S0,01ED (SP) XOR T6,T2,T3 SLL T1,T5,0x4 ANDI T0,T6,0080 AND T5,T0,T4 OR T8,T7,T1 SRA T7,T5,0x5 SLTIU T2,S0,0001 SLL T6,T2,0x6 OR T1,T8,T7 OR S1,T1,T6 ANDI T9,S1,00FF OR S1,T9,R0 SW T2,0048 (SP) BEQ R0,R0,7F0E27FC SB S3,01EB (SP) //7F0D78C8: 82: ADD A,D 4 LW T0,028C (SP) ANDI T5,S4,00FF ADDU T7,S0,T5 ADDIU T4,T0,0004 ANDI T1,T7,00A8 SRA T2,T7,0x8 ANDI T9,T5,000F ANDI T6,S0,000F SW T4,028C (SP) ;cycles+=4 ADDU T0,T6,T9 OR T3,T1,T2 ADDIU AT,R0,000F SLT T4,AT,T0 NOR T2,S0,R0 XOR T0,T7,S0 SH T7,01E8 (SP) LBU S0,01E9 (SP) XOR T6,T2,T5 SLL T8,T4,0x4 ANDI T9,T6,0080 AND T4,T9,T0 OR T1,T3,T8 SRA T3,T4,0x5 SLTIU T2,S0,0001 SLL T6,T2,0x6 OR T8,T1,T3 OR S1,T8,T6 ANDI T7,S1,00FF OR S1,T7,R0 SW T2,0048 (SP) BEQ R0,R0,7F0E27FC SB S4,01E7 (SP) //7F0D7948: 83: ADD A,E 4 LW T9,028C (SP) ANDI T4,S5,00FF ADDU T3,S0,T4 ADDIU T0,T9,0004 ANDI T8,T3,00A8 SRA T2,T3,0x8 ANDI T7,T4,000F ANDI T6,S0,000F SW T0,028C (SP) ;cycles+=4 ADDU T9,T6,T7 OR T5,T8,T2 ADDIU AT,R0,000F SLT T0,AT,T9 NOR T2,S0,R0 XOR T9,T3,S0 SH T3,01E4 (SP) LBU S0,01E5 (SP) XOR T6,T2,T4 SLL T1,T0,0x4 ANDI T7,T6,0080 AND T0,T7,T9 OR T8,T5,T1 SRA T5,T0,0x5 SLTIU T2,S0,0001 SLL T6,T2,0x6 OR T1,T8,T5 OR S1,T1,T6 ANDI T3,S1,00FF OR S1,T3,R0 SW T2,0048 (SP) BEQ R0,R0,7F0E27FC SB S5,01E3 (SP) //7F0D79C8: 84: ADD A,H 4 LW T7,028C (SP) LBU T0,0287 (SP) LBU T8,0287 (SP) ADDIU T9,T7,0004 BNE T0,R0,7F0D79E8 SW T9,028C (SP) ;cycles+=4 BEQ R0,R0,7F0D7A14 SB S6,01DF (SP) //7F0D79E8: ADDIU AT,R0,0001 BNE T8,AT,7F0D7A04 LHU T2,0294 (SP) LHU T5,0296 (SP) SRA T1,T5,0x8 BEQ R0,R0,7F0D7A0C SW T1,0048 (SP) //7F0D7A04: SRA T4,T2,0x8 SW T4,0048 (SP) LW T6,0048 (SP) SB T6,01DF (SP) LBU T3,01DF (SP) ANDI T1,S0,000F ADDIU AT,R0,000F ADDU T9,S0,T3 ANDI T0,T9,00A8 SRA T8,T9,0x8 ANDI T2,T3,000F ADDU T4,T1,T2 OR T5,T0,T8 NOR T8,S0,R0 SLT T6,AT,T4 XOR T4,T9,S0 SH T9,01E0 (SP) LBU S0,01E1 (SP) SLL T7,T6,0x4 XOR T1,T8,T3 ANDI T2,T1,0080 AND T6,T2,T4 OR T0,T5,T7 SRA T5,T6,0x5 SLTIU T8,S0,0001 SLL T1,T8,0x6 OR T7,T0,T5 OR S1,T7,T1 ANDI T9,S1,00FF OR S1,T9,R0 BEQ R0,R0,7F0E27FC SW T8,0048 (SP) //7F0D7A84: 85: ADD A,L 4 LW T2,028C (SP) LBU T6,0287 (SP) LBU T0,0287 (SP) ADDIU T4,T2,0004 BNE T6,R0,7F0D7AA4 SW T4,028C (SP) ;cycles+=4 BEQ R0,R0,7F0D7AD0 SB S7,01DB (SP) //7F0D7AA4: ADDIU AT,R0,0001 BNE T0,AT,7F0D7AC0 LHU T8,0294 (SP) LHU T5,0296 (SP) ANDI T7,T5,00FF BEQ R0,R0,7F0D7AC8 SW T7,0048 (SP) //7F0D7AC0: ANDI T3,T8,00FF SW T3,0048 (SP) LW T1,0048 (SP) SB T1,01DB (SP) LBU T9,01DB (SP) ANDI T7,S0,000F ADDIU AT,R0,000F ADDU T4,S0,T9 ANDI T6,T4,00A8 SRA T0,T4,0x8 ANDI T8,T9,000F ADDU T3,T7,T8 OR T5,T6,T0 NOR T0,S0,R0 SLT T1,AT,T3 XOR T3,T4,S0 SH T4,01DC (SP) LBU S0,01DD (SP) SLL T2,T1,0x4 XOR T7,T0,T9 ANDI T8,T7,0080 AND T1,T8,T3 OR T6,T5,T2 SRA T5,T1,0x5 SLTIU T0,S0,0001 SLL T7,T0,0x6 OR T2,T6,T5 OR S1,T2,T7 ANDI T4,S1,00FF OR S1,T4,R0 BEQ R0,R0,7F0E27FC SW T0,0048 (SP) //7F0D7B40: 86: ADD A,(HL) 7 LW T8,028C (SP) LBU T1,0287 (SP) SLL T6,S6,0x8 ADDIU T3,T8,0007 BNE T1,R0,7F0D7B64 SW T3,028C (SP) ;cycles+=7 OR T5,T6,S7 BEQ R0,R0,7F0D7BB8 SH T5,01D8 (SP) //7F0D7B64: LW T2,028C (SP) LBU T9,0287 (SP) ADDIU AT,R0,0001 ADDIU T0,T2,0008 BNE T9,AT,7F0D7B88 SW T0,028C (SP) ;cycles+=8 LHU T7,0296 (SP) BEQ R0,R0,7F0D7B90 SW T7,0048 (SP) //7F0D7B88: LHU T4,0294 (SP) SW T4,0048 (SP) LUI T3,8009 LW T3,E328 (T3) ;T3=p->spectrum.ROMs LHU T8,0298 (SP) ;T8=spec.PC LW T5,0048 (SP) ADDU T1,T8,T3 LB T6,0000 (T1) ADDIU T0,T8,0001 SH T0,0298 (SP) ;spec.PC+=1 ADDU T2,T6,T5 SH T2,01D8 (SP) LUI T7,8009 LW T7,E328 (T7) ;T7=p->spectrum.ROMs LHU T9,01D8 (SP) ADDIU AT,R0,000F ADDU T4,T9,T7 LBU T3,0000 (T4) ANDI T9,S0,000F ADDU T6,S0,T3 ANDI T5,T6,00A8 SRA T2,T6,0x8 ANDI T0,T3,000F ADDU T7,T9,T0 OR T8,T5,T2 NOR T2,S0,R0 SLT T4,AT,T7 XOR T7,T6,S0 SH T6,01D6 (SP) LBU S0,01D7 (SP) SLL T1,T4,0x4 XOR T9,T2,T3 ANDI T0,T9,0080 AND T4,T0,T7 OR T5,T8,T1 SRA T8,T4,0x5 SLTIU T2,S0,0001 SLL T9,T2,0x6 OR T1,T5,T8 OR S1,T1,T9 ANDI T6,S1,00FF OR S1,T6,R0 SW T2,0048 (SP) BEQ R0,R0,7F0E27FC SB T3,01D5 (SP) //7F0D7C3C: 87: ADD A,A 4 LW T0,028C (SP) ANDI T4,S0,00FF ADDU T8,S0,T4 ADDIU T7,T0,0004 ANDI T1,T8,00A8 SRA T2,T8,0x8 ANDI T6,T4,000F ANDI T9,S0,000F SW T7,028C (SP) ;cycles+=4 ADDU T0,T9,T6 OR T3,T1,T2 ADDIU AT,R0,000F SLT T7,AT,T0 NOR T2,S0,R0 XOR T0,T8,S0 SH T8,01D2 (SP) SB S0,01D1 (SP) LBU S0,01D3 (SP) XOR T9,T2,T4 SLL T5,T7,0x4 ANDI T6,T9,0080 AND T7,T6,T0 OR T1,T3,T5 SRA T3,T7,0x5 SLTIU T2,S0,0001 SLL T9,T2,0x6 OR T5,T1,T3 OR S1,T5,T9 ANDI T8,S1,00FF OR S1,T8,R0 BEQ R0,R0,7F0E27FC SW T2,0048 (SP) //7F0D7CBC: 88: ADC A,B 4 LW T6,028C (SP) ANDI T7,S2,00FF ADDU T1,S0,T7 ANDI T3,S1,0001 ADDU T5,T1,T3 ADDIU T0,T6,0004 SW T0,028C (SP) ;cycles+=4 ANDI T0,S0,000F ANDI T1,T7,000F ADDU T3,T0,T1 ANDI T4,T5,00A8 SRA T8,T5,0x8 ANDI T2,S1,0001 ADDU T9,T3,T2 OR T6,T4,T8 ADDIU AT,R0,000F SLT T4,AT,T9 SLL T8,T4,0x4 OR T9,T5,R0 NOR T1,S0,R0 XOR T4,T9,S0 SH T5,01CE (SP) LBU S0,01CF (SP) XOR T3,T1,T7 ANDI T2,T3,0080 OR T0,T6,T8 AND T6,T2,T4 SRA T8,T6,0x5 SLTIU T7,S0,0001 SLL T5,T7,0x6 OR T1,T0,T8 OR S1,T1,T5 ANDI T9,S1,00FF OR S1,T9,R0 SW T7,0048 (SP) BEQ R0,R0,7F0E27FC SB S2,01CD (SP) //7F0D7D50: 89: ADC A,C 4 LW T2,028C (SP) ANDI T6,S3,00FF ADDU T0,S0,T6 ANDI T8,S1,0001 ADDU T1,T0,T8 ADDIU T4,T2,0004 SW T4,028C (SP) ;cycles+=4 ANDI T4,S0,000F ANDI T0,T6,000F ADDU T8,T4,T0 ANDI T3,T1,00A8 SRA T9,T1,0x8 ANDI T7,S1,0001 ADDU T5,T8,T7 OR T2,T3,T9 ADDIU AT,R0,000F SLT T3,AT,T5 SLL T9,T3,0x4 OR T5,T1,R0 NOR T0,S0,R0 XOR T3,T5,S0 SH T1,01CA (SP) LBU S0,01CB (SP) XOR T8,T0,T6 ANDI T7,T8,0080 OR T4,T2,T9 AND T2,T7,T3 SRA T9,T2,0x5 SLTIU T6,S0,0001 SLL T1,T6,0x6 OR T0,T4,T9 OR S1,T0,T1 ANDI T5,S1,00FF OR S1,T5,R0 SW T6,0048 (SP) BEQ R0,R0,7F0E27FC SB S3,01C9 (SP) //7F0D7DE4: 8A: ADC A,D 4 LW T7,028C (SP) ANDI T2,S4,00FF ADDU T4,S0,T2 ANDI T9,S1,0001 ADDU T0,T4,T9 ADDIU T3,T7,0004 SW T3,028C (SP) ;cycles+=4 ANDI T3,S0,000F ANDI T4,T2,000F ADDU T9,T3,T4 ANDI T8,T0,00A8 SRA T5,T0,0x8 ANDI T6,S1,0001 ADDU T1,T9,T6 OR T7,T8,T5 ADDIU AT,R0,000F SLT T8,AT,T1 SLL T5,T8,0x4 OR T1,T0,R0 NOR T4,S0,R0 XOR T8,T1,S0 SH T0,01C6 (SP) LBU S0,01C7 (SP) XOR T9,T4,T2 ANDI T6,T9,0080 OR T3,T7,T5 AND T7,T6,T8 SRA T5,T7,0x5 SLTIU T2,S0,0001 SLL T0,T2,0x6 OR T4,T3,T5 OR S1,T4,T0 ANDI T1,S1,00FF OR S1,T1,R0 SW T2,0048 (SP) BEQ R0,R0,7F0E27FC SB S4,01C5 (SP) //7F0D7E78: 8B: ADC A,E 4 LW T6,028C (SP) ANDI T7,S5,00FF ADDU T3,S0,T7 ANDI T5,S1,0001 ADDU T4,T3,T5 ADDIU T8,T6,0004 SW T8,028C (SP) ;cycles+=4 ANDI T8,S0,000F ANDI T3,T7,000F ADDU T5,T8,T3 ANDI T9,T4,00A8 SRA T1,T4,0x8 ANDI T2,S1,0001 ADDU T0,T5,T2 OR T6,T9,T1 ADDIU AT,R0,000F SLT T9,AT,T0 SLL T1,T9,0x4 OR T0,T4,R0 NOR T3,S0,R0 XOR T9,T0,S0 SH T4,01C2 (SP) LBU S0,01C3 (SP) XOR T5,T3,T7 ANDI T2,T5,0080 OR T8,T6,T1 AND T6,T2,T9 SRA T1,T6,0x5 SLTIU T7,S0,0001 SLL T4,T7,0x6 OR T3,T8,T1 OR S1,T3,T4 ANDI T0,S1,00FF OR S1,T0,R0 SW T7,0048 (SP) BEQ R0,R0,7F0E27FC SB S5,01C1 (SP) //7F0D7F0C: 8C: ADC A,H 4 LW T2,028C (SP) LBU T6,0287 (SP) LBU T8,0287 (SP) ADDIU T9,T2,0004 BNE T6,R0,7F0D7F2C SW T9,028C (SP) ;cycles+=4 BEQ R0,R0,7F0D7F58 SB S6,01BD (SP) //7F0D7F2C: ADDIU AT,R0,0001 BNE T8,AT,7F0D7F48 LHU T7,0294 (SP) LHU T1,0296 (SP) SRA T3,T1,0x8 BEQ R0,R0,7F0D7F50 SW T3,0048 (SP) //7F0D7F48: SRA T5,T7,0x8 SW T5,0048 (SP) LW T4,0048 (SP) SB T4,01BD (SP) LBU T0,01BD (SP) ANDI T9,S1,0001 ANDI T4,S0,000F ADDU T2,S0,T0 ADDU T6,T2,T9 ANDI T2,T0,000F ADDU T9,T4,T2 ANDI T1,T6,00A8 SRA T7,T6,0x8 ANDI T8,S1,0001 ADDU T3,T9,T8 OR T5,T1,T7 ADDIU AT,R0,000F SLT T1,AT,T3 SLL T7,T1,0x4 OR T3,T6,R0 NOR T2,S0,R0 XOR T1,T3,S0 SH T6,01BE (SP) LBU S0,01BF (SP) XOR T9,T2,T0 ANDI T8,T9,0080 OR T4,T5,T7 AND T5,T8,T1 SRA T7,T5,0x5 SLTIU T0,S0,0001 SLL T6,T0,0x6 OR T2,T4,T7 OR S1,T2,T6 ANDI T3,S1,00FF OR S1,T3,R0 BEQ R0,R0,7F0E27FC SW T0,0048 (SP) //7F0D7FDC: 8D: ADC A,L 4 LW T8,028C (SP) LBU T5,0287 (SP) LBU T4,0287 (SP) ADDIU T1,T8,0004 BNE T5,R0,7F0D7FFC SW T1,028C (SP) ;cycles+=4 BEQ R0,R0,7F0D8028 SB S7,01B9 (SP) //7F0D7FFC: ADDIU AT,R0,0001 BNE T4,AT,7F0D8018 LHU T0,0294 (SP) LHU T7,0296 (SP) ANDI T2,T7,00FF BEQ R0,R0,7F0D8020 SW T2,0048 (SP) //7F0D8018: ANDI T9,T0,00FF SW T9,0048 (SP) LW T6,0048 (SP) SB T6,01B9 (SP) LBU T3,01B9 (SP) ANDI T1,S1,0001 ANDI T6,S0,000F ADDU T8,S0,T3 ADDU T5,T8,T1 ANDI T8,T3,000F ADDU T1,T6,T8 ANDI T7,T5,00A8 SRA T0,T5,0x8 ANDI T4,S1,0001 ADDU T2,T1,T4 OR T9,T7,T0 ADDIU AT,R0,000F SLT T7,AT,T2 SLL T0,T7,0x4 OR T2,T5,R0 NOR T8,S0,R0 XOR T7,T2,S0 SH T5,01BA (SP) LBU S0,01BB (SP) XOR T1,T8,T3 ANDI T4,T1,0080 OR T6,T9,T0 AND T9,T4,T7 SRA T0,T9,0x5 SLTIU T3,S0,0001 SLL T5,T3,0x6 OR T8,T6,T0 OR S1,T8,T5 ANDI T2,S1,00FF OR S1,T2,R0 BEQ R0,R0,7F0E27FC SW T3,0048 (SP) //7F0D80AC: 8E: ADC A,(HL) 7 LW T4,028C (SP) LBU T9,0287 (SP) SLL T6,S6,0x8 ADDIU T7,T4,0007 BNE T9,R0,7F0D80D0 SW T7,028C (SP) ;cycles+=7 OR T0,T6,S7 BEQ R0,R0,7F0D8124 SH T0,01B6 (SP) //7F0D80D0: LW T8,028C (SP) LBU T1,0287 (SP) ADDIU AT,R0,0001 ADDIU T3,T8,0008 BNE T1,AT,7F0D80F4 SW T3,028C (SP) ;cycles+=8 LHU T5,0296 (SP) BEQ R0,R0,7F0D80FC SW T5,0048 (SP) //7F0D80F4: LHU T2,0294 (SP) SW T2,0048 (SP) LUI T7,8009 LW T7,E328 (T7) ;T7=p->spectrum.ROMs LHU T4,0298 (SP) ;T4=spec.PC LW T0,0048 (SP) ADDU T9,T4,T7 LB T6,0000 (T9) ADDIU T3,T4,0001 SH T3,0298 (SP) ;spec.PC+=1 ADDU T8,T6,T0 SH T8,01B6 (SP) LUI T5,8009 LW T5,E328 (T5) ;T5=p->spectrum.ROMs LHU T1,01B6 (SP) ANDI T6,S1,0001 ANDI T8,S1,0001 ADDU T2,T1,T5 LBU T7,0000 (T2) ADDIU AT,R0,000F ADDU T9,S0,T7 ADDU T0,T9,T6 ANDI T9,S0,000F ANDI T2,T7,000F ADDU T6,T9,T2 ANDI T4,T0,00A8 SRA T1,T0,0x8 OR T5,T4,T1 ADDU T3,T6,T8 SLT T4,AT,T3 SLL T1,T4,0x4 OR T3,T0,R0 NOR T2,S0,R0 XOR T4,T3,S0 SH T0,01B4 (SP) LBU S0,01B5 (SP) XOR T6,T2,T7 ANDI T8,T6,0080 OR T9,T5,T1 AND T5,T8,T4 SB T7,01B3 (SP) SRA T1,T5,0x5 SLTIU T7,S0,0001 SLL T0,T7,0x6 OR T2,T9,T1 OR S1,T2,T0 ANDI T3,S1,00FF OR S1,T3,R0 BEQ R0,R0,7F0E27FC SW T7,0048 (SP) //7F0D81BC: 8F: ADC A,A 4 LW T8,028C (SP) ANDI T5,S0,00FF ADDU T9,S0,T5 ANDI T1,S1,0001 ADDU T2,T9,T1 ADDIU T4,T8,0004 SW T4,028C (SP) ;cycles+=4 ANDI T4,S0,000F ANDI T9,T5,000F ADDU T1,T4,T9 ANDI T6,T2,00A8 SRA T3,T2,0x8 ANDI T7,S1,0001 ADDU T0,T1,T7 OR T8,T6,T3 ADDIU AT,R0,000F SLT T6,AT,T0 SLL T3,T6,0x4 OR T0,T2,R0 NOR T9,S0,R0 XOR T6,T0,S0 SH T2,01B0 (SP) SB S0,01AF (SP) LBU S0,01B1 (SP) XOR T1,T9,T5 ANDI T7,T1,0080 OR T4,T8,T3 AND T8,T7,T6 SRA T3,T8,0x5 SLTIU T5,S0,0001 SLL T2,T5,0x6 OR T9,T4,T3 OR S1,T9,T2 ANDI T0,S1,00FF OR S1,T0,R0 BEQ R0,R0,7F0E27FC SW T5,0048 (SP) //7F0D8250: 90: SUB B 4 LW T7,028C (SP) ANDI T8,S2,00FF SUBU T4,S0,T8 ADDIU T6,T7,0004 ANDI T3,T4,01FF SW T6,028C (SP) ;cycles+=4 ANDI T6,T8,000F ANDI T5,T3,00A8 SRA T2,T3,0x8 ANDI T7,S0,000F SLT T4,T7,T6 OR T0,T5,T2 XOR T5,S0,T8 SLL T9,T4,0x4 XOR T6,T3,S0 SH T3,01AC (SP) LBU S0,01AD (SP) ANDI T2,T5,0080 AND T4,T2,T6 OR T1,T0,T9 SRA T0,T4,0x5 OR S1,T1,T0 SLTIU T5,S0,0001 SLL T7,T5,0x6 ORI T8,S1,0002 OR S1,T8,T7 ANDI T2,S1,00FF OR S1,T2,R0 SW T5,0048 (SP) BEQ R0,R0,7F0E27FC SB S2,01AB (SP) //7F0D82CC: 91: SUB C 4 LW T6,028C (SP) ANDI T1,S3,00FF SUBU T0,S0,T1 ADDIU T4,T6,0004 ANDI T9,T0,01FF SW T4,028C (SP) ;cycles+=4 ANDI T4,T1,000F ANDI T5,T9,00A8 SRA T7,T9,0x8 ANDI T6,S0,000F SLT T0,T6,T4 OR T2,T5,T7 XOR T5,S0,T1 SLL T8,T0,0x4 XOR T4,T9,S0 SH T9,01A8 (SP) LBU S0,01A9 (SP) ANDI T7,T5,0080 AND T0,T7,T4 OR T3,T2,T8 SRA T2,T0,0x5 OR S1,T3,T2 SLTIU T5,S0,0001 SLL T6,T5,0x6 ORI T1,S1,0002 OR S1,T1,T6 ANDI T7,S1,00FF OR S1,T7,R0 SW T5,0048 (SP) BEQ R0,R0,7F0E27FC SB S3,01A7 (SP) //7F0D8348: 92: SUB D 4 LW T4,028C (SP) ANDI T3,S4,00FF SUBU T2,S0,T3 ADDIU T0,T4,0004 ANDI T8,T2,01FF SW T0,028C (SP) ;cycles+=4 ANDI T0,T3,000F ANDI T5,T8,00A8 SRA T6,T8,0x8 ANDI T4,S0,000F SLT T2,T4,T0 OR T7,T5,T6 XOR T5,S0,T3 SLL T1,T2,0x4 XOR T0,T8,S0 SH T8,01A4 (SP) LBU S0,01A5 (SP) ANDI T6,T5,0080 AND T2,T6,T0 OR T9,T7,T1 SRA T7,T2,0x5 OR S1,T9,T7 SLTIU T5,S0,0001 SLL T4,T5,0x6 ORI T3,S1,0002 OR S1,T3,T4 ANDI T6,S1,00FF OR S1,T6,R0 SW T5,0048 (SP) BEQ R0,R0,7F0E27FC SB S4,01A3 (SP) //7F0D83C4: 93: SUB E 4 LW T0,028C (SP) ANDI T9,S5,00FF SUBU T7,S0,T9 ADDIU T2,T0,0004 ANDI T1,T7,01FF SW T2,028C (SP) ;cycles+=4 ANDI T2,T9,000F ANDI T5,T1,00A8 SRA T4,T1,0x8 ANDI T0,S0,000F SLT T7,T0,T2 OR T6,T5,T4 XOR T5,S0,T9 SLL T3,T7,0x4 XOR T2,T1,S0 SH T1,01A0 (SP) LBU S0,01A1 (SP) ANDI T4,T5,0080 AND T7,T4,T2 OR T8,T6,T3 SRA T6,T7,0x5 OR S1,T8,T6 SLTIU T5,S0,0001 SLL T0,T5,0x6 ORI T9,S1,0002 OR S1,T9,T0 ANDI T4,S1,00FF OR S1,T4,R0 SW T5,0048 (SP) BEQ R0,R0,7F0E27FC SB S5,019F (SP) //7F0D8440: 94: SUB H 4 LW T2,028C (SP) LBU T8,0287 (SP) LBU T6,0287 (SP) ADDIU T7,T2,0004 BNE T8,R0,7F0D8460 SW T7,028C (SP) ;cycles+=4 BEQ R0,R0,7F0D848C SB S6,019B (SP) //7F0D8460: ADDIU AT,R0,0001 BNE T6,AT,7F0D847C LHU T5,0294 (SP) LHU T3,0296 (SP) SRA T9,T3,0x8 BEQ R0,R0,7F0D8484 SW T9,0048 (SP) //7F0D847C: SRA T1,T5,0x8 SW T1,0048 (SP) LW T0,0048 (SP) SB T0,019B (SP) LBU T4,019B (SP) ANDI T1,S0,000F SUBU T2,S0,T4 ANDI T7,T2,01FF ANDI T6,T7,00A8 SRA T9,T7,0x8 ANDI T0,T4,000F SLT T2,T1,T0 OR T5,T6,T9 XOR T6,S0,T4 SLL T8,T2,0x4 XOR T0,T7,S0 SH T7,019C (SP) LBU S0,019D (SP) ANDI T9,T6,0080 AND T2,T9,T0 OR T3,T5,T8 SRA T5,T2,0x5 OR S1,T3,T5 SLTIU T6,S0,0001 SLL T1,T6,0x6 ORI T4,S1,0002 OR S1,T4,T1 ANDI T9,S1,00FF OR S1,T9,R0 BEQ R0,R0,7F0E27FC SW T6,0048 (SP) //7F0D84F8: 95: SUB L 4 LW T0,028C (SP) LBU T3,0287 (SP) LBU T5,0287 (SP) ADDIU T2,T0,0004 BNE T3,R0,7F0D8518 SW T2,028C (SP) ;cycles+=4 BEQ R0,R0,7F0D8544 SB S7,0197 (SP) //7F0D8518: ADDIU AT,R0,0001 BNE T5,AT,7F0D8534 LHU T6,0294 (SP) LHU T8,0296 (SP) ANDI T4,T8,00FF BEQ R0,R0,7F0D853C SW T4,0048 (SP) //7F0D8534: ANDI T7,T6,00FF SW T7,0048 (SP) LW T1,0048 (SP) SB T1,0197 (SP) LBU T9,0197 (SP) ANDI T7,S0,000F SUBU T0,S0,T9 ANDI T2,T0,01FF ANDI T5,T2,00A8 SRA T4,T2,0x8 ANDI T1,T9,000F SLT T0,T7,T1 OR T6,T5,T4 XOR T5,S0,T9 SLL T3,T0,0x4 XOR T1,T2,S0 SH T2,0198 (SP) LBU S0,0199 (SP) ANDI T4,T5,0080 AND T0,T4,T1 OR T8,T6,T3 SRA T6,T0,0x5 OR S1,T8,T6 SLTIU T5,S0,0001 SLL T7,T5,0x6 ORI T9,S1,0002 OR S1,T9,T7 ANDI T4,S1,00FF OR S1,T4,R0 BEQ R0,R0,7F0E27FC SW T5,0048 (SP) //7F0D85B0: 96: SUB (HL) 7 LW T1,028C (SP) LBU T8,0287 (SP) SLL T6,S6,0x8 ADDIU T0,T1,0007 BNE T8,R0,7F0D85D4 SW T0,028C (SP) ;cycles+=7 OR T3,T6,S7 BEQ R0,R0,7F0D8628 SH T3,0194 (SP) //7F0D85D4: LW T9,028C (SP) LBU T2,0287 (SP) ADDIU AT,R0,0001 ADDIU T5,T9,0008 BNE T2,AT,7F0D85F8 SW T5,028C (SP) ;cycles+=8 LHU T7,0296 (SP) BEQ R0,R0,7F0D8600 SW T7,0048 (SP) //7F0D85F8: LHU T4,0294 (SP) SW T4,0048 (SP) LUI T0,8009 LW T0,E328 (T0) ;T0=p->spectrum.ROMs LHU T1,0298 (SP) ;T1=spec.PC LW T3,0048 (SP) ADDU T8,T1,T0 LB T6,0000 (T8) ADDIU T5,T1,0001 SH T5,0298 (SP) ;spec.PC+=1 ADDU T9,T6,T3 SH T9,0194 (SP) LUI T7,8009 LW T7,E328 (T7) ;T7=p->spectrum.ROMs LHU T2,0194 (SP) ADDU T4,T2,T7 LBU T0,0000 (T4) ANDI T4,S0,000F SUBU T8,S0,T0 ANDI T6,T8,01FF ANDI T9,T6,00A8 SRA T5,T6,0x8 ANDI T7,T0,000F SLT T8,T4,T7 OR T2,T9,T5 XOR T9,S0,T0 SLL T3,T8,0x4 XOR T7,T6,S0 SH T6,0192 (SP) LBU S0,0193 (SP) ANDI T5,T9,0080 AND T8,T5,T7 OR T1,T2,T3 SRA T2,T8,0x5 OR S1,T1,T2 SB T0,0191 (SP) SLTIU T9,S0,0001 SLL T4,T9,0x6 ORI T0,S1,0002 OR S1,T0,T4 ANDI T5,S1,00FF OR S1,T5,R0 BEQ R0,R0,7F0E27FC SW T9,0048 (SP) //7F0D86A8: 97: SUB A 4 LW T7,028C (SP) ANDI T1,S0,00FF SUBU T2,S0,T1 ADDIU T8,T7,0004 ANDI T3,T2,01FF SW T8,028C (SP) ;cycles+=4 ANDI T8,T1,000F ANDI T9,T3,00A8 SRA T4,T3,0x8 ANDI T7,S0,000F SLT T2,T7,T8 OR T5,T9,T4 XOR T9,S0,T1 SLL T0,T2,0x4 XOR T8,T3,S0 SH T3,018E (SP) SB S0,018D (SP) LBU S0,018F (SP) ANDI T4,T9,0080 AND T2,T4,T8 OR T6,T5,T0 SRA T5,T2,0x5 OR S1,T6,T5 SLTIU T9,S0,0001 SLL T7,T9,0x6 ORI T1,S1,0002 OR S1,T1,T7 ANDI T4,S1,00FF OR S1,T4,R0 BEQ R0,R0,7F0E27FC SW T9,0048 (SP) //7F0D8724: 98: SBC A,B 4 ANDI T6,S2,00FF LW T8,028C (SP) SUBU T5,S0,T6 ANDI T0,S1,0001 SUBU T1,T5,T0 ANDI T9,T1,01FF ANDI T5,T6,000F ADDIU T2,T8,0004 ADDU T1,T5,T0 ANDI T3,S0,000F SW T2,028C (SP) ;cycles+=4 SLT T4,T3,T1 SRA T8,T9,0x8 ANDI T7,T9,00A8 OR T2,T7,T8 XOR T5,S0,T6 SLL T7,T4,0x4 XOR T1,T9,S0 SH T9,018A (SP) LBU S0,018B (SP) ANDI T0,T5,0080 AND T4,T0,T1 OR T8,T2,T7 SRA T2,T4,0x5 OR S1,T8,T2 SLTIU T5,S0,0001 SLL T3,T5,0x6 ORI T6,S1,0002 OR S1,T6,T3 ANDI T0,S1,00FF OR S1,T0,R0 SW T5,0048 (SP) BEQ R0,R0,7F0E27FC SB S2,0189 (SP) //7F0D87AC: 99: SBC A,C 4 ANDI T8,S3,00FF LW T1,028C (SP) SUBU T2,S0,T8 ANDI T7,S1,0001 SUBU T6,T2,T7 ANDI T5,T6,01FF ANDI T2,T8,000F ADDIU T4,T1,0004 ADDU T6,T2,T7 ANDI T9,S0,000F SW T4,028C (SP) ;cycles+=4 SLT T0,T9,T6 SRA T1,T5,0x8 ANDI T3,T5,00A8 OR T4,T3,T1 XOR T2,S0,T8 SLL T3,T0,0x4 XOR T6,T5,S0 SH T5,0186 (SP) LBU S0,0187 (SP) ANDI T7,T2,0080 AND T0,T7,T6 OR T1,T4,T3 SRA T4,T0,0x5 OR S1,T1,T4 SLTIU T2,S0,0001 SLL T9,T2,0x6 ORI T8,S1,0002 OR S1,T8,T9 ANDI T7,S1,00FF OR S1,T7,R0 SW T2,0048 (SP) BEQ R0,R0,7F0E27FC SB S3,0185 (SP) //7F0D8834: 9A: SBC A,D 4 ANDI T1,S4,00FF LW T6,028C (SP) SUBU T4,S0,T1 ANDI T3,S1,0001 SUBU T8,T4,T3 ANDI T2,T8,01FF ANDI T4,T1,000F ADDIU T0,T6,0004 ADDU T8,T4,T3 ANDI T5,S0,000F SW T0,028C (SP) ;cycles+=4 SLT T7,T5,T8 SRA T6,T2,0x8 ANDI T9,T2,00A8 OR T0,T9,T6 XOR T4,S0,T1 SLL T9,T7,0x4 XOR T8,T2,S0 SH T2,0182 (SP) LBU S0,0183 (SP) ANDI T3,T4,0080 AND T7,T3,T8 OR T6,T0,T9 SRA T0,T7,0x5 OR S1,T6,T0 SLTIU T4,S0,0001 SLL T5,T4,0x6 ORI T1,S1,0002 OR S1,T1,T5 ANDI T3,S1,00FF OR S1,T3,R0 SW T4,0048 (SP) BEQ R0,R0,7F0E27FC SB S4,0181 (SP) //7F0D88BC: 9B: SBC A,E 4 ANDI T6,S5,00FF LW T8,028C (SP) SUBU T0,S0,T6 ANDI T9,S1,0001 SUBU T1,T0,T9 ANDI T4,T1,01FF ANDI T0,T6,000F ADDIU T7,T8,0004 ADDU T1,T0,T9 ANDI T2,S0,000F SW T7,028C (SP) ;cycles+=4 SLT T3,T2,T1 SRA T8,T4,0x8 ANDI T5,T4,00A8 OR T7,T5,T8 XOR T0,S0,T6 SLL T5,T3,0x4 XOR T1,T4,S0 SH T4,017E (SP) LBU S0,017F (SP) ANDI T9,T0,0080 AND T3,T9,T1 OR T8,T7,T5 SRA T7,T3,0x5 OR S1,T8,T7 SLTIU T0,S0,0001 SLL T2,T0,0x6 ORI T6,S1,0002 OR S1,T6,T2 ANDI T9,S1,00FF OR S1,T9,R0 SW T0,0048 (SP) BEQ R0,R0,7F0E27FC SB S5,017D (SP) //7F0D8944: 9C: SBC A,H 4 LW T1,028C (SP) LBU T8,0287 (SP) LBU T7,0287 (SP) ADDIU T3,T1,0004 BNE T8,R0,7F0D8964 SW T3,028C (SP) ;cycles+=4 BEQ R0,R0,7F0D8990 SB S6,0179 (SP) //7F0D8964: ADDIU AT,R0,0001 BNE T7,AT,7F0D8980 LHU T0,0294 (SP) LHU T5,0296 (SP) SRA T6,T5,0x8 BEQ R0,R0,7F0D8988 SW T6,0048 (SP) //7F0D8980: SRA T4,T0,0x8 SW T4,0048 (SP) LW T2,0048 (SP) SB T2,0179 (SP) LBU T9,0179 (SP) ANDI T3,S1,0001 ANDI T5,S0,000F SUBU T1,S0,T9 SUBU T8,T1,T3 ANDI T7,T8,01FF ANDI T1,T9,000F ADDU T8,T1,T3 SLT T0,T5,T8 ANDI T6,T7,00A8 SRA T4,T7,0x8 OR T2,T6,T4 XOR T1,S0,T9 SLL T6,T0,0x4 XOR T8,T7,S0 SH T7,017A (SP) LBU S0,017B (SP) ANDI T3,T1,0080 AND T0,T3,T8 OR T4,T2,T6 SRA T2,T0,0x5 OR S1,T4,T2 SLTIU T1,S0,0001 SLL T5,T1,0x6 ORI T9,S1,0002 OR S1,T9,T5 ANDI T3,S1,00FF OR S1,T3,R0 BEQ R0,R0,7F0E27FC SW T1,0048 (SP) //7F0D8A08: 9D: SBC A,L 4 LW T8,028C (SP) LBU T4,0287 (SP) LBU T2,0287 (SP) ADDIU T0,T8,0004 BNE T4,R0,7F0D8A28 SW T0,028C (SP) ;cycles+=4 BEQ R0,R0,7F0D8A54 SB S7,0175 (SP) //7F0D8A28: ADDIU AT,R0,0001 BNE T2,AT,7F0D8A44 LHU T1,0294 (SP) LHU T6,0296 (SP) ANDI T9,T6,00FF BEQ R0,R0,7F0D8A4C SW T9,0048 (SP) //7F0D8A44: ANDI T7,T1,00FF SW T7,0048 (SP) LW T5,0048 (SP) SB T5,0175 (SP) LBU T3,0175 (SP) ANDI T0,S1,0001 ANDI T6,S0,000F SUBU T8,S0,T3 SUBU T4,T8,T0 ANDI T2,T4,01FF ANDI T8,T3,000F ADDU T4,T8,T0 SLT T1,T6,T4 ANDI T9,T2,00A8 SRA T7,T2,0x8 OR T5,T9,T7 XOR T8,S0,T3 SLL T9,T1,0x4 XOR T4,T2,S0 SH T2,0176 (SP) LBU S0,0177 (SP) ANDI T0,T8,0080 AND T1,T0,T4 OR T7,T5,T9 SRA T5,T1,0x5 OR S1,T7,T5 SLTIU T8,S0,0001 SLL T6,T8,0x6 ORI T3,S1,0002 OR S1,T3,T6 ANDI T0,S1,00FF OR S1,T0,R0 BEQ R0,R0,7F0E27FC SW T8,0048 (SP) //7F0D8ACC: 9E: SBC A,(HL) 7 LW T4,028C (SP) LBU T7,0287 (SP) SLL T5,S6,0x8 ADDIU T1,T4,0007 BNE T7,R0,7F0D8AF0 SW T1,028C (SP) ;cycles+=7 OR T9,T5,S7 BEQ R0,R0,7F0D8B44 SH T9,0172 (SP) //7F0D8AF0: LW T3,028C (SP) LBU T2,0287 (SP) ADDIU AT,R0,0001 ADDIU T8,T3,0008 BNE T2,AT,7F0D8B14 SW T8,028C (SP) ;cycles+=8 LHU T6,0296 (SP) BEQ R0,R0,7F0D8B1C SW T6,0048 (SP) //7F0D8B14: LHU T0,0294 (SP) SW T0,0048 (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=p->spectrum.ROMs LHU T4,0298 (SP) ;T4=spec.PC LW T9,0048 (SP) ADDU T7,T4,T1 LB T5,0000 (T7) ADDIU T8,T4,0001 SH T8,0298 (SP) ;spec.PC+=1 ADDU T3,T5,T9 SH T3,0172 (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=p->spectrum.ROMs LHU T2,0172 (SP) ANDI T5,S1,0001 ANDI T4,S0,000F ADDU T0,T2,T6 LBU T1,0000 (T0) SUBU T7,S0,T1 SUBU T9,T7,T5 ANDI T3,T9,01FF ANDI T7,T1,000F ADDU T9,T7,T5 SLT T2,T4,T9 ANDI T8,T3,00A8 SRA T6,T3,0x8 OR T0,T8,T6 XOR T7,S0,T1 SLL T8,T2,0x4 XOR T9,T3,S0 SH T3,0170 (SP) LBU S0,0171 (SP) ANDI T5,T7,0080 AND T2,T5,T9 OR T6,T0,T8 SRA T0,T2,0x5 OR S1,T6,T0 SB T1,016F (SP) SLTIU T7,S0,0001 SLL T4,T7,0x6 ORI T1,S1,0002 OR S1,T1,T4 ANDI T5,S1,00FF OR S1,T5,R0 BEQ R0,R0,7F0E27FC SW T7,0048 (SP) //7F0D8BD0: 9F: SBC A,A 4 ANDI T6,S0,00FF LW T9,028C (SP) SUBU T0,S0,T6 ANDI T8,S1,0001 SUBU T1,T0,T8 ANDI T7,T1,01FF ANDI T0,T6,000F ADDIU T2,T9,0004 ADDU T1,T0,T8 ANDI T3,S0,000F SW T2,028C (SP) ;cycles+=4 SLT T5,T3,T1 SRA T9,T7,0x8 ANDI T4,T7,00A8 OR T2,T4,T9 XOR T0,S0,T6 SLL T4,T5,0x4 XOR T1,T7,S0 SH T7,016C (SP) SB S0,016B (SP) LBU S0,016D (SP) ANDI T8,T0,0080 AND T5,T8,T1 OR T9,T2,T4 SRA T2,T5,0x5 OR S1,T9,T2 SLTIU T0,S0,0001 SLL T3,T0,0x6 ORI T6,S1,0002 OR S1,T6,T3 ANDI T8,S1,00FF OR S1,T8,R0 BEQ R0,R0,7F0E27FC SW T0,0048 (SP) //7F0D8C58: A0: AND B 4 LW T1,028C (SP) LUI T8,8009 LW T8,E334 (T8) AND S0,S0,S2 ANDI T9,S0,00FF ADDIU T5,T1,0004 SLTIU T2,T9,0001 SW T5,028C (SP) ;cycles+=4 SW T2,0048 (SP) ADDU T1,T9,T8 LBU T5,0000 (T1) SLL T0,T2,0x6 ANDI T4,T9,00A8 OR T7,T4,T0 ORI T3,T7,0010 OR S0,T9,R0 OR S1,T5,T3 ANDI T9,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T9,R0 //7F0D8CA8: A1: AND C 4 LW T2,028C (SP) LUI T9,8009 LW T9,E334 (T9) AND S0,S0,S3 ANDI T4,S0,00FF ADDIU T6,T2,0004 SLTIU T0,T4,0001 SW T6,028C (SP) ;cycles+=4 SW T0,0048 (SP) ADDU T2,T4,T9 LBU T6,0000 (T2) SLL T1,T0,0x6 ANDI T7,T4,00A8 OR T5,T7,T1 ORI T3,T5,0010 OR S0,T4,R0 OR S1,T6,T3 ANDI T4,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T4,R0 //7F0D8CF8: A2: AND D 4 LW T0,028C (SP) LUI T4,8009 LW T4,E334 (T4) AND S0,S0,S4 ANDI T7,S0,00FF ADDIU T8,T0,0004 SLTIU T1,T7,0001 SW T8,028C (SP) ;cycles+=4 SW T1,0048 (SP) ADDU T0,T7,T4 LBU T8,0000 (T0) SLL T2,T1,0x6 ANDI T5,T7,00A8 OR T6,T5,T2 ORI T3,T6,0010 OR S0,T7,R0 OR S1,T8,T3 ANDI T7,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T7,R0 //7F0D8D48: A3: AND E 4 LW T1,028C (SP) LUI T7,8009 LW T7,E334 (T7) AND S0,S0,S5 ANDI T5,S0,00FF ADDIU T9,T1,0004 SLTIU T2,T5,0001 SW T9,028C (SP) ;cycles+=4 SW T2,0048 (SP) ADDU T1,T5,T7 LBU T9,0000 (T1) SLL T0,T2,0x6 ANDI T6,T5,00A8 OR T8,T6,T0 ORI T3,T8,0010 OR S0,T5,R0 OR S1,T9,T3 ANDI T5,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T5,R0 //7F0D8D98: A4: AND H 4 LW T2,028C (SP) LBU T6,0287 (SP) LBU T0,0287 (SP) ADDIU T4,T2,0004 BNE T6,R0,7F0D8DB8 SW T4,028C (SP) ;cycles+=4 BEQ R0,R0,7F0D8DE4 SW S6,0048 (SP) //7F0D8DB8: ADDIU AT,R0,0001 BNE T0,AT,7F0D8DD4 LHU T1,0294 (SP) LHU T8,0296 (SP) SRA T7,T8,0x8 BEQ R0,R0,7F0D8DDC SW T7,0044 (SP) //7F0D8DD4: SRA T9,T1,0x8 SW T9,0044 (SP) LW T3,0044 (SP) SW T3,0048 (SP) LW T5,0048 (SP) LUI T9,8009 LW T9,E334 (T9) AND S0,S0,T5 ANDI T2,S0,00FF SLTIU T4,T2,0001 SW T4,0048 (SP) ADDU T3,T2,T9 LBU T5,0000 (T3) SLL T8,T4,0x6 ANDI T6,T2,00A8 OR T7,T6,T8 ORI T1,T7,0010 OR S0,T2,R0 OR S1,T5,T1 ANDI T2,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T2,R0 //7F0D8E2C: A5: AND L 4 LW T4,028C (SP) LBU T6,0287 (SP) LBU T8,0287 (SP) ADDIU T0,T4,0004 BNE T6,R0,7F0D8E4C SW T0,028C (SP) ;cycles+=4 BEQ R0,R0,7F0D8E78 SW S7,0048 (SP) //7F0D8E4C: ADDIU AT,R0,0001 BNE T8,AT,7F0D8E68 LHU T3,0294 (SP) LHU T7,0296 (SP) ANDI T9,T7,00FF BEQ R0,R0,7F0D8E70 SW T9,0044 (SP) //7F0D8E68: ANDI T5,T3,00FF SW T5,0044 (SP) LW T1,0044 (SP) SW T1,0048 (SP) LW T2,0048 (SP) LUI T5,8009 LW T5,E334 (T5) AND S0,S0,T2 ANDI T4,S0,00FF SLTIU T0,T4,0001 SW T0,0048 (SP) ADDU T1,T4,T5 LBU T2,0000 (T1) SLL T7,T0,0x6 ANDI T6,T4,00A8 OR T9,T6,T7 ORI T3,T9,0010 OR S0,T4,R0 OR S1,T2,T3 ANDI T4,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T4,R0 //7F0D8EC0: A6: AND (HL) 7 LW T0,028C (SP) LBU T6,0287 (SP) SLL T7,S6,0x8 ADDIU T8,T0,0007 BNE T6,R0,7F0D8EE4 SW T8,028C (SP) ;cycles+=7 OR T9,T7,S7 BEQ R0,R0,7F0D8F38 SH T9,0168 (SP) //7F0D8EE4: LW T5,028C (SP) LBU T2,0287 (SP) ADDIU AT,R0,0001 ADDIU T1,T5,0008 BNE T2,AT,7F0D8F08 SW T1,028C (SP) ;cycles+=8 LHU T3,0296 (SP) BEQ R0,R0,7F0D8F10 SW T3,0048 (SP) //7F0D8F08: LHU T4,0294 (SP) SW T4,0048 (SP) LUI T8,8009 LW T8,E328 (T8) ;T8=p->spectrum.ROMs LHU T0,0298 (SP) ;T0=spec.PC LW T9,0048 (SP) ADDU T6,T0,T8 LB T7,0000 (T6) ADDIU T1,T0,0001 SH T1,0298 (SP) ;spec.PC+=1 ADDU T5,T7,T9 SH T5,0168 (SP) LUI T2,8009 LW T2,E328 (T2) ;T2=p->spectrum.ROMs LHU T3,0168 (SP) ADDU T4,T2,T3 LBU T8,0000 (T4) LUI T3,8009 LW T3,E334 (T3) AND S0,S0,T8 ANDI T6,S0,00FF SLTIU T7,T6,0001 SW T7,0048 (SP) ADDU T4,T6,T3 LBU T8,0000 (T4) SLL T0,T7,0x6 ANDI T9,T6,00A8 OR T1,T9,T0 ORI T2,T1,0010 OR S0,T6,R0 OR S1,T8,T2 ANDI T6,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T6,R0 //7F0D8F90: A7: AND A 4 LW T7,028C (SP) LUI T6,8009 LW T6,E334 (T6) AND S0,S0,S0 ANDI T9,S0,00FF ADDIU T5,T7,0004 SLTIU T0,T9,0001 SW T5,028C (SP) ;cycles+=4 SW T0,0048 (SP) ADDU T7,T9,T6 LBU T5,0000 (T7) SLL T4,T0,0x6 ANDI T1,T9,00A8 OR T8,T1,T4 ORI T2,T8,0010 OR S0,T9,R0 OR S1,T5,T2 ANDI T9,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T9,R0 //7F0D8FE0: A8: XOR B 4 LW T0,028C (SP) LUI T2,8009 LW T2,E334 (T2) XOR S0,S0,S2 ANDI T1,S0,00FF SLTIU T4,T1,0001 ADDIU T3,T0,0004 SW T3,028C (SP) ;cycles+=4 SW T4,0048 (SP) ADDU T9,T1,T2 LBU T0,0000 (T9) SLL T7,T4,0x6 ANDI T8,T1,00A8 OR T5,T8,T7 OR S1,T0,T5 ANDI T3,S1,00FF OR S1,T3,R0 BEQ R0,R0,7F0E27FC OR S0,T1,R0 //7F0D902C: A9: XOR C 4 LW T1,028C (SP) LUI T5,8009 LW T5,E334 (T5) XOR S0,S0,S3 ANDI T6,S0,00FF SLTIU T8,T6,0001 ADDIU T4,T1,0004 SW T4,028C (SP) ;cycles+=4 SW T8,0048 (SP) ADDU T3,T6,T5 LBU T1,0000 (T3) SLL T9,T8,0x6 ANDI T7,T6,00A8 OR T0,T7,T9 OR S1,T1,T0 ANDI T4,S1,00FF OR S1,T4,R0 BEQ R0,R0,7F0E27FC OR S0,T6,R0 //7F0D9078: AA: XOR D 4 LW T6,028C (SP) LUI T0,8009 LW T0,E334 (T0) XOR S0,S0,S4 ANDI T2,S0,00FF SLTIU T7,T2,0001 ADDIU T8,T6,0004 SW T8,028C (SP) ;cycles+=4 SW T7,0048 (SP) ADDU T4,T2,T0 LBU T6,0000 (T4) SLL T3,T7,0x6 ANDI T9,T2,00A8 OR T1,T9,T3 OR S1,T6,T1 ANDI T8,S1,00FF OR S1,T8,R0 BEQ R0,R0,7F0E27FC OR S0,T2,R0 //7F0D90C4: AB: XOR E 4 LW T2,028C (SP) LUI T1,8009 LW T1,E334 (T1) XOR S0,S0,S5 ANDI T5,S0,00FF SLTIU T9,T5,0001 ADDIU T7,T2,0004 SW T7,028C (SP) ;cycles+=4 SW T9,0048 (SP) ADDU T8,T5,T1 LBU T2,0000 (T8) SLL T4,T9,0x6 ANDI T3,T5,00A8 OR T6,T3,T4 OR S1,T2,T6 ANDI T7,S1,00FF OR S1,T7,R0 BEQ R0,R0,7F0E27FC OR S0,T5,R0 //7F0D9110: AC: XOR H 4 LW T5,028C (SP) LBU T0,0287 (SP) LBU T3,0287 (SP) ADDIU T9,T5,0004 BNE T0,R0,7F0D9130 SW T9,028C (SP) ;cycles+=4 BEQ R0,R0,7F0D915C SW S6,0048 (SP) //7F0D9130: ADDIU AT,R0,0001 BNE T3,AT,7F0D914C LHU T8,0294 (SP) LHU T4,0296 (SP) SRA T1,T4,0x8 BEQ R0,R0,7F0D9154 SW T1,0044 (SP) //7F0D914C: SRA T2,T8,0x8 SW T2,0044 (SP) LW T6,0044 (SP) SW T6,0048 (SP) LW T7,0048 (SP) LUI T8,8009 LW T8,E334 (T8) XOR S0,S0,T7 ANDI T5,S0,00FF SLTIU T9,T5,0001 SW T9,0048 (SP) ADDU T2,T5,T8 LBU T6,0000 (T2) SLL T4,T9,0x6 ANDI T0,T5,00A8 OR T1,T0,T4 OR S1,T6,T1 ANDI T7,S1,00FF OR S1,T7,R0 BEQ R0,R0,7F0E27FC OR S0,T5,R0 //7F0D91A0: AD: XOR L 4 LW T5,028C (SP) LBU T3,0287 (SP) LBU T0,0287 (SP) ADDIU T9,T5,0004 BNE T3,R0,7F0D91C0 SW T9,028C (SP) ;cycles+=4 BEQ R0,R0,7F0D91EC SW S7,0048 (SP) //7F0D91C0: ADDIU AT,R0,0001 BNE T0,AT,7F0D91DC LHU T2,0294 (SP) LHU T4,0296 (SP) ANDI T8,T4,00FF BEQ R0,R0,7F0D91E4 SW T8,0044 (SP) //7F0D91DC: ANDI T6,T2,00FF SW T6,0044 (SP) LW T1,0044 (SP) SW T1,0048 (SP) LW T7,0048 (SP) LUI T2,8009 LW T2,E334 (T2) XOR S0,S0,T7 ANDI T5,S0,00FF SLTIU T9,T5,0001 SW T9,0048 (SP) ADDU T6,T5,T2 LBU T1,0000 (T6) SLL T4,T9,0x6 ANDI T3,T5,00A8 OR T8,T3,T4 OR S1,T1,T8 ANDI T7,S1,00FF OR S1,T7,R0 BEQ R0,R0,7F0E27FC OR S0,T5,R0 //7F0D9230: AE: XOR (HL) 7 LW T5,028C (SP) LBU T0,0287 (SP) SLL T3,S6,0x8 ADDIU T9,T5,0007 BNE T0,R0,7F0D9254 SW T9,028C (SP) ;cycles+=7 OR T4,T3,S7 BEQ R0,R0,7F0D92A8 SH T4,0166 (SP) //7F0D9254: LW T2,028C (SP) LBU T1,0287 (SP) ADDIU AT,R0,0001 ADDIU T6,T2,0008 BNE T1,AT,7F0D9278 SW T6,028C (SP) ;cycles+=8 LHU T8,0296 (SP) BEQ R0,R0,7F0D9280 SW T8,0048 (SP) //7F0D9278: LHU T7,0294 (SP) SW T7,0048 (SP) LUI T9,8009 LW T9,E328 (T9) ;T9=p->spectrum.ROMs LHU T5,0298 (SP) ;T5=spec.PC LW T4,0048 (SP) ADDU T0,T5,T9 LB T3,0000 (T0) ADDIU T6,T5,0001 SH T6,0298 (SP) ;spec.PC+=1 ADDU T2,T3,T4 SH T2,0166 (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=p->spectrum.ROMs LHU T8,0166 (SP) ADDU T7,T1,T8 LBU T9,0000 (T7) LUI T1,8009 LW T1,E334 (T1) XOR S0,S0,T9 ANDI T0,S0,00FF SLTIU T3,T0,0001 SW T3,0048 (SP) ADDU T8,T0,T1 LBU T7,0000 (T8) SLL T5,T3,0x6 ANDI T4,T0,00A8 OR T6,T4,T5 OR S1,T7,T6 ANDI T9,S1,00FF OR S1,T9,R0 BEQ R0,R0,7F0E27FC OR S0,T0,R0 //7F0D92FC: AF: XOR A 4 LW T0,028C (SP) LUI T6,8009 LW T6,E334 (T6) XOR S0,S0,S0 ANDI T2,S0,00FF SLTIU T4,T2,0001 ADDIU T3,T0,0004 SW T3,028C (SP) ;cycles+=4 SW T4,0048 (SP) ADDU T9,T2,T6 LBU T0,0000 (T9) SLL T8,T4,0x6 ANDI T5,T2,00A8 OR T7,T5,T8 OR S1,T0,T7 ANDI T3,S1,00FF OR S1,T3,R0 BEQ R0,R0,7F0E27FC OR S0,T2,R0 //7F0D9348: B0: OR B 4 LW T2,028C (SP) LUI T7,8009 LW T7,E334 (T7) OR S0,S0,S2 ANDI T1,S0,00FF SLTIU T5,T1,0001 ADDIU T4,T2,0004 SW T4,028C (SP) ;cycles+=4 SW T5,0048 (SP) ADDU T3,T1,T7 LBU T2,0000 (T3) SLL T9,T5,0x6 ANDI T8,T1,00A8 OR T0,T8,T9 OR S1,T2,T0 ANDI T4,S1,00FF OR S1,T4,R0 BEQ R0,R0,7F0E27FC OR S0,T1,R0 //7F0D9394: B1: OR C 4 LW T1,028C (SP) LUI T0,8009 LW T0,E334 (T0) OR S0,S0,S3 ANDI T6,S0,00FF SLTIU T8,T6,0001 ADDIU T5,T1,0004 SW T5,028C (SP) ;cycles+=4 SW T8,0048 (SP) ADDU T4,T6,T0 LBU T1,0000 (T4) SLL T3,T8,0x6 ANDI T9,T6,00A8 OR T2,T9,T3 OR S1,T1,T2 ANDI T5,S1,00FF OR S1,T5,R0 BEQ R0,R0,7F0E27FC OR S0,T6,R0 //7F0D93E0: B2: OR D 4 LW T6,028C (SP) LUI T2,8009 LW T2,E334 (T2) OR S0,S0,S4 ANDI T7,S0,00FF SLTIU T9,T7,0001 ADDIU T8,T6,0004 SW T8,028C (SP) ;cycles+=4 SW T9,0048 (SP) ADDU T5,T7,T2 LBU T6,0000 (T5) SLL T4,T9,0x6 ANDI T3,T7,00A8 OR T1,T3,T4 OR S1,T6,T1 ANDI T8,S1,00FF OR S1,T8,R0 BEQ R0,R0,7F0E27FC OR S0,T7,R0 //7F0D942C: B3: OR E 4 LW T7,028C (SP) LUI T1,8009 LW T1,E334 (T1) OR S0,S0,S5 ANDI T0,S0,00FF SLTIU T3,T0,0001 ADDIU T9,T7,0004 SW T9,028C (SP) ;cycles+=4 SW T3,0048 (SP) ADDU T8,T0,T1 LBU T7,0000 (T8) SLL T5,T3,0x6 ANDI T4,T0,00A8 OR T6,T4,T5 OR S1,T7,T6 ANDI T9,S1,00FF OR S1,T9,R0 BEQ R0,R0,7F0E27FC OR S0,T0,R0 //7F0D9478: B4: OR H 4 LW T0,028C (SP) LBU T2,0287 (SP) LBU T4,0287 (SP) ADDIU T3,T0,0004 BNE T2,R0,7F0D9498 SW T3,028C (SP) ;cycles+=4 BEQ R0,R0,7F0D94C4 SW S6,0048 (SP) //7F0D9498: ADDIU AT,R0,0001 BNE T4,AT,7F0D94B4 LHU T8,0294 (SP) LHU T5,0296 (SP) SRA T1,T5,0x8 BEQ R0,R0,7F0D94BC SW T1,0044 (SP) //7F0D94B4: SRA T7,T8,0x8 SW T7,0044 (SP) LW T6,0044 (SP) SW T6,0048 (SP) LW T9,0048 (SP) LUI T8,8009 LW T8,E334 (T8) OR S0,S0,T9 ANDI T0,S0,00FF SLTIU T3,T0,0001 SW T3,0048 (SP) ADDU T7,T0,T8 LBU T6,0000 (T7) SLL T5,T3,0x6 ANDI T2,T0,00A8 OR T1,T2,T5 OR S1,T6,T1 ANDI T9,S1,00FF OR S1,T9,R0 BEQ R0,R0,7F0E27FC OR S0,T0,R0 //7F0D9508: B5: OR L 4 LW T0,028C (SP) LBU T4,0287 (SP) LBU T2,0287 (SP) ADDIU T3,T0,0004 BNE T4,R0,7F0D9528 SW T3,028C (SP) ;cycles+=4 BEQ R0,R0,7F0D9554 SW S7,0048 (SP) //7F0D9528: ADDIU AT,R0,0001 BNE T2,AT,7F0D9544 LHU T7,0294 (SP) LHU T5,0296 (SP) ANDI T8,T5,00FF BEQ R0,R0,7F0D954C SW T8,0044 (SP) //7F0D9544: ANDI T6,T7,00FF SW T6,0044 (SP) LW T1,0044 (SP) SW T1,0048 (SP) LW T9,0048 (SP) LUI T7,8009 LW T7,E334 (T7) OR S0,S0,T9 ANDI T0,S0,00FF SLTIU T3,T0,0001 SW T3,0048 (SP) ADDU T6,T0,T7 LBU T1,0000 (T6) SLL T5,T3,0x6 ANDI T4,T0,00A8 OR T8,T4,T5 OR S1,T1,T8 ANDI T9,S1,00FF OR S1,T9,R0 BEQ R0,R0,7F0E27FC OR S0,T0,R0 //7F0D9598: B6: OR (HL) 7 LW T0,028C (SP) LBU T2,0287 (SP) SLL T4,S6,0x8 ADDIU T3,T0,0007 BNE T2,R0,7F0D95BC SW T3,028C (SP) ;cycles+=7 OR T5,T4,S7 BEQ R0,R0,7F0D9610 SH T5,0164 (SP) //7F0D95BC: LW T7,028C (SP) LBU T1,0287 (SP) ADDIU AT,R0,0001 ADDIU T6,T7,0008 BNE T1,AT,7F0D95E0 SW T6,028C (SP) ;cycles+=8 LHU T8,0296 (SP) BEQ R0,R0,7F0D95E8 SW T8,0048 (SP) //7F0D95E0: LHU T9,0294 (SP) SW T9,0048 (SP) LUI T3,8009 LW T3,E328 (T3) ;T3=p->spectrum.ROMs LHU T0,0298 (SP) ;T0=spec.PC LW T5,0048 (SP) ADDU T2,T0,T3 LB T4,0000 (T2) ADDIU T6,T0,0001 SH T6,0298 (SP) ;spec.PC+=1 ADDU T7,T4,T5 SH T7,0164 (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=p->spectrum.ROMs LHU T8,0164 (SP) ADDU T9,T1,T8 LBU T3,0000 (T9) LUI T1,8009 LW T1,E334 (T1) OR S0,S0,T3 ANDI T2,S0,00FF SLTIU T4,T2,0001 SW T4,0048 (SP) ADDU T8,T2,T1 LBU T9,0000 (T8) SLL T0,T4,0x6 ANDI T5,T2,00A8 OR T6,T5,T0 OR S1,T9,T6 ANDI T3,S1,00FF OR S1,T3,R0 BEQ R0,R0,7F0E27FC OR S0,T2,R0 //7F0D9664: B7: OR A 4 LW T2,028C (SP) LUI T6,8009 LW T6,E334 (T6) OR S0,S0,S0 ANDI T7,S0,00FF SLTIU T5,T7,0001 ADDIU T4,T2,0004 SW T4,028C (SP) ;cycles+=4 SW T5,0048 (SP) ADDU T3,T7,T6 LBU T2,0000 (T3) SLL T8,T5,0x6 ANDI T0,T7,00A8 OR T9,T0,T8 OR S1,T2,T9 ANDI T4,S1,00FF OR S1,T4,R0 BEQ R0,R0,7F0E27FC OR S0,T7,R0 //7F0D96B0: B8: CP B 4 ANDI T1,S2,00FF SUBU T0,S0,T1 LW T7,028C (SP) ANDI T8,T0,01FF ANDI T6,T8,FFFF SLTIU T3,T6,0001 ANDI T6,T1,000F ANDI T0,S0,000F ADDIU T5,T7,0004 SLT T2,T0,T6 SW T5,028C (SP) ;cycles+=4 SRA T7,T8,0x8 ANDI T9,T8,00A8 OR T5,T9,T7 SLL T4,T2,0x4 XOR T7,S0,T1 OR T6,T8,R0 XOR T2,T6,S0 ANDI T0,T7,0080 OR T9,T5,T4 AND T5,T0,T2 SRA T4,T5,0x5 OR T1,T9,T4 SH T8,0162 (SP) SLL T8,T3,0x6 ORI T7,T1,0002 OR S1,T7,T8 ANDI T6,S1,00FF OR S1,T6,R0 SW T3,0048 (SP) BEQ R0,R0,7F0E27FC SB S2,0161 (SP) //7F0D9730: B9: CP C 4 ANDI T5,S3,00FF SUBU T9,S0,T5 LW T0,028C (SP) ANDI T4,T9,01FF ANDI T1,T4,FFFF SLTIU T3,T1,0001 ANDI T1,T5,000F ANDI T9,S0,000F ADDIU T2,T0,0004 SLT T7,T9,T1 SW T2,028C (SP) ;cycles+=4 SRA T0,T4,0x8 ANDI T8,T4,00A8 OR T2,T8,T0 SLL T6,T7,0x4 XOR T0,S0,T5 OR T1,T4,R0 XOR T7,T1,S0 ANDI T9,T0,0080 OR T8,T2,T6 AND T2,T9,T7 SRA T6,T2,0x5 OR T5,T8,T6 SH T4,015E (SP) SLL T4,T3,0x6 ORI T0,T5,0002 OR S1,T0,T4 ANDI T1,S1,00FF OR S1,T1,R0 SW T3,0048 (SP) BEQ R0,R0,7F0E27FC SB S3,015D (SP) //7F0D97B0: BA: CP D 4 ANDI T2,S4,00FF SUBU T8,S0,T2 LW T9,028C (SP) ANDI T6,T8,01FF ANDI T5,T6,FFFF SLTIU T3,T5,0001 ANDI T5,T2,000F ANDI T8,S0,000F ADDIU T7,T9,0004 SLT T0,T8,T5 SW T7,028C (SP) ;cycles+=4 SRA T9,T6,0x8 ANDI T4,T6,00A8 OR T7,T4,T9 SLL T1,T0,0x4 XOR T9,S0,T2 OR T5,T6,R0 XOR T0,T5,S0 ANDI T8,T9,0080 OR T4,T7,T1 AND T7,T8,T0 SRA T1,T7,0x5 OR T2,T4,T1 SH T6,015A (SP) SLL T6,T3,0x6 ORI T9,T2,0002 OR S1,T9,T6 ANDI T5,S1,00FF OR S1,T5,R0 SW T3,0048 (SP) BEQ R0,R0,7F0E27FC SB S4,0159 (SP) //7F0D9830: BB: CP E 4 ANDI T7,S5,00FF SUBU T4,S0,T7 LW T8,028C (SP) ANDI T1,T4,01FF ANDI T2,T1,FFFF SLTIU T3,T2,0001 ANDI T2,T7,000F ANDI T4,S0,000F ADDIU T0,T8,0004 SLT T9,T4,T2 SW T0,028C (SP) ;cycles+=4 SRA T8,T1,0x8 ANDI T6,T1,00A8 OR T0,T6,T8 SLL T5,T9,0x4 XOR T8,S0,T7 OR T2,T1,R0 XOR T9,T2,S0 ANDI T4,T8,0080 OR T6,T0,T5 AND T0,T4,T9 SRA T5,T0,0x5 OR T7,T6,T5 SH T1,0156 (SP) SLL T1,T3,0x6 ORI T8,T7,0002 OR S1,T8,T1 ANDI T2,S1,00FF OR S1,T2,R0 SW T3,0048 (SP) BEQ R0,R0,7F0E27FC SB S5,0155 (SP) //7F0D98B0: BC: CP H 4 LW T4,028C (SP) LBU T0,0287 (SP) LBU T6,0287 (SP) ADDIU T9,T4,0004 BNE T0,R0,7F0D98D0 SW T9,028C (SP) ;cycles+=4 BEQ R0,R0,7F0D98FC SB S6,0151 (SP) //7F0D98D0: ADDIU AT,R0,0001 BNE T6,AT,7F0D98EC LHU T3,0294 (SP) LHU T5,0296 (SP) SRA T7,T5,0x8 BEQ R0,R0,7F0D98F4 SW T7,0048 (SP) //7F0D98EC: SRA T8,T3,0x8 SW T8,0048 (SP) LW T1,0048 (SP) SB T1,0151 (SP) LBU T2,0151 (SP) SUBU T4,S0,T2 ANDI T9,T4,01FF ANDI T0,T9,FFFF SLTIU T6,T0,0001 ANDI T4,S0,000F ANDI T0,T2,000F SLT T5,T4,T0 ANDI T7,T9,00A8 SRA T8,T9,0x8 OR T1,T7,T8 SLL T3,T5,0x4 OR T0,T9,R0 XOR T8,S0,T2 ANDI T4,T8,0080 XOR T5,T0,S0 OR T7,T1,T3 AND T1,T4,T5 SRA T3,T1,0x5 OR T2,T7,T3 SH T9,0152 (SP) SLL T9,T6,0x6 ORI T8,T2,0002 OR S1,T8,T9 ANDI T0,S1,00FF OR S1,T0,R0 BEQ R0,R0,7F0E27FC SW T6,0048 (SP) //7F0D996C: BD: CP L 4 LW T4,028C (SP) LBU T1,0287 (SP) LBU T7,0287 (SP) ADDIU T5,T4,0004 BNE T1,R0,7F0D998C SW T5,028C (SP) ;cycles+=4 BEQ R0,R0,7F0D99B8 SB S7,014D (SP) //7F0D998C: ADDIU AT,R0,0001 BNE T7,AT,7F0D99A8 LHU T6,0294 (SP) LHU T3,0296 (SP) ANDI T2,T3,00FF BEQ R0,R0,7F0D99B0 SW T2,0048 (SP) //7F0D99A8: ANDI T8,T6,00FF SW T8,0048 (SP) LW T9,0048 (SP) SB T9,014D (SP) LBU T0,014D (SP) SUBU T4,S0,T0 ANDI T5,T4,01FF ANDI T1,T5,FFFF SLTIU T7,T1,0001 ANDI T4,S0,000F ANDI T1,T0,000F SLT T3,T4,T1 ANDI T2,T5,00A8 SRA T8,T5,0x8 OR T9,T2,T8 SLL T6,T3,0x4 OR T1,T5,R0 XOR T8,S0,T0 ANDI T4,T8,0080 XOR T3,T1,S0 OR T2,T9,T6 AND T9,T4,T3 SRA T6,T9,0x5 OR T0,T2,T6 SH T5,014E (SP) SLL T5,T7,0x6 ORI T8,T0,0002 OR S1,T8,T5 ANDI T1,S1,00FF OR S1,T1,R0 BEQ R0,R0,7F0E27FC SW T7,0048 (SP) //7F0D9A28: BE: CP (HL) 7 LW T4,028C (SP) LBU T9,0287 (SP) SLL T2,S6,0x8 ADDIU T3,T4,0007 BNE T9,R0,7F0D9A4C SW T3,028C (SP) ;cycles+=7 OR T6,T2,S7 BEQ R0,R0,7F0D9AA0 SH T6,014A (SP) //7F0D9A4C: LW T0,028C (SP) LBU T8,0287 (SP) ADDIU AT,R0,0001 ADDIU T7,T0,0008 BNE T8,AT,7F0D9A70 SW T7,028C (SP) ;cycles+=8 LHU T5,0296 (SP) BEQ R0,R0,7F0D9A78 SW T5,0048 (SP) //7F0D9A70: LHU T1,0294 (SP) SW T1,0048 (SP) LUI T3,8009 LW T3,E328 (T3) ;T3=p->spectrum.ROMs LHU T4,0298 (SP) ;T4=spec.PC LW T6,0048 (SP) ADDU T9,T4,T3 LB T2,0000 (T9) ADDIU T7,T4,0001 SH T7,0298 (SP) ;spec.PC+=1 ADDU T0,T2,T6 SH T0,014A (SP) LUI T5,8009 LW T5,E328 (T5) ;T5=p->spectrum.ROMs LHU T8,014A (SP) ADDU T1,T8,T5 LBU T3,0000 (T1) SUBU T9,S0,T3 ANDI T2,T9,01FF ANDI T6,T2,FFFF SLTIU T0,T6,0001 ANDI T6,S0,000F ANDI T9,T3,000F SLT T4,T6,T9 ANDI T7,T2,00A8 SRA T5,T2,0x8 OR T1,T7,T5 SLL T8,T4,0x4 OR T9,T2,R0 XOR T5,S0,T3 ANDI T6,T5,0080 XOR T4,T9,S0 OR T7,T1,T8 AND T1,T6,T4 SRA T8,T1,0x5 SB T3,0147 (SP) OR T3,T7,T8 SH T2,0148 (SP) SLL T2,T0,0x6 ORI T5,T3,0002 OR S1,T5,T2 ANDI T9,S1,00FF OR S1,T9,R0 BEQ R0,R0,7F0E27FC SW T0,0048 (SP) //7F0D9B24: BF: CP A 4 ANDI T1,S0,00FF SUBU T7,S0,T1 LW T6,028C (SP) ANDI T8,T7,01FF ANDI T3,T8,FFFF SLTIU T0,T3,0001 ANDI T3,T1,000F ANDI T7,S0,000F ADDIU T4,T6,0004 SLT T5,T7,T3 SW T4,028C (SP) ;cycles+=4 SRA T6,T8,0x8 ANDI T2,T8,00A8 OR T4,T2,T6 SLL T9,T5,0x4 XOR T6,S0,T1 OR T3,T8,R0 XOR T5,T3,S0 ANDI T7,T6,0080 OR T2,T4,T9 AND T4,T7,T5 SRA T9,T4,0x5 OR T1,T2,T9 SH T8,0144 (SP) SLL T8,T0,0x6 ORI T6,T1,0002 OR S1,T6,T8 ANDI T3,S1,00FF OR S1,T3,R0 SW T0,0048 (SP) BEQ R0,R0,7F0E27FC SB S0,0143 (SP) //7F0D9BA4: C0: RET NZ 11(5) LW T7,028C (SP) ANDI T4,S1,0040 ;T4= ZERO flag LUI T0,8009 ADDIU T5,T7,0005 BNE T4,R0,7F0E27FC ;skip if ZERO set SW T5,028C (SP) ;cycles+=5 LHU T1,0292 (SP) ;T1=SP+292: spec.SP LW T0,E328 (T0) ;T0=p->spectrum.ROMs ADDIU T9,T5,0006 SW T9,028C (SP) ;cycles+=6 B total ADDU T3,T0,T1 LBU T7,0001 (T3) ADDU T6,T1,T0 LBU T8,0000 (T6) ;T4= ROM+popped offset[1:0]: new PC SLL T5,T7,0x8 ADDIU T2,T1,0002 ;spec.SP+=2 OR T4,T8,T5 SH T4,0298 (SP) ;set new PC BEQ R0,R0,7F0E27FC SH T2,0292 (SP) ;update spec.SP+=2 //7F0D9BF4: C1: POP BC 10 LW T9,028C (SP) LUI T3,8009 LW T3,E328 (T3) ;T3=p->spectrum.ROMs LHU T0,0292 (SP) ADDIU T6,T9,000A SW T6,028C (SP) ;cycles+=A ADDU T7,T0,T3 LBU S3,0000 (T7) LBU S2,0001 (T7) ADDIU T8,T0,0002 BEQ R0,R0,7F0E27FC SH T8,0292 (SP) //7F0D9C24: C2: JP NZ,nn 10 LW T5,028C (SP) ANDI T1,S1,0040 LHU T2,0298 (SP) ;T2=spec.PC ADDIU T4,T5,000A BNE T1,R0,7F0D9C64 SW T4,028C (SP) ;cycles+=A LUI T9,8009 LW T9,E328 (T9) ;T9=p->spectrum.ROMs ADDU T7,T9,T2 LBU T0,0001 (T7) ADDU T6,T2,T9 LBU T3,0000 (T6) SLL T8,T0,0x8 OR T5,T3,T8 BEQ R0,R0,7F0E27FC SH T5,0298 (SP) //7F0D9C64: LHU T4,0298 (SP) ADDIU T1,T4,0002 BEQ R0,R0,7F0E27FC SH T1,0298 (SP) ;spec.PC+=2 //7F0D9C74: C3: JP nn 10 LW T6,028C (SP) LUI T7,8009 LW T7,E328 (T7) ;T7=p->spectrum.ROMs LHU T2,0298 (SP) ;T2=spec.PC ADDIU T9,T6,000A SW T9,028C (SP) ;cycles+=A ADDU T8,T7,T2 LBU T5,0001 (T8) ADDU T0,T2,T7 LBU T3,0000 (T0) ;T1=ROM+PC[1:0] SLL T4,T5,0x8 OR T1,T3,T4 BEQ R0,R0,7F0E27FC SH T1,0298 (SP) ;PC = nn //7F0D9CAC: C4: CALL NZ,nn 17(10) LW T6,028C (SP) ANDI T0,S1,0040 ADDIU T9,T6,000A BNE T0,R0,7F0D9E84 SW T9,028C (SP) ;cycles+=A LHU T8,0292 (SP) ADDIU T2,T9,0007 SW T2,028C (SP) ;cycles+=7 11 total ADDIU T5,T8,FFFE ANDI T3,T5,FFFF SLTI AT,T3,5B00 BNE AT,R0,7F0D9CFC SH T5,0292 (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=p->spectrum.ROMs LHU T4,0298 (SP) ;T4=spec.PC ADDU T9,T6,T3 ADDIU T1,T4,0002 BEQ R0,R0,7F0D9D88 SB T1,0000 (T9) //7F0D9CFC: LHU T0,0292 (SP) LHU T9,0292 (SP) LHU T7,0298 (SP) ;T7=spec.PC SLTI AT,T0,5800 BNE AT,R0,7F0D9D40 LUI T8,8009 LW T8,E328 (T8) ;T8=p->spectrum.ROMs ADDIU T2,T7,0002 LUI T6,8009 ADDU T5,T8,T0 SB T2,0000 (T5) LHU T3,0292 (SP) LW T6,E32C (T6) ADDIU T4,R0,0001 ADDU T1,T6,T3 BEQ R0,R0,7F0D9D88 SB T4,A800 (T1) //7F0D9D40: SLTI AT,T9,4000 BNE AT,R0,7F0D9D88 LHU T7,0298 (SP) ;T7=spec.PC LUI T0,8009 LW T0,E328 (T0) ;T0=p->spectrum.ROMs ADDIU T8,T7,0002 ADDIU T5,R0,0001 ADDU T2,T0,T9 SB T8,0000 (T2) LHU T6,0292 (SP) LUI T0,8009 LW T0,E32C (T0) ANDI T3,T6,1800 SRA T4,T3,0x3 ANDI T1,T6,00FF OR T7,T4,T1 ADDU T9,T0,T7 SB T5,0000 (T9) LHU T8,0292 (SP) LHU T7,0292 (SP) LHU T3,0298 (SP) ;T3=spec.PC ADDIU T2,T8,0001 SLTI AT,T2,5B00 BNE AT,R0,7F0D9DC0 ADDIU T5,T7,0001 LUI T1,8009 LW T1,E328 (T1) ;T1=p->spectrum.ROMs ADDIU T6,T3,0002 SRA T4,T6,0x8 ADDU T0,T1,T8 BEQ R0,R0,7F0D9E58 SB T4,0001 (T0) //7F0D9DC0: SLTI AT,T5,5800 BNE AT,R0,7F0D9E04 LHU T9,0292 (SP) LHU T9,0298 (SP) ;T9=spec.PC LUI T6,8009 LW T6,E328 (T6) ;T6=p->spectrum.ROMs ADDIU T2,T9,0002 SRA T3,T2,0x8 ADDU T1,T6,T7 SB T3,0001 (T1) LUI T4,8009 LW T4,E32C (T4) LHU T0,0292 (SP) ADDIU T8,R0,0001 ADDU T5,T4,T0 BEQ R0,R0,7F0D9E58 SB T8,A801 (T5) //7F0D9E04: ADDIU T2,T9,0001 SLTI AT,T2,4000 BNE AT,R0,7F0D9E58 LHU T6,0298 (SP) ;T6=spec.PC LUI T1,8009 LW T1,E328 (T1) ;T1=p->spectrum.ROMs ADDIU T7,T6,0002 SRA T3,T7,0x8 ADDU T4,T1,T9 SB T3,0001 (T4) LHU T8,0292 (SP) LUI T9,8009 LW T9,E32C (T9) ADDIU T5,T8,0001 ANDI T2,T5,1800 SRA T6,T2,0x3 ANDI T7,T5,00FF OR T1,T6,T7 ADDIU T0,R0,0001 ADDU T3,T9,T1 SB T0,0000 (T3) //7F0D9E58: LUI T8,8009 LW T8,E328 (T8) ;T8=p->spectrum.ROMs LHU T4,0298 (SP) ;T4=spec.PC ADDU T6,T8,T4 LBU T7,0001 (T6) ADDU T2,T4,T8 LBU T5,0000 (T2) SLL T9,T7,0x8 OR T1,T5,T9 ;T1= spec.PC[1:0]: jump PC BEQ R0,R0,7F0E27FC SH T1,0298 (SP) ;spec.PC = jump PC //7F0D9E84: LHU T0,0298 (SP) ADDIU T3,T0,0002 BEQ R0,R0,7F0E27FC SH T3,0298 (SP) ;spec.PC+=2 //7F0D9E94: C5: PUSH BC 11 LHU T4,0292 (SP) LW T2,028C (SP) LUI T5,8009 ADDIU T6,T4,FFFE ANDI T7,T6,FFFF SLTI AT,T7,5B00 ADDIU T8,T2,000B SW T8,028C (SP) ;cycles+=b BNE AT,R0,7F0D9ECC SH T6,0292 (SP) LW T5,E328 (T5) ;T5=p->spectrum.ROMs ADDU T9,T5,T7 BEQ R0,R0,7F0D9F4C SB S3,0000 (T9) //7F0D9ECC: LHU T1,0292 (SP) LHU T5,0292 (SP) LUI T0,8009 SLTI AT,T1,5800 BNEL AT,R0,7F0D9F10 SLTI AT,T5,4000 LW T0,E328 (T0) ;T0=p->spectrum.ROMs LUI T8,8009 ADDIU T2,R0,0001 ADDU T3,T0,T1 SB S3,0000 (T3) LHU T4,0292 (SP) LW T8,E32C (T8) ADDU T6,T8,T4 BEQ R0,R0,7F0D9F4C SB T2,A800 (T6) //77F0D9F0C: SLTI AT,T5,4000 BNE AT,R0,7F0D9F4C LUI T7,8009 LW T7,E328 (T7) ;T7=p->spectrum.ROMs LUI T6,8009 ADDIU T0,R0,0001 ADDU T9,T7,T5 SB S3,0000 (T9) LHU T1,0292 (SP) LW T6,E32C (T6) ANDI T3,T1,1800 SRA T8,T3,0x3 ANDI T4,T1,00FF OR T2,T8,T4 ADDU T7,T6,T2 SB T0,0000 (T7) LHU T5,0292 (SP) LHU T8,0292 (SP) LUI T3,8009 ADDIU T9,T5,0001 SLTI AT,T9,5B00 BNE AT,R0,7F0D9F78 ADDIU T4,T8,0001 LW T3,E328 (T3) ;T3=p->spectrum.ROMs ADDU T1,T3,T5 BEQ R0,R0,7F0E27FC SB S2,0001 (T1) //7F0D9F78: SLTI AT,T4,5800 BNE AT,R0,7F0D9FB0 LHU T5,0292 (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=p->spectrum.ROMs LUI T7,8009 ADDIU T0,R0,0001 ADDU T2,T6,T8 SB S2,0001 (T2) LHU T9,0292 (SP) LW T7,E32C (T7) ADDU T3,T7,T9 BEQ R0,R0,7F0E27FC SB T0,A801 (T3) //7F0D9FB0: ADDIU T1,T5,0001 SLTI AT,T1,4000 BNE AT,R0,7F0E27FC LUI T4,8009 LW T4,E328 (T4) ;T4=p->spectrum.ROMs ADDIU T8,R0,0001 ADDU T6,T4,T5 SB S2,0001 (T6) LHU T2,0292 (SP) LUI T4,8009 LW T4,E32C (T4) ADDIU T7,T2,0001 ANDI T9,T7,1800 SRA T0,T9,0x3 ANDI T3,T7,00FF OR T1,T0,T3 ADDU T5,T4,T1 BEQ R0,R0,7F0E27FC SB T8,0000 (T5) //7F0D9FFC: C6: ADD A,n 7 LW T6,028C (SP) LUI T7,8009 LW T7,E328 (T7) ;T7=p->spectrum.ROMs LHU T9,0298 (SP) ;T9=spec.PC ADDIU T2,T6,0007 SW T2,028C (SP) ;cycles+=7 ADDU T0,T9,T7 LBU T3,0000 (T0) ;T3= val ANDI T9,S0,000F ADDIU AT,R0,000F ADDU T1,S0,T3 ANDI T2,T3,000F ADDU T7,T9,T2 ANDI T8,T1,00A8 SRA T5,T1,0x8 OR T6,T8,T5 NOR T5,S0,R0 SLT T0,AT,T7 XOR T7,T1,S0 SH T1,0140 (SP) XOR T9,T5,T3 LBU S0,0141 (SP) ANDI T2,T9,0080 SLL T4,T0,0x4 AND T0,T2,T7 OR T8,T6,T4 LHU T2,0298 (SP) ;T2=spec.PC SRA T6,T0,0x5 SLTIU T5,S0,0001 SLL T9,T5,0x6 OR T4,T8,T6 OR S1,T4,T9 ANDI T1,S1,00FF ADDIU T7,T2,0001 OR S1,T1,R0 SW T5,0048 (SP) SH T7,0298 (SP) ;spec.PC+=1 BEQ R0,R0,7F0E27FC SB T3,013F (SP) //7F0DA098: C7: RST 00 11 LHU T6,0292 (SP) LW T0,028C (SP) LUI T9,8009 ADDIU T4,T6,FFFE ANDI T5,T4,FFFF SLTI AT,T5,5B00 ADDIU T8,T0,000B SW T8,028C (SP) ;cycles+=B BNE AT,R0,7F0DA0D4 SH T4,0292 (SP) LW T9,E328 (T9) ;T9=p->spectrum.ROMs LHU T3,0298 (SP) ;T3=spec.PC ADDU T1,T9,T5 BEQ R0,R0,7F0DA15C SB T3,0000 (T1) //7F0DA0D4: LHU T2,0292 (SP) LHU T3,0292 (SP) LUI T0,8009 SLTI AT,T2,5800 BNEL AT,R0,7F0DA11C SLTI AT,T3,4000 LW T0,E328 (T0) ;T0=p->spectrum.ROMs LHU T7,0298 (SP) ;T7=spec.PC LUI T4,8009 ADDU T8,T0,T2 SB T7,0000 (T8) LHU T9,0292 (SP) LW T4,E32C (T4) ADDIU T6,R0,0001 ADDU T5,T4,T9 BEQ R0,R0,7F0DA15C SB T6,A800 (T5) //7F0DA118: SLTI AT,T3,4000 BNE AT,R0,7F0DA15C LUI T0,8009 LW T0,E328 (T0) ;T0=p->spectrum.ROMs LHU T1,0298 (SP) ;T1=spec.PC ADDIU T7,R0,0001 ADDU T2,T0,T3 SB T1,0000 (T2) LHU T8,0292 (SP) LUI T0,8009 LW T0,E32C (T0) ANDI T4,T8,1800 SRA T9,T4,0x3 ANDI T6,T8,00FF OR T5,T9,T6 ADDU T3,T0,T5 SB T7,0000 (T3) LHU T1,0292 (SP) LHU T0,0292 (SP) LHU T4,0298 (SP) ;T4=spec.PC ADDIU T2,T1,0001 SLTI AT,T2,5B00 BNE AT,R0,7F0DA190 ADDIU T5,T0,0001 LUI T9,8009 LW T9,E328 (T9) ;T9=p->spectrum.ROMs SRA T8,T4,0x8 ADDU T6,T9,T1 BEQ R0,R0,7F0DA220 SB T8,0001 (T6) //7F0DA190: SLTI AT,T5,5800 BNE AT,R0,7F0DA1D0 LHU T5,0292 (SP) LUI T2,8009 LW T2,E328 (T2) ;T2=p->spectrum.ROMs LHU T7,0298 (SP) ;T7=spec.PC LUI T1,8009 ADDU T4,T2,T0 SRA T3,T7,0x8 SB T3,0001 (T4) LHU T8,0292 (SP) LW T1,E32C (T1) ADDIU T9,R0,0001 ADDU T6,T1,T8 BEQ R0,R0,7F0DA220 SB T9,A801 (T6) //7F0DA1D0: ADDIU T7,T5,0001 SLTI AT,T7,4000 BNE AT,R0,7F0DA220 LHU T2,0298 (SP) LUI T3,8009 LW T3,E328 (T3) ;T3=p->spectrum.ROMs SRA T0,T2,0x8 ADDIU T1,R0,0001 ADDU T4,T3,T5 SB T0,0001 (T4) LHU T8,0292 (SP) LUI T5,8009 LW T5,E32C (T5) ADDIU T9,T8,0001 ANDI T6,T9,1800 SRA T7,T6,0x3 ANDI T2,T9,00FF OR T3,T7,T2 ADDU T0,T5,T3 SB T1,0000 (T0) //7F0DA220: BEQ R0,R0,7F0E27FC SH R0,0298 (SP) //7F0DA228: C8: RET Z 11(5) LW T4,028C (SP) ANDI T6,S1,0040 LUI T5,8009 ADDIU T8,T4,0005 BEQ T6,R0,7F0E27FC SW T8,028C (SP) ;cycles+=5 LHU T2,0292 (SP) LW T5,E328 (T5) ;T5=p->spectrum.ROMs ADDIU T7,T8,0006 SW T7,028C (SP) ;cycles+=6 B total ADDU T0,T5,T2 LBU T4,0001 (T0) ADDU T3,T2,T5 LBU T1,0000 (T3) SLL T8,T4,0x8 ADDIU T9,T2,0002 OR T6,T1,T8 SH T6,0298 (SP) BEQ R0,R0,7F0E27FC SH T9,0292 (SP) //7F0DA278: C9: RET 10 LW T7,028C (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=p->spectrum.ROMs LHU T4,0292 (SP) ADDIU T3,T7,0004 SW T3,028C (SP) ;cycles+=4 ADDIU T0,T3,0006 SW T0,028C (SP) ;cycles+=6 A total ADDU T2,T1,T4 LBU T9,0001 (T2) ADDU T8,T4,T1 LBU T6,0000 (T8) SLL T7,T9,0x8 ADDIU T5,T4,0002 OR T3,T6,T7 SH T3,0298 (SP) BEQ R0,R0,7F0E27FC SH T5,0292 (SP) //7F0DA2C0: CA: JP Z,nn 10 LW T0,028C (SP) ANDI T1,S1,0040 LHU T2,0298 (SP) ADDIU T8,T0,000A BEQ T1,R0,7F0DA300 SW T8,028C (SP) ;cycles+=A LUI T9,8009 LW T9,E328 (T9) ;T9=p->spectrum.ROMs ADDU T3,T9,T2 LBU T4,0001 (T3) ADDU T6,T2,T9 LBU T7,0000 (T6) SLL T5,T4,0x8 OR T0,T7,T5 BEQ R0,R0,7F0E27FC SH T0,0298 (SP) //7F0DA300: LHU T8,0298 (SP) ADDIU T1,T8,0002 BEQ R0,R0,7F0E27FC SH T1,0298 (SP) //7F0DA310: CB: --- CB --- LW T6,028C (SP) LBU T2,0287 (SP) LUI T3,8009 ADDIU T9,T6,0004 BEQ T2,R0,7F0DA3A0 SW T9,028C (SP) ;cycles+=4 ADDIU AT,R0,0001 BNE T2,AT,7F0DA340 LUI T5,8009 LHU T3,0296 (SP) BEQ R0,R0,7F0DA348 SW T3,0048 (SP) //7F0DA340: LHU T4,0294 (SP) SW T4,0048 (SP) LHU T7,0298 (SP) LW T5,E328 (T5) ;T5=p->spectrum.ROMs LW T1,0048 (SP) LW T2,028C (SP) ADDU T0,T7,T5 LB T8,0000 (T0) ADDIU T9,T7,0001 ANDI T4,T9,FFFF ADDIU T3,T2,0008 ADDU T6,T8,T1 SH T6,013C (SP) SH T9,0298 (SP) SW T3,028C (SP) ;cycles+=8 ADDU T0,T4,T5 LBU T8,0000 (T0) ANDI T6,T8,00F8 ORI T7,T6,0006 SB T8,013B (SP) ANDI T1,T8,0007 SB T1,013A (SP) BEQ R0,R0,7F0DA3D8 SB T7,013B (SP) //7F0DA3A0: LHU T2,0298 (SP) LW T3,E328 (T3) ;T3=p->spectrum.ROMs LW T5,028C (SP) LW T1,0288 (SP) ADDU T9,T2,T3 LBU T4,0000 (T9) ;T4= CB.cmd SLL T6,S6,0x8 OR T7,T6,S7 ;T7= HL ADDIU T0,T5,0004 ADDIU T8,T1,0001 SW T0,028C (SP) ;cycles+=4 SW T8,0288 (SP) ;SP+288+=1 SH T7,013C (SP) ;SP+13C= HL SB T4,013B (SP) ;SP+13B= CB.cmd LHU T2,0298 (SP) LBU T9,013B (SP) LBU T7,013B (SP) ADDIU T3,T2,0001 SLTI AT,T9,0040 BEQ AT,R0,7F0DBE80 SH T3,0298 (SP) ;spec.PC+=1 SLTIU AT,T9,0040 BEQ AT,R0,7F0DC598 SLL T9,T9,0x2 LUI AT,8006 ADDU AT,AT,T9 LW T9,C52C (AT) ;T9=8005C52C+offset: p->handler JR T9 NOP //7F0DA414: CB.00: RLC B 8 SLL T4,S2,0x1 SRA T5,S2,0x7 OR S2,T4,T5 ANDI T0,S2,00FF LUI T4,8009 LW T4,E334 (T4) SLTIU T1,T0,0001 SW T1,0048 (SP) OR S2,T0,R0 ANDI T8,T0,0001 ANDI T6,T0,00A8 ADDU T5,T0,T4 LBU T0,0000 (T5) OR T7,T8,T6 SLL T3,T1,0x6 OR T9,T7,T3 OR S1,T0,T9 ANDI T1,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T1,R0 //7F0DA464: CB.01: RLC C 8 SLL T8,S3,0x1 SRA T6,S3,0x7 OR S3,T8,T6 ANDI T2,S3,00FF LUI T8,8009 LW T8,E334 (T8) SLTIU T7,T2,0001 SW T7,0048 (SP) OR S3,T2,R0 ANDI T3,T2,0001 ANDI T4,T2,00A8 ADDU T6,T2,T8 LBU T2,0000 (T6) OR T5,T3,T4 SLL T9,T7,0x6 OR T1,T5,T9 OR S1,T2,T1 ANDI T7,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T7,R0 //7F0DA4B4: CB.02: RLC D 8 SLL T3,S4,0x1 SRA T4,S4,0x7 OR S4,T3,T4 ANDI T0,S4,00FF LUI T3,8009 LW T3,E334 (T3) SLTIU T5,T0,0001 SW T5,0048 (SP) OR S4,T0,R0 ANDI T9,T0,0001 ANDI T8,T0,00A8 ADDU T4,T0,T3 LBU T0,0000 (T4) OR T6,T9,T8 SLL T1,T5,0x6 OR T7,T6,T1 OR S1,T0,T7 ANDI T5,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T5,R0 //7F0DA504: CB.03: RLC E 8 SLL T9,S5,0x1 SRA T8,S5,0x7 OR S5,T9,T8 ANDI T2,S5,00FF LUI T9,8009 LW T9,E334 (T9) SLTIU T6,T2,0001 SW T6,0048 (SP) OR S5,T2,R0 ANDI T1,T2,0001 ANDI T3,T2,00A8 ADDU T8,T2,T9 LBU T2,0000 (T8) OR T4,T1,T3 SLL T7,T6,0x6 OR T5,T4,T7 OR S1,T2,T5 ANDI T6,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T6,R0 //7F0DA554: CB.04: RLC H 8 SLL T1,S6,0x1 SRA T3,S6,0x7 OR S6,T1,T3 ANDI T0,S6,00FF LUI T1,8009 LW T1,E334 (T1) SLTIU T4,T0,0001 SW T4,0048 (SP) OR S6,T0,R0 ANDI T7,T0,0001 ANDI T9,T0,00A8 ADDU T3,T0,T1 LBU T0,0000 (T3) OR T8,T7,T9 SLL T5,T4,0x6 OR T6,T8,T5 OR S1,T0,T6 ANDI T4,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T4,R0 //7F0DA5A4: CB.05: RLC L 8 SLL T7,S7,0x1 SRA T9,S7,0x7 OR S7,T7,T9 ANDI T2,S7,00FF LUI T7,8009 LW T7,E334 (T7) SLTIU T8,T2,0001 SW T8,0048 (SP) OR S7,T2,R0 ANDI T5,T2,0001 ANDI T1,T2,00A8 ADDU T9,T2,T7 LBU T2,0000 (T9) OR T3,T5,T1 SLL T6,T8,0x6 OR T4,T3,T6 OR S1,T2,T4 ANDI T8,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T8,R0 //7F0DA5F4: CB.06: RLC (HL) 15 LW T5,028C (SP) LUI T3,8009 LW T3,E328 (T3) ;T3=p->spectrum.ROMs LHU T0,013C (SP) ADDIU T1,T5,0007 SW T1,028C (SP) ;cycles+=7 ADDU T6,T0,T3 LBU T7,0000 (T6) SLL T9,T7,0x1 SRA T2,T7,0x7 OR T4,T9,T2 ANDI T8,T4,00FF SLTIU T5,T8,0001 LUI T8,8009 LW T8,E334 (T8) ANDI T1,T4,00FF SB T7,0139 (SP) ANDI T0,T1,0001 ANDI T6,T4,00A8 OR T7,T0,T6 SB T4,0139 (SP) SW T5,0048 (SP) ADDU T3,T1,T8 LBU T0,0000 (T3) SLL T9,T5,0x6 LHU T5,013C (SP) OR T2,T7,T9 OR S1,T0,T2 ANDI T6,S1,00FF SLTI AT,T5,5B00 BNE AT,R0,7F0DA68C OR S1,T6,R0 LUI T9,8009 LW T9,E328 (T9) ;T9=p->spectrum.ROMs OR T7,T4,R0 ADDU T4,T9,T5 BEQ R0,R0,7F0DC598 SB T7,0000 (T4) //7F0DA68C: LHU T1,013C (SP) LHU T7,013C (SP) LUI T3,8009 SLTI AT,T1,5800 BNEL AT,R0,7F0DA6D4 SLTI AT,T7,4000 LW T3,E328 (T3) ;T3=p->spectrum.ROMs LBU T8,0139 (SP) LUI T6,8009 ADDU T0,T3,T1 SB T8,0000 (T0) LHU T9,013C (SP) LW T6,E32C (T6) ADDIU T2,R0,0001 ADDU T5,T6,T9 BEQ R0,R0,7F0DC598 SB T2,A800 (T5) //7F0DA6D0: SLTI AT,T7,4000 BNE AT,R0,7F0DC598 LUI T3,8009 LW T3,E328 (T3) ;T3=p->spectrum.ROMs LBU T4,0139 (SP) ADDIU T8,R0,0001 ADDU T1,T3,T7 SB T4,0000 (T1) LHU T0,013C (SP) LUI T3,8009 LW T3,E32C (T3) ANDI T6,T0,1800 SRA T9,T6,0x3 ANDI T2,T0,00FF OR T5,T9,T2 ADDU T7,T3,T5 BEQ R0,R0,7F0DC598 SB T8,0000 (T7) //7F0DA718: CB.07: RLC A 8 SLL T4,S0,0x1 SRA T1,S0,0x7 OR S0,T4,T1 ANDI T6,S0,00FF LUI T4,8009 LW T4,E334 (T4) SLTIU T0,T6,0001 SW T0,0048 (SP) OR S0,T6,R0 ANDI T9,T6,0001 ANDI T2,T6,00A8 ADDU T1,T6,T4 LBU T6,0000 (T1) OR T3,T9,T2 SLL T8,T0,0x6 OR T7,T3,T8 OR S1,T6,T7 ANDI T0,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T0,R0 //7F0DA768: CB.08: RRC B 8 ANDI T5,S2,0001 SLL T3,T5,0x7 SRA T2,S2,0x1 OR S2,T2,T3 ANDI T8,S2,00FF LUI T2,8009 LW T2,E334 (T2) SLTIU T4,T8,0001 SW T4,0048 (SP) OR S2,T8,R0 ANDI T1,T8,00A8 SB T5,0138 (SP) ADDU T3,T8,T2 LBU T8,0000 (T3) OR T6,T5,T1 SLL T0,T4,0x6 OR T9,T6,T0 OR S1,T8,T9 ANDI T4,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T4,R0 //7F0DA7BC: CB.09: RRC C 8 ANDI T7,S3,0001 SLL T6,T7,0x7 SRA T1,S3,0x1 OR S3,T1,T6 ANDI T0,S3,00FF LUI T1,8009 LW T1,E334 (T1) SLTIU T2,T0,0001 SW T2,0048 (SP) OR S3,T0,R0 ANDI T3,T0,00A8 SB T7,0137 (SP) ADDU T6,T0,T1 LBU T0,0000 (T6) OR T8,T7,T3 SLL T4,T2,0x6 OR T5,T8,T4 OR S1,T0,T5 ANDI T2,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T2,R0 //7F0DA810: CB.0A: RRC D 8 ANDI T9,S4,0001 SLL T8,T9,0x7 SRA T3,S4,0x1 OR S4,T3,T8 ANDI T4,S4,00FF LUI T3,8009 LW T3,E334 (T3) SLTIU T1,T4,0001 SW T1,0048 (SP) OR S4,T4,R0 ANDI T6,T4,00A8 SB T9,0136 (SP) ADDU T8,T4,T3 LBU T4,0000 (T8) OR T0,T9,T6 SLL T2,T1,0x6 OR T7,T0,T2 OR S1,T4,T7 ANDI T1,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T1,R0 //7F0DA864: CB.0B: RRC E 8 ANDI T5,S5,0001 SLL T0,T5,0x7 SRA T6,S5,0x1 OR S5,T6,T0 ANDI T2,S5,00FF LUI T6,8009 LW T6,E334 (T6) SLTIU T3,T2,0001 SW T3,0048 (SP) OR S5,T2,R0 ANDI T8,T2,00A8 SB T5,0135 (SP) ADDU T0,T2,T6 LBU T2,0000 (T0) OR T4,T5,T8 SLL T1,T3,0x6 OR T9,T4,T1 OR S1,T2,T9 ANDI T3,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T3,R0 //7F0DA8B8: CB.0C: RRC H 8 ANDI T7,S6,0001 SLL T4,T7,0x7 SRA T8,S6,0x1 OR S6,T8,T4 ANDI T1,S6,00FF LUI T8,8009 LW T8,E334 (T8) SLTIU T6,T1,0001 SW T6,0048 (SP) OR S6,T1,R0 ANDI T0,T1,00A8 SB T7,0134 (SP) ADDU T4,T1,T8 LBU T1,0000 (T4) OR T2,T7,T0 SLL T3,T6,0x6 OR T5,T2,T3 OR S1,T1,T5 ANDI T6,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T6,R0 //7F0DA90C: CB.0D: RRC L 8 ANDI T9,S7,0001 SLL T2,T9,0x7 SRA T0,S7,0x1 OR S7,T0,T2 ANDI T3,S7,00FF LUI T0,8009 LW T0,E334 (T0) SLTIU T8,T3,0001 SW T8,0048 (SP) OR S7,T3,R0 ANDI T4,T3,00A8 SB T9,0133 (SP) ADDU T2,T3,T0 LBU T3,0000 (T2) OR T1,T9,T4 SLL T6,T8,0x6 OR T7,T1,T6 OR S1,T3,T7 ANDI T8,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T8,R0 //7F0DA960: CB.0E: RRC (HL) 15 LW T9,028C (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=p->spectrum.ROMs LHU T5,013C (SP) ADDIU T4,T9,0007 SW T4,028C (SP) ;cycles+=7 ADDU T6,T5,T1 LBU T0,0000 (T6) ANDI T2,T0,00FF ANDI T6,T2,0001 ANDI T8,T6,00FF SLL T9,T8,0x7 SRA T7,T2,0x1 OR T4,T7,T9 LUI T9,8009 LW T9,E334 (T9) ANDI T5,T4,00FF SB T0,0139 (SP) SLTIU T1,T5,0001 ANDI T2,T4,00A8 OR T3,T6,T2 SW T1,0048 (SP) SB T4,0139 (SP) SB T6,0132 (SP) ADDU T0,T5,T9 LBU T6,0000 (T0) SLL T8,T1,0x6 LHU T1,013C (SP) OR T7,T3,T8 OR S1,T6,T7 ANDI T2,S1,00FF SLTI AT,T1,5B00 BNE AT,R0,7F0DAA00 OR S1,T2,R0 LUI T8,8009 LW T8,E328 (T8) ;T8=p->spectrum.ROMs OR T3,T4,R0 ADDU T4,T8,T1 BEQ R0,R0,7F0DC598 SB T3,0000 (T4) //7F0DAA00: LHU T5,013C (SP) LHU T3,013C (SP) LUI T0,8009 SLTI AT,T5,5800 BNEL AT,R0,7F0DAA48 SLTI AT,T3,4000 LW T0,E328 (T0) ;T0=p->spectrum.ROMs LBU T9,0139 (SP) LUI T2,8009 ADDU T6,T0,T5 SB T9,0000 (T6) LHU T8,013C (SP) LW T2,E32C (T2) ADDIU T7,R0,0001 ADDU T1,T2,T8 BEQ R0,R0,7F0DC598 SB T7,A800 (T1) //7F0DAA44: SLTI AT,T3,4000 BNE AT,R0,7F0DC598 LUI T0,8009 LW T0,E328 (T0) ;T0=p->spectrum.ROMs LBU T4,0139 (SP) ADDIU T9,R0,0001 ADDU T5,T0,T3 SB T4,0000 (T5) LHU T6,013C (SP) LUI T0,8009 LW T0,E32C (T0) ANDI T2,T6,1800 SRA T8,T2,0x3 ANDI T7,T6,00FF OR T1,T8,T7 ADDU T3,T0,T1 BEQ R0,R0,7F0DC598 SB T9,0000 (T3) //7F0DAA8C: CB.0F: RRC A 8 ANDI T2,S0,0001 SLL T6,T2,0x7 SRA T5,S0,0x1 OR S0,T5,T6 ANDI T8,S0,00FF LUI T5,8009 LW T5,E334 (T5) SLTIU T7,T8,0001 SW T7,0048 (SP) OR S0,T8,R0 ANDI T0,T8,00A8 SB T2,0131 (SP) ADDU T6,T8,T5 LBU T8,0000 (T6) OR T1,T2,T0 SLL T3,T7,0x6 OR T4,T1,T3 OR S1,T8,T4 ANDI T7,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T7,R0 //7F0DAAE0: CB.10: RL B 8 SRA T5,S2,0x7 SLL T0,S2,0x1 ANDI T9,S1,0001 OR S2,T0,T9 ANDI T1,S2,00FF LUI T0,8009 LW T0,E334 (T0) SLTIU T3,T1,0001 SW T3,0048 (SP) OR S2,T1,R0 ANDI T6,T1,00A8 SB T5,0130 (SP) ADDU T9,T1,T0 LBU T1,0000 (T9) OR T8,T5,T6 SLL T7,T3,0x6 OR T2,T8,T7 OR S1,T1,T2 ANDI T3,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T3,R0 //7F0DAB34: CB.11: RL C 8 SRA T0,S3,0x7 SLL T6,S3,0x1 ANDI T4,S1,0001 OR S3,T6,T4 ANDI T8,S3,00FF LUI T6,8009 LW T6,E334 (T6) SLTIU T7,T8,0001 SW T7,0048 (SP) OR S3,T8,R0 ANDI T9,T8,00A8 SB T0,012F (SP) ADDU T4,T8,T6 LBU T8,0000 (T4) OR T1,T0,T9 SLL T3,T7,0x6 OR T5,T1,T3 OR S1,T8,T5 ANDI T7,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T7,R0 //7F0DAB88: CB.12: RL D 8 SRA T6,S4,0x7 SLL T9,S4,0x1 ANDI T2,S1,0001 OR S4,T9,T2 ANDI T1,S4,00FF LUI T9,8009 LW T9,E334 (T9) SLTIU T3,T1,0001 SW T3,0048 (SP) OR S4,T1,R0 ANDI T4,T1,00A8 SB T6,012E (SP) ADDU T2,T1,T9 LBU T1,0000 (T2) OR T8,T6,T4 SLL T7,T3,0x6 OR T0,T8,T7 OR S1,T1,T0 ANDI T3,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T3,R0 //7F0DABDC: CB.13: RL E 8 SRA T9,S5,0x7 SLL T4,S5,0x1 ANDI T5,S1,0001 OR S5,T4,T5 ANDI T8,S5,00FF LUI T4,8009 LW T4,E334 (T4) SLTIU T7,T8,0001 SW T7,0048 (SP) OR S5,T8,R0 ANDI T2,T8,00A8 SB T9,012D (SP) ADDU T5,T8,T4 LBU T8,0000 (T5) OR T1,T9,T2 SLL T3,T7,0x6 OR T6,T1,T3 OR S1,T8,T6 ANDI T7,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T7,R0 //7F0DAC30: CB.14: RL H 8 SRA T4,S6,0x7 SLL T2,S6,0x1 ANDI T0,S1,0001 OR S6,T2,T0 ANDI T1,S6,00FF LUI T2,8009 LW T2,E334 (T2) SLTIU T3,T1,0001 SW T3,0048 (SP) OR S6,T1,R0 ANDI T5,T1,00A8 SB T4,012C (SP) ADDU T0,T1,T2 LBU T1,0000 (T0) OR T8,T4,T5 SLL T7,T3,0x6 OR T9,T8,T7 OR S1,T1,T9 ANDI T3,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T3,R0 //7F0DAC84: CB.15: RL L 8 SRA T2,S7,0x7 SLL T5,S7,0x1 ANDI T6,S1,0001 OR S7,T5,T6 ANDI T8,S7,00FF LUI T5,8009 LW T5,E334 (T5) SLTIU T7,T8,0001 SW T7,0048 (SP) OR S7,T8,R0 ANDI T0,T8,00A8 SB T2,012B (SP) ADDU T6,T8,T5 LBU T8,0000 (T6) OR T1,T2,T0 SLL T3,T7,0x6 OR T4,T1,T3 OR S1,T8,T4 ANDI T7,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T7,R0 //7F0DACD8: CB.16: RL (HL) 15 LW T2,028C (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=p->spectrum.ROMs LHU T9,013C (SP) ADDIU T0,T2,0007 SW T0,028C (SP) ;cycles+=7 F total ADDU T3,T9,T1 LBU T5,0000 (T3) ANDI T7,S1,0001 ANDI T6,T5,00FF SLL T4,T6,0x1 OR T2,T4,T7 LUI T7,8009 LW T7,E334 (T7) SRA T1,T6,0x7 ANDI T0,T2,00FF SB T5,0139 (SP) ANDI T5,T2,00A8 SLTIU T9,T0,0001 SW T9,0048 (SP) OR T8,T1,T5 SB T2,0139 (SP) SB T1,012A (SP) ADDU T3,T0,T7 LBU T1,0000 (T3) SLL T6,T9,0x6 LHU T9,013C (SP) OR T4,T8,T6 OR S1,T1,T4 ANDI T5,S1,00FF SLTI AT,T9,5B00 BNE AT,R0,7F0DAD74 OR S1,T5,R0 LUI T6,8009 LW T6,E328 (T6) ;T6=p->spectrum.ROMs OR T8,T2,R0 ADDU T2,T6,T9 BEQ R0,R0,7F0DC598 SB T8,0000 (T2) //7F0DAD74: LHU T0,013C (SP) LHU T8,013C (SP) LUI T3,8009 SLTI AT,T0,5800 BNEL AT,R0,7F0DADBC SLTI AT,T8,4000 LW T3,E328 (T3) ;T3=p->spectrum.ROMs LBU T7,0139 (SP) LUI T5,8009 ADDU T1,T3,T0 SB T7,0000 (T1) LHU T6,013C (SP) LW T5,E32C (T5) ADDIU T4,R0,0001 ADDU T9,T5,T6 BEQ R0,R0,7F0DC598 SB T4,A800 (T9) //7F0DADB8: SLTI AT,T8,4000 BNE AT,R0,7F0DC598 LUI T3,8009 LW T3,E328 (T3) ;T3=p->spectrum.ROMs LBU T2,0139 (SP) ADDIU T7,R0,0001 ADDU T0,T3,T8 SB T2,0000 (T0) LHU T1,013C (SP) LUI T3,8009 LW T3,E32C (T3) ANDI T5,T1,1800 SRA T6,T5,0x3 ANDI T4,T1,00FF OR T9,T6,T4 ADDU T8,T3,T9 BEQ R0,R0,7F0DC598 SB T7,0000 (T8) //7F0DAE00: CB.17: RL A 8 SRA T4,S0,0x7 SLL T0,S0,0x1 ANDI T5,S1,0001 OR S0,T0,T5 ANDI T1,S0,00FF LUI T0,8009 LW T0,E334 (T0) SLTIU T6,T1,0001 SW T6,0048 (SP) OR S0,T1,R0 ANDI T3,T1,00A8 SB T4,0129 (SP) ADDU T5,T1,T0 LBU T1,0000 (T5) OR T9,T4,T3 SLL T8,T6,0x6 OR T2,T9,T8 OR S1,T1,T2 ANDI T6,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T6,R0 //7F0DAE54: CB.18: RR B 8 ANDI T0,S2,0001 SRA T3,S2,0x1 SLL T7,S1,0x7 OR S2,T3,T7 ANDI T9,S2,00FF LUI T3,8009 LW T3,E334 (T3) SLTIU T8,T9,0001 SW T8,0048 (SP) OR S2,T9,R0 ANDI T5,T9,00A8 SB T0,0128 (SP) ADDU T7,T9,T3 LBU T9,0000 (T7) OR T1,T0,T5 SLL T6,T8,0x6 OR T4,T1,T6 OR S1,T9,T4 ANDI T8,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T8,R0 //7F0DAEA8: CB.19: RR C 8 ANDI T3,S3,0001 SRA T5,S3,0x1 SLL T2,S1,0x7 OR S3,T5,T2 ANDI T1,S3,00FF LUI T5,8009 LW T5,E334 (T5) SLTIU T6,T1,0001 SW T6,0048 (SP) OR S3,T1,R0 ANDI T7,T1,00A8 SB T3,0127 (SP) ADDU T2,T1,T5 LBU T1,0000 (T2) OR T9,T3,T7 SLL T8,T6,0x6 OR T0,T9,T8 OR S1,T1,T0 ANDI T6,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T6,R0 //7F0DAEFC: CB.1A: RR D 8 ANDI T5,S4,0001 SRA T7,S4,0x1 SLL T4,S1,0x7 OR S4,T7,T4 ANDI T9,S4,00FF LUI T7,8009 LW T7,E334 (T7) SLTIU T8,T9,0001 SW T8,0048 (SP) OR S4,T9,R0 ANDI T2,T9,00A8 SB T5,0126 (SP) ADDU T4,T9,T7 LBU T9,0000 (T4) OR T1,T5,T2 SLL T6,T8,0x6 OR T3,T1,T6 OR S1,T9,T3 ANDI T8,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T8,R0 //7F0DAF50: CB.1B: RR E 8 ANDI T7,S5,0001 SRA T2,S5,0x1 SLL T0,S1,0x7 OR S5,T2,T0 ANDI T1,S5,00FF LUI T2,8009 LW T2,E334 (T2) SLTIU T6,T1,0001 SW T6,0048 (SP) OR S5,T1,R0 ANDI T4,T1,00A8 SB T7,0125 (SP) ADDU T0,T1,T2 LBU T1,0000 (T0) OR T9,T7,T4 SLL T8,T6,0x6 OR T5,T9,T8 OR S1,T1,T5 ANDI T6,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T6,R0 //7F0DAFA4: CB.1C: RR H 8 ANDI T2,S6,0001 SRA T4,S6,0x1 SLL T3,S1,0x7 OR S6,T4,T3 ANDI T9,S6,00FF LUI T4,8009 LW T4,E334 (T4) SLTIU T8,T9,0001 SW T8,0048 (SP) OR S6,T9,R0 ANDI T0,T9,00A8 SB T2,0124 (SP) ADDU T3,T9,T4 LBU T9,0000 (T3) OR T1,T2,T0 SLL T6,T8,0x6 OR T7,T1,T6 OR S1,T9,T7 ANDI T8,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T8,R0 //7F0DAFF8: CB.1D: RR L 8 ANDI T4,S7,0001 SRA T0,S7,0x1 SLL T5,S1,0x7 OR S7,T0,T5 ANDI T1,S7,00FF LUI T0,8009 LW T0,E334 (T0) SLTIU T6,T1,0001 SW T6,0048 (SP) OR S7,T1,R0 ANDI T3,T1,00A8 SB T4,0123 (SP) ADDU T5,T1,T0 LBU T1,0000 (T5) OR T9,T4,T3 SLL T8,T6,0x6 OR T2,T9,T8 OR S1,T1,T2 ANDI T6,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T6,R0 //7F0DB04C: CB.1E: RR (HL) 15 LW T4,028C (SP) LUI T9,8009 LW T9,E328 (T9) ;T9=p->spectrum.ROMs LHU T7,013C (SP) ADDIU T3,T4,0007 SW T3,028C (SP) ;cycles+=7 F total ADDU T8,T7,T9 LBU T0,0000 (T8) SLL T6,S1,0x7 ANDI T5,T0,00FF SRA T2,T5,0x1 OR T4,T2,T6 LUI T6,8009 LW T6,E334 (T6) ANDI T9,T5,0001 ANDI T3,T4,00FF SB T0,0139 (SP) ANDI T0,T4,00A8 SLTIU T7,T3,0001 SW T7,0048 (SP) OR T1,T9,T0 SB T4,0139 (SP) SB T9,0122 (SP) ADDU T8,T3,T6 LBU T9,0000 (T8) SLL T5,T7,0x6 LHU T7,013C (SP) OR T2,T1,T5 OR S1,T9,T2 ANDI T0,S1,00FF SLTI AT,T7,5B00 BNE AT,R0,7F0DB0E8 OR S1,T0,R0 LUI T5,8009 LW T5,E328 (T5) ;T5=p->spectrum.ROMs OR T1,T4,R0 ADDU T4,T5,T7 BEQ R0,R0,7F0DC598 SB T1,0000 (T4) //7F0DB0E8: LHU T3,013C (SP) LHU T1,013C (SP) LUI T8,8009 SLTI AT,T3,5800 BNEL AT,R0,7F0DB130 SLTI AT,T1,4000 LW T8,E328 (T8) ;T8=p->spectrum.ROMs LBU T6,0139 (SP) LUI T0,8009 ADDU T9,T8,T3 SB T6,0000 (T9) LHU T5,013C (SP) LW T0,E32C (T0) ADDIU T2,R0,0001 ADDU T7,T0,T5 BEQ R0,R0,7F0DC598 SB T2,A800 (T7) //7F0DB12C: SLTI AT,T1,4000 BNE AT,R0,7F0DC598 LUI T8,8009 LW T8,E328 (T8) ;T8=p->spectrum.ROMs LBU T4,0139 (SP) ADDIU T6,R0,0001 ADDU T3,T8,T1 SB T4,0000 (T3) LHU T9,013C (SP) LUI T8,8009 LW T8,E32C (T8) ANDI T0,T9,1800 SRA T5,T0,0x3 ANDI T2,T9,00FF OR T7,T5,T2 ADDU T1,T8,T7 BEQ R0,R0,7F0DC598 SB T6,0000 (T1) //7F0DB174: CB.1F: RR A 8 ANDI T2,S0,0001 SRA T3,S0,0x1 SLL T0,S1,0x7 OR S0,T3,T0 ANDI T9,S0,00FF LUI T3,8009 LW T3,E334 (T3) SLTIU T5,T9,0001 SW T5,0048 (SP) OR S0,T9,R0 ANDI T8,T9,00A8 SB T2,0121 (SP) ADDU T0,T9,T3 LBU T9,0000 (T0) OR T7,T2,T8 SLL T1,T5,0x6 OR T4,T7,T1 OR S1,T9,T4 ANDI T5,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T5,R0 //7F0DB1C8: CB.20: SLA B 8 LUI T2,8009 LW T2,E334 (T2) SRA T1,S2,0x7 SLL T8,S2,0x1 ANDI S2,T8,00FF SLTIU T7,S2,0001 SW T7,0048 (SP) SB T1,0120 (SP) ADDU T8,S2,T2 LBU T6,0000 (T8) ANDI T3,S2,00A8 OR T0,T1,T3 SLL T4,T7,0x6 OR T5,T0,T4 OR S1,T6,T5 ANDI T7,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T7,R0 //7F0DB210: CB.21: SLA C 8 LUI T1,8009 LW T1,E334 (T1) SRA T4,S3,0x7 SLL T3,S3,0x1 ANDI S3,T3,00FF SLTIU T0,S3,0001 SW T0,0048 (SP) SB T4,011F (SP) ADDU T3,S3,T1 LBU T9,0000 (T3) ANDI T2,S3,00A8 OR T8,T4,T2 SLL T5,T0,0x6 OR T7,T8,T5 OR S1,T9,T7 ANDI T0,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T0,R0 //7F0DB258: CB.22: SLA D 8 LUI T4,8009 LW T4,E334 (T4) SRA T5,S4,0x7 SLL T2,S4,0x1 ANDI S4,T2,00FF SLTIU T8,S4,0001 SW T8,0048 (SP) SB T5,011E (SP) ADDU T2,S4,T4 LBU T6,0000 (T2) ANDI T1,S4,00A8 OR T3,T5,T1 SLL T7,T8,0x6 OR T0,T3,T7 OR S1,T6,T0 ANDI T8,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T8,R0 //7F0DB2A0: CB.23: SLA E 8 LUI T5,8009 LW T5,E334 (T5) SRA T7,S5,0x7 SLL T1,S5,0x1 ANDI S5,T1,00FF SLTIU T3,S5,0001 SW T3,0048 (SP) SB T7,011D (SP) ADDU T1,S5,T5 LBU T9,0000 (T1) ANDI T4,S5,00A8 OR T2,T7,T4 SLL T0,T3,0x6 OR T8,T2,T0 OR S1,T9,T8 ANDI T3,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T3,R0 //7F0DB2E8: CB.24: SLA H 8 LUI T7,8009 LW T7,E334 (T7) SRA T0,S6,0x7 SLL T4,S6,0x1 ANDI S6,T4,00FF SLTIU T2,S6,0001 SW T2,0048 (SP) SB T0,011C (SP) ADDU T4,S6,T7 LBU T6,0000 (T4) ANDI T5,S6,00A8 OR T1,T0,T5 SLL T8,T2,0x6 OR T3,T1,T8 OR S1,T6,T3 ANDI T2,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T2,R0 //7F0DB330: CB.25: SLA L 8 LUI T0,8009 LW T0,E334 (T0) SRA T8,S7,0x7 SLL T5,S7,0x1 ANDI S7,T5,00FF SLTIU T1,S7,0001 SW T1,0048 (SP) SB T8,011B (SP) ADDU T5,S7,T0 LBU T9,0000 (T5) ANDI T7,S7,00A8 OR T4,T8,T7 SLL T3,T1,0x6 OR T2,T4,T3 OR S1,T9,T2 ANDI T1,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T1,R0 //7F0DB378: CB.26: SLA (HL) 15 LW T8,028C (SP) LUI T4,8009 LW T4,E328 (T4) ;T4=p->spectrum.ROMs LHU T6,013C (SP) ADDIU T7,T8,0007 SW T7,028C (SP) ;cycles+=7 F total ADDU T3,T6,T4 LBU T0,0000 (T3) ANDI T5,T0,00FF SRA T7,T5,0x7 SLL T2,T5,0x1 LUI T5,8009 LW T5,E334 (T5) ANDI T1,T2,00FF SB T0,0139 (SP) SLTIU T8,T1,0001 ANDI T4,T2,00A8 OR T3,T7,T4 SW T8,0048 (SP) SB T2,0139 (SP) SB T7,011A (SP) ADDU T6,T1,T5 LBU T7,0000 (T6) SLL T0,T8,0x6 LHU T8,013C (SP) OR T9,T3,T0 OR S1,T7,T9 ANDI T4,S1,00FF SLTI AT,T8,5B00 BNE AT,R0,7F0DB40C OR S1,T4,R0 LUI T0,8009 LW T0,E328 (T0) ;T0=p->spectrum.ROMs OR T3,T2,R0 ADDU T2,T0,T8 BEQ R0,R0,7F0DC598 SB T3,0000 (T2) //7F0DB40C: LHU T1,013C (SP) LHU T3,013C (SP) LUI T6,8009 SLTI AT,T1,5800 BNEL AT,R0,7F0DB454 SLTI AT,T3,4000 LW T6,E328 (T6) ;T6=p->spectrum.ROMs LBU T5,0139 (SP) LUI T4,8009 ADDU T7,T6,T1 SB T5,0000 (T7) LHU T0,013C (SP) LW T4,E32C (T4) ADDIU T9,R0,0001 ADDU T8,T4,T0 BEQ R0,R0,7F0DC598 SB T9,A800 (T8) //7F0DB450: SLTI AT,T3,4000 BNE AT,R0,7F0DC598 LUI T6,8009 LW T6,E328 (T6) ;T6=p->spectrum.ROMs LBU T2,0139 (SP) ADDIU T5,R0,0001 ADDU T1,T6,T3 SB T2,0000 (T1) LHU T7,013C (SP) LUI T6,8009 LW T6,E32C (T6) ANDI T4,T7,1800 SRA T0,T4,0x3 ANDI T9,T7,00FF OR T8,T0,T9 ADDU T3,T6,T8 BEQ R0,R0,7F0DC598 SB T5,0000 (T3) //7F0DB498: CB.27: SLA A 8 LUI T2,8009 LW T2,E334 (T2) SRA T0,S0,0x7 SLL T1,S0,0x1 ANDI S0,T1,00FF SLTIU T7,S0,0001 SW T7,0048 (SP) SB T0,0119 (SP) ADDU T1,S0,T2 LBU T4,0000 (T1) ANDI T9,S0,00A8 OR T6,T0,T9 SLL T5,T7,0x6 OR T3,T6,T5 OR S1,T4,T3 ANDI T7,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T7,R0 //7F0DB4E0: CB.28: SRA B 8 SLL T9,S2,0x18 SRA T8,T9,0x18 SRA T6,T8,0x1 LUI T8,8009 LW T8,E334 (T8) ANDI T1,S2,0001 ANDI S2,T6,00FF SLTIU T2,S2,0001 SW T2,0048 (SP) SB T1,0118 (SP) ADDU T6,S2,T8 LBU T5,0000 (T6) ANDI T4,S2,00A8 OR T3,T1,T4 SLL T0,T2,0x6 OR T9,T3,T0 OR S1,T5,T9 ANDI T2,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T2,R0 //7F0DB530: CB.29: SRA C 8 SLL T4,S3,0x18 SRA T7,T4,0x18 SRA T3,T7,0x1 LUI T7,8009 LW T7,E334 (T7) ANDI T6,S3,0001 ANDI S3,T3,00FF SLTIU T8,S3,0001 SW T8,0048 (SP) SB T6,0117 (SP) ADDU T3,S3,T7 LBU T0,0000 (T3) ANDI T5,S3,00A8 OR T9,T6,T5 SLL T1,T8,0x6 OR T4,T9,T1 OR S1,T0,T4 ANDI T8,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T8,R0 //7F0DB580: CB.2A: SRA D 8 SLL T5,S4,0x18 SRA T2,T5,0x18 SRA T9,T2,0x1 LUI T2,8009 LW T2,E334 (T2) ANDI T3,S4,0001 ANDI S4,T9,00FF SLTIU T7,S4,0001 SW T7,0048 (SP) SB T3,0116 (SP) ADDU T9,S4,T2 LBU T1,0000 (T9) ANDI T0,S4,00A8 OR T4,T3,T0 SLL T6,T7,0x6 OR T5,T4,T6 OR S1,T1,T5 ANDI T7,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T7,R0 //7F0DB5D0: CB.2B: SRA E 8 SLL T0,S5,0x18 SRA T8,T0,0x18 SRA T4,T8,0x1 LUI T8,8009 LW T8,E334 (T8) ANDI T9,S5,0001 ANDI S5,T4,00FF SLTIU T2,S5,0001 SW T2,0048 (SP) SB T9,0115 (SP) ADDU T4,S5,T8 LBU T6,0000 (T4) ANDI T1,S5,00A8 OR T5,T9,T1 SLL T3,T2,0x6 OR T0,T5,T3 OR S1,T6,T0 ANDI T2,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T2,R0 //7F0DB620: CB.2C: SRA H 8 SLL T1,S6,0x18 SRA T7,T1,0x18 SRA T5,T7,0x1 LUI T7,8009 LW T7,E334 (T7) ANDI T4,S6,0001 ANDI S6,T5,00FF SLTIU T8,S6,0001 SW T8,0048 (SP) SB T4,0114 (SP) ADDU T5,S6,T7 LBU T3,0000 (T5) ANDI T6,S6,00A8 OR T0,T4,T6 SLL T9,T8,0x6 OR T1,T0,T9 OR S1,T3,T1 ANDI T8,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T8,R0 //7F0DB670: CB.2D: SRA L 8 SLL T6,S7,0x18 SRA T2,T6,0x18 SRA T0,T2,0x1 LUI T2,8009 LW T2,E334 (T2) ANDI T5,S7,0001 ANDI S7,T0,00FF SLTIU T7,S7,0001 SW T7,0048 (SP) SB T5,0113 (SP) ADDU T0,S7,T2 LBU T9,0000 (T0) ANDI T3,S7,00A8 OR T1,T5,T3 SLL T4,T7,0x6 OR T6,T1,T4 OR S1,T9,T6 ANDI T7,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T7,R0 //7F0DB6C0: CB.2E: SRA (HL) 15 LW T5,028C (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=p->spectrum.ROMs LHU T8,013C (SP) ADDIU T3,T5,0007 SW T3,028C (SP) ;cycles+=7 F total ADDU T4,T8,T1 LBU T0,0000 (T4) SB T0,0139 (SP) LB T6,0139 (SP) ANDI T8,T0,0001 SB T8,0112 (SP) SRA T7,T6,0x1 LUI T6,8009 LW T6,E334 (T6) ANDI T5,T7,00FF SLTIU T3,T5,0001 ANDI T4,T7,00A8 OR T2,T8,T4 SW T3,0048 (SP) SB T7,0139 (SP) ADDU T1,T5,T6 LBU T8,0000 (T1) SLL T0,T3,0x6 LHU T3,013C (SP) OR T9,T2,T0 OR S1,T8,T9 ANDI T4,S1,00FF SLTI AT,T3,5B00 BNE AT,R0,7F0DB754 OR S1,T4,R0 LUI T0,8009 LW T0,E328 (T0) ;T0=p->spectrum.ROMs OR T2,T7,R0 ADDU T7,T0,T3 BEQ R0,R0,7F0DC598 SB T2,0000 (T7) //7F0DB754: LHU T5,013C (SP) LHU T2,013C (SP) LUI T1,8009 SLTI AT,T5,5800 BNEL AT,R0,7F0DB79C SLTI AT,T2,4000 LW T1,E328 (T1) ;T1=p->spectrum.ROMs LBU T6,0139 (SP) LUI T4,8009 ADDU T8,T1,T5 SB T6,0000 (T8) LHU T0,013C (SP) LW T4,E32C (T4) ADDIU T9,R0,0001 ADDU T3,T4,T0 BEQ R0,R0,7F0DC598 SB T9,A800 (T3) //7F0DB798: SLTI AT,T2,4000 BNE AT,R0,7F0DC598 LUI T1,8009 LW T1,E328 (T1) ;T1=p->spectrum.ROMs LBU T7,0139 (SP) ADDIU T6,R0,0001 ADDU T5,T1,T2 SB T7,0000 (T5) LHU T8,013C (SP) LUI T1,8009 LW T1,E32C (T1) ANDI T4,T8,1800 SRA T0,T4,0x3 ANDI T9,T8,00FF OR T3,T0,T9 ADDU T2,T1,T3 BEQ R0,R0,7F0DC598 SB T6,0000 (T2) //7F0DB7E0: CB.2F: SRA A 8 SLL T5,S0,0x18 SRA T4,T5,0x18 SRA T8,T4,0x1 LUI T4,8009 LW T4,E334 (T4) ANDI T1,S0,0001 ANDI S0,T8,00FF SLTIU T9,S0,0001 SW T9,0048 (SP) SB T1,0111 (SP) ADDU T8,S0,T4 LBU T0,0000 (T8) ANDI T3,S0,00A8 OR T6,T1,T3 SLL T7,T9,0x6 OR T5,T6,T7 OR S1,T0,T5 ANDI T9,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T9,R0 //7F0DB830: CB.30: SLS B 8 SLL T3,S2,0x1 ORI T2,T3,0001 LUI T3,8009 LW T3,E334 (T3) SRA T4,S2,0x7 ANDI S2,T2,00FF SLTIU T7,S2,0001 SW T7,0048 (SP) SB T4,0110 (SP) ADDU T2,S2,T3 LBU T6,0000 (T2) ANDI T8,S2,00A8 OR T0,T4,T8 SLL T9,T7,0x6 OR T1,T0,T9 OR S1,T6,T1 ANDI T7,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T7,R0 //7F0DB87C: CB.31: SLS C 8 SLL T8,S3,0x1 ORI T5,T8,0001 LUI T8,8009 LW T8,E334 (T8) SRA T3,S3,0x7 ANDI S3,T5,00FF SLTIU T9,S3,0001 SW T9,0048 (SP) SB T3,010F (SP) ADDU T5,S3,T8 LBU T0,0000 (T5) ANDI T2,S3,00A8 OR T6,T3,T2 SLL T7,T9,0x6 OR T4,T6,T7 OR S1,T0,T4 ANDI T9,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T9,R0 //7F0DB8C8: CB.32: SLS D 8 SLL T2,S4,0x1 ORI T1,T2,0001 LUI T2,8009 LW T2,E334 (T2) SRA T8,S4,0x7 ANDI S4,T1,00FF SLTIU T7,S4,0001 SW T7,0048 (SP) SB T8,010E (SP) ADDU T1,S4,T2 LBU T6,0000 (T1) ANDI T5,S4,00A8 OR T0,T8,T5 SLL T9,T7,0x6 OR T3,T0,T9 OR S1,T6,T3 ANDI T7,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T7,R0 //7F0DB914: CB.33: SLS E 8 SLL T5,S5,0x1 ORI T4,T5,0001 LUI T5,8009 LW T5,E334 (T5) SRA T2,S5,0x7 ANDI S5,T4,00FF SLTIU T9,S5,0001 SW T9,0048 (SP) SB T2,010D (SP) ADDU T4,S5,T5 LBU T0,0000 (T4) ANDI T1,S5,00A8 OR T6,T2,T1 SLL T7,T9,0x6 OR T8,T6,T7 OR S1,T0,T8 ANDI T9,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T9,R0 //7F0DB960: CB.34: SLS H 8 SLL T1,S6,0x1 ORI T3,T1,0001 LUI T1,8009 LW T1,E334 (T1) SRA T5,S6,0x7 ANDI S6,T3,00FF SLTIU T7,S6,0001 SW T7,0048 (SP) SB T5,010C (SP) ADDU T3,S6,T1 LBU T6,0000 (T3) ANDI T4,S6,00A8 OR T0,T5,T4 SLL T9,T7,0x6 OR T2,T0,T9 OR S1,T6,T2 ANDI T7,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T7,R0 //7F0DB9AC: CB.35: SLS L 8 SLL T4,S7,0x1 ORI T8,T4,0001 LUI T4,8009 LW T4,E334 (T4) SRA T1,S7,0x7 ANDI S7,T8,00FF SLTIU T9,S7,0001 SW T9,0048 (SP) SB T1,010B (SP) ADDU T8,S7,T4 LBU T0,0000 (T8) ANDI T3,S7,00A8 OR T6,T1,T3 SLL T7,T9,0x6 OR T5,T6,T7 OR S1,T0,T5 ANDI T9,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T9,R0 //7F0DB9F8: CB.36: SLS (HL) 15 LW T1,028C (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=p->spectrum.ROMs LHU T2,013C (SP) ADDIU T3,T1,0007 SW T3,028C (SP) ;cycles+=7 F total ADDU T7,T2,T6 LBU T4,0000 (T7) ANDI T8,T4,00FF SLL T5,T8,0x1 ORI T9,T5,0001 LUI T5,8009 LW T5,E334 (T5) ANDI T1,T9,00FF SRA T2,T8,0x7 SB T4,0139 (SP) SLTIU T3,T1,0001 ANDI T7,T9,00A8 OR T4,T2,T7 SW T3,0048 (SP) SB T9,0139 (SP) SB T2,010A (SP) ADDU T6,T1,T5 LBU T2,0000 (T6) SLL T0,T3,0x6 LHU T3,013C (SP) OR T8,T4,T0 OR S1,T2,T8 ANDI T7,S1,00FF SLTI AT,T3,5B00 BNE AT,R0,7F0DBA90 OR S1,T7,R0 LUI T0,8009 LW T0,E328 (T0) ;T0=p->spectrum.ROMs OR T4,T9,R0 ADDU T9,T0,T3 BEQ R0,R0,7F0DC598 SB T4,0000 (T9) //7F0DBA90: LHU T1,013C (SP) LHU T4,013C (SP) LUI T6,8009 SLTI AT,T1,5800 BNEL AT,R0,7F0DBAD8 SLTI AT,T4,4000 LW T6,E328 (T6) ;T6=p->spectrum.ROMs LBU T5,0139 (SP) LUI T7,8009 ADDU T2,T6,T1 SB T5,0000 (T2) LHU T0,013C (SP) LW T7,E32C (T7) ADDIU T8,R0,0001 ADDU T3,T7,T0 BEQ R0,R0,7F0DC598 SB T8,A800 (T3) //7F0DBAD4: SLTI AT,T4,4000 BNE AT,R0,7F0DC598 LUI T6,8009 LW T6,E328 (T6) ;T6=p->spectrum.ROMs LBU T9,0139 (SP) ADDIU T5,R0,0001 ADDU T1,T6,T4 SB T9,0000 (T1) LHU T2,013C (SP) LUI T6,8009 LW T6,E32C (T6) ANDI T7,T2,1800 SRA T0,T7,0x3 ANDI T8,T2,00FF OR T3,T0,T8 ADDU T4,T6,T3 BEQ R0,R0,7F0DC598 SB T5,0000 (T4) //7F0DBB1C: CB.37: SLS A 8 SLL T1,S0,0x1 ORI T7,T1,0001 LUI T1,8009 LW T1,E334 (T1) SRA T8,S0,0x7 ANDI S0,T7,00FF SLTIU T0,S0,0001 SW T0,0048 (SP) SB T8,0109 (SP) ADDU T7,S0,T1 LBU T2,0000 (T7) ANDI T6,S0,00A8 OR T3,T8,T6 SLL T4,T0,0x6 OR T9,T3,T4 OR S1,T2,T9 ANDI T0,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T0,R0 //7F0DBB68: CB.38: SRL B 8 LUI T8,8009 LW T8,E334 (T8) ANDI T4,S2,0001 SRL T6,S2,0x1 ANDI S2,T6,00FF SLTIU T3,S2,0001 SW T3,0048 (SP) SB T4,0108 (SP) ADDU T6,S2,T8 LBU T5,0000 (T6) ANDI T1,S2,00A8 OR T7,T4,T1 SLL T9,T3,0x6 OR T0,T7,T9 OR S1,T5,T0 ANDI T3,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T3,R0 //7F0DBBB0: CB.39: SRL C 8 LUI T4,8009 LW T4,E334 (T4) ANDI T9,S3,0001 SRL T1,S3,0x1 ANDI S3,T1,00FF SLTIU T7,S3,0001 SW T7,0048 (SP) SB T9,0107 (SP) ADDU T1,S3,T4 LBU T2,0000 (T1) ANDI T8,S3,00A8 OR T6,T9,T8 SLL T0,T7,0x6 OR T3,T6,T0 OR S1,T2,T3 ANDI T7,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T7,R0 //7F0DBBF8: CB.3A: SRL D 8 LUI T9,8009 LW T9,E334 (T9) ANDI T0,S4,0001 SRL T8,S4,0x1 ANDI S4,T8,00FF SLTIU T6,S4,0001 SW T6,0048 (SP) SB T0,0106 (SP) ADDU T8,S4,T9 LBU T5,0000 (T8) ANDI T4,S4,00A8 OR T1,T0,T4 SLL T3,T6,0x6 OR T7,T1,T3 OR S1,T5,T7 ANDI T6,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T6,R0 //7F0DBC40: CB.3B: SRL E 8 LUI T0,8009 LW T0,E334 (T0) ANDI T3,S5,0001 SRL T4,S5,0x1 ANDI S5,T4,00FF SLTIU T1,S5,0001 SW T1,0048 (SP) SB T3,0105 (SP) ADDU T4,S5,T0 LBU T2,0000 (T4) ANDI T9,S5,00A8 OR T8,T3,T9 SLL T7,T1,0x6 OR T6,T8,T7 OR S1,T2,T6 ANDI T1,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T1,R0 //7F0DBC88: CB.3C: SRL H 8 LUI T3,8009 LW T3,E334 (T3) ANDI T7,S6,0001 SRL T9,S6,0x1 ANDI S6,T9,00FF SLTIU T8,S6,0001 SW T8,0048 (SP) SB T7,0104 (SP) ADDU T9,S6,T3 LBU T5,0000 (T9) ANDI T0,S6,00A8 OR T4,T7,T0 SLL T6,T8,0x6 OR T1,T4,T6 OR S1,T5,T1 ANDI T8,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T8,R0 //7F0DBCD0: CB.3D: SRL L 8 LUI T7,8009 LW T7,E334 (T7) ANDI T6,S7,0001 SRL T0,S7,0x1 ANDI S7,T0,00FF SLTIU T4,S7,0001 SW T4,0048 (SP) SB T6,0103 (SP) ADDU T0,S7,T7 LBU T2,0000 (T0) ANDI T3,S7,00A8 OR T9,T6,T3 SLL T1,T4,0x6 OR T8,T9,T1 OR S1,T2,T8 ANDI T4,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T4,R0 //7F0DBD18: CB.3E: SRL (HL) 15 LW T6,028C (SP) LUI T9,8009 LW T9,E328 (T9) ;T9=p->spectrum.ROMs LHU T5,013C (SP) ADDIU T3,T6,0007 SW T3,028C (SP) ;cycles+=7 F total ADDU T1,T5,T9 LBU T7,0000 (T1) ANDI T0,T7,00FF ANDI T3,T0,0001 SRL T8,T0,0x1 LUI T0,8009 LW T0,E334 (T0) ANDI T4,T8,00FF SB T7,0139 (SP) SLTIU T6,T4,0001 ANDI T9,T8,00A8 OR T1,T3,T9 SW T6,0048 (SP) SB T8,0139 (SP) SB T3,0102 (SP) ADDU T5,T4,T0 LBU T3,0000 (T5) SLL T7,T6,0x6 LHU T6,013C (SP) OR T2,T1,T7 OR S1,T3,T2 ANDI T9,S1,00FF SLTI AT,T6,5B00 BNE AT,R0,7F0DBDAC OR S1,T9,R0 LUI T7,8009 LW T7,E328 (T7) ;T7=p->spectrum.ROMs OR T1,T8,R0 ADDU T8,T7,T6 BEQ R0,R0,7F0DC598 SB T1,0000 (T8) //7F0DBDAC: LHU T4,013C (SP) LHU T1,013C (SP) LUI T5,8009 SLTI AT,T4,5800 BNEL AT,R0,7F0DBDF4 SLTI AT,T1,4000 LW T5,E328 (T5) ;T5=p->spectrum.ROMs LBU T0,0139 (SP) LUI T9,8009 ADDU T3,T5,T4 SB T0,0000 (T3) LHU T7,013C (SP) LW T9,E32C (T9) ADDIU T2,R0,0001 ADDU T6,T9,T7 BEQ R0,R0,7F0DC598 SB T2,A800 (T6) //7F0DBDF0: SLTI AT,T1,4000 BNE AT,R0,7F0DC598 LUI T5,8009 LW T5,E328 (T5) ;T5=p->spectrum.ROMs LBU T8,0139 (SP) ADDIU T0,R0,0001 ADDU T4,T5,T1 SB T8,0000 (T4) LHU T3,013C (SP) LUI T5,8009 LW T5,E32C (T5) ANDI T9,T3,1800 SRA T7,T9,0x3 ANDI T2,T3,00FF OR T6,T7,T2 ADDU T1,T5,T6 BEQ R0,R0,7F0DC598 SB T0,0000 (T1) //7F0DBE38: CB.3F: SRL A 8 LUI T8,8009 LW T8,E334 (T8) ANDI T7,S0,0001 SRL T4,S0,0x1 ANDI S0,T4,00FF SLTIU T3,S0,0001 SW T3,0048 (SP) SB T7,0101 (SP) ADDU T4,S0,T8 LBU T9,0000 (T4) ANDI T2,S0,00A8 OR T5,T7,T2 SLL T0,T3,0x6 OR T1,T5,T0 OR S1,T9,T1 ANDI T3,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T3,R0 //7F0DBE80: CB.C0-FF: SET cmds SRA T2,T7,0x3 ANDI T5,T7,00C7 ;T5= CB.cmd & C7: SET(RES|BIT) | register ANDI T6,T2,0007 ;T6=(CB.cmd>>3) & 7: BITCOUNT SLTI AT,T5,0088 SB T6,0100 (SP) ;SP+100= BIT BNE AT,R0,7F0DBEC0 ;branch if a BIT cmd (40-7F) SW T5,0048 (SP) ;SP+48= CMD | register ADDIU T0,T5,FF40 SLTIU AT,T0,0008 BEQ AT,R0,7F0DC598 ;continue if unknown SLL T0,T0,0x2 LUI AT,8006 ADDU AT,AT,T0 LW T0,C62C (AT) ;T0=8005C62C+offset: p->handler for SET cmds JR T0 NOP //7F0DBEC0: CB,80-BF: RES cmds LW T8,0048 (SP) LW T9,0048 (SP) SLTI AT,T8,0048 BNE AT,R0,7F0DBEF8 ADDIU T1,T9,FFC0 ADDIU T4,T8,FF80 SLTIU AT,T4,0008 BEQ AT,R0,7F0DC598 SLL T4,T4,0x2 LUI AT,8006 ADDU AT,AT,T4 LW T4,C64C (AT) ;T4=8005C64C+offset: p->handler JR T4 NOP //7F0DBEF8: CB.40-7F: BIT cmds SLTIU AT,T1,0008 BEQ AT,R0,7F0DC598 SLL T1,T1,0x2 LUI AT,8006 ADDU AT,AT,T1 LW T1,C66C (AT) ;T1=8005C66C+offset: p->handler JR T1 NOP //7F0DBF18: BIT x,B 8 LBU T3,0100 (SP) ADDIU T2,R0,0001 ADDIU T0,R0,0054 SLLV T6,T2,T3 AND T7,S2,T6 BEQ T7,R0,7F0DBF3C ADDIU T5,R0,0010 BEQ R0,R0,7F0DBF40 SW T5,0044 (SP) //7F0DBF3C: SW T0,0044 (SP) LW T8,0044 (SP) ANDI T4,S1,0001 ANDI T1,S2,0028 OR T9,T8,T4 OR S1,T9,T1 ANDI T2,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T2,R0 //7F0DBF60: BIT x,C 8 LBU T3,0100 (SP) ADDIU T6,R0,0001 ADDIU T8,R0,0054 SLLV T7,T6,T3 AND T5,S3,T7 BEQ T5,R0,7F0DBF84 ADDIU T0,R0,0010 BEQ R0,R0,7F0DBF88 SW T0,0048 (SP) //7F0DBF84: SW T8,0048 (SP) LW T4,0048 (SP) ANDI T9,S1,0001 ANDI T2,S3,0028 OR T1,T4,T9 OR S1,T1,T2 ANDI T6,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T6,R0 //7F0DBFA8: BIT x,D 8 LBU T3,0100 (SP) ADDIU T7,R0,0001 ADDIU T4,R0,0054 SLLV T5,T7,T3 AND T0,S4,T5 BEQ T0,R0,7F0DBFCC ADDIU T8,R0,0010 BEQ R0,R0,7F0DBFD0 SW T8,0048 (SP) //7F0DBFCC: SW T4,0048 (SP) LW T9,0048 (SP) ANDI T1,S1,0001 ANDI T6,S4,0028 OR T2,T9,T1 OR S1,T2,T6 ANDI T7,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T7,R0 //7F0DBFF0: BIT x,E 8 LBU T3,0100 (SP) ;T3=BIT ADDIU T5,R0,0001 ADDIU T9,R0,0054 SLLV T0,T5,T3 ;T0=1<SP+48 if bit set //7F0DC014: bit not set sets ZERO, SIGN SW T9,0048 (SP) ;54->SP+48 if bit set LW T1,0048 (SP) ANDI T2,S1,0001 ;T2= retained flags ANDI T7,S5,0028 OR T6,T1,T2 OR S1,T6,T7 ANDI T5,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T5,R0 //7F0DC038: BIT x,H 8 LBU T3,0100 (SP) ADDIU T0,R0,0001 ADDIU T1,R0,0054 SLLV T8,T0,T3 AND T4,S6,T8 BEQ T4,R0,7F0DC05C ADDIU T9,R0,0010 BEQ R0,R0,7F0DC060 SW T9,0048 (SP) //7F0DC05C: SW T1,0048 (SP) LW T2,0048 (SP) ANDI T6,S1,0001 ANDI T5,S6,0028 OR T7,T2,T6 OR S1,T7,T5 ANDI T0,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T0,R0 //7F0DC080: BIT x,L 8 LBU T3,0100 (SP) ADDIU T8,R0,0001 ADDIU T2,R0,0054 SLLV T4,T8,T3 AND T9,S7,T4 BEQ T9,R0,7F0DC0A4 ADDIU T1,R0,0010 BEQ R0,R0,7F0DC0A8 SW T1,0048 (SP) //7F0DC0A4: SW T2,0048 (SP) LW T6,0048 (SP) ANDI T7,S1,0001 ANDI T0,S7,0028 OR T5,T6,T7 OR S1,T5,T0 ANDI T8,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T8,R0 //7F0DC0C8: BIT x,(HL) 15 LW T3,028C (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=p->spectrum.ROMs LHU T9,013C (SP) ADDIU T4,T3,0004 LBU T7,0100 (SP) SW T4,028C (SP) ;cycles+=4 ADDU T2,T9,T1 LBU T6,0000 (T2) ADDIU T5,R0,0001 SLLV T0,T5,T7 AND T8,T6,T0 BEQ T8,R0,7F0DC10C SB T6,0139 (SP) ADDIU T3,R0,0010 BEQ R0,R0,7F0DC114 SW T3,0048 (SP) //7F0DC10C: ADDIU T4,R0,0054 SW T4,0048 (SP) //7F0DC114: LW T9,0048 (SP) LBU T5,0139 (SP) LHU T0,013C (SP) ANDI T1,S1,0001 OR T2,T9,T1 ANDI T7,T5,0028 OR S1,T2,T7 ANDI T6,S1,00FF SLTI AT,T0,5B00 BNE AT,R0,7F0DC158 OR S1,T6,R0 LUI T3,8009 LW T3,E328 (T3) ;T3=p->spectrum.ROMs LBU T8,0139 (SP) ADDU T4,T3,T0 BEQ R0,R0,7F0DC598 SB T8,0000 (T4) //7F0DC158: LHU T9,013C (SP) LHU T8,013C (SP) LUI T5,8009 SLTI AT,T9,5800 BNEL AT,R0,7F0DC1A0 SLTI AT,T8,4000 LW T5,E328 (T5) ;T5=p->spectrum.ROMs LBU T1,0139 (SP) LUI T6,8009 ADDU T2,T5,T9 SB T1,0000 (T2) LHU T3,013C (SP) LW T6,E32C (T6) ADDIU T7,R0,0001 ADDU T0,T6,T3 BEQ R0,R0,7F0DC598 SB T7,A800 (T0) //7F0DC19C: SLTI AT,T8,4000 BNE AT,R0,7F0DC598 LUI T5,8009 LW T5,E328 (T5) ;T5=p->spectrum.ROMs LBU T4,0139 (SP) ADDIU T1,R0,0001 ADDU T9,T5,T8 SB T4,0000 (T9) LHU T2,013C (SP) LUI T5,8009 LW T5,E32C (T5) ANDI T6,T2,1800 SRA T3,T6,0x3 ANDI T7,T2,00FF OR T0,T3,T7 ADDU T8,T5,T0 BEQ R0,R0,7F0DC598 SB T1,0000 (T8) //7F0DC1E4: BIT x,A 8 LBU T4,0100 (SP) ADDIU T9,R0,0001 ADDIU T7,R0,0054 SLLV T6,T9,T4 AND T2,S0,T6 BEQ T2,R0,7F0DC208 ADDIU T3,R0,0010 BEQ R0,R0,7F0DC20C SW T3,0048 (SP) //7F0DC208: SW T7,0048 (SP) LW T5,0048 (SP) ANDI T0,S1,0001 ANDI T8,S0,0028 OR T1,T5,T0 OR S1,T1,T8 ANDI T9,S1,00FF BEQ R0,R0,7F0DC598 OR S1,T9,R0 //7F0DC22C: LBU T4,0100 (SP) ADDIU T6,R0,0001 SLLV T2,T6,T4 NOR T3,T2,R0 AND S2,S2,T3 ANDI T7,S2,00FF BEQ R0,R0,7F0DC598 OR S2,T7,R0 //7F0DC24C: LBU T5,0100 (SP) ADDIU T0,R0,0001 SLLV T1,T0,T5 NOR T8,T1,R0 AND S3,S3,T8 ANDI T9,S3,00FF BEQ R0,R0,7F0DC598 OR S3,T9,R0 //7F0DC26C: LBU T6,0100 (SP) ADDIU T4,R0,0001 SLLV T2,T4,T6 NOR T3,T2,R0 AND S4,S4,T3 ANDI T7,S4,00FF BEQ R0,R0,7F0DC598 OR S4,T7,R0 //7F0DC28C: LBU T0,0100 (SP) ADDIU T5,R0,0001 SLLV T1,T5,T0 NOR T8,T1,R0 AND S5,S5,T8 ANDI T9,S5,00FF BEQ R0,R0,7F0DC598 OR S5,T9,R0 //7F0DC2AC: LBU T4,0100 (SP) ADDIU T6,R0,0001 SLLV T2,T6,T4 NOR T3,T2,R0 AND S6,S6,T3 ANDI T7,S6,00FF BEQ R0,R0,7F0DC598 OR S6,T7,R0 //7F0DC2CC: LBU T5,0100 (SP) ADDIU T0,R0,0001 SLLV T1,T0,T5 NOR T8,T1,R0 AND S7,S7,T8 ANDI T9,S7,00FF BEQ R0,R0,7F0DC598 OR S7,T9,R0 //7F0DC2EC: LW T6,028C (SP) LUI T3,8009 LW T3,E328 (T3) ;T3=p->spectrum.ROMs LHU T2,013C (SP) ADDIU T4,T6,0004 LBU T5,0100 (SP) SW T4,028C (SP) ;cycles+=4 ADDU T7,T2,T3 LBU T0,0000 (T7) LHU T4,013C (SP) ADDIU T1,R0,0001 SLLV T8,T1,T5 NOR T9,T8,R0 AND T6,T0,T9 SB T0,0139 (SP) SLTI AT,T4,5B00 BNE AT,R0,7F0DC348 SB T6,0139 (SP) LUI T3,8009 LW T3,E328 (T3) ;T3=p->spectrum.ROMs ADDU T7,T3,T4 BEQ R0,R0,7F0DC598 SB T6,0000 (T7) //7F0DC348: LHU T1,013C (SP) LHU T2,013C (SP) LUI T8,8009 SLTI AT,T1,5800 BNEL AT,R0,7F0DC390 SLTI AT,T2,4000 LW T8,E328 (T8) ;T8=p->spectrum.ROMs LBU T5,0139 (SP) LUI T6,8009 ADDU T0,T8,T1 SB T5,0000 (T0) LHU T3,013C (SP) LW T6,E32C (T6) ADDIU T9,R0,0001 ADDU T4,T6,T3 BEQ R0,R0,7F0DC598 SB T9,A800 (T4) //7F0DC38C: SLTI AT,T2,4000 BNE AT,R0,7F0DC598 LUI T8,8009 LW T8,E328 (T8) ;T8=p->spectrum.ROMs LBU T7,0139 (SP) ADDIU T5,R0,0001 ADDU T1,T8,T2 SB T7,0000 (T1) LHU T0,013C (SP) LUI T8,8009 LW T8,E32C (T8) ANDI T6,T0,1800 SRA T3,T6,0x3 ANDI T9,T0,00FF OR T4,T3,T9 ADDU T2,T8,T4 BEQ R0,R0,7F0DC598 SB T5,0000 (T2) //7F0DC3D4: LBU T7,0100 (SP) ADDIU T1,R0,0001 SLLV T6,T1,T7 NOR T0,T6,R0 AND S0,S0,T0 ANDI T3,S0,00FF BEQ R0,R0,7F0DC598 OR S0,T3,R0 //7F0DC3F4: LBU T9,0100 (SP) ADDIU T8,R0,0001 SLLV T4,T8,T9 OR S2,S2,T4 ANDI T5,S2,00FF BEQ R0,R0,7F0DC598 OR S2,T5,R0 //7F0DC410: LBU T2,0100 (SP) ADDIU T1,R0,0001 SLLV T7,T1,T2 OR S3,S3,T7 ANDI T6,S3,00FF BEQ R0,R0,7F0DC598 OR S3,T6,R0 //7F0DC42C: LBU T0,0100 (SP) ADDIU T3,R0,0001 SLLV T8,T3,T0 OR S4,S4,T8 ANDI T9,S4,00FF BEQ R0,R0,7F0DC598 OR S4,T9,R0 //7F0DC448: LBU T4,0100 (SP) ADDIU T5,R0,0001 SLLV T1,T5,T4 OR S5,S5,T1 ANDI T2,S5,00FF BEQ R0,R0,7F0DC598 OR S5,T2,R0 //7F0DC464: LBU T7,0100 (SP) ADDIU T6,R0,0001 SLLV T3,T6,T7 OR S6,S6,T3 ANDI T0,S6,00FF BEQ R0,R0,7F0DC598 OR S6,T0,R0 //7F0DC480: LBU T8,0100 (SP) ADDIU T9,R0,0001 SLLV T5,T9,T8 OR S7,S7,T5 ANDI T4,S7,00FF BEQ R0,R0,7F0DC598 OR S7,T4,R0 //7F0DC49C: LW T1,028C (SP) LUI T7,8009 LW T7,E328 (T7) ;T7=p->spectrum.ROMs LHU T6,013C (SP) ADDIU T2,T1,0004 SW T2,028C (SP) ;cycles+=4 ADDU T3,T6,T7 LBU T0,0000 (T3) LBU T9,0100 (SP) LHU T1,013C (SP) ADDIU T8,R0,0001 SLLV T5,T8,T9 OR T4,T0,T5 SB T0,0139 (SP) SLTI AT,T1,5B00 BNE AT,R0,7F0DC4F4 SB T4,0139 (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=p->spectrum.ROMs ADDU T7,T6,T1 BEQ R0,R0,7F0DC598 SB T4,0000 (T7) //7F0DC4F4: LHU T3,013C (SP) LHU T2,013C (SP) LUI T9,8009 SLTI AT,T3,5800 BNEL AT,R0,7F0DC53C SLTI AT,T2,4000 LW T9,E328 (T9) ;T9=p->spectrum.ROMs LBU T8,0139 (SP) LUI T4,8009 ADDU T0,T9,T3 SB T8,0000 (T0) LHU T6,013C (SP) LW T4,E32C (T4) ADDIU T5,R0,0001 ADDU T1,T4,T6 BEQ R0,R0,7F0DC598 SB T5,A800 (T1) //7F0DC538: SLTI AT,T2,4000 BNE AT,R0,7F0DC598 LUI T9,8009 LW T9,E328 (T9) ;T9=p->spectrum.ROMs LBU T7,0139 (SP) ADDIU T8,R0,0001 ADDU T3,T9,T2 SB T7,0000 (T3) LHU T0,013C (SP) LUI T9,8009 LW T9,E32C (T9) ANDI T4,T0,1800 SRA T6,T4,0x3 ANDI T5,T0,00FF OR T1,T6,T5 ADDU T2,T9,T1 BEQ R0,R0,7F0DC598 SB T8,0000 (T2) //7F0DC580: LBU T7,0100 (SP) ADDIU T3,R0,0001 SLLV T4,T3,T7 OR S0,S0,T4 ANDI T0,S0,00FF OR S0,T0,R0 //7F0DC598: LBU T6,0287 (SP) LBU T5,013A (SP) BEQ T6,R0,7F0E27FC SLTIU AT,T5,0008 BEQ AT,R0,7F0E27FC SLL T5,T5,0x2 LUI AT,8006 ADDU AT,AT,T5 LW T5,C68C (AT) ;T5=8005C68C+offset: p->handler JR T5 NOP //7F0DC5C4: BEQ R0,R0,7F0E27FC LBU S2,0139 (SP) ;spec.B = SP+139 //7F0DC5CC: BEQ R0,R0,7F0E27FC LBU S3,0139 (SP) ;spec.C = SP+139 //7F0DC5D4: BEQ R0,R0,7F0E27FC LBU S4,0139 (SP) ;spec.D = SP+139 //7F0DC5DC: BEQ R0,R0,7F0E27FC LBU S5,0139 (SP) ;spec.E = SP+139 //7F0DC5E4: BEQ R0,R0,7F0E27FC LBU S6,0139 (SP) ;spec.H = SP+139 //7F0DC5EC: BEQ R0,R0,7F0E27FC LBU S7,0139 (SP) ;spec.L = SP+139 //7F0DC5F4: BEQ R0,R0,7F0E27FC LBU S0,0139 (SP) ;spec.A = SP+139 //7F0DC5FC: CC: CALL Z,nn 17(10) LW T9,028C (SP) ANDI T8,S1,0040 ADDIU T1,T9,000A BEQ T8,R0,7F0DC7D4 SW T1,028C (SP) ;cycles+=A LHU T7,0292 (SP) ADDIU T3,T1,0007 SW T3,028C (SP) ;cycles+=7 11 total ADDIU T4,T7,FFFE ANDI T0,T4,FFFF SLTI AT,T0,5B00 BNE AT,R0,7F0DC64C SH T4,0292 (SP) LUI T9,8009 LW T9,E328 (T9) ;T9=p->spectrum.ROMs LHU T6,0298 (SP) ADDU T1,T9,T0 ADDIU T5,T6,0002 BEQ R0,R0,7F0DC6D8 SB T5,0000 (T1) ;spec.PC+=2 //7F0DC64C: LHU T8,0292 (SP) LHU T1,0292 (SP) LHU T2,0298 (SP) SLTI AT,T8,5800 BNE AT,R0,7F0DC690 LUI T7,8009 LW T7,E328 (T7) ;T7=p->spectrum.ROMs ADDIU T3,T2,0002 LUI T9,8009 ADDU T4,T7,T8 SB T3,0000 (T4) ;spec.PC+=2 LHU T0,0292 (SP) LW T9,E32C (T9) ADDIU T6,R0,0001 ADDU T5,T9,T0 BEQ R0,R0,7F0DC6D8 SB T6,A800 (T5) //7F0DC690: SLTI AT,T1,4000 BNE AT,R0,7F0DC6D8 LHU T2,0298 (SP) LUI T8,8009 LW T8,E328 (T8) ;T8=p->spectrum.ROMs ADDIU T7,T2,0002 ADDIU T4,R0,0001 ADDU T3,T8,T1 SB T7,0000 (T3) ;spec.PC+=2 LHU T9,0292 (SP) LUI T8,8009 LW T8,E32C (T8) ANDI T0,T9,1800 SRA T6,T0,0x3 ANDI T5,T9,00FF OR T2,T6,T5 ADDU T1,T8,T2 SB T4,0000 (T1) //7F0DC6D8: LHU T7,0292 (SP) LHU T2,0292 (SP) LHU T0,0298 (SP) ADDIU T3,T7,0001 SLTI AT,T3,5B00 BNE AT,R0,7F0DC710 ADDIU T4,T2,0001 LUI T5,8009 LW T5,E328 (T5) ;T5=p->spectrum.ROMs ADDIU T9,T0,0002 ;spec.PC+2 SRA T6,T9,0x8 ADDU T8,T5,T7 BEQ R0,R0,7F0DC7A8 SB T6,0001 (T8) //7F0DC710: SLTI AT,T4,5800 BNE AT,R0,7F0DC754 LHU T1,0292 (SP) LHU T1,0298 (SP) LUI T9,8009 LW T9,E328 (T9) ;T9=p->spectrum.ROMs ADDIU T3,T1,0002 ;spec.PC+2 SRA T0,T3,0x8 ADDU T5,T9,T2 SB T0,0001 (T5) LUI T6,8009 LW T6,E32C (T6) LHU T8,0292 (SP) ADDIU T7,R0,0001 ADDU T4,T6,T8 BEQ R0,R0,7F0DC7A8 SB T7,A801 (T4) //7F0DC754: ADDIU T3,T1,0001 SLTI AT,T3,4000 BNE AT,R0,7F0DC7A8 LHU T9,0298 (SP) LUI T5,8009 LW T5,E328 (T5) ;T5=p->spectrum.ROMs ADDIU T2,T9,0002 ;spec.PC+2 SRA T0,T2,0x8 ADDU T6,T5,T1 SB T0,0001 (T6) LHU T7,0292 (SP) LUI T1,8009 LW T1,E32C (T1) ADDIU T4,T7,0001 ANDI T3,T4,1800 SRA T9,T3,0x3 ANDI T2,T4,00FF OR T5,T9,T2 ADDIU T8,R0,0001 ADDU T0,T1,T5 SB T8,0000 (T0) //7F0DC7A8: LUI T7,8009 LW T7,E328 (T7) ;T7=p->spectrum.ROMs LHU T6,0298 (SP) ADDU T9,T7,T6 LBU T2,0001 (T9) ADDU T3,T6,T7 LBU T4,0000 (T3) ;T5=ROM+PC[1:0] SLL T1,T2,0x8 OR T5,T4,T1 BEQ R0,R0,7F0E27FC SH T5,0298 (SP) ;nn->spec.PC //7F0DC7D4: LHU T8,0298 (SP) ADDIU T0,T8,0002 BEQ R0,R0,7F0E27FC SH T0,0298 (SP) ;spec.PC+=2 //7F0DC7E4: CD: CALL nn 17 LW T3,028C (SP) LHU T2,0292 (SP); T2=spec.SP LHU T5,0298 (SP) ADDIU T7,T3,000A ADDIU T4,T2,FFFE ANDI T1,T4,FFFF SW T7,028C (SP) ;cycles+=A SLTI AT,T1,5B00 ADDIU T9,T7,0007 SW T9,028C (SP) ;cycles+=7 11 total BNE AT,R0,7F0DC82C SH T4,0292 (SP) ;spec.SP-=2 LUI T0,8009 LW T0,E328 (T0) ;T0=p->spectrum.ROMs ADDIU T8,T5,0002 ;PC+2 ADDU T3,T0,T1 BEQ R0,R0,7F0DC8B8 SB T8,0000 (T3) ;PC+2 -> ROM+SP-1 //7F0DC82C: LHU T7,0292 (SP) LHU T3,0292 (SP) LHU T6,0298 (SP) SLTI AT,T7,5800 BNE AT,R0,7F0DC870 LUI T2,8009 LW T2,E328 (T2) ;T2=p->spectrum.ROMs ADDIU T9,T6,0002 LUI T0,8009 ADDU T4,T2,T7 SB T9,0000 (T4) LHU T1,0292 (SP) LW T0,E32C (T0) ADDIU T5,R0,0001 ADDU T8,T0,T1 BEQ R0,R0,7F0DC8B8 SB T5,A800 (T8) //7F0DC870: SLTI AT,T3,4000 BNE AT,R0,7F0DC8B8 LHU T6,0298 (SP) LUI T7,8009 LW T7,E328 (T7) ;T7=p->spectrum.ROMs ADDIU T2,T6,0002 ADDIU T4,R0,0001 ADDU T9,T7,T3 SB T2,0000 (T9) LHU T0,0292 (SP) LUI T7,8009 LW T7,E32C (T7) ANDI T1,T0,1800 SRA T5,T1,0x3 ANDI T8,T0,00FF OR T6,T5,T8 ADDU T3,T7,T6 SB T4,0000 (T3) //7F0DC8B8: LHU T2,0292 (SP) ;spec.SP LHU T6,0292 (SP) LHU T1,0298 (SP) ADDIU T9,T2,0001 SLTI AT,T9,5B00 BNE AT,R0,7F0DC8F0 ADDIU T4,T6,0001 LUI T8,8009 LW T8,E328 (T8) ;T8=p->spectrum.ROMs ADDIU T0,T1,0002 ;T0= PC+2 SRA T5,T0,0x8 ADDU T7,T8,T2 BEQ R0,R0,7F0DC988 SB T5,0001 (T7) //7F0DC8F0: SLTI AT,T4,5800 BNE AT,R0,7F0DC934 LHU T3,0292 (SP) LHU T3,0298 (SP) LUI T0,8009 LW T0,E328 (T0) ;T0=p->spectrum.ROMs ADDIU T9,T3,0002 SRA T1,T9,0x8 ADDU T8,T0,T6 SB T1,0001 (T8) LUI T5,8009 LW T5,E32C (T5) LHU T7,0292 (SP) ADDIU T2,R0,0001 ADDU T4,T5,T7 BEQ R0,R0,7F0DC988 SB T2,A801 (T4) //7F0DC934: ADDIU T9,T3,0001 SLTI AT,T9,4000 BNE AT,R0,7F0DC988 LHU T0,0298 (SP) LUI T8,8009 LW T8,E328 (T8) ;T8=p->spectrum.ROMs ADDIU T6,T0,0002 SRA T1,T6,0x8 ADDU T5,T8,T3 SB T1,0001 (T5) LHU T2,0292 (SP) LUI T3,8009 LW T3,E32C (T3) ADDIU T4,T2,0001 ANDI T9,T4,1800 SRA T0,T9,0x3 ANDI T6,T4,00FF OR T8,T0,T6 ADDIU T7,R0,0001 ADDU T1,T3,T8 SB T7,0000 (T1) //7F0DC988: LUI T2,8009 LW T2,E328 (T2) ;T2=p->spectrum.ROMs LHU T5,0298 (SP) ADDU T0,T2,T5 LBU T6,0001 (T0) ADDU T9,T5,T2 LBU T4,0000 (T9) ;T8=ROM+PC[1:0] SLL T3,T6,0x8 OR T8,T4,T3 BEQ R0,R0,7F0E27FC SH T8,0298 (SP) ;PC=nn //7F0DC9B4: CE: ADC A,n 7 LW T7,028C (SP) LUI T2,8009 LW T2,E328 (T2) ;T2=p->spectrum.ROMs LHU T9,0298 (SP) ADDIU T1,T7,0007 SW T1,028C (SP) ;cycles+=7 ADDU T5,T9,T2 LBU T0,0000 (T5) ANDI T4,S1,0001 ANDI T8,S1,0001 ADDU T6,S0,T0 ADDU T3,T6,T4 ANDI T6,S0,000F ANDI T5,T0,000F ADDU T4,T6,T5 ANDI T7,T3,00A8 SRA T9,T3,0x8 OR T2,T7,T9 ADDU T1,T4,T8 ADDIU AT,R0,000F SLT T7,AT,T1 SLL T9,T7,0x4 OR T1,T3,R0 NOR T5,S0,R0 XOR T7,T1,S0 SH T3,00FE (SP) XOR T4,T5,T0 LBU S0,00FF (SP) ANDI T8,T4,0080 OR T6,T2,T9 AND T2,T8,T7 SB T0,00FD (SP) LHU T8,0298 (SP) SRA T9,T2,0x5 SLTIU T0,S0,0001 SLL T3,T0,0x6 OR T5,T6,T9 OR S1,T5,T3 ANDI T1,S1,00FF ADDIU T7,T8,0001 OR S1,T1,R0 SW T0,0048 (SP) BEQ R0,R0,7F0E27FC SH T7,0298 (SP) //7F0DCA64: CF: RST 08 11 LHU T9,0292 (SP) LW T2,028C (SP) LUI T3,8009 ADDIU T5,T9,FFFE ANDI T0,T5,FFFF SLTI AT,T0,5B00 ADDIU T6,T2,000B SW T6,028C (SP) ;cycles+=B BNE AT,R0,7F0DCAA0 SH T5,0292 (SP) LW T3,E328 (T3) ;T3=p->spectrum.ROMs LHU T4,0298 (SP) ADDU T1,T3,T0 BEQ R0,R0,7F0DCB28 SB T4,0000 (T1) //7F0DCAA0: LHU T8,0292 (SP) LHU T4,0292 (SP) LUI T2,8009 SLTI AT,T8,5800 BNEL AT,R0,7F0DCAE8 SLTI AT,T4,4000 LW T2,E328 (T2) ;T2=p->spectrum.ROMs LHU T7,0298 (SP) LUI T5,8009 ADDU T6,T2,T8 SB T7,0000 (T6) LHU T3,0292 (SP) LW T5,E32C (T5) ADDIU T9,R0,0001 ADDU T0,T5,T3 BEQ R0,R0,7F0DCB28 SB T9,A800 (T0) //7F0DCAE4: SLTI AT,T4,4000 BNE AT,R0,7F0DCB28 LUI T2,8009 LW T2,E328 (T2) ;T2=p->spectrum.ROMs LHU T1,0298 (SP) ADDIU T7,R0,0001 ADDU T8,T2,T4 SB T1,0000 (T8) LHU T6,0292 (SP) LUI T2,8009 LW T2,E32C (T2) ANDI T5,T6,1800 SRA T3,T5,0x3 ANDI T9,T6,00FF OR T0,T3,T9 ADDU T4,T2,T0 SB T7,0000 (T4) LHU T1,0292 (SP) LHU T2,0292 (SP) LHU T5,0298 (SP) ADDIU T8,T1,0001 SLTI AT,T8,5B00 BNE AT,R0,7F0DCB5C ADDIU T0,T2,0001 LUI T3,8009 LW T3,E328 (T3) ;T3=p->spectrum.ROMs SRA T6,T5,0x8 ADDU T9,T3,T1 BEQ R0,R0,7F0DCBEC SB T6,0001 (T9) //7F0DCB5C: SLTI AT,T0,5800 BNE AT,R0,7F0DCB9C LHU T0,0292 (SP) LUI T8,8009 LW T8,E328 (T8) ;T8=p->spectrum.ROMs LHU T7,0298 (SP) LUI T1,8009 ADDU T5,T8,T2 SRA T4,T7,0x8 SB T4,0001 (T5) LHU T6,0292 (SP) LW T1,E32C (T1) ADDIU T3,R0,0001 ADDU T9,T1,T6 BEQ R0,R0,7F0DCBEC SB T3,A801 (T9) //7F0DCB9C: ADDIU T7,T0,0001 SLTI AT,T7,4000 BNE AT,R0,7F0DCBEC LHU T8,0298 (SP) LUI T4,8009 LW T4,E328 (T4) ;T4=p->spectrum.ROMs SRA T2,T8,0x8 ADDIU T1,R0,0001 ADDU T5,T4,T0 SB T2,0001 (T5) LHU T6,0292 (SP) LUI T0,8009 LW T0,E32C (T0) ADDIU T3,T6,0001 ANDI T9,T3,1800 SRA T7,T9,0x3 ANDI T8,T3,00FF OR T4,T7,T8 ADDU T2,T0,T4 SB T1,0000 (T2) ADDIU T5,R0,0008 BEQ R0,R0,7F0E27FC SH T5,0298 (SP) //7F0DCBF8: D0: RET NC 11(5) LW T6,028C (SP) ANDI T3,S1,0001 LUI T4,8009 ADDIU T9,T6,0005 BNE T3,R0,7F0E27FC SW T9,028C (SP) ;cycles+=5 LHU T0,0292 (SP) LW T4,E328 (T4) ;T4=spectrum.ROMs ADDIU T8,T9,0006 SW T8,028C (SP) ;cycles+=6 B total ADDU T5,T4,T0 LBU T6,0001 (T5) ADDU T1,T0,T4 LBU T2,0000 (T1) SLL T9,T6,0x8 ADDIU T7,T0,0002 OR T3,T2,T9 SH T3,0298 (SP) BEQ R0,R0,7F0E27FC SH T7,0292 (SP) //7F0DCC48: D1: POP DE 10 LW T8,028C (SP) LUI T5,8009 LW T5,E328 (T5) ;T5=spectrum.ROMs LHU T4,0292 (SP) ADDIU T1,T8,000A SW T1,028C (SP) ;cycles+=A ADDU T6,T4,T5 LBU S5,0000 (T6) LBU S4,0001 (T6) ADDIU T2,T4,0002 BEQ R0,R0,7F0E27FC SH T2,0292 (SP) //7F0DCC78: D2: JP NC,nn 10 LW T9,028C (SP) ANDI T0,S1,0001 LHU T7,0298 (SP) ADDIU T3,T9,000A BNE T0,R0,7F0DCCB8 SW T3,028C (SP) ;cycles+=A LUI T8,8009 LW T8,E328 (T8) ;T8=spectrum.ROMs ADDU T6,T8,T7 LBU T4,0001 (T6) ADDU T1,T7,T8 LBU T5,0000 (T1) SLL T2,T4,0x8 OR T9,T5,T2 BEQ R0,R0,7F0E27FC SH T9,0298 (SP) //7F0DCCB8: LHU T3,0298 (SP) ADDIU T0,T3,0002 BEQ R0,R0,7F0E27FC SH T0,0298 (SP) //7F0DCCC8: D3: OUT (n),A 11 LW T1,028C (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs LHU T7,0298 (SP) ADDIU A0,T1,000B SW A0,028C (SP) ;cycles+=B ADDU T4,T7,T6 LBU A2,0000 (T4) ;A2=ROM+PC: port# OR A1,S0,R0 ;A1=spec.A JAL 7F0D37DC ;V0= A3 written to port A2 or 0 if not required OR A3,S0,R0 ;A3=spec.A LW T5,028C (SP) LHU T3,0298 (SP) SW V0,0048 (SP) ADDU T9,T5,V0 ADDIU T0,T3,0001 SW T9,028C (SP) ;cycles+=return value, 0 unless port written BEQ R0,R0,7F0E27FC SH T0,0298 (SP) ;PC+=1 //7F0DCD14: D4: CALL NC,nn 17(10) LW T1,028C (SP) ANDI T7,S1,0001 ADDIU T8,T1,000A BNE T7,R0,7F0DCEEC SW T8,028C (SP) ;cycles+=A LHU T5,0292 (SP) ADDIU T4,T8,0007 SW T4,028C (SP) ;cycles+=7 11 total ADDIU T2,T5,FFFE ANDI T9,T2,FFFF SLTI AT,T9,5B00 BNE AT,R0,7F0DCD64 SH T2,0292 (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=spectrum.ROMs LHU T3,0298 (SP) ADDU T8,T1,T9 ADDIU T0,T3,0002 BEQ R0,R0,7F0DCDF0 SB T0,0000 (T8) //7F0DCD64: LHU T7,0292 (SP) LHU T8,0292 (SP) LHU T6,0298 (SP) SLTI AT,T7,5800 BNE AT,R0,7F0DCDA8 LUI T5,8009 LW T5,E328 (T5) ;T5=spectrum.ROMs ADDIU T4,T6,0002 LUI T1,8009 ADDU T2,T5,T7 SB T4,0000 (T2) LHU T9,0292 (SP) LW T1,E32C (T1) ADDIU T3,R0,0001 ADDU T0,T1,T9 BEQ R0,R0,7F0DCDF0 SB T3,A800 (T0) //7F0DCDA8: SLTI AT,T8,4000 BNE AT,R0,7F0DCDF0 LHU T6,0298 (SP) LUI T7,8009 LW T7,E328 (T7) ;T7=spectrum.ROMs ADDIU T5,T6,0002 ADDIU T2,R0,0001 ADDU T4,T7,T8 SB T5,0000 (T4) LHU T1,0292 (SP) LUI T7,8009 LW T7,E32C (T7) ANDI T9,T1,1800 SRA T3,T9,0x3 ANDI T0,T1,00FF OR T6,T3,T0 ADDU T8,T7,T6 SB T2,0000 (T8) LHU T5,0292 (SP) LHU T6,0292 (SP) LHU T9,0298 (SP) ADDIU T4,T5,0001 SLTI AT,T4,5B00 BNE AT,R0,7F0DCE28 ADDIU T2,T6,0001 LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs ADDIU T1,T9,0002 SRA T3,T1,0x8 ADDU T7,T0,T5 BEQ R0,R0,7F0DCEC0 SB T3,0001 (T7) //7F0DCE28: SLTI AT,T2,5800 BNE AT,R0,7F0DCE6C LHU T8,0292 (SP) LHU T8,0298 (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=spectrum.ROMs ADDIU T4,T8,0002 SRA T9,T4,0x8 ADDU T0,T1,T6 SB T9,0001 (T0) LUI T3,8009 LW T3,E32C (T3) LHU T7,0292 (SP) ADDIU T5,R0,0001 ADDU T2,T3,T7 BEQ R0,R0,7F0DCEC0 SB T5,A801 (T2) //7F0DCE6C: ADDIU T4,T8,0001 SLTI AT,T4,4000 BNE AT,R0,7F0DCEC0 LHU T1,0298 (SP) LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs ADDIU T6,T1,0002 SRA T9,T6,0x8 ADDU T3,T0,T8 SB T9,0001 (T3) LHU T5,0292 (SP) LUI T8,8009 LW T8,E32C (T8) ADDIU T2,T5,0001 ANDI T4,T2,1800 SRA T1,T4,0x3 ANDI T6,T2,00FF OR T0,T1,T6 ADDIU T7,R0,0001 ADDU T9,T8,T0 SB T7,0000 (T9) LUI T5,8009 LW T5,E328 (T5) ;T5=spectrum.ROMs LHU T3,0298 (SP) ADDU T1,T5,T3 LBU T6,0001 (T1) ADDU T4,T3,T5 LBU T2,0000 (T4) SLL T8,T6,0x8 OR T0,T2,T8 BEQ R0,R0,7F0E27FC SH T0,0298 (SP) //7F0DCEEC: LHU T7,0298 (SP) ADDIU T9,T7,0002 BEQ R0,R0,7F0E27FC SH T9,0298 (SP) //7F0DCEFC: D5: PUSH DE 11 LHU T3,0292 (SP) LW T4,028C (SP) LUI T2,8009 ADDIU T1,T3,FFFE ANDI T6,T1,FFFF SLTI AT,T6,5B00 ADDIU T5,T4,000B SW T5,028C (SP) ;cycles+=B BNE AT,R0,7F0DCF34 SH T1,0292 (SP) LW T2,E328 (T2) ;T2=spectrum.ROMs ADDU T8,T2,T6 BEQ R0,R0,7F0DCFB4 SB S5,0000 (T8) //7F0DCF34: LHU T0,0292 (SP) LHU T2,0292 (SP) LUI T7,8009 SLTI AT,T0,5800 BNEL AT,R0,7F0DCF78 SLTI AT,T2,4000 LW T7,E328 (T7) ;T7=spectrum.ROMs LUI T5,8009 ADDIU T4,R0,0001 ADDU T9,T7,T0 SB S5,0000 (T9) LHU T3,0292 (SP) LW T5,E32C (T5) ADDU T1,T5,T3 BEQ R0,R0,7F0DCFB4 SB T4,A800 (T1) //7F0DCF74 SLTI AT,T2,4000 BNE AT,R0,7F0DCFB4 LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs LUI T1,8009 ADDIU T7,R0,0001 ADDU T8,T6,T2 SB S5,0000 (T8) LHU T0,0292 (SP) LW T1,E32C (T1) ANDI T9,T0,1800 SRA T5,T9,0x3 ANDI T3,T0,00FF OR T4,T5,T3 ADDU T6,T1,T4 SB T7,0000 (T6) //7F0DCFB4: LHU T2,0292 (SP) LHU T5,0292 (SP) LUI T9,8009 ADDIU T8,T2,0001 SLTI AT,T8,5B00 BNE AT,R0,7F0DCFE0 ADDIU T3,T5,0001 LW T9,E328 (T9) ;T9=spectrum.ROMs ADDU T0,T9,T2 BEQ R0,R0,7F0E27FC SB S4,0001 (T0) //7F0DCFE0: SLTI AT,T3,5800 BNE AT,R0,7F0DD018 LHU T2,0292 (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=spectrum.ROMs LUI T6,8009 ADDIU T7,R0,0001 ADDU T4,T1,T5 SB S4,0001 (T4) LHU T8,0292 (SP) LW T6,E32C (T6) ADDU T9,T6,T8 BEQ R0,R0,7F0E27FC SB T7,A801 (T9) //7F0DD018: ADDIU T0,T2,0001 SLTI AT,T0,4000 BNE AT,R0,7F0E27FC LUI T3,8009 LW T3,E328 (T3) ;T3=spectrum.ROMs ADDIU T5,R0,0001 ADDU T1,T3,T2 SB S4,0001 (T1) LHU T4,0292 (SP) LUI T3,8009 LW T3,E32C (T3) ADDIU T6,T4,0001 ANDI T8,T6,1800 SRA T7,T8,0x3 ANDI T9,T6,00FF OR T0,T7,T9 ADDU T2,T3,T0 BEQ R0,R0,7F0E27FC SB T5,0000 (T2) //7F0DD064: D6: SUB n 7 LW T1,028C (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs LHU T8,0298 (SP) ADDIU T4,T1,0007 SW T4,028C (SP) ;cycles+=7 ADDU T7,T8,T6 LBU T9,0000 (T7) ANDI T7,S0,000F SUBU T3,S0,T9 ANDI T0,T3,01FF ANDI T2,T0,00A8 SRA T4,T0,0x8 ANDI T6,T9,000F SLT T3,T7,T6 OR T8,T2,T4 XOR T2,S0,T9 SLL T5,T3,0x4 XOR T6,T0,S0 SH T0,00FA (SP) LBU S0,00FB (SP) ANDI T4,T2,0080 AND T3,T4,T6 OR T1,T8,T5 SRA T8,T3,0x5 LHU T6,0298 (SP) OR S1,T1,T8 SB T9,00F9 (SP) SLTIU T2,S0,0001 SLL T7,T2,0x6 ORI T9,S1,0002 OR S1,T9,T7 ANDI T4,S1,00FF ADDIU T3,T6,0001 OR S1,T4,R0 SW T2,0048 (SP) BEQ R0,R0,7F0E27FC SH T3,0298 (SP) //7F0DD0FC: D7: RST 10 11 LHU T5,0292 (SP) LW T1,028C (SP) LUI T7,8009 ADDIU T9,T5,FFFE ANDI T2,T9,FFFF SLTI AT,T2,5B00 ADDIU T8,T1,000B SW T8,028C (SP) ;cycles+=B BNE AT,R0,7F0DD138 SH T9,0292 (SP) LW T7,E328 (T7) ;T7=spectrum.ROMs LHU T0,0298 (SP) ADDU T4,T7,T2 BEQ R0,R0,7F0DD1C0 SB T0,0000 (T4) //7F0DD138: LHU T6,0292 (SP) LHU T0,0292 (SP) LUI T1,8009 SLTI AT,T6,5800 BNEL AT,R0,7F0DD180 SLTI AT,T0,4000 LW T1,E328 (T1) ;T1=spectrum.ROMs LHU T3,0298 (SP) LUI T9,8009 ADDU T8,T1,T6 SB T3,0000 (T8) LHU T7,0292 (SP) LW T9,E32C (T9) ADDIU T5,R0,0001 ADDU T2,T9,T7 BEQ R0,R0,7F0DD1C0 SB T5,A800 (T2) //7F0DD17C: SLTI AT,T0,4000 BNE AT,R0,7F0DD1C0 LUI T1,8009 LW T1,E328 (T1) ;T1=spectrum.ROMs LHU T4,0298 (SP) ADDIU T3,R0,0001 ADDU T6,T1,T0 SB T4,0000 (T6) LHU T8,0292 (SP) LUI T1,8009 LW T1,E32C (T1) ANDI T9,T8,1800 SRA T7,T9,0x3 ANDI T5,T8,00FF OR T2,T7,T5 ADDU T0,T1,T2 SB T3,0000 (T0) //7F0DD1C0: LHU T4,0292 (SP) LHU T1,0292 (SP) LHU T9,0298 (SP) ADDIU T6,T4,0001 SLTI AT,T6,5B00 BNE AT,R0,7F0DD1F4 ADDIU T2,T1,0001 LUI T7,8009 LW T7,E328 (T7) ;T7=spectrum.ROMs SRA T8,T9,0x8 ADDU T5,T7,T4 BEQ R0,R0,7F0DD284 SB T8,0001 (T5) //7F0DD1F4: SLTI AT,T2,5800 BNE AT,R0,7F0DD234 LHU T2,0292 (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs LHU T3,0298 (SP) LUI T4,8009 ADDU T9,T6,T1 SRA T0,T3,0x8 SB T0,0001 (T9) LHU T8,0292 (SP) LW T4,E32C (T4) ADDIU T7,R0,0001 ADDU T5,T4,T8 BEQ R0,R0,7F0DD284 SB T7,A801 (T5) //7F0DD234: ADDIU T3,T2,0001 SLTI AT,T3,4000 BNE AT,R0,7F0DD284 LHU T6,0298 (SP) LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs SRA T1,T6,0x8 ADDIU T4,R0,0001 ADDU T9,T0,T2 SB T1,0001 (T9) LHU T8,0292 (SP) LUI T2,8009 LW T2,E32C (T2) ADDIU T7,T8,0001 ANDI T5,T7,1800 SRA T3,T5,0x3 ANDI T6,T7,00FF OR T0,T3,T6 ADDU T1,T2,T0 SB T4,0000 (T1) //7F0DD284: ADDIU T9,R0,0010 BEQ R0,R0,7F0E27FC SH T9,0298 (SP) //7F0DD290: D8: RET C 11(5) LW T8,028C (SP) ANDI T7,S1,0001 LUI T0,8009 ADDIU T5,T8,0005 BEQ T7,R0,7F0E27FC SW T5,028C (SP) ;cycles+=5 LHU T2,0292 (SP) LW T0,E328 (T0) ;T0=spectrum.ROMs ADDIU T6,T5,0006 SW T6,028C (SP) ;cycles+=6 B total ADDU T9,T0,T2 LBU T8,0001 (T9) ADDU T4,T2,T0 LBU T1,0000 (T4) SLL T5,T8,0x8 ADDIU T3,T2,0002 OR T7,T1,T5 SH T7,0298 (SP) BEQ R0,R0,7F0E27FC SH T3,0292 (SP) //7F0DD2E0: D9: EXX 4 LW T6,028C (SP) SB S2,00F8 (SP) SB S3,00F7 (SP) SB S4,00F6 (SP) SB S5,00F5 (SP) SB S6,00F4 (SP) SB S7,00F3 (SP) LBU T0,00F8 (SP) LBU T9,00F7 (SP) LBU T8,00F6 (SP) LBU T1,00F5 (SP) LBU T5,00F4 (SP) LBU T7,00F3 (SP) LBU S2,02A4 (SP) LBU S3,02A3 (SP) LBU S4,02A2 (SP) LBU S5,02A1 (SP) LBU S6,02A0 (SP) LBU S7,029F (SP) ADDIU T4,T6,0004 SW T4,028C (SP) ;cycles+=4 SB T0,02A4 (SP) SB T9,02A3 (SP) SB T8,02A2 (SP) SB T1,02A1 (SP) SB T5,02A0 (SP) BEQ R0,R0,7F0E27FC SB T7,029F (SP) //7F0DD350: DA: JP C,nn 10 LW T2,028C (SP) ANDI T6,S1,0001 LHU T4,0298 (SP) ;T4=spec.PC ADDIU T3,T2,000A BEQ T6,R0,7F0DD390 SW T3,028C (SP) ;cycles+=A LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs ADDU T1,T0,T4 LBU T5,0001 (T1) ;T5= val.u ADDU T9,T4,T0 LBU T8,0000 (T9) ;T8= val.l SLL T7,T5,0x8 OR T2,T8,T7 ;T2= val[1:0]: jump PC BEQ R0,R0,7F0E27FC SH T2,0298 (SP) ;spec.PC = jump PC //7F0DD390: LHU T3,0298 (SP) ADDIU T6,T3,0002 BEQ R0,R0,7F0E27FC SH T6,0298 (SP) ;spec.PC+=2 //7F0DD3A0: DB: IN A,(n) 11 LW T9,028C (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=spectrum.ROMs LHU T4,0298 (SP) ;T4=spec.PC ADDIU A0,T9,000B SW A0,028C (SP) ;cycles+=B ADDU T5,T4,T1 LBU A2,0000 (T5) ;A2=ROM+PC: source JAL 7F0D36D8 ;V0=input from source A2 using register A1 OR A1,S0,R0 ;A1=S0: register, derived from previous read (?) LW T8,028C (SP) LHU T6,0298 (SP) ANDI T7,V0,FFFF SRA T2,T7,0x8 ;T2=upper byte SH V0,00F0 (SP) ;SP+F0 = input ADDU T3,T8,T2 ADDIU T9,T6,0001 LBU S0,00F1 (SP) ;S0=directional byte set A0 SW T3,028C (SP) ;cycles += upper byte of input (usually 0...) BEQ R0,R0,7F0E27FC SH T9,0298 (SP) ;spec.PC+=1 //7F0DD3F4: DC: CALL C,nn 17(10) LW T0,028C (SP) ANDI T1,S1,0001 ADDIU T4,T0,000A BEQ T1,R0,7F0DD5CC SW T4,028C (SP) ;cycles+=A LHU T8,0292 (SP) ADDIU T7,T4,0007 SW T7,028C (SP) ;cycles+=7 11 total ADDIU T2,T8,FFFE ANDI T3,T2,FFFF SLTI AT,T3,5B00 BNE AT,R0,7F0DD444 SH T2,0292 (SP) LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs LHU T6,0298 (SP) ADDU T4,T0,T3 ADDIU T9,T6,0002 BEQ R0,R0,7F0DD4D0 SB T9,0000 (T4) //7F0DD444: LHU T1,0292 (SP) LHU T4,0292 (SP) LHU T5,0298 (SP) SLTI AT,T1,5800 BNE AT,R0,7F0DD488 LUI T8,8009 LW T8,E328 (T8) ;T8=spectrum.ROMs ADDIU T7,T5,0002 LUI T0,8009 ADDU T2,T8,T1 SB T7,0000 (T2) LHU T3,0292 (SP) LW T0,E32C (T0) ADDIU T6,R0,0001 ADDU T9,T0,T3 BEQ R0,R0,7F0DD4D0 SB T6,A800 (T9) //7F0DD488: SLTI AT,T4,4000 BNE AT,R0,7F0DD4D0 LHU T5,0298 (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=spectrum.ROMs ADDIU T8,T5,0002 ADDIU T2,R0,0001 ADDU T7,T1,T4 SB T8,0000 (T7) LHU T0,0292 (SP) LUI T1,8009 LW T1,E32C (T1) ANDI T3,T0,1800 SRA T6,T3,0x3 ANDI T9,T0,00FF OR T5,T6,T9 ADDU T4,T1,T5 SB T2,0000 (T4) LHU T8,0292 (SP) LHU T5,0292 (SP) LHU T3,0298 (SP) ADDIU T7,T8,0001 SLTI AT,T7,5B00 BNE AT,R0,7F0DD508 ADDIU T2,T5,0001 LUI T9,8009 LW T9,E328 (T9) ;T9=spectrum.ROMs ADDIU T0,T3,0002 SRA T6,T0,0x8 ADDU T1,T9,T8 BEQ R0,R0,7F0DD5A0 SB T6,0001 (T1) //7F0DD508: SLTI AT,T2,5800 BNE AT,R0,7F0DD54C LHU T4,0292 (SP) LHU T4,0298 (SP) LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs ADDIU T7,T4,0002 SRA T3,T7,0x8 ADDU T9,T0,T5 SB T3,0001 (T9) LUI T6,8009 LW T6,E32C (T6) LHU T1,0292 (SP) ADDIU T8,R0,0001 ADDU T2,T6,T1 BEQ R0,R0,7F0DD5A0 SB T8,A801 (T2) //7F0DD54C: ADDIU T7,T4,0001 SLTI AT,T7,4000 BNE AT,R0,7F0DD5A0 LHU T0,0298 (SP) LUI T9,8009 LW T9,E328 (T9) ;T9=spectrum.ROMs ADDIU T5,T0,0002 SRA T3,T5,0x8 ADDU T6,T9,T4 SB T3,0001 (T6) LHU T8,0292 (SP) LUI T4,8009 LW T4,E32C (T4) ADDIU T2,T8,0001 ANDI T7,T2,1800 SRA T0,T7,0x3 ANDI T5,T2,00FF OR T9,T0,T5 ADDIU T1,R0,0001 ADDU T3,T4,T9 SB T1,0000 (T3) LUI T8,8009 LW T8,E328 (T8) ;T8=spectrum.ROMs LHU T6,0298 (SP) ADDU T0,T8,T6 LBU T5,0001 (T0) ADDU T7,T6,T8 LBU T2,0000 (T7) SLL T4,T5,0x8 OR T9,T2,T4 BEQ R0,R0,7F0E27FC SH T9,0298 (SP) //7F0DD5CC: LHU T1,0298 (SP) ADDIU T3,T1,0002 BEQ R0,R0,7F0E27FC SH T3,0298 (SP) //7F0DD5DC: DD: --- DD --- LW T7,028C (SP) ADDIU T6,R0,0001 SB T6,0286 (SP) ADDIU T8,T7,0004 SW T8,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC SB R0,0285 (SP) //7F0DD5F8: DE: SBC A,n 7 LW T0,028C (SP) LUI T4,8009 LW T4,E328 (T4) ;T4=spectrum.ROMs LHU T2,0298 (SP) ADDIU T5,T0,0007 SW T5,028C (SP) ;cycles+=7 ADDU T9,T2,T4 LBU T1,0000 (T9) ANDI T7,S1,0001 ANDI T0,S0,000F SUBU T3,S0,T1 SUBU T8,T3,T7 ANDI T6,T8,01FF ANDI T3,T1,000F ADDU T8,T3,T7 SLT T2,T0,T8 ANDI T5,T6,00A8 SRA T4,T6,0x8 OR T9,T5,T4 XOR T3,S0,T1 SLL T5,T2,0x4 XOR T8,T6,S0 SH T6,00EE (SP) LBU S0,00EF (SP) ANDI T7,T3,0080 AND T2,T7,T8 OR T4,T9,T5 SRA T9,T2,0x5 LHU T8,0298 (SP) OR S1,T4,T9 SB T1,00ED (SP) SLTIU T3,S0,0001 SLL T0,T3,0x6 ORI T1,S1,0002 OR S1,T1,T0 ANDI T7,S1,00FF ADDIU T2,T8,0001 OR S1,T7,R0 SW T3,0048 (SP) BEQ R0,R0,7F0E27FC SH T2,0298 (SP) //7F0DD69C: DF: RST 18 (11) LHU T5,0292 (SP) LW T4,028C (SP) LUI T0,8009 ADDIU T1,T5,FFFE ANDI T3,T1,FFFF SLTI AT,T3,5B00 ADDIU T9,T4,000B SW T9,028C (SP) ;cycles+=B BNE AT,R0,7F0DD6D8 SH T1,0292 (SP) LW T0,E328 (T0) ;T0=spectrum.ROMs LHU T6,0298 (SP) ADDU T7,T0,T3 BEQ R0,R0,7F0DD760 SB T6,0000 (T7) //7F0DD6D8: LHU T8,0292 (SP) LHU T6,0292 (SP) LUI T4,8009 SLTI AT,T8,5800 BNEL AT,R0,7F0DD720 SLTI AT,T6,4000 LW T4,E328 (T4) ;T4=spectrum.ROMs LHU T2,0298 (SP) LUI T1,8009 ADDU T9,T4,T8 SB T2,0000 (T9) LHU T0,0292 (SP) LW T1,E32C (T1) ADDIU T5,R0,0001 ADDU T3,T1,T0 BEQ R0,R0,7F0DD760 SB T5,A800 (T3) //7F0DD71C: SLTI AT,T6,4000 BNE AT,R0,7F0DD760 LUI T4,8009 LW T4,E328 (T4) ;T4=spectrum.ROMs LHU T7,0298 (SP) ADDIU T2,R0,0001 ADDU T8,T4,T6 SB T7,0000 (T8) LHU T9,0292 (SP) LUI T4,8009 LW T4,E32C (T4) ANDI T1,T9,1800 SRA T0,T1,0x3 ANDI T5,T9,00FF OR T3,T0,T5 ADDU T6,T4,T3 SB T2,0000 (T6) LHU T7,0292 (SP) LHU T4,0292 (SP) LHU T1,0298 (SP) ADDIU T8,T7,0001 SLTI AT,T8,5B00 BNE AT,R0,7F0DD794 ADDIU T3,T4,0001 LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs SRA T9,T1,0x8 ADDU T5,T0,T7 BEQ R0,R0,7F0DD824 SB T9,0001 (T5) //7F0DD794: SLTI AT,T3,5800 BNE AT,R0,7F0DD7D4 LHU T3,0292 (SP) LUI T8,8009 LW T8,E328 (T8) ;T8=spectrum.ROMs LHU T2,0298 (SP) LUI T7,8009 ADDU T1,T8,T4 SRA T6,T2,0x8 SB T6,0001 (T1) LHU T9,0292 (SP) LW T7,E32C (T7) ADDIU T0,R0,0001 ADDU T5,T7,T9 BEQ R0,R0,7F0DD824 SB T0,A801 (T5) //7F0DD7D4: ADDIU T2,T3,0001 SLTI AT,T2,4000 BNE AT,R0,7F0DD824 LHU T8,0298 (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs SRA T4,T8,0x8 ADDIU T7,R0,0001 ADDU T1,T6,T3 SB T4,0001 (T1) LHU T9,0292 (SP) LUI T3,8009 LW T3,E32C (T3) ADDIU T0,T9,0001 ANDI T5,T0,1800 SRA T2,T5,0x3 ANDI T8,T0,00FF OR T6,T2,T8 ADDU T4,T3,T6 SB T7,0000 (T4) //7F0DD824: ADDIU T1,R0,0018 BEQ R0,R0,7F0E27FC SH T1,0298 (SP) //7F0DD830: E0: RET PO 11(5) LW T9,028C (SP) ANDI T0,S1,0004 LUI T6,8009 ADDIU T5,T9,0005 BNE T0,R0,7F0E27FC SW T5,028C (SP) ;cycles+=5 LHU T3,0292 (SP) LW T6,E328 (T6) ;T6=spectrum.ROMs ADDIU T8,T5,0006 SW T8,028C (SP) ;cycles+=6 B total ADDU T1,T6,T3 LBU T9,0001 (T1) ADDU T7,T3,T6 LBU T4,0000 (T7) SLL T5,T9,0x8 ADDIU T2,T3,0002 OR T0,T4,T5 SH T0,0298 (SP) BEQ R0,R0,7F0E27FC SH T2,0292 (SP) //7F0DD880: E1: POP HL 10 LW T8,028C (SP) LBU T6,0287 (SP) LBU T0,0287 (SP) ADDIU T7,T8,000A BNE T6,R0,7F0DD8BC SW T7,028C (SP) ;cycles+=A LUI T9,8009 LW T9,E328 (T9) ;T9=spectrum.ROMs LHU T1,0292 (SP) ADDU T4,T1,T9 LBU S7,0000 (T4) LBU S6,0001 (T4) ADDIU T5,T1,0002 BEQ R0,R0,7F0E27FC SH T5,0292 (SP) //7F0DD8BC: ADDIU AT,R0,0001 BNE T0,AT,7F0DD8FC LUI T8,8009 LUI T2,8009 LW T2,E328 (T2) ;T2=spectrum.ROMs LHU T3,0292 (SP) ADDU T6,T2,T3 LBU T9,0001 (T6) ADDU T8,T3,T2 LBU T7,0000 (T8) SLL T4,T9,0x8 ADDIU T5,T3,0002 OR T1,T7,T4 SH T1,0296 (SP) BEQ R0,R0,7F0E27FC SH T5,0292 (SP) //7F0DD8FC: LHU T0,0292 (SP) LW T8,E328 (T8) ;T8=spectrum.ROMs ADDIU T3,T0,0002 ADDU T9,T8,T0 LBU T7,0001 (T9) ADDU T2,T0,T8 LBU T6,0000 (T2) SLL T4,T7,0x8 SH T3,0292 (SP) OR T1,T6,T4 BEQ R0,R0,7F0E27FC SH T1,0294 (SP) //7F0DD92C: E2: JP PO,nn 10 LW T5,028C (SP) ANDI T8,S1,0004 LHU T9,0298 (SP) ADDIU T2,T5,000A BNE T8,R0,7F0DD96C SW T2,028C (SP) ;cycles+=A LUI T7,8009 LW T7,E328 (T7) ;T7=spectrum.ROMs ADDU T1,T7,T9 LBU T0,0001 (T1) ADDU T6,T9,T7 LBU T4,0000 (T6) SLL T3,T0,0x8 OR T5,T4,T3 BEQ R0,R0,7F0E27FC SH T5,0298 (SP) //7F0DD96C: LHU T2,0298 (SP) ADDIU T8,T2,0002 BEQ R0,R0,7F0E27FC SH T8,0298 (SP) //7F0DD97C: E3: EX (SP),HL 19 LW T6,028C (SP) LBU T9,0287 (SP) LBU T4,0287 (SP) ADDIU T7,T6,0013 BNE T9,R0,7F0DDB1C SW T7,028C (SP) ;cycles+=13 LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs LHU T1,0292 (SP) LHU T7,0292 (SP) LUI T9,8009 ADDU T5,T0,T1 LBU T2,0001 (T5) ADDU T4,T1,T0 LBU T3,0000 (T4) SLL T8,T2,0x8 SLTI AT,T7,5B00 OR T6,T3,T8 BNE AT,R0,7F0DD9DC SH T6,00EA (SP) LW T9,E328 (T9) ;T9=spectrum.ROMs ADDU T4,T9,T7 BEQ R0,R0,7F0DDA5C SB S7,0000 (T4) //7F0DD9DC: LHU T0,0292 (SP) LHU T9,0292 (SP) LUI T1,8009 SLTI AT,T0,5800 BNEL AT,R0,7F0DDA20 SLTI AT,T9,4000 LW T1,E328 (T1) ;T1=spectrum.ROMs LUI T3,8009 ADDIU T2,R0,0001 ADDU T5,T1,T0 SB S7,0000 (T5) LHU T8,0292 (SP) LW T3,E32C (T3) ADDU T6,T3,T8 BEQ R0,R0,7F0DDA5C SB T2,A800 (T6) //7F0DDA1C: SLTI AT,T9,4000 BNE AT,R0,7F0DDA5C LUI T7,8009 LW T7,E328 (T7) ;T7=spectrum.ROMs LUI T6,8009 ADDIU T1,R0,0001 ADDU T4,T7,T9 SB S7,0000 (T4) LHU T0,0292 (SP) LW T6,E32C (T6) ANDI T5,T0,1800 SRA T3,T5,0x3 ANDI T8,T0,00FF OR T2,T3,T8 ADDU T7,T6,T2 SB T1,0000 (T7) LHU T9,0292 (SP) LHU T3,0292 (SP) LUI T5,8009 ADDIU T4,T9,0001 SLTI AT,T4,5B00 BNE AT,R0,7F0DDA88 ADDIU T8,T3,0001 LW T5,E328 (T5) ;T5=spectrum.ROMs ADDU T0,T5,T9 BEQ R0,R0,7F0DDB08 SB S6,0001 (T0) //7F0DDA88: SLTI AT,T8,5800 BNE AT,R0,7F0DDAC0 LHU T9,0292 (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs LUI T7,8009 ADDIU T1,R0,0001 ADDU T2,T6,T3 SB S6,0001 (T2) LHU T4,0292 (SP) LW T7,E32C (T7) ADDU T5,T7,T4 BEQ R0,R0,7F0DDB08 SB T1,A801 (T5) //7F0DDAC0: ADDIU T0,T9,0001 SLTI AT,T0,4000 BNE AT,R0,7F0DDB08 LUI T8,8009 LW T8,E328 (T8) ;T8=spectrum.ROMs ADDIU T3,R0,0001 ADDU T6,T8,T9 SB S6,0001 (T6) LHU T2,0292 (SP) LUI T8,8009 LW T8,E32C (T8) ADDIU T7,T2,0001 ANDI T4,T7,1800 SRA T1,T4,0x3 ANDI T5,T7,00FF OR T0,T1,T5 ADDU T9,T8,T0 SB T3,0000 (T9) LHU S6,00EA (SP) LBU S7,00EB (SP) SRA T6,S6,0x8 BEQ R0,R0,7F0E27FC ANDI S6,T6,00FF //7F0DDB1C: ADDIU AT,R0,0001 BNE T4,AT,7F0DDCCC LHU T8,0292 (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=spectrum.ROMs LHU T7,0292 (SP) LHU T2,0292 (SP) ADDU T0,T1,T7 LBU T3,0001 (T0) ADDU T5,T7,T1 LBU T8,0000 (T5) SLL T9,T3,0x8 SLTI AT,T2,5B00 OR T6,T8,T9 BNE AT,R0,7F0DDB74 SH T6,00E8 (SP) LUI T5,8009 LW T5,E328 (T5) ;T5=spectrum.ROMs LHU T4,0296 (SP) ADDU T1,T5,T2 BEQ R0,R0,7F0DDBFC SB T4,0000 (T1) //7F0DDB74: LHU T7,0292 (SP) LHU T4,0292 (SP) LUI T3,8009 SLTI AT,T7,5800 BNEL AT,R0,7F0DDBBC SLTI AT,T4,4000 LW T3,E328 (T3) ;T3=spectrum.ROMs LHU T0,0296 (SP) LUI T6,8009 ADDU T8,T3,T7 SB T0,0000 (T8) LHU T5,0292 (SP) LW T6,E32C (T6) ADDIU T9,R0,0001 ADDU T2,T6,T5 BEQ R0,R0,7F0DDBFC SB T9,A800 (T2) //7F0DDBB8: SLTI AT,T4,4000 BNE AT,R0,7F0DDBFC LUI T3,8009 LW T3,E328 (T3) ;T3=spectrum.ROMs LHU T1,0296 (SP) ADDIU T0,R0,0001 ADDU T7,T3,T4 SB T1,0000 (T7) LHU T8,0292 (SP) LUI T3,8009 LW T3,E32C (T3) ANDI T6,T8,1800 SRA T5,T6,0x3 ANDI T9,T8,00FF OR T2,T5,T9 ADDU T4,T3,T2 SB T0,0000 (T4) LHU T1,0292 (SP) LHU T3,0292 (SP) LHU T6,0296 (SP) ADDIU T7,T1,0001 SLTI AT,T7,5B00 BNE AT,R0,7F0DDC30 ADDIU T2,T3,0001 LUI T5,8009 LW T5,E328 (T5) ;T5=spectrum.ROMs SRA T8,T6,0x8 ADDU T9,T5,T1 BEQ R0,R0,7F0DDCC0 SB T8,0001 (T9) //7F0DDC30: SLTI AT,T2,5800 BNE AT,R0,7F0DDC70 LHU T2,0292 (SP) LUI T7,8009 LW T7,E328 (T7) ;T7=spectrum.ROMs LHU T0,0296 (SP) LUI T1,8009 ADDU T6,T7,T3 SRA T4,T0,0x8 SB T4,0001 (T6) LHU T8,0292 (SP) LW T1,E32C (T1) ADDIU T5,R0,0001 ADDU T9,T1,T8 BEQ R0,R0,7F0DDCC0 SB T5,A801 (T9) //7F0DDC70: ADDIU T0,T2,0001 SLTI AT,T0,4000 BNE AT,R0,7F0DDCC0 LHU T7,0296 (SP) LUI T4,8009 LW T4,E328 (T4) ;T4=spectrum.ROMs SRA T3,T7,0x8 ADDIU T1,R0,0001 ADDU T6,T4,T2 SB T3,0001 (T6) LHU T8,0292 (SP) LUI T2,8009 LW T2,E32C (T2) ADDIU T5,T8,0001 ANDI T9,T5,1800 SRA T0,T9,0x3 ANDI T7,T5,00FF OR T4,T0,T7 ADDU T3,T2,T4 SB T1,0000 (T3) LHU T6,00E8 (SP) BEQ R0,R0,7F0E27FC SH T6,0296 (SP) //7F0DDCCC: LUI T9,8009 LW T9,E328 (T9) ;T9=spectrum.ROMs LHU T3,0292 (SP) ADDU T7,T9,T8 LBU T2,0001 (T7) ADDU T5,T8,T9 LBU T0,0000 (T5) SLL T4,T2,0x8 SLTI AT,T3,5B00 OR T1,T0,T4 BNE AT,R0,7F0DDD14 SH T1,00E6 (SP) LUI T5,8009 LW T5,E328 (T5) ;T5=spectrum.ROMs LHU T6,0294 (SP) ADDU T9,T5,T3 BEQ R0,R0,7F0DDD9C SB T6,0000 (T9) //7F0DDD14: LHU T8,0292 (SP) LHU T6,0292 (SP) LUI T2,8009 SLTI AT,T8,5800 BNEL AT,R0,7F0DDD5C SLTI AT,T6,4000 LW T2,E328 (T2) ;T2=spectrum.ROMs LHU T7,0294 (SP) LUI T1,8009 ADDU T0,T2,T8 SB T7,0000 (T0) LHU T5,0292 (SP) LW T1,E32C (T1) ADDIU T4,R0,0001 ADDU T3,T1,T5 BEQ R0,R0,7F0DDD9C SB T4,A800 (T3) //7F0DDE58: SLTI AT,T6,4000 BNE AT,R0,7F0DDD9C LUI T2,8009 LW T2,E328 (T2) ;T2=spectrum.ROMs LHU T9,0294 (SP) ADDIU T7,R0,0001 ADDU T8,T2,T6 SB T9,0000 (T8) LHU T0,0292 (SP) LUI T2,8009 LW T2,E32C (T2) ANDI T1,T0,1800 SRA T5,T1,0x3 ANDI T4,T0,00FF OR T3,T5,T4 ADDU T6,T2,T3 SB T7,0000 (T6) LHU T9,0292 (SP) LHU T2,0292 (SP) LHU T1,0294 (SP) ADDIU T8,T9,0001 SLTI AT,T8,5B00 BNE AT,R0,7F0DDDD0 ADDIU T3,T2,0001 LUI T5,8009 LW T5,E328 (T5) ;T5=spectrum.ROMs SRA T0,T1,0x8 ADDU T4,T5,T9 BEQ R0,R0,7F0DDE60 SB T0,0001 (T4) //7F0DDDD0: SLTI AT,T3,5800 BNE AT,R0,7F0DDE10 LHU T3,0292 (SP) LUI T8,8009 LW T8,E328 (T8) ;T8=spectrum.ROMs LHU T7,0294 (SP) LUI T9,8009 ADDU T1,T8,T2 SRA T6,T7,0x8 SB T6,0001 (T1) LHU T0,0292 (SP) LW T9,E32C (T9) ADDIU T5,R0,0001 ADDU T4,T9,T0 BEQ R0,R0,7F0DDE60 SB T5,A801 (T4) //7F0DDE10: ADDIU T7,T3,0001 SLTI AT,T7,4000 BNE AT,R0,7F0DDE60 LHU T8,0294 (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs SRA T2,T8,0x8 ADDIU T9,R0,0001 ADDU T1,T6,T3 SB T2,0001 (T1) LHU T0,0292 (SP) LUI T3,8009 LW T3,E32C (T3) ADDIU T5,T0,0001 ANDI T4,T5,1800 SRA T7,T4,0x3 ANDI T8,T5,00FF OR T6,T7,T8 ADDU T2,T3,T6 SB T9,0000 (T2) //7F0DDE60: LHU T1,00E6 (SP) BEQ R0,R0,7F0E27FC SH T1,0294 (SP) //7F0DDE6C: E4: CALL PO,nn 17(10) LW T0,028C (SP) ANDI T5,S1,0004 ADDIU T4,T0,000A BNE T5,R0,7F0DE044 SW T4,028C (SP) ;cycles+=A LHU T3,0292 (SP) ADDIU T8,T4,0007 SW T8,028C (SP) ;cycles+=7 11 total ADDIU T6,T3,FFFE ANDI T9,T6,FFFF SLTI AT,T9,5B00 BNE AT,R0,7F0DDEBC SH T6,0292 (SP) LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs LHU T2,0298 (SP) ADDU T4,T0,T9 ADDIU T1,T2,0002 BEQ R0,R0,7F0DDF48 SB T1,0000 (T4) //7F0DDEBC: LHU T5,0292 (SP) LHU T4,0292 (SP) LHU T7,0298 (SP) SLTI AT,T5,5800 BNE AT,R0,7F0DDF00 LUI T3,8009 LW T3,E328 (T3) ;T3=spectrum.ROMs ADDIU T8,T7,0002 LUI T0,8009 ADDU T6,T3,T5 SB T8,0000 (T6) LHU T9,0292 (SP) LW T0,E32C (T0) ADDIU T2,R0,0001 ADDU T1,T0,T9 BEQ R0,R0,7F0DDF48 SB T2,A800 (T1) //7F0DDF00: SLTI AT,T4,4000 BNE AT,R0,7F0DDF48 LHU T7,0298 (SP) LUI T5,8009 LW T5,E328 (T5) ;T5=spectrum.ROMs ADDIU T3,T7,0002 ADDIU T6,R0,0001 ADDU T8,T5,T4 SB T3,0000 (T8) LHU T0,0292 (SP) LUI T5,8009 LW T5,E32C (T5) ANDI T9,T0,1800 SRA T2,T9,0x3 ANDI T1,T0,00FF OR T7,T2,T1 ADDU T4,T5,T7 SB T6,0000 (T4) LHU T3,0292 (SP) LHU T7,0292 (SP) LHU T9,0298 (SP) ADDIU T8,T3,0001 SLTI AT,T8,5B00 BNE AT,R0,7F0DDF80 ADDIU T6,T7,0001 LUI T1,8009 LW T1,E328 (T1) ;T1=spectrum.ROMs ADDIU T0,T9,0002 SRA T2,T0,0x8 ADDU T5,T1,T3 BEQ R0,R0,7F0DE018 SB T2,0001 (T5) //7F0DDF80: SLTI AT,T6,5800 BNE AT,R0,7F0DDFC4 LHU T4,0292 (SP) LHU T4,0298 (SP) LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs ADDIU T8,T4,0002 SRA T9,T8,0x8 ADDU T1,T0,T7 SB T9,0001 (T1) LUI T2,8009 LW T2,E32C (T2) LHU T5,0292 (SP) ADDIU T3,R0,0001 ADDU T6,T2,T5 BEQ R0,R0,7F0DE018 SB T3,A801 (T6) //7F0DDFC4: ADDIU T8,T4,0001 SLTI AT,T8,4000 BNE AT,R0,7F0DE018 LHU T0,0298 (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=spectrum.ROMs ADDIU T7,T0,0002 SRA T9,T7,0x8 ADDU T2,T1,T4 SB T9,0001 (T2) LHU T3,0292 (SP) LUI T4,8009 LW T4,E32C (T4) ADDIU T6,T3,0001 ANDI T8,T6,1800 SRA T0,T8,0x3 ANDI T7,T6,00FF OR T1,T0,T7 ADDIU T5,R0,0001 ADDU T9,T4,T1 SB T5,0000 (T9) LUI T3,8009 LW T3,E328 (T3) ;T3=spectrum.ROMs LHU T2,0298 (SP) ADDU T0,T3,T2 LBU T7,0001 (T0) ADDU T8,T2,T3 LBU T6,0000 (T8) SLL T4,T7,0x8 OR T1,T6,T4 BEQ R0,R0,7F0E27FC SH T1,0298 (SP) //7F0DE044: LHU T5,0298 (SP) ADDIU T9,T5,0002 BEQ R0,R0,7F0E27FC SH T9,0298 (SP) //7F0DE054: E5: PUSH HL 11 LW T8,028C (SP) LBU T2,0287 (SP) LBU T7,0287 (SP) ADDIU T3,T8,000B BNE T2,R0,7F0DE1C8 SW T3,028C (SP) ;cycles+=B LHU T0,0292 (SP) LUI T4,8009 ADDIU T7,T0,FFFE ANDI T6,T7,FFFF SLTI AT,T6,5B00 BNE AT,R0,7F0DE098 SH T7,0292 (SP) LW T4,E328 (T4) ;T4=spectrum.ROMs ADDU T1,T4,T6 BEQ R0,R0,7F0DE118 SB S7,0000 (T1) //7F0DE098: LHU T5,0292 (SP) LHU T4,0292 (SP) LUI T9,8009 SLTI AT,T5,5800 BNEL AT,R0,7F0DE0DC SLTI AT,T4,4000 LW T9,E328 (T9) ;T9=spectrum.ROMs LUI T2,8009 ADDIU T3,R0,0001 ADDU T8,T9,T5 SB S7,0000 (T8) LHU T0,0292 (SP) LW T2,E32C (T2) ADDU T7,T2,T0 BEQ R0,R0,7F0DE118 SB T3,A800 (T7) //7F0DE0D8: SLTI AT,T4,4000 BNE AT,R0,7F0DE118 LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs LUI T7,8009 ADDIU T9,R0,0001 ADDU T1,T6,T4 SB S7,0000 (T1) LHU T5,0292 (SP) LW T7,E32C (T7) ANDI T8,T5,1800 SRA T2,T8,0x3 ANDI T0,T5,00FF OR T3,T2,T0 ADDU T6,T7,T3 SB T9,0000 (T6) LHU T4,0292 (SP) LHU T2,0292 (SP) LUI T8,8009 ADDIU T1,T4,0001 SLTI AT,T1,5B00 BNE AT,R0,7F0DE144 ADDIU T0,T2,0001 LW T8,E328 (T8) ;T8=spectrum.ROMs ADDU T5,T8,T4 BEQ R0,R0,7F0E27FC SB S6,0001 (T5) //7F0DE144: SLTI AT,T0,5800 BNE AT,R0,7F0DE17C LHU T4,0292 (SP) LUI T7,8009 LW T7,E328 (T7) ;T7=spectrum.ROMs LUI T6,8009 ADDIU T9,R0,0001 ADDU T3,T7,T2 SB S6,0001 (T3) LHU T1,0292 (SP) LW T6,E32C (T6) ADDU T8,T6,T1 BEQ R0,R0,7F0E27FC SB T9,A801 (T8) //7F0DE17C: ADDIU T5,T4,0001 SLTI AT,T5,4000 BNE AT,R0,7F0E27FC LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs ADDIU T2,R0,0001 ADDU T7,T0,T4 SB S6,0001 (T7) LHU T3,0292 (SP) LUI T0,8009 LW T0,E32C (T0) ADDIU T6,T3,0001 ANDI T1,T6,1800 SRA T9,T1,0x3 ANDI T8,T6,00FF OR T5,T9,T8 ADDU T4,T0,T5 BEQ R0,R0,7F0E27FC SB T2,0000 (T4) //7F0DE1C8: ADDIU AT,R0,0001 BNE T7,AT,7F0DE354 LHU T1,0292 (SP) LHU T3,0292 (SP) LUI T8,8009 ADDIU T1,T3,FFFE ANDI T6,T1,FFFF SLTI AT,T6,5B00 BNE AT,R0,7F0DE204 SH T1,0292 (SP) LW T8,E328 (T8) ;T8=spectrum.ROMs LHU T9,0296 (SP) ADDU T0,T8,T6 BEQ R0,R0,7F0DE28C SB T9,0000 (T0) //7F0DE204: LHU T5,0292 (SP) LHU T9,0292 (SP) LUI T4,8009 SLTI AT,T5,5800 BNEL AT,R0,7F0DE24C SLTI AT,T9,4000 LW T4,E328 (T4) ;T4=spectrum.ROMs LHU T2,0296 (SP) LUI T1,8009 ADDU T7,T4,T5 SB T2,0000 (T7) LHU T8,0292 (SP) LW T1,E32C (T1) ADDIU T3,R0,0001 ADDU T6,T1,T8 BEQ R0,R0,7F0DE28C SB T3,A800 (T6) //7F0DE248: SLTI AT,T9,4000 BNE AT,R0,7F0DE28C LUI T4,8009 LW T4,E328 (T4) ;T4=spectrum.ROMs LHU T0,0296 (SP) ADDIU T2,R0,0001 ADDU T5,T4,T9 SB T0,0000 (T5) LHU T7,0292 (SP) LUI T4,8009 LW T4,E32C (T4) ANDI T1,T7,1800 SRA T8,T1,0x3 ANDI T3,T7,00FF OR T6,T8,T3 ADDU T9,T4,T6 SB T2,0000 (T9) LHU T0,0292 (SP) LHU T4,0292 (SP) LHU T1,0296 (SP) ADDIU T5,T0,0001 SLTI AT,T5,5B00 BNE AT,R0,7F0DE2C0 ADDIU T6,T4,0001 LUI T8,8009 LW T8,E328 (T8) ;T8=spectrum.ROMs SRA T7,T1,0x8 ADDU T3,T8,T0 BEQ R0,R0,7F0E27FC SB T7,0001 (T3) //7F0DE2C0: SLTI AT,T6,5800 BNE AT,R0,7F0DE300 LHU T6,0292 (SP) LUI T5,8009 LW T5,E328 (T5) ;T5=spectrum.ROMs LHU T2,0296 (SP) LUI T0,8009 ADDU T1,T5,T4 SRA T9,T2,0x8 SB T9,0001 (T1) LHU T7,0292 (SP) LW T0,E32C (T0) ADDIU T8,R0,0001 ADDU T3,T0,T7 BEQ R0,R0,7F0E27FC SB T8,A801 (T3) //7F0DE300: ADDIU T2,T6,0001 SLTI AT,T2,4000 BNE AT,R0,7F0E27FC LHU T5,0296 (SP) LUI T9,8009 LW T9,E328 (T9) ;T9=spectrum.ROMs SRA T4,T5,0x8 ADDIU T0,R0,0001 ADDU T1,T9,T6 SB T4,0001 (T1) LHU T7,0292 (SP) LUI T6,8009 LW T6,E32C (T6) ADDIU T8,T7,0001 ANDI T3,T8,1800 SRA T2,T3,0x3 ANDI T5,T8,00FF OR T9,T2,T5 ADDU T4,T6,T9 BEQ R0,R0,7F0E27FC SB T0,0000 (T4) //7F0DE354: ADDIU T7,T1,FFFE ANDI T3,T7,FFFF SLTI AT,T3,5B00 BNE AT,R0,7F0DE380 SH T7,0292 (SP) LUI T2,8009 LW T2,E328 (T2) ;T2=spectrum.ROMs LHU T8,0294 (SP) ADDU T5,T2,T3 BEQ R0,R0,7F0DE408 SB T8,0000 (T5) //7F0DE380: LHU T6,0292 (SP) LHU T8,0292 (SP) LUI T0,8009 SLTI AT,T6,5800 BNEL AT,R0,7F0DE3C8 SLTI AT,T8,4000 LW T0,E328 (T0) ;T0=spectrum.ROMs LHU T9,0294 (SP) LUI T7,8009 ADDU T4,T0,T6 SB T9,0000 (T4) LHU T2,0292 (SP) LW T7,E32C (T7) ADDIU T1,R0,0001 ADDU T3,T7,T2 BEQ R0,R0,7F0DE408 SB T1,A800 (T3) //7F0DE3C4: SLTI AT,T8,4000 BNE AT,R0,7F0DE408 LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs LHU T5,0294 (SP) ADDIU T9,R0,0001 ADDU T6,T0,T8 SB T5,0000 (T6) LHU T4,0292 (SP) LUI T0,8009 LW T0,E32C (T0) ANDI T7,T4,1800 SRA T2,T7,0x3 ANDI T1,T4,00FF OR T3,T2,T1 ADDU T8,T0,T3 SB T9,0000 (T8) LHU T5,0292 (SP) LHU T0,0292 (SP) LHU T7,0294 (SP) ADDIU T6,T5,0001 SLTI AT,T6,5B00 BNE AT,R0,7F0DE43C ADDIU T3,T0,0001 LUI T2,8009 LW T2,E328 (T2) ;T2=spectrum.ROMs SRA T4,T7,0x8 ADDU T1,T2,T5 BEQ R0,R0,7F0E27FC SB T4,0001 (T1) //7F0DE43C: SLTI AT,T3,5800 BNE AT,R0,7F0DE47C LHU T3,0292 (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs LHU T9,0294 (SP) LUI T5,8009 ADDU T7,T6,T0 SRA T8,T9,0x8 SB T8,0001 (T7) LHU T4,0292 (SP) LW T5,E32C (T5) ADDIU T2,R0,0001 ADDU T1,T5,T4 BEQ R0,R0,7F0E27FC SB T2,A801 (T1) //7F0DE47C: ADDIU T9,T3,0001 SLTI AT,T9,4000 BNE AT,R0,7F0E27FC LHU T6,0294 (SP) LUI T8,8009 LW T8,E328 (T8) ;T8=spectrum.ROMs SRA T0,T6,0x8 ADDIU T5,R0,0001 ADDU T7,T8,T3 SB T0,0001 (T7) LHU T4,0292 (SP) LUI T3,8009 LW T3,E32C (T3) ADDIU T2,T4,0001 ANDI T1,T2,1800 SRA T9,T1,0x3 ANDI T6,T2,00FF OR T8,T9,T6 ADDU T0,T3,T8 BEQ R0,R0,7F0E27FC SB T5,0000 (T0) //7F0DE4D0: E6: AND n 7 LW T7,028C (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=spectrum.ROMs LHU T2,0298 (SP) ;T2=spec.PC ADDIU T4,T7,0007 SW T4,028C (SP) ;cycles+=7 ADDU T9,T1,T2 LBU T6,0000 (T9) ;T6=ROM+PC: n LUI T2,8009 LW T2,E334 (T2) ;T2=8008E334: AND S0,S0,T6 ;spec.A &= n ANDI T3,S0,00FF SLTIU T8,T3,0001 ;T8= True if 0 SW T8,0048 (SP) ;SP+48= ZERO SLL T7,T8,0x6 ;T7=T8*40: ZERO flag ADDU T9,T3,T2 LBU T6,0000 (T9) ANDI T5,T3,00A8 LHU T8,0298 (SP) OR T4,T5,T7 ORI T1,T4,0010 ;set HALFCARRY OR S0,T3,R0 OR S1,T6,T1 ANDI T3,S1,00FF ADDIU T0,T8,0001 OR S1,T3,R0 BEQ R0,R0,7F0E27FC SH T0,0298 (SP) ;PC+=1 //7F0DE540: E7: RST 20 11 LHU T4,0292 (SP) LW T5,028C (SP) LUI T1,8009 ADDIU T2,T4,FFFE ANDI T9,T2,FFFF SLTI AT,T9,5B00 ADDIU T7,T5,000B SW T7,028C (SP) ;cycles+=B BNE AT,R0,7F0DE57C SH T2,0292 (SP) LW T1,E328 (T1) ;T1=spectrum.ROMs LHU T6,0298 (SP) ADDU T3,T1,T9 BEQ R0,R0,7F0DE604 SB T6,0000 (T3) //7F0DE57C: LHU T8,0292 (SP) LHU T6,0292 (SP) LUI T5,8009 SLTI AT,T8,5800 BNEL AT,R0,7F0DE5C4 SLTI AT,T6,4000 LW T5,E328 (T5) ;T5=spectrum.ROMs LHU T0,0298 (SP) LUI T2,8009 ADDU T7,T5,T8 SB T0,0000 (T7) LHU T1,0292 (SP) LW T2,E32C (T2) ADDIU T4,R0,0001 ADDU T9,T2,T1 BEQ R0,R0,7F0DE604 SB T4,A800 (T9) //7F0DE5C0: SLTI AT,T6,4000 BNE AT,R0,7F0DE604 LUI T5,8009 LW T5,E328 (T5) ;T5=spectrum.ROMs LHU T3,0298 (SP) ADDIU T0,R0,0001 ADDU T8,T5,T6 SB T3,0000 (T8) LHU T7,0292 (SP) LUI T5,8009 LW T5,E32C (T5) ANDI T2,T7,1800 SRA T1,T2,0x3 ANDI T4,T7,00FF OR T9,T1,T4 ADDU T6,T5,T9 SB T0,0000 (T6) LHU T3,0292 (SP) LHU T5,0292 (SP) LHU T2,0298 (SP) ADDIU T8,T3,0001 SLTI AT,T8,5B00 BNE AT,R0,7F0DE638 ADDIU T9,T5,0001 LUI T1,8009 LW T1,E328 (T1) ;T1=spectrum.ROMs SRA T7,T2,0x8 ADDU T4,T1,T3 BEQ R0,R0,7F0DE6C8 SB T7,0001 (T4) //7F0DE638: SLTI AT,T9,5800 BNE AT,R0,7F0DE678 LHU T9,0292 (SP) LUI T8,8009 LW T8,E328 (T8) ;T8=spectrum.ROMs LHU T0,0298 (SP) LUI T3,8009 ADDU T2,T8,T5 SRA T6,T0,0x8 SB T6,0001 (T2) LHU T7,0292 (SP) LW T3,E32C (T3) ADDIU T1,R0,0001 ADDU T4,T3,T7 BEQ R0,R0,7F0DE6C8 SB T1,A801 (T4) //7F0DE678: ADDIU T0,T9,0001 SLTI AT,T0,4000 BNE AT,R0,7F0DE6C8 LHU T8,0298 (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs SRA T5,T8,0x8 ADDIU T3,R0,0001 ADDU T2,T6,T9 SB T5,0001 (T2) LHU T7,0292 (SP) LUI T9,8009 LW T9,E32C (T9) ADDIU T1,T7,0001 ANDI T4,T1,1800 SRA T0,T4,0x3 ANDI T8,T1,00FF OR T6,T0,T8 ADDU T5,T9,T6 SB T3,0000 (T5) ADDIU T2,R0,0020 BEQ R0,R0,7F0E27FC SH T2,0298 (SP) //7F0DE6D4: E8: RET PE 11(5) LW T7,028C (SP) ANDI T1,S1,0004 LUI T6,8009 ADDIU T4,T7,0005 BEQ T1,R0,7F0E27FC SW T4,028C (SP) ;cycles+=5 LHU T9,0292 (SP) LW T6,E328 (T6) ;T6=spectrum.ROMs ADDIU T8,T4,0006 SW T8,028C (SP) ;cycles+=6 B total ADDU T2,T6,T9 LBU T7,0001 (T2) ADDU T3,T9,T6 LBU T5,0000 (T3) SLL T4,T7,0x8 ADDIU T0,T9,0002 OR T1,T5,T4 SH T1,0298 (SP) BEQ R0,R0,7F0E27FC SH T0,0292 (SP) //7F0DE724: E9: JP (HL) 4 LW T8,028C (SP) LBU T6,0287 (SP) LBU T5,0287 (SP) ADDIU T3,T8,0004 BNE T6,R0,7F0DE74C SW T3,028C (SP) ;cycles+=4 SLL T2,S6,0x8 OR T7,T2,S7 BEQ R0,R0,7F0E27FC SH T7,0298 (SP) //7F0DE74C: ADDIU AT,R0,0001 BNE T5,AT,7F0DE764 LHU T1,0294 (SP) LHU T4,0296 (SP) BEQ R0,R0,7F0DE768 SW T4,0048 (SP) //7F0DE764: SW T1,0048 (SP) LW T9,0048 (SP) BEQ R0,R0,7F0E27FC SH T9,0298 (SP) //7F0DE774: EA: JP PE,nn 10 LW T0,028C (SP) ANDI T3,S1,0004 LHU T6,0298 (SP) ADDIU T8,T0,000A BEQ T3,R0,7F0DE7B4 SW T8,028C (SP) ;cycles+=A LUI T2,8009 LW T2,E328 (T2) ;T2=spectrum.ROMs ADDU T4,T2,T6 LBU T1,0001 (T4) ADDU T7,T6,T2 LBU T5,0000 (T7) SLL T9,T1,0x8 OR T0,T5,T9 BEQ R0,R0,7F0E27FC SH T0,0298 (SP) //7F0DE7B4: LHU T8,0298 (SP) ADDIU T3,T8,0002 BEQ R0,R0,7F0E27FC SH T3,0298 (SP) //7F0DE7C4: EB: EX DE,HL 4 LW T7,028C (SP) SB S6,00E5 (SP) SB S5,00E4 (SP) ANDI S6,S4,00FF ANDI S5,S7,00FF ADDIU T2,T7,0004 SW T2,028C (SP) ;cycles+=4 LBU S4,00E5 (SP) BEQ R0,R0,7F0E27FC LBU S7,00E4 (SP) //7F0DE7EC: EC: CALL PE,nn 17(10) LW T6,028C (SP) ANDI T1,S1,0004 ADDIU T4,T6,000A BEQ T1,R0,7F0DE9C4 SW T4,028C (SP) ;cycles+=A LHU T0,0292 (SP) ADDIU T9,T4,0007 SW T9,028C (SP) ;cycles+=7 11 total ADDIU T8,T0,FFFE ANDI T3,T8,FFFF SLTI AT,T3,5B00 BNE AT,R0,7F0DE83C SH T8,0292 (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs LHU T7,0298 (SP) ADDU T4,T6,T3 ADDIU T2,T7,0002 BEQ R0,R0,7F0DE8C8 SB T2,0000 (T4) //7F0DE83C: LHU T1,0292 (SP) LHU T4,0292 (SP) LHU T5,0298 (SP) SLTI AT,T1,5800 BNE AT,R0,7F0DE880 LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs ADDIU T9,T5,0002 LUI T6,8009 ADDU T8,T0,T1 SB T9,0000 (T8) LHU T3,0292 (SP) LW T6,E32C (T6) ADDIU T7,R0,0001 ADDU T2,T6,T3 BEQ R0,R0,7F0DE8C8 SB T7,A800 (T2) //7F0DE880: SLTI AT,T4,4000 BNE AT,R0,7F0DE8C8 LHU T5,0298 (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=spectrum.ROMs ADDIU T0,T5,0002 ADDIU T8,R0,0001 ADDU T9,T1,T4 SB T0,0000 (T9) LHU T6,0292 (SP) LUI T1,8009 LW T1,E32C (T1) ANDI T3,T6,1800 SRA T7,T3,0x3 ANDI T2,T6,00FF OR T5,T7,T2 ADDU T4,T1,T5 SB T8,0000 (T4) LHU T0,0292 (SP) LHU T5,0292 (SP) LHU T3,0298 (SP) ADDIU T9,T0,0001 SLTI AT,T9,5B00 BNE AT,R0,7F0DE900 ADDIU T8,T5,0001 LUI T2,8009 LW T2,E328 (T2) ;T2=spectrum.ROMs ADDIU T6,T3,0002 SRA T7,T6,0x8 ADDU T1,T2,T0 BEQ R0,R0,7F0DE998 SB T7,0001 (T1) //7F0DE900: SLTI AT,T8,5800 BNE AT,R0,7F0DE944 LHU T4,0292 (SP) LHU T4,0298 (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs ADDIU T9,T4,0002 SRA T3,T9,0x8 ADDU T2,T6,T5 SB T3,0001 (T2) LUI T7,8009 LW T7,E32C (T7) LHU T1,0292 (SP) ADDIU T0,R0,0001 ADDU T8,T7,T1 BEQ R0,R0,7F0DE998 SB T0,A801 (T8) //7F0DE944: ADDIU T9,T4,0001 SLTI AT,T9,4000 BNE AT,R0,7F0DE998 LHU T6,0298 (SP) LUI T2,8009 LW T2,E328 (T2) ;T2=spectrum.ROMs ADDIU T5,T6,0002 SRA T3,T5,0x8 ADDU T7,T2,T4 SB T3,0001 (T7) LHU T0,0292 (SP) LUI T4,8009 LW T4,E32C (T4) ADDIU T8,T0,0001 ANDI T9,T8,1800 SRA T6,T9,0x3 ANDI T5,T8,00FF OR T2,T6,T5 ADDIU T1,R0,0001 ADDU T3,T4,T2 SB T1,0000 (T3) LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs LHU T7,0298 (SP) ADDU T6,T0,T7 LBU T5,0001 (T6) ADDU T9,T7,T0 LBU T8,0000 (T9) SLL T4,T5,0x8 OR T2,T8,T4 BEQ R0,R0,7F0E27FC SH T2,0298 (SP) //7F0DE9C4: LHU T1,0298 (SP) ADDIU T3,T1,0002 BEQ R0,R0,7F0E27FC SH T3,0298 (SP) //7F0DE9D4: ED: --- ED --- LW T9,028C (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs LHU T7,0298 (SP) ADDIU T0,T9,0004 SW T0,028C (SP) ;cycles+=4 ADDU T5,T7,T6 LBU T8,0000 (T5) ;T8=ROM+PC: cmd LW T2,0288 (SP) ADDIU T4,T7,0001 ANDI T3,T8,00FF SLTI AT,T3,007F ADDIU T1,T2,0001 SH T4,0298 (SP) SW T1,0288 (SP) SW T3,0048 (SP) BNE AT,R0,7F0DEA40 ;branch if cmd 0-7F SB T8,00E3 (SP) ADDIU T9,T3,FF60 ;cmd-=A0 SLTIU AT,T9,001C BEQ AT,R0,7F0E1A6C ;skip if not A0-BB SLL T9,T9,0x2 LUI AT,8006 ADDU AT,AT,T9 LW T9,C6AC (AT) ;T9=8005C6AC+offset: p->handler JR T9 NOP //7F0DEA40: LW T0,0048 (SP) ADDIU T6,T0,FFC0 SLTIU AT,T6,003F BEQ AT,R0,7F0E1A6C ;skip if cmd 0-3F SLL T6,T6,0x2 LUI AT,8006 ADDU AT,AT,T6 LW T6,C71C (AT) ;T6=8005C71C+offset: p->handler JR T6 NOP //7F0DEA68: ED.40: IN B,(C) 12(8) LW T5,028C (SP) OR A1,S2,R0 ;A1=S2: spec.B OR A2,S3,R0 ;A2=S3: spec.C ADDIU A0,T5,0008 JAL 7F0D36D8 ;V0=input from source A2 using register A1 SW A0,028C (SP) ;cycles+=8 LW T7,028C (SP) ANDI T4,V0,FFFF SRA T2,T4,0x8 SH V0,00E0 (SP) ;SP+E0= input ADDU T1,T7,T2 LBU S2,00E1 (SP) ;S2= keys set spec.B LUI T7,8009 LW T7,E334 (T7) ;T7=8008E334: keyboardtbl SLTIU T3,S2,0001 SW T3,0048 (SP) ;SP+48= TRUE if input=0 SW T1,028C (SP) ;cycles+= upper bit if set (usually isn't) ADDU T2,S2,T7 LBU T1,0000 (T2) ;T1=keyboardtbl[keys] ANDI T9,S1,0001 ;T9= retained flags (00000001) ANDI T0,S2,00A8 ;T0= keys & A8 (10101000) OR T6,T9,T0 SLL T8,T3,0x6 ;T8= ZERO flag (40) OR T4,T6,T8 OR S1,T1,T4 ;set flags: Sign, Zero, Half-carry, Parity; unset flags: additioN ANDI T3,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T3,R0 //7F0DEAD8: LW T9,028C (SP) OR A1,S2,R0 OR A2,S3,R0 ADDIU A0,T9,0008 SW A0,028C (SP) ;cycles+=8 JAL 7F0D37DC ;V0= A3 written to port A2 or 0 if not required OR A3,S2,R0 LW T5,028C (SP) SW V0,0048 (SP) ADDU T8,T5,V0 BEQ R0,R0,7F0E27FC SW T8,028C (SP) //7F0DEB08: SLL T1,S2,0x8 LW T7,028C (SP) OR T4,T1,S3 SLL T3,S6,0x8 OR T9,T3,S7 ANDI T0,T4,FFFF SUBU T5,T9,T0 ANDI T6,S1,0001 LUI AT,0001 ORI AT,AT,FFFF SUBU T8,T5,T6 ADDIU T2,T7,000B AND T7,T8,AT SRL T3,T7,0x8 ANDI T9,T3,00A8 SRL T0,T7,0x10 SW T2,028C (SP) ;cycles+=B OR T5,T9,T0 ANDI T2,T7,FFFF SLTIU T1,T2,0001 ORI T6,T5,0002 SLL T0,S6,0x8 OR T5,T0,S7 ANDI T2,T4,0FFF ANDI T3,S1,0001 ADDU T9,T2,T3 ANDI T8,T5,0FFF SLT T2,T8,T9 SLL T3,T2,0x4 OR T0,T6,T3 SLL T5,S6,0x8 OR T8,T5,S7 SLL T2,S6,0x8 OR T6,T2,S7 OR T3,T4,R0 XOR T5,T6,T3 XOR T9,T8,T7 AND T8,T5,T9 ANDI T2,T8,8000 SH T4,00DE (SP) SRL T4,T2,0xD OR T6,T0,T4 SLL T3,T1,0x6 OR S1,T6,T3 SRL S6,T7,0x8 ANDI T8,S6,00FF ORI T5,S1,0002 SW T7,00D8 (SP) LBU S7,00DB (SP) ANDI S1,T5,00FF OR S6,T8,R0 BEQ R0,R0,7F0E27FC SW T1,0048 (SP) //7F0DEBDC: LW T2,028C (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=spectrum.ROMs LHU T4,0298 (SP) ADDIU T0,T2,0010 SW T0,028C (SP) ;cycles+=10 ADDU T5,T1,T4 LBU T9,0001 (T5) ADDU T6,T4,T1 LBU T3,0000 (T6) SLL T7,T9,0x8 ADDIU T2,T4,0002 OR T8,T3,T7 ANDI T0,T8,FFFF SLTI AT,T0,5B00 SH T8,00D6 (SP) BNE AT,R0,7F0DEC38 SH T2,0298 (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs ADDU T1,T6,T0 BEQ R0,R0,7F0DECB8 SB S3,0000 (T1) //7F0DEC38: LHU T5,00D6 (SP) LHU T6,00D6 (SP) LUI T9,8009 SLTI AT,T5,5800 BNEL AT,R0,7F0DEC7C SLTI AT,T6,4000 LW T9,E328 (T9) ;T9=spectrum.ROMs LUI T8,8009 ADDIU T7,R0,0001 ADDU T3,T9,T5 SB S3,0000 (T3) LHU T4,00D6 (SP) LW T8,E32C (T8) ADDU T2,T8,T4 BEQ R0,R0,7F0DECB8 SB T7,A800 (T2) //7F0DEC78: SLTI AT,T6,4000 BNE AT,R0,7F0DECB8 LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs LUI T2,8009 ADDIU T9,R0,0001 ADDU T1,T0,T6 SB S3,0000 (T1) LHU T5,00D6 (SP) LW T2,E32C (T2) ANDI T3,T5,1800 SRA T8,T3,0x3 ANDI T4,T5,00FF OR T7,T8,T4 ADDU T0,T2,T7 SB T9,0000 (T0) //7F0DECB8: LHU T6,00D6 (SP) LHU T8,00D6 (SP) LUI T3,8009 ADDIU T1,T6,0001 SLTI AT,T1,5B00 BNE AT,R0,7F0DECE4 ADDIU T4,T8,0001 LW T3,E328 (T3) ;T3=spectrum.ROMs ADDU T5,T3,T6 BEQ R0,R0,7F0E27FC SB S2,0001 (T5) //7F0DECE4: SLTI AT,T4,5800 BNE AT,R0,7F0DED1C LHU T6,00D6 (SP) LUI T2,8009 LW T2,E328 (T2) ;T2=spectrum.ROMs LUI T0,8009 ADDIU T9,R0,0001 ADDU T7,T2,T8 SB S2,0001 (T7) LHU T1,00D6 (SP) LW T0,E32C (T0) ADDU T3,T0,T1 BEQ R0,R0,7F0E27FC SB T9,A801 (T3) //7F0DED1C: ADDIU T5,T6,0001 SLTI AT,T5,4000 BNE AT,R0,7F0E27FC LUI T4,8009 LW T4,E328 (T4) ;T4=spectrum.ROMs ADDIU T8,R0,0001 ADDU T2,T4,T6 SB S2,0001 (T2) LHU T7,00D6 (SP) LUI T4,8009 LW T4,E32C (T4) ADDIU T0,T7,0001 ANDI T1,T0,1800 SRA T9,T1,0x3 ANDI T3,T0,00FF OR T5,T9,T3 ADDU T6,T4,T5 BEQ R0,R0,7F0E27FC SB T8,0000 (T6) //7F0DED68: SUBU S0,R0,S0 ANDI T1,S0,00FF LW T2,028C (SP) SLTIU T0,T1,0001 ANDI T8,T1,000F OR S0,T1,R0 ANDI T9,T1,00A8 ADDIU T7,T2,0004 XORI T1,T1,0080 SLT T6,R0,T8 SLL T4,T0,0x6 SW T7,028C (SP) ;cycles+=4 OR T5,T9,T4 SLL T2,T6,0x4 SLTIU T1,T1,0001 SW T0,0048 (SP) SLL T0,T1,0x2 OR T7,T5,T2 OR T3,T7,T0 ORI T9,T3,0002 SLT T4,R0,S0 OR S1,T9,T4 ANDI T8,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T8,R0 //7F0DEDCC: LW T6,028C (SP) LUI T3,8009 LBU T2,029C (SP) LW T3,E328 (T3) ;T3=spectrum.ROMs LHU T0,0292 (SP) ADDIU T5,T6,0004 SW T5,028C (SP) ;cycles+=4 ADDIU T7,T5,0006 SW T7,028C (SP) ;cycles+=6 A total SB T2,029D (SP) ADDU T8,T3,T0 LBU T6,0001 (T8) ADDU T9,T0,T3 LBU T4,0000 (T9) SLL T5,T6,0x8 ADDIU T1,T0,0002 OR T2,T4,T5 SH T2,0298 (SP) BEQ R0,R0,7F0E27FC SH T1,0292 (SP) //7F0DEE1C: LW T7,028C (SP) SB R0,029B (SP) ADDIU T9,T7,0004 BEQ R0,R0,7F0E27FC SW T9,028C (SP) ;cycles+=4 //7F0DEE30: LW T3,028C (SP) SB S0,029E (SP) ADDIU T8,T3,0005 BEQ R0,R0,7F0E27FC SW T8,028C (SP) ;cycles+=5 //7F0DEE44: ED.48 IN C,(C) 12(8) LW T6,028C (SP) OR A1,S2,R0 ;A1=spec.B OR A2,S3,R0 ;A2=spec.C ADDIU A0,T6,0008 JAL 7F0D36D8 ;V0=input from source A2 using register A1 SW A0,028C (SP) ;cycles+=8 LW T5,028C (SP) ANDI T2,V0,FFFF SRA T0,T2,0x8 SH V0,00D4 (SP) ;SP+D4= input ADDU T1,T5,T0 LBU S3,00D5 (SP) ;S3=keys set spec.C LUI T5,8009 LW T5,E334 (T5) ;T5=8008E334: keyboardtbl SLTIU T7,S3,0001 SW T7,0048 (SP) SW T1,028C (SP) ;cycles+=upper bit if set ADDU T0,S3,T5 LBU T1,0000 (T0) ;T1=keyboardtbl[keys] ANDI T9,S1,0001 ANDI T3,S3,00A8 OR T8,T9,T3 SLL T4,T7,0x6 OR T2,T8,T4 OR S1,T1,T2 ANDI T7,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T7,R0 ;set flags: //7F0DEEB4: LW T9,028C (SP) OR A1,S2,R0 OR A2,S3,R0 ADDIU A0,T9,0008 SW A0,028C (SP) ;cycles+=8 JAL 7F0D37DC ;V0= A3 written to port A2 or 0 if not required OR A3,S3,R0 LW T6,028C (SP) SW V0,0048 (SP) ADDU T4,T6,V0 BEQ R0,R0,7F0E27FC SW T4,028C (SP) //7F0DEEE4: SLL T1,S2,0x8 OR T2,T1,S3 SLL T7,S6,0x8 OR T9,T7,S7 ANDI T3,T2,FFFF LW T5,028C (SP) ADDU T6,T9,T3 ANDI T8,S1,0001 ADDU T4,T6,T8 ADDIU T0,T5,000B SRL T1,T4,0x8 SW T0,028C (SP) ;cycles+=B ANDI T7,T1,00A8 ANDI T5,T4,FFFF SRL T9,T4,0x10 SLL T6,S6,0x8 OR T8,T6,S7 OR T3,T7,T9 SLTIU T0,T5,0001 ANDI T5,T8,0FFF ANDI T7,T2,0FFF ADDU T9,T5,T7 ANDI T6,S1,0001 ADDU T8,T9,T6 ADDIU AT,R0,0FFF SLT T1,AT,T8 SLL T5,T1,0x4 OR T7,T3,T5 SLL T9,S6,0x8 OR T6,T9,S7 SLL T1,S6,0x8 NOR T3,T1,S7 OR T5,T2,R0 XOR T9,T3,T5 XOR T8,T6,T4 AND T6,T9,T8 ANDI T1,T6,8000 SH T2,00D2 (SP) SRL T2,T1,0xD OR T3,T7,T2 SLL T5,T0,0x6 OR S1,T3,T5 SRL S6,T4,0x8 ANDI T6,S6,00FF ORI T9,S1,0002 SW T4,00CC (SP) LBU S7,00CF (SP) ANDI S1,T9,00FF OR S6,T6,R0 BEQ R0,R0,7F0E27FC SW T0,0048 (SP) //7F0DEFB0: LW T1,028C (SP) LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs LHU T2,0298 (SP) ADDIU T7,T1,0010 SW T7,028C (SP) ;cycles+=10 ADDU T9,T0,T2 LBU T8,0001 (T9) ADDU T3,T2,T0 LBU T5,0000 (T3) SLL T4,T8,0x8 ADDIU T1,T2,0002 OR T6,T5,T4 ANDI T7,T6,FFFF SH T6,00CA (SP) SH T1,0298 (SP) ADDU T3,T7,T0 LBU S3,0000 (T3) BEQ R0,R0,7F0E27FC LBU S2,0001 (T3) //7F0DF000: SUBU S0,R0,S0 ANDI T5,S0,00FF LW T9,028C (SP) SLTIU T4,T5,0001 ANDI T0,T5,000F OR S0,T5,R0 ANDI T6,T5,00A8 ADDIU T8,T9,0004 XORI T5,T5,0080 SLT T3,R0,T0 SLL T1,T4,0x6 SW T8,028C (SP) ;cycles+=4 OR T7,T6,T1 SLL T9,T3,0x4 SLTIU T5,T5,0001 SW T4,0048 (SP) SLL T4,T5,0x2 OR T8,T7,T9 OR T2,T8,T4 ORI T6,T2,0002 SLT T1,R0,S0 OR S1,T6,T1 ANDI T0,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T0,R0 //7F0DF064: LW T3,028C (SP) LUI T4,8009 LW T4,E328 (T4) ;T4=spectrum.ROMs LHU T8,0292 (SP) ADDIU T7,T3,0004 SW T7,028C (SP) ;cycles+=4 ADDIU T5,T7,0006 SW T5,028C (SP) ;cycles+=6 A total ADDU T1,T4,T8 LBU T0,0001 (T1) ADDU T2,T8,T4 LBU T6,0000 (T2) SLL T3,T0,0x8 ADDIU T9,T8,0002 OR T7,T6,T3 SH T7,0298 (SP) BEQ R0,R0,7F0E27FC SH T9,0292 (SP) //7F0DF0AC: LW T5,028C (SP) ADDIU T4,R0,0001 SB T4,029B (SP) ADDIU T2,T5,0004 BEQ R0,R0,7F0E27FC SW T2,028C (SP) ;cycles+=4 //7F0DF0C4: LW T1,028C (SP) ANDI T6,S0,00FF SB S0,02A7 (SP) ADDIU T0,T1,0005 SW T0,028C (SP) ;cycles+=5 BEQ R0,R0,7F0E27FC SW T6,0288 (SP) //7F0DF0E0: LW T3,028C (SP) OR A1,S2,R0 OR A2,S3,R0 ADDIU A0,T3,0008 JAL 7F0D36D8 ;V0=input from source A2 using register A1 SW A0,028C (SP) ;cycles+=8 LW T8,028C (SP) ANDI T9,V0,FFFF SRA T5,T9,0x8 SH V0,00C8 (SP) ADDU T2,T8,T5 LBU S4,00C9 (SP) LUI T8,8009 LW T8,E334 (T8) ;T8=8008E334: keyboardtbl SLTIU T4,S4,0001 SW T4,0048 (SP) SW T2,028C (SP) ADDU T5,S4,T8 LBU T2,0000 (T5) ANDI T1,S1,0001 ANDI T0,S4,00A8 OR T6,T1,T0 SLL T7,T4,0x6 OR T9,T6,T7 OR S1,T2,T9 ANDI T4,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T4,R0 //7F0DF150: LW T1,028C (SP) OR A1,S2,R0 OR A2,S3,R0 ADDIU A0,T1,0008 SW A0,028C (SP) ;cycles+=8 JAL 7F0D37DC ;V0= A3 written to port A2 or 0 if not required OR A3,S4,R0 LW T3,028C (SP) SW V0,0048 (SP) ADDU T7,T3,V0 BEQ R0,R0,7F0E27FC SW T7,028C (SP) //7F0DF180: SLL T2,S4,0x8 LW T8,028C (SP) OR T9,T2,S5 SLL T4,S6,0x8 OR T1,T4,S7 ANDI T0,T9,FFFF SUBU T3,T1,T0 ANDI T6,S1,0001 LUI AT,0001 ORI AT,AT,FFFF SUBU T7,T3,T6 ADDIU T5,T8,000B AND T8,T7,AT SRL T4,T8,0x8 ANDI T1,T4,00A8 SRL T0,T8,0x10 SW T5,028C (SP) ;cycles+=B OR T3,T1,T0 ANDI T5,T8,FFFF SLTIU T2,T5,0001 ORI T6,T3,0002 SLL T0,S6,0x8 OR T3,T0,S7 ANDI T5,T9,0FFF ANDI T4,S1,0001 ADDU T1,T5,T4 ANDI T7,T3,0FFF SLT T5,T7,T1 SLL T4,T5,0x4 OR T0,T6,T4 SLL T3,S6,0x8 OR T7,T3,S7 SLL T5,S6,0x8 OR T6,T5,S7 OR T4,T9,R0 XOR T3,T6,T4 XOR T1,T7,T8 AND T7,T3,T1 ANDI T5,T7,8000 SH T9,00C6 (SP) SRL T9,T5,0xD OR T6,T0,T9 SLL T4,T2,0x6 OR S1,T6,T4 SRL S6,T8,0x8 ANDI T7,S6,00FF ORI T3,S1,0002 SW T8,00C0 (SP) LBU S7,00C3 (SP) ANDI S1,T3,00FF OR S6,T7,R0 BEQ R0,R0,7F0E27FC SW T2,0048 (SP) //7F0DF254: LW T5,028C (SP) LUI T2,8009 LW T2,E328 (T2) ;T2=spectrum.ROMs LHU T9,0298 (SP) ADDIU T0,T5,0010 SW T0,028C (SP) ;cycles+=10 ADDU T3,T2,T9 LBU T1,0001 (T3) ADDU T6,T9,T2 LBU T4,0000 (T6) SLL T8,T1,0x8 ADDIU T5,T9,0002 OR T7,T4,T8 ANDI T0,T7,FFFF SLTI AT,T0,5B00 SH T7,00BE (SP) BNE AT,R0,7F0DF2B0 SH T5,0298 (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs ADDU T2,T6,T0 BEQ R0,R0,7F0DF330 SB S5,0000 (T2) LHU T3,00BE (SP) LHU T6,00BE (SP) LUI T1,8009 SLTI AT,T3,5800 BNEL AT,R0,7F0DF2F4 SLTI AT,T6,4000 LW T1,E328 (T1) ;T1=spectrum.ROMs LUI T7,8009 ADDIU T8,R0,0001 ADDU T4,T1,T3 SB S5,0000 (T4) LHU T9,00BE (SP) LW T7,E32C (T7) ADDU T5,T7,T9 BEQ R0,R0,7F0DF330 SB T8,A800 (T5) SLTI AT,T6,4000 BNE AT,R0,7F0DF330 LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs LUI T5,8009 ADDIU T1,R0,0001 ADDU T2,T0,T6 SB S5,0000 (T2) LHU T3,00BE (SP) LW T5,E32C (T5) ANDI T4,T3,1800 SRA T7,T4,0x3 ANDI T9,T3,00FF OR T8,T7,T9 ADDU T0,T5,T8 SB T1,0000 (T0) LHU T6,00BE (SP) LHU T7,00BE (SP) LUI T4,8009 ADDIU T2,T6,0001 SLTI AT,T2,5B00 BNE AT,R0,7F0DF35C ADDIU T9,T7,0001 LW T4,E328 (T4) ;T4=spectrum.ROMs ADDU T3,T4,T6 BEQ R0,R0,7F0E27FC SB S4,0001 (T3) SLTI AT,T9,5800 BNE AT,R0,7F0DF394 LHU T6,00BE (SP) LUI T5,8009 LW T5,E328 (T5) ;T5=spectrum.ROMs LUI T0,8009 ADDIU T1,R0,0001 ADDU T8,T5,T7 SB S4,0001 (T8) LHU T2,00BE (SP) LW T0,E32C (T0) ADDU T4,T0,T2 BEQ R0,R0,7F0E27FC SB T1,A801 (T4) ADDIU T3,T6,0001 SLTI AT,T3,4000 BNE AT,R0,7F0E27FC LUI T9,8009 LW T9,E328 (T9) ;T9=spectrum.ROMs ADDIU T7,R0,0001 ADDU T5,T9,T6 SB S4,0001 (T5) LHU T8,00BE (SP) LUI T9,8009 LW T9,E32C (T9) ADDIU T0,T8,0001 ANDI T2,T0,1800 SRA T1,T2,0x3 ANDI T4,T0,00FF OR T3,T1,T4 ADDU T6,T9,T3 BEQ R0,R0,7F0E27FC SB T7,0000 (T6) //7F0DF3E0: SUBU S0,R0,S0 ANDI T2,S0,00FF LW T5,028C (SP) SLTIU T0,T2,0001 ANDI T7,T2,000F OR S0,T2,R0 ANDI T1,T2,00A8 ADDIU T8,T5,0004 XORI T2,T2,0080 SLT T6,R0,T7 SLL T9,T0,0x6 SW T8,028C (SP) ;cycles+=4 OR T3,T1,T9 SLL T5,T6,0x4 SLTIU T2,T2,0001 SW T0,0048 (SP) SLL T0,T2,0x2 OR T8,T3,T5 OR T4,T8,T0 ORI T1,T4,0002 SLT T9,R0,S0 OR S1,T1,T9 ANDI T7,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T7,R0 //7F0DF444: LW T6,028C (SP) LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs LHU T8,0292 (SP) ADDIU T3,T6,0004 SW T3,028C (SP) ;cycles+=4 ADDIU T2,T3,0006 SW T2,028C (SP) ;cycles+=6 A total ADDU T9,T0,T8 LBU T7,0001 (T9) ADDU T4,T8,T0 LBU T1,0000 (T4) SLL T6,T7,0x8 ADDIU T5,T8,0002 OR T3,T1,T6 SH T3,0298 (SP) BEQ R0,R0,7F0E27FC SH T5,0292 (SP) //7F0DF48C: LW T2,028C (SP) ADDIU T0,R0,0002 SB T0,029B (SP) ADDIU T4,T2,0004 BEQ R0,R0,7F0E27FC SW T4,028C (SP) ;cycles+=4 //7F0DF4A4: LBU S0,029E (SP) LW T9,028C (SP) LBU T0,029C (SP) ANDI T6,S1,0001 SLTIU T1,S0,0001 ANDI T3,S0,00A8 OR T8,T6,T3 SLL T2,T1,0x6 ADDIU T7,T9,0005 OR T4,T8,T2 SLL T9,T0,0x2 SW T7,028C (SP) ;cycles+=5 OR S1,T4,T9 ANDI T7,S1,00FF OR S1,T7,R0 BEQ R0,R0,7F0E27FC SW T1,0048 (SP) //7F0DF4E8: LW T1,028C (SP) OR A1,S2,R0 OR A2,S3,R0 ADDIU A0,T1,0008 JAL 7F0D36D8 ;V0=input from source A2 using register A1 SW A0,028C (SP) ;cycles+=8 LW T3,028C (SP) ANDI T5,V0,FFFF SRA T8,T5,0x8 SH V0,00BC (SP) ADDU T2,T3,T8 LBU S5,00BD (SP) LUI T3,8009 LW T3,E334 (T3) ;T3=8008E334: keyboardtbl SLTIU T0,S5,0001 SW T0,0048 (SP) SW T2,028C (SP) ADDU T8,S5,T3 LBU T2,0000 (T8) ANDI T4,S1,0001 ANDI T9,S5,00A8 OR T7,T4,T9 SLL T6,T0,0x6 OR T5,T7,T6 OR S1,T2,T5 ANDI T0,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T0,R0 //7F0DF558: LW T4,028C (SP) OR A1,S2,R0 OR A2,S3,R0 ADDIU A0,T4,0008 SW A0,028C (SP) ;cycles+=8 JAL 7F0D37DC ;V0= A3 written to port A2 or 0 if not required OR A3,S5,R0 LW T1,028C (SP) SW V0,0048 (SP) ADDU T6,T1,V0 BEQ R0,R0,7F0E27FC SW T6,028C (SP) //7F0DF588: SLL T2,S4,0x8 OR T5,T2,S5 SLL T0,S6,0x8 OR T4,T0,S7 ANDI T9,T5,FFFF LW T3,028C (SP) ADDU T1,T4,T9 ANDI T7,S1,0001 ADDU T6,T1,T7 ADDIU T8,T3,000B SRL T2,T6,0x8 SW T8,028C (SP) ;cycles+=B ANDI T0,T2,00A8 ANDI T3,T6,FFFF SRL T4,T6,0x10 SLL T1,S6,0x8 OR T7,T1,S7 OR T9,T0,T4 SLTIU T8,T3,0001 ANDI T3,T7,0FFF ANDI T0,T5,0FFF ADDU T4,T3,T0 ANDI T1,S1,0001 ADDU T7,T4,T1 ADDIU AT,R0,0FFF SLT T2,AT,T7 SLL T3,T2,0x4 OR T0,T9,T3 SLL T4,S6,0x8 OR T1,T4,S7 SLL T2,S6,0x8 NOR T9,T2,S7 OR T3,T5,R0 XOR T4,T9,T3 XOR T7,T1,T6 AND T1,T4,T7 ANDI T2,T1,8000 SH T5,00BA (SP) SRL T5,T2,0xD OR T9,T0,T5 SLL T3,T8,0x6 OR S1,T9,T3 SRL S6,T6,0x8 ANDI T1,S6,00FF ORI T4,S1,0002 SW T6,00B4 (SP) LBU S7,00B7 (SP) ANDI S1,T4,00FF OR S6,T1,R0 BEQ R0,R0,7F0E27FC SW T8,0048 (SP) //7F0DF654: LW T2,028C (SP) LUI T8,8009 LW T8,E328 (T8) ;T8=spectrum.ROMs LHU T5,0298 (SP) ADDIU T0,T2,0010 SW T0,028C (SP) ;cycles+=10 ADDU T4,T8,T5 LBU T7,0001 (T4) ADDU T9,T5,T8 LBU T3,0000 (T9) SLL T6,T7,0x8 ADDIU T2,T5,0002 OR T1,T3,T6 ANDI T0,T1,FFFF SH T1,00B2 (SP) SH T2,0298 (SP) ADDU T9,T0,T8 LBU S5,0000 (T9) BEQ R0,R0,7F0E27FC LBU S4,0001 (T9) //7F0DF6A4: SUBU S0,R0,S0 ANDI T3,S0,00FF LW T4,028C (SP) SLTIU T6,T3,0001 ANDI T8,T3,000F OR S0,T3,R0 ANDI T1,T3,00A8 ADDIU T7,T4,0004 XORI T3,T3,0080 SLT T9,R0,T8 SLL T2,T6,0x6 SW T7,028C (SP) ;cycles+=4 OR T0,T1,T2 SLL T4,T9,0x4 SLTIU T3,T3,0001 SW T6,0048 (SP) SLL T6,T3,0x2 OR T7,T0,T4 OR T5,T7,T6 ORI T1,T5,0002 SLT T2,R0,S0 OR S1,T1,T2 ANDI T8,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T8,R0 //7F0DF708: LW T9,028C (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs LHU T7,0292 (SP) ADDIU T0,T9,0004 SW T0,028C (SP) ;cycles+=4 ADDIU T3,T0,0006 SW T3,028C (SP) ;cycles+=6 A total ADDU T2,T6,T7 LBU T8,0001 (T2) ADDU T5,T7,T6 LBU T1,0000 (T5) SLL T9,T8,0x8 ADDIU T4,T7,0002 OR T0,T1,T9 SH T0,0298 (SP) BEQ R0,R0,7F0E27FC SH T4,0292 (SP) //7F0DF750: LW T3,028C (SP) ADDIU T6,R0,0003 SB T6,029B (SP) ADDIU T5,T3,0004 BEQ R0,R0,7F0E27FC SW T5,028C (SP) ;cycles+=4 //7F0DF768: LBU T1,02A7 (SP) LW T0,0288 (SP) LW T2,028C (SP) ANDI T9,T1,0080 ANDI T7,T0,007F OR S0,T9,T7 ANDI T3,S0,00FF ADDIU T8,T2,0005 LBU T7,029C (SP) SW T8,028C (SP) ;cycles+=5 ANDI T2,T3,00A8 SLTIU T5,T3,0001 ANDI T6,S1,0001 OR T8,T6,T2 SLL T0,T5,0x6 SB S0,02A7 (SP) OR T9,T8,T0 SLL T4,T7,0x2 OR S0,T3,R0 OR S1,T9,T4 ANDI T3,S1,00FF OR S1,T3,R0 BEQ R0,R0,7F0E27FC SW T5,0048 (SP) //7F0DF7C8: LW T5,028C (SP) OR A1,S2,R0 OR A2,S3,R0 ADDIU A0,T5,0008 JAL 7F0D36D8 ;V0=input from source A2 using register A1 SW A0,028C (SP) ;cycles+=8 LW T2,028C (SP) ANDI T1,V0,FFFF SRA T8,T1,0x8 SH V0,00B0 (SP) ADDU T0,T2,T8 LBU S6,00B1 (SP) LUI T2,8009 LW T2,E334 (T2) ;T2=8008E334: keyboardtbl SLTIU T7,S6,0001 SW T7,0048 (SP) SW T0,028C (SP) ADDU T8,S6,T2 LBU T0,0000 (T8) ANDI T9,S1,0001 ANDI T4,S6,00A8 OR T3,T9,T4 SLL T6,T7,0x6 OR T1,T3,T6 OR S1,T0,T1 ANDI T7,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T7,R0 //7F0DF838: LW T9,028C (SP) OR A1,S2,R0 OR A2,S3,R0 ADDIU A0,T9,0008 SW A0,028C (SP) ;cycles+=8 JAL 7F0D37DC ;V0= A3 written to port A2 or 0 if not required OR A3,S6,R0 LW T5,028C (SP) SW V0,0048 (SP) ADDU T6,T5,V0 BEQ R0,R0,7F0E27FC SW T6,028C (SP) //7F0DF868: SLL T0,S6,0x8 LW T2,028C (SP) OR T1,T0,S7 SLL T7,S6,0x8 OR T9,T7,S7 ANDI T4,T1,FFFF SUBU T5,T9,T4 ANDI T3,S1,0001 LUI AT,0001 ORI AT,AT,FFFF SUBU T6,T5,T3 ADDIU T8,T2,000B AND T2,T6,AT SRL T7,T2,0x8 ANDI T9,T7,00A8 SRL T4,T2,0x10 SW T8,028C (SP) ;cycles+=B OR T5,T9,T4 ANDI T8,T2,FFFF SLTIU T0,T8,0001 ORI T3,T5,0002 SLL T4,S6,0x8 OR T5,T4,S7 ANDI T8,T1,0FFF ANDI T7,S1,0001 ADDU T9,T8,T7 ANDI T6,T5,0FFF SLT T8,T6,T9 SLL T7,T8,0x4 OR T4,T3,T7 SLL T5,S6,0x8 OR T6,T5,S7 SLL T8,S6,0x8 OR T3,T8,S7 OR T7,T1,R0 XOR T5,T3,T7 XOR T9,T6,T2 AND T6,T5,T9 ANDI T8,T6,8000 SH T1,00AE (SP) SRL T1,T8,0xD OR T3,T4,T1 SLL T7,T0,0x6 OR S1,T3,T7 SRL S6,T2,0x8 ANDI T6,S6,00FF ORI T5,S1,0002 SW T2,00A8 (SP) LBU S7,00AB (SP) ANDI S1,T5,00FF OR S6,T6,R0 BEQ R0,R0,7F0E27FC SW T0,0048 (SP) //7F0DF93C: LW T8,028C (SP) LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs LHU T1,0298 (SP) ADDIU T4,T8,0010 SW T4,028C (SP) ;cycles+=10 ADDU T5,T0,T1 LBU T9,0001 (T5) ADDU T3,T1,T0 LBU T7,0000 (T3) SLL T2,T9,0x8 ADDIU T8,T1,0002 OR T6,T7,T2 ANDI T4,T6,FFFF SLTI AT,T4,5B00 SH T6,00A6 (SP) BNE AT,R0,7F0DF998 SH T8,0298 (SP) LUI T3,8009 LW T3,E328 (T3) ;T3=spectrum.ROMs ADDU T0,T3,T4 BEQ R0,R0,7F0DFA18 SB S7,0000 (T0) LHU T5,00A6 (SP) LHU T3,00A6 (SP) LUI T9,8009 SLTI AT,T5,5800 BNEL AT,R0,7F0DF9DC SLTI AT,T3,4000 LW T9,E328 (T9) ;T9=spectrum.ROMs LUI T6,8009 ADDIU T2,R0,0001 ADDU T7,T9,T5 SB S7,0000 (T7) LHU T1,00A6 (SP) LW T6,E32C (T6) ADDU T8,T6,T1 BEQ R0,R0,7F0DFA18 SB T2,A800 (T8) SLTI AT,T3,4000 BNE AT,R0,7F0DFA18 LUI T4,8009 LW T4,E328 (T4) ;T4=spectrum.ROMs LUI T8,8009 ADDIU T9,R0,0001 ADDU T0,T4,T3 SB S7,0000 (T0) LHU T5,00A6 (SP) LW T8,E32C (T8) ANDI T7,T5,1800 SRA T6,T7,0x3 ANDI T1,T5,00FF OR T2,T6,T1 ADDU T4,T8,T2 SB T9,0000 (T4) LHU T3,00A6 (SP) LHU T6,00A6 (SP) LUI T7,8009 ADDIU T0,T3,0001 SLTI AT,T0,5B00 BNE AT,R0,7F0DFA44 ADDIU T1,T6,0001 LW T7,E328 (T7) ;T7=spectrum.ROMs ADDU T5,T7,T3 BEQ R0,R0,7F0E27FC SB S6,0001 (T5) SLTI AT,T1,5800 BNE AT,R0,7F0DFA7C LHU T3,00A6 (SP) LUI T8,8009 LW T8,E328 (T8) ;T8=spectrum.ROMs LUI T4,8009 ADDIU T9,R0,0001 ADDU T2,T8,T6 SB S6,0001 (T2) LHU T0,00A6 (SP) LW T4,E32C (T4) ADDU T7,T4,T0 BEQ R0,R0,7F0E27FC SB T9,A801 (T7) ADDIU T5,T3,0001 SLTI AT,T5,4000 BNE AT,R0,7F0E27FC LUI T1,8009 LW T1,E328 (T1) ;T1=spectrum.ROMs ADDIU T6,R0,0001 ADDU T8,T1,T3 SB S6,0001 (T8) LHU T2,00A6 (SP) LUI T1,8009 LW T1,E32C (T1) ADDIU T4,T2,0001 ANDI T0,T4,1800 SRA T9,T0,0x3 ANDI T7,T4,00FF OR T5,T9,T7 ADDU T3,T1,T5 BEQ R0,R0,7F0E27FC SB T6,0000 (T3) //7F0DFAC8: SUBU S0,R0,S0 ANDI T0,S0,00FF LW T8,028C (SP) SLTIU T4,T0,0001 ANDI T6,T0,000F OR S0,T0,R0 ANDI T9,T0,00A8 ADDIU T2,T8,0004 XORI T0,T0,0080 SLT T3,R0,T6 SLL T1,T4,0x6 SW T2,028C (SP) ;cycles+=4 OR T5,T9,T1 SLL T8,T3,0x4 SLTIU T0,T0,0001 SW T4,0048 (SP) SLL T4,T0,0x2 OR T2,T5,T8 OR T7,T2,T4 ORI T9,T7,0002 SLT T1,R0,S0 OR S1,T9,T1 ANDI T6,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T6,R0 //7F0DFB2C: LW T3,028C (SP) LUI T4,8009 LW T4,E328 (T4) ;T4=spectrum.ROMs LHU T2,0292 (SP) ADDIU T5,T3,0004 SW T5,028C (SP) ;cycles+=4 ADDIU T0,T5,0006 SW T0,028C (SP) ;cycles+=6 A total ADDU T1,T4,T2 LBU T6,0001 (T1) ADDU T7,T2,T4 LBU T9,0000 (T7) SLL T3,T6,0x8 ADDIU T8,T2,0002 OR T5,T9,T3 SH T5,0298 (SP) BEQ R0,R0,7F0E27FC SH T8,0292 (SP) //7F0DFB74: LW T0,028C (SP) SB R0,029B (SP) ADDIU T7,T0,0004 BEQ R0,R0,7F0E27FC SW T7,028C (SP) ;cycles+=4 //7F0DBF88: LW T4,028C (SP) LUI T3,8009 LW T3,E328 (T3) ;T3=spectrum.ROMs SLL T6,S6,0x8 OR T9,T6,S7 ADDIU T1,T4,000E SW T1,028C (SP) ;cycles+=E ADDU T5,T9,T3 LBU T2,0000 (T5) SLL T0,S0,0x4 ANDI T1,S0,00F0 SLL T9,S6,0x8 ANDI T4,T2,000F OR S0,T1,T4 OR T3,T9,S7 SRA T8,T2,0x4 OR T7,T0,T8 ANDI T6,S0,00FF SLTI AT,T3,5B00 SB T7,00A4 (SP) OR S0,T6,R0 BNE AT,R0,7F0DFC04 SB T2,00A5 (SP) LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs OR T5,T7,R0 SLL T8,S6,0x8 OR T7,T8,S7 ADDU T2,T0,T7 BEQ R0,R0,7F0DFCAC SB T5,0000 (T2) SLL T1,S6,0x8 OR T4,T1,S7 SLTI AT,T4,5800 BNE AT,R0,7F0DFC54 SLL T3,S6,0x8 LUI T9,8009 LW T9,E328 (T9) ;T9=spectrum.ROMs LBU T6,00A4 (SP) SLL T3,S6,0x8 OR T8,T3,S7 ADDU T0,T9,T8 LUI T5,8009 SB T6,0000 (T0) LW T5,E32C (T5) SLL T2,S6,0x8 OR T1,T2,S7 ADDIU T7,R0,0001 ADDU T4,T5,T1 BEQ R0,R0,7F0DFCAC SB T7,A800 (T4) //7F0DFC54: OR T9,T3,S7 SLTI AT,T9,4000 BNE AT,R0,7F0DFCAC LBU T8,00A4 (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs SLL T0,S6,0x8 OR T2,T0,S7 ADDU T5,T6,T2 SB T8,0000 (T5) SLL T7,S6,0x8 OR T4,T7,S7 LUI T5,8009 LW T5,E32C (T5) ANDI T3,T4,1800 OR T6,T0,S7 ANDI T2,T6,00FF SRA T9,T3,0x3 OR T8,T9,T2 ADDIU T1,R0,0001 ADDU T7,T5,T8 SB T1,0000 (T7) LUI T8,8009 LW T8,E334 (T8) ;T8=8008E334: keyboardtbl SLTIU T4,S0,0001 SW T4,0048 (SP) ADDU T1,S0,T8 LBU T7,0000 (T1) ANDI T3,S1,0001 ANDI T0,S0,00A8 OR T6,T3,T0 SLL T2,T4,0x6 OR T5,T6,T2 OR S1,T7,T5 ANDI T4,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T4,R0 //7F0DFCE8: LW T3,028C (SP) OR A1,S2,R0 OR A2,S3,R0 ADDIU A0,T3,0008 JAL 7F0D36D8 ;V0=input from source A2 using register A1 SW A0,028C (SP) ;cycles+=8 LW T9,028C (SP) ANDI T6,V0,FFFF SRA T2,T6,0x8 SH V0,00A2 (SP) ADDU T8,T9,T2 LBU S7,00A3 (SP) LUI T9,8009 LW T9,E334 (T9) ;T9=8008E334: keyboardtbl SLTIU T1,S7,0001 SW T1,0048 (SP) SW T8,028C (SP) ADDU T2,S7,T9 LBU T8,0000 (T2) ANDI T7,S1,0001 ANDI T5,S7,00A8 OR T4,T7,T5 SLL T0,T1,0x6 OR T6,T4,T0 OR S1,T8,T6 ANDI T1,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T1,R0 //7F0DFD58: LW T7,028C (SP) OR A1,S2,R0 OR A2,S3,R0 ADDIU A0,T7,0008 SW A0,028C (SP) ;cycles+=8 JAL 7F0D37DC ;V0= A3 written to port A2 or 0 if not required OR A3,S7,R0 LW T3,028C (SP) SW V0,0048 (SP) ADDU T0,T3,V0 BEQ R0,R0,7F0E27FC SW T0,028C (SP) //7F0DFD88: SLL T8,S6,0x8 OR T6,T8,S7 SLL T1,S6,0x8 OR T7,T1,S7 ANDI T5,T6,FFFF LW T9,028C (SP) ADDU T3,T7,T5 ANDI T4,S1,0001 ADDU T0,T3,T4 ADDIU T2,T9,000B SRL T8,T0,0x8 SW T2,028C (SP) ;cycles+=B ANDI T1,T8,00A8 ANDI T9,T0,FFFF SRL T7,T0,0x10 SLL T3,S6,0x8 OR T4,T3,S7 OR T5,T1,T7 SLTIU T2,T9,0001 ANDI T9,T4,0FFF ANDI T1,T6,0FFF ADDU T7,T9,T1 ANDI T3,S1,0001 ADDU T4,T7,T3 ADDIU AT,R0,0FFF SLT T8,AT,T4 SLL T9,T8,0x4 OR T1,T5,T9 SLL T7,S6,0x8 OR T3,T7,S7 SLL T8,S6,0x8 NOR T5,T8,S7 OR T9,T6,R0 XOR T7,T5,T9 XOR T4,T3,T0 AND T3,T7,T4 ANDI T8,T3,8000 SH T6,00A0 (SP) SRL T6,T8,0xD OR T5,T1,T6 SLL T9,T2,0x6 OR S1,T5,T9 SRL S6,T0,0x8 ANDI T3,S6,00FF ORI T7,S1,0002 SW T0,009C (SP) LBU S7,009F (SP) ANDI S1,T7,00FF OR S6,T3,R0 BEQ R0,R0,7F0E27FC SW T2,0048 (SP) //7F0DFE54: LW T8,028C (SP) LUI T2,8009 LW T2,E328 (T2) ;T2=spectrum.ROMs LHU T6,0298 (SP) ADDIU T1,T8,0010 SW T1,028C (SP) ;cycles+=10 ADDU T7,T2,T6 LBU T4,0001 (T7) ADDU T5,T6,T2 LBU T9,0000 (T5) SLL T0,T4,0x8 ADDIU T8,T6,0002 OR T3,T9,T0 ANDI T1,T3,FFFF SH T3,009A (SP) SH T8,0298 (SP) ADDU T5,T1,T2 LBU S7,0000 (T5) BEQ R0,R0,7F0E27FC LBU S6,0001 (T5) //7F0DFEA4: SUBU S0,R0,S0 ANDI T9,S0,00FF LW T7,028C (SP) SLTIU T0,T9,0001 ANDI T2,T9,000F OR S0,T9,R0 ANDI T3,T9,00A8 ADDIU T4,T7,0004 XORI T9,T9,0080 SLT T5,R0,T2 SLL T8,T0,0x6 SW T4,028C (SP) ;cycles+=4 OR T1,T3,T8 SLL T7,T5,0x4 SLTIU T9,T9,0001 SW T0,0048 (SP) SLL T0,T9,0x2 OR T4,T1,T7 OR T6,T4,T0 ORI T3,T6,0002 SLT T8,R0,S0 OR S1,T3,T8 ANDI T2,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T2,R0 //7F0DFF08: LW T5,028C (SP) LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs LHU T4,0292 (SP) ADDIU T1,T5,0004 SW T1,028C (SP) ;cycles+=4 ADDIU T9,T1,0006 SW T9,028C (SP) ;cycles+=6 A total ADDU T8,T0,T4 LBU T2,0001 (T8) ADDU T6,T4,T0 LBU T3,0000 (T6) SLL T5,T2,0x8 ADDIU T7,T4,0002 OR T1,T3,T5 SH T1,0298 (SP) BEQ R0,R0,7F0E27FC SH T7,0292 (SP) //7F0DFF50: LW T9,028C (SP) ADDIU T0,R0,0001 SB T0,029B (SP) ADDIU T6,T9,0004 BEQ R0,R0,7F0E27FC SW T6,028C (SP) ;cycles+=4 //7F0DFF68: LW T8,028C (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=spectrum.ROMs SLL T3,S6,0x8 OR T5,T3,S7 ADDIU T2,T8,0005 SW T2,028C (SP) ;cycles+=5 ADDU T4,T5,T1 LBU T7,0000 (T4) ANDI T6,S0,000F ANDI T2,S0,00F0 SLL T5,S6,0x8 SRA T8,T7,0x4 OR S0,T2,T8 OR T1,T5,S7 SLL T9,T7,0x4 OR T0,T6,T9 ANDI T3,S0,00FF SLTI AT,T1,5B00 SB T0,0098 (SP) OR S0,T3,R0 BNE AT,R0,7F0DFFE4 SB T7,0099 (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs OR T4,T0,R0 SLL T9,S6,0x8 OR T0,T9,S7 ADDU T7,T6,T0 BEQ R0,R0,7F0E008C SB T4,0000 (T7) SLL T2,S6,0x8 OR T8,T2,S7 SLTI AT,T8,5800 BNE AT,R0,7F0E0034 SLL T1,S6,0x8 LUI T5,8009 LW T5,E328 (T5) ;T5=spectrum.ROMs LBU T3,0098 (SP) SLL T1,S6,0x8 OR T9,T1,S7 ADDU T6,T5,T9 LUI T4,8009 SB T3,0000 (T6) LW T4,E32C (T4) SLL T7,S6,0x8 OR T2,T7,S7 ADDIU T0,R0,0001 ADDU T8,T4,T2 BEQ R0,R0,7F0E008C SB T0,A800 (T8) OR T5,T1,S7 SLTI AT,T5,4000 BNE AT,R0,7F0E008C LBU T9,0098 (SP) LUI T3,8009 LW T3,E328 (T3) ;T3=spectrum.ROMs SLL T6,S6,0x8 OR T7,T6,S7 ADDU T4,T3,T7 SB T9,0000 (T4) SLL T0,S6,0x8 OR T8,T0,S7 LUI T4,8009 LW T4,E32C (T4) ANDI T1,T8,1800 OR T3,T6,S7 ANDI T7,T3,00FF SRA T5,T1,0x3 OR T9,T5,T7 ADDIU T2,R0,0001 ADDU T0,T4,T9 SB T2,0000 (T0) LUI T9,8009 LW T9,E334 (T9) SLTIU T8,S0,0001 SW T8,0048 (SP) ADDU T2,S0,T9 LBU T0,0000 (T2) ANDI T1,S1,0001 ANDI T6,S0,00A8 OR T3,T1,T6 SLL T7,T8,0x6 OR T4,T3,T7 OR S1,T0,T4 ANDI T8,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T8,R0 //7F0E00C8: LW T1,028C (SP) OR A1,S2,R0 OR A2,S3,R0 ADDIU A0,T1,0008 JAL 7F0D36D8 ;V0=input from source A2 using register A1 SW A0,028C (SP) ;cycles+=8 LW T3,028C (SP) ANDI T8,V0,FFFF SRA T7,T8,0x8 ADDU T9,T3,T7 SW T9,028C (SP) LUI T9,8009 LW T9,E334 (T9) ANDI T2,T8,00FF ANDI T1,T8,00A8 SLTIU T0,T2,0001 SB T8,0097 (SP) ANDI T4,S1,0001 OR T6,T4,T1 SW T0,0048 (SP) SH V0,0094 (SP) ADDU T8,T2,T9 LBU T4,0000 (T8) SLL T3,T0,0x6 OR T7,T6,T3 OR S1,T4,T7 ANDI T1,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T1,R0 //7F0E013C: LW T0,028C (SP) OR A1,S2,R0 OR A2,S3,R0 ADDIU A0,T0,0008 SW A0,028C (SP) ;cycles+=8 JAL 7F0D37DC ;V0= A3 written to port A2 or 0 if not required OR A3,R0,R0 LW T3,028C (SP) SW V0,0048 (SP) ADDU T2,T3,V0 BEQ R0,R0,7F0E27FC SW T2,028C (SP) //7F0E016C: LHU T4,0292 (SP) LW T9,028C (SP) SLL T7,S6,0x8 OR T1,T7,S7 ANDI T6,S1,0001 LUI AT,0001 SUBU T0,T1,T4 SUBU T3,T0,T6 ORI AT,AT,FFFF ADDIU T8,T9,000B SW T8,028C (SP) ;cycles+=B AND T5,T3,AT SRL T8,T5,0x8 ANDI T7,T8,00A8 SRL T1,T5,0x10 OR T0,T7,T1 ANDI T2,T5,FFFF SLTIU T9,T2,0001 ANDI T2,S1,0001 ORI T6,T0,0002 SLL T1,S6,0x8 ANDI T3,T4,0FFF ADDU T7,T3,T2 OR T0,T1,S7 ANDI T3,T0,0FFF SLT T2,T3,T7 SLL T1,T2,0x4 OR T0,T6,T1 SLL T3,S6,0x8 OR T7,T3,S7 SLL T6,S6,0x8 OR T1,T6,S7 XOR T3,T1,T5 XOR T2,T7,T4 AND T7,T2,T3 SH T4,0092 (SP) ANDI T4,T7,8000 SRL T6,T4,0xD SW T5,008C (SP) SLL T5,T9,0x6 OR T1,T0,T6 OR S1,T1,T5 ORI T2,S1,0002 ANDI S1,T2,00FF LBU S7,008F (SP) ANDI S6,T8,00FF BEQ R0,R0,7F0E27FC SW T9,0048 (SP) //7F0E022C: LW T7,028C (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs LHU T0,0298 (SP) ADDIU T4,T7,0010 SW T4,028C (SP) ;cycles+=10 ADDU T5,T6,T0 LBU T2,0001 (T5) ADDU T9,T0,T6 LBU T1,0000 (T9) SLL T3,T2,0x8 ADDIU T7,T0,0002 OR T8,T1,T3 ANDI T4,T8,FFFF SLTI AT,T4,5B00 SH T8,008A (SP) BNE AT,R0,7F0E028C SH T7,0298 (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs LHU T9,0292 (SP) ADDU T5,T6,T4 BEQ R0,R0,7F0E0314 SB T9,0000 (T5) LHU T2,008A (SP) LHU T9,008A (SP) LUI T3,8009 SLTI AT,T2,5800 BNEL AT,R0,7F0E02D4 SLTI AT,T9,4000 LW T3,E328 (T3) ;T3=spectrum.ROMs LHU T1,0292 (SP) LUI T7,8009 ADDU T8,T3,T2 SB T1,0000 (T8) LHU T6,008A (SP) LW T7,E32C (T7) ADDIU T0,R0,0001 ADDU T4,T7,T6 BEQ R0,R0,7F0E0314 SB T0,A800 (T4) SLTI AT,T9,4000 BNE AT,R0,7F0E0314 LUI T3,8009 LW T3,E328 (T3) ;T3=spectrum.ROMs LHU T5,0292 (SP) ADDIU T1,R0,0001 ADDU T2,T3,T9 SB T5,0000 (T2) LHU T8,008A (SP) LUI T3,8009 LW T3,E32C (T3) ANDI T7,T8,1800 SRA T6,T7,0x3 ANDI T0,T8,00FF OR T4,T6,T0 ADDU T9,T3,T4 SB T1,0000 (T9) LHU T5,008A (SP) LHU T3,008A (SP) LHU T7,0292 (SP) ADDIU T2,T5,0001 SLTI AT,T2,5B00 BNE AT,R0,7F0E0348 ADDIU T4,T3,0001 LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs SRA T8,T7,0x8 ADDU T0,T6,T5 BEQ R0,R0,7F0E27FC SB T8,0001 (T0) SLTI AT,T4,5800 BNE AT,R0,7F0E0388 LHU T4,008A (SP) LUI T2,8009 LW T2,E328 (T2) ;T2=spectrum.ROMs LHU T1,0292 (SP) LUI T5,8009 ADDU T7,T2,T3 SRA T9,T1,0x8 SB T9,0001 (T7) LHU T8,008A (SP) LW T5,E32C (T5) ADDIU T6,R0,0001 ADDU T0,T5,T8 BEQ R0,R0,7F0E27FC SB T6,A801 (T0) ADDIU T1,T4,0001 SLTI AT,T1,4000 BNE AT,R0,7F0E27FC LHU T2,0292 (SP) LUI T9,8009 LW T9,E328 (T9) ;T9=spectrum.ROMs SRA T3,T2,0x8 ADDIU T5,R0,0001 ADDU T7,T9,T4 SB T3,0001 (T7) LHU T8,008A (SP) LUI T4,8009 LW T4,E32C (T4) ADDIU T6,T8,0001 ANDI T0,T6,1800 SRA T1,T0,0x3 ANDI T2,T6,00FF OR T9,T1,T2 ADDU T3,T4,T9 BEQ R0,R0,7F0E27FC SB T5,0000 (T3) //7F0E03DC: SUBU S0,R0,S0 ANDI T0,S0,00FF LW T7,028C (SP) SLTIU T6,T0,0001 ANDI T5,T0,000F OR S0,T0,R0 ANDI T1,T0,00A8 ADDIU T8,T7,0004 XORI T0,T0,0080 SLT T3,R0,T5 SLL T4,T6,0x6 SW T8,028C (SP) ;cycles+=4 OR T9,T1,T4 SLL T7,T3,0x4 SLTIU T0,T0,0001 SW T6,0048 (SP) SLL T6,T0,0x2 OR T8,T9,T7 OR T2,T8,T6 ORI T1,T2,0002 SLT T4,R0,S0 OR S1,T1,T4 ANDI T5,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T5,R0 //7F0E0440: LW T3,028C (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs LHU T8,0292 (SP) ADDIU T9,T3,0004 SW T9,028C (SP) ;cycles+=4 ADDIU T0,T9,0006 SW T0,028C (SP) ;cycles+=6 A total ADDU T4,T6,T8 LBU T5,0001 (T4) ADDU T2,T8,T6 LBU T1,0000 (T2) SLL T3,T5,0x8 ADDIU T7,T8,0002 OR T9,T1,T3 SH T9,0298 (SP) BEQ R0,R0,7F0E27FC SH T7,0292 (SP) //7F0E0488: LW T0,028C (SP) ADDIU T6,R0,0002 SB T6,029B (SP) ADDIU T2,T0,0004 BEQ R0,R0,7F0E27FC SW T2,028C (SP) ;cycles+=4 //7F0E04A0: ED.78: IN A,(C) LW T4,028C (SP) OR A1,S2,R0 ;A1= spec.B OR A2,S3,R0 ;A2= spec.C ADDIU A0,T4,0008 JAL 7F0D36D8 ;V0=input from source A2 using register A1 SW A0,028C (SP) ;cycles+=8 LW T1,028C (SP) ANDI T3,V0,FFFF SRA T9,T3,0x8 SH V0,0088 (SP) ADDU T8,T1,T9 LBU S0,0089 (SP) ;spec.A= input LUI T1,8009 LW T1,E334 (T1) SLTIU T7,S0,0001 SW T7,0048 (SP) SW T8,028C (SP) ADDU T9,S0,T1 LBU T8,0000 (T9) ANDI T0,S1,0001 ANDI T2,S0,00A8 OR T6,T0,T2 SLL T5,T7,0x6 OR T3,T6,T5 OR S1,T8,T3 ANDI T7,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T7,R0 //7F0E0510: LW T0,028C (SP) OR A1,S2,R0 OR A2,S3,R0 ADDIU A0,T0,0008 SW A0,028C (SP) ;cycles+=8 JAL 7F0D37DC ;V0= A3 written to port A2 or 0 if not required OR A3,S0,R0 LW T4,028C (SP) SW V0,0048 (SP) ADDU T5,T4,V0 BEQ R0,R0,7F0E27FC SW T5,028C (SP) //7F0E0540: LHU T8,0292 (SP) SLL T3,S6,0x8 LW T1,028C (SP) OR T7,T3,S7 ANDI T2,S1,0001 ADDU T0,T7,T8 ADDU T4,T0,T2 ADDIU T9,T1,000B SW T9,028C (SP) ;cycles+=B SRL T1,T4,0x8 ANDI T9,T1,00A8 ANDI T6,T4,FFFF SRL T3,T4,0x10 SLL T0,S6,0x8 OR T2,T0,S7 OR T7,T9,T3 SLTIU T5,T6,0001 ANDI T6,T2,0FFF ANDI T9,T8,0FFF ADDU T3,T6,T9 ANDI T0,S1,0001 ADDU T2,T3,T0 ADDIU AT,R0,0FFF SLT T6,AT,T2 SLL T9,T6,0x4 OR T3,T7,T9 SLL T0,S6,0x8 NOR T2,T0,S7 SLL T7,S6,0x8 OR T9,T7,S7 XOR T0,T9,T4 XOR T6,T2,T8 AND T2,T6,T0 SH T8,0086 (SP) ANDI T8,T2,8000 SRL T7,T8,0xD SW T4,0080 (SP) SLL T4,T5,0x6 OR T9,T3,T7 OR S1,T9,T4 ORI T6,S1,0002 ANDI S1,T6,00FF LBU S7,0083 (SP) ANDI S6,T1,00FF BEQ R0,R0,7F0E27FC SW T5,0048 (SP) //7F0E05F8: LW T2,028C (SP) LUI T7,8009 LW T7,E328 (T7) ;T7=spectrum.ROMs LHU T3,0298 (SP) ADDIU T8,T2,0010 SW T8,028C (SP) ;cycles+=10 ADDU T4,T7,T3 LBU T6,0001 (T4) ADDU T5,T3,T7 LBU T9,0000 (T5) SLL T0,T6,0x8 ADDIU T2,T3,0002 OR T1,T9,T0 ANDI T8,T1,FFFF SH T1,007E (SP) SH T2,0298 (SP) ADDU T6,T7,T8 LBU T9,0001 (T6) ADDU T5,T8,T7 LBU T4,0000 (T5) SLL T0,T9,0x8 OR T1,T4,T0 BEQ R0,R0,7F0E27FC SH T1,0292 (SP) //7F0E0658: SUBU S0,R0,S0 ANDI T5,S0,00FF LW T3,028C (SP) SLTIU T7,T5,0001 ANDI T0,T5,000F OR S0,T5,R0 ANDI T8,T5,00A8 ADDIU T2,T3,0004 XORI T5,T5,0080 SLT T1,R0,T0 SLL T9,T7,0x6 SW T2,028C (SP) ;cycles+=4 OR T4,T8,T9 SLL T3,T1,0x4 SLTIU T5,T5,0001 SW T7,0048 (SP) SLL T7,T5,0x2 OR T2,T4,T3 OR T6,T2,T7 ORI T8,T6,0002 SLT T9,R0,S0 OR S1,T8,T9 ANDI T0,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T0,R0 //7F0E06BC: LW T1,028C (SP) LUI T7,8009 LW T7,E328 (T7) ;T7=spectrum.ROMs LHU T2,0292 (SP) ADDIU T4,T1,0004 SW T4,028C (SP) ;cycles+=4 ADDIU T5,T4,0006 SW T5,028C (SP) ;cycles+=6 A total ADDU T9,T7,T2 LBU T0,0001 (T9) ADDU T6,T2,T7 LBU T8,0000 (T6) SLL T1,T0,0x8 ADDIU T3,T2,0002 OR T4,T8,T1 SH T4,0298 (SP) BEQ R0,R0,7F0E27FC SH T3,0292 (SP) //7F0E0704: LW T5,028C (SP) ADDIU T7,R0,0003 SB T7,029B (SP) ADDIU T6,T5,0004 BEQ R0,R0,7F0E27FC SW T6,028C (SP) ;cycles+=4 //7F0E071C: LW T9,028C (SP) LUI T4,8009 LW T4,E328 (T4) ;T4=spectrum.ROMs SLL T8,S6,0x8 OR T1,T8,S7 ADDIU T0,T9,000C SW T0,028C (SP) ;cycles+=C SLL T5,S4,0x8 ADDU T2,T1,T4 LBU T3,0000 (T2) OR T6,T5,S5 SLTI AT,T6,5B00 BNE AT,R0,7F0E0770 SB T3,007D (SP) LUI T9,8009 LW T9,E328 (T9) ;T9=spectrum.ROMs SLL T0,S4,0x8 OR T8,T0,S5 ADDU T1,T9,T8 BEQ R0,R0,7F0E0818 SB T3,0000 (T1) //7F0E0770: SLL T4,S4,0x8 OR T2,T4,S5 SLTI AT,T2,5800 BNE AT,R0,7F0E07C0 SLL T6,S4,0x8 LUI T5,8009 LW T5,E328 (T5) ;T5=spectrum.ROMs LBU T3,007D (SP) SLL T6,S4,0x8 OR T0,T6,S5 ADDU T9,T5,T0 LUI T7,8009 SB T3,0000 (T9) LW T7,E32C (T7) SLL T1,S4,0x8 OR T4,T1,S5 ADDIU T8,R0,0001 ADDU T2,T7,T4 BEQ R0,R0,7F0E0818 SB T8,A800 (T2) //7F0E07C0: OR T5,T6,S5 SLTI AT,T5,4000 BNE AT,R0,7F0E0818 LBU T0,007D (SP) LUI T3,8009 LW T3,E328 (T3) ;T3=spectrum.ROMs SLL T9,S4,0x8 OR T1,T9,S5 ADDU T7,T3,T1 SB T0,0000 (T7) SLL T8,S4,0x8 OR T2,T8,S5 LUI T7,8009 LW T7,E32C (T7) ANDI T6,T2,1800 OR T3,T9,S5 ANDI T1,T3,00FF SRA T5,T6,0x3 OR T0,T5,T1 ADDIU T4,R0,0001 ADDU T8,T7,T0 SB T4,0000 (T8) ADDIU S7,S7,0001 ANDI T2,S7,00FF BNE T2,R0,7F0E0834 OR S7,T2,R0 ADDIU S6,S6,0001 ANDI T6,S6,00FF OR S6,T6,R0 //7F0E0834: ADDIU S5,S5,0001 ANDI T9,S5,00FF BNE T9,R0,7F0E0850 OR S5,T9,R0 ADDIU S4,S4,0001 ANDI T3,S4,00FF OR S4,T3,R0 //7F0E0850: SLTIU T5,S3,0001 ADDIU S3,S3,FFFF ANDI T1,S3,00FF OR S3,T1,R0 BEQ T5,R0,7F0E0874 SW T5,0048 (SP) ADDIU S2,S2,FFFF ANDI T0,S2,00FF OR S2,T0,R0 //7F0E0874: LBU T8,007D (SP) OR T9,S2,S3 SLT T3,R0,T9 ANDI T4,S1,00C1 ANDI T2,T8,0028 OR T6,T4,T2 SLL T5,T3,0x2 OR S1,T6,T5 ANDI T1,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T1,R0 //7F0E08A0: LW T7,028C (SP) LUI T9,8009 LW T9,E328 (T9) ;T9=spectrum.ROMs SLL T4,S6,0x8 ANDI T8,S1,0001 OR T2,T4,S7 ADDIU T0,T7,000C SW T0,028C (SP) ;cycles+=C SB T8,007C (SP) ADDU T3,T2,T9 LBU T6,0000 (T3) ADDIU S7,S7,0001 SUBU T5,S0,T6 ANDI T1,T5,01FF ANDI T7,T1,FFFF SLTIU T0,T7,0001 ANDI T7,S0,000F ANDI T5,T6,000F SLT T8,T7,T5 ANDI T4,T1,00A8 SRA T9,T1,0x8 OR T3,T4,T9 SLL T2,T8,0x4 OR T5,T1,R0 XOR T9,S0,T6 ANDI T7,T9,0080 XOR T8,T5,S0 OR T4,T3,T2 AND T3,T7,T8 SRA T2,T3,0x5 SB T6,0079 (SP) OR T6,T4,T2 SH T1,007A (SP) SLL T1,T0,0x6 ORI T9,T6,0002 OR S1,T9,T1 ANDI T5,S1,00FF ANDI T7,S7,00FF OR S1,T5,R0 SW T0,0048 (SP) BNE T7,R0,7F0E0954 OR S7,T7,R0 ADDIU S6,S6,0001 ANDI T8,S6,00FF OR S6,T8,R0 //7F0E0954: SLTIU T3,S3,0001 ADDIU S3,S3,FFFF ANDI T4,S3,00FF OR S3,T4,R0 BEQ T3,R0,7F0E0978 SW T3,0048 (SP) ADDIU S2,S2,FFFF ANDI T6,S2,00FF OR S2,T6,R0 LBU T9,007C (SP) OR T5,S2,S3 SLT T7,R0,T5 ANDI T0,S1,00FA SLL T8,T7,0x2 OR T1,T0,T9 OR S1,T1,T8 ANDI T3,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T3,R0 //7F0E09A0: LW T4,028C (SP) OR A1,S2,R0 OR A2,S3,R0 ADDIU A0,T4,000C JAL 7F0D36D8 ;V0=input from source A2 using register A1 SW A0,028C (SP) ;cycles+=C SLL T6,S6,0x8 OR T0,T6,S7 SLTI AT,T0,5B00 BNE AT,R0,7F0E09E8 SH V0,0076 (SP) LUI T5,8009 LW T5,E328 (T5) ;T5=spectrum.ROMs SLL T7,S6,0x8 OR T1,T7,S7 ADDU T8,T5,T1 BEQ R0,R0,7F0E0A90 SB V0,0000 (T8) //7F0E09E8: SLL T3,S6,0x8 OR T4,T3,S7 SLTI AT,T4,5800 BNE AT,R0,7F0E0A38 SLL T0,S6,0x8 LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs LHU T2,0076 (SP) SLL T0,S6,0x8 OR T7,T0,S7 ADDU T5,T6,T7 LUI T9,8009 SB T2,0000 (T5) LW T9,E32C (T9) SLL T8,S6,0x8 OR T3,T8,S7 ADDIU T1,R0,0001 ADDU T4,T9,T3 BEQ R0,R0,7F0E0A90 SB T1,A800 (T4) //7F0E0A38: OR T6,T0,S7 SLTI AT,T6,4000 BNE AT,R0,7F0E0A90 LHU T7,0076 (SP) LUI T2,8009 LW T2,E328 (T2) ;T2=spectrum.ROMs SLL T5,S6,0x8 OR T8,T5,S7 ADDU T9,T2,T8 SB T7,0000 (T9) SLL T1,S6,0x8 OR T4,T1,S7 LUI T9,8009 LW T9,E32C (T9) ANDI T0,T4,1800 OR T2,T5,S7 ANDI T8,T2,00FF SRA T6,T0,0x3 OR T7,T6,T8 ADDIU T3,R0,0001 ADDU T1,T9,T7 SB T3,0000 (T1) //7F0E0A90: LHU T0,0076 (SP) LW T4,028C (SP) ADDIU S7,S7,0001 SRA T5,T0,0x8 ANDI T6,S7,00FF ADDU T2,T4,T5 SW T2,028C (SP) BNE T6,R0,7F0E0AC0 OR S7,T6,R0 ADDIU S6,S6,0001 ANDI T8,S6,00FF OR S6,T8,R0 //7F0E0AC0: LUI T5,8009 LW T5,E334 (T5) ADDIU S2,S2,FFFF ANDI T9,S2,00FF ADDU T2,T9,T5 LBU T6,0000 (T2) SLT T3,R0,T9 SLL T1,T3,0x6 ANDI T7,T9,00A8 OR S2,T9,R0 OR T0,T7,T1 XOR T8,T6,S3 ANDI T9,T8,0004 ORI T4,T0,0002 OR S1,T9,T4 ANDI T3,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T3,R0 //7F0E0B08: LW T7,028C (SP) LUI T2,8009 LW T2,E328 (T2) ;T2=spectrum.ROMs SLL T0,S6,0x8 OR T5,T0,S7 ADDIU A0,T7,000C SW A0,028C (SP) ;cycles+=C ADDU T6,T5,T2 LBU A3,0000 (T6) OR A1,S2,R0 OR A2,S3,R0 JAL 7F0D37DC ;V0= A3 written to port A2 or 0 if not required SB A3,0075 (SP) LW T9,028C (SP) ADDIU S7,S7,0001 ANDI T7,S7,00FF ADDU T3,T9,V0 SW T3,028C (SP) SW V0,0048 (SP) BNE T7,R0,7F0E0B68 OR S7,T7,R0 ADDIU S6,S6,0001 ANDI T0,S6,00FF OR S6,T0,R0 //7F0E0B68: ADDIU S2,S2,FFFF ANDI T5,S2,00FF ANDI T2,S1,0001 ORI T6,T2,0012 ANDI T1,T5,00A8 SLTIU T9,T5,0001 SLL T4,T9,0x6 OR T8,T6,T1 OR S1,T8,T4 ANDI T3,S1,00FF OR S2,T5,R0 BEQ R0,R0,7F0E27FC OR S1,T3,R0 //7F0E0B9C: LW T7,028C (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs SLL T5,S6,0x8 OR T2,T5,S7 ADDIU T0,T7,000C SW T0,028C (SP) ;cycles+=C SLL T8,S4,0x8 ADDU T1,T2,T6 LBU T9,0000 (T1) OR T4,T8,S5 SLTI AT,T4,5B00 BNE AT,R0,7F0E0BF0 SB T9,0074 (SP) LUI T7,8009 LW T7,E328 (T7) ;T7=spectrum.ROMs SLL T0,S4,0x8 OR T5,T0,S5 ADDU T2,T7,T5 BEQ R0,R0,7F0E0C98 SB T9,0000 (T2) //7F0E0BF0: SLL T6,S4,0x8 OR T1,T6,S5 SLTI AT,T1,5800 BNE AT,R0,7F0E0C40 SLL T4,S4,0x8 LUI T8,8009 LW T8,E328 (T8) ;T8=spectrum.ROMs LBU T9,0074 (SP) SLL T4,S4,0x8 OR T0,T4,S5 ADDU T7,T8,T0 LUI T3,8009 SB T9,0000 (T7) LW T3,E32C (T3) SLL T2,S4,0x8 OR T6,T2,S5 ADDIU T5,R0,0001 ADDU T1,T3,T6 BEQ R0,R0,7F0E0C98 SB T5,A800 (T1) //7F0E0C40: OR T8,T4,S5 SLTI AT,T8,4000 BNE AT,R0,7F0E0C98 LBU T0,0074 (SP) LUI T9,8009 LW T9,E328 (T9) ;T9=spectrum.ROMs SLL T7,S4,0x8 OR T2,T7,S5 ADDU T3,T9,T2 SB T0,0000 (T3) SLL T5,S4,0x8 OR T1,T5,S5 LUI T3,8009 LW T3,E32C (T3) ANDI T4,T1,1800 OR T9,T7,S5 ANDI T2,T9,00FF SRA T8,T4,0x3 OR T0,T8,T2 ADDIU T6,R0,0001 ADDU T5,T3,T0 SB T6,0000 (T5) SLTIU T1,S7,0001 ADDIU S7,S7,FFFF ANDI T4,S7,00FF OR S7,T4,R0 BEQ T1,R0,7F0E0CBC SW T1,0048 (SP) ADDIU S6,S6,FFFF ANDI T9,S6,00FF OR S6,T9,R0 SLTIU T8,S5,0001 ADDIU S5,S5,FFFF ANDI T2,S5,00FF OR S5,T2,R0 BEQ T8,R0,7F0E0CE0 SW T8,0048 (SP) ADDIU S4,S4,FFFF ANDI T0,S4,00FF OR S4,T0,R0 //7F0E0CE0: SLTIU T6,S3,0001 ADDIU S3,S3,FFFF ANDI T5,S3,00FF OR S3,T5,R0 BEQ T6,R0,7F0E0D04 SW T6,0048 (SP) ADDIU S2,S2,FFFF ANDI T4,S2,00FF OR S2,T4,R0 LBU T9,0074 (SP) OR T3,S2,S3 SLT T0,R0,T3 ANDI T7,S1,00C1 ANDI T8,T9,0028 OR T2,T7,T8 SLL T6,T0,0x2 OR S1,T2,T6 ANDI T5,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T5,R0 //7F0E0D30: LW T1,028C (SP) LUI T3,8009 LW T3,E328 (T3) ;T3=spectrum.ROMs SLL T7,S6,0x8 ANDI T9,S1,0001 OR T8,T7,S7 ADDIU T4,T1,000C SW T4,028C (SP) ;cycles+=C SB T9,0073 (SP) ADDU T0,T8,T3 LBU T2,0000 (T0) SUBU T6,S0,T2 ANDI T5,T6,01FF ANDI T1,T5,FFFF SLTIU T4,T1,0001 ANDI T1,S0,000F ANDI T6,T2,000F SLT T9,T1,T6 ANDI T7,T5,00A8 SRA T3,T5,0x8 OR T0,T7,T3 SLL T8,T9,0x4 OR T6,T5,R0 XOR T3,S0,T2 ANDI T1,T3,0080 XOR T9,T6,S0 OR T7,T0,T8 AND T0,T1,T9 SRA T8,T0,0x5 SB T2,006F (SP) OR T2,T7,T8 SH T5,0070 (SP) SLL T5,T4,0x6 ORI T3,T2,0002 SLTIU T1,S7,0001 OR S1,T3,T5 ADDIU S7,S7,FFFF ANDI T6,S1,00FF SW T4,0048 (SP) ANDI T9,S7,00FF OR S1,T6,R0 OR S7,T9,R0 BEQ T1,R0,7F0E0DEC SW T1,0048 (SP) ADDIU S6,S6,FFFF ANDI T7,S6,00FF OR S6,T7,R0 //7F0E0DEC: SLTIU T8,S3,0001 ADDIU S3,S3,FFFF ANDI T2,S3,00FF OR S3,T2,R0 BEQ T8,R0,7F0E0E10 SW T8,0048 (SP) ADDIU S2,S2,FFFF ANDI T3,S2,00FF OR S2,T3,R0 //7F0E0E10: LBU T6,0073 (SP) OR T9,S2,S3 SLT T0,R0,T9 ANDI T5,S1,00FA SLL T7,T0,0x2 OR T1,T5,T6 OR S1,T1,T7 ANDI T8,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T8,R0 //7F0E0E38: LW T2,028C (SP) OR A1,S2,R0 OR A2,S3,R0 ADDIU A0,T2,000C JAL 7F0D36D8 ;V0=input from source A2 using register A1 SW A0,028C (SP) ;cycles+=C SLL T3,S6,0x8 OR T5,T3,S7 SLTI AT,T5,5B00 BNE AT,R0,7F0E0E80 SH V0,006C (SP) LUI T9,8009 LW T9,E328 (T9) ;T9=spectrum.ROMs SLL T0,S6,0x8 OR T1,T0,S7 ADDU T7,T9,T1 BEQ R0,R0,7F0E0F28 SB V0,0000 (T7) //7F0E0E80: SLL T8,S6,0x8 OR T2,T8,S7 SLTI AT,T2,5800 BNE AT,R0,7F0E0ED0 SLL T5,S6,0x8 LUI T3,8009 LW T3,E328 (T3) ;T3=spectrum.ROMs LHU T4,006C (SP) SLL T5,S6,0x8 OR T0,T5,S7 ADDU T9,T3,T0 LUI T6,8009 SB T4,0000 (T9) LW T6,E32C (T6) SLL T7,S6,0x8 OR T8,T7,S7 ADDIU T1,R0,0001 ADDU T2,T6,T8 BEQ R0,R0,7F0E0F28 SB T1,A800 (T2) //7F0E0ED0: OR T3,T5,S7 SLTI AT,T3,4000 BNE AT,R0,7F0E0F28 LHU T0,006C (SP) LUI T4,8009 LW T4,E328 (T4) ;T4=spectrum.ROMs SLL T9,S6,0x8 OR T7,T9,S7 ADDU T6,T4,T7 SB T0,0000 (T6) SLL T1,S6,0x8 OR T2,T1,S7 LUI T6,8009 LW T6,E32C (T6) ANDI T5,T2,1800 OR T4,T9,S7 ANDI T7,T4,00FF SRA T3,T5,0x3 OR T0,T3,T7 ADDIU T8,R0,0001 ADDU T1,T6,T0 SB T8,0000 (T1) //7F0E0F28: LHU T5,006C (SP) LW T2,028C (SP) SLTIU T3,S7,0001 ADDIU S7,S7,FFFF SRA T9,T5,0x8 ANDI T7,S7,00FF ADDU T4,T2,T9 SW T4,028C (SP) OR S7,T7,R0 BEQ T3,R0,7F0E0F60 SW T3,0048 (SP) ADDIU S6,S6,FFFF ANDI T0,S6,00FF OR S6,T0,R0 LUI T3,8009 LW T3,E334 (T3) ADDIU S2,S2,FFFF ANDI T8,S2,00FF ADDU T7,T8,T3 LBU T6,0000 (T7) ANDI T1,T8,00A8 SLT T5,R0,T8 OR S2,T8,R0 SLL T2,T5,0x6 XOR T0,T6,S3 XORI T8,T0,0004 OR T9,T1,T2 ORI T4,T9,0002 ANDI T5,T8,0004 OR S1,T5,T4 ANDI T1,S1,00FF BEQ R0,R0,7F0E27FC OR S1,T1,R0 //7F0E0F9C: LW T2,028C (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs SLL T3,S6,0x8 OR T7,T3,S7 ADDIU A0,T2,000C SW A0,028C (SP) ;cycles+=C ADDU T0,T7,T6 LBU A3,0000 (T0) OR A1,S2,R0 OR A2,S3,R0 JAL 7F0D37DC ;V0= A3 written to port A2 or 0 if not required SB A3,006B (SP) LW T5,028C (SP) SLTIU T2,S7,0001 ADDIU S7,S7,FFFF SW V0,0048 (SP) ANDI T3,S7,00FF ADDU T1,T5,V0 SW T1,028C (SP) OR S7,T3,R0 BEQ T2,R0,7F0E1014 SW T2,0048 (SP) ADDIU S6,S6,FFFF ANDI T6,S6,00FF OR S6,T6,R0 ADDIU S2,S2,FFFF ANDI T0,S2,00FF ANDI T9,S1,0001 ORI T8,T9,0012 ANDI T5,T0,00A8 SLTIU T1,T0,0001 SLL T2,T1,0x6 OR T4,T8,T5 OR S1,T4,T2 ANDI T3,S1,00FF OR S2,T0,R0 BEQ R0,R0,7F0E27FC OR S1,T3,R0 //7F0E1038: LW T7,028C (SP) LUI T8,8009 LW T8,E328 (T8) ;T8=spectrum.ROMs SLL T0,S6,0x8 OR T9,T0,S7 ADDIU T6,T7,000C SW T6,028C (SP) ;cycles+=C SLL T4,S4,0x8 ADDU T5,T9,T8 LBU T1,0000 (T5) OR T2,T4,S5 SLTI AT,T2,5B00 BNE AT,R0,7F0E109C SB T1,006A (SP) LUI T7,8009 LW T7,E328 (T7) ;T7=spectrum.ROMs SLL T6,S4,0x8 OR T0,T6,S5 ADDU T9,T7,T0 BEQ R0,R0,7F0E1144 SB T1,0000 (T9) //7F0E109C: SLL T8,S4,0x8 OR T5,T8,S5 SLTI AT,T5,5800 BNE AT,R0,7F0E10EC SLL T2,S4,0x8 LUI T4,8009 LW T4,E328 (T4) ;T4=spectrum.ROMs LBU T1,006A (SP) SLL T2,S4,0x8 OR T6,T2,S5 ADDU T7,T4,T6 LUI T3,8009 SB T1,0000 (T7) LW T3,E32C (T3) SLL T9,S4,0x8 OR T8,T9,S5 ADDIU T0,R0,0001 ADDU T5,T3,T8 BEQ R0,R0,7F0E1144 SB T0,A800 (T5) //7F0E10EC: OR T4,T2,S5 SLTI AT,T4,4000 BNE AT,R0,7F0E1144 LBU T6,006A (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=spectrum.ROMs SLL T7,S4,0x8 OR T9,T7,S5 ADDU T3,T1,T9 SB T6,0000 (T3) SLL T0,S4,0x8 OR T5,T0,S5 LUI T3,8009 LW T3,E32C (T3) ANDI T2,T5,1800 OR T1,T7,S5 ANDI T9,T1,00FF SRA T4,T2,0x3 OR T6,T4,T9 ADDIU T8,R0,0001 ADDU T0,T3,T6 SB T8,0000 (T0) ADDIU S7,S7,0001 ANDI T5,S7,00FF BNE T5,R0,7F0E1160 OR S7,T5,R0 ADDIU S6,S6,0001 ANDI T2,S6,00FF OR S6,T2,R0 ADDIU S5,S5,0001 ANDI T7,S5,00FF BNE T7,R0,7F0E117C OR S5,T7,R0 ADDIU S4,S4,0001 ANDI T1,S4,00FF OR S4,T1,R0 SLTIU T4,S3,0001 ADDIU S3,S3,FFFF ANDI T9,S3,00FF OR S3,T9,R0 BEQ T4,R0,7F0E11A0 SW T4,0048 (SP) ADDIU S2,S2,FFFF ANDI T6,S2,00FF OR S2,T6,R0 //7F0E11A0: LBU T0,006A (SP) OR T7,S2,S3 SLT T1,R0,T7 ANDI T8,S1,00C1 ANDI T5,T0,0028 OR T2,T8,T5 SLL T4,T1,0x2 OR S1,T2,T4 ANDI T9,S1,00FF OR T3,S2,S3 BEQ T3,R0,7F0E27FC OR S1,T9,R0 LHU T6,0298 (SP) LW T8,028C (SP) ADDIU T0,T6,FFFE ADDIU T5,T8,0005 SW T5,028C (SP) ;cycles+=5 BEQ R0,R0,7F0E27FC SH T0,0298 (SP) //7F0E11EC: LW T7,028C (SP) LUI T3,8009 LW T3,E328 (T3) ;T3=spectrum.ROMs SLL T4,S6,0x8 ANDI T2,S1,0001 OR T9,T4,S7 ADDIU T1,T7,000C SW T1,028C (SP) ;cycles+=C SB T2,0069 (SP) ADDU T6,T9,T3 LBU T0,0000 (T6) ADDIU S7,S7,0001 ADDIU AT,R0,0004 SUBU T8,S0,T0 ANDI T5,T8,01FF ANDI T7,T5,FFFF SLTIU T1,T7,0001 ANDI T7,S0,000F ANDI T8,T0,000F SLT T2,T7,T8 ANDI T4,T5,00A8 SRA T3,T5,0x8 OR T6,T4,T3 SLL T9,T2,0x4 OR T8,T5,R0 XOR T3,S0,T0 ANDI T7,T3,0080 XOR T2,T8,S0 OR T4,T6,T9 AND T6,T7,T2 SRA T9,T6,0x5 SB T0,0065 (SP) OR T0,T4,T9 SH T5,0066 (SP) SLL T5,T1,0x6 ORI T3,T0,0002 OR S1,T3,T5 ANDI T8,S1,00FF ANDI T7,S7,00FF OR S1,T8,R0 SW T1,0048 (SP) BNE T7,R0,7F0E12A4 OR S7,T7,R0 ADDIU S6,S6,0001 ANDI T2,S6,00FF OR S6,T2,R0 //7F0E12A4: SLTIU T6,S3,0001 ADDIU S3,S3,FFFF ANDI T4,S3,00FF OR S3,T4,R0 BEQ T6,R0,7F0E12C8 SW T6,0048 (SP) ADDIU S2,S2,FFFF ANDI T0,S2,00FF OR S2,T0,R0 LBU T3,0069 (SP) OR T8,S2,S3 SLT T7,R0,T8 ANDI T1,S1,00FA SLL T2,T7,0x2 OR T5,T1,T3 OR S1,T5,T2 ANDI T6,S1,00FF ANDI T4,T6,0044 BNE T4,AT,7F0E27FC OR S1,T6,R0 LHU T9,0298 (SP) LW T1,028C (SP) ADDIU T0,T9,FFFE ADDIU T3,T1,0005 SW T3,028C (SP) ;cycles+=5 BEQ R0,R0,7F0E27FC SH T0,0298 (SP) //7F0E1310: LW T8,028C (SP) OR A1,S2,R0 OR A2,S3,R0 ADDIU A0,T8,000C JAL 7F0D36D8 ;V0=input from source A2 using register A1 SW A0,028C (SP) ;cycles+=C SLL T5,S6,0x8 OR T2,T5,S7 SLTI AT,T2,5B00 BNE AT,R0,7F0E1358 SH V0,0062 (SP) LUI T4,8009 LW T4,E328 (T4) ;T4=spectrum.ROMs SLL T9,S6,0x8 OR T0,T9,S7 ADDU T1,T4,T0 BEQ R0,R0,7F0E1400 SB V0,0000 (T1) //7F0E1358: SLL T3,S6,0x8 OR T8,T3,S7 SLTI AT,T8,5800 BNE AT,R0,7F0E13A8 SLL T2,S6,0x8 LUI T5,8009 LW T5,E328 (T5) ;T5=spectrum.ROMs LHU T7,0062 (SP) SLL T2,S6,0x8 OR T9,T2,S7 ADDU T4,T5,T9 LUI T6,8009 SB T7,0000 (T4) LW T6,E32C (T6) SLL T1,S6,0x8 OR T3,T1,S7 ADDIU T0,R0,0001 ADDU T8,T6,T3 BEQ R0,R0,7F0E1400 SB T0,A800 (T8) //7F0E13A8: OR T5,T2,S7 SLTI AT,T5,4000 BNE AT,R0,7F0E1400 LHU T9,0062 (SP) LUI T7,8009 LW T7,E328 (T7) ;T7=spectrum.ROMs SLL T4,S6,0x8 OR T1,T4,S7 ADDU T6,T7,T1 SB T9,0000 (T6) SLL T0,S6,0x8 OR T8,T0,S7 LUI T6,8009 LW T6,E32C (T6) ANDI T2,T8,1800 OR T7,T4,S7 ANDI T1,T7,00FF SRA T5,T2,0x3 OR T9,T5,T1 ADDIU T3,R0,0001 ADDU T0,T6,T9 SB T3,0000 (T0) //7F0E1400: LHU T2,0062 (SP) LW T8,028C (SP) ADDIU S7,S7,0001 SRA T4,T2,0x8 ANDI T5,S7,00FF ADDU T7,T8,T4 SW T7,028C (SP) BNE T5,R0,7F0E1430 OR S7,T5,R0 ADDIU S6,S6,0001 ANDI T1,S6,00FF OR S6,T1,R0 //7F0E1430: LUI T4,8009 LW T4,E334 (T4) ADDIU S2,S2,FFFF ANDI T6,S2,00FF ADDU T7,T6,T4 LBU T5,0000 (T7) SLT T3,R0,T6 SLL T0,T3,0x6 ANDI T9,T6,00A8 OR S2,T6,R0 OR T2,T9,T0 XOR T1,T5,S3 ANDI T6,T1,0004 ORI T8,T2,0002 OR S1,T6,T8 ANDI T3,S1,00FF BEQ S2,R0,7F0E27FC OR S1,T3,R0 LHU T9,0298 (SP) LW T2,028C (SP) ADDIU T0,T9,FFFE ADDIU T4,T2,0005 SW T4,028C (SP) ;cycles+=5 BEQ R0,R0,7F0E27FC SH T0,0298 (SP) //7F0E1494: LW T7,028C (SP) LUI T8,8009 LW T8,E328 (T8) ;T8=spectrum.ROMs SLL T1,S6,0x8 OR T6,T1,S7 ADDIU A0,T7,000C SW A0,028C (SP) ;cycles+=C ADDU T3,T6,T8 LBU A3,0000 (T3) OR A1,S2,R0 OR A2,S3,R0 JAL 7F0D37DC ;V0= A3 written to port A2 or 0 if not required SB A3,0061 (SP) LW T0,028C (SP) ADDIU S7,S7,0001 ANDI T7,S7,00FF ADDU T4,T0,V0 SW T4,028C (SP) SW V0,0048 (SP) BNE T7,R0,7F0E14F4 OR S7,T7,R0 ADDIU S6,S6,0001 ANDI T1,S6,00FF OR S6,T1,R0 //7F0E14F4: ADDIU S2,S2,FFFF ANDI T6,S2,00FF ANDI T8,S1,0001 ORI T3,T8,0012 ANDI T5,T6,00A8 SLTIU T0,T6,0001 SLL T2,T0,0x6 OR T9,T3,T5 OR S1,T9,T2 ANDI T4,S1,00FF OR S2,T6,R0 BEQ T6,R0,7F0E27FC OR S1,T4,R0 LHU T7,0298 (SP) LW T6,028C (SP) ADDIU T1,T7,FFFE ADDIU T8,T6,0005 SW T8,028C (SP) ;cycles+=5 BEQ R0,R0,7F0E27FC SH T1,0298 (SP) //7F0E1544: LW T3,028C (SP) LUI T2,8009 LW T2,E328 (T2) ;T2=spectrum.ROMs SLL T0,S6,0x8 OR T9,T0,S7 ADDIU T5,T3,000C SW T5,028C (SP) ;cycles+=C SLL T1,S4,0x8 ADDU T4,T9,T2 LBU T7,0000 (T4) OR T6,T1,S5 SLTI AT,T6,5B00 BNE AT,R0,7F0E1598 SB T7,0060 (SP) LUI T3,8009 LW T3,E328 (T3) ;T3=spectrum.ROMs SLL T5,S4,0x8 OR T0,T5,S5 ADDU T9,T3,T0 BEQ R0,R0,7F0E1640 SB T7,0000 (T9) //7F0E1598: SLL T2,S4,0x8 OR T4,T2,S5 SLTI AT,T4,5800 BNE AT,R0,7F0E15E8 SLL T6,S4,0x8 LUI T1,8009 LW T1,E328 (T1) ;T1=spectrum.ROMs LBU T7,0060 (SP) SLL T6,S4,0x8 OR T5,T6,S5 ADDU T3,T1,T5 LUI T8,8009 SB T7,0000 (T3) LW T8,E32C (T8) SLL T9,S4,0x8 OR T2,T9,S5 ADDIU T0,R0,0001 ADDU T4,T8,T2 BEQ R0,R0,7F0E1640 SB T0,A800 (T4) //7F0E15E8: OR T1,T6,S5 SLTI AT,T1,4000 BNE AT,R0,7F0E1640 LBU T5,0060 (SP) LUI T7,8009 LW T7,E328 (T7) ;T7=spectrum.ROMs SLL T3,S4,0x8 OR T9,T3,S5 ADDU T8,T7,T9 SB T5,0000 (T8) SLL T0,S4,0x8 OR T4,T0,S5 LUI T8,8009 LW T8,E32C (T8) ANDI T6,T4,1800 OR T7,T3,S5 ANDI T9,T7,00FF SRA T1,T6,0x3 OR T5,T1,T9 ADDIU T2,R0,0001 ADDU T0,T8,T5 SB T2,0000 (T0) //7F0E1640: SLTIU T4,S7,0001 ADDIU S7,S7,FFFF ANDI T6,S7,00FF OR S7,T6,R0 BEQ T4,R0,7F0E1664 SW T4,0048 (SP) ADDIU S6,S6,FFFF ANDI T7,S6,00FF OR S6,T7,R0 SLTIU T1,S5,0001 ADDIU S5,S5,FFFF ANDI T9,S5,00FF OR S5,T9,R0 BEQ T1,R0,7F0E1688 SW T1,0048 (SP) ADDIU S4,S4,FFFF ANDI T5,S4,00FF OR S4,T5,R0 SLTIU T2,S3,0001 ADDIU S3,S3,FFFF ANDI T0,S3,00FF OR S3,T0,R0 BEQ T2,R0,7F0E16AC SW T2,0048 (SP) ADDIU S2,S2,FFFF ANDI T6,S2,00FF OR S2,T6,R0 LBU T7,0060 (SP) OR T8,S2,S3 SLT T5,R0,T8 ANDI T3,S1,00C1 ANDI T1,T7,0028 OR T9,T3,T1 SLL T2,T5,0x2 OR S1,T9,T2 ANDI T0,S1,00FF OR T4,S2,S3 BEQ T4,R0,7F0E27FC OR S1,T0,R0 LHU T6,0298 (SP) LW T3,028C (SP) ADDIU T7,T6,FFFE ADDIU T1,T3,0005 SW T1,028C (SP) ;cycles+=5 BEQ R0,R0,7F0E27FC SH T7,0298 (SP) //7F0E16F8: LW T8,028C (SP) LUI T4,8009 LW T4,E328 (T4) ;T4=spectrum.ROMs SLL T2,S6,0x8 ANDI T9,S1,0001 OR T0,T2,S7 ADDIU T5,T8,000C SW T5,028C (SP) ;cycles+=C SB T9,005F (SP) ADDU T6,T0,T4 LBU T7,0000 (T6) ADDIU AT,R0,0004 SUBU T3,S0,T7 ANDI T1,T3,01FF ANDI T8,T1,FFFF SLTIU T5,T8,0001 ANDI T8,S0,000F ANDI T3,T7,000F SLT T9,T8,T3 ANDI T2,T1,00A8 SRA T4,T1,0x8 OR T6,T2,T4 SLL T0,T9,0x4 OR T3,T1,R0 XOR T4,S0,T7 ANDI T8,T4,0080 XOR T9,T3,S0 OR T2,T6,T0 AND T6,T8,T9 SRA T0,T6,0x5 SB T7,005B (SP) OR T7,T2,T0 SH T1,005C (SP) SLL T1,T5,0x6 ORI T4,T7,0002 SLTIU T8,S7,0001 OR S1,T4,T1 ADDIU S7,S7,FFFF ANDI T3,S1,00FF SW T5,0048 (SP) ANDI T9,S7,00FF OR S1,T3,R0 OR S7,T9,R0 BEQ T8,R0,7F0E17B8 SW T8,0048 (SP) ADDIU S6,S6,FFFF ANDI T2,S6,00FF OR S6,T2,R0 SLTIU T0,S3,0001 ADDIU S3,S3,FFFF ANDI T7,S3,00FF OR S3,T7,R0 BEQ T0,R0,7F0E17DC SW T0,0048 (SP) ADDIU S2,S2,FFFF ANDI T4,S2,00FF OR S2,T4,R0 LBU T3,005F (SP) OR T9,S2,S3 SLT T6,R0,T9 ANDI T1,S1,00FA SLL T2,T6,0x2 OR T8,T1,T3 OR S1,T8,T2 ANDI T0,S1,00FF ANDI T7,T0,0044 BNE T7,AT,7F0E27FC OR S1,T0,R0 LHU T5,0298 (SP) LW T1,028C (SP) ADDIU T4,T5,FFFE ADDIU T3,T1,0005 SW T3,028C (SP) ;cycles+=5 BEQ R0,R0,7F0E27FC SH T4,0298 (SP) //7F0E1824: LW T9,028C (SP) OR A1,S2,R0 OR A2,S3,R0 ADDIU A0,T9,000C JAL 7F0D36D8 ;V0=input from source A2 using register A1 SW A0,028C (SP) ;cycles+=C SLL T8,S6,0x8 OR T2,T8,S7 SLTI AT,T2,5B00 BNE AT,R0,7F0E186C SH V0,0058 (SP) LUI T7,8009 LW T7,E328 (T7) ;T7=spectrum.ROMs SLL T5,S6,0x8 OR T4,T5,S7 ADDU T1,T7,T4 BEQ R0,R0,7F0E1914 SB V0,0000 (T1) //7F0E186C: SLL T3,S6,0x8 OR T9,T3,S7 SLTI AT,T9,5800 BNE AT,R0,7F0E18BC SLL T2,S6,0x8 LUI T8,8009 LW T8,E328 (T8) ;T8=spectrum.ROMs LHU T6,0058 (SP) SLL T2,S6,0x8 OR T5,T2,S7 ADDU T7,T8,T5 LUI T0,8009 SB T6,0000 (T7) LW T0,E32C (T0) SLL T1,S6,0x8 OR T3,T1,S7 ADDIU T4,R0,0001 ADDU T9,T0,T3 BEQ R0,R0,7F0E1914 SB T4,A800 (T9) //7F0E18BC: OR T8,T2,S7 SLTI AT,T8,4000 BNE AT,R0,7F0E1914 LHU T5,0058 (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs SLL T7,S6,0x8 OR T1,T7,S7 ADDU T0,T6,T1 SB T5,0000 (T0) SLL T4,S6,0x8 OR T9,T4,S7 LUI T0,8009 LW T0,E32C (T0) ANDI T2,T9,1800 OR T6,T7,S7 ANDI T1,T6,00FF SRA T8,T2,0x3 OR T5,T8,T1 ADDIU T3,R0,0001 ADDU T4,T0,T5 SB T3,0000 (T4) LHU T2,0058 (SP) LW T9,028C (SP) SLTIU T8,S7,0001 ADDIU S7,S7,FFFF SRA T7,T2,0x8 ANDI T1,S7,00FF ADDU T6,T9,T7 SW T6,028C (SP) OR S7,T1,R0 BEQ T8,R0,7F0E194C SW T8,0048 (SP) ADDIU S6,S6,FFFF ANDI T5,S6,00FF OR S6,T5,R0 //7F0E194C: LUI T8,8009 LW T8,E334 (T8) ADDIU S2,S2,FFFF ANDI T3,S2,00FF ADDU T1,T3,T8 LBU T0,0000 (T1) ANDI T4,T3,00A8 SLT T2,R0,T3 OR S2,T3,R0 SLL T9,T2,0x6 XOR T5,T0,S3 XORI T3,T5,0004 OR T7,T4,T9 ORI T6,T7,0002 ANDI T2,T3,0004 OR S1,T2,T6 ANDI T4,S1,00FF BEQ S2,R0,7F0E27FC OR S1,T4,R0 LHU T9,0298 (SP) LW T8,028C (SP) ADDIU T7,T9,FFFE ADDIU T1,T8,0005 SW T1,028C (SP) ;cycles+=5 BEQ R0,R0,7F0E27FC SH T7,0298 (SP) //7F0E19B4: LW T0,028C (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs SLL T3,S6,0x8 OR T2,T3,S7 ADDIU A0,T0,000C SW A0,028C (SP) ;cycles+=C ADDU T4,T2,T6 LBU A3,0000 (T4) OR A1,S2,R0 OR A2,S3,R0 JAL 7F0D37DC ;V0= A3 written to port A2 or 0 if not required SB A3,0057 (SP) LW T7,028C (SP) SLTIU T0,S7,0001 ADDIU S7,S7,FFFF SW V0,0048 (SP) ANDI T3,S7,00FF ADDU T1,T7,V0 SW T1,028C (SP) OR S7,T3,R0 BEQ T0,R0,7F0E1A1C SW T0,0048 (SP) ADDIU S6,S6,FFFF ANDI T6,S6,00FF OR S6,T6,R0 ADDIU S2,S2,FFFF ANDI T4,S2,00FF ANDI T5,S1,0001 ORI T9,T5,0012 ANDI T7,T4,00A8 SLTIU T1,T4,0001 SLL T0,T1,0x6 OR T8,T9,T7 OR S1,T8,T0 ANDI T3,S1,00FF OR S2,T4,R0 BEQ T4,R0,7F0E27FC OR S1,T3,R0 LHU T2,0298 (SP) LW T4,028C (SP) ADDIU T6,T2,FFFE ADDIU T5,T4,0005 SW T5,028C (SP) ;cycles+=5 BEQ R0,R0,7F0E27FC SH T6,0298 (SP) //7F0E1A6C: LW T9,028C (SP) ADDIU T7,T9,0004 BEQ R0,R0,7F0E27FC SW T7,028C (SP) ;cycles+=4 //7F0E1A7C: EE: XOR n 7 LW T1,028C (SP) LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs LHU T3,0298 (SP) ADDIU T8,T1,0007 SW T8,028C (SP) ;cycles+=7 ADDU T2,T0,T3 LBU T6,0000 (T2) LUI T0,8009 LW T0,E334 (T0) XOR S0,S0,T6 ANDI T4,S0,00FF SLTIU T5,T4,0001 SW T5,0048 (SP) ADDU T3,T4,T0 LBU T2,0000 (T3) OR S0,T4,R0 ANDI T9,T4,00A8 LHU T4,0298 (SP) SLL T1,T5,0x6 OR T8,T9,T1 OR S1,T2,T8 ANDI T6,S1,00FF ADDIU T5,T4,0001 OR S1,T6,R0 BEQ R0,R0,7F0E27FC SH T5,0298 (SP) //7F0E1AE8: EF: RST 28 11 LHU T1,0292 (SP) LW T7,028C (SP) LUI T8,8009 ADDIU T0,T1,FFFE ANDI T3,T0,FFFF SLTI AT,T3,5B00 ADDIU T9,T7,000B SW T9,028C (SP) ;cycles+=B BNE AT,R0,7F0E1B24 SH T0,0292 (SP) LW T8,E328 (T8) ;T8=spectrum.ROMs LHU T2,0298 (SP) ADDU T6,T8,T3 BEQ R0,R0,7F0E1BAC SB T2,0000 (T6) //7F0E1B24: LHU T4,0292 (SP) LHU T2,0292 (SP) LUI T7,8009 SLTI AT,T4,5800 BNEL AT,R0,7F0E1B6C SLTI AT,T2,4000 LW T7,E328 (T7) ;T7=spectrum.ROMs LHU T5,0298 (SP) LUI T0,8009 ADDU T9,T7,T4 SB T5,0000 (T9) LHU T8,0292 (SP) LW T0,E32C (T0) ADDIU T1,R0,0001 ADDU T3,T0,T8 BEQ R0,R0,7F0E1BAC SB T1,A800 (T3) //7F0E1B68: SLTI AT,T2,4000 BNE AT,R0,7F0E1BAC LUI T7,8009 LW T7,E328 (T7) ;T7=spectrum.ROMs LHU T6,0298 (SP) ADDIU T5,R0,0001 ADDU T4,T7,T2 SB T6,0000 (T4) LHU T9,0292 (SP) LUI T7,8009 LW T7,E32C (T7) ANDI T0,T9,1800 SRA T8,T0,0x3 ANDI T1,T9,00FF OR T3,T8,T1 ADDU T2,T7,T3 SB T5,0000 (T2) //7F0E1BAC: LHU T6,0292 (SP) LHU T7,0292 (SP) LHU T0,0298 (SP) ADDIU T4,T6,0001 SLTI AT,T4,5B00 BNE AT,R0,7F0E1BE0 ADDIU T3,T7,0001 LUI T8,8009 LW T8,E328 (T8) ;T8=spectrum.ROMs SRA T9,T0,0x8 ADDU T1,T8,T6 BEQ R0,R0,7F0E1C70 SB T9,0001 (T1) //7F0E1BE0: SLTI AT,T3,5800 BNE AT,R0,7F0E1C20 LHU T3,0292 (SP) LUI T4,8009 LW T4,E328 (T4) ;T4=spectrum.ROMs LHU T5,0298 (SP) LUI T6,8009 ADDU T0,T4,T7 SRA T2,T5,0x8 SB T2,0001 (T0) LHU T9,0292 (SP) LW T6,E32C (T6) ADDIU T8,R0,0001 ADDU T1,T6,T9 BEQ R0,R0,7F0E1C70 SB T8,A801 (T1) //7F0E1C20: ADDIU T5,T3,0001 SLTI AT,T5,4000 BNE AT,R0,7F0E1C70 LHU T4,0298 (SP) LUI T2,8009 LW T2,E328 (T2) ;T2=spectrum.ROMs SRA T7,T4,0x8 ADDIU T6,R0,0001 ADDU T0,T2,T3 SB T7,0001 (T0) LHU T9,0292 (SP) LUI T3,8009 LW T3,E32C (T3) ADDIU T8,T9,0001 ANDI T1,T8,1800 SRA T5,T1,0x3 ANDI T4,T8,00FF OR T2,T5,T4 ADDU T7,T3,T2 SB T6,0000 (T7) ADDIU T0,R0,0028 BEQ R0,R0,7F0E27FC SH T0,0298 (SP) //7F0E1C7C: F0: RET P 11(5) LW T9,028C (SP) ANDI T8,S1,0080 LUI T2,8009 ADDIU T1,T9,0005 BNE T8,R0,7F0E27FC SW T1,028C (SP) ;cycles+=5 LHU T3,0292 (SP) LW T2,E328 (T2) ;T2=spectrum.ROMs ADDIU T4,T1,0006 SW T4,028C (SP) ;cycles+=6 B total ADDU T0,T2,T3 LBU T9,0001 (T0) ADDU T6,T3,T2 LBU T7,0000 (T6) SLL T1,T9,0x8 ADDIU T5,T3,0002 OR T8,T7,T1 SH T8,0298 (SP) BEQ R0,R0,7F0E27FC SH T5,0292 (SP) //7F0E1CCC: F1: POP AF 10 LW T4,028C (SP) LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs LHU T2,0292 (SP) ADDIU T6,T4,000A SW T6,028C (SP) ;cycles+=A ADDU T9,T2,T0 LBU S1,0000 (T9) LBU S0,0001 (T9) ADDIU T7,T2,0002 BEQ R0,R0,7F0E27FC SH T7,0292 (SP) //7F0E1CFC: F2: JP P,nn 10 LW T1,028C (SP) ANDI T3,S1,0080 LHU T5,0298 (SP) ADDIU T8,T1,000A BNE T3,R0,7F0E1D3C SW T8,028C (SP) ;cycles+=A LUI T4,8009 LW T4,E328 (T4) ;T4=spectrum.ROMs ADDU T9,T4,T5 LBU T2,0001 (T9) ADDU T6,T5,T4 LBU T0,0000 (T6) SLL T7,T2,0x8 OR T1,T0,T7 BEQ R0,R0,7F0E27FC SH T1,0298 (SP) //7F0E1D3C: LHU T8,0298 (SP) ADDIU T3,T8,0002 BEQ R0,R0,7F0E27FC SH T3,0298 (SP) //7F0E1D4C: F3: DI 4 LW T6,028C (SP) SB R0,029C (SP) SB R0,029D (SP) ADDIU T4,T6,0004 SW T4,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC SB R0,0285 (SP) //7F0E1D68: F4: CALL P,nn 17(10) LW T5,028C (SP) ANDI T2,S1,0080 ADDIU T9,T5,000A BNE T2,R0,7F0E1F40 SW T9,028C (SP) ;cycles+=A LHU T1,0292 (SP) ADDIU T7,T9,0007 SW T7,028C (SP) ;cycles+=7 11 total ADDIU T8,T1,FFFE ANDI T3,T8,FFFF SLTI AT,T3,5B00 BNE AT,R0,7F0E1DB8 SH T8,0292 (SP) LUI T5,8009 LW T5,E328 (T5) ;T5=spectrum.ROMs LHU T6,0298 (SP) ADDU T9,T5,T3 ADDIU T4,T6,0002 BEQ R0,R0,7F0E1E44 SB T4,0000 (T9) //7F0E1DB8: LHU T2,0292 (SP) LHU T9,0292 (SP) LHU T0,0298 (SP) SLTI AT,T2,5800 BNE AT,R0,7F0E1DFC LUI T1,8009 LW T1,E328 (T1) ;T1=spectrum.ROMs ADDIU T7,T0,0002 LUI T5,8009 ADDU T8,T1,T2 SB T7,0000 (T8) LHU T3,0292 (SP) LW T5,E32C (T5) ADDIU T6,R0,0001 ADDU T4,T5,T3 BEQ R0,R0,7F0E1E44 SB T6,A800 (T4) //7F0E1DFC: SLTI AT,T9,4000 BNE AT,R0,7F0E1E44 LHU T0,0298 (SP) LUI T2,8009 LW T2,E328 (T2) ;T2=spectrum.ROMs ADDIU T1,T0,0002 ADDIU T8,R0,0001 ADDU T7,T2,T9 SB T1,0000 (T7) LHU T5,0292 (SP) LUI T2,8009 LW T2,E32C (T2) ANDI T3,T5,1800 SRA T6,T3,0x3 ANDI T4,T5,00FF OR T0,T6,T4 ADDU T9,T2,T0 SB T8,0000 (T9) //7F0E1E44: LHU T1,0292 (SP) LHU T0,0292 (SP) LHU T3,0298 (SP) ADDIU T7,T1,0001 SLTI AT,T7,5B00 BNE AT,R0,7F0E1E7C ADDIU T8,T0,0001 LUI T4,8009 LW T4,E328 (T4) ;T4=spectrum.ROMs ADDIU T5,T3,0002 SRA T6,T5,0x8 ADDU T2,T4,T1 BEQ R0,R0,7F0E1F14 SB T6,0001 (T2) //7F0E1E7C: SLTI AT,T8,5800 BNE AT,R0,7F0E1EC0 LHU T9,0292 (SP) LHU T9,0298 (SP) LUI T5,8009 LW T5,E328 (T5) ;T5=spectrum.ROMs ADDIU T7,T9,0002 SRA T3,T7,0x8 ADDU T4,T5,T0 SB T3,0001 (T4) LUI T6,8009 LW T6,E32C (T6) LHU T2,0292 (SP) ADDIU T1,R0,0001 ADDU T8,T6,T2 BEQ R0,R0,7F0E1F14 SB T1,A801 (T8) //7F0E1EC0: ADDIU T7,T9,0001 SLTI AT,T7,4000 BNE AT,R0,7F0E1F14 LHU T5,0298 (SP) LUI T4,8009 LW T4,E328 (T4) ;T4=spectrum.ROMs ADDIU T0,T5,0002 SRA T3,T0,0x8 ADDU T6,T4,T9 SB T3,0001 (T6) LHU T1,0292 (SP) LUI T9,8009 LW T9,E32C (T9) ADDIU T8,T1,0001 ANDI T7,T8,1800 SRA T5,T7,0x3 ANDI T0,T8,00FF OR T4,T5,T0 ADDIU T2,R0,0001 ADDU T3,T9,T4 SB T2,0000 (T3) //7F0E1F14: LUI T1,8009 LW T1,E328 (T1) ;T1=spectrum.ROMs LHU T6,0298 (SP) ADDU T5,T1,T6 LBU T0,0001 (T5) ADDU T7,T6,T1 LBU T8,0000 (T7) SLL T9,T0,0x8 OR T4,T8,T9 BEQ R0,R0,7F0E27FC SH T4,0298 (SP) //7F0E1F40: LHU T2,0298 (SP) ADDIU T3,T2,0002 BEQ R0,R0,7F0E27FC SH T3,0298 (SP) //7F0E1F50: F5: PUSH AF 11 LHU T6,0292 (SP) LW T7,028C (SP) LUI T8,8009 ADDIU T5,T6,FFFE ANDI T0,T5,FFFF SLTI AT,T0,5B00 ADDIU T1,T7,000B SW T1,028C (SP) ;cycles+=B BNE AT,R0,7F0E1F88 SH T5,0292 (SP) LW T8,E328 (T8) ;T8=spectrum.ROMs ADDU T9,T8,T0 BEQ R0,R0,7F0E2008 SB S1,0000 (T9) //7F0E1F88: LHU T4,0292 (SP) LHU T8,0292 (SP) LUI T2,8009 SLTI AT,T4,5800 BNEL AT,R0,7F0E1FCC SLTI AT,T8,4000 LW T2,E328 (T2) ;T2=spectrum.ROMs LUI T1,8009 ADDIU T7,R0,0001 ADDU T3,T2,T4 SB S1,0000 (T3) LHU T6,0292 (SP) LW T1,E32C (T1) ADDU T5,T1,T6 BEQ R0,R0,7F0E2008 SB T7,A800 (T5) //7F0E1FC8: SLTI AT,T8,4000 BNE AT,R0,7F0E2008 LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs LUI T5,8009 ADDIU T2,R0,0001 ADDU T9,T0,T8 SB S1,0000 (T9) LHU T4,0292 (SP) LW T5,E32C (T5) ANDI T3,T4,1800 SRA T1,T3,0x3 ANDI T6,T4,00FF OR T7,T1,T6 ADDU T0,T5,T7 SB T2,0000 (T0) //7F0E2008: LHU T8,0292 (SP) LHU T1,0292 (SP) LUI T3,8009 ADDIU T9,T8,0001 SLTI AT,T9,5B00 BNE AT,R0,7F0E2034 ADDIU T6,T1,0001 LW T3,E328 (T3) ;T3=spectrum.ROMs ADDU T4,T3,T8 BEQ R0,R0,7F0E27FC SB S0,0001 (T4) //7F0E2034: SLTI AT,T6,5800 BNE AT,R0,7F0E206C LHU T8,0292 (SP) LUI T5,8009 LW T5,E328 (T5) ;T5=spectrum.ROMs LUI T0,8009 ADDIU T2,R0,0001 ADDU T7,T5,T1 SB S0,0001 (T7) LHU T9,0292 (SP) LW T0,E32C (T0) ADDU T3,T0,T9 BEQ R0,R0,7F0E27FC SB T2,A801 (T3) //7F0E206C: ADDIU T4,T8,0001 SLTI AT,T4,4000 BNE AT,R0,7F0E27FC LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs ADDIU T1,R0,0001 ADDU T5,T6,T8 SB S0,0001 (T5) LHU T7,0292 (SP) LUI T6,8009 LW T6,E32C (T6) ADDIU T0,T7,0001 ANDI T9,T0,1800 SRA T2,T9,0x3 ANDI T3,T0,00FF OR T4,T2,T3 ADDU T8,T6,T4 BEQ R0,R0,7F0E27FC SB T1,0000 (T8) //7F0E20B8: F6: OR n 7 LW T5,028C (SP) LUI T9,8009 LW T9,E328 (T9) ;T9=spectrum.ROMs LHU T0,0298 (SP) ;T0=PC ADDIU T7,T5,0007 SW T7,028C (SP) ;cycles+=7 ADDU T2,T9,T0 LBU T3,0000 (T2) ;T3=ROM+PC: n LUI T9,8009 LW T9,E334 (T9) OR S0,S0,T3 ;spec.A |= n ANDI T6,S0,00FF SLTIU T4,T6,0001 ;True if zero SW T4,0048 (SP) ;SP+48= ZERO flag ADDU T0,T6,T9 LBU T2,0000 (T0) OR S0,T6,R0 ANDI T1,T6,00A8 LHU T6,0298 (SP) SLL T5,T4,0x6 ;T5= ZERO flag OR T7,T1,T5 OR S1,T2,T7 ANDI T3,S1,00FF ADDIU T4,T6,0001 OR S1,T3,R0 BEQ R0,R0,7F0E27FC SH T4,0298 (SP) ;PC+=1 //7F0E2124: F7: RST 30 11 LHU T5,0292 (SP) LW T8,028C (SP) LUI T7,8009 ADDIU T9,T5,FFFE ANDI T0,T9,FFFF SLTI AT,T0,5B00 ADDIU T1,T8,000B SW T1,028C (SP) ;cycles+=B BNE AT,R0,7F0E2160 SH T9,0292 (SP) LW T7,E328 (T7) ;T7=spectrum.ROMs LHU T2,0298 (SP) ADDU T3,T7,T0 BEQ R0,R0,7F0E21E8 SB T2,0000 (T3) //7F0E2160: LHU T6,0292 (SP) LHU T2,0292 (SP) LUI T8,8009 SLTI AT,T6,5800 BNEL AT,R0,7F0E21A8 SLTI AT,T2,4000 LW T8,E328 (T8) ;T8=spectrum.ROMs LHU T4,0298 (SP) LUI T9,8009 ADDU T1,T8,T6 SB T4,0000 (T1) LHU T7,0292 (SP) LW T9,E32C (T9) ADDIU T5,R0,0001 ADDU T0,T9,T7 BEQ R0,R0,7F0E21E8 SB T5,A800 (T0) //7F0E21A8: SLTI AT,T2,4000 BNE AT,R0,7F0E21E8 LUI T8,8009 LW T8,E328 (T8) ;T8=spectrum.ROMs LHU T3,0298 (SP) ADDIU T4,R0,0001 ADDU T6,T8,T2 SB T3,0000 (T6) LHU T1,0292 (SP) LUI T8,8009 LW T8,E32C (T8) ANDI T9,T1,1800 SRA T7,T9,0x3 ANDI T5,T1,00FF OR T0,T7,T5 ADDU T2,T8,T0 SB T4,0000 (T2) LHU T3,0292 (SP) LHU T8,0292 (SP) LHU T9,0298 (SP) ADDIU T6,T3,0001 SLTI AT,T6,5B00 BNE AT,R0,7F0E221C ADDIU T0,T8,0001 LUI T7,8009 LW T7,E328 (T7) ;T7=spectrum.ROMs SRA T1,T9,0x8 ADDU T5,T7,T3 BEQ R0,R0,7F0E22AC SB T1,0001 (T5) //7F0E221C: SLTI AT,T0,5800 BNE AT,R0,7F0E225C LHU T0,0292 (SP) LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs LHU T4,0298 (SP) LUI T3,8009 ADDU T9,T6,T8 SRA T2,T4,0x8 SB T2,0001 (T9) LHU T1,0292 (SP) LW T3,E32C (T3) ADDIU T7,R0,0001 ADDU T5,T3,T1 BEQ R0,R0,7F0E22AC SB T7,A801 (T5) //7F0E225C: ADDIU T4,T0,0001 SLTI AT,T4,4000 BNE AT,R0,7F0E22AC LHU T6,0298 (SP) LUI T2,8009 LW T2,E328 (T2) ;T2=spectrum.ROMs SRA T8,T6,0x8 ADDIU T3,R0,0001 ADDU T9,T2,T0 SB T8,0001 (T9) LHU T1,0292 (SP) LUI T0,8009 LW T0,E32C (T0) ADDIU T7,T1,0001 ANDI T5,T7,1800 SRA T4,T5,0x3 ANDI T6,T7,00FF OR T2,T4,T6 ADDU T8,T0,T2 SB T3,0000 (T8) //7F0E22AC: ADDIU T9,R0,0030 BEQ R0,R0,7F0E27FC SH T9,0298 (SP) //7F0E22B8: F8: RET M 11(5) LW T1,028C (SP) ANDI T7,S1,0080 LUI T2,8009 ADDIU T5,T1,0005 BEQ T7,R0,7F0E27FC SW T5,028C (SP) ;cycles+=5 LHU T0,0292 (SP) LW T2,E328 (T2) ;T2=spectrum.ROMs ADDIU T6,T5,0006 SW T6,028C (SP) ;cycles+=6 B total ADDU T9,T2,T0 LBU T1,0001 (T9) ADDU T3,T0,T2 LBU T8,0000 (T3) SLL T5,T1,0x8 ADDIU T4,T0,0002 OR T7,T8,T5 SH T7,0298 (SP) BEQ R0,R0,7F0E27FC SH T4,0292 (SP) //7F0E2308: F9: LD SP,HL 6 LW T6,028C (SP) LBU T2,0287 (SP) LBU T8,0287 (SP) ADDIU T3,T6,0006 BNE T2,R0,7F0E2330 SW T3,028C (SP) ;cycles+=6 SLL T9,S6,0x8 OR T1,T9,S7 BEQ R0,R0,7F0E27FC SH T1,0292 (SP) //7F0E2330: ADDIU AT,R0,0001 BNE T8,AT,7F0E2348 LHU T7,0294 (SP) LHU T5,0296 (SP) BEQ R0,R0,7F0E234C SW T5,0048 (SP) //7F0E2348: SW T7,0048 (SP) LW T0,0048 (SP) BEQ R0,R0,7F0E27FC SH T0,0292 (SP) //7F0E2358: FA: JP M,nn 10 LW T4,028C (SP) ANDI T3,S1,0080 LHU T2,0298 (SP) ADDIU T6,T4,000A BEQ T3,R0,7F0E2398 SW T6,028C (SP) ;cycles+=A LUI T9,8009 LW T9,E328 (T9) ;T9=spectrum.ROMs ADDU T5,T9,T2 LBU T7,0001 (T5) ADDU T1,T2,T9 LBU T8,0000 (T1) SLL T0,T7,0x8 OR T4,T8,T0 BEQ R0,R0,7F0E27FC SH T4,0298 (SP) //7F0E2398: LHU T6,0298 (SP) ADDIU T3,T6,0002 BEQ R0,R0,7F0E27FC SH T3,0298 (SP) //7F0E23A8: FB: EI 4 LW T1,028C (SP) ADDIU T2,R0,0001 ADDIU T5,R0,0001 ADDIU T9,T1,0004 SW T9,028C (SP) ;cycles+=4 SB T5,029D (SP) SB T2,029C (SP) BEQ R0,R0,7F0E27FC SB R0,0285 (SP) //7F0E23CC: FC: CALL M,nn 17(10) LW T7,028C (SP) ANDI T0,S1,0080 ADDIU T8,T7,000A BEQ T0,R0,7F0E25A4 SW T8,028C (SP) ;cycles+=A LHU T3,0292 (SP) ADDIU T6,T8,0007 SW T6,028C (SP) ;cycles+=7 11 total ADDIU T1,T3,FFFE ANDI T9,T1,FFFF SLTI AT,T9,5B00 BNE AT,R0,7F0E241C SH T1,0292 (SP) LUI T7,8009 LW T7,E328 (T7) ;T7=spectrum.ROMs LHU T2,0298 (SP) ADDU T8,T7,T9 ADDIU T5,T2,0002 BEQ R0,R0,7F0E24A8 SB T5,0000 (T8) //7F0E241C: LHU T0,0292 (SP) LHU T8,0292 (SP) LHU T4,0298 (SP) SLTI AT,T0,5800 BNE AT,R0,7F0E2460 LUI T3,8009 LW T3,E328 (T3) ;T3=spectrum.ROMs ADDIU T6,T4,0002 LUI T7,8009 ADDU T1,T3,T0 SB T6,0000 (T1) LHU T9,0292 (SP) LW T7,E32C (T7) ADDIU T2,R0,0001 ADDU T5,T7,T9 BEQ R0,R0,7F0E24A8 SB T2,A800 (T5) //7F0E2460: SLTI AT,T8,4000 BNE AT,R0,7F0E24A8 LHU T4,0298 (SP) LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs ADDIU T3,T4,0002 ADDIU T1,R0,0001 ADDU T6,T0,T8 SB T3,0000 (T6) LHU T7,0292 (SP) LUI T0,8009 LW T0,E32C (T0) ANDI T9,T7,1800 SRA T2,T9,0x3 ANDI T5,T7,00FF OR T4,T2,T5 ADDU T8,T0,T4 SB T1,0000 (T8) //7F0E24A8: LHU T3,0292 (SP) LHU T4,0292 (SP) LHU T9,0298 (SP) ADDIU T6,T3,0001 SLTI AT,T6,5B00 BNE AT,R0,7F0E24E0 ADDIU T1,T4,0001 LUI T5,8009 LW T5,E328 (T5) ;T5=spectrum.ROMs ADDIU T7,T9,0002 SRA T2,T7,0x8 ADDU T0,T5,T3 BEQ R0,R0,7F0E2578 SB T2,0001 (T0) //7F0E24E0: SLTI AT,T1,5800 BNE AT,R0,7F0E2524 LHU T8,0292 (SP) LHU T8,0298 (SP) LUI T7,8009 LW T7,E328 (T7) ;T7=spectrum.ROMs ADDIU T6,T8,0002 SRA T9,T6,0x8 ADDU T5,T7,T4 SB T9,0001 (T5) LUI T2,8009 LW T2,E32C (T2) LHU T0,0292 (SP) ADDIU T3,R0,0001 ADDU T1,T2,T0 BEQ R0,R0,7F0E2578 SB T3,A801 (T1) //7F0E2524: ADDIU T6,T8,0001 SLTI AT,T6,4000 BNE AT,R0,7F0E2578 LHU T7,0298 (SP) LUI T5,8009 LW T5,E328 (T5) ;T5=spectrum.ROMs ADDIU T4,T7,0002 SRA T9,T4,0x8 ADDU T2,T5,T8 SB T9,0001 (T2) LHU T3,0292 (SP) LUI T8,8009 LW T8,E32C (T8) ADDIU T1,T3,0001 ANDI T6,T1,1800 SRA T7,T6,0x3 ANDI T4,T1,00FF OR T5,T7,T4 ADDIU T0,R0,0001 ADDU T9,T8,T5 SB T0,0000 (T9) //7F0E2578: LUI T3,8009 LW T3,E328 (T3) ;T3=spectrum.ROMs LHU T2,0298 (SP) ADDU T7,T3,T2 LBU T4,0001 (T7) ADDU T6,T2,T3 LBU T1,0000 (T6) SLL T8,T4,0x8 OR T5,T1,T8 BEQ R0,R0,7F0E27FC SH T5,0298 (SP) //7F0E25A4: LHU T0,0298 (SP) ADDIU T9,T0,0002 BEQ R0,R0,7F0E27FC SH T9,0298 (SP) //7F0E25B4: FD: --- FD --- LW T6,028C (SP) ADDIU T2,R0,0002 SB T2,0286 (SP) ADDIU T3,T6,0004 SW T3,028C (SP) ;cycles+=4 BEQ R0,R0,7F0E27FC SB R0,0285 (SP) //7F0E25D0: FE: CP n 7 LW T7,028C (SP) LUI T8,8009 LW T8,E328 (T8) ;T8=spectrum.ROMs LHU T1,0298 (SP) ADDIU T4,T7,0007 SW T4,028C (SP) ;cycles+=7 ADDU T5,T1,T8 LBU T0,0000 (T5) SUBU T9,S0,T0 ANDI T6,T9,01FF ANDI T3,T6,FFFF SLTIU T2,T3,0001 ANDI T3,S0,000F ANDI T9,T0,000F SLT T7,T3,T9 ANDI T4,T6,00A8 SRA T8,T6,0x8 OR T5,T4,T8 SLL T1,T7,0x4 OR T9,T6,R0 XOR T8,S0,T0 ANDI T3,T8,0080 XOR T7,T9,S0 OR T4,T5,T1 AND T5,T3,T7 SRA T1,T5,0x5 SB T0,0053 (SP) LHU T3,0298 (SP) OR T0,T4,T1 SH T6,0054 (SP) SLL T6,T2,0x6 ORI T8,T0,0002 OR S1,T8,T6 ANDI T9,S1,00FF ADDIU T7,T3,0001 OR S1,T9,R0 SW T2,0048 (SP) BEQ R0,R0,7F0E27FC SH T7,0298 (SP) //7F0E266C: FF: RST 38 11 LHU T1,0292 (SP) LW T5,028C (SP) LUI T6,8009 ADDIU T0,T1,FFFE ANDI T2,T0,FFFF SLTI AT,T2,5B00 ADDIU T4,T5,000B SW T4,028C (SP) ;cycles+=B BNE AT,R0,7F0E26A8 SH T0,0292 (SP) LW T6,E328 (T6) ;T6=spectrum.ROMs LHU T8,0298 (SP) ADDU T9,T6,T2 BEQ R0,R0,7F0E2730 SB T8,0000 (T9) //7F0E26A8: LHU T3,0292 (SP) LHU T8,0292 (SP) LUI T5,8009 SLTI AT,T3,5800 BNEL AT,R0,7F0E26F0 SLTI AT,T8,4000 LW T5,E328 (T5) ;T5=spectrum.ROMs LHU T7,0298 (SP) LUI T0,8009 ADDU T4,T5,T3 SB T7,0000 (T4) LHU T6,0292 (SP) LW T0,E32C (T0) ADDIU T1,R0,0001 ADDU T2,T0,T6 BEQ R0,R0,7F0E2730 SB T1,A800 (T2) //7F0E26EC: SLTI AT,T8,4000 BNE AT,R0,7F0E2730 LUI T5,8009 LW T5,E328 (T5) ;T5=spectrum.ROMs LHU T9,0298 (SP) ADDIU T7,R0,0001 ADDU T3,T5,T8 SB T9,0000 (T3) LHU T4,0292 (SP) LUI T5,8009 LW T5,E32C (T5) ANDI T0,T4,1800 SRA T6,T0,0x3 ANDI T1,T4,00FF OR T2,T6,T1 ADDU T8,T5,T2 SB T7,0000 (T8) //7F0E2730: LHU T9,0292 (SP) LHU T5,0292 (SP) LHU T0,0298 (SP) ADDIU T3,T9,0001 SLTI AT,T3,5B00 BNE AT,R0,7F0E2764 ADDIU T2,T5,0001 LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs SRA T4,T0,0x8 ADDU T1,T6,T9 BEQ R0,R0,7F0E27F4 SB T4,0001 (T1) //7F0E2764: SLTI AT,T2,5800 BNE AT,R0,7F0E27A4 LHU T2,0292 (SP) LUI T3,8009 LW T3,E328 (T3) ;T3=spectrum.ROMs LHU T7,0298 (SP) LUI T9,8009 ADDU T0,T3,T5 SRA T8,T7,0x8 SB T8,0001 (T0) LHU T4,0292 (SP) LW T9,E32C (T9) ADDIU T6,R0,0001 ADDU T1,T9,T4 BEQ R0,R0,7F0E27F4 SB T6,A801 (T1) //7F0E27A4: ADDIU T7,T2,0001 SLTI AT,T7,4000 BNE AT,R0,7F0E27F4 LHU T3,0298 (SP) LUI T8,8009 LW T8,E328 (T8) ;T8=spectrum.ROMs SRA T5,T3,0x8 ADDIU T9,R0,0001 ADDU T0,T8,T2 SB T5,0001 (T0) LHU T4,0292 (SP) LUI T2,8009 LW T2,E32C (T2) ADDIU T6,T4,0001 ANDI T1,T6,1800 SRA T7,T1,0x3 ANDI T3,T6,00FF OR T8,T7,T3 ADDU T5,T2,T8 SB T9,0000 (T5) //7F0E27F4: loop until cycle count met ADDIU T0,R0,0038 SH T0,0298 (SP) LW T4,028C (SP) ;T4=SP+28C: cycles LW T1,0280 (SP) ;T1=SP+280: cycles.max SLTU AT,T4,T1 BNE AT,R0,7F0D39D8 NOP //7F0E2810: LBU T6,0285 (SP) BEQ T6,R0,7F0D39D8 NOP //7F0E281C: LW T7,028C (SP) ;T7= cycles LW T3,0280 (SP) ;T3= cycles.max LBU T2,0285 (SP) SLTU AT,T7,T3 BNE AT,R0,7F0E2C08 NOP //7F0E2834: BEQ T2,R0,7F0E2C08 NOP //7F0E283C: LBU T9,029D (SP) SUBU T8,T7,T3 SW T8,028C (SP) ;save cycle overrun (cycles-cycles.max) BEQ T9,R0,7F0E2C08 LHU T5,0298 (SP) LUI T0,8009 LW T0,E328 (T0) ;T0=spectrum.ROMs ADDIU AT,R0,0076 ADDIU T6,T5,0001 ADDU T4,T5,T0 LBU T1,0000 (T4) BNEL T1,AT,7F0E2878 LW T2,028C (SP) SH T6,0298 (SP) LW T2,028C (SP) LBU T3,029B (SP) SB R0,029C (SP) ADDIU T7,T2,0005 SB R0,029D (SP) SW T7,028C (SP) ;cycles+=5 BEQ T3,R0,7F0E28B8 SW T3,0048 (SP) ADDIU AT,R0,0001 BEQ T3,AT,7F0E28B8 ADDIU AT,R0,0002 BEQ T3,AT,7F0E28B8 ADDIU AT,R0,0003 BEQ T3,AT,7F0E2A4C LW T9,028C (SP) BEQ R0,R0,7F0E2C08 NOP LHU T0,0292 (SP) LW T8,028C (SP) LUI T6,8009 ADDIU T4,T0,FFFE ANDI T1,T4,FFFF SLTI AT,T1,5B00 ADDIU T9,T8,0008 SW T9,028C (SP) ;cycles+=8 BNE AT,R0,7F0E28F4 SH T4,0292 (SP) LW T6,E328 (T6) ;T6=spectrum.ROMs LHU T5,0298 (SP) ADDU T2,T6,T1 BEQ R0,R0,7F0E297C SB T5,0000 (T2) LHU T7,0292 (SP) LHU T5,0292 (SP) LUI T8,8009 SLTI AT,T7,5800 BNEL AT,R0,7F0E293C SLTI AT,T5,4000 LW T8,E328 (T8) ;T8=spectrum.ROMs LHU T3,0298 (SP) LUI T4,8009 ADDU T9,T8,T7 SB T3,0000 (T9) LHU T6,0292 (SP) LW T4,E32C (T4) ADDIU T0,R0,0001 ADDU T1,T4,T6 BEQ R0,R0,7F0E297C SB T0,A800 (T1) SLTI AT,T5,4000 BNE AT,R0,7F0E297C LUI T8,8009 LW T8,E328 (T8) ;T8=spectrum.ROMs LHU T2,0298 (SP) ADDIU T3,R0,0001 ADDU T7,T8,T5 SB T2,0000 (T7) LHU T9,0292 (SP) LUI T8,8009 LW T8,E32C (T8) ANDI T4,T9,1800 SRA T6,T4,0x3 ANDI T0,T9,00FF OR T1,T6,T0 ADDU T5,T8,T1 SB T3,0000 (T5) LHU T2,0292 (SP) LHU T8,0292 (SP) LHU T4,0298 (SP) ADDIU T7,T2,0001 SLTI AT,T7,5B00 BNE AT,R0,7F0E29B0 ADDIU T1,T8,0001 LUI T6,8009 LW T6,E328 (T6) ;T6=spectrum.ROMs SRA T9,T4,0x8 ADDU T0,T6,T2 BEQ R0,R0,7F0E2A40 SB T9,0001 (T0) SLTI AT,T1,5800 BNE AT,R0,7F0E29F0 LHU T1,0292 (SP) LUI T7,8009 LW T7,E328 (T7) ;T7=spectrum.ROMs LHU T3,0298 (SP) LUI T2,8009 ADDU T4,T7,T8 SRA T5,T3,0x8 SB T5,0001 (T4) LHU T9,0292 (SP) LW T2,E32C (T2) ADDIU T6,R0,0001 ADDU T0,T2,T9 BEQ R0,R0,7F0E2A40 SB T6,A801 (T0) ADDIU T3,T1,0001 SLTI AT,T3,4000 BNE AT,R0,7F0E2A40 LHU T7,0298 (SP) LUI T5,8009 LW T5,E328 (T5) ;T5=spectrum.ROMs SRA T8,T7,0x8 ADDIU T2,R0,0001 ADDU T4,T5,T1 SB T8,0001 (T4) LHU T9,0292 (SP) LUI T1,8009 LW T1,E32C (T1) ADDIU T6,T9,0001 ANDI T0,T6,1800 SRA T3,T0,0x3 ANDI T7,T6,00FF OR T5,T3,T7 ADDU T8,T1,T5 SB T2,0000 (T8) ADDIU T4,R0,0038 BEQ R0,R0,7F0E2C08 SH T4,0298 (SP) LBU T6,029E (SP) LUI T1,8009 LW T1,E328 (T1) ;T1=spectrum.ROMs SLL T3,T6,0x8 ADDIU T0,T9,000E ORI T7,T3,00FF LHU T6,0292 (SP) SW T0,028C (SP) ;cycles+=E ADDU T8,T1,T7 LBU T4,0001 (T8) ADDU T5,T7,T1 LBU T2,0000 (T5) ADDIU T3,T6,FFFE ANDI T5,T3,FFFF SLL T9,T4,0x8 SLTI AT,T5,5B00 OR T0,T2,T9 SW T0,004C (SP) BNE AT,R0,7F0E2AB4 SH T3,0292 (SP) LUI T7,8009 LW T7,E328 (T7) ;T7=spectrum.ROMs LHU T1,0298 (SP) ;T1=spec.PC ADDU T8,T7,T5 BEQ R0,R0,7F0E2B3C SB T1,0000 (T8) LHU T4,0292 (SP) LHU T1,0292 (SP) LUI T9,8009 SLTI AT,T4,5800 BNEL AT,R0,7F0E2AFC SLTI AT,T1,4000 LW T9,E328 (T9) ;T9=p->spectrum.ROMs LHU T2,0298 (SP) ;T2=spec.PC LUI T3,8009 ADDU T0,T9,T4 SB T2,0000 (T0) LHU T7,0292 (SP) LW T3,E32C (T3) ADDIU T6,R0,0001 ADDU T5,T3,T7 BEQ R0,R0,7F0E2B3C SB T6,A800 (T5) SLTI AT,T1,4000 BNE AT,R0,7F0E2B3C LUI T9,8009 LW T9,E328 (T9) ;T9=p->spectrum.ROMs LHU T8,0298 (SP) ;T8=spec.PC ADDIU T2,R0,0001 ADDU T4,T9,T1 SB T8,0000 (T4) LHU T0,0292 (SP) LUI T9,8009 LW T9,E32C (T9) ANDI T3,T0,1800 SRA T7,T3,0x3 ANDI T6,T0,00FF OR T5,T7,T6 ADDU T1,T9,T5 SB T2,0000 (T1) LHU T8,0292 (SP) LHU T9,0292 (SP) LHU T3,0298 (SP) ;T3=spec.PC ADDIU T4,T8,0001 SLTI AT,T4,5B00 BNE AT,R0,7F0E2B70 ADDIU T5,T9,0001 LUI T7,8009 LW T7,E328 (T7) ;T7=p->spectrum.ROMs SRA T0,T3,0x8 ADDU T6,T7,T8 BEQ R0,R0,7F0E2C00 SB T0,0001 (T6) SLTI AT,T5,5800 BNE AT,R0,7F0E2BB0 LHU T5,0292 (SP) LUI T4,8009 LW T4,E328 (T4) ;T4=p->spectrum.ROMs LHU T2,0298 (SP) ;T2=spec.PC LUI T8,8009 ADDU T3,T4,T9 SRA T1,T2,0x8 SB T1,0001 (T3) LHU T0,0292 (SP) LW T8,E32C (T8) ADDIU T7,R0,0001 ADDU T6,T8,T0 BEQ R0,R0,7F0E2C00 SB T7,A801 (T6) ADDIU T2,T5,0001 SLTI AT,T2,4000 BNE AT,R0,7F0E2C00 LHU T4,0298 (SP) ;T4=spec.PC LUI T1,8009 LW T1,E328 (T1) ;T1=p->spectrum.ROMs SRA T9,T4,0x8 ADDIU T8,R0,0001 ADDU T3,T1,T5 SB T9,0001 (T3) LHU T0,0292 (SP) LUI T5,8009 LW T5,E32C (T5) ADDIU T7,T0,0001 ANDI T6,T7,1800 SRA T2,T6,0x3 ANDI T4,T7,00FF OR T1,T2,T4 ADDU T9,T5,T1 SB T8,0000 (T9) LW T3,004C (SP) SH T3,0298 (SP) ;spec.PC = SP+4C LUI AT,8009 SB S0,E338 (AT) LUI AT,8009 SB S1,E339 (AT) LUI AT,8009 SB S2,E33A (AT) LUI AT,8009 SB S3,E33B (AT) LUI AT,8009 SB S4,E33C (AT) LUI AT,8009 SB S5,E33D (AT) LUI AT,8009 SB S6,E33E (AT) LBU T0,02A6 (SP) LUI AT,8009 SB S7,E33F (AT) LBU T6,02A5 (SP) LUI AT,8009 SB T0,E340 (AT) LBU T7,02A4 (SP) LUI AT,8009 SB T6,E341 (AT) LBU T2,02A3 (SP) LUI AT,8009 SB T7,E342 (AT) LBU T4,02A2 (SP) LUI AT,8009 SB T2,E343 (AT) LBU T5,02A1 (SP) LUI AT,8009 SB T4,E344 (AT) LBU T1,02A0 (SP) LUI AT,8009 SB T5,E345 (AT) LBU T8,029F (SP) LUI AT,8009 SB T1,E346 (AT) LBU T9,029D (SP) LUI AT,8009 SB T8,E347 (AT) LBU T3,029C (SP) LUI AT,8009 SB T9,E34A (AT) LBU T0,029E (SP) LUI AT,8009 SB T3,E34B (AT) LBU T6,02A7 (SP) LUI AT,8009 SB T0,E348 (AT) LBU T2,029B (SP) LUI AT,8009 SB T6,E349 (AT) LHU T4,0296 (SP) LUI AT,8009 SB T2,E34C (AT) LHU T5,0294 (SP) LUI AT,8009 SH T4,E34E (AT) LHU T1,0292 (SP) LUI AT,8009 LW T7,0288 (SP) SH T5,E350 (AT) LW RA,0034 (SP) LUI AT,8009 LHU T8,0298 (SP) ;T8=spec.PC SH T1,E352 (AT) LUI AT,8009 LW S7,0030 (SP) LW S6,002C (SP) LW S5,0028 (SP) LW S4,0024 (SP) LW S3,0020 (SP) LW S2,001C (SP) LW S1,0018 (SP) LW S0,0014 (SP) SB T7,02A7 (SP) ADDIU SP,SP,02B0 JR RA SH T8,E354 (AT)