.NLIST ; ; ; COPYRIGHT (c) 1975,1976,1977,1978,1979,1980 BY ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. ; ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE ; INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER ; COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY ; OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY ; TRANSFERRED. ; ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE ; AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT ; CORPORATION. ; ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. ; ; Naomi Navkal (nn1) 04-Jun-86 ; Initiate V2.8 IDENT system. Components are: ; - 2.8 FORTRAN IV version number ; - dd Revision level, starting from "00" ; - l SPR correction level, starting from "A"; ; if ".", then no SPR correction is present. ; ; Naomi Navkal (nn2) Oct-86 ; Allocate extra space for post-release corrections. ; ;NECESSARY DEFINITIONS FOR ASSEMBLING THE OTS ROUTINES R0=%0 R1=%1 R2=%2 R3=%3 R4=%4 ;THE LINK POINTER R5=%5 ;THE REENTRANCY POINTER SP=%6 PC=%7 ; EQUATES FOR COMMON OTS. $RT11 = 1 $RSTS = 2 $RSX11= 4 ; $$HOST = $RT11 ! $RSTS (FOR RSTS/E) $$HOST = $RT11 .MACRO $AOTS REG .GLOBL $AOTS .IF NB REG MOV $AOTS,REG .IFF MOV $AOTS,R3 .ENDC .ENDM .MACRO OTI$P .PSECT OTS$P,RW,D,GBL,REL,OVR .ENDM .MACRO IDENT VER ; ----------(nn1)----------> .IF DF V28 .IDENT /2.8'VER/ .IFF ; <----------(nn1)---------- .IDENT /F400'VER/ .ENDC ; (nn1) OTI$I .ENDM .MACRO OTI$I .PSECT OTS$I,RW,I,LCL,REL,CON .ENDM .MACRO OTI$D .PSECT OTS$D,RW,D,LCL,REL,CON .ENDM .MACRO OTI$S .PSECT OTS$S,RW,D,LCL,REL,CON .ENDM .MACRO OTI$O .PSECT OTS$O,RW,I,LCL,REL,CON .ENDM ; H.J. ; MODIFIED BY: ; J.EGAN 8-JUN-78 ADDED DEF OF USER ERROR TABLE ; A. HOFFMAN 19-MAY-78 OPEN/CLOSE DEFINITIONS ; B. MATTHEWS 18-OCT-79 DELETE BIT DEF FOR STAT2 IN THE FDB ; ADDED RECMAX WORD TO THE FDB ; B. MATTHEWS 11-MAR-80 CHANGED TO HAVE ONLY ONE COPY OF ERRDEF .MACRO ERRDEF INTOV=1. ;INTEGER OVERFLOW IZDIV=2. ;INTEGER ZERO DIVIDE COMPER=3. ;COMPILER GENERATED ERROR CMRNGE=4. ;COMPUTED GOTO OUT OF RANGE ICERR=5. ;INPUT CONVERSION ERROR, FATAL OCERR=6. ;OUTPUT CONVERSION ERROR MIXOBJ=7. ;INCOMPATIBLE OBJECT MODULES **F4P FOVRFL=10. ;FLOATING OVERFLOW FUNDFL=11. ;FLOATING UNDERFLOW FZDIV=12. ;FLOATING ZERO DIVIDE NGSQRT=13. ;SQRT OF NEGATIVE NUMBER UNDEXP=14. ;UNDEFINED EXPONENTIATION OPERATION BADLOG=15. ;LOG OF A NEGATIVE NUMBER NOARGS=16. ;WRONG NUMBER OF ARGUMENTS ERAGO=17. ;ASSIGNED LABEL NOT IN LIST **F4P ERDILE=18. ;ADJUSTABLE ARRAY DIMENSION ERROR **F4P ARYREF=19. ;ARRAY REFERENCE OUTSIDE ARRAY **F4P ;THE FOLLOWING ERRORS MUST BE FATAL BADCHN=20. ;INVALID CHANNEL NUMBER NOCHN=21. ;NO AVAILABLE CHANNELS RECLNG=22. ;RECORD TOO LONG IOERR=23. ;HARD ERROR IN FILE ENDERR=24. ;END OF FILE ERROR RAFTRW=25. ;READ AFTER WRITE IOINIO=26. ;RECURSIVE I/O CALL BADDEV=27. ;BAD DEVICE NOOPEN=28. ;OPEN FAILED NDEVLD=29. ;NOT ENOUGH ROOM FOR DEVICE HANDLER NBUFRM=30. ;NOT ENOUGH ROOM FOR BUFFERS NORTCH=31. ;NO AVAILABLE RT-11 CHANNEL MIXFUF=32. ;MIXED FMTD/UNFMTD I/O TO FILE UNFOVR=33. ;ATTEMPT TO READ PAST UNFORMATTED RECORD UIOTTLP=34. ;ATTEMPT UNFMTD IO TO TT OR LP RDOWRT=35. ;ATTEMPT TO WRITE TO READ ONLY FILE BADFIL=36. ;BAD FILE SPECIFICATION STRING NODEFL=37. ;RANDOM I/O BEFORE DEFINE FILE NORAIO=38. ;CANT DO RANDOM I/O TO TTY OR LPT RECSZX=39. ;MORE BYTES IN RECORD THAN IN RECSZ BADREC=40. ;REQUEST FOR TOO LARGE A BLOCK DEFOPN=41. ;DEFINE FILE ATTEMPTED ON OPEN FILE OBJBIG=42. ;MEMORY OVERFLOW DURING OBJECT TIME FORMAT OBJBAD=43. ;SYNTAX ERROR IN OBJECT TIME FORMAT ENCDEC=44. ;RECORD ERROR IN ENCODE/DECODE FCERR=45. ;INCOMPATIBLE FORMAT TYPE ERROR INFRMT=46. ;INFINITE FORMAT LOOP ;; .IFDF ...V2S ;* BOUNDS CHECKING VERSION ONLY BOUNDS=47. ;ATTEMPT TO STORE OUTSIDE PARTITION ;; .ENDC FILOPN=48. ;ILLEGAL OPERATION ON OPEN FILE ENDRAN=49. ;ENDFILE ON RANDOM FILE KEYVAL=50. ;KEYWORD VALUE ERROR IN OPEN STATEMENT INOPCL=51. ;INCONSISTENT OPEN/CLOSE SPECIFICATIONS ; ERVFEV=52. ;VARIABLE FORMAT EXPRESSION VALUE ERROR **F4P ERPROT=52. ;ATTEMPT TO DELETE PROTECTED FILE LCERR=53. ;LIST DIRECTED I/O SYNTAX ERROR ERFP00=54. ;FPP HARDWARE FAULT **F4P ERFP02=55. ;FPP ILLEGAL OPCODE FAULT **F4P ERFP12=56. ;FPP UNDEFINED VARIABLE TRAP **F4P ERFP14=57. ;FPP MAINTENENCE MODE TRAP **F4P STKOVF=60. ;STACK OVERFLOWED BUSERR=61. ;INTERRUPT TO 4 WHICH IS NOT STACK OVERFLOW $$..$$=62. ;USED BY STRATUP ROUTINE ILINST=63. ;ILLEGAL INSTRUCTION TRAP VRTERR=64. ;VIRTUAL INITIALIZE FAILURE. MAPERR=65. ;MAPPING ERROR. UNSUPF=66. ;UNSUPPORTED OPEN KEYWORD (FATAL) UNSUPW=67. ;UNSUPPORTED OPEN KEYWORD (WARNING) RSZERR=68. ;DIRECT ACCESS RECORD SIZE ERROR. .IF NE, $$HOST&$RSTS QUEMAN=69. ;CANT SEND TO QUEMAN ERRCNT=70. ; # OF ERRORS IN F4 OTS. .IFF ERRCNT=69. .ENDC .ENDM .MACRO ERROR ERRNUM TRAP ERRNUM+^O200 .ENDM .MACRO OTSWA ;MAPPING MACRO FOR THE RT-11 OTS WORK AREA ;MAKE SURE AOTSZ IS UPDATED WITH ADDITIONS!!!! ;THIS AREA IS CLEARED AT OTS STARTUP. SEQNO=0. ;STATEMENT SEQUENCE NUMBER PLNBUF=2. ;ADDR OF LINE BUFFER CHNATB=4. ;ADDR OF START OF CHANNEL ADDR TABLE FILETB=6. ;ADDR OF START OF FILE INFO TABLE QELEM=8. ;FLAG FOR SETTING QUEUE ELEMENTS ON OPEN DEVHDR=10. ;ADDR OF LOWEST DEVICE HANDLER FREESP=12. ;POINTER TO FREE SPACE ENMLNK=14. ;PTR TO LAST NAME ON ENTRY NAMES QUEUE RTCNLS=16. ;ZERO BITS INDICATE FREE RT-11 CHANNELS FMTAD=18. ;CURRENT POINTER INTO FORMAT STRING FILPTR=20. ;ADDR OF FILE DESCRIPTOR BLOCK ;**** DEFINITIONS ABOVE THIS POINT MUST NEVER CHANGE **** SYSLIB REQUIREMENT RECAD=22. ;ADDR OF DATA IN CURRENT RECORD EOLBUF=24. ;ADDR OF END OF DATA IN LINE BUFFER LNBUF=26. ;ADDR OF LINE BUFFER FOR FIO (INITIO,ENCODE SETS) BLBUF=28. ;CURRENT ADDR OF DATA IN LINE BUFFER PSCALE=30. ;P SCALE FACTOR FSTKP=32. ;POINTER TO FORMAT PUSHDOWN LIST FSTK=34. ;FORMAT PUSHDOWN LIST, 16 WORDS-8 LEVELS ;THESE ARE THE VARIABLES THE OBJECT TIME FORMAT ;COMPILER NEEDS. ALSO NOTE OPEN USES THIS AREA AS SCRATCH. NOARG=FSTK ;NUMBER OF ARGS THE LAST FORMAT ITEM EXPECTS PARLVL=FSTK+2 ;PARENTHESIS LEVEL NUMFLG=FSTK+4 ;FLAG INDICATES A NUMBER IS AVAILABLE TO THE ;FORMAT PROCESSOR AND WHETHER IT IS NEGATIVE DELIM=FSTK+6 ; IF SET TO NON-ZERO INDICATES THAT A DELIMITER ; IS REQUIRED. RETADR=FSTK+8. ; TEMP USED IN ASSEMBLER CALLABLE MATH ROUTINES. V.VTYP=FSTK+10. ; PLACE TO PUT DATA TYPE FOR LST INPUT. V.W1 =FSTK+12. ; PLACE TO PUT DATA FOR LST INPUT. V.W2 =FSTK+14. V.W3 =FSTK+16. V.W4 =FSTK+16. FMTRET=66. ;ADDR OF LAST TOP LEVEL PARENTHESIS VARAD=68. ;ADDR OF DATA ITEM TO BE TRANSFERRED TSPECP=70. ;HIGHEST PTR INTO LINE BUFFER TYPE=72. ;TYPE FLAG FOR A,L,O,I,F,E,G,D CONVERSIONS REPCNT=74. ;REPEAT COUNT FOR ALOIEFGD CONVERSIONS LENGTH=76. ;FORMAT WIDTH SPECIFICATION (W OF W.D) D=78. ;D FIELD SIZE OF W.D DSTATS=80. ;ADDR OF WORK AREA(FSTK) USED BY OPEN ITEMSZ=82. ;SIZE OF LIST VARIABLE TO BE TRANSFERRED TTYRWF=84. ;FLAG SAYS R/W LAST I/O OPERATION TO TTY DOLFLG=86. ;FLAG FOR DOLLAR FORMAT CHARACTER ENCOUNTERED OBJFRE=88. ;FREE SPACE ADDRESS FOR OBJECT TIME FORMAT COUNT=90. ;NO. OF ITEMS TO TRANSFER FOR ARRAY I/O RACNT=92. ;COUNT OF # OF BYTES REMAINING IN RANDOM RECORD FMTLP=RACNT ;FLAG FOR DETERMINING INFINITE FORMAT LOOPS ;NEVER CAN BE USED AT SAME TIME AS RACNT NBLOCK=94. ;NEW (NEXT) RANDOM BLOCK NUMBER RECIO=96. ;ADDRESS OF CURRENT I/O ROUTINE DENCWD=98. ;USED FOR FAKE FDB FOR ENCODE AND DECODE FMTCLN=100. ;CONTENTS OF SP ON ENTRY TO READ/WRITE INITSP=102. ;RECURSIVE ERROR CALL FLAG THPTR=104. ;INITIAL VALUE OF THREADED POINTER FOR RESTARTS SAVTOP=106. ;INITIAL SETTOP ADDRESS FOR RESTARTS UERRTB=108. ; USER ERROR TABLE. EXADDR=110. ;ADDRESS OF USER EXIT ROUTINE ENDEXA=112. ;END= ADDRESS ERREXA=114. ;ERR= ADDRESS THREAD=116. ;LO BYTE = 0 --> INLINE CODE, <>0 --> THREADED CODE (I/O ONLY). ;HI BYTE = 0 --> INLINE CODE MAIN PROG, <>0 --> THREADED MAIN PROG. HGHLIM=118. ;HIGH LIMIT OF PARTITION LOWLIM=120. ;LOW LIMIT OF PARTITION LONAME=122. ;LO NAME OF PROGRAM. HINAME=124. ;HI NAME OF PROGRAM. IORET =126. ; RETURN ADDRESS STORED HERE WHILE IN I/O. WINDOW=130. ;MAPPING WINDOW FOR PLAS. WINMAP=144. ;.AREA FOR .MAP REQUESTS. MAPADR=148. ;PTR TO WINMAP .AREA. ERBITS=150. ;5 WORDS FOR ERRTST BIT TBL. ERRS 0-15 HERE ;152. ; ERRS 16-31 HERE. ;154. ; ERRS 32-47 HERE. ;156. ; ERRS 48-63 HERE. ;158. ; ERRS 64-79 HERE. LASTER=160. ;LAST ERR # GOES HERE. LASTLN=161. ;LAST LUN ASSOSIATED WITH AN ERROR GOES HERE. CURLUN=162. ;CURRENT LUN GETS PUT HERE. V.TYPE=164. ;VARIABLE TYPE, SET BY TV?, TX? TA? (USED IN IL?). V.TEMP=166. ;TEMP AREA FOR TX? VARIABLE STORAGE. ;168. ; THIS AREA IS 4 WORDS LONG. ;170. ;172. V.ARRY=174. ; ADDRESS OF ARRAY STORED (FOR TX?). V.IDX =176. ; INDEX OF ARRAY STORED (FOR TX?). ;THESE ARE THE KEYWORDS WHICH TAKE ON VALUES IN OPEN/CLOSE ; Exception: Bit 3 in O.FLG2 used to correct list-directed input (nn, Sep-86) O.FLG1=178. ;FIRST FLAGWORD O.FLG2=180. ;SECOND FLAGWORD O.UNIT=182. ;UNIT NUMBER O.ACCS=184. ;ACCESS METHOD O.ASSO=186. ;ASSOCIATED VARIABLE NAME O.BLKS=188. ;PHYSICAL BLOCK SIZE O.BUFF=190. ;NUMBER OF BUFFERS O.CARR=192. ;CARRIAGE CONTROL TYPE O.DISP=194. ;FILE DISPOSITION O.ERR=196. ;ERROR CONDITION TRANSFER LABEL O.EXTE=198. ;FILE EXTENSION INCREMENT O.FORM=200. ;FILE FORMAT O.INIT=202. ;FILE ALLOCATION SIZE O.MAXR=204. ;NUMBER OF DIRECT ACCESS RECORDS O.NAME=206. ;FILE SPECIFICATION O.RECZ=208. ;DIRECT ACCESS RECORD LENGTH O.TYPE=210. ;FILE TYPE ; ----------(nn2)----------> FIXWD1=212. FIXWD2=214. FIXWD3=216. FIXWD4=218. FXFLGS=220. AOTSZ=FXFLGS+2 ; New upper limit. ; <----------(nn2)---------- ; ; (nn2) AOTSZ=O.TYPE+2 ;MUST BE EQUATED TO HIGHEST ADDRESS NAME!!! .ENDM .MACRO FBLOCK ;MAPPING MACRO OF RT-11 FILE DESCRIPTOR BLOCK ;A FILE DESCRIPTOR BLOCK IS INITIALLY ALLOCATED ZEROED ;ENDFILE SHOULD RE-ZERO BLOCK STATUS=0. ;STATUS WORD, BITS DEFINED LATER BUFRAD=2. ;ADDR OF START OF BUFFER BUFRSZ=4. ;SIZE OF BUFFER IN WORDS DEVNM=6. ;RAD50 DEVICE NAME FILNM=8. ;RAD50 FILE NAME, 2 WORDS EXTEN=12. ;RAD50 EXTENSION DATAD=14. ;ADDR OF DATA POINTET BUFNO=16. ;NUMBER OF BUFFERS, 1 BYTE CHNLNO=17. ;RT-11 CHANNEL NUMBER OF FILE ASSOCV=18. ;ADDR OF ASSOCIATED VARIABLE STPWD=ASSOCV ;HIGH LIMIT FOR DATA IN UNFORMATTED BLOCK RECSZ=20. ;RECORD SIZE CPOS=RECSZ ;RELATIVE POINTER IN UNFMTD BLOCK POINTING ;TO LAST USED POINTER WORD AT TOP OF BLOCK BLKNO=22. ;BLOCK NUMBER FILSZ=24. ;NUMBER OF BLOCKS FOR ENTER LASTBLK=FILSZ ;KEEP LAST WRITTEN BLOCK NUMBER HERE HIGHBLK=26. ;KEEP HIGHEST BLOCK WRITTEN HERE STAT2=28. ;ANOTHER STATUS WORD FILPPN=30. ; PPN OF THE FILE FOR RSTS RECMAX=32. ; THE NUMBER OF RECORDS IN THE FILE 18-OCT-79 FILESZ=34. ;*** SIZE OF FILE DESCRIPTOR ENTRY 18-OCT-79 ;STATUS BITS WRITE=100000 ;THE HAVE DONE WRITES TO FILE BIT RA=40000 ;FILE IS RANDOM ACCESS KB=20000 ;*********TEMPORARY. FILE OPEN TO KB ;*********SEE OPEN AND DUMPLA ROUTINES EOF=10000 ;END OF FILE REACHED OPNBIT=4000 ;FILE IS OPEN LP=2000 ;FILE OPEN TO LPT FMTD=1000 ;FILE IS FORMATTED OLD=400 ;OPEN FILE WITH LOOKUP TT=200 ;FILE OPEN TO CONSOLE TERMINAL RDO=100 ;FILE IS READ ONLY LSTFMT=40 ;FILE IS OPEN FOR LISTING FORMAT LISTMD=20 ;FORCE FOR LISTING DEVICE UNLIST=10 ;FORCED FOR FORTRAN OUTPUT SCR=4 ;DELETE FILE AFTER CLOSING MWRB=2 ;MODIFIED RANDOM BLOCK FLAG BUFBIT=1 ;DOUBLE BUFFERING FLAG BIT FOR BUFFER ; STAT2 BITS SPOOL=1 ;SPOOL ON CLOSE BIT APPND=2 ; OPEN FOR APPEND UNKNOW=4 ; OPEN FILE WITH UNKNOWN ATTRIBUTE RDBFWT=10 ; I/O IS READ BEFORE WRITE (FOR RSTS/E RIO). DELETE=20 ; DISP='DELETE' BIT 18-OCT-79 ASGND=40 ; LUN WAS ASSIGNED BY CALL ASSIGN .ENDM ; H.J. .LIST