.TITLE SRDDBF .IDENT -6.5- ; Jan-85 .ENABL LC ;+ ; SRDDBF - DISPLAY SRD BUFFER SIZE ; ; THIS MODULE WILL DISPLAY THE NUMBER OF BLOCKS ; AVAILABLE FOR DIRECTORY FILE BUFFERING. ON AN ; RSX-11M SYSTEM THIS FIGURE IS ONLY THE STATIC ; MEMORY AVAILABLE AND NOT THE ACTUAL, BECAUSE ; OF DYNAMIC MEMORY EXPANSION. ;- ; ; WRITTEN: 19-NOV-79,-5.0-, HENRY R. TUMBLIN, DUMC ; ; VERIFIED: 19-NOV-79,-5.0-, HENRY R. TUMBLIN, DUMC ; ; MODIFIED: RBD001: Bob Denny - Lower case messages (13-Jul-82) ; ; CEF001: Carl E. Friedberg - PSECTS for /MU (01-June-83) ; ;= ; .SBTTL LOCAL DATA .PSECT SRDATA,RW,D,CON,REL,LCL ;CEF001 .MCALL QIOW$S .GLOBL SRDDBF .NLIST BEX MSG01: .ASCII <15><12>"SRD -- Total blocks available = " ;RBD001 BLKS: .BLKB 6 ;RBD001 .ASCII ".*512. Byte blocks" ;RBD001 .IF DF R$$11M&D$$CAL ;RBD001 .ASCII <15><12>"NOTE: on RSX-11M systems, this is only the" ;RBD001 .ASCII <15><12>"initial buffer size before memory expansion." ;RBD001 .ENDC .BYTE 15,12 MSG01S = .-MSG01 .EVEN .LIST BEX .SBTTL START MAINLINE CODE .PSECT SRDCOD,RO,LCL,I,REL,CON ;CEF001 SRDDBF: MOV R0,-(SP) ; SAVE WORK REGISTERS MOV R1,-(SP) ; ... MOV R2,-(SP) ; ... ; CLEAR OUTPUT BUFFER MOV #BLKS+6,R0 ; GET POINTER MOV #6,R1 ; AND COUNTER 10$: CLRB -(R0) ; CLEAR A BYTE SOB R1,10$ ; LOOP TILL THROUGH ; CALCULATE BUFFER SIZE MOV DIRBE$,R1 ; GET END OF BUFFER SUB DIRBF$,R1 ; GET SIZE IN BYTES SWAB R1 ; DIVIDE BY 256. ASR R1 ; DIVIDE BY 512. BIC #^C177,R1 ; CLEAN GARBAGE ; CONVERT BLKS TO ASCII CLR R2 ; ZERO SUPPRESS CALL $CBDMG ; CONVERT TO DECIMAL MAGNITUDE ; OUTPUT STRING TO USER 20$: QIOW$S #IO.WLB,#TTYLUN,,,,,<#MSG01,#MSG01S,#0> BCC 30$ ; CC - THEN LEAVE CALL ALERR ; ELSE CHECK ERROR 30$: MOV (SP)+,R2 ; RESTORE REGISTERS MOV (SP)+,R1 ; ... MOV (SP)+,R0 ; ... RETURN ; RETURN TO CALLER .END