home *** CD-ROM | disk | FTP | other *** search
/ PCDisk Magazine Disks / PCDisk Magazine - Disk 4.img / LABEL.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1984-07-09  |  25.7 KB  |  301 lines

  1. 40  WIDTH 80:KEY OFF:FOR TY%=1 TO 10:KEY(TY%)OFF:KEY TY%,"":NEXT
  2. 60  CLEAR,,2000:LOCATE,,0:CLS:LOCATE3,8:PRINT"SPC(        SPC(       SPC(           SPC(               KEYTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENCLOSE":LOCATE4,8:PRINT"OPEN    STRING$SOUNDCOLOR PRESETSOUNDCOLOR STRING$SOUNDCOLOR OPEN STRING$SOUNDBSAVESOUNDCOLOR STRING$SOUNDCOLOR OPEN BSAVE  STRING$SOUNDCOLOR SPC(SOUNDCOLOR    OPEN  Personal Label Printing OPEN
  3. 100  LOCATE5,8:PRINT"OPEN    PRESETSOUND<0xB4!> OPEN CALL PRESETSOUND' OPEN OPEN CALL CALL PRESETSOUND<0xB4!> USINGSOUNDMOTORCOLOR PRESETSOUND' OPEN      OPEN  Program for IBM PC      OPEN":LOCATE6,8:PRINT"NOTSOUNDSOUNDMERGE USR MOTOR USRSOUND' NOTSOUND' USR USR MOTOR MOTOR USR MOTOR USR  MOTOR NOTSOUND' USR      OPEN                          OPEN
  4. 140  LOCATE7,7:PRINT"CLSSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDUSRSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDMERGE";:LOCATE1,33:PRINT"Version 1.D";:LOCATE24,10:PRINT"Copyright (C) 1983, 1984 D. T. Johnson   All Rights Reserved.";
  5. 180  CLX$="                                                                               
  6. 200  LOCATE12,1,1:LINEINPUT;" Enter Data File Name (8 characters maximum) ===> ";NEM$
  7. 220  IFLEN(NEM$)<1ORLEN(NEM$)>8THENLOCATE14,30:BEEP:COLOR20:PRINT"Invalid File Name";:FORP%=1TO3500:NEXT:COLOR7:LOCATE12,1:PRINTCLX$;:LOCATE14,1:PRINTCLX$;:GOTO200
  8. 240  LOCATE12,1:PRINTCLX$;:LOCATE12,1:LINEINPUT;"            Specify Disk Drive (A-D) ===> ";DD$:IFLEN(DD$)<>1THENDD$="R
  9. 260  IFASC(DD$)<65ORASC(DD$)>69THENIFASC(DD$)<97ORASC(DD$)>100THENLOCATE14,31:BEEP:COLOR20,0,0:PRINT"Invalid Disk Drive";:FORP%=1TO3500:NEXT:COLOR7:LOCATE12,1:PRINTCLX$;:LOCATE14,1:PRINTCLX$;:GOTO240
  10. 280  TNEM$="":FORAR%=1TOLEN(NEM$):ARS%=ASC(MID$(NEM$,AR%,1)):IFARS%>96ANDARS%<123THENARS%=ARS%-32
  11. 300  TNEM$=TNEM$+CHR$(ARS%):NEXTAR%:NEM$=TNEM$:ARS%=ASC(DD$):IFARS%>96ANDARS%<123THENARS%=ARS%-32
  12. 320  DD$=CHR$(ARS%):DF1$=DD$+":"+NEM$+".CFG":DF2$=DD$+":"+NEM$+".RDT":ONERRORGOTO0
  13. 380  LOCATE,,0:ONERRORGOTO5660
  14. 420  OPEN DF1$ FOR INPUT AS #1:INPUT#1,N%,ACS%,LLS%,BTH%,BTV%,LPL%:DIMFPTR%(3000),URN%(3000):FORAR%=1TON%:INPUT#1,FPTR%(AR%):NEXTAR%:INPUT#1,UURN%:IFUURN%=0THENCLOSE1ELSEFORAR%=1TOUURN%:INPUT#1,URN%(AR%):NEXTAR%:CLOSE1
  15. 500  OPEN DF2$ AS #2 LEN=(LLS%*LPL%)+8:DIML1$(LPL%):ONERRORGOTO0
  16. 540  ONLPL%GOTO560,580,600,620,640,660,680,700,720,740,760,780,800,820,840
  17. 560  FIELD #2,8 AS TT$,LLS% AS L1$(1):GOTO850
  18. 580  FIELD #2,8 AS TT$,LLS% AS L1$(1),LLS% AS L1$(2):GOTO850
  19. 600  FIELD #2,8 AS TT$,LLS% AS L1$(1),LLS% AS L1$(2),LLS% AS L1$(3):GOTO850
  20. 620  FIELD #2,8 AS TT$,LLS% AS L1$(1),LLS% AS L1$(2),LLS% AS L1$(3),LLS% AS L1$(4):GOTO850
  21. 640  FIELD #2,8 AS TT$,LLS% AS L1$(1),LLS% AS L1$(2),LLS% AS L1$(3),LLS% AS L1$(4),LLS% AS L1$(5):GOTO850
  22. 660  FIELD #2,8 AS TT$,LLS% AS L1$(1),LLS% AS L1$(2),LLS% AS L1$(3),LLS% AS L1$(4),LLS% AS L1$(5),LLS% AS L1$(6):GOTO850
  23. 680  FIELD #2,8 AS TT$,LLS% AS L1$(1),LLS% AS L1$(2),LLS% AS L1$(3),LLS% AS L1$(4),LLS% AS L1$(5),LLS% AS L1$(6),LLS% AS L1$(7):GOTO850
  24. 700  FIELD #2,8 AS TT$,LLS% AS L1$(1),LLS% AS L1$(2),LLS% AS L1$(3),LLS% AS L1$(4),LLS% AS L1$(5),LLS% AS L1$(6),LLS% AS L1$(7),LLS% AS L1$(8):GOTO850
  25. 720  FIELD #2,8 AS TT$,LLS% AS L1$(1),LLS% AS L1$(2),LLS% AS L1$(3),LLS% AS L1$(4),LLS% AS L1$(5),LLS% AS L1$(6),LLS% AS L1$(7),LLS% AS L1$(8),LLS% AS L1$(9):GOTO850
  26. 740  FIELD #2,8 AS TT$,LLS% AS L1$(1),LLS% AS L1$(2),LLS% AS L1$(3),LLS% AS L1$(4),LLS% AS L1$(5),LLS% AS L1$(6),LLS% AS L1$(7),LLS% AS L1$(8),LLS% AS L1$(9),LLS% AS L1$(10):GOTO850
  27. 760  FIELD #2,8 AS TT$,LLS% AS L1$(1),LLS% AS L1$(2),LLS% AS L1$(3),LLS% AS L1$(4),LLS% AS L1$(5),LLS% AS L1$(6),LLS% AS L1$(7),LLS% AS L1$(8),LLS% AS L1$(9),LLS% AS L1$(10),LLS% AS L1$(11):GOTO850
  28. 780  FIELD #2,8 AS TT$,LLS% AS L1$(1),LLS% AS L1$(2),LLS% AS L1$(3),LLS% AS L1$(4),LLS% AS L1$(5),LLS% AS L1$(6),LLS% AS L1$(7),LLS% AS L1$(8),LLS% AS L1$(9),LLS% AS L1$(10),LLS% AS L1$(11),LLS% AS L1$(12):GOTO850
  29. 800  FIELD #2,8 AS TT$,LLS% AS L1$(1),LLS% AS L1$(2),LLS% AS L1$(3),LLS% AS L1$(4),LLS% AS L1$(5),LLS% AS L1$(6),LLS% AS L1$(7),LLS% AS L1$(8),LLS% AS L1$(9),LLS% AS L1$(10),LLS% AS L1$(11),LLS% AS L1$(12),LLS% AS L1$(13):GOTO850
  30. 820  FIELD #2,8 AS TT$,LLS% AS L1$(1),LLS% AS L1$(2),LLS% AS L1$(3),LLS% AS L1$(4),LLS% AS L1$(5),LLS% AS L1$(6),LLS% AS L1$(7),LLS% AS L1$(8),LLS% AS L1$(9),LLS% AS L1$(10),LLS% AS L1$(11),LLS% AS L1$(12),LLS% AS L1$(13),LLS% AS L1$(14):GOTO850
  31. 840  FIELD #2,8 AS TT$,LLS% AS L1$(1),LLS% AS L1$(2),LLS% AS L1$(3),LLS% AS L1$(4),LLS% AS L1$(5),LLS% AS L1$(6),LLS% AS L1$(7),LLS% AS L1$(8),LLS% AS L1$(9),LLS% AS L1$(10),LLS% AS L1$(11),LLS% AS L1$(12),LLS% AS L1$(13),LLS% AS L1$(14),LLS% AS L1$(15)
  32. 850  DIMLBL%(5000)
  33. 860  CLS:COLOR0,7,0:LOCATE4,30:PRINT" L A B E L M A K E R ";:COLOR7,0,0:LOCATE6,2:PRINT"Current File: ";NEM$;:LOCATE6,60:PRINT"Number of Labels:";N%;
  34. 880  LOCATE6,28:COLOR15,0,0:PRINT"-------- Options --------";:LOCATE8,24:COLOR15,0,0:PRINT"A   ";:PRINT"Add";:COLOR7,0,0:PRINT" a label to the file";:LOCATE9,24:COLOR15,0,0:PRINT"D   ";:PRINT"Display/Edit/Select";:COLOR7,0,0:PRINT" labels";
  35. 940  LOCATE10,24:COLOR15,0,0:PRINT"F   ";:PRINT"File Categories";:COLOR7,0,0:PRINT" in file";:LOCATE11,24:COLOR15,0,0:PRINT"C   ";:PRINT"Change";:COLOR7,0,0:PRINT" active file";
  36. 980  LOCATE12,24:COLOR15,0,0:PRINT"S   ";:PRINT"Sort";:COLOR7,0,0:PRINT" the labels in the file";:LOCATE13,24:COLOR15,0,0:PRINT"U   ";:PRINT"Utilities";:COLOR7,0,0:PRINT" for print and file format";
  37. 1020  LOCATE14,24:COLOR15,0,0:PRINT"P   ";:PRINT"Print";:COLOR7,0,0:PRINT" previously selected labels";:LOCATE15,24:COLOR15,0,0:PRINT"E   ";:PRINT"End";:COLOR7,0,0:COLOR7,0,0
  38. 1080  LOCATE18,28:PRINT"Enter Choice: ":LOCATE18,42,1
  39. 1100  CH$=INKEY$:IFCH$=""THEN1100
  40. 1120  IFCH$="A"ORCH$="a"THENADDD$="yes":GOTO1660
  41. 1140  IFCH$="D"ORCH$="d"THEN1600
  42. 1160  IFCH$="C"ORCH$="c"THEN60
  43. 1180  IFCH$="F"ORCH$="f"THEN1480
  44. 1200  IFCH$="S"ORCH$="s"THEN1300
  45. 1220  IFCH$="P"ORCH$="p"THENIFPRNT$="yes"THENPRNT$="":GOTO2860ELSELOCATE24,16:BEEP:COLOR20:PRINT"No print output selected.  Select in Display mode";:COLOR7:FORP%=1TO4000:NEXTP%:LOCATE24,1:PRINTCLX$;:GOTO880
  46. 1240  IFCH$="U"ORCH$="u"THEN5960
  47. 1260  IFCH$="E"ORCH$="e"THEN7440
  48. 1280  GOTO880
  49. 1300  IFN%=0THENLOCATE20,33:PRINT"File is empty";:BEEP:FORPS%=1TO3000:NEXT:LOCATE20,1:PRINTCLX$;:GOTO1080
  50. 1320  LOCATE18,1:PRINTCLX$;:LOCATE18,24:PRINT"Sort by (C)ategory or (L)ine Number?":LOCATE18,60,1
  51. 1340  A$=INKEY$:IFA$=""THEN1340
  52. 1360  IFA$="c"ORA$="C"THENKL%=16:GOTO5100
  53. 1380  IFA$="l"ORA$="L"THENLOCATE22,24:PRINT"Enter line to sort by: (A-";CHR$(64+LPL%);")";ELSELOCATE22,33:PRINT"Invalid Choice";:BEEP:FORPS=1TO2000:NEXT:LOCATE20,1:PRINTCLX$;:LOCATE22,1:PRINTCLX$;:GOTO1080
  54. 1400  A$=INKEY$:IFA$=""THEN1400
  55. 1420  IFASC(A$)>64ANDASC(A$)<65+LPL%THENKL%=ASC(A$)-64:GOTO5100
  56. 1440  IFASC(A$)>96ANDASC(A$)<97+LPL%THENKL%=ASC(A$)-96:GOTO5100
  57. 1460  LOCATE24,34:PRINT"Invalid Line";:BEEP:FORPS=1TO2000:NEXT:LOCATE20,1:PRINTCLX$;:LOCATE22,1:PRINTCLX$;:LOCATE24,1:PRINTCLX$;:GOTO1080
  58. 1480  YY$="":CC%=0:CF%=0:OLN%=5:CLS:LOCATE1,9:PRINT"File Categories";:LOCATE3,5:PRINT"Category    No. Labels";:FORYY%=1TON%:GET#2,FPTR%(YY%):IFYY%=1THENCC%=CC%+1:CF%=CF%+1:LOCATEOLN%,5:PRINTTT$;:GOTO1540
  59. 1500  IFTT$=YY$THENCC%=CC%+1:GOTO1540
  60. 1520  IFTT$<>YY$THENCF%=CF%+1:LOCATEOLN%,20:PRINTCC%:CC%=1:OLN%=OLN%+1:LOCATEOLN%,5:PRINTTT$;
  61. 1540  IFOLN%>23THENOLN%=5:LOCATE24,4:PRINT"Strike a key to continue";:U$=INKEY$:IFU$=""THENOLN%=50:GOTO1540 ELSECLS:LOCATE1,9:PRINT"File Categories";:LOCATE3,5:PRINT"Category    No. Records";:LOCATE5,5:PRINTTT$;:GOTO1560
  62. 1560  YY$=TT$:NEXTYY%:IFYY%=N%+1THENLOCATEOLN%,20:PRINTCC%;:LOCATEOLN%+2,4:PRINT"Strike a key to continue";
  63. 1580  U$=INKEY$:IFU$=""THEN1580 ELSE860
  64. 1600  IFN%=0THENAON%=0:GOTO1640ELSELOCATE18,21,1:PRINT;"Enter category (8 characters maximum)":LOCATE19,21:LINEINPUT;"or press ENTER for all: ";CTG$:CTG$=LEFT$(CTG$,8):IFCTG$=""THENAON%=0:GOTO1640
  65. 1620  FORSE%=1TON%:GET#2,FPTR%(SE%):IFINSTR(TT$,CTG$)>0THENAON%=SE%:GOTO1640ELSENEXTSE%:LOCATE18,1:PRINTCLX$;:LOCATE19,1:PRINTCLX$;:LOCATE20,26:PRINT"Category ";CTG$;" not found";:BEEP:FORPS%=1TO5000:NEXT:LOCATE20,1:PRINTCLX$;:GOTO1080
  66. 1640  IFAON%<1THEN3520 ELSE3540
  67. 1660  CLS:COLOR0,7,0:LOCATE1,6:PRINT" ADD LABEL option ";:COLOR7,0,0:LOCATE1,30:PRINT"Current File: ";NEM$;"      Number of Labels:";N%;
  68. 1680  IFADDD$="yes"THENADDD$="":LOCATE4,8:LINEINPUT;"Choose Label Category (8 characters maximum):";CTG$:CTG$=LEFT$(CTG$,8):LOCATE4,1:PRINTCLX$;
  69. 1700  LOCATE2,54:PRINT"Current Category: ";CTG$;:LOCATE4,1:PRINT"There are";LPL%;"lines defined on each label.";:LOCATE5,1:PRINT"Enter the characters for each line as they are requested.";:DIMA$(LPL%):FORAR%=1TOLPL%
  70. 1740  LOCATE6+AR%,9+INT(AR%/10):FORA%=1TOLLS%:PRINT"-";:NEXT:LOCATE6+AR%,1:PRINT"Line";AR%;:LOCATE6+AR%,7+INT(AR%/10):PRINT":";:LOCATE6+AR%,9+INT(AR%/10):LINEINPUT;A$(AR%):A1%=LEN(A$(AR%)):IFA1%>LLS%THEN3500
  71. 1760  NEXTAR%:SHORT$="yes":U%=2:DIMR1$(LPL%):FORAR%=1TOLPL%:R1$(AR%)=SPACE$(LLS%):LSETR1$(AR%)=A$(AR%):NEXTAR%:ERASEA$:DIMA$(LPL%):FORAR%=1TOLPL%:A$(AR%)=R1$(AR%):NEXTAR%
  72. 1800  CLS:COLOR0,7:LOCATE1,6:PRINT" ADD LABEL option ";:COLOR7,0:LOCATE1,30:PRINT"Current File: ";NEM$;"      Number of Labels:";N%;:LOCATE2,54:PRINT"Current Category: ";CTG$;:GOSUB4840
  73. 1820  LOCATE5+LPL%,1:PRINTCLX$;:LOCATE7+LPL%,27:PRINTCTG$;:LOCATE7+LPL%,3:PRINT"Enter a label category";:LOCATE7+LPL%,25:PRINT":";:LOCATE7+LPL%,27:LINEINPUT;TITLE$:IFTITLE$=""THENTITLE$=CTG$ ELSECTG$=TITLE$
  74. 1840  TITLE$=LEFT$(TITLE$,8):IFN%>2999THENLOCATE24,20:COLOR20:BEEP:PRINT"Maximum number of labels allowed is 3000";:BEEP:FORP%=1TO5500:NEXT:COLOR7:ERASEA$:GOTO860
  75. 1880  N%=N%+1:IFUURN%>0THENN5%=URN%(UURN%):UURN%=UURN%-1ELSEN5%=N%
  76. 1900  LSETTT$=TITLE$:FORAR%=1TOLPL%:LSETL1$(AR%)=A$(AR%):NEXTAR%:FPTR%(N%)=N5%:PUT#2,FPTR%(N%):ERASEA$:OPEN DF1$ FOR OUTPUT AS #1
  77. 1940  WRITE#1,N%,ACS%,LLS%,BTH%,BTV%,LPL%:FORAR%=1TON%:WRITE#1,FPTR%(AR%):NEXTAR%:WRITE#1,UURN%:IFUURN%=0THENCLOSE1:GOTO1960ELSEFORAR%=1TOUURN%:WRITE#1,URN%(AR%):NEXTAR%:CLOSE1
  78. 1960  LOCATE 1,30:PRINT"Current File: ";NEM$;"      Number of Labels:";N%;:LOCATE 2,72:PRINT"        ";:LOCATE 2,54:PRINT"Current Category: ";CTG$;
  79. 1980  LOCATE9+LPL%,15:PRINT"Options:     ";:COLOR10:PRINT"Esc";:COLOR7:PRINT"      ";:COLOR10:PRINT"A";:COLOR7:PRINT"DD LABEL       Enter Option";
  80. 2000  PR$=INKEY$:IFPR$=""THEN2000
  81. 2020  IF(PR$=CHR$(27))THEN860
  82. 2040  IF(PR$="A")OR(PR$="a")THEN1660ELSE2000
  83. 2060  QPNT$="":MPNT$="":LU%=LEN(NMB$):DIMCY$(LU%):FORTY%=1TOLU%:CY$(TY%)=MID$(NMB$,TY%,1):IF(ASC(CY$(TY%))<48)OR(ASC(CY$(TY%))>57)THENIF(CY$(TY%)<>"-")AND(CY$(TY%)<>",")THENEYR$="yes":RETURN
  84. 2100  IFCY$(TY%)="-"ANDTY%=1ORCY$(TY%)=","ANDTY%=1THENEYR$="yes":RETURN
  85. 2120  IF(CY$(TY%)="-")AND(MPNT$="yes")THENEYR$="yes":RETURN
  86. 2140  IF(CY$(TY%)=",")AND(QPNT$="yes")THENEYR$="yes":RETURN
  87. 2160  IF(CY$(TY%)="-")AND(QPNT$="yes")THENEYR$="yes":RETURN
  88. 2180  IFCY$(TY%)=","ANDCY$(TY%-1)="-"THENEYR$="yes":RETURN
  89. 2200  IFCY$(TY%)=","THENIFQPNT$<>"yes"THENIFTY%<>1THENQPNT$="yes":QY%=TY%
  90. 2220  IFCY$(TY%)="-"THENIFMPNT$<>"yes"THENIFTY%<>1THENMPNT$="yes":MY%=TY%
  91. 2240  NEXTTY%:NBA%=0:NBB%=0:NBQ%=0:IFMPNT$="yes"ANDQPNT$="yes"THEN2520
  92. 2280  IFMPNT$="yes"ANDQPNT$<>"yes"THEN2460
  93. 2300  IFMPNT$<>"yes"ANDQPNT$="yes"THEN2400
  94. 2320  IFMPNT$<>="yes"ANDQPNT$<>"yes"THEN2360
  95. 2340  EYR$="yes":RETURN
  96. 2360  NBA$="":FORTY%=1TOLU%:NBA$=CY$(TY%)+NBA$:NEXT:CTR%=0:NBA%=0:FORTY%=LU%TO1STEP-1:NBA%=NBA%+((ASC(CY$(TY%))-48)*10^CTR%):CTR%=CTR%+1:NEXT:GOTO2600
  97. 2400  NBA$="":FORTY%=1TOQY%-1:NBA$=CY$(TY%)+NBA$:NEXT:NBQ$="":FORTY%=QY%+1TOLU%:NBQ$=NBQ$+CY$(TY%):NEXT:CTR%=0:NBA%=0:FORTY%=QY%-1TO1STEP-1:NBA%=NBA%+((ASC(CY$(TY%))-48)*10^CTR%):CTR%=CTR%+1:NEXT
  98. 2440  CTR%=0:NBQ%=0:FORTY%=LU%TOQY%+1STEP-1:NBQ%=NBQ%+((ASC(CY$(TY%))-48)*10^CTR%):CTR%=CTR%+1:NEXT:GOTO2600
  99. 2460  NBA$="":FORTY%=1TOMY%-1:NBA$=CY$(TY%)+NBA$:NEXT:NBB$="":FORTY%=MY%+1TOLU%:NBB$=NBB$+CY$(TY%):NEXT:CTR%=0:NBA%=0:FORTY%=MY%-1TO1STEP-1:NBA%=NBA%+((ASC(CY$(TY%))-48)*10^CTR%):CTR%=CTR%+1:NEXT
  100. 2500  CTR%=0:NBB%=0:FORTY%=LU%TOMY%+1STEP-1:NBB%=NBB%+((ASC(CY$(TY%))-48)*10^CTR%):CTR%=CTR%+1:NEXT:GOTO2600
  101. 2520  NBA$="":FORTY%=1TOMY%-1:NBA$=CY$(TY%)+NBA$:NEXT:NBB$="":FORTY%=MY%+1TOQY%-1:NBB$=NBB$+CY$(TY%):NEXT:NBQ$="":FORTY%=QY%+1TOLU%:NBQ$=CY$(TY%)+NBQ$:NEXT
  102. 2540  CTR%=0:NBA%=0:FORTY%=MY%-1TO1STEP-1:NBA%=NBA%+((ASC(CY$(TY%))-48)*10^CTR%):CTR%=CTR%+1:NEXT:CTR%=0:NBB%=0:FORTY%=QY%-1TOMY%+1STEP-1:NBB%=NBB%+((ASC(CY$(TY%))-48)*10^CTR%):CTR%=CTR%+1:NEXT
  103. 2580  CTR%=0:NBQ%=0:FORTY%=LU%TOQY%+1STEP-1:NBQ%=NBQ%+((ASC(CY$(TY%))-48)*10^CTR%):CTR%=CTR%+1:NEXT:GOTO2600
  104. 2600  IF(NBA%<1)OR(NBA%>N%)THENEYR$="yes":RETURN
  105. 2620  IFMPNT$="yes"THENIF(NBB%<1)OR(NBB%>N%)THENEYR$="yes":RETURN
  106. 2640  IFQPNT$<>"yes"THENNBQ%=1
  107. 2660  IFMPNT$="yes"THENIFNBB%<NBA%THENTPP%=NBB%:NBB%=NBA%:NBA%=TPP%
  108. 2680  IFPRNT$<>"yes"THENPRNT$="yes":CYT%=0:NM%=0:TL%=0
  109. 2700  IFNBB%=0THENNBB%=NBA%
  110. 2720  IFCYT%>=5000THEN2840
  111. 2740  IFK$="0"THEN2820
  112. 2760  IFKS$=""THEN2820
  113. 2780  GOSUB7480:GOTO2840
  114. 2820  FORAC%=NBA%TONBB%:FORBC%=1TONBQ%:TL%=TL%+1:CYT%=CYT%+1:IFCYT%>5000THENCYT%=5000:GOTO2840ELSELBL%(CYT%)=AC%:NEXT:NM%=NM%+1:NEXT
  115. 2840  EYR$="":ERASECY$:SOUND500,2:RETURN
  116. 2860  CLS:LOCATE 1,9:COLOR 0,7,0:PRINT" PRINT option ";:COLOR 7,0,0:LOCATE 1,30:PRINT"Current File: ";NEM$;"      Number of Labels:";N%;:LOCATE 5,1:PRINT"Number of labels selected: ";NM%:LOCATE 7,1:PRINT"Total number of labels to be printed: ";CYT%
  117. 2900  IFTL%>5000THENLOCATE14,1:PRINT"WARNING - - More than 5000 labels requested.  The first 5000 will be printed.";
  118. 2920  LOCATE3,50:PRINT"Number across: ";ACS%:LOCATE4,50:PRINT"Spaces bet. labels: ";BTH%;:LOCATE5,50:PRINT"Lines bet. labels: ";BTV%;:LOCATE6,50:PRINT"Lines on ea. label: ";LPL%;:LOCATE7,50:PRINT"Chars. on ea. label: ";LLS%;
  119. 3020  LOCATE10,1:PRINT"Turn the printer on.";:BEEP:BEEP:LOCATE12,1:PRINT"Strike any key when ready";:COLOR7,0,0
  120. 3040  I$=INKEY$:IFI$=""THEN3040
  121. 3060  IFI$=CHR$(27)THENERASELBL%:CYT%=0:NM%=0:NBQ%=0:GOTO850
  122. 3080  LPRINTTAB(1);:LOCATE10,25:PRINT"Position the label feedstock in the printer.";:BEEP:BEEP:LOCATE12,1:PRINTCLX$;:LOCATE12,31:PRINT"Strike any key when ready";:COLOR7
  123. 3100  I$=INKEY$:IFI$=""THEN3100
  124. 3120  IFI$=CHR$(27)THENERASELBL%:GOTO850
  125. 3140  LOCATE12,1:PRINTCLX$;:DIMLBP$(ACS%,LPL%):WIDTH"lpt1:",255:LOCATE17,12:PRINT"Printing...";:ROWS%=((CYT%/ACS%)-0.51)+1:FORG%=1TOROWS%*ACS%STEPACS%:FORLN%=1TOACS%
  126. 3240  IFFPTR%(LBL%(G%+LN%-1))=0THENFORAR%=1TOLPL%:LBP$(LN%,AR%)="":NEXT:CYT%=0:NM%=0:NBQ%=0:GOTO3280
  127. 3260  GET#2,FPTR%(LBL%(G%+LN%-1)):FORAR%=1TOLPL%:LBP$(LN%,AR%)=L1$(AR%):NEXT
  128. 3280  NEXTLN%:WIDTH"LPT1:",255:FORAR%=1TOLPL%:LPRINTTAB(1):FORLBP%=1TOACS%:CP%=1+LBP%*(LLS%+BTH%):IFLBP%=ACS%THENCP%=1
  129. 3440  LPRINTLBP$(LBP%,AR%);TAB(CP%):NEXT:NEXT:FORSK%=1TOBTV%:LPRINTCHR$(13);:NEXTSK%:NEXTG%:ERASELBP$,LBL%:CYT%=0:NM%=0:GOTO850
  130. 3500  LOCATE6+AR%,1:PRINTCLX$;:LOCATE6+AR%,1:SOUND250,2:SOUND32767,1:SOUND200,2:PRINT"Each line must be less than";LLS%+1;"characters long.";:FORPAUSE=1TO4000:NEXT:LOCATE6+AR%,1:PRINTCLX$;:GOTO1740
  131. 3520  AON%=1
  132. 3540  DIMXNUM%(18),TITLE$(18),FLNE$(18)
  133. 3560  IFN%=0THENB%=1:GOTO3640
  134. 3580  PP%=AON%:FORV%=1TO18:GET#2,FPTR%(PP%):PP%=PP%+1:XNUM%(V%)=PP%-1:TITLE$(V%)=TT$:FLNE$(V%)=L1$(1):IFPP%>N%THENB%=V%:GOTO3640
  135. 3620  NEXTV%:B%=V%-1
  136. 3640  CLS:LOCATE 1,8:COLOR 0,7,0:PRINT" DISPLAY option ";:COLOR 7,0,0:LOCATE 1,30:PRINT"Current File: ";NEM$;"      Number of Labels:";N%;
  137. 3660  LOCATE3,1:PRINT"-No.-  -Category-   -------------------------First Line-------------------------";:PP%=0:FORI%=1TOB%:S%=I%+3:IFN%=0THENLOCATES%,1:PRINT"        File is empty";:GOTO3720
  138. 3700  LOCATES%,6-LEN(STR$(XNUM%(I%))):PRINTXNUM%(I%):LOCATES%,9:PRINTTITLE$(I%);:LOCATES%,21:PRINTFLNE$(I%)
  139. 3720  IFXNUM%(I%)>=N%THENLOCATES%+1,1:PRINT"----------------------------------End of file-----------------------------------";:GOTO3760
  140. 3740  NEXTI%
  141. 3760  LOCATE23,1:COLOR10:PRINT"<";:COLOR7:PRINT" Previous Page   ";:COLOR10:PRINT">";:COLOR7:PRINT" NEXT PAGE   ";:COLOR10:PRINT"ESC";:COLOR7:PRINT" MAIN MENU ";
  142. 3780  LOCATE23,52:COLOR10:PRINT"D";:COLOR7:PRINT"ISPLAY, ";:COLOR10:PRINT"E";:COLOR7:PRINT"DIT, ";:COLOR10:PRINT"S";:COLOR7:PRINT"ELECT?";
  143. 3800  PR$=INKEY$:IFPR$=""THEN3800
  144. 3820  IF(PR$="e")OR(PR$="E")THENEDTT$="yes":GOTO4220
  145. 3840  IF(PR$="d")OR(PR$="D")THEN4220
  146. 3860  IF(PR$="s")OR(PR$="S")THEN3960
  147. 3880  IF(PR$="<")THENAON%=AON%-18:GOTO4160
  148. 3900  IF(PR$=">")THENAON%=AON%+18:GOTO4160
  149. 3920  IF(PR$=CHR$(27))THENERASEXNUM%,TITLE$,FLNE$:GOTO860
  150. 3940  GOTO3800
  151. 3960  K$="0":KS$="":LOCATE23,1:PRINTCLX$:LOCATE23,1:COLOR10:PRINT"Select ";:COLOR7:PRINT"by ";:COLOR10:PRINT"L";:COLOR7:PRINT"ine number, or ";:COLOR10:PRINT"C";:COLOR7:PRINT"haracter string ":LOCATE23,43,1
  152. 3965  A$=INKEY$:IFA$=""GOTO3965
  153. 3970  IFA$="C"ORA$="c"THEN4020
  154. 3980  IFA$="L"ORA$="l"THEN4000 ELSE3760
  155. 4000  LOCATE23,1:PRINTCLX$:LOCATE23,1:LINEINPUT;"Label number(s) to print? (NNN,qqq or NNN-YYY,qqq) ";NMB$:GOSUB2060:GOTO4100
  156. 4020  LOCATE23,1:PRINTCLX$:LOCATE23,1:LINEINPUT"Character string to use when selecting labels ";KS$:IFKS$=""THEN3760
  157. 4060  IFLEN(KS$)>LLS%THENPRINT"CHARACTER STRING TO LONG:GOTO 1800
  158. 4070  LOCATE23,1:PRINTSTRING$(70,32):LOCATE23,1:INPUT;"How many of this label to print -- (ENTER=1) ";NBQ$:IFNBQ$=""THENNBQ%=1 ELSENBQ%=VAL(NBQ$)
  159. 4080  K$="1":GOSUB7480
  160. 4100  IFEYR$="yes"THENEYR$="":COLOR20,0,0:LOCATE25,25:PRINT"Invalid label number(s)";:SOUND777,6:SOUND32767,6:FORP%=1TO2500:NEXTP%:COLOR7,0,0:LOCATE25,1:PRINTCLX$;:ERASECY$:MPNT$="":QPNT$="":MLTPLE$="":SRT$="":BRANCH$="
  161. 4140  LOCATE23,1:PRINTCLX$;:GOTO3760
  162. 4160  IFAON%<1THENAON%=1
  163. 4180  IFAON%>N%THENIFN%>0THENAON%=N% ELSEAON%=1
  164. 4200  GOTO3560
  165. 4220  LOCATE23,1:PRINTCLX$;:LOCATE24,30:INPUT;"Enter Label Number: ",DSP%
  166. 4240  IFDSP%<1ORDSP%>N%THENCOLOR20,0,0:LOCATE25,29:PRINT"Label";DSP%;"does not exist";:SOUND777,3:SOUND32767,3:SOUND777,6:FORP%=1TO1500:NEXTP%:COLOR7,0,0:LOCATE24,1:PRINTCLX$;:LOCATE25,1:PRINTCLX$;:BRANCH$="":GOTO3760
  167. 4260  CLS:GET#2,FPTR%(DSP%):DIMR1$(LPL%):FORAR%=1TOLPL%:R1$(AR%)=L1$(AR%):NEXTAR%:SHORT$="no":U%=2:GOTO4840
  168. 4280  IFPRNT$="yes"THENLOCATE23,9:BEEP:BEEP:BEEP:COLOR20,0,0:PRINT"* * Removal not possible until selected labels are printed * *";:COLOR7,0,0:FORP%=1TO4000:NEXTP%:LOCATE23,1:PRINTCLX$;:BRANCH$="":GOTO3640
  169. 4300  CLS:LOCATE 1,6:COLOR 0,7,0:PRINT" DELETE LABEL option ";:COLOR 7,0,0:LOCATE 1,30:PRINT"Current File: ";NEM$;"      Number of Labels:";N%;:GET#2,FPTR%(NBA%):DIM R1$(LPL%):FOR AR%=1 TO LPL%:R1$(AR%)=L1$(AR%):NEXT AR%:SHORT$="yes":U%=2:GOSUB 4840
  170. 4360  TMK%=AR%:NBB%=NBA%:LOCATETMK%+5,34:PRINT"deleting...";:FORAQ%=NBA%TONBB%:UURN%=UURN%+1:URN%(UURN%)=FPTR%(AQ%):NEXTAQ%:N%=(N%-(NBB%-NBA%))-1:FORCP%=NBA%TON%:FPTR%(CP%)=FPTR%(CP%+(NBB%-NBA%)+1):NEXTCP%:OPEN DF1$ FOR OUTPUT AS #1
  171. 4440  WRITE#1,N%,ACS%,LLS%,BTH%,BTV%,LPL%:FORAR%=1TON%:WRITE#1,FPTR%(AR%):NEXTAR%:WRITE#1,UURN%:IFUURN%=0THENCLOSE1:GOTO860ELSEFORAR%=1TOUURN%:WRITE#1,URN%(AR%):NEXTAR%:CLOSE1
  172. 4460  LOCATETMK%+7,27:COLOR18,0,0:PRINT"***** Label deleted *****";:FORR=1TO1250:NEXTR:COLOR7,0,0:GOTO3580
  173. 4500  CLS:LOCATE 1,9:COLOR 0,7,0:PRINT" CHANGE option ";:COLOR 7,0,0:LOCATE 1,30:PRINT"Current File: ";NEM$;"      Number of Labels:";N%;
  174. 4520  LOCATE3,1:PRINTCLX$;:GET#2,FPTR%(NB%):DIMR1$(LPL%+1):R1$(LPL%+1)=TT$:FORAR%=1TOLPL%:R1$(AR%)=L1$(AR%):NEXTAR%
  175. 4540  LNL$=SPACE$(LLS%):LM%=(80-LLS%)/2:IFLM%<9THENLM%=9
  176. 4580  IF(V%>64)AND(V%<LPL%+65)THENLOCATEV%-62,LM%:COLOR0,7,0:PRINTLNL$;:COLOR7,0,0
  177. 4600  FORAR%=1TOLPL%:LOCATE2+AR%,LM%-4:PRINTCHR$(AR%+64);:LOCATE2+AR%,LM%-3:PRINT")  ";:COLOR0,7,0:LOCATE2+AR%,LM%:PRINTR1$(AR%);:COLOR7,0,0:NEXTAR%:TLM%=LM%:IF(TLM%-14)<1THENTLM%=15
  178. 4660  TMK%=AR%+3:IFV%=LPL%+65THENLOCATETMK%,1:PRINTCLX$;
  179. 4680  LOCATETMK%,TLM%-14:PRINT"Category: ";CHR$(LPL%+65);")  ";:LOCATETMK%,TLM%:PRINTR1$(LPL%+1);
  180. 4700  CMK%=TMK%+2:LOCATE CMK%,1:PRINT CLX$;:LOCATE CMK%,7:COLOR 3,0,0:PRINT"Enter letter of line to change";:COLOR 7,0,0:PRINT"     (strike SPACE BAR to end)";
  181. 4720  H$=INKEY$:IFH$=""THEN4720 ELSEV%=ASC(H$)
  182. 4740  IF(V%>96)AND(V%<113)THENV%=V%-32
  183. 4760  IFV%<65ORV%>(LPL%+65)THENIFV%<>32THENLOCATECMK%,1:PRINTCLX$;:LOCATECMK%,34:COLOR20,0,0:PRINT"Invalid Entry";:BEEP:COLOR7,0,0:FORP%=1TO1000:NEXTP%:LOCATECMK%,1:PRINTCLX$;:GOTO4700
  184. 4780  IFV%=32THENLSETTT$=R1$(LPL%+1):FORAR%=1TOLPL%:LSETL1$(AR%)=R1$(AR%):NEXTAR%:PUT#2,FPTR%(NB%):ERASER1$:GOTO3580
  185. 4800  LOCATECMK%,1:PRINTCLX$;:LOCATECMK%,LM%:PRINTR1$(V%-64);:LOCATECMK%,LM%-8:PRINT"Line ";CHR$(V%);:LOCATECMK%,LM%-2:LINEINPUT;": ",R1$(V%-64)
  186. 4820  IF(V%-64)<>(LPL%+1)THENR1$(V%-64)=LEFT$(R1$(V%-64),LLS%):GOTO4540ELSER1$(V%-64)=LEFT$(R1$(V%-64),30):GOTO4540
  187. 4840  LM%=(80-LLS%)/2:IFLM%<2THENLM%=2
  188. 4860  IFSHORT$<>"yes"THENLOCATE22,1:PRINTCLX$
  189. 4880  FORAR%=1TOLPL%:LOCATEU%+AR%,LM%:COLOR0,7,0:PRINTR1$(AR%);:COLOR7,0,0:NEXTAR%:ERASER1$:IFSHORT$="yes"THENSHORT$="no":RETURNELSELOCATEU%+AR%+2,32:PRINT"Category: ";TT$;
  190. 4940  LOCATE 1,30:PRINT"Current File: ";NEM$;"      Number of Labels:";N%;
  191. 4960  IFEDTT$="yes"THENEDTT$="":LOCATEU%+AR%+4,30:PRINT"(C)HANGE or (R)EMOVE?";:WC$=INKEY$:IFWC$=""THENEDTT$="yes":GOTO4960 ELSE5040
  192. 4980  LOCATEU%+AR%+4,31:PRINT"Press a key to Return";:RT$=INKEY$:IFRT$=""THEN4980
  193. 5000  IFRT$=CHR$(27)THENERASETITLE$,XNUM%,FLNE$:GOTO860
  194. 5020  GOTO3640
  195. 5040  IFWC$="C"ORWC$="c"THENNB%=DSP%:GOTO4500
  196. 5060  IFWC$=CHR$(27)THENERASETITLE$,XNUM%,FLNE$:GOTO860
  197. 5080  IFWC$="R"ORWC$="r"THENNBA%=DSP%:GOTO4280 ELSEEDTT$="yes":GOTO4960
  198. 5100  IFPRNT$="yes"THENLOCATE23,9:BEEP:BEEP:BEEP:COLOR20,0,0:PRINT"* * Sorting not possible until selected labels are printed * *";:COLOR7,0,0:FORP%=1TO4000:NEXTP%:LOCATE23,1:PRINTCLX$;:BRANCH$="":GOTO860
  199. 5120  CLS:LOCATE1,8:COLOR0,7,0:PRINT" SORTING option ";:COLOR7,0,0:LOCATE1,30:PRINT"Current File: ";NEM$;"      Number of Records:";N%;:IFBRANCH$<>"yes"THENNBB%=N%:NBA%=1
  200. 5160  IFNBB%<NBA%THENTTTP%=NBB%:NBB%=NBA%:NBA%=TTTP%
  201. 5180  DIMFLD$((NBB%-NBA%)+1):DIMTFPTR%(N%):VV%=FRE(""):LOCATE5,31:PRINTFRE(6);"bytes free";
  202. 5200  LOCATE7,1:PRINT"Sort labels";NBA%;"through";NBB%;:LOCATE9,1:PRINT"Approximate time required:";INT((NBB%-NBA%)^0.8);"seconds";:LOCATE11,13:PRINT"Reading...";:V%=FRE(5):N8%=(NBB%-NBA%)+1:MXCR%=INT((V%-500)/N8%):IFMXCR%>LLS%THENMXCR%=LLS%
  203. 5240  IFMXCR%<1THENLOCATE18,5:PRINT"INSUFFICIENT MEMORY AVAILABLE TO SORT";NBB%-NBA%+1;"LABELS...";:LOCATE19,10:PRINT"Divide them into groups and resort.";:BEEP:BEEP:FORA%=1TO3000:NEXTA%:GOTO5640
  204. 5260  IFKL%=16THENFORBB%=1TO(NBB%-NBA%)+1:GET#2,FPTR%(BB%+(NBA%-1)):FLD$(BB%)=LEFT$(TT$,MXCR%):TFPTR%(BB%)=BB%:NEXTBB%
  205. 5280  IFKL%>0ANDKL%<16THENFORBB%=1TO(NBB%-NBA%)+1:GET#2,FPTR%(BB%+(NBA%-1)):FLD$(BB%)=LEFT$(L1$(KL%),MXCR%):TFPTR%(BB%)=BB%:NEXTBB%
  206. 5300  LOCATE13,23:PRINT"Sorting on";MXCR%;"characters...";:DST%=4
  207. 5340  IFDST%<N8%THENDST%=DST%+DST%:GOTO5340
  208. 5360  DST%=DST%-1
  209. 5380  DST%=INT(DST%/2):IFDST%<1THEN5600
  210. 5420  FORJS%=1TON8%-DST%:FORIS%=JS%TO1STEP-DST%:IFFLD$(TFPTR%(IS%+DST%))>FLD$(TFPTR%(IS%))THEN5560
  211. 5480  TMPP%=TFPTR%(IS%):TMPPP%=FPTR%(IS%+(NBA%-1)):TFPTR%(IS%)=TFPTR%(IS%+DST%):FPTR%(IS%+(NBA%-1))=FPTR%(IS%+DST%+(NBA%-1)):TFPTR%(IS%+DST%)=TMPP%:FPTR%(IS%+DST%+(NBA%-1))=TMPPP%:NEXTIS%
  212. 5560  NEXTJS%:GOTO5380
  213. 5600  HLD%=1:OPEN DF1$ FOR OUTPUT AS #1:WRITE#1,N%,ACS%,LLS%,BTH%,BTV%,LPL%:FORAR%=1TON%:WRITE#1,FPTR%(AR%):NEXTAR%:WRITE#1,UURN%:IFUURN%=0THENCLOSE1ELSEFORAR%=1TOUURN%:WRITE#1,URN%(AR%):NEXTAR%
  214. 5640  CLS:ERASEFLD$,TFPTR%:CLOSE1:SORT$="":GOTO860
  215. 5660  IFERR<>53THENCLS:LOCATE7,26:COLOR0,7,0:PRINT"Fatal Error";ERR;"Encountered";:COLOR7,0,0:IFERR=7ORERR=14THENLOCATE9,29:PRINT"Insufficient Memory";:ENDELSEEND
  216. 5680  KEYOFF:CLS:COLOR0,7,0:LOCATE5,25:PRINT"IBM PC Label Printing Program";:COLOR7,0,0:LOCATE9,5:PRINT"File ";:COLOR0,7,0:PRINTNEM$;:COLOR7,0,0:PRINT" not found on disk drive ";:COLOR0,7,0:PRINTDD$;:COLOR7,0,0:PRINT".";
  217. 5700  PRINT"  Create this file?  ";:COLOR23:PRINT"(y/n)";:COLOR7
  218. 5720  IP$=INKEY$:IFIP$=""THEN5720
  219. 5740  IFIP$<>"Y"ANDIP$<>"y"THENLOCATE11,24:PRINT"Press any key to return to start";:AA$=INKEY$:IFAA$=""THEN5740 ELSE60
  220. 5760  LOCATE9,1:PRINTCLX$;:LOCATE9,5:PRINT"Before the LABELMAKER files can be created, the number of";
  221. 5780  LOCATE10,5:PRINT"characters-per-line on a label and the number of lines-per-label";:LOCATE11,5:PRINT"must be specified.";:LOCATE13,5:PRINT"NOTE: Since these parameters will be used to determine record format";
  222. 5800  LOCATE14,5:PRINT"and length, in the data file, they will be difficult to change!";
  223. 5820  LOCATE16,1:INPUT;"    Enter characters-per-line (60 Max.): ",LLS%
  224. 5840  IFLLS%>60ORLLS%<1THENLOCATE20,21:BEEP:COLOR20:PRINT"Invalid number of characters-per-line";:FORP%=1TO4000:NEXT:COLOR7:LOCATE20,1:PRINTCLX$;:LOCATE16,1:PRINTCLX$;:GOTO5820OK
  225. 5860  LOCATE18,1:INPUT;"    Enter lines-per-label (15 Max.): ",LPL%:IFLPL%>15ORLPL%<1THENLOCATE20,20:BEEP:COLOR20:PRINT"Invalid number of lines-per-label";:FORP%=1TO4000:NEXT:COLOR7:LOCATE20,1:PRINTCLX$;:LOCATE18,1:PRINTCLX$;:GOTO5860
  226. 5900  ACS%=1:BTH%=4:BTV%=1:OPEN DF1$ FOR OUTPUT AS #1
  227. 5940  WRITE#1,N%,ACS%,LLS%,BTH%,BTV%,LPL%:FORAR%=1TON%:WRITE#1,FPTR%(AR%):NEXTAR%:WRITE#1,UURN%:IFUURN%=0THENCLOSE1:RESUME380ELSEFORAR%=1TOUURN%:WRITE#1,URN%(AR%):NEXTAR%:CLOSE1:RESUME380
  228. 5960  CLS:COLOR0,7,0:LOCATE1,22:PRINT"LABEL PRINT AND FORMAT UTILITIES";:COLOR7,0,0:LOCATE5,1:PRINT"Key to respecify";:LOCATE5,29:PRINT"Parameter";:LOCATE5,61:PRINT"Current Value";
  229. 6000  LOCATE6,1:PRINT"----------------";:LOCATE6,29:PRINT"---------";:LOCATE6,61:PRINT"-------------";:LOCATE7,8:PRINT"A           Number of labels across page";:LOCATE7,60:PRINTACS%;"across";
  230. 6040  LOCATE8,8:PRINT"B           Horizontal spaces between labels";:LOCATE8,60:PRINTBTH%;"spaces";:LOCATE9,8:PRINT"C           Vertical spaces between labels";:LOCATE9,60:PRINTBTV%;"spaces";
  231. 6080  LOCATE10,8:PRINT"D           Number of vertical lines on a label";:LOCATE10,60:PRINTLPL%;"lines";:LOCATE11,8:PRINT"E           Number of horizontal spaces on a label";:LOCATE11,60:PRINTLLS%;"characters";
  232. 6120  LOCATE13,8:PRINT"S   (end)   Save changes and RETURN to main menu";:LOCATE14,8:PRINT"X   (end)   Cancel changes and RETURN to main menu";
  233. 6160  LOCATE16,1:PRINT"Note: Parameter's `D' and `E' will require the data file to be";:LOCATE17,7:PRINT"reformatted.  Required hardware is two disk drives or one disk";:LOCATE18,7:PRINT"drive and an extra diskette.";
  234. 6180  LOCATE 20,1:PRINT CLX$;:LOCATE 20,25:COLOR 15,0,0:PRINT"Enter Parameter Key Letter";:COLOR 7,0,0:LOCATE 3,69:PRINT"        ";:LOCATE 3,40:PRINT"Minimum Printer Width Needed:";LLS%*ACS%+BTH%*(ACS%-1)
  235. 6190  LOCATE 20,51,1
  236. 6220  S$=INKEY$:IF S$=""THEN 6220
  237. 6240  IF S$="a"OR S$="A"THEN 6460
  238. 6260  IFS$="b"ORS$="B"THEN6500
  239. 6280  IFS$="c"ORS$="C"THEN6540
  240. 6300  IFS$="d"ORS$="D"THEN6580
  241. 6320  IFS$="e"ORS$="E"THEN6620
  242. 6340  IFS$="s"ORS$="S"THEN6660
  243. 6360  IFS$="x"ORS$="X"THEN6420
  244. 6380  IFS$=CHR$(27)THEN6420
  245. 6400  GOTO6220
  246. 6420  OPEN DF1$ FOR INPUT AS #1:INPUT#1,N%,ACS%,LLS%,BTH%,BTV%,LPL%:CLOSE1:NLLS%=0:NLPL%=0:GOTO860
  247. 6460  LOCATE20,1:PRINTCLX$;:LOCATE20,1:INPUT;"Parameter A - New Value: ",NACS%
  248. 6480  IFNACS%<500ANDNACS%>0THENACS%=NACS%:LOCATE7,60:PRINTACS%;"across  ";:GOTO6180ELSELOCATE22,34:COLOR20:PRINT"Invalid Entry";:COLOR7:BEEP:FORP%=1TO3500:NEXT:LOCATE22,1:PRINTCLX$;:GOTO6180
  249. 6500  LOCATE20,1:PRINTCLX$;:LOCATE20,1:INPUT;"Parameter B - New Value: ",NBTH%
  250. 6520  IFNBTH%<500ANDNBTH%>=0THENBTH%=NBTH%:LOCATE8,60:PRINTBTH%;"spaces   ";:GOTO6180ELSELOCATE22,34:COLOR20:PRINT"Invalid Entry";:COLOR7:BEEP:FORP%=1TO3500:NEXT:LOCATE22,1:PRINTCLX$;:GOTO6180
  251. 6540  LOCATE20,1:PRINTCLX$;:LOCATE20,1:INPUT;"Parameter C - New Value: ",NBTV%
  252. 6560  IFNBTV%<1000ANDNBTV%>=0THENBTV%=NBTV%:LOCATE9,60:PRINTBTV%;"spaces   ";:GOTO6180ELSELOCATE22,34:COLOR20:PRINT"Invalid Entry";:COLOR7:BEEP:FORP%=1TO3500:NEXT:LOCATE22,1:PRINTCLX$;:GOTO6180
  253. 6580  LOCATE20,1:PRINTCLX$;:LOCATE20,1:INPUT;"Parameter D (Max.= 15) - New Value: ",NLPL%
  254. 6600  IFNLPL%<16ANDNLPL%>0THENTPY%=LPL%:LPL%=NLPL%:NLPL%=TPY%:COLOR0,7:LOCATE10,60:PRINTLPL%;"lines  ";:COLOR7,0:GOTO6180ELSELOCATE22,34:COLOR20:PRINT"Invalid Entry";:COLOR7:BEEP:FORP%=1TO3500:NEXT:LOCATE22,1:PRINTCLX$;:GOTO6180
  255. 6620  LOCATE20,1:PRINTCLX$;:LOCATE20,1:INPUT;"Parameter E (Max.= 60) - New Value: ",NLLS%
  256. 6640  IFNLLS%<61ANDNLLS%>0THENTPY%=LLS%:LLS%=NLLS%:NLLS%=TPY%:COLOR0,7:LOCATE11,60:PRINTLLS%;"characters  ";:COLOR7,0:GOTO6180ELSELOCATE22,34:COLOR20:PRINT"Invalid Entry";:COLOR7:BEEP:FORP%=1TO3500:NEXT:LOCATE22,1:PRINTCLX$;:GOTO6180
  257. 6660  IFNLPL%>0ORNLLS%>0THENIFNLPL%=0THENNLPL%=LPL% ELSEIFNLLS%=0THENNLLS%=LLS%
  258. 6680  IFNLPL%>0ORNLLS%>0THEN6740
  259. 6700  OPEN DF1$ FOR OUTPUT AS #1:WRITE#1,N%,ACS%,LLS%,BTH%,BTV%,LPL%:FORAR%=1TON%:WRITE#1,FPTR%(AR%):NEXTAR%:WRITE#1,UURN%:IFUURN%=0THENCLOSE1:GOTO860ELSEFORAR%=1TOUURN%:WRITE#1,URN%(AR%):NEXTAR%:CLOSE1:GOTO860
  260. 6740  CLS:LOCATE3,27:COLOR0,7,0:PRINT"File Reformatting Utility";:COLOR7,0,0
  261. 6760  LOCATE12,1:LINEINPUT;" Enter file name for reformatted file (8 char. max.) ===> ";RNEM$
  262. 6780  IFLEN(RNEM$)<1ORLEN(RNEM$)>8THENLOCATE14,30:BEEP:COLOR20:PRINT"Invalid File Name";:FORP%=1TO3500:NEXT:COLOR7:LOCATE12,1:PRINTCLX$;:LOCATE14,1:PRINTCLX$;:GOTO6760
  263. 6800  LOCATE12,1:PRINTCLX$;:LOCATE12,1:LINEINPUT;"       Specify disk drive for reformatted file (A-D) ===> ";RDD$:IFLEN(RDD$)<>1THENRDD$="R
  264. 6820  IFASC(RDD$)<65ORASC(RDD$)>69THENIFASC(RDD$)<97ORASC(RDD$)>100THENLOCATE14,31:BEEP:COLOR20,0,0:PRINT"Invalid Disk Drive";:FORP%=1TO3500:NEXT:COLOR7:LOCATE12,1:PRINTCLX$;:LOCATE14,1:PRINTCLX$;:GOTO6800
  265. 6840  TNEM$="":FORAR%=1TOLEN(RNEM$):ARS%=ASC(MID$(RNEM$,AR%,1)):IFARS%>96ANDARS%<123THENARS%=ARS%-32
  266. 6860  TNEM$=TNEM$+CHR$(ARS%):NEXTAR%:RNEM$=TNEM$:ARS%=ASC(RDD$):IFARS%>96ANDARS%<123THENARS%=ARS%-32
  267. 6880  RDD$=CHR$(ARS%):DF3$=RDD$+":"+RNEM$+".CFG":DF4$=RDD$+":"+RNEM$+".RDT":IFNEM$=RNEM$THENLOCATE14,14:BEEP:COLOR20:PRINT"ERROR - Reformated file name is same as current file";:FORP%=1TO4500:NEXTP%:COLOR7:LOCATE14,1:PRINTCLX$;:GOTO6760
  268. 6940  OPEN DF3$ FOR OUTPUT AS #1:WRITE#1,N%,ACS%,LLS%,BTH%,BTV%,LPL%:FORAR%=1TON%:WRITE#1,FPTR%(AR%):NEXTAR%:WRITE#1,UURN%:IFUURN%=0THENCLOSE1ELSEFORAR%=1TOUURN%:WRITE#1,URN%(AR%):NEXTAR%:CLOSE1
  269. 6980  OPEN DF4$ AS #3 LEN=(LLS%*LPL%)+8:DIMM1$(LPL%):ONLPL%GOTO7020,7040,7060,7080,7100,7120,7140,7160,7180,7200,7220,7240,7260,7280,7300
  270. 7020  FIELD #3,8 AS RT$,LLS% AS M1$(1):GOTO7320
  271. 7040  FIELD #3,8 AS RT$,LLS% AS M1$(1),LLS% AS M1$(2):GOTO7320
  272. 7060  FIELD #3,8 AS RT$,LLS% AS M1$(1),LLS% AS M1$(2),LLS% AS M1$(3):GOTO7320
  273. 7080  FIELD #3,8 AS RT$,LLS% AS M1$(1),LLS% AS M1$(2),LLS% AS M1$(3),LLS% AS M1$(4):GOTO7320
  274. 7100  FIELD #3,8 AS RT$,LLS% AS M1$(1),LLS% AS M1$(2),LLS% AS M1$(3),LLS% AS M1$(4),LLS% AS M1$(5):GOTO7320
  275. 7120  FIELD #3,8 AS RT$,LLS% AS M1$(1),LLS% AS M1$(2),LLS% AS M1$(3),LLS% AS M1$(4),LLS% AS M1$(5),LLS% AS M1$(6):GOTO7320
  276. 7140  FIELD #3,8 AS RT$,LLS% AS M1$(1),LLS% AS M1$(2),LLS% AS M1$(3),LLS% AS M1$(4),LLS% AS M1$(5),LLS% AS M1$(6),LLS% AS M1$(7):GOTO7320
  277. 7160  FIELD #3,8 AS RT$,LLS% AS M1$(1),LLS% AS M1$(2),LLS% AS M1$(3),LLS% AS M1$(4),LLS% AS M1$(5),LLS% AS M1$(6),LLS% AS M1$(7),LLS% AS M1$(8):GOTO7320
  278. 7180  FIELD #3,8 AS RT$,LLS% AS M1$(1),LLS% AS M1$(2),LLS% AS M1$(3),LLS% AS M1$(4),LLS% AS M1$(5),LLS% AS M1$(6),LLS% AS M1$(7),LLS% AS M1$(8),LLS% AS M1$(9):GOTO7320
  279. 7200  FIELD #3,8 AS RT$,LLS% AS M1$(1),LLS% AS M1$(2),LLS% AS M1$(3),LLS% AS M1$(4),LLS% AS M1$(5),LLS% AS M1$(6),LLS% AS M1$(7),LLS% AS M1$(8),LLS% AS M1$(9),LLS% AS M1$(10):GOTO7320
  280. 7220  FIELD #3,8 AS RT$,LLS% AS M1$(1),LLS% AS M1$(2),LLS% AS M1$(3),LLS% AS M1$(4),LLS% AS M1$(5),LLS% AS M1$(6),LLS% AS M1$(7),LLS% AS M1$(8),LLS% AS M1$(9),LLS% AS M1$(10),LLS% AS M1$(11):GOTO7320
  281. 7240  FIELD #3,8 AS RT$,LLS% AS M1$(1),LLS% AS M1$(2),LLS% AS M1$(3),LLS% AS M1$(4),LLS% AS M1$(5),LLS% AS M1$(6),LLS% AS M1$(7),LLS% AS M1$(8),LLS% AS M1$(9),LLS% AS M1$(10),LLS% AS M1$(11),LLS% AS M1$(12):GOTO7320
  282. 7260  FIELD #3,8 AS RT$,LLS% AS M1$(1),LLS% AS M1$(2),LLS% AS M1$(3),LLS% AS M1$(4),LLS% AS M1$(5),LLS% AS M1$(6),LLS% AS M1$(7),LLS% AS M1$(8),LLS% AS M1$(9),LLS% AS M1$(10),LLS% AS M1$(11),LLS% AS M1$(12),LLS% AS M1$(13):GOTO7320
  283. 7280  FIELD #3,8 AS RT$,LLS% AS M1$(1),LLS% AS M1$(2),LLS% AS M1$(3),LLS% AS M1$(4),LLS% AS M1$(5),LLS% AS M1$(6),LLS% AS M1$(7),LLS% AS M1$(8),LLS% AS M1$(9),LLS% AS M1$(10),LLS% AS M1$(11),LLS% AS M1$(12),LLS% AS M1$(13),LLS% AS M1$(14):GOTO7320
  284. 7300  FIELD #3,8 AS RT$,LLS% AS M1$(1),LLS% AS M1$(2),LLS% AS M1$(3),LLS% AS M1$(4),LLS% AS M1$(5),LLS% AS M1$(6),LLS% AS M1$(7),LLS% AS M1$(8),LLS% AS M1$(9),LLS% AS M1$(10),LLS% AS M1$(11),LLS% AS M1$(12),LLS% AS M1$(13),LLS% AS M1$(14),LLS% AS M1$(15)
  285. 7320  VV%=FRE(""):IF(NLPL%*NLLS%)>=(LPL%*LLS%)THENNR%=INT((FRE(2)-1000)/((NLPL%*NLLS%)+30)) ELSENR%=INT((FRE(2)-1000)/((LPL%*LLS%)+30))
  286. 7340  IFNLPL%>LPL%THENDIMLT$(NR%),TR$(NR%,NLPL%) ELSEDIMLT$(NR%),TR$(NR%,LPL%)
  287. 7360  LOCATE16,1:PRINT"Memory size limits transfer to";NR%;"labels per transfer";:LOCATE18,12:PRINT"Beginning transfer...";
  288. 7380  BCTR%=0:CTR%=1:FORXA%=1TON%+UURN%:GET#2,XA%:LT$(CTR%)=TT$:FORXB%=1TONLPL%:TR$(CTR%,XB%)=LEFT$(L1$(XB%),LLS%):NEXTXB%:CTR%=CTR%+1
  289. 7400  IFCTR%>NR%ORXA%>=N%THENFORXR%=1TOCTR%-1:LSETRT$=LT$(XR%):FORXB%=1TOLPL%:LSETM1$(XB%)=TR$(XR%,XB%):NEXTXB%:PUT#3,XR%+(BCTR%*NR%):NEXTXR%:BCTR%=BCTR%+1:CTR%=1
  290. 7420  NEXTXA%:ERASELT$,TR$:LPL%=NLPL%:LLS%=NLLS%:NLPL%=0:NLLS%=0:GOTO860
  291. 7440  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):CLS:KEY ON:WIDTH 80:CLOSE
  292. 7460  END
  293. 7480  HIT=0:FORAC%=1TON%:IFCYT%>5000THENCYT%=5000:GOTO7860
  294. 7560  FPTR%=AC%:GET#2,FPTR%(AC%):KD$="0":FORZZZ=1TOLPL%:KL=INSTR((L1$(ZZZ)),KS$):IFKL<>0THENGOSUB7700
  295. 7660  NEXTZZZ:NEXTAC%:GOTO7800
  296. 7700  IFKD$="1"THEN7780
  297. 7740  FORFG%=1TONBQ%:TL%=TL%+1:CYT%=CYT%+1:HIT=HIT+1:LBL%(CYT%)=AC%:NEXTFG%:NM%=NM%+1:KD$="1
  298. 7780  RETURN
  299. 7800  KS$="":K$="0":PRNT$="yes
  300. 7860  SOUND500,5:RETURN
  301.