-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathtmacro.asm
More file actions
102 lines (67 loc) · 830 Bytes
/
tmacro.asm
File metadata and controls
102 lines (67 loc) · 830 Bytes
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
; tmacro.asm
; Some tests of macro usage.
org 100h ; To run in cp/m
start:
macro bdos, function
ld c, function
call 5
endm
lineend macro
ld e, 0Dh
bdos 2
ld e, 0Ah
bdos 2
endm
macro pushall
push af
push bc
push de
push hl
endm
popall macro
pop hl
pop de
pop bc
pop af
endm
; Another way.
pall macro operation
irp reg, af, bc, de, hl
local i1
operation reg
endm
endm
pushall2 macro
pall push
endm
popall2 macro
irp reg, af, bc, de, hl
pop reg
endm
endm
; Yet another way
pushmany macro reg
rept -1
if nul reg
exitm
endif
push reg
.shift
endm
endm
pushall3 macro
pushmany af, bc, de, hl
endm
; Main program
; pushall
; pushall2
pushall3
ld de, hello
i1 bdos 9
i2: lineend
;popall
popall2
bdos 0
hello db 'Hello, world.$'
end start
; End of tmacro.asm