home *** CD-ROM | disk | FTP | other *** search
- 1 ' signon subsystem -- convert old USERS file
- 2 ' RBBENT27.BAS to SIGNON USERS 1.0 format
- 3 VERSION$="1.03 {8/22/82}"
- 5 ' by dick lieber
- 7 '
- 9 DEFDRIVE$="A:"
- 10 USERFILE$="USERS"
- 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)
- 72 DIM USERS%(600,2)
- 77 'ON ERROR GOTO 1000
- 78 DIM ARYCLASS$(10) 'RBBENT27 classes (RG, SP etc.)
- 79 DIM ARYACLVL%(10) 'RBBEN27 aclvls matching above
- 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$)
- 199 GOTO 10000
- 200 ' special modified version of this routine for conv.bas only
- 202 ' packup user record & put
- 206 ' 1.11 (1300.10)
- 208 SETUSERNUMBER%=USERNUMBER%: GOSUB 300
- 210 FLAGS%(0)=EXPERT%
- 216 FLAGS%(8)=OLDUSER%
- 217 FLAGS%(9)=NEEDLOC%
- 218 FLAGS%(10)=DELETED%
- 224 FLAG%=0
- 228 FOR INDEX%=14 TO 0 STEP -1
- 229 MASK=2^INDEX%
- 230 IF FLAGS%(INDEX%) <> 0 THEN FLAG%= FLAG% OR MASK
- 234 NEXT INDEX%
- 236 ACLVL$=STR$(ACLVL%)
- 238 LSET FACLVL$ = ACLVL$
- 240 LSET FFNAME$ = FRNAME$
- 242 LSET FLNAME$ = LNAME$
- 244 LSET FLOCATION$ = LOCATION$
- 246 SIGCNT$=STR$(SIGCNT)
- 248 LSET FSIGCNT$ = SIGCNT$
- 250 LSET FLASTDATE$ = DATE$
- 252 LSET FLASTIME$=TIME$
- 254 ELAPTIME$=STR$(ELAPTIME%)
- 256 LSET FELAPTIME$=ELAPTIME$
- 258 TOTALTIME$=STR$(TOTALTIME)
- 260 LSET FTOTTIME$=TOTALTIME$
- 262 LSET FPWD$ = PWD$
- 264 FLAG$=STR$(FLAG%)
- 266 LSET FFLAG$ = FLAG$
- 268 LSET FCRLF$=CRLF$
- 270 PUT #1, REC%
- 271 RETURN
- 275 ' put header , close users
- 276 SETUSERNUMBER%=USERNUMBER%: GOSUB 300
- 278 LSET FUEXTUSER$ = STR$(NEXTUSER)
- 280 LSET FUSERSIG$ = "*"
- 282 LSET FUDATE$=UDATE$
- 283 LSET FUTIME$=UTIME$
- 286 LSET FUCRLF$=CRLF$
- 288 PUT #1,1
- 290 CLOSE #1
- 292 RETURN
- 300 '
- 302 ' set user number
- 304 '
- 306 USERMD=TESTADDRESS+9
- 312 CALL USERMD(SETUSERNUMBER%)
- 345 RETURN
- 400 '
- 407 ' print a string on con:
- 414 ' string in A$, CR%=1 no crlf cr%=2 crlf after
- 435 ' 1.2
- 442 IF STACKED%<>0 THEN RETURN
- 449 BREAK%=0
- 456 XKEY$=INKEY$
- 463 IF XKEY$=CHR$(3) OR XKEY$="C" OR XKEY$="c" THEN BREAK%=1
- 470 IF XKEY$=CHR$(18) OR XKEY$="S" OR XKEY$="s" THEN PAUSE%=1 ELSE PAUSE%=0
- 477 IF PAUSE%<>0 AND LEN(INKEY$)=0 THEN GOTO 477 'wait for key
- 484 ON CR% GOTO 491,498
- 491 PRINT A$; : RETURN
- 498 PRINT A$: RETURN
- 500 '
- 503 ' get a string into ANSWER$ (make upper case)
- 512 ' 1.7 [*** tremendously improved! ***]
- 515 IF STACKED%<>0 THEN
- ANSWER$=STACKED$:
- STACKED%=0:
- NKEY%=LEN(STACKED$):
- GOTO 557
- 518 ANSWER$=""
- 521 KEY$="*"
- 524 NKEY%=0
- 527 WHILE NKEY% <= MAX%
- 530 KEY$=INPUT$(1)
- 533 KEY%=ASC(KEY$)
- 536 IF KEY$="~" THEN GOTO 551 'don't allow tilde
- 539 IF KEY%=13 THEN GOTO 557 'done
- 542 IF (KEEPLOWER%=0 AND KEY% >= 97 AND KEY%<= 122) THEN KEY%=KEY%-32
- 545 IF KEY%=127 OR KEY%=8 THEN GOSUB 569 'process backspace
- 548 IF DELCHAR%=0 THEN
- NKEY%=NKEY%+1:
- PRINT KEY$;:
- ANSWER$=ANSWER$+CHR$(KEY%)
- ELSE
- DELCHAR%=0
- 551 IF NKEY%<0 THEN NKEY%=0
- 554 WEND
- 557 STACKED%=INSTR(ANSWER$,";")
- 560 IF STACKED%<>0 THEN
- STACKED$=MID$(ANSWER$,STACKED%+1):
- ANSWER$=LEFT$(ANSWER$,STACKED%-1)
- 563 KEEPLOWER%=0
- 566 RETURN
- 569 DELCHAR%=1
- 572 IF NKEY%=0 THEN RETURN
- 575 NKEY%=NKEY%-1
- 578 PRINT BSTRING$;
- 581 ANSWER$=LEFT$(ANSWER$,LEN(ANSWER$)-1)
- 584 RETURN
- 1000 '
- 1004 ' Error handler
- 1008 '
- 1012 A$="Error Trap":CR%=2: GOSUB 400
- 1020 PRINT "ERR = ";ERR, "ERL = ";ERL
- 1022 IF ERR=53 THEN NOFILE%=1: RESUME NEXT
- 1028 ON ERROR GOTO 0
- 1100 '
- 1105 ' get passwords & configuration parameters
- 1115 ' 1.10 ##
- 1120 NOFILE%=0
- 1125 OPEN "I", #2,DEFDRIVE$+PWDFILE$
- 1130 IF NOFILE%<>0 THEN CLOSE #1: RETURN
- 1135 INPUT #2, PWD1$, PWD2$, PWD3$, ALLOWNEW%, SIGNONMESS$, OPTIONMESS$
- 1140 INPUT #2,BULLFILE$, SUCESSFILE$, OPTIONFILE$, INSTRFILE$,
- NEWCOMFILE$, NOACCESSFILE$, EXITFILE$,SPECIALFILE$
- 1145 INPUT #2,PWDACL%, MAXPW%, SYSOPSLVL%, USERNUMBER%, DENIEDCOMMENT%
- 1150 INPUT #2, CLEARSCR$,NOCLOCK%,SPECIALEVEL%
- 1155 INPUT #2, MUSTQUALIFY%, QUALQUESTION$, QUALANSWER1$, QUALANSWER2$,
- QUALNONPWD%, MGRDRIVE$
- 1160 INPUT #2, SKIPFILES%,RAMPOKE%,RAMPOKEADDRESS%,TESTADDRESS
- 1165 INPUT #2, BYEPOKE%, BYEPARAMS%, BYEPROG$
- 1170 INPUT #2, SYSOPONLY%,WHEELOPTION%,WHEEL%,
- RESTRICT%,UNRESTRICT%,MODEMCTLOPT%
- 1175 FOR INDEX%=0 TO 5:
- FOR I%=0 TO 10:
- INPUT #2,ACLARRAY%(INDEX%,I%):
- NEXT I%:
- NEXT INDEX%
- 1176 INPUT #2, MODEMPORT%, DISCONNECT%, PAGESIZE%
- 1180 CLOSE #2
- 1185 RETURN
- 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
- 1236 IF FFNAME$=FIRST$ AND FLNAME$=LAST$ THEN GOSUB 1300: RETURN
- 1240 REC%=REC%+1
- 1244 GOTO 1228
- 1300 '
- 1302 ' 1300
- 1304 ' unpack user record
- 1306 ' 1.11 (1200.10)
- 1308 ACLVL%=VAL(FACLVL$)
- 1310 FRNAME$=FFNAME$
- 1312 IF RIGHT$(FRNAME$,1)=" " THEN FRNAME$=LEFT$(FRNAME$,LEN(FRNAME$)-1):
- GOTO 1312
- 1314 LNAME$=FLNAME$
- 1316 IF RIGHT$(LNAME$,1)=" " THEN LNAME$=LEFT$(LNAME$,LEN(LNAME$)-1):
- GOTO 1316
- 1318 LOCATION$=FLOCATION$
- 1320 SIGCNT=VAL(FSIGCNT$)
- 1322 LASTDATE$=FLASTDATE$
- 1324 LASTTIME$=FLASTIME$
- 1326 ELAPTIME%=VAL(FELAPTIME$)
- 1328 TOTALTIME=VAL(FTOTTIME$)
- 1330 PWD$=FPWD$
- 1332 FLAG%=VAL(FFLAG$)
- 1334 MASK=1
- 1336 FOR INDEX% = 14 TO 0 STEP -1
- 1337 MASK=2^INDEX%
- 1338 IF FLAG% AND MASK THEN FLAGS%(INDEX%)=1 ELSE FLAGS%(INDEX%)=0
- 1340 MASK=MASK * 2
- 1342 NEXT INDEX%
- 1344 EXPERT%=FLAGS%(0)
- 1360 OLDUSER%=FLAGS%(8)
- 1361 NEEDLOC%=FLAGS%(9)
- 1362 DELETED%=FLAGS%(10)
- 1374 RETURN
- 1400 '
- 1403 ' open USERS
- 1406 ' 1.7
- 1409 IF VIEWFILE$="" THEN SETUSERNUMBER%=USERNUMBER%
- ELSE SETUSERNUMBER%=0
- 1410 GOSUB 300
- 1412 IF VIEWFILE$="" THEN
- FILE$= DEFDRIVE$+USERFILE$
- ELSE FILE$=MGRDRIVE$+VIEWFILE$
- 1413 OPEN "R", #1, FILE$, 88
- 1415 FIELD #1,
- 5 AS FUEXTUSER$,
- 1 AS FUSERSIG$,
- 6 AS FUDATE$,
- 6 AS FUTIME$,
- 2 AS FUCRLF$
- 1418 GET #1, 1
- 1421 NEXTUSER=VAL(FUEXTUSER$)
- 1424 UDATE$=FUDATE$
- 1425 UTIME$=FUTIME$
- 1427 IF FUSERSIG$ <> "*" THEN
- NEXTUSER=2:
- GOSUB 1600:
- UDATE$ = DATE$:
- UTIME$=TIME$
- 1430 FIELD #1,
- 3 AS FACLVL$,
- 10 AS FFNAME$,
- 14 AS FLNAME$,
- 15 AS FLOCATION$,
- 5 AS FSIGCNT$,
- 6 AS FLASTDATE$,
- 6 AS FLASTIME$,
- 6 AS FTOTTIME$,
- 3 AS FELAPTIME$,
- 13 AS FPWD$,
- 5 AS FFLAG$,
- 2 AS FCRLF$
- 1433 RETURN
- 1600 '
- 1602 ' date process and time
- 1604 ' 1.1
- 1642 '
- 1644 TIMEMD=TESTADDRESS
- 1646 DATEMD=TESTADDRESS+3
- 1648 DAYMD=TESTADDRESS+6
- 1650 IF NOCLOCK%<>0 THEN
- DATE$="xxxxxx":
- TIME$="xxxxxx":
- DAY$="":
- RETURN
- 1651 ODATE$=STRING$(12,"$")
- 1652 CALL DATEMD(ODATE$)
- 1654 DATE$=FNKILLSEP$(LEFT$(ODATE$,8))
- 1658 ' get time
- 1661 OTIME$=STRING$(12,"$")
- 1662 CALL TIMEMD(OTIME$)
- 1664 TIME$=FNKILLSEP$(LEFT$(OTIME$,8))
- 1668 ' get day of week
- 1672 DAY$=""
- 1674 IF GETDAY%=0 THEN RETURN
- 1676 ODAY$=STRING$(10,"$")
- 1678 CALL DAYMD(ODAY$)
- 1680 FOR I%=1 TO LEN(ODAY$)
- 1682 IF MID$(ODAY$,I%,1)<>"$" THEN DAY$=DAY$+MID$(ODAY$,I%,1)
- 1684 NEXT I%
- 1686 GETDAY%=0
- 1688 RETURN
- 1700 '
- 1705 ' set default values to working individual variables
- 1710 ' 1.1
- 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
- 2500 '
- 2503 ' display userfile$
- 2506 '1.8
- 2509 GOSUB 3100
- 2512 PRINT
- 2515 GOSUB 1400
- 2518 INDEX=1
- 2521 COUNTER%=0
- 2524 COUNTER1%=0
- 2527 SAVEDACLVL%=ACLVL%
- 2528 PRINT TAB(20);"Press ^K to abort listing."
- 2530 PRINT
- "rec first last, location uses last use total time"+CRLF$
- 2533 GET #1,INDEX+1
- 2536 IF EOF(1) OR INDEX=NEXTUSER-1 THEN GOTO 2557
- 2537 IF INKEY$=CHR$(&HB) THEN ABORT%=1: GOTO 2557
- ELSE ABORT%=0
- 2539 GOSUB 1300 'transfer to working vars
- 2542 IF RIGHT$(LOCATION$,1)=" " THEN
- LOCATION$ = LEFT$(LOCATION$,LEN(LOCATION$)-1): GOTO 2542
- 2545 IF DELETED%=1 THEN LOCATION$= "**deleted**":
- COUNTER%=COUNTER%+1
- ELSE
- COUNTER1%=COUNTER1%+1
- 2548 PRINT USING "### \ \ ### & & #### ";
- INDEX;FRNAME$+" "+LNAME$+", "+LOCATION$;
- SIGCNT;FNADDSEP$(LASTDATE$,"/");
- FNADDSEP$(LASTTIME$,":");
- TOTALTIME
- 2551 INDEX=INDEX+1
- 2554 GOTO 2533
- 2557 PRINT
- 2560 IF VIEWFILE$="" THEN PRINT "User file reorganized";
- ELSE PRINT "User archive made";: VIEWFILE$=""
- 2563 PRINT " on ";FNADDSEP$(UDATE$,"/"); " at ";FNADDSEP$(UTIME$,":");"."
- 2564 PRINT
- 2565 IF ABORT% THEN PRINT
- TAB(35);"** Aborted ** (totals based on displayed data only)"+CRLF$
- 2566 PRINT " Active Users: ";COUNTER1%
- 2569 PRINT "Deleted Users: ";COUNTER%
- 2572 PRINT "Total Entries: ";COUNTER1%+COUNTER%
- 2575 GOSUB 4700
- 2578 CLOSE #1
- 2581 ACLVL%=SAVEDACLVL%
- 2584 RETURN
- 3100 '
- 3105 ' clear screen
- 3110 '
- 3115 A$=CLEARSCR$:CR%=1:GOSUB 400: 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
- 4700 '
- 4705 ' pause
- 4710 '
- 4715 PRINT:PRINT TAB(25);
- 4720 LINE INPUT "Press RETURN to continue."; A$
- 4725 RETURN
- 5100 '
- 5104 ' Subsystem Manager - Main menu
- 5108 ' 1.0
- 5112 GOSUB 3100
- 5116 PRINT
- 5120 PRINT TAB(30);"USER Maintainer"
- 5124 PRINT TAB(30);"<version ";VERSION$;">"
- 5128 PRINT
- 5132 PRINT TAB(20);"a Go back to subsystem manager."
- 5156 PRINT TAB(20);"b Display the roster of users."
- 5160 PRINT TAB(20);"c Sort USER file."
- 5164 PRINT TAB(20);"d Remove deleted user's records."
- 5168 PRINT TAB(20);"e View a USER archive file."
- 5172 ' PRINT TAB(20);"f Fetch a user's record from an archive."
- 5180 ' PRINT TAB(20);"g 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 module
- 5308 '
- 5310 SETUSERNUMBER%=0:GOSUB 300
- 5316 END
- 7100 '
- 7105 ' back to POSYS
- 7110 '
- 7115 SETUSERNUMBER%=0: GOSUB 300
- 7120 JUMPFILE$="POSYS"
- 7125 GOSUB 7800
- 7130 RETURN
- 7800 '
- 7807 ' generalized jumpout (chain)
- 7814 '1.1
- 7821 GOSUB 3100
- 7828 PRINT FNLINES$(4)
- 7835 PRINT TAB(20);"Chaining to ";JUMPFILE$;"."
- 7842 PRINT FNLINES$(2)
- 7849 PRINT TAB(20);"Please wait."
- 7856 CHAIN JUMPFILE$
- 7863 GOSUB 3100
- 7870 PRINT FNLINES$(4)
- 7877 PRINT TAB(25); JUMPFILE$;" is not available."
- 7884 GOSUB 4700
- 7891 RETURN
- 8100 '
- 8104 ' close temp & change to new USERFILE$
- 8108 '1.1
- 8112 GOSUB 1600
- 8116 LSET TFUEXTUSER$=STR$(RECTEMP+1) 'NEXTuser
- 8120 LSET TFUSERSIG$="*"
- 8124 LSET TFUDATE$=DATE$
- 8128 LSET TFUTIME$=TIME$
- 8132 LSET TFUCRLF$=CRLF$
- 8136 SETUSERNUMBER%=USERNUMBER%: GOSUB 300
- 8140 PUT #2,1
- 8144 CLOSE #1: CLOSE #2
- 8147 KILL DEFDRIVE$+USERFILE$+".UBK"
- 8148 NAME DEFDRIVE$+USERFILE$ AS DEFDRIVE$+USERFILE$+".UBK"
- 8152 NAME DEFDRIVE$+USERFILE$+".$$$" AS DEFDRIVE$+USERFILE$
- 8156 RETURN
- 8300 '
- 8304 ' put into temp
- 8308 '
- 8312 LSET MSTRTEMP$=MSTRUSER$
- 8316 RECTEMP = RECTEMP+1
- 8320 SETUSERNUMBER%=USERNUMBER%: GOSUB 300
- 8324 PUT #2, RECTEMP
- 8328 RETURN
- 8400 '
- 8404 ' put into archive
- 8408 '
- 8412 LSET MSTRARCH$=MSTRUSER$
- 8416 RECARCH = RECARCH+1
- 8420 SETUSERNUMBER%=0: GOSUB 300
- 8424 PUT #3, RECARCH
- 8428 RETURN
- 8500 '
- 8504 ' open work file of USERS
- 8508 '
- 8512 SETUSERNUMBER%=USERNUMBER%: GOSUB 300
- 8516 OPEN "R", #2, DEFDRIVE$+USERFILE$+".$$$", 88
- 8520 FIELD #2, 88 AS MSTRTEMP$
- 8524 FIELD #2,
- 5 AS TFUEXTUSER$,
- 1 AS TFUSERSIG$,
- 6 AS TFUDATE$,
- 6 AS TFUTIME$,
- 2 AS TFUCRLF$
- 8528 RECTEMP=1
- 8532 RETURN
- 8600 '
- 8604 ' open archive USERS
- 8608 '1.1
- 8612 SETUSERNUMBER%=0: GOSUB 300
- 8616 GOSUB 1600
- 8620 OPEN "R", #3, MGRDRIVE$+FNADDSEP$(DATE$,SEP$)+".USR", 88
- 8624 FIELD #3, 88 AS MSTRARCH$
- 8628 FIELD #3,
- 5 AS AFUEXTUSER$,
- 1 AS AFUSERSIG$,
- 6 AS AFUDATE$,
- 6 AS AFUTIME$,
- 2 AS AFUCRLF$
- 8632 RECARCH=1
- 8636 RETURN
- 9500 '
- 9503 ' read record from old users file
- 9506 ' transfer to working variables
- 9509 ' rbbent27.bas compatable version
- 9512 ' 0.1
- 9513 SETUSERNUMBER%=OLDUSERNUMBER%: GOSUB 300
- 9515 GET #2, I%
- 9518 SPACESEP%=INSTR(FRLNLOC$," ")
- 9521 OFIRST$=LEFT$(FRLNLOC$,SPACESEP%-1)
- 9524 SPCSEP2%=INSTR(SPACESEP%+2,FRLNLOC$," ")
- 9527 OLAST$=MID$(FRLNLOC$,SPACESEP%+1,SPCSEP2%-SPACESEP%-1)
- 9530 LOCLENGTH%=48-SPCSEP2%
- 9533 LOCATION$=RIGHT$(FRLNLOC$,LOCLENGTH%)
- 9536 IF RIGHT$(LOCATION$,1)=" " THEN
- LOCATION$=LEFT$(LOCATION$,LEN(LOCATION$)-1): GOTO 9536
- 9537 REC%=I%
- 9538 ACLVL%=DEFACLVL%
- 9539 FOR J%=0 TO CLASSES% 'change access level from default
- 9540 IF CLASS$=ARYCLASS$(J%) THEN ACLVL%=ARYACLVL%(J%)
- 9541 NEXT J%
- 9542 COUNT%=VAL(COUNT$)
- 9543 PRINT " record:";REC%
- 9544 PRINT " class:>";CLASS$;"<"
- 9545 PRINT " last:>";OLAST$;"<"
- 9548 PRINT " first:>";OFIRST$;"<"
- 9551 PRINT "location:>";LOCATION$;"<"
- 9554 PRINT " count:";COUNT%
- 9555 PRINT "acc levl:";ACLVL%
- 9557 PRINT "===================================="
- 9563 FRNAME$=OFIRST$ 'first name
- 9566 LNAME$=OLAST$ 'last name
- 9572 SIGCNT=COUNT% 'usage counter
- 9574 OLDUSER%=1
- 9587 RETURN
- 9600 '
- 9610 ' open users.rbb file
- 9615 ' works with rbbrnt27.bas
- 9620 '0.2
- 9625 SETUSERNUMBER%=OLDUSERNUMBER%: GOSUB 300
- 9630 OPEN "r", #2, OLDUSER$, 62
- 9640 FIELD #2,
- 2 AS CLASS$,
- 48 AS FRLNLOC$,
- 4 AS COUNT$,
- 6 AS DATE$,
- 2 AS CR$
- 9650 GET #2,1 'read header
- 9660 FIELD #2, 5 AS USERS$
- 9670 USERS=VAL(USERS$)
- 9675 GOSUB 3100
- 9680 PRINT: PRINT OLDUSER$;" open. - ";USERS;"in the file."
- 9685 PRINT:PRINT
- 9690 RETURN
- 9700 '
- 9701 ' request conversion parameters
- 9702 '
- 9703 GOSUB 3100 'clear screen
- 9704 PRINT:PRINT TAB(25);"USERS file convertor"
- 9705 PRINT TAB(20);"RBBENT27.BAS version ";VERSION$
- 9706 FOR I%=0 TO 10
- 9707 ARYCLASS$=""
- 9708 NEXT I%
- 9709 PRINT:PRINT: USERFILE$="USERS"
- 9710 PRINT TAB(24);"Name of old USERS file > ";
- 9711 MAX%=14: GOSUB 500
- 9712 IF NKEY%=0 THEN GOTO 9703 ELSE OLDUSER$=ANSWER$
- 9713 TABER%=15-LEN(OLDUSER$)
- 9714 PRINT: PRINT TAB(TABER%);"User number where ";OLDUSER$;" can be found > ";
- 9715 MAX%=2: GOSUB 500
- 9716 IF NKEY%=0 THEN GOTO 9703 ELSE
- OLDUSERNUMBER%=VAL(ANSWER$)
- 9717 PRINT:PRINT
- 9718 PRINT TAB(20);"Assign SIGNON access levels to RBBENT27 classes."
- 9719 PRINT TAB(20);"Enter ** when finished with list."
- 9720 PRINT TAB(20);"Examples of classes are RG for regular, SP for special."
- 9721 PRINT:PRINT
- "Remeber that access levels above";PWDACL%;"will have passwords."
- 9722 PRINT:PRINT
- "and those from"; SPECIALEVEL%;"on up are special users."
- 9723 PRINT : PRINT TAB(6);"class"; TAB(18); "access level"
- 9724 FOR I%=0 TO 10
- 9725 PRINT TAB(5);"> ";
- 9726 MAX%=1: GOSUB 500
- 9727 IF NKEY%=0 THEN GOTO 9725
- 9728 ARYCLASS$(I%)=ANSWER$
- 9729 IF ANSWER$="**" THEN GOTO 9734
- 9730 PRINT TAB(20);"> ";
- 9731 MAX%=1: GOSUB 500
- 9732 IF NKEY%=0 THEN PRINT "Class ";ARYCLASS$;" ignored - re-enter":
- GOTO 9725
- ELSE ARYACLVL%(I%)=VAL(ANSWER$)
- 9733 NEXT I%
- 9734 PRINT:PRINT TAB(20);"Everyone else should be assigned access level > ";
- 9735 MAX%=2: GOSUB 500
- 9736 IF NKEY%=0 THEN GOTO 9734
- 9737 IF VAL(ANSWER$) > 10 THEN PRINT "Too high!": GOTO 9734
- 9738 DEFACLVL%=VAL(ANSWER$)
- 9739 '
- 9740 ' confirm selection
- 9741 '
- 9742 GOSUB 3100
- 9743 PRINT:PRINT:PRINT
- 9744 PRINT "Old USERS file: ";OLDUSER$;" in user";OLDUSERNUMBER%
- 9745 PRINT
- 9746 IF OLDUSER$=USERFILE$ AND OLDUSERNUMBER%=USERNUMBER% THEN
- USERFILE$=USERFILE$+".NEW"
- 9747 PRINT: PRINT "New USERS file: ";USERFILE$;" in user";USERNUMBER%
- 9748 IF USERFILE$="USERS.NEW" THEN
- PRINT:
- PRINT TAB(10);"Since your old USERS file is the same name as":
- PRINT TAB(10);"the new USERS and in the same user area,"
- 9749 IF USERFILE$="USERS.NEW" THEN
- PRINT TAB(10);"the new USERS file is being re-named as":
- PRINT TAB(10);"USERS.NEW. You'll have to change it to":
- PRINT TAB(10);"USERS later."
- 9750 PRINT: PRINT "Default access level is";DEFACLVL%
- 9751 PRINT: PRINT "Other classes of users will be:"
- 9753 PRINT "class level"
- 9754 FOR I%=0 TO 10
- 9755 IF ARYCLASS$(I%)<>"**" AND ARYCLASS$(I%)<>""
- THEN PRINT ARYCLASS$(I%); TAB(11); ARYACLVL%(I%)
- 9756 NEXT I%
- 9757 PRINT:PRINT "Is all of this ok? > ";
- 9758 MAX%=0: GOSUB 500
- 9759 IF ANSWER$="N" THEN GOTO 9703
- 9760 RETURN
- 10000 '
- 10005 ' main program starts here
- 10010 ' 1.0
- 10020 GOSUB 1100 'get configuration parameters
- 10022 GOSUB 9700 'get parameters for conversion
- 10025 GOSUB 9600 'open old USERS file
- 10030 GOSUB 1400 'open new users file
- 10035 '
- 10040 ' main transfer loop
- 10045 '
- 10050 FOR I%=2 TO USERS
- 10052 GOSUB 1700 'assign default variables
- 10055 GOSUB 9500 'move to working
- 10060 GOSUB 200 'write to SIGNON users file
- 10065 NEXT I%
- 10070 '
- 10075 ' update new user file's header
- 10080 '
- 10085 NEXTUSER=I% 'next available slot in USERS file
- 10086 GOSUB 1600 'get date & time
- 10090 UDATE$=DATE$ 'date file was re-organized
- 10095 UTIME$=TIME$ 'time of re-org
- 10100 GOSUB 275 'finish up header & close file
- 10200 GOSUB 3100
- 10210 PRINT:PRINT:PRINT
- 10220 PRINT TAB(20);USERFILE$;" written.
- 10300 SETUSERNUMBER%=0: GOSUB 300
- 20000 END
-