Jump to content

Page:NBS Technical Note 11176 (1983) (IAutilityprogramsf1176dick).djvu/28

From Wikisource
This page has been proofread, but needs to be validated.
3000  TEXT : HOME : PRINT : PRINT "*ROUTINES TO MODIFY A HERSHY FONT": PRINT
     : PRINT  TAB( 10))"FONTNAME:";N$
3010  PRINT : PRINT  TAB( 5);"YOU MAY...": PRINT : PRINT  TAB( 5);"1.APPEN
     D TO A FONT"
3020  PRINT : PRINT  TAB( 5);".INSERT IN THE MIDDLE OF A FONT": PRINT : PRINT
      TAB( 5);"3.REPLACE A CHARACTER"
3030  PRINT : PRINT TAB( 5);"4. REMOVE A CHARACTER": PRINT : PRINT TAB( 5
     );"5. EXIT"
3040  PRINT : PRINT BELL$; TAB( 5); "WHICH";: INPUT C
3050  IF C < 1 OR C > 5 3000
3060  IF C = 5 THEN FI = 0 :L = LMAX: GOTO 4000
3070  IF FI =0  THEN FI=1 : GOSUB 4000: GOTO 3090
3080  IF FI AND C > 1 THEN GOSUB 4010
3090  ON C GOTO 3100,3110,3110,3110 
3100 FI = 0:C = 0:L= LMAX: TEXT : HOME : GOTO 1000
3110  IF MF THEN  GOSUB 11000
3120  VTAB (21): PRINT "NOTE...FIRST CHARACTER IS NO.0"
3130  PRINT BELL$;"LOCATION TO ";
3140  ON C -1 GOTO 3150,3200,3230
3150  PRINT "INSERT";: INPUT LO: IF LO < 0 LO > LMAX THEN  PRINT BELL$;
     "OUT OF RANGE": GOTO 3130
3160 LMAX = LMAX + 1
3170  FOR K = LMAX TO LO + 1 STEP -1: X$(K) = X$(K - 1): NEXT K
3180  FOR L = LO + 1 TO LMAX : GOSUB 6000: NEXT : GOSUB 11000
3190  GOTO 3220
3200  PRINT "REPLACE";: INPUT LO: IF LO < 0 OR LO > LMAX - 1 THEN PRINT B
     ELL$! "OUT OF RANGE": GOTO 3130
3210  GOSUB 11000
3220 L = LO: TEXT : HOME : GOSUB 1010:EF = 0 : GOSUB 600: GOTO 3000
3230  PRINT "DELETE";: INPUT LO: IF LO < 0 OR LO > LMAX THEN  PRINT BELL$;
     "OUT OF RANGE": GOTO 3130
3240 LMAX = LMAX - 1
3250  FOR K = LO TO LMAX:X$(K) = X$(K + 1): NEXT
3260  FOR L = LO TO LMAX: GOSUB 6000: NEXT : GOSUB 11000: GOTO 3000
4000  GOSUB 7000: REM  GET FONT AND DISPLAY IT
4010  HGR : IF MF = 0 THEN  FOR L = 0 TO LMAX: HTAB (12): VTAB (24): PRINT
     "CHAR.NO.";L: GOSUB 6000: NEXT L: GOSUB 11000: GOTO 4030
4020  GOSUB 11000: IF N$ = O$ THEN GOSUB 11000
4030  IF FI THEN RETURN
4040  VTAB (21): HTAB (10): PRINT N$
4050  PRINT BELL$;"WRITE TO DISK <W> OR RETURN TO MENU <M>;: GET A$: PRINT
     A$: IF A$ <  > "W" AND AS < > "M" THEN 4050
4080  IF A$ = "W" THEN 2000
4070  TEXT : HOME : GOTO 100
5000  TEXT : HOME : PRINT : PRINT "*ROUTINE TO EDIT INDIVIDUAL CHARACTERS"
5010  PRINT : PRINT "YOU WILL FIRST BE SHOWN ENTIRE FONT     AND THEN ASKE
     D TO CHOOSE THE CHARACTER TO EDIT."
5020  PRINT : PRINT "THE CHARACTER WILL BE DRAWN AS IS AND   THEN YOU CAN
     REDRAW IT BY EITHER INPUT- TING HERSHEY VECTORS OR BY USING THE    ED
     ITING KEYS."
5030  PRINT BELL$: PRINT "READY?";: GET A$! PRINT A$! IF A$ <  > Y" THEN
     5000
5040 FI = 1: GOSUB 4000:FI = 0
5050  VTAB (24)
5050  PRINT BELL$;"NOTE...FIRST CHARACTER IS NO.0": INPUT "CHARACTER NO. T
     O EDIT?";L: PRINT : IF L < 0 OR L > LMAX - 1 THEN  PRINT BELL$;"OUT O
     F RANGE": GOTO 5060
5070  PRINT : GOSUB 8000:X$ = "": PRINT  TAB( 13);"OLD CHARACTER"
5080 W = ASC  ( LEFT$ (X$(L),1)) - 93:XF = W -  INT  (W / 2):XT = -  INT (

19