

; Bliss-32 7.352	Saturday 21-AUG-1978 23:44:46	DBB3:[MTAACP.SRC]REWSPC.B32;7					Page 1

; Digital Equipment Corporation

;

;	0001	MODULE REWSPC (

;	0002			LANGUAGE (BLISS32),

;	0003			IDENT = 'A0002'

;	0004			) =

;	0005	BEGIN

;	0006	

;	0007	!

;	0008	! COPYRIGHT (C) 1977

;	0009	! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

;	0010	!

;	0011	! THIS SOFTWARE IS FURNISHED  UNDER A LICENSE FOR USE ONLY ON A SINGLE

;	0012	! COMPUTER  SYSTEM AND  MAY BE  COPIED ONLY WITH  THE INCLUSION OF THE

;	0013	! ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE, OR ANY OTHER COPIES THEREOF,

;	0014	! MAY NOT BE PROVIDED OR  OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON

;	0015	! EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO THESE LICENSE

;	0016	! TERMS.  TITLE TO AND  OWNERSHIP OF THE  SOFTWARE  SHALL AT ALL TIMES

;	0017	! REMAIN IN DEC.

;	0018	!

;	0019	! THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE

;	0020	! AND SHOULD  NOT BE CONSTRUED  AS A COMMITMENT  BY DIGITAL  EQUIPMENT

;	0021	! CORPORATION.

;	0022	!

;	0023	! DEC ASSUMES  NO  RESPONSIBILITY  FOR  THE USE OR  RELIABILITY OF ITS

;	0024	! SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.

;	0025	

;	0026	!++

;	0027	!

;	0028	! FACILITY:  MTAACP

;	0029	!

;	0030	! ABSTRACT:

;	0031	!

;	0032	!	THIS MODULE REWINDS A FILE AND SPACES WITHIN A FILE

;	0033	!

;	0034	! ENVIRONMENT:

;	0035	!

;	0036	!	STARLET OPERATING SYSTEM, INCLUDING PRIVILEGED SYSTEM SERVICES

;	0037	!	AND INTERNAL EXEC ROUTINES.

;	0038	!

;	0039	!--

;	0040	!

;	0041	!

;	0042	! AUTHOR:  D. H. GILLESPIE,	 CREATION DATE:  6-AUG-1977

;	0043	!

;	0044	! REVISION HISTORY:

;	0045	!

;	0046	!   D. H. Gillespie, 12-May-78  16:39

;	0047	!   A0001 - change CURRENT_VCB to a register

;	0048	!

;	0049	!   D. H. Gillespie, 25-May-78  11:28

;	0050	!   A0002 - change interface to MOUNT_VOL

;	0051	!

;	0052	!**

;	0053	

;	0054	LIBRARY 'SYS$LIBRARY:LIB.L32';

;	0055	REQUIRE 'SRC$:MTADEF.B32';



; Bliss-32 7.352	Saturday 21-AUG-1978 23:44:46	DBB3:[MTAACP.SRC]REWSPC.B32;7					Page 1-1

; Digital Equipment Corporation

;

;	0351	

;	0352	FORWARD ROUTINE

;	0353		REWIND_FILE	 	: COMMON_CALL NOVALUE,	!MAIN CONTROL FOR REWIND FILE

;	0354		SPACE_IN_FILE		: COMMON_CALL NOVALUE,	!SPACE WITHIN A FILE

;	0355		SETUP_AT_END		: COMMON_CALL NOVALUE,	!SETUP AT END OF FILE AFTER CHECKING POSITION

;	0356		SETUP_END		: COMMON_CALL NOVALUE,	!SETUP AT END

;	0357		UPD_ST_RECORD		: COMMON_CALL NOVALUE;	!UPDATE START RECORD IN CURRENT FILE SECTION

;	0358	

;	0359	EXTERNAL ROUTINE

;	0360		CLOSE_FILE	: L$CLOSE_FILE,			!CLOSE FILE

;	0361		FORMAT_FID,					!FORMAT FILE ID IN CURRENT VCB

;	0362		GTNEXT_VOL_READ	: NOVALUE JSB,			!GET NEXT VOLUME ON READ

;	0363		MOUNT_VOL,					!MOUNT RELATIVE VOLUME

;	0364		POSITION_BY_FID,				!POSITION BY FID

;	0365		READ_BLOCK,					!READ DATA BLOCK

;	0366		RESTORE_ACCESS,					!RESTORE ORIGINAL ACCESS TO FILE

;	0367		SPACE,						!SPACE BLOCKS

;	0368		SPACE_TM,					!SPACE TAPE MARKS

;	0369		SYS$QIOW	: ADDRESSING_MODE(ABSOLUTE);

;	0370	

;	0371	EXTERNAL

;	0372		CURRENT_UCB		: REF BBLOCK,		!ADDRESS OF CURRENT UCB

;	0373		CURRENT_WCB		: REF BBLOCK,		!ADDRESS OF CURRENT WINDOW CONTROL BLOCK

;	0374		HDR1			: REF BBLOCK,		!ADDRESS OF HDR1 (EOF1) LABEL

;	0375		HDR2			: REF BBLOCK,		!ADDRESS OF HDR2(EOF2) LABEL

;	0376		LOCAL_FIB		: BBLOCK,		!COPY OF USER'S FIB

;	0377		IO_CHANNEL,

;	0378		IO_STATUS		: VECTOR[2],		!IO STATUS

;	0379		USER_STATUS		: VECTOR [2];		!STATUS RETURNED TO USER

;	0380	

;	0381	EXTERNAL LITERAL

;	0382		UCB$L_MT_RECORD;				!GLOBAL DISPLACEMENT INTO UCB



; Bliss-32 7.352	Saturday 21-AUG-1978 23:44:46	DBB3:[MTAACP.SRC]REWSPC.B32;7					Page 2

; Digital Equipment Corporation

;

;	0383	GLOBAL ROUTINE REWIND_FILE : COMMON_CALL NOVALUE  =

;	0384	

;	0385	!++

;	0386	!

;	0387	! FUNCTIONAL DESCRIPTION:

;	0388	!	THIS ROUTINE REWINDS TO THE BEGINNING OF THE CURRENT FILE. IF

;	0389	!	THE BEGINNING IS ON ANOTHER VOLUME, THAT VOLUME IS MOUNTED AND 

;	0390	!	POSITIONED TO THE BEGINNING OF THE FILES DATA AREA.  ONCE AT THE

;	0391	!	BEGINNING THE ACCESS TO THE FILE IS RESET TO THE ORIGINAL

;	0392	!	REQUESTED ACCESS.

;	0393	!

;	0394	! CALLING SEQUENCE:

