mirror of
https://github.com/Michaelangel007/apple2_hgr_font_tutorial.git
synced 2025-02-19 08:30:41 +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
|
#Apple ]\[ //e HGR Font 6502 Assembly Language Tutorial
|
||||||
|
|
||||||
Revision: 40, Jan 26, 2016.
|
Revision: 41, Jan 26, 2016.
|
||||||
|
|
||||||
# Table of Contents
|
# Table of Contents
|
||||||
|
|
||||||
@ -36,6 +36,7 @@ Revision: 40, Jan 26, 2016.
|
|||||||
* Exercise 1: ScrollHgrUpLine()
|
* Exercise 1: ScrollHgrUpLine()
|
||||||
* Exercise 2: ScrollHgrUpPixel()
|
* Exercise 2: ScrollHgrUpPixel()
|
||||||
* Recap
|
* Recap
|
||||||
|
* What's Next?
|
||||||
* Conclusion
|
* Conclusion
|
||||||
* Solutions
|
* Solutions
|
||||||
* Solution 1: ScrollHgrUpLine()
|
* 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
|
### 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`):
|
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
|
6000:10 08 36 7F 3F 3F 7E 36 '@'^
|
||||||
6010:00 00 02 06 0E 1E 36 42 ; ^B
|
6008:10 08 36 41 21 21 4A 36 'A'^
|
||||||
6018:7F 22 14 08 08 14 2A 7F ; ^C
|
6010:00 00 02 06 0E 1E 36 42 'B'^
|
||||||
6020:00 40 20 11 0A 04 04 00 ; ^D
|
6018:7F 22 14 08 08 14 2A 7F 'C'^
|
||||||
6028:7F 3F 5F 6C 75 7B 7B 7F ; ^E
|
6020:00 40 20 11 0A 04 04 00 'D'^
|
||||||
6030:70 60 7E 31 79 30 3F 02 ; ^F
|
6028:7F 3F 5F 6C 75 7B 7B 7F 'E'^
|
||||||
6038:00 18 07 00 07 0C 08 70 ; ^G
|
6030:70 60 7E 31 79 30 3F 02 'F'^
|
||||||
6040:08 04 02 7F 02 04 08 00 ; ^H
|
6038:00 18 07 00 07 0C 08 70 'G'^
|
||||||
6048:00 00 00 00 00 00 00 2A ; ^I
|
6040:08 04 02 7F 02 04 08 00 'H'^
|
||||||
6050:08 08 08 08 49 2A 1C 08 ; ^J
|
6048:00 00 00 00 00 00 00 2A 'I'^
|
||||||
6058:08 1C 2A 49 08 08 08 08 ; ^K
|
6050:08 08 08 08 49 2A 1C 08 'J'^
|
||||||
6060:7F 00 00 00 00 00 00 00 ; ^L
|
6058:08 1C 2A 49 08 08 08 08 'K'^
|
||||||
6068:40 40 40 44 46 7F 06 04 ; ^M
|
6060:7F 00 00 00 00 00 00 00 'L'^
|
||||||
6070:3F 3F 3F 3F 3F 3F 3F 3F ; ^N
|
6068:40 40 40 44 46 7F 06 04 'M'^
|
||||||
6078:13 18 1C 7E 1C 18 10 6F ; ^O
|
6070:3F 3F 3F 3F 3F 3F 3F 3F 'N'^
|
||||||
6080:64 0C 1C 3F 1C 0C 04 7B ; ^P
|
6078:13 18 1C 7E 1C 18 10 6F 'O'^
|
||||||
6088:40 48 08 7F 3E 1C 48 40 ; ^Q
|
6080:64 0C 1C 3F 1C 0C 04 7B 'P'^
|
||||||
6090:40 48 1C 3E 7E 08 48 40 ; ^R
|
6088:40 48 08 7F 3E 1C 48 40 'Q'^
|
||||||
6098:00 00 00 7F 00 00 00 00 ; ^S
|
6090:40 48 1C 3E 7E 08 48 40 'R'^
|
||||||
60A0:01 01 01 01 01 01 01 7F ; ^T
|
6098:00 00 00 7F 00 00 00 00 'S'^
|
||||||
60A8:08 10 20 7F 20 10 08 00 ; ^U
|
60A0:01 01 01 01 01 01 01 7F 'T'^
|
||||||
60B0:2A 55 2A 55 2A 55 2A 55 ; ^V
|
60A8:08 10 20 7F 20 10 08 00 'U'^
|
||||||
60B8:55 2A 55 2A 55 2A 55 2A ; ^W
|
60B0:2A 55 2A 55 2A 55 2A 55 'V'^
|
||||||
60C0:00 3E 41 01 01 01 7F 00 ; ^X
|
60B8:55 2A 55 2A 55 2A 55 2A 'W'^
|
||||||
60C8:00 00 3F 40 40 40 7F 00 ; ^Y
|
60C0:00 3E 41 01 01 01 7F 00 'X'^
|
||||||
60D0:40 40 40 40 40 40 40 40 ; ^Z
|
60C8:00 00 3F 40 40 40 7F 00 'Y'^
|
||||||
60D8:08 1C 3E 7F 3E 1C 08 00 ; ^[
|
60D0:40 40 40 40 40 40 40 40 'Z'^
|
||||||
60E0:7F 00 00 00 00 00 00 7F ; ^\
|
60D8:08 1C 3E 7F 3E 1C 08 00 '['^
|
||||||
60E8:14 14 77 00 77 14 14 00 ; ^]
|
60E0:7F 00 00 00 00 00 00 7F '\'^
|
||||||
60F0:7F 40 40 4C 4C 40 40 7F ; ^^
|
60E8:14 14 77 00 77 14 14 00 ']'^
|
||||||
60F8:01 01 01 01 01 01 01 01 ; ^_
|
60F0:7F 40 40 4C 4C 40 40 7F '^'^
|
||||||
6100:00 00 00 00 00 00 00 00 ;
|
60F8:01 01 01 01 01 01 01 01 '_'^
|
||||||
6108:08 08 08 08 08 00 08 00 ; !
|
6100:00 00 00 00 00 00 00 00 '
|
||||||
6110:14 14 14 00 00 00 00 00 ; "
|
6108:08 08 08 08 08 00 08 00 '!
|
||||||
6118:14 14 3E 14 3E 14 14 00 ; #
|
6110:14 14 14 00 00 00 00 00 '"
|
||||||
6120:08 3C 0A 1C 28 1E 08 00 ; $
|
6118:14 14 3E 14 3E 14 14 00 '#
|
||||||
6128:06 26 10 08 04 32 30 00 ; %
|
6120:08 3C 0A 1C 28 1E 08 00 '$
|
||||||
6130:04 0A 0A 04 2A 12 2C 00 ; &
|
6128:06 26 10 08 04 32 30 00 '%
|
||||||
6138:08 08 08 00 00 00 00 00 ; '
|
6130:04 0A 0A 04 2A 12 2C 00 '&
|
||||||
6140:08 04 02 02 02 04 08 00 ; (
|
6138:08 08 08 00 00 00 00 00 ''
|
||||||
6148:08 10 20 20 20 10 08 00 ; )
|
6140:08 04 02 02 02 04 08 00 '(
|
||||||
6150:08 2A 1C 08 1C 2A 08 00 ; *
|
6148:08 10 20 20 20 10 08 00 ')
|
||||||
6158:00 08 08 3E 08 08 00 00 ; +
|
6150:08 2A 1C 08 1C 2A 08 00 '*
|
||||||
6160:00 00 00 00 08 08 04 00 ; ,
|
6158:00 08 08 3E 08 08 00 00 '+
|
||||||
6168:00 00 00 3E 00 00 00 00 ; -
|
6160:00 00 00 00 08 08 04 00 ',
|
||||||
6170:00 00 00 00 00 00 08 00 ; .
|
6168:00 00 00 3E 00 00 00 00 '-
|
||||||
6178:00 20 10 08 04 02 00 00 ; /
|
6170:00 00 00 00 00 00 08 00 '.
|
||||||
6180:1C 22 32 2A 26 22 1C 00 ; 0
|
6178:00 20 10 08 04 02 00 00 '/
|
||||||
6188:08 0C 08 08 08 08 1C 00 ; 1
|
6180:1C 22 32 2A 26 22 1C 00 '0
|
||||||
6190:1C 22 20 18 04 02 3E 00 ; 2
|
6188:08 0C 08 08 08 08 1C 00 '1
|
||||||
6198:3E 20 10 18 20 22 1C 00 ; 3
|
6190:1C 22 20 18 04 02 3E 00 '2
|
||||||
61A0:10 18 14 12 3E 10 10 00 ; 4
|
6198:3E 20 10 18 20 22 1C 00 '3
|
||||||
61A8:3E 02 1E 20 20 22 1C 00 ; 5
|
61A0:10 18 14 12 3E 10 10 00 '4
|
||||||
61B0:38 04 02 1E 22 22 1C 00 ; 6
|
61A8:3E 02 1E 20 20 22 1C 00 '5
|
||||||
61B8:3E 20 10 08 04 04 04 00 ; 7
|
61B0:38 04 02 1E 22 22 1C 00 '6
|
||||||
61C0:1C 22 22 1C 22 22 1C 00 ; 8
|
61B8:3E 20 10 08 04 04 04 00 '7
|
||||||
61C8:1C 22 22 3C 20 10 0E 00 ; 9
|
61C0:1C 22 22 1C 22 22 1C 00 '8
|
||||||
61D0:00 00 08 00 08 00 00 00 ; :
|
61C8:1C 22 22 3C 20 10 0E 00 '9
|
||||||
61D8:00 00 08 00 08 08 04 00 ; ;
|
61D0:00 00 08 00 08 00 00 00 ':
|
||||||
61E0:10 08 04 02 04 08 10 00 ; <
|
61D8:00 00 08 00 08 08 04 00 ';
|
||||||
61E8:00 00 3E 00 3E 00 00 00 ; =
|
61E0:10 08 04 02 04 08 10 00 '<
|
||||||
61F0:04 08 10 20 10 08 04 00 ; >
|
61E8:00 00 3E 00 3E 00 00 00 '=
|
||||||
61F8:1C 22 10 08 08 00 08 00 ; ?
|
61F0:04 08 10 20 10 08 04 00 '>
|
||||||
6200:1C 22 2A 3A 1A 02 3C 00 ; @
|
61F8:1C 22 10 08 08 00 08 00 '?
|
||||||
6208:08 14 22 22 3E 22 22 00 ; A
|
6200:1C 22 2A 3A 1A 02 3C 00 '@
|
||||||
6210:1E 22 22 1E 22 22 1E 00 ; B
|
6208:08 14 22 22 3E 22 22 00 'A
|
||||||
6218:1C 22 02 02 02 22 1C 00 ; C
|
6210:1E 22 22 1E 22 22 1E 00 'B
|
||||||
6220:1E 22 22 22 22 22 1E 00 ; D
|
6218:1C 22 02 02 02 22 1C 00 'C
|
||||||
6228:3E 02 02 1E 02 02 3E 00 ; E
|
6220:1E 22 22 22 22 22 1E 00 'D
|
||||||
6230:3E 02 02 1E 02 02 02 00 ; F
|
6228:3E 02 02 1E 02 02 3E 00 'E
|
||||||
6238:3C 02 02 02 32 22 3C 00 ; G
|
6230:3E 02 02 1E 02 02 02 00 'F
|
||||||
6240:22 22 22 3E 22 22 22 00 ; H
|
6238:3C 02 02 02 32 22 3C 00 'G
|
||||||
6248:1C 08 08 08 08 08 1C 00 ; I
|
6240:22 22 22 3E 22 22 22 00 'H
|
||||||
6250:20 20 20 20 20 22 1C 00 ; J
|
6248:1C 08 08 08 08 08 1C 00 'I
|
||||||
6258:22 12 0A 06 0A 12 22 00 ; K
|
6250:20 20 20 20 20 22 1C 00 'J
|
||||||
6260:02 02 02 02 02 02 3E 00 ; L
|
6258:22 12 0A 06 0A 12 22 00 'K
|
||||||
6268:22 36 2A 2A 22 22 22 00 ; M
|
6260:02 02 02 02 02 02 3E 00 'L
|
||||||
6270:22 22 26 2A 32 22 22 00 ; N
|
6268:22 36 2A 2A 22 22 22 00 'M
|
||||||
6278:1C 22 22 22 22 22 1C 00 ; O
|
6270:22 22 26 2A 32 22 22 00 'N
|
||||||
6280:1E 22 22 1E 02 02 02 00 ; P
|
6278:1C 22 22 22 22 22 1C 00 'O
|
||||||
6288:1C 22 22 22 2A 12 2C 00 ; Q
|
6280:1E 22 22 1E 02 02 02 00 'P
|
||||||
6290:1E 22 22 1E 0A 12 22 00 ; R
|
6288:1C 22 22 22 2A 12 2C 00 'Q
|
||||||
6298:1C 22 02 1C 20 22 1C 00 ; S
|
6290:1E 22 22 1E 0A 12 22 00 'R
|
||||||
62A0:3E 08 08 08 08 08 08 00 ; T
|
6298:1C 22 02 1C 20 22 1C 00 'S
|
||||||
62A8:22 22 22 22 22 22 1C 00 ; U
|
62A0:3E 08 08 08 08 08 08 00 'T
|
||||||
62B0:22 22 22 22 22 14 08 00 ; V
|
62A8:22 22 22 22 22 22 1C 00 'U
|
||||||
62B8:22 22 22 2A 2A 36 22 00 ; W
|
62B0:22 22 22 22 22 14 08 00 'V
|
||||||
62C0:22 22 14 08 14 22 22 00 ; X
|
62B8:22 22 22 2A 2A 36 22 00 'W
|
||||||
62C8:22 22 14 08 08 08 08 00 ; Y
|
62C0:22 22 14 08 14 22 22 00 'X
|
||||||
62D0:3E 20 10 08 04 02 3E 00 ; Z
|
62C8:22 22 14 08 08 08 08 00 'Y
|
||||||
62D8:3E 06 06 06 06 06 3E 00 ; [
|
62D0:3E 20 10 08 04 02 3E 00 'Z
|
||||||
62E0:00 02 04 08 10 20 00 00 ; \
|
62D8:3E 06 06 06 06 06 3E 00 '[
|
||||||
62E8:3E 30 30 30 30 30 3E 00 ; ]
|
62E0:00 02 04 08 10 20 00 00 '\
|
||||||
62F0:00 00 08 14 22 00 00 00 ; ^
|
62E8:3E 30 30 30 30 30 3E 00 ']
|
||||||
62F8:00 00 00 00 00 00 00 7F ; _
|
62F0:00 00 08 14 22 00 00 00 '^
|
||||||
6300:04 08 10 00 00 00 00 00 ; `
|
62F8:00 00 00 00 00 00 00 7F '_
|
||||||
6308:00 00 1C 20 3C 22 3C 00 ; a
|
6300:04 08 10 00 00 00 00 00 '`
|
||||||
6310:02 02 1E 22 22 22 1E 00 ; b
|
6308:00 00 1C 20 3C 22 3C 00 'a
|
||||||
6318:00 00 3C 02 02 02 3C 00 ; c
|
6310:02 02 1E 22 22 22 1E 00 'b
|
||||||
6320:20 20 3C 22 22 22 3C 00 ; d
|
6318:00 00 3C 02 02 02 3C 00 'c
|
||||||
6328:00 00 1C 22 3E 02 3C 00 ; e
|
6320:20 20 3C 22 22 22 3C 00 'd
|
||||||
6330:18 24 04 1E 04 04 04 00 ; f
|
6328:00 00 1C 22 3E 02 3C 00 'e
|
||||||
6338:00 00 1C 22 22 3C 20 1C ; g
|
6330:18 24 04 1E 04 04 04 00 'f
|
||||||
6340:02 02 1E 22 22 22 22 00 ; h
|
6338:00 00 1C 22 22 3C 20 1C 'g
|
||||||
6348:08 00 0C 08 08 08 1C 00 ; i
|
6340:02 02 1E 22 22 22 22 00 'h
|
||||||
6350:10 00 18 10 10 10 12 0C ; j
|
6348:08 00 0C 08 08 08 1C 00 'i
|
||||||
6358:02 02 22 12 0E 12 22 00 ; k
|
6350:10 00 18 10 10 10 12 0C 'j
|
||||||
6360:0C 08 08 08 08 08 1C 00 ; l
|
6358:02 02 22 12 0E 12 22 00 'k
|
||||||
6368:00 00 36 2A 2A 2A 22 00 ; m
|
6360:0C 08 08 08 08 08 1C 00 'l
|
||||||
6370:00 00 1E 22 22 22 22 00 ; n
|
6368:00 00 36 2A 2A 2A 22 00 'm
|
||||||
6378:00 00 1C 22 22 22 1C 00 ; o
|
6370:00 00 1E 22 22 22 22 00 'n
|
||||||
6380:00 00 1E 22 22 1E 02 02 ; p
|
6378:00 00 1C 22 22 22 1C 00 'o
|
||||||
6388:00 00 3C 22 22 3C 20 20 ; q
|
6380:00 00 1E 22 22 1E 02 02 'p
|
||||||
6390:00 00 3A 06 02 02 02 00 ; r
|
6388:00 00 3C 22 22 3C 20 20 'q
|
||||||
6398:00 00 3C 02 1C 20 1E 00 ; s
|
6390:00 00 3A 06 02 02 02 00 'r
|
||||||
63A0:04 04 1E 04 04 24 18 00 ; t
|
6398:00 00 3C 02 1C 20 1E 00 's
|
||||||
63A8:00 00 22 22 22 32 2C 00 ; u
|
63A0:04 04 1E 04 04 24 18 00 't
|
||||||
63B0:00 00 22 22 22 14 08 00 ; v
|
63A8:00 00 22 22 22 32 2C 00 'u
|
||||||
63B8:00 00 22 22 2A 2A 36 00 ; w
|
63B0:00 00 22 22 22 14 08 00 'v
|
||||||
63C0:00 00 22 14 08 14 22 00 ; x
|
63B8:00 00 22 22 2A 2A 36 00 'w
|
||||||
63C8:00 00 22 22 22 3C 20 1C ; y
|
63C0:00 00 22 14 08 14 22 00 'x
|
||||||
63D0:00 00 3E 10 08 04 3E 00 ; z
|
63C8:00 00 22 22 22 3C 20 1C 'y
|
||||||
63D8:38 0C 0C 06 0C 0C 38 00 ; {
|
63D0:00 00 3E 10 08 04 3E 00 'z
|
||||||
63E0:08 08 08 08 08 08 08 08 ; |
|
63D8:38 0C 0C 06 0C 0C 38 00 '{
|
||||||
63E8:0E 18 18 30 18 18 0E 00 ; }
|
63E0:08 08 08 08 08 08 08 08 '|
|
||||||
63F0:2C 1A 00 00 00 00 00 00 ; ~
|
63E8:0E 18 18 30 18 18 0E 00 '}
|
||||||
63F8:00 2A 14 2A 14 2A 00 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`)
|
(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`)
|
(To save this: `BSAVE CODE_0300.BIN,A$300,L$D0`)
|
||||||
|
|
||||||
|
# What's next?
|
||||||
|
|
||||||
What's left? Quite a few things actually:
|
What's left? Quite a few things actually:
|
||||||
|
|
||||||
* Copy the 80-Column text screen to DHGR (Double High Resolution)
|
* Copy the 80-Column text screen to DHGR (Double High Resolution)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user