Browse code

Add source code of the ROM

Pawel Jablonski authored on 14/12/2022 19:10:08
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,92 @@
1
+; Author: Pawel Jablonski
2
+; E-mail: pj@xirx.net
3
+; WWW: xirx.net
4
+; GIT: git.xirx.net
5
+;
6
+; License: You can use this code however you like
7
+; but leave information about the original author.
8
+; Code is free for non-commercial and commercial use.
9
+
10
+include io.asm
11
+
12
+; Arguments:
13
+; 	A - foreground color (4 bit)
14
+; No return
15
+external .xLcdSetForeground:
16
+	push A
17
+	; Set lcd color register
18
+	mov 4, A
19
+	call .xIOSetRegister
20
+	pop A
21
+	; Write foreground color
22
+	call .xIOWriteLowHalf
23
+	ret
24
+
25
+; Arguments:
26
+; 	A - background color (4 bit)
27
+; No return
28
+external .xLcdSetBackground:
29
+	push A
30
+	push A
31
+	; Set lcd color register
32
+	mov 4, A
33
+	call .xIOSetRegister
34
+	pop A
35
+	; Swap to get value in high half
36
+	swap A
37
+	; Write background color
38
+	call .xIOWriteHighHalf
39
+	pop A
40
+	ret	
41
+
42
+; Arguments:
43
+; 	A - char to display
44
+; No return
45
+external .xLcdSetChar:
46
+	push A
47
+	; Set lcd char register
48
+	mov 5, A
49
+	call .xIOSetRegister
50
+	pop A
51
+	; Write char
52
+	call .xIOWrite
53
+	ret
54
+
55
+; No arguments
56
+; No return
57
+external .xLcdClear:
58
+	push A
59
+	; Set lcd command register
60
+	mov 6, A
61
+	call .xIOSetRegister
62
+	; Write clear command
63
+	mov 0, A
64
+	call .xIOWriteLowHalf
65
+	pop A
66
+	ret
67
+
68
+; No arguments
69
+; No return
70
+external .xLcdRefresh:
71
+	push A
72
+	; Set lcd command register
73
+	mov 6, A
74
+	call .xIOSetRegister
75
+	; Write refresh command
76
+	mov 1, A
77
+	call .xIOWriteLowHalf
78
+	pop A
79
+	ret
80
+
81
+; No arguments
82
+; No return
83
+external .xLcdScroll:
84
+	push A
85
+	; Set lcd command register
86
+	mov 6, A
87
+	call .xIOSetRegister
88
+	; Write scroll command
89
+	mov 2, A
90
+	call .xIOWriteLowHalf
91
+	pop A
92
+	ret