mirror of
https://github.com/Michaelangel007/apple2_hgr_font_tutorial.git
synced 2024-11-22 03:30:50 +00:00
Fixed hex dump of font so it doesn't beep
This commit is contained in:
parent
3c8eb406a2
commit
9047680030
271
README.md
271
README.md
@ -1,6 +1,6 @@
|
||||
#Apple ]\[ //e HGR Font 6502 Assembly Language Tutorial
|
||||
|
||||
Revision: 40, Jan 26, 2016.
|
||||
Revision: 41, Jan 26, 2016.
|
||||
|
||||
# Table of Contents
|
||||
|
||||
@ -36,6 +36,7 @@ Revision: 40, Jan 26, 2016.
|
||||
* Exercise 1: ScrollHgrUpLine()
|
||||
* Exercise 2: ScrollHgrUpPixel()
|
||||
* Recap
|
||||
* What's Next?
|
||||
* Conclusion
|
||||
* Solutions
|
||||
* Solution 1: ScrollHgrUpLine()
|
||||
@ -445,138 +446,146 @@ Ouch! We're using 1K of our precious 64K. Now we know why all those font glyphs
|
||||
|
||||
### Raw Font Data
|
||||
|
||||
I've saved you the trouble of converting all the pixels to hex. Remember, you may want to **mute your sound** since the Apple will beep at the semi-colon "comments".
|
||||
I've saved you the trouble of converting all the pixels to hex. :-)
|
||||
|
||||
Enter in (or download the raw binary [font.bin](font.bin) and with AppleWin press `F7`, type `bload font.bin,6000`, press `F7`):
|
||||
|
||||
6000:10 08 36 7F 3F 3F 7E 36 ; ^@
|
||||
6008:10 08 36 41 21 21 4A 36 ; ^A
|
||||
6010:00 00 02 06 0E 1E 36 42 ; ^B
|
||||
6018:7F 22 14 08 08 14 2A 7F ; ^C
|
||||
6020:00 40 20 11 0A 04 04 00 ; ^D
|
||||
6028:7F 3F 5F 6C 75 7B 7B 7F ; ^E
|
||||
6030:70 60 7E 31 79 30 3F 02 ; ^F
|
||||
6038:00 18 07 00 07 0C 08 70 ; ^G
|
||||
6040:08 04 02 7F 02 04 08 00 ; ^H
|
||||
6048:00 00 00 00 00 00 00 2A ; ^I
|
||||
6050:08 08 08 08 49 2A 1C 08 ; ^J
|
||||
6058:08 1C 2A 49 08 08 08 08 ; ^K
|
||||
6060:7F 00 00 00 00 00 00 00 ; ^L
|
||||
6068:40 40 40 44 46 7F 06 04 ; ^M
|
||||
6070:3F 3F 3F 3F 3F 3F 3F 3F ; ^N
|
||||
6078:13 18 1C 7E 1C 18 10 6F ; ^O
|
||||
6080:64 0C 1C 3F 1C 0C 04 7B ; ^P
|
||||
6088:40 48 08 7F 3E 1C 48 40 ; ^Q
|
||||
6090:40 48 1C 3E 7E 08 48 40 ; ^R
|
||||
6098:00 00 00 7F 00 00 00 00 ; ^S
|
||||
60A0:01 01 01 01 01 01 01 7F ; ^T
|
||||
60A8:08 10 20 7F 20 10 08 00 ; ^U
|
||||
60B0:2A 55 2A 55 2A 55 2A 55 ; ^V
|
||||
60B8:55 2A 55 2A 55 2A 55 2A ; ^W
|
||||
60C0:00 3E 41 01 01 01 7F 00 ; ^X
|
||||
60C8:00 00 3F 40 40 40 7F 00 ; ^Y
|
||||
60D0:40 40 40 40 40 40 40 40 ; ^Z
|
||||
60D8:08 1C 3E 7F 3E 1C 08 00 ; ^[
|
||||
60E0:7F 00 00 00 00 00 00 7F ; ^\
|
||||
60E8:14 14 77 00 77 14 14 00 ; ^]
|
||||
60F0:7F 40 40 4C 4C 40 40 7F ; ^^
|
||||
60F8:01 01 01 01 01 01 01 01 ; ^_
|
||||
6100:00 00 00 00 00 00 00 00 ;
|
||||
6108:08 08 08 08 08 00 08 00 ; !
|
||||
6110:14 14 14 00 00 00 00 00 ; "
|
||||
6118:14 14 3E 14 3E 14 14 00 ; #
|
||||
6120:08 3C 0A 1C 28 1E 08 00 ; $
|
||||
6128:06 26 10 08 04 32 30 00 ; %
|
||||
6130:04 0A 0A 04 2A 12 2C 00 ; &
|
||||
6138:08 08 08 00 00 00 00 00 ; '
|
||||
6140:08 04 02 02 02 04 08 00 ; (
|
||||
6148:08 10 20 20 20 10 08 00 ; )
|
||||
6150:08 2A 1C 08 1C 2A 08 00 ; *
|
||||
6158:00 08 08 3E 08 08 00 00 ; +
|
||||
6160:00 00 00 00 08 08 04 00 ; ,
|
||||
6168:00 00 00 3E 00 00 00 00 ; -
|
||||
6170:00 00 00 00 00 00 08 00 ; .
|
||||
6178:00 20 10 08 04 02 00 00 ; /
|
||||
6180:1C 22 32 2A 26 22 1C 00 ; 0
|
||||
6188:08 0C 08 08 08 08 1C 00 ; 1
|
||||
6190:1C 22 20 18 04 02 3E 00 ; 2
|
||||
6198:3E 20 10 18 20 22 1C 00 ; 3
|
||||
61A0:10 18 14 12 3E 10 10 00 ; 4
|
||||
61A8:3E 02 1E 20 20 22 1C 00 ; 5
|
||||
61B0:38 04 02 1E 22 22 1C 00 ; 6
|
||||
61B8:3E 20 10 08 04 04 04 00 ; 7
|
||||
61C0:1C 22 22 1C 22 22 1C 00 ; 8
|
||||
61C8:1C 22 22 3C 20 10 0E 00 ; 9
|
||||
61D0:00 00 08 00 08 00 00 00 ; :
|
||||
61D8:00 00 08 00 08 08 04 00 ; ;
|
||||
61E0:10 08 04 02 04 08 10 00 ; <
|
||||
61E8:00 00 3E 00 3E 00 00 00 ; =
|
||||
61F0:04 08 10 20 10 08 04 00 ; >
|
||||
61F8:1C 22 10 08 08 00 08 00 ; ?
|
||||
6200:1C 22 2A 3A 1A 02 3C 00 ; @
|
||||
6208:08 14 22 22 3E 22 22 00 ; A
|
||||
6210:1E 22 22 1E 22 22 1E 00 ; B
|
||||
6218:1C 22 02 02 02 22 1C 00 ; C
|
||||
6220:1E 22 22 22 22 22 1E 00 ; D
|
||||
6228:3E 02 02 1E 02 02 3E 00 ; E
|
||||
6230:3E 02 02 1E 02 02 02 00 ; F
|
||||
6238:3C 02 02 02 32 22 3C 00 ; G
|
||||
6240:22 22 22 3E 22 22 22 00 ; H
|
||||
6248:1C 08 08 08 08 08 1C 00 ; I
|
||||
6250:20 20 20 20 20 22 1C 00 ; J
|
||||
6258:22 12 0A 06 0A 12 22 00 ; K
|
||||
6260:02 02 02 02 02 02 3E 00 ; L
|
||||
6268:22 36 2A 2A 22 22 22 00 ; M
|
||||
6270:22 22 26 2A 32 22 22 00 ; N
|
||||
6278:1C 22 22 22 22 22 1C 00 ; O
|
||||
6280:1E 22 22 1E 02 02 02 00 ; P
|
||||
6288:1C 22 22 22 2A 12 2C 00 ; Q
|
||||
6290:1E 22 22 1E 0A 12 22 00 ; R
|
||||
6298:1C 22 02 1C 20 22 1C 00 ; S
|
||||
62A0:3E 08 08 08 08 08 08 00 ; T
|
||||
62A8:22 22 22 22 22 22 1C 00 ; U
|
||||
62B0:22 22 22 22 22 14 08 00 ; V
|
||||
62B8:22 22 22 2A 2A 36 22 00 ; W
|
||||
62C0:22 22 14 08 14 22 22 00 ; X
|
||||
62C8:22 22 14 08 08 08 08 00 ; Y
|
||||
62D0:3E 20 10 08 04 02 3E 00 ; Z
|
||||
62D8:3E 06 06 06 06 06 3E 00 ; [
|
||||
62E0:00 02 04 08 10 20 00 00 ; \
|
||||
62E8:3E 30 30 30 30 30 3E 00 ; ]
|
||||
62F0:00 00 08 14 22 00 00 00 ; ^
|
||||
62F8:00 00 00 00 00 00 00 7F ; _
|
||||
6300:04 08 10 00 00 00 00 00 ; `
|
||||
6308:00 00 1C 20 3C 22 3C 00 ; a
|
||||
6310:02 02 1E 22 22 22 1E 00 ; b
|
||||
6318:00 00 3C 02 02 02 3C 00 ; c
|
||||
6320:20 20 3C 22 22 22 3C 00 ; d
|
||||
6328:00 00 1C 22 3E 02 3C 00 ; e
|
||||
6330:18 24 04 1E 04 04 04 00 ; f
|
||||
6338:00 00 1C 22 22 3C 20 1C ; g
|
||||
6340:02 02 1E 22 22 22 22 00 ; h
|
||||
6348:08 00 0C 08 08 08 1C 00 ; i
|
||||
6350:10 00 18 10 10 10 12 0C ; j
|
||||
6358:02 02 22 12 0E 12 22 00 ; k
|
||||
6360:0C 08 08 08 08 08 1C 00 ; l
|
||||
6368:00 00 36 2A 2A 2A 22 00 ; m
|
||||
6370:00 00 1E 22 22 22 22 00 ; n
|
||||
6378:00 00 1C 22 22 22 1C 00 ; o
|
||||
6380:00 00 1E 22 22 1E 02 02 ; p
|
||||
6388:00 00 3C 22 22 3C 20 20 ; q
|
||||
6390:00 00 3A 06 02 02 02 00 ; r
|
||||
6398:00 00 3C 02 1C 20 1E 00 ; s
|
||||
63A0:04 04 1E 04 04 24 18 00 ; t
|
||||
63A8:00 00 22 22 22 32 2C 00 ; u
|
||||
63B0:00 00 22 22 22 14 08 00 ; v
|
||||
63B8:00 00 22 22 2A 2A 36 00 ; w
|
||||
63C0:00 00 22 14 08 14 22 00 ; x
|
||||
63C8:00 00 22 22 22 3C 20 1C ; y
|
||||
63D0:00 00 3E 10 08 04 3E 00 ; z
|
||||
63D8:38 0C 0C 06 0C 0C 38 00 ; {
|
||||
63E0:08 08 08 08 08 08 08 08 ; |
|
||||
63E8:0E 18 18 30 18 18 0E 00 ; }
|
||||
63F0:2C 1A 00 00 00 00 00 00 ; ~
|
||||
63F8:00 2A 14 2A 14 2A 00 00 ;
|
||||
```
|
||||
6000:10 08 36 7F 3F 3F 7E 36 '@'^
|
||||
6008:10 08 36 41 21 21 4A 36 'A'^
|
||||
6010:00 00 02 06 0E 1E 36 42 'B'^
|
||||
6018:7F 22 14 08 08 14 2A 7F 'C'^
|
||||
6020:00 40 20 11 0A 04 04 00 'D'^
|
||||
6028:7F 3F 5F 6C 75 7B 7B 7F 'E'^
|
||||
6030:70 60 7E 31 79 30 3F 02 'F'^
|
||||
6038:00 18 07 00 07 0C 08 70 'G'^
|
||||
6040:08 04 02 7F 02 04 08 00 'H'^
|
||||
6048:00 00 00 00 00 00 00 2A 'I'^
|
||||
6050:08 08 08 08 49 2A 1C 08 'J'^
|
||||
6058:08 1C 2A 49 08 08 08 08 'K'^
|
||||
6060:7F 00 00 00 00 00 00 00 'L'^
|
||||
6068:40 40 40 44 46 7F 06 04 'M'^
|
||||
6070:3F 3F 3F 3F 3F 3F 3F 3F 'N'^
|
||||
6078:13 18 1C 7E 1C 18 10 6F 'O'^
|
||||
6080:64 0C 1C 3F 1C 0C 04 7B 'P'^
|
||||
6088:40 48 08 7F 3E 1C 48 40 'Q'^
|
||||
6090:40 48 1C 3E 7E 08 48 40 'R'^
|
||||
6098:00 00 00 7F 00 00 00 00 'S'^
|
||||
60A0:01 01 01 01 01 01 01 7F 'T'^
|
||||
60A8:08 10 20 7F 20 10 08 00 'U'^
|
||||
60B0:2A 55 2A 55 2A 55 2A 55 'V'^
|
||||
60B8:55 2A 55 2A 55 2A 55 2A 'W'^
|
||||
60C0:00 3E 41 01 01 01 7F 00 'X'^
|
||||
60C8:00 00 3F 40 40 40 7F 00 'Y'^
|
||||
60D0:40 40 40 40 40 40 40 40 'Z'^
|
||||
60D8:08 1C 3E 7F 3E 1C 08 00 '['^
|
||||
60E0:7F 00 00 00 00 00 00 7F '\'^
|
||||
60E8:14 14 77 00 77 14 14 00 ']'^
|
||||
60F0:7F 40 40 4C 4C 40 40 7F '^'^
|
||||
60F8:01 01 01 01 01 01 01 01 '_'^
|
||||
6100:00 00 00 00 00 00 00 00 '
|
||||
6108:08 08 08 08 08 00 08 00 '!
|
||||
6110:14 14 14 00 00 00 00 00 '"
|
||||
6118:14 14 3E 14 3E 14 14 00 '#
|
||||
6120:08 3C 0A 1C 28 1E 08 00 '$
|
||||
6128:06 26 10 08 04 32 30 00 '%
|
||||
6130:04 0A 0A 04 2A 12 2C 00 '&
|
||||
6138:08 08 08 00 00 00 00 00 ''
|
||||
6140:08 04 02 02 02 04 08 00 '(
|
||||
6148:08 10 20 20 20 10 08 00 ')
|
||||
6150:08 2A 1C 08 1C 2A 08 00 '*
|
||||
6158:00 08 08 3E 08 08 00 00 '+
|
||||
6160:00 00 00 00 08 08 04 00 ',
|
||||
6168:00 00 00 3E 00 00 00 00 '-
|
||||
6170:00 00 00 00 00 00 08 00 '.
|
||||
6178:00 20 10 08 04 02 00 00 '/
|
||||
6180:1C 22 32 2A 26 22 1C 00 '0
|
||||
6188:08 0C 08 08 08 08 1C 00 '1
|
||||
6190:1C 22 20 18 04 02 3E 00 '2
|
||||
6198:3E 20 10 18 20 22 1C 00 '3
|
||||
61A0:10 18 14 12 3E 10 10 00 '4
|
||||
61A8:3E 02 1E 20 20 22 1C 00 '5
|
||||
61B0:38 04 02 1E 22 22 1C 00 '6
|
||||
61B8:3E 20 10 08 04 04 04 00 '7
|
||||
61C0:1C 22 22 1C 22 22 1C 00 '8
|
||||
61C8:1C 22 22 3C 20 10 0E 00 '9
|
||||
61D0:00 00 08 00 08 00 00 00 ':
|
||||
61D8:00 00 08 00 08 08 04 00 ';
|
||||
61E0:10 08 04 02 04 08 10 00 '<
|
||||
61E8:00 00 3E 00 3E 00 00 00 '=
|
||||
61F0:04 08 10 20 10 08 04 00 '>
|
||||
61F8:1C 22 10 08 08 00 08 00 '?
|
||||
6200:1C 22 2A 3A 1A 02 3C 00 '@
|
||||
6208:08 14 22 22 3E 22 22 00 'A
|
||||
6210:1E 22 22 1E 22 22 1E 00 'B
|
||||
6218:1C 22 02 02 02 22 1C 00 'C
|
||||
6220:1E 22 22 22 22 22 1E 00 'D
|
||||
6228:3E 02 02 1E 02 02 3E 00 'E
|
||||
6230:3E 02 02 1E 02 02 02 00 'F
|
||||
6238:3C 02 02 02 32 22 3C 00 'G
|
||||
6240:22 22 22 3E 22 22 22 00 'H
|
||||
6248:1C 08 08 08 08 08 1C 00 'I
|
||||
6250:20 20 20 20 20 22 1C 00 'J
|
||||
6258:22 12 0A 06 0A 12 22 00 'K
|
||||
6260:02 02 02 02 02 02 3E 00 'L
|
||||
6268:22 36 2A 2A 22 22 22 00 'M
|
||||
6270:22 22 26 2A 32 22 22 00 'N
|
||||
6278:1C 22 22 22 22 22 1C 00 'O
|
||||
6280:1E 22 22 1E 02 02 02 00 'P
|
||||
6288:1C 22 22 22 2A 12 2C 00 'Q
|
||||
6290:1E 22 22 1E 0A 12 22 00 'R
|
||||
6298:1C 22 02 1C 20 22 1C 00 'S
|
||||
62A0:3E 08 08 08 08 08 08 00 'T
|
||||
62A8:22 22 22 22 22 22 1C 00 'U
|
||||
62B0:22 22 22 22 22 14 08 00 'V
|
||||
62B8:22 22 22 2A 2A 36 22 00 'W
|
||||
62C0:22 22 14 08 14 22 22 00 'X
|
||||
62C8:22 22 14 08 08 08 08 00 'Y
|
||||
62D0:3E 20 10 08 04 02 3E 00 'Z
|
||||
62D8:3E 06 06 06 06 06 3E 00 '[
|
||||
62E0:00 02 04 08 10 20 00 00 '\
|
||||
62E8:3E 30 30 30 30 30 3E 00 ']
|
||||
62F0:00 00 08 14 22 00 00 00 '^
|
||||
62F8:00 00 00 00 00 00 00 7F '_
|
||||
6300:04 08 10 00 00 00 00 00 '`
|
||||
6308:00 00 1C 20 3C 22 3C 00 'a
|
||||
6310:02 02 1E 22 22 22 1E 00 'b
|
||||
6318:00 00 3C 02 02 02 3C 00 'c
|
||||
6320:20 20 3C 22 22 22 3C 00 'd
|
||||
6328:00 00 1C 22 3E 02 3C 00 'e
|
||||
6330:18 24 04 1E 04 04 04 00 'f
|
||||
6338:00 00 1C 22 22 3C 20 1C 'g
|
||||
6340:02 02 1E 22 22 22 22 00 'h
|
||||
6348:08 00 0C 08 08 08 1C 00 'i
|
||||
6350:10 00 18 10 10 10 12 0C 'j
|
||||
6358:02 02 22 12 0E 12 22 00 'k
|
||||
6360:0C 08 08 08 08 08 1C 00 'l
|
||||
6368:00 00 36 2A 2A 2A 22 00 'm
|
||||
6370:00 00 1E 22 22 22 22 00 'n
|
||||
6378:00 00 1C 22 22 22 1C 00 'o
|
||||
6380:00 00 1E 22 22 1E 02 02 'p
|
||||
6388:00 00 3C 22 22 3C 20 20 'q
|
||||
6390:00 00 3A 06 02 02 02 00 'r
|
||||
6398:00 00 3C 02 1C 20 1E 00 's
|
||||
63A0:04 04 1E 04 04 24 18 00 't
|
||||
63A8:00 00 22 22 22 32 2C 00 'u
|
||||
63B0:00 00 22 22 22 14 08 00 'v
|
||||
63B8:00 00 22 22 2A 2A 36 00 'w
|
||||
63C0:00 00 22 14 08 14 22 00 'x
|
||||
63C8:00 00 22 22 22 3C 20 1C 'y
|
||||
63D0:00 00 3E 10 08 04 3E 00 'z
|
||||
63D8:38 0C 0C 06 0C 0C 38 00 '{
|
||||
63E0:08 08 08 08 08 08 08 08 '|
|
||||
63E8:0E 18 18 30 18 18 0E 00 '}
|
||||
63F0:2C 1A 00 00 00 00 00 00 '~
|
||||
63F8:00 2A 14 2A 14 2A 00 00 '*
|
||||
```
|
||||
|
||||
I also recommend "saving" a copy of this font higher in memory.
|
||||
|
||||
```
|
||||
7000<6000.63FFM
|
||||
```
|
||||
|
||||
(For the advanced user, you can save this: `BSAVE FONT.BIN,A$6000,L$400`)
|
||||
|
||||
@ -2122,6 +2131,8 @@ Here are all the (core) routines we've entered in so far:
|
||||
|
||||
(To save this: `BSAVE CODE_0300.BIN,A$300,L$D0`)
|
||||
|
||||
# What's next?
|
||||
|
||||
What's left? Quite a few things actually:
|
||||
|
||||
* Copy the 80-Column text screen to DHGR (Double High Resolution)
|
||||
|
Loading…
Reference in New Issue
Block a user