math1200.asm


1
; reassembly of "math1200.hex"
2
; created by ReAVR 2.4
3
; at 2005/05/18 - 16:36:49
4
; for Atmel AVR assembler
5
;---------------------------------------
6
  .cseg
7
  .org  0x0000
8
;---------------------------------------
9
; byte constants:
10
;
11
.equ  k00  = 0x00  ;
12
.equ  k01  = 0x01  ;
13
.equ  k02  = 0x02  ;
14
.equ  k03  = 0x03  ;
15
.equ  k04  = 0x04  ;
16
.equ  k05  = 0x05  ;
17
.equ  k06  = 0x06  ;
18
.equ  k08  = 0x08  ;
19
.equ  k0A  = 0x0A  ;
20
.equ  k0F  = 0x0F  ;
21
.equ  k10  = 0x10  ;
22
.equ  k13  = 0x13  ;
23
.equ  k14  = 0x14  ;
24
.equ  k19  = 0x19  ;
25
.equ  k1D  = 0x1D  ;
26
.equ  k28  = 0x28  ; '('
27
.equ  k2B  = 0x2B  ; '+'
28
.equ  k3B  = 0x3B  ; ';'
29
.equ  k3C  = 0x3C  ; '<'
30
.equ  k40  = 0x40  ; '@'
31
.equ  k50  = 0x50  ; 'P'
32
.equ  k53  = 0x53  ; 'S'
33
.equ  k64  = 0x64  ; 'd'
34
.equ  k7F  = 0x7F  ; ''
35
.equ  k80  = 0x80  ;
36
.equ  k9C  = 0x9C  ;
37
.equ  kC8  = 0xC8  ; 'È'
38
.equ  kE3  = 0xE3  ; 'ã'
39
.equ  kF9  = 0xF9  ; 'ù'
40
.equ  kFB  = 0xFB  ; 'û'
41
;
42
; io register addresses:
43
;
44
.equ  p08  = 0x08
45
.equ  p10  = 0x10
46
.equ  p11  = 0x11
47
.equ  p12  = 0x12
48
.equ  p16  = 0x16
49
.equ  p17  = 0x17
50
.equ  p18  = 0x18
51
.equ  p21  = 0x21
52
.equ  p33  = 0x33
53
.equ  p35  = 0x35
54
.equ  p39  = 0x39
55
.equ  p3B  = 0x3B
56
.equ  p3F  = 0x3F
57
;
58
; pointer offsets:
59
;
60
.equ  o00  = 0x00
61
;
62
; bit numbers
63
;
64
.equ  b0  = 0x00
65
.equ  b1  = 0x01
66
.equ  b2  = 0x02
67
.equ  b3  = 0x03
68
.equ  b4  = 0x04
69
.equ  b5  = 0x05
70
.equ  b6  = 0x06
71
.equ  b7  = 0x07
72
;---------------------------------------
73
;
74
L0000:
75
  rjmp  _reset  ; L0004
76
  rjmp  L00D1
77
  rjmp  L0171
78
  rjmp  L0171
79
;
80
_reset:
81
; L0004:
82
  ldi  r28,k0F
83
  out  p21,r28
84
  ldi  r28,k00
85
  out  p11,r28
86
  out  p12,r28
87
  ldi  r28,k3B
88
  out  p17,r28
89
  ldi  r28,k03
90
  out  p18,r28
91
  clr  r19
92
L000E:
93
  sbic  p10,b3
94
  rjmp  L0017
95
  inc  r19
96
  cpi  r19,k64
97
  breq  L0015
98
  rcall  L0161
99
  rjmp  L000E
100
L0015:
101
  clr  r29
102
  ori  r29,k40
103
L0017:
104
  clr  r28
105
  out  p3B,r28
106
  ldi  r28,k02
107
  out  p35,r28
108
  ldi  r28,k40
109
  out  p3B,r28
110
  clr  r28
