2068 BBS Program

Date: 1986
Type: Program
Platform(s): TS 2068

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

Content

Appears On

Related Products

Related Articles

This program creates a limited capacity message BBS using a 2068 & 2050 modem. Thanks to Randy and Lucy Gordon...

Related Content

Image Gallery

Source Code

10 PAPER 0: INK 7: BORDER 1: CLS
\n12 PRINT "stop tape"'''"then press (ENTER)": PAUSE 0: CLEAR 65478
\n14 LET l$="175219119230003079006000201219119230128200175219119230002040244219116050199255079219119230128200175219119230001040244121211115201219119230128200175219119230001040240201"
\n16 FOR x=0 TO 55: POKE 65480+x,VAL l$(3*x+1 to 3*x+3): NEXT x
\n18 LET o=VAL"65523": LET i=val "65489": LET l=val "9100": LET aa=val "1000": LET q=val "9200":
\n20 DIM m$(90,300): DIM y(1): PRINT "load?": PAUSE 0: IF INKEY$<>"y" THEN GO TO 24
\n22 LOAD "" DATA m$(): LOAD "" DATA y(): LET y1=y(1)
\n23 GO TO 25
\n24 LET y=10
\n1000 OUT 119,34: OUT 119,0
\n1001 POKE 23692,255: CLS: PRINT """2068 BBS"""
\n1002 LET x=IN 119
\n1004 IF x=5 THEN GO TO VAL "1002"
\n1010 OUT 119,2: OUT 119,34: PAUSE 300: OUT 119,64: OUT 119,123: OUT 119,55
\n1012 POKE 23674,0: POKE 23673,0: POKE 23672,0
\n1014 PAUSE 120
\n1016 FOR x=1 TO 30: RANDOMIZE USR o: OUT 115,0: NEXT X
\n1018 LET a=IN 119: IF a<128 THEN GO TO 1020
\n1020 RANDOMIZE USR o: OUT 115,28: RANDOMIZE USR o: OUT 115,31: RANDOMIZE USR o: OUT 115,28
\n1021 LET x=IN 115
\n1022 GO SUB VAL "8002"
\n1024 GO SUB 9400
\n1026 GO SUB 9405
\n1028 IF CODE l$(LEN l$)<>13 THEN GO TO 1026
\n1030 CLS: PRINT l$; " calling": LET u$=l$
\n1032 GO SUB 8006
\n1034 GO SUB 9400
\n1038 IF l$="R" THEN GO TO 2100
\n1040 IF l$="F" THEN GO TO 2200
\n1042 IF l$="L" THEN GO TO 2300
\n1044 IF l$="B" THEN GO TO 9200
\n1046 IF l$="#" THEN GO TO 2400
\n1048 IF l$="C" THEN GO TO 2500
\n1090 GO TO 1032
\n2100 REM Reverse Read
\n2104 FOR b=y1 TO 1 STEP -1
\n2105 GO SUB 8018
\n2106 GO SUB 9500
\n2114 IF l$="N" THEN NEXT b
\n2116 IF l$="M" THEN GO TO 1032
\n2118 GO TO 1032
\n2200 REM Forward Read
\n2204 FOR b=1 to y1
\n2205 GO SUB 8018
\n2206 GO SUB 9500
\n2214 IF l$="N" THEN NEXT b
\n2216 IF l$="M" THEN GO TO 1032
\n2218 GO TO 1032
\n2300 REM Leave Message
\n2302 LET y1=y1+1: IF y1=90 THEN LET y1=1
\n2304 GO SUB 8010
\n2306 GO SUB 9400
\n2308 GO SUB 9405
\n2310 IF in<>13 THEN GO TO 2308
\n2312 LET l$="TO: "+l$+CHR$ 13+"FROM: "+u$+CHR$ 13: LET y2=LEN l$: LET m$(y1, TO y2)=l$
\n2314 GO SUB 8012
\n2316 GO SUB 9400
\n2318 GO SUB 9402
\n2320 IF in<>13 THEN GO TO 2318
\n2322 REM Wordwrap
\n2330 IF LEN l$>299-y2+1 THEN LET l$=l$( TO 299-y2)
\n2332 LET c1=33
\n2334 IF l$(c1)<>" " THEN LET c1=c1-1
\n2336 IF l$(c1)=" " THEN LET l$(c1)=CHR$ 13
\n2338 IF CODE l$(c1)<>13 THEN GO TO 2334
\n2340 LET m$(y1,y2+1 TO y2+c1)=l$( TO C1): LET y2=ys+c1
\n2342 LET l$=l$(c1+1 TO )
\n2344 IF LEN l$>32 THEN GO TO 2332
\n2345 LET l$=l$+CHR$ 7
\n2346 LET m$(y1,y2+1 TO 300)=l$
\n2350 GO TO 1032
\n2400 REM Read by Number
\n2401 GO SUB VAL "8016"
\n2402 GO SUB 9400
\n2404 GO SUB 9405
\n2406 IF in<>13 THEN GO TO 2404
\n2408 LET b=VAL l$( TO (LEN l$-1))
\n2410 GO SUB 8018
\n2412 GO SUB 9500
\n2414 IF l$="N" THEN GO TO VAL "2400"
\n2416 IF l$="M" THEN GO TO VAL "1032"
\n2418 GO TO 1032
\n2500 REM Chat Mode
\n2502 GO SUB 8020
\n2504 FOR x=1 TO 128
\n2506 BEEP .1,10+INT (x/10)
\n2508 RANDOMIZE USR o
\n2510 OUT 115,46
\n2512 IF INKEY$<>"" THEN GO TO 2550
\n2514 NEXT x
\n2516 GO SUB 8022: GO TO 1032
\n2550 CLS: PRINT "chat w/";u$
\n2552 GO SUB 8024
\n2554 PRINT "NOT to escape"
\n2556 IF CODE INKEY$=195 THEN GO TO 1032
\n2558 POKE 23692,255
\n2560 LET r=0: LET xmit=0
\n2562 LET a=USR 65480
\n2564 LET xmit=1 and (a=1 or a=3)
\n2565 LET r=1 and (a=2 or a=3)
\n2569 IF r then GO TO 2576
\n2572 GO TO 2588
\n2576 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
\n2588 IF xmit and INKEY$<>"" THEN GO SUB 2592
\n2590 GO TO 2556
\n2592 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 ">";
\n2596 RETURN
\n8000 REM Strings Going Out
\n8002 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
\n8006 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
\n8008 LET p$=CHR$ 12+"     BYE-BYE": GO SUB l: RETURN
\n8010 LET p$=CHR$ VAL "12"+"WHO GETS MESSAGE?"+CHR$ 13: GO SUB l: RETURN
\n8012 LET p$=CHR$ 12+"250 CHARACTERS MAX"+CHR$ 13+"(ENTER) SAVES MESSAGE"+CHR$ 13: GO SUB l: RETURN
\n8014 LET p$=CHR$ 13+"(N)EXT MESSAGE OR (M)ENU"+CHR$ 13: GO SUB l: RETURN
\n8016 LET p$=CHR$ 13+"INPUT MESSAGE # "CHR$ 13+"[1-90] ->": GO SUB l: RETURN
\n8018 LET p$=CHR$ 13+"MESSAGE # "+STR$ B+CHR$ 13: GO SUB l: RETURN
\n8020 LET p$=CHR$ 12+"PAGING SYSOP.....": GO SUB l: RETURN
\n8022 LET p$="HE'S NOT HERE!": GO SUB l: RETURN
\n8024 LET p$="OK, LET'S TALK...": GO SUB l: RETURN
\n9000 CLEAR: SAVE "BBS" LINE 10: STOP
\n9100 FOR x=1 TO LEN P$: RANDOMIZE USR o: OUT 115,CODE p$(x): NEXT x: POKE 23692,255: PRINT p$: RETURN
\n9201 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
\n9202 BEEP .2,10: BEEP .3,-20
\n9204 GO TO aa
\n9400 LET l$=""
\n9406 ON ERR GO TO q: RANDOMIZE USR i: LET in=PEEK 65479
\n9407 IF in=13 THEN GO TO 9409
\n9408 IF IN<32 or in>122 THEN GO TO 9406
\n9409 POKE 23692,255: PRINT CHR$ in;
\n9410 LET ca=in: IF in>96 AND in<123 THEN LET ca=in-32: LET in=ca
\n9412 LET l$=l$+CHR$ in
\n9414 RETURN
\n9500 LET l$=m$(b)
\n9504 FOR a=300 to 1 step -1: IF CODE l$(a)<>7 THEN NEXT a
\n9506 LET p$=( TO a)
\n9510 GO SUB l: GO SUB 8014: GO SUB 9400: RETURN
\n9900 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
\n9950 SAVE "Msgs" DATA m$(): LET y(1)=y1: BEEP .1,50: SAVE "count" DATA y(): STOP
Scroll to Top