. . 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