111
  out  p39,r28
112
  out  p08,r28
113
  ldi  r28,k80
114
  out  p08,r28
115
  sei
116
  ldi  r28,k04
117
  out  p33,r28
118
L0025:
119
  wdr
120
  sbrc  r29,b1
121
  rjmp  L0051
122
  sbic  p10,b6
123
  rjmp  L0025
124
L002A:
125
  clr  r19
126
  in  r24,p16
127
  ldi  r23,k10
128
  eor  r24,r23
129
  out  p18,r24
130
  ldi  r24,k06
131
L0030:
132
  rcall  L0169
133
  wdr
134
  sbic  p10,b3
135
  inc  r19
136
  sbic  p10,b6
137
  rjmp  L003B
138
  dec  r24
139
  brne  L0030
140
  cpi  r19,k05
141
  brge  L0051
142
  clr  r19
143
L003B:
144
  sbis  p10,b6
145
  rjmp  L002A
146
  inc  r19
147
  cpi  r19,k03
148
  breq  L0042
149
  rcall  L0161
150
  rjmp  L003B
151
L0042:
152
  sbi  p18,b3
153
  ldi  r24,k0A
154
L0044:
155
  wdr
156
  rcall  L0169
157
  dec  r24
158
  brne  L0044
159
  cbi  p18,b3
160
  ori  r29,k02
161
  sbi  p18,b4
162
  ldi  r24,k50
163
L004C:
164
  wdr
165
  rcall  L0169
166
  wdr
167
  dec  r24
168
  brne  L004C
169
L0051:
170
  wdr
171
L0052:
172
  sbrc  r29,b4
173
  rjmp  L00BC
174
L0054:
175
  sbi  p18,b1
176
  sbrs  r29,b2
177
  sbi  p18,b4
178
L0057:
179
  wdr
180
  clr  r19
181
L0059:
182
  sbic  p10,b3
183
  rjmp  L0064
184
  inc  r19
185
  cpi  r19,k2B
186
  brlt  L0061
187
  clr  r29
188
  ori  r29,k40
189
  rjmp  L002A
190
L0061:
191
  rcall  L0169
192
  wdr
193
  rjmp  L0059
194
L0064:
195
  cpi  r19,k02
196
  brge  L009A
197
  clr  r19
198
L0067:
199
  sbic  p10,b5
200
  rjmp  L007B
201
  inc  r19
202
  cpi  r19,k03
203
  breq  L006E
204
  rcall  L0161
205
  rjmp  L0067
206
L006E:
207
  sbi  p17,b2
208
  rcall  L0169
209
  cbi  p18,b2
210
  rcall  L0169
211
  cbi  p17,b2
212
  andi  r29,kFB
213
  sbi  p18,b4
214
  cbi  p18,b5
215
  ldi  r24,k14
216
L0077:
217
  rcall  L0169
218
  dec  r24
219
  brne  L0077
220
  rjmp  L0051
221
L007B:
222
  clr  r19
223
L007C:
224
  sbis  p10,b6
225
  rjmp  L0090
226
  inc  r19
227
  cpi  r19,k03
228
  breq  L0083
229
  rcall  L0161
230
  rjmp  L007C
231
L0083:
232
  sbi  p18,b3
233
L0084:
234
  sbis  p10,b6
235
  rjmp  L008A
236
  inc  r19
237
  rcall  L0169
238
  wdr
239
  rjmp  L0084
240
L008A:
241
  cbi  p18,b3
242
  cpi  r19,k53
243
  brlt  L0090
244
  clr  r29
245
  ori  r29,k40
246
  rjmp  _reset  ; L0004
247
L0090:
248
  sbrc  r29,b2
249
  rjmp  L00B1
250
  clr  r19
251
L0093:
252
  sbic  p10,b3
253
  rjmp  L0051
254
  inc  r19
255
  cpi  r19,k03
256
  breq  L009A
257
  rcall  L0161
