16K Cassette or Disk
by E.K. Garringer
Create-A-Font, published in February's ANALOG, issue 16, makes redefining a character set easy enough for a child -- and as entertaining as a game. But, after you have enjoyed creating your own special character set, you may have asked, "What now?"
Font Datamaker makes using your character set as easy as creating it. It does.all the work for you. Here's how to use it.
At this point, Datamaker will read your font file into memory and then ask you to insert your output diskette or tape. Your font will be compared to the ROM internal character set. Only those characters which have been changed will generate data statements for the subroutine. This effectively cuts down the length of the subroutine and the amount of memory required to store your program.
As Datamaker works, it will generate your subroutine and write it to diskette or tape. This process takes about one minute. When complete, Datamaker returns control to BASIC, and the READY prompt appears on the screen.
Note: The disk write process occurs only when the buffer is full. Some drives shut down between writes. Datamaker is not finished until the READY prompt appears!
Font Datamaker generates a subroutine which does all the work required to store and access your redefined character set in memory. To use your subroutine, follow these steps:
As stated in Create-A-Font, a scrolling text window can destroy your character set. If you wish to use a scrolling window, protect your character set by changing Line 340 to:
340 ? #2;LINO;" POKE 106,PEEK(106)-8:G RAPHICS 0:CHSET=(PEEK(106)+4)*256:? "; CHR$(34);"ONE MOMENT";CHR$(34)
If your player will be using Player/Missile Graphics, location 106 must be adjusted to suit your specific application.
You may wish to save the original contents of location 106 to a numeric variable before the GOSUB X [i.e., RTOP=PEEK(106)].
FONTDATA.LST is available in ATASCII format.
10 DATA 165,123,602,514,17,832,344,193 ,894,920,913,992,46,359,569,7483 105 DATA 858,276,390,318,961,405,167,6 5,677,929,781,340,984,461,872,8484 230 DATA 748,115,210,591,358,67,391,51 0,469,638,833,933,105,401,955,7324 380 DATA 500,744,630,963,107,147,393,4 11,218,314,304,763,350,321,101,6266 530 DATA 639,217,565,11,292,621,818,38 5,524,725,4797