;	0395	!	REWIND_FILE()

;	0396	!

;	0397	! INPUT PARAMETERS:

;	0398	!	NONE

;	0399	!

;	0400	! IMPLICIT INPUTS:

;	0401	!	CURRENT_VCB - ADDRESS OF CURRENT VOLUME CONTROL BLOCK

;	0402	!	CURRENT_WCB - ADDRESS OF CURRENT WINDOW CONTROL BLOCK

;	0403	!

;	0404	! OUTPUT PARAMETERS:

;	0405	!	NONE

;	0406	!

;	0407	! IMPLICIT OUTPUTS:

;	0408	!	NONE

;	0409	!

;	0410	! ROUTINE VALUE:

;	0411	!	NONE

;	0412	!

;	0413	! SIDE EFFECTS:

;	0414	!	FILE POSITIONED TO BEGINNING

;	0415	!	ORIGINAL ACCESS RESTORE

;	0416	!

;	0417	! USER ERRORS:

;	0418	!	SS$_FILNOTACC - FILE NOT ACCESSED

;	0419	!--

;	0420	

;	0421	BEGIN

;	0422	

;	0423	

;	0424	EXTERNAL REGISTER

;	0425		COMMON_REG;

;	0426	

;	0427	LOCAL

;	0428		FID,				!FILE IDENTIFICATION

;	0429		SEQ,				!FILE SECTION SEQUENCE NUMBER

;	0430		TM,				!TAPE MARKS

;	0431		VOL;				!RELATIVE VOLUME NUMBER

;	0432	

;	0433	! IF FILE IS NOT ACCESSED GIVE ERROR

;	0434	IF .CURRENT_WCB EQL 0 THEN ERR_EXIT(SS$_FILNOTACC);

;	0435	

;	0436	! IF WRITING, THEN CLOSE OUT FILE

;	0437	IF NOT .CURRENT_WCB[WCB$V_READ]



; Bliss-32 7.352	Saturday 21-AUG-1978 23:44:46	DBB3:[MTAACP.SRC]REWSPC.B32;7					Page 2-1

; Digital Equipment Corporation

;

;	0438	THEN CLOSE_FILE();

;	0439	

;	0440	! CALCULATE WHICH RELATIVE VOLUME THE BEGINNING IS ON

;	0441	SEQ = .CURRENT_VCB[VCB$W_CUR_SEQ];	!FILE SECTION NUMBER

;	0442	IF .SEQ EQL 1 THEN

;	0443	    BEGIN				!CURRENTLY IN FIRST FILE SECTION

;	0444	    IF .CURRENT_VCB[VCB$V_LOGICEOVS] THEN SPACE_TM(-4)	!WRITE CASE

;	0445	    ELSE

;	0446		BEGIN				!READ CASE

;	0447		TM = .CURRENT_VCB[VCB$B_TM];	!NUMBER OF TAPE MARKS INTO CURRENT FILE SECTION

;	0448		IF .TM EQL 0 AND .HDR1[HD1$L_HD1LID] NEQ 'HDR1' THEN TM = 3;

;	0449		IF .TM GEQ 1 THEN SPACE_TM(-.TM);	!BACKSPACE TO TAPE MARK PRECEDING START OF DATA

;	0450		END;

;	0451	    SPACE_TM(1);			!PASS OVER TM

;	0452	    HDR1[HD1$L_HD1LID] = 'HDR1';

;	0453	    IF HDR2[HD2$L_HD2LID] NEQ 0 THEN HDR2[HD2$L_HD2LID] = 'HDR2';

;	0454	    END

;	0455	

;	0456	ELSE

;	0457	    BEGIN

;	0458	    FID = .CURRENT_VCB[VCB$L_CUR_FID];	!CURRENT FILE NUMBER AND SECTION

;	0459	    FID<16,16> = 1;			!WANT SECTION ONE

;	0460	    VOL = .CURRENT_VCB[VCB$B_CUR_RVN];	!CURRENT VOLUME

;	0461	    VOL = .VOL - .SEQ + 1;		!CALCULATE VOLUME WANTED

;	0462	    POSITION_BY_FID(.FID,.VOL);		!POSITION TO FILE SECTION

;	0463	    IF .CURRENT_VCB[VCB$B_TM] EQL 0 THEN SPACE_TM(1);

;	0464	    END;

;	0465	KERNEL_CALL(RESTORE_ACCESS);		!RESTORE ORIGINAL ACCESS TO THE FILE

;	0466	END;					!END OF ROUTINE





							    .TITLE  REWSPC

							    .IDENT  \A0002\



							    .GLOBL  CLOSE_FILE, FORMAT_FID, GTNEXT_VOL_READ, MOUNT_VOL

							    .GLOBL  POSITION_BY_FID, READ_BLOCK, RESTORE_ACCESS, SPACE

							    .GLOBL  SPACE_TM, SYS$QIOW, CURRENT_UCB, CURRENT_WCB, HDR1

							    .GLOBL  HDR2, LOCAL_FIB, IO_CHANNEL, IO_STATUS, USER_STATUS

							    .GLOBL  UCB$L_MT_RECORD, SYS$CMKRNL



							    .PSECT  $CODE$,NOWRT,2



					 0404 00000 	    .ENTRY  REWIND_FILE, Save R2,R10				      ; 0383

		         5A	0000G  CF  9E 00002 	    MOVAB   SPACE_TM, R10					      ;

				0000G  CF  D5 00007 	    TSTL    CURRENT_WCB						      ; 0434

				       04  12 0000B 	    BNEQ    1$							      ;

				00AC   8F  BF 0000D 	    CHMU    #172						      ;

		         50	0000G  CF  D0 00011 1$:     MOVL    CURRENT_WCB, R0					      ; 0437

		         03	  0B   A0  E8 00016 	    BLBS    11(R0), 2$						      ;

				     0000  30 0001A 	    BSBW    CLOSE_FILE						      ; 0438

		         52	  26   AB  3C 0001D 2$:     MOVZWL  38(CURRENT_VCB), SEQ				      ; 0441

		         01	       52  D1 00021 	    CMPL    SEQ, #1						      ; 0442

				       47  12 00024 	    BNEQ    7$							      ;

	   05	    0B   AB	       01  E1 00026 	    BBC     #1, 11(CURRENT_VCB), 3$				      ; 0444

		         7E	       04  CE 0002B 	    MNEGL   #4, -(SP)						      ;



; Bliss-32 7.352	Saturday 21-AUG-1978 23:44:46	DBB3:[MTAACP.SRC]REWSPC.B32;7					Page 2-2

; Digital Equipment Corporation

