Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-02 - decus/20-0057/eactph.fas
There are 2 other files named eactph.fas in the archive. Click here to see a list.
;*	*	*	*	*	*	*	*	*
;*	*	DECLARATIONS	*	*	*	*	*
;*	*	*	*	*	*	*	*	*
;*
;*		LOCAL
;*
;	DECLARE('SNOBOL.SUBPROGRAM','EACTPH')
;	DECLARE('OPTION','NO.STNO')
;	DECLARE('PURGE.VARIABLE',ALL)
;	DECLARE('PURGE.LABEL',ALL)
;	DECLARE('EXTERNAL.FUNCTION','PUTOUT,ERRMSG,NEWLAB,SUBS,GETATR,
;.GETBKT')
;	DECLARE('ENTRY.VARIABLE','BRKTB1,BRKTB2,BRKTB3,BRKTB4')
;	DECLARE('INTEGER','BRKTB1,BRKTB2,BRKTB3,BRKTB4')
;	DECLARE('INTEGER','I,J,K,L,M,NVAR,NSYM')
;	DECLARE('ENTRY.FUNCTION','INIEAC()')
;	DECLARE('ENTRY.FUNCTION','EACTPH()')
;*
;*		SYSTEM COMMON
;*
;*	TABLES AND LISTS
;	DECLARE('EXTERNAL.VARIABLE',
;.'SYMBTB,XNAMTB,KEYWTB,CTRLTB,DECLTB,CROSTB,CONSTB,ENTFTB,DSIZTB,
;.BOPRTB,UOPRTB')
;	DECLARE('EXTERNAL.VARIABLE',
;.'ENTRLS,EXTRLS,FORTLS')
;*	ARRAYS
;	DECLARE('EXTERNAL.VARIABLE',
;.'PTVRAR,PTFNAR,PRIMAR,GOTOAR,DECLAR,PROGAR,VARBAR,MACHAR,STENAR,BOPRAR,
;.UOPRAR,PATRAR,EXPRAR,AROPAR,ARITAR,EACTAR')
;*	PARAMETERS (STRINGS,DATATYPES)
;	DECLARE('EXTERNAL.VARIABLE',
;.'C,INDENT,SPLASH,ITNAM,ITENT,NOFAIL,SNONAM,SUBNAM,PARBLK,PRGNAM,STARTP,
;.TEMLOC,P1,P2,P3,P4,P5')
;*	PARAMETERS (INTEGERS)
;	DECLARE('EXTERNAL.VARIABLE',
;.'P,OBJFLG,LISTSR,INTGER,ITTYP,ITATR,PRGALV,PRGALL,PRGALF,STNFLG,HSHSIZ,
;.STRTIM,DMPFLG,LISTOB,STNO,MAXTMP')
;	DECLARE('INTEGER',
;.'P,OBJFLG,LISTSR,INTGER,ITTYP,ITATR,PRGALV,PRGALL,PRGALF,STNFLG,HSHSIZ,
;.STRTIM,DMPFLG,LISTOB,STNO,MAXTMP')
;	DECLARE('EXTERNAL.VARIABLE',
;.'XNATRB,VTATRB,VDATRB,LTATRB,FTATRB,FDATRB,TXATRB,VNATRB,VXATRB,VIATRB,
;.VGATRB,LIATRB,LGATRB,FIATRB,FGATRB,FXATRB,SKATRB,SDATRB,BTATRB')
;	DECLARE('INTEGER',
;.'XNATRB,VTATRB,VDATRB,LTATRB,FTATRB,FDATRB,TXATRB,VNATRB,VXATRB,VIATRB,
;.VGATRB,LIATRB,LGATRB,FIATRB,FGATRB,FXATRB,SKATRB,SDATRB,BTATRB')
;	DECLARE('EXTERNAL.VARIABLE',
;.'XNVATR,XNLATR,XNFATR,XNXMSK,VTVATR,VDDATR,VDPATR,VDDMSK,LTDATR,LTTMSK,
;.FTFATR,FDPATR,FDIATR,FDDMSK,TXTATR,TXTMSK,VNNATR,VXXATR,VIPATR,VGGATR,
;.LIPATR,LGGATR,FIPATR,FGGATR,FXXATR,FXXMSK,SKRATR,SDRATR,BTRATR')
;	DECLARE('INTEGER',
;.'XNVATR,XNLATR,XNFATR,XNXMSK,VTVATR,VDDATR,VDPATR,VDDMSK,LTDATR,LTTMSK,
;.FTFATR,FDPATR,FDIATR,FDDMSK,TXTATR,TXTMSK,VNNATR,VXXATR,VIPATR,VGGATR,
;.LIPATR,LGGATR,FIPATR,FGGATR,FXXATR,FXXMSK,SKRATR,SDRATR,BTRATR')
;*	SPECIAL CHARACTERS,CHARACTER SEQUENCES, AND CHARACTER CLASSES
;	DECLARE('EXTERNAL.VARIABLE',
;.'FFCHR,CRLCHR,LFCHR,CRCHR,SQCHR,DQCHR,TBCHR,LCSCHR,BLNCHR,EQLCHR,
;.QTSCHR,ELTCHR,LBCHR')
;*	PATTERNS AND MATCHES
;	DECLARE('EXTERNAL.VARIABLE',
;.'COMSPT,INTGPT,BLNKPT,OPBLPT,PCOMPT,PCPRMT,IDENPT,DCLCMT,RSIDPT,LABLPT,
;.POPRMT,IDENMT,SQLTPT,DQLTPT,LBDCPT,IDDCPT')
;*
;*	MINIMAL SYMBOL TABLE
;*
;	DECLARE('UNPURGE.VARIABLE','INIEAC,EACTPH,PUTLIT,STR1')
;	DECLARE('UNPURGE.LABEL','INIEAC EACTPH PUTLIT')
;	DECLARE('PURGE.FUNCTION','DATA,ARRAY,DIFFER,DATATYPE,SIZE,
;.SUBSTR,IDENT')
;*	*	*	*	*	*	*	*	*
;*	*	INITIALIZE END-ACTION PHASE	*	*	*
;*	*	*	*	*	*	*	*	*
;INIEAC	DEFINE('PUTLIT(STR1)')
TITLE EACTPH
	OPDEF	UFERR$	[1B8]
	OPDEF	CFERR$	[2B8]
	OPDEF	FCALV$	[3B8]
	OPDEF	FCALN$	[4B8]
	OPDEF	DASGN$	[5B8]
	OPDEF	DCONC$	[6B8]
	OPDEF	DICNV$	[7B8]
	OPDEF	DRCNV$	[10B8]
	OPDEF	AREFV$	[11B8]
	OPDEF	AREFN$	[12B8]
ENTRY EACTPH,INIEAC,BRKTB4,BRKTB3,BRKTB2,BRKTB1
EXTERN IDDCPT,LBDCPT,DQLTPT,SQLTPT,IDENMT,POPRMT,LABLPT,RSIDPT,DCLCMT,IDENPT
EXTERN PCPRMT,PCOMPT,OPBLPT,BLNKPT,INTGPT,COMSPT,LBCHR,ELTCHR,QTSCHR,EQLCHR
EXTERN BLNCHR,LCSCHR,TBCHR,DQCHR,SQCHR,CRCHR,LFCHR,CRLCHR,FFCHR,BTRATR
EXTERN SDRATR,SKRATR,FXXMSK,FXXATR,FGGATR,FIPATR,LGGATR,LIPATR,VGGATR,VIPATR
EXTERN VXXATR,VNNATR,TXTMSK,TXTATR,FDDMSK,FDIATR,FDPATR,FTFATR,LTTMSK,LTDATR
EXTERN VDDMSK,VDPATR,VDDATR,VTVATR,XNXMSK,XNFATR,XNLATR,XNVATR,BTATRB,SDATRB
EXTERN SKATRB,FXATRB,FGATRB,FIATRB,LGATRB,LIATRB,VGATRB,VIATRB,VXATRB,VNATRB
EXTERN TXATRB,FDATRB,FTATRB,LTATRB,VDATRB,VTATRB,XNATRB,MAXTMP,STNO,LISTOB
EXTERN DMPFLG,STRTIM,HSHSIZ,STNFLG,PRGALF,PRGALL,PRGALV,ITATR,ITTYP,INTGER
EXTERN LISTSR,OBJFLG,P,P5,P4,P3,P2,P1,TEMLOC,STARTP
EXTERN PRGNAM,PARBLK,SUBNAM,SNONAM,NOFAIL,ITENT,ITNAM,SPLASH,INDENT,C
EXTERN EACTAR,ARITAR,AROPAR,EXPRAR,PATRAR,UOPRAR,BOPRAR,STENAR,MACHAR,VARBAR
EXTERN PROGAR,DECLAR,GOTOAR,PRIMAR,PTFNAR,PTVRAR,FORTLS,EXTRLS,ENTRLS,UOPRTB
EXTERN BOPRTB,DSIZTB,ENTFTB,CONSTB,CROSTB,DECLTB,CTRLTB,KEYWTB,XNAMTB,SYMBTB
EXTERN GETBKT,GETATR,SUBS,NEWLAB,ERRMSG,PUTOUT
L10102:
	MOVEI	14,Q10002
	MOVEM	14,S$$FLP##
	MOVE	1,S10248
	FCALV$	^D1,F10066
Q10002:
;	DATA('SYM(INAM,ATRB)')
	MOVEI	14,Q10003
	MOVEM	14,S$$FLP##
	MOVE	1,S10249
	FCALV$	^D1,F10060
Q10003:
;	DATA('SNT(SNX,STY,SNM,SVL)')	:(RETURN)
	MOVEI	14,S$$SRT##
	MOVEM	14,S$$FLP##
	MOVE	1,S10250
	FCALV$	^D1,F10060
	JRST	S$$SRT##
;*	*	*	*	*	*	*	*	*
;*	*	GENERATE END-ACTION STORAGE	*	*	*
;*	*	*	*	*	*	*	*	*
;EACTPH
L10104:
;*	TEMP LOCATIONS
;	PUTOUT(SUBS(EACTAR<1>,TEMLOC,MAXTMP))
	MOVEI	14,Q10004
	MOVEM	14,S$$FLP##
	MOVE	1,I10251
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@TEMLOC
	PUSH	16,1
	MOVE	^D1,MAXTMP
	TLO	1,1B18
	TLZ	1,1B19
	FCALV$	^D3,SUBS
	FCALV$	^D1,PUTOUT
Q10004:
;*	RELEASE CODE ARRAYS IN CASE STORAGE IS NEEDED
;*
;	GOTOAR	=
	MOVEI	14,Q10005
	MOVEM	14,S$$FLP##
	SETZM	@GOTOAR
Q10005:
;	DECLAR	=
	MOVEI	14,Q10006
	MOVEM	14,S$$FLP##
	SETZM	@DECLAR
Q10006:
;	PROGAR	=
	MOVEI	14,Q10007
	MOVEM	14,S$$FLP##
	SETZM	@PROGAR
Q10007:
;	VARBAR	=
	MOVEI	14,Q10008
	MOVEM	14,S$$FLP##
	SETZM	@VARBAR
Q10008:
;	MACHAR	=
	MOVEI	14,Q10009
	MOVEM	14,S$$FLP##
	SETZM	@MACHAR
Q10009:
;	STENAR	=
	MOVEI	14,Q10010
	MOVEM	14,S$$FLP##
	SETZM	@STENAR
Q10010:
;	PATRAR	=
	MOVEI	14,Q10011
	MOVEM	14,S$$FLP##
	SETZM	@PATRAR
Q10011:
;	PTVRAR	=
	MOVEI	14,Q10012
	MOVEM	14,S$$FLP##
	SETZM	@PTVRAR
Q10012:
;	PTFNAR	=
	MOVEI	14,Q10013
	MOVEM	14,S$$FLP##
	SETZM	@PTFNAR
Q10013:
;	EXPRAR	=
	MOVEI	14,Q10014
	MOVEM	14,S$$FLP##
	SETZM	@EXPRAR
Q10014:
;	AROPAR	=
	MOVEI	14,Q10015
	MOVEM	14,S$$FLP##
	SETZM	@AROPAR
Q10015:
;	ARITAR	=
	MOVEI	14,Q10016
	MOVEM	14,S$$FLP##
	SETZM	@ARITAR
Q10016:
;*	CONVERT INTEGER AND REAL CONSTANTS TABLE TO ARRAY, GENERATE
;*	REQUIRED CONSTANTS AND/OR DESCRIPTORS
;	?INE(OBJFLG + LISTOB,0)	:F(EAC2)
	MOVEI	14,L10253
	MOVEM	14,S$$FLP##
	MOVE	^D1,OBJFLG
	ADD	^D1,LISTOB
	MOVEM	1,Q10001+^D0
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,Q10001+^D0
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
;	LISTAR	= ARRAY(CONSTB)	:F(EAC2)
	MOVEI	14,L10253
	MOVEM	14,S$$FLP##
	MOVE	1,@CONSTB
	FCALV$	^D1,F10063
	MOVEM	1,@N10254
;	CONSTB	= ?TABLE(CONSTB)
	MOVEI	14,Q10017
	MOVEM	14,S$$FLP##
	MOVE	1,@CONSTB
	FCALV$	^D1,F10064
	SETZ	1,
	MOVEM	1,@CONSTB
Q10017:
;	I	= 1
	MOVE	^D1,K10251
	MOVEM	1,V10095
;EAC1	STR1	= LISTAR<I,1>	:F(EAC2)
L10255:
	MOVEI	14,L10253
	MOVEM	14,S$$FLP##
	MOVE	^D1,V10095
	TLO	1,1B18
	TLZ	1,1B19
	PUSH	16,1
	MOVE	1,I10251
	AREFV$	^D2,N10254
	MOVEM	1,@N10247
;	J	=
	MOVEI	14,Q10018
	MOVEM	14,S$$FLP##
	SETZM	V10096
Q10018:
;	J	= ?DIFFER(DATATYPE(STR1),'INTEGER') 1
	MOVEI	14,Q10019
	MOVEM	14,S$$FLP##
	MOVE	1,@N10247
	FCALV$	^D1,F10052
	PUSH	16,1
	MOVE	1,S10048
	FCALV$	^D2,F10071
	SETZ	1,
	MOVE	^D1,K10251
	MOVEM	1,V10096
Q10019:
;	STR2	= LISTAR<I,2>
	MOVEI	14,Q10020
	MOVEM	14,S$$FLP##
	MOVE	^D1,V10095
	TLO	1,1B18
	TLZ	1,1B19
	PUSH	16,1
	MOVE	1,I10257
	AREFV$	^D2,N10254
	MOVEM	1,@N10256
Q10020:
;	ITATR	= ATRB(STR2)
	MOVEI	14,Q10021
	MOVEM	14,S$$FLP##
	MOVE	1,@N10256
	FCALV$	^D1,F10258
	DASGN$	2,ITATR
Q10021:
;	STR2	= INAM(STR2)
	MOVEI	14,Q10022
	MOVEM	14,S$$FLP##
	MOVE	1,@N10256
	FCALV$	^D1,F10259
	MOVEM	1,@N10256
Q10022:
;	(?INE(AND(ITATR,1048576),0) ?PUTOUT(SUBS(EACTAR<2 + J>,STR2,
;.STR1)))
	MOVEI	14,Q10023
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$AND##
	JUMP	0,ITATR
	JUMP	0,K10260
	ADD	16,S$$STB##
	MOVE	1,0
	MOVEM	1,Q10001+^D0
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,Q10001+^D0
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	^D1,K10257
	ADD	^D1,V10096
	TLO	1,1B18
	TLZ	1,1B19
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@N10256
	PUSH	16,1
	MOVE	1,@N10247
	FCALV$	^D3,SUBS
	FCALV$	^D1,PUTOUT
	SETZ	1,
Q10023:
;	(?INE(AND(ITATR,524288),0) ?PUTOUT(SUBS(EACTAR<4 + J>,STR2,STR1)
;.))
	MOVEI	14,Q10024
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$AND##
	JUMP	0,ITATR
	JUMP	0,K10261
	ADD	16,S$$STB##
	MOVE	1,0
	MOVEM	1,Q10001+^D0
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,Q10001+^D0
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	^D1,K10262
	ADD	^D1,V10096
	TLO	1,1B18
	TLZ	1,1B19
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@N10256
	PUSH	16,1
	MOVE	1,@N10247
	FCALV$	^D3,SUBS
	FCALV$	^D1,PUTOUT
	SETZ	1,
Q10024:
;	I	= I + 1	:(EAC1)
	MOVE	^D1,V10095
	ADD	^D1,K10251
	MOVEM	1,V10095
	JRST	L10255
;EAC2	LISTAR	=
L10253:
	MOVEI	14,Q10025
	MOVEM	14,S$$FLP##
	SETZM	@N10254
Q10025:
;*	CONVERT SYMBOL TABLE TO ARRAY, INITIALIZE FOR SYMBOL LOOP
;	VARBLK	= NEWLAB()
	MOVEI	14,Q10026
	MOVEM	14,S$$FLP##
	FCALV$	^D0,NEWLAB
	MOVEM	1,@N10263
Q10026:
;	LISTAR	= ARRAY(SYMBTB)
	MOVEI	14,Q10027
	MOVEM	14,S$$FLP##
	MOVE	1,@SYMBTB
	FCALV$	^D1,F10063
	MOVEM	1,@N10254
Q10027:
;	SYMBTB	= ?TABLE(SYMBTB)
	MOVEI	14,Q10028
	MOVEM	14,S$$FLP##
	MOVE	1,@SYMBTB
	FCALV$	^D1,F10064
	SETZ	1,
	MOVEM	1,@SYMBTB
Q10028:
;	I	= 1
	MOVE	^D1,K10251
	MOVEM	1,V10095
;*	SYMBOL LOOP, GENERATE ALL STORAGE EXCEPT UNDEDICATED VARIABLE
;*	LOCATIONS AND SYMBOL BLOCK ENTRIES
;EAC3	STR1	= LISTAR<I,1>	:F(EAC22)
L10264:
	MOVEI	14,L10265
	MOVEM	14,S$$FLP##
	MOVE	^D1,V10095
	TLO	1,1B18
	TLZ	1,1B19
	PUSH	16,1
	MOVE	1,I10251
	AREFV$	^D2,N10254
	MOVEM	1,@N10247
;	STR2	= LISTAR<I,2>
	MOVEI	14,Q10029
	MOVEM	14,S$$FLP##
	MOVE	^D1,V10095
	TLO	1,1B18
	TLZ	1,1B19
	PUSH	16,1
	MOVE	1,I10257
	AREFV$	^D2,N10254
	MOVEM	1,@N10256
Q10029:
;	ITATR	= ATRB(STR2)
	MOVEI	14,Q10030
	MOVEM	14,S$$FLP##
	MOVE	1,@N10256
	FCALV$	^D1,F10258
	DASGN$	2,ITATR
Q10030:
;	STR2	= INAM(STR2)
	MOVEI	14,Q10031
	MOVEM	14,S$$FLP##
	MOVE	1,@N10256
	FCALV$	^D1,F10259
	MOVEM	1,@N10256
Q10031:
;	?INE(OBJFLG + LISTOB,0)	:F(EAC10)
	MOVEI	14,L10266
	MOVEM	14,S$$FLP##
	MOVE	^D1,OBJFLG
	ADD	^D1,LISTOB
	MOVEM	1,Q10001+^D0
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,Q10001+^D0
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
;* STRING ATTRIBUTES
;	ITTYP	= 3
	MOVE	^D1,K10267
	MOVEM	1,ITTYP
;	GETATR()
	MOVEI	14,Q10032
	MOVEM	14,S$$FLP##
	FCALV$	^D0,GETATR
Q10032:
;* BREAK TABLE ATTRIBUTE
;	ITTYP	= 4
	MOVE	^D1,K10262
	MOVEM	1,ITTYP
;	(?GETATR() ?INE(BTATRB,0) ?GETBKT(STR1) ?PUTOUT(SUBS(EACTAR<6>,
;.STR2,BRKTB1)) ?PUTOUT(SUBS(EACTAR<7>,RSHIFT(BRKTB2,18),AND(BRKTB2,
;.262143))) ?PUTOUT(SUBS(EACTAR<7>,RSHIFT(BRKTB3,18),AND(BRKTB3,262143)))
;. ?PUTOUT(SUBS(EACTAR<7>,RSHIFT(BRKTB4,18),AND(BRKTB4,262143))))
	MOVEI	14,Q10033
	MOVEM	14,S$$FLP##
	FCALV$	^D0,GETATR
	SETZ	1,
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,BTATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	1,@N10247
	FCALV$	^D1,GETBKT
	SETZ	1,
	MOVE	1,I10268
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@N10256
	PUSH	16,1
	MOVE	^D1,BRKTB1
	TLO	1,1B18
	TLZ	1,1B19
	FCALV$	^D3,SUBS
	FCALV$	^D1,PUTOUT
	SETZ	1,
	MOVE	1,I10269
	AREFV$	^D1,EACTAR
	PUSH	16,1
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$RSH##
	JUMP	0,BRKTB2
	JUMP	0,K10270
	ADD	16,S$$STB##
	MOVE	1,0
	TLO	1,1B18
	TLZ	1,1B19
	PUSH	16,1
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$AND##
	JUMP	0,BRKTB2
	JUMP	0,K10271
	ADD	16,S$$STB##
	MOVE	1,0
	TLO	1,1B18
	TLZ	1,1B19
	FCALV$	^D3,SUBS
	FCALV$	^D1,PUTOUT
	SETZ	1,
	MOVE	1,I10269
	AREFV$	^D1,EACTAR
	PUSH	16,1
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$RSH##
	JUMP	0,BRKTB3
	JUMP	0,K10270
	ADD	16,S$$STB##
	MOVE	1,0
	TLO	1,1B18
	TLZ	1,1B19
	PUSH	16,1
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$AND##
	JUMP	0,BRKTB3
	JUMP	0,K10271
	ADD	16,S$$STB##
	MOVE	1,0
	TLO	1,1B18
	TLZ	1,1B19
	FCALV$	^D3,SUBS
	FCALV$	^D1,PUTOUT
	SETZ	1,
	MOVE	1,I10269
	AREFV$	^D1,EACTAR
	PUSH	16,1
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$RSH##
	JUMP	0,BRKTB4
	JUMP	0,K10270
	ADD	16,S$$STB##
	MOVE	1,0
	TLO	1,1B18
	TLZ	1,1B19
	PUSH	16,1
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$AND##
	JUMP	0,BRKTB4
	JUMP	0,K10271
	ADD	16,S$$STB##
	MOVE	1,0
	TLO	1,1B18
	TLZ	1,1B19
	FCALV$	^D3,SUBS
	FCALV$	^D1,PUTOUT
	SETZ	1,
Q10033:
;* VARIABLE ATTRIBUTES
;	ITTYP	= 5
	MOVE	^D1,K10272
	MOVEM	1,ITTYP
;	(?GETATR() ?INE(VTATRB,0) ?INE(VDATRB,VDPATR))	:F(EAC10)
	MOVEI	14,L10266
	MOVEM	14,S$$FLP##
	FCALV$	^D0,GETATR
	SETZ	1,
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,VTATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,VDATRB
	JUMP	0,VDPATR
	ADD	16,S$$STB##
	SETZ	1,
;	(?INE(VXATRB,0) ?IEQ(VNATRB,0))	:S(EAC10)
	MOVEI	14,Q10034
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,VXATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$EQP##
	JUMP	0,VNATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	JRST	L10266
Q10034:
;	(?INE(VXATRB,0) ?PUTOUT(SUBS(EACTAR<11>,STR2,VDATRB / VDDATR,
;.XNAMTB[STR2])))	:S(EAC10)
	MOVEI	14,Q10035
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,VXATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	1,I10273
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@N10256
	PUSH	16,1
	MOVE	^D1,VDATRB
	IDIV	^D1,VDDATR
	TLO	1,1B18
	TLZ	1,1B19
	PUSH	16,1
	MOVE	1,@N10256
	AREFV$	^D1,XNAMTB
	FCALV$	^D4,SUBS
	FCALV$	^D1,PUTOUT
	SETZ	1,
	JRST	L10266
Q10035:
;	NVAR	= ?IEQ(VDATRB,0) NVAR + 1	:F(EAC5)
	MOVEI	14,L10274
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$EQP##
	JUMP	0,VDATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	^D1,V10100
	ADD	^D1,K10251
	MOVEM	1,V10100
;	STR3	= ?INE(XNATRB,XNVATR) 'N' STR2	:S(EAC4)
	MOVEI	14,Q10036
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,XNATRB
	JUMP	0,XNVATR
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	1,S10276
	PUSH	16,1
	MOVE	1,@N10256
	JSP	14,S$$CNC##
	EXP	^D2
	MOVEM	1,@N10275
	JRST	L10277
Q10036:
;	STR3	= XNAMTB[STR2]
	MOVEI	14,Q10037
	MOVEM	14,S$$FLP##
	MOVE	1,@N10256
	AREFV$	^D1,XNAMTB
	MOVEM	1,@N10275
Q10037:
;EAC4	STR3	= SUBS(EACTAR<8>,STR3,VARBLK,NVAR)	:(EAC8)
L10277:
	MOVEI	14,L10279
	MOVEM	14,S$$FLP##
	MOVE	1,I10278
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@N10275
	PUSH	16,1
	MOVE	1,@N10263
	PUSH	16,1
	MOVE	^D1,V10100
	TLO	1,1B18
	TLZ	1,1B19
	FCALV$	^D4,SUBS
	MOVEM	1,@N10275
	JRST	L10279
;EAC5	STR3	= ?INE(XNATRB,XNVATR) 'V' STR2	:S(EAC6)
L10274:
	MOVEI	14,Q10038
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,XNATRB
	JUMP	0,XNVATR
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	1,S10280
	PUSH	16,1
	MOVE	1,@N10256
	JSP	14,S$$CNC##
	EXP	^D2
	MOVEM	1,@N10275
	JRST	L10281
Q10038:
;	STR3	= XNAMTB[STR2]
	MOVEI	14,Q10039
	MOVEM	14,S$$FLP##
	MOVE	1,@N10256
	AREFV$	^D1,XNAMTB
	MOVEM	1,@N10275
Q10039:
;EAC6	(?INE(VDATRB,VDDATR) ?PUTOUT(SUBS(EACTAR<9>,STR3)))	:S(EAC7)
L10281:
	MOVEI	14,Q10040
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,VDATRB
	JUMP	0,VDDATR
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	1,I10282
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@N10275
	FCALV$	^D2,SUBS
	FCALV$	^D1,PUTOUT
	SETZ	1,
	JRST	L10283
Q10040:
;	J	= DSIZTB[STR2]
	MOVEI	14,Q10041
	MOVEM	14,S$$FLP##
	MOVE	1,@N10256
	AREFV$	^D1,DSIZTB
	DASGN$	2,V10096
Q10041:
;	K	= J / 5
	MOVE	^D1,V10096
	IDIV	^D1,K10272
	MOVEM	1,V10097
;	K	= ?INE(J,5 * K) K + 1
	MOVEI	14,Q10042
	MOVEM	14,S$$FLP##
	MOVE	^D1,K10272
	IMUL	^D1,V10097
	MOVEM	1,Q10001+^D0
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,V10096
	JUMP	0,Q10001+^D0
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	^D1,V10097
	ADD	^D1,K10251
	MOVEM	1,V10097
Q10042:
;	PUTOUT(SUBS(EACTAR<10>,STR3,K))
	MOVEI	14,Q10043
	MOVEM	14,S$$FLP##
	MOVE	1,I10284
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@N10275
	PUSH	16,1
	MOVE	^D1,V10097
	TLO	1,1B18
	TLZ	1,1B19
	FCALV$	^D3,SUBS
	FCALV$	^D1,PUTOUT
Q10043:
;EAC7	(?IEQ(VNATRB,0) ?IEQ(VGATRB,0) ?INE(VIATRB,0)) :S(EAC10)
L10283:
	MOVEI	14,Q10044
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$EQP##
	JUMP	0,VNATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$EQP##
	JUMP	0,VGATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,VIATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	JRST	L10266
Q10044:
;	STR3	= SUBS(EACTAR<11>,STR2,VDATRB / VDDATR,STR3)
	MOVEI	14,Q10045
	MOVEM	14,S$$FLP##
	MOVE	1,I10273
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@N10256
	PUSH	16,1
	MOVE	^D1,VDATRB
	IDIV	^D1,VDDATR
	TLO	1,1B18
	TLZ	1,1B19
	PUSH	16,1
	MOVE	1,@N10275
	FCALV$	^D4,SUBS
	MOVEM	1,@N10275
Q10045:
;EAC8	(?IEQ(VGATRB,0) ?INE(VIATRB,0) ?PUTOUT(STR3))	:S(EAC10)
L10279:
	MOVEI	14,Q10046
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$EQP##
	JUMP	0,VGATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,VIATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	1,@N10275
	FCALV$	^D1,PUTOUT
	SETZ	1,
	JRST	L10266
Q10046:
;	SKATRB	= 1
	MOVE	^D1,K10251
	MOVEM	1,SKATRB
;	K	= 1 + VGATRB / VGGATR
	MOVE	^D1,K10251
	MOVE	^D2,VGATRB
	IDIV	^D2,VGGATR
	ADD	^D1,^D2
	MOVEM	1,V10097
;	K	= ?INE(SDATRB,0) 8 + K	:F(EAC9)
	MOVEI	14,L10285
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,SDATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	^D1,K10278
	ADD	^D1,V10097
	MOVEM	1,V10097
;	SDATRB	=
	MOVEI	14,Q10047
	MOVEM	14,S$$FLP##
	SETZM	SDATRB
Q10047:
;EAC9	SYMLST	= SNT(SYMLST,K,STR2,STR3)
L10285:
	MOVEI	14,Q10048
	MOVEM	14,S$$FLP##
	MOVE	1,@N10286
	PUSH	16,1
	MOVE	^D1,V10097
	TLO	1,1B18
	TLZ	1,1B19
	PUSH	16,1
	MOVE	1,@N10256
	PUSH	16,1
	MOVE	1,@N10275
	FCALV$	^D4,F10287
	MOVEM	1,@N10286
Q10048:
;	NSYM	= NSYM + 1
	MOVE	^D1,V10101
	ADD	^D1,K10251
	MOVEM	1,V10101
;* LABEL ATTRIBUTES
;EAC10	ITTYP	= 6
L10266:
	MOVE	^D1,K10268
	MOVEM	1,ITTYP
;	(?GETATR() ?INE(LTATRB,0))	:F(EAC14)
	MOVEI	14,L10288
	MOVEM	14,S$$FLP##
	FCALV$	^D0,GETATR
	SETZ	1,
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,LTATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
;	(?INE(LTATRB,LTDATR) ?ERRMSG('UNDEFINED LABEL: ' STR1))
	MOVEI	14,Q10049
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,LTATRB
	JUMP	0,LTDATR
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	1,S10289
	PUSH	16,1
	MOVE	1,@N10247
	JSP	14,S$$CNC##
	EXP	^D2
	FCALV$	^D1,ERRMSG
	SETZ	1,
Q10049:
;	?INE(OBJFLG + LISTOB,0)	:F(EAC21)
	MOVEI	14,L10290
	MOVEM	14,S$$FLP##
	MOVE	^D1,OBJFLG
	ADD	^D1,LISTOB
	MOVEM	1,Q10001+^D0
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,Q10001+^D0
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
;	(?IEQ(LGATRB,0) ?INE(LIATRB,0) ?IEQ(LTATRB,LTDATR)) :S(EAC15)
	MOVEI	14,Q10050
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$EQP##
	JUMP	0,LGATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,LIATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$EQP##
	JUMP	0,LTATRB
	JUMP	0,LTDATR
	ADD	16,S$$STB##
	SETZ	1,
	JRST	L10291
Q10050:
;	STR3	= ?INE(XNATRB,XNLATR) 'L' STR2	:S(EAC11)
	MOVEI	14,Q10051
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,XNATRB
	JUMP	0,XNLATR
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	1,S10098
	PUSH	16,1
	MOVE	1,@N10256
	JSP	14,S$$CNC##
	EXP	^D2
	MOVEM	1,@N10275
	JRST	L10292
Q10051:
;	STR3	= XNAMTB[STR2]
	MOVEI	14,Q10052
	MOVEM	14,S$$FLP##
	MOVE	1,@N10256
	AREFV$	^D1,XNAMTB
	MOVEM	1,@N10275
Q10052:
;EAC11	STR3	= ?INE(LTATRB,LTDATR) SUBS(EACTAR<31>,STR3,EACTAR<12>)
;.	:S(EAC12)
L10292:
	MOVEI	14,Q10053
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,LTATRB
	JUMP	0,LTDATR
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	1,I10293
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@N10275
	PUSH	16,1
	MOVE	1,I10294
	AREFV$	^D1,EACTAR
	FCALV$	^D3,SUBS
	MOVEM	1,@N10275
	JRST	L10295
Q10053:
;	STR3	= SUBS(EACTAR<13>,STR3)
	MOVEI	14,Q10054
	MOVEM	14,S$$FLP##
	MOVE	1,I10296
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@N10275
	FCALV$	^D2,SUBS
	MOVEM	1,@N10275
Q10054:
;EAC12	(?IEQ(LGATRB,0) ?INE(LIATRB,0) ?PUTOUT(STR3))	:S(EAC15)
L10295:
	MOVEI	14,Q10055
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$EQP##
	JUMP	0,LGATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,LIATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	1,@N10275
	FCALV$	^D1,PUTOUT
	SETZ	1,
	JRST	L10291
Q10055:
;	SKATRB	= 1
	MOVE	^D1,K10251
	MOVEM	1,SKATRB
;	K	= 3 + LGATRB / LGGATR
	MOVE	^D1,K10267
	MOVE	^D2,LGATRB
	IDIV	^D2,LGGATR
	ADD	^D1,^D2
	MOVEM	1,V10097
;	K	= ?INE(SDATRB,0) 8 + K	:F(EAC13)
	MOVEI	14,L10297
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,SDATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	^D1,K10278
	ADD	^D1,V10097
	MOVEM	1,V10097
;	SDATRB	=
	MOVEI	14,Q10056
	MOVEM	14,S$$FLP##
	SETZM	SDATRB
Q10056:
;EAC13	SYMLST	= SNT(SYMLST,K,STR2,STR3)
L10297:
	MOVEI	14,Q10057
	MOVEM	14,S$$FLP##
	MOVE	1,@N10286
	PUSH	16,1
	MOVE	^D1,V10097
	TLO	1,1B18
	TLZ	1,1B19
	PUSH	16,1
	MOVE	1,@N10256
	PUSH	16,1
	MOVE	1,@N10275
	FCALV$	^D4,F10287
	MOVEM	1,@N10286
Q10057:
;	NSYM	= NSYM + 1
	MOVE	^D1,V10101
	ADD	^D1,K10251
	MOVEM	1,V10101
;* FUNCTION ATTRIBUTES
;EAC14	?INE(OBJFLG + LISTOB,0)	:F(EAC21)
L10288:
	MOVEI	14,L10290
	MOVEM	14,S$$FLP##
	MOVE	^D1,OBJFLG
	ADD	^D1,LISTOB
	MOVEM	1,Q10001+^D0
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,Q10001+^D0
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
;EAC15	ITTYP	= 7
L10291:
	MOVE	^D1,K10269
	MOVEM	1,ITTYP
;	(?GETATR() ?INE(FTATRB,0) ?IEQ(FDATRB,0) ?INE(FXATRB,FXXATR))
;.	:F(EAC19)
	MOVEI	14,L10298
	MOVEM	14,S$$FLP##
	FCALV$	^D0,GETATR
	SETZ	1,
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,FTATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$EQP##
	JUMP	0,FDATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,FXATRB
	JUMP	0,FXXATR
	ADD	16,S$$STB##
	SETZ	1,
;	STR3	= ?IEQ(FXATRB,0) SUBS(EACTAR<14>,STR2)	:S(EAC17)
	MOVEI	14,Q10058
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$EQP##
	JUMP	0,FXATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	1,I10299
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@N10256
	FCALV$	^D2,SUBS
	MOVEM	1,@N10275
	JRST	L10300
Q10058:
;	STR3	= ?IEQ(FXATRB,FXXMSK) PRIMAR<TXATRB / TXTATR> :F(EAC16)
	MOVEI	14,L10301
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$EQP##
	JUMP	0,FXATRB
	JUMP	0,FXXMSK
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	^D1,TXATRB
	IDIV	^D1,TXTATR
	TLO	1,1B18
	TLZ	1,1B19
	AREFV$	^D1,PRIMAR
	MOVEM	1,@N10275
;	STR3	RTAB(3) $ K  REM $ STR3
	MOVEI	14,Q10059
	MOVEM	14,S$$FLP##
	MOVE	1,@N10275
	PUSH	16,1
	JSP	14,S$$MTX##
	XWD	^D-1,0
	BYTE	(2)2(16)1(18).+1
	JSP	11,S$$VAS##
	HRRZ	1,K10267
	JSP	11,S$$RTB##
	MOVE	1,N10097
	JSP	11,S$$IVA##
	JSP	11,S$$VAS##
	JSP	11,S$$REM##
	MOVE	1,N10275
	JSP	11,S$$IVA##
	JSP	11,S$$MTS##
Q10059:
;	STR3	= SUBS(EACTAR<16>,STR2,K,STR3)	:(EAC17)
	MOVEI	14,L10300
	MOVEM	14,S$$FLP##
	MOVE	1,I10302
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@N10256
	PUSH	16,1
	MOVE	^D1,V10097
	TLO	1,1B18
	TLZ	1,1B19
	PUSH	16,1
	MOVE	1,@N10275
	FCALV$	^D4,SUBS
	MOVEM	1,@N10275
	JRST	L10300
;EAC16	STR3	= ENTFTB[STR2]
L10301:
	MOVEI	14,Q10060
	MOVEM	14,S$$FLP##
	MOVE	1,@N10256
	AREFV$	^D1,ENTFTB
	MOVEM	1,@N10275
Q10060:
;	K	= STR3<4>
	MOVEI	14,Q10061
	MOVEM	14,S$$FLP##
	MOVE	1,I10262
	AREFV$	^D1,N10275
	DASGN$	2,V10097
Q10061:
;	STR3	= SUBS(EACTAR<15>,STR1,K,STR2)
	MOVEI	14,Q10062
	MOVEM	14,S$$FLP##
	MOVE	1,I10303
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@N10247
	PUSH	16,1
	MOVE	^D1,V10097
	TLO	1,1B18
	TLZ	1,1B19
	PUSH	16,1
	MOVE	1,@N10256
	FCALV$	^D4,SUBS
	MOVEM	1,@N10275
Q10062:
;EAC17	(?IEQ(FGATRB,0) ?INE(FIATRB,0) ?PUTOUT(STR3))	:S(EAC19)
L10300:
	MOVEI	14,Q10063
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$EQP##
	JUMP	0,FGATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,FIATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	1,@N10275
	FCALV$	^D1,PUTOUT
	SETZ	1,
	JRST	L10298
Q10063:
;	SKATRB	= 1
	MOVE	^D1,K10251
	MOVEM	1,SKATRB
;	K	= 5 + FGATRB / FGGATR
	MOVE	^D1,K10272
	MOVE	^D2,FGATRB
	IDIV	^D2,FGGATR
	ADD	^D1,^D2
	MOVEM	1,V10097
;	K	= ?INE(SDATRB,0) 8 + K	:F(EAC18)
	MOVEI	14,L10304
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,SDATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	^D1,K10278
	ADD	^D1,V10097
	MOVEM	1,V10097
;	SDATRB	=
	MOVEI	14,Q10064
	MOVEM	14,S$$FLP##
	SETZM	SDATRB
Q10064:
;EAC18	SYMLST	= SNT(SYMLST,K,STR2,STR3)
L10304:
	MOVEI	14,Q10065
	MOVEM	14,S$$FLP##
	MOVE	1,@N10286
	PUSH	16,1
	MOVE	^D1,V10097
	TLO	1,1B18
	TLZ	1,1B19
	PUSH	16,1
	MOVE	1,@N10256
	PUSH	16,1
	MOVE	1,@N10275
	FCALV$	^D4,F10287
	MOVEM	1,@N10286
Q10065:
;	NSYM	= NSYM + 1
	MOVE	^D1,V10101
	ADD	^D1,K10251
	MOVEM	1,V10101
;* GENERATE STRING BLOCK AND DESCRIPTOR,IF REQUIRED
;EAC19	(?INE(SDATRB,0) ?PUTOUT(SUBS(EACTAR<17>,STR2)))
L10298:
	MOVEI	14,Q10066
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,SDATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	1,I10305
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@N10256
	FCALV$	^D2,SUBS
	FCALV$	^D1,PUTOUT
	SETZ	1,
Q10066:
;	J	= ?INE(SKATRB,0) SIZE(STR1)	:F(EAC21)
	MOVEI	14,L10290
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,SKATRB
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	1,@N10247
	FCALV$	^D1,F10050
	DASGN$	2,V10096
;	K	= J / 5
	MOVE	^D1,V10096
	IDIV	^D1,K10272
	MOVEM	1,V10097
;	K	= ?INE(J,5 * K) K + 1
	MOVEI	14,Q10067
	MOVEM	14,S$$FLP##
	MOVE	^D1,K10272
	IMUL	^D1,V10097
	MOVEM	1,Q10001+^D0
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,V10096
	JUMP	0,Q10001+^D0
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	^D1,V10097
	ADD	^D1,K10251
	MOVEM	1,V10097
Q10067:
;	PUTOUT(SUBS(EACTAR<18>,STR2,K,J))
	MOVEI	14,Q10068
	MOVEM	14,S$$FLP##
	MOVE	1,I10270
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@N10256
	PUSH	16,1
	MOVE	^D1,V10097
	TLO	1,1B18
	TLZ	1,1B19
	PUSH	16,1
	MOVE	^D1,V10096
	TLO	1,1B18
	TLZ	1,1B19
	FCALV$	^D4,SUBS
	FCALV$	^D1,PUTOUT
Q10068:
;	(?ILE(J,60) ?PUTLIT(STR1))	:S(EAC21)
	MOVEI	14,Q10069
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$LEP##
	JUMP	0,V10096
	JUMP	0,K10306
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	1,@N10247
	FCALV$	^D1,F10246
	SETZ	1,
	JRST	L10290
Q10069:
;	P	=
	MOVEI	14,Q10070
	MOVEM	14,S$$FLP##
	SETZM	P
Q10070:
;EAC20	K	= 60
L10307:
	MOVE	^D1,K10306
	MOVEM	1,V10097
;	K	= ?IGT(K,J - P) J - P
	MOVEI	14,Q10071
	MOVEM	14,S$$FLP##
	MOVE	^D1,V10096
	SUB	^D1,P
	MOVEM	1,Q10001+^D0
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$GTP##
	JUMP	0,V10097
	JUMP	0,Q10001+^D0
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	^D1,V10096
	SUB	^D1,P
	MOVEM	1,V10097
Q10071:
;	PUTLIT(SUBSTR(STR1,K,P))
	MOVEI	14,Q10072
	MOVEM	14,S$$FLP##
	MOVE	1,@N10247
	PUSH	16,1
	MOVE	^D1,V10097
	TLO	1,1B18
	TLZ	1,1B19
	PUSH	16,1
	MOVE	^D1,P
	TLO	1,1B18
	TLZ	1,1B19
	FCALV$	^D3,F10081
	FCALV$	^D1,F10246
Q10072:
;	P	= ?INE(P + K,J) P + 60	:S(EAC20)
	MOVEI	14,Q10073
	MOVEM	14,S$$FLP##
	MOVE	^D1,P
	ADD	^D1,V10097
	MOVEM	1,Q10001+^D0
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,Q10001+^D0
	JUMP	0,V10096
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	^D1,P
	ADD	^D1,K10306
	MOVEM	1,P
	JRST	L10307
Q10073:
;* BOTTOM OF SYMBOL LOOP
;EAC21	I	= I + 1	:(EAC3)
L10290:
	MOVE	^D1,V10095
	ADD	^D1,K10251
	MOVEM	1,V10095
	JRST	L10264
;* END OF SYMBOL LOOP
;EAC22	LISTAR	=
L10265:
	MOVEI	14,Q10074
	MOVEM	14,S$$FLP##
	SETZM	@N10254
Q10074:
;	?INE(OBJFLG + LISTOB,0)	:F(RETURN)
	MOVEI	14,S$$SRT##
	MOVEM	14,S$$FLP##
	MOVE	^D1,OBJFLG
	ADD	^D1,LISTOB
	MOVEM	1,Q10001+^D0
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,Q10001+^D0
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
;*	GENERATE VARIABLE BLOCK
;	(?IGT(NVAR,0) ?PUTOUT(SUBS(EACTAR<20>,VARBLK,NVAR)))
	MOVEI	14,Q10075
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$GTP##
	JUMP	0,V10100
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	1,I10308
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@N10263
	PUSH	16,1
	MOVE	^D1,V10100
	TLO	1,1B18
	TLZ	1,1B19
	FCALV$	^D3,SUBS
	FCALV$	^D1,PUTOUT
	SETZ	1,
Q10075:
;*	GENERATE SYMBOL BLOCK
;	SYMBLK	= ?IGT(NSYM,0) NEWLAB()	:F(EAC24)
	MOVEI	14,L10310
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$GTP##
	JUMP	0,V10101
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	FCALV$	^D0,NEWLAB
	MOVEM	1,@N10309
;	PUTOUT(SUBS(EACTAR<25>,SYMBLK,NSYM))
	MOVEI	14,Q10076
	MOVEM	14,S$$FLP##
	MOVE	1,I10311
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@N10309
	PUSH	16,1
	MOVE	^D1,V10101
	TLO	1,1B18
	TLZ	1,1B19
	FCALV$	^D3,SUBS
	FCALV$	^D1,PUTOUT
Q10076:
;EAC23	I	= STY(SYMLST)
L10312:
	MOVEI	14,Q10077
	MOVEM	14,S$$FLP##
	MOVE	1,@N10286
	FCALV$	^D1,F10313
	DASGN$	2,V10095
Q10077:
;	STR1	=
	MOVEI	14,Q10078
	MOVEM	14,S$$FLP##
	SETZM	@N10247
Q10078:
;	STR1	= ?INE(AND(I,8),0) SUBS(EACTAR<26>,SNM(SYMLST))
	MOVEI	14,Q10079
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$AND##
	JUMP	0,V10095
	JUMP	0,K10278
	ADD	16,S$$STB##
	MOVE	1,0
	MOVEM	1,Q10001+^D0
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,Q10001+^D0
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	1,I10314
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@N10286
	FCALV$	^D1,F10315
	FCALV$	^D2,SUBS
	MOVEM	1,@N10247
Q10079:
;	I	= AND(I,7)
	MOVEI	14,Q10080
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$AND##
	JUMP	0,V10095
	JUMP	0,K10269
	ADD	16,S$$STB##
	MOVE	1,0
	MOVEM	1,V10095
Q10080:
;	PUTOUT(SUBS(EACTAR<27>,I,STR1,SNM(SYMLST),SVL(SYMLST)))
	MOVEI	14,Q10081
	MOVEM	14,S$$FLP##
	MOVE	1,I10316
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	^D1,V10095
	TLO	1,1B18
	TLZ	1,1B19
	PUSH	16,1
	MOVE	1,@N10247
	PUSH	16,1
	MOVE	1,@N10286
	FCALV$	^D1,F10315
	PUSH	16,1
	MOVE	1,@N10286
	FCALV$	^D1,F10317
	FCALV$	^D5,SUBS
	FCALV$	^D1,PUTOUT
Q10081:
;	SYMLST	= SNX(SYMLST)
	MOVEI	14,Q10082
	MOVEM	14,S$$FLP##
	MOVE	1,@N10286
	FCALV$	^D1,F10318
	MOVEM	1,@N10286
Q10082:
;	IDENT(SYMLST)	:F(EAC23)
	MOVEI	14,L10312
	MOVEM	14,S$$FLP##
	MOVE	1,@N10286
	FCALV$	^D1,F10072
;*	GENERATE PARAMETER BLOCK
;EAC24	VARBLK	= ?IEQ(NVAR,0) '0'
L10310:
	MOVEI	14,Q10083
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$EQP##
	JUMP	0,V10100
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	1,S10319
	MOVEM	1,@N10263
Q10083:
;	SYMBLK	= ?IEQ(NSYM,0) '0'
	MOVEI	14,Q10084
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$EQP##
	JUMP	0,V10101
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	1,S10319
	MOVEM	1,@N10309
Q10084:
;	STNO	= ?INE(STNFLG,1) 0
	MOVEI	14,Q10085
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,STNFLG
	JUMP	0,K10251
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	^D1,K10252
	MOVEM	1,STNO
Q10085:
;	PUTOUT(SUBS(EACTAR<21>,PRGNAM,PARBLK,VARBLK,SYMBLK,STNO))
	MOVEI	14,Q10086
	MOVEM	14,S$$FLP##
	MOVE	1,I10320
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@PRGNAM
	PUSH	16,1
	MOVE	1,@PARBLK
	PUSH	16,1
	MOVE	1,@N10263
	PUSH	16,1
	MOVE	1,@N10309
	PUSH	16,1
	MOVE	^D1,STNO
	TLO	1,1B18
	TLZ	1,1B19
	FCALV$	^D6,SUBS
	FCALV$	^D1,PUTOUT
Q10086:
;*	GENERATE 'ENTRY.FUNCTION' INITIALIZATIONS
;	LISTAR	= ?DIFFER(ENTFTB) ARRAY(ENTFTB)	:F(EAC27)
	MOVEI	14,L10321
	MOVEM	14,S$$FLP##
	MOVE	1,@ENTFTB
	FCALV$	^D1,F10071
	SETZ	1,
	MOVE	1,@ENTFTB
	FCALV$	^D1,F10063
	MOVEM	1,@N10254
;	ENTFTB	= ?TABLE(ENTFTB)
	MOVEI	14,Q10087
	MOVEM	14,S$$FLP##
	MOVE	1,@ENTFTB
	FCALV$	^D1,F10064
	SETZ	1,
	MOVEM	1,@ENTFTB
Q10087:
;	I	= 1
	MOVE	^D1,K10251
	MOVEM	1,V10095
;EAC25	STR1	= LISTAR<I,1>	:F(EAC27)
L10322:
	MOVEI	14,L10321
	MOVEM	14,S$$FLP##
	MOVE	^D1,V10095
	TLO	1,1B18
	TLZ	1,1B19
	PUSH	16,1
	MOVE	1,I10251
	AREFV$	^D2,N10254
	MOVEM	1,@N10247
;	STR2	= LISTAR<I,2>
	MOVEI	14,Q10088
	MOVEM	14,S$$FLP##
	MOVE	^D1,V10095
	TLO	1,1B18
	TLZ	1,1B19
	PUSH	16,1
	MOVE	1,I10257
	AREFV$	^D2,N10254
	MOVEM	1,@N10256
Q10088:
;	STR3	= STR2<3>
	MOVEI	14,Q10089
	MOVEM	14,S$$FLP##
	MOVE	1,I10267
	AREFV$	^D1,N10256
	MOVEM	1,@N10275
Q10089:
;	STR3	= ?IDENT(STR3) '0'	:S(EAC26)
	MOVEI	14,Q10090
	MOVEM	14,S$$FLP##
	MOVE	1,@N10275
	FCALV$	^D1,F10072
	SETZ	1,
	MOVE	1,S10319
	MOVEM	1,@N10275
	JRST	L10323
Q10090:
;	STR3	= SUBS(EACTAR<22>,STR3)
	MOVEI	14,Q10091
	MOVEM	14,S$$FLP##
	MOVE	1,I10324
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@N10275
	FCALV$	^D2,SUBS
	MOVEM	1,@N10275
Q10091:
;EAC26	PUTOUT(SUBS(EACTAR<23>,STR2<1>,PARBLK,STR1,STR2<2>,STR3))
L10323:
	MOVEI	14,Q10092
	MOVEM	14,S$$FLP##
	MOVE	1,I10325
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,I10251
	AREFV$	^D1,N10256
	PUSH	16,1
	MOVE	1,@PARBLK
	PUSH	16,1
	MOVE	1,@N10247
	PUSH	16,1
	MOVE	1,I10257
	AREFV$	^D1,N10256
	PUSH	16,1
	MOVE	1,@N10275
	FCALV$	^D6,SUBS
	FCALV$	^D1,PUTOUT
Q10092:
;	I	= I + 1	:(EAC25)
	MOVE	^D1,V10095
	ADD	^D1,K10251
	MOVEM	1,V10095
	JRST	L10322
;*	GENERATE 'ENTRY.FORTRAN.FUNCTION' INITIALIZATIONS
;EAC27	STR1	= ?DIFFER(FORTLS) FORTLS<5>	:F(EAC29)
L10321:
	MOVEI	14,L10326
	MOVEM	14,S$$FLP##
	MOVE	1,@FORTLS
	FCALV$	^D1,F10071
	SETZ	1,
	MOVE	1,I10272
	AREFV$	^D1,FORTLS
	MOVEM	1,@N10247
;	STR1	= ?IDENT(STR1) '0'	:S(EAC28)
	MOVEI	14,Q10093
	MOVEM	14,S$$FLP##
	MOVE	1,@N10247
	FCALV$	^D1,F10072
	SETZ	1,
	MOVE	1,S10319
	MOVEM	1,@N10247
	JRST	L10327
Q10093:
;	STR1	= SUBS(EACTAR<22>,STR1)
	MOVEI	14,Q10094
	MOVEM	14,S$$FLP##
	MOVE	1,I10324
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@N10247
	FCALV$	^D2,SUBS
	MOVEM	1,@N10247
Q10094:
;EAC28	PUTOUT(SUBS(EACTAR<24>,FORTLS<2>,FORTLS<3>,PARBLK,FORTLS<4>,
;.STR1))
L10327:
	MOVEI	14,Q10095
	MOVEM	14,S$$FLP##
	MOVE	1,I10328
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,I10257
	AREFV$	^D1,FORTLS
	PUSH	16,1
	MOVE	1,I10267
	AREFV$	^D1,FORTLS
	PUSH	16,1
	MOVE	1,@PARBLK
	PUSH	16,1
	MOVE	1,I10262
	AREFV$	^D1,FORTLS
	PUSH	16,1
	MOVE	1,@N10247
	FCALV$	^D6,SUBS
	FCALV$	^D1,PUTOUT
Q10095:
;	FORTLS	= FORTLS<1>	:(EAC27)
	MOVEI	14,L10321
	MOVEM	14,S$$FLP##
	MOVE	1,I10251
	AREFV$	^D1,FORTLS
	MOVEM	1,@FORTLS
	JRST	L10321
;*	GENERATE END STATEMENT
;EAC29	(?INE(DMPFLG,0) ?PUTOUT(EACTAR<30>))
L10326:
	MOVEI	14,Q10096
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$NEP##
	JUMP	0,DMPFLG
	JUMP	0,K10252
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	1,I10329
	AREFV$	^D1,EACTAR
	FCALV$	^D1,PUTOUT
	SETZ	1,
Q10096:
;	(?DIFFER(SNONAM) ?PUTOUT(SUBS(EACTAR<29>,STARTP))) :S(RETURN)
	MOVEI	14,Q10097
	MOVEM	14,S$$FLP##
	MOVE	1,@SNONAM
	FCALV$	^D1,F10071
	SETZ	1,
	MOVE	1,I10330
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@STARTP
	FCALV$	^D2,SUBS
	FCALV$	^D1,PUTOUT
	SETZ	1,
	JRST	S$$SRT##
Q10097:
;	PUTOUT(EACTAR<28>)	:(RETURN)
	MOVEI	14,S$$SRT##
	MOVEM	14,S$$FLP##
	MOVE	1,I10331
	AREFV$	^D1,EACTAR
	FCALV$	^D1,PUTOUT
	JRST	S$$SRT##
;*	*	*	*	*	*	*	*	*
;*	*	SUBROUTINES	*	*	*	*	*
;*	*	*	*	*	*	*	*	*
;*	*	PUTLIT(STR1) OUTPUTS QUOTED STRING
;*	IF STRING CONTAINS BOTH SINGLE AND DOUBLE QUOTES, IT IS BRO-
;*	KEN UP AND THE TOUGH SECTION PUT OUT AS BYTES
;*
;PUTLIT	STR1	BREAK(SQCHR)	:S(PUTLT1)
L10246:
	MOVEI	14,Q10098
	MOVEM	14,S$$FLP##
	MOVE	1,@N10247
	PUSH	16,1
	MOVE	1,@SQCHR
	JSP	11,S$$MBT##
	EXP	.
	PUSH	16,1
	JSP	14,S$$MTX##
	XWD	^D2,0
	MOVE	1,^D1(15)
	JSP	11,S$$BRK##
	JSP	11,S$$MTS##
	JRST	L10332
Q10098:
;	PUTOUT(SUBS(EACTAR<19>,SQCHR,STR1))	:(RETURN)
	MOVEI	14,S$$SRT##
	MOVEM	14,S$$FLP##
	MOVE	1,I10333
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@SQCHR
	PUSH	16,1
	MOVE	1,@N10247
	FCALV$	^D3,SUBS
	FCALV$	^D1,PUTOUT
	JRST	S$$SRT##
;PUTLT1	STR1	BREAK(DQCHR)	:S(PUTLT2)
L10332:
	MOVEI	14,Q10099
	MOVEM	14,S$$FLP##
	MOVE	1,@N10247
	PUSH	16,1
	MOVE	1,@DQCHR
	JSP	11,S$$MBT##
	EXP	.
	PUSH	16,1
	JSP	14,S$$MTX##
	XWD	^D2,0
	MOVE	1,^D1(15)
	JSP	11,S$$BRK##
	JSP	11,S$$MTS##
	JRST	L10334
Q10099:
;	PUTOUT(SUBS(EACTAR<19>,DQCHR,STR1))	:(RETURN)
	MOVEI	14,S$$SRT##
	MOVEM	14,S$$FLP##
	MOVE	1,I10333
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,@DQCHR
	PUSH	16,1
	MOVE	1,@N10247
	FCALV$	^D3,SUBS
	FCALV$	^D1,PUTOUT
	JRST	S$$SRT##
;PUTLT2	L	= SIZE(STR1)
L10334:
	MOVEI	14,Q10100
	MOVEM	14,S$$FLP##
	MOVE	1,@N10247
	FCALV$	^D1,F10050
	DASGN$	2,V10098
Q10100:
;	(?IGT(L,5) ?PUTLIT(SUBSTR(STR1,5)) ?PUTLIT(SUBSTR(STR1
;.,SIZE(STR1) - 5,5)))	:S(RETURN)
	MOVEI	14,Q10101
	MOVEM	14,S$$FLP##
	SUB	16,S$$STB##
	MOVEM	16,S$$STS##
	JSA	16,F$$GTP##
	JUMP	0,V10098
	JUMP	0,K10272
	ADD	16,S$$STB##
	SETZ	1,
	MOVE	1,@N10247
	PUSH	16,1
	MOVE	1,I10272
	FCALV$	^D2,F10081
	FCALV$	^D1,F10246
	SETZ	1,
	MOVE	1,@N10247
	PUSH	16,1
	MOVE	1,@N10247
	FCALV$	^D1,F10050
	DICNV$	0
	SUB	^D1,K10272
	TLO	1,1B18
	TLZ	1,1B19
	PUSH	16,1
	MOVE	1,I10272
	FCALV$	^D3,F10081
	FCALV$	^D1,F10246
	SETZ	1,
	JRST	S$$SRT##
Q10101:
;	A	= ARRAY('5',0)
	MOVEI	14,Q10102
	MOVEM	14,S$$FLP##
	MOVE	1,S10336
	PUSH	16,1
	MOVE	1,I10252
	FCALV$	^D2,F10063
	MOVEM	1,@N10335
Q10102:
;	L	=
	MOVEI	14,Q10103
	MOVEM	14,S$$FLP##
	SETZM	V10098
Q10103:
;PUTLT3	&ALPHABET	ARB  SUBSTR(STR1,1,L)  @M	:F(PUTLT4)
L10337:
	MOVEI	14,L10338
	MOVEM	14,S$$FLP##
	MOVE	1,S$$KWD##+^D7
	PUSH	16,1
	MOVE	1,@N10247
	PUSH	16,1
	MOVE	1,I10251
	PUSH	16,1
	MOVE	^D1,V10098
	TLO	1,1B18
	TLZ	1,1B19
	FCALV$	^D3,F10081
	JSP	11,S$$MKP##
	PUSH	16,1
	JSP	14,S$$MTX##
	XWD	^D2,0
	PUSHJ	16,S$$ARB##
	MOVE	1,^D1(15)
	JSP	11,S$$PTX##
	HRRZ	1,@S$$SJC##
	SUBI	1,(13)
	MOVEM	1,V10099
	JSP	11,S$$MTS##
;	L	= L + 1
	MOVE	^D1,V10098
	ADD	^D1,K10251
	MOVEM	1,V10098
;	A<L>	= M - 1	:(PUTLT3)
	MOVEI	14,L10337
	MOVEM	14,S$$FLP##
	MOVE	^D1,V10098
	TLO	1,1B18
	TLZ	1,1B19
	AREFN$	^D1,N10335
	PUSH	16,1
	MOVE	^D1,V10099
	SUB	^D1,K10251
	TLO	1,1B18
	TLZ	1,1B19
	JSP	11,S$$ASG##
	JRST	L10337
;PUTLT4	PUTOUT(SUBS(EACTAR<32>,A<1>,A<2>,A<3>,A<4>,A<5>))
;.	:(RETURN)
L10338:
	MOVEI	14,S$$SRT##
	MOVEM	14,S$$FLP##
	MOVE	1,I10339
	AREFV$	^D1,EACTAR
	PUSH	16,1
	MOVE	1,I10251
	AREFV$	^D1,N10335
	PUSH	16,1
	MOVE	1,I10257
	AREFV$	^D1,N10335
	PUSH	16,1
	MOVE	1,I10267
	AREFV$	^D1,N10335
	PUSH	16,1
	MOVE	1,I10262
	AREFV$	^D1,N10335
	PUSH	16,1
	MOVE	1,I10272
	AREFV$	^D1,N10335
	FCALV$	^D6,SUBS
	FCALV$	^D1,PUTOUT
	JRST	S$$SRT##
;*	*	*	*	*	*	*	*	*
;END
	JRST	S$$SXT##
Q10001:	BLOCK	^D1
K10251:	EXP	^D1
I10251:	EXP	^D1!1B0
K10252:	EXP	^D0
I10252:	EXP	^D0!1B0
K10257:	EXP	^D2
I10257:	EXP	^D2!1B0
K10260:	EXP	^D1048576
K10261:	EXP	^D524288
K10262:	EXP	^D4
I10262:	EXP	^D4!1B0
K10267:	EXP	^D3
I10267:	EXP	^D3!1B0
K10268:	EXP	^D6
I10268:	EXP	^D6!1B0
K10269:	EXP	^D7
I10269:	EXP	^D7!1B0
K10270:	EXP	^D18
I10270:	EXP	^D18!1B0
K10271:	EXP	^D262143
K10272:	EXP	^D5
I10272:	EXP	^D5!1B0
I10273:	EXP	^D11!1B0
K10278:	EXP	^D8
I10278:	EXP	^D8!1B0
I10282:	EXP	^D9!1B0
I10284:	EXP	^D10!1B0
I10293:	EXP	^D31!1B0
I10294:	EXP	^D12!1B0
I10296:	EXP	^D13!1B0
I10299:	EXP	^D14!1B0
I10302:	EXP	^D16!1B0
I10303:	EXP	^D15!1B0
I10305:	EXP	^D17!1B0
K10306:	EXP	^D60
I10308:	EXP	^D20!1B0
I10311:	EXP	^D25!1B0
I10314:	EXP	^D26!1B0
I10316:	EXP	^D27!1B0
I10320:	EXP	^D21!1B0
I10324:	EXP	^D22!1B0
I10325:	EXP	^D23!1B0
I10328:	EXP	^D24!1B0
I10329:	EXP	^D30!1B0
I10330:	EXP	^D29!1B0
I10331:	EXP	^D28!1B0
I10333:	EXP	^D19!1B0
I10339:	EXP	^D32!1B0
S10048:	POINT	7,A10048,35
A10048:	BYTE	(2)2(16)^D2+1(18)^D7
	ASCII	'INTEGER'
F10050:	BYTE	(4)4(4)0(5)^D1(5)0(18)P$$SIZ##
F10052:	BYTE	(4)4(4)0(5)^D1(5)0(18)P$$DTY##
F10060:	BYTE	(4)4(4)0(5)^D1(5)0(18)P$$DAT##
F10063:	BYTE	(4)4(4)0(5)^D2(5)0(18)P$$ARR##
A10064:	BYTE	(2)2(16)^D1+1(18)^D5
	ASCII	'TABLE'
A10066:	BYTE	(2)2(16)^D2+1(18)^D6
	ASCII	'DEFINE'
F10071:	BYTE	(4)4(4)0(5)^D2(5)0(18)P$$DIF##
F10072:	BYTE	(4)4(4)0(5)^D2(5)0(18)P$$IDT##
F10081:	BYTE	(4)4(4)0(5)^D3(5)0(18)P$$SBS##
BRKTB1:	EXP	0
BRKTB2:	EXP	0
BRKTB3:	EXP	0
BRKTB4:	EXP	0
V10095:	EXP	0
V10096:	EXP	0
V10097:	EXP	0
N10097:	BYTE	(4)4(2)2(12)0(18)V10097
V10098:	EXP	0
S10098:	POINT	7,A10098,35
A10098:	BYTE	(2)2(16)^D1+1(18)^D1
	ASCII	'L'
V10099:	EXP	0
V10100:	EXP	0
V10101:	EXP	0
A10102:	BYTE	(2)2(16)^D2+1(18)^D6
	ASCII	'INIEAC'
A10103:	BYTE	(2)2(16)^D2+1(18)^D8
	ASCII	'INIEAC()'
A10104:	BYTE	(2)2(16)^D2+1(18)^D6
	ASCII	'EACTPH'
A10105:	BYTE	(2)2(16)^D2+1(18)^D8
	ASCII	'EACTPH()'
A10246:	BYTE	(2)2(16)^D2+1(18)^D6
	ASCII	'PUTLIT'
A10247:	BYTE	(2)2(16)^D1+1(18)^D4
	ASCII	'STR1'
S10248:	POINT	7,A10248,35
A10248:	BYTE	(2)2(16)^D3+1(18)^D12
	ASCII	'PUTLIT(STR1)'
S10249:	POINT	7,A10249,35
A10249:	BYTE	(2)2(16)^D3+1(18)^D14
	ASCII	'SYM(INAM,ATRB)'
S10250:	POINT	7,A10250,35
A10250:	BYTE	(2)2(16)^D4+1(18)^D20
	ASCII	'SNT(SNX,STY,SNM,SVL)'
N10254:	BYTE	(4)4(14)0(18)Q10104+^D5
N10256:	BYTE	(4)4(14)0(18)Q10104+^D6
A10258:	BYTE	(2)2(16)^D1+1(18)^D4
	ASCII	'ATRB'
A10259:	BYTE	(2)2(16)^D1+1(18)^D4
	ASCII	'INAM'
N10263:	BYTE	(4)4(14)0(18)Q10104+^D7
N10275:	BYTE	(4)4(14)0(18)Q10104+^D8
S10276:	POINT	7,A10276,35
A10276:	BYTE	(2)2(16)^D1+1(18)^D1
	ASCII	'N'
S10280:	POINT	7,A10280,35
A10280:	BYTE	(2)2(16)^D1+1(18)^D1
	ASCII	'V'
N10286:	BYTE	(4)4(14)0(18)Q10104+^D9
A10287:	BYTE	(2)2(16)^D1+1(18)^D3
	ASCII	'SNT'
S10289:	POINT	7,A10289,35
A10289:	BYTE	(2)2(16)^D4+1(18)^D17
	ASCII	'UNDEFINED LABEL: '
N10309:	BYTE	(4)4(14)0(18)Q10104+^D10
A10313:	BYTE	(2)2(16)^D1+1(18)^D3
	ASCII	'STY'
A10315:	BYTE	(2)2(16)^D1+1(18)^D3
	ASCII	'SNM'
A10317:	BYTE	(2)2(16)^D1+1(18)^D3
	ASCII	'SVL'
A10318:	BYTE	(2)2(16)^D1+1(18)^D3
	ASCII	'SNX'
S10319:	POINT	7,A10319,35
A10319:	BYTE	(2)2(16)^D1+1(18)^D1
	ASCII	'0'
N10335:	BYTE	(4)4(14)0(18)Q10104+^D11
S10336:	POINT	7,A10336,35
A10336:	BYTE	(2)2(16)^D1+1(18)^D1
	ASCII	'5'
Q10104:	BYTE	(2)2(16)^D11+1(18)0
	REPEAT	^D11,<0>
Q10105:	BYTE	(2)2(16)^D19*4+1(18)-^D19
	EXP	0
	BYTE	(5)5(31)0
	POINT	7,A10318,35
F10318:	BYTE	(4)4(4)0(5)20(5)0(18)S$$UDF##
	EXP	0
	BYTE	(5)5(31)0
	POINT	7,A10317,35
F10317:	BYTE	(4)4(4)0(5)20(5)0(18)S$$UDF##
	EXP	0
	BYTE	(5)5(31)0
	POINT	7,A10315,35
F10315:	BYTE	(4)4(4)0(5)20(5)0(18)S$$UDF##
	EXP	0
	BYTE	(5)5(31)0
	POINT	7,A10313,35
F10313:	BYTE	(4)4(4)0(5)20(5)0(18)S$$UDF##
	EXP	0
	BYTE	(5)5(31)0
	POINT	7,A10287,35
F10287:	BYTE	(4)4(4)0(5)20(5)0(18)S$$UDF##
	EXP	0
	BYTE	(5)5(31)0
	POINT	7,A10259,35
F10259:	BYTE	(4)4(4)0(5)20(5)0(18)S$$UDF##
	EXP	0
	BYTE	(5)5(31)0
	POINT	7,A10258,35
F10258:	BYTE	(4)4(4)0(5)20(5)0(18)S$$UDF##
	EXP	0
	BYTE	(5)1(31)0
	POINT	7,A10247,35
N10247:	BYTE	(4)4(14)0(18)Q10104+^D4
	EXP	0
	BYTE	(5)5(31)0
	POINT	7,A10246,35
F10246:	BYTE	(4)4(4)0(5)20(5)0(18)S$$UDF##
	EXP	0
	BYTE	(5)3(31)0
	POINT	7,A10246,35
	JRST	L10246
	EXP	0
	BYTE	(5)1(31)0
	POINT	7,A10246,35
N10246:	BYTE	(4)4(14)0(18)Q10104+^D3
	EXP	0
	BYTE	(5)5(31)0
	POINT	7,A10104,35
EACTPH:	BYTE	(4)4(4)0(5)^D0(5)0(18)E10104
	EXP	0
	BYTE	(5)3(31)0
	POINT	7,A10104,35
	JRST	L10104
	EXP	0
	BYTE	(5)1(31)0
	POINT	7,A10104,35
N10104:	BYTE	(4)4(14)0(18)Q10104+^D2
	EXP	0
	BYTE	(5)5(31)0
	POINT	7,A10102,35
INIEAC:	BYTE	(4)4(4)0(5)^D0(5)0(18)E10102
	EXP	0
	BYTE	(5)3(31)0
	POINT	7,A10102,35
	JRST	L10102
	EXP	0
	BYTE	(5)1(31)0
	POINT	7,A10102,35
N10102:	BYTE	(4)4(14)0(18)Q10104+^D1
	EXP	0
	BYTE	(5)5(31)0
	POINT	7,A10066,35
F10066:	BYTE	(4)4(4)0(5)^D2(5)0(18)P$$DEF##
	EXP	0
	BYTE	(5)5(31)0
	POINT	7,A10064,35
F10064:	BYTE	(4)4(4)0(5)^D2(5)0(18)P$$TBL##
	POINT	7,A10104,35
Q10000:	XWD	0,Q10104
	XWD	Q10105,^D0
	EXP	Q10105
	XWD	^D9,Q10000
E10102:	JSP	13,S$$EFI##
	POINT	7,A10103,35
	EXP	0
	XWD	^D10,Q10000
E10104:	JSP	13,S$$EFI##
	POINT	7,A10105,35
	EXP	0
	END