home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64-128BBS / EMPIRE2.1.ARC / (EMP2MAINT) (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  8.1 KB  |  232 lines

  1. 100 POKE152,PEEK(251)
  2. 110 GOTO420
  3. 120 :
  4. 130 :REM START OF USER JUMP TABLE.
  5. 140 :
  6. 150 GOTO630 :REM SEND P$+CHR$(13) OUT.
  7. 160 GOTO640 :REM SEND P$ OUT.
  8. 170 GOTO680:REM GET L$ FROM MODEM.
  9. 180 B=D7%:GOTO1250:REM SEND 'P' TO REL.
  10. 190 B=D7%:GOTO780:REM READ ERR CHANNEL.
  11. 200 GOTO800:REM READ SYSTEM CLOCK.
  12. 210 GOTO860:REM DISPLAY USER ONLINE.
  13. 220 GOTO880:REM REMOTE SYSOP MENU.
  14. 230 GOTO1040:REM DISPLAY DIR.
  15. 240 GOTO1230:REM BREAK RC INTO LO/HI.
  16. 250 GOTO1280:REM UPDATE (USER LOG).
  17. 260 GOTO1290:REM EMPTY UL$.
  18. 270 GOTO1300:REM GET U$() FROM DISK.
  19. 280 GOTO1310:REM GET N$() FROM DISK.
  20. 290 GOTO1320:REM SEND U$() TO DISK.
  21. 300 GOTO1330:REM SEND N$() TO DISK.
  22. 310 GOTO1350:REM FIND DV,DR$ IN DR%().
  23. 320 GOTO1360:REM FIND DV,DR$
  24. 330 GOTO1370:REM INCREMENT DV,DR$.
  25. 340 GOTO1430:REM HANG UP PHONE.
  26. 350 GOTO1490:REM FIND TIME CONNECTED.
  27. 360 GOTO1650:REM RETURN TO BBS.
  28. 370 GOTO1660:REM LOAD NEXT MODULE.
  29. 380 GOTO1540:REM GET SC() FROM DISK.
  30. 390 GOTO1620:REM SEND SC() TO DISK.
  31. 400 GOTO1520:REM SEND SEQ OUT.
  32. 410 :
  33. 420 B1=56577:B2=56579:Q$=CHR$(34):B3=56590:B4=56588:DV=8:N$=CHR$(0):SI=54272
  34. 430 DIMU$(15),N$(15),DR%(7):DR$="0"
  35. 440 GOSUB450:GOTO500
  36. 450 OPEN1,8,5,"0:(BBS.CONFIG)":FORT=0TO9:INPUT#1,A:IFA=0THEN470
  37. 460 FORI=0TOA-1:INPUT#1,A$,A,A:NEXT
  38. 470 NEXT:INPUT#1,DR:FORI=0TODR-1:INPUT#1,DR%(I):NEXT:DR=DR+7
  39. 480 INPUT#1,RF:AA=-((RFAND128)=128):RF$=MID$(STR$(AA),2)+":(USERFILE)"
  40. 490 INPUT#1,SY$,BD$,MT%,RC,S1$,S2$,RR,P1$,P2$,D5,D6,MF,N5,N3,N4:CLOSE1:RETURN
  41. 500 F$=CHR$(13):P=0:POKE51972,P:SYS51976:BS=255:UL$=""
  42. 510 DC$="[149] --===[129]***[158]===[153]---===[159]***[154]===---[156]===***[158]===--[152]":GOTO1720
  43. 520 IFA$="[133]"THENSY=SY+1:GOSUB880:SY=SY-1:RETURN
  44. 530 IFA$<>"[134]"THEN560
  45. 540 P$=F$+F$+"[195]HAT [205]ODE:"+F$:GOSUB150:SYS52012:CD=PEEK(52033)
  46. 550 A$=CHR$(PEEK(52034)):P$=F$+F$+"[197]XITED...."+F$:GOSUB150
  47. 560 IFA$="[140]"THENCD=1:RETURN
  48. 570 IFL<>65535THENRETURN
  49. 580 OPEN1,8,5,"0:(USER LOG),A":PRINT#1,UL$:PRINT#1,"[212]IME [197]LAPSED![152]":CLOSE1
  50. 590 CD=1:UL$="":RETURN
  51. 600 IFA$=""ORZ$=""THENGOSUB620
  52. 610 RETURN
  53. 620 POKESI+4,21:POKESI+4,20:RETURN
  54. 630 P$=P$+F$
  55. 640 IFL=55THENPRINT#4,P$;:RETURN
  56. 650 POKE52030,SY:POKE52031,CG:POKE52040,MM:SYS51994,P$
  57. 660 CD=PEEK(52033):A$=CHR$(PEEK(52034)):IFA$=CHR$(0)THENA$=""
  58. 670 RETURN
  59. 680 GOSUB1490:IFVAL(U$(14))<COTHEN720
  60. 690 POKE52030,SY:POKE52031,CG:POKE52038,EC:POKE52039,L:POKE52040,MM
  61. 700 L$="PVIN                                  ":SYS52003,L$:CD=PEEK(52033)
  62. 710 L=PEEK(52034)+256*PEEK(52036):A$=CHR$(PEEK(52034)):GOSUB520:RETURN
  63. 720 P$=F$+F$+"[217]OU [200]AVE [197]XCEEDED [217]OUR [212]IME [204]IMIT!!"+F$+"[199][207][207][196][194][217][197]!"+F$:GOSUB150
  64. 730 GOTO360
  65. 740 GOSUB1240:AA=RF:GOSUB1350
  66. 750 FORL=1TO2:PRINT#15-B,"P"CHR$(99)CHR$(R1)CHR$(R2)CHR$(1):GOSUB780:NEXT
  67. 760 GOSUB780:IFER$<"20"ORER$="50"THENRETURN
  68. 770 PRINT"[197]RROR IN (USERFILE)!":GOSUB1430:STOP
  69. 780 ES$="":GOSUB790:ER$=LEFT$(ES$,2):RETURN
  70. 790 GET#15-B,A$:ES$=ES$+A$:ON-(A$<>CHR$(13))GOTO790:RETURN
  71. 800 T1$="09:22:08.0 PM":SYS51982,T1$:TM$=T1$+""
  72. 810 HO$=LEFT$(TM$,2):MI$=MID$(TM$,4,2):FZ$=RIGHT$(TM$,2)
  73. 820 IFVAL(LEFT$(TM$,2))<>12ANDFZ$<>"AM"THENC2=1:GOTO850
  74. 830 IFC2THENOPEN1,8,5,"@0:(T.CALLERS),S,W":PRINT#1," ":CLOSE1:DT=DT+1
  75. 840 IFC2THENC2=0:NT=0:IFS9THENOPEN1,8,5,"@0:(USER LOG),S,W":CLOSE1
  76. 850 DA$=M$+STR$(DT):RETURN
  77. 860 PRINT"[156]"F$U$(1)" <*> [204]VL-"+MID$(STR$(AC),2):GOSUB1490
  78. 870 PRINTTM$" [195]ONNECTED:"STR$(CO)" MINS.[152]":RETURN
  79. 880 D8=D7:DR$=D7$
  80. 890 P$=" [147]":GOSUB150
  81. 900 P$=DC$+F$+"   --**]> [210]EMOTE [211]YS-[207]P [205]ENU <[**--"+F$+DC$+F$:GOSUB150
  82. 910 P$="$ - [196]IRECTORY":GOSUB150
  83. 920 P$="@ - [196]OS COMMANDS":GOSUB150
  84. 930 P$="# - [212]OGGLE DRIVE #"+STR$(D8)+";"+DR$:GOSUB150
  85. 940 P$=F$+"[210][211][205]"+MID$(STR$(D8),2)+";"+DR$+":":GOSUB160:L=1:GOSUB170:IFCDTHENRETURN
  86. 950 IFL$=""THENRETURN
  87. 960 GOSUB1280:UL$=UL$+"[211]YSOP-"+L$+CHR$(13)
  88. 970 AA=D8:ON-(L$="$")-2*(L$="#")GOSUB1040,1370
  89. 980 IFL$="?"THEN890
  90. 990 IFL$<>"@"THEN940
  91. 1000 P$=F$+">":GOSUB160:L=39:GOSUB170:IFCDTHENRETURN
  92. 1010 B=D8-8:IFL$=""THENGOSUB780:P$=F$+ES$:GOSUB150:GOTO940
  93. 1020 IFLEFT$(L$,4)=P2$+":"THENPRINT#15-B,RIGHT$(L$,LEN(L$)-4)
  94. 1030 GOTO940
  95. 1040 P$=F$+"[208]ATTERN? $"+DR$+":":GOSUB160:L=16:GOSUB170:FI$=L$+""
  96. 1050 IFFI$=""THENFI$="*"
  97. 1060 P$=F$:GOSUB150:OPEN1,D8,0,"$"+DR$+":"+FI$
  98. 1070 GOSUB780:IFER$>"01"THENCLOSE1:P$=F$+ES$:GOSUB150:RETURN
  99. 1080 GET#1,A$:GET#1,A$
  100. 1090 GET#1,A$:GET#1,A$:IF(ST)AND64THENCLOSE1:RETURN
  101. 1100 GET#1,LO$:GET#1,HI$
  102. 1110 LO$=LO$+N$:HI$=HI$+N$
  103. 1120 P$=STR$(ASC(LO$+CHR$(0))+256*ASC(HI$+CHR$(0)))+" "
  104. 1130 GET#1,A$:IFA$=""THEN1170
  105. 1140 GET#5,Z$:IFZ$=""THENGETZ$
  106. 1150 IFZ$=" "THENCLOSE1:RETURN
  107. 1160 P$=P$+A$:GOTO1130
  108. 1170 IFECANDMID$(P$,8,1)="("THEN1090
  109. 1180 GOSUB150:IFA$=" "THENCLOSE1:RETURN
  110. 1190 GOTO1090
  111. 1200 POKEB3,65:POKEB4,40:POKEB2,231:POKEB1,57:POKEB4,48:RETURN
  112. 1210 GOSUB1200:POKEB2,PEEK(B2)OR32:POKEB1,PEEK(B1)AND223:POKEB1,PEEK(B1)OR32
  113. 1220 POKEB1,PEEK(B1)AND223:POKEB4,40:POKEB4,47:POKEB2,230:GOSUB1200:RETURN
  114. 1230 HI=INT(RC/256):LO=RC-(HI*256):RETURN
  115. 1240 GOSUB1230:R1=LO:R2=HI:RETURN
  116. 1250 GOSUB1240:GOTO750
  117. 1260 AC=VAL(U$(3)):A2=INT(AC/256):A1=AC-A2*256:RETURN
  118. 1270 AA=VAL(N$(3)):RETURN
  119. 1280 IFLEN(UL$)<230THENRETURN
  120. 1290 OPEN1,8,5,"0:(USER LOG),A":PRINT#1,UL$:CLOSE1:UL$="":RETURN
  121. 1300 GOSUB1310:FORI=1TO15:U$(I)=N$(I):NEXT:RETURN
  122. 1310 FORT=1TO15:INPUT#3,N$(T):NEXT:RETURN
  123. 1320 FORI=1TO15:N$(I)=U$(I):NEXT
  124. 1330 N$(0)="":FORT=1TO15:N$(0)=N$(0)+Q$+N$(T)+F$:NEXT
  125. 1340 PRINT#3,N$(0):RC=1:GOSUB740:RETURN
  126. 1350 B=AA-8:A=-((DR%(B)AND128)=128):DR$=MID$(STR$(A),2):RETURN
  127. 1360 GOSUB1350:A=(AAAND128)=128:DR$=MID$(STR$(A),2):RETURN
  128. 1370 IFDR$="0"THENGOSUB1350:IFDR$="1"THENRETURN
  129. 1380 AA=AA+1:IFAA>15THENAA=8
  130. 1390 FORL=0TO(DR-8):IFAA<>(DR%(L)AND63)THENNEXT:GOTO1380
  131. 1400 IFA1AND32ORSYTHEN1420
  132. 1410 GOSUB1350:IFDR%(B)AND64THEN1380
  133. 1420 D8=AA:DR$="0":RETURN
  134. 1430 ON(MT%-1)GOTO1440,1450,1470,1480,1210,1210
  135. 1440 POKEB2,PEEK(B2)OR32:POKEB1,PEEK(B1)AND223:RETURN
  136. 1450 FORT=1TO2000:NEXT:PRINT#5,"+++";:FORT=1TO2000:NEXT
  137. 1460 PRINT#5,"[193][212][200]0[216]2[197]0[205]1[209]0[214]0[211]0=0":RETURN
  138. 1470 POKEB2,38:POKEB1,38:RETURN
  139. 1480 POKEB1,PEEK(B1)OR32:RETURN
  140. 1490 GOSUB800:CT=VAL(HO$):MI=VAL(MI$):CO=ABS((LH*60+LM)-(CT*60+MI))
  141. 1500 IFLH=12ANDC2THENCO=ABS(CO-720)
  142. 1510 RETURN
  143. 1520 B=D7%:OPEN1,D7,5,D7$+":"+FI$:GOSUB190:IFER$>"01"THENCLOSE1:RETURN
  144. 1530 POKE52030,SY:SYS52021:CLOSE1:CD=PEEK(52033):A$=CHR$(PEEK(52034)):RETURN
  145. 1540 OPEN3,8,3,"0:(SCORES)":GOSUB190:IFER$>"01"THENCLOSE3:RETURN
  146. 1550 RC=R:GOSUB1230:B=0:GOSUB750:GET#3,A$:IF(ST)AND64THENSC=0:GOTO1570
  147. 1560 INPUT#3,SC
  148. 1570 IFSC=0THENSC=I:CLOSE3:DIMSC(SC):RETURN
  149. 1580 IFI>SCTHENDIMSC(I):GOTO1600
  150. 1590 DIMSC(SC)
  151. 1600 FORT=1TOSC:INPUT#3,SC(T):NEXT:CLOSE3:IFI>SCTHENSC=I
  152. 1610 RETURN
  153. 1620 OPEN3,8,3,"0:(SCORES)":GOSUB190:IFER$>"01"THENCLOSE3:RETURN
  154. 1630 RC=R:GOSUB1230:B=0:GOSUB750:SC$=STR$(SC)+F$:FORT=1TOSC
  155. 1640 SC$=SC$+STR$(SC(T))+F$:NEXT:PRINT#3,SC$;:RC=1:GOSUB750:CLOSE3:RETURN
  156. 1650 FI$="(ST/R 3.?)":DV=D5
  157. 1660 SYS52050:OPEN1,8,5,"@0:(DATA),S,W":PRINT#1,R$:FORT=1TO15
  158. 1665 DR$="0":IFDV>128THENDR$="1"
  159. 1670 PRINT#1,Q$U$(T):NEXT:PRINT#1,LH:PRINT#1,LM:PRINT#1,SA:PRINT#1,SY
  160. 1680 PRINT#1,S9:PRINT#1,HL:PRINT#1,M$:PRINT#1,DT:PRINT#1,LEN(F$):PRINT#1,Q$LN$
  161. 1690 PRINT#1,DV:PRINT#1,NW:PRINT#1,L$:CLOSE1:POKE252,32
  162. 1700 POKE251,PEEK(152):PRINT"[146][147]LOAD"Q$DR$":"FI$Q$","DVAND127""
  163. 1710 POKE631,131:POKE198,1:NEW
  164. 1720 OPEN1,8,5,"0:(DATA)":INPUT#1,R$:R=VAL(R$):FORT=1TO15
  165. 1730 INPUT#1,U$(T):NEXT:INPUT#1,LH,LM,SA,SY,S9,HL,M$,DT,T,LN$,DV,NW,L$
  166. 1760 CLOSE1:GOSUB1260:CG=VAL(U$(8)):IFT=2THENF$=CHR$(13)+CHR$(10)
  167. 1770 D7=DVAND127:AA=(DVAND128)=128:D7$=MID$(STR$(AA),2):D7%=D7-8
  168. 1990 SYS52041:DIMDT$(16)
  169. 2000 GOTO2020
  170. 2010 RETURN
  171. 2020 REM
  172. 2030 PRINT"\F1\C3"+AK$+" [197]MPIRE [205]AINTENANCE [198]OR [195]OLONY [205]OD V2.0[139]"
  173. 2040 PRINT" \K1[193]DAPTED [198]ROM V4.3 [201]MAGE [194][194][211] - [194][198] !!!\K0"
  174. 2050 PRINT"[139][139][139]\C4[207]PTIONS:[139][139]\C1([197])DIT A [208]LAYER'S [208]ROFILE[139]([210])ESET THE [197]MPIRE[139]":L=1
  175. 2060 PRINT"([214])IEW [208]LAYER [204]IST[139]([211])CRATCH [206]EWS[139]([208])LAY [197]MPIRE[139]([209])UIT[139][139]\CJ[195]HOICE? ":GOSUB2540:IFTR%<1THEN2580
  176. 2070 ON-(AN$="E")-(AN$="R")*2-(AN$="V")*3GOTO2100,2400,2350
  177. 2080 ON-(AN$="S")-(AN$="Q")*2-(AN$="P")*3GOTO2470,2590,2480
  178. 2090 GOTO2000
  179. 2100 X=1:GOSUB2450
  180. 2110 GOSUB2560:PRINT"[139][212]YPE 'EMPTY' LOWERCASE TO [193][196][196] PLAYER,[139]OTHERWISE USE SHIFT KEY.[139][139][208]LAYER'S [206]AME? ":GOSUB2530:ONTR%<1GOTO2580:NN$=AN$:J=0:IFAN$=""THEN2000
  181. 2120 GOSUB2520:INPUT#3,A$:ON-(A$=NN$)GOTO2140:X=X+1:IFX<50THEN2120
  182. 2130 PRINT"[139][208]LAYER [206]OT [198]OUND.[139][139][200]IT A [203]EY.\G1":CLOSE3:GOTO2000
  183. 2140 G3=X:J=J+1:ON-(J>16)GOTO2150:INPUT#3,DT$(J):GOTO2140
  184. 2150 CLOSE3:KK=0
  185. 2160 PRINT"\F1[208]ROFILE OF: #"+STR$(X)+" "+NN$
  186. 2170 PRINT"[139][139]0) [206]AME: "+NN$+"[139]1) [204]AND: "+DT$(1)+"[139]2) [211]OLDIERS: "+DT$(2)
  187. 2180 PRINT"[139]3) [211]ERFS:[160]"+DT$(3)+"[139]4) [206]OBLES: "+DT$(4)+"[139]5) [199]RAIN: "+DT$(5)
  188. 2190 PRINT"[139]6) [212]AX [210]ATE:[160]"+DT$(6)+"[139]7) [196]OLLARS: "+DT$(7)+"[139]8) [208]ALACE: "+DT$(8)
  189. 2200 PRINT"[139]9) [205]ARKETS: "+DT$(9)+"[139]10) [205]ILLS: "+DT$(10)+"[139]11) [198]OUNDRIES: "+DT$(11)
  190. 2210 PRINT"[139]12) [211]HIPYARDS: "+DT$(12)+"[139]13) [196]IPLOMATS: "+DT$(13)
  191. 2220 PRINT"[139]14) [211]HIPS: "+DT$(14)+"[139]15) [195]OLONYS: "+DT$(15)
  192. 2225 PRINT"[139]16) [201][196]#: "+DT$(16)
  193. 2230 PRINT"[139][139][197]DIT WHICH #? ":L=2:GOSUB2540:ONTR%<1GOTO2580:IFAN$=""ANDKK=0THEN2000
  194. 2240 IFAN$=""THENPRINT"[139][211]AVE CHANGES? ":L=1:GOSUB2540:ONTR%<1GOTO2580:IFAN$="Y"THEN2310
  195. 2250 IFAN$="N"THEN2000
  196. 2260 IFVAL(AN$)>16THEN2230
  197. 2270 L=20:R=0:R=VAL(AN$):IFAN$="0"THEN2290
  198. 2280 KK=1:PRINT"[139][197]NTER NEW VALUE FOR "+AN$+":":GOSUB2540:ONTR%<1GOTO2580:DT$(R)=AN$:GOTO2160
  199. 2290 KK=1:PRINT"[139][212]YPE 'EMPTY' LOWERCASE AND ZERO STATS[139]TO [196][197][204][197][212][197] PLAYER, OTHERWISE USE SHIFT[139]KEY.[139][139][197]NTER [206]AME: ":GOSUB2530:ONTR%<1GOTO2580:NN$=AN$:GOTO2160
  200. 2300 GOTO2000
  201. 2310 C$=CHR$(13):W$=NN$+C$+DT$(1)+C$+DT$(2)+C$+DT$(3)+C$+DT$(4)
  202. 2320 W$=W$+C$+DT$(5)+C$+DT$(6)+C$+DT$(7)+C$+DT$(8)+C$+DT$(9)
  203. 2330 W$=W$+C$+DT$(10)+C$+DT$(11)+C$+DT$(12)+C$+DT$(13)+C$+DT$(14)+C$+DT$(15)
  204. 2340 W$=W$+C$+DT$(16):X=1:GOSUB2450:X=G3:GOSUB2520:PRINT#3,W$:CLOSE3:GOTO2000
  205. 2350 PRINT"\F1([211]PACE=ABORT)[139][208]LAYERS/[193]CRES[139][139]":X=1:GOSUB2450:X=1
  206. 2360 GOSUB2520:INPUT#3,C$,B$:IFC$="EMPTY"THEN2380
  207. 2370 POKE52034,0:PRINT"[139]#"+RIGHT$(" "+STR$(X),2)+" "+C$+"/"+B$+"[139]"
  208. 2380 GET#5,A$:IFA$=""THENGETA$
  209. 2385 MW=1:IFA$=" "ORA$="[160]"THENPRINT"[139]([193]BORTED.)[139]":X=99
  210. 2390 X=X+1:ON-(X<50)GOTO2360:CLOSE3:PRINT"[139][200]IT A [203]EY.\G1":GOTO2000
  211. 2400 PRINT"[139][139]\F1\C7[210]ESET [197]MPIRE ([217]/[206])? ":L=1:GOSUB2540:ONTR%<1GOTO2580:IFAN$="Y"THEN2420
  212. 2410 GOTO2000
  213. 2420 C$=CHR$(13):G$="EMPTY"+C$+"0"+C$+"0"+C$+"0"+C$+"0"+C$+"0"+C$+"00"
  214. 2430 X=1:A$="(EMPIRE2),L,"+CHR$(200):GOSUB2460:LP=0:GOSUB2490:IFLPTHEN2000
  215. 2440 FORX=1TO50:GOSUB2520:PRINT#3,G$:NEXT:CLOSE3:GOTO2000
  216. 2450 DR=3:A$="(EMPIRE2)":GOTO2550
  217. 2460 DR=3:GOTO2550
  218. 2470 DR=3:A$="(NEWS2.EMP)":GOSUB2600:GOTO2000
  219. 2480 PRINT"[139][139]\C3[200]EADING TO THE [197]MPIRE....":DR=5:A$="(ST/R.EMPIRE2":GOTO2570
  220. 2490 GOSUB2560:IFE%=0THENRETURN
  221. 2500 PRINT"[139][139][196][201][211][203] [197][210][210][207][210]! #"+A$:LP=1:GOTO2010
  222. 2510 REM
  223. 2520 RC=X:GOTO180
  224. 2530 L=20
  225. 2540 GOSUB170:AN$=L$+"":TR%=(CD=1)+1:RETURN
  226. 2550 OPEN3,D7,3,D7$+":"+A$:RETURN
  227. 2560 GOSUB190:E%=VAL(ER$):A$=ES$:RETURN
  228. 2570 FI$=A$:GOTO370
  229. 2580 GOSUB340
  230. 2590 GOTO360
  231. 2600 PRINT#15-D7%,"S"+D7$+":"+A$:RETURN
  232.