home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib14.dsk / PRETTYLISTER.bas < prev    next >
BASIC Source File  |  2023-02-26  |  3KB  |  41 lines

  1. 10  REM  **********************
  2. 11  REM  *    PRETTYLISTER    *
  3. 12  REM  *   BY BRYAN BROWN   *
  4. 13  REM  * COPYRIGHT (C) 1983 *
  5. 14  REM  * BY MICROSPARC, INC *
  6. 15  REM  * LINCOLN, MA. 01773 *
  7. 16  REM  **********************
  8. 63000  PRINT : PRINT "PRETTYLISTER STARTED": PR# 1: PRINT  CHR$(9);"80N":FF = 12:PL = 58:LL = 60:NT = 106: DIM TK$(NT):AD = 53456:SP$ =  CHR$(32): FOR I = 1 TO 5:B5$ = B5$ +SP$: NEXT I: FOR I = 0 TO NT
  9. 63010 C =  PEEK(AD): IF C <128  THEN TK$(I) = TK$(I) + CHR$(C):AD = AD +1: GOTO 63010
  10. 63020 TK$(I) = TK$(I) + CHR$(C -128):AD = AD +1: NEXT I:PG = 1:NP = 2: PRINT  TAB( 70);"PAGE ";PG: PRINT :NA =  PEEK(103) +256 * PEEK(104)
  11. 63030 NL =  PEEK(NA) +256 * PEEK(NA +1): IF NL = 0  THEN  GOTO 63290
  12. 63040 LN =  PEEK(NA +2) +256 * PEEK(NA +3): IF LN > = 63000  THEN  GOTO 63290
  13. 63050 I = 4
  14. 63060 C =  PEEK(NA +I): IF C = 0  THEN NI = 0: GOSUB 63160:NA = NL: GOTO 63030
  15. 63070  IF C <128  THEN CD$ = CD$ + CHR$(C): GOTO 63100
  16. 63080  IF CD$ < >""  AND  RIGHT$(CD$,1) < >SP$  THEN CD$ = CD$ +SP$
  17. 63090 CD$ = CD$ +TK$(C -128) +SP$
  18. 63100  IF C = 34  THEN IQ =   NOT (IQ): GOTO 63150
  19. 63110  IF (C = 58  AND   NOT IQ)  OR C = 196  THEN  GOSUB 63160: GOTO 63150
  20. 63120  IF C = 173  THEN NI = NI +1: GOTO 63150
  21. 63130  IF C = 129  THEN NF = NF +1: GOTO 63150
  22. 63140  IF C = 130  THEN NS = 1:NF = NF -1
  23. 63150 I = I +1: GOTO 63060
  24. 63160  IF LN <0  THEN  PRINT B5$;: GOTO 63180
  25. 63170  PRINT  RIGHT$(B5$ + STR$(LN),5);:LN =  -1
  26. 63180  IF NS  THEN IN = IN -3:NS = 0
  27. 63190 PB = 0:JN = IN:IN = 1 +3 *(NF +NI)
  28. 63200 LC =  LEN(CD$):LP = JN +LC: IF LP >LL  THEN  GOTO 63230
  29. 63210  IF PB = 1  THEN  PRINT B5$;
  30. 63220  FOR J = 1 TO JN: PRINT SP$;: NEXT J: PRINT CD$:CD$ = "": GOSUB 63270: RETURN 
  31. 63230  FOR K = (LL -JN) TO 1  STEP  -1:A$ =  MID$ (CD$,K,1): IF (A$ = SP$  OR A$ =  CHR$(42)  OR A$ =  CHR$(43)  OR A$ =  CHR$(44)  OR A$ =  CHR$(45)  OR A$ =  CHR$(47))  THEN  GOTO 63250
  32. 63240  NEXT K
  33. 63250  IF PB = 1  THEN  PRINT B5$;
  34. 63260 PB = 1: FOR J = 1 TO JN: PRINT SP$;: NEXT J: PRINT  LEFT$(CD$,K):CD$ =  RIGHT$(CD$,LC -K): GOSUB 63270: GOTO 63200
  35. 63270 NP = NP +1: IF NP > = PL  THEN NP = 2: PRINT  CHR$(FF):PG = PG +1: PRINT  TAB( 70);"PAGE ";PG: PRINT 
  36. 63280  RETURN 
  37. 63290  PRINT  CHR$(FF): PR# 0: PRINT "PRETTYLISTER COMPLETE": FOR J = 1 TO 3: PRINT  CHR$(7): NEXT J
  38. 63300  END 
  39. 63310  REM  ** APPEND TO MAIN PROGRAM
  40. 63320  REM  ** EXECUTE WITH 'RUN 63000'
  41. 63400  PRINT  CHR$(4)"OPEN PRETTY": PRINT  CHR$(4)"DELETE PRETTY": PRINT  CHR$(4)"OPEN PRETTY": PRINT  CHR$(4)"WRITE PRETTY": POKE 33,33: LIST 63000,63300: PRINT : PRINT  CHR$(4)"CLOSE PRETTY": TEXT : END