home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64-128BBS / STR3.5SRC.ARC / ST / R.UD (.txt) < prev   
Encoding:
Commodore BASIC  |  2019-04-13  |  14.7 KB  |  442 lines

  1. 100 POKE152,PEEK(251)
  2. 110 GOTO450
  3. 120 :
  4. 130 :REM START OF USER JUMP TABLE.
  5. 140 :
  6. 150 GOTO760 :REM CHECK FOR CARRIER.
  7. 160 GOTO820 :REM SEND P$+CHR$(13) OUT.
  8. 170 GOTO830 :REM SEND P$ OUT.
  9. 180 GOTO970 :REM GET L$ FROM MODEM.
  10. 190 GOTO1220:REM CALL FOR CHAT.
  11. 200 GOTO1260:REM ENGAGE CHAT MODE.
  12. 210 GOTO1370:REM SEND 'P' TO USERFILE.
  13. 220 GOTO1410:REM READ ERROR CHANNEL.
  14. 230 GOTO1430:REM READ SYSTEM CLOCK.
  15. 240 GOTO1530:REM DISPLAY USER STATS.
  16. 250 GOTO1680:REM DISPLAY USER ONLINE.
  17. 260 GOTO1700:REM EDIT USER STATISTICS.
  18. 270 GOTO2080:REM REMOTE SYSOP MENU.
  19. 280 GOTO2300:REM DISPLAY DIR.
  20. 290 GOTO2600:REM BREAK RC INTO LO/HI.
  21. 300 GOTO2640:REM UPDATE (USER LOG).
  22. 310 GOTO2650:REM SAME AS 2330.
  23. 320 GOTO2660:REM GET U$() FROM DISK.
  24. 330 GOTO2670:REM GET N$() FROM DISK.
  25. 340 GOTO2710:REM SEND U$() TO DISK.
  26. 350 GOTO2720:REM SEND N$() TO DISK.
  27. 360 GOTO2770:REM FIND DV,DR$.
  28. 370 GOTO2790:REM INCREMENT DV,DR$.
  29. 380 GOTO2850:REM HANG UP PHONE.
  30. 390 GOTO2920:REM FIND TIME CONNECTED.
  31. 400 GOTO2950:REM RETURN TO BBS.
  32. 410 GOTO2960:REM LOAD NEXT MODULE.
  33. 420 :
  34. 430 :REM END OF USER JUMP TABLE.
  35. 440 :
  36. 450 B1=56577:B2=56579:Q$=CHR$(34):B3=56590:B4=56588:DV=8:N$=CHR$(0)
  37. 460 DIMIN%(255),OT%(255),L%(12),D$(30),U$(12),N$(12),DR%(7):SI=54272
  38. 470 FORI=1TO12:READL%(I):NEXT:DATA 20,12,5,15,1,2,20,1,3,3,5,3:DR$="0"
  39. 480 GOSUB550:GOSUB490:GOTO530
  40. 490 OPEN1,8,5,"0:(BBS.CONFIG)":FORT=0TO9:INPUT#1,A:IFA=0THEN500
  41. 495 FORI=0TOA-1:INPUT#1,A$,A,A:NEXT
  42. 500 NEXT:INPUT#1,DR:FORI=0TODR-1:INPUT#1,DR%(I):NEXT:DR=DR+7
  43. 510 INPUT#1,RF:AA=-((RFAND128)=128):RF$=MID$(STR$(AA),2)+":(USERFILE)"
  44. 520 INPUT#1,SY$,BD$,MT%,RC,S1$,S2$,RR,P1$,P2$,D5,D6:CLOSE1:RETURN
  45. 530 F$=CHR$(13):P=0:POKE51972,P:SYS51976:BS=255:UL$=""
  46. 535 BR=PEEK(51968)+256*PEEK(51969):BR=INT(1022730/BR)
  47. 540 DC$="[149] --===[129]***[158]===[153]---===[159]***[154]===---[156]===***[158]===--[152]":GOTO3010
  48. 550 FORI=1TO64:OT%(I)=I:NEXT:OT%(20)=8:OT%(160)=32
  49. 560 OT%(12)=12:FORI=65TO90:OT%(I)=I+32:NEXT:OT%(34)=ASC("'")
  50. 570 FORI=91TO95:OT%(I)=I:NEXT:FORI=193TO218:OT%(I)=I-128:NEXT
  51. 580 OT%(5)=0:OT%(8)=0:OT%(9)=0:OT%(14)=0:OT%(17)=0:OT%(18)=0:OT%(28)=0
  52. 590 OT%(29)=0:OT%(30)=0:OT%(31)=0
  53. 600 FORI=0TO255:T=OT%(I):IFT<>0THENIN%(T)=I:IN%(T+128)=I
  54. 610 NEXT:IN%(160)=32:IN%(32)=32:RETURN
  55. 620 TI$="000000":A$=""
  56. 630 GOSUB760:IFCDTHENRETURN
  57. 640 GOSUB2920:IFSY=0ANDCO>240THENCD=1:RETURN
  58. 650 GETZ$:IFSY=0THENGET#5,A$
  59. 660 IFZ$="[133]"THENSY=SY+1:GOSUB2080:SY=SY-1:RETURN
  60. 670 IFZ$="[134]"THENGOSUB1260:TI$="000000":RETURN
  61. 680 IFZ$="[140]"THENCD=1:RETURN
  62. 690 IFZ$<>""ORA$<>""THEN730
  63. 700 IFVAL(TI$)<400THEN630
  64. 710 OPEN1,8,5,"0:(USER LOG),A":PRINT#1,UL$:PRINT#1,"[212]IME [197]LAPSED![152]":CLOSE1
  65. 720 CD=1:UL$="":RETURN
  66. 730 IFA$=""ORZ$=""THENGOSUB750
  67. 740 RETURN
  68. 750 POKESI+4,21:POKESI+4,20:RETURN
  69. 760 CD=0:IFSYTHENRETURN
  70. 770 IF(PEEK(B1)AND16)<>HLTHENRETURN
  71. 780 TI$="000000"
  72. 790 IF(PEEK(B1)AND16)<>HLTHENRETURN
  73. 800 IFVAL(TI$)>5THENCD=1:RETURN
  74. 810 GOTO790
  75. 820 P$=P$+F$
  76. 830 IFL=55THENPRINT#4,P$;:RETURN
  77. 840 IFSYTHENPRINTP$;:GOTO880
  78. 850 IFCGTHENPRINTP$;:PRINT#5,P$;:GOTO880
  79. 860 FORI=1TOLEN(P$):A$=MID$(P$,I,1):IFA$=""THENGOSUB750
  80. 870 PRINTA$;:PRINT#5,CHR$(OT%(ASC(A$)));:NEXT
  81. 880 I=PEEK(673)AND1:GET#5,A$:IFA$=""THENGETA$
  82. 890 IFA$=CHR$(160)THENA$=" "
  83. 900 IF(A$>""ANDMM)ORA$=" "ORA$="/"ORCDTHEN960
  84. 910 IFA$=""THEN940
  85. 920 IFITHEN880
  86. 930 RETURN
  87. 940 GET#5,A$:IFA$=""THENGETA$
  88. 950 IFA$=""THEN940
  89. 960 ONPEEK(673)AND1GOTO960:RETURN
  90. 970 L$="":FORI=1TOL:PRINT"[164][157]";
  91. 980 GOSUB620:IFCDTHENRETURN
  92. 990 IFZ$<>""THENT=ASC(Z$):A$=Z$:GOTO1030
  93. 1000 IFCGTHENT=ASC(A$+N$):GOTO1020
  94. 1010 T=IN%(ASC(A$+N$)):A$=CHR$(T)
  95. 1020 IFT=0THEN980
  96. 1030 IFT=34THENT=39:A$="'"
  97. 1040 IFT=20ANDL$<>""THENL$=LEFT$(L$,LEN(L$)-1):I=I-1:GOTO1100
  98. 1050 IFT=20ANDL$=""THEN980
  99. 1060 IFT=13ANDSYTHENPRINT" ":RETURN
  100. 1070 IFT=13THENPRINT" ":PRINT#5,F$;:RETURN
  101. 1080 IFT=10THEN980
  102. 1090 IFLEN(L$)=38THENP$="":GOSUB830:GOTO980
  103. 1100 IFI=>30AND(ASC(A$+N$)AND127)=32ANDMMTHENT=13:GOTO1060
  104. 1110 IFSYTHENPRINTA$;:GOTO1170
  105. 1120 IF(T=20)ANDCGANDECTHENPRINTA$;:PRINT#5,A$;:GOTO1170
  106. 1130 IFT=20ANDECTHENPRINTA$;:PRINT#5,CHR$(OT%(ASC(A$)));:GOTO1170
  107. 1140 IFECTHENPRINTA$;:PRINT#5,"-";:GOTO1170
  108. 1150 IFCGTHENPRINTA$;:PRINT#5,A$;:GOTO1170
  109. 1160 PRINTA$;:PRINT#5,CHR$(OT%(ASC(A$)));
  110. 1170 IFT=20THEN980
  111. 1180 L$=L$+A$:NEXT:T=13:EC=0:GOTO1060
  112. 1190 P$=F$+"[197]NTER [193]CCESS LEVEL: ":GOSUB830:L=5:GOSUB970:IFCDTHENRETURN
  113. 1200 IFVAL(L$)<0ORVAL(L$)>65535ORL$=""THENRETURN
  114. 1210 L=VAL(L$):A2=INT(L/256):A1=L-A2*256:A$=L$:RETURN
  115. 1220 IFSA<>1THENP$=F$+F$+SY$+" IS NOT AVAILABLE RIGHT NOW.":GOSUB820:RETURN
  116. 1230 P$="[195]ALLING "+SY$+"....":GOSUB820:FORI=1TO20:GETA$:IFA$="[134]"THEN1260
  117. 1240 GOSUB750:FORT=1TO600:NEXT:NEXT
  118. 1250 P$="[212]RY AGAIN LATER....":GOSUB820:RETURN
  119. 1260 P$=F$+F$+SY$+", CHATTING WITH "+U$(1)+F$:GOSUB820
  120. 1270 PRINT"[164][157]";:GETZ$:GET#5,A$:GOSUB760
  121. 1280 IFCG=0THENA$=CHR$(IN%(ASC(A$+N$)))
  122. 1290 IFZ$="[134]"ORCDTHENP$=F$+SY$+" HAS RETURNED TO "+BD$+".":GOSUB820:RETURN
  123. 1300 IFZ$="[133]"THENSY=SY+1:GOSUB2080:SY=SY-1
  124. 1310 IFA$=CHR$(0)ORA$=""THENA$=Z$
  125. 1320 IFA$=""THEN1270
  126. 1330 IFA$=""THENGOSUB750
  127. 1340 IFA$=CHR$(13)THENPRINT" ";:PRINT#5,CHR$(10);
  128. 1350 PRINT" [157]";:IFCGTHENPRINTA$;:PRINT#5,A$;:GOTO1270
  129. 1360 PRINTA$;:PRINT#5,CHR$(OT%(ASC(A$)));:GOTO1270
  130. 1370 GOSUB2610:AA=RF:GOSUB2770
  131. 1380 FORL=1TO2:PRINT#15-B,"P"CHR$(99)CHR$(R1)CHR$(R2)CHR$(1):GOSUB1410:NEXT
  132. 1390 GOSUB1410:IFER$<"20"ORER$="50"THENRETURN
  133. 1400 PRINT"[197]RROR IN (USERFILE)!":GOSUB2850:STOP
  134. 1410 ES$="":GOSUB1420:ER$=LEFT$(ES$,2):RETURN
  135. 1420 GET#15-B,A$:ES$=ES$+A$:ON-(A$<>CHR$(13))GOTO1420:RETURN
  136. 1430 T1$="00:00:00.0 XX":SYS51982,T1$:TM$=T1$+""
  137. 1440 HO$=LEFT$(TM$,2):MI$=MID$(TM$,4,2):FZ$=RIGHT$(TM$,2)
  138. 1490 IFVAL(LEFT$(TM$,2))<>12ANDFZ$<>"AM"THENC2=1:GOTO1520
  139. 1500 IFC2THENOPEN1,8,5,"@0:(T.CALLERS),S,W":PRINT#1," ":CLOSE1:DT=DT+1
  140. 1510 IFC2THENC2=0:NT=0:IFSFTHENOPEN1,8,5,"@0:(USER LOG),S,W":CLOSE1
  141. 1520 DA$=M$+STR$(DT):RETURN
  142. 1530 P$=F$+"[217]OUR [211]TATISTICS...."+F$:GOSUB820
  143. 1540 P$="[206]AME          : "+U$(1):GOSUB820
  144. 1550 P$="[193]CCESS LEVEL  :"+STR$(AC):GOSUB820:GOSUB1430
  145. 1560 P$="[196]ATE/[212]IME     : "+DA$+" "+TM$:GOSUB820:GOSUB2920
  146. 1570 P$="[195]ONNECT [212]IME  :"+STR$(CO)+" MINS.":GOSUB820
  147. 1580 P$="[205]EMBER #      : "+R$:GOSUB820
  148. 1590 P$="[208]ASSWORD      : "+U$(4):GOSUB820
  149. 1600 P$="[193]GE           : "+U$(6):GOSUB820
  150. 1610 P$="[210]EAL [206]AME     : "+U$(7):GOSUB820
  151. 1620 P$="[212]OTAL [213]/[204]'S   : "+U$(9):GOSUB820
  152. 1630 P$="[212]OTAL [196]/[204]'S   : "+U$(10):GOSUB820
  153. 1640 P$="       [[210]ATIO - "+MID$(STR$(RR),2)+":1]":GOSUB820
  154. 1650 P$="[204]AST CALL DATE: "+U$(11):GOSUB820
  155. 1660 P$="[212]OTAL CALLS   : "+U$(12):GOSUB820:RETURN
  156. 1680 PRINT"[156]"F$U$(1)" <*> [204]VL-"+MID$(STR$(AC),2):GOSUB2920
  157. 1690 PRINTTM$" [195]ONNECTED:"STR$(CO)" MINS.[152]":RETURN
  158. 1700 P$=" [147][197]NTER ACCOUNT # OF USER.":GOSUB820
  159. 1710 P$="[193]CCOUNT # OF CURRENT USER: "+R$:GOSUB820
  160. 1720 P$="[214][213]:":GOSUB830:L=3:GOSUB970:IFCDTHENRETURN
  161. 1730 IFL$=""THENRETURN
  162. 1740 E$=L$:IFL$=R$THENFORL=1TO12:N$(L)=U$(L):NEXT:AA=AC:GOTO1760
  163. 1750 OPEN3,RF,3,RF$:RC=VAL(L$):GOSUB1370:GOSUB2670:CLOSE3
  164. 1760 P$=" [147]1 - [206]AME      : "+N$(1)+F$+"2 - [208]HONE     : "+N$(2):GOSUB820:GOSUB2630
  165. 1770 P$="3 - [193]CCESS [204]VL:"+STR$(AA)+F$+"4 - [208]ASSWORD  : "+N$(4):GOSUB820
  166. 1780 P$="5 - # OF [197]MAIL: "+N$(5)+F$+"6 - [193]GE       : "+N$(6):GOSUB820
  167. 1790 P$="7 - [210]EAL NAME : "+N$(7)+F$+"8 - C/G MODE  : "+N$(8):GOSUB820
  168. 1800 P$="9 - [212]OTAL [213]/[204] : "+N$(9)+F$+"[193] - [212]OTAL [196]/[204] : "+N$(10):GOSUB820
  169. 1820 P$="[194] - [204]AST CALL : "+N$(11):GOSUB820
  170. 1830 P$="[195] - # CALLS   : "+N$(12):GOSUB820
  171. 1850 IFL=55THENL=0:PRINT#4:CLOSE4:GOTO1760
  172. 1860 P$=F$+"[215]HICH TO CHANGE:":GOSUB830:L=1:GOSUB970:IFCDTHENRETURN
  173. 1870 IFL$=""ANDR$=E$THENFORL=1TO12:U$(L)=N$(L):NEXT:AC=AA:GOTO1700
  174. 1880 IFL$=""THEN1700
  175. 1890 IFL$="S"ORL$="[211]"THEN1980
  176. 1900 IFL$="P"ORL$="[208]"THENL=55:OPEN4,4,7:GOTO1760
  177. 1910 S=(ASC(L$)AND127)-64:IFS=>1ANDS<=3THENS=S+9:GOTO1940
  178. 1920 S=VAL(L$):IFS<1ORS>14THEN1760
  179. 1930 IFS=3THENGOSUB1190:N$(3)=A$:AA=A:GOTO1760
  180. 1940 IFS=11THENGOSUB2760:GOTO1760
  181. 1950 P$=F$+"["+N$(S)+"]:[195]HANGE TO->":GOSUB830
  182. 1960 L=20:GOSUB970:IFCDTHENRETURN
  183. 1970 N$(S)=L$:GOTO1760
  184. 1980 P$=F$+"[211]AVE STATS WHERE? (DEFAULT="+E$+"):":GOSUB830
  185. 1990 L=3:GOSUB970:IFCDTHENRETURN
  186. 2000 IFL$<>""ANDVAL(L$)>0THENE$=L$
  187. 2010 P$=F$+"[211]AVE AT: "+E$:GOSUB820
  188. 2020 P$="[195]ORRECT? (Y/N):":GOSUB830:L=1:GOSUB970:IFCDTHENRETURN
  189. 2030 IFL$<>"Y"ANDL$<>"[217]"THEN1760
  190. 2040 OPEN3,RF,3,RF$:RC=VAL(E$):GOSUB1370
  191. 2050 GOSUB2720
  192. 2060 CLOSE3
  193. 2070 RETURN
  194. 2080 AA=DV:GOSUB2770
  195. 2090 P$=" [147]":GOSUB820
  196. 2100 P$=DC$+F$+"   --**]> [210]EMOTE [211]YS-[207]P [205]ENU <[**--"+F$+DC$+F$:GOSUB820
  197. 2110 P$="[214] - [214]ALIDATE USER":GOSUB820
  198. 2120 P$="[193] - [211]CAN ANY SEQ ON DISK":GOSUB820
  199. 2130 P$="$ - [196]IRECTORY":GOSUB820
  200. 2140 P$="@ - [196]OS COMMANDS":GOSUB820
  201. 2150 P$="[213] - [211]CAN USER LOG":GOSUB820
  202. 2160 P$="[212] - [212]ODAY'S CALLERS":GOSUB820
  203. 2170 P$="# - [212]OGGLE DRIVE #"+STR$(DV)+";"+DR$:GOSUB820
  204. 2180 P$=F$+"[210][211][205]"+MID$(STR$(DV),2)+";"+DR$+":":GOSUB830:L=1:GOSUB970:IFCDTHENRETURN
  205. 2190 IFL$=""THENRETURN
  206. 2200 L$=CHR$(ASC(L$)AND127)
  207. 2210 GOSUB2640:UL$=UL$+"[211]YSOP-"+L$+CHR$(13)
  208. 2220 ON-(L$="U")-2*(L$="A")-3*(L$="V")-4*(L$="$")GOSUB2440,2550,1700,2300
  209. 2230 ON-(A$="#")-2*(L$="T")GOSUB2790,2540
  210. 2240 IFL$="?"THEN2090
  211. 2250 IFL$<>"@"THEN2180
  212. 2260 P$=F$+">":GOSUB830:L=39:GOSUB970:IFCDTHENRETURN
  213. 2270 IFL$=""THENGOSUB1410:P$=F$+ES$:GOSUB820:GOTO2180
  214. 2280 IFLEFT$(L$,4)=P2$+":"THENPRINT#15-B,RIGHT$(L$,LEN(L$)-4)
  215. 2290 GOTO2180
  216. 2300 P$=F$:GOSUB820:OPEN1,DV,0,"$"+DR$+":*"
  217. 2310 GOSUB1410:IFER$>"01"THENCLOSE1:P$=F$+ES$:GOSUB820:RETURN
  218. 2320 GET#1,A$:GET#1,A$
  219. 2330 GET#1,A$:GET#1,A$:IF(ST)AND64THENCLOSE1:RETURN
  220. 2340 GET#1,LO$:GET#1,HI$
  221. 2350 LO$=LO$+N$:HI$=HI$+N$
  222. 2360 P$=STR$(ASC(LO$+CHR$(0))+256*ASC(HI$+CHR$(0)))+" "
  223. 2370 GET#1,A$:IFA$=""THEN2410
  224. 2380 GET#5,Z$:IFZ$=""THENGETZ$
  225. 2390 IFZ$=" "THENCLOSE1:RETURN
  226. 2400 P$=P$+A$:GOTO2370
  227. 2410 L=8:IFECANDMID$(P$,L,1)=Q$THENL=9
  228. 2415 IFECANDMID$(P$,L,1)="("THEN2330
  229. 2420 GOSUB820:IFA$=" "THENCLOSE1:RETURN
  230. 2430 GOTO2330
  231. 2440 FI$="(USER LOG)"
  232. 2450 OPEN1,DV,5,DR$+":"+FI$:P$="":GOSUB1410:IFER$>"01"THENCLOSE1:RETURN
  233. 2460 GET#1,A$:IF(ST)AND64THEN2510
  234. 2470 GET#5,Z$:IFZ$=""THENGETZ$
  235. 2480 IFZ$=" "ORZ$="/"THEN2510
  236. 2490 IFA$=CHR$(13)ORLEN(P$)=39THENGOSUB820:P$="":GOTO2460
  237. 2500 P$=P$+A$:GOTO2460
  238. 2510 GOSUB820:CLOSE1:P$=F$+"[211]CRATCH? (Y/N):":GOSUB830:L=1:GOSUB970
  239. 2520 IFL$=""OR(L$<>"Y"ANDL$<>"[217]")THENRETURN
  240. 2530 OPEN1,DV,5,"@"+DR$+":"+FI$+",S,W":PRINT#1," ":CLOSE1:RETURN
  241. 2540 FI$="(T.CALLERS)":GOTO2450
  242. 2550 P$=F$+"[211]CAN FILE: ":GOSUB830:L=16:GOSUB970
  243. 2560 FI$=L$:GOTO2450
  244. 2570 POKEB3,65:POKEB4,40:POKEB2,231:POKEB1,57:POKEB4,48:RETURN
  245. 2580 GOSUB2570:POKEB2,PEEK(B2)OR32:POKEB1,PEEK(B1)AND223:POKEB1,PEEK(B1)OR32
  246. 2590 POKEB1,PEEK(B1)AND223:POKEB4,40:POKEB4,47:POKEB2,230:GOSUB2570:RETURN
  247. 2600 HI=INT(RC/256):LO=RC-(HI*256):RETURN
  248. 2610 GOSUB2600:R1=LO:R2=HI:RETURN
  249. 2620 AC=VAL(U$(3)):A2=INT(AC/256):A1=AC-A2*256:RETURN
  250. 2630 AA=VAL(N$(3)):RETURN
  251. 2640 IFLEN(UL$)<230THENRETURN
  252. 2650 OPEN1,8,5,"0:(USER LOG),A":PRINT#1,UL$:CLOSE1:UL$="":RETURN
  253. 2660 GOSUB2670:FORI=1TO12:U$(I)=N$(I):NEXT:RETURN
  254. 2670 GET#3,A$:FORI=1TO12:N$(I)="":L=0:FORT=1TOL%(I):GET#3,A$
  255. 2680 IF(I=1ORI=4)AND(A$=""ORL=1)THENL=1:GOTO2700
  256. 2690 N$(I)=N$(I)+A$
  257. 2700 NEXT:NEXT:RETURN
  258. 2710 FORI=1TO12:N$(I)=U$(I):NEXT
  259. 2720 N$(1)=N$(1)+N$:N$(4)=N$(4)+N$
  260. 2730 N$(0)="":A$="                    ":A$=A$+A$+A$:FORI=1TO12
  261. 2740 N$(0)=N$(0)+LEFT$(N$(I)+A$,L%(I)):NEXT:PRINT#3,CHR$(34)N$(0)
  262. 2750 RC=1:GOSUB1370:RETURN
  263. 2760 RETURN
  264. 2770 B=-(AA=9)-2*(AA=10)-3*(AA=11)-4*(AA=12)-5*(AA=13)-6*(AA=14)
  265. 2780 B=B-7*(AA=15):AA=-((DR%(B)AND128)=128):DR$=MID$(STR$(AA),2):RETURN
  266. 2790 IFDR$="0"THENAA=DV:GOSUB2770:IFDR$="1"THENRETURN
  267. 2800 DV=DV+1:IFDV>15THENDV=8
  268. 2810 FORL=0TO(DR-8):IFDV<>(DR%(L)AND63)THENNEXT:GOTO2800
  269. 2820 IFA1AND32THEN2840
  270. 2830 AA=DV:GOSUB2770:IFDR%(B)AND64THEN2800
  271. 2840 AA=DV:GOSUB2770:DR$="0":RETURN
  272. 2850 ON(MT%-1)GOTO2860,2870,2900,2910,2580,2580
  273. 2860 POKEB2,PEEK(B2)OR32:POKEB1,PEEK(B1)AND223:RETURN
  274. 2870 FORT=1TO2000:NEXT:PRINT#5,"+++";:FORT=1TO2000:NEXT:PRINT#5,"[193][212][200]"+CHR$(13)
  275. 2880 FORT=1TO2000:NEXT:PRINT#5,"[193][212][218]"+CHR$(13):FORT=1TO2000:NEXT
  276. 2890 PRINT#5,"[193][212][205]0"+CHR$(13)::FORT=1TO2000:NEXT:PRINT#5,"[193][212][214]0"+CHR$(13):RETURN
  277. 2900 POKEB2,38:POKEB1,38:RETURN
  278. 2910 POKEB1,PEEK(B1)OR32:RETURN
  279. 2920 GOSUB1430:CT=VAL(HO$):MI=VAL(MI$):CO=ABS((LH*60+LM)-(CT*60+MI))
  280. 2930 IFLH=12ANDC2THENCO=ABS(CO-720)
  281. 2940 RETURN
  282. 2950 FI$="(ST/R 3.5)":DV=D5
  283. 2960 GOSUB2650:OPEN1,8,5,"@0:(DATA),S,W":PRINT#1,R$:FORT=1TO12
  284. 2970 PRINT#1,Q$U$(T):NEXT:PRINT#1,LH:PRINT#1,LM:PRINT#1,SA:PRINT#1,SY
  285. 2980 PRINT#1,SF:PRINT#1,HL:PRINT#1,M$:PRINT#1,DT:PRINT#1,LEN(F$):PRINT#1,Q$LN$
  286. 2990 PRINT#1,DV:PRINT#1,NW:PRINT#1,HM$:CLOSE1
  287. 2995 POKE252,32:POKE251,PEEK(152):DR$="0":IFDVAND128THENDR$="1"
  288. 3000 PRINT"[146][147]LOAD"Q$DR$":"FI$Q$","DVAND127"":POKE631,131:POKE198,1:NEW
  289. 3010 OPEN1,8,5,"0:(DATA)":INPUT#1,R$:R=VAL(R$):FORT=1TO12
  290. 3020 INPUT#1,U$(T):NEXT:INPUT#1,LH,LM,SA,SY,SF,HL,M$,DT,T,LN$,DV,NW
  291. 3025 HM$="":FORT=1TO200:GET#1,A$:IFA$=""THENA$=CHR$(0)
  292. 3027 HM$=HM$+A$:NEXT
  293. 3030 CLOSE1:GOSUB2620:CG=VAL(U$(8)):IFT=2THENF$=CHR$(13)+CHR$(10)
  294. 3040 REM -----------------------------
  295. 3050 REM -    YOUR PROGRAM SHOULD    -
  296. 3060 REM -    START AT LINE 3080!    -
  297. 3070 REM -----------------------------
  298. 3075 GOSUB370
  299. 3080 MU=0:GOSUB250:P$=F$+"[154][213][196]"+MID$(STR$(DV),2)+";"+DR$+":":GOSUB170
  300. 3090 L=1:GOSUB180:IFCDTHEN400
  301. 3100 IFL$=""THEN3080
  302. 3110 L$=CHR$(ASC(L$)AND127)
  303. 3120 GOSUB300:UL$=UL$+"UD-"+L$+CHR$(13)
  304. 3130 IFL$="$"THENEC=1:GOSUB280:EC=0:GOTO3080
  305. 3140 ON-(L$="U")-2*(L$="D")-3*(L$="#")-4*(L$="B")GOSUB3620,3340,370,3860
  306. 3150 IFL$="Q"THEN400
  307. 3160 IFL$="S"THENGOSUB240
  308. 3170 IFL$="M"ANDP=0THENGOSUB4160:L$=""
  309. 3180 IFL$="P"THEN4070
  310. 3190 IFL$="F"THENFI$="&#%\'":GOSUB3910
  311. 3200 IFL$="F"ANDER$<"02"THENP$=F$+STR$(F)+" [194]LOCKS FREE.":GOSUB160
  312. 3210 IFL$="Y"THENGOSUB190:GOTO3080
  313. 3220 IFL$<>"?"THEN3080
  314. 3230 P$=" [147]":GOSUB170
  315. 3240 P$=DC$+F$+"     --==]> [208]UNTER [213]/[196] [205]ENU <[==--"+F$+DC$+F$:GOSUB160
  316. 3250 IFA$=" "THEN3080
  317. 3260 P$="[156]$ - [196]IRECTORY    [150][196] - [196]OWNLOAD":GOSUB160:IFA$=" "THEN3080
  318. 3270 P$="[213] - [213]PLAOD       [153][194] - CHANGE [194]LOCK SIZE":GOSUB160:IFA$=" "THEN3080
  319. 3280 P$="[198] - BLOCKS [198]REE  [154][217] - [217]ELL FOR [211]YSOP":GOSUB160:IFA$=" "THEN3080
  320. 3290 IFP=0THENP$="[159][205] - [205]ULTIFILE TRANSFERS":GOSUB160:IFA$=" "THEN3080
  321. 3300 P$="[158]# - [195]HANGE [196]EVICE NUMBER:"+STR$(DV)+";"+DR$:GOSUB160:IFA$=" "THEN3080
  322. 3310 P$="[150][208] - CHANGE [208]ROTOCOL: "+MID$("[208]UNTER[216]MODEM",P*6+1,6):GOSUB160
  323. 3320 P$="[211] - [217]OUR [211]TATISTICS":GOSUB160:IFA$=" "THEN3080
  324. 3330 P$="[152][209] - [210]ETURN TO MAIN MENU":GOSUB160:GOTO3080
  325. 3340 IFVAL(U$(9))*RR<=VAL(U$(10))THENP$="[206]OT ENOUGH CREDITS.":GOSUB160:RETURN
  326. 3350 PRINT"[147][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]":PRINT"[145][145][145]":GOSUB250
  327. 3360 IFMUTHEN3410
  328. 3370 P$="[208]ROGRAM NAME: [155]":GOSUB170:L=16:GOSUB180:IFCDTHENRETURN
  329. 3380 FI$=L$:IFFI$=""THENRETURN
  330. 3390 OPEN2,DV,5,DR$+":"+FI$:GOSUB220
  331. 3400 CLOSE2:IFER$>"01"THENP$=F$+ES$:GOSUB160:RETURN
  332. 3410 GOSUB3910:IFL$="R"THENP$="[152][206]OT A [210]ELATIVE FILE.":GOSUB160:RETURN
  333. 3420 IFLEFT$(FI$,1)="("AND(A1AND32)=0THENP$="[152][198]ILE NOT FOUND.":GOSUB160:RETURN
  334. 3430 TY=-(L$="P")-2*(L$="S"):IFMUTHENCLOSE6
  335. 3440 IFLEN(FI$)=0THENRETURN
  336. 3450 P$=F$+"[152][198]ILE  : "+FI$+MID$("                ",LEN(FI$))+"  [212]YPE  : "+L$
  337. 3460 GOSUB160:IFPTHENF=F*2
  338. 3470 A$=STR$(F):P$="[194]LOCKS:"+A$+MID$("                   ",LEN(A$))
  339. 3480 I=6*(BR/300):IFPTHENGOSUB160:A$=",R":GOTO4120
  340. 3490 P$=P$+"[212]IME  : "+MID$(STR$(F/I),2,4):GOSUB160:IFMUTHEN3560
  341. 3500 P$="[194]LOCK SIZE:"+STR$(BS):GOSUB160
  342. 3510 P$="[193] - [193]BORTS    [194] - CHANGE [194]LOCK SIZE":GOSUB160
  343. 3520 P$="[208]RESS [210][197][212][213][210][206] TO BEGIN [196]OWNLOAD:":GOSUB170
  344. 3530 L=1:GOSUB180:IFCDTHENRETURN
  345. 3540 IFL$="A"ORL$="[193]"THENRETURN
  346. 3550 IFL$="B"ORL$="[194]"THENGOSUB3860:GOTO3500
  347. 3560 PRINT"....[221]....1....[221]....2....[221]....3....[221]....4";
  348. 3570 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]";
  349. 3580 P$="":GOSUB160
  350. 3590 OPEN2,DV,5,DR$+":"+FI$
  351. 3600 SYS49173:POKE51227,TY:SYS49164:IFPEEK(512)=1THENCLOSE2:GOTO3820
  352. 3610 SYS49173:POKE51224,BS:SYS49158:CLOSE2:GOTO3820
  353. 3620 PRINT"[147][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]":PRINT"[145][145][145]":GOSUB250
  354. 3630 IFMUTHEN3750
  355. 3640 P$=F$+"[208]ROGRAM NAME: [155]":GOSUB170:L=16:GOSUB180:IFCDTHENRETURN
  356. 3650 FI$=L$:IFFI$=""THENRETURN
  357. 3660 IFPTHEN4100
  358. 3670 P$=F$+"[152][194]LOCK SIZE:"+STR$(BS):GOSUB160
  359. 3680 P$="[193] - [193]BORTS   [194] - CHANGE [194]LOCK SIZE":GOSUB160
  360. 3690 P$="[208]RESS [210][197][212][213][210][206] TO BEGIN [213]PLOAD:":GOSUB170
  361. 3700 L=1:GOSUB180:IFCDTHENRETURN
  362. 3710 IFL$="A"ORL$="[193]"THENRETURN
  363. 3720 IFL$="B"ORL$="[194]"THENGOSUB3860:GOTO3670
  364. 3730 SYS49173
  365. 3740 SYS49161
  366. 3750 IFPEEK(512)=1THEN3840
  367. 3755 IFPEEK(51227)<1ORPEEK(51227)>3THENPOKE51227,1
  368. 3760 A$=","+MID$("PSP",PEEK(51227),1)+",W":IFMUTHENA$=",W"
  369. 3770 OPEN2,DV,2,DR$+":"+FI$+A$:GOSUB220:IFER$>"01"THENCLOSE2:P$=""+ES$:GOSUB160:RETURN
  370. 3780 PRINT"....[221]....1....[221]....2....[221]....3....[221]....4";
  371. 3790 PRINT"[163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163][163]";
  372. 3800 SYS49173:SYS49155:CLOSE2:POKE668,PEEK(667)
  373. 3810 U$(9)=MID$(STR$(VAL(U$(9))+1),2):GOTO3830
  374. 3820 U$(10)=MID$(STR$(VAL(U$(10))+1),2)
  375. 3830 IFMU=0THENGOSUB300:UL$=UL$+FI$+CHR$(13)
  376. 3840 IFMU=0THENFORT=1TO3000:NEXT:P$=F$+"[212]RANSFER COMPLETE.":GOSUB160
  377. 3850 PRINT#15-B,"I"+DR$+":":L$="":RETURN
  378. 3860 P$=F$+"[194]LOCK SIZE: ":GOSUB170:L=3:GOSUB180:IFCDTHENRETURN
  379. 3870 IFL$=""THENRETURN
  380. 3880 BS=VAL(L$):IFBS<40THENBS=40
  381. 3890 IFBS>255THENBS=255
  382. 3900 RETURN
  383. 3910 OPEN6,DV,0,"$"+DR$+":"+FI$:GOSUB220
  384. 3920 IFER$>"01"THENCLOSE6:P$=F$+ES$:GOSUB160:RETURN
  385. 3930 GET#6,A$:GET#6,A$:LC=1
  386. 3940 GET#6,A$:GET#6,A$:FI$=""
  387. 3950 GET#6,LO$:GET#6,HI$
  388. 3960 IFLC=1THEN4030
  389. 3970 F=ASC(LO$+N$)+256*ASC(HI$+N$):IFL$="F"ORL$="M"THENCLOSE6:RETURN
  390. 3980 GET#6,A$:IFA$="B"THENU=64:CLOSE6:RETURN
  391. 3990 IFA$<>CHR$(34)THEN3980
  392. 4000 GET#6,A$:IFA$<>CHR$(34)THENFI$=FI$+A$:GOTO4000
  393. 4010 GET#6,A$:IFA$=" "THEN4010
  394. 4020 L$=A$:IFMU=0THENCLOSE6:RETURN
  395. 4030 GET#6,A$:IFA$<>""THEN4030
  396. 4040 IFMUANDLC=2THENRETURN
  397. 4050 LC=2:GOTO3940
  398. 4060 RETURN
  399. 4070 P=1-P:POKE51972,P:SYS51976
  400. 4080 P$="[208]UNTER ":IFPTHENP$="[216]MODEM "
  401. 4090 P$=F$+P$+"PROTOCOL LOADED.":GOSUB160:GOTO3080
  402. 4100 P$="[152][198]ILE TYPE (P/S):":GOSUB170:L=1:GOSUB180:IFCDORL$=""THENRETURN
  403. 4110 A$=",W":IFL$<>"P"ANDL$<>"[208]"ANDL$<>"S"ANDL$<>"[211]"THENRETURN
  404. 4120 FI$=DR$+":"+FI$+","+L$+A$:E$=A$
  405. 4130 POKE49161,LEN(FI$):FORI=1TOLEN(FI$):POKE49186+I,ASC(MID$(FI$,I,1)):NEXT
  406. 4140 P$=F$+"[199]OTO [211]END/[210]ECV MODE NOW!":GOSUB160
  407. 4150 POKE49155,DV:SYS49411:ON-(E$=",W")-2*(E$=",R")GOTO3810,3820
  408. 4160 FI$="&%'&":GOSUB3910:IFER$>"01"THENRETURN
  409. 4170 P$=F$+STR$(F)+" [194]LOCKS [198]REE":GOSUB160
  410. 4180 P$=F$+"[213] - [213]PLOAD  [196] - [196]OWNLOAD"+F$+F$+"[205][216]:":GOSUB170:L=1:GOSUB180
  411. 4190 IFL$=""ORCDTHENRETURN
  412. 4200 IFL$="D"ORL$="[196]"THEN4300
  413. 4210 FI$="":IFL$<>"U"ANDL$<>"[213]"THEN4180
  414. 4220 GOSUB310:P$=F$+"[208]LEASE BEGIN [205]ULTI [213]PLOAD"+F$+"[[195]TRL-[196]] [193]BORTS":GOSUB160
  415. 4230 PRINT"[208]ROGRAM NAME: ";:GET#5,A$,A$,A$
  416. 4240 GET#5,A$:GETZ$:IFA$=""THENA$=Z$
  417. 4250 GOSUB150:IFCDTHENRETURN
  418. 4260 IFA$=CHR$(13)THENPRINT:MU=1:UL$=UL$+FI$+F$:GOSUB300:GOSUB3620:GOTO4230
  419. 4270 IFA$=CHR$(4)THENMU=0:PRINT"[196]ONE.":GOSUB310:GOTO3840
  420. 4280 IFASC(A$+N$)<32THEN4240
  421. 4290 PRINTA$;:FI$=FI$+A$:GOTO4240
  422. 4300 P$=F$+"[210]EADING DIRECTORY....":GOSUB160:P$=F$+"[217] - [217]ES [206] - [206]O [194] - [194]EGIN"
  423. 4310 P$=P$+" [193] - [193]BORT":GOSUB160:P$=F$+"30 [198]ILES [205]AXIMUM":GOSUB160
  424. 4320 MU=1:L$="":FI$="*":U=0:L=65:GOSUB3910:GOTO4340
  425. 4330 GOSUB3940
  426. 4340 IFVAL(U$(9))*RR<=VAL(U$(10))+MU-1THENP$=F$+"[206]O CREDITS LEFT.":GOSUB160:U=64
  427. 4350 IFUTHEN4420
  428. 4360 IFLEFT$(FI$,1)="("THEN4330
  429. 4370 FI$=FI$+","+L$:P$=F$+FI$+F$+"[217]/[206]/[194]/[193]:":GOSUB170:L=1:GOSUB180
  430. 4380 IFL$="A"ORL$="[193]"ORCDTHENCLOSE6:RETURN
  431. 4390 IFL$=""ORL$="N"ORL$="[206]"THEN4330
  432. 4400 IFL$="Y"ORL$="[217]"THEND$(MU)=FI$:MU=MU+1:IFMU<31THEN4330
  433. 4410 IFL$<>"B"ANDL$<>"[194]"ANDMU<31THEN4370
  434. 4420 CLOSE6:IFMU=1THENP$=F$+"[206]O FILES SELECTED.":GOSUB160:MU=0:RETURN
  435. 4430 P$=F$+F$+"[197]NTER [205]ULTI [210]ECEIVE IN 15 SECONDS.":GOSUB160:T=TI
  436. 4440 IFTI-T<900THENPRINTTI-T"[145]":GOTO4440
  437. 4450 FORT=1TOMU-1:FI$=D$(T):PRINT#5,"                                        ";:FORI=1TOLEN(FI$)
  438. 4460 PRINT#5,MID$(FI$,I,1);:NEXT:PRINT#5:FI$=LEFT$(FI$,LEN(FI$)-2)
  439. 4470 GET#5,A$:IFA$=CHR$(4)THENP$=F$+"[193]BORTED.":GOSUB160:MU=0:GOTO3840
  440. 4480 SY=SY+1:GOSUB3350:SY=SY-1:FORI=1TO40000:NEXT:GOSUB150:IFCDTHENRETURN
  441. 4490 UL$=UL$+FI$+F$:GOSUB300:NEXT:PRINT#5,"";:MU=0:GOTO3840
  442.