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

This page has been proofread, but needs to be validated.
20180  IF  LEN  (R$) = 0 THEN  PRINT BELL$; "ERROR-REINPUT:";" GOTO 20030
20190  RETURN
22000  REM TEXT STRING DECODER
22010  HCOLOR= BC:SIZE = 0:W = 0
22020  PRINT : PRINT : FOR IC = 1 TO LEN (R$)
22030 P$ =  MIDS (R$,IC,1):P =  ASC (P$): IF P = 7 OR P = 19 THEN IC = IC + 
     1:P$ =  MID$ (R$,IC,1)
22040  REM *** MAKE HERSHEY VECTORS ***
22050  IF P$ = "" THEN PRINT BELL$;"ERROR-REINPUT";:R$ = "": GOTO 20030
22060 L =   ASC (P$) - 32
22070  IF (P = 7 OR P = 19) AND) (L > 95) THEN L = L - 128)
22080  IF P=7 THEN L = L + 64
22090  IF P = 19 THEN L = L + 96
22100  IF L > 159 THEN L = L - 96
21110 X$ = X$(L)
21120  IF SIZE = 0 THEN 22000
21130 PF = 03 HCOLOR= FC
21140  FOR G = 2 TO LEN (X$({L)) STEP 2
21150 DX =  ASC ( MID$ (X$(L),G,1)) - 93
21160 DY =  ASC ( MID$ (X$(L),G + 1,1)) -93
21170  IF DX = 34 AND  LEN  (X$(L)) > 4 THEN PF = NOT (PF)
21180  IF DX = 34 THEN G = G - 1: NEXT. G
21190 DX = DX * IW:DY = - DY * IW
22200  IF IV > 0 THEN TEMP = DX:DX = DY:DY =  - TEMP
22210  IF PF THEN HPLOT X,Y TO X + DX,Y + DY
22215  IF PF AND DF THEN HCOLOR= CC:X = X + 1: HPLOT X,Y TO X + DX , Y + DY
     :X = X  -1 
22220 X = X + DX: Y = Y + DY
22230  NEXT G
22240  NEXT IC
22250  FOR I = 1 TO 2000: NEXT : RETURN 
23000 W = W + ( ASC ( LEFTS (X$.!)) - 93) * IW
23010  IF IV = 0 AND X + W > 278 THEN 23040
23020  IF IV > 0 AND Y - W < 2 THEN 23040
23030  NEXT IC:SIZE = 1: IF BF THEN 22020
23032  IF V = 0  THEN, FOR I =  -15 TO  15: HPLOT X - 2, Y + I * IW TO X + 
     2 + W * IW,Y + I * IW: NEXT
23034  IF IV > 0 THEM  FOR i =  -15 TO  15: HPLOT X + I * IW, Y + 2 TO X + 
     I * IW,Y - 2 - W * IW: NEXT
23036  GOTO 22020
23040  TEXT : HOME : PRINT "TEXT TOO LONG...";BELL$;BELL$: GOTO 3020
25000 YU =  FN A(Y - 1):YM =  FN A(Y):YL =  FN A(Y + 1) 
25010 XC =  INT (X / 7 ) - 1 
25020  FOR I = 0 TO 2
25030 U(I) =  PEEK  (YU + XC + I)
25040 M(I) =  PEEK  (YM + XC + I)
25050 L(I) =  PEEK  (YL + XC + I)
25060  NEXT I
25070  RETURN
30000  FOR I = 0 TO 2 
30010  POKE YU + XC + I,U(I)
30020  POKE YM + XC + I,M(I) 
30030  POKE YL + XC + I,L(I)
30040  NEXT I
30050  RETURN
]