.PSECT QUE .TITLE QUE - HOW MUCH MAIL FOR ME? .IDENT /781117/ ; ; 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: MARK JOHNSON ; DATE WRITTEN: 23-OCT-78 ; ; RELATED DOCUMENTATION: ; NONE ; ; ; ROUTINES USED: ; OPNMAI ; ; ; MODIFICATIONS: ; ; CODE NAME DATE ; ;+ ; *** - QUE - HOW MUCH MAIL DO I HAVE? ; ; INPUTS: ; NONE ; ; OUTPUTS: ; NONE ; ; SIDE EFFECTS: ; A MAIL FILE FOR THIS USER IS OPENED (IF ONE EXISTS). ; THE LINES IN THE FILE ARE COUNTED. ; THE COUNTS ARE WRITTEN TO THE USER'S TERMINAL. ; ;- .MCALL GET$,CLOSE$,TTYOUT .MCALL FDOF$L FDOF$L ;DEFINE FDB OFFSETS .MCALL MAIGBL,MAIHED MAIGBL ;DEFINE GLOBALS MAIHED ;DEFINE HEADER LINE OFFSETS .DSABL GBL ; ; COUNTERS: HDRLIN: .WORD 0 ;NUMBER OF HEADERS NOTLIN: .WORD 0 ;NUMBER OF NOTICES REPLIN: .WORD 0 ;NUMBER OF REPLIES LINE: .WORD 0 ;NUMBER OF LINES ; ; SPECIAL CHARACTERS HT=11 ;A HORIZONTAL TAB INDICATES A LETTER LINE (NON-HEADER) REPC='> ;A REPLY CHARACTER IN A HEADER LABEL FIELD INDICATES A REPLY NOTC='N ;BUT THIS CHARACTER FOLLOWING INDICATES A NOTICE (NO REPLY) ; .NLIST BEX .enable lc ; MESSAGE TO USER: MESS: .BYTE 7,15,12 .ASCII /You have %M letters, %M notices, and %M replies in %M lines./ .BYTE 7,15,12,0 .EVEN ; ; QUE: CALL OPNMAI ;OPEN MAIL FILE (IF POSSIBLE) BCS NONE ;NO MAIL FOR ME ; ; ZERO COUNTERS ; CLR LINE CLR HDRLIN CLR REPLIN CLR NOTLIN ; 1$: GET$ #INDFDB,#LINBUF,#MAXLIN+1 ;READ A LINE FROM THE MAIL FILE BCS EOF ;EOF OR WHATEVER INC LINE ;COUNT A LINE ; ; DETERMINE TYPE OF LINE ; CMPB LINBUF,#HT ;LETTER LINE (NON-HEADER)? BEQ 1$ ;EQ => YES ; CMPB LINBUF+MA.LAB,#REPC ;REPLY? BEQ 2$ ; ; HDRLIN ; INC HDRLIN BR 1$ ; ; REPLIN ; 2$: CMPB LINBUF+MA.LAB+1,#NOTC ;COULD BE A NOTICE BEQ 21$ ;IT IS INC REPLIN BR 1$ ; 21$: INC NOTLIN BR 1$ ; ; END-OF-FILE (OR ERROR) ; EOF: CLOSE$ #INDFDB,IOERR ;CLOSE THE MAIL FILE MOV #LINBUF,R0 ;POINT TO LINE TO BUILD MOV #MESS,R1 ;POINT TO FORMAT TO USE MOV #HDRLIN,R2 ;POINT TO TABLE OF COUNTS CALL $EDMSG ;FORMAT THE LINE TTYOUT #LINBUF,R1 ;PRINT THE LINE AT THE TERMINAL NONE: RETURN ;THEN WE'RE DONE. ; .END