Trailing-Edge
-
PDP-10 Archives
-
decuslib20-02
-
decus/20-0057/declph.fas
There are 2 other files named declph.fas in the archive. Click here to see a list.
;* * * * * * * * *
;* * DECLARATIONS * * * * *
;* * * * * * * * *
;*
;* LOCAL
;*
; DECLARE('SNOBOL.SUBPROGRAM','DECLPH')
; DECLARE('OPTION','NO.STNO')
; DECLARE('PURGE.VARIABLE',ALL)
; DECLARE('PURGE.LABEL',ALL)
; DECLARE('EXTERNAL.FUNCTION','GETSTA,STXERR,ERRMSG,PARLIT,GETITM'
;.)
; DECLARE('INTEGER','I,J,K,ITSW,DFATR')
; DECLARE('ENTRY.FUNCTION','INIDEC()')
; DECLARE('ENTRY.FUNCTION','DECLPH()')
;*
;* 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','INIDEC,DECLPH,DFI,DSB,STR1')
; DECLARE('UNPURGE.LABEL','INIDEC DECLPH DFI DSB NO.STNO TIMER
;. HASHSIZE= LD4 VD4 FD4 DCLEND XFF1 DD3 OPT SNO SUB PRV UPV PRL UPL
;. PRF UPF STR INT REL REN GLV GLL GLF EXV ENV EXL ENL EXF ENF XFF NFF')
; DECLARE('PURGE.FUNCTION','DEFINE,DATA,IDENT,DIFFER,TABLE,ARRAY,
;.SUBSTR')
;* * * * * * * * *
;* * INITIALIZE DECLARATION PHASE * * *
;* * * * * * * * *
;INIDEC DEFINE('DFI()')
TITLE DECLPH
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 DECLPH,INIDEC
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 GETITM,PARLIT,ERRMSG,STXERR,GETSTA
L10095:
MOVEI 14,Q10002
MOVEM 14,S$$FLP##
MOVE 1,S10275
FCALV$ ^D1,F10066
Q10002:
; DEFINE('DSB(STR1)')
MOVEI 14,Q10003
MOVEM 14,S$$FLP##
MOVE 1,S10276
FCALV$ ^D1,F10066
Q10003:
; DATA('SYM(INAM,ATRB)')
MOVEI 14,Q10004
MOVEM 14,S$$FLP##
MOVE 1,S10277
FCALV$ ^D1,F10060
Q10004:
; DATA('CRS(NEXT,CRSI)') :(RETURN)
MOVEI 14,S$$SRT##
MOVEM 14,S$$FLP##
MOVE 1,S10278
FCALV$ ^D1,F10060
JRST S$$SRT##
;* * * * * * * * *
;* * PROCESS DECLARATIONS * * * *
;* * * * * * * * *
;DECLPH
L10097:
;* DECLARATION LOOP
;DCLOOP C = GETSTA() :F(NOEND)
L10279:
MOVEI 14,L10280
MOVEM 14,S$$FLP##
FCALV$ ^D0,GETSTA
MOVEM 1,@C
; C SPAN(BLNCHR) @P :F(RETURN)
MOVEI 14,S$$SRT##
MOVEM 14,S$$FLP##
MOVE 1,@C
PUSH 16,1
MOVE 1,@BLNCHR
JSP 11,S$$MBT##
EXP .
PUSH 16,1
JSP 14,S$$MTX##
XWD ^D2,0
MOVE 1,^D1(15)
JSP 11,S$$SPN##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,P
JSP 11,S$$MTS##
; C LEN(*P) 'DECLARE(' @P :F(RETURN)
MOVEI 14,S$$SRT##
MOVEM 14,S$$FLP##
MOVE 1,@C
PUSH 16,1
JSP 14,S$$MTX##
XWD ^D-1,0
BYTE (2)2(16)1(18).+1
MOVE ^D1,P
JUMPL 1,S$$MIE##
JSP 11,S$$LEN##
MOVE 1,S10281
JSP 11,S$$MST##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,P
JSP 11,S$$MTS##
;* DECLARATION DECODING
; C LEN(*P) NSPAN(BLNCHR) @P SQCHR @P @I
;. SPAN('ABCDEFGHIJKLMNOPQRSTUVWXYZ.') $ DECTYP @P SQCHR @P
;. NSPAN(BLNCHR) ',' NSPAN(BLNCHR) @P (SQCHR ! 'ALL') $ STR1 @P
;. :F(BADDEC)
MOVEI 14,L10286
MOVEM 14,S$$FLP##
MOVE 1,@C
PUSH 16,1
MOVE 1,@BLNCHR
JSP 11,S$$MBT##
EXP .
PUSH 16,1
MOVE 1,@SQCHR
JSP 11,S$$MKP##
PUSH 16,1
MOVE 1,@SQCHR
JSP 11,S$$MKP##
PUSH 16,1
MOVE 1,@BLNCHR
JSP 11,S$$MBT##
EXP .
PUSH 16,1
MOVE 1,@BLNCHR
JSP 11,S$$MBT##
EXP .
PUSH 16,1
MOVE 1,@SQCHR
JSP 11,S$$MKP##
PUSH 16,1
JSP 14,S$$MTX##
XWD ^D7,0
MOVE ^D1,P
JUMPL 1,S$$MIE##
JSP 11,S$$LEN##
MOVE 1,^D1(15)
JSP 11,S$$NSP##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,P
MOVE 1,^D2(15)
JSP 11,S$$PTX##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,P
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,V10090
JSP 11,S$$VAS##
MOVEI 1,B10282
JSP 11,S$$SPN##
MOVE 1,N10283
JSP 11,S$$IVA##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,P
MOVE 1,^D3(15)
JSP 11,S$$PTX##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,P
MOVE 1,^D4(15)
JSP 11,S$$NSP##
MOVE 1,S10284
JSP 11,S$$MST##
MOVE 1,^D5(15)
JSP 11,S$$NSP##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,P
JSP 11,S$$VAS##
JSP 11,S$$APS##
XWD .-.,Q10006
MOVE 1,^D6(15)
JSP 11,S$$PTX##
JRST Q10005
Q10006:
JSP 11,S$$APF##
MOVE 1,S10285
JSP 11,S$$MST##
Q10005:
MOVE 1,N10241
JSP 11,S$$IVA##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,P
JSP 11,S$$MTS##
; DECTYP = DECLTB[DECTYP]
MOVEI 14,Q10007
MOVEM 14,S$$FLP##
MOVE 1,@N10283
AREFV$ ^D1,DECLTB
MOVEM 1,@N10283
Q10007:
; (?IDENT(STR1,'ALL') ?DIFFER(SUBSTR(DECTYP,2),'PR'))
;. :S(BADDEC)
MOVEI 14,Q10008
MOVEM 14,S$$FLP##
MOVE 1,@N10241
PUSH 16,1
MOVE 1,S10285
FCALV$ ^D2,F10072
SETZ 1,
MOVE 1,@N10283
PUSH 16,1
MOVE 1,I10287
FCALV$ ^D2,F10081
PUSH 16,1
MOVE 1,S10288
FCALV$ ^D2,F10071
SETZ 1,
JRST L10286
Q10008:
; P = ?IDENT(DECTYP) I :F($DECTYP)
MOVEI 14,Q10009
MOVEM 14,S$$FLP##
MOVE 1,@N10283
FCALV$ ^D1,F10072
SETZ 1,
MOVE ^D1,V10090
MOVEM 1,P
JRST Q10010
Q10009:
MOVEI 14,S$$BGT##
MOVEM 14,S$$FLP##
MOVE 1,@N10283
JSP 14,S$$ILB##
Q10010:
;* ERRORS
; STXERR('UNKNOWN DECLARATION') :(DCLOOP)
MOVEI 14,L10279
MOVEM 14,S$$FLP##
MOVE 1,S10289
FCALV$ ^D1,STXERR
JRST L10279
;BADDEC STXERR('BAD DECLARATION') :(DCLOOP)
L10286:
MOVEI 14,L10279
MOVEM 14,S$$FLP##
MOVE 1,S10290
FCALV$ ^D1,STXERR
JRST L10279
;BADOPT STXERR('UNKNOWN OPTION') :(DCLOOP)
L10291:
MOVEI 14,L10279
MOVEM 14,S$$FLP##
MOVE 1,S10292
FCALV$ ^D1,STXERR
JRST L10279
;BADEXT ERRMSG('MULTIPLE EXTERNAL FOR: ' ITNAM ', IGNORED')
;. :($RETLAB)
L10293:
MOVEI 14,Q10011
MOVEM 14,S$$FLP##
MOVE 1,S10294
PUSH 16,1
MOVE 1,@ITNAM
PUSH 16,1
MOVE 1,S10295
JSP 14,S$$CNC##
EXP ^D3
FCALV$ ^D1,ERRMSG
Q10011:
MOVEI 14,S$$BGT##
MOVEM 14,S$$FLP##
MOVE 1,@N10296
JSP 14,S$$ILB##
;BADDEF ERRMSG('REDEFINITION OF: ' ITNAM ', IGNORED') :($RETLAB)
L10297:
MOVEI 14,Q10012
MOVEM 14,S$$FLP##
MOVE 1,S10298
PUSH 16,1
MOVE 1,@ITNAM
PUSH 16,1
MOVE 1,S10295
JSP 14,S$$CNC##
EXP ^D3
FCALV$ ^D1,ERRMSG
Q10012:
MOVEI 14,S$$BGT##
MOVEM 14,S$$FLP##
MOVE 1,@N10296
JSP 14,S$$ILB##
;NOEND C = :(RETURN)
L10280:
MOVEI 14,S$$SRT##
MOVEM 14,S$$FLP##
SETZM @C
JRST S$$SRT##
;* DECLARATION LOOP BOTTOM
;DCLEND C DCLCMT :F(BADDEC)S(DCLOOP)
L10248:
MOVEI 14,L10286
MOVEM 14,S$$FLP##
MOVE 1,@C
PUSH 16,1
MOVE 1,@DCLCMT
JSP 11,S$$MKP##
PUSH 16,1
JSP 14,S$$MTX##
XWD ^D2,0
MOVE 1,^D1(15)
JSP 11,S$$PTX##
JSP 11,S$$MTS##
JRST L10279
;DCAEND C PCPRMT @P OPBLPT @P RPOS(0) :F(BADDEC)S(DCLOOP)
L10299:
MOVEI 14,L10286
MOVEM 14,S$$FLP##
MOVE 1,@C
PUSH 16,1
MOVE 1,@PCPRMT
JSP 11,S$$MKP##
PUSH 16,1
MOVE 1,@OPBLPT
JSP 11,S$$MKP##
PUSH 16,1
JSP 14,S$$MTX##
XWD ^D3,0
MOVE 1,^D1(15)
JSP 11,S$$PTX##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,P
MOVE 1,^D2(15)
JSP 11,S$$PTX##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,P
HRRZ 1,K10300
CAIE 1,(13)
POPJ 16,
JSP 11,S$$MTS##
JRST L10279
;* OPTION DECLARATION
;OPT C LEN(*P) ('NO.STNO' ! 'TIMER' ! 'HASHSIZE=') $ DECTYP
;. @P :F(BADOPT)S($DECTYP)
L10251:
MOVEI 14,L10291
MOVEM 14,S$$FLP##
MOVE 1,@C
PUSH 16,1
JSP 14,S$$MTX##
XWD ^D-1,0
BYTE (2)2(16)1(18).+1
MOVE ^D1,P
JUMPL 1,S$$MIE##
JSP 11,S$$LEN##
JSP 11,S$$VAS##
JSP 11,S$$APS##
XWD .-.,Q10014
MOVE 1,S10242
JSP 11,S$$MST##
JRST Q10013
Q10014:
JSP 11,S$$APR##
XWD .-.,Q10015
MOVE 1,S10243
JSP 11,S$$MST##
JRST Q10013
Q10015:
JSP 11,S$$APF##
MOVE 1,S10244
JSP 11,S$$MST##
Q10013:
MOVE 1,N10283
JSP 11,S$$IVA##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,P
JSP 11,S$$MTS##
MOVEI 14,S$$BGT##
MOVEM 14,S$$FLP##
MOVE 1,@N10283
JSP 14,S$$ILB##
;NO.STNO STNFLG = -1 :(DCLEND)
L10242:
MOVN ^D1,K10301
MOVEM 1,STNFLG
JRST L10248
;TIMER STNFLG = 1 :(DCLEND)
L10243:
MOVE ^D1,K10301
MOVEM 1,STNFLG
JRST L10248
;HASHSIZE= C LEN(*P) INTGPT @P :F(BADDEC)
L10244:
MOVEI 14,L10286
MOVEM 14,S$$FLP##
MOVE 1,@C
PUSH 16,1
MOVE 1,@INTGPT
JSP 11,S$$MKP##
PUSH 16,1
JSP 14,S$$MTX##
XWD ^D2,0
MOVE ^D1,P
JUMPL 1,S$$MIE##
JSP 11,S$$LEN##
MOVE 1,^D1(15)
JSP 11,S$$PTX##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,P
JSP 11,S$$MTS##
; HSHSIZ = INTGER :(DCLEND)
MOVE ^D1,INTGER
MOVEM 1,HSHSIZ
JRST L10248
;* SNOBOL.MAIN DECLARATION
;SNO C LEN(*P) IDENPT $ SNONAM @P :F(BADDEC)S(DCLEND)
L10252:
MOVEI 14,L10286
MOVEM 14,S$$FLP##
MOVE 1,@C
PUSH 16,1
MOVE 1,@IDENPT
JSP 11,S$$MKP##
PUSH 16,1
JSP 14,S$$MTX##
XWD ^D2,0
MOVE ^D1,P
JUMPL 1,S$$MIE##
JSP 11,S$$LEN##
JSP 11,S$$VAS##
MOVE 1,^D1(15)
JSP 11,S$$PTX##
MOVE 1,SNONAM
JSP 11,S$$IVA##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,P
JSP 11,S$$MTS##
JRST L10248
;* SNOBOL.SUBPROGRAM DECLARATION
;SUB C LEN(*P) IDENPT $ SUBNAM @P :F(BADDEC)S(DCLEND)
L10253:
MOVEI 14,L10286
MOVEM 14,S$$FLP##
MOVE 1,@C
PUSH 16,1
MOVE 1,@IDENPT
JSP 11,S$$MKP##
PUSH 16,1
JSP 14,S$$MTX##
XWD ^D2,0
MOVE ^D1,P
JUMPL 1,S$$MIE##
JSP 11,S$$LEN##
JSP 11,S$$VAS##
MOVE 1,^D1(15)
JSP 11,S$$PTX##
MOVE 1,SUBNAM
JSP 11,S$$IVA##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,P
JSP 11,S$$MTS##
JRST L10248
;* RENAME DECLARATION
;REN C LEN(*P) IDENPT $ STR1 @P SQCHR @P PCOMPT @P SQCHR
;. @P IDENPT $ STR2 @P :F(BADDEC)
L10263:
MOVEI 14,L10286
MOVEM 14,S$$FLP##
MOVE 1,@C
PUSH 16,1
MOVE 1,@IDENPT
JSP 11,S$$MKP##
PUSH 16,1
MOVE 1,@SQCHR
JSP 11,S$$MKP##
PUSH 16,1
MOVE 1,@PCOMPT
JSP 11,S$$MKP##
PUSH 16,1
MOVE 1,@SQCHR
JSP 11,S$$MKP##
PUSH 16,1
MOVE 1,@IDENPT
JSP 11,S$$MKP##
PUSH 16,1
JSP 14,S$$MTX##
XWD ^D6,0
MOVE ^D1,P
JUMPL 1,S$$MIE##
JSP 11,S$$LEN##
JSP 11,S$$VAS##
MOVE 1,^D1(15)
JSP 11,S$$PTX##
MOVE 1,N10241
JSP 11,S$$IVA##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,P
MOVE 1,^D2(15)
JSP 11,S$$PTX##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,P
MOVE 1,^D3(15)
JSP 11,S$$PTX##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,P
MOVE 1,^D4(15)
JSP 11,S$$PTX##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,P
JSP 11,S$$VAS##
MOVE 1,^D5(15)
JSP 11,S$$PTX##
MOVE 1,N10302
JSP 11,S$$IVA##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,P
JSP 11,S$$MTS##
; STR1 = .SYMBTB[STR1]
MOVEI 14,Q10016
MOVEM 14,S$$FLP##
MOVE 1,@N10241
AREFN$ ^D1,SYMBTB
MOVEM 1,@N10241
Q10016:
; SYMBTB[STR2] = $STR1
MOVEI 14,Q10017
MOVEM 14,S$$FLP##
MOVE 1,@N10302
AREFN$ ^D1,SYMBTB
PUSH 16,1
MOVE 1,@N10241
JSP 14,S$$IVV##
JSP 11,S$$ASG##
Q10017:
; $STR1 = :(DCLEND)
MOVEI 14,L10248
MOVEM 14,S$$FLP##
MOVE 1,@N10241
JSP 14,S$$IVN##
SETZM (1)
JRST L10248
;* LABEL DECLARATIONS
;* PURGE.LABEL
;PRL PRGALL = ?IDENT(STR1,'ALL') LIPATR :S(DCAEND)
L10256:
MOVEI 14,Q10018
MOVEM 14,S$$FLP##
MOVE 1,@N10241
PUSH 16,1
MOVE 1,S10285
FCALV$ ^D2,F10072
SETZ 1,
MOVE ^D1,LIPATR
MOVEM 1,PRGALL
JRST L10299
Q10018:
; ITSW = 1
MOVE ^D1,K10301
MOVEM 1,V10093
; DFATR = 2 * LTDATR + LIPATR
MOVE ^D1,K10287
IMUL ^D1,LTDATR
ADD ^D1,LIPATR
MOVEM 1,V10094
;LD1 ITPAT = LABLPT
L10303:
MOVEI 14,Q10019
MOVEM 14,S$$FLP##
MOVE 1,@LABLPT
MOVEM 1,@N10304
Q10019:
;LD2 ITSEP = SPAN(BLNCHR) ! @I
L10305:
MOVEI 14,Q10023
MOVEM 14,S$$FLP##
MOVE 1,@BLNCHR
JSP 11,S$$MBT##
EXP .
PUSH 16,1
JSP 14,S$$GPB##
XWD ^D-2,Q10022
JSP 11,S$$APS##
XWD .-.,Q10021
MOVE 1,^D1(15)
JSP 11,S$$SPN##
JRST Q10020
Q10021:
JSP 11,S$$APF##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,V10090
Q10020:
JRST S$$PTS##
Q10022:
MOVEM 1,@N10306
Q10023:
; ITBRK = LBDCPT
MOVEI 14,Q10024
MOVEM 14,S$$FLP##
MOVE 1,@LBDCPT
MOVEM 1,@N10307
Q10024:
; ITTYP = 1
MOVE ^D1,K10301
MOVEM 1,ITTYP
; I = :(LD5)
MOVEI 14,L10308
MOVEM 14,S$$FLP##
SETZM V10090
JRST L10308
;* UNPURGE.LABEL
;UPL ITSW = 2
L10257:
MOVE ^D1,K10287
MOVEM 1,V10093
; DFATR = 2 * LTDATR :(LD1)
MOVE ^D1,K10287
IMUL ^D1,LTDATR
MOVEM 1,V10094
JRST L10303
;* GLOBAL.LABEL
;GLL ITSW = 3
L10265:
MOVE ^D1,K10309
MOVEM 1,V10093
; DFATR = 2 * LTDATR + LGGATR :(LD1)
MOVE ^D1,K10287
IMUL ^D1,LTDATR
ADD ^D1,LGGATR
MOVEM 1,V10094
JRST L10303
;* EXTERNAL.LABEL
;EXL ITSW = 4
L10269:
MOVE ^D1,K10310
MOVEM 1,V10093
; DFATR = LTDATR + PRGALL + XNLATR
MOVE ^D1,LTDATR
ADD ^D1,PRGALL
ADD ^D1,XNLATR
MOVEM 1,V10094
;LD3 ITPAT = RSIDPT :(LD2)
L10311:
MOVEI 14,L10305
MOVEM 14,S$$FLP##
MOVE 1,@RSIDPT
MOVEM 1,@N10304
JRST L10305
;* ENTRY.LABEL
;ENL ITSW = 5
L10270:
MOVE ^D1,K10312
MOVEM 1,V10093
; DFATR = 2 * LTDATR + PRGALL + XNLATR :(LD3)
MOVE ^D1,K10287
IMUL ^D1,LTDATR
ADD ^D1,PRGALL
ADD ^D1,XNLATR
MOVEM 1,V10094
JRST L10311
;* COMMON CODE FOR LABELS
;LD4 ?INE(I,P) :F(DCLEND)
L10245:
MOVEI 14,L10248
MOVEM 14,S$$FLP##
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$NEP##
JUMP 0,V10090
JUMP 0,P
ADD 16,S$$STB##
SETZ 1,
;LD5 STR1 = DFI() :F(BADDEC)
L10308:
MOVEI 14,L10286
MOVEM 14,S$$FLP##
FCALV$ ^D0,F10239
MOVEM 1,@N10241
; IDENT(STR1) :F(LD7)
MOVEI 14,L10313
MOVEM 14,S$$FLP##
MOVE 1,@N10241
FCALV$ ^D1,F10072
;LD6 ?IGE(ITSW,4) :F(LD4)
L10314:
MOVEI 14,L10245
MOVEM 14,S$$FLP##
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$GEP##
JUMP 0,V10093
JUMP 0,K10310
ADD 16,S$$STB##
SETZ 1,
; XNAMTB[INAM(ITENT)] = ITNAM
MOVEI 14,Q10025
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALV$ ^D1,F10315
AREFN$ ^D1,XNAMTB
PUSH 16,1
MOVE 1,@ITNAM
JSP 11,S$$ASG##
Q10025:
; EXTRLS = ?IEQ(ITSW,4) CRS(EXTRLS,ITNAM) :S(LD4)
MOVEI 14,Q10026
MOVEM 14,S$$FLP##
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,V10093
JUMP 0,K10310
ADD 16,S$$STB##
SETZ 1,
MOVE 1,@EXTRLS
PUSH 16,1
MOVE 1,@ITNAM
FCALV$ ^D2,F10316
MOVEM 1,@EXTRLS
JRST L10245
Q10026:
; ENTRLS = CRS(ENTRLS,ITNAM) :(LD4)
MOVEI 14,L10245
MOVEM 14,S$$FLP##
MOVE 1,@ENTRLS
PUSH 16,1
MOVE 1,@ITNAM
FCALV$ ^D2,F10316
MOVEM 1,@ENTRLS
JRST L10245
;LD7 ATRB(ITENT) = ?IEQ(LTATRB,0) OR(ITATR,DFATR) :F(LD9)
L10313:
MOVEI 14,L10318
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,LTATRB
JUMP 0,K10300
ADD 16,S$$STB##
SETZ 1,
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$IOR##
JUMP 0,ITATR
JUMP 0,V10094
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
;LD8 ATRB(ITENT) = ?IGE(ITSW,4) ?INE(XNATRB,0) OR(ITATR,DFATR -
;. XNLATR) :F(LD6)
L10319:
MOVEI 14,L10314
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$GEP##
JUMP 0,V10093
JUMP 0,K10310
ADD 16,S$$STB##
SETZ 1,
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$NEP##
JUMP 0,XNATRB
JUMP 0,K10300
ADD 16,S$$STB##
SETZ 1,
MOVE ^D1,V10094
SUB ^D1,XNLATR
MOVEM 1,Q10001+^D0
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$IOR##
JUMP 0,ITATR
JUMP 0,Q10001+^D0
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
; RETLAB = 'LD4' :(BADEXT)
MOVEI 14,L10293
MOVEM 14,S$$FLP##
MOVE 1,S10245
MOVEM 1,@N10296
JRST L10293
;LD9 ATRB(ITENT) = ?IEQ(ITSW,3) OR(ITATR,LGGATR) :S(LD4)
L10318:
MOVEI 14,Q10027
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,V10093
JUMP 0,K10309
ADD 16,S$$STB##
SETZ 1,
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$IOR##
JUMP 0,ITATR
JUMP 0,LGGATR
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
JRST L10245
Q10027:
; ATRB(ITENT) = ?IEQ(ITSW,1) OR(ITATR,LIPATR) :S(LD4)
MOVEI 14,Q10028
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,V10093
JUMP 0,K10301
ADD 16,S$$STB##
SETZ 1,
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$IOR##
JUMP 0,ITATR
JUMP 0,LIPATR
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
JRST L10245
Q10028:
; ATRB(ITENT) = ?IEQ(ITSW,2) AND(ITATR,NOT(LIPATR)) :S(LD4)
MOVEI 14,Q10029
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,V10093
JUMP 0,K10287
ADD 16,S$$STB##
SETZ 1,
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$NOT##
JUMP 0,LIPATR
ADD 16,S$$STB##
MOVE 1,0
MOVEM 1,Q10001+^D0
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$AND##
JUMP 0,ITATR
JUMP 0,Q10001+^D0
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
JRST L10245
Q10029:
; ITATR = ITATR - LTATRB
MOVE ^D1,ITATR
SUB ^D1,LTATRB
MOVEM 1,ITATR
; DFATR = DFATR - PRGALL
MOVE ^D1,V10094
SUB ^D1,PRGALL
MOVEM 1,V10094
; ATRB(ITENT) = OR(ITATR,DFATR) :(LD8)
MOVEI 14,L10319
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$IOR##
JUMP 0,ITATR
JUMP 0,V10094
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
JRST L10319
;* VARIABLE DECLARATIONS
;* PURGE.VARIABLE
;PRV PRGALV = ?IDENT(STR1,'ALL') VIPATR :S(DCAEND)
L10254:
MOVEI 14,Q10030
MOVEM 14,S$$FLP##
MOVE 1,@N10241
PUSH 16,1
MOVE 1,S10285
FCALV$ ^D2,F10072
SETZ 1,
MOVE ^D1,VIPATR
MOVEM 1,PRGALV
JRST L10299
Q10030:
; ITSW = 1
MOVE ^D1,K10301
MOVEM 1,V10093
; DFATR = VTVATR + VIPATR
MOVE ^D1,VTVATR
ADD ^D1,VIPATR
MOVEM 1,V10094
;VD1 ITPAT = IDENPT
L10320:
MOVEI 14,Q10031
MOVEM 14,S$$FLP##
MOVE 1,@IDENPT
MOVEM 1,@N10304
Q10031:
;VD2 ITSEP = PCOMPT ! @I
L10321:
MOVEI 14,Q10035
MOVEM 14,S$$FLP##
MOVE 1,@PCOMPT
JSP 11,S$$MKP##
PUSH 16,1
JSP 14,S$$GPB##
XWD ^D-2,Q10034
JSP 11,S$$APS##
XWD .-.,Q10033
MOVE 1,^D1(15)
JSP 11,S$$PTX##
JRST Q10032
Q10033:
JSP 11,S$$APF##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,V10090
Q10032:
JRST S$$PTS##
Q10034:
MOVEM 1,@N10306
Q10035:
; ITBRK = IDDCPT
MOVEI 14,Q10036
MOVEM 14,S$$FLP##
MOVE 1,@IDDCPT
MOVEM 1,@N10307
Q10036:
; ITTYP =
MOVEI 14,Q10037
MOVEM 14,S$$FLP##
SETZM ITTYP
Q10037:
; I = :(VD5)
MOVEI 14,L10322
MOVEM 14,S$$FLP##
SETZM V10090
JRST L10322
;* UNPURGE.VARIABLE
;UPV ITSW = 2
L10255:
MOVE ^D1,K10287
MOVEM 1,V10093
; DFATR = VTVATR :(VD1)
MOVE ^D1,VTVATR
MOVEM 1,V10094
JRST L10320
;* GLOBAL.VARIABLE
;GLV ITSW = 3
L10264:
MOVE ^D1,K10309
MOVEM 1,V10093
; DFATR = VTVATR + VGGATR :(VD1)
MOVE ^D1,VTVATR
ADD ^D1,VGGATR
MOVEM 1,V10094
JRST L10320
;* EXTERNAL.VARIABLE
;EXV ITSW = 4
L10267:
MOVE ^D1,K10310
MOVEM 1,V10093
; DFATR = VTVATR + PRGALV + XNVATR + VXXATR
MOVE ^D1,VTVATR
ADD ^D1,PRGALV
ADD ^D1,XNVATR
ADD ^D1,VXXATR
MOVEM 1,V10094
;VD3 ITPAT = RSIDPT :(VD2)
L10323:
MOVEI 14,L10321
MOVEM 14,S$$FLP##
MOVE 1,@RSIDPT
MOVEM 1,@N10304
JRST L10321
;* ENTRY.VARIABLE
;ENV ITSW = 5
L10268:
MOVE ^D1,K10312
MOVEM 1,V10093
; DFATR = VTVATR + PRGALV + XNVATR :(VD3)
MOVE ^D1,VTVATR
ADD ^D1,PRGALV
ADD ^D1,XNVATR
MOVEM 1,V10094
JRST L10323
;* COMMON CODE FOR VARIABLES
;VD4 ?INE(I,P) :F(DCLEND)
L10246:
MOVEI 14,L10248
MOVEM 14,S$$FLP##
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$NEP##
JUMP 0,V10090
JUMP 0,P
ADD 16,S$$STB##
SETZ 1,
;VD5 STR1 = DFI() :F(BADDEC)
L10322:
MOVEI 14,L10286
MOVEM 14,S$$FLP##
FCALV$ ^D0,F10239
MOVEM 1,@N10241
; IDENT(STR1) :F(VD7)
MOVEI 14,L10324
MOVEM 14,S$$FLP##
MOVE 1,@N10241
FCALV$ ^D1,F10072
;VD6 ?IGE(ITSW,4) :F(VD4)
L10325:
MOVEI 14,L10246
MOVEM 14,S$$FLP##
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$GEP##
JUMP 0,V10093
JUMP 0,K10310
ADD 16,S$$STB##
SETZ 1,
; XNAMTB[INAM(ITENT)] = ITNAM
MOVEI 14,Q10038
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALV$ ^D1,F10315
AREFN$ ^D1,XNAMTB
PUSH 16,1
MOVE 1,@ITNAM
JSP 11,S$$ASG##
Q10038:
; EXTRLS = ?IEQ(ITSW,4) CRS(EXTRLS,ITNAM) :S(VD4)
MOVEI 14,Q10039
MOVEM 14,S$$FLP##
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,V10093
JUMP 0,K10310
ADD 16,S$$STB##
SETZ 1,
MOVE 1,@EXTRLS
PUSH 16,1
MOVE 1,@ITNAM
FCALV$ ^D2,F10316
MOVEM 1,@EXTRLS
JRST L10246
Q10039:
; ENTRLS = CRS(ENTRLS,ITNAM) :(VD4)
MOVEI 14,L10246
MOVEM 14,S$$FLP##
MOVE 1,@ENTRLS
PUSH 16,1
MOVE 1,@ITNAM
FCALV$ ^D2,F10316
MOVEM 1,@ENTRLS
JRST L10246
;VD7 ATRB(ITENT) = ?IEQ(VTATRB,0) OR(ITATR,DFATR) :F(VD9)
L10324:
MOVEI 14,L10326
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,VTATRB
JUMP 0,K10300
ADD 16,S$$STB##
SETZ 1,
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$IOR##
JUMP 0,ITATR
JUMP 0,V10094
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
;VD8 ATRB(ITENT) = ?IGE(ITSW,4) ?INE(XNATRB,0) OR(ITATR,DFATR -
;. XNATRB - (5 - ITSW) * VXXATR) :F(VD6)
L10327:
MOVEI 14,L10325
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$GEP##
JUMP 0,V10093
JUMP 0,K10310
ADD 16,S$$STB##
SETZ 1,
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$NEP##
JUMP 0,XNATRB
JUMP 0,K10300
ADD 16,S$$STB##
SETZ 1,
MOVE ^D1,V10094
SUB ^D1,XNATRB
MOVE ^D2,K10312
SUB ^D2,V10093
IMUL ^D2,VXXATR
SUB ^D1,^D2
MOVEM 1,Q10001+^D0
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$IOR##
JUMP 0,ITATR
JUMP 0,Q10001+^D0
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
; RETLAB = 'VD4' :(BADEXT)
MOVEI 14,L10293
MOVEM 14,S$$FLP##
MOVE 1,S10246
MOVEM 1,@N10296
JRST L10293
;VD9 RETLAB = ?IEQ(VDATRB,VDPATR) 'VD4' :S(BADDEF)
L10326:
MOVEI 14,Q10040
MOVEM 14,S$$FLP##
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,VDATRB
JUMP 0,VDPATR
ADD 16,S$$STB##
SETZ 1,
MOVE 1,S10246
MOVEM 1,@N10296
JRST L10297
Q10040:
; ATRB(ITENT) = ?IEQ(ITSW,3) OR(ITATR,VGGATR) :S(VD4)
MOVEI 14,Q10041
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,V10093
JUMP 0,K10309
ADD 16,S$$STB##
SETZ 1,
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$IOR##
JUMP 0,ITATR
JUMP 0,VGGATR
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
JRST L10246
Q10041:
; ATRB(ITENT) = ?IEQ(ITSW,1) OR(ITATR,VIPATR) :S(VD4)
MOVEI 14,Q10042
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,V10093
JUMP 0,K10301
ADD 16,S$$STB##
SETZ 1,
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$IOR##
JUMP 0,ITATR
JUMP 0,VIPATR
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
JRST L10246
Q10042:
; ATRB(ITENT) = ?IEQ(ITSW,2) AND(ITATR,NOT(VIPATR)) :S(VD4)
MOVEI 14,Q10043
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,V10093
JUMP 0,K10287
ADD 16,S$$STB##
SETZ 1,
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$NOT##
JUMP 0,VIPATR
ADD 16,S$$STB##
MOVE 1,0
MOVEM 1,Q10001+^D0
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$AND##
JUMP 0,ITATR
JUMP 0,Q10001+^D0
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
JRST L10246
Q10043:
; DFATR = DFATR - PRGALV
MOVE ^D1,V10094
SUB ^D1,PRGALV
MOVEM 1,V10094
; ATRB(ITENT) = OR(ITATR,DFATR) :(VD8)
MOVEI 14,L10327
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$IOR##
JUMP 0,ITATR
JUMP 0,V10094
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
JRST L10327
;* FUNCTION DECLARATIONS
;* PURGE.FUNCTION
;PRF PRGALF = ?IDENT(STR1,'ALL') FIPATR :S(DCAEND)
L10258:
MOVEI 14,Q10044
MOVEM 14,S$$FLP##
MOVE 1,@N10241
PUSH 16,1
MOVE 1,S10285
FCALV$ ^D2,F10072
SETZ 1,
MOVE ^D1,FIPATR
MOVEM 1,PRGALF
JRST L10299
Q10044:
; ITSW = 1
MOVE ^D1,K10301
MOVEM 1,V10093
; DFATR = FTFATR + FIPATR
MOVE ^D1,FTFATR
ADD ^D1,FIPATR
MOVEM 1,V10094
;FD1 ITPAT = IDENPT
L10328:
MOVEI 14,Q10045
MOVEM 14,S$$FLP##
MOVE 1,@IDENPT
MOVEM 1,@N10304
Q10045:
;FD2 ITSEP = PCOMPT ! @I
L10329:
MOVEI 14,Q10049
MOVEM 14,S$$FLP##
MOVE 1,@PCOMPT
JSP 11,S$$MKP##
PUSH 16,1
JSP 14,S$$GPB##
XWD ^D-2,Q10048
JSP 11,S$$APS##
XWD .-.,Q10047
MOVE 1,^D1(15)
JSP 11,S$$PTX##
JRST Q10046
Q10047:
JSP 11,S$$APF##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,V10090
Q10046:
JRST S$$PTS##
Q10048:
MOVEM 1,@N10306
Q10049:
; ITBRK = IDDCPT
MOVEI 14,Q10050
MOVEM 14,S$$FLP##
MOVE 1,@IDDCPT
MOVEM 1,@N10307
Q10050:
; ITTYP = 7
MOVE ^D1,K10330
MOVEM 1,ITTYP
; I = :(FD5)
MOVEI 14,L10331
MOVEM 14,S$$FLP##
SETZM V10090
JRST L10331
;* UNPURGE.FUNCTION
;UPF ITSW = 2
L10259:
MOVE ^D1,K10287
MOVEM 1,V10093
; DFATR = FTFATR :(FD1)
MOVE ^D1,FTFATR
MOVEM 1,V10094
JRST L10328
;* GLOBAL.FUNCTION
;GLF ITSW = 3
L10266:
MOVE ^D1,K10309
MOVEM 1,V10093
; DFATR = FTFATR + FGGATR :(FD1)
MOVE ^D1,FTFATR
ADD ^D1,FGGATR
MOVEM 1,V10094
JRST L10328
;* EXTERNAL.FUNCTION
;EXF ITSW = 4
L10271:
MOVE ^D1,K10310
MOVEM 1,V10093
; DFATR = FTFATR + FXXATR + XNFATR
MOVE ^D1,FTFATR
ADD ^D1,FXXATR
ADD ^D1,XNFATR
MOVEM 1,V10094
; ITPAT = RSIDPT :(FD2)
MOVEI 14,L10329
MOVEM 14,S$$FLP##
MOVE 1,@RSIDPT
MOVEM 1,@N10304
JRST L10329
;* COMMON CODE FOR FUNCTIONS
;FD4 ?INE(I,P) :F(DCLEND)
L10247:
MOVEI 14,L10248
MOVEM 14,S$$FLP##
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$NEP##
JUMP 0,V10090
JUMP 0,P
ADD 16,S$$STB##
SETZ 1,
;FD5 STR1 = DFI() :F(BADDEC)
L10331:
MOVEI 14,L10286
MOVEM 14,S$$FLP##
FCALV$ ^D0,F10239
MOVEM 1,@N10241
; IDENT(STR1) :F(FD7)
MOVEI 14,L10332
MOVEM 14,S$$FLP##
MOVE 1,@N10241
FCALV$ ^D1,F10072
;FD6 ?IEQ(ITSW,4) :F(FD4)
L10333:
MOVEI 14,L10247
MOVEM 14,S$$FLP##
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,V10093
JUMP 0,K10310
ADD 16,S$$STB##
SETZ 1,
; XNAMTB[INAM(ITENT)] = ITNAM
MOVEI 14,Q10051
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALV$ ^D1,F10315
AREFN$ ^D1,XNAMTB
PUSH 16,1
MOVE 1,@ITNAM
JSP 11,S$$ASG##
Q10051:
; EXTRLS = CRS(EXTRLS,ITNAM) :(FD4)
MOVEI 14,L10247
MOVEM 14,S$$FLP##
MOVE 1,@EXTRLS
PUSH 16,1
MOVE 1,@ITNAM
FCALV$ ^D2,F10316
MOVEM 1,@EXTRLS
JRST L10247
;FD7 ITATR = ?IEQ(ITSW,4) ?IEQ(FXATRB,FXXMSK) ITATR - FXATRB -
;. TXATRB
L10332:
MOVEI 14,Q10052
MOVEM 14,S$$FLP##
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,V10093
JUMP 0,K10310
ADD 16,S$$STB##
SETZ 1,
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,ITATR
SUB ^D1,FXATRB
SUB ^D1,TXATRB
MOVEM 1,ITATR
Q10052:
; ATRB(ITENT) = ?IEQ(FTATRB,0) OR(ITATR,DFATR) :F(FD9)
MOVEI 14,L10334
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,FTATRB
JUMP 0,K10300
ADD 16,S$$STB##
SETZ 1,
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$IOR##
JUMP 0,ITATR
JUMP 0,V10094
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
;FD8 ATRB(ITENT) = ?IEQ(ITSW,8) ?INE(XNATRB,0) OR(ITATR,FTFATR)
;. :F(FD6)
L10335:
MOVEI 14,L10333
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,V10093
JUMP 0,K10336
ADD 16,S$$STB##
SETZ 1,
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$NEP##
JUMP 0,XNATRB
JUMP 0,K10300
ADD 16,S$$STB##
SETZ 1,
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$IOR##
JUMP 0,ITATR
JUMP 0,FTFATR
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
; RETLAB = 'FD4' :(BADEXT)
MOVEI 14,L10293
MOVEM 14,S$$FLP##
MOVE 1,S10247
MOVEM 1,@N10296
JRST L10293
;FD9 RETLAB = ?IEQ(FDATRB,FDPATR) 'FD4' :S(BADDEF)
L10334:
MOVEI 14,Q10053
MOVEM 14,S$$FLP##
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,FDATRB
JUMP 0,FDPATR
ADD 16,S$$STB##
SETZ 1,
MOVE 1,S10247
MOVEM 1,@N10296
JRST L10297
Q10053:
; ATRB(ITENT) = ?IEQ(ITSW,3) OR(ITATR,FGGATR) :S(FD4)
MOVEI 14,Q10054
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,V10093
JUMP 0,K10309
ADD 16,S$$STB##
SETZ 1,
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$IOR##
JUMP 0,ITATR
JUMP 0,FGGATR
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
JRST L10247
Q10054:
; ATRB(ITENT) = ?IEQ(ITSW,1) OR(ITATR,FIPATR) :S(FD4)
MOVEI 14,Q10055
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,V10093
JUMP 0,K10301
ADD 16,S$$STB##
SETZ 1,
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$IOR##
JUMP 0,ITATR
JUMP 0,FIPATR
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
JRST L10247
Q10055:
; ATRB(ITENT) = ?IEQ(ITSW,2) AND(ITATR,NOT(FIPATR)) :S(FD4)
MOVEI 14,Q10056
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,V10093
JUMP 0,K10287
ADD 16,S$$STB##
SETZ 1,
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$NOT##
JUMP 0,FIPATR
ADD 16,S$$STB##
MOVE 1,0
MOVEM 1,Q10001+^D0
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$AND##
JUMP 0,ITATR
JUMP 0,Q10001+^D0
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
JRST L10247
Q10056:
; ATRB(ITENT) = OR(ITATR,DFATR) :(FD8)
MOVEI 14,L10335
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$IOR##
JUMP 0,ITATR
JUMP 0,V10094
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
JRST L10335
;* ENTRY.FUNCTION DECLARATION
;ENF J = P
L10272:
MOVE ^D1,P
MOVEM 1,V10091
; STR1 = PARLIT(SQCHR,SQLTPT) :F(BADDEC)
MOVEI 14,L10286
MOVEM 14,S$$FLP##
MOVE 1,@SQCHR
PUSH 16,1
MOVE 1,@SQLTPT
FCALV$ ^D2,PARLIT
MOVEM 1,@N10241
; STR1 @K RSIDPT @K '(' @K BREAK(')') :S(ENFA)
MOVEI 14,Q10057
MOVEM 14,S$$FLP##
MOVE 1,@N10241
PUSH 16,1
MOVE 1,@RSIDPT
JSP 11,S$$MKP##
PUSH 16,1
JSP 14,S$$MTX##
XWD ^D2,0
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,V10092
MOVE 1,^D1(15)
JSP 11,S$$PTX##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,V10092
MOVE 1,S10337
JSP 11,S$$MST##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,V10092
MOVEI 1,B10338
JSP 11,S$$BRK##
JSP 11,S$$MTS##
JRST L10339
Q10057:
;ENFX P = J + K :(BADDEC)
L10340:
MOVE ^D1,V10091
ADD ^D1,V10092
MOVEM 1,P
JRST L10286
;ENFA STR2 =
L10339:
MOVEI 14,Q10058
MOVEM 14,S$$FLP##
SETZM @N10302
Q10058:
; C LEN(*(P + 1)) PCOMPT SQCHR @P :F(ENFB)
MOVEI 14,L10341
MOVEM 14,S$$FLP##
MOVE 1,@C
PUSH 16,1
MOVE 1,@PCOMPT
JSP 11,S$$MKP##
PUSH 16,1
MOVE 1,@SQCHR
JSP 11,S$$MKP##
PUSH 16,1
JSP 14,S$$MTX##
XWD ^D3,0
MOVE ^D1,P
ADD ^D1,K10301
JUMPL 1,S$$MIE##
JSP 11,S$$LEN##
MOVE 1,^D1(15)
JSP 11,S$$PTX##
MOVE 1,^D2(15)
JSP 11,S$$PTX##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,P
JSP 11,S$$MTS##
; STR2 = PARLIT(SQCHR,SQLTPT) :F(BADDEC)
MOVEI 14,L10286
MOVEM 14,S$$FLP##
MOVE 1,@SQCHR
PUSH 16,1
MOVE 1,@SQLTPT
FCALV$ ^D2,PARLIT
MOVEM 1,@N10302
;ENFB DFATR = FTFATR + 2 * FXXATR + XNFATR + PRGALF
L10341:
MOVE ^D1,FTFATR
MOVE ^D2,K10287
IMUL ^D2,FXXATR
ADD ^D1,^D2
ADD ^D1,XNFATR
ADD ^D1,PRGALF
MOVEM 1,V10094
; ITTYP = 7
MOVE ^D1,K10330
MOVEM 1,ITTYP
; ITATR = DFATR
MOVE ^D1,V10094
MOVEM 1,ITATR
; (?GETITM() ?IEQ(DFATR,ITATR)) :F(ENF4)
MOVEI 14,L10342
MOVEM 14,S$$FLP##
FCALV$ ^D0,GETITM
SETZ 1,
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,V10094
JUMP 0,ITATR
ADD 16,S$$STB##
SETZ 1,
;ENF1 XNAMTB[INAM(ITENT)] = ITNAM
L10343:
MOVEI 14,Q10059
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALV$ ^D1,F10315
AREFN$ ^D1,XNAMTB
PUSH 16,1
MOVE 1,@ITNAM
JSP 11,S$$ASG##
Q10059:
; ENTRLS = CRS(ENTRLS,ITNAM)
MOVEI 14,Q10060
MOVEM 14,S$$FLP##
MOVE 1,@ENTRLS
PUSH 16,1
MOVE 1,@ITNAM
FCALV$ ^D2,F10316
MOVEM 1,@ENTRLS
Q10060:
; ENTFTB = ?IDENT(ENTFTB) TABLE(3,3)
MOVEI 14,Q10061
MOVEM 14,S$$FLP##
MOVE 1,@ENTFTB
FCALV$ ^D1,F10072
SETZ 1,
MOVE 1,I10309
PUSH 16,1
MOVE 1,I10309
FCALV$ ^D2,F10064
MOVEM 1,@ENTFTB
Q10061:
; ITPTR = .ENTFTB[INAM(ITENT)]
MOVEI 14,Q10062
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALV$ ^D1,F10315
AREFN$ ^D1,ENTFTB
MOVEM 1,@N10344
Q10062:
; $ITPTR = ARRAY('4',STNO)
MOVEI 14,Q10063
MOVEM 14,S$$FLP##
MOVE 1,@N10344
JSP 14,S$$IVN##
PUSH 16,1
MOVE 1,S10345
PUSH 16,1
MOVE ^D1,STNO
TLO 1,1B18
TLZ 1,1B19
FCALV$ ^D2,F10063
JSP 11,S$$ASG##
Q10063:
; ITPTR = $ITPTR
MOVEI 14,Q10064
MOVEM 14,S$$FLP##
MOVE 1,@N10344
JSP 14,S$$IVV##
MOVEM 1,@N10344
Q10064:
; ITPTR<2> = DSB(STR1)
MOVEI 14,Q10065
MOVEM 14,S$$FLP##
MOVE 1,I10287
AREFN$ ^D1,N10344
PUSH 16,1
MOVE 1,@N10241
FCALV$ ^D1,F10240
JSP 11,S$$ASG##
Q10065:
; I =
MOVEI 14,Q10066
MOVEM 14,S$$FLP##
SETZM V10090
Q10066:
; STR1 BREAK('(') @J '(' NSPAN(BLNCHR) ')' :S(ENF3)
MOVEI 14,Q10067
MOVEM 14,S$$FLP##
MOVE 1,@N10241
PUSH 16,1
MOVE 1,@BLNCHR
JSP 11,S$$MBT##
EXP .
PUSH 16,1
JSP 14,S$$MTX##
XWD ^D2,0
MOVEI 1,B10337
JSP 11,S$$BRK##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,V10091
MOVE 1,S10337
JSP 11,S$$MST##
MOVE 1,^D1(15)
JSP 11,S$$NSP##
MOVE 1,S10338
JSP 11,S$$MST##
JSP 11,S$$MTS##
JRST L10346
Q10067:
; I = 1
MOVE ^D1,K10301
MOVEM 1,V10090
;ENF2 STR1 LEN(*(J + 1)) BREAK(',)') @J ',' :F(ENF3)
L10347:
MOVEI 14,L10346
MOVEM 14,S$$FLP##
MOVE 1,@N10241
PUSH 16,1
JSP 14,S$$MTX##
XWD ^D-1,0
BYTE (2)2(16)1(18).+1
MOVE ^D1,V10091
ADD ^D1,K10301
JUMPL 1,S$$MIE##
JSP 11,S$$LEN##
MOVEI 1,B10348
JSP 11,S$$BRK##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,V10091
MOVE 1,S10284
JSP 11,S$$MST##
JSP 11,S$$MTS##
; I = I + 1 :(ENF2)
MOVE ^D1,V10090
ADD ^D1,K10301
MOVEM 1,V10090
JRST L10347
;ENF3 ITPTR<4> = I
L10346:
MOVEI 14,Q10068
MOVEM 14,S$$FLP##
MOVE 1,I10310
AREFN$ ^D1,N10344
PUSH 16,1
MOVE ^D1,V10090
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
Q10068:
; ITPTR<3> = ?IDENT(STR2) STR2 :S(DCLEND)
MOVEI 14,Q10069
MOVEM 14,S$$FLP##
MOVE 1,I10309
AREFN$ ^D1,N10344
PUSH 16,1
MOVE 1,@N10302
FCALV$ ^D1,F10072
SETZ 1,
MOVE 1,@N10302
JSP 11,S$$ASG##
JRST L10248
Q10069:
; ITPTR<3> = DSB(STR2) :(DCLEND)
MOVEI 14,L10248
MOVEM 14,S$$FLP##
MOVE 1,I10309
AREFN$ ^D1,N10344
PUSH 16,1
MOVE 1,@N10302
FCALV$ ^D1,F10240
JSP 11,S$$ASG##
JRST L10248
;ENF4 ITATR = ?IEQ(FXATRB,FXXMSK) ITATR - FXATRB - TXATRB
L10342:
MOVEI 14,Q10070
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,ITATR
SUB ^D1,FXATRB
SUB ^D1,TXATRB
MOVEM 1,ITATR
Q10070:
; ATRB(ITENT) = ?IEQ(FTATRB,0) OR(ITATR,DFATR) :F(ENF6)
MOVEI 14,L10349
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,FTATRB
JUMP 0,K10300
ADD 16,S$$STB##
SETZ 1,
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$IOR##
JUMP 0,ITATR
JUMP 0,V10094
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
;ENF5 ATRB(ITENT) = ?INE(XNATRB,0) OR(ITATR,DFATR - 2 * FXXATR -
;. XNFATR) :F(ENF1)
L10350:
MOVEI 14,L10343
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$NEP##
JUMP 0,XNATRB
JUMP 0,K10300
ADD 16,S$$STB##
SETZ 1,
MOVE ^D1,V10094
MOVE ^D2,K10287
IMUL ^D2,FXXATR
SUB ^D1,^D2
SUB ^D1,XNFATR
MOVEM 1,Q10001+^D0
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$IOR##
JUMP 0,ITATR
JUMP 0,Q10001+^D0
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
; RETLAB = 'DCLEND' :(BADEXT)
MOVEI 14,L10293
MOVEM 14,S$$FLP##
MOVE 1,S10248
MOVEM 1,@N10296
JRST L10293
;ENF6 RETLAB = ?IEQ(FDATRB,FDPATR) 'DCLEND' :S(BADDEF)
L10349:
MOVEI 14,Q10071
MOVEM 14,S$$FLP##
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,FDATRB
JUMP 0,FDPATR
ADD 16,S$$STB##
SETZ 1,
MOVE 1,S10248
MOVEM 1,@N10296
JRST L10297
Q10071:
; DFATR = DFATR - PRGALF
MOVE ^D1,V10094
SUB ^D1,PRGALF
MOVEM 1,V10094
; ATRB(ITENT) = OR(ITATR,DFATR) :(ENF5)
MOVEI 14,L10350
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$IOR##
JUMP 0,ITATR
JUMP 0,V10094
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
JRST L10350
;* EXTERNAL.FORTRAN.FUNCTION DECLARATION
;XFF ITTYP = 7
L10273:
MOVE ^D1,K10330
MOVEM 1,ITTYP
; I = :(XFF2)
MOVEI 14,L10351
MOVEM 14,S$$FLP##
SETZM V10090
JRST L10351
;XFF1 ?INE(I,P) :F(DCLEND)
L10249:
MOVEI 14,L10248
MOVEM 14,S$$FLP##
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$NEP##
JUMP 0,V10090
JUMP 0,P
ADD 16,S$$STB##
SETZ 1,
;XFF2 J = P
L10351:
MOVE ^D1,P
MOVEM 1,V10091
; STR2 = PARLIT(SQCHR,IDDCPT) :F(BADDEC)
MOVEI 14,L10286
MOVEM 14,S$$FLP##
MOVE 1,@SQCHR
PUSH 16,1
MOVE 1,@IDDCPT
FCALV$ ^D2,PARLIT
MOVEM 1,@N10302
; STR2 @K RSIDPT $ STR1 @K ('=' ('INTEGER' !
;. 'REAL') $ STR1 ! '') @K '(' @K INTGPT @K ')' RPOS(0) :F(ENFX)
MOVEI 14,L10340
MOVEM 14,S$$FLP##
MOVE 1,@N10302
PUSH 16,1
MOVE 1,@RSIDPT
JSP 11,S$$MKP##
PUSH 16,1
MOVE 1,@INTGPT
JSP 11,S$$MKP##
PUSH 16,1
JSP 14,S$$MTX##
XWD ^D3,0
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,V10092
JSP 11,S$$VAS##
MOVE 1,^D1(15)
JSP 11,S$$PTX##
MOVE 1,N10241
JSP 11,S$$IVA##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,V10092
JSP 11,S$$APS##
XWD .-.,Q10073
MOVE 1,S10352
JSP 11,S$$MST##
JSP 11,S$$VAS##
JSP 11,S$$APS##
XWD .-.,Q10075
MOVE 1,S10048
JSP 11,S$$MST##
JRST Q10074
Q10075:
JSP 11,S$$APF##
MOVE 1,S10049
JSP 11,S$$MST##
Q10074:
MOVE 1,N10241
JSP 11,S$$IVA##
JRST Q10072
Q10073:
JSP 11,S$$APF##
Q10072:
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,V10092
MOVE 1,S10337
JSP 11,S$$MST##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,V10092
MOVE 1,^D2(15)
JSP 11,S$$PTX##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,V10092
MOVE 1,S10338
JSP 11,S$$MST##
HRRZ 1,K10300
CAIE 1,(13)
POPJ 16,
JSP 11,S$$MTS##
; C LEN(*P) (PCOMPT ! @I) @P :F(BADDEC)
MOVEI 14,L10286
MOVEM 14,S$$FLP##
MOVE 1,@C
PUSH 16,1
MOVE 1,@PCOMPT
JSP 11,S$$MKP##
PUSH 16,1
JSP 14,S$$MTX##
XWD ^D2,0
MOVE ^D1,P
JUMPL 1,S$$MIE##
JSP 11,S$$LEN##
JSP 11,S$$APS##
XWD .-.,Q10077
MOVE 1,^D1(15)
JSP 11,S$$PTX##
JRST Q10076
Q10077:
JSP 11,S$$APF##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,V10090
Q10076:
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,P
JSP 11,S$$MTS##
; J = FDIATR
MOVE ^D1,FDIATR
MOVEM 1,V10091
; STR1 NOTANY('IJKLMN') :F(XFF3)
MOVEI 14,L10354
MOVEM 14,S$$FLP##
MOVE 1,@N10241
PUSH 16,1
JSP 14,S$$MTX##
XWD ^D-1,0
BYTE (2)2(16)1(18).+1
MOVEI 1,B10353
JSP 11,S$$NTA##
JSP 11,S$$MTS##
; J = FDDMSK
MOVE ^D1,FDDMSK
MOVEM 1,V10091
;XFF3 DFATR = FTFATR + J + XNFATR + INTGER * TXTATR
L10354:
MOVE ^D1,FTFATR
ADD ^D1,V10091
ADD ^D1,XNFATR
MOVE ^D2,INTGER
IMUL ^D2,TXTATR
ADD ^D1,^D2
MOVEM 1,V10094
; ITATR = DFATR
MOVE ^D1,V10094
MOVEM 1,ITATR
; (?GETITM() ?IEQ(DFATR,ITATR)) :F(XFF5)
MOVEI 14,L10355
MOVEM 14,S$$FLP##
FCALV$ ^D0,GETITM
SETZ 1,
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,V10094
JUMP 0,ITATR
ADD 16,S$$STB##
SETZ 1,
;XFF4 XNAMTB[INAM(ITENT)] = ITNAM
L10356:
MOVEI 14,Q10078
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALV$ ^D1,F10315
AREFN$ ^D1,XNAMTB
PUSH 16,1
MOVE 1,@ITNAM
JSP 11,S$$ASG##
Q10078:
; EXTRLS = CRS(EXTRLS,ITNAM) :(XFF1)
MOVEI 14,L10249
MOVEM 14,S$$FLP##
MOVE 1,@EXTRLS
PUSH 16,1
MOVE 1,@ITNAM
FCALV$ ^D2,F10316
MOVEM 1,@EXTRLS
JRST L10249
;XFF5 ITATR = ?IEQ(FXATRB,FXXMSK) ITATR - FXATRB - TXATRB :F(XFF6)
L10355:
MOVEI 14,L10357
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,ITATR
SUB ^D1,FXATRB
SUB ^D1,TXATRB
MOVEM 1,ITATR
; TXATRB =
MOVEI 14,Q10079
MOVEM 14,S$$FLP##
SETZM TXATRB
Q10079:
;XFF6 RETLAB = ?INE(TXATRB,0) 'XFF1' :S(BADDEF)
L10357:
MOVEI 14,Q10080
MOVEM 14,S$$FLP##
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$NEP##
JUMP 0,TXATRB
JUMP 0,K10300
ADD 16,S$$STB##
SETZ 1,
MOVE 1,S10249
MOVEM 1,@N10296
JRST L10297
Q10080:
; ATRB(ITENT) = ?IEQ(FTATRB,0) OR(ITATR,DFATR) :F(XFF8)
MOVEI 14,L10358
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,FTATRB
JUMP 0,K10300
ADD 16,S$$STB##
SETZ 1,
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$IOR##
JUMP 0,ITATR
JUMP 0,V10094
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
;XFF7 ATRB(ITENT) = ?INE(XNATRB,0) OR(ITATR,DFATR - XNFATR)
;. :F(XFF4)
L10359:
MOVEI 14,L10356
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$NEP##
JUMP 0,XNATRB
JUMP 0,K10300
ADD 16,S$$STB##
SETZ 1,
MOVE ^D1,V10094
SUB ^D1,XNFATR
MOVEM 1,Q10001+^D0
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$IOR##
JUMP 0,ITATR
JUMP 0,Q10001+^D0
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
; RETLAB = 'XFF1' :(BADEXT)
MOVEI 14,L10293
MOVEM 14,S$$FLP##
MOVE 1,S10249
MOVEM 1,@N10296
JRST L10293
;XFF8 RETLAB = ?INE(FXATRB,0) 'XFF1' :S(BADDEF)
L10358:
MOVEI 14,Q10081
MOVEM 14,S$$FLP##
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$NEP##
JUMP 0,FXATRB
JUMP 0,K10300
ADD 16,S$$STB##
SETZ 1,
MOVE 1,S10249
MOVEM 1,@N10296
JRST L10297
Q10081:
; ATRB(ITENT) = OR(ITATR,DFATR) :(XFF7)
MOVEI 14,L10359
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$IOR##
JUMP 0,ITATR
JUMP 0,V10094
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
JRST L10359
;*
;* ENTRY.FORTRAN.FUNCTION DECLARATION
;NFF J = P
L10274:
MOVE ^D1,P
MOVEM 1,V10091
; STR1 = PARLIT(SQCHR,SQLTPT) :F(BADDEC)
MOVEI 14,L10286
MOVEM 14,S$$FLP##
MOVE 1,@SQCHR
PUSH 16,1
MOVE 1,@SQLTPT
FCALV$ ^D2,PARLIT
MOVEM 1,@N10241
; STR1 @K RSIDPT @K '(' @K BREAK(')') ')' @K
;. RPOS(0) :F(ENFX)
MOVEI 14,L10340
MOVEM 14,S$$FLP##
MOVE 1,@N10241
PUSH 16,1
MOVE 1,@RSIDPT
JSP 11,S$$MKP##
PUSH 16,1
JSP 14,S$$MTX##
XWD ^D2,0
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,V10092
MOVE 1,^D1(15)
JSP 11,S$$PTX##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,V10092
MOVE 1,S10337
JSP 11,S$$MST##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,V10092
MOVEI 1,B10338
JSP 11,S$$BRK##
MOVE 1,S10338
JSP 11,S$$MST##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,V10092
HRRZ 1,K10300
CAIE 1,(13)
POPJ 16,
JSP 11,S$$MTS##
; STR2 =
MOVEI 14,Q10082
MOVEM 14,S$$FLP##
SETZM @N10302
Q10082:
; C LEN(*P) PCOMPT SQCHR @P :F(NFF1)
MOVEI 14,L10360
MOVEM 14,S$$FLP##
MOVE 1,@C
PUSH 16,1
MOVE 1,@PCOMPT
JSP 11,S$$MKP##
PUSH 16,1
MOVE 1,@SQCHR
JSP 11,S$$MKP##
PUSH 16,1
JSP 14,S$$MTX##
XWD ^D3,0
MOVE ^D1,P
JUMPL 1,S$$MIE##
JSP 11,S$$LEN##
MOVE 1,^D1(15)
JSP 11,S$$PTX##
MOVE 1,^D2(15)
JSP 11,S$$PTX##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,P
JSP 11,S$$MTS##
; STR2 = PARLIT(SQCHR,SQLTPT) :F(BADDEC)
MOVEI 14,L10286
MOVEM 14,S$$FLP##
MOVE 1,@SQCHR
PUSH 16,1
MOVE 1,@SQLTPT
FCALV$ ^D2,PARLIT
MOVEM 1,@N10302
;NFF1 FORTLS = ARRAY('5',FORTLS)
L10360:
MOVEI 14,Q10083
MOVEM 14,S$$FLP##
MOVE 1,S10361
PUSH 16,1
MOVE 1,@FORTLS
FCALV$ ^D2,F10063
MOVEM 1,@FORTLS
Q10083:
; FORTLS<2> = ITNAM
MOVEI 14,Q10084
MOVEM 14,S$$FLP##
MOVE 1,I10287
AREFN$ ^D1,FORTLS
PUSH 16,1
MOVE 1,@ITNAM
JSP 11,S$$ASG##
Q10084:
; FORTLS<3> = STNO
MOVEI 14,Q10085
MOVEM 14,S$$FLP##
MOVE 1,I10309
AREFN$ ^D1,FORTLS
PUSH 16,1
MOVE ^D1,STNO
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
Q10085:
; FORTLS<4> = DSB(STR1)
MOVEI 14,Q10086
MOVEM 14,S$$FLP##
MOVE 1,I10310
AREFN$ ^D1,FORTLS
PUSH 16,1
MOVE 1,@N10241
FCALV$ ^D1,F10240
JSP 11,S$$ASG##
Q10086:
; FORTLS<5> = ?IDENT(STR2) STR2 :S(NFF2)
MOVEI 14,Q10087
MOVEM 14,S$$FLP##
MOVE 1,I10312
AREFN$ ^D1,FORTLS
PUSH 16,1
MOVE 1,@N10302
FCALV$ ^D1,F10072
SETZ 1,
MOVE 1,@N10302
JSP 11,S$$ASG##
JRST L10362
Q10087:
; FORTLS<5> = DSB(STR2)
MOVEI 14,Q10088
MOVEM 14,S$$FLP##
MOVE 1,I10312
AREFN$ ^D1,FORTLS
PUSH 16,1
MOVE 1,@N10302
FCALV$ ^D1,F10240
JSP 11,S$$ASG##
Q10088:
;NFF2 ENTRLS = CRS(ENTRLS,ITNAM) :(DCLEND)
L10362:
MOVEI 14,L10248
MOVEM 14,S$$FLP##
MOVE 1,@ENTRLS
PUSH 16,1
MOVE 1,@ITNAM
FCALV$ ^D2,F10316
MOVEM 1,@ENTRLS
JRST L10248
;* DEDICATED VARIABLE DECLARATIONS
;* INTEGER
;INT ITSW = 2
L10261:
MOVE ^D1,K10287
MOVEM 1,V10093
;DD1 ITPAT = IDENPT
L10363:
MOVEI 14,Q10089
MOVEM 14,S$$FLP##
MOVE 1,@IDENPT
MOVEM 1,@N10304
Q10089:
;DD2 ITSEP = PCOMPT ! @I
L10364:
MOVEI 14,Q10093
MOVEM 14,S$$FLP##
MOVE 1,@PCOMPT
JSP 11,S$$MKP##
PUSH 16,1
JSP 14,S$$GPB##
XWD ^D-2,Q10092
JSP 11,S$$APS##
XWD .-.,Q10091
MOVE 1,^D1(15)
JSP 11,S$$PTX##
JRST Q10090
Q10091:
JSP 11,S$$APF##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,V10090
Q10090:
JRST S$$PTS##
Q10092:
MOVEM 1,@N10306
Q10093:
; DFATR = VTVATR + ITSW * VDDATR + PRGALV
MOVE ^D1,VTVATR
MOVE ^D2,V10093
IMUL ^D2,VDDATR
ADD ^D1,^D2
ADD ^D1,PRGALV
MOVEM 1,V10094
; ITBRK = IDDCPT
MOVEI 14,Q10094
MOVEM 14,S$$FLP##
MOVE 1,@IDDCPT
MOVEM 1,@N10307
Q10094:
; ITTYP =
MOVEI 14,Q10095
MOVEM 14,S$$FLP##
SETZM ITTYP
Q10095:
; I = :(DD4)
MOVEI 14,L10365
MOVEM 14,S$$FLP##
SETZM V10090
JRST L10365
;* REAL
;REL ITSW = 3 :(DD1)
L10262:
MOVE ^D1,K10309
MOVEM 1,V10093
JRST L10363
;* STRING
;STR ITSW = 1
L10260:
MOVE ^D1,K10301
MOVEM 1,V10093
; ITPAT = IDENPT '(' INTGPT ')' :(DD2)
MOVEI 14,L10364
MOVEM 14,S$$FLP##
MOVE 1,@IDENPT
PUSH 16,1
MOVE 1,S10337
PUSH 16,1
MOVE 1,@INTGPT
PUSH 16,1
MOVE 1,S10338
JSP 14,S$$CNC##
EXP ^D4
MOVEM 1,@N10304
JRST L10364
;* COMMON CODE FOR DEDICATED VARIABLES
;DD3 ?INE(I,P) :F(DCLEND)
L10250:
MOVEI 14,L10248
MOVEM 14,S$$FLP##
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$NEP##
JUMP 0,V10090
JUMP 0,P
ADD 16,S$$STB##
SETZ 1,
;DD4 STR1 = DFI() :F(BADDEC)
L10365:
MOVEI 14,L10286
MOVEM 14,S$$FLP##
FCALV$ ^D0,F10239
MOVEM 1,@N10241
; IDENT(STR1) :F(DD6)
MOVEI 14,L10366
MOVEM 14,S$$FLP##
MOVE 1,@N10241
FCALV$ ^D1,F10072
;DD5 ?IEQ(ITSW,1) :F(DD3)
L10367:
MOVEI 14,L10250
MOVEM 14,S$$FLP##
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,V10093
JUMP 0,K10301
ADD 16,S$$STB##
SETZ 1,
; DSIZTB = ?IDENT(DSIZTB) TABLE(3,3)
MOVEI 14,Q10096
MOVEM 14,S$$FLP##
MOVE 1,@DSIZTB
FCALV$ ^D1,F10072
SETZ 1,
MOVE 1,I10309
PUSH 16,1
MOVE 1,I10309
FCALV$ ^D2,F10064
MOVEM 1,@DSIZTB
Q10096:
; DSIZTB[INAM(ITENT)] = INTGER :(DD3)
MOVEI 14,L10250
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALV$ ^D1,F10315
AREFN$ ^D1,DSIZTB
PUSH 16,1
MOVE ^D1,INTGER
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
JRST L10250
;DD6 ATRB(ITENT) = ?IEQ(VTATRB,0) OR(ITATR,DFATR) :S(DD5)
L10366:
MOVEI 14,Q10097
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,VTATRB
JUMP 0,K10300
ADD 16,S$$STB##
SETZ 1,
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$IOR##
JUMP 0,ITATR
JUMP 0,V10094
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
JRST L10367
Q10097:
; ATRB(ITENT) = ?IEQ(VDATRB,0) OR(ITATR,ITSW * VDDATR)
;. :S(DD5)
MOVEI 14,Q10098
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,VDATRB
JUMP 0,K10300
ADD 16,S$$STB##
SETZ 1,
MOVE ^D1,V10093
IMUL ^D1,VDDATR
MOVEM 1,Q10001+^D0
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$IOR##
JUMP 0,ITATR
JUMP 0,Q10001+^D0
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
JRST L10367
Q10098:
; RETLAB = 'DD3' :(BADDEF)
MOVEI 14,L10297
MOVEM 14,S$$FLP##
MOVE 1,S10250
MOVEM 1,@N10296
JRST L10297
;* * * * * * * * *
;* * SUBROUTINES * * * * *
;* * * * * * * * *
;* DFI() DEFINE ITEM
;* EXPECTS ITPAT SET TO ITEM RECOGNIZER PATTERN, ITBRK TO THE BREAK
;* PATTERN THAT ENDS THE ITEM, ITSEP TO THE SEPARATOR PATTERN,
;* ITTYP, DFATR TO THE DEFINING ATTRIBUTES, AND RETURNS A NON-NULL
;* VALUE IF THE SYMBOL HAS ALREADY BEEN ENTERED
;*
;DFI PARLIT(SQCHR,ITBRK) ITPAT :F(FRETURN)
L10239:
MOVEI 14,S$$FRT##
MOVEM 14,S$$FLP##
MOVE 1,@SQCHR
PUSH 16,1
MOVE 1,@N10307
FCALV$ ^D2,PARLIT
PUSH 16,1
MOVE 1,@N10304
JSP 11,S$$MKP##
PUSH 16,1
JSP 14,S$$MTX##
XWD ^D2,0
MOVE 1,^D1(15)
JSP 11,S$$PTX##
JSP 11,S$$MTS##
; C LEN(*P) ITSEP @P :F(FRETURN)
MOVEI 14,S$$FRT##
MOVEM 14,S$$FLP##
MOVE 1,@C
PUSH 16,1
MOVE 1,@N10306
JSP 11,S$$MKP##
PUSH 16,1
JSP 14,S$$MTX##
XWD ^D2,0
MOVE ^D1,P
JUMPL 1,S$$MIE##
JSP 11,S$$LEN##
MOVE 1,^D1(15)
JSP 11,S$$PTX##
HRRZ 1,@S$$SJC##
SUBI 1,(13)
MOVEM 1,P
JSP 11,S$$MTS##
; ITATR = DFATR
MOVE ^D1,V10094
MOVEM 1,ITATR
; DFI = ?GETITM() ?INE(ITATR,DFATR) 'OLD' :(RETURN)
MOVEI 14,S$$SRT##
MOVEM 14,S$$FLP##
FCALV$ ^D0,GETITM
SETZ 1,
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$NEP##
JUMP 0,ITATR
JUMP 0,V10094
ADD 16,S$$STB##
SETZ 1,
MOVE 1,S10368
MOVEM 1,@N10239
JRST S$$SRT##
;* * * * * * * * *
;* DSB(STR1) DEFINE STRING BLOCK
;* CREATES DEFINITION FOR STRING BLOCK, RETURNS INAM
;*
;DSB ITTYP = 3
L10240:
MOVE ^D1,K10309
MOVEM 1,ITTYP
; ITATR = SKRATR
MOVE ^D1,SKRATR
MOVEM 1,ITATR
; ITNAM = STR1
MOVEI 14,Q10099
MOVEM 14,S$$FLP##
MOVE 1,@N10241
MOVEM 1,@ITNAM
Q10099:
; GETITM()
MOVEI 14,Q10100
MOVEM 14,S$$FLP##
FCALV$ ^D0,GETITM
Q10100:
; ATRB(ITENT) = ?IEQ(SKATRB,0) OR(ITATR,SKRATR)
MOVEI 14,Q10101
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALN$ ^D1,F10317
PUSH 16,1
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$EQP##
JUMP 0,SKATRB
JUMP 0,K10300
ADD 16,S$$STB##
SETZ 1,
SUB 16,S$$STB##
MOVEM 16,S$$STS##
JSA 16,F$$IOR##
JUMP 0,ITATR
JUMP 0,SKRATR
ADD 16,S$$STB##
MOVE 1,0
TLO 1,1B18
TLZ 1,1B19
JSP 11,S$$ASG##
Q10101:
; DSB = INAM(ITENT) :(RETURN)
MOVEI 14,S$$SRT##
MOVEM 14,S$$FLP##
MOVE 1,@ITENT
FCALV$ ^D1,F10315
MOVEM 1,@N10240
JRST S$$SRT##
;* * * * * * * * *
;END
JRST S$$SXT##
Q10001: BLOCK ^D1
K10287: EXP ^D2
I10287: EXP ^D2!1B0
K10300: EXP ^D0
K10301: EXP ^D1
K10309: EXP ^D3
I10309: EXP ^D3!1B0
K10310: EXP ^D4
I10310: EXP ^D4!1B0
K10312: EXP ^D5
I10312: EXP ^D5!1B0
K10330: EXP ^D7
K10336: EXP ^D8
S10048: POINT 7,A10048,35
A10048: BYTE (2)2(16)^D2+1(18)^D7
ASCII 'INTEGER'
S10049: POINT 7,A10049,35
A10049: BYTE (2)2(16)^D1+1(18)^D4
ASCII 'REAL'
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##
F10064: BYTE (4)4(4)0(5)^D2(5)0(18)P$$TBL##
F10066: BYTE (4)4(4)0(5)^D2(5)0(18)P$$DEF##
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##
V10090: EXP 0
V10091: EXP 0
V10092: EXP 0
V10093: EXP 0
V10094: EXP 0
A10095: BYTE (2)2(16)^D2+1(18)^D6
ASCII 'INIDEC'
A10096: BYTE (2)2(16)^D2+1(18)^D8
ASCII 'INIDEC()'
A10097: BYTE (2)2(16)^D2+1(18)^D6
ASCII 'DECLPH'
A10098: BYTE (2)2(16)^D2+1(18)^D8
ASCII 'DECLPH()'
A10239: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'DFI'
A10240: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'DSB'
A10241: BYTE (2)2(16)^D1+1(18)^D4
ASCII 'STR1'
A10242: BYTE (2)2(16)^D2+1(18)^D7
ASCII 'NO.STNO'
A10243: BYTE (2)2(16)^D1+1(18)^D5
ASCII 'TIMER'
A10244: BYTE (2)2(16)^D2+1(18)^D9
ASCII 'HASHSIZE='
A10245: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'LD4'
A10246: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'VD4'
A10247: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'FD4'
A10248: BYTE (2)2(16)^D2+1(18)^D6
ASCII 'DCLEND'
A10249: BYTE (2)2(16)^D1+1(18)^D4
ASCII 'XFF1'
A10250: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'DD3'
A10251: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'OPT'
A10252: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'SNO'
A10253: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'SUB'
A10254: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'PRV'
A10255: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'UPV'
A10256: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'PRL'
A10257: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'UPL'
A10258: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'PRF'
A10259: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'UPF'
A10260: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'STR'
A10261: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'INT'
A10262: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'REL'
A10263: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'REN'
A10264: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'GLV'
A10265: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'GLL'
A10266: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'GLF'
A10267: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'EXV'
A10268: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'ENV'
A10269: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'EXL'
A10270: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'ENL'
A10271: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'EXF'
A10272: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'ENF'
A10273: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'XFF'
A10274: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'NFF'
S10275: POINT 7,A10275,35
A10275: BYTE (2)2(16)^D1+1(18)^D5
ASCII 'DFI()'
S10276: POINT 7,A10276,35
A10276: BYTE (2)2(16)^D2+1(18)^D9
ASCII 'DSB(STR1)'
S10277: POINT 7,A10277,35
A10277: BYTE (2)2(16)^D3+1(18)^D14
ASCII 'SYM(INAM,ATRB)'
S10278: POINT 7,A10278,35
A10278: BYTE (2)2(16)^D3+1(18)^D14
ASCII 'CRS(NEXT,CRSI)'
S10281: POINT 7,A10281,35
A10281: BYTE (2)2(16)^D2+1(18)^D8
ASCII 'DECLARE('
B10282: EXP ^D32256
XWD ^D0,^D32512
XWD ^D0,^D32520
XWD ^D0,^D16128
A10282: BYTE (2)2(16)^D6+1(18)^D27
ASCII 'ABCDEFGHIJKLMNOPQRSTUVWXYZ.'
N10283: BYTE (4)4(14)0(18)Q10102+^D6
S10284: POINT 7,A10284,35
A10284: BYTE (2)2(16)^D1+1(18)^D1
ASCII ','
S10285: POINT 7,A10285,35
A10285: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'ALL'
S10288: POINT 7,A10288,35
A10288: BYTE (2)2(16)^D1+1(18)^D2
ASCII 'PR'
S10289: POINT 7,A10289,35
A10289: BYTE (2)2(16)^D4+1(18)^D19
ASCII 'UNKNOWN DECLARATION'
S10290: POINT 7,A10290,35
A10290: BYTE (2)2(16)^D3+1(18)^D15
ASCII 'BAD DECLARATION'
S10292: POINT 7,A10292,35
A10292: BYTE (2)2(16)^D3+1(18)^D14
ASCII 'UNKNOWN OPTION'
S10294: POINT 7,A10294,35
A10294: BYTE (2)2(16)^D5+1(18)^D23
ASCII 'MULTIPLE EXTERNAL FOR: '
S10295: POINT 7,A10295,35
A10295: BYTE (2)2(16)^D2+1(18)^D9
ASCII ', IGNORED'
N10296: BYTE (4)4(14)0(18)Q10102+^D7
S10298: POINT 7,A10298,35
A10298: BYTE (2)2(16)^D4+1(18)^D17
ASCII 'REDEFINITION OF: '
N10302: BYTE (4)4(14)0(18)Q10102+^D8
N10304: BYTE (4)4(14)0(18)Q10102+^D9
N10306: BYTE (4)4(14)0(18)Q10102+^D10
N10307: BYTE (4)4(14)0(18)Q10102+^D11
A10315: BYTE (2)2(16)^D1+1(18)^D4
ASCII 'INAM'
A10316: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'CRS'
A10317: BYTE (2)2(16)^D1+1(18)^D4
ASCII 'ATRB'
B10337: EXP ^D4
XWD ^D0,^D0
XWD ^D0,^D0
XWD ^D0,^D0
S10337: POINT 7,A10337,35
A10337: BYTE (2)2(16)^D1+1(18)^D1
ASCII '('
B10338: EXP ^D0
XWD ^D0,^D4
XWD ^D0,^D0
XWD ^D0,^D0
S10338: POINT 7,A10338,35
A10338: BYTE (2)2(16)^D1+1(18)^D1
ASCII ')'
N10344: BYTE (4)4(14)0(18)Q10102+^D12
S10345: POINT 7,A10345,35
A10345: BYTE (2)2(16)^D1+1(18)^D1
ASCII '4'
B10348: EXP ^D8
XWD ^D0,^D4
XWD ^D0,^D0
XWD ^D0,^D0
A10348: BYTE (2)2(16)^D1+1(18)^D2
ASCII ',)'
S10352: POINT 7,A10352,35
A10352: BYTE (2)2(16)^D1+1(18)^D1
ASCII '='
B10353: EXP ^D2048
XWD ^D0,^D3072
XWD ^D0,^D3072
XWD ^D0,^D1024
A10353: BYTE (2)2(16)^D2+1(18)^D6
ASCII 'IJKLMN'
S10361: POINT 7,A10361,35
A10361: BYTE (2)2(16)^D1+1(18)^D1
ASCII '5'
S10368: POINT 7,A10368,35
A10368: BYTE (2)2(16)^D1+1(18)^D3
ASCII 'OLD'
Q10102: BYTE (2)2(16)^D12+1(18)0
REPEAT ^D12,<0>
Q10103: BYTE (2)2(16)^D49*4+1(18)-^D49
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,A10316,35
F10316: 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)3(31)0
POINT 7,A10274,35
JRST L10274
EXP 0
BYTE (5)3(31)0
POINT 7,A10273,35
JRST L10273
EXP 0
BYTE (5)3(31)0
POINT 7,A10272,35
JRST L10272
EXP 0
BYTE (5)3(31)0
POINT 7,A10271,35
JRST L10271
EXP 0
BYTE (5)3(31)0
POINT 7,A10270,35
JRST L10270
EXP 0
BYTE (5)3(31)0
POINT 7,A10269,35
JRST L10269
EXP 0
BYTE (5)3(31)0
POINT 7,A10268,35
JRST L10268
EXP 0
BYTE (5)3(31)0
POINT 7,A10267,35
JRST L10267
EXP 0
BYTE (5)3(31)0
POINT 7,A10266,35
JRST L10266
EXP 0
BYTE (5)3(31)0
POINT 7,A10265,35
JRST L10265
EXP 0
BYTE (5)3(31)0
POINT 7,A10264,35
JRST L10264
EXP 0
BYTE (5)3(31)0
POINT 7,A10263,35
JRST L10263
EXP 0
BYTE (5)3(31)0
POINT 7,A10262,35
JRST L10262
EXP 0
BYTE (5)3(31)0
POINT 7,A10261,35
JRST L10261
EXP 0
BYTE (5)3(31)0
POINT 7,A10260,35
JRST L10260
EXP 0
BYTE (5)3(31)0
POINT 7,A10259,35
JRST L10259
EXP 0
BYTE (5)3(31)0
POINT 7,A10258,35
JRST L10258
EXP 0
BYTE (5)3(31)0
POINT 7,A10257,35
JRST L10257
EXP 0
BYTE (5)3(31)0
POINT 7,A10256,35
JRST L10256
EXP 0
BYTE (5)3(31)0
POINT 7,A10255,35
JRST L10255
EXP 0
BYTE (5)3(31)0
POINT 7,A10254,35
JRST L10254
EXP 0
BYTE (5)3(31)0
POINT 7,A10253,35
JRST L10253
EXP 0
BYTE (5)3(31)0
POINT 7,A10252,35
JRST L10252
EXP 0
BYTE (5)3(31)0
POINT 7,A10251,35
JRST L10251
EXP 0
BYTE (5)3(31)0
S10250: POINT 7,A10250,35
JRST L10250
EXP 0
BYTE (5)3(31)0
S10249: POINT 7,A10249,35
JRST L10249
EXP 0
BYTE (5)3(31)0
S10248: POINT 7,A10248,35
JRST L10248
EXP 0
BYTE (5)3(31)0
S10247: POINT 7,A10247,35
JRST L10247
EXP 0
BYTE (5)3(31)0
S10246: POINT 7,A10246,35
JRST L10246
EXP 0
BYTE (5)3(31)0
S10245: POINT 7,A10245,35
JRST L10245
EXP 0
BYTE (5)3(31)0
S10244: POINT 7,A10244,35
JRST L10244
EXP 0
BYTE (5)3(31)0
S10243: POINT 7,A10243,35
JRST L10243
EXP 0
BYTE (5)3(31)0
S10242: POINT 7,A10242,35
JRST L10242
EXP 0
BYTE (5)1(31)0
POINT 7,A10241,35
N10241: BYTE (4)4(14)0(18)Q10102+^D5
EXP 0
BYTE (5)5(31)0
POINT 7,A10240,35
F10240: BYTE (4)4(4)0(5)20(5)0(18)S$$UDF##
EXP 0
BYTE (5)3(31)0
POINT 7,A10240,35
JRST L10240
EXP 0
BYTE (5)1(31)0
POINT 7,A10240,35
N10240: BYTE (4)4(14)0(18)Q10102+^D4
EXP 0
BYTE (5)5(31)0
POINT 7,A10239,35
F10239: BYTE (4)4(4)0(5)20(5)0(18)S$$UDF##
EXP 0
BYTE (5)3(31)0
POINT 7,A10239,35
JRST L10239
EXP 0
BYTE (5)1(31)0
POINT 7,A10239,35
N10239: BYTE (4)4(14)0(18)Q10102+^D3
EXP 0
BYTE (5)5(31)0
POINT 7,A10097,35
DECLPH: BYTE (4)4(4)0(5)^D0(5)0(18)E10097
EXP 0
BYTE (5)3(31)0
POINT 7,A10097,35
JRST L10097
EXP 0
BYTE (5)1(31)0
POINT 7,A10097,35
N10097: BYTE (4)4(14)0(18)Q10102+^D2
EXP 0
BYTE (5)5(31)0
POINT 7,A10095,35
INIDEC: BYTE (4)4(4)0(5)^D0(5)0(18)E10095
EXP 0
BYTE (5)3(31)0
POINT 7,A10095,35
JRST L10095
EXP 0
BYTE (5)1(31)0
POINT 7,A10095,35
N10095: BYTE (4)4(14)0(18)Q10102+^D1
POINT 7,A10097,35
Q10000: XWD 0,Q10102
XWD Q10103,^D0
EXP Q10103
XWD ^D7,Q10000
E10095: JSP 13,S$$EFI##
POINT 7,A10096,35
EXP 0
XWD ^D8,Q10000
E10097: JSP 13,S$$EFI##
POINT 7,A10098,35
EXP 0
END