Trailing-Edge
-
PDP-10 Archives
-
BB-L014E-BM
-
autopatch/forots.c05
There are no other files named forots.c05 in the archive.
REP 2/1 ;05C1
TV FOROTS Fortran object time system,6(2033)
;COPYRIGHT (C) 1981 BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
WIT
TV FOROTS Fortran object time system,6(2130)
;COPYRIGHT (C) 1981,1982 BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
INS 1771/1 ;05C2
***** End V6 Development *****
;.BEGINR REVISION HISTORY
;.COMPONENT FOROTS
;.VERSION 6
;.AUTOPATCH 5
;.EDIT 2034 ALLOW OVERLAID PROGRAM TO HAVE SYMBOLS
;; Fix memory manager to allow overlaid programs to have symbols.
; DAW,27-Jan-82,QAR:10-06696
; A:SRC FORMEM.MAC
;.EDIT 2035 REAL**REAL CAN GET OVERFLOW INSTEAD OF UNDERFLOW
;; Exponentiation for Real**Real, sometimes results in an overflow
;; instead of an underflow message.
; DAW,28-Jan-82,QAR:10-06649
; A:SRC FORDBL.MAC
;.EDIT 2036 RESTART AFTER TTY: SWITCH CAN PRODUCE FATAL ERROR
;; If a user restarts a FORTRAN program after switching to another
;; teletype on a TOPS-20 system, he may get "?Impossible JSYS
;; error".
; DAW,29-Jan-82,QAR:20-01734
; A:SRC FOROTS.MAC
;.EDIT 2037 NAMELIST OF LARGE ARRAY RUNS TOO SLOW
;; NAMELIST input runs too slow if a large array is read one
;; element at a time.
; DAW,1-Feb-82,SPR:NONE
; A:SRC FORCNV.MAC
;.EDIT 2040 ELAPSED TIME CALCULATION FOR TOPS-10 INCORRECT
;; Fix elapsed time calculation on TOPS-10, wrong after system uptime
;; becomes greater than approximately 160 hours.
; DAW,1-Feb-82,SPR:10-32080
; A:SRC FOROTS.MAC,FORXIT.MAC
;.EDIT 2041 USING LOGICAL NAMES CAN CUASE FILE NOT FOUND ERRORS
;; Correct deficiency in TOPS-20 logical name handling that caused
;; unexpected "?File not found" errors for OPEN/READ sequence.
; DAW,2-Feb-82,QAR:20-01742
; A:SRC FOROPN.MAC
;.EDIT 2042 ENDFILE DROPS CHARACTERS ON SUBSEQUENT WRITE
;; Fix several end-of-file routines to change NREC(D) to
;; NREC(U) so record counts are incremented/decremented
;; instead of byte counts.
; TGS,2-FEB-82,SPR:20-17208
; A:SRC FORIO.MAC,FOROPN.MAC
;.EDIT 2043 LEADING BLANKS IN FILE NAME NOT IGNORED ON TOPS-10
;; Fix to ignore leading space in file names on TOPS-10.
; ERD,9-Feb-82,SPR:10-32099
; A:SRC FOROPN.MAC
;.EDIT 2044 F FORMAT OUTPUT VALUES FOLLOWING T EDITING SOMETIMES INCORRECT
;; Fix to correct T editing positioning routines to clear
;; the end of record bit.
; ERD,19-Feb-82,SPR:10-32143
; A:SRC FORIO.MAC
;.EDIT 2045 NEW AMBIGUOUS REPEAT COUNT ERROR IS FATAL
;; Change error ARC (Ambiguous repeat count in FORMAT) from a fatal error
;; to a continuable warning.
; EGM,18-Mar-82,SPR:20-17299
; A:SRC FORFMT.MAC,FORERR.MAC
;;.EDIT 2046 READ OF RANDOM IMAGE FILE DOES NOT DETECT TOO LARGE REC NO.
;; Changes to disk positioning routines in TOPS-10 code so that RANDOM
;; files will no longer be padded to block boundary. Additional code to
;; take the error path if a READ of IMAGE file, opened in RANDOM mode, is
;; that of a record number which is larger than the largest record number
;; written.
;; This edit has been removed by Edit 2054.
;; ERD,31-Mar-82,SPR:10-32150
;; A:SRC FORIO.MAC
;.EDIT 2047 LARGE I/O LIST IN SUBROUTINE CAN CAUSE OUTPUT OF BAD DATA
;; Correction to TOOMNY routine. WRITE statements within a subroutine
;; that contain large I/O lists which include elements that are
;; not defined within the subroutine, may output garbage for those
;; I/O list elements outside the subroutine.
; ERD,9-Apr-82,SPR:20-17398
; A:SRC FOROTS.MAC
;.EDIT 2050 DUMP MODE OUTPUT ON MAGTAPE RESULTS IN FATAL ERROR
;; DUMP mode output on magtape causes "Illegal address in UUO" error.
;; Code correction so that dump output skips over initial output.
; ERD,20-Apr-82,SPR:10-32326
; A:SRC FOROPN.MAC
;.EDIT 2051 LARGE FORMAT FIELD WIDTHS TRUNCATED WITHOUT WARNING
;; Implement expanded FORMAT field widths and field-width range checking
;; in FORFMT by instituting a double encoding word scheme and expanding
;; left-parenthesis encoding to 2 words; improve core usage by allocating
;; an expandable encoding area and, when saving formats, saving only the
;; core their encoding used.
; TGS,26-Apr-82,SPR:10-32144
; A:SRC FORFMT.MAC,FORPRM.MAC,FOROTS.MAC
;.EDIT 2052 CUT BACK CORE FUNCTION DOES NOT REDUCE OTS MEMORY PAGES
;; Improve memory utilization by adding code to trim the paged memory block
;; list for a cut back core call. Also improve TOPS-10 memory usage by
;; removing pages as they are freed, freeing pages from unsuccessful
;; (incomplete) memory requests, increasing the number of pages that can
;; be added/removed with one UUO, and preventing undeserved page removal
;; errors.
; EGM,27-Apr-82,SPR:10-32296
; A:SRC FORPRM.MAC,FORMEM.MAC
; A:MSC F20OTS.CCL,DBCS2F.CMD
;.EDIT 2053 REQUESTS FOR PAGED (OTS) MEMORY FREQUENTLY OVERALLOCATE
;; Prevent overallocation of memory by attempting to use free space at
;; beginning of block list and allocate new pages contiguous with
;; start of list. Also preserve PC of allocating routine in block
;; header in one final place.
; EGM,28-Apr-82,SPR:NONE
; A:SRC FORMEM.MAC
;;.EDIT 2054 REMOVE EDIT 2046
;; Remove Edit 2046 because the edit sometimes updated the filesize
;; of random files before the block was actually written out
;; causing some READs to fail if the READ was attempted before
;; the file was closed.
;; ERD,7-May-82,SPR:NONE
;; A:SRC FORIO.MAC
;.EDIT 2055 COMPLEX EXPONENTIATION GETS ?ILL MEM REF
;; Fix typo in CDLOG so STOR routine POPJs instead of POPing P
;; and plowing into YZRO.
; TGS,10-May-82,SPR:10-32471
; A:SRC FORCDX.MAC
;.EDIT 2056 RANDOM IMAGE INPUT DOES NOT DETECT THE END OF FILE
;; Changes to disk positioning routines in TOPS-10 code so
;; that RANDOM files are no longer padded to the block
;; boundary.
;; Changes that allow READ of RANDOM IMAGE mode files to take
;; the error path if the record number being read is larger
;; that the largest record number previously written.
; ERD,20-May-82,SPR:10-32496
; A:SRC FORIO.MAC
;.EDIT 2057 EDIT 2051 MAY BREAK LIST-DIRECTED I/O OF REAL NUMBERS
;; Addition to Edit 2051 to clear the second encoding word during
;; NAMELIST and list-directed IO.
; TGS,25-May-82,SPR:20-17764
; A:SRC FORCNV.MAC,FORFMT.MAC
;.EDIT 2060 INCORRECT ERROR MESSAGE FOR MIXED I/O
;; Change Error Message CDI 31,315, to a more general message
;; so the message that is output is correct for all cases.
; ERD,28-May-82,SPR:10-32396
; A:SRC FORERR.MAC
;.EDIT 2061 NON-FORTRAN PROGRAMS FAIL WHEN USING TIME SUBROUTINE
;; Registers restored in the incorrect order in FORLIB routine TIME.
; EDS,1-Jun-82,SPR:10-32547
; A:SRC FORMSC.MAC
;.EDIT 2062 DISPOSE='LIST' NOT HANDLED CORRECTLY
;; When files with extension "DAT" are sent to the printer via
;; DISPOSE = 'LIST' or 'PRINT', the first character of each record
;; is not used for carriage control. The queue requests need to
;; include the argument block for '/FILE:FORTRAN'.
; EDS,7-Jun-82,SPR:20-17675
; A:SRC FOROPN.MAC
;.EDIT 2063 ERROR MESSAGE OUTPUT IS PARTIALLY JUNK
;; Error message "?Incompatible attributes" outputs junk as part
;; of the message on TOPS-10.
; ERD,10-Jun-82,SPR:10-32514
; A:SRC FORERR.MAC
;.EDIT 2064 FILE NAME POORLY FORMED FOR STATUS='SCRATCH'
;; Create files for STATUS='SCRATCH' using the standard naming
;; convention for TOPS-10. File names will now be nnnccc.TMP,
;; where nnn is the job number and ccc are random letters.
; EDS,10-Jun-82,SPR:10-32539
; A:SRC FOROPN.MAC,FOROTS.MAC
;.EDIT 2065 FOROTS TRAPS DURING ERROR HANDLING ROUTINE
;; Replace the use of D.TTY with U.TTY and rework logic for UDB.
; EDS,25-Jun-82,SPR:20-17700
; A:SRC FORERR.MAC,FORIO.MAC,FOROPN.MAC,FOROTS.MAC
;.EDIT 2066 INACCESSIBLE RANDOM RECORD NUMBERS GREATER THAN (2**18)-1
;; Ensure that RANDOM record numbers greater than (2**18)-1 are
;; not truncated when calculating starting word number of current
;; record.
; TGS,16-Jul-82,SPR:10-32825
; A:SRC FORIO.MAC
;.EDIT 2067 NAMELIST VARIABLES BEGINNING WITH T OR F TREATED AS LOGICALS
;; Add leftparen and equal-sign flags as legal delimiters to
;; prevent incorrect diagnostic when a NAMELIST variable begins
;; with T or F.
; TGS,23-Jul-82,SPR:20-17814
; A:SRC FORCNV.MAC
;.EDIT 2070 UNDERFLOW AND OVERFLOW MESSAGES REPORTED AT WRONG TIME
;; In DEXP2., "Underflow" message sometimes generated for
;; overflows.
; JEH,02-Aug-82,SPR:20-17901
; A:SRC FORDBL.MAC
;.EDIT 2071 SETTING CCOC WORDS FOR TERMINAL I/O
;; Allow CCOC words to be changed anywhere in a program and to
;; maintain those changes after terminal input. Reset the
;; CCOC words before exiting.
; RJD,5-Aug-82,SPR:20-17861
; A:SRC FOROTS.MAC,FOROPN.MAC,FORIO.MAC
;.EDIT 2072 USING BLANKS FOR A DEVICE NAME IN AN OPEN
;; This edit has been superseded by Edit 2115.
;; If OPEN statement contains DEVICE=' ', use the default device.
; RJD,16-Aug-82,SPR:10-32708
; A:SRC FOROPN.MAC
;.EDIT 2073 "ILLEGAL INSTRUCTION" ERRORS USING FORTRAN BACKSPACE
;; BACKSPACE Gets confused, tries to map in page -1. (Which results
;; in an illegal instruction on the PMAP.) This seems to only happin
;; for unformatted binary files.
; MRB,19-Aug-82,SPR:20-17774
; A:SRC FORIO.MAC
;.EDIT 2074 IMPOSSIBLE JSYS ERRORS CAN OCCUR WHEN MEMORY FULL IN FOROTS
;; Impossible JSYS error when memory is full. When opening a file
;; when memory is full causes routine %GTPGS to take the error
;; return, the error processing displays the error message "?Memory
;; full" then procedes to cleanup the open files. But, in this case
;; the monitor status shows the file open and FOROTS thinks it has
;; not been open yet and calls SETJFN to release the JFN and dies
;; there. Change Routine DSKSET not to bother to clean-up open files
;; when a "?Memory full" error is detected, Just %HALT.
;; NOTE: superseded by Edit 2100.
;; MRB,19-Aug-82,SPR:20-17792
;; A:SRC FOROPN.MAC
;.EDIT 2075 FOROTS DOES NOT ASSEMBLE WITH VERSION 4.1 GALAXY
;; Search QSRMC2 to resolve symbol definitions for V2 GALAXY code.
;; QSRMC2 is a renamed copy of the version 2 GALAXY's QSRMAC.
; RJD,23-Aug-82,SPR:10-32804
; A:SRC FOROPN.MAC
;.EDIT 2076 FUNCT. FUNCTIONS 17 AND 20 ON TOPS-10
;; Put FUNCT. functions 17 and 20 in conditional code for TOPS-10
;; and TOPS-20. For TOPS-10, set F.GPSI and F.RPSI equal to
;; F.ILL.
; RJD,26-Aug-82,SPR:10-32722
; A:SRC FORMEM.MAC
;.EDIT 2077 INCORRECT VALUE BEING RETURNED IN IANS IN OVERFL SUBROUTINE
;; In OVERFL, index OLDCT for a correct comparison between the tables
;; containing the current APR counts and the old counts.
; RJD,31-Aug-82,SPR:20-18017
; A:SRC FORMSC.MAC
;.EDIT 2100 REMOVE EDIT 2074
;; Remove edit 2074.
; MRB,3-Sep-82,SPR:NONE
A:SRC FOROPN.MAC
;.EDIT 2101 IMPOSSIBLE JSYS ERRORS CAN OCCUR WHEN MEMORY FULL IN FOROTS
;; In routine SETJFN when releasing JFN's and an error occurs
;; check to see if error is "file not closed". If it is then
;; close the file and continue processing.
; MRB,7-Sep-82,SPR:20-17792
; A:SRC FOROPN.MAC
;.EDIT 2102 EXECUTING A READ, REWIND AND WRITE ON TOPS-10
;; When a file is READ then the pointer is repositioned to the
;; beginning of the file before execution of a WRITE or ENDFILE,
;; write a null file to supersede the existing file rather than
;; deleting the file.
; RJD,9-Sep-82,SPR:10-32721
; A:SRC FOROPN.MAC
;.EDIT 2103 SUBROUTINE TIME RETURNS INCORRECT TIME IN FOROTS
;; Time function will return incorrect results for european time
;; zones. Use the TOPS-20 JSYS ODTIM to get correct time.
; MRB,13-Sep-82,SPR:20-18016
; A:SRC FORMSC.MAC
;.EDIT 2104 BARE PLUS OR MINUS LOOPS IN FORMAT(I)
;; Improve check for sign characters so FORMAT(I), (O), and (Z) won't
;; loop when given bare "+" or "-".
; TGS,16-Sep-82,SPR:10-32993
; A:SRC FORCNV.MAC
;.EDIT 2105 FOROTS WON'T COMPILE WITH KI-10-MACRO
;; Define EXTEND, if not already defined, to allow FOROTS to build
;; when a KI-10-BUILT MACRO-10 is being used.
; RJD,17-Sep-82,SPR:10-32696
; A:SRC FORPRM.MAC
;.EDIT 2106 ERR BRANCH NOT TAKEN WHEN DISK QUOTA EXCEEDED OR DISK FULL
;; Install trapping and ERR= handling for disk quota exceeded.
; TGS,13-Sep-82,SPR:20-17750
; A:SRC FOROTS.MAC,FORMEM.MAC,FORERR.MAC
; A:MSC F20OTS.CCL,DBCS2F.CMD
;.EDIT 2107 UNMAP PAGES AFTER EOF
;; When closing disk files FOROTS is not properly unmapping
;; unused files (after the EOF).
; MRB,24-Sep-82,SPR:20-18041
; A:SRC FOROTS.MAC,FOROPN.MAC
;.EDIT 2110 ILLEGAL MEMORY REFERENCE WHEN COMPLEX NUMBERS TRAP
;; Since calls to a subroutine handling COMPLEX numbers
;; do not use AC 16 for the address of an argument list,
;; an error is generated when FORERR is checkning the stack.
; RJD,27-Sep-82,SPR:10-32897
; A:SRC FOROTS.MAC,FORERR.MAC
;.EDIT 2111 CORRECT EDIT 2034
; MRB,27-SEP-82,SPR:20-17929
; A:SRC FORMEM
;.EDIT 2112 DISPOSE=RENAME WON'T RENAME FILE ACROSS SFDS
;; Set up path block pointer in RENAME block so CLOSE/RENAME=DISPOSE
;; can rename file to a different directory or SFD.
; TGS,29-Sep-82,SPR:10-32830
; A:SRC FOROPN.MAC
;.EDIT 2113 REMOVE EDIT 2063
;; Edit 2063 corrected one case of junk being output on TOPS10 with
;; "Incompatable attributes" error message, but caused many other
;; cases to break.
; TGS,30-Sep-82,SPR:NONE
; A:SRC FORERR.MAC
;.EDIT 2114 UNNCESSARY INSTRUCTION IN EDIT 2034
;; Edit 2034 contains an unneeded HRRZ T1,.JBSYM instruction.
; TGS,1-Oct-82,SPR:10-33101
; A:SRC FORMEM.MAC
;.EDIT 2115 SUPERSEDES EDIT 2072
;; Allows for DEVICE=' ' in OPEN statements and eliminates an
;; unnecessary line of code.
; RJD,5-Oct-82,SPR:10-33130
; A:SRC FOROPN.MAC
;.EDIT 2116 LONG I/O LISTS CAUSE ?FRSIEM
;; Certain I/O lists long enough to cause the compiler to generate
;; two calls to IOLST. will fail with ?Forots internal error in
;; memory management because of successive calls to the argument
;; copier.
; TGS,13-Oct-82,SPR:10-32984
; A:SRC FOROTS.MAC
;.EDIT 2117 EXP FUNCTION LOOPS ON KS10
;; On a KS10 processor UTRP. trapping may cause the processor to
;; loop inside the trap routine when it was trying to trap for a
;; floating overflow.
; MRB,21-OCT-82,SPR:10-33099
; A:SRC FORTRP.MAC
;.EDIT 2120 WITH EDIT 2056, NEW RANDOM FILES CAN HAVE BAD RECORDS
;; Edit 2056 can output incorrect RANDOM records with missing LSCWs
;; on TOPS10 with a sufficiently large RECORDSIZE specified. Ensure
;; that EOFN(D) is updated (if output is currently in progress)
;; whenever a TOPS10 window is written, as well as at end-of-record time.
; TGS,26-Oct-82,SPR:10-33096
; A:SRC FORIO.MAC
;.EDIT 2121 SORT GETS OVERWRITTEN WHEN FOROTS USE PAGES ABOVE 600000
;; When SORT is loaded, the FOROTS memory mangagement table is not
;; being updated to reflect that the pages used by SORT are not
;; available. Also, the location containing the address of SORT is
;; not being cleared when the program is restarted.
; RJD,28-Oct-82,SPR:20-18131
; A:SRC FORMEM.MAC,FORSRT.MAC,FORINI.MAC
;.EDIT 2122 ALLOW ESC AS LINE TERMINATOR FOR TTY INPUT ON -10
;; Allow ESCAPE to function as a line terminator (simulating CRLF)
;; for TOPS10 TTY input.
; TGS,09-Nov-82,SPR:10-33095
; A:SRC FORIO.MAC
;.EDIT 2123 ADDRESS CHECK WHEN APPENDING TO AN IMPLIED BINARY FILE
;; Change the ICNT and OCNT values to reflect words when appending
;; to an unformatted file.
; RJD,09-Nov-82,SPR:10-33194
; A:SRC FORIO.MAC
;.EDIT 2124 FRSISW ERROR CAN OUTPUT JUNK FOR KEYWORD AND VALUES
;; This edit supersedes edit 2063. Ensure that ISW error calls
;; on TOPS10 always pass a SIXBIT string as their string arguments.
; TGS,11-Nov-82,SPR:10-33170
; A:SRC FOROPN.MAC
;.EDIT 2125 CORRECTION TO EDIT 2102
;; This edit should be applied with edit 2102. The error return
;; for the FILOP. has been added.
; RJD,15-Nov-82,SPR:10-33237
; A:SRC FOROPN.MAC
;.EDIT 2126 CORRECT BYTSIZE FOR MAGTAPES
;; Added code to allow for different tape modes.
; MRB,18-NOV-82,SPR:20-17953
; A:SRC FOROPN.MAC,FORIO.MAC
;.EDIT 2127 DISALLOW I/O WITHIN I/O
; MRB,23-NOV-82,SPR:10-32947
; A:SRC FORERR.MAC,FORIO.MAC
;.EDIT 2130 CORRECTIONS TO EDIT 2120
; TGS,03-DEC-82,SPR:NONE
; A:SRC FORIO.MAC
;;.EDIT 2131 RESERVED FOR DEC
;;.EDIT 2132 RESERVED FOR DEC
;;.EDIT 2133 RESERVED FOR DEC
;;.EDIT 2134 RESERVED FOR DEC
;;.EDIT 2135 RESERVED FOR DEC
;.ENDA
;.ENDV
;.ENDR REVISION HISTORY
REP 8/2 ;05C3
EXTERN %MEMINI,%TRPINI
IF20,< EXTERN %PSIINI >
WIT
INTERN %FAREA ;[2051]
EXTERN %MEMINI,%TRPINI
IF20,< EXTERN %PSIINI,%OCCOC,%CCMSK > ;[2071] MASKS FOR CCOC WORDS
INS 14/2 ;05C4
IF20,< EXTERN %FUNCX,A.IOS,A.ERR > ;[2106] FOR PSI DISK FULL
REP 53/6 ;05C5
ADDI T1,-1(T3) ;ROUND UP
WIT
ADDI T2,-1(T3) ;[2040] ROUND UP
INS 128/7 ;05C6
PJOB T1, ;[2064] Get job number
MOVEI T4,3 ;[2064] Want three digits
INIJBN: IDIVI T1,12 ;[2064] Convert job number to SIXBIT
ADDI T2,20 ;[2064]
LSHC T2,-6 ;[2064]
SOJG T4,INIJBN ;[2064]
HLRZM T3,I.JOB ;[2064] Store SIXBIT job number
INS 131/7 ;05C7
MOVEI T1,17 ;[2106] GET PSI CHANNEL FUNCTION
MOVEM T1,FCODE ;[2106]
MOVEI T1,.ICQTA ;[2106] SETUP FOR DISK QUOTA EXCEEDED
MOVEM T1,FARG1 ;[2106]
MOVEI T1,1 ;[2106] LEVEL 1
MOVEM T1,FARG2 ;[2106]
XMOVEI T1,%DFERR ;[2106] SET THE ADDRESS
MOVEM T1,FARG3 ;[2106]
XMOVEI L,%FNBLK ;[2106] SET INTERRUPT FOR DISK FULL
PUSHJ P,%FUNCX ;[2106] CALL FUNCT. ENTRY POINT
MOVE T1,%CHNTAB+.ICQTA ;[2106] AND COPY CHANNEL WORD IN FOROTS
MOVEM T1,%FCHTB+.ICQTA ;[2106] SO FUNCT WILL KNOW IT'S FOROTS
MOVEI T1,.FHSLF ;[2106] ACTIVATE CHANNEL
MOVSI T2,(1B<.ICQTA>) ;[2106] FOR DISK FULL OR QUOTA EXCEEDED
AIC% ;[2106]
;[2106]
INS 137/7 ;05C8
MOVEI T2,0 ;[2036] INSURE ASCIZ STRING
IDPB T2,T1 ;[2036] BY ENDING WITH A NULL BYTE.
INS 146/7 ;05C9
RFCOC% ;[2071]
DMOVEM T2,I.CCOC ;[2071] SAVE THE CCOC WORDS
AND T2,%CCMSK ;[2071] SET CCOC FOR CORRECT OUTPUT
IOR T2,%OCCOC ;[2071] LEAVE ^I AND ^L AS THEY WERE
MOVE T3,%OCCOC+1 ;[2071] SET OTHERS TO SEND LITERALLY
SFCOC% ;[2071]
INS 159/7 ;05C10
;[2106]
IF20,< ;[2106]
%FNBLK: IFIW TP%INT,FCODE ;[2106] GET A PSI CHANNEL
IFIW TP%INT,[ASCIZ \FRS\] ;[2106] FOROTS IS CALLING ITSELF
IFIW TP%INT,FSTAT ;[2106] STATUS
IFIW TP%INT,FARG1 ;[2106] ARG 1
IFIW TP%INT,FARG2 ;[2106] ARG 2
IFIW TP%INT,FARG3 ;[2106] ARG 3
> ;[2106] IF20
;[2106]
;[2106] DISK FULL ERROR HANDLER--TOPS20 ONLY.
;[2106] GETS HERE VIA THE SOFWARE INTERRUPT SYSTEM IF THE USER HAS NOT
;[2106] STOLEN THE CHANNEL FROM FOROTS. TREATED LIKE ANY OTHER I/O ERROR,
;[2106] EXCEPT THAT IF THE PROCESS IS INTERACTIVE, IT DOES A HALTF% TO
;[2106] LET THE USER EXPUNGE OR OTHERWISE CLEAN UP THE DISK, AND THEN,
;[2106] IF CONTINUED, WILL DEBRK% TO CONTINUE THE PROCESS. IF THE PROCESS
;[2106] IS BATCH, WE JUST JUMP OFF TO %ABORT TO CLOSE ALL FILES.
;[2106] FOR THE ERR= AND IOSTAT= CASE, IT IS COMPLICATED BY THE FACT
;[2106] THAT WE MUST DO A DEBRK%, BUT WE DO NOT WANT TO CONTINUE
;[2106] THE PROCESS AT THE INTERRUPTED LOCATION, SO WE MUST SUBSTITUTE
;[2106] THE ERR= OR (FOR IOSTAT WITH OLDER .REL FILES) THE RETURN ADDRESS
;[2106] FROM THE FOROTS CALL FOR THE INTERRUPT ADDRESS.
IF20,< ;[2106]
%DFERR: SKIPE I.BAT ;[2106] BATCH JOB?
JRST SETDBK ;[2106] YES. DEBREAK AND HANDLE ERR= OR ABORT
SKIPN A.ERR ;[2106] ERR= OR IOSTAT= SPECIFIED?
SKIPE A.IOS ;[2106]
JRST SETDBK ;[2106] YES. SET DEBREAK ADDRESS TO ERROR HANDLER
$ECALL DQE ;[2106] NO. PRINT DISK QUOTA EXCEEDED MESSAGE
$ECALL ETC ;[2106] TELL USER TO EXPUNGE AND CONTINUE
HALTF% ;[2106] HALT THE PROCESS
DEBRK% ;[2106] CONTINUE THE PROCESS IF CONTINUED
;[2106]
SETDBK: PUSH P,T1 ;[2106] SAVE T1 VERY TEMPORARILY
XMOVEI T1,DFDBK ;[2106] SET DEBREAK ADDRESS HERE
SKIPN I.XSIR ;[2106] USING EXTENDED PSI TABLE?
JRST STDBS0 ;[2106] NO
MOVEM T1,%PC1+1 ;[2106]
POP P,T1 ;[2106] RESTORE T1
DEBRK% ;[2106]
;[2106]
STDBS0: HRRM T1,%PC1 ;[2106] STORE PC
POP P,T1 ;[2106] RESTORE T1
DEBRK% ;[2106] AND DEBREAK
;[2106]
DFDBK: $ECALL DQE,%ABORT ;[2106] AND PRINT ERROR MESSAGE AND DIE
> ;[2106] IF20
INS 7/8 ;05C11
;[2106] FUNCT. BLOCK ARGS
FCODE: BLOCK 1 ;[2106] FUNCTION CODE
FSTAT: BLOCK 1 ;[2106] STATUS
FARG1: BLOCK 1 ;[2106] ARGUMENT 1
FARG2: BLOCK 1 ;[2106] ARGUMENT 2
FARG3: BLOCK 1 ;[2106] ARGUMENT 3
;[2106]
INS 21/8 ;05C12
I.CCOC:: BLOCK 2 ;[2071] CCOC WORDS FOR THE CONTROLLING TTY
INS 30/8 ;05C13
I.JOB:: BLOCK 1 ;[2064] SIXBIT job number in RH
INS 37/8 ;05C14
%FAREA: BLOCK 1 ;[2051] FORMAT DECODING AREA ADDRESS
REP 40/8 ;05C15
D.TTY:: BLOCK 1 ;DDB OF CONTROLLING TTY, IF OPEN
TT.DES:: BLOCK 1 ;DESIGNATOR OF CONTROLLING TTY
WIT
U.TTY:: BLOCK 1 ;[2065] UDB OF CONTROLLING TTY, IF OPEN
TT.DES:: BLOCK 1 ;DESIGNATOR OF CONTROLLING TTY
%UDBAD:: BLOCK 1 ;[2127]DDB ADDRESS STACK
INS 53/8 ;05C16
%FCHTB:: BLOCK ^D36 ;[2106] FOROTS-OWNED CHANNELS
REP 12/11 ;05C17
SETZM CPYBLK ;NO COPIED ARGS TO DEALLOCATE YET
WIT
;[2116]
REP 16/11 ;05C18
SAVEX: HRLZM 0,ARGLST-1 ;Store in local area
WIT
SAVEX: SETZM CPYBLK ;[2116] NO COPIED ARGS TO DEALLOCATE YET
HRLZM 0,ARGLST-1 ;Store in local area
REP 12/12 ;05C19
PUSHJ P,%GTBLK ;ALLOCATE A BIG ENOUGH BLOCK
WIT
PUSH P,T2 ;[2047] SAVE AC2
PUSHJ P,%GTBLK ;ALLOCATE A BIG ENOUGH BLOCK
POP P,T2 ;[2047] RESTORE AC2
SUM 64347