;

				       1C  11 0002E 	    BRB     5$							      ;

		         50	  2E   AB  9A 00030 3$:     MOVZBL  46(CURRENT_VCB), TM					      ; 0447

				       0E  12 00034 	    BNEQ    4$							      ; 0448

	      31524448   8F	0000G  DF  D1 00036 	    CMPL    @HDR1, #827475016					      ;

				       03  13 0003F 	    BEQL    4$							      ;

		         50	       03  D0 00041 	    MOVL    #3, TM						      ;

		         01	       50  D1 00044 4$:     CMPL    TM, #1						      ; 0449

				       06  19 00047 	    BLSS    6$							      ;

		         7E	       50  CE 00049 	    MNEGL   TM, -(SP)						      ;

		         6A	       01  FB 0004C 5$:     CALLS   #1, SPACE_TM					      ;

				       01  DD 0004F 6$:     PUSHL   #1							      ; 0451

		         6A	       01  FB 00051 	    CALLS   #1, SPACE_TM					      ;

		  0000G  DF 31524448   8F  D0 00054 	    MOVL    #827475016, @HDR1					      ; 0452

		         50	0000G  CF  D0 0005D 	    MOVL    HDR2, R0						      ; 0453

				       2F  13 00062 	    BEQL    8$							      ;

		         60 32524448   8F  D0 00064 	    MOVL    #844252232, (R0)					      ;

				       26  11 0006B 	    BRB     8$							      ; 0442

		         50	  24   AB  D0 0006D 7$:     MOVL    36(CURRENT_VCB), FID				      ; 0458

	   10	         10	       01  F0 00071 	    INSV    #1, #16, #16, FID					      ; 0459

				       50     00075									      ;

		         51	  2F   AB  9A 00076 	    MOVZBL  47(CURRENT_VCB), VOL				      ; 0460

	   52	         51	       52  C3 0007A 	    SUBL3   SEQ, VOL, R2					      ; 0461

	   51	         52	       01  C1 0007E 	    ADDL3   #1, R2, VOL						      ;

				       03  BB 00082 	    PUSHR   #^M<R0,R1>						      ; 0462

		  0000G  CF	       02  FB 00084 	    CALLS   #2, POSITION_BY_FID					      ;

				  2E   AB  95 00089 	    TSTB    46(CURRENT_VCB)					      ; 0463

				       05  12 0008C 	    BNEQ    8$							      ;

				       01  DD 0008E 	    PUSHL   #1							      ;

		         6A	       01  FB 00090 	    CALLS   #1, SPACE_TM					      ;

				       7E  D4 00093 8$:     CLRL    -(SP)						      ; 0465

				       5E  DD 00095 	    PUSHL   SP							      ;

				0000G  CF  9F 00097 	    PUSHAB  RESTORE_ACCESS					      ;

	      00000000G  9F	       03  FB 0009B 	    CALLS   #3, @#SYS$CMKRNL					      ;

					   04 000A2 	    RET     							      ; 0383



; Routine Size:  163 bytes







; Bliss-32 7.352	Saturday 21-AUG-1978 23:44:46	DBB3:[MTAACP.SRC]REWSPC.B32;7					Page 3

; Digital Equipment Corporation

;

;	0467	ROUTINE SETUP_END(TM) : COMMON_CALL NOVALUE  =

;	0468	

;	0469	!++

;	0470	!

;	0471	! FUNCTIONAL DESCRIPTION:

;	0472	!	Setup at end of file

;	0473	!

;	0474	! CALLING SEQUENCE:

;	0475	!	SETUP_END(ARG1)

;	0476	!

;	0477	! INPUT PARAMETERS:

;	0478	!	ARG1 - NUMBER OF TAPE MARKS TO BE SPACED AND DIRECTION

;	0479	!

;	0480	! IMPLICIT INPUTS:

;	0481	!	CURRENT_UCB - ADDRESS OF CURRENT UNIT CONTROL BLOCK

;	0482	!	HDR1 - ADDRESS OF 'HDR1' AND 'EOF1' LABEL

;	0483	!

;	0484	! OUTPUT PARAMETERS:

;	0485	!	NONE

;	0486	!

;	0487	! IMPLICIT OUTPUTS:

;	0488	!	CURRENT_VCB[VCB$L_ST_RECORD] 

;	0489	!

;	0490	! ROUTINE VALUE:

;	0491	!	NONE

;	0492	!

;	0493	! SIDE EFFECTS:

;	0494	!	NONE

;	0495	!

;	0496	!--

;	0497	

;	0498	BEGIN

;	0499	

;	0500	EXTERNAL REGISTER

;	0501		COMMON_REG;

;	0502	

;	0503	EXTERNAL ROUTINE

;	0504		LIB$CVT_DTB	: ADDRESSING_MODE(ABSOLUTE);

;	0505	

;	0506	LOCAL

;	0507		BLOCK;

;	0508	

;	0509	SPACE_TM(.TM);			!SPACE TO END OF FILE, RIGHT BEFORE END DATE TM

;	0510	

;	0511	! SETUP AS IF TRAILERS HAD NOT BEEN READ

;	0512	HDR1[HD1$L_HD1LID] = 'HDR1';

;	0513	IF HDR2[HD2$L_HD2LID] NEQ 0 THEN HDR2[HD2$L_HD2LID] = 'HDR2';

;	0514	IF NOT LIB$CVT_DTB(EO1$S_BLOCKCNT,HDR1[EO1$T_BLOCKCNT],BLOCK) 

;	0515	THEN ERR_EXIT(SS$_BLOCKCNTERR);

;	0516	BLOCK = .(.CURRENT_UCB + UCB$L_MT_RECORD)<0,32> - .BLOCK;

;	0517	KERNEL_CALL(UPD_ST_RECORD,.BLOCK);

;	0518	END;				!END OF ROUTINE









; Bliss-32 7.352	Saturday 21-AUG-1978 23:44:46	DBB3:[MTAACP.SRC]REWSPC.B32;7					Page 3-1

; Digital Equipment Corporation

