-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtext.asm
90 lines (41 loc) · 1.81 KB
/
text.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
.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
; Sending VDU commands byte by byte
ld a, 22
rst.lil $10 ; set screen mode...
ld a, 8
rst.lil $10 ; to mode 8, 320x240 64 colours
; 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
; ------------------
; 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 17, 0 ; set text colour, 0 = black, 1 = red, etc
.db 17, 11 + 128 ; set text background, +128 for background
.db 31, 10, 10 ; TAB to 10,20
.db "Hello Agon coders\r\n" ; print this text
.db 17, 15 ; reset text colour, 15 = bright white
.db 17, 0 + 128 ; reset text background, +128 for background
endVDUdata: