-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathusemacros.asm
110 lines (47 loc) · 1.63 KB
/
usemacros.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
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
108
109
110
include "myMacros.inc"
.assume adl=1 ; ez80 ADL memory mode
.org $40000 ; load code here
jp start_here ; jump to start of code
.align 64 ; MOS header
.db "MOS",0,1
start_here:
push af ; store all the registers
push bc
push de
push ix
push iy
; ------------------
; This is our actual code
CLS
SET_COLOUR red
SET_BG_COLOUR green
TAB_TO 15,10
; Sending a VDU byte stream
ld hl, VDUdata ; address of string to use
ld bc, endVDUdata - VDUdata ; length of string
rst.lil $18 ; Call the MOS API to send data to VDP
; reset the colours
SET_COLOUR bright_white
SET_BG_COLOUR black
; ------------------
; This is where we exit the program
pop iy ; Pop all registers back from the stack
pop ix
pop de
pop bc
pop af
ld hl,0 ; Load the MOS API return code (0) for no errors.
ret ; Return to MOS
; ------------------
; This is the data we send to VDP
VDUdata:
.db "Hello Agon macros\r\n" ; print this text
endVDUdata:
; ------------------
; colour data
red: equ 1
green: equ 2
blue: equ 4
white: equ 7
black: equ 0
bright_white: equ 15