Browse code

(font.tal) Migrated to AUTO-Y-ADDR

neauoire authored on 16/12/2021 18:46:27
Showing 22 changed files
... ...
@@ -1,4 +1,4 @@
1
-( font )
1
+(  uxnasm projects/examples/demos/font.tal bin/font.rom && uxnemu bin/font.rom )
2 2
 
3 3
 %+  { ADD } %-   { SUB }  %*  { MUL }  %/  { DIV }
4 4
 %<  { LTH } %>   { GTH }  %=  { EQU }  %!  { NEQ }
... ...
@@ -8,10 +8,20 @@
8 8
 %RTN { JMP2r }
9 9
 %TOS { #00 SWP }
10 10
 
11
+%GET-WIDTH { TOS ;font-data ++ LDA }
12
+%GET-GLYPH { TOS #50 SFT2 ;font-data/glyphs ++ }
13
+
14
+%AUTO-NONE { #00 .Screen/auto DEO }
15
+%AUTO-X { #01 .Screen/auto DEO }
16
+%AUTO-Y { #02 .Screen/auto DEO }
17
+%AUTO-ADDR { #04 .Screen/auto DEO }
18
+%AUTO-X-ADDR { #05 .Screen/auto DEO }
19
+%AUTO-Y-ADDR { #06 .Screen/auto DEO }
20
+
11 21
 ( devices )
12 22
 
13 23
 |00 @System  &vector $2 &pad     $6 &r      $2 &g     $2 &b      $2
14
-|20 @Screen  &vector $2 &width   $2 &height $2 &pad   $2 &x      $2 &y      $2 &addr $2 &pixel $1 &sprite $1
24
+|20 @Screen     &vector $2 &width   $2 &height $2 &auto  $1 &pad   $1 &x     $2 &y $2 &addr $2 &pixel $1 &sprite $1
15 25
 |a0 @File    &vector $2 &success $2 &stat   $2 &delete $1 &append $1 &name  $2 &length $2 &read $2 &write $2
16 26
 
17 27
 ( variables )
... ...
@@ -76,41 +86,35 @@ RTN
76 86
 	
77 87
 	STH 
78 88
 	SWP2 .Screen/y DEO2
79
-	SWP2 DUP2 .Screen/x DEO2 SWP2
80
-	&loop
81
-		LDAk 
82
-		DUP #0a ! ,&no-linebreak JCN
83
-			( move down ) STH OVR2 .Screen/x DEO2 STHr
84
-			( incr y ) .Screen/y DEI2 #0010 ++ .Screen/y DEO2 
85
-			POP ,&continue JMP &no-linebreak
86
-		STHkr ,&sprite JSR
89
+	SWP2 .Screen/x DEO2
90
+	AUTO-Y-ADDR
91
+	&while
92
+		LDAk #0a ! ,&no-linebreak JCN
93
+			( reset ) #0020 .Screen/x DEO2
94
+			( down ) .Screen/y DEI2k #0010 ++ ROT DEO2 
95
+			,&continue JMP &no-linebreak
96
+		LDAk STHkr ,&sprite JSR
87 97
 		&continue
88
-		( incr addr ) INC2
89
-		LDAk ,&loop JCN
90
-	POP2 POP2 POPr
98
+		INC2 LDAk ,&while JCN
99
+	POP2 POPr
100
+	AUTO-NONE
91 101
 	RTN
92 102
 
93 103
 	&sprite ( char color -- )
94
-		STH
95
-		( get addr ) STHk TOS #50 SFT2 ;font-data #0100 ++ ++ .Screen/addr DEO2
96
-		( get width ) STHkr TOS ;font-data ++ LDA TOS
97
-		SWPr
98
-			( left-top ) STHkr .Screen/sprite DEO
99
-			.Screen/y DEI2 #0008 ++ .Screen/y DEO2
100
-			.Screen/addr DEI2 #0010 ++ .Screen/addr DEO2
101
-			( left-bottom ) STHkr .Screen/sprite DEO
102
-			.Screen/x DEI2 #0008 ++ .Screen/x DEO2
103
-			.Screen/y DEI2 #0008 -- .Screen/y DEO2
104
-			DUP #0a < ,&thin JCN
105
-			.Screen/addr DEI2 #0008 -- .Screen/addr DEO2
106
-			( right-top )  STHkr .Screen/sprite DEO
107
-			.Screen/addr DEI2 #0010 ++ .Screen/addr DEO2
108
-			.Screen/y DEI2 #0008 ++ .Screen/y DEO2
109
-			( right-bottom ) STHkr .Screen/sprite DEO
110
-			.Screen/y DEI2 #0008 -- .Screen/y DEO2 &thin
111
-		SWPr
112
-		( use width ) .Screen/x DEI2 ++ #0008 -- .Screen/x DEO2
113
-		POPr POPr
104
+		.Screen/x DEI2 STH2 
105
+		.Screen/y DEI2 STH2 
106
+		( glyph ) OVR GET-GLYPH .Screen/addr DEO2
107
+		DUP .Screen/sprite DEOk DEO 
108
+		STH2kr .Screen/y DEO2
109
+		SWP GET-WIDTH 
110
+		DUP #09 < ,&narrow JCN
111
+			.Screen/x DEI2k #0008 ++ ROT DEO2
112
+			OVR .Screen/sprite DEOk DEO 
113
+			STH2kr .Screen/y DEO2
114
+			&narrow
115
+		POP2r
116
+		( width ) TOS STH2r ++ .Screen/x DEO2
117
+		POP
114 118
 	RTN
115 119
 
116 120
 RTN
... ...
@@ -187,4 +191,4 @@ RTN
187 191
 @font-path-small  
188 192
 	"projects/fonts/atari8.uf1 $1
189 193
 
190
-@font-data
191 194
\ No newline at end of file
195
+@font-data $100 &glyphs
192 196
\ No newline at end of file
193 197
Binary files a/projects/fonts/chicago12.uf2 and b/projects/fonts/chicago12.uf2 differ
194 198
new file mode 100644
195 199
Binary files /dev/null and b/projects/fonts/courier12.uf2 differ
196 200
Binary files a/projects/fonts/diamond12.uf2 and b/projects/fonts/diamond12.uf2 differ
197 201
Binary files a/projects/fonts/geneva12.uf2 and b/projects/fonts/geneva12.uf2 differ
198 202
Binary files a/projects/fonts/geneva14.uf2 and b/projects/fonts/geneva14.uf2 differ
199 203
Binary files a/projects/fonts/helvetica12.uf2 and b/projects/fonts/helvetica12.uf2 differ
200 204
Binary files a/projects/fonts/helvetica14.uf2 and b/projects/fonts/helvetica14.uf2 differ
201 205
Binary files a/projects/fonts/losangeles12.uf2 and b/projects/fonts/losangeles12.uf2 differ
202 206
new file mode 100644
203 207
Binary files /dev/null and b/projects/fonts/monaco12.uf2 differ
204 208
new file mode 100644
205 209
Binary files /dev/null and b/projects/fonts/msx816.uf2 differ
206 210
Binary files a/projects/fonts/newyork12.uf2 and b/projects/fonts/newyork12.uf2 differ
207 211
Binary files a/projects/fonts/newyork14.uf2 and b/projects/fonts/newyork14.uf2 differ
208 212
Binary files a/projects/fonts/palatino12.uf2 and b/projects/fonts/palatino12.uf2 differ
209 213
Binary files a/projects/fonts/palatino14.uf2 and b/projects/fonts/palatino14.uf2 differ
210 214
Binary files a/projects/fonts/sans10-bold.uf2 and b/projects/fonts/sans10-bold.uf2 differ
211 215
Binary files a/projects/fonts/sans10-regular.uf2 and b/projects/fonts/sans10-regular.uf2 differ
212 216
Binary files a/projects/fonts/sapphire14.uf2 and b/projects/fonts/sapphire14.uf2 differ
213 217
Binary files a/projects/fonts/terminal12.uf2 and b/projects/fonts/terminal12.uf2 differ
214 218
Binary files a/projects/fonts/times12.uf2 and b/projects/fonts/times12.uf2 differ
215 219
Binary files a/projects/fonts/times15.uf2 and b/projects/fonts/times15.uf2 differ
216 220
Binary files a/projects/fonts/venice14.uf2 and b/projects/fonts/venice14.uf2 differ