-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathSPRITELOAD.a99
94 lines (89 loc) · 2.08 KB
/
SPRITELOAD.a99
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
DEF LTEST
REF LOADER,VMBW
* Use this program in order to load all
* of the files needed to test SCRNWRT.
* It will execute the SCRNWRT tests
* automatically.
PABBUF EQU >1000
PAB EQU >F80
STATUS EQU >837C
PNTR EQU >8356
* Byte 0 = Open
* Byte 1 = Status/Display/Fixed
* Byte 4 = max record length 80
* Byte 5 = actual length to write
* Byte 6-7 are not relevant
* Byte 8 = status o file
* Byte 9 = file name length
PDATA1 DATA >0004,PABBUF,>5000,>0000,>000F
FILEN1 TEXT 'DSK2.SPRITE.OBJ'
BSS 7
PDATA2 DATA >0004,PABBUF,>5000,>0000,>0012
FILEN2 TEXT 'DSK2.SPRITEDAT.OBJ'
BSS 4
PDATA3 DATA >0004,PABBUF,>5000,>0000,>0013
FILEN3 TEXT 'DSK2.SPRITEMAP1.OBJ'
BSS 3
PDATA4 DATA >0004,PABBUF,>5000,>0000,>0013
FILEN4 TEXT 'DSK2.SPRITMUSIC.OBJ'
BSS 3
PDATAE
LDMSG TEXT 'Loading SPRITE.O, SPRITEDAT.O, '
TEXT 'SPRITEMAP1.O, SPRITMUSIC.O '
LDMSGE
LTEST LI R0,0
LI R1,LDMSG
LI R2,LDMSGE-LDMSG
BLWP @VMBW
* Write PAB to VDP
LI R0,PAB
LI R1,PDATA1
LI R2,PDATA2-PDATA1
LTEST1 BLWP @VMBW
LI R6,PAB+9
MOV R6,@PNTR
* Load the assembled code
BLWP @LOADER
* If the Eqaul bit is set, report error
JEQ RPTERR
* Update R1 so we can load the next file
A R2,R1
CI R1,PDATAE
JL LTEST1
* Enter the test program
B @RUNTST
*
*
ERRMSG TEXT 'LOADER routine error: '
ERRCD BSS 1
ERRCD1 EVEN
ERRFL TEXT 'File: '
ERRFL1
*
RPTERR MOV R1,R3
* Add error code to message
AI R0,>3000
MOVB R0,@ERRCD
* Display error message
LI R0,>60
LI R1,ERRMSG
LI R2,ERRCD1-ERRMSG
BLWP @VMBW
* Display particular file to fail
LI R0,>80
LI R1,ERRFL
LI R2,ERRFL1-ERRFL
BLWP @VMBW
A R2,R0
MOV R3,R1
AI R1,>A
LI R2,>10
BLWP @VMBW
JMP LIMI 2
LIMI 0
JMP JMP
TEXT 'LOOKHERE'
*
* First loaded program will be found here:
RUNTST
END