ASMB HED RTE-III/IV PARTITION SIZE RETREIVE SUBROUTINE NAM PRTSZ,7 . 92903-16001 REV.1805 780112 * * SOURCE 92903-18046 * SPC 2 ************************************************************** * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978. ALL RIGHTS * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, RE- * * PRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITH- * * OUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * ************************************************************** SPC 2 * DATE: 22/APR/77 * NAME: PRTSZ * SOURCE: &PRTSZ * RELOC: %PRTSZ * PGMR: DANIEL POT HPG * REV: 12/JAN/78 MOD FOR RTE-IV FG SPC 2 * ************************************** * * THIS SUBROUTINE RETURNS THE SIZES * * * OF THE TEN BIGGEST PARTITIONS USED * * * BY THE CURRENTLY RUNNING SYSTEM. * * * IT RETURN ALSO THE NUMBER OF PART. * * ************************************** SPC 2 * CALLING SEQUENCE: * * DIMENSION IBUF(10) * INTEGER PRTSZ * .. * * NBPART = PRTSZ(IBUF) * * IBUF(10) = THE LARGEST PARTITION SIZE OF THE SYSTEM. * * IF NOT RET-III OR RTE-IV RETURN ZERO FOR # OF PRT * AND PRT SIZE. SPC 2 ENT PRTSZ EXT .ENTR SUP EXT $MATA,$OPSY,$MNP SPC 2 TEMP NOP NBPRT NOP TOTAL NUMBER OF PARTITION LASTD NOP NINTH ADRESS OF OUTPUT BUFFER LLSTD NOP TENTH ADRESS OF OUTPUT BUFFER PONTR NOP POINTER OF THE OUTPUT BUFFER CONT NOP LOOP COUNTER MATPT NOP $MATA POINTER SPC 1 ADBUF NOP PRTSZ NOP JSB .ENTR DEF ADBUF RETURN BUFFER ADRESS * LDA ADBUF ADA =D8 STA LASTD INITIALISES LASTD INA STA LLSTD IMNITIALISES LLSTD LDA =D-10 STA CONT CLA STA NBPRT INIT NUMBER OF PARTITION LDB ADBUF STA 1,I INB ISZ CONT JMP *-3 CLEARS OUTPUT BUFFER * * * LDB $OPSY GET SYSTEM NUMBER CPB =D-9 RTE-IV ? JMP RTE4 YES. CPB =D-1 RTE-III ? RSS YES JMP EXIT RETURN, ERROR !! * LDB $MATA RTE-III, GET THE MAT ADDRESS ADB =D-1 LDA 1,I GET THE NUMBER OF MAT ENTRY LDB =D6 RTE-III MAT ENTRY LENGTH JMP PRTS3 * RTE4 LDA $MNP RTE-IV, GET THE NUMBER OF MAT ENTRY LDB =D7 RTE-IV MAT ENTRY LENGTH * PRTS3 STA NBPRT STB TEMP SAVE MAT ENTRY LENGTH CMA,INA STA CONT NUMBER OF PARTITIONS * LDB $MATA LOOP STB MATPT XLA 1,I SSA JMP NEXT ADB =D4 XLA 1,I AND =B1777 INA STA ADBUF,I JSB TRI LDB MATPT NEXT ADB TEMP GO TO NEXT ENTRY ISZ CONT JMP LOOP EXIT LDA NBPRT RECALL NUMBER OF PARTITION JMP PRTSZ,I SPC 2 TRI NOP LDA ADBUF GET FIRST OUTPUT BUFFER ADRESS STA PONTR INITIALISES POINTER TRI1 DLD PONTR,I GET FIRST AND SECOND PARTITION SIZE CMA,INA CALCULATES: -(PARTITION SIZE) ADA 1 CALCULATES PRT#2-PRT#1 SZA,RSS JMP TRI2 SSA,RSS PARTITIONS SIZES MUST BE REVERSED JMP TRI2 RIGHT ORDER: CONTINUE SWP LDB PONTR,I DST PONTR,I LDA PONTR CPA ADBUF JMP TRI2 CCA ADA PONTR STA PONTR RESTORE PREVIOUS OUTPUT BUFFER ADRESS WORD JMP TRI1 RE-BEGIN THE CLASSING OPERATION TRI2 ISZ PONTR LDA PONTR GET OUTPUT BUFFER ADRESS CPA LLSTD COMPARE TO LAST OUTPUT BUFFER ADRESS WORD JMP TRI,I CLASSING OPERATION IS FINISHED JMP TRI1 CONTINUE CLASSING OPEARTION END PRTSZ