;

							    .GLOBL  LIB$CVT_DTB



					 0000 000A3 SETUP_END:

							    .WORD   Save nothing					      ; 0467

		         5E	       04  C2 000A5 	    SUBL2   #4, SP						      ;

				  04   AC  DD 000A8 	    PUSHL   TM							      ; 0509

		  0000G  CF	       01  FB 000AB 	    CALLS   #1, SPACE_TM					      ;

		  0000G  DF 31524448   8F  D0 000B0 	    MOVL    #827475016, @HDR1					      ; 0512

		         50	0000G  CF  D0 000B9 	    MOVL    HDR2, R0						      ; 0513

				       07  13 000BE 	    BEQL    1$							      ;

		         60 32524448   8F  D0 000C0 	    MOVL    #844252232, (R0)					      ;

				       5E  DD 000C7 1$:     PUSHL   SP							      ; 0514

	   7E	  0000G  CF	       36  C1 000C9 	    ADDL3   #54, HDR1, -(SP)					      ;

				       06  DD 000CF 	    PUSHL   #6							      ;

	      00000000G  9F	       03  FB 000D1 	    CALLS   #3, @#LIB$CVT_DTB					      ;

		         04	       50  E8 000D8 	    BLBS    R0, 2$						      ;

				0940   8F  BF 000DB 	    CHMU    #2368						      ; 0515

	   50	  0000G  CF 00000000G  8F  C1 000DF 2$:     ADDL3   #UCB$L_MT_RECORD, CURRENT_UCB, R0			      ; 0516

	   6E	         60	       6E  C3 000E9 	    SUBL3   BLOCK, (R0), BLOCK					      ;

				       6E  DD 000ED 	    PUSHL   BLOCK						      ; 0517

				       01  DD 000EF 	    PUSHL   #1							      ;

				       5E  DD 000F1 	    PUSHL   SP							      ;

				0000V  CF  9F 000F3 	    PUSHAB  UPD_ST_RECORD					      ;

	      00000000G  9F	       04  FB 000F7 	    CALLS   #4, @#SYS$CMKRNL					      ;

					   04 000FE 	    RET     							      ; 0467



; Routine Size:  92 bytes





;	0519	



; Bliss-32 7.352	Saturday 21-AUG-1978 23:44:46	DBB3:[MTAACP.SRC]REWSPC.B32;7					Page 4

; Digital Equipment Corporation

;

;	0520	ROUTINE UPD_ST_RECORD(BLOCK) : COMMON_CALL NOVALUE  =

;	0521	

;	0522	!++

;	0523	!

;	0524	! FUNCTIONAL DESCRIPTION:

;	0525	!	THIS ROUTINE UPDATES THE START RECORD COUNT IN THE VOLUME CONTROL BLOCK

;	0526	!	AND SETS THE TM COUNT TO 1 BECAUSE NOW POSITIONED BEFORE END DATA TM

;	0527	!

;	0528	! CALLING SEQUENCE:

;	0529	!	UPD_ST_RECORD(ARG1)

;	0530	!	CALLED IN KERNEL MODE

;	0531	!

;	0532	! INPUT PARAMETERS:

;	0533	!	ARG1 - NEW VALUE OF START RECORD COUNT

;	0534	!

;	0535	! IMPLICIT INPUTS:

;	0536	!	CURRENT_VCB

;	0537	!

;	0538	! OUTPUT PARAMETERS:

;	0539	!	NONE

;	0540	!

;	0541	! IMPLICIT OUTPUTS:

;	0542	!	CURRENT_VCB[VCB$L_ST_RECORD] = BLOCK

;	0543	!

;	0544	! ROUTINE VALUE:

;	0545	!	NONE

;	0546	!

;	0547	! SIDE EFFECTS:

;	0548	!	NONE

;	0549	!

;	0550	!--

;	0551	

;	0552	BEGIN

;	0553	

;	0554	EXTERNAL REGISTER

;	0555		COMMON_REG;

;	0556	

;	0557	

;	0558	CURRENT_VCB[VCB$B_TM] = 1;

;	0559	CURRENT_VCB[VCB$L_ST_RECORD] = .BLOCK;

;	0560	END;			!END OF ROUTINE











					 0000 000FF UPD_ST_RECORD:

							    .WORD   Save nothing					      ; 0520

		    2E   AB	       01  90 00101 	    MOVB    #1, 46(CURRENT_VCB)					      ; 0558

		    30   AB	  04   AC  D0 00105 	    MOVL    BLOCK, 48(CURRENT_VCB)				      ; 0559

					   04 0010A 	    RET     							      ; 0520



; Routine Size:  12 bytes







; Bliss-32 7.352	Saturday 21-AUG-1978 23:44:46	DBB3:[MTAACP.SRC]REWSPC.B32;7					Page 4-1

; Digital Equipment Corporation

;

;	0561	



; Bliss-32 7.352	Saturday 21-AUG-1978 23:44:46	DBB3:[MTAACP.SRC]REWSPC.B32;7					Page 5

; Digital Equipment Corporation

;

;	0562	GLOBAL ROUTINE SPACE_IN_FILE : COMMON_CALL NOVALUE  =

;	0563	

;	0564	!++

;	0565	!

;	0566	! FUNCTIONAL DESCRIPTION:

;	0567	!	THIS ROUTINE SPACES FORWARDS AND BACKWARDS WITHIN A FILE

;	0568	!

;	0569	! CALLING SEQUENCE:

;	0570	!	SPACE_IN_FILE()

;	0571	!

;	0572	! INPUT PARAMETERS:

;	0573	!	NONE

;	0574	!

;	0575	! IMPLICIT INPUTS:

;	0576	!	CURRENT_VCB - ADDRESS OF CURRENT VOLUME CONTROL BLOCK

;	0577	!	LOCAL_FIB - COPY OF USER'S FILE INFORMATION BLOCK

;	0578	!

;	0579	! OUTPUT PARAMETERS:

;	0580	!	NONE

;	0581	!

;	0582	! IMPLICIT OUTPUTS:

;	0583	!	NONE

;	0584	!

;	0585	! ROUTINE VALUE:

;	0586	!	NONE

;	0587	!

;	0588	! SIDE EFFECTS:

;	0589	!	NONE

;	0590	!

;	0591	! USER ERRORS:

;	0592	!	SS$_BEGOFFILE - BEGINNING OF FILE

;	0593	!	SS$_ENDOFFILE - END OF FILE

;	0594	!	SS$_FILNOTACC - FILE NOT ACCESSED

;	0595	!	SS$_BADPARAM - CAN NOT SPACE FORWARD IF WRITING

;	0596	!	SS$_TAPEPOSLOST - TAPE POSITION LOST

;	0597	!--

;	0598	

;	0599	BEGIN

;	0600	

;	0601	EXTERNAL REGISTER

;	0602		COMMON_REG;

;	0603	

;	0604	

;	0605	STACKLOCAL

;	0606		BLOCKS;					!NUMBER OF BLOCKS TO SPACE

;	0607	

;	0608	LOCAL

;	0609		TM;					!NUMBER OF TAPE MARKS INTO FILE SECTION

;	0610	

;	0611	! FILE MUST BE ACCESSED

;	0612	IF .CURRENT_WCB EQL 0 THEN ERR_EXIT(SS$_FILNOTACC);

;	0613	

