-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathjumptable.asm
More file actions
107 lines (74 loc) · 1.02 KB
/
jumptable.asm
File metadata and controls
107 lines (74 loc) · 1.02 KB
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
106
107
; jumptable.asm
; Test of ## operator.
org 100h
bdos equ 5
conin equ 1
pstring equ 9
start jp init
jpfunc macro nfunc
jp function_ ## nfunc
endm
table:
irp func, mess1, mess2, presskey, endline
jpfunc func
endm
print ld c, pstring
jp bdos
init
if 0
rept 3, nfunc
ld a, nfunc
call usefunc
endm
else
rept 3, nfunc, 2, -1
ld a, nfunc
call usefunc
endm
endif
ld a, 3
call usefunc
ld c, 0
call bdos
usefunc
ld b, a
add a, a
add a, b
ld c, a
ld b, 0
ld hl, table
add hl, bc
push hl
ret
function_mess1 proc
local message
ld de, message
call print
ret
message db "Hello, world\r\n$"
endp
function_mess2 proc
local message
ld c, pstring
ld de, message
jp bdos
message db 'Have a nice day', 0Dh, 0Ah, '$'
endp
function_presskey proc
local message
ld c, pstring
ld de, message
call bdos
ld c, conin
call bdos
ret
message db 'Press any key...$'
endp
function_endline proc
local message
ld de, message
jp print
message db 0Dh, 0Ah, '$'
endp
end start
; End of jumptable.asm