.TITLE SRDDBF .IDENT -5.0- .LIST TTM ;+ ; 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 ; ; MODIFIED: ; ; VERIFIED: 19-NOV-79,-5.0-, HENRY R. TUMBLIN, DUMC ;- .SBTTL LOCAL DATA .MCALL QIOW$S .GLOBL SRDDBF MSG01: .ASCII <15><12>"SRD -- TOTAL BLOCKS AVAILABLE = " BLKS: .BLKB 6 .ASCII ".*512. BYTE BLOCKS" .IF DF R$$11M&D$$CAL .ASCII <15><12>"NOTE: ON RSX-11M SYSTEMS, THIS IS ONLY THE" .ASCII <15><12>"INITIAL BUFFER SIZE BEFORE MEMORY EXPANSION" .ENDC .BYTE 15,12 MSG01S = .-MSG01 .EVEN .SBTTL START MAINLINE CODE 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