cat.txt

(31 KB) Pobierz
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      ...
Zgłoś jeśli naruszono regulamin