.TITLE RESET .IDENT /V7.06/ ;******************************************************************* ; ; RESET -- THIS PROGRAM IS RUN AT SYSTEM STARTUP AT THE START OF ; A NEW ACCOUNTING PERIOD. IT OPENS THE ACCOUNT FILE ; AND SETS TO ZERO BOTH THE AVERAGE NUMBER OF BLOCKS ; AND THE NUMBER OF DISK ACCOUNTINGS, SO THAT THESE ; AVERAGES START AGAIN FROM SCRATCH. ALSO, IF THE OPTION ; WAS SELECTED AT ACCOUNTING SYSTEM GENERATION, THE ; USERS BALANCE IS RESET TO WHATEVER IT WAS AT THE LAST ; MACNT "SET" COMMAND. ; ; VERSION: V6 OCTOBER 1979 ; VERSION: V7 JANUARY 1981 ; ; STEVE THOMPSON SCHOOL OF CHEMICAL ENGINEERING ; OLIN HALL ; CORNELL UNIVERSITY ; ITHACA NY 14853 ; ; REVISION HISTORY ; ---------------- ; ; SMT753 7-OCT-81 CHANGED NAMES OF CONDITIONAL ASSEMBLY ; PARAMETERS; SEE THE FILES MODIFY.TXT AND ; CONDEF.MAC FOR DETAILS. ; ; SMT814 12-APR-82 LOWER CASE MESSAGES FOR RSX-11M V4.0 ; ;****************************************************************** .MCALL QIOW$,DIR$,EXIT$S .MCALL FINIT$ .MCALL EXST$S ACTDF$ ; DEFINE ADDITIONAL ACCOUNT FILE OFFSETS ; ; LOCAL DATA ; LUN1 = 1 ; TERMINAL I/O LUN2 = 2 ; ACCOUNT FILE I/O EFN1 = 1 ; EVENT FLAG FOR LUN1 EFN2 = 2 ; EVENT FLAG FOR LUN2 ; ; DIRECTIVE PARAMETER BLOCKS ; .IF DF AA$BLK ! AA$MMA ERROR: QIOW$ IO.WVB,LUN1,EFN1,,,, .IFF NULL: QIOW$ IO.WVB,LUN1,EFN1,,,, ; ; ERROR MESSAGES ; .NLIST BEX .IIF DF AA$V40 ! AA$V41, .ENABL LC NULM: .ASCII /RESET -- Null operation/ NULMSZ=.-NULM .IFT ERR: .ASCII /RESET -- Account file open failure/ ERRSZ=.-ERR .IFTF .EVEN $RSTEP: ; PROGRAM XFR ADDRESS .IFF DIR$ #NULL ; NULL OPERATION .IFT FINIT$ ; SET UP FSR CALL $AFOPN ; OPEN ACCOUNT FILE BCC 10$ ; OK DIR$ #ERROR ; WRITE OUT ERROR MESSAGE EXST$S #EX$SEV ; EXIT WITH SEVERE ERROR 10$: CALL $AFGET ; READ DATA FROM ACCOUNT FILE BEQ 25$ ; IF EQ NO WORDS READ MOV #$ACTBF,R0 ; GET BUFFER ADDRESS 15$: CMPB A.GRP(R0),#'0 ; VALID UIC? BLO 20$ ; IF LO NO, SLOT IS AVAILABLE CMPB A.GRP(R0),#'3 ; MAYBE BHI 20$ ; IF HI NO .IF DF AA$BLK CLR A.ABLK(R0) ; CLEAR AVERAGE BLOCKS CLR A.ABLK+2(R0) ; CLR A.NDA(R0) ; AND NUMBER OF DISK ACCOUNTINGS .ENDC ; DF AA$BLK .IF DF AA$MMA MOV A.MALL+2(R0),A.CASH+2(R0) ; RESET BALANCE TO LAST SET COMMAND MOV A.MALL(R0),A.CASH(R0) ; .ENDC ; DF AA$BLK 20$: ADD #A.LEN,R0 ; POINT TO NEXT ENTRY SUB #A.LEN,R2 ; GET BYTES LEFT BHI 15$ ; GO IF THERE ARE ANY 25$: CMPB #IE.EOF,$AFIOS ; END OF FILE? BEQ 30$ ; IF EQ YES TSTB $AFIOS ; ANY ERRORS? BMI 30$ ; IF MI YES CALL $AFPUT ; REWRITE THIS ACCOUNT FILE BLOCK BR 10$ ; DO NEXT BLOCK 30$: CALL $AFCLS ; CLOSE ACCOUNT FILE .ENDC ; DF AA$BLK ! AA$MMA EXIT: EXIT$S ; AND EXIT .END $RSTEP