forked from MPETREMANN11/eForth-Web
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsprites.txt
198 lines (167 loc) · 5.23 KB
/
sprites.txt
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
\ *********************************************************************
\ SPRITES for ESP32forth & uEforth
\ Filename: sprites.txt
\ Date: 15 jan 2023
\ Updated: 15 jan 2023
\ File Version: 1.1
\ MCU: ESP32-WROOM-32 / uEforth Windows
\ Forth: ESP32forth all versions 7...++ / uEforth
\ Copyright: Marc PETREMANN
\ Author: Marc PETREMANN
\ GNU General Public License
\ *********************************************************************
\ tool for displaying characters
: tableChars ( -- )
base @ >r hex
128 32 do
16 0 do
j i + dup . space emit space space
loop
cr
16 +loop
256 160 do
16 0 do
j i + dup . space emit space space
loop
cr
16 +loop
cr
r> base !
;
\ tableChars \ display characters table
\ define cARRAY as bi dimensionnal array
structures
struct cARRAY
i8 field >width
i8 field >height
i8 field >content
create myVscreen \ define a screen 8x32 bytes
32 c, \ compile width
08 c, \ compile height
myVscreen >width c@
myVscreen >height c@ * allot
\ SPRITES definition word
: sprite: ( width height -- )
create
swap c, c, \ compile width and height
does>
;
2 1 sprite: blackChars
$db c, $db c,
2 1 sprite: greyChars
$b2 c, $b2 c,
blackChars >content 2 type \ display content of sprite blackChars
\ define 5 x 7 sprites:
2 7 sprite: dot
$20 c, $20 c,
$20 c, $20 c,
$20 c, $20 c,
$20 c, $20 c,
$20 c, $20 c,
$20 c, $20 c,
$db c, $db c,
5 7 sprite: char0
$20 c, $db c, $db c, $db c, $20 c,
$db c, $20 c, $20 c, $20 c, $db c,
$db c, $20 c, $20 c, $20 c, $db c,
$db c, $20 c, $20 c, $20 c, $db c,
$db c, $20 c, $20 c, $20 c, $db c,
$db c, $20 c, $20 c, $20 c, $db c,
$20 c, $db c, $db c, $db c, $20 c,
3 7 sprite: char1
$20 c, $db c, $20 c,
$db c, $db c, $20 c,
$20 c, $db c, $20 c,
$20 c, $db c, $20 c,
$20 c, $db c, $20 c,
$20 c, $db c, $20 c,
$db c, $db c, $db c,
5 7 sprite: char2
$20 c, $db c, $db c, $db c, $20 c,
$db c, $20 c, $20 c, $20 c, $db c,
$20 c, $20 c, $20 c, $20 c, $db c,
$20 c, $20 c, $20 c, $db c, $20 c,
$20 c, $20 c, $db c, $20 c, $20 c,
$20 c, $db c, $20 c, $20 c, $20 c,
$db c, $db c, $db c, $db c, $db c,
5 7 sprite: char3
$20 c, $db c, $db c, $db c, $20 c,
$db c, $20 c, $20 c, $20 c, $db c,
$20 c, $20 c, $20 c, $20 c, $db c,
$20 c, $db c, $db c, $db c, $20 c,
$20 c, $20 c, $20 c, $20 c, $db c,
$db c, $20 c, $20 c, $20 c, $db c,
$20 c, $db c, $db c, $db c, $20 c,
5 7 sprite: char4
$20 c, $db c, $20 c, $20 c, $20 c,
$20 c, $db c, $20 c, $20 c, $20 c,
$20 c, $db c, $20 c, $20 c, $20 c,
$db c, $20 c, $20 c, $db c, $20 c,
$db c, $db c, $db c, $db c, $db c,
$20 c, $20 c, $20 c, $db c, $20 c,
$20 c, $20 c, $20 c, $db c, $20 c,
5 7 sprite: char5
$db c, $db c, $db c, $db c, $db c,
$db c, $20 c, $20 c, $20 c, $20 c,
$db c, $20 c, $20 c, $20 c, $20 c,
$db c, $db c, $db c, $db c, $20 c,
$20 c, $20 c, $20 c, $20 c, $db c,
$db c, $20 c, $20 c, $20 c, $db c,
$20 c, $db c, $db c, $db c, $20 c,
5 7 sprite: char6
$20 c, $db c, $db c, $db c, $20 c,
$db c, $20 c, $20 c, $20 c, $db c,
$db c, $20 c, $20 c, $20 c, $20 c,
$db c, $db c, $db c, $db c, $20 c,
$db c, $20 c, $20 c, $20 c, $db c,
$db c, $20 c, $20 c, $20 c, $db c,
$20 c, $db c, $db c, $db c, $20 c,
3 7 sprite: char7
$db c, $db c, $db c,
$20 c, $20 c, $db c,
$20 c, $20 c, $db c,
$20 c, $20 c, $db c,
$20 c, $20 c, $db c,
$20 c, $20 c, $db c,
$20 c, $20 c, $db c,
5 7 sprite: char8
$20 c, $db c, $db c, $db c, $20 c,
$db c, $20 c, $20 c, $20 c, $db c,
$db c, $20 c, $20 c, $20 c, $db c,
$20 c, $db c, $db c, $db c, $20 c,
$db c, $20 c, $20 c, $20 c, $db c,
$db c, $20 c, $20 c, $20 c, $db c,
$20 c, $db c, $db c, $db c, $20 c,
5 7 sprite: char9
$20 c, $db c, $db c, $db c, $20 c,
$db c, $20 c, $20 c, $20 c, $db c,
$db c, $20 c, $20 c, $20 c, $db c,
$20 c, $db c, $db c, $db c, $db c,
$20 c, $20 c, $20 c, $20 c, $db c,
$db c, $20 c, $20 c, $20 c, $db c,
$20 c, $db c, $db c, $db c, $20 c,
: .sprite { xpos ypos sprAddr -- }
sprAddr >height c@ 0 do
xpos ypos at-xy
sprAddr >width c@ i * \ calculate offset in sprite datas
sprAddr >content + \ calculate real address for line n in sprite datas
sprAddr >width c@ type \ display line
1 +to ypos \ increment y position
loop
;
0 constant blackColor
1 constant redColor
4 constant blueColor
blueColor fg
10 02 char3 .sprite
16 02 dot .sprite
19 02 char1 .sprite
23 02 char2 .sprite
29 02 char4 .sprite
35 02 char5 .sprite
41 02 char6 .sprite
47 02 char7 .sprite
51 02 char8 .sprite
57 02 char9 .sprite
63 02 char0 .sprite
7 fg