;	0614	BLOCKS = .LOCAL_FIB[FIB$L_CNTRLVAL];

;	0615	IF .BLOCKS GTR 0 THEN				!SIGN DETERMINES DIRECTION TO SPACE

;	0616	    BEGIN					!BEGINNING OF FORWARD SPACE



; Bliss-32 7.352	Saturday 21-AUG-1978 23:44:46	DBB3:[MTAACP.SRC]REWSPC.B32;7					Page 5-1

; Digital Equipment Corporation

;

;	0617	    IF .BLOCKS<16,16> NEQ 0 THEN ERR_EXIT(SS$_BADPARAM);

;	0618	

;	0619	! CAN NOT SPACE FORWARD IF WRITING

;	0620	    IF NOT .CURRENT_WCB[WCB$V_READ] THEN ERR_EXIT(SS$_BADPARAM);

;	0621	

;	0622	! POSITION TO DATA IN CURRENT FILE SECTION

;	0623	    IF .CURRENT_VCB[VCB$B_TM] EQL 0 AND .HDR1[HD1$L_HD1LID] EQL 'HDR1' THEN SPACE_TM(1);

;	0624	    IF .CURRENT_VCB[VCB$B_TM] NEQ 1 THEN

;	0625		BEGIN

;	0626		IF .CURRENT_VCB[VCB$B_TM] EQL 2 THEN TM = -1

;	0627		ELSE (

;	0628		    IF .CURRENT_VCB[VCB$V_LOGICEOVS] THEN TM = -3

;	0629		    ELSE TM = -2

;	0630		    );

;	0631		SPACE_TM(.TM);

;	0632		END;

;	0633	

;	0634	    WHILE 1 DO

;	0635		BEGIN					!FORWARD SPACE LOOP

;	0636		IF SPACE(.BLOCKS) THEN EXITLOOP;

;	0637		USER_STATUS<16,16> = .USER_STATUS<16,16> + .IO_STATUS<16,16> -1;

;	0638		BLOCKS = .BLOCKS - .IO_STATUS<16,16> + 1;	!TM COUNTS

;	0639		IF NOT READ_BLOCK(.HDR1,80) THEN ERR_EXIT(SS$_TAPEPOSLOST);

;	0640		IF .HDR1[HD1$L_HD1LID] EQL 'EOF1' THEN

;	0641		    BEGIN

;	0642		    SETUP_END(-1);

;	0643		    KERNEL_CALL(RESTORE_ACCESS);

;	0644		    ERR_EXIT(SS$_ENDOFFILE);

;	0645		    END;

;	0646		IF .HDR1[HD1$L_HD1LID] NEQ 'EOV1' THEN ERR_EXIT(SS$_TAPEPOSLOST);

;	0647		GTNEXT_VOL_READ();			!GET NEXT VOLUME IN VOLUME SET

;	0648		IF .CURRENT_VCB[VCB$B_TM] EQL 0 THEN SPACE_TM(1);

;	0649		END;

;	0650	    END						!END OF FORWARD SPACE LOOP

;	0651	ELSE

;	0652	    BEGIN					!BEGIN OF BACKSPACE

;	0653	

;	0654	    IF .BLOCKS NEQ 0 THEN BLOCKS = -(.BLOCKS);

;	0655	    IF .BLOCKS<15,17> NEQ 0 THEN ERR_EXIT(SS$_BADPARAM);

;	0656	

;	0657	! POSITION TO DATA IF NOT THERE

;	0658	    IF NOT .CURRENT_WCB[WCB$V_READ] THEN CLOSE_FILE();

;	0659	    IF .CURRENT_VCB[VCB$V_LOGICEOVS] THEN SETUP_END(-3)

;	0660	    ELSE

;	0661		BEGIN					!READ CASE

;	0662		TM = .CURRENT_VCB[VCB$B_TM];

;	0663		IF .TM EQL 0 AND .HDR1[HD1$L_HD1LID] EQL 'HDR1' THEN

;	0664		    BEGIN

;	0665		    SPACE_TM(1);

;	0666		    KERNEL_CALL(RESTORE_ACCESS);

;	0667		    ERR_EXIT(SS$_BEGOFFILE);

;	0668		    END;

;	0669		IF .TM EQL 0 THEN TM = 3;

;	0670		IF .TM GEQ 2 THEN SETUP_END(-(.TM-1));

;	0671		END;



; Bliss-32 7.352	Saturday 21-AUG-1978 23:44:46	DBB3:[MTAACP.SRC]REWSPC.B32;7					Page 5-2

; Digital Equipment Corporation

;

;	0672	    WHILE 1 DO

;	0673	        BEGIN					!BEGINNING OF BACKSPACE LOOP

;	0674		LOCAL

;	0675			FID,

;	0676			SEQ,

;	0677			VOL;

;	0678	        IF SPACE(-(.BLOCKS)) THEN EXITLOOP;

;	0679		USER_STATUS<16,16> = .USER_STATUS<16,16> + .IO_STATUS<16,16> - 1;

;	0680	        BLOCKS = .BLOCKS - .IO_STATUS<16,16> + 1;	!CALC NUMBER REMAINING TO SPACE

;	0681	        FID = .CURRENT_VCB[VCB$L_CUR_FID];

;	0682	        SEQ = .CURRENT_VCB[VCB$W_CUR_SEQ];

;	0683	        IF .SEQ EQL 1 THEN			!IS TAPE POSITIONED AT BEGINNING OF FILE

;	0684		    BEGIN

;	0685		    SPACE_TM(1);			!SPACE TO BEGINNING OF DATA TO AVOID BLOCKING VIRTUAL IO

;	0686		    KERNEL_CALL(RESTORE_ACCESS);

;	0687		    ERR_EXIT(SS$_BEGOFFILE);

;	0688		    END;

;	0689	        VOL = .CURRENT_VCB[VCB$B_CUR_RVN] - 1;	!PREVIOUS VOLUME NUMBER

;	0690	        MOUNT_VOL(.VOL,$FIELDMASK(MOU$V_LBLCHECK));

;	0691		(LOCAL STATUS;

;	0692		STATUS = SYS$QIOW(EFN,.IO_CHANNEL,IO$_SENSECHAR,IO_STATUS,,, ,,,,,);

;	0693		IF .STATUS AND .IO_STATUS EQL SS$_ENDOFTAPE THEN

;	0694		    BEGIN

;	0695		    SPACE_TM(-3);

;	0696		    SPACE_TM(1);

;	0697		    SETUP_AT_END();

;	0698		    KERNEL_CALL(FORMAT_FID,CURRENT_VCB[VCB$L_CUR_FID]);

;	0699		    END

;	0700		ELSE

;	0701		    BEGIN

;	0702		    FID<16,16> = .SEQ - 1;

;	0703		    POSITION_BY_FID(.FID,.VOL);

;	0704		    TM = 2 - .CURRENT_VCB[VCB$B_TM];

;	0705		    SPACE_TM(.TM);

;	0706		    SETUP_AT_END();

;	0707		    END);

;	0708		END;					!END OF WHILE LOOP

;	0709	    END;					!END OF FORWARD AND BACKWARD SPACE

;	0710	USER_STATUS<16,16> = .USER_STATUS<16,16> + .IO_STATUS<16,16>;

;	0711	KERNEL_CALL(RESTORE_ACCESS);

;	0712	END;					!END OF ROUTINE











					 07FC 0010B 	    .ENTRY  SPACE_IN_FILE, Save R2,R3,R4,R5,R6,R7,R8,R9,R10	      ; 0562

		         56	0000G  CF  9E 0010D 	    MOVAB   RESTORE_ACCESS, R6					      ;

		         57	0000G  CF  9E 00112 	    MOVAB   HDR1, R7						      ;

		         58	0000G  CF  9E 00117 	    MOVAB   IO_STATUS, R8					      ;

		         59	0000G  CF  9E 0011C 	    MOVAB   SPACE_TM, R9					      ;

		         5A 00000000G  9F  9E 00121 	    MOVAB   @#SYS$CMKRNL, R10					      ;

		         5E	       04  C2 00128 	    SUBL2   #4, SP						      ;

				0000G  CF  D5 0012B 	    TSTL    CURRENT_WCB						      ; 0612

				       04  12 0012F 	    BNEQ    1$							      ;



; Bliss-32 7.352	Saturday 21-AUG-1978 23:44:46	DBB3:[MTAACP.SRC]REWSPC.B32;7					Page 5-3

; Digital Equipment Corporation

;

				00AC   8F  BF 00131 	    CHMU    #172						      ;

		         6E	0000G  CF  D0 00135 1$:     MOVL    LOCAL_FIB+24, BLOCKS				      ; 0614

		         50	       6E  D0 0013A 	    MOVL    BLOCKS, R0						      ; 0615

				       03  14 0013D 	    BGTR    2$							      ;

				     00BF  31 0013F 	    BRW     15$							      ;

				  02   AE  B5 00142 2$:     TSTW    BLOCKS						      ; 0617

				       02  13 00145 	    BEQL    3$							      ;

				       14  BF 00147 	    CHMU    #20							      ;

		         50	0000G  CF  D0 00149 3$:     MOVL    CURRENT_WCB, R0					      ; 0620

		         02	  0B   A0  E8 0014E 	    BLBS    11(R0), 4$						      ;

				       14  BF 00152 	    CHMU    #20							      ;

				  2E   AB  95 00154 4$:     TSTB    46(CURRENT_VCB)					      ; 0623

				       0F  12 00157 	    BNEQ    5$							      ;

	      31524448   8F	  00   B7  D1 00159 	    CMPL    @HDR1, #827475016					      ;

				       05  12 00161 	    BNEQ    5$							      ;

				       01  DD 00163 	    PUSHL   #1							      ;

		         69	       01  FB 00165 	    CALLS   #1, SPACE_TM					      ;

		         01	  2E   AB  91 00168 5$:     CMPB    46(CURRENT_VCB), #1					      ; 0624

				       1D  13 0016C 	    BEQL    10$							      ;

		         02	  2E   AB  91 0016E 	    CMPB    46(CURRENT_VCB), #2					      ; 0626

				       05  12 00172 	    BNEQ    6$							      ;

		         52	       01  CE 00174 	    MNEGL   #1, TM						      ;

				       0D  11 00177 	    BRB     8$							      ;

	   05	    0B   AB	       01  E1 00179 6$:     BBC     #1, 11(CURRENT_VCB), 7$				      ; 0628

		         52	       03  CE 0017E 	    MNEGL   #3, TM						      ;

				       03  11 00181 	    BRB     8$							      ; 0627

		         52	       02  CE 00183 7$:     MNEGL   #2, TM						      ; 0629

				       52  DD 00186 8$:     PUSHL   TM							      ; 0631

		         69	       01  FB 00188 9$:     CALLS   #1, SPACE_TM					      ;

				       6E  DD 0018B 10$:    PUSHL   BLOCKS						      ; 0636

		  0000G  CF	       01  FB 0018D 	    CALLS   #1, SPACE						      ;

		         03	       50  E9 00192 	    BLBC    R0, 11$						      ;

				     018F  31 00195 	    BRW     28$							      ;

		         50	0000G  CF  3C 00198 11$:    MOVZWL  USER_STATUS+2, R0					      ; 0637

		         51	  02   A8  3C 0019D 	    MOVZWL  IO_STATUS+2, R1					      ;

		         50	       51  C0 001A1 	    ADDL2   R1, R0						      ;

    0000G  CF	         50	       01  A3 001A4 	    SUBW3   #1, R0, USER_STATUS+2				      ;

		         50	  02   A8  3C 001AA 	    MOVZWL  IO_STATUS+2, R0					      ; 0638

	   50	         6E	       50  C3 001AE 	    SUBL3   R0, BLOCKS, R0					      ;

	   6E	         50	       01  C1 001B2 	    ADDL3   #1, R0, BLOCKS					      ;

		         7E	  50   8F  9A 001B6 	    MOVZBL  #80, -(SP)						      ; 0639

				       67  DD 001BA 	    PUSHL   HDR1						      ;

		  0000G  CF	       02  FB 001BC 	    CALLS   #2, READ_BLOCK					      ;

		         04	       50  E8 001C1 	    BLBS    R0, 12$						      ;

				0224   8F  BF 001C4 	    CHMU    #548						      ;

	      31464F45   8F	  00   B7  D1 001C8 12$:    CMPL    @HDR1, #826691397					      ; 0640

				       15  12 001D0 	    BNEQ    13$							      ;

		         7E	       01  CE 001D2 	    MNEGL   #1, -(SP)						      ; 0642

		  FEC9   CF	       01  FB 001D5 	    CALLS   #1, SETUP_END					      ;

				       7E  D4 001DA 	    CLRL    -(SP)						      ; 0643

				4040   8F  BB 001DC 	    PUSHR   #^M<R6,SP>						      ;

		         6A	       03  FB 001E0 	    CALLS   #3, SYS$CMKRNL					      ;

				0870   8F  BF 001E3 	    CHMU    #2160						      ; 0644

	      31564F45   8F	  00   B7  D1 001E7 13$:    CMPL    @HDR1, #827739973					      ; 0646

				       04  13 001EF 	    BEQL    14$							      ;



