home *** CD-ROM | disk | FTP | other *** search
- 1 ' signon subsystem -- Subsystem Manager
- 3 VERSION$="1.4 {10/14/82}" '1.01 was initial release
- 5 ' by dick lieber
- 7 '
- 9 DEFDRIVE$="A:"
- 10 USERFILE$="USERS"
- 11 CALLERFILE$="CALLERS"
- 15 LASTCALRFILE$="LASTCALR"
- 16 COMMENTMGR$="COMGR"
- 17 USERMAINT$="USRMAINT"
- 18 COMMENTFILE$="COMMENTS"
- 20 PWDFILE$="pwds"
- 50 USER0%=0
- 67 BSTRING$=CHR$(8)+" "+CHR$(8)
- 68 CRLF$=CHR$(&HA)+CHR$(&HD)
- 70 DIM ACLARRAY%(5,11)
- 71 DIM FLAGS%(14)
- 77 ON ERROR GOTO 1000
- 80 '
- 81 ' function definition
- 82 '
- 83 ' add deliminators to time or date
- 84 DEF FNADDSEP$(DS$,DELIM$)=
- LEFT$(DS$,2)+DELIM$+MID$(DS$,3,2)+DELIM$+RIGHT$(DS$,2)
- 85 ' remove date or time deliminators
- 86 DEF FNKILLSEP$(DS$)=LEFT$(DS$,2)+MID$(DS$,4,2)+RIGHT$(DS$,2)
- 88 ' on-off function
- 90 DIM ONOFF$(1)
- 91 ONOFF$(0)="Off"
- 92 ONOFF$(1)="On"
- 93 DEF FNONOFF$(ONOFF%)=ONOFF$(ONOFF%)
- 94 DEF FNLINES$(NLINES%)=STRING$(NLINES%,CRLF$)
- 95 DEF FNHOURS$(TIME)=STR$(INT(TIME/60))+":"+
- RIGHT$("00"+MID$(STR$(TIME-(INT(TIME/60)*60)),2),2)
- 199 GOTO 10000
- 200 %include 200.SSB
- 300 '
- 302 ' set user number
- 304 '
- 306 USERMD=TESTADDRESS+9
- 312 CALL USERMD(SETUSERNUMBER%)
- 345 RETURN
- 400 %include 400500.SSB
- 600 %include 600.SSB
- 700 '
- 705 ' get string into ANSWER$ then CRLF
- 710 '
- 715 GOSUB 500: PRINT: RETURN
- 800 %include 800.SSB
- 1000 '
- 1004 ' error handler
- 1008 '1.1
- 1010 IF ERR=53 THEN NOFILE%=1: RESUME NEXT
- 1012 A$="Error Trap":CR%=2: GOSUB 400
- 1020 PRINT "ERR = ";ERR, "ERL = ";ERL
- 1028 END
- 1100 %include 1100.SSB
- 1200 '
- 1204 ' find name - get record
- 1208 ' 1.2
- 1211 SETUSERNUMBER%=USERNUMBER%: GOSUB 300
- 1212 NOTFOUND%=0
- 1216 REC%=2
- 1220 LAST$=SPACE$(14): FIRST$=RIGHT$(LAST$,10)
- 1224 LSET FIRST$=FRNAME$: LSET LAST$=LNAME$
- 1228 GET #1,REC%
- 1232 IF EOF(1) THEN NOTFOUND%=1:RETURN
- 1234 IF REC%=NEXTUSER THEN NOTFOUND%=1: RETURN
- 1236 IF FFNAME$=FIRST$ AND FLNAME$=LAST$ THEN GOSUB 1300: RETURN
- 1240 REC%=REC%+1
- 1244 GOTO 1228
- 1300 %include 1300.SSB
- 1400 %include 1400.SSB
- 1600 %include 1600.SSB
- 1700 '
- 1705 ' set default values to working individual variables
- 1710 ' 1.0
- 1715 ACLVL%=0
- 1720 SIGCNT=0
- 1725 NEWCOMER%=0
- 1730 SYSOP%=0
- 1735 PWD$= STRING$(13,42) ' *s
- 1740 LOCATION$=""
- 1745 LTIME$=""
- 1750 LDATE$=""
- 1755 ELAPTIME%=0
- 1760 TOTALTIME=0
- 1765 NOTATION$="normal"
- 1766 EXPERT%=0
- 1767 OLDUSER%=0
- 1770 RETURN
- 1800 '
- 1804 ' choose a password
- 1808 '
- 1811 OLDPWD$=PWD$
- 1812 PRINT
- 1816 A$="Choose a password. It may be any":CR%=2:GOSUB 400
- 1820 A$="combination of characters, except RETURN and may":GOSUB 400
- 1824 A$="be up to 13 characters in length.":GOSUB 400
- 1828 A$="Press RETURN after typing your password.":GOSUB 400
- 1832 PRINT
- 1836 A$=" > ":CR%=1:GOSUB 400
- 1840 MAX%=13
- 1844 GOSUB 600
- 1845 IF NKEY%=0 THEN PWD$=OLDPWD$: RETURN
- 1848 PWD$=ANSWER$
- 1852 PRINT
- 1856 IF PWD$=STRING$(13,42) THEN A$="Sorry that password isn't allowed.":
- CR%=2:GOSUB 400: GOTO 1812
- 1860 A$="To make sure, type it again.":CR%=2:GOSUB 400
- 1864 A$=" > ":CR%=1:GOSUB 400
- 1868 GOSUB 600
- 1872 PRINT
- 1876 IF PWD$<>ANSWER$ THEN A$="They don't match.": GOSUB 400: GOTO 1812
- 1880 PRINT
- 1884 A$=" ok":CR%=2:GOSUB 400
- 1886 CHANGED%=1
- 1888 RETURN
- 2500 %include 2500.SSB
- 3100 '
- 3105 ' clear screen
- 3110 '
- 3115 A$=CLEARSCR$:CR%=1:GOSUB 400: RETURN
- 3120 '
- 3125 ' check authorization level of user
- 3130 ' 1.0
- 3131 PRINT "3131 you shouldm't be here!":END
- 3132 SETUSERNUMBER%=0: GOSUB 300
- 3135 OPEN "I", #1, DEFDRIVE$+LASTCALRFILE$
- 3140 INPUT #1, FRNAME$, LNAME$, ACLVL%
- 3145 CLOSE #1
- 3150 IF ACLVL% < AUTHLEVEL% THEN 3980
- 3155 RETURN
- 3300 '
- 3305 ' make selection
- 3310 '
- 3315 MAX%=0:GOSUB 500
- 3320 IF ANSWER$="" THEN SELECTION%=0: RETURN
- 3325 SELECTION%=ASC(ANSWER$)-64
- 3327 IF SELECTION% < 0 THEN SELECTION%=0
- 3330 RETURN
- 3600 '
- 3605 ' display working record
- 3610 '1.4 'POSYS only version
- 3615 PRINT
- 3635 PRINT TAB(15);"a First Name: "; FRNAME$
- 3640 PRINT TAB(15);"b Last Name: "; LNAME$
- 3645 PRINT TAB(15);"c Access Level: "; :
- IF ACLVL%=-1 THEN PRINT "TWIT" ELSE PRINT ACLVL%
- 3650 PRINT TAB(15);"d Location: "; LOCATION$
- 3655 PRINT TAB(15);"e Last Date On: "; FNADDSEP$(LASTDATE$,"/")
- 3660 PRINT TAB(15);"f Last Time On: ";
- FNADDSEP$(LASTTIME$,":");" for";FNHOURS$(ELAPTIME%);" hr:mn."
- 3665 PRINT TAB(15);
- "g Usage: "; SIGCNT;" signons in";FNHOURS$(TOTALTIME);" hr:mn"
- 3670 PRINT TAB(15);"h Password: ";
- 3675 IF PWD$=STRING$(13,42) THEN PRINT STRING$(13,&H2D)
- ELSE PRINT STRING$(13,42)
- 3680 RETURN
- 3900 '
- 3904 ' display list of callers
- 3908 '1.5 #
- 3912 GOSUB 3100 'clear
- 3916 NOFILE%=0
- 3920 GOSUB 8600 'open CALLERFILE$
- 3924 IF NOFILE<>0 THEN
- PRINT:PRINT TAB(20);"No ";CALLERFILE$;".":
- CLOSE #3:
- GOSUB 4700:
- RETURN
- 3928 PRINT "Press ^K to abort listing."
- 3932 PRINT "Total number of callers: ";LOGCNT#;
- 3936 IF NEXTRECORD=1 THEN PRINT TAB(20); CALLERFILE$;" empty."
- 3940 PRINT:PRINT:PRINT
- "caller name time-date minutes notation"
- 3944 FOR I=NEXTRECORD-1 TO 1 STEP -1
- 3952 GET #3, I+1
- 3956 DFNAME$=CFNAME$:DLNAME$=CLNAME$: ELAPTIME%=VAL(CTIMEON$)
- 3960 IF RIGHT$(DFNAME$,1)=" " THEN DFNAME$=LEFT$(DFNAME$,LEN(DFNAME$)-1):
- GOTO 3960
- 3964 IF RIGHT$(DLNAME$,A)=" " THEN DLANME$=LEFT$(DLNAME$,LEN(DLNAME$)-1):
- GOTO 3964
- 3968 PRINT USING "#### \ \ & & ### &";
- I;DFNAME$+" "+DLNAME$;
- FNADDSEP$(CDATE$,"/");FNADDSEP$(CTIME$,":");ELAPTIME%;CNOTATION$
- 3969 KEY$=INKEY$: IF KEY$="S" OR KEY$="s" OR KEY$=CHR$(&H13)
- THEN PAUSE%=1 ELSE PAUSE%=0
- 3970 IF KEY$=CHR$(&HB) THEN ABORT%=1: GOTO 3976
- ELSE ABORT%=0
- 3971 IF PAUSE%<>0 AND LEN(INKEY$)=0 THEN GOTO 3971
- 3972 NEXT I
- 3976 CLOSE 3
- 3980 IF ABORT%<>0 THEN PRINT:PRINT TAB(30);"** Aborted **"
- 3984 GOSUB 4700 'pause
- 3988 RETURN
- 4700 '
- 4705 ' pause
- 4710 '
- 4715 PRINT:PRINT TAB(25);
- 4720 LINE INPUT "Press RETURN to continue."; A$
- 4725 RETURN
- 5000 '
- 5005 ' test that user is the SYSOP
- 5010 '
- 5015 OPEN "I", #1, DEFDRIVE$+LASTCALRFILE$
- 5020 INPUT #1, FRNAME$,LNAME$,ACLVL%
- 5025 CLOSE #1
- 5030 IF FRNAME$+LANME$ = "SYSOP" AND ACLVL% => 9 THEN ZRETURN%=1
- ELSE ZRETURN%=0
- 5035 RETURN
- 5100 '
- 5104 ' Subsystem Manager - Main menu
- 5108 ' 1.5
- 5112 GOSUB 3100
- 5116 PRINT
- 5120 PRINT TAB(30);"Signon Subsystem Manager"
- 5124 PRINT TAB(30);"<version ";VERSION$;">"
- 5128 PRINT
- 5132 PRINT TAB(20);"a Maintain comments.";
- 5136 IF SYSCOM$="*" OR NEWCOM$="*" THEN PRINT " [New ";
- 5140 IF SYSCOM$="*" THEN PRINT "system ";
- 5144 IF SYSCOM$="*" AND NEWCOM$="*" THEN PRINT "and ";
- 5148 IF NEWCOM$="*" THEN PRINT "user ";
- 5152 IF SYSCOM$="*" OR NEWCOM$="*" THEN PRINT "comments]" ELSE
- PRINT
- 5156 PRINT TAB(20);"b Display the roster of users."
- 5160 PRINT TAB(20);"c Display list of callers."
- 5164 PRINT TAB(20);"d Update ";USERFILE$;" file."
- 5168 PRINT TAB(20);"e Enter/Edit a user's record."
- 5172 PRINT TAB(20);"f Maintain ";CALLERFILE$;" file."
- 5176 PRINT TAB(20);"g Configure subsystem."
- 5180 PRINT TAB(20);"h Time of day"
- 5182 PRINT:PRINT TAB(20);"q Leave subsystem manager."
- 5184 PRINT:PRINT TAB(25);"Press the letter of your selection > ";
- 5188 GOSUB 3300 'selector
- 5192 RETURN
- 5300 '
- 5304 ' exit subsystem manager
- 5308 '
- 5310 SETUSERNUMBER%=0:GOSUB 300
- 5316 END
- 5500 '
- 5505 ' initialize Subsystem manager variables
- 5510 '
- 5515 CHANGED%=0
- 5520 RETURN
- 6000 '
- 6005 ' get users first and last name
- 6010 '1.1 modified 11/16/82 by Jim Mills
- 6014 ABORT%=0
- 6015 GOSUB 3100
- 6016 PRINT FNLINES$(2); TAB(25);"Just press RETURN at firstname for main menu."
- 6017 PRINT FNLINES$(2); TAB(25);"or enter a record number (ie: 23)"
- 6020 MAX%=20:LNAME$="" 'bug fix 11/16/82
- 6025 PRINT FNLINES$(2)
- 6026 PRINT TAB(20);"First Name > ";: GOSUB 700: FRNAME$=ANSWER$
- 6027 IF NKEY%=0 THEN ABORT%=1: RETURN
- 6028 REM was: IF LEFT$(ANSWER$,1)="#"
- 6029 REM was: THEN REC%=VAL(RIGHT$(ANSWER$,LEN(ANSWER$)-1))+1
- 6030 IF VAL(ANSWER$)<>0 THEN REC%=VAL(ANSWER$)+1
- :IF REC%<2 THEN REC%=2: RETURN ELSE RETURN
- 6031 REC%=0
- 6033 IF FRNAME$="SYSOP" THEN LNAME$="": RETURN
- 6035 PRINT FNLINES$(2)
- 6040 PRINT TAB(20);
- 6042 A$="Last Name > ": GOSUB 400: GOSUB 700: LNAME$=ANSWER$
- 6045 IF LNAME$="" THEN 6000
- 6050 RETURN
- 6100 '
- 6104 ' individual users
- 6108 '1.0
- 6109 ADDREC%=0
- 6110 GOSUB 1400
- 6112 GOSUB 6000 : IF ABORT%=1 THEN CLOSE #1: RETURN
- 6113 TRYAGAIN%=0
- 6116 IF REC%=0 THEN GOSUB 1200 ELSE GOSUB 7200 'search on name or get number
- 6117 IF TRYAGAIN%=1 THEN GOTO 6112
- 6118 IF NOTFOUND% <> 0 THEN GOSUB 6400 ELSE GOSUB 1300
- 6119 IF TRYAGAIN%=1 THEN GOTO 6112
- 6120 GOSUB 6200 'editor
- 6130 GOSUB 200
- 6140 GOTO 6100
- 6200 '
- 6204 ' user editor
- 6208 '
- 6212 GOSUB 3100
- 6214 DATE$=LASTDATE$: TIME$=LASTTIME$
- 6216 PRINT FNLINES$(2)
- 6217 IF DELETED%<>0 THEN GOTO 6260
- 6220 GOSUB 3600 'display user
- 6225 PRINT FNLINES$(2); TAB(15);"i Delete record."
- 6226 PRINT TAB(15);"j Display/Edit flags."
- 6228 PRINT FNLINES$(2);TAB(25);"Type letter of line to change > ";
- 6232 GOSUB 3300 'selector
- 6233 IF SELECTION%=0 THEN RETURN
- 6239 PRINT FNLINES$(4); TAB(20);
- 6240 ON SELECTION% GOSUB 6303,6307,6311,6316,6320,6320,6320,6332,6250,
- 6600
- 6244 GOTO 6200
- 6250 DELETED%=1: RETURN
- 6260 PRINT TAB(20);FRNAME$+" "+LNAME$+"'s "+
- "record is deleted."
- 6263 PRINT FNLINES$(3); TAB(20);"a Undelete this record."
- 6266 PRINT FNLINES$(2); TAB(20);"b Leave deleted."
- 6269 PRINT FNLINES$(2); TAB(20);"Type letter > ";
- 6272 GOSUB 3300
- 6275 IF SELECTION%=1 THEN DELETED%=0: GOTO 6200
- 6278 RETURN
- 6300 '
- 6301 ' user editor subroutines
- 6302 '1.1 '#
- 6303 PRINT "Type new first name > ";
- 6304 MAX%=20: GOSUB 500: IF NKEY%=0 THEN RETURN
- 6305 FRNAME$=ANSWER$
- 6306 RETURN
- 6307 PRINT "Type new last name > ";
- 6308 MAX%=20: GOSUB 500: IF NKEY%=0 THEN RETURN
- 6309 LNAME$=ANSWER$
- 6310 RETURN
- 6311 PRINT "Type T to flag user as a twit or":
- PRINT TAB(20);"Enter new access level number > ";
- 6312 MAX%=2: GOSUB 500: IF NKEY%=0 THEN RETURN
- 6313 IF LEFT$(ANSWER$,4)="T" THEN ACLVL%=-1: RETURN
- 6314 ACLVL%=VAL(ANSWER$)
- 6315 RETURN
- 6316 PRINT "Type new location > ";
- 6317 MAX%=20: GOSUB 500: IF NKEY%=0 THEN RETURN
- 6318 LOCATION$=ANSWER$
- 6319 RETURN
- 6320 PRINT "Sorry, you can't change that."
- 6321 MAX%=0: GOSUB 500
- 6322 RETURN
- 6328 RETURN
- 6332 GOSUB 3100
- 6333 PRINT FNLINES$(3): IF ACLVL% <= PWDACL% AND PWD$=STRING$(13,42)
- THEN GOTO 6390
- 6334 PRINT TAB(25);"a Choose a new password."
- 6335 PRINT TAB(25);"b Delete password "
- 6336 PRINT TAB(25);" ("+FRNAME$+" "+LNAME$+" will have to choose"
- 6337 PRINT TAB(25);" a new one.)"
- 6338 PRINT TAB(25);"c Leave current password unchanged."
- 6339 PRINT FNLINES$(3); TAB(30);"Type selection letter > ";
- 6340 GOSUB 3300 'selector
- 6341 IF SELECTION%=1 THEN GOSUB 3100:PRINT:PRINT:
- GOSUB 1800: RETURN
- 6342 IF SELECTION%=2 THEN PWD$=STRING$(13,42)
- 6343 RETURN
- 6390 PRINT USING " & ## & ";
- "Access levels thru";PWDACL%
- 6392 PRINT
- 6394 PRINT TAB(20);"don't require passwords."
- 6396 PRINT FNLINES$(2): GOSUB 4700
- 6397 RETURN
- 6400 '
- 6404 ' ask if new user is ok
- 6408 '1.1
- 6412 GOSUB 3100
- 6420 PRINT FNLINES$(4); TAB(20);FRNAME$+" "+LNAME$+" is not a current user."
- 6428 PRINT FNLINES$(3); TAB(20);"a Enter into the system"
- 6432 PRINT TAB(20);"b Try another name."
- 6436 GOSUB 3300 'selection
- 6444 IF SELECTION%=2 THEN TRYAGAIN%=1
- 6447 GOSUB 1700
- 6448 IF SELECTION%=1 THEN REC%=NEXTUSER: ADDREC%=1
- 6499 RETURN
- 6500 '
- 6503 ' remove deleted records -- make archive
- 6506 ' 1.3
- 6507 SETUSERNUMBER%=0: GOSUB 300
- 6510 JUMPFILE$=USERMAINT$
- 6525 GOSUB 7800
- 6550 RETURN
- 6600 '
- 6604 ' display/edit user's flags
- 6608 '1.1
- 6612 GOSUB 3100
- 6616 PRINT FNLINES$(2)
- 6620 PRINT TAB(30);FRNAME$;" ";LNAME$
- 6624 PRINT FNLINES$(3)
- 6628 PRINT TAB(15);"a Expert: ";FNONOFF$(EXPERT%)
- 6632 PRINT TAB(15);"b Old User: ";FNONOFF$(OLDUSER%)
- 6636 PRINT TAB(15);"c Need Location: ";FNONOFF$(NEEDLOC%)
- 6640 PRINT FNLINES$(3)
- 6644 PRINT TAB(20);"Press letter to change > ";
- 6648 GOSUB 3300
- 6652 IF SELECTION%=0 THEN RETURN
- 6656 ON SELECTION% GOSUB 6664,6676,6684
- 6660 GOTO 6600
- 6664 IF ACLVL% < PWDACL% AND EXPERT%=0 THEN PRINT FNLINES$(2):
- PRINT TAB(30);"User's with access levels lower than";PWDACL%+1:
- PRINT TAB(30);"cannot be experts.": GOSUB 4700: RETURN
- 6668 IF EXPERT%=0 THEN EXPERT%=1 ELSE EXPERT%=0
- 6672 RETURN
- 6676 IF OLDUSER%=0 THEN OLDUSER%=1 ELSE OLDUSER%=0
- 6680 RETURN
- 6684 IF NEEDLOC%=0 THEN NEEDLOC%=1 ELSE NEEDLOC%=0
- 6688 RETURN
- 7200 '
- 7204 ' get a user by record number
- 7208 '1.1
- 7209 SETUSERNUMBER%=USERNUMBER%: GOSUB 300
- 7212 GET #1, REC%
- 7216 IF NOT EOF(1) THEN RETURN
- 7255 TRYAGAIN%=1
- 7257 NOTFOUND%=1
- 7260 GOSUB 3100
- 7268 PRINT FNLINES$(4); TAB(25);"Record number";REC%-1;" does not exist."
- 7270 PRINT:PRINT TAB(25);"Use option 'b' from the main menu to see the"
- 7274 PRINT:PRINT TAB(25);"roster of users."
- 7276 PRINT FNLINES$(3)
- 7280 GOSUB 4700
- 7290 RETURN
- 7600 '
- 7605 ' jumpout to configurator
- 7610 '
- 7615 SETUSERNUMBER%=0: GOSUB 300
- 7620 JUMPFILE$="CONFIG"
- 7625 GOSUB 7800
- 7630 RETURN
- 7700 '
- 7705 ' jumpout to comments manager
- 7710 '
- 7712 SETUSERNUMBER%=0: GOSUB 300
- 7715 JUMPFILE$=COMMENTMGR$
- 7720 GOSUB 7800
- 7725 RETURN
- 7800 %include 7800.SSB
- 8000 '
- 8010 ' dummy
- 8020 ' no system comments needed
- 8030 '
- 8040 RETURN
- 8100 '
- 8104 ' check for new comments
- 8108 '
- 8110 SETUSERNUMBER%=USERNUMBER%: GOSUB 300
- 8112 OPEN "R", #3,DEFDRIVE$+COMMENTFILE$, 66
- 8116 FIELD #3,
- 5 AS COMMENTNUMBER$,
- 8 AS TOTCOMMT$,
- 1 AS COMSIG$,
- 6 AS FCOMDATE$,
- 6 AS FCOMTIME$,
- 1 AS FINEWCOM$,
- 1 AS FSYSCOM$
- 8117 GET #3,1
- 8120 IF COMSIG$="*" THEN
- NEWCOM$=FINEWCOM$:
- SYSCOM$=FSYSCOM$
- 8124 CLOSE #3
- 8128 RETURN
- 8500 '
- 8504 ' maintain CALLERFILE$
- 8508 '
- 8512 GOSUB 3100
- 8516 PRINT TAB(30);CALLERFILE$;" Manager"
- 8524 PRINT FNLINES$(4); TAB(20);"a view callers log."
- 8528 PRINT FNLINES$(2); TAB(20);"b Make archive of current callers."
- 8532 PRINT FNLINES$(2); TAB(20);"c Delete current callers from log."
- 8536 PRINT FNLINES$(2); TAB(20);"d View an archive callers log."
- 8540 PRINT FNLINES$(3); TAB(20);"Press letter of your choice > ";
- 8543 GOSUB 3300
- 8544 IF SELECTION%=0 THEN RETURN
- 8548 ON SELECTION% GOSUB 3900,8700,8800,8900
- 8552 GOTO 8500
- 8600 '
- 8605 ' open CALLERFILE$
- 8610 ' 1.0 (POSYS only)
- 8611 NOFILE%=0
- 8615 SETUSERNUMBER%=USERNUMBER%: GOSUB 300
- 8620 OPEN "R",#3, DEFDRIVE$+CALLERFILE$, 75
- 8625 FIELD #3,
- 8 AS CLOGCNT$,
- 6 AS FCALDATE$,
- 6 AS FCALTIME$,
- 1 AS SIGNATURE$,
- 8 AS CLREC$
- 8630 GET #3,1
- 8635 IF SIGNATURE$<>"*" THEN
- NOFILE%=1: GOSUB 1600:
- LSET FCALDATE$=DATE$: LSET FCALTIME$=TIME$:
- LSET SIGNATURE$="*": LSET CLOGCNT$=STR$(0): LSET CLREC$=STR$(2):
- PUT #3,1:
- RETURN
- 8640 LOGCNT#=VAL(CLOGCNT$)
- 8645 NEXTRECORD = VAL(CLREC$)
- 8655 FIELD #3, 20 AS CFNAME$,
- 20 AS CLNAME$,
- 6 AS CDATE$,
- 6 AS CTIME$,
- 6 AS CTIMEON$,
- 10 AS CNOTATION$,
- 2 AS CCRLF$
- 8660 RETURN
- 8700 '
- 8704 ' make archive of CALLERFILE$
- 8707 '1.1
- 8708 GOSUB 3100
- 8711 GOSUB 8600 'open CALLERFILE$
- 8715 IF NOCALLERS%<>0 THEN
- PRINT:PRINT TAB(20);CALLERFILE$ ;" is empty.":
- CLOSE #3:
- GOSUB 4700:
- RETURN
- 8719 GOSUB 1600
- 8720 PRINT TAB(20);"Making ";FNADDSEP$(DATE$,"/");".CLR from ";CALLERFILE$;"."
- 8721 PRINT
- 8722 SETUSERNUMBER%=0: GOSUB 300
- 8723 OPEN "O", #2, MGRDRIVE$+FNADDSEP$(DATE$,"/")+".CLR"
- 8725 CALLERCOUNT%=0
- 8727 FOR CALREC=2 TO NEXTRECORD
- 8731 GET #3, CALREC
- 8735 PRINT #2,
- CFNAME$;" ";
- CLNAME$;" ";
- FNADDSEP$(CDATE$,"/");" ";
- FNADDSEP$(CTIME$,":");" ";
- CTIMEON$;" ";
- CNOTATION$
- 8736 CALLERCOUNT%=CALLERCOUNT%+1
- 8737 PRINT ".";
- 8739 NEXT CALREC
- 8743 CLOSE #3
- 8747 CLOSE #2
- 8748 PRINT FNLINES$(3); TAB(20); CALLERCOUNT%;"callers written to ";
- FNADDSEP$(DATE$,"/")+".CLR"
- 8750 GOSUB 4700
- 8783 RETURN
- 8800 '
- 8805 ' delete callers from CALLERFILE$
- 8810 '1.1
- 8815 GOSUB 3100
- 8820 PRINT FNLINES$(3); TAB(20);"Type D to delete callers."
- 8825 PRINT FNLINES$(2); TAB(20);"Press RETURN for ";CALLERFILE$;" menu."
- 8830 GOSUB 3300 'selector
- 8835 IF SELECTION%<>4 THEN RETURN
- 8840 GOSUB 8600 'open CALLERFILE$
- 8845 OLDLOGCNT#=LOGCNT#
- 8850 CLOSE #3
- 8852 SETUSERNUMBER%=USERNUMBER%: GOSUB 300
- 8855 KILL DEFDRIVE$+CALLERFILE$
- 8865 GOSUB 8600
- 8870 LSET CLOGCNT$ = STR$(OLDLOGCNT#)
- 8875 LSET CLREC$ = STR$(1)
- 8880 LSET SIGNATURE$="*"
- 8885 PUT #3,1
- 8890 CLOSE #3
- 8895 RETURN
- 8900 '
- 8904 ' view a CALLER archieve
- 8908 ' 1.0
- 8912 GOSUB 3100
- 8916 PRINT FNLINES$(2); TAB(20);"These are the archive callers files:"
- 8920 PRINT
- 8923 NOFILE%=0
- 8924 SETUSERNUMBER%=0:GOSUB 300:
- FILES MGRDRIVE$+"????????.CLR"
- 8928 IF NOFILE%<>0 THEN
- PRINT TAB(20);"No archive of callers on this disk/user.":
- GOSUB 4700:
- RETURN
- 8932 PRINT FNLINES$(2); TAB(20);"Type date of archive callers file > ";
- 8936 MAX%=8: GOSUB 700
- 8940 IF NKEY%=0 THEN RETURN
- 8943 DRIVE$=MGRDRIVE$
- 8944 FIL$=ANSWER$+".CLR"
- 8948 SWAP USER0%,USERNUMBER%:
- GOSUB 800:
- SWAP USER0%,USERNUMBER%
- 8949 IF NOFILE%<>0 THEN
- PRINT : PRINT TAB(20);FIL$;" does not exist on this disk/user.":
- GOSUB 4700:
- GOTO 8900
- 8952 PRINT
- 8956 GOSUB 4700
- 8960 RETURN
- 9200 '
- 9204 ' time of day clock
- 9208 ' 1.0
- 9210 GOSUB 3100
- 9212 GETDAY%=1
- 9216 GOSUB 1600
- 9220 PRINT FNLINES$(5); TAB(20);
- FNADDSEP$(TIME$,":");" ";DAY$;" ";FNADDSEP$(DATE$,"/")
- 9224 GOSUB 4700
- 9228 RETURN
- 10000 '
- 10010 ' main program starts here
- 10020 ' 1.2
- 10025 GOSUB 1100
- 10030 IF SYSOPONLY%=1 THEN GOSUB 5000 ELSE ZRETURN%=1
- 10040 IF ZRETURN%=0 THEN PRINT "POSYS?": END
- 10055 IF NOFILE%<> 0 THEN PRINT "Bad start - See SIGNON.DOC": END
- 10056 GOSUB 8100 'check for comments
- 10060 GOSUB 5100
- 10065 IF SELECTION%=17 THEN 5300
- 10070 ON SELECTION% GOSUB 7700,2500,3900,6500,6100,8500,7600,
- 9200
- 10080 GOTO 10060
- 20000 END
-