258
  rjmp  L0093
259
L009A:
260
  sbrs  r29,b4
261
  rjmp  L00AC
262
L009C:
263
  andi  r29,k7F
264
  sbi  p18,b5
265
  ori  r29,k08
266
  cbi  p18,b0
267
  ldi  r24,k14
268
L00A1:
269
  dec  r24
270
  brne  L00A1
271
  sbi  p18,b0
272
  ldi  r24,k14
273
L00A5:
274
  rcall  L0169
275
  wdr
276
  dec  r24
277
  brne  L00A5
278
  cbi  p18,b5
279
  rcall  L0169
280
  rjmp  L00BC
281
L00AC:
282
  ori  r29,k04
283
  cbi  p18,b0
284
  rcall  L0161
285
  sbi  p18,b0
286
  rcall  L0169
287
L00B1:
288
  in  r24,p16
289
  ldi  r23,k10
290
  eor  r24,r23
291
  out  p18,r24
292
  ldi  r24,k13
293
L00B6:
294
  rcall  L0169
295
  dec  r24
296
  brne  L00B6
297
  sbrs  r29,b2
298
  rjmp  L0025
299
  rjmp  L0054
300
L00BC:
301
  wdr
302
  sbrc  r29,b7
303
  rjmp  L009C
304
  sbrc  r29,b3
305
  rjmp  L00C5
306
  sbi  p18,b1
307
  sbrs  r29,b2
308
  sbi  p18,b4
309
  rjmp  L0057
310
L00C5:
311
  in  r24,p16
312
  ldi  r23,k10
313
  eor  r24,r23
314
  out  p18,r24
315
  cbi  p18,b1
316
  ldi  r24,k3C
317
L00CB:
318
  wdr
319
  rcall  L0169
320
  wdr
321
  dec  r24
322
  brne  L00CB
323
  rjmp  L0052
324
L00D1:
325
  in  r15,p3F
326
  ori  r29,k01
327
L00D3:
328
  clr  r18
329
  ldi  r17,k01
330
L00D5:
331
  sbic  p10,b4
332
  rjmp  L00D5
333
  rjmp  L00DF
334
L00D8:
335
  sbic  p10,b4
336
  rjmp  L00D8
337
  mov  r26,r17
338
  andi  r26,k7F
339
  cpi  r26,k19
340
  in  r26,p3F
341
  bst  r26,b1
342
L00DF:
343
  sec
344
L00E0:
345
  sbis  p10,b4
346
  rjmp  L00E0
347
  sbis  p10,b2
348
  clc
349
  rol  r17
350
  brcc  L00D8
351
L00E6:
352
  sbic  p10,b4
353
  rjmp  L00E6
354
  brts  L00EA
355
  rjmp  L0143
356
L00EA:
357
  sbi  p11,b2
358
L00EB:
359
  sbis  p10,b4
360
  rjmp  L00EB
361
  lsr  r17
362
  brcc  L0113
363
L00EF:
364
  mov  r16,r14
365
  sec
366
  rol  r16
367
L00F2:
368
  sbic  p10,b4
369
  rjmp  L00F2
370
  brcc  L00F7
371
  cbi  p11,b2
372
  rjmp  L00F8
373
L00F7:
374
  sbi  p11,b2
375
L00F8:
376
  lsl  r16
377
L00F9:
378
  sbis  p10,b4
379
  rjmp  L00F9
380
L00FB:
381
  sbic  p10,b4
382
  rjmp  L00FB
383
  brcc  L0102
384
  cbi  p11,b2
385
  lsl  r16
386
  brne  L00F9
387
  rjmp  L0105
388
L0102:
389
  sbi  p11,b2
390
  lsl  r16
391
  brne  L00F9
392
L0105:
393
  sbis  p10,b4
394
  rjmp  L0105
395
L0107:
396
  sbic  p10,b4
397
  rjmp  L0107
398
  cbi  p11,b2
