Mercurial > hg > Members > kono > os9 > sbc09
comparison examples/test09.asm @ 57:2088fd998865
sbc09 directry clean up
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 23 Jul 2018 16:07:12 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
56:4fa2bdb0c457 | 57:2088fd998865 |
---|---|
1 ; 6809 Test program. | |
2 | |
3 testnr equ 32 | |
4 | |
5 org $100 | |
6 jmp entry | |
7 error ldx #errmsg | |
8 bsr outs | |
9 lda testnr | |
10 bsr outa | |
11 ldx #newline | |
12 bsr outs | |
13 sync | |
14 | |
15 errmsg fcb "ERROR ",0 | |
16 newline fcb 13,10,0 | |
17 outs ldb ,x+ | |
18 beq done1 | |
19 swi2 | |
20 bra outs | |
21 done1 rts | |
22 outdig addb # 48 | |
23 cmpb # 57 | |
24 bls od2 | |
25 addb #7 | |
26 od2 swi2 | |
27 rts | |
28 outa tfr a,b | |
29 lsrb | |
30 lsrb | |
31 lsrb | |
32 lsrb | |
33 bsr outdig | |
34 tfr a,b | |
35 andb # 15 | |
36 bra outdig | |
37 passmsg fcb "PASSED ",0 | |
38 good ldx #passmsg | |
39 jsr outs | |
40 lda testnr | |
41 jsr outa | |
42 ldx #newline | |
43 jsr outs | |
44 inc testnr | |
45 rts | |
46 | |
47 entry clr testnr | |
48 jsr good ;test #0, does it print msg? | |
49 andcc #0 ;test #1, conditional (long) branches | |
50 lbvs error ; andcc, orcc | |
51 lbcs error | |
52 lbeq error | |
53 lbmi error | |
54 lbls error | |
55 lblt error | |
56 lble error | |
57 lbrn error | |
58 bvs errt1 | |
59 bcs errt1 | |
60 beq errt1 | |
61 bmi errt1 | |
62 bls errt1 | |
63 blt errt1 | |
64 ble errt1 | |
65 brn errt1 | |
66 lbvc goot1 | |
67 errt1 jmp error | |
68 goot1 lbcc goot2 | |
69 jmp error | |
70 goot2 lbne goot3 | |
71 jmp error | |
72 goot3 lbpl goot4 | |
73 jmp error | |
74 goot4 lbhi goot5 | |
75 jmp error | |
76 goot5 lbge goot6 | |
77 jmp error | |
78 goot6 lbgt goot7 | |
79 jmp error | |
80 goot7 lbra goot8 | |
81 jmp error | |
82 goot8 bvc goot9 | |
83 jmp error | |
84 goot9 bcc goot10 | |
85 jmp error | |
86 goot10 bne goot11 | |
87 jmp error | |
88 goot11 bpl goot12 | |
89 jmp error | |
90 goot12 bhi goot13 | |
91 jmp error | |
92 goot13 bge goot14 | |
93 jmp error | |
94 goot14 bgt goot15 | |
95 jmp error | |
96 goot15 bra goot16 | |
97 jmp error | |
98 goot16 tfr cc,a | |
99 tsta | |
100 lbne error | |
101 andcc #0 | |
102 orcc #1 | |
103 lbcc error | |
104 lbeq error | |
105 lbvs error | |
106 lbmi error | |
107 orcc #2 | |
108 lbvc error | |
109 lbeq error | |
110 lbmi error | |
111 orcc #4 | |
112 lbne error | |
113 lbmi error | |
114 orcc #8 | |
115 lbpl error | |
116 tfr cc,a | |
117 cmpa #15 | |
118 lbne error | |
119 orcc #15 | |
120 orcc #240 | |
121 tfr cc,a | |
122 inca | |
123 lbne error | |
124 orcc #255 | |
125 andcc #$aa | |
126 tfr cc,a | |
127 cmpa #$aa | |
128 lbne error | |
129 jsr good | |
130 | |
131 lds #0 ; test #2: registers and their values, tfr, exg | |
132 lda #$28 | |
133 ldb #$7f | |
134 ldu #3417 | |
135 ldx #2221 | |
136 ldy #16555 | |
137 cmpa #$28 | |
138 lbne error | |
139 cmpb #$7f | |
140 lbne error | |
141 cmpd #$287f | |
142 lbne error | |
143 cmpx #2221 | |
144 lbne error | |
145 cmpy #13 | |
146 lbeq error | |
147 cmpy #16555 | |
148 lbne error | |
149 cmpu #3417 | |
150 lbne error | |
151 cmps #0 | |
152 lbne error | |
153 exg x,y | |
154 cmpx #16555 | |
155 lbne error | |
156 cmpy #2221 | |
157 lbne error | |
158 exg x,d | |
159 cmpd #16555 | |
160 lbne error | |
161 cmpx #$287f | |
162 lbne error | |
163 cmpy #2221 | |
164 lbne error | |
165 exg x,d | |
166 exg a,dp | |
167 tsta | |
168 lbne error | |
169 exg a,dp | |
170 exg a,b | |
171 cmpa #$7f | |
172 lbne error | |
173 cmpb #$28 | |
174 lbne error | |
175 tfr b,a | |
176 cmpb #$28 | |
177 lbne error | |
178 cmpa #$28 | |
179 lbne error | |
180 tfr u,x | |
181 cmpu #3417 | |
182 lbne error | |
183 cmpx #3417 | |
184 lbne error | |
185 tfr pc,x | |
186 here cmpx #here | |
187 lbne error | |
188 tfr u,s | |
189 cmps #3417 | |
190 lbne error | |
191 lds #0 | |
192 clra | |
193 tfr b,cc | |
194 tfr cc,a | |
195 cmpa #$28 | |
196 lbne error | |
197 jsr good | |
198 | |
199 lda #128 ;Arithmetic and their status. | |
200 adda #255 | |
201 lbcc error | |
202 lbvc error | |
203 lbmi error | |
204 cmpa #127 | |
205 lbne error | |
206 lda #0 | |
207 adda #255 | |
208 lbcs error | |
209 lbvs error | |
210 lbpl error | |
211 cmpa #255 | |
212 lbne error | |
213 orcc #1 | |
214 lda #255 | |
215 adca #0 | |
216 lbne error | |
217 lbmi error | |
218 lbcc error | |
219 lda #216 | |
220 adda #40 | |
221 lbne error | |
222 lda #80 | |
223 adda #40 | |
224 lbcs error | |
225 lbvs error | |
226 cmpa #120 | |
227 lbne error | |
228 orcc #1 | |
229 lda #80 | |
230 adca #40 | |
231 lbcs error | |
232 lbvs error | |
233 cmpa #121 | |
234 lbne error | |
235 andcc #254 | |
236 ldb #80 | |
237 adcb #40 | |
238 lbcs error | |
239 lbvs error | |
240 cmpb #120 | |
241 lbne error | |
242 ldb #80 | |
243 subb #120 | |
244 lbcc error | |
245 lbvs error | |
246 cmpb #216 | |
247 lbne error | |
248 andcc #254 | |
249 lda #140 | |
250 sbca #20 | |
251 lbvc error | |
252 lbcs error | |
253 cmpa #120 | |
254 lbne error | |
255 orcc #1 | |
256 lda #140 | |
257 sbca #20 | |
258 lbvc error | |
259 lbcs error | |
260 cmpa #119 | |
261 lbne error | |
262 ldd #40000 | |
263 subd #20000 | |
264 lbvc error | |
265 lbcs error | |
266 cmpd #20000 | |
267 lbne error | |
268 ldd #20000 | |
269 subd #40000 | |
270 lbvc error | |
271 lbcc error | |
272 cmpd #-20000 | |
273 lbne error | |
274 ldd #30000 | |
275 addd #-20000 | |
276 lbcc error | |
277 lbvs error | |
278 cmpd #10000 | |
279 lbne error | |
280 jsr good | |
281 | |
282 lda #$23 ;Test #4 decimal arithmetic. | |
283 adda #$34 | |
284 daa | |
285 lbcs error | |
286 cmpa #$57 | |
287 lbne error | |
288 orcc #1 | |
289 lda #$19 | |
290 adca #$29 | |
291 daa | |
292 lbcs error | |
293 cmpa #$49 | |
294 lbne error | |
295 lda #$92 | |
296 adda #$8 | |
297 daa | |
298 lbcc error | |
299 cmpa #$00 | |
300 jsr good | |
301 | |
302 lda #128 ;Test#5 MUL and SEX | |
303 ldb #2 | |
304 mul | |
305 lbeq error | |
306 lbcs error | |
307 cmpd #256 | |
308 lbne error | |
309 lda #0 | |
310 ldb #23 | |
311 mul | |
312 lbne error | |
313 lbcs error | |
314 cmpd #0 | |
315 lbne error | |
316 lda #10 | |
317 ldb #20 | |
318 mul | |
319 lbcc error | |
320 cmpd #200 | |
321 lbne error | |
322 lda #100 | |
323 ldb #49 | |
324 mul | |
325 cmpd #4900 | |
326 lbne error | |
327 clrb | |
328 sex | |
329 cmpd #0 | |
330 lbne error | |
331 ldb #128 | |
332 sex | |
333 cmpd #-128 | |
334 lbne error | |
335 ldb #50 | |
336 sex | |
337 cmpd #50 | |
338 lbne error | |
339 jsr good | |
340 | |
341 lda #$55 ; Test #6 Shifts and rotates. | |
342 asla | |
343 lbcs error | |
344 cmpa #$aa | |
345 lbne error | |
346 asla | |
347 lbcc error | |
348 cmpa #$54 | |
349 lbne error | |
350 lda #$0 | |
351 andcc #254 | |
352 rola | |
353 lbne error | |
354 orcc #1 | |
355 rola | |
356 deca | |
357 lbne error | |
358 andcc #254 | |
359 rora | |
360 lbne error | |
361 orcc #1 | |
362 rora | |
363 cmpa #128 | |
364 lbne error | |
365 asra | |
366 cmpa #192 | |
367 lbne error | |
368 lsra | |
369 cmpa #96 | |
370 lbne error | |
371 ldb # 54 | |
372 aslb | |
373 cmpb # 108 | |
374 lbne error | |
375 jsr good | |
376 | |
377 orcc #15 ; Test #7 INC, DEC and NEG | |
378 lda # 33 | |
379 inca | |
380 lbeq error | |
381 lbvs error | |
382 lbcc error | |
383 lbmi error | |
384 deca | |
385 lbeq error | |
386 lbvs error | |
387 lbcc error | |
388 lbmi error | |
389 clra | |
390 andcc #254 | |
391 deca | |
392 lbcs error | |
393 lbpl error | |
394 inca | |
395 lbne error | |
396 ldb #126 | |
397 negb | |
398 lbvs error | |
399 lbcc error | |
400 cmpb #130 | |
401 lbne error | |
402 decb | |
403 decb | |
404 negb | |
405 lbvc error | |
406 cmpb #128 | |
407 lbne error | |
408 clrb | |
409 negb | |
410 lbcs error | |
411 lbne error | |
412 jsr good | |
413 | |
414 ;test #8 Addessing modes. | |
415 ldx #testdat+4 | |
416 lda ,x | |
417 cmpa #5 | |
418 lbne error | |
419 lda ,x+ | |
420 cmpa #5 | |
421 lbne error | |
422 cmpx #testdat+5 | |
423 lbne error | |
424 ldd ,x++ | |
425 cmpd #6*256+7 | |
426 lbne error | |
427 cmpx #testdat+7 | |
428 lbne error | |
429 ldx #testdat+4 | |
430 lda ,-x | |
431 cmpa #4 | |
432 lbne error | |
433 cmpx #testdat+3 | |
434 lbne error | |
435 ldd ,--x | |
436 cmpd #2*256+3 | |
437 lbne error | |
438 cmpx #testdat+1 | |
439 lbne error | |
440 ldx #testdat+4 | |
441 lda -2,x | |
442 cmpa #3 | |
443 lbne error | |
444 lda 2,x | |
445 cmpa #7 | |
446 lbne error | |
447 ldx #td1 | |
448 ldd [,x] | |
449 cmpd #3*256+4 | |
450 lbne error | |
451 cmpx #td1 | |
452 lbne error | |
453 jsr good | |
454 bra next1 | |
455 testdat fcb 1,2,3,4,5,6,7,8,9,10 | |
456 td1 fdb testdat+2 | |
457 next1 | |
458 | |
459 sync | |
460 end $100 | |
461 | |
462 | |
463 |