[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference hydra::axp-developer

Title:Alpha Developer Support
Notice:[email protected], 800-332-4786
Moderator:HYDRA::SYSTEM
Created:Mon Jun 06 1994
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:3722
Total number of notes:11359

3364.0. "MSI" by HYDRA::BRYANT () Wed Mar 19 1997 16:40

    Company Name :  MSI
    Contact Name :  Bruce Claremont
    Phone        :  719/687-9196
    Fax          :  
    Email        :  [email protected]
    Date/Time in :  19-MAR-1997 16:39:14
    Entered by   :  Pat Bryant
    SPE center   :  MRO

    Category     :  VMS
    OS Version   :  6.2
    System H/W   :  


    Brief Description of Problem:
    -----------------------------
Compiler error with macro32 (v2.1-17-2671).  Getting INSFREEREG
Insufficient Free Registers error.

T.RTitleUserPersonal
Name
DateLines
3364.1HYDRA::BRYANTWed Mar 19 1997 16:452680
Date:	19-MAR-1997 16:29:53.49
From:	SMTP%"[email protected]"
Subj:	TSTKEY Solution - MASTER5 Problem Report
To:
mail11:;@[email protected]@unknown;@[email protected]
om;; (@macro)
CC:	[email protected]
2649 records, external message id MAIL$180B3CDD0005009B.MAI
Attributes: None
Return-Path: [email protected]
Received: by asimov.mro.dec.com (UCX V4.1-12, OpenVMS V6.2 VAX);
	Wed, 19 Mar 1997 16:29:49 -0500
Received: from pobox1.pa.dec.com by fluid.mro.dec.com
(5.65v4.0/1.1.8.2/19Nov96-0448PM)
	id AA25887; Wed, 19 Mar 1997 16:30:01 -0500
Received: by pobox1.pa.dec.com; id AA07508; Wed, 19 Mar 97 13:30:02 -0800
Received: from us3rmc.pa.dec.com by mail1.digital.com (5.65 EXP 4/12/95 for
V3.2/1.0/WV)
	id AA07876; Wed, 19 Mar 1997 13:22:48 -0800
Received: from isvnet.enet by us3rmc.pa.dec.com (5.65/rmc-22feb94)
	id AA16607; Wed, 19 Mar 97 13:22:26 -0800
Message-Id: <[email protected]>
Received: from isvnet.enet; by us3rmc.enet; Wed, 19 Mar 97 13:22:37 PST
Date: Wed, 19 Mar 97 13:22:37 PST
From: Moving yesterday's software into tomorrow.  19-Mar-1997 1629
<[email protected]>
To:
mail11:;@[email protected]@unknown;@[email protected]
om;; (@macro)
Cc: [email protected]
Apparently-To: [email protected]
Subject: TSTKEY Solution - MASTER5 Problem Report

Hi,

I have located the problem with the TSTKEY.MAR program.  There is an RSB
in a $DATA psect on about line 765.  Once this is removed, the compile works
fine.  It would be nice to see the Macro-32 compiler handle this type of error
a bit more gracefully.

I have another problem with the attached program, MASTER5.MAR.  The CALLS
instruction on line 526 is generating a INSFREEREG error (insufficient free
registers).  This same code is used in many other programs and does not
generate an error.  If I compile the program with the OPTIMZE=VAXREGS option,
the error disappears.  I do not see excessive register usage in the program, so
I do not understand why the error is being generated.

Compile command:

	  MACRO -
	    /NODIAG -
	    /NOLIST -
	    /MIGRATE -
	    /OBJECT=MASTER5 -
	    /UNALIGN -
	    /WARN=NOINFO -
		SYS$LIBRARY:ARCH_DEFS.MAR + []MASTER5.MAR


Regards,

Mr. Bruce Claremont

Migration Specialties International (MSI)
496 Manchester Drive
Florissant, CO    80816-9255
U.S.A.

Phone:	(719)687-9196
Fax:	(719)687-8747
Internet: [email protected]


	.TITLE  MASTER5
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
	.ASCII  'Version: 6.2   Distribution Date: 11-JAN-1997  '
	.ASCII	'19-MAR-1997 12:28:11  '
 
	$DSCDEF
 
	BLANK		= ^X20
	NULL		= ^X00
	PARM_EXTEND	= 10 	;Max # of parms beyond what a subprogram expects.
 
N_OFF:		.ASCII	'0'	;Indicator off.
N_ON:		.ASCII	'1'	;Indicator on.
 
N_HALT10_MSG_01: .ASCIZ	'RTS-HLT1001 - Unidentified record type'
N_HALT10_MSG_02: .ASCIZ	'RTS-HLT1002 - Error occurred during an I/O operation to
a SPECIAL device file'
 
TMPBYT1:	.BYTE	0
N$DETAIL_FLG:			.BYTE	0
N$EXTRACT_CONTROL_FLD_FLG:	.BYTE	0
N$FETCH_OVERFLOW_FLG:		.BYTE	0
N$FREE_FLG:			.BYTE	0
N$INVALID_PARAMETER:		.BYTE	0
N$NUMBER_OF_ARGUMENTS:		.LONG	0
N$TEMP_ADDR:			.LONG	0
N$TEMP_SIZE:			.LONG	0
N$OUTPUT_CTL:			.BYTE	0
N$PARAMETER_POINTER:		.LONG	0
N$PROG_ACTIVE:			.BYTE	0
PAGE:	.LONG	0
PAGE1:	.LONG	0
PAGE2:	.LONG	0
PAGE3:	.LONG	0
PAGE4:	.LONG	0
PAGE5:	.LONG	0
PAGE6:	.LONG	0
PAGE7:	.LONG	0
V51_HIGH:	.ASCII	'0'
V51_LOW:	.ASCII	'0'
V51_EQUAL:	.ASCII	'0'
UDATE:		.ASCII	'000000'
UMONTH:	.ASCII	'00'
UDAY:		.ASCII	'00'
UYEAR:		.ASCII	'00'
N$DUMMY_IND:	.ASCII	'0'
$STAT$:	.ASCII	'        '
 
N_INHD:	.ASCII	'0'	;'*' indicator output header
N_INFD:	.ASCII	'0'	;'*' indicator output field
N_IN00:	.ASCII	'0'	;'*' indicator calc
N_IN__:	;Internal indicator array label.
N_IN01:	.ASCII	'0'
N_IN02:	.ASCII	'0'
N_IN03:	.ASCII	'0'
N_IN04:	.ASCII	'0'
N_IN05:	.ASCII	'0'
N_IN06:	.ASCII	'0'
N_IN07:	.ASCII	'0'
N_IN08:	.ASCII	'0'
N_IN09:	.ASCII	'0'
N_IN10:	.ASCII	'0'
N_IN11:	.ASCII	'0'
N_IN12:	.ASCII	'0'
N_IN13:	.ASCII	'0'
N_IN14:	.ASCII	'0'
N_IN15:	.ASCII	'0'
N_IN16:	.ASCII	'0'
N_IN17:	.ASCII	'0'
N_IN18:	.ASCII	'0'
N_IN19:	.ASCII	'0'
N_IN20:	.ASCII	'0'
N_IN21:	.ASCII	'0'
N_IN22:	.ASCII	'0'
N_IN23:	.ASCII	'0'
N_IN24:	.ASCII	'0'
N_IN25:	.ASCII	'0'
N_IN26:	.ASCII	'0'
N_IN27:	.ASCII	'0'
N_IN28:	.ASCII	'0'
N_IN29:	.ASCII	'0'
N_IN30:	.ASCII	'0'
N_IN31:	.ASCII	'0'
N_IN32:	.ASCII	'0'
N_IN33:	.ASCII	'0'
N_IN34:	.ASCII	'0'
N_IN35:	.ASCII	'0'
N_IN36:	.ASCII	'0'
N_IN37:	.ASCII	'0'
N_IN38:	.ASCII	'0'
N_IN39:	.ASCII	'0'
N_IN40:	.ASCII	'0'
N_IN41:	.ASCII	'0'
N_IN42:	.ASCII	'0'
N_IN43:	.ASCII	'0'
N_IN44:	.ASCII	'0'
N_IN45:	.ASCII	'0'
N_IN46:	.ASCII	'0'
N_IN47:	.ASCII	'0'
N_IN48:	.ASCII	'0'
N_IN49:	.ASCII	'0'
N_IN50:	.ASCII	'0'
N_IN51:	.ASCII	'0'
N_IN52:	.ASCII	'0'
N_IN53:	.ASCII	'0'
N_IN54:	.ASCII	'0'
N_IN55:	.ASCII	'0'
N_IN56:	.ASCII	'0'
N_IN57:	.ASCII	'0'
N_IN58:	.ASCII	'0'
N_IN59:	.ASCII	'0'
N_IN60:	.ASCII	'0'
N_IN61:	.ASCII	'0'
N_IN62:	.ASCII	'0'
N_IN63:	.ASCII	'0'
N_IN64:	.ASCII	'0'
N_IN65:	.ASCII	'0'
N_IN66:	.ASCII	'0'
N_IN67:	.ASCII	'0'
N_IN68:	.ASCII	'0'
N_IN69:	.ASCII	'0'
N_IN70:	.ASCII	'0'
N_IN71:	.ASCII	'0'
N_IN72:	.ASCII	'0'
N_IN73:	.ASCII	'0'
N_IN74:	.ASCII	'0'
N_IN75:	.ASCII	'0'
N_IN76:	.ASCII	'0'
N_IN77:	.ASCII	'0'
N_IN78:	.ASCII	'0'
N_IN79:	.ASCII	'0'
N_IN80:	.ASCII	'0'
N_IN81:	.ASCII	'0'
N_IN82:	.ASCII	'0'
N_IN83:	.ASCII	'0'
N_IN84:	.ASCII	'0'
N_IN85:	.ASCII	'0'
N_IN86:	.ASCII	'0'
N_IN87:	.ASCII	'0'
N_IN88:	.ASCII	'0'
N_IN89:	.ASCII	'0'
N_IN90:	.ASCII	'0'
N_IN91:	.ASCII	'0'
N_IN92:	.ASCII	'0'
N_IN93:	.ASCII	'0'
N_IN94:	.ASCII	'0'
N_IN95:	.ASCII	'0'
N_IN96:	.ASCII	'0'
N_IN97:	.ASCII	'0'
N_IN98:	.ASCII	'0'
N_IN99:	.ASCII	'0'
N_INXX:	.ASCII	'0'
N_INL1:	.ASCII	'0'
N_INL2:	.ASCII	'0'
N_INL3:	.ASCII	'0'
N_INL4:	.ASCII	'0'
N_INL5:	.ASCII	'0'
N_INL6:	.ASCII	'0'
N_INL7:	.ASCII	'0'
N_INL8:	.ASCII	'0'
N_INL9:	.ASCII	'0'
N_INLR:	.ASCII	'0'
N_INRT:	.ASCII	'0'
N_INH1:	.ASCII	'0'
N_INH2:	.ASCII	'0'
N_INH3:	.ASCII	'0'
N_INH4:	.ASCII	'0'
N_INH5:	.ASCII	'0'
N_INH6:	.ASCII	'0'
N_INH7:	.ASCII	'0'
N_INH8:	.ASCII	'0'
N_INH9:	.ASCII	'0'
N_IN1P:	.ASCII	'1'
N_INL0:	.ASCII	'0'
N_INMR:	.ASCII	'0'
N_INOA:	.ASCII	'0'
N_INOB:	.ASCII	'0'
N_INOC:	.ASCII	'0'
N_INOD:	.ASCII	'0'
N_INOE:	.ASCII	'0'
N_INOF:	.ASCII	'0'
N_INOG:	.ASCII	'0'
N_INOV:	.ASCII	'0'
N_INKA:	.ASCII	'0'
N_INKB:	.ASCII	'0'
N_INKC:	.ASCII	'0'
N_INKD:	.ASCII	'0'
N_INKE:	.ASCII	'0'
N_INKF:	.ASCII	'0'
N_INKG:	.ASCII	'0'
N_INKH:	.ASCII	'0'
N_INKI:	.ASCII	'0'
N_INKJ:	.ASCII	'0'
N_INKK:	.ASCII	'0'
N_INKL:	.ASCII	'0'
N_INKM:	.ASCII	'0'
N_INKN:	.ASCII	'0'
N_INKP:	.ASCII	'0'
N_INKQ:	.ASCII	'0'
N_INKR:	.ASCII	'0'
N_INKS:	.ASCII	'0'
N_INKT:	.ASCII	'0'
N_INKU:	.ASCII	'0'
N_INKV:	.ASCII	'0'
N_INKW:	.ASCII	'0'
N_INKX:	.ASCII	'0'
N_INKY:	.ASCII	'0'
N_INU1:	.ASCII	'0'
N_INU2:	.ASCII	'0'
N_INU3:	.ASCII	'0'
N_INU4:	.ASCII	'0'
N_INU5:	.ASCII	'0'
N_INU6:	.ASCII	'0'
N_INU7:	.ASCII	'0'
N_INU8:	.ASCII	'0'
	.BYTE	-1
N$DATE_PRINT_CTL: .ASCII /    /
	TIMEOUT = 10
 
FILE_01_NAME:	.ASCIZ	'CALL    '
	.ALIGN   LONG
  FILE_01_FAB:	$FAB	FNM=<CALL>,-
			DNM=<.DAT>,-
			FAC=<GET>,-
			FOP=<SQO>,-
			SHR=<GET,PUT,UPD,DEL>,-
			NAM=FILE_01_NAM
 
  FILE_01_NAM:	$NAM	RSA=N$FILE_01_NAME,-
			RSS=NAM$C_MAXRSS
 
  FILE_01_RAB:	$RAB	FAB=FILE_01_FAB,-
			ROP=<TMO,WAT,NLK,RRL>,-
			UBF=N$FILE_01_REC_BUF,-
			USZ=FILE_01_REC_SIZ,-
			TMO=TIMEOUT
 
  FILE_01_REC_SIZ = 0080
  N$FILE_01_REC_BUF:	.BLKB FILE_01_REC_SIZ
  N$FILE_01_NAME:	.BLKB	NAM$C_MAXRSS
  EOF_01_FLG:		.BYTE	0	;End of file flag.
  F$TY01:		.BYTE	0,0
  REC_ID_FLG_01:	.BYTE	0
  F$IO01:		.BYTE	0	;IO CONTROL SWITCH
  F$CB01:		.BYTE	2	;COMBINED FILE IO CTL SW
  F$RF01:		.BLKB	8	;RFA SAVE SPACE
 
FILE_02_NAME:	.ASCIZ	'REPORT  '
	.ALIGN   LONG
  FILE_02_FAB:	$FAB	FNM=<REPORT>,-
			DNM=<.LIS>,-
			FAC=<PUT,TRN>,-
			FOP=<CBT,TEF,SQO,DFW>,-
			RFM=VAR,-
			MRS=FILE_02_REC_SIZ,-
			NAM=FILE_02_NAM
 
  FILE_02_NAM:	$NAM	RSA=N$FILE_02_NAME,-
			RSS=NAM$C_MAXRSS
 
  FILE_02_RAB:	$RAB	FAB=FILE_02_FAB,-
			RBF=N$FILE_02_REC_BUF,-
			RSZ=FILE_02_REC_SIZ,-
			TMO=TIMEOUT
 
  FILE_02_REC_SIZ = 0132
  N$FILE_02_REC_BUF:	.BLKB FILE_02_REC_SIZ
  N$FILE_02_NAME:	.BLKB	NAM$C_MAXRSS
 
  FILE_02_PRT_CTL_BLK:	.BYTE	066	;Printer lines per page
			.BYTE	060	;Overflow line
			.BYTE	1	;Line cnt
			.BYTE	0	;Overflow indicator index
			.BYTE	0	;Last cycle line cnt
 
  EOF_02_FLG:		.BYTE	0	;End of file flag.
  F$TY02:		.BYTE	0,0
  REC_ID_FLG_02:	.BYTE	0
  F$IO02:		.BYTE	0	;IO CONTROL SWITCH
  F$CB02:		.BYTE	2	;COMBINED FILE IO CTL SW
  F$RF02:		.BLKB	8	;RFA SAVE SPACE
 
	PRLCT	= 2	;Line cnt
	LSLCT	= 4	;Lst cycle line cnt
 
SPACE_BEFORE:	.BYTE	0
SPACE_AFTER:	.BYTE	0
SKIP_BEFORE:	.BYTE	0
SKIP_AFTER:	.BYTE	0
 
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
N$CLOSE_FILES: .JSB32_ENTRY
	$CLOSE	FAB=FILE_01_FAB	;CALL    
	$CLOSE	FAB=FILE_02_FAB	;REPORT  
	RSB
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
N$READ_FILE_01: .JSB32_ENTRY
	MOVC5	#0,#0,#^A/ /,#FILE_01_REC_SIZ,N$FILE_01_REC_BUF
	MOVAL	EOF_01_FLG,R5
	PUSHAL	$STAT$
	PUSHL	R5
	PUSHL	R7
	PUSHL	R8
	PUSHL	R9
	PUSHL	R10
	CALLS	#6,G^S3X$READ
	MOVL	RAB$L_UBF(R7),R5
	MOVW	RAB$W_USZ(R7),R4
	BICL	#^XFFFF0000,R4
	BLBC	R0,30$
	RSB
 
  30$:	MOVAL	N$FILE_01_REC_BUF,R1		;Fill rec buf with 9's
	MOVL	#FILE_01_REC_SIZ,R4		;when EOF encountered
	MOVL	R1,R5			;Setup R5 & R4 to pnt to rec
	MOVL	R4,R0			;buf & siz when routine exits
 
  32$:	MOVB	#^A/9/,(R1)+
	SOBGTR	R0,32$
	RSB
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
N$IDENTIFY_REC_FROM_FILE_01: .JSB32_ENTRY
	CLRB	F$TY01
60001$: MOVB	#001,F$TY01
	MOVB	#01,REC_ID_FLG_01
	CLRL	R0
	RSB
40001$:
	PUSHAL	N_HALT10_MSG_01
	CALLS	#1,G^S3X$HALT10
	RSB
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
C$DET:
	MOVB	N_OFF,N_IN00
 
	  ;IFEQ 
 
	MOVAL	N_IN10,R6
	MOVAL	L$0001,R7
	PUSHAL	V51_HIGH
	PUSHAL	V51_LOW
	PUSHAL	V51_EQUAL
	MOVL	R6,R9
	MOVL	#0001,R8
	MOVL	#0001,R6
	PUSHL	R6
	PUSHL	R7
	PUSHL	R8
	PUSHL	R9
	CALLS	#7,G^S3X$CMP_ALPHAMERIC
	CMPB	V51_EQUAL,N_OFF
	BNEQ	00000$
	JMP	V51_00000001
00000$:
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;SETOF
 
	MOVB  N_OFF,N_IN10
 
	  ;ELSE 
 
	JMP	V51_00000000
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
V51_00000001:
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;SETON
 
	MOVB	N_ON,N_IN10
 
	  ;END  
 
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
V51_00000000:
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;ADD  
 
	MOVAL	A00006,R6
	MOVAL	L$0002,R7
	MOVAL	A00006,R8
        ADDP6 #0003,(R6),#0001,(R7),#17,W$NUMA
	ASHP	#0,#17,W$NUMA,#0,#0003,(R8)
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;MOVE 
 
	MOVAL	L$0003,R7
	MOVAL	A00007,R8
	MOVC3	#0001,(R7),(R8)
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;EXCPT
 
	CLRL	R6
	MOVB	#^A/E/,N$OUTPUT_CTL
	JSB	G^N$OUTPUT
	CLRB	N$OUTPUT_CTL
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;CALL 
 
	JSB	CALL_0001
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;MOVE 
 
	MOVAL	L$0004,R7
	MOVAL	A00007,R8
	MOVC3	#0001,(R7),(R8)
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;EXCPT
 
	CLRL	R6
	MOVB	#^A/E/,N$OUTPUT_CTL
	JSB	G^N$OUTPUT
	CLRB	N$OUTPUT_CTL
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;SETOF
 
	MOVB  N_OFF,N_IN11
	MOVB  N_OFF,N_IN21
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;CALL 
 
	JSB	CALL_0002
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;MOVE 
 
	MOVAL	L$0005,R7
	MOVAL	A00007,R8
	MOVC3	#0001,(R7),(R8)
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;EXCPT
 
	CLRL	R6
	MOVB	#^A/E/,N$OUTPUT_CTL
	JSB	G^N$OUTPUT
	CLRB	N$OUTPUT_CTL
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;SETOF
 
	MOVB  N_OFF,N_IN12
	MOVB  N_OFF,N_IN22
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;CALL 
 
	JSB	CALL_0003
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;MOVE 
 
	MOVAL	L$0006,R7
	MOVAL	A00007,R8
	MOVC3	#0001,(R7),(R8)
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;EXCPT
 
	CLRL	R6
	MOVB	#^A/E/,N$OUTPUT_CTL
	JSB	G^N$OUTPUT
	CLRB	N$OUTPUT_CTL
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;SETOF
 
	MOVB  N_OFF,N_IN13
	MOVB  N_OFF,N_IN23
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;FREE 
 
	PUSHL	#1
	CALLS	#0001,@A00005
	MOVB	N_OFF,N_IN33
	BLBS	R0,40001$
	MOVB	N_ON,N_IN33
40001$:
	JSB	N$INITIALIZE
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;MOVE 
 
	MOVAL	L$0007,R7
	MOVAL	A00007,R8
	MOVC3	#0001,(R7),(R8)
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;EXCPT
 
	CLRL	R6
	MOVB	#^A/E/,N$OUTPUT_CTL
	JSB	G^N$OUTPUT
	CLRB	N$OUTPUT_CTL
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;SETOF
 
	MOVB  N_OFF,N_IN33
	JMP    C$DETX
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
C$TOT:
	JMP    C$TOTX
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
PARM_00001:	;ALPHA 
	.WORD	0009
	.BYTE	DSC$K_DTYPE_T
	.BYTE	DSC$K_CLASS_S
	.ADDRESS	A00001
PARM_00002:	;ZONED 
	.WORD	0009
	.BYTE	DSC$K_DTYPE_NZ
	.BYTE	DSC$K_CLASS_S
	.ADDRESS	P00002
PARM_00003:	;PACKED
	.WORD	0005
	.BYTE	DSC$K_DTYPE_P
	.BYTE	DSC$K_CLASS_S
	.ADDRESS	A00003
PARM_00004:	;BINARY
	.WORD	0004
	.BYTE	DSC$K_DTYPE_L
	.BYTE	DSC$K_CLASS_S
	.ADDRESS	P00004
PARM_00005:	;CYCLE 
	.WORD	0003
	.BYTE	DSC$K_DTYPE_NZ
	.BYTE	DSC$K_CLASS_S
	.ADDRESS	P00005
PARM_00006:	;EXCPT 
	.WORD	0001
	.BYTE	DSC$K_DTYPE_T
	.BYTE	DSC$K_CLASS_S
	.ADDRESS	A00007
PARM_00007:	;*IN10 
	.WORD	0001
	.BYTE	DSC$K_DTYPE_T
	.BYTE	DSC$K_CLASS_S
	.ADDRESS	N_IN10
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
CALL_0001: .JSB32_ENTRY
 
	;F1 =         F2 =         RESULT = ALPHA 
 
	PUSHAL	PARM_00001
 
	;F1 =         F2 =         RESULT = ZONED 
 
	MOVL	#0009,R0
	MOVAL	A00002,R1
	PUSHAL	P00002
	PUSHL	#0009
	PUSHL	R1
	PUSHL	R0
	CALLS	#4,G^S3X$CVT_PACKED_TO_TRAILING_NUM
	PUSHAL	PARM_00002
 
	;F1 =         F2 =         RESULT = PACKED
 
	PUSHAL	PARM_00003
 
	;F1 =         F2 =         RESULT = BINARY
 
	CVTPL	#9,A00004,R0
	MOVL	R0,P00004
	PUSHAL	PARM_00004
 
	;F1 =         F2 =         RESULT = CYCLE 
 
	MOVL	#0003,R0
	MOVAL	A00006,R1
	PUSHAL	P00005
	PUSHL	#0003
	PUSHL	R1
	PUSHL	R0
	CALLS	#4,G^S3X$CVT_PACKED_TO_TRAILING_NUM
	PUSHAL	PARM_00005
 
	;F1 =         F2 =         RESULT = EXCPT 
 
	PUSHAL	PARM_00006
 
	;F1 =         F2 =         RESULT = *IN10 
 
	PUSHAL	PARM_00007
	PUSHL	#0
	CALLS	#0008,G^_PROG5A
	MOVB	N_OFF,N_IN11
	BLBS	R0,100$
	MOVB	N_ON,N_IN11
  100$:
	MOVB	N_OFF,N_IN21
	BLBS	R1,110$
	MOVB	N_ON,N_IN21
  110$:
	JSB	N$INITIALIZE
 
	;F1 =         F2 =         RESULT = ALPHA 
 
 
	;F1 =         F2 =         RESULT = ZONED 
 
	MOVL	#0009,R0
	MOVAL	P00002,R1
	MOVL	#0009,R2
	MOVAL	A00002,R3
	PUSHL	R3
       PUSHL   R2
       PUSHL   R1
       PUSHL   R0
	CALLS	#4,G^S3X$CVT_TRAILING_NUM_TO_PACKED
 
	;F1 =         F2 =         RESULT = PACKED
 
 
	;F1 =         F2 =         RESULT = BINARY
 
	CVTLP	P00004,#9,A00004
 
	;F1 =         F2 =         RESULT = CYCLE 
 
	MOVL	#0003,R0
	MOVAL	P00005,R1
	MOVL	#0003,R2
	MOVAL	A00006,R3
	PUSHL	R3
       PUSHL   R2
       PUSHL   R1
       PUSHL   R0
	CALLS	#4,G^S3X$CVT_TRAILING_NUM_TO_PACKED
 
	;F1 =         F2 =         RESULT = EXCPT 
 
 
	;F1 =         F2 =         RESULT = *IN10 
 
	RSB	;OUTPUT_RSB
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
CALL_0002: .JSB32_ENTRY
 
	;F1 =         F2 =         RESULT = ALPHA 
 
	PUSHAL	PARM_00001
 
	;F1 =         F2 =         RESULT = ZONED 
 
	MOVL	#0009,R0
	MOVAL	A00002,R1
	PUSHAL	P00002
	PUSHL	#0009
	PUSHL	R1
	PUSHL	R0
	CALLS	#4,G^S3X$CVT_PACKED_TO_TRAILING_NUM
	PUSHAL	PARM_00002
 
	;F1 =         F2 =         RESULT = PACKED
 
	PUSHAL	PARM_00003
 
	;F1 =         F2 =         RESULT = BINARY
 
	CVTPL	#9,A00004,R0
	MOVL	R0,P00004
	PUSHAL	PARM_00004
 
	;F1 =         F2 =         RESULT = CYCLE 
 
	MOVL	#0003,R0
	MOVAL	A00006,R1
	PUSHAL	P00005
	PUSHL	#0003
	PUSHL	R1
	PUSHL	R0
	CALLS	#4,G^S3X$CVT_PACKED_TO_TRAILING_NUM
	PUSHAL	PARM_00005
 
	;F1 =         F2 =         RESULT = EXCPT 
 
	PUSHAL	PARM_00006
 
	;F1 =         F2 =         RESULT = *IN10 
 
	PUSHAL	PARM_00007
	PUSHL	#0
	CALLS	#0008,@A00005
	MOVB	N_OFF,N_IN12
	BLBS	R0,100$
	MOVB	N_ON,N_IN12
  100$:
	MOVB	N_OFF,N_IN22
	BLBS	R1,110$
	MOVB	N_ON,N_IN22
  110$:
	JSB	N$INITIALIZE
 
	;F1 =         F2 =         RESULT = ALPHA 
 
 
	;F1 =         F2 =         RESULT = ZONED 
 
	MOVL	#0009,R0
	MOVAL	P00002,R1
	MOVL	#0009,R2
	MOVAL	A00002,R3
	PUSHL	R3
       PUSHL   R2
       PUSHL   R1
       PUSHL   R0
	CALLS	#4,G^S3X$CVT_TRAILING_NUM_TO_PACKED
 
	;F1 =         F2 =         RESULT = PACKED
 
 
	;F1 =         F2 =         RESULT = BINARY
 
	CVTLP	P00004,#9,A00004
 
	;F1 =         F2 =         RESULT = CYCLE 
 
	MOVL	#0003,R0
	MOVAL	P00005,R1
	MOVL	#0003,R2
	MOVAL	A00006,R3
	PUSHL	R3
       PUSHL   R2
       PUSHL   R1
       PUSHL   R0
	CALLS	#4,G^S3X$CVT_TRAILING_NUM_TO_PACKED
 
	;F1 =         F2 =         RESULT = EXCPT 
 
 
	;F1 =         F2 =         RESULT = *IN10 
 
	RSB	;OUTPUT_RSB
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
CALL_0003: .JSB32_ENTRY
 
	;F1 =         F2 =         RESULT = ALPHA 
 
	PUSHAL	PARM_00001
 
	;F1 =         F2 =         RESULT = ZONED 
 
	MOVL	#0009,R0
	MOVAL	A00002,R1
	PUSHAL	P00002
	PUSHL	#0009
	PUSHL	R1
	PUSHL	R0
	CALLS	#4,G^S3X$CVT_PACKED_TO_TRAILING_NUM
	PUSHAL	PARM_00002
 
	;F1 =         F2 =         RESULT = PACKED
 
	PUSHAL	PARM_00003
 
	;F1 =         F2 =         RESULT = BINARY
 
	CVTPL	#9,A00004,R0
	MOVL	R0,P00004
	PUSHAL	PARM_00004
 
	;F1 =         F2 =         RESULT = CYCLE 
 
	MOVL	#0003,R0
	MOVAL	A00006,R1
	PUSHAL	P00005
	PUSHL	#0003
	PUSHL	R1
	PUSHL	R0
	CALLS	#4,G^S3X$CVT_PACKED_TO_TRAILING_NUM
	PUSHAL	PARM_00005
 
	;F1 =         F2 =         RESULT = EXCPT 
 
	PUSHAL	PARM_00006
 
	;F1 =         F2 =         RESULT = *IN10 
 
	PUSHAL	PARM_00007
	PUSHL	#0
	CALLS	#0008,@A00005
	MOVB	N_OFF,N_IN13
	BLBS	R0,100$
	MOVB	N_ON,N_IN13
  100$:
	MOVB	N_OFF,N_IN23
	BLBS	R1,110$
	MOVB	N_ON,N_IN23
  110$:
	JSB	N$INITIALIZE
 
	;F1 =         F2 =         RESULT = ALPHA 
 
 
	;F1 =         F2 =         RESULT = ZONED 
 
	MOVL	#0009,R0
	MOVAL	P00002,R1
	MOVL	#0009,R2
	MOVAL	A00002,R3
	PUSHL	R3
       PUSHL   R2
       PUSHL   R1
       PUSHL   R0
	CALLS	#4,G^S3X$CVT_TRAILING_NUM_TO_PACKED
 
	;F1 =         F2 =         RESULT = PACKED
 
 
	;F1 =         F2 =         RESULT = BINARY
 
	CVTLP	P00004,#9,A00004
 
	;F1 =         F2 =         RESULT = CYCLE 
 
	MOVL	#0003,R0
	MOVAL	P00005,R1
	MOVL	#0003,R2
	MOVAL	A00006,R3
	PUSHL	R3
       PUSHL   R2
       PUSHL   R1
       PUSHL   R0
	CALLS	#4,G^S3X$CVT_TRAILING_NUM_TO_PACKED
 
	;F1 =         F2 =         RESULT = EXCPT 
 
 
	;F1 =         F2 =         RESULT = *IN10 
 
	RSB	;OUTPUT_RSB
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
O$FETO:	.BYTE	0
O$FIL:		.BYTE	0
O$OVFL:	.BYTE	0
W$FETY:	.BYTE	0
W$SAVA:	.BLKB	8
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
N$OUTPUT: .JSB32_ENTRY
	TSTB	N$FETCH_OVERFLOW_FLG
	BEQL	10$
	MOVQ	N_INOA,W$SAVA
	MOVQ	#^A/00000000/,N_INOA
	MOVB	#1,W$FETY
10$:	JSB	O$0000
	TSTB	W$FETY
	BEQL	20$
	MOVAL	N_INOA,R0
	MOVAL	W$SAVA,R1
	MOVL	#7,R2
15$:	CMPB	(R0),(R1)
	BGEQ	17$
	MOVB	(R1),(R0)
17$:	INCL	R0
	INCL	R1
	SOBGTR	R2,15$
	CLRB    W$FETY
20$:	CALLS	#0,G^S3X$DISPLAY_WORKSTN_SCRN
	MOVAL   FILE_02_RAB,R7
	MOVAL	FILE_02_PRT_CTL_BLK,R3
	PUSHAL	N$OUTPUT_CTL
	PUSHL	R3
	PUSHL	R7
	PUSHAL	N$FETCH_OVERFLOW_FLG
	PUSHAL	N$DETAIL_FLG
	CALLS	#5,G^S3X$CHECK_FOR_OVERFLOW
	RSB
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
	;  On Entry:	R7 - RAB ptr
	;		R3 - Printer ctl blk ptr
N$FETCH_OVERFLOW: .JSB32_ENTRY INPUT=<R3, R7>
	TSTB	N$FETCH_OVERFLOW_FLG
	BEQL	10$
	BRW	500$
 
  10$:	CMPL	N_INOA,#^A/0000/
	BNEQ	20$
	CMPL	N_INOA+4,#^A/0000/
	BNEQ	20$
	PUSHAL	N$OUTPUT_CTL
	PUSHL	R3
	PUSHL	R7
	PUSHAL	N$FETCH_OVERFLOW_FLG
	PUSHAL	N$DETAIL_FLG
	CALLS	#5,G^S3X$CHECK_FOR_OVERFLOW
	CMPL	N_INOA,#^A/0000/
	BNEQ	20$
	CMPL	N_INOA+4,#^A/0000/
	BNEQ	20$
  	BRW	500$
 
  20$:	TSTB	N$DETAIL_FLG
	BEQL	22$
	MOVB	#2,N$FETCH_OVERFLOW_FLG
	BRB	40$
 
  22$:	MOVB	#1,N$FETCH_OVERFLOW_FLG
  40$:	MOVB	#1,O$OVFL
	PUSHL	SPACE_BEFORE
	MOVB	N$OUTPUT_CTL, TMPBYT1
	MOVB	#^A/T/,N$OUTPUT_CTL
	JSB	O$0000
	MOVB	#^A/H/,N$OUTPUT_CTL
	JSB	O$0000
	MOVB	#^A/D/,N$OUTPUT_CTL
	JSB	O$0000
	MOVB	TMPBYT1, N$OUTPUT_CTL
	MOVL	(SP)+,SPACE_BEFORE
	CLRB	O$OVFL
	CMPB	N$OUTPUT_CTL,#^A/E/
	BNEQ	500$
	MOVQ	#^A/00000000/,N_INOA
  500$:
	RSB	;End of N$FETCH_OVERFLOW
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
O$0000: .JSB32_ENTRY
	MOVB	N_OFF,N_INHD
	CMPB  N$OUTPUT_CTL,#^A/H/
	BEQL	00001$
	BRW	O$0001
00001$:
 
	CMPB	N_IN1P,N_OFF
	BEQL	00002$
	TSTB	O$OVFL
	BNEQ	00002$
	MOVB	#0,SPACE_BEFORE
	MOVB	#1,SPACE_AFTER
	MOVB	#000,SKIP_BEFORE
	MOVB	#000,SKIP_AFTER
	MOVB	#000,O$FETO
	BRW	40000$
00002$: BRW	O$0001
40000$:
	MOVB	N_ON,N_INHD
	MOVB	SKIP_BEFORE,R4
	MOVB	SPACE_BEFORE,R5
	PUSHAL	FILE_02_RAB
	PUSHL	R5
	PUSHL	R4
	PUSHAL	FILE_02_PRT_CTL_BLK
	CALLS	#4,G^S3X$SPACE_BEFORE
	MOVAL	N$FILE_02_REC_BUF,R0
	MOVL	#0132,R1
	MOVC5	#0,#0,#BLANK,R1,(R0)
	MOVB	N_OFF,N_INFD
	MOVB	N_ON,N_INFD
	MOVC3	#0019,40002$,N$FILE_02_REC_BUF+0000
	BRB	40001$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40002$: .ASCIZ 'Report from MASTER5'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40001$:
 
	MOVAL	FILE_02_RAB,R7
	MOVW	#FILE_02_REC_SIZ,RAB$W_RSZ(R7)
	MOVAL	N$FILE_02_REC_BUF,R1
	MOVL	#FILE_02_REC_SIZ,R0
00004$: CMPB	(R1)+,#^X00
	BNEQ	00005$
	MOVB	#^A/ /,-1(R1)
00005$: SOBGTR	R0,00004$
	PUSHL	R7
	CALLS	#1,G^S3X$WRITE
	CLRB	F$CB02
	MOVB	SKIP_AFTER,R4
	MOVB	SPACE_AFTER,R5
	CLRL	R2
	PUSHAL	FILE_02_RAB
	PUSHL	R5
	PUSHL	R4
	PUSHAL	FILE_02_PRT_CTL_BLK
	CALLS	#4,G^S3X$SPACE_AFTER
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
O$0001:
	MOVB	N_OFF,N_INHD
	CMPB  N$OUTPUT_CTL,#^A/H/
	BEQL	00001$
	BRW	O$0002
00001$:
 
	CMPB	N_IN1P,N_OFF
	BEQL	00002$
	TSTB	O$OVFL
	BNEQ	00002$
	MOVB	#0,SPACE_BEFORE
	MOVB	#1,SPACE_AFTER
	MOVB	#000,SKIP_BEFORE
	MOVB	#000,SKIP_AFTER
	MOVB	#000,O$FETO
	BRW	40000$
00002$: BRW	O$0002
40000$:
	MOVB	N_ON,N_INHD
	MOVB	SKIP_BEFORE,R4
	MOVB	SPACE_BEFORE,R5
	PUSHAL	FILE_02_RAB
	PUSHL	R5
	PUSHL	R4
	PUSHAL	FILE_02_PRT_CTL_BLK
	CALLS	#4,G^S3X$SPACE_BEFORE
	MOVAL	N$FILE_02_REC_BUF,R0
	MOVL	#0132,R1
	MOVC5	#0,#0,#BLANK,R1,(R0)
	MOVAL	FILE_02_RAB,R7
	MOVW	#FILE_02_REC_SIZ,RAB$W_RSZ(R7)
	MOVAL	N$FILE_02_REC_BUF,R1
	MOVL	#FILE_02_REC_SIZ,R0
00004$: CMPB	(R1)+,#^X00
	BNEQ	00005$
	MOVB	#^A/ /,-1(R1)
00005$: SOBGTR	R0,00004$
	PUSHL	R7
	CALLS	#1,G^S3X$WRITE
	CLRB	F$CB02
	MOVB	SKIP_AFTER,R4
	MOVB	SPACE_AFTER,R5
	CLRL	R2
	PUSHAL	FILE_02_RAB
	PUSHL	R5
	PUSHL	R4
	PUSHAL	FILE_02_PRT_CTL_BLK
	CALLS	#4,G^S3X$SPACE_AFTER
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
O$0002:
	MOVB	N_OFF,N_INHD
	CMPB  N$OUTPUT_CTL,#^A/H/
	BEQL	00001$
	BRW	O$0003
00001$:
 
	CMPB	N_IN1P,N_OFF
	BEQL	00002$
	TSTB	O$OVFL
	BNEQ	00002$
	MOVB	#0,SPACE_BEFORE
	MOVB	#1,SPACE_AFTER
	MOVB	#000,SKIP_BEFORE
	MOVB	#000,SKIP_AFTER
	MOVB	#000,O$FETO
	BRW	40000$
00002$: BRW	O$0003
40000$:
	MOVB	N_ON,N_INHD
	MOVB	SKIP_BEFORE,R4
	MOVB	SPACE_BEFORE,R5
	PUSHAL	FILE_02_RAB
	PUSHL	R5
	PUSHL	R4
	PUSHAL	FILE_02_PRT_CTL_BLK
	CALLS	#4,G^S3X$SPACE_BEFORE
	MOVAL	N$FILE_02_REC_BUF,R0
	MOVL	#0132,R1
	MOVC5	#0,#0,#BLANK,R1,(R0)
	MOVB	N_OFF,N_INFD
	MOVB	N_ON,N_INFD
	MOVC3	#0005,40002$,N$FILE_02_REC_BUF+0002
	BRB	40001$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40002$: .ASCIZ 'Alpha'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40001$:
 
	MOVB	N_OFF,N_INFD
	MOVB	N_ON,N_INFD
	MOVC3	#0005,40004$,N$FILE_02_REC_BUF+0013
	BRB	40003$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40004$: .ASCIZ 'Zoned'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40003$:
 
	MOVB	N_OFF,N_INFD
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40006$,N$FILE_02_REC_BUF+0024
	BRB	40005$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40006$: .ASCIZ 'Packed'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40005$:
 
	MOVB	N_OFF,N_INFD
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40008$,N$FILE_02_REC_BUF+0035
	BRB	40007$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40008$: .ASCIZ 'Binary'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40007$:
 
	MOVB	N_OFF,N_INFD
	MOVB	N_ON,N_INFD
	MOVC3	#0005,40011$,N$FILE_02_REC_BUF+0090
	BRB	40010$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40011$: .ASCIZ 'Cycle'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40010$:
 
	MOVB	N_OFF,N_INFD
	MOVB	N_ON,N_INFD
	MOVC3	#0005,40013$,N$FILE_02_REC_BUF+0097
	BRB	40012$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40013$: .ASCIZ 'EXCPT'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40012$:
 
	MOVAL	FILE_02_RAB,R7
	MOVW	#FILE_02_REC_SIZ,RAB$W_RSZ(R7)
	MOVAL	N$FILE_02_REC_BUF,R1
	MOVL	#FILE_02_REC_SIZ,R0
00004$: CMPB	(R1)+,#^X00
	BNEQ	00005$
	MOVB	#^A/ /,-1(R1)
00005$: SOBGTR	R0,00004$
	PUSHL	R7
	CALLS	#1,G^S3X$WRITE
	CLRB	F$CB02
	MOVB	SKIP_AFTER,R4
	MOVB	SPACE_AFTER,R5
	CLRL	R2
	PUSHAL	FILE_02_RAB
	PUSHL	R5
	PUSHL	R4
	PUSHAL	FILE_02_PRT_CTL_BLK
	CALLS	#4,G^S3X$SPACE_AFTER
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
O$0003:
	MOVB	N_OFF,N_INHD
	CMPB  N$OUTPUT_CTL,#^A/H/
	BEQL	00001$
	BRW	O$0004
00001$:
 
	CMPB	N_IN1P,N_OFF
	BEQL	00002$
	TSTB	O$OVFL
	BNEQ	00002$
	MOVB	#0,SPACE_BEFORE
	MOVB	#1,SPACE_AFTER
	MOVB	#000,SKIP_BEFORE
	MOVB	#000,SKIP_AFTER
	MOVB	#000,O$FETO
	BRW	40000$
00002$: BRW	O$0004
40000$:
	MOVB	N_ON,N_INHD
	MOVB	SKIP_BEFORE,R4
	MOVB	SPACE_BEFORE,R5
	PUSHAL	FILE_02_RAB
	PUSHL	R5
	PUSHL	R4
	PUSHAL	FILE_02_PRT_CTL_BLK
	CALLS	#4,G^S3X$SPACE_BEFORE
	MOVAL	N$FILE_02_REC_BUF,R0
	MOVL	#0132,R1
	MOVC5	#0,#0,#BLANK,R1,(R0)
	MOVAL	FILE_02_RAB,R7
	MOVW	#FILE_02_REC_SIZ,RAB$W_RSZ(R7)
	MOVAL	N$FILE_02_REC_BUF,R1
	MOVL	#FILE_02_REC_SIZ,R0
00004$: CMPB	(R1)+,#^X00
	BNEQ	00005$
	MOVB	#^A/ /,-1(R1)
00005$: SOBGTR	R0,00004$
	PUSHL	R7
	CALLS	#1,G^S3X$WRITE
	CLRB	F$CB02
	MOVB	SKIP_AFTER,R4
	MOVB	SPACE_AFTER,R5
	CLRL	R2
	PUSHAL	FILE_02_RAB
	PUSHL	R5
	PUSHL	R4
	PUSHAL	FILE_02_PRT_CTL_BLK
	CALLS	#4,G^S3X$SPACE_AFTER
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
O$0004:
	MOVB	N_OFF,N_INHD
	CMPB  N$OUTPUT_CTL,#^A/E/
	BEQL	00001$
	BRW	O$0005
00001$:
	TSTL	R6
	BEQL	00002$
	BRW	O$0005
00002$:
 
	CMPB	N_IN01,N_OFF
	BEQL	00003$
	TSTB	O$OVFL
	BNEQ	00003$
	MOVB	#0,SPACE_BEFORE
	MOVB	#1,SPACE_AFTER
	MOVB	#000,SKIP_BEFORE
	MOVB	#000,SKIP_AFTER
	MOVB	#000,O$FETO
	BRW	40000$
00003$: BRW	O$0005
40000$:
	MOVB	N_ON,N_INHD
	MOVB	SKIP_BEFORE,R4
	MOVB	SPACE_BEFORE,R5
	PUSHAL	FILE_02_RAB
	PUSHL	R5
	PUSHL	R4
	PUSHAL	FILE_02_PRT_CTL_BLK
	CALLS	#4,G^S3X$SPACE_BEFORE
	MOVAL	N$FILE_02_REC_BUF,R0
	MOVL	#0132,R1
	MOVC5	#0,#0,#BLANK,R1,(R0)
	MOVB	N_OFF,N_INFD
	MOVB	N_ON,N_INFD
	MOVL    #0009,R8
	MOVAL   A00001,R7
	MOVAL   N$FILE_02_REC_BUF+0009,R9
	MOVL    #0009,R10
	SUBL2   R10,R9
	MOVC3	R8,(R7),(R9)
40001$:
 
	MOVB	N_OFF,N_INFD
	MOVB	N_ON,N_INFD
	MOVL    #0009,R8
	MOVAL   A00002,R7
	MOVAL   N$FILE_02_REC_BUF+0020,R9
	MOVL    #0009,R10
	SUBL2   R10,R9
	PUSHL	R9
	PUSHL	R8
	PUSHL	R7
	PUSHL	R8
	CALLS	#4,G^S3X$CVT_PACKED_TO_TRAILING_NUM
	MOVB	#^A/ /,R1
	MOVL	#0,R3
	CLRL	R2
	MOVAL	N$FILE_02_REC_BUF,R0
	PUSHAL	N$DATE_PRINT_CTL
	PUSHL	R0
	PUSHL	R1
	PUSHL	R2
	PUSHL	R3
	PUSHL	R8
	PUSHL	R9
	CALLS	#7,G^S3X$EDIT_OUTPUT_FLD
40002$:
 
	MOVB	N_OFF,N_INFD
	MOVB	N_ON,N_INFD
	MOVL    #0009,R8
	MOVAL   A00003,R7
	MOVAL   N$FILE_02_REC_BUF+0031,R9
	MOVL    #0009,R10
	SUBL2   R10,R9
	PUSHL	R9
	PUSHL	R8
	PUSHL	R7
	PUSHL	R8
	CALLS	#4,G^S3X$CVT_PACKED_TO_TRAILING_NUM
	MOVB	#^A/ /,R1
	MOVL	#0,R3
	CLRL	R2
	MOVAL	N$FILE_02_REC_BUF,R0
	PUSHAL	N$DATE_PRINT_CTL
	PUSHL	R0
	PUSHL	R1
	PUSHL	R2
	PUSHL	R3
	PUSHL	R8
	PUSHL	R9
	CALLS	#7,G^S3X$EDIT_OUTPUT_FLD
40003$:
 
	MOVB	N_OFF,N_INFD
	MOVB	N_ON,N_INFD
	MOVL    #0009,R8
	MOVAL   A00004,R7
	MOVAL   N$FILE_02_REC_BUF+0042,R9
	MOVL    #0009,R10
	SUBL2   R10,R9
	PUSHL	R9
	PUSHL	R8
	PUSHL	R7
	PUSHL	R8
	CALLS	#4,G^S3X$CVT_PACKED_TO_TRAILING_NUM
	MOVB	#^A/ /,R1
	MOVL	#0,R3
	CLRL	R2
	MOVAL	N$FILE_02_REC_BUF,R0
	PUSHAL	N$DATE_PRINT_CTL
	PUSHL	R0
	PUSHL	R1
	PUSHL	R2
	PUSHL	R3
	PUSHL	R8
	PUSHL	R9
	CALLS	#7,G^S3X$EDIT_OUTPUT_FLD
40004$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN11,N_OFF
	BEQL	40005$
	MOVB	N_ON,N_INFD
	MOVC3	#0002,40006$,N$FILE_02_REC_BUF+0051
	BRB	40005$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40006$: .ASCIZ '11'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40005$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN11,N_OFF
	BNEQ	40007$
	MOVB	N_ON,N_INFD
	MOVC3	#0003,40008$,N$FILE_02_REC_BUF+0050
	BRB	40007$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40008$: .ASCIZ 'N11'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40007$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN12,N_OFF
	BEQL	40010$
	MOVB	N_ON,N_INFD
	MOVC3	#0002,40011$,N$FILE_02_REC_BUF+0056
	BRB	40010$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40011$: .ASCIZ '12'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40010$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN12,N_OFF
	BNEQ	40012$
	MOVB	N_ON,N_INFD
	MOVC3	#0003,40013$,N$FILE_02_REC_BUF+0055
	BRB	40012$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40013$: .ASCIZ 'N12'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40012$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN13,N_OFF
	BEQL	40014$
	MOVB	N_ON,N_INFD
	MOVC3	#0002,40015$,N$FILE_02_REC_BUF+0061
	BRB	40014$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40015$: .ASCIZ '13'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40014$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN13,N_OFF
	BNEQ	40016$
	MOVB	N_ON,N_INFD
	MOVC3	#0003,40017$,N$FILE_02_REC_BUF+0060
	BRB	40016$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40017$: .ASCIZ 'N13'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40016$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN21,N_OFF
	BEQL	40018$
	MOVB	N_ON,N_INFD
	MOVC3	#0002,40020$,N$FILE_02_REC_BUF+0066
	BRB	40018$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40020$: .ASCIZ '21'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40018$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN21,N_OFF
	BNEQ	40021$
	MOVB	N_ON,N_INFD
	MOVC3	#0003,40022$,N$FILE_02_REC_BUF+0065
	BRB	40021$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40022$: .ASCIZ 'N21'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40021$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN22,N_OFF
	BEQL	40023$
	MOVB	N_ON,N_INFD
	MOVC3	#0002,40024$,N$FILE_02_REC_BUF+0071
	BRB	40023$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40024$: .ASCIZ '22'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40023$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN22,N_OFF
	BNEQ	40025$
	MOVB	N_ON,N_INFD
	MOVC3	#0003,40026$,N$FILE_02_REC_BUF+0070
	BRB	40025$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40026$: .ASCIZ 'N22'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40025$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN23,N_OFF
	BEQL	40027$
	MOVB	N_ON,N_INFD
	MOVC3	#0002,40028$,N$FILE_02_REC_BUF+0076
	BRB	40027$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40028$: .ASCIZ '23'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40027$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN23,N_OFF
	BNEQ	40030$
	MOVB	N_ON,N_INFD
	MOVC3	#0003,40031$,N$FILE_02_REC_BUF+0075
	BRB	40030$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40031$: .ASCIZ 'N23'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40030$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN33,N_OFF
	BEQL	40032$
	MOVB	N_ON,N_INFD
	MOVC3	#0002,40033$,N$FILE_02_REC_BUF+0081
	BRB	40032$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40033$: .ASCIZ '33'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40032$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN33,N_OFF
	BNEQ	40034$
	MOVB	N_ON,N_INFD
	MOVC3	#0003,40035$,N$FILE_02_REC_BUF+0080
	BRB	40034$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40035$: .ASCIZ 'N33'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40034$:
 
	MOVB	N_OFF,N_INFD
	MOVB	N_ON,N_INFD
	MOVL    #0003,R8
	MOVAL   A00006,R7
	MOVAL   N$FILE_02_REC_BUF+0094,R9
	MOVL    #0003,R10
	SUBL2   R10,R9
	PUSHL	R9
	PUSHL	R8
	PUSHL	R7
	PUSHL	R8
	CALLS	#4,G^S3X$CVT_PACKED_TO_TRAILING_NUM
	MOVB	#^A/ /,R1
	MOVL	#0,R3
	CLRL	R2
	MOVAL	N$FILE_02_REC_BUF,R0
	PUSHAL	N$DATE_PRINT_CTL
	PUSHL	R0
	PUSHL	R1
	PUSHL	R2
	PUSHL	R3
	PUSHL	R8
	PUSHL	R9
	CALLS	#7,G^S3X$EDIT_OUTPUT_FLD
40036$:
 
	MOVB	N_OFF,N_INFD
	MOVB	N_ON,N_INFD
	MOVL    #0001,R8
	MOVAL   A00007,R7
	MOVAL   N$FILE_02_REC_BUF+0101,R9
	MOVL    #0001,R10
	SUBL2   R10,R9
	MOVC3	R8,(R7),(R9)
40037$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN10,N_OFF
	BEQL	40038$
	MOVB	N_ON,N_INFD
	MOVC3	#0002,40040$,N$FILE_02_REC_BUF+0104
	BRB	40038$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40040$: .ASCIZ '10'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40038$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN10,N_OFF
	BNEQ	40041$
	MOVB	N_ON,N_INFD
	MOVC3	#0003,40042$,N$FILE_02_REC_BUF+0103
	BRB	40041$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40042$: .ASCIZ 'N10'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40041$:
 
	MOVAL	FILE_02_RAB,R7
	MOVW	#FILE_02_REC_SIZ,RAB$W_RSZ(R7)
	MOVAL	N$FILE_02_REC_BUF,R1
	MOVL	#FILE_02_REC_SIZ,R0
00005$: CMPB	(R1)+,#^X00
	BNEQ	00006$
	MOVB	#^A/ /,-1(R1)
00006$: SOBGTR	R0,00005$
	PUSHL	R7
	CALLS	#1,G^S3X$WRITE
	CLRB	F$CB02
	MOVB	SKIP_AFTER,R4
	MOVB	SPACE_AFTER,R5
	CLRL	R2
	PUSHAL	FILE_02_RAB
	PUSHL	R5
	PUSHL	R4
	PUSHAL	FILE_02_PRT_CTL_BLK
	CALLS	#4,G^S3X$SPACE_AFTER
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
O$0005:
	MOVB	N_OFF,N_INHD
	CMPB  N$OUTPUT_CTL,#^A/T/
	BEQL	00001$
	BRW	O$0006
00001$:
 
	MOVB	#0,SPACE_BEFORE
	MOVB	#1,SPACE_AFTER
	MOVB	#000,SKIP_BEFORE
	MOVB	#000,SKIP_AFTER
	MOVB	#000,O$FETO
40000$:
	MOVB	N_ON,N_INHD
	MOVB	SKIP_BEFORE,R4
	MOVB	SPACE_BEFORE,R5
	PUSHAL	FILE_02_RAB
	PUSHL	R5
	PUSHL	R4
	PUSHAL	FILE_02_PRT_CTL_BLK
	CALLS	#4,G^S3X$SPACE_BEFORE
	MOVAL	N$FILE_02_REC_BUF,R0
	MOVL	#0132,R1
	MOVC5	#0,#0,#BLANK,R1,(R0)
	MOVAL	FILE_02_RAB,R7
	MOVW	#FILE_02_REC_SIZ,RAB$W_RSZ(R7)
	MOVAL	N$FILE_02_REC_BUF,R1
	MOVL	#FILE_02_REC_SIZ,R0
00004$: CMPB	(R1)+,#^X00
	BNEQ	00005$
	MOVB	#^A/ /,-1(R1)
00005$: SOBGTR	R0,00004$
	PUSHL	R7
	CALLS	#1,G^S3X$WRITE
	CLRB	F$CB02
	MOVB	SKIP_AFTER,R4
	MOVB	SPACE_AFTER,R5
	CLRL	R2
	PUSHAL	FILE_02_RAB
	PUSHL	R5
	PUSHL	R4
	PUSHAL	FILE_02_PRT_CTL_BLK
	CALLS	#4,G^S3X$SPACE_AFTER
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
O$0006:
	RSB
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
N$TRANSLATE_TBL:
	.BYTE   -1
W$NUMA:  .BLKB    16   ;NUMERIC WORK AREA
W$NUMB:  .BLKB    16   ;NUMERIC WORK AREA
W$NUMC:  .BLKB    16   ;NUMERIC WORK AREA
W$NUMD:  .BLKB    16   ;NUMERIC WORK AREA
W$NUME:  .BLKB    16   ;NUMERIC WORK AREA
W$NUMF:  .BLKB    16   ;NUMERIC WORK AREA
W$NUMG:  .BLKB    16   ;NUMERIC WORK AREA
W$NUMH:  .BLKB    16   ;NUMERIC WORK AREA
W$NUMI:  .BLKB    16   ;NUMERIC WORK AREA
W$NUMJ:  .BLKB    16   ;NUMERIC WORK AREA
W$NUMK:  .BLKB    16   ;NUMERIC WORK AREA
W$NUML:  .BLKB    16   ;NUMERIC WORK AREA
W$NUMM:  .BLKB    16   ;NUMERIC WORK AREA
W$NUMN:  .BLKB    16   ;NUMERIC WORK AREA
W$SLCD: .BYTE   0
HGH:  .ASCII	'0'
LOW:  .ASCII	'0'
EQL:  .ASCII	'0'
W$MSW:  .BYTE   0
W$SWIT: .BYTE   0
W$FSCL: .BYTE   0
W$FSCY: .BYTE   0
W$FSLR: .BYTE   0
W$FRCE: .BYTE   0
W$RIND: .BYTE   0  ;CURRENT REC IND
W$ZERP: .BYTE   ^X0C
N$ALTERNATE_SEQUENCE_TBL:
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
MATCH_FLAG01:	.BYTE	0
W$SQTB:
	.BYTE   -1
W$MRSY:  .BLKB  0001
W$MRWK:  .BLKB  0001
F$MR01:  .BLKB   0001
F$MS01:  .BLKB   0001
W$MRTB:
	.LONG   0001
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.BYTE   -1
W$LRWK:  .BLKB  0001
F$LR01:  .BLKB   0001
W$LRTB:
	.LONG   0001
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.BYTE   -1
W$ADSC:
A$DS__: .LONG  ^A/A/,N_IN__,0001,0099,^A/ A/,099
      .ASCII  /*IN   /
	.BYTE     -1
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
A00001:  .BLKB  0009
A00002:  .BLKB  0005
A00003:  .BLKB  0005
A00004:  .BLKB  0005
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
N$INITIALIZE: .JSB32_ENTRY
	PUSHAL	N$ALTERNATE_SEQUENCE_TBL
	PUSHAL	UDATE
	PUSHAL	N_INU1
	PUSHAL	N_INKA
	PUSHAL	N_INOA
	PUSHAL	N_INL1
	PUSHAL	N_IN01
	CALLS	#7,G^S3X$INITIALIZE_COMMON
	RSB
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
N$INITIALIZE_FLDS: .JSB32_ENTRY
	 MOVC5	#0,#0,#^A/0/,#0006,UDATE 
	 MOVC5	#0,#0,#^A/0/,#0002,UMONTH
	 MOVC5	#0,#0,#^A/0/,#0002,UDAY  
	 MOVC5	#0,#0,#^A/0/,#0002,UYEAR 
	 MOVC5	#0,#0,#NULL,#0004,PAGE  
	 MOVC5	#0,#0,#NULL,#0004,PAGE1 
	 MOVC5	#0,#0,#NULL,#0004,PAGE2 
	 MOVC5	#0,#0,#NULL,#0004,PAGE3 
	 MOVC5	#0,#0,#NULL,#0004,PAGE4 
	 MOVC5	#0,#0,#NULL,#0004,PAGE5 
	 MOVC5	#0,#0,#NULL,#0004,PAGE6 
	 MOVC5	#0,#0,#NULL,#0004,PAGE7 
	 MOVC5	#0,#0,#BLANK,#0008,$STAT$
	 MOVC5	#0,#0,#BLANK,#0009,A00001
	 MOVC5	#0,#0,#NULL,#0005,A00002
	 MOVC5	#0,#0,#NULL,#0005,A00003
	 MOVC5	#0,#0,#NULL,#0005,A00004
	 MOVC5	#0,#0,#NULL,#0002,A00006
	 MOVC5	#0,#0,#BLANK,#0001,A00007
	 MOVC5	#0,#0,#BLANK,#0009,P00002
	 MOVC5	#0,#0,#BLANK,#0004,P00004
	 MOVC5	#0,#0,#BLANK,#0003,P00005
	 RSB
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
A00005:	.ADDRESS _PROG5A
L$0001:  .ASCII '1'
L$0002:  .BYTE   ^B00011100
A00006:  .BYTE   ^B00000000
         .BYTE   ^B00001100
L$0003:  .ASCII 'A'
A00007:  .ASCII ' '
L$0004:  .ASCII 'B'
L$0005:  .ASCII 'C'
L$0006:  .ASCII 'D'
L$0007:  .ASCII 'E'
P00002:  .ASCII '         '
P00004:  .ASCII '    '
P00005:  .ASCII '   '
N_SCREEN_SPEC_TBL:
F$SBUF:
F$SSIZ:  .LONG  0
SAV_STK:	.LONG	0
RPG_STATUS:	.LONG	0	;Program exit status
N_EXCPT:	.LONG	0	;Exception INFSR call flg
N_FUN:		.LONG	0	;Exception handling ind
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
.IF DEFINED VAX
	.ENTRY	_MASTER5,^M<>
.ENDC
.IF DEFINED ALPHA
_MASTER5:: .CALL_ENTRY -
		MAX_ARGS=0000+PARM_EXTEND, -
		HOME_ARGS=TRUE
.ENDC
	MOVL	#1,RPG_STATUS
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP01:
	MOVB	N_OFF,N_INRT
	CLRL	N$NUMBER_OF_ARGUMENTS
	CALLS	#0,G^S3X$CONNECT_CRT
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP02:
	JSB	N$INITIALIZE
	BLBC	R0,20$
	TSTL	4(AP)
	BEQL	20$
	TSTB	N$PROG_ACTIVE
	BNEQ	10$
	CALLS	#0,G^S3X$DETACH_CRT
	MOVL	#2,R0
	RET
  10$:	MOVB	#1,N$FREE_FLG
	BRW	STEP37
  20$:	TSTB	N$PROG_ACTIVE
	BEQL	30$
	BRW	STEP05
  30$:	MOVB	#1,N$PROG_ACTIVE
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP03:
	JSB	N$INITIALIZE_FLDS
	MOVAL	N_IN01,R0
00001$:	MOVB	#^A/0/,(R0)+
	CMPB	(R0),#-1
	BNEQ	00001$
	MOVB	N_ON,N_IN1P
	MOVB	N_ON,N_INL0
	PUSHL	#0
	PUSHAL	N$DATE_PRINT_CTL
	CALLS	#2,G^S3X$READ_EXTERNAL_IND_DATE_FILE
	PUSHAL	W$ADSC
	CALLS	#1,G^S3X$INIT_ARYS
 
	MOVAL	FILE_01_FAB,R6
	MOVAL	FILE_01_RAB,R7
	CLRL	R0
	PUSHL	R0
	PUSHL   R1
	PUSHL   R8
	PUSHL   R7
	PUSHL   R6
	CALLS	#5,G^S3X$OPEN_FILE	;CALL    
 
	MOVAL	FILE_02_FAB,R6
	MOVAL	FILE_02_RAB,R7
	PUSHL	R8
       PUSHL   R7
       PUSHL   R6
	CALLS	#3,G^S3X$CREATE_FILE	;REPORT  
 
	MOVAL	W$MRTB,R6		;Ctl tbl addr
	MOVL	(R6),R7			;Entry len
	MOVC5	#0,#0,#^X0,R7,F$MR01	;Init fld ascending
	PUSHL	R6
	CALLS	#1,G^S3X$CHK_CTL_TBL
 
	MOVAL	W$MRTB,R6		;Ctl tbl addr
	MOVC5	#0,#0,#^X0,R7,F$MS01	;Init fld ascending
	PUSHL	R6
	CALLS	#1,G^S3X$CHK_CTL_TBL
 
	MOVAL	W$LRTB,R6		;Ctl tbl addr
	MOVL	(R6),R7			;Entry len
	MOVC5	#0,#0,#^X0,R7,F$LR01	;Init fld ascending
	PUSHL	R6
	CALLS	#1,G^S3X$CHK_CTL_TBL
	MOVAL	W$MRTB,R6		;Ctl tbl addr
	MOVL	(R6),R7			;Entry len
	MOVC5	#0,#0,#^X0,R7,W$MRWK	;Init fld ascending
	PUSHL   R6
	CALLS	#1,G^S3X$CHK_CTL_TBL
 
	MOVAL	W$MRTB,R6
	MOVC5	#0,#0,#^X0,R7,W$MRSY
	PUSHL   R6
	CALLS	#1,G^S3X$CHK_CTL_TBL
 
	MOVAL	W$LRTB,R6
	MOVL	(R6),R7
	MOVC5	#0,#0,#^X0,R7,W$LRWK
	PUSHL   R6
	CALLS	#1,G^S3X$CHK_CTL_TBL
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP04:
	MOVB	#^A/H/,N$OUTPUT_CTL
	MOVB	#1,N$DETAIL_FLG
	JSB	G^N$OUTPUT
	CLRB	N$DETAIL_FLG
	MOVB	#^A/D/,N$OUTPUT_CTL
	MOVB	#1,N$DETAIL_FLG
	JSB	G^N$OUTPUT
	CLRB	N$DETAIL_FLG
	MOVL	SP,SAV_STK
	MOVAL	N_INOA,R1
	MOVL	#7,R0
  10$:	CMPB	(R1),N_OFF
	BEQL	20$
	CMPB	(R1),#^A/2/
	BLSS	15$
	MOVB	#^A/2/,(R1)
	TSTB	N$FETCH_OVERFLOW_FLG
	BNEQ	15$
	MOVB	#2,N$FETCH_OVERFLOW_FLG
 15$:	DECB	(R1)
 20$:	INCL	R1
	SOBGTR	R0,10$
	TSTB	N$FETCH_OVERFLOW_FLG
	BEQL	STEP05
	DECB	N$FETCH_OVERFLOW_FLG
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP05:
	MOVB	#^A/0/,922$
	MOVAL	N_INH1,R2
	MOVL	#9,R1
  10$:	INCB	922$
	CMPB	(R2),N_OFF
	BEQL	30$
	PUSHL	R2
	PUSHAL	920$
	CALLS	#1,G^S3X$HALT10
	BLBC	R0,STEP06
	POPL	R2
  30$:	MOVB	N_OFF,(R2)
	INCL	R2
	SOBGTR	R1,10$
	JMP	STEP08
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
  920$:	.ASCII	/RPG HALT NUMBER /
  922$:	.ASCIZ	/0/
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP06:
	CLRL	(SP)+
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP07:
	JMP	STEP37
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP08:
	MOVQ	#^A/00000000/,N_INL1
	MOVB	N_OFF,N_INL9
	MOVB	N_OFF,N_IN1P
	MOVB	N_OFF,N_IN01
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP09:
	CMPB	N_INLR,N_ON
	BNEQ	STEP11
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP10:
  	MOVQ	#^A/11111111/,N_INL1
	MOVB	N_ON,N_INL9
	JMP	STEP29
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP11:
	CMPB	N_INRT,N_ON
	BEQL	STEP12
	JMP	STEP14
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP12:	;Return *ENTRY PLIST parms if present
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP13:	;Return immediately to caller
  20$:	CALLS	#0,G^S3X$DETACH_CRT
	MOVL	#1,R0
	RET
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP14:
	CMPB	F$IO01,#1
	BNEQ	00004$
	BRW	00005$
00004$:	CMPB	F$IO01,#2
	BEQL	00003$
	MOVB	#1,F$IO01
00002$:	TSTB	EOF_01_FLG
	BNEQ	00005$
	CLRL	N_FUN
	MOVAL	FILE_01_RAB,R7
	CLRL	R10
	MOVB	#RAB$C_SEQ,RAB$B_RAC(R7)
	JSB	G^N$READ_FILE_01
	BLBC	R0,00005$
00003$:	JSB	G^N$IDENTIFY_REC_FROM_FILE_01
	BLBS	R0,00002$
00005$:
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP15:
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP20:
	MOVB	W$FRCE,W$SLCD
	CLRB	W$FRCE
	CMPB	W$SLCD,#01
	BNEQ	00007$
	TSTB	EOF_01_FLG
	BNEQ	00006$
	JMP	STEP24
00006$: JMP	STEP22
00007$:
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP22: CLRB	W$SLCD
	TSTB	EOF_01_FLG
	BNEQ	00008$
	TSTB	F$MR01
	BNEQ	00008$
	MOVB	#01,W$SLCD
	JMP	STEP24
00008$:
 
	MOVAL	W$MRTB,R6		;Ctl tbl addr
	MOVL	(R6),R7			;Entry len
	MOVC5	#0,#0,#^X0,R7,W$MRWK	;Init fld ascending
       PUSHL   R6
	CALLS	#1,G^S3X$CHK_CTL_TBL
	CLRB	W$MSW
	TSTB	EOF_01_FLG
	BNEQ	00011$
	TSTB	W$MSW
	BEQL	00010$
	MOVL	W$MRTB,R0
	MOVAL	F$MR01,R9
	MOVL 	R0,R8
	MOVAL	W$MRWK,R7
	MOVL	R0,R6
	PUSHAL	HGH
	PUSHAL	LOW
	PUSHAL	EQL
	PUSHL	R6
	PUSHL	R7
	PUSHL	R8
	PUSHL	R9
	CALLS	#7,G^S3X$CMP_ALPHAMERIC
	CMPB	HGH,N_ON
	BEQL	00011$
	CMPB	EQL,N_ON
	BEQL	00011$
00010$: MOVL	W$MRTB,R7
	MOVC3	R7,F$MR01,W$MRWK
	MOVB	#01,W$SLCD
	MOVB	#1,W$MSW
00011$:
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP24:
	CMPB	W$SLCD,#01
	BNEQ	00012$
	CLRB	F$IO01
00012$:
	TSTB	EOF_01_FLG
	BNEQ	00013$
	JMP	STEP26
00013$:
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
CAN_CL:
	MOVL	SP,SAV_STK
	MOVB	N_ON,N_INLR
	MOVB	N_ON,N_INL9
	MOVQ	#^A/11111111/,N_INL1
	JMP	STEP29
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP26:
	CLRL	R10
	CLRL	R6
	CMPB	W$SLCD,#01
	BNEQ	00001$
	CMPB	F$TY01,#001
	BNEQ	00001$
	MOVB	N_ON,N_IN01
	MOVB	#01,R10
	MOVB	#001,R6
	MOVAL	F$LR01,R8
	JMP	STEP27
00001$:
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP27:
	TSTB	R10
	BNEQ	20$
	BRW	STEP29
 
  20$:	PUSHL	R6
	PUSHAL	N$EXTRACT_CONTROL_FLD_FLG
	PUSHL	R8
	PUSHAL	W$LRTB
	PUSHL	R10
	CALLS	#5,G^S3X$EXTRACT_CTL_FLDS
	MOVAL	W$LRWK,R7
	MOVAL	W$LRTB,R9
	PUSHAL	W$LRTB
	PUSHL	R8
	PUSHAL	W$LRWK
	PUSHL	R6
	PUSHL	R10
	CALLS	#5,G^S3X$CHK_LEVEL_BRK
	TSTB	R0
	BNEQ	STEP28
	BRW	STEP29
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP28:
	CMPB	R0,#9
	BEQL	2$
	CMPB	R0,#8
	BEQL	3$
	CMPB	R0,#7
	BEQL	4$
	CMPB	R0,#6
	BEQL	5$
	CMPB	R0,#5
	BEQL	6$
	CMPB	R0,#4
	BEQL	7$
	CMPB	R0,#3
	BEQL	8$
	CMPB	R0,#2
	BEQL	9$
	BRB	10$
 
  2$:	MOVB	N_ON,N_INL9
  3$:	MOVB	N_ON,N_INL8
  4$:	MOVB	N_ON,N_INL7
  5$:	MOVB	N_ON,N_INL6
  6$:	MOVB	N_ON,N_INL5
  7$:	MOVB	N_ON,N_INL4
  8$:	MOVB	N_ON,N_INL3
  9$:	MOVB	N_ON,N_INL2
  10$:	MOVB	N_ON,N_INL1
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP29:
	CMPB	N_INLR,N_OFF
	BNEQ	10$
	TSTB	W$FSLR
	BNEQ	10$
	MOVB	#1,W$FSLR
	JMP	STEP32
  10$:	MOVL	SP,SAV_STK
	JMP	C$TOT
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
C$TOTX: MOVB	#^A/T/,N$OUTPUT_CTL
	JSB	G^N$OUTPUT
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP32:
	CMPB	N_INLR,N_ON
	BEQL	STEP33
	JMP	STEP40
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP33:
	MOVB	#^A/0/,902$
	MOVAL	N_INH1,R2
	MOVL	#9,R1
 
  2$:	INCB	902$
	CMPB	(R2),N_OFF
	BEQL	10$
 
  4$:	PUSHAL	900$
	CALLS	#1,G^S3X$HALT10
	BLBS	R0,10$
	JMP	STEP34
 
  10$:	MOVB	N_OFF,(R2)
	INCL	R2
	SOBGTR	R1,2$
	JMP	STEP34
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
  900$:	.ASCII	#RPG HALT NUMBER #
  902$:	.ASCIZ	#X#
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP34:
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP36:
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
	CALLS	#0,G^S3X$WRITE_EXTERNAL_IND_DATE_FIL
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP37:
	CLRB	N$PROG_ACTIVE
	JSB	G^N$CLOSE_FILES
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP38:
	CALLS	#0,G^S3X$DETACH_CRT
	PUSHAL	W$SQTB
	CALLS	#1,G^S3X$SEQ_CHK_EOJ
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP39:
	CMPL	RPG_STATUS,#2
	BEQL	100$
	CMPL	N_INH1,#^A/0000/
	BNEQ	20$
	CMPL	N_INH5,#^A/0000/
	BNEQ	20$
	CMPB	N_INH9,#^A/0/
	BEQL	100$
  20$:
	PUSHAL	900$
	CALLS	#1,G^LIB$PUT_OUTPUT
	MOVL	#0,RPG_STATUS
  100$:	MOVL	#1,R1
	CMPB	N_INLR,N_ON
	BNEQ	500$
	CLRL	R1
  500$:	MOVL	RPG_STATUS,R0
	RET
 
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
  900$:	.ASCID	\WARNING - Program exited with Halt indicator set - MASTER5\
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP40:
	MOVAL	N_INOA,R0
	CMPL	(R0)+,#^A/0000/
	BNEQ	2$
	CMPL	(R0),#^A/0000/
	BNEQ	2$
	BRW	10$
  2$:
	MOVAL	FILE_02_PRT_CTL_BLK,R3
	CMPB	PRLCT(R3),LSLCT(R3)
	BGEQ	4$
	BRW	10$
  4$:	INCB	O$OVFL
	MOVB	#^A/T/,N$OUTPUT_CTL
	JSB	G^N$OUTPUT
	MOVB	#^A/H/,N$OUTPUT_CTL
	JSB	G^N$OUTPUT
	MOVB	#^A/D/,N$OUTPUT_CTL
	JSB	G^N$OUTPUT
	CLRB	O$OVFL
	MOVB	#1,N$FETCH_OVERFLOW_FLG
  10$:
	MOVAL	FILE_02_PRT_CTL_BLK,R3
	MOVB	PRLCT(R3),LSLCT(R3)
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP42: MOVB	N_OFF,N_INMR
	CLRB	W$MSW
	MOVL	W$MRTB,R7
	CMPB	W$SLCD,#01
	BNEQ	90002$
	TSTB	F$MR01
	BEQL	90002$
	MOVC3	R7,F$MR01,W$MRSY
	MOVB	#1,W$MSW
90002$:
	JMP	STEP43
90004$: MOVB	N_ON,N_INMR
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP43:
	CMPB	W$SLCD,#01
	BNEQ	00001$
	JSB	G^N$MOVE_DATA_TO_FLDS_FOR_FILE_01
00001$:
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP46:
	MOVL	SP,SAV_STK
	MOVB	#1,N$DETAIL_FLG
	JMP	C$DET
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
C$DETX:
	CLRB	N$DETAIL_FLG
	JMP	STEP04
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
N$MOVE_DATA_TO_FLDS_FOR_FILE_01: .JSB32_ENTRY
	CMPB	REC_ID_FLG_01,#01
	BNEQ	00001$
	JMP	80000$
00001$:
	JMP	90000$
80000$:
 
	;ALPHA 
 
	MOVC3	#0009,N$FILE_01_REC_BUF+0001-1,A00001
 
	;ZONED 
 
	MOVL	#0009,R0
	MOVAL	N$FILE_01_REC_BUF+0010-1,R1
	MOVL	R0,R2
	MOVAL	A00002,R3
	PUSHL   R3
	PUSHL   R2
	PUSHL   R1
	PUSHL   R0
	CALLS	#4,G^S3X$CVT_TRAILING_NUM_TO_PACKED
 
	;PACKED
 
	MOVL	#0009,R0
	MOVAL	N$FILE_01_REC_BUF+0019-1,R1
	MOVAL	A00003,R2
	PUSHL	R2
	PUSHL   R1
	PUSHL   R0
	CALLS	#3,G^S3X$MOV_PACKED
 
	;BINARY
 
	CVTLP	N$FILE_01_REC_BUF+0024-1,#0009,A00004
90000$:
	BRW	N$END_OF_INPUT
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
N$END_OF_INPUT:
	RSB
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
N$SETOF_REC_INDS: .JSB32_ENTRY
	CMPB	W$SLCD,#01
	BEQL	00001$
	JMP	00002$
00001$:
	MOVB	N_OFF,N_IN01
00002$:
	RSB
	.END	_MASTER5
3364.2Mail #2HYDRA::BRYANTWed Mar 19 1997 16:472281
Date:	19-MAR-1997 16:27:43.27
From:	SMTP%"[email protected]"
Subj:	Original Problem Report - TSTKEY
To:
mail11:;@[email protected]@digital.com;@[email protected]
ec.com;; (@macro)
CC:	[email protected]
2249 records, external message id MAIL$180AEF3F0005009B.MAI
Attributes: None
Return-Path: [email protected]
Received: by asimov.mro.dec.com (UCX V4.1-12, OpenVMS V6.2 VAX);
	Wed, 19 Mar 1997 16:27:38 -0500
Received: from pobox1.pa.dec.com by fluid.mro.dec.com
(5.65v4.0/1.1.8.2/19Nov96-0448PM)
	id AA25719; Wed, 19 Mar 1997 16:27:51 -0500
Received: by pobox1.pa.dec.com; id AA07314; Wed, 19 Mar 97 13:27:51 -0800
Received: from us3rmc.pa.dec.com by mail2.digital.com (5.65 EXP 4/12/95 for
V3.2/1.0/WV)
	id AA18163; Wed, 19 Mar 1997 13:21:51 -0800
Received: from isvnet.enet by us3rmc.pa.dec.com (5.65/rmc-22feb94)
	id AA16544; Wed, 19 Mar 97 13:21:45 -0800
Message-Id: <[email protected]>
Received: from isvnet.enet; by us3rmc.enet; Wed, 19 Mar 97 13:21:47 PST
Date: Wed, 19 Mar 97 13:21:47 PST
From: Moving yesterday's software into tomorrow.  19-Mar-1997 1628
<[email protected]>
To:
mail11:;@[email protected]@digital.com;@[email protected]
ec.com;; (@macro)
Cc: [email protected]
Apparently-To: [email protected]
Subject: Original Problem Report - TSTKEY

From:	ISVNET::MSI "Moving yesterday's software into tomorrow.  07-Mar-1997
2240"  7-MAR-1997 22:41:14.42
To:	@MARVIN_DAVIS
CC:	MSI
Subj:	Problem with Macro-32 compiler on Alpha

Dear Marvin,

The attached Macro-32 program appears to cause the Macro-32 compiler on the
Alpha some trouble.  Can you give me any idea what the problem might be?

The program is being compiled with the following command:

	  MACRO -
	    /NODIAG -
	    /NOLIST -
	    /MIGRATE -
	    /UNALIGN -
	    /WARN=NOINFO -
	    /OBJECT=TSTKEY -
		SYS$LIBRARY:ARCH_DEFS.MAR + []TSTKEY.MAR

Thanks,

Bruce C.

  Attn: Mr. Bruce Claremont
  Migration Specialties International - ASAP Organization
  496 Manchester Drive
  Florissant, CO   80816-9255

  Phone:	(719)687-9196
  Fax:	  	(719)687-8747
  Internet:	[email protected]



	.TITLE  TSTKEY
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
	.ASCII  'Version: 6.2   Distribution Date: 11-JAN-1997  '
	.ASCII	' 7-MAR-1997 19:27:12  '
 
	$DSCDEF
 
	BLANK	= ^X20
	NULL	= ^X00
 
N_OFF:		.ASCII	'0'
N_ON:		.ASCII	'1'
 
N_HALT10_MSG_01: .ASCIZ	'RTS-HLT1001 - Unidentified record type'
N_HALT10_MSG_02: .ASCIZ	'RTS-HLT1002 - Error occurred during an I/O operation to
a SPECIAL device file'
 
TMPBYT1:	.BYTE	0
N$DETAIL_FLG:			.BYTE	0
N$EXTRACT_CONTROL_FLD_FLG:	.BYTE	0
N$FETCH_OVERFLOW_FLG:		.BYTE	0
N$FREE_FLG:			.BYTE	0
N$INVALID_PARAMETER:		.BYTE	0
N$NUMBER_OF_ARGUMENTS:		.LONG	0
N$TEMP_ADDR:			.LONG	0
N$TEMP_SIZE:			.LONG	0
N$OUTPUT_CTL:			.BYTE	0
N$PARAMETER_POINTER:		.LONG	0
N$PROG_ACTIVE:			.BYTE	0
PAGE:	.LONG	0
PAGE1:	.LONG	0
PAGE2:	.LONG	0
PAGE3:	.LONG	0
PAGE4:	.LONG	0
PAGE5:	.LONG	0
PAGE6:	.LONG	0
PAGE7:	.LONG	0
V51_HIGH:	.ASCII	'0'
V51_LOW:	.ASCII	'0'
V51_EQUAL:	.ASCII	'0'
UDATE:		.ASCII	'000000'
UMONTH:	.ASCII	'00'
UDAY:		.ASCII	'00'
UYEAR:		.ASCII	'00'
N$DUMMY_IND:	.ASCII	'0'
$STAT$:	.ASCII	'        '
 
N_INHD:	.ASCII	'0'	;'*' indicator output header
N_INFD:	.ASCII	'0'	;'*' indicator output field
N_IN00:	.ASCII	'0'	;'*' indicator calc
N_IN__:	;Internal indicator array label.
N_IN01:	.ASCII	'0'
N_IN02:	.ASCII	'0'
N_IN03:	.ASCII	'0'
N_IN04:	.ASCII	'0'
N_IN05:	.ASCII	'0'
N_IN06:	.ASCII	'0'
N_IN07:	.ASCII	'0'
N_IN08:	.ASCII	'0'
N_IN09:	.ASCII	'0'
N_IN10:	.ASCII	'0'
N_IN11:	.ASCII	'0'
N_IN12:	.ASCII	'0'
N_IN13:	.ASCII	'0'
N_IN14:	.ASCII	'0'
N_IN15:	.ASCII	'0'
N_IN16:	.ASCII	'0'
N_IN17:	.ASCII	'0'
N_IN18:	.ASCII	'0'
N_IN19:	.ASCII	'0'
N_IN20:	.ASCII	'0'
N_IN21:	.ASCII	'0'
N_IN22:	.ASCII	'0'
N_IN23:	.ASCII	'0'
N_IN24:	.ASCII	'0'
N_IN25:	.ASCII	'0'
N_IN26:	.ASCII	'0'
N_IN27:	.ASCII	'0'
N_IN28:	.ASCII	'0'
N_IN29:	.ASCII	'0'
N_IN30:	.ASCII	'0'
N_IN31:	.ASCII	'0'
N_IN32:	.ASCII	'0'
N_IN33:	.ASCII	'0'
N_IN34:	.ASCII	'0'
N_IN35:	.ASCII	'0'
N_IN36:	.ASCII	'0'
N_IN37:	.ASCII	'0'
N_IN38:	.ASCII	'0'
N_IN39:	.ASCII	'0'
N_IN40:	.ASCII	'0'
N_IN41:	.ASCII	'0'
N_IN42:	.ASCII	'0'
N_IN43:	.ASCII	'0'
N_IN44:	.ASCII	'0'
N_IN45:	.ASCII	'0'
N_IN46:	.ASCII	'0'
N_IN47:	.ASCII	'0'
N_IN48:	.ASCII	'0'
N_IN49:	.ASCII	'0'
N_IN50:	.ASCII	'0'
N_IN51:	.ASCII	'0'
N_IN52:	.ASCII	'0'
N_IN53:	.ASCII	'0'
N_IN54:	.ASCII	'0'
N_IN55:	.ASCII	'0'
N_IN56:	.ASCII	'0'
N_IN57:	.ASCII	'0'
N_IN58:	.ASCII	'0'
N_IN59:	.ASCII	'0'
N_IN60:	.ASCII	'0'
N_IN61:	.ASCII	'0'
N_IN62:	.ASCII	'0'
N_IN63:	.ASCII	'0'
N_IN64:	.ASCII	'0'
N_IN65:	.ASCII	'0'
N_IN66:	.ASCII	'0'
N_IN67:	.ASCII	'0'
N_IN68:	.ASCII	'0'
N_IN69:	.ASCII	'0'
N_IN70:	.ASCII	'0'
N_IN71:	.ASCII	'0'
N_IN72:	.ASCII	'0'
N_IN73:	.ASCII	'0'
N_IN74:	.ASCII	'0'
N_IN75:	.ASCII	'0'
N_IN76:	.ASCII	'0'
N_IN77:	.ASCII	'0'
N_IN78:	.ASCII	'0'
N_IN79:	.ASCII	'0'
N_IN80:	.ASCII	'0'
N_IN81:	.ASCII	'0'
N_IN82:	.ASCII	'0'
N_IN83:	.ASCII	'0'
N_IN84:	.ASCII	'0'
N_IN85:	.ASCII	'0'
N_IN86:	.ASCII	'0'
N_IN87:	.ASCII	'0'
N_IN88:	.ASCII	'0'
N_IN89:	.ASCII	'0'
N_IN90:	.ASCII	'0'
N_IN91:	.ASCII	'0'
N_IN92:	.ASCII	'0'
N_IN93:	.ASCII	'0'
N_IN94:	.ASCII	'0'
N_IN95:	.ASCII	'0'
N_IN96:	.ASCII	'0'
N_IN97:	.ASCII	'0'
N_IN98:	.ASCII	'0'
N_IN99:	.ASCII	'0'
N_INXX:	.ASCII	'0'
N_INL1:	.ASCII	'0'
N_INL2:	.ASCII	'0'
N_INL3:	.ASCII	'0'
N_INL4:	.ASCII	'0'
N_INL5:	.ASCII	'0'
N_INL6:	.ASCII	'0'
N_INL7:	.ASCII	'0'
N_INL8:	.ASCII	'0'
N_INL9:	.ASCII	'0'
N_INLR:	.ASCII	'0'
N_INRT:	.ASCII	'0'
N_INH1:	.ASCII	'0'
N_INH2:	.ASCII	'0'
N_INH3:	.ASCII	'0'
N_INH4:	.ASCII	'0'
N_INH5:	.ASCII	'0'
N_INH6:	.ASCII	'0'
N_INH7:	.ASCII	'0'
N_INH8:	.ASCII	'0'
N_INH9:	.ASCII	'0'
N_IN1P:	.ASCII	'1'
N_INL0:	.ASCII	'0'
N_INMR:	.ASCII	'0'
N_INOA:	.ASCII	'0'
N_INOB:	.ASCII	'0'
N_INOC:	.ASCII	'0'
N_INOD:	.ASCII	'0'
N_INOE:	.ASCII	'0'
N_INOF:	.ASCII	'0'
N_INOG:	.ASCII	'0'
N_INOV:	.ASCII	'0'
N_INKA:	.ASCII	'0'
N_INKB:	.ASCII	'0'
N_INKC:	.ASCII	'0'
N_INKD:	.ASCII	'0'
N_INKE:	.ASCII	'0'
N_INKF:	.ASCII	'0'
N_INKG:	.ASCII	'0'
N_INKH:	.ASCII	'0'
N_INKI:	.ASCII	'0'
N_INKJ:	.ASCII	'0'
N_INKK:	.ASCII	'0'
N_INKL:	.ASCII	'0'
N_INKM:	.ASCII	'0'
N_INKN:	.ASCII	'0'
N_INKP:	.ASCII	'0'
N_INKQ:	.ASCII	'0'
N_INKR:	.ASCII	'0'
N_INKS:	.ASCII	'0'
N_INKT:	.ASCII	'0'
N_INKU:	.ASCII	'0'
N_INKV:	.ASCII	'0'
N_INKW:	.ASCII	'0'
N_INKX:	.ASCII	'0'
N_INKY:	.ASCII	'0'
N_INU1:	.ASCII	'0'
N_INU2:	.ASCII	'0'
N_INU3:	.ASCII	'0'
N_INU4:	.ASCII	'0'
N_INU5:	.ASCII	'0'
N_INU6:	.ASCII	'0'
N_INU7:	.ASCII	'0'
N_INU8:	.ASCII	'0'
	.BYTE	-1
N$DATE_PRINT_CTL: .ASCII /   J/
	TIMEOUT = 10
 
FILE_01_NAME:	.ASCIZ	'SCREEN  '
	.ALIGN   LONG
 
  FILE_01_REC_SIZ = 1090
  N$FILE_01_REC_BUF:	.BLKB FILE_01_REC_SIZ
 
  N$FILE_01_REC_DESC:	.WORD	 FILE_01_REC_SIZ
			.BYTE	 DSC$K_DTYPE_T
			.BYTE	 DSC$K_CLASS_S
			.ADDRESS N$FILE_01_REC_BUF
  EOF_01_FLG:		.BYTE	0	;End of file flag.
  F$TY01:		.BYTE	0,0
  REC_ID_FLG_01:	.BYTE	0
  F$IO01:		.BYTE	0	;IO CONTROL SWITCH
  F$CB01:		.BYTE	2	;COMBINED FILE IO CTL SW
  F$RF01:		.BLKB	8	;RFA SAVE SPACE
 
FILE_02_NAME:	.ASCIZ	'DEBUG   '
	.ALIGN   LONG
  FILE_02_FAB:	$FAB	FNM=<DEBUG>,-
			DNM=<.DAT>,-
			FAC=<PUT,TRN>,-
			FOP=<CBT,TEF,SQO,DFW>,-
			RFM=FIX,-
			MRS=FILE_02_REC_SIZ,-
			SHR=<GET,PUT,UPD,DEL>,-
			NAM=FILE_02_NAM
 
  FILE_02_NAM:	$NAM	RSA=N$FILE_02_NAME,-
			RSS=NAM$C_MAXRSS
 
  FILE_02_RAB:	$RAB	FAB=FILE_02_FAB,-
			RBF=N$FILE_02_REC_BUF,-
			RSZ=FILE_02_REC_SIZ,-
			TMO=TIMEOUT
 
  FILE_02_REC_SIZ = 0070
  N$FILE_02_REC_BUF:	.BLKB FILE_02_REC_SIZ
  N$FILE_02_NAME:	.BLKB	NAM$C_MAXRSS
  EOF_02_FLG:		.BYTE	0	;End of file flag.
  F$TY02:		.BYTE	0,0
  REC_ID_FLG_02:	.BYTE	0
  F$IO02:		.BYTE	0	;IO CONTROL SWITCH
  F$CB02:		.BYTE	2	;COMBINED FILE IO CTL SW
  F$RF02:		.BLKB	8	;RFA SAVE SPACE
 
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
N$CLOSE_FILES: .JSB32_ENTRY
	$CLOSE	FAB=FILE_02_FAB	;DEBUG   
	RSB
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
N$READ_FILE_01: .JSB32_ENTRY
	MOVC5	#0,#0,#^A/ /,#FILE_01_REC_SIZ,N$FILE_01_REC_BUF
	TSTB	F$CB01
	BEQL	3$
	CMPB	F$CB01,#2
	BEQL	4$
	MOVB	#1,EOF_01_FLG
	CLRL	R0
	RSB
3$:	MOVB	#1,F$CB01
4$:
	MOVAL	EOF_01_FLG,R5
	PUSHAL	N$FILE_01_REC_DESC
	CALLS	#1,G^S3X$READ_WORKSTN
	PUSHL	R0
	PUSHAL	E$WS01
	CALLS	#1,G^S3X$INFSR_UPDATE_AFTER_READ
	MOVL	(SP)+,R0
	TSTL	N_FUN		;Ind prsnt in col 56-57?
	BEQL	190$		;No
	MOVL	N_FUN,R10
	MOVB	N_OFF,(R10)	;Clr ind
  190$:	PUSHL	R0	;Yes
	MOVL	E$WS01,R0
	CMPW	(R0),#^A/00/	;Funct key entered?
	BEQL	200$		;No
	CLRB	F$IO01		;Clear I/O flag for file.
	TSTL	N_FUN		;Ind in 56-57 prsnt?
	BEQL	210$		;No
	MOVB	N_ON,(R10)	;Yes - Set ind
  200$:	MOVL	(SP)+,R0
	RSB
  210$:	MOVL	(SP)+,R0
	JMP	N$INFSR_01	;Yes - Execute INFSR routine.
	RSB
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
N$IDENTIFY_REC_FROM_FILE_01: .JSB32_ENTRY
	CLRB	F$TY01
	MOVB	#^A/1/,R0
	MOVB	N$FILE_01_REC_BUF+0001-1,R1
	CMPB	R0,R1
	BEQL	00001$
	JMP	 40001$
00001$:
60001$: MOVB	#099,F$TY01
	MOVB	#01,REC_ID_FLG_01
	CLRL	R0
	RSB
40001$:
60002$: MOVB	#100,F$TY01
	MOVB	#02,REC_ID_FLG_01
	CLRL	R0
	RSB
40002$:
	PUSHAL	N_HALT10_MSG_01
	CALLS	#1,G^S3X$HALT10
	RSB
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
C$DET:
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;SETOF
 
	MOVB  N_OFF,N_IN54
	MOVB  N_OFF,N_IN56
	MOVB  N_OFF,N_IN58
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;READ 
 
	CLRL	N_FUN
	JSB	G^N$READ_FILE_01
	BLBS	R0,40001$
	PUSHAL	40003$
	CALLS	#1,G^S3X$HALT10
	BRW	40002$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40003$:	.ASCIZ	\END OF FILE ON SCREEN   \
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40001$:
	JSB	G^N$IDENTIFY_REC_FROM_FILE_01
	CALLS	#0,G^S3X$CLR_CMDKEY_INDICATORS
	CALLS	#0,G^S3X$SET_CMDKEY_INDICATOR
	MOVAL	F$TY01,R5
	MOVAL	N_IN__,R1
	PUSHL	R5
	CALLS	#1,G^S3X$SETON_IND
	TSTL	N_FUN		;Ind pres in 56-57?
	BEQL	40004$		;No
	MOVL	N_FUN,R10	;Y - Chk it.  If set, do
	CMPB	(R10),N_ON	;not mov input buf to flds
	BEQL	40005$
40004$:
	JSB	G^N$MOVE_DATA_TO_FLDS_FOR_FILE_01
40005$:
40002$:
	MOVB	N_OFF,N_IN00
	CMPB	N_IN99,N_OFF
	BEQL	00000$
	CMPB	N_IN54,N_OFF
	BNEQ	00000$
	BRB	00001$
00000$:
	BRW	00002$
00001$:
 
	  ;EXSR 
 
	JSB	B$0001
	MOVB	N_ON,N_IN00
00002$:
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;EXCPT
 
	MOVAL	Z$0001,R6
	MOVB	#1,(R6)
	MOVB	#^A/E/,N$OUTPUT_CTL
	JSB	G^N$OUTPUT
	CLRB	N$OUTPUT_CTL
	MOVAL	Z$0001,R6
	CLRB	(R6)
	MOVB	N_OFF,N_IN00
	CMPB	N_INKG,N_OFF
	BEQL	00003$
	BRB	00004$
00003$:
	BRW	00005$
00004$:
	MOVB	N_ON,N_IN00
 
	  ;SETON
 
	MOVB	N_ON,N_INLR
00005$:
	JMP    C$DETX
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
C$TOT:
	JMP    C$TOTX
 
	  ;BEGSR
 
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
B$0001: .JSB32_ENTRY
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;SETON
 
	MOVB	N_ON,N_IN54
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;COMP 
 
	MOVAL	A00003,R6
	MOVAL	L$0001,R7
	PUSHAL	N$DUMMY_IND
	PUSHAL	N$DUMMY_IND
	PUSHAL 	N_IN01	;Equal
	PUSHAL	W$NUMA
	PUSHL	#0005
	PUSHL	R6
	PUSHL	#0005
	CALLS	#4,G^S3X$CVT_TRAILING_NUM_TO_PACKED
	MOVAL	W$NUMA,R9
	MOVL	#0005,R8
	MOVL	#0005,R6
	PUSHL	R6
	PUSHL	R7
	PUSHL	R8
	PUSHL	R9
	CALLS	#7,G^S3X$CMP_PACKED
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;COMP 
 
	MOVAL	A00003,R6
	MOVAL	L$0002,R7
	PUSHAL	N$DUMMY_IND
	PUSHAL	N$DUMMY_IND
	PUSHAL 	N_IN02	;Equal
	PUSHAL	W$NUMA
	PUSHL	#0005
	PUSHL	R6
	PUSHL	#0005
	CALLS	#4,G^S3X$CVT_TRAILING_NUM_TO_PACKED
	MOVAL	W$NUMA,R9
	MOVL	#0005,R8
	MOVL	#0005,R6
	PUSHL	R6
	PUSHL	R7
	PUSHL	R8
	PUSHL	R9
	CALLS	#7,G^S3X$CMP_PACKED
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;COMP 
 
	MOVAL	A00003,R6
	MOVAL	L$0003,R7
	PUSHAL	N$DUMMY_IND
	PUSHAL	N$DUMMY_IND
	PUSHAL 	N_IN03	;Equal
	PUSHAL	W$NUMA
	PUSHL	#0005
	PUSHL	R6
	PUSHL	#0005
	CALLS	#4,G^S3X$CVT_TRAILING_NUM_TO_PACKED
	MOVAL	W$NUMA,R9
	MOVL	#0005,R8
	MOVL	#0005,R6
	PUSHL	R6
	PUSHL	R7
	PUSHL	R8
	PUSHL	R9
	CALLS	#7,G^S3X$CMP_PACKED
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;COMP 
 
	MOVAL	A00003,R6
	MOVAL	L$0004,R7
	PUSHAL	N$DUMMY_IND
	PUSHAL	N$DUMMY_IND
	PUSHAL 	N_IN04	;Equal
	PUSHAL	W$NUMA
	PUSHL	#0005
	PUSHL	R6
	PUSHL	#0005
	CALLS	#4,G^S3X$CVT_TRAILING_NUM_TO_PACKED
	MOVAL	W$NUMA,R9
	MOVL	#0005,R8
	MOVL	#0005,R6
	PUSHL	R6
	PUSHL	R7
	PUSHL	R8
	PUSHL	R9
	CALLS	#7,G^S3X$CMP_PACKED
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;COMP 
 
	MOVAL	A00003,R6
	MOVAL	L$0005,R7
	PUSHAL	N$DUMMY_IND
	PUSHAL	N$DUMMY_IND
	PUSHAL 	N_IN05	;Equal
	PUSHAL	W$NUMA
	PUSHL	#0005
	PUSHL	R6
	PUSHL	#0005
	CALLS	#4,G^S3X$CVT_TRAILING_NUM_TO_PACKED
	MOVAL	W$NUMA,R9
	MOVL	#0005,R8
	MOVL	#0005,R6
	PUSHL	R6
	PUSHL	R7
	PUSHL	R8
	PUSHL	R9
	CALLS	#7,G^S3X$CMP_PACKED
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;COMP 
 
	MOVAL	A00003,R6
	MOVAL	L$0006,R7
	PUSHAL	N$DUMMY_IND
	PUSHAL	N$DUMMY_IND
	PUSHAL 	N_IN06	;Equal
	PUSHAL	W$NUMA
	PUSHL	#0005
	PUSHL	R6
	PUSHL	#0005
	CALLS	#4,G^S3X$CVT_TRAILING_NUM_TO_PACKED
	MOVAL	W$NUMA,R9
	MOVL	#0005,R8
	MOVL	#0005,R6
	PUSHL	R6
	PUSHL	R7
	PUSHL	R8
	PUSHL	R9
	CALLS	#7,G^S3X$CMP_PACKED
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;COMP 
 
	MOVAL	A00003,R6
	MOVAL	L$0007,R7
	PUSHAL	N$DUMMY_IND
	PUSHAL	N$DUMMY_IND
	PUSHAL 	N_IN55	;Equal
	PUSHAL	W$NUMA
	PUSHL	#0005
	PUSHL	R6
	PUSHL	#0005
	CALLS	#4,G^S3X$CVT_TRAILING_NUM_TO_PACKED
	MOVAL	W$NUMA,R9
	MOVL	#0005,R8
	MOVL	#0005,R6
	PUSHL	R6
	PUSHL	R7
	PUSHL	R8
	PUSHL	R9
	CALLS	#7,G^S3X$CMP_PACKED
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;COMP 
 
	MOVAL	A00003,R6
	MOVAL	L$0008,R7
	PUSHAL	N$DUMMY_IND
	PUSHAL	N$DUMMY_IND
	PUSHAL 	N_IN77	;Equal
	PUSHAL	W$NUMA
	PUSHL	#0005
	PUSHL	R6
	PUSHL	#0005
	CALLS	#4,G^S3X$CVT_TRAILING_NUM_TO_PACKED
	MOVAL	W$NUMA,R9
	MOVL	#0005,R8
	MOVL	#0005,R6
	PUSHL	R6
	PUSHL	R7
	PUSHL	R8
	PUSHL	R9
	CALLS	#7,G^S3X$CMP_PACKED
	MOVB	N_OFF,N_IN00
	MOVB	N_ON,N_IN00
 
	  ;MOVE 
 
	MOVAL	A00003,R7
	MOVAL	A00002,R8
	PUSHAL	W$NUMA
	PUSHL	#0005
	PUSHL	R7
	PUSHL	#0005
	CALLS	#4,G^S3X$CVT_TRAILING_NUM_TO_PACKED
	PUSHL	R8
	PUSHL	#0005
	PUSHL	#0008
	PUSHAL	W$NUMA
	PUSHL	#^A/P/
	PUSHL	#^A/P/
	CALLS	#6,G^S3X$MOV_RIGHT_JUST
 
	  ;TAG  
 
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
B$0002:
	MOVB	N_OFF,N_IN00
	CMPB	N_IN01,N_OFF
	BEQL	00000$
	BRW	40001$
00000$:
	CMPB	N_IN02,N_OFF
	BEQL	00001$
	BRW	40001$
00001$:
	CMPB	N_IN03,N_OFF
	BEQL	00002$
	BRW	40001$
00002$:
	CMPB	N_IN04,N_OFF
	BEQL	00003$
	BRW	40001$
00003$:
	CMPB	N_IN05,N_OFF
	BEQL	00004$
	BRW	40001$
00004$:
	CMPB	N_IN06,N_OFF
	BEQL	00005$
40001$:
	BRB	00006$
00005$:
	BRW	00007$
00006$:
	MOVB	N_ON,N_IN00
 
	  ;EXCPT
 
	MOVAL	Z$0001,R6
	MOVB	#1,(R6)
	MOVB	#^A/E/,N$OUTPUT_CTL
	JSB	G^N$OUTPUT
	CLRB	N$OUTPUT_CTL
	MOVAL	Z$0001,R6
	CLRB	(R6)
00007$:
 
	  ;ENDSR
 
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
B$0003:
	TSTL	N_EXCPT
	BNEQ	00001$
	RSB
00001$:
	CLRL	N_EXCPT
	CMPL L$000A,#^A/*GET/
	BNEQ 00002$
	CMPW L$000A+4,#^A/IN/
	BNEQ 00002$
	MOVL	SAV_STK,SP
	JMP	STEP05
00002$: CMPL L$000A,#^A/*DET/
	BNEQ 00003$
	CMPB L$000A+4,#^A/C/
	BNEQ 00003$
	MOVL	SAV_STK,SP
	JMP	STEP46
00003$: CMPL L$000A,#^A/*CAN/
	BNEQ 00004$
	CMPW L$000A+4,#^A/CL/
	BNEQ 00004$
	MOVL   SAV_STK,SP
	CLRL	RPG_STATUS
	JMP  CAN_CL
00004$: 
	MOVL	SAV_STK,SP
	PUSHAL	EXCMSG1
	CALLS	#1,G^S3X$OUTPUT_MSG
00005$: PUSHAL	EXCMSG2
	CALLS	#1,G^S3X$OUTPUT_MSG
	PUSHAL	N$TEMP_SIZE
	PUSHAL	N$TEMP_ADDR
	PUSHL	#6
	CALLS	#3,G^S3X$READ_TERM
	MOVL	N$TEMP_SIZE,R4
	MOVL	N$TEMP_ADDR,R5
	CMPL	(R5),#^A/GETI/
	BNEQ	00006$
	JMP	STEP05
00006$: CMPL	(R5),#^A/DETC/
	BNEQ	00007$
	JMP	STEP46
00007$: CMPL	(R5),#^A/CANC/
	BNEQ	00008$
	CLRL	RPG_STATUS
	JMP	CAN_CL
00008$: BRW	00005$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
EXCMSG1: .ASCIZ	'EINFSR SUBROUTINE HALT DUE TO EXCEPTION CONDITION.'
EXCMSG2: .ASCIZ	'Enter GETIN, DETC or CANCL to continue: '
	RSB
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
O$FETO:	.BYTE	0
O$FIL:		.BYTE	0
O$OVFL:	.BYTE	0
W$FETY:	.BYTE	0
W$SAVA:	.BLKB	8
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
N$OUTPUT: .JSB32_ENTRY
	TSTB	N$FETCH_OVERFLOW_FLG
	BEQL	10$
	MOVQ	N_INOA,W$SAVA
	MOVQ	#^A/00000000/,N_INOA
	MOVB	#1,W$FETY
10$:	JSB	O$0000
	TSTB	W$FETY
	BEQL	20$
	MOVAL	N_INOA,R0
	MOVAL	W$SAVA,R1
	MOVL	#7,R2
15$:	CMPB	(R0),(R1)
	BGEQ	17$
	MOVB	(R1),(R0)
17$:	INCL	R0
	INCL	R1
	SOBGTR	R2,15$
	CLRB    W$FETY
20$:	CALLS	#0,G^S3X$DISPLAY_WORKSTN_SCRN
	RSB
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
O$0000: .JSB32_ENTRY
	MOVB	N_OFF,N_INHD
	CMPB  N$OUTPUT_CTL,#^A/E/
	BEQL	00001$
	BRW	O$0001
00001$:
	TSTL	R6
	BNEQ	00002$
	BRW	O$0001
00002$:
	MOVAL	Z$0001,R0
	TSTB	(R0)
	BNEQ	00003$
	BRW	O$0001
00003$:
 
40000$:
	MOVB	N_ON,N_INHD
	MOVAL	N$FILE_01_REC_BUF,R0
	MOVL	#1090,R1
	MOVC5	#0,#0,#BLANK,R1,(R0)
	MOVB	N_OFF,N_INFD
	MOVB	N_ON,N_INFD
	MOVAL	40002$,R5
	PUSHAL	E$WS01
	PUSHL	R5
	CALLS	#2,G^S3X$INFSR_UPDATE_AFTER_WRITE
	CLRL	R4
	PUSHL	R5	;Srceen Name
	PUSHL	R4	;Start Line
	PUSHL	#1		;INFSR available flg
	PUSHL	#1		;INFDS present flg
	PUSHAL	N_SCREEN_SPEC_TBL
	CALLS	#5,G^S3X$SELECT_WORKSTN_SCRN
	BRB	40001$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40002$: .ASCIZ 'F1'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40001$:
 
	MOVB	N_OFF,N_INFD
	MOVB	N_ON,N_INFD
	MOVL    #0008,R8
	MOVAL   A00002,R7
	MOVAL   N$FILE_01_REC_BUF+0008,R9
	MOVL    #0008,R10
	SUBL2   R10,R9
	PUSHL	R9
	PUSHL	R8
	PUSHL	R7
	PUSHL	R8
	CALLS	#4,G^S3X$CVT_PACKED_TO_TRAILING_NUM
	MOVB	#^A/ /,R1
	MOVL	#0,R3
	CLRL	R2
	MOVAL	N$FILE_01_REC_BUF,R0
	PUSHAL	N$DATE_PRINT_CTL
	PUSHL	R0
	PUSHL	R1
	PUSHL	R2
	PUSHL	R3
	PUSHL	R8
	PUSHL	R9
	CALLS	#7,G^S3X$EDIT_OUTPUT_FLD
40003$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN01,N_OFF
	BEQL	40004$
	MOVB	N_ON,N_INFD
	MOVC3	#0009,40005$,N$FILE_01_REC_BUF+0012
	BRB	40004$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40005$: .ASCIZ 'PRINT key'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40004$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN02,N_OFF
	BEQL	40006$
	MOVB	N_ON,N_INFD
	MOVC3	#0011,40007$,N$FILE_01_REC_BUF+0010
	BRB	40006$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40007$: .ASCIZ 'ROLL-UP key'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40006$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN03,N_OFF
	BEQL	40008$
	MOVB	N_ON,N_INFD
	MOVC3	#0013,40010$,N$FILE_01_REC_BUF+0008
	BRB	40008$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40010$: .ASCIZ 'ROLL-DOWN key'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40008$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN04,N_OFF
	BEQL	40011$
	MOVB	N_ON,N_INFD
	MOVC3	#0009,40012$,N$FILE_01_REC_BUF+0012
	BRB	40011$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40012$: .ASCIZ 'CLEAR key'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40011$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN05,N_OFF
	BEQL	40013$
	MOVB	N_ON,N_INFD
	MOVC3	#0008,40014$,N$FILE_01_REC_BUF+0013
	BRB	40013$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40014$: .ASCIZ 'HELP key'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40013$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN06,N_OFF
	BEQL	40015$
	MOVB	N_ON,N_INFD
	MOVC3	#0008,40016$,N$FILE_01_REC_BUF+0013
	BRB	40015$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40016$: .ASCIZ 'HOME key'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40015$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN55,N_OFF
	BEQL	40017$
	MOVB	N_ON,N_INFD
	MOVC3	#0009,40018$,N$FILE_01_REC_BUF+0012
	BRB	40017$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40018$: .ASCIZ 'Enter Rec'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40017$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40020$
	CMPB	N_INKA,N_OFF
	BEQL	40020$
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40021$,N$FILE_01_REC_BUF+0015
	BRB	40020$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40021$: .ASCIZ 'Cmd- A'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40020$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40022$
	CMPB	N_INKB,N_OFF
	BEQL	40022$
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40023$,N$FILE_01_REC_BUF+0015
	BRB	40022$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40023$: .ASCIZ 'Cmd- B'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40022$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40024$
	CMPB	N_INKC,N_OFF
	BEQL	40024$
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40025$,N$FILE_01_REC_BUF+0015
	BRB	40024$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40025$: .ASCIZ 'Cmd- C'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40024$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40026$
	CMPB	N_INKD,N_OFF
	BEQL	40026$
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40027$,N$FILE_01_REC_BUF+0015
	BRB	40026$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40027$: .ASCIZ 'Cmd- D'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40026$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40028$
	CMPB	N_INKE,N_OFF
	BEQL	40028$
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40030$,N$FILE_01_REC_BUF+0015
	BRB	40028$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40030$: .ASCIZ 'Cmd- E'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40028$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40031$
	CMPB	N_INKF,N_OFF
	BEQL	40031$
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40032$,N$FILE_01_REC_BUF+0015
	BRB	40031$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40032$: .ASCIZ 'Cmd- F'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40031$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40033$
	CMPB	N_INKG,N_OFF
	BEQL	40033$
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40034$,N$FILE_01_REC_BUF+0015
	BRB	40033$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40034$: .ASCIZ 'Cmd- G'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40033$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40035$
	CMPB	N_INKG,N_OFF
	BEQL	40035$
	MOVB	N_ON,N_INFD
	MOVC3	#0018,40036$,N$FILE_01_REC_BUF+0022
	BRB	40035$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40036$: .ASCIZ 'EXITING PROGRAM...'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40035$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40037$
	CMPB	N_INKH,N_OFF
	BEQL	40037$
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40038$,N$FILE_01_REC_BUF+0015
	BRB	40037$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40038$: .ASCIZ 'Cmd- H'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40037$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40040$
	CMPB	N_INKI,N_OFF
	BEQL	40040$
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40041$,N$FILE_01_REC_BUF+0015
	BRB	40040$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40041$: .ASCIZ 'Cmd- I'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40040$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40042$
	CMPB	N_INKJ,N_OFF
	BEQL	40042$
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40043$,N$FILE_01_REC_BUF+0015
	BRB	40042$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40043$: .ASCIZ 'Cmd- J'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40042$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40044$
	CMPB	N_INKK,N_OFF
	BEQL	40044$
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40045$,N$FILE_01_REC_BUF+0015
	BRB	40044$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40045$: .ASCIZ 'Cmd- K'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40044$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40046$
	CMPB	N_INKL,N_OFF
	BEQL	40046$
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40047$,N$FILE_01_REC_BUF+0015
	BRB	40046$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40047$: .ASCIZ 'Cmd- L'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40046$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40048$
	CMPB	N_INKM,N_OFF
	BEQL	40048$
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40050$,N$FILE_01_REC_BUF+0015
	BRB	40048$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40050$: .ASCIZ 'Cmd- M'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40048$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40051$
	CMPB	N_INKN,N_OFF
	BEQL	40051$
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40052$,N$FILE_01_REC_BUF+0015
	BRB	40051$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40052$: .ASCIZ 'Cmd- N'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40051$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40053$
	CMPB	N_INKP,N_OFF
	BEQL	40053$
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40054$,N$FILE_01_REC_BUF+0015
	BRB	40053$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40054$: .ASCIZ 'Cmd- P'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40053$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40055$
	CMPB	N_INKQ,N_OFF
	BEQL	40055$
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40056$,N$FILE_01_REC_BUF+0015
	BRB	40055$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40056$: .ASCIZ 'Cmd- Q'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40055$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40057$
	CMPB	N_INKR,N_OFF
	BEQL	40057$
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40058$,N$FILE_01_REC_BUF+0015
	BRB	40057$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40058$: .ASCIZ 'Cmd- R'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40057$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40060$
	CMPB	N_INKS,N_OFF
	BEQL	40060$
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40061$,N$FILE_01_REC_BUF+0015
	BRB	40060$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40061$: .ASCIZ 'Cmd- S'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40060$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40062$
	CMPB	N_INKT,N_OFF
	BEQL	40062$
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40063$,N$FILE_01_REC_BUF+0015
	BRB	40062$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40063$: .ASCIZ 'Cmd- T'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40062$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40064$
	CMPB	N_INKU,N_OFF
	BEQL	40064$
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40065$,N$FILE_01_REC_BUF+0015
	BRB	40064$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40065$: .ASCIZ 'Cmd- U'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40064$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40066$
	CMPB	N_INKV,N_OFF
	BEQL	40066$
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40067$,N$FILE_01_REC_BUF+0015
	BRB	40066$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40067$: .ASCIZ 'Cmd- V'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40066$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40068$
	CMPB	N_INKW,N_OFF
	BEQL	40068$
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40070$,N$FILE_01_REC_BUF+0015
	BRB	40068$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40070$: .ASCIZ 'Cmd- W'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40068$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40071$
	CMPB	N_INKX,N_OFF
	BEQL	40071$
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40072$,N$FILE_01_REC_BUF+0015
	BRB	40071$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40072$: .ASCIZ 'Cmd- X'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40071$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN77,N_OFF
	BEQL	40073$
	CMPB	N_INKY,N_OFF
	BEQL	40073$
	MOVB	N_ON,N_INFD
	MOVC3	#0006,40074$,N$FILE_01_REC_BUF+0015
	BRB	40073$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40074$: .ASCIZ 'Cmd- Y'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40073$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN56,N_OFF
	BEQL	40075$
	MOVB	N_ON,N_INFD
	MOVC3	#0009,40076$,N$FILE_01_REC_BUF+0021
	BRB	40075$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40076$: .ASCIZ 'EXCEPTION'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40075$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN58,N_OFF
	BEQL	40077$
	MOVB	N_ON,N_INFD
	MOVC3	#0005,40078$,N$FILE_01_REC_BUF+0035
	BRB	40077$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40078$: .ASCIZ '  EOF'
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40077$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN56,N_OFF
	BNEQ	40080$
	CMPB	N_INKG,N_OFF
	BNEQ	40080$
	MOVB	N_ON,N_INFD
	MOVC3	#0009,40081$,N$FILE_01_REC_BUF+0021
	BRB	40080$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40081$: .ASCIZ '         '
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40080$:
 
	MOVB	N_OFF,N_INFD
	CMPB	N_IN58,N_OFF
	BNEQ	40082$
	CMPB	N_INKG,N_OFF
	BNEQ	40082$
	MOVB	N_ON,N_INFD
	MOVC3	#0005,40083$,N$FILE_01_REC_BUF+0035
	BRB	40082$
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
40083$: .ASCIZ '     '
 
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
 
40082$:
 
	MOVAL	N$FILE_01_REC_BUF,R1
	MOVL	#FILE_01_REC_SIZ,R0
00006$: CMPB	(R1)+,#^X00
	BNEQ	00007$
	MOVB	#^A/ /,-1(R1)
00007$: SOBGTR	R0,00006$
 
	PUSHAL	N$FILE_01_REC_DESC
	PUSHAL	N_SCREEN_SPEC_TBL
	CALLS	#2,G^S3X$WRITE_WORKSTN
	CLRB	F$CB01
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
O$0001:
	RSB
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
N$TRANSLATE_TBL:
	.BYTE   -1
W$NUMA:  .BLKB    16   ;NUMERIC WORK AREA
W$NUMB:  .BLKB    16   ;NUMERIC WORK AREA
W$NUMC:  .BLKB    16   ;NUMERIC WORK AREA
W$NUMD:  .BLKB    16   ;NUMERIC WORK AREA
W$NUME:  .BLKB    16   ;NUMERIC WORK AREA
W$NUMF:  .BLKB    16   ;NUMERIC WORK AREA
W$NUMG:  .BLKB    16   ;NUMERIC WORK AREA
W$NUMH:  .BLKB    16   ;NUMERIC WORK AREA
W$NUMI:  .BLKB    16   ;NUMERIC WORK AREA
W$NUMJ:  .BLKB    16   ;NUMERIC WORK AREA
W$NUMK:  .BLKB    16   ;NUMERIC WORK AREA
W$NUML:  .BLKB    16   ;NUMERIC WORK AREA
W$NUMM:  .BLKB    16   ;NUMERIC WORK AREA
W$NUMN:  .BLKB    16   ;NUMERIC WORK AREA
W$SLCD: .BYTE   0
HGH:  .ASCII	'0'
LOW:  .ASCII	'0'
EQL:  .ASCII	'0'
W$MSW:  .BYTE   0
W$SWIT: .BYTE   0
W$FSCL: .BYTE   0
W$FSCY: .BYTE   0
W$FSLR: .BYTE   0
W$FRCE: .BYTE   0
W$RIND: .BYTE   0  ;CURRENT REC IND
W$ZERP: .BYTE   ^X0C
N$ALTERNATE_SEQUENCE_TBL:
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
	.BYTE
^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00,^X00
MATCH_FLAG01:	.BYTE	0
W$SQTB:
	.BYTE   -1
W$MRSY:  .BLKB  0001
W$MRWK:  .BLKB  0001
W$MRTB:
	.LONG   0001
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.BYTE   -1
W$LRWK:  .BLKB  0001
F$LR01:  .BLKB   0001
W$LRTB:
	.LONG   0001
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.LONG   0000
	.BYTE   -1
W$ADSC:
	.BYTE     -1
E$WS01:	.ADDRESS D00001
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
N$INFSR_01:
	MOVL   E$WS01,R0
	MOVL	#1,N_EXCPT
	JMP    B$0001
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
      W$DSTR=.
W$DS01:
D00001:
      .=W$DSTR + 0001 - 1
A00003: .BLKB  0005
      .=W$DSTR + 0006 - 1
A00004: .BLKB  0005
      .=W$DSTR + 0032
A00001:  .BLKB  0005
A00002:  .BLKB  0005
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
N$INITIALIZE: .JSB32_ENTRY
	PUSHAL	N$ALTERNATE_SEQUENCE_TBL
	PUSHAL	UDATE
	PUSHAL	N_INU1
	PUSHAL	N_INKA
	PUSHAL	N_INOA
	PUSHAL	N_INL1
	PUSHAL	N_IN01
	CALLS	#7,G^S3X$INITIALIZE_COMMON
	RSB
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
N$INITIALIZE_FLDS: .JSB32_ENTRY
	 MOVC5	#0,#0,#^A/0/,#0006,UDATE 
	 MOVC5	#0,#0,#^A/0/,#0002,UMONTH
	 MOVC5	#0,#0,#^A/0/,#0002,UDAY  
	 MOVC5	#0,#0,#^A/0/,#0002,UYEAR 
	 MOVC5	#0,#0,#NULL,#0004,PAGE  
	 MOVC5	#0,#0,#NULL,#0004,PAGE1 
	 MOVC5	#0,#0,#NULL,#0004,PAGE2 
	 MOVC5	#0,#0,#NULL,#0004,PAGE3 
	 MOVC5	#0,#0,#NULL,#0004,PAGE4 
	 MOVC5	#0,#0,#NULL,#0004,PAGE5 
	 MOVC5	#0,#0,#NULL,#0004,PAGE6 
	 MOVC5	#0,#0,#NULL,#0004,PAGE7 
	 MOVC5	#0,#0,#BLANK,#0008,$STAT$
	 MOVC5	#0,#0,#NULL,#0005,A00001
	 MOVC5	#0,#0,#NULL,#0005,A00002
	 RSB
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
Z$0001: .BYTE 0
L$0001:  .BYTE   ^B00000001
         .BYTE   ^B00010010
         .BYTE   ^B00011100
L$0002:  .BYTE   ^B00000001
         .BYTE   ^B00010010
         .BYTE   ^B00101100
L$0003:  .BYTE   ^B00000001
         .BYTE   ^B00010010
         .BYTE   ^B00111100
L$0004:  .BYTE   ^B00000001
         .BYTE   ^B00010010
         .BYTE   ^B01001100
L$0005:  .BYTE   ^B00000001
         .BYTE   ^B00010010
         .BYTE   ^B01011100
L$0006:  .BYTE   ^B00000001
         .BYTE   ^B00010010
         .BYTE   ^B01101100
L$0007:  .BYTE   ^B00000000
         .BYTE   ^B00000000
         .BYTE   ^B00001100
L$0008:  .BYTE   ^B00000000
         .BYTE   ^B00000000
         .BYTE   ^B00101100
L$000A:  .ASCII '*DETC'
SAV_STK:	.LONG	0
RPG_STATUS:	.LONG	0	;Program exit status
N_EXCPT:	.LONG	0	;Exception INFSR call flg
N_FUN:		.LONG	0	;Exception handling ind
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
.IF DEFINED VAX
	.ENTRY	_TSTKEY,^M<>
.ENDC
.IF DEFINED ALPHA
_TSTKEY:: .CALL_ENTRY -
		MAX_ARGS=0000+1, -
		HOME_ARGS=TRUE
.ENDC
	MOVL	#1,RPG_STATUS
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP01:
	MOVB	N_OFF,N_INRT
	CLRL	N$NUMBER_OF_ARGUMENTS
	CALLS	#0,G^S3X$CONNECT_CRT
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP02:
	JSB	N$INITIALIZE
	BLBC	R0,20$
	TSTL	4(AP)
	BEQL	20$
	TSTB	N$PROG_ACTIVE
	BNEQ	10$
	CALLS	#0,G^S3X$DETACH_CRT
	MOVL	#2,R0
	RET
  10$:	MOVB	#1,N$FREE_FLG
	BRW	STEP37
  20$:	TSTB	N$PROG_ACTIVE
	BEQL	30$
	BRW	STEP05
  30$:	MOVB	#1,N$PROG_ACTIVE
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP03:
	JSB	N$INITIALIZE_FLDS
	MOVAL	N_IN01,R0
00001$:	MOVB	#^A/0/,(R0)+
	CMPB	(R0),#-1
	BNEQ	00001$
	MOVB	N_ON,N_IN1P
	MOVB	N_ON,N_INL0
	MOVC5 #0,#0,#^A/ /,#0032,D00001
	PUSHL	#0
	PUSHAL	N$DATE_PRINT_CTL
	CALLS	#2,G^S3X$READ_EXTERNAL_IND_DATE_FILE
	PUSHAL	W$ADSC
	CALLS	#1,G^S3X$INIT_ARYS
 
	MOVAL	FILE_02_FAB,R6
	MOVAL	FILE_02_RAB,R7
	PUSHL	R8
       PUSHL   R7
       PUSHL   R6
	CALLS	#3,G^S3X$CREATE_FILE	;DEBUG   
	MOVAL	W$MRTB,R6		;Ctl tbl addr
	MOVL	(R6),R7			;Entry len
	MOVC5	#0,#0,#^X0,R7,W$MRWK	;Init fld ascending
	PUSHL   R6
	CALLS	#1,G^S3X$CHK_CTL_TBL
 
	MOVAL	W$MRTB,R6
	MOVC5	#0,#0,#^X0,R7,W$MRSY
	PUSHL   R6
	CALLS	#1,G^S3X$CHK_CTL_TBL
 
	MOVAL	W$LRTB,R6
	MOVL	(R6),R7
	MOVC5	#0,#0,#^X0,R7,W$LRWK
	PUSHL   R6
	CALLS	#1,G^S3X$CHK_CTL_TBL
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP04:
	MOVB	#^A/H/,N$OUTPUT_CTL
	MOVB	#1,N$DETAIL_FLG
	JSB	G^N$OUTPUT
	CLRB	N$DETAIL_FLG
	MOVB	#^A/D/,N$OUTPUT_CTL
	MOVB	#1,N$DETAIL_FLG
	JSB	G^N$OUTPUT
	CLRB	N$DETAIL_FLG
	MOVL	SP,SAV_STK
	MOVAL	N_INOA,R1
	MOVL	#7,R0
  10$:	CMPB	(R1),N_OFF
	BEQL	20$
	CMPB	(R1),#^A/2/
	BLSS	15$
	MOVB	#^A/2/,(R1)
	TSTB	N$FETCH_OVERFLOW_FLG
	BNEQ	15$
	MOVB	#2,N$FETCH_OVERFLOW_FLG
 15$:	DECB	(R1)
 20$:	INCL	R1
	SOBGTR	R0,10$
	TSTB	N$FETCH_OVERFLOW_FLG
	BEQL	STEP05
	DECB	N$FETCH_OVERFLOW_FLG
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP05:
	MOVB	#^A/0/,922$
	MOVAL	N_INH1,R2
	MOVL	#9,R1
  10$:	INCB	922$
	CMPB	(R2),N_OFF
	BEQL	30$
	PUSHL	R2
	PUSHAL	920$
	CALLS	#1,G^S3X$HALT10
	BLBC	R0,STEP06
	POPL	R2
  30$:	MOVB	N_OFF,(R2)
	INCL	R2
	SOBGTR	R1,10$
	JMP	STEP08
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
  920$:	.ASCII	/RPG HALT NUMBER /
  922$:	.ASCIZ	/0/
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP06:
	CLRL	(SP)+
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP07:
	JMP	STEP37
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP08:
	MOVQ	#^A/00000000/,N_INL1
	MOVB	N_OFF,N_INL9
	MOVB	N_OFF,N_IN1P
	MOVB	N_OFF,N_IN99
	MOVB	N_OFF,N_INXX
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP09:
	CMPB	N_INLR,N_ON
	BNEQ	STEP11
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP10:
  	MOVQ	#^A/11111111/,N_INL1
	MOVB	N_ON,N_INL9
	JMP	STEP29
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP11:
	CMPB	N_INRT,N_ON
	BEQL	STEP12
	JMP	STEP14
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP12:	;Return *ENTRY PLIST parms if present
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP13:	;Return immediately to caller
  20$:	CALLS	#0,G^S3X$DETACH_CRT
	MOVL	#1,R0
	RET
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP14:
	JMP	STEP29
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP15:
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP20:
	MOVB	W$FRCE,W$SLCD
	CLRB	W$FRCE
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP22: CLRB	W$SLCD
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP24:
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
CAN_CL:
	MOVL	SP,SAV_STK
	MOVB	N_ON,N_INLR
	MOVB	N_ON,N_INL9
	MOVQ	#^A/11111111/,N_INL1
	JMP	STEP29
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP26:
	CLRL	R10
	CLRL	R6
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP27:
	TSTB	R10
	BNEQ	20$
	BRW	STEP29
 
  20$:	PUSHL	R6
	PUSHAL	N$EXTRACT_CONTROL_FLD_FLG
	PUSHL	R8
	PUSHAL	W$LRTB
	PUSHL	R10
	CALLS	#5,G^S3X$EXTRACT_CTL_FLDS
	MOVAL	W$LRWK,R7
	MOVAL	W$LRTB,R9
	PUSHAL	W$LRTB
	PUSHL	R8
	PUSHAL	W$LRWK
	PUSHL	R6
	PUSHL	R10
	CALLS	#5,G^S3X$CHK_LEVEL_BRK
	TSTB	R0
	BNEQ	STEP28
	BRW	STEP29
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP28:
	CMPB	R0,#9
	BEQL	2$
	CMPB	R0,#8
	BEQL	3$
	CMPB	R0,#7
	BEQL	4$
	CMPB	R0,#6
	BEQL	5$
	CMPB	R0,#5
	BEQL	6$
	CMPB	R0,#4
	BEQL	7$
	CMPB	R0,#3
	BEQL	8$
	CMPB	R0,#2
	BEQL	9$
	BRB	10$
 
  2$:	MOVB	N_ON,N_INL9
  3$:	MOVB	N_ON,N_INL8
  4$:	MOVB	N_ON,N_INL7
  5$:	MOVB	N_ON,N_INL6
  6$:	MOVB	N_ON,N_INL5
  7$:	MOVB	N_ON,N_INL4
  8$:	MOVB	N_ON,N_INL3
  9$:	MOVB	N_ON,N_INL2
  10$:	MOVB	N_ON,N_INL1
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP29:
	CMPB	N_INLR,N_OFF
	BNEQ	10$
	TSTB	W$FSLR
	BNEQ	10$
	MOVB	#1,W$FSLR
	JMP	STEP32
  10$:	MOVL	SP,SAV_STK
	JMP	C$TOT
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
C$TOTX: MOVB	#^A/T/,N$OUTPUT_CTL
	JSB	G^N$OUTPUT
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP32:
	CMPB	N_INLR,N_ON
	BEQL	STEP33
	JMP	STEP40
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP33:
	MOVB	#^A/0/,902$
	MOVAL	N_INH1,R2
	MOVL	#9,R1
 
  2$:	INCB	902$
	CMPB	(R2),N_OFF
	BEQL	10$
 
  4$:	PUSHAL	900$
	CALLS	#1,G^S3X$HALT10
	BLBS	R0,10$
	JMP	STEP34
 
  10$:	MOVB	N_OFF,(R2)
	INCL	R2
	SOBGTR	R1,2$
	JMP	STEP34
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
  900$:	.ASCII	#RPG HALT NUMBER #
  902$:	.ASCIZ	#X#
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP34:
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP36:
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
	CALLS	#0,G^S3X$WRITE_EXTERNAL_IND_DATE_FIL
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP37:
	CLRB	N$PROG_ACTIVE
	JSB	G^N$CLOSE_FILES
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP38:
	CALLS	#0,G^S3X$DETACH_CRT
	PUSHAL	W$SQTB
	CALLS	#1,G^S3X$SEQ_CHK_EOJ
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP39:
	CMPL	RPG_STATUS,#2
	BEQL	100$
	CMPL	N_INH1,#^A/0000/
	BNEQ	20$
	CMPL	N_INH5,#^A/0000/
	BNEQ	20$
	CMPB	N_INH9,#^A/0/
	BEQL	100$
  20$:
	PUSHAL	900$
	CALLS	#1,G^LIB$PUT_OUTPUT
	MOVL	#0,RPG_STATUS
  100$:	MOVL	#1,R1
	CMPB	N_INLR,N_ON
	BNEQ	500$
	CLRL	R1
  500$:	MOVL	RPG_STATUS,R0
	RET
 
 
	.PSECT	$DATA,PIC,REL,CON,NOSHR,RD,WRT,NOEXE,NOVEC,LONG
 
  900$:	.ASCID	\WARNING - Program exited with Halt indicator set - TSTKEY\
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP40:
	MOVAL	N_INOA,R0
	CMPL	(R0)+,#^A/0000/
	BNEQ	2$
	CMPL	(R0),#^A/0000/
	BNEQ	2$
	BRW	10$
  2$:
	BRW	10$
  4$:	INCB	O$OVFL
	MOVB	#^A/T/,N$OUTPUT_CTL
	JSB	G^N$OUTPUT
	MOVB	#^A/H/,N$OUTPUT_CTL
	JSB	G^N$OUTPUT
	MOVB	#^A/D/,N$OUTPUT_CTL
	JSB	G^N$OUTPUT
	CLRB	O$OVFL
	MOVB	#1,N$FETCH_OVERFLOW_FLG
  10$:
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP42: MOVB	N_OFF,N_INMR
	CLRB	W$MSW
	MOVL	W$MRTB,R7
	JMP	STEP43
90004$: MOVB	N_ON,N_INMR
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP43:
	CMPB	W$SLCD,#01
	BNEQ	00001$
	JSB	G^N$MOVE_DATA_TO_FLDS_FOR_FILE_01
00001$:
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
STEP46:
	MOVL	SP,SAV_STK
	MOVB	#1,N$DETAIL_FLG
	JMP	C$DET
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
C$DETX:
	CLRB	N$DETAIL_FLG
	JMP	STEP04
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
N$MOVE_DATA_TO_FLDS_FOR_FILE_01: .JSB32_ENTRY
	CMPB	REC_ID_FLG_01,#01
	BNEQ	00001$
	JMP	80000$
00001$:
	JMP	90000$
80000$:
 
	;WCTL  
 
	MOVL	#0008,R0
	MOVAL	N$FILE_01_REC_BUF+0002-1,R1
	MOVL	R0,R2
	MOVAL	A00001,R3
	PUSHL   R3
	PUSHL   R2
	PUSHL   R1
	PUSHL   R0
	CALLS	#4,G^S3X$CVT_TRAILING_NUM_TO_PACKED
90000$:
	CMPB	REC_ID_FLG_01,#02
	BNEQ	00002$
	JMP	80001$
00002$:
	JMP	90001$
80001$:
 
	;FOO   
 
	MOVL	#0008,R0
	MOVAL	N$FILE_01_REC_BUF+0002-1,R1
	MOVL	R0,R2
	MOVAL	A00002,R3
	PUSHL   R3
	PUSHL   R2
	PUSHL   R1
	PUSHL   R0
	CALLS	#4,G^S3X$CVT_TRAILING_NUM_TO_PACKED
90001$:
	BRW	N$END_OF_INPUT
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
N$END_OF_INPUT:
	RSB
 
	.DISABLE LSB
	.PSECT	$CODE,PIC,REL,CON,SHR,RD,NOWRT,EXE,NOVEC,LONG
	.ENABLE LSB
 
N$SETOF_REC_INDS: .JSB32_ENTRY
	CMPB	W$SLCD,#01
	BEQL	00001$
	JMP	00002$
00001$:
	MOVB	N_OFF,N_IN99
	MOVB	N_OFF,N_INXX
00002$:
	RSB
	.END	_TSTKEY
3364.3Submitted EVMS-RAVEN 919 QAR on trifidHYDRA::BRYANTTue Mar 25 1997 11:4917
It got bounced back with:

From: evms::[email protected] (Show me, don't tell me 
24-Mar-1997 1635 -0500)
To: [email protected]
Subject: Response to VMS EVMS-RAVEN QAR 919 - INSFREEREG ERROR ON CALLS STATEMENT
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

This is an error message we have not seen in quite some time,
and all the obvious usable workarounds don't make it go away.

If this is a customer problem, an appropriate IPMT case should
be submitted (or this QAR should be so converted).

Need to call customer to see if they have a CSC account to go ahead and place
the complaint themselves.
3364.4Dan seems to be helping outHYDRA::BRYANTWed Mar 26 1997 15:5224
I sent mail to him today for an update.  Waiting to hear back.
-----------------------
From:	CPEEDY::FLEURY       "Dan @ DTN 226-6519" 21-MAR-1997 12:35:12.01
To:	HYDRA::KENYON
CC:	FLEURY
Subj:	AXP conference note # 3294 (SST)

Jeff,

The message: INSFREEREG is generated when the MACRO32 compiler runs out of 
AXP registers in the code generation stage.  This is an error in the optomization
stage of the compiler.  I have not examined closely the code presented.  I will
look more closely to see if I can better explain the cause of this.  This is not
a problem that can be directly caused by a coding error.  This is within the
compiler only.  Changing the command line options which effect the optimization
pass CAN eliminate this problem as stated within the problem statement.

Perhaps the point that needs to be stressed here is that the registers referenced
in the error message are Alpha registers NOT R0-R12 which are generally called 
the "VAX" registers.

As I get more details, I'll send them along.

Dan
3364.5Logged a call with the CSCHYDRA::AXPDEVELOPERAlpha Developer supportFri Mar 28 1997 07:102
    I logged a call with the CSC sequence number 6970327-5502
    as level urgent.
3364.6HYDRA::SCHAFERMark Schafer, SPE MROMon Apr 14 1997 12:1939
           <<< ISVNET::DISK$OTHER:[NOTES$LIBRARY]ALPHA_VMS.NOTE;1 >>>
                           -< Porting to Alpha AXP >-
================================================================================
Note 671.0                 INSFREEREG error - Macro-32                No replies
ISVNET::MSI "Moving Software From Todays Systems to" 33 lines  12-APR-1997 10:56
--------------------------------------------------------------------------------
We have ported a large Macro application to the Alpha running OpenVMS 6.2 using
the Macro-32 compiler.  We have 5 programs which are generating a INSFREEREG
error (insufficient free registers).  The error is generated in a different
section of code in each program.  We are using the following compile command on
the programs:

	  MACRO -
	    /NODIAG -
	    /NOLIST -
	    /MIGRATE -
	    /OBJECT=MASTER5 -
	    /UNALIGN -
	    /WARN=NOINFO -
		SYS$LIBRARY:ARCH_DEFS.MAR + []MASTER5.MAR

We've tried using the OPTIMZE=VAXREGS option.  In some cases this eliminates
the INSFREEREG error, but it also causes the error to appear in other programs
where it was not previously present.  We are in a situation where we need to
use the same compile command for all modules.

We reported the problem to Digital via the ASAP organization 4 weeks ago.  They
have confirmed that the problem is a Macro-32 compiler problem, but have been
unable to offer a work-around, patch, or solution.

Has anyone out there run into this error, and if so, how did you get around it?
We can provide code examples which generate the error and have done so for
Digital.  Be advised the modules are rather large.

Thanks,

Bruce C.
MSI
    
3364.7Sent partner statusHYDRA::BRYANTTue Apr 15 1997 11:0411
Bruce,

I spoke with the Customer Support Center last Monday and your problem has been 
accepted into Engineering.  I have another call into them and will hear back a 
status today.  I will attempt to push this through the Center as quickly as 
possible to get you a fix.

I apologize for Digital's unresponsiveness in this area.

Pat Bryant
Alpha Developer Support
3364.8Sent workaroundHYDRA::BRYANTTue Apr 15 1997 11:0511
Bruce,

I received a call from the Customer Support Center.  The Engineer who is working 
on the problem wants to know if any of your code calls translated images.  If 
not, then use the /NOTIE specifier when you compiler.  He was able to get your 
reproducer to compiler with it.  Apparently, the /NOTIE produces more efficient 
alpha code anyway.  Please let me know if this is an option for you.

Thanks.
Pat Bryant
Alpha Developer Support
3364.9There is hope for this guyHYDRA::BRYANTTue Apr 15 1997 17:2830
Bruce,
I'll go ahead and pass this information onto Engineering.  I know they are 
working on a fix.  I'll try to find out when they expect it.

Let me know how your test suite goes.
Thanks.
Pat

 >   Hi Pat,
 > 
 >   The /NOTIE qualifier cleared up the INSFREEREG compilation error in all of
 >   the programs displaying the problem.  We are running our Quality Assurance
 >   test suite of 500+ programs to assess its impact on the entire application
. 
 >   I should have some results for you tomorrow.
 > 
 >   We do not link to any translated (vested) images.  However, some of our
 >   customers may want to, so we would like to preserve the capability.  If th
e
 >   /NOTIE qualifier works, it will at least allow us to move forward with our
 >   current project, which is the critical issue at the moment.
 > 
 >   I would appreciate hearing any other suggestions Engineering has on how we
 >   might improve our compile command and ported code, keeping in mind that we
 >   are supporting this code on both VAX and Alpha platforms.
 > 
 >   Thanks,
 > 
 >   Bruce C.
 >   MSI
3364.10HYDRA::SCHAFERMark Schafer, SPE MROThu Apr 17 1997 10:5354
           <<< ISVNET::DISK$OTHER:[NOTES$LIBRARY]ALPHA_VMS.NOTE;1 >>>
                           -< Porting to Alpha AXP >-
================================================================================
Note 671.3                 INSFREEREG error - Macro-32                    3 of 3
ISVNET::MSI "Moving Software From Todays Systems to" 47 lines  16-APR-1997 17:26
                                -< Workaround >-
--------------------------------------------------------------------------------
Engineering suggested via the ASAP Support Group using the /NOTIE compile
qualifier to get around the INSFREEREG compilation error.  The limitation
here is that the compiled code cannot then be linked with vested or
translated images.

Using the /NOTIE qualifier elminated the INSFREEREG compilation problem. 
However, it caused an intermitent runtime problem when executing a CALLS
instruction to a program referenced by address.

i.e.	CALLS	#0006, @A00005
	.
	.
	.
	.ADDRESS	_PROG3A

We were able to work around this problem by adding a .ALIGN LONG
instruction in front of the .ADDRESS declaration and by adding the
/OPTIMIZE=NOADDRESS qualifier to the compile command.

i.e.	CALLS	#0006, @A00005
	.
	.
	.
	.ALIGN LONG
	.ADDRESS	_PROG3A

Compile Command:

	  MACRO -
	    /NODIAG -
	    /NOLIST -
	    /MIGRATE -
	    /OBJECT=[]MASTER3.OBJ -
	    /OPTIMIZE=NOADDRESS -
	    /NOTIE -
	    /UNALIGN -
	    /WARN=NOINFO -
		SYS$LIBRARY:ARCH_DEFS.MAR + []MASTER3.MAR

Just adding the .ALIGN LONG did not resolve the problem.  It looks like in
some cases the .ADDRESS is being optimized out of existance.  In the case
of MASTER3, the CALLS example above is executed three times.  When address
optimization is enabled, two out of the three calls fail.  One still works. 
Go figure.

Bruce C.
MSI
3364.11Sent this mail to the CSCHYDRA::BRYANTThu Apr 17 1997 15:3978
To:ALFSS2::SIMPSON_L
cc:[email protected]
Subject:Seq # C970327-5502
--------
Laurie,
Here is mail from the partner.  It is the results of him having applied the
workaround as suggested by your team.  Please see that the engineer working on
this case receives this mail since I believe it to be useful information.
Thank you
Pat Bryant
Software Partner Engineering
------- Forwarded Message

Return-Path: [email protected]
Received: from DECnet-Mail11.fluid.mro.dec.com by fluid.mro.dec.com
(5.65v4.0/1.1.8.2/19Nov96-0448PM)
	id AA04754; Wed, 16 Apr 1997 18:09:31 -0400
Date: Wed, 16 Apr 1997 18:09:31 -0400
Message-Id: <[email protected]>
Mime-Version: 1.0
From: [email protected] (Moving yesterday's software into
tomorrow.  16-Apr-1997 1716)
To: @pat_bryant
Cc: MSI
Subject: Workaround is working
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit

Hi Pat,

Using the /NOTIE qualifier elminated the INSFREEREG compilation problem. 
However, it caused an intermitent runtime problem when executing a CALLS
instruction to a program referenced by address.

i.e.	CALLS	#0006, @A00005
	.
	.
	.
	.ADDRESS	_PROG3A

We were able to work around this problem by adding a .ALIGN LONG instruction in
front of the .ADDRESS declaration and by adding the /OPTIMIZE=NOADDRESS
qualifier to the compile command.

i.e.	CALLS	#0006, @A00005
	.
	.
	.
	.ALIGN LONG
	.ADDRESS	_PROG3A

Compile Command:

	  MACRO -
	    /NODIAG -
	    /NOLIST -
	    /MIGRATE -
	    /OBJECT=[]MASTER3.OBJ -
	    /OPTIMIZE=NOADDRESS -
	    /NOTIE -
	    /UNALIGN -
	    /WARN=NOINFO -
		SYS$LIBRARY:ARCH_DEFS.MAR + []MASTER3.MAR

Just adding the .ALIGN LONG did not resolve the problem.  It looks like in some
cases the .ADDRESS is being optimized out of existance.  In the case of
MASTER3, the CALLS example above is executed three times.  When address
optimization is enabled, two out of the three calls fail.  One still works.  Go
figure.

This work-around puts our project back on the road, which I really appreciate. 
I'll look forward to a proper fix to the optimization error(s).

Regards,

Bruce C.
MSI

3364.12CSC asked if it could be downgraded so I asked partner and got back....HYDRA::BRYANTFri May 02 1997 12:3218
 Hi Pat,

  The work around allowed us to complete our currently project.  The
  inability to link to vested images is not a problem at the moment.  It is
  hard to say if it will be a problem in the future, as our customers use our
  software in a wide range of enviroments and are just now starting to look
  at ports to the Alpha platform.  It would be best in the long run if the
  link to vested image capability was there.

  At this point I would say the original error report could be downgraded
  from critical to "should be fixed".

  Thanks for your help with this and for your follow-ups.

  Regards,

  Bruce c.
  MSI
3364.13ClosingHYDRA::BRYANTMon May 12 1997 11:401
This will open back up again if vested images becomes an issue for this partner.