2068 BBS Program

Publication

Publication Details

Date

Pages

This program creates a limited capacity message BBS using a 2068 & 2050 modem.

Thanks to Randy and Lucy Gordon for making BBS software available to us. This revised version has new features that will make it easier to use. I hacked the BASIC down some to make more room in memory for messages. I left over 5000 bytes free so that you can customize the bulletins and prompt strings.

To save the message base, you will have to BREAK the program and GOTO 9950.

Any new versions will be sold by me for $5.00. I can only send listings for that price.

10 PAPER 0: INK 7: BORDER 1: CLS
12 PRINT "stop tape"'''"then press (ENTER)": PAUSE 0: CLEAR 65478
14 LET l$="175219119230003079006000201219119230128200175219119230002040244219116050199255079219119230128200175219119230001040244121211115201219119230128200175219119230001040240201"
16 FOR x=0 TO 55: POKE 65480+x,VAL l$(3*x+1 to 3*x+3): NEXT x
18 LET o=VAL"65523": LET i=val "65489": LET l=val "9100": LET aa=val "1000": LET q=val "9200":
20 DIM m$(90,300): DIM y(1): PRINT "load?": PAUSE 0: IF INKEY$<>"y" THEN GO TO 24
22 LOAD "" DATA m$(): LOAD "" DATA y(): LET y1=y(1)
23 GO TO 25
24 LET y=10
1000 OUT 119,34: OUT 119,0
1001 POKE 23692,255: CLS: PRINT """2068 BBS"""
1002 LET x=IN 119
1004 IF x=5 THEN GO TO VAL "1002"
1010 OUT 119,2: OUT 119,34: PAUSE 300: OUT 119,64: OUT 119,123: OUT 119,55
1012 POKE 23674,0: POKE 23673,0: POKE 23672,0
1014 PAUSE 120
1016 FOR x=1 TO 30: RANDOMIZE USR o: OUT 115,0: NEXT X
1018 LET a=IN 119: IF a<128 THEN GO TO 1020
1020 RANDOMIZE USR o: OUT 115,28: RANDOMIZE USR o: OUT 115,31: RANDOMIZE USR o: OUT 115,28
1021 LET x=IN 115
1022 GO SUB VAL "8002"
1024 GO SUB 9400
1026 GO SUB 9405
1028 IF CODE l$(LEN l$)<>13 THEN GO TO 1026
1030 CLS: PRINT l$; " calling": LET u$=l$
1032 GO SUB 8006
1034 GO SUB 9400
1038 IF l$="R" THEN GO TO 2100
1040 IF l$="F" THEN GO TO 2200
1042 IF l$="L" THEN GO TO 2300
1044 IF l$="B" THEN GO TO 9200
1046 IF l$="#" THEN GO TO 2400
1048 IF l$="C" THEN GO TO 2500
1090 GO TO 1032
2100 REM Reverse Read
2104 FOR b=y1 TO 1 STEP -1
2105 GO SUB 8018
2106 GO SUB 9500
2114 IF l$="N" THEN NEXT b
2116 IF l$="M" THEN GO TO 1032
2118 GO TO 1032
2200 REM Forward Read
2204 FOR b=1 to y1
2205 GO SUB 8018
2206 GO SUB 9500
2214 IF l$="N" THEN NEXT b
2216 IF l$="M" THEN GO TO 1032
2218 GO TO 1032
2300 REM Leave Message
2302 LET y1=y1+1: IF y1=90 THEN LET y1=1
2304 GO SUB 8010
2306 GO SUB 9400
2308 GO SUB 9405
2310 IF in<>13 THEN GO TO 2308
2312 LET l$="TO: "+l$+CHR$ 13+"FROM: "+u$+CHR$ 13: LET y2=LEN l$: LET m$(y1, TO y2)=l$
2314 GO SUB 8012
2316 GO SUB 9400
2318 GO SUB 9402
2320 IF in<>13 THEN GO TO 2318
2322 REM Wordwrap
2330 IF LEN l$>299-y2+1 THEN LET l$=l$( TO 299-y2)
2332 LET c1=33
2334 IF l$(c1)<>" " THEN LET c1=c1-1
2336 IF l$(c1)=" " THEN LET l$(c1)=CHR$ 13
2338 IF CODE l$(c1)<>13 THEN GO TO 2334
2340 LET m$(y1,y2+1 TO y2+c1)=l$( TO C1): LET y2=ys+c1
2342 LET l$=l$(c1+1 TO )
2344 IF LEN l$>32 THEN GO TO 2332
2345 LET l$=l$+CHR$ 7
2346 LET m$(y1,y2+1 TO 300)=l$
2350 GO TO 1032
2400 REM Read by Number
2401 GO SUB VAL "8016"
2402 GO SUB 9400
2404 GO SUB 9405
2406 IF in<>13 THEN GO TO 2404
2408 LET b=VAL l$( TO (LEN l$-1))
2410 GO SUB 8018
2412 GO SUB 9500
2414 IF l$="N" THEN GO TO VAL "2400"
2416 IF l$="M" THEN GO TO VAL "1032"
2418 GO TO 1032
2500 REM Chat Mode
2502 GO SUB 8020
2504 FOR x=1 TO 128
2506 BEEP .1,10+INT (x/10)
2508 RANDOMIZE USR o
2510 OUT 115,46
2512 IF INKEY$<>"" THEN GO TO 2550
2514 NEXT x
2516 GO SUB 8022: GO TO 1032
2550 CLS: PRINT "chat w/";u$
2552 GO SUB 8024
2554 PRINT "NOT to escape"
2556 IF CODE INKEY$=195 THEN GO TO 1032
2558 POKE 23692,255
2560 LET r=0: LET xmit=0
2562 LET a=USR 65480
2564 LET xmit=1 and (a=1 or a=3)
2565 LET r=1 and (a=2 or a=3)
2569 IF r then GO TO 2576
2572 GO TO 2588
2576 RANDOMIZE USR i: LET in=PEEK 65479: IF in>32 or in<123 THEN PRINT CHR$ in;: IF in=13 THEN PRINT ">": GO TO 2556
2588 IF xmit and INKEY$<>"" THEN GO SUB 2592
2590 GO TO 2556
2592 IF xmit THEN LET l$=INKEY$: PRINT l$;: OUT 115,CODE l$: FOR x=1 TO 5: NEXT x: IF CODE l$=13 THEN PRINT ">";
2596 RETURN
8000 REM Strings Going Out
8002 LET p$=CHR$ 12+"TIMEX BOARD"+CHR$ 13+"TURN YOUR CR SUPPRESSOR OFF"+CHR$ 13+CHR$ 13+"YOUR NAME?"+CHR$ 13+">"+CHR$ 7: GO SUB l: RETURN
8006 GO SUB VAL "9900": LET p$=CHR$ VAL "12"+"(B)YE BYE"+CHR$ 13+"(L)EAVE MSG."+CHR$ 13+"(F)WD. READ"+CHR$ 13+"(R)EV. READ"+CHR$ 13+"(#) READ BY #"+CHR$ 13+"(C)HAT"+CHR$ 13+"TIME ON "+l$+CHR$ 13: GO SUB l: RETURN
8008 LET p$=CHR$ 12+" BYE-BYE": GO SUB l: RETURN
8010 LET p$=CHR$ VAL "12"+"WHO GETS MESSAGE?"+CHR$ 13: GO SUB l: RETURN
8012 LET p$=CHR$ 12+"250 CHARACTERS MAX"+CHR$ 13+"(ENTER) SAVES MESSAGE"+CHR$ 13: GO SUB l: RETURN
8014 LET p$=CHR$ 13+"(N)EXT MESSAGE OR (M)ENU"+CHR$ 13: GO SUB l: RETURN
8016 LET p$=CHR$ 13+"INPUT MESSAGE # "CHR$ 13+"[1-90] ->": GO SUB l: RETURN
8018 LET p$=CHR$ 13+"MESSAGE # "+STR$ B+CHR$ 13: GO SUB l: RETURN
8020 LET p$=CHR$ 12+"PAGING SYSOP.....": GO SUB l: RETURN
8022 LET p$="HE'S NOT HERE!": GO SUB l: RETURN
8024 LET p$="OK, LET'S TALK...": GO SUB l: RETURN
9000 CLEAR: SAVE "BBS" LINE 10: STOP
9100 FOR x=1 TO LEN P$: RANDOMIZE USR o: OUT 115,CODE p$(x): NEXT x: POKE 23692,255: PRINT p$: RETURN
9201 GO SUB 8008: ON ERR RESET: RANDOMIZE USR o: OUT 115,28: RANDOMIZE USR o: OUT 115,31: GO SUB l: OUT 119,64: OUT 119,0: OUT 119,0
9202 BEEP .2,10: BEEP .3,-20
9204 GO TO aa
9400 LET l$=""
9406 ON ERR GO TO q: RANDOMIZE USR i: LET in=PEEK 65479
9407 IF in=13 THEN GO TO 9409
9408 IF IN<32 or in>122 THEN GO TO 9406
9409 POKE 23692,255: PRINT CHR$ in;
9410 LET ca=in: IF in>96 AND in<123 THEN LET ca=in-32: LET in=ca
9412 LET l$=l$+CHR$ in
9414 RETURN
9500 LET l$=m$(b)
9504 FOR a=300 to 1 step -1: IF CODE l$(a)<>7 THEN NEXT a
9506 LET p$=( TO a)
9510 GO SUB l: GO SUB 8014: GO SUB 9400: RETURN
9900 LET l$="": LET t=PEEK 23672+2^8*PEEK 23673+2^16*PEEK 23674: LET m=INT (t/3600): LET s=INT ((t/3600-m)*60): LET l$=STR$ m+":"+("0" and s<10)+STR$ s: RETURN
9950 SAVE "Msgs" DATA m$(): LET y(1)=y1: BEEP .1,50: SAVE "count" DATA y(): STOP

Products

 

Downloadable Media

Scroll to Top