Skip to content

Instantly share code, notes, and snippets.

@tcjennings
Last active February 9, 2021 00:24
Show Gist options
  • Save tcjennings/359075f7d8f22b67b6b94c8686c7307f to your computer and use it in GitHub Desktop.
Save tcjennings/359075f7d8f22b67b6b94c8686c7307f to your computer and use it in GitHub Desktop.
PRODOS-friendly shape-based font demo using Beagle Brothers proportional font shapes ("ACOMPUTE" from the Apple Mechanic diskette).
1 REM
2 REM PRODOS HI RES DEMO PROGRAM
3 REM USING BEAGLE BROS SHAPE FONT AT $6000
4 REM MODIFIED FROM Apple II High Resolution Character Generator, COMPUTE! June 1981
5 REM
8 LOMEM:28928
10 POKE 232,0: POKE 233,96: REM POKES SHAPE TABLE START ADDRESS
30 PRINT CHR$(4)"BLOAD ACOMPUTE,A$6000" : REM LOADS SHAPE TABLE INTO MEMORY, MATCHES PREVIOUS POKES
40 HOME: HGR2: POKE 49234,0: HCOLOR=3: ROT=0: SCALE=1: REM SETS HIRES GRAPHICS PARAMS, USES PAGE 2 TO HIRES MEMORY
45 REM H AND V ARE MANUAL ATTEMPTS AT CENTERING. NOT SOPHISTICATED.
50 P$ = "THIS DEMO PROGRAM":H=7:V=1: GOSUB 1000
60 P$ = "USES THE HI-RES":H=9:V=4:GOSUB 1000
70 P$ = "CHARACTER GENERATOR":H=5:V=7: GOSUB 1000
80 P$ = "AND SHAPE TABLE": H=9: V=10: GOSUB 1000
90 P$ = "TO PRINT THIS":H=10:V=13: GOSUB 1000
100 P$ = "DISPLAY":H=13:V=16: GOSUB 1000
110 CALL 64780
120 TEXT : HOME : END
1000 X=8*H-7:Y=INT(11*V-8):P=LEN(P$) : REM X AND Y SET START OF EACH LINE ASSUMING CONSTANT CHAR WIDTH
1010 DRAW ASC(MID$(P$,1,1))-31 AT X,Y : REM DRAW FIRST CHARACTER OF LINE AT ABS COORDINATES
1011 REM BEAGLE BROS FONTS ARE PROPORTIONAL AND SHAPE 99 MANAGES KERNING
1012 REM XDRAW 99 MOVES THE "PEN" TO THE START OF THE NEXT CHARACTER.
1015 FOR I=2 TO P : XDRAW 99 : DRAW ASC(MID$(P$,I,1))-31
1020 NEXT I: RETURN
@tcjennings
Copy link
Author

Screen3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment