.
. F A N G C O N F I G U R A T I O N P A R A M E T E R S
.
. THIS ELEMENT CONTAINS ALL PARAMETERS NORMALLY CHANGED IN GENERATING
. A VERSION OF FANG TO RUN AT AN ARBITRARY SITE. THIS ELEMENT IS NOT
. MAINTAINED WITH THE SSG SKELETON USED FOR THE REST OF FANG, SO THAT
. CHANGING A PARAMETER MAY BE EASILY ACCOMPLISHED BY UPDATING THIS
. ELEMENT WITH PDP, THEN ADDING 'ASC' TO REASSEMBLE AND REMAP FANG.
.
.
. (C) Copyright 1972-1978 John Walker
.
. This software is in the public domain
.
DEF
.
.
LEVEL EQU ; LEVEL OF FANG PROCESSOR
'3R4'
.
U1110 EQU ; nonzero for dual-psr machines
0
.
pircb equ ; nonzero to use pircb$ instead of rlib$
0
.
EX8LEV EQU ; CURRENT EXEC-8 LEVEL (MAJOR LEVEL ONLY)
32
.
MAXIML EQU ; MAXIMUM IMAGE LENGTH FOR SDF TEXT
33 ALLOW 132 ASCII CHARACTERS
.
. EXPANSION INCREMENT FOR DYNAMIC MEMORY ALLOCATION. IF SET TO
. ZERO, NO DYNAMIC EXPANSION WILL BE USED.
.
DYNMEM EQU ;
1024
.
DEBUG EQU ; ONE IF DEBUGGING CODE IS ENABLED
1
.
THRESHD EQU ; PERCENT TO START COMPLAINING ABOUT
20 DELETED ELEMENTS. (PACK IT)
.
.
. The tag CONCURRENCY specifies the maximum number of commands FANG
. will permit to be simultaneously pending. When the number of
. commands either currently active or waiting for files reaches
. CONCURRENCY, the scanner will suspend reading commands until one
. or more commands complete. The only reason not to set CONCURRENCY
. to a huge value is to protect against the user who drops in, say,
. 5000 PACK commands of different files in batch. Limiting the
. concurrency to a reasonable value prevents the embarassment of
. running out of PCT space or pushing FANG over the 262K horizon.
.
concurrency equ ;
15
.
. FANG permits users to abbreviate commands to any extent, so long
. as the fragment entered is unambiguous. The tag EXACTCMD controls
. what FANG does when the command entered starts as an unambiguous
. command, but continues with improper letters. If set to zero, the
. command will be executed based on the leading letters. If set to
. one, the user will be asked to confirm that the command is correct
. before it is executed. If set to two, any wrong letter in a
. command will be treated as a totally unknown command.
.
exactcmd equ ;
1
.
. If you want FANG to perform tape positioning by files by using
. the forward space file and backward space file functions, set
. the tag 'BYFILES' nonzero. Note that FANG does not test
. whether the tape unit is capable of this function, hence this
. tag should be set nonzero only in systems which simulate these
. functions in software for units not capable of file positioning
. or systems with no units lacking this feature.
.
byfiles equ ;
0
.
. There is an undocumented feature in EXEC-8 which permits one to
. accomplish the unbelievably difficult task of generating a page
. heading containing a period. The 'G' PRTCN$ control phrase causes
. the entire rest of the string, periods included, to be used as
. the heading. If this feature (which Univac doesn't admit to,
. and probably doesn't even know is there) should stop working,
. shed a tear for quality software and set the tag PRTCNG to
. zero.
.
prtcng equ ;
1
.
. The following tag selects the Omnibus subtype used for EMBED-created
. elements. Note that only elements of this type will be eligible
. for un-EMBEDing.
.
. Note that changing this value will cause FANG not to recognise
. EMBEDed elements created at other sites which use the standard
. value.
.
embstyp equ 076 EMBED Omnibus subtype
.
. If the tag II is nonzero, FANG will use the II$ mechanism to respond
. to @@X C interrupts from demand. If set to zero, the contingency
. technique will be used. If the II$ method is selected, the user
. must specify what his system returns in A0 when an II$ process is
. given control following an @@X C from demand. Univac documents
. that the system returns spaces, making the interrupt
. indistinguishable from the operator II keyin, and thus unusable,
. since we don't want to discard user output when the operator
. makes an II keyin at random. If fact, most systems seem to return
. some junk with at signs in A0, and hence we can distinguish the
. @@X C from an II. The parameters IISMSK and IISENTL define the
. characters to be tested, and the value to be found for the II
. interrupt. Note that the II interrupt mechanism MUST be used
. if test and set queueing is the means of process synchronisation
. (tag TSQ set nonzero below). This is because of an EXEC 8 design
. flaw in that an @@X C will not wake up a process asleep in a TSQ
. wait.
.
ii equ ;
1
iismsk equ ; 77's indicate characters to test
0777777777700
iisentl equ ; what you get in A0
'@@@@@ '
.
. IF THE TAG 'INTERSITE' IS SET TO ZERO, THE INTER-SITE
. DATA INTERCHANGE FEATURE WILL BE TURNED OFF AND ALL
. CODE PERTAINING TO THE FEATURE WILL BE DELETED. ALL
. COMMANDS USING THE FEATURE WILL GIVE A 'NOT CONFIGURED'
. MESSAGE IS USED. IF SET TO ONE, INTER-SITE DATA INTERCHANGE
. WILL BE ENABLED.
.
INTERSITE EQU ; ONE TO ENABLE INTER-SITE INTERCHANGE
0 ** UNIMPLEMENTED ** DO NOT SET TO 1 !!
.
. THE TAGS 'ICHALF' AND 'ICQUARTER' DEFINE THE TYPES OF
. COMMUNICATION HARDWARE FOUND AT A SITE. IF A SITE HAS
. HALF WORD HARDWARE, 'ICHALF' MUST BE SET TO ONE. IF THE
. SITE HAS QUARTER WORD HARDWARE, THE TAG 'ICQUARTER'
. SHOULD BE SET TO ONE. IF BOTH TAGS ARE SET TO ONE, FANG
. WILL DETERMINE THE CHARACTERISTICS OF THE LINE BEING
. USED AND FUNCTION IN THE PROPER MODE. SETTING THESE
. TAGS TO ZERO SAVES MEMORY AND TIME IN INTER-SITE
. INTERCHANGE PROCESSING. THE SETTINGS OF THESE TAGS ARE
. IRRELEVANT UNLESS 'INTERSITE' IS SET NONZERO.
.
ICQUARTER EQU ; ONE TO SUPPORT QUARTER-WORD COMMUNICATIO
1
.
ICHALF EQU ; ONE TO SUPPORT HALF WORD COMMUNICATIONS
1
.
. SINCE IT IS NOT POSSIBLE TO RELIABLY EXPAND PROGRAM SIZE
. ONCE A PROGRAM HAS ELEVATED ITSELF TO REAL-TIME STATUS,
. FANG MUST ACQUIRE ALL NEEDED MEMORY BEFORE CONNECTING THE
. FIRST COMMUNICATION. THE FOLLOWING PARAMETER, WHICH IS
. MEANINGFUL ONLY IF 'INTERSITE' IS SET NONZERO, SPECIFIES
. THE AMOUNT OF MEMORY WHICH WILL BE RESERVED WHEN THE FIRST
. LINE IS CONNECTED VIA THE 'CONNECT' COMMAND. THIS MEMORY
. MUST SUFFICE FOR ALL COMMANDS EXECUTED WHILE FANG IS
. OPERATING AT A REAL TIME LEVEL.
.
RTBUFL EQU ; REAL TIME BUFFER RESERVE
5000
.
. IF THE TAG 'TSQ' IS SET NONZERO, FANG WILL USE TEST AND SET
. QUEUEING AS ITS MEANS OF ACTIVITY SYNCHRONISATION. IF SET
. TO ZERO, ACT$/DACT$ WILL BE USED. TEST AND SET QUEUEING IS
. THE RECOMMENDED MODE, AND IS ESSENTIAL IF INTER-SITE INTERCHANGE
. IS TO BE USED.
.
TSQ EQU ; ONE TO ENABLE TEST AND SET QUEUEING
1
.
. If you find that the first line of output generated by an
. asynchronous command is overtyping the last outstanding
. prompt from the scanner process, set the tag OVERTYPE
. nonzero.
.
overtype equ ;
0
.
. IT HAS COME TO THE ATTENTION OF FANG CENTRAL THAT DESPITE THE
. FACT THAT UNIVAC BRUITED TO THE WORLD THE ADVENT OF ASCII CODE
. IN EXEC-8 OVER TWO YEARS AGO, IT IS POSSIBLE TO RUN WITH THE LATEST
. SYSTEM AND HARDWARE (INCLUDING THE BLOODY C/SP!!!) AND GET GARBAGE
. FROM APRINT$-CREATED FILES. THEREFORE THE TAG 'FDONLY' WILL CAUSE
. FANG TO TRANSLATE ALL NORMALLY ASCII OUTPUT TO FIELDATA AND USE
. PRINT$. THIS WILL USE A DELIGHTFUL AMOUNT OF CPU TIME, AND DOUBTLESS
. SOMEBODY WILL COMPLAIN. A POX ON THEM.
.
FDONLY EQU ; 1 TO TRANSLATE ALL OUTPUT TO FIELDATA
0
.
. THIS EQUATE CONTROLS CHECKSUMMING OF TAPES WRITTEN BY THE COPY AND
. TRANSFER COMMANDS.
.
. 0: NO CHECKSUMMING, CODE WILL BE TURNED OFF
. 1: CHECKSUMMING ENABLED BY FANG 'C' OPTION
. 2: CHECKSUMMING DISABLED BY FANG 'D' OPTION
.
CHECKSUM EQU ; CHECKSUM DATA FLAG
2
.
. STANDARD BLOCK SIZE CONFIGURATION. THESE SIZES MAY BE TUNED TO
. OPTIMISE CORE CHARGE / ACCESS / TRANSFER TIMES. THEY MAY VARY
. ANYWHERE WITHIN THE DEFINED BOUNDS.
.
. ELEMENT TABLE BUFFER SIZE
.
BUFELTT EQU ; MINIMUM SIZE 196 WORDS
1792
.
. SDF I/O BUFFER FOR TEXT PROCESSING
.
BUFSDFT EQU 28*; MIN SIZE 2, WORDS, MULTIPLES OF 28
8
.
. PROCEDURE NAME TABLE BUFFERS
.
BUFPRCT EQU ; MINIMUM SIZE 196 WORDS
1792
.
. TEXT BUFFER SIZE FOR FILE => FILE TRANSFER AND PACK
.
BUFTEXT EQU 28*; MINUMUM SIZE 28 WORDS
64
.
. EOL AND EOLA DEFINE THE LINE TERMINATOR CHARACTERS FOR FIELDATA
. AND ASCII. IF EITHER IS NEGATIVE, LINE TERMINATOR CODE WILL
. BE REMOVED. IF NON-NEGATIVE, THE EOL CHARACTERS WILL BE USED
. TO TERMINATE OUTPUT LINES FOR DEMAND, AND DUMP EDITING WILL TAKE CARE
. NOT TO EDIT EOL CHARACTERS IN ALPHANUMERIC DUMPS.
.
EOL EQU ; FIELDATA END-OF-LINE CHARACTER
077
.
EOLA EQU ; ASCII END OF LINE CHARACTER
4 (EOT) EOT IS LINE TERMINATOR
.
. WHEN FANG ACQUIRES A FILE, IT ATTACHES A USE NAME TO IT FOR UNIQUE
. REFERENCING. AT THE END OF PROCESSING, FANG NORMALLY RELEASES THIS
. USE NAME. RELEASE OF USE NAMES FOR FILES ALREADY ASSIGNED TO THE
. RUN MAY BE DISABLED BY SETTING THE TAG 'USEREL' TO ZERO. THIS WILL
. HAVE NO EFFECT OTHER THAN A MINOR INCREASE IN PCT USAGE AND A
. POSSIBLY MAJOR DECREASE IN CC/ER CHARGES FOR RUNS.
.
USEREL EQU ;
1 TURN ON @USE NAME RELEASE
.
. THE TAG JWSITE ENABLES SPECIAL DEBUGGING AND PERFORMANCE MONITORING
. CODE WHICH IS SUITED ONLY TO THE DEVELOPER OF FANG. THIS CODE GOES
. BEYOND THE CODE ENABLED BY 'DEBUG' IN THAT IT ADDS CRYPTIC LINES
. OF OUTPUT TO NORMAL EXECUTIONS, ETC. THIS CODE MAY USE EXEC FEATURES
. NOT PRESENT IN STANDARD UNIVAC SYSTEMS, HENCE THE OPERATION OF
. ANY VERSION OF FANG GENERATED IN THE FIELD WITH JWSITE SET NONZERO
. CANNOT BE GUARANTEED.
.
JWSITE EQU ;
0
.
FNLOC EQU 0110 LOCATION OF FILE NAME IN PCT
.
TXCOL EQU 24 COLUMN TO EDIT TEXT FOR BATCH MODE
.
GTTYPE EQU 7 GREATEST ELEMENT TYPE DEFINED BY SYSTEM
.
.
CONFIG* PROC 0,0
END
.
.
. GETTIME IS INVOKED WHENEVER FANG WANTS THE ELAPSED RUN TIME.
. THIS PROC COULD BE MODIFIED TO RETRIEVE THE TIME HOWEVER A SITE
. DEFINES IT. THE CODE WITHIN THE PROC SHOULD STORE THE TIME IN
. 5000'THS OF A SECOND INTO THE CORE CELL PASSED AS P(1,1). CODING
. WITHIN THE PROC MAY USE X11, A0 - A3, AND R1.
.
. EXAMPLES:
. TO USE CPU TIME: PCT$,22 P(1,1)
. TO USE SUP TIME: PCT$,11 P(1,1)
.
P PROC 1
GETTIME* NAME 0
.
pct$,11 p(1,1)
.
END