home *** CD-ROM | disk | FTP | other *** search
/ Generous Efforts of Many / gemcd.zip / GEM.CD.A.po / FEATURES:BEAGLE / UTIL.CITY.SHK / UTILITY.CITY / XLISTER.A.bas < prev    next >
BASIC Source File  |  2000-01-01  |  5KB  |  70 lines

  1. 10  REM  <CTRL-M><CTRL-M>====================<CTRL-M>XLISTER<CTRL-M>LIST UTILITY<CTRL-M>BY BERT KERSEY<CTRL-M>BEAGLE BROS<CTRL-M>====================<CTRL-J><CTRL-J><CTRL-J>
  2. 40 IN = 0: REM (IN=L.MARGIN.INDENT#..NOT.FULLY-TESTED.YET:11/82..TRY.WITH.VALUE.OF.5..PHONE.BEAGLE.IF.BUGGY.)
  3. 50 S = 1: REM (PRINTER.SLOT)
  4. 55  REM (SEE.LINE.1190.IF.YOUR.PRINTER.WON'T.PRINT.WIDER.THAN.40.COLUMNS.)
  5. 56 CTRLJ = 0: REM (LET.CTRLJ=1.IF.YOUR.PRINTER.REQUIRES.LINE.FEEDS.IN.LINES.426.&.430)
  6. 60 PG = 66:MG = 3: REM (LINES.PER.PAGE.&.MARGIN.FOR.PAGE.BREAKS)
  7. 100  GOTO 1000
  8. 200 NXT =  PEEK(ST) + PEEK(ST +1) *TFS:LI =  PEEK(ST +2) + PEEK(ST +3) *TFS: IF NXT = 0  OR LI >ELI  THEN  PRINT : PRINT  CHR$(4);"PR#0": GOTO 10000: REM START.LIST
  9. 220 LFLAG = 0:TKFLAG = 0:QFLAG =  -1:THFLAG =  -1: PRINT : GOSUB 425: NORMAL : PRINT "---------------------": GOSUB 425: PRINT LI;: PRINT  SPC( LI <10000); SPC( LI <1000); SPC( LI <100); SPC( LI <10);" ";:SP = 6 +LOOP +IN
  10. 230  IF LOOP  THEN  PRINT  SPC( LOOP -2 *( PEEK(ST +4) = 130));
  11. 270  FOR P = ST +4 TO NXT -2:PP =  PEEK(P):A$ = A$(PP)
  12. 272  IF A$ = "FOR"  THEN LOOP = LOOP +2
  13. 273  IF A$ = "NEXT"  THEN LFLAG = 1:LOOP = LOOP -2 *(LOOP >0)
  14. 275  IF (LFLAG = 1  AND A$ = ",")  THEN LOOP = LOOP -2 *(LOOP >0)
  15. 280  IF A$ = Q$  OR A$ = "REM"  THEN QFLAG = QFLAG * -1
  16. 300  IF A$ = ":"  AND QFLAG <0  THEN TKFLAG = 0: GOSUB 420: GOTO 400: REM  COLON,NEW.LINE
  17. 360  IF PP >127  THEN  PRINT  SPC( TKFLAG >0);:SP = SP +(TKFLAG >0): REM LEADING.SPACE
  18. 380  IF SP + LEN(A$) >SW -1  THEN  PRINT : PRINT  SPC( 9 +LOOP):SP = 10 +LOOP: GOSUB 425
  19. 390  NORMAL : PRINT A$; SPC( PP >127);:SP = SP + LEN(A$) +(PP >127): IF A$ = "REM"  THEN  INVERSE 
  20. 392  IF PP = 10  OR PP = 13  THEN  GOSUB 425
  21. 396 TKFLAG = (PP <127): IF A$ = "THEN"  THEN THFLAG = 1
  22. 400  NEXT 
  23. 410 ST = NXT: GOTO 200
  24. 420  PRINT : GOSUB 425
  25. 421  IF THFLAG >0  THEN  PRINT "  * : ";
  26. 422  IF THFLAG <0  THEN  PRINT "    : ";
  27. 423  IF LOOP  THEN  PRINT  SPC( LOOP -2 *( PEEK(P +1) = 130));
  28. 424 SP = 7 +LOOP +IN:LFLAG = 0: RETURN 
  29. 425  PRINT  SPC( IN):CR = CR +1: IF P$ < >"YES"  OR MG <1  OR CR <PG -MG *2  THEN 429
  30. 426  FOR I = 1 TO MG *2: PRINT : IF CTRLJ  THEN  PRINT  CHR$(10);: REM (SEE.LINE.56.)
  31. 427  NEXT :CR = 0
  32. 429  IF PP = 13  THEN SP = 0
  33. 430  IF CTRLJ  THEN  PRINT  CHR$(10);: REM  (SEE.LINE.56.)      
  34. 431  RETURN 
  35. 435  DATA END,FOR,NEXT,DATA,INPUT,DEL,DIM,READ,GR,TEXT
  36. 440  DATA PR#,IN#,CALL,PLOT,HLIN,VLIN,HGR2,HGR,HCOLOR=,HPLOT
  37. 450  DATA DRAW,XDRAW,HTAB,HOME,ROT=,SCALE=,SHLOAD,TRACE,NOTRACE,NORMAL
  38. 460  DATA INVERSE,FLASH,COLOR=,POP,VTAB,"HIMEM:","LOMEM:",ONERR,RESUME,RECALL
  39. 470  DATA STORE,SPEED=,LET,GOTO,RUN,IF,RESTORE,&,GOSUB,RETURN
  40. 480  DATA REM,STOP,ON,WAIT,LOAD,SAVE,DEF,POKE,PRINT,CONT
  41. 490  DATA LIST,CLEAR,GET,NEW,TAB(,TO,FN,SPC(,THEN,AT
  42. 500  DATA NOT,STEP,+,-,*,/,^,AND,OR,>
  43. 510  DATA =,<,SGN,INT,ABS,USR,FRE,SCRN(,PDL,POS
  44. 520  DATA SQR,RND,LOG,EXP,COS,SIN,TAN,ATN,PEEK,LEN
  45. 530  DATA STR$,VAL,ASC,CHR$,LEFT$,RIGHT$,MID$
  46. 999  REM <CTRL-J><CTRL-J>PARAMETERS<CTRL-J>
  47. 1000  DIM A$(255):Q$ =  CHR$(34):N = 768:T = 5:TFS = 256: ONERR  GOTO 10000
  48. 1005  TEXT : HOME : PRINT "<CTRL-D>PR#0": HOME : INVERSE : PRINT " XLISTER ";: NORMAL : PRINT " BY BEAGLE BROS"
  49. 1010  RESTORE :LOOP = 0: FOR I = 0 TO 31:A$(I) =  CHR$(I) +"(c" + CHR$(I +64) +")": NEXT : FOR I = 32 TO 127:A$(I) =  CHR$(I): NEXT : FOR I = 128 TO 234: READ A$(I): NEXT 
  50. 1070  VTAB T: PRINT "COLUMN WIDTH:        (DEFAULT=80)";: HTAB 15: INPUT " ";SW$:SW =  VAL(SW$) -IN: IF SW$ = ""  THEN SW = 80 -IN: VTAB T: HTAB 16: PRINT SW
  51. 1080 SW = SW -1
  52. 1090  VTAB T +2: PRINT "START LIST AT:       (DEFAULT=START)";: HTAB 15: INPUT " ";SLI$:SLI =  VAL(SLI$): IF SLI$ = ""  THEN SLI = 0: VTAB T +2: HTAB 16: PRINT "START"
  53. 1100  VTAB T +4: PRINT "END LIST AT:         (DEFAULT=END)";: HTAB 15: INPUT " ";ELI$:ELI =  VAL(ELI$): IF ELI$ = ""  THEN ELI = 65535
  54. 1110  IF ELI <SLI  THEN ELI = SLI
  55. 1120  IF ELI$ = ""  THEN  VTAB T +4: HTAB 16: PRINT "END": GOTO 1140
  56. 1130  VTAB T +4: HTAB 16: PRINT ELI
  57. 1140  VTAB T +6: PRINT "USE PRINTER?         (DEFAULT=YES)";: HTAB 15: INPUT " ";PO$: VTAB T +6: HTAB 16: IF PO$ = ""  THEN P$ = "YES": GOTO 1160
  58. 1150 P$ = "NO": IF  LEFT$(PO$,1) = "Y"  THEN P$ = "YES"
  59. 1160  PRINT P$;: CALL  -958: PRINT 
  60. 1170  VTAB T +8: INPUT "TITLE: ";T$
  61. 1180  VTAB T +10: PRINT "ALL CORRECT?         (DEFAULT=YES)";: HTAB 15: INPUT " ";A$: IF  LEFT$(A$,1) = "N"  THEN 1005
  62. 1190  IF P$ = "YES"  THEN  PRINT  CHR$(4);"PR#";S: PRINT : PRINT : PRINT : REM PRINTCHR$(9);SW;"N":REM(REMOVE.1ST.REM.IN.THIS.LINE.IF.YOUR.PRINTER.WON'T.PRINT.WIDER.THAN.40.COLUMNS.)
  63. 1200  HOME : IF  LEN(T$) >0  THEN  PRINT T$: GOSUB 425
  64. 1210 ST =  PEEK(N) + PEEK(N +1) *TFS:EN =  PEEK(N +2) + PEEK(N +3) *TFS
  65. 1230 NXT =  PEEK(ST) + PEEK(ST +1) *TFS:LI =  PEEK(ST +2) + PEEK(ST +3) *TFS: IF LI <SLI  AND NXT < >0  THEN ST = NXT: GOTO 1230
  66. 1250  GOTO 220
  67. 9999  REM <CTRL-J><CTRL-J>END<CTRL-J>
  68. 10000 CR = 0: PRINT : PRINT : PRINT  CHR$(4);"PR#0": INPUT "ANOTHER LISTING ON THIS PROGRAM?";A$: IF  LEFT$(A$,1) = "Y"  THEN 1005
  69. 12000  PRINT : PRINT "DONE.": PRINT : POKE 103, PEEK(N): POKE 104, PEEK(N +1): POKE 175, PEEK(N +2): POKE 176, PEEK(N +3): END 
  70. 65535  REM <CTRL-M><CTRL-M>====================<CTRL-M>XLISTER<CTRL-M>LIST UTILITY<CTRL-M>BY BERT KERSEY<CTRL-M>BEAGLE BROS<CTRL-M>====================<CTRL-J><CTRL-J><CTRL-J>