; Bliss-32 7.352	Saturday 21-AUG-1978 23:44:46	DBB3:[MTAACP.SRC]REWSPC.B32;7					Page 5-4

; Digital Equipment Corporation

;

				0224   8F  BF 001F1 	    CHMU    #548						      ;

				     0000  30 001F5 14$:    BSBW    GTNEXT_VOL_READ					      ; 0647

				  2E   AB  95 001F8 	    TSTB    46(CURRENT_VCB)					      ; 0648

				       8E  12 001FB 	    BNEQ    10$							      ;

				       01  DD 001FD 	    PUSHL   #1							      ;

				       87  11 001FF 	    BRB     9$							      ;

				       50  D5 00201 15$:    TSTL    R0							      ; 0654

				       03  13 00203 	    BEQL    16$							      ;

		         6E	       50  CE 00205 	    MNEGL   R0, BLOCKS						      ;

      01   AE	         11	       07  ED 00208 16$:    CMPZV   #7, #17, BLOCKS, #0					      ; 0655

				       00     0020D									      ;

				       02  13 0020E 	    BEQL    17$							      ;

				       14  BF 00210 	    CHMU    #20							      ;

		         50	0000G  CF  D0 00212 17$:    MOVL    CURRENT_WCB, R0					      ; 0658

		         03	  0B   A0  E8 00217 	    BLBS    11(R0), 18$						      ;

				     0000  30 0021B 	    BSBW    CLOSE_FILE						      ;

	   05	    0B   AB	       01  E1 0021E 18$:    BBC     #1, 11(CURRENT_VCB), 19$				      ; 0659

		         7E	       03  CE 00223 	    MNEGL   #3, -(SP)						      ;

				       34  11 00226 	    BRB     22$							      ;

		         52	  2E   AB  9A 00228 19$:    MOVZBL  46(CURRENT_VCB), TM					      ; 0662

				       1C  12 0022C 	    BNEQ    20$							      ; 0663

	      31524448   8F	  00   B7  D1 0022E 	    CMPL    @HDR1, #827475016					      ;

				       12  12 00236 	    BNEQ    20$							      ;

				       01  DD 00238 	    PUSHL   #1							      ; 0665

		         69	       01  FB 0023A 	    CALLS   #1, SPACE_TM					      ;

				       7E  D4 0023D 	    CLRL    -(SP)						      ; 0666

				4040   8F  BB 0023F 	    PUSHR   #^M<R6,SP>						      ;

		         6A	       03  FB 00243 	    CALLS   #3, SYS$CMKRNL					      ;

				0938   8F  BF 00246 	    CHMU    #2360						      ; 0667

				       52  D5 0024A 20$:    TSTL    TM							      ; 0669

				       03  12 0024C 	    BNEQ    21$							      ;

		         52	       03  D0 0024E 	    MOVL    #3, TM						      ;

		         02	       52  D1 00251 21$:    CMPL    TM, #2						      ; 0670

				       0B  19 00254 	    BLSS    23$							      ;

				  FF   A2  9F 00256 	    PUSHAB  -1(TM)						      ;

		         6E	       6E  CE 00259 	    MNEGL   (SP), (SP)						      ;

		  FE42   CF	       01  FB 0025C 22$:    CALLS   #1, SETUP_END					      ;

		         7E	       6E  CE 00261 23$:    MNEGL   BLOCKS, -(SP)					      ; 0678

		  0000G  CF	       01  FB 00264 	    CALLS   #1, SPACE						      ;

		         03	       50  E9 00269 	    BLBC    R0, 24$						      ;

				     00B8  31 0026C 	    BRW     28$							      ;

		         50	0000G  CF  3C 0026F 24$:    MOVZWL  USER_STATUS+2, R0					      ; 0679

		         51	  02   A8  3C 00274 	    MOVZWL  IO_STATUS+2, R1					      ;

		         50	       51  C0 00278 	    ADDL2   R1, R0						      ;

    0000G  CF	         50	       01  A3 0027B 	    SUBW3   #1, R0, USER_STATUS+2				      ;

		         50	  02   A8  3C 00281 	    MOVZWL  IO_STATUS+2, R0					      ; 0680

	   50	         6E	       50  C3 00285 	    SUBL3   R0, BLOCKS, R0					      ;

	   6E	         50	       01  C1 00289 	    ADDL3   #1, R0, BLOCKS					      ;

		         55	  24   AB  D0 0028D 	    MOVL    36(CURRENT_VCB), FID				      ; 0681

		         53	  26   AB  3C 00291 	    MOVZWL  38(CURRENT_VCB), SEQ				      ; 0682

		         01	       53  D1 00295 	    CMPL    SEQ, #1						      ; 0683

				       12  12 00298 	    BNEQ    25$							      ;

				       01  DD 0029A 	    PUSHL   #1							      ; 0685

		         69	       01  FB 0029C 	    CALLS   #1, SPACE_TM					      ;

				       7E  D4 0029F 	    CLRL    -(SP)						      ; 0686



; Bliss-32 7.352	Saturday 21-AUG-1978 23:44:46	DBB3:[MTAACP.SRC]REWSPC.B32;7					Page 5-5

; Digital Equipment Corporation

