[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

3304.0. "Migration Specialties International" by HYDRA::AXPDEVELOPER (Alpha Developer support) Tue Mar 11 1997 13:38


    Company Name :  Migration Specialties International
    Contact Name :  Mr. Bruce Claremont
    Phone        :  (719)687-9196
    Fax          :  (719)687-8747
    Email        :  [email protected]
    Date/Time in :  11-MAR-1997 13:37:32
    Entered by   :  Jim Mikelis
    SPE center   :  MRO

    Category     :  vms
    OS Version   :  
    System H/W   :  


    Brief Description of Problem:
    -----------------------------

From:	SMTP%"[email protected]" 11-MAR-1997 08:41:27.84
To:	[email protected]
Subj:	A new problem, sent to me by mistake 

Date: Fri, 7 Mar 1997 22:34:25 -0500
Subject: Problem with Macro-32 compiler on Alpha

From: isvnet::[email protected] (Moving yesterday's software into 
tomorrow. 07-Mar-1997 2240)
To: mail11:;@[email protected];;; (@marvin_davis)
Cc: [email protected]
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=US-ASCII

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 -
	    /WARNNOINFO -
	    /OBJECTTSTKEY -
		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>,-
			RFMFIX,-
			MRSFILE_02_REC_SIZ,-
			SHR<GET,PUT,UPD,DEL>,-
			NAMFILE_02_NAM

   FILE_02_NAM:	$NAM	RSAN$FILE_02_NAME,-
			RSSNAM$C_MAXRSS

   FILE_02_RAB:	$RAB	FABFILE_02_FAB,-
			RBFN$FILE_02_REC_BUF,-
			RSZFILE_02_REC_SIZ,-
			TMOTIMEOUT

   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	FABFILE_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	'=1BEINFSR 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_ARGS0000+1, -
		HOME_ARGSTRUE
.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

T.RTitleUserPersonal
Name
DateLines
3304.1HYDRA::AXPDEVELOPERAlpha Developer supportTue Mar 11 1997 16:0421
From:	HYDRA::AXPDEVELOPER "[email protected]" 11-MAR-1997 16:03:53.18
To:	US4RMC::"[email protected]"
CC:	AXPDEVELOPER
Subj:	Log 1997-3304 Macro problem


Bruce,

It appears that the file has been corrupted in transit.I got your message
scattered with =20 characters throughout. Could you turn off mime encoding from
your mailer and uuencode the file and send it again? 


Best Regards,

  James Mikelis, Alpha Developer Support
  Digital Equipment Corporation, 200 Forest St. [MR01-2/K5], Marlboro, MA 01752
  Phone: +1.800.332.4786 FAX: +1.508.467.1468 [paper] (or) +1.508.467.3440 [online]
  EMAIL: [email protected] 
  URL:   http://www.partner.digital.com/www-swdev/

3304.2BLAZER::MIKELISSoftware Partner&#039;s Eng. MR01-3/F26Thu Mar 13 1997 11:5245
From:	US4RMC::ISVNET::MSI "Moving yesterday's software into tomorrow. 12-Mar-1997 2002"   12-MAR-1997 19:59:08.63
To:	hydra::axpdeveloper
CC:	isvnet::msi
Subj:	RE: Log 1997-3304 Macro problem

  Hi James,

  The original message was sent via the OpenVMS Mail utility.  If there is
  any mime encoding going on, I do not have control over it.  I have
  uuencoded the program and will send it in a follow-up message.

  Here is the problem restated:


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

  It occurred to me over the weekend that I ought to run a compile with
  warnings enabled.  I haven't done that yet, as I do not have access to an
  Alpha system this week.  You can bet it will be the first thing I try when
  I'm back at an alpha site next week.

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]
3304.3HYDRA::AXPDEVELOPERAlpha Developer supportTue Mar 25 1997 13:401
    Closed-see note 3364