Trailing-Edge
-
PDP-10 Archives
-
decuslib20-03
-
decus/20-0078/comp/simmcr.mac
There are 2 other files named simmcr.mac in the archive. Click here to see a list.
;<ENDERIN>SIMMCR.MAC.2, 5-Jan-77 14:40:27, Edit by ENDERIN
SALL
IFDEF .DIRECTIVE,<.DIRECTIVE .NOBIN> ;[221]
SEARCH SIMMAC
RUNIV SIMMCR RTS definitions ;[104]
SUBTTL Definitions common to compiler and RTS modules
;AUTHOR: Lars Enderin 1973-1974
;PURPOSE: Defines macros and constants used for code generation and
; RTS record layouts. Defines the symbols used to
; communicate with the RTS from compiled code (RTSYMBOLS).
;VERSION: 4 [104,221,300]
IF1,<END>
PRINTX UPDATE: 300 31-Jan-1978/LE
DEFINE X(p,l)<<verrts_<p-^d35>>&<1_l-1>>
RADIX 10
VSIMRTS==X(11, 9) ;;Major SIMRTS version number
VRTUPD== X(17, 6) ;;Major SIMRTS edit number
VRTEDI== X(35,18) ;;SIMRTS edit level
VRTCUS== X( 2, 3) ;;Customer version SIMRTS
RADIX 8
SUBTTL Ac assignments, tag values, error codes
XIAC= 16
XFP= 16 ;USED AS PARAMETER LIST POINTER FOR FORTRAN SUBROUTINES
XCB= 15
XSAC= 1
XTAC= 2
XRAC= XWAC1
XRAC1= XWAC2
;TAG VALUES FOR DYNAMIC RECORDS (DISPLAY,BLOCK,PROCEDURE, ETC.)
DEFINE TYPZDN<
X <ZDN,ZBI,ZBP,ZCL,ZPB,ZTE,ZTT,ZAR,ZAC,ZER,ZDR,ZYS,ZXB>>
DEFINE X(A) <..N==0
IRP A,<
Q'A==..N
..N==..N+1>>
TYPZDN
QZDNTM=QZXB ;LAST TAG VALUE FOR DYNAMIC RECORDS
;RUN TIME ERROR CODES
SCALAR<Q,QSORCERR,QBOUNDSERR,QQUAERR,QREFASERR,QVIRTERR,QCHARERR,QNSUBERR,QRTSE0>
; Note that QRTSE0 is the first code to be used in RTS proper
;Parameter descriptor type codes in ZAP and ZFL records
SCALAR <QDTVSI,Q,QDTFNM,QDTDYN,QDTCON,QDTICO,Q,QDTEXP>
OPDEF RTSERR [001B8] ;Error UUO
OPDEF BREAK [017B8] ;BREAKPOINT UUO
NONE= 676K
SUBTTL Dynamic records (created at run time)
;DYNAMIC RECORD (ZDN)
DF ZDNCND,0,12,11 ;BLOCK CONDITION
DF ZDNDET,0,1,0 ;DETACHED
DF ZDNTER,0,1,1 ;TERMINATED
DF ZDNACS,0,1,2 ;THIS BLOCK HAS ACS RECORD ATTACHED
DF ZDNKDP,0,1,3 ;KEEP DISPLAY EVEN IF TERMINATED (LOCAL CLASSES)
DF ZDNTYP,0,6,17 ;BLOCK TYPE
DF ZDNLNK,0,18,35 ;GARBAGE COLLECTOR WORK SPACE
;BLOCK INSTANCE (ZBI)
DR ZBI,2,ZDNTYP,QZBI
DF ZBIBNM,1,9,17 ;BLOCK STATE NUMBER
DF ZBIZPR,1,18,35 ;PROTOTYPE ADDRESS
;OFFSETS FOR SPECIAL VARIABLES IN FORTRAN PROCEDURE BLOCKS
YFOFAD= 4 ;XWD -<count of parameters left>,<offset of next ZFP>
YFOAAD= 5 ;Z <offset of address word for next par(XCB)>
YFOPAD= 6 ;Z <offset of next temp loc for name param value(XCB)>
;DISPLAY RECORD (ZDR)
DR ZDR,0,ZDNTYP,QZDR
DF ZDRZAC,1,18,17 ;ACS POINTER
DF ZDRLEN,1,18,35 ;LENGTH OF RECORD
DF ZDRZBI,-1,18,17 ;DYNAMIC LINK
DF ZDRARE,-1,18,35 ;REACTIVATION POINT OF INVOKING B.I.
DF ZDRZPB,-2,36,35 ;DISPLAY VECTOR
;ACCUMULATOR STACK RECORD (ZAC)
DR ZAC,0,ZDNTYP,QZAC
DF ZACNAC,1,18,17 ;NUMBER OF SAVED AC-S
DF ZACZAM,1,18,35 ;ACS MAP ADDRESS
DF ZACSVA,2,36,35 ;FIRST SAVED AC
;ARRAY RECORD (ZAR)
DR ZAR,0,ZDNTYP,QZAR
DF ZARLEN,1,18,35 ;TOTAL LENGTH OF RECORD
DF ZARBAD,2,36,35 ;BASE - ADDR OF (FICTIVE) ELEMENT WITH ALL INDICES=0
DF ZARTYP,3,9,8 ;TYPE OF ARRAY
DF ZARSUB,3,9,17 ;NUMBER OF SUBSCRIPTS
DF ZARZPR,3,18,35 ;PROTOTYPE POINTER FOR REF ARRAY
DF ZARLOW,2,36,35 ;LOWER BOUND ARRAY (ZERO ORIGIN) STEP=2
DF ZARUPP,3,36,35 ;UPPER BOUND ARRAY (ZERO ORIGIN) STEP=2
DF ZARDOP,-2,36,35 ;DOPE VECTOR (ZERO ORIG,ASSUMING AN AC PTS TO ZARDOP[2])
;TEXT RECORD (ZTE)
DR ZTE,2,ZDNTYP,QZTE
DF ZTECLN,1,18,17 ;NUMBER OF CHARACTERS IN MAIN TEXT
DF ZTELEN,1,18,35 ;RECORD LENGTH (WORDS)
DF ZTECHR,2,7,6 ;FIRST CHARACTER OF TEXT
;TEMPORARY TEXT VARIABLE (ZTT)
DR ZTT,3,ZDNTYP,QZTT ;last two words are a text variable
DF ZTTSP,1,18,17
DF ZTTZTE,1,18,35
DF ZTTLNG,2,18,17
DF ZTTCP,2,18,35
;TEXT VARIABLE (ZTV)
DR ZTV,2
DF ZTVSP,0,18,17 ;NUMBER OF CHARACTERS BEFORE THIS (SUB)TEXT WITHIN TEXT OBJ.
DF ZTVZTE,0,18,35 ;POINTER TO START OF MAIN TEXT CONTAINING THIS TEXT
DF ZTVLNG,1,18,17 ;NUMBER OF CHARACTERS IN (SUB)TEXT
DF ZTVCP,1,18,35 ;Current POS - 1
;DYNAMIC ADDRESS (ZDV)
DF ZDVOFS,0,18,17 ;OFFSET FROM START OF BLOCK INSTANCE
DF ZDVZBI,0,18,35 ;BLOCK INSTANCE OF QUANTITY
;SWITCH DYNAMIC ADDRESS (ZDS)
DF ZDSZSR,0,18,17 ;SWITCH RECORD ADDRESS
DF ZDSZBI,0,18,35 ;BLOCK INSTANCE (STATIC ENVIRONMENT)
;LABEL DESCRIPTOR (ZLD)
DF ZLDEBL,1,18,17 ;EFFECTIVE BLOCK LEVEL (DISPLAY OFFSET)
DF ZDLBNM,1,18,35 ;BLOCK NUMBER (STATE)
;DYNAMIC LABEL (ZLD CLASS ZDL)
DF ZDLCAD,0,18,17 ;CODE ADDRESS
DF ZDLZBI,0,18,35 ;BLOCK INSTANCE
;ARRAY ADDRESS (ZDA)
DF ZDAZAR,0,36,35 ;ADDRESS OF ARRAY RECORD
DF ZDAZPR,1,36,35 ;PROTOTYPE ADDRESS (FOR TYPE REF ONLY)
;REF VARIABLE DYNAMIC ADDRESS (ZRV)
DF ZRVOFS,0,18,17 ;OFFSET WITHIN B.I.
DF ZRVZBI,0,18,35 ;BLOCK INSTANCE ADDRESS
DF ZRVZPR,1,36,35 ;PROTOTYPE ADDRESS
;DYNAMIC ADDRESS OF PROCEDURE (ZDP)
DF ZDPZPR,0,18,17 ;PROTOTYPE
DF ZDPZBI,0,18,35 ;ENCLOSING "COMPLETE" BLOCK (WITH DISPLAY)
DF ZDPEBI,1,18,35 ;INNERMOST ENCLOSING BLOCK
;FORMAL LOCATION FOR PARAMETERS BY NAME (ZFL)
DF ZFLNTH,0,1,0 ;ON IF NO THUNK EXISTS
DF ZFLATP,0,5,5 ;TYPE OF ACTUAL PARAMETER
DF ZFLDTP,0,3,8 ;DESCRIPTOR TYPE
DSW ZFLVTD,0,@<%ZFLDTP-2> ;THIS BIT ON FOR VALUE TYPE DESCRIPTOR
DF ZFLAKD,0,3,11 ;KIND OF ACTUAL PARAMETER
DF ZFLCNV,0,1,13 ;ON IF CONVERSION IS NEEDED
DF ZFLFTP,0,4,17 ;TYPE OF FORMAL PARAMETER
DF ZFLZBI,0,18,35 ;BLOCK INSTANCE OF PARAMETER
DF ZFLZQU,1,18,17 ;ADDRESS OF QUALIFYING CLASS PROTOTYPE FOR TYPE REF
DF ZFLADR,1,18,35 ;ADDRESS OF THUNK
DF ZFLOFS,1,18,35 ;OFFSET OF VARIABLE IN B.I. IF NO THUNK
DF ZFLTDK,0,10,11 ;LIKE ZFPTMK (DTP INSTEAD OF MOD)
DF ZFLCTP,0,5,17 ;CNV+FTP
;THUNK HEADER WORD (ZTH)
DF ZTHZTS,0,18,17 ;OFFSET OF ZTS RECORD IN DISPLAY
DF ZTHZAP,0,18,35 ;LINK TO NEXT ZAP IN ACTUAL PARAMETER LIST
;THUNK SAVE AREA IN DISPLAY VECTOR (ZTS)
DR ZTS,4 ;NOTE THAT THE RECORD BASE IS AT THE LAST WORD
;(CONVENIENT FOR PARAMETER HANDLING)
DF ZTSRAD,-3,36,35 ;THUNK RETURN (INTO PARAMETER HANDLING ROUTINE)
DF ZTSRSR,-2,36,35 ;RETURN TO SIMULA CODE AT PARAMETER ACCESS
DF ZTSFAD,-1,36,35 ;DYNAMIC ADDRESS OF FORMAL LOCATION
DF ZTSZBI,0,18,17 ;BLOCK INSTANCE (XZBI VALUE) WHEN THUNK WAS INVOKED
DF ZTSZAC,0,18,35 ;ZAC RECORD ADDRESS
;SYSTEM RECORD (ZYS). CONTAINS NO OBJECT POINTERS. USED FOR SPECIAL RTS
;INFORMATION, SUCH AS SFD LISTS, DEBUG INFORMATION FOR SIMDDT. MAY BE
;MOVED BY THE GARBAGE COLLECTOR WITHOUT CHANGE.
DR ZYS,2 ;LENGTH OF OVERHEAD IS 2
DF ZYSLG,1,18,35 ;LENGTH OF ZYS RECORD
DF ZYSINF,2,36,35 ;FIRST WORD OF ZYS INFORMATION
;=== SIMULATION DATA AREAS ===
;EVENTNOTICE RECORD (ZER)
DR ZER,3,ZDNTYP,QZER
DF ZERLEN,1,18,35 ;RECORD LENGTH
DF ZERZEV,2,18,17 ;EVENTNOTICE FREE CHAIN
DF ZERZER,2,18,35 ;ZER CHAIN
DF ZERZV1,3,36,35 ;FIRST EVENTNOTICE
;EVENTNOTICE (ZEV)
DR ZEV,4
DF ZEVZBL,0,18,17 ;BACKWARD LINK
DF ZEVZPS,0,18,35 ;PROCESS POINTER
DF ZEVZLL,1,18,17 ;LEFT LINK
DF ZEVZRL,1,18,35 ;RIGHT LINK
DF ZEVZER,2,18,17 ;BASE POINTER (ENCLOSING ZER RECORD)
DF ZEVZCH,2,18,35 ;FREE LIST POINTER
DF ZEVTIM,3,36,35 ;SCHEDULED TIME
;SIMULATION (ZSU)
DR ZSU,5,ZDNTYP,QZCL
DF ZSUFT,2,18,17 ;FIRST ZEV IN SQS
DF ZSULT,2,18,35 ;LAST ZEV IN SQS AND ROOT OF THE BINARY TREE
DF ZSULNK,3,18,17 ;CHAIN OF ZSU RECORDS FOR GARBAGE COLLECTOR
DF ZSUZER,3,18,35 ;CHAIN OF EVENTNOTICE PAGES
DF ZSUZPS,4,36,35 ;MAIN PROGRAM
;LINKAGE (ZLG)
DR ZLG,3,ZDNTYP,QZCL
DF ZLGSUC,2,18,17 ;SUC LINK
DF ZLGPRE,2,18,35 ;PRED LINK
;PROCESS (ZPS)
DR ZPS,4,ZDNTYP,QZCL
DF ZPSZEV,3,36,35 ;EVENTNOTICE POINTER
SUBTTL RTS CONSTANT RECORDS (COMPILER-CREATED)
;PROTOTYPE (ZPR)
DR ZPR,2
DF ZPRBLE,0,18,17 ;BLOCK INSTANCE LENGTH
DF ZPRMAP,0,18,35 ;ADDRESS OF MAP OF VARIABLES
DF ZPREBL,1,18,17 ;EFFECTIVE BLOCK LEVEL, COPIED (NEGATIVE) FROM ZHEDLV
DF ZPRSYM,1,18,35 ;ADDRESS OF SYMBOL TABLE
;PROCEDURE PROTOTYPE (ZPR CLASS ZPC)
DR ZPC,4
DF ZPCNRP,2,18,17 ;NUMBER OF PARAMETERS
DF ZPCDLE,2,18,35 ;LENGTH OF DISPLAY RECORD
DF ZPCPAR,3,1,0 ;Set if any parameters in this proc/class or any prefix
DF ZPCTYP,3,5,5 ;Type if function procedure
DF ZPCNCK,3,1,6 ;Signifies NOCHECK for a MACRO-10 proc
DF ZPCF40,3,1,7 ;Signifies that the prototype is for a F40 proc
DF ZPCNAM,3,1,8 ;On if FORTRAN procedure has name parameter(s)
DF ZPCDEC,3,18,35 ;START OF INSTRUCTIONS (declaration coding)
DF ZPCZFP,4,36,35 ;FORMAL PARAMETER DESCRIPTORS
;CLASS AND PREFIXED BLOCK PROTOTYPE (ZPC CLASS ZCP)
DR ZCP,8
DF ZCPSBL,-1,18,17 ;STATIC BLOCK LEVEL
DF ZCPPRL,-1,18,35 ;PREFIX LEVEL
DF ZCPIEA,-2,36,35 ;ADDR OF STATEMENT AFTER INNER,
;OR END OF PREF. BLOCK
DF ZCPKDP,-3,1,0 ;KEEP DISPLAY (CLASS HAS LOCAL CLASSES)
DF ZCPGCI,-3,3,3 ;GARBAGE COLLECTOR INDEX FOR SPECIAL ACTIONS
DF ZCPPTA,-3,1,4 ;[63] Class contains protected attributes
DF ZCPSTA,-3,23,35 ;START OF STATEMENTS OF CLASS OR BLOCK
DF ZCPZCP,-4,36,35 ;PREFIX POINTER
DF ZCPVID,-5,36,35 ;VIRTUAL DESCRIPTORS
;MAP OF VARIABLES IN A BLOCK (ZMP)
DR ZMP,4
DF ZMPZSD,0,18,17 ;LINK TO SYMBOL TABLE FOR BLOCK (PASS 2 ONLY)
DF ZMPZMP,0,18,35 ;Link to next outer map
DF ZMPNOV,1,18,17 ;Number of words for other variables than REF, ARRAY, negated
DF ZMPDOV,1,18,35 ;first such variable at this offset
DF ZMPNRV,2,18,17 ;Number of REF and ARRAY variables, negated
DF ZMPDRV,2,18,35 ;Offset of first such variable
DF ZMPNTX,3,18,17 ;Number of words for TEXT variables, negated
DF ZMPDTX,3,18,35 ;Offset of first TEXT variable
;STATIC LABEL DESCRIPTOR (ZLD CLASS ZSL)
DF ZSLSIM,0,1,0 ;ON FOR SIMPLE LABEL (ZSLENB NEGATIVE)
DF ZSLENB,0,18,17 ;OFFSET IN DISPLAY OF NEAREST "DISPLAY BLOCK"
;(if ZSLSIM is set, i e simple label case)
DF ZSLADP,0,18,35 ;ADDRESS OF SIMPLE LABEL OR SWITCH THUNK ADDRESS
;SWITCH RECORD (ZSR)
DF ZSRSLD,-2,36,35 ;LAST ZSL ENTRY
DF ZSRNEN,0,36,35 ;NUMBER OF ENTRIES
DF ZSRZPC,1,36,35 ;SWITCH PROTOTYPE ("LABEL PROCEDURE")
;TYPE DESCRIPTOR (ZTD)
DF ZTDTYP,0,5,5 ;TYPE OF VARIABLE (COULD BE TAG FIELD)
;PARAMETER DESCRIPTOR (ZTD CLASS ZPD)
DF ZPDKND,0,3,11 ;KIND OF VARIABLE
;FORMAL PARAMETER DESCRIPTOR (ZPD CLASS ZFP)
DF ZFPMOD,0,3,8 ;PARAMETER TRANSMISSION MODE
DF ZFPOFS,0,18,35 ;OFFSET OF FORMAL LOCATION IN B.I.
DF ZFPTMK,0,10,11 ;TYPE,MODE,KIND (SAME ORDER AND LENGTH AS IN ZQU!!!)
;FORMAL PARAMETER DESCRIPTOR FOR TYPE REF (ZFP CLASS ZFR)
DF ZFRZPR,1,18,35 ;PROTOTYPE OF QUALIFYING CLASS
;ACTUAL PARAMETER DESCRIPTOR (ZPD CLASS ZAP)
DF ZAPNTH,0,1,0 ;ON IF NO THUNK EXISTS
DF ZAPDTP,0,3,8 ;DESCRIPTOR TYPE
DF ZAPEBL,0,5,17 ;EFFECTIVE BLOCK LEVEL (IF NO THUNK)
DF ZAPADR,0,18,35 ;ADDRESS OF THUNK (IF ANY)
DF ZAPOFS,0,18,35 ;OFFSET OR VALUE OF QUANTITY IF NO THUNK
DF ZAPZQU,-1,18,35 ;QUALIFICATION PROTOTYPE ADDRESS
;ZLN ,LINE NUMBER TABLE
DSW (ZLNICD,0,0) ;TYPE OF ENTRY FLAG ON IF BLOCK STRUCTURE ENTRY
DF (ZLNTYP,0,4,4) ;TYPE OF BLOCK STRUCTURE ENTRY
DF (ZLNBLK,0,13,17) ;POINTER TO PREVIOUS BLOCK STRUCTURE ENTRY
DF (ZLNADF,0,18,35) ;ADDRESS FIELD FOR BLOCK STRUCTURE ENTRY
DF (ZLNLIN,0,18,17) ;LINE NUMBER
DF (ZLNADR,0,18,35) ;ADDRESS OF STATEMENT
;ZSM SYMBOL TABLE
DF (ZSMFOR,-3,18,17) ;ENTRY POINT TO FORTRAN ROUTINE
DF (ZSMZLN,-3,18,35) ;LINK TO LINE NUMBER TABLE
DF (ZSMRN1,-2,36,35) ;FIRST SIX CHAR. IN OBJECT NAME
; DF (ZSMRN2,-1,36,35) ;LAST SIX CHARACTERS IN OBJECT NAME
DF (ZSMTYP,0,4,3) ;TYPE OF OBJECT
DF (ZSMZSL,0,18,17) ;POINTER TO ZSD ENTRY
DF (ZSMZSR,0,18,35) ;POINTER TO ZSD ENTRY IF RIGHT PART
;ZSD,SYMBOL TABLE ENTRY
DSW (ZSDLNE,0,0) ;FLAG ON IF ZSDNM2 PRESENT
DF (ZSDHID,0,1,1) ;[14 22 12] FLAG ON IF HIDDEN
DF (ZSDSPI,0,5,7) ;[14 22 12] SYSTEM PROCEDURE INDEX
DF (ZSDTYP,0,4,11) ;TYPE OF VARIABLE
DF (ZSDMOD,0,3,14) ;MODE OF VARIABLE
DF (ZSDKND,0,3,17) ;KIND OF VARIABLE
DF (ZSDOFS,0,18,35) ;OFFSET RELATIVETO BLOCK INSTANCE
DF (ZSDNM1,1,36,35) ;FIRST SIX LETTERS IN VARIABLE NAME
DF (ZSDNM2,2,36,35) ;LAST SIX LETTERS
DF (ZSDZPR,3,36,35) ;POINTER TO PROTOTYPE RECORD FOR REF VARIABLE
SUBTTL RTSYMBOLS
Comment;
Definition of run-time routines and global variables referred by
compiled code. The format of each routine definition is
X ROUT[,[L][,S][,N]]
The optional second parameter indicates that the reference will be
resolved at load time. It also indicates to which high segment the
routine belongs, if two high segments are created. The third
parameter is present for procedures occurring in ZQU records. The
fourth parameter, if present, gives the external name on the
quantity. Otherwise, the external routine name is generated by
preceding the first parameter with a dot, i e the name is ".'ROUT".
The routine name (without the dot) is assigned a value which is the
external symbol index (less than 400000) or the address of the
routine entry point in the high segment (greater than 400000).
For standard class prototypes, the Y macro is defined, which has 4
parameters: prototype name (without dot), segment (L or empty), S if
SIMULA name exists - and if it exists, the 4th parameter gives the
size of the variable part of the prototype (after ZPC part).
;
DEFINE RTSYMBOLS=<
X (CSCA) ;; Copy array object
X (CSSN) ;; Normal procedure call
X (CSSW) ;; Formal, remote or connected procedure call
X (CSGO) ;; General GOTO statement
X (CSNA) ;; Allocate array
X (CSES) ;; Exit switch thunk
X (CSEP) ;; Exit function procedure
X (CSQU) ;; Qualification checking
X (CSSB) ;; Enter an unreduced subblock
X (CSSC) ;; Call to evaluate switch designator
X (CSER) ;; Enter reduced subblock
X (CSEN) ;; Enter procedure, class or prefixed block after
;; parameter evaluation
X (CSRA) ;; Restore accumulators
X (CSSA) ;; Save accumulators
;;
X (PHFV) ;; Return value of name parameter
X (PHFA) ;; Return computed address of name parameter
X (PHFM) ;; Return dynamic description of formal
;; procedure/switch/array
X (PHFT) ;; Return address of text variable or text descriptor
X (PHFS) ;; Store new value into name parameter
X (PHCV) ;; Convert between arithmetic types
;;
X (CPNE) ;; New
X (CPSP) ;; Create prefixed block
X (CPPD) ;; End prefixed block declarations
X (TXDA) ;; Compute dynamic and abs addr of text variable in ZTT
X (CPCA) ;; Call
X (CPCD) ;; End declarations of class body
X (CPCI) ;; Inner
X (CPE0) ;; End class body prefix level 0
X (CPDT,,S) ;; Detach
X (CPRS,,S) ;; Resume
;;
X (OCEP) ;; Exit main program
X (OCIN,2) ;; Complete initialisation started by OCSP
X (OCSP,L) ;; Start main program
;;
X (TXBL,3,S) ;; Blanks
X (TXGC,,S) ;; Getchar (text)
X (TXCY,,S) ;; Copy
X (TXGI,,S) ;; Getint
X (TXGR,,S) ;; Getreal
X (TXLT,,S) ;; LOWTEN
X (TXMN,,S) ;; Main
X (TXPF,,S) ;; Putfrac
X (TXPC,,S) ;; Putchar
X (TXPX,,S) ;; Putfix
X (TXPI,,S) ;; Putint
X (TXST,3,S) ;; Strip
X (TXSE,,S) ;; Setpos
X (TXSU,3,S) ;; Sub
X (TXRE) ;; Text relation
X (TXVA,3) ;; Text value assignment
X (TXGF,,S) ;; Getfrac
X (TXPR,,S) ;; Putreal
;;
Y (IOFI,,,1) ;; FILE
Y (IOIN,,S,1) ;; Infile
Y (IOOU,,S,1) ;; Outfile
Y (IOPF,,S,1) ;; Printfile
Y (IODF,,S,1) ;; Directfile
X (IOIC,,S) ;; Inchar
X (IOLI,,S) ;; Lastitem
X (IOII,,S) ;; Inint
X (IOIR,,S) ;; INREAL
X (IOIF,,S) ;; INFRAC
X (IOIT,,S) ;; INTEXT
X (IOIG,,S) ;; INIMAGE
X (IOBO,,S) ;; BREAKOUTIMAGE
X (IOOG,,S) ;; OUTIMAGE
X (IOOC,,S) ;; OUTCHAR
X (IOOI,,S) ;; OUTINT
X (IOOX,,S) ;; OUTFIX
X (IOOR,,S) ;; OUTREAL
X (IOOF,,S) ;; OUTFRAC
X (IOOT,,S) ;; OUTTEXT
X (IOLT,,S) ;; LOCATE
X (IOOP,,S) ;; OPEN
X (IOCL,,S) ;; CLOSE
X (IOEJ,,S) ;; EJECT
X (IOSP,,S) ;; SPACING
X (IOLP,,S) ;; LINESPERPAGE
;;
X (MAAC,L,,ACOS.) ;; Arccos
X (DUMDUM,L)
X (MAAS,L,,ASIN.) ;; Arcsin
X (DUMDUM,L)
X (MAAT,L,,ATAN.) ;; Atan
X (MAATD,L,,DATAN.)
X (MACI,L) ;; LONG REAL TO INTEGER CONVERSION
X (MACL,L) ;; INTEGER TO LONG REAL CONVERSION
X (MACO,L,,COS.) ;; Cos
X (MACOD,L,,DCOS.)
X (MACH,L,,COSH.) ;; Cosh
X (DUMDUM,L)
X (MAEX,L,,EXP.) ;; Exp
X (MAEXD,L,,DEXP.)
X (MALN,L,,ALOG.) ;; Ln
X (MALND,L,,DLOG.)
X (MASI,L,,SIN.) ;; Sin
X (MASID,L,,DSIN.)
X (MASH,L,,SINH.) ;; Sinh
X (DUMDUM,L)
X (MASQ,L,,SQRT.) ;; Sqrt
X (MASQD,L,,DSQRT.)
X (MATA,L,,TAN.) ;; Tan
X (DUMDUM,L)
X (MATH,L,,TANH.) ;; Tanh
X (DUMDUM,L)
X (MARR,L,,EXP3.) ;; Real to real
X (MALL,L,,DEXP3.) ;; Long real to long real
X (MARI,L,,EXP2.) ;; Real to integer
X (MALI,L,,DEXP2.) ;; Long real to integer
;;
;;
X (RDDI,L,S) ;; Discrete
X (RDDR,L,S) ;; Draw
X (RDER,L,S) ;; Erlang
X (RDHI,L,S) ;; Histd
X (RDLI,L,S) ;; Linear
X (RDNE,L,S) ;; Negexp
X (RDNO,L,S) ;; Normal
X (RDPO,L,S) ;; Poisson
X (RDRA,L,S) ;; Randint
X (RDUN,L,S) ;; Uniform
X (RDHO,L,S) ;; Histo
;;
X (SAGC,3) ;; Garbage collector
X (SAAR,3) ;; Allocate data record
;;
Y (SSST,L,S) ;; SIMSET prototype
Y (SSLG,L,S) ;; Linkage
Y (SSLK,L,S) ;; Link
Y (SSHD,L,S) ;; Head
X (SSSC,L,S) ;; Suc
X (SSPD,L,S) ;; Pred
X (SSOU,L,S) ;; Out
X (SSFO,L,S) ;; Follow
X (SSPC,L,S) ;; Precede
X (SSIT,L,S) ;; Into
X (SSFT,L,S) ;; First
X (SSLT,L,S) ;; Last
X (SSCL,L,S) ;; Clear
X (SSCA,L,S) ;; Cardinal
X (SSEY,L,S) ;; Empty
X (SSPV,L,S) ;; Prev
;;
X (SUAC,L) ;; Activation statement
Y (SUSI,L,S) ;; SIMULATION
Y (SUPS,L,S) ;; Process
Y (SUMA,L,S) ;; MAIN PROGRAM of SIMULATION
X (SUHO,L,S) ;; Hold
X (SUPA,L,S) ;; Passivate
X (SUWA,L,S) ;; Wait
X (SUCA,L,S) ;; Cancel
X (SUAM,L,S) ;; Accum
X (SUEV,L,S) ;; Evtime
X (SUNE,L,S) ;; Nextev
;; Interface to FORTRAN library functions
X (YFADR,L) ;; List of parameter addresses for mathematical routines
X (YFARG,L) ;; First parameter to mathem. subr.
X (YFAR2,L) ;; Second parameter (to EXPn routines)
;; PSEUDO AC'S
X (YXA1,L)
X (YXA2,L)
X (YXA3,L)
X (YXA4,L)
X (YXA5,L)
X (YXA6,L)
X (YXA7,L)
X (YXA10,L)
X (YXA11,L)
X (YXA12,L)
X (PHPT,L) ;; Transfer parameters to formal or virtual procedure
X (FOREX) ;; Called from FORTRAN subr.
X (FORER) ;; - " -
X (OCIN8,3) ;; GETCHANNEL FROM MACRO PROCEDURE
X (IOLN) ;; Check logical file name for SIMDDT
X (CSEU) ;; End of unreduced subblock
X (OCEI) ;; End initialisation after OCIN
X (OCINK,2) ;; Reopen file
X (IOCOM,2) ;; Set up file
X (OCUU) ;; UUO handler
X (OCTR) ;; Trap handler
;;[14 24 15] RTS[23] ERROR E39
X (CSSW0) ;; Formal or virtual procedure call without parameter list
X (IOCB) ;; [63] Compute block number for Directfile
X (IOCS) ;; [63] Compute start of image in Directfile buffer (via LOC)
X (IONB) ;; [63] Advance Out- or Directfile one block (Output)
X (IORB) ;; [63] Advance In- or Directfile one block (Input)
X (IOERF) ;; [63] Write file spec for file in error
X (OCIND,3) ;; [105] Linkbuff - chains buffer rings
X (IOCLA) ;; [105] Close all files
X (OCLD) ;; [300] Load SIMDDT
X (OCINC,3) ;; [300] FREEBUF - free buffer area
>
%%%%%1=1
%%%%%2=400010
DEFINE X(ROUT,S,DUM,DUM1)=<
IFIDN <L>,<S>,<
ROUT=%%%%%1
%%%%%1=<%%%%%1+1>
>
IFDIF <L>,<S>,<
ROUT=%%%%%2
%%%%%2=<%%%%%2+1>
>>
DEFINE Y(PROT,SEG,S,F)<
IFIDN <L>,<SEG>,<X (PROT,L,S)>
IFDIF <L>,<SEG>,<
PROT'%B=%%%%%2
%%%%%2=%%%%%2+ZCP%S
PROT=%%%%%2-ZPC%S
IFNB <F>,<%%%%%2=%%%%%2+<F>>
PROT'%E=%%%%%2
>>
RTSYMBOLS
IFG <%%%%%1-QFTFX-1>,<
DEFINE MM(A)<PRINTX QFTFX MUST BE AT LEAST A
>
MM(\%%%%%1)
PURGE MM
>
END