;

				4040   8F  BB 002A1 	    PUSHR   #^M<R6,SP>						      ;

		         6A	       03  FB 002A5 	    CALLS   #3, SYS$CMKRNL					      ;

				0938   8F  BF 002A8 	    CHMU    #2360						      ; 0687

		         54	  2F   AB  9A 002AC 25$:    MOVZBL  47(CURRENT_VCB), VOL				      ; 0689

				       54  D7 002B0 	    DECL    VOL							      ;

				       02  DD 002B2 	    PUSHL   #2							      ; 0690

				       54  DD 002B4 	    PUSHL   VOL							      ;

		  0000G  CF	       02  FB 002B6 	    CALLS   #2, MOUNT_VOL					      ;

				       7E  7C 002BB 	    CLRQ    -(SP)						      ; 0692

				       7E  7C 002BD 	    CLRQ    -(SP)						      ;

				       7E  7C 002BF 	    CLRQ    -(SP)						      ;

				       7E  7C 002C1 	    CLRQ    -(SP)						      ;

				       58  DD 002C3 	    PUSHL   R8							      ;

				       1B  DD 002C5 	    PUSHL   #27							      ;

				0000G  CF  DD 002C7 	    PUSHL   IO_CHANNEL						      ;

				       01  DD 002CB 	    PUSHL   #1							      ;

	      00000000G  9F	       0C  FB 002CD 	    CALLS   #12, @#SYS$QIOW					      ;

		         29	       50  E9 002D4 	    BLBC    STATUS, 26$						      ; 0693

	      00000878   8F	       68  D1 002D7 	    CMPL    IO_STATUS, #2168					      ;

				       20  12 002DE 	    BNEQ    26$							      ;

		         7E	       03  CE 002E0 	    MNEGL   #3, -(SP)						      ; 0695

		         69	       01  FB 002E3 	    CALLS   #1, SPACE_TM					      ;

				       01  DD 002E6 	    PUSHL   #1							      ; 0696

		         69	       01  FB 002E8 	    CALLS   #1, SPACE_TM					      ;

		  0000V  CF	       00  FB 002EB 	    CALLS   #0, SETUP_AT_END					      ; 0697

				  24   AB  9F 002F0 	    PUSHAB  36(CURRENT_VCB)					      ; 0698

				       01  DD 002F3 	    PUSHL   #1							      ;

				       5E  DD 002F5 	    PUSHL   SP							      ;

				0000G  CF  9F 002F7 	    PUSHAB  FORMAT_FID						      ;

		         6A	       04  FB 002FB 	    CALLS   #4, SYS$CMKRNL					      ;

				       24  11 002FE 	    BRB     27$							      ; 0693

	   50	         53	       01  C3 00300 26$:    SUBL3   #1, SEQ, R0						      ; 0702

	   10	         10	       50  F0 00304 	    INSV    R0, #16, #16, FID					      ;

				       55     00308									      ;

				       54  DD 00309 	    PUSHL   VOL							      ; 0703

				       55  DD 0030B 	    PUSHL   FID							      ;

		  0000G  CF	       02  FB 0030D 	    CALLS   #2, POSITION_BY_FID					      ;

		         52	  2E   AB  9A 00312 	    MOVZBL  46(CURRENT_VCB), TM					      ; 0704

	   52	         02	       52  C3 00316 	    SUBL3   TM, #2, TM						      ;

				       52  DD 0031A 	    PUSHL   TM							      ; 0705

		         69	       01  FB 0031C 	    CALLS   #1, SPACE_TM					      ;

		  0000V  CF	       00  FB 0031F 	    CALLS   #0, SETUP_AT_END					      ; 0706

				     FF3A  31 00324 27$:    BRW     23$							      ; 0672

		  0000G  CF	  02   A8  A0 00327 28$:    ADDW2   IO_STATUS+2, USER_STATUS+2				      ; 0710

				       7E  D4 0032D 	    CLRL    -(SP)						      ; 0711

				4040   8F  BB 0032F 	    PUSHR   #^M<R6,SP>						      ;

		         6A	       03  FB 00333 	    CALLS   #3, SYS$CMKRNL					      ;

					   04 00336 	    RET     							      ; 0562



; Routine Size:  556 bytes





;	0713	

;	0714	



; Bliss-32 7.352	Saturday 21-AUG-1978 23:44:46	DBB3:[MTAACP.SRC]REWSPC.B32;7					Page 6

; Digital Equipment Corporation

;

;	0715	ROUTINE SETUP_AT_END : COMMON_CALL NOVALUE  =

;	0716	

;	0717	!++

;	0718	!

;	0719	! FUNCTIONAL DESCRIPTION:

;	0720	!	THIS ROUTINE MAKES THE CURRENT FILE SECTION CURRENT

;	0721	!	AND POSITIONS AT END OF THIS FILE SECTION'S DATA

;	0722	!

;	0723	! CALLING SEQUENCE:

;	0724	!	SETUP_AT_END()

;	0725	!

;	0726	! INPUT PARAMETERS:

;	0727	!	NONE

;	0728	!

;	0729	! IMPLICIT INPUTS:

;	0730	!	NONE

;	0731	!

;	0732	! OUTPUT PARAMETERS:

;	0733	!	NONE

;	0734	!

;	0735	! IMPLICIT OUTPUTS:

;	0736	!	FILE SECTION MADE CURRENT

;	0737	!	START RECORD OF DATA SECTION CALCULATED

;	0738	!

;	0739	! ROUTINE VALUE:

;	0740	!	NONE

;	0741	!

;	0742	! SIDE EFFECTS:

;	0743	!	NONE

;	0744	!

;	0745	!--

;	0746	

;	0747	BEGIN

;	0748	

;	0749	EXTERNAL REGISTER

;	0750		COMMON_REG;

;	0751	

;	0752	

;	0753	IF NOT READ_BLOCK(.HDR1,80) THEN ERR_EXIT(SS$_TAPEPOSLOST);

;	0754	IF .HDR1[EO1$L_EO1LID] NEQ 'EOV1' THEN ERR_EXIT(SS$_TAPEPOSLOST);

;	0755	SETUP_END(-1);

;	0756	END;











					 0000 00337 SETUP_AT_END:

							    .WORD   Save nothing					      ; 0715

		         7E	  50   8F  9A 00339 	    MOVZBL  #80, -(SP)						      ; 0753

				0000G  CF  DD 0033D 	    PUSHL   HDR1						      ;

		  0000G  CF	       02  FB 00341 	    CALLS   #2, READ_BLOCK					      ;

		         04	       50  E8 00346 	    BLBS    R0, 1$						      ;

				0224   8F  BF 00349 	    CHMU    #548						      ;

	      31564F45   8F	0000G  DF  D1 0034D 1$:     CMPL    @HDR1, #827739973					      ; 0754



; Bliss-32 7.352	Saturday 21-AUG-1978 23:44:46	DBB3:[MTAACP.SRC]REWSPC.B32;7					Page 6-1

; Digital Equipment Corporation

;

				       04  13 00356 	    BEQL    2$							      ;

				0224   8F  BF 00358 	    CHMU    #548						      ;

		         7E	       01  CE 0035C 2$:     MNEGL   #1, -(SP)						      ; 0755

		  FD3F   CF	       01  FB 0035F 	    CALLS   #1, SETUP_END					      ;

					   04 00364 	    RET     							      ; 0715



; Routine Size:  46 bytes





;	0757	

;	0758	END

;	0759	ELUDOM













;				       PSECT SUMMARY

;

;	Name		 Bytes			       Attributes

;

;  $CODE$         	   869  NOWRT,  RD ,  EXE,NOSHR,  LCL,  REL,  CON,NOPIC,ALIGN(2)









;				LIBRARY STATISTICS

;

;					     -------- Symbols --------    Blocks

;	File				     Total    Loaded   Percent      Read

;

;  DBA4:[SYSLIB]LIB.L32;1		      5582        28         0       242











; Size:		869 code + 0 data bytes

; Run Time:	00:20.8

; Elapsed Time:	00:58.5

; Memory Used:	379 pages

; Compilation Complete

