home *** CD-ROM | disk | FTP | other *** search
/ PCDisk Magazine Disks / PCDisk Magazine - Disk 3.img / STEDIT.BAS (.txt) < prev   
Encoding:
GW-BASIC  |  1984-08-01  |  20.3 KB  |  378 lines

  1. 10  REM *** DESIGNED BY DALE BENZER/PROGRAMMED BY PETER SCHLAIFER ******
  2. 15  REM ***** COPYRIGHT 1984 ****** ALL RIGHTS RESERVED *******
  3. 30  CLS:WIDTH80:KEYOFF:LOCATE1,27:COLOR0,7:PRINT"  >>> STATLIB EDITOR <<<  ":COLOR7,0:COLOR0,7:COLOR7,0:LOCATE3,34:PRINT"Version 1.2":COLOR0,7:X$=CHR$(186)
  4. 70  LOCATE5,10,0:PRINTCHR$(201)+STRING$(59,205)+CHR$(187):LOCATE19,10:PRINTCHR$(200)+STRING$(59,205)+CHR$(188):FORW=6TO18:LOCATEW,10:PRINTX$:LOCATEW,70:PRINTX$:NEXT:COLOR0,15:COLOR7,0:LOCATE7,29:PRINT"Designed by Dale Benzer
  5. 120  LOCATE9,26:PRINT"Programmed by Peter Schlaifer":LOCATE11,37:PRINT"For":LOCATE13,25:PRINT"THE PC DISK LIBRARY OF SOFTWARE":LOCATE15,32:PRINT"Copyright 1984 ":LOCATE17,26:PRINT"ZIFF-DAVIS PUBLISHING CO., INC.
  6. 170  LOCATE22,26:PRINT"PRESS ANY KEY TO CONTINUE
  7. 180  A$=INKEY$:IFA$=""THEN180
  8. 190  FOR X=7 TO 17:LOCATE X,15:PRINT SPACE$(50):NEXT:LOCATE 7,30:PRINT"DOCUMENTATION NOTES:":LOCATE 9,18:PRINT"Due to the release of Version 1.2 certain":LOCATE 10,18:PRINT"changes to the operating procedure have
  9. 230  LOCATE 11,18:PRINT"been made which are not reflected in the user's":LOCATE 12,18:PRINT"manual. These changes are listed in the file ":LOCATE 13,18:PRINT"ST.TXT. "
  10. 265  LOCATE 15,18:PRINT "We urge you to read this file in combination ":LOCATE 16,18:PRINT "with the printed documentation before running
  11. 270  LOCATE 17,18:PRINT "the program.
  12. 280  A$=INKEY$:IFA$=""THEN280
  13. 290  FOR X=9 TO 17:LOCATE X,15:PRINT SPACE$(55):NEXT:LOCATE 9,18:PRINT"To type ST.TXT to your screen, type the ":LOCATE 10,18:PRINT"command ";:COLOR 0,7:PRINT " TYPE ST.TXT ";:COLOR 7,0:PRINT " at the DOS prompt."
  14. 291  LOCATE 12,18:PRINT "To get a printed copy of the changes, ";:LOCATE 13,18:PRINT "type the command ";:COLOR 0,7:PRINT " COPY ST.TXT ";:COLOR 7,0:PRINT " at the DOS prompt.
  15. 330  LOCATE 15,18:PRINT"To delete these messages, delete lines 190-370":LOCATE 16,18:PRINT"of this program and then SAVE the program as ":LOCATE 17,18:PRINT"STEDIT.BAS.":LOCATE 18,40:PRINT"  -- PC DISK Staff
  16. 370  A$=INKEY$:IF A$=""THEN 370
  17. 380  LOCATE 22,26,0:PRINT SPACE$(40):LOCATE 22,26,1:CLEAR,,2500:PRINT"initializing STLEDIT...":GOSUB 1060:GOSUB 1190:GOSUB 1520:GOSUB 2060:GOTO 3280
  18. 1060  KEYOFF:FORJ=1TO10:KEYJ,"":NEXT:CR$=CHR$(13):ESC$=CHR$(27):NL$=CHR$(13):RS$=CHR$(28):LS$=CHR$(29):US$=CHR$(30):DS$=CHR$(31):DEFFNK$(J)=CHR$(0)+CHR$(J):F1$=FNK$(59):F2$=FNK$(60):F3$=FNK$(61):F4$=FNK$(62):F5$=FNK$(63)
  19. 1110  ECMD$="F1 HELP  F2 QUIT/RETURN  F3 SAVE/CONTINUE  F4 EDIT  F5 VIEW":LOCATE,,0:RETURN
  20. 1190  DEFINTA-Z:DEFSNGA,U,V:I=0:J=0:K=0:L=0:P=0:Q=0:ARG=0:ARG1=0:ARG2=0:U=0:V=0:X$="":Y$="":W$="":LIN$="":ARG$="":NVARS=0:NDEFS=0:NSUBS=0:NCASE=0<UNK! {0009}>:BPTR=0:FPTR=0:NPTR=0:MAXPTR=0<UNK! {0009}>:F0=0:F1=0:F2=0:FF=0:VFLAG=0<UNK! {0009}>:FCMD=0:CMD=0:CMD$=""<UNK! {0009}>
  21. 1260  FPROMPT$="":FTYP$="":FTYP=0<UNK! {0009}>:ZPTR=0:JJ=0:CCASE=0:MAKE=1:EDYT=2:CASE=3:VARS=4:SUBS=5:DEFS=6:PRNT=7:EXIT=8:HELP=1:QRET=2:QSAV=3:REDO=4:VYEW=5:ESC=-1:FC=12<UNK! {0009}>:FD=6<UNK! {0009}>:FJ=4<UNK! {0009}>:FL=14<UNK! {0009}>:FW=FL*FJ<UNK! {0009}>:NC=(FC+FD)*FJ<UNK! {0009}>:FP=4<UNK! {0009}>:FQ=((78-NC)/2)-1<UNK! {0009}>:MAXLIN=FC<UNK! {0009}>
  22. 1390  FC$=SPACE$(FC)<UNK! {0009}>:FD$=SPACE$(FD-3)<UNK! {0009}>:FE$=SPACE$(FC+FD)<UNK! {0009}>:FL$=SPACE$(NC):NW$=NL$+STRING$(FQ+2,RS$)<UNK! {0009}>:FILSPEC$="":FILDESC$=""<UNK! {0009}>:MAXBUF=127:BVARS=0:BUFSIZ=MAXBUF:GOSUB2700:J=BVARS+2*MAXLBLS+1:DIMW$(J):FORK=0TOJ:W$(K)=FC$:NEXT:BUFSIZ=32<UNK! {0009}>:RETURN
  23. 1520  CLS:RETURN
  24. 1530  LOCATEP,Q:RETURN
  25. 1540  LOCATE,,1:X$=INKEY$:IFX$=""THEN1540
  26. 1560  GOSUB1580:IFX$=""THEN1540
  27. 1570  LOCATE,,0:RETURN
  28. 1580  FCMD=0:IFX$>=" "ORX$=CR$ORX$=CHR$(8)THENRETURN
  29. 1590  IFX$=F1$THENGOSUB5850:X$=ESC$
  30. 1600  IFX$=F2$THENFCMD=QRET:RETURN
  31. 1610  IFX$=F3$THENFCMD=QSAV:RETURN
  32. 1620  IFX$=F4$THENFCMD=REDO:RETURN
  33. 1630  IFX$=F5$THENGOSUB6330:X$=ESC$
  34. 1640  IFX$=ESC$THENFCMD=ESC:RETURN
  35. 1650  X$="":RETURN
  36. 1660  PROMPT$="Your choice":GOSUB2180:GOSUB1670:RETURN
  37. 1670  GOSUB1540:CMD=0:IFFCMD<>0THENRETURN
  38. 1680  GOSUB1840:CMD=INSTR(CMD$,X$):IFCMDTHENRETURN
  39. 1690  GOTO1670
  40. 1700  PROMPT$=PROMPT$+" Y/N":GOSUB2180:CMD$="YN":GOSUB1670:RETURN
  41. 1720  PROMPT$=PROMPT$+"...CR to continue":GOSUB2180:CMD$=CR$:GOSUB1670:RETURN
  42. 1740  GOSUB2180:LIN$="":GOSUB1750:RETURN
  43. 1750  GOSUB1540:IFFCMD<>0THENLIN$="":RETURN
  44. 1760  IFX$>=" "THENGOSUB1800:GOTO1750
  45. 1770  IFX$=CHR$(8)THENGOSUB1820:GOTO1750
  46. 1780  IFX$=CR$THENRETURN
  47. 1790  GOTO1750
  48. 1800  IFLEN(LIN$)<MAXLINTHENLIN$=LIN$+X$:PRINTX$;
  49. 1810  RETURN
  50. 1820  J=LEN(LIN$):IFJ>0THENPRINTLS$" "LS$;:LIN$=LEFT$(LIN$,J-1)
  51. 1830  RETURN
  52. 1840  IFX$=""THENRETURN
  53. 1850  J=ASC(X$):IFJ>96ANDJ<123THENJ=J-32
  54. 1860  X$=CHR$(J):RETURN
  55. 1870  IFX$=""THENRETURN
  56. 1880  J=ASC(X$):IFJ>64ANDJ<91THENJ=J+32
  57. 1890  X$=CHR$(J):RETURN
  58. 1900  P=1:Q=20:GOSUB1530:PRINTSPACE$(40);:X$=" >>>  "+X$+"  <<< ":Q=40-LEN(X$)\2:GOSUB1530:COLOR0,7:PRINTX$;:COLOR7,0:RETURN
  59. 1950  P=FP-1:Q=40:GOSUB1530:PRINTSPACE$(40-FQ);:Q=80-FQ-LEN(X$):GOSUB1530:PRINTX$;:RETURN
  60. 1970  P=FP-1:Q=FQ+1:GOSUB1530:PRINTSPACE$(40-FQ-1):GOSUB1530:PRINTX$;:RETURN
  61. 1990  X$=FILSPEC$:IFX$=""THENX$="NO FILE OPENED":GOSUB1970:X$="":GOSUB1950:RETURN
  62. 2010  IFFILDESC$<>""THENX$=X$+"/"+FILDESC$
  63. 2020  X$="FILE: "+X$:GOSUB1970:X$="NO":IFNCASE<>0THENX$=STR$(NCASE)
  64. 2040  IFNCASE<>1THENX$=X$+" CASES ENTERED":GOSUB1950:RETURN
  65. 2050  X$="1 CASE ENTERED":GOSUB1950:RETURN
  66. 2060  P=FP:K=FP+1+FL:FORQ=FQ+1TO79-FQ:GOSUB1530:COLOR0,7:PRINTCHR$(205);:COLOR7,0:NEXT:GOSUB1530:COLOR0,7:PRINTCHR$(187);:FORP=FP+1TOK:GOSUB1530:PRINTCHR$(186);:NEXT:GOSUB1530:PRINTCHR$(188);
  67. 2110  FORQ=79-FQTOFQ+1STEP-1:GOSUB1530:PRINTCHR$(205);:NEXT:GOSUB1530:PRINTCHR$(200);:FORP=KTOFP+1STEP-1:GOSUB1530:PRINTCHR$(186);:NEXT:GOSUB1530:PRINTCHR$(201);:COLOR0,7:RETURN
  68. 2150  P=21:Q=FQ+2:GOSUB2210:Q=40-LEN(X$)\2:GOSUB1530:PRINTX$;:RETURN
  69. 2180  P=23:Q=FQ+2:GOSUB2210:PRINTPROMPT$"  ";:RETURN
  70. 2190  PROMPT$=PROMPT$+"...CR to continue":GOSUB2180:CMD$=CR$:GOSUB1670:RETURN
  71. 2210  GOSUB1530:PRINTSPACE$(79-Q);:GOSUB1530:RETURN
  72. 2220  GOSUB2240:FORL=1TOFL:GOSUB2250:PRINTFL$;:NEXT:GOSUB2240:RETURN
  73. 2240  P=FP+1:Q=FQ+2:GOSUB1530;:RETURN
  74. 2250  PRINTNL$STRING$(FQ+2,RS$);:RETURN
  75. 2260  IFF2=F0-1THENGOSUB2400:RETURN
  76. 2270  GOSUB2240:F1=FW*(F1\FW):IFF1>(F2-F0+1)ORF1<0THENF1=0
  77. 2280  K=F0+F1:FORL=1TOFL:GOSUB2250:IFK<=F2THENGOSUB2340 ELSEPRINTFL$;
  78. 2320  NEXT:RETURN
  79. 2340  FORJ=KTOK+FJ-1:IFJ<=F2THENGOSUB2390 ELSEPRINTFE$;
  80. 2360  NEXT:K=K+FJ:RETURN
  81. 2390  LSETFD$=MID$(STR$(J-F0+1),2):PRINTF$FD$": "W$(J);:RETURN
  82. 2400  X$=FL$:LSETX$="Nothing entered":GOSUB2240:GOSUB2250:PRINTX$;:FORJ=2TOFL:GOSUB2250:PRINTFL$;:NEXT:RETURN
  83. 2420  GOSUB2240:Y$=FL$:READX$:FORL=1TOFL:GOSUB2250:IFX$<>""THENGOSUB2470 ELSEPRINTFL$;
  84. 2450  NEXT:RETURN
  85. 2470  LSETY$=X$:READX$:PRINTY$;:RETURN
  86. 2490  FCMD=0:ONERRORGOTO2590
  87. 2500  PROMPT$="LOADING "+FILNAM$:GOSUB2180:LIN$=FILSPEC$+".STL":OPEN "I",#1,LIN$:INPUT#1,FILNAM$,FILDESC$,BUFSIZ:GOSUB2700:INPUT#1,NVARS,NDEFS,NSUBS,NCASE:FORJ=1TONVARS:INPUT#1,X$:LSETW$(BVARS+J)=X$:NEXT
  88. 2550  FORJ=1TONDEFS:INPUT#1,X$:LSETW$(BDEFS+J)=X$:NEXT:FORJ=1TONSUBS:INPUT#1,X$:LSETW$(BSUBS+J)=X$:NEXT:CLOSE#1:GOSUB2740:GOSUB1990
  89. 2580  DDSFLAG=0:STLFLAG=0:ONERRORGOTO3390:RETURN
  90. 2590  PROMPT$="CAN'T OPEN "+LIN$:GOSUB1720:FILSPEC$="":CLOSE:FCMD=REDO:RESUME2580
  91. 2610  GOSUB3050:CLOSE#1:IFSTLFLAG=0THENRETURN
  92. 2620  PROMPT$="SAVING "+FILNAM$+" CONTROL FILE":GOSUB2180:LIN$=FILSPEC$+".STL":OPEN "O",#1,LIN$:PRINT#1,FILNAM$:PRINT#1,FILDESC$:PRINT#1,BUFSIZ:PRINT#1,NVARS:PRINT#1,NDEFS:PRINT#1,NSUBS:PRINT#1,NCASE:FORJ=1TONVARS:PRINT#1,W$(BVARS+J):NEXT
  93. 2670  FORJ=1TONDEFS:PRINT#1,W$(BDEFS+J):NEXT:FORJ=1TONSUBS:PRINT#1,W$(BSUBS+J):NEXT:CLOSE#1:STLFLAG=0:RETURN
  94. 2700  MAXVARS=BUFSIZ:MAXDEFS=BUFSIZ\4:MAXSUBS=BUFSIZ:MAXLBLS=MAXVARS+MAXDEFS+MAXSUBS:BDEFS=BVARS+MAXVARS:BSUBS=BDEFS+MAXDEFS:BVALS=BSUBS+MAXSUBS:RETURN
  95. 2740  GOSUB2700:LIN$=FILSPEC$+".DAT":OPEN "R",#1,LIN$,BUFSIZ:FIELD#1,BUFSIZ AS CB$:RETURN
  96. 2770  PROMPT$="SAVING CASE NUMBER"+STR$(CCASE):GOSUB2180:X$="":K=BVALS:FORJ=1TONVARS:X$=X$+MKI$(VAL(W$(K+J))):NEXT:Y$=SPACE$(2*BUFSIZ):LSETY$=X$:LSETCB$=Y$:PUT#1,4*CCASE-3:RSETCB$=Y$:PUT#1
  97. 2810  X$="":K=K+MAXVARS:FORJ=1TONDEFS:X$=X$+MKS$(VAL(W$(K+J))):NEXT:LSETCB$=X$:PUT#1:X$="":K=K+MAXDEFS:FORJ=1TONSUBS:X$=X$+MID$(W$(K+J),2,1):NEXT:LSETCB$=X$:PUT#1:RETURN
  98. 2860  K=BVALS:GET#1,4*CCASE-3:X$=CB$:GET#1:X$=X$+CB$:FORJ=1TONVARS:LSETW$(K+J)=STR$(CVI(MID$(X$,J+J-1))):NEXT:K=K+MAXVARS:GET#1:FORJ=1TONDEFS:LSETW$(K+J)=STR$(CVS(MID$(CB$,J*4-3))):NEXT:K=K+MAXDEFS:GET#1
  99. 2910  FORJ=1TONSUBS:LSETW$(K+J)=" "+MID$(CB$,J,1):NEXT:X$="CASE"+STR$(CCASE)+" OF"+STR$(NCASE):GOSUB1950:GOSUB6480:RETURN
  100. 2940  PROMPT$="CALCULATING DEFINITIONS":GOSUB2180:GOSUB2970:GOSUB2770:IFCCASE=NCASE+1THENNCASE=CCASE
  101. 2960  RETURN
  102. 2970  LIN$=FC$:PROMPT$="":FORZPTR=BDEFS+1TOBDEFS+NDEFS:LSETLIN$=W$(ZPTR):GOSUB6530:LSETW$(ZPTR+MAXLBLS)=STR$(V):NEXT:FORZPTR=BSUBS+1TOBSUBS+NSUBS:LSETLIN$=W$(ZPTR):GOSUB6530:LSETW$(ZPTR+MAXLBLS)=STR$(V):NEXT:RETURN
  103. 3010  K=BVALS:FORJ=K+1TOK+NVARS:LSETW$(J)=FC$:NEXT:K=K+MAXVARS:FORJ=K+1TOK+NDEFS:LSETW$(J)=FC$:NEXT:K=K+MAXDEFS:FORJ=K+1TOK+NSUBS:LSETW$(J)=FC$:NEXT:RETURN
  104. 3050  IFDDSFLAG=0THENRETURN
  105. 3060  PROMPT$="REWRITING DEFINITION FILES":GOSUB2180:J=FRE(0):FORCCASE=1TONCASE:GOSUB2860:GOSUB2970:GOSUB2770:NEXT:DDSFLAG=0:RETURN
  106. 3130  DATA"STATLIB EDITOR":DATA"COISDPHE":DATA"                        (C)reate a new file":DATA" ":DATA"                        (O)pen case file":DATA" ":DATA"                        (I)nput/Edit case data":DATA" 
  107. 3220  DATA"                        (S)ubset definition":DATA" ":DATA"                        (D)efine derived variables":DATA" ":DATA"                        (P)rint cases ":DATA"  ":DATA"                        (E)xit":DATA"
  108. 3280  MD=MAIN:RESTORE3130:READX$:READCMD$:GOSUB1900:GOSUB1990:GOSUB2420:X$=ECMD$:GOSUB2150:GOSUB1660:IFCMD=8THEN3340
  109. 3320  ONCMDGOSUB3410,3690,3870,4490,4380,7420,3400:GOTO3280
  110. 3340  MD=EXIT:IFFILSPEC$<>""THENGOSUB2610
  111. 3360  PROMPT$="goodbye...":GOSUB 2180:FOR J=1 TO 2200:NEXT:GOSUB 1520
  112. 3365  KEY ON:KEY 1,"LIST":KEY 2,"RUN"+CHR$(13):KEY 3,"LOAD"+CHR$(34):KEY 4,"SAVE"+CHR$(34):KEY 5,"CONT"+CHR$(13):KEY 6,","+CHR$(34)+"LPT1:":KEY 7,"TRON"+CHR$(13):KEY 8,"TROFF"+CHR$(13):KEY 9,"KEY":KEY 10,"SCREEN 0,0,0"+CHR$(13):NEW:END
  113. 3390  PROMPT$="Error"+STR$(ERR)+"in line"+STR$(ERL):GOSUB2180:RESUME
  114. 3400  MD=0:GOSUB5850:RETURN
  115. 3410  MD=MAKE:X$="CREATE FILE":GOSUB1900:GOSUB5270:IFFCMD=QRETTHENRETURN
  116. 3430  GOSUB1990:GOSUB3480:IFFCMD=QRETTHENRETURN
  117. 3440  FORJ=BVARS+1TOBVALS:LSETW$(J)=FC$:NEXT:NVARS=0:NDEFS=0:NSUBS=0:NCASE=0:DDSFLAG=0:GOSUB4280:GOSUB2610:GOSUB2740:RETURN
  118. 3480  GOSUB2220:GOSUB2700:PRINTNW$;"Number of variables now set at";STR$(BUFSIZ);:PRINTNW$;"Each case will use";STR$(4*BUFSIZ);" bytes";:PRINTNW$;:PRINTNW$;"This setting determines the number of";
  119. 3530  PRINTNW$;"variables, definitions and subsets allowed";:PRINTNW$;"for this file. Choose the smallest possible";:PRINTNW$;"setting commensurate with your needs";:PRINTNW$;"between 4 and 127.":PRINTNW$;
  120. 3580  PRINTNW$;"Maximum number of variables:";STR$(MAXVARS);:PRINTNW$;"Maximum number of definitions:";STR$(MAXDEFS);:PRINTNW$;"Maximum number of subsets:";STR$(MAXSUBS);:PROMPT$="Variables allowed ="+STR$(BUFSIZ):GOSUB1700:IFX$="Y"THENRETURN
  121. 3630  PROMPT$="Enter variable setting":GOSUB1740:IFFCMD=QRETORFCMD=QSAVTHENRETURN
  122. 3650  IFFCMD<>0THEN3480
  123. 3660  J=VAL(LIN$):IFJ<4THENJ=4
  124. 3670  IFJ>MAXBUFTHENJ=MAXBUF
  125. 3680  BUFSIZ=J:GOTO3480
  126. 3690  MD=EDYT:X$="OPEN FILE":GOSUB1900:GOSUB5270:IFFCMD=QRETTHENRETURN
  127. 3720  IFFCMD=ESCORFCMD=REDOTHEN3690
  128. 3730  GOSUB2490:IFFCMD=REDOTHEN3690
  129. 3740  GOSUB6450:PROMPT$="ARE THE LABELS CORRECT":GOSUB1700:IFFCMD=QRETTHENRETURN
  130. 3770  IFFCMD<>0THEN3690
  131. 3780  IFX$="N"THENGOSUB4280
  132. 3790  IFNCASE=0THENRETURN
  133. 3800  PROMPT$="DO YOU WISH TO VIEW CASES":GOSUB1700:IFX$="Y"THENGOSUB3830
  134. 3820  RETURN
  135. 3830  X$="VIEWING CASES":GOSUB1900:GOSUB5740:IFFCMD=ESCTHEN3830
  136. 3850  IFFCMD=0THENGOSUB6330:GOTO3830
  137. 3860  RETURN
  138. 3870  DATA"INPUT NEW CASES":DATA"ENTER VALUE FOR","x",4:IFFILSPEC$=""THENGOSUB5560:RETURN
  139. 3910  CASEFLAG=1:RESTORE3870:READX$:GOSUB1900:READFPROMPT$,FTYP$,FTYP:BPTR=BVALS:MAXPTR=BPTR+NVARS:PROMPT$="F4 WILL TOGGLE EDIT MODE":GOSUB1720
  140. 3980  CCASE=NCASE+1:GOSUB3010:FORJ=1TONVARS:LSETW$(BVALS+J)=W$(BVARS+J):NEXT:X$="ENTERING NEW CASE NUMBER"+STR$(CCASE):GOSUB1950:NPTR=BPTR:GOSUB4210:IFFCMD=REDOTHEN4050
  141. 4020  IFFCMD=QRETTHENRETURN
  142. 4030  GOTO3980
  143. 4050  DATA"REENTER CASES":DATA"REENTER VALUE FOR","x",4:IFFILSPEC$=""THENGOSUB5560:RETURN
  144. 4080  CASEFLAG=2:RESTORE4050:READX$:GOSUB1900:READFPROMPT$,FTYP$,FTYP:BPTR=BVALS:MAXPTR=BPTR+NVARS:X$="":GOSUB1950:PROMPT$="F4 WILL TOGGLE INPUT NEW CASES MODE":GOSUB1720
  145. 4150  GOSUB5740:IFFCMD=REDOTHEN3870
  146. 4160  IFFCMD=QRETTHENRETURN
  147. 4170  IFFCMD<>0THEN4150
  148. 4180  NPTR=MAXPTR:FPTR=BPTR+1:GOSUB4210:GOTO4150
  149. 4210  MD=CASE:IFCASEFLAG=2THENGOSUB4860 ELSEGOSUB4710
  150. 4230  IFFCMD=ESCTHEN4210
  151. 4240  IFFCMD=QSAVTHENIF(CASEFLAG=2OR(CASEFLAG=1ANDNPTR=MAXPTR))THENGOSUB2940:STLFLAG=STLFLAG+1:RETURN
  152. 4250  IFFCMD=REDOORFCMD=QRETTHENRETURN
  153. 4260  GOTO4210
  154. 4280  DATA"ENTER VARIABLE NAME FOR","x",1:MD=VARS:RESTORE4280:READFPROMPT$,FTYP$,FTYP:BPTR=BVARS:NPTR=BPTR+NVARS:MAXPTR=BPTR+MAXVARS:IFNCASE<>0THENMAXPTR=NPTR
  155. 4330  IFFILSPEC$=""THENGOSUB5560:RETURN
  156. 4340  IFDDSFLAG=0ANDNCASE>0THENGOSUB4600:IFX$<>"Y"THENRETURN
  157. 4350  GOSUB4630:RETURN
  158. 4380  DATA"DEFINE DERIVED VARIABLES":DATA"ENTER DATA DEFINITION FOR","d",2:MD=DEFS:RESTORE4380:READX$:GOSUB1900:READFPROMPT$,FTYP$,FTYP:BPTR=BDEFS:NPTR=BPTR+NDEFS:MAXPTR=BPTR+MAXDEFS:IFFILSPEC$=""THENGOSUB5560:RETURN
  159. 4450  IFDDSFLAG=0ANDNCASE>0THENGOSUB4600:IFX$<>"Y"THENRETURN
  160. 4460  GOSUB4630:RETURN
  161. 4490  DATA"DEFINE SUBSETS":DATA"ENTER SUBSET DEFINITION FOR","s",3:MD=SUBS:RESTORE4490:READX$:GOSUB1900:READFPROMPT$,FTYP$,FTYP:BPTR=BSUBS:NPTR=BPTR+NSUBS:MAXPTR=BPTR+MAXSUBS:IFFILSPEC$=""THENGOSUB5560:RETURN
  162. 4560  IFDDSFLAG=0ANDNCASE>0THENGOSUB4600:IFX$<>"Y"THENRETURN
  163. 4570  GOSUB4630:RETURN
  164. 4600  PROMPT$="WILL REQUIRE REWRITING DEFINITION FILES. OK TO PROCEED":GOSUB1700:RETURN
  165. 4630  CASEFLAG=0:X$="NO":IFNCASE>0THENX$=STR$(NCASE)
  166. 4650  X$=X$+" CASES ENTERED":GOSUB1950:GOSUB4710:IFFCMD=ESCORFCMD=REDOTHEN4630
  167. 4670  IFFCMD=QSAVTHENSTLFLAG=STLFLAG+1:IFNCASE>0THENDDSFLAG=DDSFLAG+1
  168. 4680  IFFCMD=QRETORFCMD=QSAVTHENRETURN
  169. 4690  GOTO4630
  170. 4710  IFNPTR>=MAXPTRTHEN4790
  171. 4720  FPTR=NPTR+1:GOSUB5580:IFFCMD=ESCTHEN4710
  172. 4730  IFFCMD=REDOANDCASEFLAG=1ANDNPTR=BPTRTHENRETURN
  173. 4740  IFFCMD=REDOTHEN4860
  174. 4750  IFFCMD=QSAVORFCMD=QRETTHENRETURN
  175. 4760  IFNPTR<MAXPTRTHENNPTR=NPTR+1:GOSUB5210
  176. 4770  LSETW$(NPTR)=W$:RETURN
  177. 4790  FPTR=NPTR:GOSUB6510:PROMPT$="Filled...ok to enter":GOSUB1700:IFX$="Y"THENFCMD=QSAV:RETURN
  178. 4820  IFFCMD=ESCTHEN4790
  179. 4830  IFFCMD=QRETTHENRETURN
  180. 4840  GOTO4860
  181. 4860  PROMPT$="(D)ELETE (I)NSERT (R)EENTER (C)LEAR":GOSUB2180:CMD$="DIRC":GOSUB1670:IFFCMD=ESCTHEN4860
  182. 4890  IFFCMD<>0THENRETURN
  183. 4900  ONCMDGOSUB4940,5010,5090,5150:FCMD=0:GOSUB6510:RETURN
  184. 4940  GOSUB5660:IFFCMD=ESCTHEN4940
  185. 4950  IFFCMD<>0THENRETURN
  186. 4960  FORJ=FPTRTONPTR-1:LSETW$(J)=W$(J+1):NEXT:LSETW$(NPTR)=FC$:IF(FTYP>1ANDFTYP<4)OR(FTYP=1ANDNCASE=0)THENNPTR=NPTR-1:GOSUB5210
  187. 4990  RETURN
  188. 5010  GOSUB5660:IFFCMD=ESCTHEN5010
  189. 5020  IFFCMD<>0THENRETURN
  190. 5030  GOSUB5580:IFFCMD=REDOORFCMD=ESCTHEN5010
  191. 5040  IFFCMD<>0THENFCMD=0:RETURN
  192. 5050  IFNPTR<MAXPTRTHENNPTR=NPTR+1:GOSUB5210
  193. 5060  FORJ=NPTR-1TOFPTRSTEP-1:LSETW$(J+1)=W$(J):NEXT:LSETW$(FPTR)=W$:RETURN
  194. 5090  GOSUB5660:IFFCMD=ESCTHEN5090
  195. 5100  IFFCMD<>0THENRETURN
  196. 5110  GOSUB5580:IFFCMD=REDOORFCMD=ESCTHEN5090
  197. 5120  IFFCMD<>0THENFCMD=0:RETURN
  198. 5130  LSETW$(FPTR)=W$:RETURN
  199. 5150  FPTR=BPTR+1:GOSUB6510:PROMPT$="Ok to clear all entries":GOSUB1700:IFX$<>"Y"THENRETURN
  200. 5180  NPTR=BPTR:FORJ=FPTRTOMAXPTR:LSETW$(J)="":NEXT:IF(FTYP>1ANDFTYP<4)OR(FTYP=1ANDNCASE=0)THENGOSUB5210
  201. 5200  RETURN
  202. 5210  ONFTYPGOSUB5230,5240,5250:RETURN
  203. 5230  NVARS=NPTR-BPTR:RETURN
  204. 5240  NDEFS=NPTR-BPTR:RETURN
  205. 5250  NSUBS=NPTR-BPTR:RETURN
  206. 5270  IFFILSPEC$=""THEN5310
  207. 5280  PROMPT$="Ok TO CLOSE "+FILNAM$:GOSUB1700:IFX$<>"Y"THENFCMD=QRET:RETURN
  208. 5300  GOSUB2610:FILSPEC$="":NCASE=0:GOSUB1990
  209. 5310  GOSUB5400:IFFCMD=QRETTHENRETURN
  210. 5320  IFFCMD<>0THEN5310
  211. 5330  GOSUB5460:IFFCMD=QRETTHENRETURN
  212. 5340  IFFCMD=ESCTHEN5310
  213. 5350  IFMD=MAKETHENGOSUB5520
  214. 5360  IFFCMD=QRETTHENRETURN
  215. 5370  X$=FILNAM$:IFFILDRV$<>""THENX$=FILDRV$+":"+X$
  216. 5380  FILSPEC$=X$:RETURN
  217. 5400  PROMPT$="Enter filename":MAXLIN=8:GOSUB1740:IFFCMD=ESCTHEN5400
  218. 5420  IFFCMD=QRETTHENRETURN
  219. 5430  IFLIN$<=SPACE$(8)THENLIN$=FILNAM$
  220. 5440  FILNAM$=LIN$:IFFILNAM$=""THENFCMD=QRET
  221. 5450  RETURN
  222. 5460  PROMPT$="On drive ":MAXLIN=1:GOSUB1740:IFFCMD=ESCTHEN5460
  223. 5480  IFFCMD=QRETTHENRETURN
  224. 5490  X$=LIN$:GOSUB1840:IFINSTR("ABCD",X$)THENFILDRV$=X$:RETURN
  225. 5510  FILDRV$="":RETURN
  226. 5520  PROMPT$="Enter file description (25 characters or less)":MAXLIN=25:GOSUB1740:IFLIN$<=SPACE$(25)THENLIN$="
  227. 5540  FILDESC$=LIN$:RETURN
  228. 5560  PROMPT$="File must be first opened or created from main menu":GOSUB2190:RETURN
  229. 5580  LIN$="":PROMPT$=FPROMPT$+" "+FTYP$+MID$(STR$(FPTR-BPTR),2):IFFPTR>BVALSTHENPROMPT$=PROMPT$+"  "+W$(FPTR-MAXLBLS)
  230. 5600  GOSUB6510:GOSUB5840:IFFCMD=ESCTHEN5580
  231. 5610  IFFCMD<>0THENRETURN
  232. 5620  GOSUB6860:IFCMD>0THENRETURN
  233. 5630  PROMPT$=LIN$+"  "+PROMPT$:GOSUB2190:GOTO5580
  234. 5660  PROMPT$="Enter field number":GOSUB5840:IFFCMD=ESCTHEN5660
  235. 5680  IFFCMD<>0THENRETURN
  236. 5690  J=VAL(LIN$):IFJ>=1ANDJ<=NPTR-BPTRTHENFPTR=BPTR+J:RETURN
  237. 5710  PROMPT$="Bad field number":GOSUB2190:GOTO5660
  238. 5740  PROMPT$="Enter case number":GOSUB5840:IFFCMD=ESCTHEN5740
  239. 5760  IFFCMD<>0THENRETURN
  240. 5770  J=VAL(LIN$):IFJ>=1ANDJ<=NCASETHENCCASE=J:GOSUB2860:RETURN
  241. 5780  IFLIN$<>"+"ANDLIN$<>"-"ANDLIN$<>""THENPROMPT$="BAD CASE NUMBER":GOSUB2190:GOTO5740
  242. 5790  IFLIN$="-"THENIFCCASE>1THENCCASE=CCASE-1
  243. 5800  IFLIN$="+"ORLIN$=""THENIFCCASE<NCASETHENCCASE=CCASE+1
  244. 5810  GOSUB2860:RETURN
  245. 5840  LIN$="":MAXLIN=FC:GOSUB1740:RETURN
  246. 5850  IFMD=MAINTHENRESTORE5960
  247. 5860  IFMD=MAKETHENRESTORE6010
  248. 5870  IFMD=EDYTTHENRESTORE6040
  249. 5880  IFMD=CASETHENRESTORE6070
  250. 5890  IFMD=VARSTHENRESTORE6100
  251. 5900  IFMD=DEFSTHENRESTORE6200
  252. 5910  IFMD=SUBSTHENRESTORE6130
  253. 5920  IFMD=PRNTTHENRESTORE6270
  254. 5930  IFMD=EXITTHENRESTORE6300
  255. 5940  GOSUB2420:PROMPT$="":GOSUB1720:RETURN
  256. 5960  DATA"MAIN HELP SCREEN":DATA" ":DATA"You must (C)reate a new file, or (O)pen an existing file to begin.":DATA" ":DATA"During program execution, use F2 to return to Main Menu.":DATA" 
  257. 5970  DATA"Use F3 whenever any changes have been made to data -- such as an ":DATA"Add, Delete, or Reenter, or to signal you are continuing a process.":DATA"Use the F4 key for the line editor -- to insert, delete, reenter, etc.":DATA" 
  258. 5974  DATA"Use the ESCAPE key to back up one step. If ESCAPE does not move you,":DATA"use F2 or F3.":DATA"  ":DATA"":DATA" Use F5 to view previously entered labels, subsets, and definitions.
  259. 6010  DATA"CREATE Help screen":DATA"  ":DATA"No filename extension should be specified at the filename prompt.":DATA"  ":DATA"The variable size setting determines the number of variables allowed.
  260. 6026  DATA"If you need more subsets, or defined variables than the setting allows,":DATA"feel free to use a larger variable setting.":DATA"  ":DATA"Up to 4000 cases may be entered depending  on the amount of memory
  261. 6030  DATA"your PC has and the disk space you have available.":DATA"  ":DATA"Use the F4 key to reenter or edit labels.":DATA"
  262. 6040  DATA"OPEN Help screen":DATA"  ":DATA"Opening a file will allow you to view and edit the file's labels;":DATA"add or edit case data, subsets, and derived data definitions.":DATA"  
  263. 6055  DATA"No file extension needs to be specified at the filename prompt.":DATA"The disk drive prompt allows you to select any disk drive, or by":DATA"typing a <CR> select BASIC's logged drive.":DATA"  
  264. 6059  DATA"After the file is open, you are prompted to review the labels,":DATA"and the case data. The program will then return to the Main Menu.":DATA"
  265. 6070  DATA"INPUT/EDIT Help screen":DATA"  ":DATA"The Edit key (F4) can be used to edit cases as they are entered or ":DATA"after they are entered. To simply view cases, press the F4 key, and
  266. 6084  DATA"enter the case number. To see the next case, press <CR> at the prompt.":DATA"  ":DATA"If you type a number at the Case Number prompt, that case will be":DATA"displayed.":DATA" 
  267. 6089  DATA"If you change any data using the EDIT key, use F3 to save and continue.":DATA"  ":DATA"To return to Input mode from Edit mode, press F4. ":DATA"
  268. 6100  DATA"VARIABLE LABELS Help screen":DATA"  ":DATA"Enter the labels for your variables. The labels may be":DATA"up to 10 characters long. Use the F4 Edit key to make":DATA"any changes.":DATA"  
  269. 6116  DATA"Once you have entered these labels, you will not be able":DATA"to add others. However, you can use the defined variables":DATA"option to create what are, in effect, additional variables.":DATA"
  270. 6130  DATA"SUBSET Help screen":DATA" ":DATA"Legal operators are:<>,<,<=,>,>=,REJIF0 (reject case if any value = 0":DATA"  ":DATA"Subsets must be defined as: Xnumber  operator  constant/Xnumber
  271. 6154  DATA"Thus x1<3 is a legal subset and will select all cases where the ":DATA"variable x1 is less than 3.":DATA"  ":DATA"In general, specify all the subsets you need at one time. The 
  272. 6158  DATA"library program will allow you to select which of these to use":DATA"for a given routine.":DATA" ":DATA"If REJIF0 is selected, all cases having a zero as any variable value":DATA"will be rejected.":DATA"
  273. 6200  DATA"DEFINED DEFINITIONS Help screen":DATA" ":DATA"Defined variables may be added to your data base and selected for":DATA"treatment as any other variable. ":DATA" ":DATA"Operators supported are: +,-,*,/,^,LOG":DATA"  
  274. 6228  DATA"The definition must be in the form ":DATA"           Xnumber  operator   constant/Xnumber":DATA"Thus x1+4 is a legal definition, as is x4*x3, but x1+x2+4 is not.":DATA" 
  275. 6250  DATA"It is best to add these definitions before case data has been entered,":DATA"but, they may be added at any time, and file rewriting will occur.":DATA"
  276. 6270  DATA"PRINT Help screen":DATA"  ":DATA"The PRINT option from the Main Menu will print all cases which":DATA"satisfy the subset definitions specified.":DATA"  ":DATA"If subsets or derived variables have been defined or data has been
  277. 6286  DATA"entered, selecting this option will trigger disk file rewrite. ":DATA"Processing time will depend on the size of your database, and":DATAcould take several moments."":DATA"  
  278. 6290  DATA"To print any screen, press <SHIFT> and (PRTSC> at the same time.":DATA"
  279. 6300  DATA"EXIT HELP SCREEN":DATA"  ":DATA "Exiting the program will trigger any":DATA "disk writing which needs to take place.":DATA " ":DATA "The program will exit to BASIC will all functions reset.":DATA ""
  280. 6330  PROMPT$="(L)ABELS  (D)EFS  (S)UBS  (V)ALUES  (U)p  do(W)n  <CR> Return":CMD$="LDSVUW":GOSUB2180:IFFF<1ORFF>3THENFF=1:VFLAG=0:F1=0
  281. 6350  X$=INKEY$:IFX$=""THEN6350
  282. 6360  IFX$=CR$ORX$=ESC$THENRETURN
  283. 6370  GOSUB1840:CMD=INSTR(CMD$,X$):ONCMDGOSUB6450,6460,6470,6400,6430,6440:GOTO6350
  284. 6400  VFLAG=3-VFLAG:ON(FF+VFLAG)GOSUB6450,6460,6470,6480,6490,6500:RETURN
  285. 6430  F1=F1-FW:GOSUB2260:RETURN
  286. 6440  F1=F1+FW:GOSUB2260:RETURN
  287. 6450  FF=1:F0=BVARS:F2=F0+NVARS:F0=F0+1:F$="x":GOSUB2260:RETURN
  288. 6460  FF=2:F0=BDEFS:F2=F0+NDEFS:F0=F0+1:F$="d":GOSUB2260:RETURN
  289. 6470  FF=3:F0=BSUBS:F2=F0+NSUBS:F0=F0+1:F$="s":GOSUB2260:RETURN
  290. 6480  F0=BVARS+MAXLBLS:F2=F0+NVARS:F0=F0+1:F$="x":GOSUB2260:RETURN
  291. 6490  F0=BDEFS+MAXLBLS:F2=F0+NDEFS:F0=F0+1:F$="d":GOSUB2260:RETURN
  292. 6500  F0=BSUBS+MAXLBLS:F2=F0+NSUBS:F0=F0+1:F$="s":GOSUB2260:RETURN
  293. 6510  F0=BPTR+1:F1=FPTR-BPTR:F2=NPTR:F$=FTYP$:GOSUB2260:RETURN
  294. 6530  GOSUB2180:PRINTLIN$" evaluates to ";:CMD=1:GOSUB6950:ONOPGOSUB6590,6640,6660,6680,6700,6710,6720,6730,6750,6770,6800,6820,6840:IFCMD<>0THENPRINTSTR$(V);:RETURN
  295. 6580  PRINTPROMPT$;:PROMPT$="":RETURN
  296. 6590  V=1:FORJ=BVALS+1TOBVALS+NVARS:IFVAL(W$(J))=0THENV=0:J=BVALS+NVARS
  297. 6620  NEXT:RETURN
  298. 6640  V=0:IFARG1=ARG2THENV=1
  299. 6650  RETURN
  300. 6660  V=0:IFARG1<ARG2THENV=1
  301. 6670  RETURN
  302. 6680  V=0:IFARG1>ARG2THENV=1
  303. 6690  RETURN
  304. 6700  V=ARG1+ARG2:RETURN
  305. 6710  V=ARG1-ARG2:RETURN
  306. 6720  V=ARG1*ARG2:RETURN
  307. 6730  IFARG2=0THENV=0:PROMPT$="Division by 0":CMD=0:RETURN
  308. 6740  V=ARG1/ARG2:RETURN
  309. 6750  IFARG1<=0THENV=0:PROMPT$="LOG argument error":CMD=0:RETURN
  310. 6760  V=LOG(ARG1):RETURN
  311. 6770  IFARG1=0THENV=1:RETURN
  312. 6780  IFARG2*LOG(ABS(ARG1))>37THENV=0:PROMPT$="Overflow error":CMD=0:RETURN
  313. 6790  V=ARG1^ARG2:RETURN
  314. 6800  V=0:IFARG1>=ARG2THENV=1
  315. 6810  RETURN
  316. 6820  V=0:IFARG1<=ARG2THENV=1
  317. 6830  RETURN
  318. 6840  V=0:IFARG1<>ARG2THENV=1
  319. 6850  RETURN
  320. 6860  ONFTYPGOSUB6880,6890,6910,6930:RETURN
  321. 6880  W$=LIN$:RETURN
  322. 6890  GOSUB6950:IFOP<1OR(OP>=5ANDOP<=10)THENRETURN
  323. 6900  PROMPT$="Not a valid data definition":CMD=0:RETURN
  324. 6910  GOSUB6950:IFOP<5OROP>10THENRETURN
  325. 6920  PROMPT$="Not a valid subset definition":CMD=0:RETURN
  326. 6930  J=INT(VAL(LIN$)):IFABS(J)<=9999THENW$=STR$(J):RETURN
  327. 6940  CMD=0:PROMPT$="Bad data value":RETURN
  328. 6950  W$="":GOSUB6990:IFCMD=0OROP=0THENRETURN
  329. 6960  IFOP=1THENW$="REJIF0":RETURN
  330. 6970  IFOP=9THENW$="LOG ":GOSUB7210:RETURN
  331. 6980  GOSUB7150:RETURN
  332. 6990  G2=LEN(LIN$)-1:OP=0:FORJJ=1TOG2:X$=MID$(LIN$,JJ,1):OPTR=JJ:GOSUB7060:IFOP>0THENW$=X$:JJ=G2
  333. 7030  NEXT:IFOP=0THENCMD=0:PROMPT$="Don't recognize function
  334. 7050  RETURN
  335. 7060  GOSUB1840:OP=INSTR("R=<>+-*/L^",X$):IFOP<2OROP>6THENRETURN
  336. 7070  IFOP=5OROP=6THEN7130
  337. 7080  Y$=MID$(LIN$,OPTR+1,1):K=INSTR(">= => <= =< <>",X$+Y$):IFK=0THENRETURN
  338. 7090  OPTR=OPTR+1:X$=X$+Y$:IFK=1ORK=4THENOP=11:RETURN
  339. 7100  IFK=7ORK=10THENOP=12:RETURN
  340. 7110  IFK=13THENOP=13
  341. 7120  RETURN
  342. 7130  Y$=MID$(LIN$,OPTR+1,1):IFINSTR("0123456789",Y$)THENOP=0
  343. 7140  RETURN
  344. 7150  G1=1:G2=OPTR-1:GOSUB7240:IFCMD=0THENRETURN
  345. 7170  W$=ARG$+W$:ARG1=ARG:G1=OPTR+1:G2=LEN(LIN$):GOSUB7240:IFCMD=0THENRETURN
  346. 7200  W$=W$+ARG$:ARG2=ARG:RETURN
  347. 7210  G1=OPTR+1:G2=LEN(LIN$):GOSUB7240:IFCMD=0THENRETURN
  348. 7230  W$=W$+ARG$:ARG1=ARG:RETURN
  349. 7240  ARG$="":ARG=0:FORARGPTR=G1TOG2:X$=MID$(LIN$,ARGPTR,1):GOSUB1870:K=INSTR("xd+-0123456789",X$):IFK>0THENGOSUB7320:ARGPTR=G2
  350. 7290  NEXT:IFK=0THENCMD=0:PROMPT$="Bad argument
  351. 7310  RETURN
  352. 7320  IFK<3ANDARGPTR=G2THENK=0:RETURN
  353. 7330  IFK<3THENARGPTR=ARGPTR+1
  354. 7340  U=VAL(MID$(LIN$,ARGPTR)):IFK>2THENARG$=STR$(U):ARG=U:RETURN
  355. 7350  L=NVARS:IFK=2THENL=NDEFS
  356. 7360  IFU<1ORU>LTHENK=0:RETURN
  357. 7370  ARG$=X$+MID$(STR$(U),2):IFK=1THENARG=VAL(W$(BVALS+U)):RETURN
  358. 7390  IFK=1THENARG=VAL(W$(BVALS+U)):RETURN
  359. 7400  ARG=VAL(W$(BDEFS+MAXLBLS+U)):RETURN
  360. 7420  IFFILSPEC$=""THENGOSUB5560:RETURN
  361. 7430  MD=PRNT:X$="PRINT CASES":GOSUB1900:GOSUB3050:PROMPT$="Print all cases":GOSUB1700:IFX$="Y"THENGOSUB7530:RETURN
  362. 7470  IFFCMD=ESCTHEN7420
  363. 7480  IFFCMD<>0THENRETURN
  364. 7490  GOSUB7580
  365. 7500  GOSUB5740:IFFCMD=0THENGOSUB7690:GOTO7500
  366. 7510  GOSUB7770:RETURN
  367. 7530  GOSUB7580:FORCCASE=1TONCASE:GOSUB2860:GOSUB7690:NEXT:GOSUB7770:RETURN
  368. 7580  LPRINT:LPRINTFILNAM$;:IFFILDESC$<>""THENLPRINT": "FILDESC$;
  369. 7600  LPRINT"  CASE FILE LISTING":LPRINT:X$=SPACE$(7):LSETX$="CASE#":LPRINTX$;:K=1:L=BVARS:FORJ=1TONVARS:GOSUB7670:NEXT:L=BDEFS:FORJ=1TONDEFS:GOSUB7670:NEXT:L=BSUBS:FORJ=1TONSUBS:GOSUB7670:NEXT:IFKMOD6<>1THENLPRINT
  370. 7660  RETURN
  371. 7670  LPRINTW$(L+J);:K=K+1:IFKMOD6=1THENLPRINT:LPRINTSPACE$(7);
  372. 7680  RETURN
  373. 7690  X$=SPACE$(7):LSETX$=STR$(CCASE):LPRINT:LPRINTX$;:K=1:L=BVARS:FORJ=1TONVARS:GOSUB7750:NEXT:L=BDEFS:FORJ=1TONDEFS:GOSUB7750:NEXT:L=BSUBS:FORJ=1TONSUBS:GOSUB7750:NEXT:IFKMOD6<>1THENLPRINT
  374. 7740  RETURN
  375. 7750  LPRINTW$(L+MAXLBLS+J);:K=K+1:IFKMOD6=1THENLPRINT:LPRINTSPACE$(7);
  376. 7760  RETURN
  377. 7770  LPRINT:LPRINTSTR$(NCASE)" CASES IN FILE":RETURN
  378.