2293 lines
94 KiB
Plaintext
2293 lines
94 KiB
Plaintext
;
|
|
;
|
|
; File Name : MCL6809 Opcode Tests
|
|
; Used on :
|
|
; Author : Ted Fried, MicroCore Labs
|
|
; Creation : 7/1/2024
|
|
;
|
|
; Description:
|
|
; ============
|
|
;
|
|
; MC6809 assembly program to test each opcode, flag, and addressing mode.
|
|
;
|
|
; If failures are detected, the code will immediately loop on itself.
|
|
;
|
|
; I used ASM6809.EXE to assemble the code and generate the binary.
|
|
; Please set the reset vector to 0x0000.
|
|
;
|
|
;------------------------------------------------------------------------
|
|
;
|
|
; Modification History:
|
|
; =====================
|
|
;
|
|
; Revision 1 7/1/2024
|
|
; Initial revision
|
|
;
|
|
;
|
|
;------------------------------------------------------------------------
|
|
;
|
|
; Copyright (c) 2024 Ted Fried
|
|
;
|
|
; Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
; of this software and associated documentation files (the "Software"), to deal
|
|
; in the Software without restriction, including without limitation the rights
|
|
; to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
; copies of the Software, and to permit persons to whom the Software is
|
|
; furnished to do so, subject to the following conditions:
|
|
;
|
|
; The above copyright notice and this permission notice shall be included in all
|
|
; copies or substantial portions of the Software.
|
|
;
|
|
; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
; SOFTWARE.
|
|
;
|
|
|
|
; Scratch workspace from 0x0000
|
|
; Test code starts at 0x2000
|
|
; System Stack starts at 0xF100
|
|
; User Stack starts at 0xF200
|
|
|
|
|
|
0000 7E2000 jmp op_LOAD_STORES
|
|
|
|
|
|
1B00 ORG 0x01B00
|
|
1B00 8600 lda #$000 ; SWI
|
|
1B02 C600 ldb #$000
|
|
1B04 8E0000 ldx #$000
|
|
1B07 108E0000 ldy #$000
|
|
1B0B 3B rti
|
|
|
|
1BA0 ORG 0x01BA0
|
|
1BA0 8600 lda #$000 ; SWI2
|
|
1BA2 C600 ldb #$000
|
|
1BA4 8E0000 ldx #$000
|
|
1BA7 108E0000 ldy #$000
|
|
1BAB 3B rti
|
|
|
|
1BB0 ORG 0x01BB0
|
|
1BB0 8600 lda #$000 ; SWI3
|
|
1BB2 C600 ldb #$000
|
|
1BB4 8E0000 ldx #$000
|
|
1BB7 108E0000 ldy #$000
|
|
1BBB 3B rti
|
|
|
|
|
|
|
|
2000 ORG 0x02000
|
|
|
|
; Test - Loads, stores using all addressing modes
|
|
; ----------------------------------------------------------------------
|
|
2000 op_LOAD_STORES
|
|
2000 12 nop
|
|
2001 12 nop
|
|
2002 12 nop
|
|
|
|
; Immediate Loads
|
|
; ----------------
|
|
2003 86AA lda #$0AA
|
|
2005 C6BB ldb #$0BB
|
|
2007 CCFACE ldd #$FACE
|
|
200A CE1234 ldu #$01234
|
|
200D 10CE5678 lds #$05678
|
|
2011 8EDEAD ldx #$0DEAD
|
|
2014 108EBEEF ldy #$0BEEF
|
|
2018 12 nop
|
|
2019 12 nop
|
|
201A 12 nop
|
|
|
|
; Populate memory with test values
|
|
; 0x1200: 12 34
|
|
; 0x1204: 12 38
|
|
; 0x1212: 88 99
|
|
; 0x1234: 12 34 56 78 DE AD BE EF
|
|
; 0x1258: 33 44 55 66
|
|
; 0x1260: 33 44
|
|
; 0x8E12: 66 77
|
|
; 0x8F38: 5A 5B
|
|
; 0x8F40: 12 34
|
|
|
|
201B 108E1200 ldy #$01200
|
|
201F 8E1234 ldx #$01234
|
|
2022 AFA4 stx ,Y
|
|
2024 108E1204 ldy #$01204
|
|
2028 8E1238 ldx #$01238
|
|
202B AFA4 stx ,Y
|
|
202D 108E1234 ldy #$01234
|
|
2031 8E1234 ldx #$01234
|
|
2034 AFA4 stx ,Y
|
|
2036 8E1236 ldx #$01236
|
|
2039 108E5678 ldy #$05678
|
|
203D 10AF84 sty ,X
|
|
2040 CE1238 ldu #$01238
|
|
2043 10CEDEAD lds #$0DEAD
|
|
2047 10EFC4 sts ,U
|
|
204A 10CE123A lds #$0123A
|
|
204E CEBEEF ldu #$0BEEF
|
|
2051 EFE4 stu ,S
|
|
2053 CE1258 ldu #$01258
|
|
2056 10CE3344 lds #$03344
|
|
205A 10EFC4 sts ,U
|
|
205D 10CE125A lds #$0125A
|
|
2061 CE5566 ldu #$05566
|
|
2064 EFE4 stu ,S
|
|
2066 10CE8F38 lds #$08F38
|
|
206A CE5A5B ldu #$05A5B
|
|
206D EFE4 stu ,S
|
|
206F 10CE8F40 lds #$08F40
|
|
2073 CE1234 ldu #$01234
|
|
2076 EFE4 stu ,S
|
|
2078 10CE8E12 lds #$08E12
|
|
207C CE6677 ldu #$06677
|
|
207F EFE4 stu ,S
|
|
2081 10CE1212 lds #$01212
|
|
2085 CE8899 ldu #$08899
|
|
2088 EFE4 stu ,S
|
|
208A CE1260 ldu #$01260
|
|
208D 10CE3344 lds #$03344
|
|
2091 10EFC4 sts ,U
|
|
2094 12 nop
|
|
2095 12 nop
|
|
2096 12 nop
|
|
|
|
|
|
; ----------------------------------------
|
|
; Test - Loads
|
|
; ----------------------------------------
|
|
|
|
; Direct
|
|
; ----------
|
|
2097 8612 lda #$012
|
|
2099 1E8B exg a,dp ; Set the Direct Page
|
|
209B SETDP 0x012 ; Tell the assembler about it
|
|
|
|
209B 9634 lda <$034
|
|
209D 8112 cmpa #0x012
|
|
209F 10261192 lbne FAIL
|
|
|
|
20A3 D635 ldb <$035
|
|
20A5 C134 cmpb #0x034
|
|
20A7 1026118A lbne FAIL
|
|
|
|
20AB DC36 ldd <$036
|
|
20AD 10835678 cmpd #0x05678
|
|
20B1 10261180 lbne FAIL
|
|
|
|
20B5 DE38 ldu <$038
|
|
20B7 1183DEAD cmpu #0x0DEAD
|
|
20BB 10261176 lbne FAIL
|
|
|
|
20BF 10DE3A lds <$03a
|
|
20C2 118CBEEF cmps #0x0BEEF
|
|
20C6 1026116B lbne FAIL
|
|
|
|
20CA 9E35 ldx <$035
|
|
20CC 8C3456 cmpx #0x03456
|
|
20CF 10261162 lbne FAIL
|
|
|
|
20D3 109E37 ldy <$037
|
|
20D6 108C78DE cmpy #0x078DE
|
|
20DA 10261157 lbne FAIL
|
|
|
|
20DE 12 nop
|
|
20DF 12 nop
|
|
20E0 12 nop
|
|
|
|
|
|
; Extended Direct
|
|
; -----------------
|
|
20E1 B6123B lda >$0123B
|
|
20E4 81EF cmpa #0x0EF
|
|
20E6 1026114B lbne FAIL
|
|
|
|
20EA F6123A ldb >$0123a
|
|
20ED C1BE cmpb #0x0BE
|
|
20EF 10261142 lbne FAIL
|
|
|
|
20F3 FC1238 ldd >$01238
|
|
20F6 1083DEAD cmpd #0x0DEAD
|
|
20FA 10261137 lbne FAIL
|
|
|
|
20FE FE1234 ldu >$01234
|
|
2101 11831234 cmpu #0x01234
|
|
2105 1026112C lbne FAIL
|
|
|
|
2109 10FE1234 lds >$01234
|
|
210D 118C1234 cmps #0x01234
|
|
2111 10261120 lbne FAIL
|
|
|
|
2115 BE1235 ldx >$01235
|
|
2118 8C3456 cmpx #0x03456
|
|
211B 10261116 lbne FAIL
|
|
|
|
211F 10BE1236 ldy >$01236
|
|
2123 108C5678 cmpy #0x05678
|
|
2127 1026110A lbne FAIL
|
|
|
|
212B 12 nop
|
|
212C 12 nop
|
|
212D 12 nop
|
|
|
|
|
|
|
|
; Indexed - Extended Indirect
|
|
; ---------------------------
|
|
|
|
; Load memory with the indirect pointers - addresses + 0x0030
|
|
; 0x1400: 0x1234
|
|
; 0x1410: 0x1238
|
|
|
|
212E 108E1400 ldy #$01400
|
|
2132 8E1234 ldx #$01234
|
|
2135 AFA4 stx ,Y
|
|
2137 8E1410 ldx #$01410
|
|
213A 108E1238 ldy #$01238
|
|
213E 10AF84 sty ,X
|
|
|
|
|
|
2141 A69F1400 lda [$01400]
|
|
2145 8112 cmpa #0x012
|
|
2147 102610EA lbne FAIL
|
|
|
|
214B E69F1400 ldb [$01400]
|
|
214F C112 cmpb #0x012
|
|
2151 102610E0 lbne FAIL
|
|
|
|
2155 EC9F1400 ldd [$01400]
|
|
2159 10831234 cmpd #0x01234
|
|
215D 102610D4 lbne FAIL
|
|
|
|
2161 EE9F1410 ldu [$01410]
|
|
2165 1183DEAD cmpu #0x0DEAD
|
|
2169 102610C8 lbne FAIL
|
|
|
|
216D 10EE9F1410 lds [$01410]
|
|
2172 118CDEAD cmps #0x0DEAD
|
|
2176 102610BB lbne FAIL
|
|
|
|
217A AE9F1400 ldx [$01400]
|
|
217E 8C1234 cmpx #0x01234
|
|
2181 102610B0 lbne FAIL
|
|
|
|
2185 10AE9F1400 ldy [$01400]
|
|
218A 108C1234 cmpy #0x01234
|
|
218E 102610A3 lbne FAIL
|
|
|
|
2192 12 nop
|
|
2193 12 nop
|
|
2194 12 nop
|
|
|
|
|
|
|
|
; Indexed - Non-Indirect Register with opcode offsets from register
|
|
; ------------------------------------------------------------------
|
|
|
|
2195 CE1234 ldu #$01234 ; Set R index registers
|
|
2198 10CE1238 lds #$01238
|
|
219C 8E1234 ldx #$01234
|
|
219F 108E1238 ldy #$01238
|
|
|
|
21A3 A6C4 lda ,U ; Indexed - Non-Indirect Register (no offset)
|
|
21A5 8112 cmpa #0x012
|
|
21A7 1026108A lbne FAIL
|
|
|
|
21AB A67F lda -1,S ; Indexed - Non-Indirect Register (5-bit offset)
|
|
21AD 8178 cmpa #0x078
|
|
21AF 10261082 lbne FAIL
|
|
|
|
21B3 A6E820 lda 32,S ; Indexed - Non-Indirect Register (8-bit offset)
|
|
21B6 8133 cmpa #0x033
|
|
21B8 10261079 lbne FAIL
|
|
|
|
21BC A6E97D00 lda 32000,S ; Indexed - Non-Indirect Register (16-bit offset)
|
|
21C0 815A cmpa #0x05A
|
|
21C2 1026106F lbne FAIL
|
|
|
|
|
|
21C6 E6A4 ldb ,Y ; Indexed - Non-Indirect Register (no offset)
|
|
21C8 C1DE cmpb #0x0DE
|
|
21CA 10261067 lbne FAIL
|
|
|
|
21CE 8602 lda #2 ; Indexed - Non-Indirect Register (Accumulator-A offset)
|
|
21D0 E6A6 ldb A,Y
|
|
21D2 C1BE cmpb #0x0BE
|
|
21D4 1026105D lbne FAIL
|
|
|
|
21D8 C603 ldb #3 ; Indexed - Non-Indirect Register (Accumulator-B offset)
|
|
21DA A6A5 lda B,Y
|
|
21DC 81EF cmpa #0x0EF
|
|
21DE 10261053 lbne FAIL
|
|
|
|
21E2 CC0001 ldd #1 ; Indexed - Non-Indirect Register (Accumulator-B offset)
|
|
21E5 A6AB lda D,Y
|
|
21E7 81AD cmpa #0x0AD
|
|
21E9 10261048 lbne FAIL
|
|
|
|
|
|
|
|
21ED ECE4 ldd ,S ; Indexed - Non-Indirect Register (no offset)
|
|
21EF 1083DEAD cmpd #0x0DEAD
|
|
21F3 1026103E lbne FAIL
|
|
|
|
21F7 ECE0 ldd ,S+ ; Indexed - Non-Indirect Register (Post-increment)
|
|
21F9 1083DEAD cmpd #0x0DEAD
|
|
21FD 10261034 lbne FAIL
|
|
|
|
2201 ECE0 ldd ,S+ ; Indexed - Non-Indirect Register (Post-increment +1)
|
|
2203 1083ADBE cmpd #0x0ADBE
|
|
2207 1026102A lbne FAIL
|
|
|
|
220B ECE1 ldd ,S++ ; Indexed - Non-Indirect Register (Post-increment +2)
|
|
220D 1083BEEF cmpd #0x0BEEF
|
|
2211 10261020 lbne FAIL
|
|
|
|
2215 8E1238 ldx #$01238
|
|
2218 EE82 ldu ,-X ; Indexed - Non-Indirect Register (Pre-decrement -1)
|
|
221A 118378DE cmpu #0x078DE
|
|
221E 10261013 lbne FAIL
|
|
|
|
2222 PCR_LABEL
|
|
2222 8E1238 ldx #$01238
|
|
2225 EE83 ldu ,--X ; Indexed - Non-Indirect Register (Pre-decrement -2)
|
|
2227 11835678 cmpu #0x05678
|
|
222B 10261006 lbne FAIL
|
|
|
|
222F A68CF0 lda PCR_LABEL,PCR ; Indexed - Non-Indirect PCR - PC Relative - 8-bit offset
|
|
2232 818E cmpa #0x08E
|
|
2234 10260FFD lbne FAIL
|
|
|
|
2238 A68DFDC4 lda op_LOAD_STORES,PCR ; Indexed - Non-Indirect PCR - PC Relative - 16-bit offset
|
|
223C 8112 cmpa #0x012
|
|
223E 10260FF3 lbne FAIL
|
|
|
|
|
|
2242 A69CDD lda [PCR_LABEL,PCR] ; Indexed - Indirect PCR - PC Relative - 8-bit offset
|
|
2245 8166 cmpa #0x066
|
|
2247 10260FEA lbne FAIL
|
|
|
|
224B A69DFDB1 lda [op_LOAD_STORES,PCR] ; Indexed - Indirect PCR - PC Relative - 16-bit offset
|
|
224F 8188 cmpa #0x088
|
|
2251 10260FE0 lbne FAIL
|
|
|
|
|
|
|
|
|
|
2255 CE1234 ldu #$01234 ; Restore R index registers
|
|
2258 10CE1238 lds #$01238
|
|
225C 8E1234 ldx #$01234
|
|
225F 108E1238 ldy #$01238
|
|
|
|
2263 EE84 ldu ,X
|
|
|
|
|
|
2265 10CE1200 lds #$01200 ; Indexed - Indirect Register (8-bit offset)
|
|
2269 A6F804 lda [4,S]
|
|
226C 11831234 cmpu #0x01234
|
|
2270 10260FC1 lbne FAIL
|
|
|
|
2274 10EEA4 lds ,Y
|
|
2277 118CDEAD cmps #0x0DEAD
|
|
227B 10260FB6 lbne FAIL
|
|
|
|
227F AEA4 ldx ,Y
|
|
2281 8CDEAD cmpx #0x0DEAD
|
|
2284 10260FAD lbne FAIL
|
|
|
|
2288 10AEA4 ldy ,Y
|
|
228B 108CDEAD cmpy #0x0DEAD
|
|
228F 10260FA2 lbne FAIL
|
|
2293 81DE cmpa #0x0DE
|
|
2295 10260F9C lbne FAIL
|
|
|
|
2299 10CE1300 lds #$01300 ; Indexed - Indirect Register (16-bit offset)
|
|
229D A6F9FF00 lda [(-0x00100),S]
|
|
22A1 8112 cmpa #0x012
|
|
22A3 10260F8E lbne FAIL
|
|
|
|
22A7 CE11FF ldu #$011FF ; Indexed - Indirect Register (Accumulator-A offset)
|
|
22AA 8601 lda #$00001
|
|
22AC A6D6 lda [A,U]
|
|
22AE 8112 cmpa #0x012
|
|
22B0 10260F81 lbne FAIL
|
|
|
|
22B4 CE11FF ldu #$011FF ; Indexed - Indirect Register (Accumulator-B offset)
|
|
22B7 C601 ldb #$00001
|
|
22B9 A6D5 lda [B,U]
|
|
22BB 8112 cmpa #0x012
|
|
22BD 10260F74 lbne FAIL
|
|
|
|
22C1 CE10FF ldu #$010FF ; Indexed - Indirect Register (Accumulator-D offset)
|
|
22C4 CC0101 ldd #$00101
|
|
22C7 A6DB lda [D,U]
|
|
22C9 8112 cmpa #0x012
|
|
22CB 10260F66 lbne FAIL
|
|
|
|
|
|
22CF 10CE1200 lds #$01200
|
|
22D3 10AEF1 ldy [,S++] ; Indexed - ndirect Register (Post-increment +2)
|
|
22D6 108C1234 cmpy #0x01234
|
|
22DA 10260F57 lbne FAIL
|
|
22DE 118C1202 cmps #0x01202
|
|
22E2 10260F4F lbne FAIL
|
|
|
|
|
|
22E6 10CE1202 lds #$01202
|
|
22EA 10AEF3 ldy [,--S] ; Indexed - ndirect Register (Pre_decement -2)
|
|
22ED 108C1234 cmpy #0x01234
|
|
22F1 10260F40 lbne FAIL
|
|
22F5 118C1200 cmps #0x01200
|
|
22F9 10260F38 lbne FAIL
|
|
22FD 12 nop
|
|
22FE 12 nop
|
|
22FF 12 nop
|
|
|
|
|
|
; ----------------------------------------
|
|
; Test - Stores
|
|
; ----------------------------------------
|
|
|
|
2300 8618 lda #$018
|
|
2302 1E8B exg a,dp ; Set the Direct Page
|
|
2304 SETDP 0x018 ; Tell the assembler about it
|
|
|
|
2304 108E1A00 ldy #$01A00 ; Store same pattern at 0x1800, 0x1900, 0x1A00 using each of the addressing modes
|
|
2308 86AA lda #0x0AA
|
|
230A 9700 sta <0x00
|
|
230C B71900 sta >0x1900
|
|
230F A7A0 sta ,Y+
|
|
2311 C6BB ldb #0x0BB
|
|
2313 D701 stb <0x01
|
|
2315 F71901 stb >0x1901
|
|
2318 E7A0 stb ,Y+
|
|
231A CCD00D ldd #0x0D00D
|
|
231D DD02 std <0x02
|
|
231F FD1902 std >0x1902
|
|
2322 EDA1 std ,Y++
|
|
2324 10CE5005 lds #0x05005
|
|
2328 10DF04 sts <0x04
|
|
232B 10FF1904 sts >0x1904
|
|
232F 10EFA1 sts ,Y++
|
|
2332 CE6006 ldu #0x06006
|
|
2335 DF06 stu <0x06
|
|
2337 FF1906 stu >0x1906
|
|
233A EFA1 stu ,Y++
|
|
233C 8E1001 ldx #0x01001
|
|
233F 9F08 stx <0x08
|
|
2341 BF1908 stx >0x1908
|
|
2344 AFA1 stx ,Y++
|
|
|
|
2346 C600 ldb #0x00
|
|
2348 CC0000 ldd #0x00
|
|
234B 10CE0000 lds #0x00
|
|
234F CE0000 ldu #0x00
|
|
2352 8E0000 ldx #0x00
|
|
2355 108E0000 ldy #0x00
|
|
|
|
2359 9600 lda <0x00
|
|
235B 81AA cmpa #$0AA
|
|
235D 10260ED4 lbne FAIL
|
|
2361 8600 lda #0x00
|
|
2363 B61900 lda >0x1900
|
|
2366 81AA cmpa #$0AA
|
|
2368 10260EC9 lbne FAIL
|
|
|
|
236C D601 ldb <0x01
|
|
236E C1BB cmpb #$0BB
|
|
2370 10260EC1 lbne FAIL
|
|
2374 C600 ldb #0x00
|
|
2376 F61901 ldb >0x1901
|
|
2379 C1BB cmpb #$0BB
|
|
237B 10260EB6 lbne FAIL
|
|
|
|
|
|
237F DC02 ldd <0x02
|
|
2381 1083D00D cmpd #$0D00D
|
|
2385 10260EAC lbne FAIL
|
|
2389 CC0000 ldd #0x00
|
|
238C FC1902 ldd >0x1902
|
|
238F 1083D00D cmpd #$0D00D
|
|
2393 10260E9E lbne FAIL
|
|
|
|
2397 10DE04 lds <0x04
|
|
239A 118C5005 cmps #$05005
|
|
239E 10260E93 lbne FAIL
|
|
23A2 10CE0000 lds #0x00
|
|
23A6 10FE1904 lds >0x1904
|
|
23AA 118C5005 cmps #$05005
|
|
23AE 10260E83 lbne FAIL
|
|
|
|
23B2 DE06 ldu <0x06
|
|
23B4 11836006 cmpu #0x06006
|
|
23B8 10260E79 lbne FAIL
|
|
23BC CE0000 ldu #0x00
|
|
23BF FE1906 ldu >0x1906
|
|
23C2 11836006 cmpu #0x06006
|
|
23C6 10260E6B lbne FAIL
|
|
|
|
23CA 9E08 ldx <0x08
|
|
23CC 8C1001 cmpx #$01001
|
|
23CF 10260E62 lbne FAIL
|
|
23D3 8E0000 ldx #0x00
|
|
23D6 BE1908 ldx >0x1908
|
|
23D9 8C1001 cmpx #$01001
|
|
23DC 10260E55 lbne FAIL
|
|
|
|
; LEA tests
|
|
23E0 108E1234 ldy #0x01234
|
|
23E4 32A4 leas ,Y
|
|
23E6 118C1234 cmps #0x01234
|
|
23EA 10260E47 lbne FAIL
|
|
23EE 33A4 leau ,Y
|
|
23F0 11831234 cmpu #0x01234
|
|
23F4 10260E3D lbne FAIL
|
|
23F8 30A4 leax ,Y
|
|
23FA 8C1234 cmpx #0x01234
|
|
23FD 10260E34 lbne FAIL
|
|
2401 8E1234 ldx #0x01234
|
|
2404 3184 leay ,X
|
|
2406 108C1234 cmpy #0x01234
|
|
240A 10260E27 lbne FAIL
|
|
|
|
|
|
;-----------------------------------------------------------
|
|
;-----------------------------------------------------------
|
|
|
|
|
|
; Test brsnche and jump opcodes
|
|
; ----------------------------------------------------------------------
|
|
240E op_BRANCHES_JUMPS
|
|
240E 12 nop
|
|
240F 12 nop
|
|
2410 12 nop
|
|
|
|
2411 2006 bra BRANCHES_JUMPS_START
|
|
|
|
2413 LOCAL_FAIL
|
|
2413 7E2413 jmp LOCAL_FAIL
|
|
|
|
2416 SUBROUTINE_TEST
|
|
2416 12 nop
|
|
2417 12 nop
|
|
2418 39 rts
|
|
|
|
|
|
2419 BRANCHES_JUMPS_START
|
|
|
|
; Branches - set CC manually then test branch
|
|
|
|
2419 1CF0 andcc #0x0F0 ; Clear arithmetic flags
|
|
241B 102B0E16 lbmi FAIL ; branch if N=1
|
|
241F 10270E12 lbeq FAIL ; branch if Z=1
|
|
2423 10290E0E lbvs FAIL ; branch if V=1
|
|
2427 10250E0A lbcs FAIL ; branch if C=1
|
|
|
|
242B 2BE6 bmi LOCAL_FAIL ; branch if N=1
|
|
242D 27E4 beq LOCAL_FAIL ; branch if Z=1
|
|
242F 29E2 bvs LOCAL_FAIL ; branch if V=1
|
|
2431 25E0 bcs LOCAL_FAIL ; branch if C=1
|
|
|
|
2433 1A0F orcc #0x00F ; Set arithmetic flags
|
|
2435 102A0DFC lbpl FAIL ; branch if N=0
|
|
2439 10260DF8 lbne FAIL ; branch if Z=0
|
|
243D 10280DF4 lbvc FAIL ; branch if V=0
|
|
2441 10240DF0 lbcc FAIL ; branch if C=0
|
|
|
|
2445 2ACC bpl LOCAL_FAIL ; branch if N=0
|
|
2447 26CA bne LOCAL_FAIL ; branch if Z=0
|
|
2449 28C8 bvc LOCAL_FAIL ; branch if V=0
|
|
244B 24C6 bcc LOCAL_FAIL ; branch if C=0
|
|
|
|
244D 2DC4 blt LOCAL_FAIL ; branch if flag_n!=flag_v
|
|
244F 102DFFC0 lblt LOCAL_FAIL
|
|
|
|
2453 2EBE bgt LOCAL_FAIL ; branch if (flag_n==flag_v) && (flag_z==0)
|
|
2455 102EFFBA lbgt LOCAL_FAIL
|
|
|
|
2459 1CF7 andcc #0x0F7 ; Clear n flag
|
|
245B 2CB6 bge LOCAL_FAIL ; branch if flag_n==flag_v
|
|
245D 102CFFB2 lbge LOCAL_FAIL
|
|
|
|
2461 1A01 orcc #0x001 ; Set c flag
|
|
2463 22AE bhi LOCAL_FAIL ; branch if (flag_z==0) && (flag_c==0)
|
|
2465 1022FFAA lbhi LOCAL_FAIL
|
|
|
|
2469 1CF8 andcc #0x0F8 ; Clear z,v,c flags
|
|
246B 2FA6 ble LOCAL_FAIL ; branch if (flag_n!=flag_v) || (flag_z==1)
|
|
246D 102FFFA2 lble LOCAL_FAIL
|
|
|
|
2471 23A0 bls LOCAL_FAIL ; branch if (flag_z!=0) || (flag_c!=0)
|
|
2473 1023FF9C lbls LOCAL_FAIL
|
|
|
|
2477 160003 lbra BRANCHES_CONTINUE
|
|
|
|
247A LOCAL_FAIL2
|
|
247A 7E247A jmp LOCAL_FAIL2
|
|
|
|
247D BRANCHES_CONTINUE
|
|
247D 21FB brn LOCAL_FAIL2
|
|
247F 1021FFF7 lbrn LOCAL_FAIL2
|
|
|
|
2483 8D91 bsr SUBROUTINE_TEST ; Branch Subroutine
|
|
2485 BD2416 jsr SUBROUTINE_TEST ; Jump Subroutine
|
|
2488 17FF8B lbsr SUBROUTINE_TEST ; Long Branch Subroutine
|
|
|
|
|
|
|
|
|
|
|
|
;-----------------------------------------------------------
|
|
;-----------------------------------------------------------
|
|
|
|
|
|
; Test - Addition and subtraction
|
|
; ----------------------------------------------------------------------
|
|
248B op_ADD_SUB
|
|
248B 12 nop
|
|
248C 12 nop
|
|
248D 12 nop
|
|
|
|
248E 8612 lda #$012
|
|
2490 1E8B exg a,dp ; Set the Direct Page
|
|
2492 SETDP 0x012 ; Tell the assembler about it
|
|
|
|
; Addition
|
|
; ------------
|
|
|
|
2492 8E1234 ldx #0x01234
|
|
2495 C602 ldb #0x02
|
|
2497 3A abx
|
|
2498 8C1236 cmpx #0x01236
|
|
249B 10260D96 lbne FAIL
|
|
|
|
249F 8602 lda #0x02 ; ADDA Immediate
|
|
24A1 8B02 adda #0x02
|
|
24A3 8104 cmpa #0x004
|
|
24A5 10260D8C lbne FAIL
|
|
|
|
24A9 8602 lda #0x02 ; ADDA Direct
|
|
24AB 9B34 adda <$034
|
|
24AD 8114 cmpa #0x014
|
|
24AF 10260D82 lbne FAIL
|
|
|
|
24B3 8E1200 ldx #0x01200 ; ADDA Indexed
|
|
24B6 8602 lda #0x02
|
|
24B8 AB84 adda ,X
|
|
24BA 8114 cmpa #0x014
|
|
24BC 10260D75 lbne FAIL
|
|
|
|
24C0 8602 lda #0x02 ; ADDA Extended
|
|
24C2 BB1234 adda >$01234
|
|
24C5 8114 cmpa #0x014
|
|
24C7 10260D6A lbne FAIL
|
|
|
|
|
|
24CB C602 ldb #0x02 ; ADDB Immediate
|
|
24CD CB02 addb #0x02
|
|
24CF C104 cmpb #0x004
|
|
24D1 10260D60 lbne FAIL
|
|
|
|
24D5 C602 ldb #0x02 ; ADDB Direct
|
|
24D7 DB34 addb <$034
|
|
24D9 C114 cmpb #0x014
|
|
24DB 10260D56 lbne FAIL
|
|
|
|
24DF 8E1200 ldx #0x01200 ; ADDB Indexed
|
|
24E2 C602 ldb #0x02
|
|
24E4 EB84 addb ,X
|
|
24E6 C114 cmpb #0x014
|
|
24E8 10260D49 lbne FAIL
|
|
|
|
24EC C602 ldb #0x02 ; ADDB Extended
|
|
24EE FB1234 addb >$01234
|
|
24F1 C114 cmpb #0x014
|
|
24F3 10260D3E lbne FAIL
|
|
|
|
|
|
24F7 CC1002 ldd #0x01002 ; ADDD Immediate
|
|
24FA C30002 addd #0x02
|
|
24FD 10831004 cmpd #0x01004
|
|
2501 10260D30 lbne FAIL
|
|
|
|
2505 CC1002 ldd #0x01002 ; ADDD Direct
|
|
2508 D334 addd <$034
|
|
250A 10832236 cmpd #0x02236
|
|
250E 10260D23 lbne FAIL
|
|
|
|
2512 8E1200 ldx #0x01200 ; ADDD Indexed
|
|
2515 CC0002 ldd #0x02
|
|
2518 E384 addd ,X
|
|
251A 10831236 cmpd #0x01236
|
|
251E 10260D13 lbne FAIL
|
|
|
|
2522 CC0002 ldd #0x02 ; ADDD Extended
|
|
2525 F31234 addd >$01234
|
|
2528 10831236 cmpd #0x01236
|
|
252C 10260D05 lbne FAIL
|
|
|
|
|
|
|
|
2530 8602 lda #0x02 ; ADCA Immediate
|
|
2532 1A01 orcc #0x001 ; Set Carry flag
|
|
2534 8902 adca #0x02
|
|
2536 8105 cmpa #0x005
|
|
2538 10260CF9 lbne FAIL
|
|
|
|
253C 8602 lda #0x02 ; ADCA Direct
|
|
253E 1A01 orcc #0x001 ; Set Carry flag
|
|
2540 9934 adca <$034
|
|
2542 8115 cmpa #0x015
|
|
2544 10260CED lbne FAIL
|
|
|
|
2548 8E1200 ldx #0x01200 ; ADCA Indexed
|
|
254B 8602 lda #0x02
|
|
254D 1A01 orcc #0x001 ; Set Carry flag
|
|
254F A984 adca ,X
|
|
2551 8115 cmpa #0x015
|
|
2553 10260CDE lbne FAIL
|
|
|
|
2557 8602 lda #0x02 ; ADCA Extended
|
|
2559 1A01 orcc #0x001 ; Set Carry flag
|
|
255B B91234 adca >$01234
|
|
255E 8115 cmpa #0x015
|
|
2560 10260CD1 lbne FAIL
|
|
|
|
|
|
|
|
2564 C602 ldb #0x02 ; ADCB Immediate
|
|
2566 1A01 orcc #0x001 ; Set Carry flag
|
|
2568 C902 adcb #0x02
|
|
256A C105 cmpb #0x005
|
|
256C 10260CC5 lbne FAIL
|
|
|
|
2570 C602 ldb #0x02 ; ADCB Direct
|
|
2572 1A01 orcc #0x001 ; Set Carry flag
|
|
2574 D934 adcb <$034
|
|
2576 C115 cmpb #0x015
|
|
2578 10260CB9 lbne FAIL
|
|
|
|
257C 8E1200 ldx #0x01200 ; ADCB Indexed
|
|
257F C602 ldb #0x02
|
|
2581 1A01 orcc #0x001 ; Set Carry flag
|
|
2583 E984 adcb ,X
|
|
2585 C115 cmpb #0x015
|
|
2587 10260CAA lbne FAIL
|
|
|
|
258B C602 ldb #0x02 ; ADCB Extended
|
|
258D 1A01 orcc #0x001 ; Set Carry flag
|
|
258F F91234 adcb >$01234
|
|
2592 C115 cmpb #0x015
|
|
2594 10260C9D lbne FAIL
|
|
|
|
|
|
; Subtraction
|
|
; ------------
|
|
|
|
2598 8602 lda #0x02 ; SUBA Immediate
|
|
259A 8002 suba #0x02
|
|
259C 8100 cmpa #0x00
|
|
259E 10260C93 lbne FAIL
|
|
|
|
25A2 8612 lda #0x12 ; SUBA Direct
|
|
25A4 9034 suba <$034
|
|
25A6 8100 cmpa #0x000
|
|
25A8 10260C89 lbne FAIL
|
|
|
|
25AC 8E1200 ldx #0x01200 ; SUBA Indexed
|
|
25AF 8612 lda #0x012
|
|
25B1 A084 suba ,X
|
|
25B3 8100 cmpa #0x000
|
|
25B5 10260C7C lbne FAIL
|
|
|
|
25B9 8612 lda #0x012 ; SUBA Extended
|
|
25BB B01234 suba >$01234
|
|
25BE 8100 cmpa #0x000
|
|
25C0 10260C71 lbne FAIL
|
|
|
|
|
|
25C4 C602 ldb #0x02 ; SUBB Immediate
|
|
25C6 C002 subb #0x02
|
|
25C8 C100 cmpb #0x000
|
|
25CA 10260C67 lbne FAIL
|
|
|
|
25CE C612 ldb #0x012 ; SUBB Direct
|
|
25D0 D034 subb <$034
|
|
25D2 C100 cmpb #0x00
|
|
25D4 10260C5D lbne FAIL
|
|
|
|
25D8 8E1200 ldx #0x01200 ; SUBB Indexed
|
|
25DB C612 ldb #0x012
|
|
25DD E084 subb ,X
|
|
25DF C100 cmpb #0x00
|
|
25E1 10260C50 lbne FAIL
|
|
|
|
25E5 C612 ldb #0x012 ; SUBB Extended
|
|
25E7 F01234 subb >$01234
|
|
25EA C100 cmpb #0x00
|
|
25EC 10260C45 lbne FAIL
|
|
|
|
|
|
25F0 CC1234 ldd #0x01234 ; SUBD Immediate
|
|
25F3 831234 subd #0x01234
|
|
25F6 10830000 cmpd #0x00
|
|
25FA 10260C37 lbne FAIL
|
|
|
|
25FE CC1234 ldd #0x01234 ; SUBD Direct
|
|
2601 9334 subd <$034
|
|
2603 10830000 cmpd #0x00
|
|
2607 10260C2A lbne FAIL
|
|
|
|
260B 8E1234 ldx #0x01234 ; SUBD Indexed
|
|
260E CC1234 ldd #0x01234
|
|
2611 A384 subd ,X
|
|
2613 10830000 cmpd #0x00
|
|
2617 10260C1A lbne FAIL
|
|
|
|
261B CC1234 ldd #0x01234 ; SUBD Extended
|
|
261E B31234 subd >$01234
|
|
2621 10830000 cmpd #0x00
|
|
2625 10260C0C lbne FAIL
|
|
|
|
|
|
|
|
2629 8603 lda #0x03 ; SBCA Immediate
|
|
262B 1A01 orcc #0x001 ; Set Carry flag
|
|
262D 8202 sbca #0x02
|
|
262F 8100 cmpa #0x000
|
|
2631 10260C00 lbne FAIL
|
|
|
|
2635 8613 lda #0x013 ; SBCA Direct
|
|
2637 1A01 orcc #0x001 ; Set Carry flag
|
|
2639 9234 sbca <$034
|
|
263B 8100 cmpa #0x00
|
|
263D 10260BF4 lbne FAIL
|
|
|
|
2641 8E1200 ldx #0x01200 ; SBCA Indexed
|
|
2644 8613 lda #0x013
|
|
2646 1A01 orcc #0x001 ; Set Carry flag
|
|
2648 A284 sbca ,X
|
|
264A 8100 cmpa #0x000
|
|
264C 10260BE5 lbne FAIL
|
|
|
|
2650 8613 lda #0x013 ; SBCA Extended
|
|
2652 1A01 orcc #0x001 ; Set Carry flag
|
|
2654 B21234 sbca >$01234
|
|
2657 8100 cmpa #0x00
|
|
2659 10260BD8 lbne FAIL
|
|
|
|
|
|
|
|
265D C603 ldb #0x03 ; SBCB Immediate
|
|
265F 1A01 orcc #0x001 ; Set Carry flag
|
|
2661 C202 sbcb #0x02
|
|
2663 C100 cmpb #0x000
|
|
2665 10260BCC lbne FAIL
|
|
|
|
2669 C613 ldb #0x013 ; SBCB Direct
|
|
266B 1A01 orcc #0x001 ; Set Carry flag
|
|
266D D234 sbcb <$034
|
|
266F C100 cmpb #0x00
|
|
2671 10260BC0 lbne FAIL
|
|
|
|
2675 8E1200 ldx #0x01200 ; SBCB Indexed
|
|
2678 C613 ldb #0x013
|
|
267A 1A01 orcc #0x001 ; Set Carry flag
|
|
267C E284 sbcb ,X
|
|
267E C100 cmpb #0x000
|
|
2680 10260BB1 lbne FAIL
|
|
|
|
2684 C613 ldb #0x013 ; SBCB Extended
|
|
2686 1A01 orcc #0x001 ; Set Carry flag
|
|
2688 F21234 sbcb >$01234
|
|
268B C100 cmpb #0x00
|
|
268D 10260BA4 lbne FAIL
|
|
|
|
|
|
; ADDA Flags check
|
|
2691 8600 lda #0x00
|
|
2693 8B00 adda #0x00 ; Expected: n=0 z=1 v=0 c=0
|
|
2695 102B0B9C lbmi FAIL ; branch if N=1
|
|
2699 10260B98 lbne FAIL ; branch if Z=0
|
|
269D 10290B94 lbvs FAIL ; branch if V=1
|
|
26A1 10250B90 lbcs FAIL ; branch if C=1
|
|
|
|
26A5 86FE lda #0xFE
|
|
26A7 8B01 adda #0x01 ; Expected: n=1 z=0 v=0 c=0
|
|
26A9 102A0B88 lbpl FAIL ; branch if N=0
|
|
26AD 10270B84 lbeq FAIL ; branch if Z=1
|
|
26B1 10290B80 lbvs FAIL ; branch if V=1
|
|
26B5 10250B7C lbcs FAIL ; branch if C=1
|
|
|
|
26B9 867E lda #0x7E
|
|
26BB 8B03 adda #0x03 ; Expected: v=1
|
|
26BD 10280B74 lbvc FAIL ; branch if V=0
|
|
|
|
26C1 86FE lda #0xFE
|
|
26C3 8B03 adda #0x03 ; Expected: c=1
|
|
26C5 10240B6C lbcc FAIL ; branch if C=0
|
|
|
|
|
|
|
|
; SUBA Flags check
|
|
26C9 8600 lda #0x00
|
|
26CB 8000 suba #0x00 ; Expected: n=0 z=1 v=0 c=0
|
|
26CD 102B0B64 lbmi FAIL ; branch if N=1
|
|
26D1 10260B60 lbne FAIL ; branch if Z=0
|
|
26D5 10290B5C lbvs FAIL ; branch if V=1
|
|
26D9 10250B58 lbcs FAIL ; branch if C=1
|
|
|
|
26DD 86FE lda #0xFE
|
|
26DF 8001 suba #0x01 ; Expected: n=1 z=0 v=0 c=0
|
|
26E1 102A0B50 lbpl FAIL ; branch if N=0
|
|
26E5 10270B4C lbeq FAIL ; branch if Z=1
|
|
26E9 10290B48 lbvs FAIL ; branch if V=1
|
|
26ED 10250B44 lbcs FAIL ; branch if C=1
|
|
|
|
26F1 867E lda #0x7E
|
|
26F3 8003 suba #0x03 ; Expected: v=0
|
|
26F5 10290B3C lbvs FAIL ; branch if V=1
|
|
|
|
26F9 86FE lda #0xFE
|
|
26FB 8003 suba #0x03 ; Expected: c=0
|
|
26FD 10250B34 lbcs FAIL ; branch if C=1
|
|
|
|
|
|
; Comparisons
|
|
; --------------
|
|
|
|
; Immediate
|
|
; ---------
|
|
2701 8680 lda #0x080 ; Checking opcode support - flags already checked with SUB tests
|
|
2703 8180 cmpa #0x080
|
|
2705 10260B2C lbne FAIL
|
|
|
|
2709 C680 ldb #0x080
|
|
270B C180 cmpb #0x080
|
|
270D 10260B24 lbne FAIL
|
|
|
|
2711 CC1111 ldd #0x01111
|
|
2714 10831111 cmpd #0x01111
|
|
2718 10260B19 lbne FAIL
|
|
|
|
271C 10CE2222 lds #0x02222
|
|
2720 118C2222 cmps #0x02222
|
|
2724 10260B0D lbne FAIL
|
|
|
|
2728 CE3333 ldu #0x03333
|
|
272B 11833333 cmpu #0x03333
|
|
272F 10260B02 lbne FAIL
|
|
|
|
2733 8E4444 ldx #0x04444
|
|
2736 8C4444 cmpx #0x04444
|
|
2739 10260AF8 lbne FAIL
|
|
|
|
273D 108E5555 ldy #0x05555
|
|
2741 108C5555 cmpy #0x05555
|
|
2745 10260AEC lbne FAIL
|
|
|
|
|
|
; Direct
|
|
; ----------
|
|
2749 8612 lda #$012
|
|
274B 1E8B exg a,dp ; Set the Direct Page
|
|
274D SETDP 0x012 ; Tell the assembler about it
|
|
|
|
274D 8612 lda #$012
|
|
274F 9134 cmpa <0x034
|
|
2751 10260AE0 lbne FAIL
|
|
|
|
2755 C612 ldb #$012
|
|
2757 D134 cmpb <0x034
|
|
2759 10260AD8 lbne FAIL
|
|
|
|
275D CC1234 ldd #$01234
|
|
2760 109334 cmpd <0x034
|
|
2763 10260ACE lbne FAIL
|
|
|
|
2767 CE1234 ldu #$01234
|
|
276A 119334 cmpu <0x034
|
|
276D 10260AC4 lbne FAIL
|
|
|
|
2771 10CE1234 lds #$01234
|
|
2775 119C34 cmps <0x034
|
|
2778 10260AB9 lbne FAIL
|
|
|
|
277C 8E1234 ldx #$01234
|
|
277F 9C34 cmpx <0x034
|
|
2781 10260AB0 lbne FAIL
|
|
|
|
2785 108E1234 ldy #$01234
|
|
2789 109C34 cmpy <0x034
|
|
278C 10260AA5 lbne FAIL
|
|
|
|
|
|
; Indexed
|
|
; --------
|
|
|
|
|
|
2790 8E1234 ldx #0x01234
|
|
|
|
2793 8612 lda #0x012
|
|
2795 A184 cmpa ,X
|
|
2797 10260A9A lbne FAIL
|
|
|
|
279B C612 ldb #0x012
|
|
279D E184 cmpb ,X
|
|
279F 10260A92 lbne FAIL
|
|
|
|
27A3 CC1234 ldd #0x01234
|
|
27A6 10A384 cmpd ,X
|
|
27A9 10260A88 lbne FAIL
|
|
|
|
27AD 10CE1234 lds #0x01234
|
|
27B1 11AC84 cmps ,X
|
|
27B4 10260A7D lbne FAIL
|
|
|
|
27B8 CE1234 ldu #0x01234
|
|
27BB 11A384 cmpu ,X
|
|
27BE 10260A73 lbne FAIL
|
|
|
|
27C2 108E1234 ldy #0x01234
|
|
27C6 10AC84 cmpy ,X
|
|
27C9 10260A68 lbne FAIL
|
|
|
|
27CD 108E1234 ldy #0x01234
|
|
27D1 8E1234 ldx #0x01234
|
|
27D4 ACA4 cmpx ,Y
|
|
27D6 10260A5B lbne FAIL
|
|
|
|
|
|
; Extended Direct
|
|
; -----------------
|
|
27DA 8612 lda #$012
|
|
27DC B11234 cmpa >0x01234
|
|
27DF 10260A52 lbne FAIL
|
|
|
|
27E3 C612 ldb #$012
|
|
27E5 F11234 cmpb >0x01234
|
|
27E8 10260A49 lbne FAIL
|
|
|
|
27EC CC1234 ldd #$01234
|
|
27EF 10B31234 cmpd >0x01234
|
|
27F3 10260A3E lbne FAIL
|
|
|
|
27F7 CE1234 ldu #$01234
|
|
27FA 11B31234 cmpu >0x01234
|
|
27FE 10260A33 lbne FAIL
|
|
|
|
2802 10CE1234 lds #$01234
|
|
2806 11BC1234 cmps >0x01234
|
|
280A 10260A27 lbne FAIL
|
|
|
|
280E 8E1234 ldx #$01234
|
|
2811 BC1234 cmpx >0x01234
|
|
2814 10260A1D lbne FAIL
|
|
|
|
2818 108E1234 ldy #$01234
|
|
281C 10BC1234 cmpy >0x01234
|
|
2820 10260A11 lbne FAIL
|
|
|
|
|
|
|
|
|
|
; Increment
|
|
; ---------
|
|
2824 8612 lda #$012
|
|
2826 4C inca
|
|
2827 8113 cmpa #0x013
|
|
2829 10260A08 lbne FAIL
|
|
|
|
282D C622 ldb #$022
|
|
282F 5C incb
|
|
2830 C123 cmpb #0x023
|
|
2832 102609FF lbne FAIL
|
|
|
|
2836 8612 lda #$012
|
|
2838 1E8B exg a,dp ; Set the Direct Page
|
|
283A SETDP 0x012 ; Tell the assembler about it
|
|
|
|
283A 0C60 inc <0x060
|
|
283C D660 ldb <0x060
|
|
283E C134 cmpb #0x034
|
|
2840 102609F1 lbne FAIL
|
|
|
|
2844 8E1260 ldx #0x01260
|
|
2847 8612 lda #0x012
|
|
2849 6C84 inc ,X
|
|
284B D660 ldb <0x060
|
|
284D C135 cmpb #0x035
|
|
284F 102609E2 lbne FAIL
|
|
|
|
2853 7C1260 inc >0x01260
|
|
2856 D660 ldb <0x060
|
|
2858 C136 cmpb #0x036
|
|
285A 102609D7 lbne FAIL
|
|
|
|
; Flags check
|
|
; -----------
|
|
285E 867F lda #$07F
|
|
2860 4C inca
|
|
2861 102809D0 lbvc FAIL ; branch if V=0
|
|
2865 102A09CC lbpl FAIL ; branch if N=0
|
|
2869 102709C8 lbeq FAIL ; branch if Z=1
|
|
|
|
; Decrement
|
|
; ---------
|
|
286D 8612 lda #$012
|
|
286F 4A deca
|
|
2870 8111 cmpa #0x011
|
|
2872 102609BF lbne FAIL
|
|
|
|
2876 C622 ldb #$022
|
|
2878 5A decb
|
|
2879 C121 cmpb #0x021
|
|
287B 102609B6 lbne FAIL
|
|
|
|
287F 8612 lda #$012
|
|
2881 1E8B exg a,dp ; Set the Direct Page
|
|
2883 SETDP 0x012 ; Tell the assembler about it
|
|
|
|
2883 0A60 dec <0x060
|
|
2885 D660 ldb <0x060
|
|
2887 C135 cmpb #0x035
|
|
2889 102609A8 lbne FAIL
|
|
|
|
288D 8E1260 ldx #0x01260
|
|
2890 8612 lda #0x012
|
|
2892 6A84 dec ,X
|
|
2894 D660 ldb <0x060
|
|
2896 C134 cmpb #0x034
|
|
2898 10260999 lbne FAIL
|
|
|
|
289C 7A1260 dec >0x01260
|
|
289F D660 ldb <0x060
|
|
28A1 C133 cmpb #0x033
|
|
28A3 1026098E lbne FAIL
|
|
|
|
|
|
; Flags check
|
|
; -----------
|
|
28A7 8680 lda #$080
|
|
28A9 4A deca
|
|
28AA 10280987 lbvc FAIL ; branch if V=0
|
|
28AE 102B0983 lbmi FAIL ; branch if N=1
|
|
28B2 1027097F lbeq FAIL ; branch if Z=1
|
|
|
|
|
|
|
|
;-----------------------------------------------------------
|
|
;-----------------------------------------------------------
|
|
|
|
|
|
; Test - Boolean Bit and Test
|
|
;-----------------------------------------------------------
|
|
|
|
; ---
|
|
; AND
|
|
; ---
|
|
|
|
28B6 8688 lda #0x0088 ; Immediate
|
|
28B8 84F0 anda #0x0F0
|
|
28BA 10290977 lbvs FAIL ; branch if V=1
|
|
28BE 102A0973 lbpl FAIL ; branch if N=0
|
|
28C2 1027096F lbeq FAIL ; branch if Z=1
|
|
28C6 8180 cmpa #0x080
|
|
28C8 10260969 lbne FAIL
|
|
|
|
28CC C65A ldb #0x005A
|
|
28CE C40F andb #0x00F
|
|
28D0 10290961 lbvs FAIL ; branch if V=1
|
|
28D4 102B095D lbmi FAIL ; branch if N=1
|
|
28D8 10270959 lbeq FAIL ; branch if Z=1
|
|
28DC C10A cmpb #0x00A
|
|
28DE 10260953 lbne FAIL
|
|
|
|
|
|
28E2 1C00 andcc #0x000
|
|
28E4 1029094D lbvs FAIL ; branch if V=1
|
|
28E8 102B0949 lbmi FAIL ; branch if N=1
|
|
28EC 10270945 lbeq FAIL ; branch if Z=1
|
|
28F0 1A0F orcc #0x00F
|
|
28F2 1028093F lbvc FAIL ; branch if V=0
|
|
28F6 102A093B lbpl FAIL ; branch if N=0
|
|
28FA 10260937 lbne FAIL ; branch if Z=0
|
|
|
|
|
|
28FE 860F lda #0x00F ; Direct
|
|
2900 9434 anda <$034
|
|
2902 1029092F lbvs FAIL ; branch if V=1
|
|
2906 102B092B lbmi FAIL ; branch if N=1
|
|
290A 10270927 lbeq FAIL ; branch if Z=1
|
|
290E 8102 cmpa #0x002
|
|
2910 10260921 lbne FAIL
|
|
|
|
2914 860F lda #0x00F ; Indexed
|
|
2916 8E1200 ldx #0x01200
|
|
2919 A484 anda ,X
|
|
291B 10290916 lbvs FAIL ; branch if V=1
|
|
291F 102B0912 lbmi FAIL ; branch if N=1
|
|
2923 1027090E lbeq FAIL ; branch if Z=1
|
|
2927 8102 cmpa #0x002
|
|
2929 10260908 lbne FAIL
|
|
|
|
292D 860F lda #0x00F ; Extended
|
|
292F 8E1200 ldx #0x01200
|
|
2932 B41234 anda >$01234
|
|
2935 102908FC lbvs FAIL ; branch if V=1
|
|
2939 102B08F8 lbmi FAIL ; branch if N=1
|
|
293D 102708F4 lbeq FAIL ; branch if Z=1
|
|
2941 8102 cmpa #0x002
|
|
2943 102608EE lbne FAIL
|
|
|
|
|
|
|
|
2947 C60F ldb #0x00F ; Direct
|
|
2949 D434 andb <$034
|
|
294B 102908E6 lbvs FAIL ; branch if V=1
|
|
294F 102B08E2 lbmi FAIL ; branch if N=1
|
|
2953 102708DE lbeq FAIL ; branch if Z=1
|
|
2957 C102 cmpb #0x002
|
|
2959 102608D8 lbne FAIL
|
|
|
|
295D C60F ldb #0x00F ; Indexed
|
|
295F 8E1200 ldx #0x01200
|
|
2962 E484 andb ,X
|
|
2964 102908CD lbvs FAIL ; branch if V=1
|
|
2968 102B08C9 lbmi FAIL ; branch if N=1
|
|
296C 102708C5 lbeq FAIL ; branch if Z=1
|
|
2970 C102 cmpb #0x002
|
|
2972 102608BF lbne FAIL
|
|
|
|
2976 C60F ldb #0x00F ; Extended
|
|
2978 8E1200 ldx #0x01200
|
|
297B F41234 andb >$01234
|
|
297E 102908B3 lbvs FAIL ; branch if V=1
|
|
2982 102B08AF lbmi FAIL ; branch if N=1
|
|
2986 102708AB lbeq FAIL ; branch if Z=1
|
|
298A C102 cmpb #0x002
|
|
298C 102608A5 lbne FAIL
|
|
|
|
|
|
|
|
; ---
|
|
; OR
|
|
; ---
|
|
|
|
2990 860A lda #0x000A ; Immediate
|
|
2992 8A50 ora #0x050
|
|
2994 1029089D lbvs FAIL ; branch if V=1
|
|
2998 102B0899 lbmi FAIL ; branch if N=1
|
|
299C 10270895 lbeq FAIL ; branch if Z=1
|
|
29A0 815A cmpa #0x5A
|
|
29A2 1026088F lbne FAIL
|
|
|
|
29A6 C6A0 ldb #0x00A0
|
|
29A8 CA05 orb #0x005
|
|
29AA 10290887 lbvs FAIL ; branch if V=1
|
|
29AE 102A0883 lbpl FAIL ; branch if N=0
|
|
29B2 1027087F lbeq FAIL ; branch if Z=1
|
|
29B6 C1A5 cmpb #0x0A5
|
|
29B8 10260879 lbne FAIL
|
|
|
|
|
|
29BC 1A0F orcc #0x00F
|
|
29BE 10280873 lbvc FAIL ; branch if V=0
|
|
29C2 102A086F lbpl FAIL ; branch if N=0
|
|
29C6 1026086B lbne FAIL ; branch if Z=0
|
|
|
|
|
|
29CA 860F lda #0x00F ; Direct
|
|
29CC 9A34 ora <$034
|
|
29CE 10290863 lbvs FAIL ; branch if V=1
|
|
29D2 102B085F lbmi FAIL ; branch if N=1
|
|
29D6 1027085B lbeq FAIL ; branch if Z=1
|
|
29DA 811F cmpa #0x01F
|
|
29DC 10260855 lbne FAIL
|
|
|
|
29E0 860F lda #0x00F ; Indexed
|
|
29E2 8E1200 ldx #0x01200
|
|
29E5 AA84 ora ,X
|
|
29E7 1029084A lbvs FAIL ; branch if V=1
|
|
29EB 102B0846 lbmi FAIL ; branch if N=1
|
|
29EF 10270842 lbeq FAIL ; branch if Z=1
|
|
29F3 811F cmpa #0x01F
|
|
29F5 1026083C lbne FAIL
|
|
|
|
29F9 860F lda #0x00F ; Extended
|
|
29FB 8E1200 ldx #0x01200
|
|
29FE BA1234 ora >$01234
|
|
2A01 10290830 lbvs FAIL ; branch if V=1
|
|
2A05 102B082C lbmi FAIL ; branch if N=1
|
|
2A09 10270828 lbeq FAIL ; branch if Z=1
|
|
2A0D 811F cmpa #0x01F
|
|
2A0F 10260822 lbne FAIL
|
|
|
|
2A13 C60F ldb #0x00F ; Direct
|
|
2A15 DA34 orb <$034
|
|
2A17 1029081A lbvs FAIL ; branch if V=1
|
|
2A1B 102B0816 lbmi FAIL ; branch if N=1
|
|
2A1F 10270812 lbeq FAIL ; branch if Z=1
|
|
2A23 C11F cmpb #0x01F
|
|
2A25 1026080C lbne FAIL
|
|
|
|
2A29 C60F ldb #0x00F ; Indexed
|
|
2A2B 8E1200 ldx #0x01200
|
|
2A2E EA84 orb ,X
|
|
2A30 10290801 lbvs FAIL ; branch if V=1
|
|
2A34 102B07FD lbmi FAIL ; branch if N=1
|
|
2A38 102707F9 lbeq FAIL ; branch if Z=1
|
|
2A3C C11F cmpb #0x01F
|
|
2A3E 102607F3 lbne FAIL
|
|
|
|
2A42 C60F ldb #0x00F ; Extended
|
|
2A44 8E1200 ldx #0x01200
|
|
2A47 FA1234 orb >$01234
|
|
2A4A 102907E7 lbvs FAIL ; branch if V=1
|
|
2A4E 102B07E3 lbmi FAIL ; branch if N=1
|
|
2A52 102707DF lbeq FAIL ; branch if Z=1
|
|
2A56 C11F cmpb #0x01F
|
|
2A58 102607D9 lbne FAIL
|
|
|
|
|
|
|
|
|
|
|
|
; ----
|
|
; EOR
|
|
; ----
|
|
|
|
2A5C 860A lda #0x000A ; Immediate
|
|
2A5E 8850 eora #0x050
|
|
2A60 102907D1 lbvs FAIL ; branch if V=1
|
|
2A64 102B07CD lbmi FAIL ; branch if N=1
|
|
2A68 102707C9 lbeq FAIL ; branch if Z=1
|
|
2A6C 815A cmpa #0x5A
|
|
2A6E 102607C3 lbne FAIL
|
|
|
|
2A72 C6A0 ldb #0x00A0
|
|
2A74 C805 eorb #0x005
|
|
2A76 102907BB lbvs FAIL ; branch if V=1
|
|
2A7A 102A07B7 lbpl FAIL ; branch if N=0
|
|
2A7E 102707B3 lbeq FAIL ; branch if Z=1
|
|
2A82 C1A5 cmpb #0x0A5
|
|
2A84 102607AD lbne FAIL
|
|
|
|
|
|
2A88 860F lda #0x00F ; Direct
|
|
2A8A 9834 eora <$034
|
|
2A8C 102907A5 lbvs FAIL ; branch if V=1
|
|
2A90 102B07A1 lbmi FAIL ; branch if N=1
|
|
2A94 1027079D lbeq FAIL ; branch if Z=1
|
|
2A98 811D cmpa #0x01D
|
|
2A9A 10260797 lbne FAIL
|
|
|
|
2A9E 860F lda #0x00F ; Indexed
|
|
2AA0 8E1200 ldx #0x01200
|
|
2AA3 A884 eora ,X
|
|
2AA5 1029078C lbvs FAIL ; branch if V=1
|
|
2AA9 102B0788 lbmi FAIL ; branch if N=1
|
|
2AAD 10270784 lbeq FAIL ; branch if Z=1
|
|
2AB1 811D cmpa #0x01D
|
|
2AB3 1026077E lbne FAIL
|
|
|
|
2AB7 860F lda #0x00F ; Extended
|
|
2AB9 8E1200 ldx #0x01200
|
|
2ABC B81234 eora >$01234
|
|
2ABF 10290772 lbvs FAIL ; branch if V=1
|
|
2AC3 102B076E lbmi FAIL ; branch if N=1
|
|
2AC7 1027076A lbeq FAIL ; branch if Z=1
|
|
2ACB 811D cmpa #0x01D
|
|
2ACD 10260764 lbne FAIL
|
|
|
|
2AD1 C60F ldb #0x00F ; Direct
|
|
2AD3 D834 eorb <$034
|
|
2AD5 1029075C lbvs FAIL ; branch if V=1
|
|
2AD9 102B0758 lbmi FAIL ; branch if N=1
|
|
2ADD 10270754 lbeq FAIL ; branch if Z=1
|
|
2AE1 C11D cmpb #0x01D
|
|
2AE3 1026074E lbne FAIL
|
|
|
|
2AE7 C60F ldb #0x00F ; Indexed
|
|
2AE9 8E1200 ldx #0x01200
|
|
2AEC E884 eorb ,X
|
|
2AEE 10290743 lbvs FAIL ; branch if V=1
|
|
2AF2 102B073F lbmi FAIL ; branch if N=1
|
|
2AF6 1027073B lbeq FAIL ; branch if Z=1
|
|
2AFA C11D cmpb #0x01D
|
|
2AFC 10260735 lbne FAIL
|
|
|
|
2B00 C60F ldb #0x00F ; Extended
|
|
2B02 8E1200 ldx #0x01200
|
|
2B05 F81234 eorb >$01234
|
|
2B08 10290729 lbvs FAIL ; branch if V=1
|
|
2B0C 102B0725 lbmi FAIL ; branch if N=1
|
|
2B10 10270721 lbeq FAIL ; branch if Z=1
|
|
2B14 C11D cmpb #0x01D
|
|
2B16 1026071B lbne FAIL
|
|
|
|
|
|
|
|
; ----
|
|
; BIT
|
|
; ----
|
|
|
|
2B1A 8688 lda #0x0088 ; Immediate
|
|
2B1C 85F0 bita #0x0F0
|
|
2B1E 10290713 lbvs FAIL ; branch if V=1
|
|
2B22 102A070F lbpl FAIL ; branch if N=0
|
|
2B26 1027070B lbeq FAIL ; branch if Z=1
|
|
|
|
|
|
2B2A C65A ldb #0x005A
|
|
2B2C C50F bitb #0x00F
|
|
2B2E 10290703 lbvs FAIL ; branch if V=1
|
|
2B32 102B06FF lbmi FAIL ; branch if N=1
|
|
2B36 102706FB lbeq FAIL ; branch if Z=1
|
|
|
|
|
|
|
|
|
|
2B3A 860F lda #0x00F ; Direct
|
|
2B3C 9534 bita <$034
|
|
2B3E 102906F3 lbvs FAIL ; branch if V=1
|
|
2B42 102B06EF lbmi FAIL ; branch if N=1
|
|
2B46 102706EB lbeq FAIL ; branch if Z=1
|
|
|
|
|
|
2B4A 860F lda #0x00F ; Indexed
|
|
2B4C 8E1200 ldx #0x01200
|
|
2B4F A584 bita ,X
|
|
2B51 102906E0 lbvs FAIL ; branch if V=1
|
|
2B55 102B06DC lbmi FAIL ; branch if N=1
|
|
2B59 102706D8 lbeq FAIL ; branch if Z=1
|
|
|
|
|
|
2B5D 860F lda #0x00F ; Extended
|
|
2B5F 8E1200 ldx #0x01200
|
|
2B62 B51234 bita >$01234
|
|
2B65 102906CC lbvs FAIL ; branch if V=1
|
|
2B69 102B06C8 lbmi FAIL ; branch if N=1
|
|
2B6D 102706C4 lbeq FAIL ; branch if Z=1
|
|
|
|
|
|
|
|
2B71 C60F ldb #0x00F ; Direct
|
|
2B73 D534 bitb <$034
|
|
2B75 102906BC lbvs FAIL ; branch if V=1
|
|
2B79 102B06B8 lbmi FAIL ; branch if N=1
|
|
2B7D 102706B4 lbeq FAIL ; branch if Z=1
|
|
|
|
|
|
2B81 C60F ldb #0x00F ; Indexed
|
|
2B83 8E1200 ldx #0x01200
|
|
2B86 E584 bitb ,X
|
|
2B88 102906A9 lbvs FAIL ; branch if V=1
|
|
2B8C 102B06A5 lbmi FAIL ; branch if N=1
|
|
2B90 102706A1 lbeq FAIL ; branch if Z=1
|
|
|
|
|
|
2B94 C60F ldb #0x00F ; Extended
|
|
2B96 8E1200 ldx #0x01200
|
|
2B99 F51234 bitb >$01234
|
|
2B9C 10290695 lbvs FAIL ; branch if V=1
|
|
2BA0 102B0691 lbmi FAIL ; branch if N=1
|
|
2BA4 1027068D lbeq FAIL ; branch if Z=1
|
|
|
|
|
|
|
|
|
|
; ----
|
|
; Test
|
|
; ----
|
|
|
|
2BA8 8688 lda #0x0088 ; Inherent
|
|
2BAA 4D tsta
|
|
2BAB 10290686 lbvs FAIL ; branch if V=1
|
|
2BAF 102A0682 lbpl FAIL ; branch if N=0
|
|
2BB3 1027067E lbeq FAIL ; branch if Z=1
|
|
|
|
2BB7 C688 ldb #0x0088 ; Inherent
|
|
2BB9 5D tstb
|
|
2BBA 10290677 lbvs FAIL ; branch if V=1
|
|
2BBE 102A0673 lbpl FAIL ; branch if N=0
|
|
2BC2 1027066F lbeq FAIL ; branch if Z=1
|
|
|
|
2BC6 0D34 tst <$034 ; Direct
|
|
2BC8 10290669 lbvs FAIL ; branch if V=1
|
|
2BCC 102B0665 lbmi FAIL ; branch if N=1
|
|
2BD0 10270661 lbeq FAIL ; branch if Z=1
|
|
|
|
|
|
2BD4 8E1200 ldx #0x01200 ; Indexed
|
|
2BD7 6D84 tst ,X
|
|
2BD9 10290658 lbvs FAIL ; branch if V=1
|
|
2BDD 102B0654 lbmi FAIL ; branch if N=1
|
|
2BE1 10270650 lbeq FAIL ; branch if Z=1
|
|
|
|
|
|
2BE5 8E1200 ldx #0x01200 ; Extended
|
|
2BE8 7D1234 tst >$01234
|
|
2BEB 10290646 lbvs FAIL ; branch if V=1
|
|
2BEF 102B0642 lbmi FAIL ; branch if N=1
|
|
2BF3 1027063E lbeq FAIL ; branch if Z=1
|
|
|
|
|
|
|
|
; ----
|
|
; COM
|
|
; ----
|
|
|
|
2BF7 8688 lda #0x0088 ; Inherent
|
|
2BF9 43 coma
|
|
2BFA 10290637 lbvs FAIL ; branch if V=1
|
|
2BFE 10240633 lbcc FAIL ; branch if C=0
|
|
2C02 102B062F lbmi FAIL ; branch if N=1
|
|
2C06 1027062B lbeq FAIL ; branch if Z=1
|
|
2C0A 8177 cmpa #0x077
|
|
2C0C 10260625 lbne FAIL
|
|
|
|
2C10 C688 ldb #0x0088 ; Inherent
|
|
2C12 53 comb
|
|
2C13 1029061E lbvs FAIL ; branch if V=1
|
|
2C17 1024061A lbcc FAIL ; branch if C=0
|
|
2C1B 102B0616 lbmi FAIL ; branch if N=1
|
|
2C1F 10270612 lbeq FAIL ; branch if Z=1
|
|
2C23 C177 cmpb #0x077
|
|
2C25 1026060C lbne FAIL
|
|
|
|
2C29 0334 com <$034 ; Direct
|
|
2C2B 10290606 lbvs FAIL ; branch if V=1
|
|
2C2F 10240602 lbcc FAIL ; branch if C=0
|
|
2C33 102A05FE lbpl FAIL ; branch if N=0
|
|
2C37 102705FA lbeq FAIL ; branch if Z=1
|
|
2C3B 9634 lda <$034
|
|
2C3D 81ED cmpa #0x0ED
|
|
2C3F 102605F2 lbne FAIL
|
|
2C43 0334 com <$034 ; Put back origial value
|
|
|
|
|
|
2C45 8E1234 ldx #0x01234 ; Indexed
|
|
2C48 6384 com ,X
|
|
2C4A 102905E7 lbvs FAIL ; branch if V=1
|
|
2C4E 102405E3 lbcc FAIL ; branch if C=0
|
|
2C52 102A05DF lbpl FAIL ; branch if N=0
|
|
2C56 102705DB lbeq FAIL ; branch if Z=1
|
|
2C5A A684 lda ,X
|
|
2C5C A184 cmpa ,X
|
|
2C5E 102605D3 lbne FAIL
|
|
2C62 6384 com ,X ; Put back origial value
|
|
|
|
|
|
2C64 731234 com >$01234 ; Extended
|
|
2C67 102905CA lbvs FAIL ; branch if V=1
|
|
2C6B 102405C6 lbcc FAIL ; branch if C=0
|
|
2C6F 102A05C2 lbpl FAIL ; branch if N=0
|
|
2C73 102705BE lbeq FAIL ; branch if Z=1
|
|
2C77 B61234 lda >$01234
|
|
2C7A 81ED cmpa #0x0ED
|
|
2C7C 102605B5 lbne FAIL
|
|
2C80 731234 com >$01234 ; Put back origial value
|
|
|
|
|
|
;-----------------------------------------------------------
|
|
;-----------------------------------------------------------
|
|
|
|
|
|
|
|
; Test - Shifts
|
|
;-----------------------------------------------------------
|
|
|
|
; ----
|
|
; ASL
|
|
; ----
|
|
|
|
2C83 8688 lda #0x0088 ; Inherent
|
|
2C85 48 asla
|
|
2C86 102805AB lbvc FAIL ; branch if V=0
|
|
2C8A 102405A7 lbcc FAIL ; branch if C=0
|
|
2C8E 102B05A3 lbmi FAIL ; branch if N=1
|
|
2C92 1027059F lbeq FAIL ; branch if Z=1
|
|
2C96 8110 cmpa #0x010
|
|
2C98 10260599 lbne FAIL
|
|
|
|
2C9C C688 ldb #0x0088 ; Inherent
|
|
2C9E 58 aslb
|
|
2C9F 10280592 lbvc FAIL ; branch if V=0
|
|
2CA3 1024058E lbcc FAIL ; branch if C=0
|
|
2CA7 102B058A lbmi FAIL ; branch if N=1
|
|
2CAB 10270586 lbeq FAIL ; branch if Z=1
|
|
2CAF C110 cmpb #0x010
|
|
2CB1 10260580 lbne FAIL
|
|
|
|
2CB5 0800 asl <$000 ; Direct
|
|
2CB7 1029057A lbvs FAIL ; branch if V=1
|
|
2CBB 10250576 lbcs FAIL ; branch if C=1
|
|
2CBF 102B0572 lbmi FAIL ; branch if N=1
|
|
2CC3 1027056E lbeq FAIL ; branch if Z=1
|
|
2CC7 9600 lda <$000
|
|
2CC9 8124 cmpa #0x024
|
|
2CCB 10260566 lbne FAIL
|
|
2CCF 0334 com <$034 ; Put back origial value
|
|
|
|
|
|
2CD1 8E1200 ldx #0x01200 ; Indexed
|
|
2CD4 6884 asl ,X
|
|
2CD6 1029055B lbvs FAIL ; branch if V=1
|
|
2CDA 10250557 lbcs FAIL ; branch if C=1
|
|
2CDE 102B0553 lbmi FAIL ; branch if N=1
|
|
2CE2 1027054F lbeq FAIL ; branch if Z=1
|
|
2CE6 A684 lda ,X
|
|
2CE8 A184 cmpa ,X
|
|
2CEA 10260547 lbne FAIL
|
|
2CEE 6384 com ,X ; Put back origial value
|
|
|
|
|
|
2CF0 781200 asl >$01200 ; Extended
|
|
2CF3 1028053E lbvc FAIL ; branch if V=0
|
|
2CF7 1024053A lbcc FAIL ; branch if C=0
|
|
2CFB 102B0536 lbmi FAIL ; branch if N=1
|
|
2CFF 10270532 lbeq FAIL ; branch if Z=1
|
|
2D03 B61234 lda >$01234
|
|
2D06 81ED cmpa #0x0ED
|
|
2D08 10260529 lbne FAIL
|
|
2D0C 731234 com >$01234 ; Put back origial value
|
|
|
|
|
|
|
|
; ----
|
|
; ASR
|
|
; ----
|
|
|
|
2D0F 8688 lda #0x0088 ; Inherent
|
|
2D11 47 asra
|
|
2D12 1025051F lbcs FAIL ; branch if C=1
|
|
2D16 102A051B lbpl FAIL ; branch if N=0
|
|
2D1A 10270517 lbeq FAIL ; branch if Z=1
|
|
2D1E 81C4 cmpa #0x0C4
|
|
2D20 10260511 lbne FAIL
|
|
|
|
2D24 C688 ldb #0x0088 ; Inherent
|
|
2D26 57 asrb
|
|
2D27 1025050A lbcs FAIL ; branch if C=1
|
|
2D2B 102A0506 lbpl FAIL ; branch if N=0
|
|
2D2F 10270502 lbeq FAIL ; branch if Z=1
|
|
2D33 C1C4 cmpb #0x0C4
|
|
2D35 102604FC lbne FAIL
|
|
|
|
2D39 0700 asr <$000 ; Direct
|
|
2D3B 102504F6 lbcs FAIL ; branch if C=1
|
|
2D3F 102B04F2 lbmi FAIL ; branch if N=1
|
|
2D43 102704EE lbeq FAIL ; branch if Z=1
|
|
2D47 9600 lda <$000
|
|
2D49 8137 cmpa #0x037
|
|
2D4B 102604E6 lbne FAIL
|
|
2D4F 0334 com <$034 ; Put back origial value
|
|
|
|
|
|
2D51 8E1200 ldx #0x01200 ; Indexed
|
|
2D54 6784 asr ,X
|
|
2D56 102404DB lbcc FAIL ; branch if C=0
|
|
2D5A 102B04D7 lbmi FAIL ; branch if N=1
|
|
2D5E 102704D3 lbeq FAIL ; branch if Z=1
|
|
2D62 A684 lda ,X
|
|
2D64 A184 cmpa ,X
|
|
2D66 102604CB lbne FAIL
|
|
2D6A 6384 com ,X ; Put back origial value
|
|
|
|
|
|
2D6C 771200 asr >$01200 ; Extended
|
|
2D6F 102504C2 lbcs FAIL ; branch if C=1
|
|
2D73 102A04BE lbpl FAIL ; branch if N=0
|
|
2D77 102704BA lbeq FAIL ; branch if Z=1
|
|
2D7B B61200 lda >$01200
|
|
2D7E 81F2 cmpa #0x0F2
|
|
2D80 102604B1 lbne FAIL
|
|
2D84 731200 com >$01200 ; Put back origial value
|
|
|
|
|
|
; ----
|
|
; LSR
|
|
; ----
|
|
|
|
2D87 8688 lda #0x0088 ; Inherent
|
|
2D89 44 lsra
|
|
2D8A 102504A7 lbcs FAIL ; branch if C=1
|
|
2D8E 102B04A3 lbmi FAIL ; branch if N=1
|
|
2D92 1027049F lbeq FAIL ; branch if Z=1
|
|
2D96 8144 cmpa #0x044
|
|
2D98 10260499 lbne FAIL
|
|
|
|
2D9C C688 ldb #0x0088 ; Inherent
|
|
2D9E 54 lsrb
|
|
2D9F 10250492 lbcs FAIL ; branch if C=1
|
|
2DA3 102B048E lbmi FAIL ; branch if N=1
|
|
2DA7 1027048A lbeq FAIL ; branch if Z=1
|
|
2DAB C144 cmpb #0x044
|
|
2DAD 10260484 lbne FAIL
|
|
|
|
2DB1 0400 lsr <$000 ; Direct
|
|
2DB3 1024047E lbcc FAIL ; branch if C=0
|
|
2DB7 102B047A lbmi FAIL ; branch if N=1
|
|
2DBB 10270476 lbeq FAIL ; branch if Z=1
|
|
2DBF 9600 lda <$000
|
|
2DC1 8106 cmpa #0x006
|
|
2DC3 1026046E lbne FAIL
|
|
2DC7 0334 com <$034 ; Put back origial value
|
|
|
|
|
|
2DC9 8E1200 ldx #0x01200 ; Indexed
|
|
2DCC 6484 lsr ,X
|
|
2DCE 10250463 lbcs FAIL ; branch if C=1
|
|
2DD2 102B045F lbmi FAIL ; branch if N=1
|
|
2DD6 1027045B lbeq FAIL ; branch if Z=1
|
|
2DDA A684 lda ,X
|
|
2DDC 8103 cmpa #0x003
|
|
2DDE 10260453 lbne FAIL
|
|
2DE2 6384 com ,X ; Put back origial value
|
|
|
|
|
|
2DE4 741200 lsr >$01200 ; Extended
|
|
2DE7 1025044A lbcs FAIL ; branch if C=1
|
|
2DEB 102B0446 lbmi FAIL ; branch if N=1
|
|
2DEF 10270442 lbeq FAIL ; branch if Z=1
|
|
2DF3 B61200 lda >$01200
|
|
2DF6 817E cmpa #0x07E
|
|
2DF8 10260439 lbne FAIL
|
|
2DFC 731200 com >$01200 ; Put back origial value
|
|
|
|
|
|
|
|
; ----
|
|
; ROL
|
|
; ----
|
|
|
|
2DFF 8688 lda #0x0088 ; Inherent
|
|
2E01 49 rola
|
|
2E02 1028042F lbvc FAIL ; branch if V=0
|
|
2E06 1024042B lbcc FAIL ; branch if C=0
|
|
2E0A 102B0427 lbmi FAIL ; branch if N=1
|
|
2E0E 10270423 lbeq FAIL ; branch if Z=1
|
|
2E12 8111 cmpa #0x011
|
|
2E14 1026041D lbne FAIL
|
|
|
|
2E18 C688 ldb #0x0088 ; Inherent
|
|
2E1A 59 rolb
|
|
2E1B 10280416 lbvc FAIL ; branch if V=0
|
|
2E1F 10240412 lbcc FAIL ; branch if C=0
|
|
2E23 102B040E lbmi FAIL ; branch if N=1
|
|
2E27 1027040A lbeq FAIL ; branch if Z=1
|
|
2E2B C110 cmpb #0x010
|
|
2E2D 10260404 lbne FAIL
|
|
|
|
2E31 0900 rol <$000 ; Direct
|
|
2E33 102803FE lbvc FAIL ; branch if V=0
|
|
2E37 102403FA lbcc FAIL ; branch if C=0
|
|
2E3B 102B03F6 lbmi FAIL ; branch if N=1
|
|
2E3F 102703F2 lbeq FAIL ; branch if Z=1
|
|
2E43 9600 lda <$000
|
|
2E45 8102 cmpa #0x002
|
|
2E47 102603EA lbne FAIL
|
|
|
|
|
|
2E4B 8E1200 ldx #0x01200 ; Indexed
|
|
2E4E 6984 rol ,X
|
|
2E50 102903E1 lbvs FAIL ; branch if V=1
|
|
2E54 102503DD lbcs FAIL ; branch if C=1
|
|
2E58 102B03D9 lbmi FAIL ; branch if N=1
|
|
2E5C 102703D5 lbeq FAIL ; branch if Z=1
|
|
2E60 A684 lda ,X
|
|
2E62 8104 cmpa #0x004
|
|
2E64 102603CD lbne FAIL
|
|
|
|
|
|
2E68 791200 rol >$01200 ; Extended
|
|
2E6B 102903C6 lbvs FAIL ; branch if V=1
|
|
2E6F 102503C2 lbcs FAIL ; branch if C=1
|
|
2E73 102B03BE lbmi FAIL ; branch if N=1
|
|
2E77 102703BA lbeq FAIL ; branch if Z=1
|
|
2E7B B61200 lda >$01200
|
|
2E7E 8108 cmpa #0x008
|
|
2E80 102603B1 lbne FAIL
|
|
|
|
|
|
|
|
; ----
|
|
; ROR
|
|
; ----
|
|
|
|
2E84 8688 lda #0x0088 ; Inherent
|
|
2E86 46 rora
|
|
2E87 102503AA lbcs FAIL ; branch if C=1
|
|
2E8B 102B03A6 lbmi FAIL ; branch if N=1
|
|
2E8F 102703A2 lbeq FAIL ; branch if Z=1
|
|
2E93 8144 cmpa #0x044
|
|
2E95 1026039C lbne FAIL
|
|
|
|
2E99 C688 ldb #0x0088 ; Inherent
|
|
2E9B 56 rorb
|
|
2E9C 10250395 lbcs FAIL ; branch if C=1
|
|
2EA0 102B0391 lbmi FAIL ; branch if N=1
|
|
2EA4 1027038D lbeq FAIL ; branch if Z=1
|
|
2EA8 C144 cmpb #0x044
|
|
2EAA 10260387 lbne FAIL
|
|
|
|
2EAE 0600 ror <$000 ; Direct
|
|
2EB0 10250381 lbcs FAIL ; branch if C=1
|
|
2EB4 102B037D lbmi FAIL ; branch if N=1
|
|
2EB8 10270379 lbeq FAIL ; branch if Z=1
|
|
2EBC 9600 lda <$000
|
|
2EBE 8104 cmpa #0x004
|
|
2EC0 10260371 lbne FAIL
|
|
|
|
|
|
2EC4 8E1200 ldx #0x01200 ; Indexed
|
|
2EC7 6684 ror ,X
|
|
2EC9 10250368 lbcs FAIL ; branch if C=1
|
|
2ECD 102B0364 lbmi FAIL ; branch if N=1
|
|
2ED1 10270360 lbeq FAIL ; branch if Z=1
|
|
2ED5 A684 lda ,X
|
|
2ED7 8102 cmpa #0x002
|
|
2ED9 10260358 lbne FAIL
|
|
|
|
|
|
2EDD 761200 ror >$01200 ; Extended
|
|
2EE0 10250351 lbcs FAIL ; branch if C=1
|
|
2EE4 102B034D lbmi FAIL ; branch if N=1
|
|
2EE8 10270349 lbeq FAIL ; branch if Z=1
|
|
2EEC B61200 lda >$01200
|
|
2EEF 8101 cmpa #0x001
|
|
2EF1 10260340 lbne FAIL
|
|
|
|
|
|
|
|
|
|
; ----
|
|
; LSR
|
|
; ----
|
|
|
|
2EF5 108E1234 ldy #0x01234
|
|
2EF9 10BF1200 sty >$01200
|
|
|
|
2EFD 8688 lda #0x0088 ; Inherent
|
|
2EFF 44 lsra
|
|
2F00 10250331 lbcs FAIL ; branch if C=1
|
|
2F04 102B032D lbmi FAIL ; branch if N=1
|
|
2F08 10270329 lbeq FAIL ; branch if Z=1
|
|
2F0C 8144 cmpa #0x044
|
|
2F0E 10260323 lbne FAIL
|
|
|
|
2F12 C688 ldb #0x0088 ; Inherent
|
|
2F14 54 lsrb
|
|
2F15 1025031C lbcs FAIL ; branch if C=1
|
|
2F19 102B0318 lbmi FAIL ; branch if N=1
|
|
2F1D 10270314 lbeq FAIL ; branch if Z=1
|
|
2F21 C144 cmpb #0x044
|
|
2F23 1026030E lbne FAIL
|
|
|
|
2F27 0400 lsr <$000 ; Direct
|
|
2F29 10250308 lbcs FAIL ; branch if C=1
|
|
2F2D 102B0304 lbmi FAIL ; branch if N=1
|
|
2F31 10270300 lbeq FAIL ; branch if Z=1
|
|
2F35 9600 lda <$000
|
|
2F37 8109 cmpa #0x009
|
|
2F39 102602F8 lbne FAIL
|
|
2F3D 0344 com <$044 ; Put back origial value
|
|
|
|
|
|
2F3F 8E1200 ldx #0x01200 ; Indexed
|
|
2F42 6484 lsr ,X
|
|
2F44 102402ED lbcc FAIL ; branch if C=0
|
|
2F48 102B02E9 lbmi FAIL ; branch if N=1
|
|
2F4C 102702E5 lbeq FAIL ; branch if Z=1
|
|
2F50 A684 lda ,X
|
|
2F52 8104 cmpa #0x004
|
|
2F54 102602DD lbne FAIL
|
|
2F58 6384 com ,X ; Put back origial value
|
|
|
|
|
|
2F5A 741200 lsr >$01200 ; Extended
|
|
2F5D 102402D4 lbcc FAIL ; branch if C=0
|
|
2F61 102B02D0 lbmi FAIL ; branch if N=1
|
|
2F65 102702CC lbeq FAIL ; branch if Z=1
|
|
2F69 B61200 lda >$01200
|
|
2F6C 817D cmpa #0x07D
|
|
2F6E 102602C3 lbne FAIL
|
|
2F72 731200 com >$01200 ; Put back origial value
|
|
|
|
|
|
|
|
;-----------------------------------------------------------
|
|
;-----------------------------------------------------------
|
|
|
|
|
|
|
|
; Test - Math
|
|
;-----------------------------------------------------------
|
|
|
|
; ----
|
|
; CLR
|
|
; ----
|
|
2F75 8688 lda #0x088
|
|
2F77 4F clra
|
|
2F78 102B02B9 lbmi FAIL ; branch if N=1
|
|
2F7C 102602B5 lbne FAIL ; branch if Z=0
|
|
2F80 102902B1 lbvs FAIL ; branch if V=1
|
|
2F84 102502AD lbcs FAIL ; branch if C=1
|
|
2F88 8100 cmpa #0x000
|
|
2F8A 102602A7 lbne FAIL
|
|
|
|
2F8E C65A ldb #0x05A
|
|
2F90 5F clrb
|
|
2F91 C100 cmpb #0x000
|
|
2F93 1026029E lbne FAIL
|
|
|
|
2F97 0300 com <$000 ; Direct
|
|
2F99 0F00 clr <$000
|
|
2F9B B61200 lda >$01200
|
|
2F9E 8100 cmpa #0x000
|
|
2FA0 10260291 lbne FAIL
|
|
|
|
|
|
2FA4 108E1200 ldy #0x01200 ; Indexed
|
|
2FA8 731200 com >$01200
|
|
2FAB 6FA4 clr ,Y
|
|
2FAD B61200 lda >$01200
|
|
2FB0 8100 cmpa #0x000
|
|
2FB2 1026027F lbne FAIL
|
|
|
|
|
|
2FB6 731200 com >$01200 ; Extended
|
|
2FB9 7F1200 clr >$01200
|
|
2FBC B61200 lda >$01200
|
|
2FBF 8100 cmpa #0x000
|
|
2FC1 10260270 lbne FAIL
|
|
|
|
|
|
; ----
|
|
; DAA
|
|
; ----
|
|
|
|
2FC5 CC0000 ldd #0x0
|
|
2FC8 108EFF00 ldy #0x0FF00
|
|
2FCC 10BF1200 sty >$01200
|
|
2FD0 DAA_LOOP
|
|
2FD0 B61200 lda >$01200
|
|
2FD3 19 daa
|
|
2FD4 BB1201 adda >$01201
|
|
2FD7 B71201 sta >$01201
|
|
2FDA 7A1200 dec >$01200
|
|
2FDD 26F1 bne DAA_LOOP
|
|
|
|
2FDF B61201 lda >$01201
|
|
2FE2 818A cmpa #0x08A
|
|
2FE4 1026024D lbne FAIL
|
|
|
|
|
|
|
|
|
|
; ----
|
|
; EXG
|
|
; ----
|
|
|
|
2FE8 86AA lda #0x0AA
|
|
2FEA C6BB ldb #0x0BB
|
|
2FEC 1E89 exg a,b
|
|
2FEE 81BB cmpa #0x0BB
|
|
2FF0 10260241 lbne FAIL
|
|
2FF4 C1AA cmpb #0x0AA
|
|
2FF6 1026023B lbne FAIL
|
|
|
|
2FFA 8EAAAA ldx #0x0AAAA
|
|
2FFD 108EBBBB ldy #0x0BBBB
|
|
3001 1E12 exg x,y
|
|
3003 8CBBBB cmpx #0x0BBBB
|
|
3006 1026022B lbne FAIL
|
|
300A 108CAAAA cmpy #0x0AAAA
|
|
300E 10260223 lbne FAIL
|
|
|
|
3012 CE1111 ldu #0x01111
|
|
3015 10CE2222 lds #0x02222
|
|
3019 1E34 exg u,s
|
|
301B 11832222 cmpu #0x02222
|
|
301F 10260212 lbne FAIL
|
|
3023 118C1111 cmps #0x01111
|
|
3027 1026020A lbne FAIL
|
|
|
|
302B 1E31 exg u,x
|
|
302D 1183BBBB cmpu #0x0BBBB
|
|
3031 10260200 lbne FAIL
|
|
3035 8C2222 cmpx #0x02222
|
|
3038 102601F9 lbne FAIL
|
|
|
|
303C 1E42 exg s,y
|
|
303E 118CAAAA cmps #0x0AAAA
|
|
3042 102601EF lbne FAIL
|
|
3046 108C1111 cmpy #0x01111
|
|
304A 102601E7 lbne FAIL
|
|
|
|
304E 1E13 exg x,u
|
|
3050 8CBBBB cmpx #0x0BBBB
|
|
3053 102601DE lbne FAIL
|
|
3057 11832222 cmpu #0x02222
|
|
305B 102601D6 lbne FAIL
|
|
|
|
305F 1E24 exg y,s
|
|
3061 108CAAAA cmpy #0x0AAAA
|
|
3065 102601CC lbne FAIL
|
|
3069 118C1111 cmps #0x01111
|
|
306D 102601C4 lbne FAIL
|
|
|
|
|
|
; ----
|
|
; TFR
|
|
; ----
|
|
|
|
3071 1F89 tfr a,b
|
|
3073 C1BB cmpb #0x0BB
|
|
3075 102601BC lbne FAIL
|
|
|
|
3079 1F12 tfr x,y
|
|
307B 108CBBBB cmpy #0x0BBBB
|
|
307F 102601B2 lbne FAIL
|
|
|
|
3083 1F34 tfr u,s
|
|
3085 118C2222 cmps #0x02222
|
|
3089 102601A8 lbne FAIL
|
|
|
|
|
|
; ----
|
|
; NEG
|
|
; ----
|
|
|
|
308D 8688 lda #0x0088 ; Inherent
|
|
308F 40 nega
|
|
3090 102901A1 lbvs FAIL ; branch if V=1
|
|
3094 1024019D lbcc FAIL ; branch if C=0
|
|
3098 102B0199 lbmi FAIL ; branch if N=1
|
|
309C 10270195 lbeq FAIL ; branch if Z=1
|
|
30A0 8178 cmpa #0x078
|
|
30A2 1026018F lbne FAIL
|
|
|
|
30A6 C688 ldb #0x0088 ; Inherent
|
|
30A8 50 negb
|
|
30A9 10290188 lbvs FAIL ; branch if V=1
|
|
30AD 10240184 lbcc FAIL ; branch if C=0
|
|
30B1 102B0180 lbmi FAIL ; branch if N=1
|
|
30B5 1027017C lbeq FAIL ; branch if Z=1
|
|
30B9 C178 cmpb #0x078
|
|
30BB 10260176 lbne FAIL
|
|
|
|
30BF 0034 neg <$034 ; Direct
|
|
30C1 10290170 lbvs FAIL ; branch if V=1
|
|
30C5 1024016C lbcc FAIL ; branch if C=0
|
|
30C9 102A0168 lbpl FAIL ; branch if N=0
|
|
30CD 10270164 lbeq FAIL ; branch if Z=1
|
|
30D1 9634 lda <$034
|
|
30D3 81EE cmpa #0x0EE
|
|
30D5 1026015C lbne FAIL
|
|
30D9 0334 com <$034 ; Put back origial value
|
|
|
|
|
|
30DB 8E1234 ldx #0x01234 ; Indexed
|
|
30DE 6084 neg ,X
|
|
30E0 10290151 lbvs FAIL ; branch if V=1
|
|
30E4 1024014D lbcc FAIL ; branch if C=0
|
|
30E8 102A0149 lbpl FAIL ; branch if N=0
|
|
30EC 10270145 lbeq FAIL ; branch if Z=1
|
|
30F0 A684 lda ,X
|
|
30F2 81EF cmpa #0x0EF
|
|
30F4 1026013D lbne FAIL
|
|
30F8 6084 neg ,X ; Put back origial value
|
|
|
|
|
|
30FA 701234 neg >$01234 ; Extended
|
|
30FD 10290134 lbvs FAIL ; branch if V=1
|
|
3101 10240130 lbcc FAIL ; branch if C=0
|
|
3105 102A012C lbpl FAIL ; branch if N=0
|
|
3109 10270128 lbeq FAIL ; branch if Z=1
|
|
310D B61234 lda >$01234
|
|
3110 81EF cmpa #0x0EF
|
|
3112 1026011F lbne FAIL
|
|
3116 701234 neg >$01234 ; Put back origial value
|
|
|
|
|
|
|
|
; ----
|
|
; MUL
|
|
; ----
|
|
|
|
3119 CC0000 ldd #0x0
|
|
311C 108EFF00 ldy #0x0FF00
|
|
3120 10BF1200 sty >$01200
|
|
3124 MUL_LOOP
|
|
3124 FC1200 ldd >$01200
|
|
3127 3D mul
|
|
3128 F31202 addd >$01202
|
|
312B FD1202 std >$01202
|
|
312E 7C1201 inc >$01201
|
|
3131 7A1200 dec >$01200
|
|
3134 26EE bne MUL_LOOP
|
|
|
|
3136 FC1202 ldd >$01202
|
|
3139 10832B00 cmpd #0x02B00
|
|
313D 102600F4 lbne FAIL
|
|
|
|
|
|
|
|
; ----
|
|
; SEX
|
|
; ----
|
|
|
|
3141 C67F ldb #0x07F
|
|
3143 1D sex
|
|
3144 8100 cmpa #0x00
|
|
3146 102600EB lbne FAIL
|
|
|
|
314A C680 ldb #0x080
|
|
314C 1D sex
|
|
314D 81FF cmpa #0x0FF
|
|
314F 102600E2 lbne FAIL
|
|
|
|
;-----------------------------------------------------------
|
|
;-----------------------------------------------------------
|
|
|
|
|
|
|
|
; Test - Stack
|
|
;-----------------------------------------------------------
|
|
|
|
; System Stack starts at 0xF100
|
|
; User Stack starts at 0xF200
|
|
|
|
3153 86AA lda #0x0AA
|
|
3155 C6BB ldb #0x0BB
|
|
3157 8E1234 ldx #0x01234
|
|
315A 108E5678 ldy #0x05678
|
|
315E 10CEF100 lds #0x0F100
|
|
3162 CEF200 ldu #0x0F200
|
|
3165 343E pshs #0x03E
|
|
3167 363E pshu #0x03E
|
|
|
|
3169 B6F1F9 lda >$0F1F9 ; register_A
|
|
316C 81AA cmpa #0x0AA
|
|
316E 102600C3 lbne FAIL
|
|
3172 B6F1FA lda >$0F1FA ; register_B
|
|
3175 81BB cmpa #0x0BB
|
|
3177 102600BA lbne FAIL
|
|
317B B6F1FB lda >$0F1FB ; register_DP
|
|
317E 8112 cmpa #0x012
|
|
3180 102600B1 lbne FAIL
|
|
3184 BEF1FC ldx >$0F1FC ; register_X
|
|
3187 8C1234 cmpx #0x01234
|
|
318A 102600A7 lbne FAIL
|
|
318E BEF1FE ldx >$0F1FE ; register_Y
|
|
3191 8C5678 cmpx #0x05678
|
|
3194 1026009D lbne FAIL
|
|
|
|
|
|
3198 8600 lda #0x00
|
|
319A C600 ldb #0x00
|
|
319C 8E0000 ldx #0x00
|
|
319F 108E0000 ldy #0x00
|
|
|
|
31A3 353E puls #0x03E
|
|
31A5 373E pulu #0x03E
|
|
|
|
31A7 81AA cmpa #0x0AA ; register_A
|
|
31A9 10260088 lbne FAIL
|
|
|
|
31AD C1BB cmpb #0x0BB ; register_B
|
|
31AF 10260082 lbne FAIL
|
|
|
|
31B3 8C1234 cmpx #0x01234 ; register_X
|
|
31B6 1026007B lbne FAIL
|
|
|
|
31BA 108C5678 cmpy #0x05678 ; register_Y
|
|
31BE 10260073 lbne FAIL
|
|
|
|
31C2 12 nop
|
|
31C3 12 nop
|
|
|
|
|
|
;-----------------------------------------------------------
|
|
;-----------------------------------------------------------
|
|
|
|
|
|
|
|
; Test - Traps, Interrupts
|
|
;-----------------------------------------------------------
|
|
|
|
|
|
31C4 86AA lda #0x0AA
|
|
31C6 C6BB ldb #0x0BB
|
|
31C8 8E1234 ldx #0x01234
|
|
31CB 108E5678 ldy #0x05678
|
|
|
|
31CF 3F swi
|
|
31D0 81AA cmpa #0x0AA
|
|
31D2 1026005F lbne FAIL
|
|
31D6 C1BB cmpb #0x0BB
|
|
31D8 10260059 lbne FAIL
|
|
31DC 8C1234 cmpx #0x01234
|
|
31DF 10260052 lbne FAIL
|
|
31E3 108C5678 cmpy #0x05678
|
|
31E7 1026004A lbne FAIL
|
|
31EB 12 nop
|
|
31EC 12 nop
|
|
31ED 12 nop
|
|
|
|
31EE 103F swi2
|
|
31F0 81AA cmpa #0x0AA
|
|
31F2 1026003F lbne FAIL
|
|
31F6 C1BB cmpb #0x0BB
|
|
31F8 10260039 lbne FAIL
|
|
31FC 8C1234 cmpx #0x01234
|
|
31FF 10260032 lbne FAIL
|
|
3203 108C5678 cmpy #0x05678
|
|
3207 1026002A lbne FAIL
|
|
320B 12 nop
|
|
320C 12 nop
|
|
320D 12 nop
|
|
|
|
320E 113F swi3
|
|
3210 81AA cmpa #0x0AA
|
|
3212 1026001F lbne FAIL
|
|
3216 C1BB cmpb #0x0BB
|
|
3218 10260019 lbne FAIL
|
|
321C 8C1234 cmpx #0x01234
|
|
321F 10260012 lbne FAIL
|
|
3223 108C5678 cmpy #0x05678
|
|
3227 1026000A lbne FAIL
|
|
322B 12 nop
|
|
322C 12 nop
|
|
322D 12 nop
|
|
|
|
;sync
|
|
|
|
;cwai #0x66
|
|
|
|
|
|
322E 7E3231 jmp ALL_DONE
|
|
|
|
;-----------------------------------------------------------
|
|
;-----------------------------------------------------------
|
|
; Loop here when all tests pass
|
|
;
|
|
3231 ALL_DONE
|
|
3231 3D mul
|
|
3232 7E3231 jmp ALL_DONE
|
|
|
|
; Loop here when any test fails
|
|
;
|
|
3235 FAIL
|
|
3235 7E3235 jmp FAIL
|
|
|
|
|
|
|
|
|
|
|