Node 514
Character bitmaps.
Source code

514 chars
go 00 @b 2* A table + dup a! 40 and if a right a! !
then @+ !b @ !b go ; 0A
table 0A
0 o, 0 o,
0 38444444 444438 g, 1 10301010 101010 g,
2 38440438 40407C g, 3 38440418 44438 g,
4 4848487C 80808 g, 5 78404078 44438 g,
6 30404078 444438 g, 7 7C040810 202020 g,
8 38444438 444438 g, 9 3844443C 40418 g,
a 3804 3C443C g, b 40407844 444478 g,
c 3C40 40403C g, d 4043C44 44443C g,
e 3844 7C403C g, f 10282070 202020 g,
g BC444444 3C0438 g, h 40407844 444444 g,
i 100030 101038 g, j 90001010 101060 g,
k 40404448 506844 g, l 10101010 101008 g,
m 7854 545454 g, n 5864 444444 g,
o 3844 444438 g, p F8444444 784040 g, 40
init left b! go ; 43
1 d 5 r 0 ether
go 00 @b 2* A table + dup a! 40 and if a right a! !
then @+ !b @ !b go ; 0A
table 0A
0 o, 0 o,
0 38444444 444438 g, 1 10301010 101010 g,
2 38440438 40407C g, 3 38440418 44438 g,
4 4848487C 80808 g, 5 78404078 44438 g,
6 30404078 444438 g, 7 7C040810 202020 g,
8 38444438 444438 g, 9 3844443C 40418 g,
a 3804 3C443C g, b 40407844 444478 g,
c 3C40 40403C g, d 4043C44 44443C g,
e 3844 7C403C g, f 10282070 202020 g,
g BC444444 3C0438 g, h 40407844 444444 g,
i 100030 101038 g, j 90001010 101060 g,
k 40404448 506844 g, l 10101010 101008 g,
m 7854 545454 g, n 5864 444444 g,
o 3844 444438 g, p F8444444 784040 g, 40
init left b! go ; 43
1 d 5 r 0 ether
Definitions
- go
- Fetch a char code, add offset (0A), and if the resulting address is greater than 3F we set A to RIGHT and send the address to node 515. We read two words from either our memory or from 515, and send back to LEFT.
- init
- Set B, and jump to go.
Description
This node contains first part of character bitmaps. Each character is stored as two 18-bit words, in little-endian order. Format of these two words is following:
3 | 3 | 3 | 4 | 4 | 4 | 4 | 4 | 5 | 5 | 5 | 5 | 5 | 6 | 6 | 6 | 6 | 6 |
d | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 3 | 3 |
- d
- Descender bit. If set, the whole bitmap is shifted two double scan lines down.
- nnnnn
- Five bits of each slice. Slices are numbered from the top of the character matrix.
We calculate address of a character bitmap from its code. Since code has been incremented by one in node 513, the table begins with a space, i.e. empty bitmap. If this address overflows RAM size, we use it in node 515.