ASMB,R,L,C HED FCONT * NAME: FCONT * SOURCE: 92064-18072 * RELOC: 92064-16061 * PGMR: G.A.A. * MOD: G.L.M * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1977. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * *************************************************************** * * NAM FCONT,7 92064-16061 REV.1650 760806 * ENT FCONT EXT .ENTR,EXEC * * THIS IS THE TYPE ZERO CONTROL ROUTINE OF * THE RTE FILE MANAGEMENT PACKAGE. * * A STANDAD RTE CONTROL REQUEST IS ISSUED * TO THE DEVICE VIA THE EXEC IF THE * PCB IS OPEN TO A TYPE ZERO FILE. * CALLING SEQUENCE * CALL FCONT(IDCB,IERR,ICON1,ICON2) * WHERE: * IDCB IS THE DATA CONTROL BLOCK FOR * THE FILE. * IERR IS THE LOCATION FOR RETURNED * ERRORS. * POSSIBLE ERRORS ARE: * 0 NO ERRORS * -11 DCB NOT OPEN * -12 EOF SENSED * >0 NOT A TYPE ZERO FILE (IERR=TYPE) * ICON1 IS CONTROL WORD #1 - THE DEVICE * LU IS MURGED INTO THE LOW * 6 BITS OF THIS WORD * ICON2 IS CONTROL WORD TWO - OPTIONAL * ZERO IS USED IF NOT SPECIFIED * ON RETURN A = IERR SPC 3 * PRE CONSTANT AREA .3 OCT 3 SPC 3 FCONT NOP LDB DZERO RESET ONLY OPTIONAL STB ICON2 PARAMETER ?????????? STB ICON1 STB IERR STB IDCB CLB STB ZERO MUST CLEAR AS ICON2 IS DEFAULTED TO HERE LDA FCONT STA DCONT JMP DCONT+1 * IDCB DEF ZERO PARAMETER IERR DEF ZERO ADDRESS ICON1 DEF ZERO AREA ICON2 DEF ZERO * * CODES OF 12,13 OR 14 WILL ZAP RECORD COUNTER * SPC 1 DCONT NOP ENTRY POINT JSB .ENTR FETCH PARAMETERS DEF IDCB LDB IDCB GET DCB ADB .3 ADDRESS STB LU OF LU WORD INB AND STB EOFCD OF EOF CODE ADB .4 AND STB FILE# FILE# INB AND LDA B,I OPEN FLAG CPA XEQT OPEN? JMP OK YES, CONTINUE LDA N11 NO; SEND NOT OPEN ERROR EXIT STA IERR,I TO CALLER JMP DCONT,I RETURN SPC 2 * MID CONSTANT AREA SPC 1 N11 DEC -11 DZERO DEF ZERO ZERO NOP B77 OCT 77 SPC 1 * * THIS PREVENTS REQUESTS (10 AND 11) DIRECTED * AT CTU'S FROM WRITING EOF'S * * 10 AND 11 ARE SPACING REQUESTS FOR LINE PRINTER * OK ADB .5 STB RC ADDRESS OF RECORD COUNT * LDA ICON1,I FETCH FUNCTION CODE AND B7700 ISOLATE FUNCTION CODE ADA EOFMT CHECK FOR 10 SZA ADA N1 NOPE--HOW ABOUT 11? SZA JMP OK2 NOPE--GO CHECK IF REWIND AND FILE. * * MUST NOT BE MAG TAPE TYPE DEVICE * LDA EOFCD FETCH EOF CODE AND B3700 ISOLATE CODE ADA N100K IF MAG TAPE(CTU) SZA,RSS JMP EXIT GET OUT * OK2 LDA IDCB,I IF NOT DEVICE SSA,RSS JMP FILE GO TRAP REWIND REQUESTS * * * GOT A MT TYPE DEVICE SPC 3 OK3 LDA LU,I GET LU AND B77 AND ISOLATE THEN STA B SAVE LDA ICON1,I GET THE FUNCTION AND B1777 MAKE SURE THE LOW END IS ZERO IOR B PUT THEM TOGETHER STA ICON1 SET FOR CALL JSB EXEC CALL EXEC TO DEF EXRTN DO DEF .3 THE DEF ICON1 CONTROL DEF ICON2,I FUNCTION EXRTN CLA JMP EXIT GO; EXIT SPC 3 FILE LDA ICON1,I FETCH FUNCTION CODE AND B7700 ISOLATE FUNCTION CODE ADA N400K CHECK FOR REWIND SZA ADA N1 BOTH 4 AND 5 SZA JMP OK3 NOPE --GO DO IT * CLA,INA STA RC,I SET RECORD COUNT TO 1 LDA FILE# ADDRESS OF FILE# STA ICON2 FOR LOCATE CALL LDA ALOCA ADDRESS OF LOCATE FUNCTION STA ICON1 SET FOR LOCATE CALL JMP OK3 GO DO IT * * POST CONSTANT AREA SPC 1 FILE# NOP B2700 OCT 2700 ALOCA DEF B2700 N400K OCT -400 N1 OCT -1 B7700 OCT 7700 EOFMT OCT -1000 .4 OCT 4 .5 OCT 5 N100K OCT -100 LU NOP RC NOP EOFCD NOP B1777 OCT 177700 B3700 OCT 3700 B200 OCT 200 BS1R EQU B200 BACK SPACE 1 RECORD FS1R OCT 300 N12 DEC -12 FS1RA DEF FS1R SPC 2 A EQU 0 B EQU 1 XEQT EQU 1717B SPC 1 END EQU * SPC 1 END