-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTESTER.S
105 lines (76 loc) · 2.39 KB
/
TESTER.S
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
; OPT X+
move.w #2,-(SP)
trap #14
addq.l #6,SP
move.l D0,screen
clr.l -(SP)
move.w #$20,-(SP)
trap #1
addq.l #6,SP
lea mystack,sp
start:
; movea.l screen,A0
; move.l #32000/4-1,D7
;; moveq #-1,D0
; moveq #0,D0
;clrscr: move.l D0,(A0)+
; dbra D7,clrscr
bsr _Z8halve_itv
movem.l refpic+2,D0-D7
movem.l D0-D7,$FFFF8240.w
clr.b $FFFF8260.w
lea refpic+34,A0
movea.l screen,A1
lea 16000(A1),A1
moveq #40,D7
copyline: movem.l (A0),D0-D6
movem.l D0-D6,(A1)
lea 160(A0),A0
lea 160(A1),A1
dbra D7,copyline
; fixup pointers if needed
lea a,a0
move.l a0,d0
moveq #16+31+31-1,d7
fixup_loop: add.l d0,(a0)+
dbra d7,fixup_loop
; draw all the things
lea a,a6
; lea 17*4(a6),a6
move.w #16+31+31-1,loop_count
draw_loop: movea.l screen,A1
move.l a1,a0
moveq #0,d0
move.w #32000/4-1,d7
clr_scr: move.l d0,(a0)+
dbra d7,clr_scr
move.l (a6),a0
jsr (a0)
addq.w #4,a6
move.w #1,-(sp)
trap #1
addq.w #2,sp
subq.w #1,loop_count
bge.s draw_loop
if 0
movea.l screen,A0
lea 16000(A0),A1
move.w #80*35,D7
cmploop: move.w (A0)+,D0
cmp.w (A1),D0
bne.s noclr
clr.w (A1)
noclr: addq.w #2,A1
dbra D7,cmploop
endif
; jsr clr_0
illegal
loop_count: ds.w 1
screen: DS.L 1
refpic: incbin "sprites\\testsprite0.pi1"
buf_origsprite=refpic+34
include "brown.s"
a=output_buf
.bss
ds.l 3000
mystack: ds.l 1