399
L010A:
400
  sbis  p10,b4
401
  rjmp  L010A
402
  sec
403
  sbis  p10,b2
404
  clc
405
  brcc  L00EF
406
L0110:
407
  sbic  p10,b4
408
  rjmp  L0110
409
  rjmp  L0147
410
L0113:
411
  sbic  p10,b4
412
  rjmp  L0113
413
  cbi  p11,b2
414
L0116:
415
  sbis  p10,b4
416
  rjmp  L0116
417
  in  r26,p10
418
  andi  r26,k14
419
L011A:
420
  in  r25,p10
421
  andi  r25,k14
422
  cp  r25,r26
423
  breq  L011A
424
  sbrs  r25,b4
425
  rjmp  L0123
426
  sbrs  r25,b2
427
  rjmp  L00D3
428
  rjmp  L0153
429
L0123:
430
  ldi  r16,k02
431
  sbrc  r26,b2
432
  ldi  r16,k03
433
L0126:
434
  sbic  p10,b4
435
  rjmp  L0126
436
  sec
437
L0129:
438
  sbis  p10,b4
439
  rjmp  L0129
440
  sbis  p10,b2
441
  clc
442
  rol  r16
443
  brcc  L0126
444
L012F:
445
  sbic  p10,b4
446
  rjmp  L012F
447
  sbi  p11,b2
448
  inc  r18
449
L0133:
450
  sbis  p10,b4
451
  rjmp  L0133
452
  cpi  r18,k01
453
  breq  L013F
454
  cpi  r30,k1D
455
  brne  L013D
456
  andi  r29,kE3
457
  andi  r16,k9C
458
  or  r29,r16
459
  rjmp  L0113
460
L013D:
461
  std  Z+o00,r16
462
  rjmp  L0113
463
L013F:
464
  mov  r30,r16
465
  ldd  r14,Z+o00
466
  rjmp  L0113
467
  in  r15,p3F
468
L0143:
469
  sbis  p10,b4
470
  rjmp  L0143
471
L0145:
472
  sbic  p10,b4
473
  rjmp  L0145
474
L0147:
475
  sbis  p10,b4
476
  rjmp  L0147
477
  in  r26,p10
478
  andi  r26,k14
479
L014B:
480
  in  r25,p10
481
  andi  r25,k14
482
  cp  r25,r26
483
  breq  L014B
484
  sbrs  r25,b4
485
  rjmp  L0159
486
  sbrs  r25,b2
487
  rjmp  L00D3
488
L0153:
489
  ldi  r26,k00
490
  out  p35,r26
491
  ldi  r26,k02
492
  out  p35,r26
493
  out  p3F,r15
494
  reti
495
; pc=0x159(0x2B2)
496
;
497
L0159:
498
  ldi  r26,kF9
499
L015A:
500
  sbis  p10,b4
501
  rjmp  L015A
502
L015C:
503
  sbic  p10,b4
504
  rjmp  L015C
505
  inc  r26
506
  brne  L015A
507
  rjmp  L0143
508
L0161:
509
  ldi  r28,k28
510
  clr  r27
511
L0163:
512
  dec  r27
513
  nop
514
  brne  L0163
515
  dec  r28
516
  brne  L0163
517
  ret
518
; pc=0x169(0x2D2)
519
;
520
L0169:
521
  ldi  r28,kC8
522
  clr  r27
523
L016B:
524
  dec  r27
525
  nop
526
  brne  L016B
527
  dec  r28
528
  brne  L016B
529
  ret
530
; pc=0x171(0x2E2)
531
;
532
L0171:
533
  reti
534
; pc=0x172(0x2E4)
535
;
536
;
537
; last flash byte address = 0x03FF
538
; last flash word address = 0x01FF
539
;---------------------------------------
540
; Code seems not to use any RAM,
541
; guess it's for an AVR tiny.
542
;---------------------------------------
543
;<eof>