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.
 
 
 
 
 
 

159 lines
5.6 KiB

  1. 1 REM TELDIR
  2. 5 CLS
  3. 10 PRINT TAB(12); "TELEPHONE DIRECTORY":PRINT
  4. 20 PRINT "THIS PROGRAM SETS UP AN INDEX OF TELEPHONE NUMBERS ALONG WITH
  5. 30 PRINT "THEIR OWNERS. EACH ENTRY CONSISTS OF A PHONE NUMBER, A PERSON,
  6. 35 PRINT "AND A COMMENT. THE PROGRAM MAKES PROVISIONS FOR RECALLING
  7. 40 PRINT "PHONE NUMBER BY NAME. WITH A 16K MACHINE THIS PROGRAM
  8. 45 PRINT "WILL HANDLE 200 NUMBERS. WITH MORE MEMORY MORE NAMES SHOULD
  9. 50 PRINT "FIT, THOUGH THE DIM STATEMENT IN THE PROGRAM WOULD HAVE TO BE
  10. 55 PRINT "CHANGED ACCORDINGLY.
  11. 60 PRINT :PRINT "TO FACILITATE RECALL WE SUGGEST ENTERING NAMES AS
  12. 65 PRINT "LASTNAME*FIRSTNAME E.G. SMITH*TOM. THE COMPUTER NEEDS A
  13. 70 PRINT "PERFECT MATCH TO FIND THE NAME. THE NAME COULD ALSO BE
  14. 75 PRINT "FOUND BY PRINTING A COMPLETE LIST.
  15. 85 GOSUB 10100
  16. 95 CLEAR 3500
  17. 100 DIM A$(200,3)
  18. 105 GOSUB 1700
  19. 110 CLS:INPUT "ARE DISK DRIVES ATTACHED(Y/N)";DZ$
  20. 115 IF DZ$<>"Y" AND DZ$<>"N" THEN GOSUB 10000
  21. 200 CLS
  22. 210 PRINT " MENU"
  23. 220 PRINT
  24. 225 PRINT "0.QUIT
  25. 230 PRINT "1.SET UP NEW PHONE DIRECTORY
  26. 240 PRINT "2.ADD TO EXISTING DIRECTORY ALREADY IN MEMORY
  27. 250 PRINT "3.READ IN A DIRECTORY ON CASSETTE
  28. 260 PRINT "4.SAVE A DIRECTORY ON CASSETTE
  29. 263 PRINT "5.READ IN A DIRECTORY ON DISKETTE
  30. 265 PRINT "6.SAVE A DIRECTORY ON DISKETTE
  31. 270 PRINT "7.REVIEW A DIRECTORY
  32. 280 PRINT "8.MAKE CORRECTIONS
  33. 282 PRINT "9.FIND NAME & PHONE NUMBER
  34. 290 PRINT :INPUT "TYPE APPROPRIATE NUMBER AND ENTER";Z1
  35. 295 IF Z1 = 0 THEN END
  36. 300 ON Z1 GOSUB 400,500,600,700,800,900,1000,1100,2500
  37. 320 GOTO 200
  38. 400 CLS:REM SET UP NEW FILE
  39. 410 N=1
  40. 420 GOSUB 1300
  41. 425 PRINT
  42. 430 INPUT "PRESS 1 FOR MORE,0 TO RETURN TO MENU";Z9
  43. 440 IF Z9=1 THEN N=N+1:CLS:GOTO 420
  44. 450 IF Z9=0 THEN RETURN
  45. 460 GOSUB 1600 :GOTO 425
  46. 500 CLS:REM ADD TO FILE IN MEMORY
  47. 510 N=N+1:GOTO 420
  48. 600 REM READ IN A FILE ON CASSETTE
  49. 610 CLS:INPUT "PRESS ENTER WHEN CASSETTE RECORDER IS READY";Z
  50. 615 ' IF DZ$="Y" THEN CMD"T"
  51. 620 INPUT #-1,N
  52. 630 GOSUB 1400
  53. 635 ON ERROR GOTO 200
  54. 640 RETURN
  55. 700 REM SAVE A FILE ON CASSETTE
  56. 710 CLS:INPUT "PRESS ENTER WHEN CASSETTE RECORDER IS READY";Z
  57. 712 ' IF DZ$="Y" THEN CMD"T"
  58. 715 WRITE #-1,N
  59. 720 GOSUB 1500
  60. 730 RETURN
  61. 800 REM READ IN FILE ON DISKETTE
  62. 810 CLS:INPUT "INPUT NAME OF DESIRED DISK FILE";ZD$
  63. 820 OPEN "I",1,ZD$
  64. 825 INPUT # 1,N
  65. 830 GOSUB 1450
  66. 835 CLOSE 1
  67. 840 PRINT :PRINT :PRINT N;" RECORDS READ."
  68. 850 GOSUB 10100
  69. 890 RETURN
  70. 900 REM WRITE OUT FILE ONTO DISKETTE
  71. 910 CLS:PRINT "WRITE ONTO DISKETTE OPTION":PRINT
  72. 920 PRINT "PRESENT DISK FILE IS ";ZD$
  73. 925 INPUT "NEW DISK FILE(<ENTER> FOR NO CHANGE)";ZD$
  74. 930 OPEN "O",1,ZD$
  75. 940 PRINT "THERE ARE ";N;" RECORDS":PRINT :GOSUB 10100
  76. 950 WRITE # 1,N
  77. 960 GOSUB 1550
  78. 970 CLOSE 1
  79. 990 RETURN
  80. 1000 REM REVIEW A FILE SUBROUTINE
  81. 1003 INPUT "IS PRINTED OUTPUT DESIRED(Y/N)";Z2$
  82. 1004 IF Z2$<>"Y" AND Z2$<>"N" THEN GOSUB 10000:GOTO 1003
  83. 1005 CLS:GOSUB 1700
  84. 1007 IF Z2$="Y" THEN LPRINT F$(1)
  85. 1010 FOR J=1 TO N
  86. 1015 GOSUB 1800
  87. 1020 IF J/10 <> INT(J/10) THEN GOTO 1040
  88. 1025 PRINT :INPUT "PRESS ENTER TO SEE MORE";Z9
  89. 1030 CLS
  90. 1035 GOSUB 1700
  91. 1040 NEXT J
  92. 1045 PRINT :INPUT "PRESS ENTER TO RETURN TO MENU";Z9
  93. 1050 RETURN
  94. 1100 REM CORRECTION ROUTINE
  95. 1105 Z2$="N"
  96. 1110 CLS
  97. 1120 INPUT "NAME OF PERSON YOU WISH TO CHANGE";B$
  98. 1130 J=1
  99. 1140 IF B$=A$(J,1) THEN GOTO 1180
  100. 1150 J=J+1:IF J<=N THEN GOTO 1140
  101. 1160 PRINT "NO SUCH FILE NAME IN LIST.PRESS ENTER TO RETURN TO MENU
  102. 1170 INPUT Z9:GOTO 200
  103. 1180 CLS:GOSUB 1800
  104. 1185 IF Z1=9 THEN INPUT "2 FOR WRONG NAME,0 TO RETURN TO MENU";Z9:GOTO 1215
  105. 1190 PRINT :PRINT "MAKE APPROPRIATE CHANGES.PRESS ENTER FOR NO CHANGE IN FIELD"
  106. 1200 PRINT :GOSUB 1900
  107. 1210 INPUT "INPUT 2 FOR WRONG NAME,1 FOR MORE CHANGE,0 TO RETURN TO MENU";Z9
  108. 1215 IF Z9=2 THEN GOTO 1150
  109. 1220 IF Z9=1 THEN GOTO 1110
  110. 1230 IF Z9=0 THEN RETURN
  111. 1240 GOSUB 1600:GOTO 1210
  112. 1300 REM SUBROUTINE INPUTTING FILE DATA FROM KEYBOARD
  113. 1305 INPUT "LAST NAME*FIRST*NAME ";A$(N,1)
  114. 1310 INPUT "A/C-PHONE # E.G.914-425-1535 ";A$(N,2)
  115. 1315 INPUT "COMMENT ";A$(N,3)
  116. 1320 RETURN
  117. 1400 REM INPUT OF FILE FROM CASSETTE
  118. 1405 FOR L=1 TO N
  119. 1410 INPUT #-1,A$(L,1),A$(L,2),A$(L,3)
  120. 1415 NEXT L
  121. 1420 RETURN
  122. 1450 REM INPUT OF FILE FROM DISKETTE
  123. 1460 FOR L=1 TO N
  124. 1470 INPUT # 1,A$(L,1),A$(L,2),A$(L,3)
  125. 1480 NEXT L
  126. 1490 RETURN
  127. 1500 REM OUTPUT OF FILE ONTO CASSETTE
  128. 1505 FOR L=1 TO N
  129. 1510 WRITE #-1,A$(L,1),A$(L,2),A$(L,3)
  130. 1515 NEXT L
  131. 1520 RETURN
  132. 1550 REM OUTPUT OF FILE ONTO DISKETTE
  133. 1560 FOR L=1 TO N
  134. 1570 WRITE # 1,A$(L,1),A$(L,2),A$(L,3)
  135. 1580 NEXT L
  136. 1590 RETURN
  137. 1600 REM INPUT ERROR SUBROUTINE
  138. 1610 PRINT "INPUT ERROR TRY AGAIN"
  139. 1620 FOR L=1 TO 300:NEXT L
  140. 1630 RETURN
  141. 1700 REM HEADING SUBROUTINE
  142. 1710 F$(1)=" NAME PHONE NUMBER COMMENT "
  143. 1720 F$(2)=" % % % % % %
  144. 1730 PRINT F$(1)
  145. 1740 RETURN
  146. 1800 REM PRINT 1 FILE DATA
  147. 1810 PRINT USING F$(2);A$(J,1),A$(J,2),A$(J,3)
  148. 1815 IF Z2$="Y" THEN LPRINT USING F$(2);A$(J,1),A$(J,2),A$(J,3)
  149. 1820 RETURN
  150. 1900 REM SUBROUTINE FOR INNPUTTING DATA FILE FROM KEYBOARD
  151. 1910 INPUT "LAST NAME*FIRST*NAME ";A$(J,1)
  152. 1920 INPUT "A/C-PHONE # E.G.914-425-1535 ";A$(J,2)
  153. 1930 INPUT "COMMENT ";A$(J,3)
  154. 1940 RETURN
  155. 2500 GOSUB 1100:Z1=0:RETURN
  156. 10000 PRINT "INPUT ERROR! TRY AGAIN":FOR JZ=1 TO 500:NEXT :RETURN
  157. 10100 INPUT "PRESS ENTER TO CONTINUE";Z9$:RETURN