ChipMaster's bwBASIC This also includes history going back to v2.10. *WARN* some binary files might have been corrupted by CRLF.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

201 lines
7.0 KiB

  1. 1 REM LETWRT
  2. 5 CLS
  3. 10 PRINT TAB(10); "TEXTEDIT AND LETTER WRITING SYSTEM":PRINT
  4. 20 PRINT
  5. 30 PRINT"THIS MINI TEXT EDITOR MAKES IT POSSIBLE TO WRITE SOME TEXT,
  6. 40 PRINT"TO ADD TO IT,TO CHANGE IT,TO SAVE IT ON CASSETTE OR DISKETTE
  7. 45 PRINT"AND TO READ IT BACK FROM SAME.
  8. 50 PRINT"THE TEXT MAY ALSO BE PRINTED ON THE LINE PRINTER.
  9. 60 PRINT"THIS IS A LINE ORIENTED EDITOR.ONLY ENTIRE LINES MAY BE
  10. 63 PRINT"INSERTED,DELETED OR CHANGED.FOR LONGER TEXT CLEAR MORE THAN
  11. 65 PRINT"4000 IN LINE 1000.
  12. 70 PRINT"THE FILES GENERATED BY THE EDITOR MAY BE LINKED TO THE NAMES
  13. 75 PRINT"ON THE MAIL PAC. THE NAME AND ADDRESS OF THE MAILPAC NAME
  14. 77 PRINT"IS PUT AT THE HEAD OF THE FILE(LETTER) GENERATED BY THIS
  15. 80 PRINT"EDITOR.
  16. 90 INPUT"TO BEGIN PRESS ENTER";Z9
  17. 100 CLS:PRINT:PRINT:
  18. 1000 CLEAR 4000
  19. 1002 INPUT"ARE DISK DRIVES ATTACHED(Y/N)";DZ$
  20. 1003 IF DZ$<>"Y" AND DZ$<>"N" THEN PRINT"INPUT ERROR":GOTO 110
  21. 1005 DIM A$(100)
  22. 1007 CLS:PRINT" MENU"
  23. 1010 PRINT
  24. 1015 PRINT "0.QUIT"
  25. 1020 PRINT "1.DISPLAY TEXT FILE WITH LINE NUMBERS"
  26. 1030 PRINT "2.PRINT TEXT FILE WITHOUT NUMBERS"
  27. 1040 PRINT "3.SAVE TEXT FILE ON CASSETTE."
  28. 1045 PRINT "4.SAVE A TEXTFILE ON DISKETTE
  29. 1050 PRINT "5.READ TEXT FILE FROM CASSETTE."
  30. 1055 PRINT "6.READ TEXTFILE FROM DISKETTE
  31. 1060 PRINT "7.CHANGE A LINE."
  32. 1070 PRINT "8.DELETE A LINE.
  33. 1075 PRINT"9.INSERT A LINE
  34. 1080 PRINT "10.ADD TO OR START TEXT FILE
  35. 1082 PRINT "11. PRINT FILE OUT ONTO LINE PRINTER
  36. 1084 PRINT "12. MERGE WITH MAILPAC
  37. 1090 PRINT:INPUT"ENTER NUMBER OF YOUR CHOICE";Z
  38. 1092 IF Z = 0 THEN END
  39. 1095 ON Z GOSUB 2100,2200,2300,2350,2400,2450,2500,2600,2700,2800,2900,6000
  40. 1100 CLS:GOTO 1007
  41. 2100 REM ROUTINE FOR DISPLAYING TEXTFILE WITH NUMBERS
  42. 2105 CLS
  43. 2107 IF K=0 GOTO 2150
  44. 2110 FOR I=1 TO K:ZZ$=RIGHT$("0"+STR$(I)+".",3)
  45. 2120 PRINT ZZ$;A$(I)
  46. 2130 IF I/10 = INT(I/10) THEN GOSUB 4000:PRINT
  47. 2140 NEXT I
  48. 2150 PRINT:GOSUB 4100:RETURN
  49. 2200 REM ROUTINE FOR DISPLAYING TEXTFILE WITH NUMBERS
  50. 2205 CLS
  51. 2210 FOR I=1 TO K
  52. 2220 PRINT A$(I)
  53. 2230 IF I/10=INT(I/10) THEN GOSUB 4000:PRINT
  54. 2240 NEXT I
  55. 2250 PRINT:GOSUB 4100:RETURN
  56. 2300 REM SAVE TEXTFILE ON CASSETTE
  57. 2310 CLS:INPUT"PRESS ENTER WHEN CASSETTE RECORDER IS READY TO RECORD";Z9
  58. 2315 ' IF DZ$="Y" THEN CMD"T"
  59. 2320 WRITE #-1,K
  60. 2330 FOR I=1 TO K:WRITE #-1,A$(I):NEXT I
  61. 2340 RETURN
  62. 2350 REM SAVE TEXTFILE ON DISKETTE
  63. 2355 CLS:PRINT"TEXTFILE TO BE SAVED ON DISKETTE"
  64. 2360 PRINT"PRESENT TEXFILE NAME IS ";ZD$
  65. 2362 INPUT"ENTER NEW TEXTFILE NAME(<ENTER> FOR NO CHANGE)";ZD$
  66. 2365 INPUT"PRESS ENTER WHEN DISKETTE IS READY ";Z9
  67. 2370 OPEN"O",1,ZD$
  68. 2375 WRITE # 1,K:PRINT:PRINT K;" LINES TO BE SAVED."
  69. 2380 FOR I=1 TO K: WRITE # 1,A$(I):NEXT
  70. 2385 CLOSE #1
  71. 2390 RETURN
  72. 2400 REM READ TEXTFILE FROM CASSETTE
  73. 2410 CLS:INPUT"PRESS ENTER WHEN CASSETTE RECORDER IS READY";Z9
  74. 2415 ' IF DZ$="Y" THEN CMD"T"
  75. 2420 INPUT #-1,K
  76. 2430 FOR I=1 TO K:INPUT #-1,A$(I):NEXT I
  77. 2440 RETURN
  78. 2450 REM READ TEXTFILE FROM DISKETTE
  79. 2455 CLS:PRINT"TEXTFILE TO BE READ FROM DISKETTE":PRINT
  80. 2460 INPUT"INPUT NAME OF DISK FILE TO BE READ";ZD$
  81. 2465 INPUT"PRESS ENTER WHEN DISKETTE IS READY ";Z9
  82. 2470 OPEN "I",1,ZD$
  83. 2475 INPUT # 1,K:PRINT:PRINT K;" TEXT LINES TO BE READ":PRINT
  84. 2477 FOR II=1 TO 200:NEXT
  85. 2480 FOR I=1 TO K:INPUT # 1,A$(I):NEXT I
  86. 2485 CLOSE #1
  87. 2490 RETURN
  88. 2500 REM CHANGE A LINE SUBROUTINE
  89. 2510 CLS
  90. 2520 INPUT"WHAT LINE NUMBER DO YOU WANT TO CHANGE(0 TO RETURN)";LN
  91. 2523 IF LN=0 THEN RETURN
  92. 2525 IF LN<0 OR LN<>INT(LN) OR LN>K THEN PRINT"NO SUCH LINE":GOSUB 4400:GOTO 2510
  93. 2530 GOSUB 4500
  94. 2540 PRINT:PRINT"ARE YOU SURE YOU WANT TO CHANGE LINE ";LN;"(Y/N)";:INPUT Z9$
  95. 2550 IF Z9$="N" GOTO 2510
  96. 2555 IF Z9$<>"Y" THEN GOSUB 4300:GOTO 2540
  97. 2560 PRINT:PRINT"ENTER NEW LINE ";LN
  98. 2570 PRINT:PRINT LN;".";:INPUT A$(LN)
  99. 2580 CLS:GOSUB 4500
  100. 2585 INPUT"PRESS 1 IF OK,ELSE 0";Z9
  101. 2587 IF Z9=1 THEN RETURN
  102. 2590 IF Z9=0 THEN CLS:GOTO 2530
  103. 2592 GOSUB 4300:GOTO 2580
  104. 2600 REM DELETE A LINE SUBROUTINE
  105. 2610 CLS:INPUT"WHAT LINE NUMBER DO YOU WANT TO DELETE(0 TO RETURN)";LN
  106. 2612 IF LN=0 THEN RETURN
  107. 2614 IF LN<>INT(LN) OR LN <1 THEN GOSUB 4300:GOTO 2610
  108. 2616 IF LN>K THEN PRINT"LINE";LN;" NOT IN TEXT":GOSUB 4400:GOTO 2610
  109. 2620 GOSUB 4500
  110. 2630 PRINT"ARE YOU SURE YOU WANT TO DELETE LINE";LN;"(Y/N)";:INPUT Z9$
  111. 2640 IF Z9$="N" GOTO 2710
  112. 2650 IF Z9$<>"Y" THEN GOSUB 4300:GOTO 2630
  113. 2655 FOR I=LN+1 TO K:A$(I-1)=A$(I):NEXT I
  114. 2657 K=K-1
  115. 2660 PRINT:PRINT"DELETE COMPLETE":GOSUB 4400:GOTO 2610
  116. 2700 REM INSERT A LINE SUBROUTINE
  117. 2710 CLS:INPUT"WHAT LINE NUMBER DO YOU WISH TO INSERT(0 TO RETURN)";LN
  118. 2712 IF LN=0 THEN RETURN
  119. 2714 IF LN<>INT(LN) OR LN<1 THEN GOSUB 4300:GOTO 2710
  120. 2716 IF LN>K THEN PRINT"ONLY ";K;" LINES EXIST IN TEXT.INSERT LINE MUST BE <= ";K:GOSUB 4400:GOTO 2710
  121. 2720 GOSUB 4500
  122. 2730 PRINT"ARE YOU SURE YOU WANT TO INSERT LINE";LN;"(Y/N)";:INPUT Z9$
  123. 2740 IF Z9$="N" GOTO 2710
  124. 2750 IF Z9$<>"Y" THEN GOSUB 4300:GOTO 2730
  125. 2755 FOR I=K+1 TO LN+1 STEP-1:A$(I)=A$(I-1):NEXT I
  126. 2757 K=K+1
  127. 2760 PRINT:PRINT"INSERT BELOW :"
  128. 2765 A$(LN)=" "
  129. 2770 PRINT:PRINT LN;".";:INPUT A$(LN)
  130. 2780 PRINT:PRINT"INSERT COMPLETE":GOSUB 4400:GOTO 2710
  131. 2800 REM ADD OR START FILE SUBROUTINE
  132. 2805 CLS
  133. 2810 PRINT"INPUT LINES END WITH ENTER.FOR INDENTED LINES,OR LINES
  134. 2812 PRINT"CONTAINING COMMAS OR COLONS BEGIN WITH A ";CHR$(34)
  135. 2815 PRINT"INPUT @ TO RETURN TO MENU"
  136. 2817 GOSUB 4400
  137. 2820 IF K<1 THEN K=0:GOTO 2830
  138. 2825 FOR I=1 TO K:PRINT I;".";A$(I):NEXT I
  139. 2830 K=K+1
  140. 2840 PRINT K;".";:INPUT A$(K)
  141. 2850 IF A$(K)="@" THEN A$(K)="":K=K-1:RETURN
  142. 2860 GOTO 2830
  143. 2900 REM LINE PRINTER SUBROUTINE
  144. 2910 CLS
  145. 2920 PRINT"IF PRINTING WITH LINE #'S PRESS 1,ELSE PRESS 0";:INPUT Z
  146. 2930 IF Z<>1 AND Z<>0 THEN GOSUB 4300:GOTO 2910
  147. 2940 PRINT:INPUT"PRESS ENTER WHEN LINE PRINTER READY";Z9
  148. 2950 FOR I=1 TO K
  149. 2960 IF Z=1 THEN LPRINT I;".";
  150. 2970 LPRINT A$(I)
  151. 2980 NEXT I
  152. 2990 RETURN
  153. 4000 REM PRESS ENTER SUBROUTINE
  154. 4010 PRINT:INPUT"PRESS ENTER TO CONTINUE";Z9
  155. 4020 RETURN
  156. 4100 REM RETURN TO MENU SUBROUTINE
  157. 4110 INPUT"PRESS ENTER TO RETURN TO MENU";Z9
  158. 4120 RETURN
  159. 4300 REM INPUT ERROR SUBROUTINE
  160. 4310 PRINT:PRINT"INPUT ERROR.TRY AGAIN"
  161. 4320 FOR Z9=1 TO 400:NEXT Z9
  162. 4330 RETURN
  163. 4400 REM DELAY SUBROUTINE
  164. 4410 FOR Z8=1 TO 400:NEXT Z8
  165. 4420 RETURN
  166. 4500 REM PRINT LINE BEFORE,LINE, LINE AFTER
  167. 4510 PRINT:FOR I=LN-1 TO LN+1:PRINT I;".";A$(I):NEXT I
  168. 4520 RETURN
  169. 6000 REM MERGE WITH MAILPAC PROGRAM
  170. 6005 CLS
  171. 6010 IF DZ$="N" THEN PRINT"PREPARE FILE ON CASSETTE":GOSUB 10100:INPUT #-1,P1:GOTO 6050
  172. 6020 PRINT"FILE TO BE READ IN FROM DISKETTE":PRINT
  173. 6030 INPUT"ENTER NAME OF FILE TO BE READ";ND$
  174. 6040 OPEN"I",1,ND$:INPUT # 1,P1
  175. 6050 PRINT P1;" NAMES TO BE READ"
  176. 6060 PRINT"PREPARE PRINTER FOR LETTER":GOSUB 10100
  177. 6070 FOR J=1 TO P1
  178. 6080 IF DZ$="N" THEN INPUT #-1,NL$,N1$,N2$,CO$,A1$,A2$,A$
  179. 6090 IF DZ$="Y" THEN INPUT # 1,NL$,N1$,N2$,CO$,A1$,A2$,A$
  180. 6100 CLS:PRINT NL$
  181. 6110 PRINT N1$;" ",N2$
  182. 6120 PRINT CO$
  183. 6130 PRINT A1$
  184. 6140 PRINT A2$
  185. 6145 PRINT:PRINT"NAME ";J;"OF";P1
  186. 6150 PRINT:PRINT
  187. 6160 INPUT"PRESS 1 TO PRINT LETTER FOR NAME, 0 TO SKIP";Z1$
  188. 6170 IF Z1$<>"1" AND Z1$<>"0" THEN GOSUB 4300:GOTO 6160
  189. 6180 IF Z1$="0" THEN GOTO 7050
  190. 7000 LPRINT NL$
  191. 7005 LPRINT N1$;" ";N2$
  192. 7010 LPRINT CO$
  193. 7015 LPRINT A1$
  194. 7020 LPRINT A2$
  195. 7025 LPRINT " "
  196. 7030 GOSUB 2950
  197. 7040 FOR IL=1 TO 60-K:LPRINT" ":NEXT
  198. 7050 NEXT J
  199. 7060 RETURN
  200. 10100 INPUT"PRESS ENTER TO CONTINUE";Z9$:RETURN