.PSECT OPNMAI .TITLE OPNMAI - OPEN THE CURRENT USER'S MAIL .IDENT /1XJGD/ ; ; THIS CODE HAS BEEN DEVELOPED BY THE COMPUTING ; GROUP OF THE ATMOSPHERIC SCIENCES DIVISION, ; ALBERTA RESEARCH. THIS WORK FUNDED BY THE ; ALBERTA WEATHER MODIFICATION BOARD. ; ; THERE IS EXPLICITLY NO COPYRIGHT ON THIS SOFTWARE, ; AND ITS DISTRIBUTION IS ENCOURAGED. NO RESPONSIBILITY ; NOR GUARANTEE IS MADE OR ASSUMED BY THE AUTHOR, OR ; BY ALBERTA RESEARCH. ; ; SUGGESTIONS OR CHANGES ARE INVITED, AND WILL BE ; DISTRIBUTED TO OTHER USERS OF THIS SOFTWARE THROUGH ; THE DECUS IAS/RSX SPECIAL INTEREST GROUP. ; ; ; VERSION: 781020 ; WRITTEN BY: W. KORENDYK ; DATE WRITTEN: 31-OCT-78 ; ; ; MODIFICATIONS: ; ; CODE NAME DATE ; JGD01 J. DOWNWARD 11-FEB-80 USE PROTECTION UIC FOR ; READING MAIL ; ;+ ; ; *** - OPNMAI -- OPEN THE MAIL FILE OF THE CURRENT USER. ; THE CURRENT USER IS DETERMINED BY THE DEFAULT UIC ; OF THE CURRENT TASK. ; ; OUTPUTS: THE CURRENT USER'S MAIL FILE IS OPENED, WITH ; THE FDB AT "INDFDB". ; "OURUIC" IS FILLED IN WITH THE SIX (6) CHARACTER ; (DEFAULT) UIC OF THE MAILER. ; ; IF AND ONLY IF AN ERROR OCCURS IN EITHER LOCATING OR ; OPENING THE MAIL FILE, AN APPROPRIATE MESSAGE ; IS OUTPUT TO THE TERMINAL, AND THE CARRY BIT IS SET ; ;- LF=12 CR=15 .DSABL GBL .MCALL ENTER,LEAVE,PSTR .MCALL FCSMC$,FDOF$L,FCSBT$,IOERR$ .MCALL GTSK$S .MCALL MAIGBL,MAIDSF .ENABLE LC ; PRETTY ERROR MESSAGES ; FCSMC$ ;GET THE FCS STUFF FDOF$L ;AND LOCAL OFFSETS FCSBT$ ;AND LOCAL SYMBOLS IOERR$ ;AND THE ERROR CODES MAIGBL ;AND DEFINE ALL GLOBALS ; .BLKB 3 ;PADDING OURUIC: ; NAME: .BLKB 6 ;BUILD A DSDS FOR THE MAIL FILE .EVEN COUNT: .WORD 0 ;ERROR COUNT BUF: .BLKW 16. ;GTSK BUFFER OPNMAI: ENTER R0,R1,R2 ;SAVE SOME REGISTERS GTSK$S #BUF ; GET TASK INFO MOV PC,R2 ; NO ZERO SUPPRESSION ON CONVERSION MOV #NAME,R0 ; WHERE TO PUT IT CLR R1 ; ; BISB BUF+G.TSPC,R1 ; GET THE MEMBER NUMBER ; JGD BISB BUF+G.TSDU,R1 ; GET PROTECTION UIC(MEMBER NUMBER) ; JGD CALL $CBOMG ; AND CONVERT IT MOV #NAME-3,R0 ; WHERE TO PUT GROUP NUMBER CLR R1 ; ; BISB BUF+G.TSGC,R1 ; GET THE GROUP NUMBER ; JGD BISB BUF+G.TSDU+1,R1 ; GET PROTECTION UIC(GROUP NUMBER) ; JGD CALL $CBOMG ; AND CONVERT IT MAIDSF NAME ; SPECIFY A NEW MAIL BOX FDOP$R #INDFDB,,#MAIDSD; SET UP FDB FOR THE FILE DSDS CLR COUNT ; SET ERROR COUNT TO 0 1$: OPEN$R ; OPEN THE FILE BCC 110$ ; IT WAS SUCCESSFUL CMPB #IE.NSF,F.ERR(R0);MAYBE THERE WAS NO SUCH FILE? BEQ 200$ ; YES, THAT WAS IT CMPB #IE.WAC,F.ERR(R0);HOW ABOUT OPENED FOR WRITE ACCESS? BNE 10$ ; NO, MUST BE SOMETHING ELSE TST COUNT ; FIRST TIME THIS HAPPENED? BNE 5$ ; IF NE, THEN NO PSTR ^#/Sensing incoming MAIL - Will wait till it is received/# 5$: INC COUNT ; WE CAN ONLY DO THIS CMP COUNT,#5 ; FOR SO LONG BGT 10$ ; IF GT, IT TOOK TOO LONG CALL MRKTIM ; MARK SOME TIME BR 1$ ; AND TRY AGAIN 10$: PSTR ^#/Unrecoverable mail file error/# 11$: SEC ; INDICATE AN ERROR 110$: LEAVE ;THAT IS ALL, RETURN ;RETURN ; 200$: PSTR ^#/Your mailbox is empty./# BR 11$ ; ERROR RETURN .END