2QN3GLOP@UKANVAX.BITNET (05/22/87)
This is a small BBS program for the Apple II computer. I have had some help on it to get it to answer the phone from basic. I think it works okay now. Would someone please download it and EXEC it into memory by typing ]EXEC MINIBOARD There is a problem though, when you are asked for a I.D. number the computer locks up. I think there is a small simple basic error in one of the lines between 50 and 110. If you know basic it should be easy to figure out. I think. If anyone figures out why it (appears) to lock up please write back. 2QN3GLOP@UKANVAX.BITNET CUT HERE-----------------------------------------------------+ RUN TEXT:SPEED=100 10 CLEAR 8000 12 DIM N$(50),P$(50),FM$(50),TM$(50),MS$(50),T$(50,5) 14 DIM ML(50),MC(50) 20 PRINT :PRINT"********* Mini-Board 1.0 ***********" 30 PRINT"Waiting for Caller." : REM 32 PRINT "PR#2" :REM Put ctrl-D between first quote and P 34 PRINT "IN#2" : REM PUT ctrl-D between first quote and I 36 INPUT A$ :IF A$ <> "CONNECT" THEN GOTO 36 40 PRINT:PRINT"Incoming call.":PRINT 42 FOR I=1 TO 500:NEXTI :REM 44 PRINT"Welcome to the Mini-Board." 46 PRINT"Supported by " 48 PRINT"Michael Edward Holman." : GOTO 100 50 A$="" 60 Y$=INKEY$:IFY$=""THENGOTO60 62 IFY$=CHR$(13)THEN PRINT: RETURN 64 IFY$=CHR$(8)AND LEN(A$)=1 THENPRINTY$;:GOTO50 66 IFY$=CHR$(8)AND LEN(A$)>1THENPRINTY$;:L=LEN(A$): A$=LEFT$(A$,L-1):GOTO60 68 IFY$<" "ORY$>"z"THENGOTO60 69 PRINTY$;:A$=A$+Y$:IFLEN(A$)>LN THEN RETURN 70 GOTO 60 100 PRINT:PRINT"Enter your I.D. number" : PRINT"Enter 'N' for New caller" 110 PRINT"===> ";:LN=5:GOSUB50:IFA$=""ORA$="N"THEN200 120 IFVAL(A$)<10000 OR VAL(A$)>30000 THEN PRINT"Input error.":GOTO100 130 ID=VAL(A$)-10000:PRINT 140 PRINT"Enter password: ";:LN=8:GOSUB50 145 IFA$=""THENGOTO200 150 IFA$=""ORA$<>P$(ID)THENPRINT"Incorrect! Access DENIED.": GOTO200 160 PRINT"Welcome back ";N$(ID):PRINT 170 PRINT"Welcome to Mini-Board." 172 IF ID>1 THENGOTO180: 174 PRINT"SYSOP on-line. Hello ";N$(ID):PRINT 176 PRINT"Activate SYSOP Menu? ";:LN=1:GOSUB50 177 IFA$="N" OR A$="n"THEN GOTO 180 178 IFA$<>"Y" AND A$<>"y" THENGOTO176 179 GOTO 8000 : 180 GOTO 350 200 PRINT"Logged on as New caller. Standby." 210 TC=TC+1:P$(TC)="":N$(TC)="":ID=TC 220 PRINT"Enter your first name : ";:LN=15:GOSUB50 230 IFA$=""THEN A$="NONAME" 240 N$(ID)=A$ 250 PRINT:PRINT"Enter a passowrd (8 letters or less)" 260 PRINT"=====>> ";:LN=8:GOSUB50: IF A$=""THENA$="PASSWORD" 270 P$(ID)=A$ 280 PRINT:PRINT"Logged in as ";N$(ID):PRINT"Password : ";P$(ID) 290 PRINT"Correct?";:LN=1:GOSUB50 300 IFA$="N"ORA$="n"THEN PRINT:GOTO 220 310 IFA$="N"ORA$="n"THEN GOTO 220 320 PRINT:PRINT"Accepted. Your **Secret** logon" 330 PRINT"number is ";ID+10000 340 PRINT"Write this number down and use it whenever":PRINT"you logon to Mini= board." 345 PRINT:PRINT"Press RETURN or ENTER to see":PRINT"list of options." 350 PRINT:PRINT"Main Options (B,C,E,K,T,V,)" 360 PRINT"=-=> ";:GOSUB50 370 IFA$="T"ORA$="t"THEN GOTO 9000 380 IFA$="C"ORA$="C"THEN GOTO 7000 390 IFA$="V"ORA$="v"THEN GOTO 5000 400 IFA$="E"ORA$="e"THEN GOTO 3000 410 IFA$="B"ORA$="b"THEN GOTO 1000 420 IFA$="K"ORA$="k"THEN GOTO 4000 500 PRINT : PRINT"Command Options :" 510 PRINT" B - Bulletin section" 520 PRINT" C - Chat with SYSOP" 530 PRINT" E - Enter a message" 540 PRINT" K - Kill a message" 550 PRINT" T - Terminate your call" 560 PRINT" V - View present messages" 570 GOTO 350 1000 PRINT:PRINT"Bulletin sectioon.":PRINT 1010 PRINT"Updated : ";PD$: REM Date file was updated 1020 PRINT 1030 PRINT" This is a short bulletin to welcome" 1040 PRINT"you to the new Mini-Board system." 1100 PRINT:PRINT"End of file.":GOTO 350 3000 PRINT:PRINT"Message Entry Section":PRINT 3010 PRINT"Current high message number is";HM 3020 M5=HM+1: IFM<50 THEN GOTO 3030 3022 FORI=1 TO 50 : IF MC(I)=0 THEN GOTO3025 3024 NEXT I:PRINT"Message file is full.":GOTO350 3025 M5=1 3030 PRINT"Enter msg subject :";:LN=20:GOSUB50 3040 IFA$=""THENPRINT"Msg aborted.":GOTO350 3050 MS$(M5)=A$ 3060 PRINT "Enter your last name : ";:LN=15:GOSUB50 3070 IFA$=""THENGOTO3040 3080 FM$(M5)=N$(ID)+" "+A$ 3090 PRINT"Enter the full name of" 3100 PRINT"the person you are sending" 3110 PRINT"the message to : ";:LN=15:GOSUB50 3120 IFA$=""THENGOTO3040 3130 TM$(M5)=A$: PRINT 3140 PRINT"From : ";FM$(M5) 3150 PRINT"Sent to : ";TM$(M5) 3160 PRINT"Subject : ";MS$(M5):PRINT 3170 PRINT"Correct? ";:LN=1:GOSUB50 3180 IFA$="N" OR A$="n"THEN GOTO 3030 3190 IFA$<>"Y" AND A$<>"y"THEN GOTO3170 3200 MX=1:T$(M5,MX)="" 3210 PRINT"Enter text. You have a maximum" 3220 PRINT"of 5 lines at 64 characters per" 3230 PRINT"line. Press RETURN alone when done." 3240 PRINT:PRINT"Line. ";MX 3250 PRINT">";:LN=64:GOSUB50:IFA$=""THEN3280 3260 T$(M5,MX)=A$:MX=MX+1:IFMX=6 THEN GOTO3080 3270 GOTO 3240 3280 MX=MX-1 3290 IF MX=0 THEN PRINT"Aborted.":GOTO350 3300 PRINT:PRINT"Listing...." 3310 FOR I=1 TO MX : PRINT T$(M5,I) : NEXT I 3320 PRINT : PRINT"Save message? ";:LN=1:GOSUB50 3330 IFA$="N" OR A$="n"THEN PRINT"ABORTED.":GOTO 350 3340 IFA$<>"Y" AND A$<>"y" THEN GOTO 3320 3350 PRINT:PRINT"Message saved.":ML(M5)=MX 3360 IFM5>HM THEN HM=M5 3370 MC(M5)=1:GOTO 350 4000 PRINT : PRINT"Message Kill Section":PRINT 4005 IF HM=0 THEN GOTO 5005 4010 PRINT"Current high message is ";HM 4020 PRINT"Enter msg to kill or" 4030 PRINT"RETURN to abort -> ";:LN=1:GOSUB50 4040 IFA$=""ORVAL(A$)=0 THEN GOTO350 4050 MK=VAL(A$) 4060 IFMK <0 OR MK > HM THENPRINT"Incorrect entry":GOTO4020 4070 IF MC(MK)=0 THENPRINT"No such msg in file.":GOTO4010 4080 PRINT:PRINT"Msg ";MK 4090 PRINT"From : ";FM$(MK) 4100 PRINT"Sent to : ";TM$(MK) 4110 PRINT"Subject : ";MS$(MK) 4120 PRINT:PRINT"Correct msg? ";;:LN=1:GOSUB50 4130 IFA$="N"ORAA$="n"THEN GOTO 4010 4140 IFA$<>"Y" AND A$<>"y"THEN GOTO 4120 4150 PRINT:PRINT"Message Deleted from file." 4160 MC(MK)=0 : IFMK < HM THEN GOTO350 4170 FOR I=50 TO 1 STEP-1 4180 IFMC(I)>0 THEN HM=I : GOTO 350 4190 NEXT I : HM=0 : GOTO 350 5000 PRINT : PRINT"Message View Section":PRINT 5005 IF HM=0 THENPRINT"No messages in file.":GOTO350 5010 PRINT"Current high msg number is";HM 5020 PRINT:PRINT"Enter message number to View" 5030 PRINT"or RETURN to abort -> ";:LN=3:GOSUB50 5040 IFA$=""THEN GOTO 350 5050 MV=VAL(A$) : IFMV<1 OR MV>HM THEN PRINT"Invalid entry":GOTO 5010 5055 IFMC(MV)=0 THEN PRINT"That message does not exist.":PRINT:GOTO 5010 5060 PRINT:PRINT"Message ";MV 5070 PRINT"From : ";FM$(MV) 5080 PRINT"Sent to : ";TM$(MV) 5090 PRINT"Subject : ";MS$(MV) 5100 PRINT: FOR I=1 TO ML(MV) 5110 PRINT T$(MV,I) : NEXT I 5120 PRINT : GOTO 5010 7000 PRINT : PRINT"Chat Section":PRINT 7010 PRINT"Standby while I check for SYSOP." 7020 FOR I=1 TO 10 7030 PRINT I;" - "; 7040 IFINKEYY$="*" THEN GOTO 7100 7050 NEXT I : PRINT 7060 PRINT"Sorry, SYSOP is unavailble at this time." 7070 GOTO 350 7100 PRINT : PRINT 7110 PRINT"Hello ";N$(ID) 7120 PRINT "<>";:LN=64:GOSUB50 7130 IFA$="RETURN"THENPRINT"So long!":GOTO350 7140 GOTO7120 8000 PRINT:PRINT"<*><*> SYSOP MENU <*><*>":PRINT 8010 PRINT" 1 : Save DATA to disk" 8020 PRINT" 2 : Load DATA from disk" 8030 PRINT" 3 : Examine User file" 8040 PRINT" 4 : Insert new bulletin" 8050 PRINT" 5 : Return to Mini-Board" 8060 PRINT 8070 PRINT"==========> ";:LN=1:GOSUB50 8080 IFA$="" OR VAL(A$)=0 THEN GOTO8000 8090 SC=VAL(A$):IF SC<1 OR SC>5 THEN GOTO8000 8100 ON SC GOTO 6000,6500,8500,8200,180 9000 PRINT : PRINT"Are you sure you want to" 9010 PRINT"Terminate? ";:LN=1:GOSUB50 9020 IFA$="N"OR A$="n"THEN GOTO 350 9030 IFA$<>"Y" AND A$<>"y" THENGOTO 9010 9040 PRINT 9050 PRINT"Thank you for logging on ";N$(ID) 9060 PRINT"Please call back soon." 9100 GOTO 30