ASMB,R,L,C HED COMPILER LIBRARY SPACE ROUTINE NAM SPC.C,7 92064-18239 770515 REV. 1726 $CLIB * * *************************************************************** * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1977. ALL RIGHTS * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, RE- * * REPRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITH- * * OUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * *************************************************************** * * * * SOURCE PART NUMBER : 92060-18058 * * * LINE SPACE ROUTINE * * THIS ROUTINE WILL EJECT PAGES AND SPACE LINES ON LISTINGS * * * * * * * CALLING SEQUENCE: * * JSB SPC.C * DEF FCB * DEF FUN * ERROR RETURN * NO ERROR RETURN * * ON RETURN A < 0 INDICATES ERROR * A = 0 INDICATES NO ERROR * * WHERE FUN < 0 INDICATES PAGE EJECT IF LINE PRINTER * FUN > 0 SPACE 'FUN' LINES. * * * * ENTRY POINT: * ENT SPC.C * * EXTERNALS: * EXT EXEC SYSTEM EXEC EXT WRTC. WRITE ROUTINE EXT ADS.C FCB ADDRESS PASSER ROUTINE EXT C.FID FCB ID WORD EXT C.FLU FCB LOGICAL UNIT WORD EXT C.STR FCB CURRENT EXTENT TRACK NUMBER WORD EXT C.SSC FCB CURRENT EXTENT SECTOR NUMBER WORD EXT C.EXT FCB EXTENT NUMBER WORD EXT C.S/T FCB NUMBER OF BLOCKS/TRACK WORD EXT C.#SC FCB NUMBER OF BLOCKS/EXTENT WORD EXT C.WRD FCB CURRENT WORD POINTER WORD EXT C.FAD FCB DIRECTORY ADDRESS FROM D.RTR WORDS EXT C.HTR FCB START OF FILE TRACK NUMBER WORD EXT C.SLU FCB SECONDARY LOGICAL UNIT NUMBER WORD EXT C.?? FCB PROMPT CHARACTERS EXT C.GRW FCB REWIND GUARANTEE ROUTINE ADDRESS EXT C.INS FCB $INCLUDE ROUTINE ADDRESS EXT C.CNT FCB CONTROL ROUTINE ADDRESS * EXT C.PR1 PARAMETER ONE ADDRESS * * * * DETERMINE TYPE OF OPERATION * * THE FCB CONTAINS THE OPERATION TYPE AS FOLLOWS: * * TYPE = 0 IS READ SOURCE FILE(OR LU) * = 1 IS WRITE BINARY FILE(OR LU) * = 2 IS WRITE SCRATCH FILE * = 3 IS WRITE LIST FILE(OR LU) * = R IS READ SOURCE GUARANTEE REWINDABLILITY * * * A EQU 0 B EQU 1 * SPC.C NOP JSB ADS.C SET UP FILE CONTROL BLOCK ADDRESSES M1 DEC -1 LDB C.PR1,I GET CONTROL FUNCTION WORD LDA C.FID,I GET FILE/LU FLAG SSA IS THIS LU? JMP LUDEV YES! * * THIS A FILE SO WRITE EITHER A M1 FOR PAGE EJECT OR WRITE * THE NECESSARY LINE FOR LINE SPACING. * LDA LBUF SET UP BUFFER STA C.PR1 FOR WRITE SSB PAGE EJECT? JMP EJCTF WRITE A M1 IN COL 1 OF A LINE TO DO PAGE EJECT CMB,INB SET UP LINE STB CTR COUNTER WRT LDB .1 WRITE A JSB WRTC. A BLANK LINE(ONE CHAR) JMP ERROR ERROR RETURN ISZ CTR DONE? JMP WRT NO! JMP RETRN YES! * * EJECT PAGE * EJCTF LDA PBUF SET UP STA C.PR1 PAGE EJECT BUFFER LDB .1 JSB WRTC. WRITE A MINUS ONE FOR PAGE EJECT JMP ERROR ERROR RETURN JMP RETRN * LUDEV LDA C.FLU,I SET UP CONTROL WORD AND B77 MASK EXTRANEOUS BITS IOR B1100 MASK IN LINE CONTROL FUNCTIONS STA LU STB CTR SET CONTROL FUNCTION JSB EXEC PERFORM DEF *+4 DEF .3 CONTROL FUNCTION DEF LU DEF CTR RETRN ISZ SPC.C GOOD RETURN ERROR JMP SPC.C,I RETURN * * CONSTANTS AND VARIABLES * .1 DEC 1 .3 DEC 3 B77 OCT 77 B1100 OCT 1100 CTR NOP LINE COUNTER LU NOP LOGICAL UNIT LBUF DEF *+1 ASC 1, BLANKS PBUF DEF .1 END