10  Y=BRK(0)
20  REM ** FILES USED IN THIS PROGRAM ARE AS FOLLOWS **
30  REM ** BIL01F.A001 -- CRZYFL.A001 -- FREEFL.A001 **
40  REM ** LOGFL.A001  -- NEWS1.A000  -- AUTOBL.A001 **
50  REM ** LOGMON.A000 **
60  FILES *,*,*,*,*,*,*
70  REM *** ENTER PORT # AND CHECK ACCOUNT # ****
80  ENTER #P
90  Y=BRK(0)
100  IF SYS(3)=1 THEN 550
110  DIM A[14]
120  DIM A$[80],B$[80],C$[80],D$[80],E$[80],F$[80],G$[80],H$[80],J$[80]
130  DIM J1$[10],K1$[80],T$[80],T1$[80],U$[80],U1$[80],V1$[80]
140  DIM N$[25],Q$[2]
150  SYSTEM A$,"TIM"
160  Y=BRK(0)
170  IF SYS(3)=1 THEN 550
180  IF  ERROR  THEN 550
190  ASSIGN "LOGMON.A000",1,R1, NR 
200  IF R1#0 THEN 190
210  PRINT #1,1;A$[1,4];P
220  ASSIGN *,1
230  IF A$[1,4]="A000" THEN 380
232  IF A$[1,4]="A002" THEN 380
234  IF A$[1,4]="A100" THEN 380
240  IF SYS(3)=1 THEN 550
250  IF A$[1,4]#"B200" THEN 570
260  Y=BRK(0)
290  IF SYS(3)=1 THEN 550
293  IF P=18 AND TIM(1)>22 THEN 295
294  GOTO 300
295  PRINT "port ";P;" down for maintenance. "
296  GOTO 550
300  CHAIN K,"$BBS1"
310  IF K=0 THEN 580
320  PRINT "BBS DOWN....CALL BACK IN THE MORNING."
330  GOTO 550
370  REM **** CHECK A000'S PASSWORD ****
380  PRINT "Pswd :";
390  SYSTEM X,"ECH-OFF"
400  ENTER 10,X,B$
410  IF X=-256 THEN 520
420  PRINT 
430  SYSTEM X,"ECH-ON"
440  IF B$="FEARSOME" THEN 470
450  GOTO 490
460  PRINT LIN(5)
470  PRINT " # ";
471  B$=""
472  SYSTEM X,"ECH-OFF"
473  ENTER 10,X,B$
474  IF X=-256 THEN 520
475  PRINT 
476  SYSTEM X,"ECH-ON"
477  IF B$="6290480" THEN 620
480  GOTO 690
490  PRINT "INVALID... SESSION TERMINATED"
500  SYSTEM X,"MES-SECURITY VIOLATION"
510  GOTO 550
520  PRINT 
530  PRINT "TIMED OUT... SESSION ABOARTED"
540  SYSTEM X,"MES-SECURITY VIOLATION"
550  SYSTEM X,"BYE"
560  GOTO 550
570  REM **** CHECK FOR HOBBY SHARE ****
580  IF A$[1,2]="B1" THEN 1290
585  IF A$[1,2]="D1" THEN 1290
586  IF A$[1,2]="C1" THEN 3041
587  IF A$[1,2]="K1" THEN 1290
590  REM **** CHECK FOR FREE ACCOUNT B000 ****
600  GOSUB 2490
610  REM *** PASSWORD FOR A1XX ACCOUNTS ***
620  IF A$[1,2]="B0" THEN 760
630  IF A$[1,4]="A000" THEN 700
640  PRINT "Password ";
650  SYSTEM X,"ECH-OFF"
660  ENTER 255,R6,B$
670  PRINT 
680  IF B$#"1134A" THEN 550
690  REM*** CHECK FOR MAIL ***
700  GOSUB 2780
710  PRINT LIN(2);TAB(32);"CRISIS COMPUTER"
720  PRINT TAB(35);"ACCT #";A$[1,4]
730  SYSTEM X,"ECH-ON"
740  PRINT 
750  PRINT TAB(10);T1$
760  PRINT 
770  IF A$[1,2] <> "B0" THEN 1640
780  REM **** CHECK FOR VALAD B000 USER PASSWORD ****
790  F=0
800  PRINT 
810  PRINT "WAIT ..."
820  PRINT 
830  ASSIGN "FREEFL.A001",1,R, PR 
840  IF R=6 THEN 830
850  ASSIGN "LOGFL.A001",2,Y, PR 
860  IF Y=6 THEN 850
870  ASSIGN "CRZYFL.A001",3,R2, PR 
880  IF R2=6 THEN 870
890  FOR K=1 TO 32767
900  IF TYP(3)=3 THEN 930
910  READ #3,K
920  NEXT K
930  Y=BRK(0)
940  READ #2,1
950  FOR I=1 TO 2000
960  IF  END #2 THEN 990
970  READ #2;F$
980  NEXT I
990  IF F>2 THEN 1160
1000  F=F+1
1010  PRINT "TYPE YOUR NAME PLEASE ";
1020  ENTER 255,X,E$
1030  PRINT 
1040  READ #1,1
1050  D1=0
1060  FOR M=1 TO 200
1070  IF TYP(1)=3 AND D1=1 THEN 1230
1080  IF  END #1 THEN 1130
1090  READ #1;D$,J$
1100  REM *** SEE IF PASSWORD AGREES WITH FREEFL IN A001 ****
1110  IF D$=E$ THEN 1260
1120  NEXT M
1130  IF F>1 THEN 1160
1140  PRINT "Try again..."
1150  GOTO 930
1160  PRINT "NAME NOT CURRENT"'7
1170  IF E$="" THEN 1190
1180  GOTO 1210
1190  E$="< CARRAGE RETURN >"
1200  REM **** PRINT UNKNOWN PASSWORD IN CRZYFL IN A001 ****
1210  PRINT #3;E$
1220  GOTO 1250
1230  PRINT "DEMONSTRATION TIME ELAPSED."'7
1240  GOTO 2460
1250  SYSTEM X,"BYE"
1260  CONVERT J$ TO J0
1270  IF TIM(2)>J0+1 THEN 1230
1280  GOTO 1570
1290  REM **** CHECK BIL01F IN A001 TO SEE IF CUSTOMER IS CURRENT ****
1300  D1=1
1310  DIM A1$[72],B1$[72]
1320  ASSIGN "BIL01F.A001",4,R7, PR 
1330  IF R7=6 THEN 1320
1340  READ #4,1
1350  SYSTEM A$,"TIM"
1360  IF  END #4 THEN 1550
1370  READ #4;A1$,B1$
1380  IF A$[1,4]=A1$[1,4] THEN 1400
1390  GOTO 1360
1400  CONVERT B1$ TO Q,1250
1410  Z=TIM(2)-Q
1420  IF Z>15 THEN 1520
1430  IF Z>7 THEN 1460
1440  IF Z>1 THEN 1490
1450  GOTO 1550
1460  PRINT "         *** YOUR ACCOUNT IS PAST DUE";Z-4;"DAYS. ***"'7
1470  SYSTEM X,"PAU-5"
1480  GOTO 1550
1490  PRINT "BILLS MAILED";Z;"DAYS A GO."
1500  SYSTEM X,"PAU-5"
1510  GOTO 1550
1520  PRINT "Your account has been suspended call  CRISIS TIMESHARE"
1530  SYSTEM X,"BYE"
1540  GOTO 1060
1550  B1=BRK(0)
1560  GOSUB 2490
1570  GOSUB 2780
1580  PRINT LIN(2);TAB(30);"CRISIS TIMESHARE"
1590  PRINT TAB(33);"ACCT # ";A$[1,4]
1600  PRINT TAB(10);T1$
1610  IF A$[1,4]="B000" THEN 1620
1620  PRINT 
1630  REM **** ADD NOTES ETC TO HELLO STATEMENT FROM $NEWS1 ****
1640  ASSIGN "$NEWS1",4,R
1650  IF R=6 THEN 1640
1660  READ #4;J1$
1670  FOR I=1 TO 10
1680  READ #4;K1$
1690  IF K1$="++" THEN 1720
1700  PRINT K1$
1710  NEXT I
1720  PRINT TAB(34);"EXE-$NEWS"
1730  ASSIGN *,4
1740  PRINT TAB(30);"UPDATED ";J1$
1750  GOTO 1810
1760  PRINT 
1770  PRINT 
1780  PRINT 
1790  PRINT "READY"'7
1800  STOP 
1810  REM **** CALENDAR STARTS HERE ****
1820  DATA 0,31,60,91,121,152,182,213,244,274,305,335,366,999
1830  DATA 0,31,59,90,120,151,181,212,243,273,304,334,365,999
1840  LET S=TIM(0)
1850  LET H=TIM(1)
1860  LET D=TIM(2)
1870  LET Y=TIM(3)
1880  LET N$="0123456789000000000000000"
1890  LET D$="  -  -     :   AM  PORT #  "
1900  ENTER #P
1910  LET Q=P
1920  GOSUB 2400
1930  LET D$[26,27]=Q$
1940  LET Q=H
1950  IF (H*100+S)<1201 THEN 1990
1960  LET D$[16,17]="PM"
1970  IF H<13 THEN 1990
1980  LET Q=H-12
1990  GOSUB 2400
2000  LET D$[10,11]=Q$
2010  LET Q=S
2020  GOSUB 2400
2030  LET D$[13,14]=Q$
2040  IF Y/4=INT(Y/4) THEN 2380
2050  RESTORE 1830
2060  MAT  READ A
2070  FOR I=1 TO 14
2080  IF D>A[I] THEN 2370
2090  IF I<14 THEN 2130
2100  LET D=D-A[13]
2110  LET Y=Y+1
2120  GOTO 1900
2130  LET Q=I-1
2140  GOSUB 2400
2150  LET D$[1,2]=Q$
2160  LET Q=D-A[I-1]
2170  GOSUB 2400
2180  LET D$[4,5]=Q$
2190  LET Q=Y
2200  GOSUB 2400
2210  LET D$[7,8]=Q$
2220  PRINT TAB(27);D$
2230  REM *** STUFF ACCOUNT & TIME IN REPFL1.A001 ***
2240  ASSIGN "REPFL1.A001",7,R, PR 
2250  IF R=6 THEN 2240
2260  IF  END #7 THEN 2310
2270  IF TYP(7)=3 THEN 2300
2280  READ #7;U1$
2290  GOTO 2270
2300  PRINT #7;A$[1,5];D$
2310  IF A$[1,2]="B0" THEN 2330
2320  GOTO 2360
2330  PRINT #2;E$,D$
2340  ASSIGN *,2
2350  ASSIGN *,1
2360  GOTO 1760
2370  NEXT I
2380  RESTORE 1820
2390  GOTO 2060
2400  REM NUMBER-TO-STRING
2410  LET N=INT(Q/10)
2420  LET Q$[1,1]=N$[N+1,N+1]
2430  LET N=Q-N*10
2440  LET Q$[2,2]=N$[N+1,N+1]
2450  RETURN 
2460  PRINT #2;E$;" **** NO TIME LEFT ****"
2470  PRINT #2; END 
2480  SYSTEM X,"BYE"
2490  REM **** AUTO BILLING STARTS HERE ****
2500  RETURN 
2510  REM *** NOT WORKING YET ***
2520  DIM L1$[80],M1$[80]
2530  ASSIGN *,1
2540  PRINT "LOGGING ..."
2550  ASSIGN "AUTOBL.A001",1,R6, PR 
2560  IF R6=6 THEN 2550
2570  READ #1,1
2580  SYSTEM L1$,"TIM"
2590  REM ** L1$(1,4) = ACCOUNT #  -- L1$(35,38) = ACCRUED TIME **
2600  REM *** VERIFY ACCOUNT ****
2610  FOR T=1 TO 1000
2620  IF  END #1 THEN 2690
2630  READ #1;M1$
2640  J1=REC(1)
2650  REM **** FIND ACCOUNT # ****
2660  IF M1$[1,4]=L1$[1,4] THEN 2680
2670  NEXT T
2680  REM *** STUFF DATA INTO RECORD J1 ***
2690  PRINT #1,J1;L1$[1,4],L1$[35,38]
2700  REM
2710  REM
2720  REM
2730  REM
2740  REM
2750  REM
2760  ASSIGN *,1
2770  RETURN 
2780  REM *** MAIL CHECK FILE ***
2790  PRINT "WAIT..."
2800  PRINT 
2810  SYSTEM U$[1,4],"TIM"
2820  GOSUB 2980
2830  IF  END #5 THEN 2940
2840  X=0
2850  X=X+1
2860  READ #5,X
2870  IF TYP(5)=3 THEN 2850
2880  READ #5;T$
2890  IF T$#U$ THEN 2850
2900  ASSIGN *,5
2910  REM *** INIT T1$ ***
2920  T1$="               < You have mail... EXE-$MAILBX >"
2930  GOTO 2970
2940  ASSIGN *,5
2950  REM *** INIT T1$ ***
2960  T1$="                     [ No mail today ]"
2970  REM
2980  ASSIGN "MBX01F.A100",5,R, PR 
2990  IF R=6 THEN 2980
3000  RETURN 
3010  REM*** CHECK FOR BREAK KEY ***
3020  Y=BRK(0)
3030  IF SYS(3)=1 THEN 550
3040  RETURN 
3041  CHAIN X,"HELLO.C100"
3042  PRINT "CHAIN FAILED : "X
3050  END 
