-
Notifications
You must be signed in to change notification settings - Fork 6
/
loader.asm
81 lines (65 loc) · 771 Bytes
/
loader.asm
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
org $8000
rept 257
db $81
endm
LoadDefault ret
SetCallback macro label,addr
push hl
if not nul addr
ld hl,addr
else
ld hl,LoadDefault
endif
ld (label+1),hl
pop hl
endm
Load macro main,int,init,clean
SetCallback LoadMain,main
SetCallback LoadInt,int
SetCallback LoadInit,init
SetCallback LoadClean,clean
call Loader
endm
Loader di
push af
push bc
push de
push hl
push ix
exx
ex af,af'
push af
push bc
push de
push hl
push iy
LoadInit call LoadDefault
ld a,$80
ld i,a
im 2
ei
LoadMain call LoadDefault
di
im 1
LoadClean call LoadDefault
pop iy
pop hl
pop de
pop bc
pop af
ex af,af'
exx
pop ix
pop hl
pop de
pop bc
pop af
ei
ret
org $817e ; 33150
jp main
org $8181
di
LoadInt call LoadDefault
ei
reti