Atari CAT Box ROM Disassembly 1/8/98 Jess Askey Game/Box Counter EQU $2000 Segment Select EQU $2B00 Digit Select/SA Enabled EQU $3000 Signature Analyser Reset EQU $3800 Address Flag EQU $4000 Data Flag EQU $4001 1 Byte Flag EQU $4002 1K Byte Flag EQU $4003 Spare Input EQU $4004 R/W Flag EQU $4005 Self Test Flag (1=ST) EQU $4006 Done Flag (0=Done) EQU $4007 Switch Inputs EQU $4008 Keypad: 3,7,B,F EQU $4010 Keypad: 2,6,A,E EQU $4020 Keypad: 1,5,9,D EQU $4040 Keypad: 0,4,8,C EQU $4080 R/W Mode (D2=static D1=pulse) EQU $4100 6000 02 BB 5A 30 50 EE 3D A8 43 4F 50 59 52 49 47 48 6010: 54 20 31 39 38 30 2C 20 41 54 41 52 49 2C 20 49 6020: 4E 43 2E 6023 A5:80 LDA:zp Zp RAM 0080 6025 29:7F AND:imm #7F 6027 85:80 STA:zp Zp RAM 0080 6029 2C:06 40 BIT:abs Self Test Flag (1=ST) 602C 10:03 BPL:rel Branch->$6031 602E 4C:C7 60 JMP:abs $60C7 6031 AD:08 40 LDA:abs Switch Inputs 6034 29:02 AND:imm #02 6036 F0:06 BEQ:rel Branch->$603E 6038 20:6A 60 JSR:abs $606A 603B 4C:54 60 JMP:abs $6054 603E A9:00 LDA:imm #00 6040 85:9B STA:zp Zp RAM 009B 6042 85:97 STA:zp Zp RAM 0097 6044 85:9C STA:zp Zp RAM 009C 6046 85:98 STA:zp Zp RAM 0098 6048 8D:00 38 STA:abs Signature Analyser Reset 604B 20:EF 60 JSR:abs $60EF 604E 20:C7 62 JSR:abs $62C7 6051 20:24 63 JSR:abs $6324 6054 A9:00 LDA:imm #00 6056 85:94 STA:zp Zp RAM 0094 6058 A5:80 LDA:zp Zp RAM 0080 605A 30:0B BMI:rel Branch->$6067 605C E6:94 INC:zp Zp RAM 0094 605E D0:F8 BNE:rel Branch->$6058 6060 A9:2F LDA:imm #2F 6062 85:1E STA:zp Zp RAM 001E 6064 58: CLI:imp Enable IRQ 6065 D0:F1 BNE:rel Branch->$6058 6067 4C:23 60 JMP:abs $6023 606A A9:00 LDA:imm #00 606C 85:96 STA:zp Zp RAM 0096 606E 85:98 STA:zp Zp RAM 0098 6070 85:82 STA:zp Zp RAM 0082 6072 A9:10 LDA:imm #10 6074 85:9B STA:zp Zp RAM 009B 6076 A5:9C LDA:zp Zp RAM 009C 6078 F0:08 BEQ:rel Branch->$6082 607A C6:9C DEC:zp Zp RAM 009C 607C A9:40 LDA:imm #40 607E 85:97 STA:zp Zp RAM 0097 6080 D0:04 BNE:rel Branch->$6086 6082 A9:00 LDA:imm #00 6084 85:97 STA:zp Zp RAM 0097 6086 2C:07 40 BIT:abs Done Flag (0=Done) 6089 10:01 BPL:rel Branch->$608C 608B 60: RTS:imp Ret from Sub 608C A2:40 LDX:imm #40 608E A5:02 LDA:zp Zp RAM 0002 6090 C5:83 CMP:zp Zp RAM 0083 6092 F0:02 BEQ:rel Branch->$6096 6094 86:9C STX:zp Zp RAM 009C 6096 85:83 STA:zp Zp RAM 0083 6098 A5:00 LDA:zp Zp RAM 0000 609A C5:84 CMP:zp Zp RAM 0084 609C F0:02 BEQ:rel Branch->$60A0 609E 86:9C STX:zp Zp RAM 009C 60A0 85:84 STA:zp Zp RAM 0084 60A2 A9:00 LDA:imm #00 60A4 8D:00 38 STA:abs Signature Analyser Reset 60A7 60: RTS:imp Ret from Sub 60A8 48: PHA:imp Push Accum *** IRQ ENTRY *** 60A9 8A: TXA:imp X-->A 60AA 48: PHA:imp Push Accum 60AB 98: TYA:imp Y-->A 60AC 48: PHA:imp Push Accum 60AD D8: CLD:imp Unset Decimal 60AE A5:80 LDA:zp Zp RAM 0080 60B0 09:80 ORA:imm #80 60B2 85:80 STA:zp Zp RAM 0080 60B4 A9:2F LDA:imm #2F 60B6 85:1E STA:zp Zp RAM 001E 60B8 AD:06 40 LDA:abs Self Test Flag (1=ST) 60BB 30:03 BMI:rel Branch->$60C0 60BD 20:2E 64 JSR:abs $642E 60C0 68: PLA:imp Pull Accum 60C1 A8: TAY:imp A-->Y 60C2 68: PLA:imp Pull Accum 60C3 AA: TAX:imp A-->X 60C4 68: PLA:imp Pull Accum 60C5 58: CLI:imp Enable IRQ 60C6 40: RTI:imp Ret from Int 60C7 78: SEI:imp Disable IRQ *** RESET ENTRY *** 60C8 D8: CLD:imp Unset Decimal 60C9 A2:FF LDX:imm #FF 60CB 9A: TXS:imp X-->Stack 60CC A9:00 LDA:imm #00 60CE 2C:06 40 BIT:abs Self Test Flag (1=ST) 60D1 10:03 BPL:rel Branch->$60D6 60D3 4C:BB 64 JMP:abs $64BB 60D6 95:00 STA:zp,x Zp RAM 0000 60D8 CA: DEX:imp X=X-1 60D9 30:FB BMI:rel Branch->$60D6 60DB 8D:00 30 STA:abs Digit Select/SA Enabled 60DE 8D:00 38 STA:abs Signature Analyser Reset 60E1 85:04 STA:zp Zp RAM 0004 60E3 85:01 STA:zp Zp RAM 0001 60E5 85:03 STA:zp Zp RAM 0003 60E7 A9:2F LDA:imm #2F 60E9 85:1E STA:zp Zp RAM 001E 60EB 58: CLI:imp Enable IRQ 60EC 4C:23 60 JMP:abs $6023 60EF AD:00 41 LDA:abs R/W Mode (D2=static D1=pulse) 60F2 6A: ROT:accum 60F3 6A: ROT:accum 60F4 6A: ROT:accum 60F5 20:95 62 JSR:abs $6295 60F8 A0:00 LDY:imm #00 60FA 24:9A BIT:zp Zp RAM 009A 60FC 30:03 BMI:rel Branch->$6101 60FE 70:0F BVS:rel Branch->$610F 6100 60: RTS:imp Ret from Sub 6101 A9:20 LDA:imm #20 6103 85:98 STA:zp Zp RAM 0098 6105 84:99 STY:zp Zp RAM 0099 6107 A5:86 LDA:zp Zp RAM 0086 6109 85:83 STA:zp Zp RAM 0083 610B A5:87 LDA:zp Zp RAM 0087 610D 85:84 STA:zp Zp RAM 0084 610F A5:9A LDA:zp Zp RAM 009A 6111 29:BF AND:imm #BF 6113 85:9A STA:zp Zp RAM 009A 6115 84:96 STY:zp Zp RAM 0096 6117 A5:83 LDA:zp Zp RAM 0083 6119 85:86 STA:zp Zp RAM 0086 611B A5:84 LDA:zp Zp RAM 0084 611D 85:87 STA:zp Zp RAM 0087 611F AD:08 40 LDA:abs Switch Inputs 6122 29:02 AND:imm #02 6124 D0:05 BNE:rel Branch->$612B 6126 2C:06 40 BIT:abs Self Test Flag (1=ST) 6129 10:01 BPL:rel Branch->$612C 612B 60: RTS:imp Ret from Sub 612C 84:94 STY:zp Zp RAM 0094 612E 84:95 STY:zp Zp RAM 0095 6130 2C:03 40 BIT:abs 1K Byte Flag 6133 10:04 BPL:rel Branch->$6139 6135 A9:03 LDA:imm #03 6137 85:95 STA:zp Zp RAM 0095 6139 2C:05 40 BIT:abs R/W Flag 613C 30:03 BMI:rel Branch->$6141 613E 4C:C5 61 JMP:abs $61C5 6141 2C:04 40 BIT:abs Spare Input 6144 10:03 BPL:rel Branch->$6149 6146 4C:21 62 JMP:abs $6221 6149 2C:02 40 BIT:abs 1 Byte Flag 614C 10:0E BPL:rel Branch->$615C 614E A9:0B LDA:imm #0B 6150 78: SEI:imp Disable IRQ 6151 8D:00 20 STA:abs Game/Box Counter 6154 B1:83 LDA:ind,y 83 6156 58: CLI:imp Enable IRQ 6157 85:82 STA:zp Zp RAM 0082 6159 4C:94 61 JMP:abs $6194 615C AD:01 40 LDA:abs Data Flag 615F 30:0B BMI:rel Branch->$616C 6161 A5:83 LDA:zp Zp RAM 0083 6163 2C:00 40 BIT:abs Address Flag 6166 10:02 BPL:rel Branch->$616A 6168 49:FF EOR:imm #FF 616A 85:82 STA:zp Zp RAM 0082 616C A9:0B LDA:imm #0B 616E 78: SEI:imp Disable IRQ 616F 8D:00 20 STA:abs Game/Box Counter 6172 B1:83 LDA:ind,y 83 6174 58: CLI:imp Enable IRQ 6175 C5:82 CMP:zp Zp RAM 0082 6177 F0:08 BEQ:rel Branch->$6181 6179 85:85 STA:zp Zp RAM 0085 617B A9:80 LDA:imm #80 617D 85:96 STA:zp Zp RAM 0096 617F 30:29 BMI:rel Branch->$61AA 6181 E6:83 INC:zp Zp RAM 0083 6183 D0:02 BNE:rel Branch->$6187 6185 E6:84 INC:zp Zp RAM 0084 6187 C6:94 DEC:zp Zp RAM 0094 6189 D0:D1 BNE:rel Branch->$615C 618B A5:95 LDA:zp Zp RAM 0095 618D F0:05 BEQ:rel Branch->$6194 618F C6:95 DEC:zp Zp RAM 0095 6191 4C:5C 61 JMP:abs $615C 6194 24:9A BIT:zp Zp RAM 009A 6196 10:2A BPL:rel Branch->$61C2 6198 AD:00 41 LDA:abs R/W Mode (D2=static D1=pulse) 619B 29:02 AND:imm #02 619D F0:23 BEQ:rel Branch->$61C2 619F A5:86 LDA:zp Zp RAM 0086 61A1 85:83 STA:zp Zp RAM 0083 61A3 A5:87 LDA:zp Zp RAM 0087 61A5 85:84 STA:zp Zp RAM 0084 61A7 4C:1F 61 JMP:abs $611F 61AA A2:00 LDX:imm #00 61AC 2C:06 40 BIT:abs Self Test Flag (1=ST) 61AF 30:11 BMI:rel Branch->$61C2 61B1 AD:08 40 LDA:abs Switch Inputs 61B4 29:02 AND:imm #02 61B6 D0:0A BNE:rel Branch->$61C2 61B8 AD:00 41 LDA:abs R/W Mode (D2=static D1=pulse) 61BB 29:02 AND:imm #02 61BD D0:EB BNE:rel Branch->$61AA 61BF CA: DEX:imp X=X-1 61C0 D0:EA BNE:rel Branch->$61AC 61C2 84:98 STY:zp Zp RAM 0098 61C4 60: RTS:imp Ret from Sub 61C5 2C:02 40 BIT:abs 1 Byte Flag 61C8 10:06 BPL:rel Branch->$61D0 61CA 20:0F 62 JSR:abs $620F 61CD 4C:F6 61 JMP:abs $61F6 61D0 AD:01 40 LDA:abs Data Flag 61D3 30:0B BMI:rel Branch->$61E0 61D5 A5:83 LDA:zp Zp RAM 0083 61D7 2C:00 40 BIT:abs Address Flag 61DA 10:02 BPL:rel Branch->$61DE 61DC 49:FF EOR:imm #FF 61DE 85:82 STA:zp Zp RAM 0082 61E0 20:0F 62 JSR:abs $620F 61E3 C6:94 DEC:zp Zp RAM 0094 61E5 D0:06 BNE:rel Branch->$61ED 61E7 A5:95 LDA:zp Zp RAM 0095 61E9 F0:0B BEQ:rel Branch->$61F6 61EB C6:95 DEC:zp Zp RAM 0095 61ED E6:83 INC:zp Zp RAM 0083 61EF D0:DF BNE:rel Branch->$61D0 61F1 E6:84 INC:zp Zp RAM 0084 61F3 4C:D0 61 JMP:abs $61D0 61F6 A5:86 LDA:zp Zp RAM 0086 61F8 85:83 STA:zp Zp RAM 0083 61FA A5:87 LDA:zp Zp RAM 0087 61FC 85:84 STA:zp Zp RAM 0084 61FE 24:9A BIT:zp Zp RAM 009A 6200 10:0A BPL:rel Branch->$620C 6202 AD:00 41 LDA:abs R/W Mode (D2=static D1=pulse) 6205 29:02 AND:imm #02 6207 F0:03 BEQ:rel Branch->$620C 6209 4C:1F 61 JMP:abs $611F 620C 84:98 STY:zp Zp RAM 0098 620E 60: RTS:imp Ret from Sub 620F 78: SEI:imp Disable IRQ 6210 A5:0C ...
voyssgdial