Trailing-Edge
-
PDP-10 Archives
-
isi-saio_19830204
-
isi-sa10/stg.mac
There are 95 other files named stg.mac in the archive. Click here to see a list.
;<ISI-SA10>STG.MAC.5451 3-Feb-83 14:44:52 Edit by ISI-SA10
;
; SAIO Changes Copyright 1982, All Rights Reserved
; University of Southern California
;
;<5.ISI.MONITOR>STG.MAC.5450, 16-Jan-83 22:21:36, Edit by BILKIS
;#545 NUPDL increased to 400 until MONPDL problem resolved
;<5.ISI.MONITOR>STG.MAC.5350 6-Jan-83 21:05:46 Edit by JGOLDBERGER
;#535 Add DEFAD0
;<5.ISI.MONITOR>STG.MAC.5310, 4-Jan-83 16:53:04, Edit by CHASE
;#531 Make RSI's for INTNIB and INTNFI be RS's again.
;<5.ISI.MONITOR>STG.MAC.5220, 19-Dec-82 22:28:52, Edit by BILKIS
;#522 Conditionally make RFNTC (RFNTO counter) if ISIQ monitor
;<5.ISI.MONITOR>STG.MAC.5200, 16-Dec-82 18:49:29, Edit by BILKIS
;#520 Counters and flags for TCP/IP debugging (OBCNT,HBCNT,FT410)
;<5.ISI.MONITOR>STG.MAC.5010 17-Nov-82 03:09:34 Edit by JGOLDBERGER
;#501 v5 MultiNet
;
;#470 Increase TCPDXI & TCPRX0 (default retransmission) to ^D10 seconds
;
;#460 TM78 support obsolesced by DEC for Rel 5
;
;#437 Change Ournam to be "LOCAL"
;
;#350 BA10 support
;
;#341 Soroc/Televideo-950 terminal types
;
;#261 Getok% parameters for ttmsg%
;
;#233 DM1520, Fox 1100, Hazeltine 1500, Tek 4025, Winning Tec
; terminal types
;
;#212 Access to spooled device getok%
;
;#211 Class time support
;
;#167 Guarantee minimum number of magtape drives on startup
;
;#163 Increase addressable disk space
;
;#162 Increase NNAMES (Max number of subsystem names) to 80
;
;#157 Penguin support
;
;#156 Datamedia terminal type
;
;#112 Obsolesced by BBN edits to Rel 5/NCP sleep time stuff
;
;#53 QM1 support - removed
;
;#47 JOBACT table
;
;#43 Add HSYST5 for IMP Halt data
;
;#36 Rfnm table parameters
;
;#26 Add sa10 tapes
;
;#25 Add sa10 disks
;
;#14 SWPSTR holds a pointer to the swapping structure SDB
;
;[BBNF]<TAPPAN.NEW>STG.MAC.22, 2-Aug-82 15:18:58, Edit by: TAPPAN
; Add OLDSLD, OLDIDL back
;[BBNF]<TAPPAN.NEW>STG.MAC.21, 27-Jul-82 16:43:10, Edit by: TAPPAN
; Add HOSTPN, LOADMODULE HSTINI
;[BBNF]<TAPPAN.NEW>STG.MAC.20, 23-Jul-82 08:45:37, Edit by: TAPPAN
; Added RFN8TO
;[BBNF]<TAPPAN.NEW>STG.MAC.19, 16-Jul-82 14:06:42, Edit by: EONEIL
;Added NBHLD, #forks in balset wait, deleted OLDSLD and OLDIDL
;[BBNF]<TAPPAN.NEW>STG.MAC.17, 29-Jun-82 10:45:17, Ed: TAPPAN
; TEMP ADD OLDSLD AND OLDIDL
;REL5:<TAPPAN.NEW>STG.MAC.15 25-Jun-82 14:06:43, Edit by TAPPAN
; Remove TELENET, IMP2DV stuff for good.
; Take MNET stuff out from under conditionals
;[BBNF]<TAPPAN.NEW>STG.MAC.13, 18-Jun-82 10:00:55, Edit by TAPPAN
; Add 'DEFHDR's to label DEFWRD sets
;REL5:<TAPPAN.NEW>STG.MAC.11 15-Jun-82 12:04:17, Edit by TAPPAN
; Add RFNTSZ, RFNTAB
;<TAPPAN.NEW>STG.MAC.9, 28-Apr-82 09:02:22, Edit by TAPPAN
; Added Bitgraph terminal type (like Vt52 except bigger)
;<TAPPAN.NEW>STG.MAC.5, 10-Apr-82 14:07:00, Edit by TAPPAN
; Rename CNTPHY -> NFEPHY (and associated variables)
;<BBN-5-MONITOR.FT3>STG.MAC.4, 3-May-82 17:18:12, Edit by RBASCH
; Fix new DEC code for PI levels 5 and 6 - bugcheck when none
; of the service routines recognizes the interrupt as its own
;<BBN-5-MONITOR>STG.MAC.30, 29-Apr-82 11:55:58, Edit by TAPPAN
; FIX ERASE TO END OF LINE FUNCTION ON SCOPTB
;<TAPPAN.4>STG.MAC.14, 28-Feb-82 18:57:07, Edit by TAPPAN
; Change RS STATZZ,0 -> RS STATZZ,1 so USGJFN doesn't get clobbered
;<BBN-4-MONITOR>STG.MAC.4024, 21-Feb-82 16:32:27, Edit by TAPPAN
; Merge in some internet changes
;<BBN-5-MONITOR>STG.MAC.9, 22-Jan-82 17:55:42, Edit by TAPPAN
; Move DEC's LCSSEC to section 8 to avoid conflict with Internet
;<TAPPAN.4>STG.MAC.7, 7-Oct-81 17:27:22, Edit by TAPPAN
; merge in BBNBYT, CLSOVP variables
;<BBN-4-MONITOR>STG.MAC.4015, 25-Aug-81 11:48:21, Edit by TAPPAN
; 100: Added CHAOS variables
;<BBN-4-MONITOR>STG.MAC.4014, 12-Aug-81 10:39:45, Edit by TAPPAN
; Temporarily pushed the NCT's up a few words to try and
; catch whatever is clobbering the output Q's
;[BBND]<BBN-4-MONITOR>STG.MAC.4012, 20-Jul-81 10:47:58, Ed: RBASCH
;ADDED CLSCAP
;<BBN-4-MONITOR>STG.MAC.4012, 16-Jul-81 12:58:59, Edit by TAPPAN
; ADDED DSTLOC, TABSEC - move DST to TABSEC
;[BBND]<NEW-SCHED-MONITOR>STG.MAC.7, 2-Jun-81 15:46:49, Ed: EONEIL
;ADDED JOBCAP
;[BBND]<NEW-SCHED-MONITOR>STG.MAC.6, 7-May-81 17:53:45, Ed: RBASCH
;ADDED CLSJLM, CLSFLG, CLSTYP FOR JOB-BASED SCHEDULING
;[BBND]<TP-MONITOR>STG.MAC.1, 21-Jan-81 14:20:21, Ed: EONEIL
;ADDED CTITNT, CONTNT IN JSB FOR TELENET CONNECT TIME ACCOUNTING
;[BBND]<STRIPPED-MONITOR>STG.MAC.3, 19-Jan-81 16:09:42, Ed: JDELSIGNORE
;STRIPPED OUT OLD TELENET LINE ACCOUNTING
;[BBND]<MERGE.NEW>STG.MAC.3 17-Oct-80 12:41:25, Edit by BTOMCZAK
;Make OFNLEN resident to avoid page fault in scheduler context
;[BBND]<TCP-BBN-4-MONITOR>STG.MAC.4011, 29-Sep-80 11:02:36, Ed: EONEIL
;REMOVED NBSWP AND NBWT (HAD NOT BEEN SUPPORTED). LEFT SKDFIL, ALSO
;NOT CORRECT, BUT HOLDS POSITION FOR SYSTAT TABLES.
; SETHIQ becomes SETSPQ
; UPD ID= 544, SNARK:<5.MONITOR>STG.MAC.143, 16-Mar-82 20:18:58 by PAETZOLD
;TCO 5.1756 - Increase NHOSTS. Grumble. Grumble.
; UPD ID= 498, SNARK:<5.MONITOR>STG.MAC.142, 4-Mar-82 23:23:45 by PAETZOLD
;TCO 5.1745 - Increase size of DTESKP
; UPD ID= 474, SNARK:<5.MONITOR>STG.MAC.141, 12-Feb-82 15:21:21 by GRANT
;TCO 5.1729 - Don't load NSPINT anymore
; UPD ID= 473, SNARK:<5.MONITOR>STG.MAC.140, 12-Feb-82 09:32:08 by MILLER
;Fix typeo in previous edit.
; UPD ID= 471, SNARK:<5.MONITOR>STG.MAC.139, 11-Feb-82 16:50:09 by MILLER
;TCO 5.1728. Fix PI 6 code and add stacks and storage for other PI levels
; UPD ID= 436, SNARK:<5.MONITOR>STG.MAC.138, 22-Jan-82 16:50:43 by MURPHY
;TCO 5.1697 - XSSEV%, etc. Add PATLEV, DMSLEV.
; UPD ID= 435, SNARK:<5.MONITOR>STG.MAC.137, 22-Jan-82 15:41:05 by PAETZOLD
;TCO 5.1699 - Add VT125 and VK100 support to the monitor
; UPD ID= 433, SNARK:<5.MONITOR>STG.MAC.136, 22-Jan-82 12:03:07 by WALLACE
;TCO 5.1558 - Correct computation that tests whether location of PSB
; variables and location of UDPL conflict
; UPD ID= 427, SNARK:<5.MONITOR>STG.MAC.135, 21-Jan-82 12:37:58 by MILLER
;TCO 6.1054. ADD .GOATJ FUNCTION OF ACJ
; UPD ID= 425, SNARK:<5.MONITOR>STG.MAC.134, 20-Jan-82 19:24:10 by PAETZOLD
;TCO 5.1684 - Make OFNLEN resident
; UPD ID= 383, SNARK:<5.MONITOR>STG.MAC.133, 8-Jan-82 13:52:04 by TORREY
;TCO 5.1659 - INCREASE SNOOP PAGES FROM 8 TO ^D12
; UPD ID= 359, SNARK:<5.MONITOR>STG.MAC.132, 13-Dec-81 10:47:33 by GRANT
;TCO 5.1636 - add SEGSZ
; UPD ID= 349, SNARK:<5.MONITOR>STG.MAC.131, 9-Dec-81 23:11:56 by SOUTH
;TCO 5.1633 - Add block of variables for dte timer test.
; UPD ID= 339, SNARK:<5.MONITOR>STG.MAC.130, 3-Dec-81 11:55:57 by GRANT
;More or previous edit - fix the second table
; UPD ID= 337, SNARK:<5.MONITOR>STG.MAC.129, 3-Dec-81 10:38:08 by GRANT
;TCO 5.1624 - Increase reserved TTY types from 4 to 20
; UPD ID= 314, SNARK:<5.MONITOR>STG.MAC.128, 7-Nov-81 13:20:08 by PAETZOLD
;TCP 5.1610 - Force NTTMCB off if DCN is off
; UPD ID= 256, SNARK:<5.MONITOR>STG.MAC.127, 13-Oct-81 10:55:14 by MURPHY
;TCO 5.1570 - Fix bug in utilization computation.
; UPD ID= 242, SNARK:<5.MONITOR>STG.MAC.126, 4-Oct-81 23:44:31 by PAETZOLD
;TCO 5.1554 - ADD SPTO3
; UPD ID= 239, SNARK:<5.MONITOR>STG.MAC.125, 2-Oct-81 13:31:51 by MURPHY
;REFINE PREVIOUS
; UPD ID= 206, SNARK:<5.MONITOR>STG.MAC.124, 22-Sep-81 17:28:14 by MURPHY
;TCO 5.1514 - INCREASE AMOUNT OF RES FREE MAINTAINED BY JOB 0
; UPD ID= 190, SNARK:<5.MONITOR>STG.MAC.123, 17-Sep-81 09:27:58 by GRANT
;Edit UPD ID=152 should say TCO 5.1490 not 5.1409
;Make AKLSTL a little bigger
; UPD ID= 183, SNARK:<5.MONITOR>STG.MAC.122, 15-Sep-81 16:53:47 by SCHMITT
;TCO 4.1.1051 - Include USGMUP
; UPD ID= 157, SNARK:<5.MONITOR>STG.MAC.121, 9-Sep-81 10:08:22 by PAETZOLD
;TCO 5.1494 - Increase size of TRAPSK
; UPD ID= 152, SNARK:<5.MONITOR>STG.MAC.120, 8-Sep-81 17:29:15 by GRANT
;Needed for TCO 5.1490 - Add LLSRVQ, LSTLLS, AKLSTL, AND ACKLST
; UPD ID= 131, SNARK:<5.MONITOR>STG.MAC.119, 30-Aug-81 20:08:37 by PAETZOLD
;More of TCO 5.1461
; UPD ID= 129, SNARK:<5.MONITOR>STG.MAC.118, 28-Aug-81 18:51:18 by PAETZOLD
;TCO 5.1461 - Add MMAPWD
; UPD ID= 128, SNARK:<5.MONITOR>STG.MAC.117, 27-Aug-81 20:15:47 by PAETZOLD
;change TCO 5.1010X to TCO 5.1473
; UPD ID= 117, SNARK:<5.MONITOR>STG.MAC.116, 23-Aug-81 13:31:16 by PAETZOLD
;TCO 5.1010X - ADD NCPLPC
; UPD ID= 103, SNARK:<5.MONITOR>STG.MAC.115, 17-Aug-81 11:18:11 by ZIMA
;TCO 5.1458 - Change LOADMODULEs for MFLIN/MFLOUT for Autopatch consistency.
; UPD ID= 73, SNARK:<5.MONITOR>STG.MAC.114, 24-Jul-81 05:24:15 by PAETZOLD
;TCO 5.1382 - Create dummy BLKASG if no decnet so sysdpy works
; UPD ID= 65, SNARK:<5.MONITOR>STG.MAC.113, 23-Jul-81 10:45:07 by PAETZOLD
;More of TCO 5.1333 - yet another bad pointer
;Remove TCO 5.1302 as it is no longer needed
; UPD ID= 61, SNARK:<5.MONITOR>STG.MAC.112, 22-Jul-81 11:26:00 by MURPHY
;TCO 5.1428 - HPSWRN
; UPD ID= 27, SNARK:<5.MONITOR>STG.MAC.111, 13-Jul-81 14:09:50 by GRANT
;Make LSTTMR resident - now used in NSPTST
; UPD ID= 24, SNARK:<5.MONITOR>STG.MAC.110, 13-Jul-81 08:26:03 by GRANT
;More of previous edit
; UPD ID= 12, SNARK:<5.MONITOR>STG.MAC.107, 9-Jul-81 17:53:35 by GRANT
;Increase resident free space for DECnet
; UPD ID= 2301, SNARK:<5.MONITOR>STG.MAC.106, 6-Jul-81 16:49:29 by MURPHY
;COMMENTS AT FKBSPW, ETC.
; UPD ID= 2284, SNARK:<5.MONITOR>STG.MAC.105, 1-Jul-81 21:10:56 by PAETZOLD
;TCO 5.1380 - Make SYSERR use resident free space. Increase BUGPLN
; Remove SEBFRE, SEBEFE, SEBBSZ, SEBBFR, SEBFCT, SEBRLQ
; UPD ID= 2274, SNARK:<5.MONITOR>STG.MAC.104, 30-Jun-81 11:57:49 by GRANT
;Make LSTINT resident - now used in NSPTST
; UPD ID= 2264, SNARK:<5.MONITOR>STG.MAC.103, 26-Jun-81 18:07:14 by MURPHY
;TCO 5.1376
; UPD ID= 2227, SNARK:<5.MONITOR>STG.MAC.102, 19-Jun-81 13:47:11 by MILLER
;TCO 6.1021. ADD TLAB14
; UPD ID= 2206, SNARK:<5.MONITOR>STG.MAC.101, 17-Jun-81 15:17:42 by PAETZOLD
;Yet more of TCO 5.1333 Fix bad pointer and move location of EPTGBP
; UPD ID= 2169, SNARK:<5.MONITOR>STG.MAC.100, 10-Jun-81 15:47:09 by MURPHY
;FLUSH SCDRQ
; UPD ID= 2164, SNARK:<5.MONITOR>STG.MAC.99, 10-Jun-81 09:52:53 by PAETZOLD
;More of TCO 5.1333 Change some of the OWGBP pointers
; UPD ID= 2160, SNARK:<5.MONITOR>STG.MAC.98, 9-Jun-81 17:08:08 by PAETZOLD
;TCO 5.1333 ADD DATA FOR OWGBP UCODE
; UPD ID= 2133, SNARK:<5.MONITOR>STG.MAC.97, 7-Jun-81 21:40:44 by GRANT
;ADD LSTTMR
; UPD ID= 2083, SNARK:<5.MONITOR>STG.MAC.96, 26-May-81 19:53:19 by GRANT
;INNSPI
; UPD ID= 2076, SNARK:<5.MONITOR>STG.MAC.95, 25-May-81 21:48:49 by GRANT
;ADD NSINAC AND LSTINT
; UPD ID= 1923, SNARK:<5.MONITOR>STG.MAC.94, 1-May-81 11:51:27 by PAETZOLD
;More of TCO 5.1301 add GETOK function for subsystem (compiler) tracking
; UPD ID= 1920, SNARK:<5.MONITOR>STG.MAC.93, 1-May-81 11:16:19 by PAETZOLD
;TCO 5.1301 add SCOUNT table for subsystem use counts
; UPD ID= 1832, SNARK:<5.MONITOR>STG.MAC.92, 17-Apr-81 14:23:31 by MURPHY
;REVISE SENDALL LOGIC
; UPD ID= 1783, SNARK:<5.MONITOR>STG.MAC.91, 3-Apr-81 16:32:17 by GRANT
;MAKE SOME NSP COUNTER TABLES RESIDENT
; UPD ID= 1776, SNARK:<5.MONITOR>STG.MAC.90, 27-Mar-81 14:50:22 by GRANT
;TCO 5.1277 - conditionalize the linking of PHYM2
; UPD ID= 1760, SNARK:<5.MONITOR>STG.MAC.89, 24-Mar-81 10:33:23 by GRANT
;FIX NODTSZ CALCULATION
; UPD ID= 1738, SNARK:<5.MONITOR>STG.MAC.88, 19-Mar-81 12:04:44 by GRANT
;INNSPT,NODTSZ
; UPD ID= 1730, SNARK:<5.MONITOR>STG.MAC.87, 19-Mar-81 08:39:14 by WACHS
;TCO 5.1272 DEFINE DIAGWT
; UPD ID= 1709, SNARK:<5.MONITOR>STG.MAC.86, 16-Mar-81 11:49:41 by LYONS
; FIX UNVECTORED INTERRUPT CODE
; UPD ID= 1704, SNARK:<5.MONITOR>STG.MAC.85, 16-Mar-81 11:40:18 by MURPHY
;NDTEMQ
; UPD ID= 1572, SNARK:<5.MONITOR>STG.MAC.84, 23-Feb-81 11:48:44 by GRANT
;SNTLKF,SNTLOK,NSSNTQ - for DECnet
; UPD ID= 1529, SNARK:<5.MONITOR>STG.MAC.83, 6-Feb-81 17:11:10 by MURPHY
;SPTO2
; UPD ID= 1525, SNARK:<5.MONITOR>STG.MAC.82, 6-Feb-81 12:47:04 by ZIMA
;TCO 5.1258 - remove IO dump buffers to recover unused address space.
; UPD ID= 1515, SNARK:<5.MONITOR>STG.MAC.81, 4-Feb-81 10:29:28 by GRANT
;INCREASE BIGNOD TO SUPPORT THE ENGINEERING NETWORK
; UPD ID= 1510, SNARK:<5.MONITOR>STG.MAC.80, 2-Feb-81 15:25:55 by GRANT
;Make NSBYTS and NSMSGS tables resident
; UPD ID= 1499, SNARK:<5.MONITOR>STG.MAC.79, 26-Jan-81 16:51:08 by ENGEL
;GET RID OF SOME OF THE LCS STUFF
; UPD ID= 1459, SNARK:<5.MONITOR>STG.MAC.78, 20-Jan-81 17:36:29 by MURPHY
;TQLNQ
; UPD ID= 1409, SNARK:<5.MONITOR>STG.MAC.77, 6-Jan-81 15:02:55 by MURPHY
;MAKE CERTAIN NSP VARIABLES RESIDENT
; UPD ID= 1365, SNARK:<5.MONITOR>STG.MAC.76, 18-Dec-80 10:17:09 by WACHS
; UPD ID= 1346, SNARK:<5.MONITOR>STG.MAC.75, 12-Dec-80 09:49:10 by GRANT
;TCO 5.1213 - Increase swappable free space allocation for DECnet
; UPD ID= 1343, SNARK:<5.MONITOR>STG.MAC.74, 12-Dec-80 09:05:10 by GRANT
;Add DTEEND for resident free space debugging
;TCO 5.1206 change parameters for rp07, load PHYM78
; UPD ID= 1331, SNARK:<5.MONITOR>STG.MAC.73, 1-Dec-80 17:33:05 by LYONS
;Add a page for KS's to do skip i/o functions to
; UPD ID= 1314, SNARK:<5.MONITOR>STG.MAC.72, 25-Nov-80 16:31:45 by GRANT
;Add NSP Node Counter Tables
; UPD ID= 1287, SNARK:<5.MONITOR>STG.MAC.71, 18-Nov-80 14:40:19 by OSMAN
;tco 5.1189 - make entry vector two words
; UPD ID= 1275, SNARK:<5.MONITOR>STG.MAC.70, 14-Nov-80 17:54:52 by MURPHY
;LFORKX
; UPD ID= 1193, SNARK:<5.MONITOR>STG.MAC.69, 25-Oct-80 12:14:23 by HALL
;TCO 5.1180 -- Move DST to non-zero section
; DEFINE DST CONDITIONALLY ON EXADF
; DEFINE DSTLOC
; UPD ID= 1184, SNARK:<5.MONITOR>STG.MAC.68, 21-Oct-80 14:42:34 by ENGEL
;MOVE MCBDTE
; UPD ID= 1173, SNARK:<5.MONITOR>STG.MAC.67, 20-Oct-80 10:26:48 by ENGEL
;ADD LOADMODULE FOR CISRV AND LCSSRV UNTIL WE DECIDE WHAT NEEDS TO BE DONE
; UPD ID= 1134, SNARK:<5.MONITOR>STG.MAC.66, 6-Oct-80 15:49:47 by GRANT
;Add dummy entry point .NTMAN:: for non-DECnet assembly
; UPD ID= 1070, SNARK:<5.MONITOR>STG.MAC.65, 30-Sep-80 14:25:45 by GRANT
;TCO 5.1161 - Increase size of, and add symbol for, KMC's stack
; UPD ID= 1052, SNARK:<5.MONITOR>STG.MAC.64, 26-Sep-80 11:17:07 by GRANT
;Add NODMAP, BIGNOD, and NMAPLK - the node name mapping table, its size, and lock
; UPD ID= 1050, SNARK:<5.MONITOR>STG.MAC.63, 25-Sep-80 17:35:39 by ENGEL
;ADD NEWNOD
; UPD ID= 989, SNARK:<5.MONITOR>STG.MAC.62, 4-Sep-80 18:37:58 by ENGEL
;ADD TABSEC FOR DST,CST, ETC.
; UPD ID= 976, SNARK:<5.MONITOR>STG.MAC.61, 29-Aug-80 08:46:06 by ENGEL
;CHANGE LCSMEM TO BE SET BY KLPRE
; UPD ID= 970, SNARK:<5.MONITOR>STG.MAC.60, 25-Aug-80 16:30:28 by ENGEL
;TCO 5.1136 - ADD DEVLKK
; UPD ID= 952, SNARK:<5.MONITOR>STG.MAC.59, 22-Aug-80 15:54:16 by ENGEL
; UPD ID= 942, SNARK:<5.MONITOR>STG.MAC.57, 20-Aug-80 17:54:12 by MURPHY
;ULLCZQ
; UPD ID= 941, SNARK:<5.MONITOR>STG.MAC.56, 20-Aug-80 17:00:36 by ENGEL
;TCO #5.1136 - ADD THE NEW LOCK STUFF
; UPD ID= 923, SNARK:<5.MONITOR>STG.MAC.54, 20-Aug-80 09:51:18 by MURPHY
;REMOVE FILNSP
; UPD ID= 917, SNARK:<5.MONITOR>STG.MAC.53, 19-Aug-80 14:10:51 by MURPHY
;Change legal mode mask for DCN:, SRV:
; UPD ID= 908, SNARK:<5.MONITOR>STG.MAC.52, 18-Aug-80 21:01:35 by LYONS
;Increase the size of the host name table, as it can overflow
; UPD ID= 906, SNARK:<5.MONITOR>STG.MAC.51, 18-Aug-80 13:02:42 by LYONS
;More of TCO 5.1062, add alternate swap address to force verification
;of the monitor as it swaps out.
; UPD ID= 897, SNARK:<5.MONITOR>STG.MAC.50, 14-Aug-80 10:30:38 by LYONS
;TCO 5.1062 add ERRSWP as a flag for an error in swapping a critical page,
;and bughlt later, after the bat block is updated.
; UPD ID= 894, SNARK:<5.MONITOR>STG.MAC.49, 14-Aug-80 10:23:09 by MURPHY
;Move in EPT definitions from DTESRV FOR DTE20
; UPD ID= 889, SNARK:<5.MONITOR>STG.MAC.48, 13-Aug-80 18:10:51 by MURPHY
;FEDBSW
; UPD ID= 879, SNARK:<5.MONITOR>STG.MAC.47, 12-Aug-80 16:16:21 by MURPHY
;NPRIVP
; UPD ID= 848, SNARK:<5.MONITOR>STG.MAC.46, 7-Aug-80 10:22:36 by ENGEL
;increase bytbuf to 210
; UPD ID= 813, SNARK:<5.MONITOR>STG.MAC.44, 30-Jul-80 11:16:01 by MURPHY
;ADD WEFLAG, MOVE DBUGSW, DCHKSW, EDDTF TO RSDAT
; UPD ID= 806, SNARK:<5.MONITOR>STG.MAC.43, 29-Jul-80 09:46:36 by HALL
;MOVE FFF TO POSTLD
; UPD ID= 799, SNARK:<5.MONITOR>STG.MAC.42, 24-Jul-80 15:04:04 by HALL
;MOVE INITIALIZATION OF DATA IN RSVAR FROM SYSGO1. PUT DATA IN RSDAT
;AND INITIALIZE AT ASSEMBLY TIME
; UPD ID= 791, SNARK:<5.MONITOR>STG.MAC.41, 23-Jul-80 20:30:25 by MURPHY
;TNETRQ
; UPD ID= 783, SNARK:<5.MONITOR>STG.MAC.40, 23-Jul-80 11:32:45 by HALL
;CLEAN UP COMMENTS FROM WRITE-PROTECTING PROJECT
; UPD ID= 779, SNARK:<5.MONITOR>STG.MAC.39, 23-Jul-80 10:50:25 by OSMAN
;tco 5.1109 - Add PDVS
; UPD ID= 775, SNARK:<5.MONITOR>STG.MAC.38, 22-Jul-80 16:35:34 by HALL
;CHANGES TO RESIDENT FREE SPACE: MAKE POOL NUMBERS START WITH 1
; IN ORDER TO DETECT ZEROED POOL NUMBER IN FREE SPACE
; UPD ID= 752, SNARK:<5.MONITOR>STG.MAC.37, 11-Jul-80 15:56:42 by DBELL
;TCO 5.1102 - INCREASE BTBMAX SO SINGLE UNIT RP20 WORKS FOR MODEL A'S
; UPD ID= 711, SNARK:<5.MONITOR>STG.MAC.36, 30-Jun-80 09:48:30 by ENGEL
;MAKE .RENSP 2 AGAIN (DONE BECAUSE OF THE 2102 PANIC)
;TEMPORARY - MAKE RESBTB PAGE ALIGNED SO IT CAN BE WRITE-PROTECTED
; UPD ID= 701, SNARK:<5.MONITOR>STG.MAC.34, 26-Jun-80 09:33:05 by LYONS
;Cycle the ARPAnet after a power fail to be sure we have updated info
; UPD ID= 664, SNARK:<5.MONITOR>STG.MAC.33, 16-Jun-80 17:23:40 by KONEN
;TCO 5.1063 - REMOVE PS: AS NAME OF PRIMARY STRUCTURE
; UPD ID= 617, SNARK:<5.MONITOR>STG.MAC.31, 9-Jun-80 16:07:08 by HALL
;FIX THE FEFLG CHANGES -- MAKE BOTH KL AND KS VERSIONS BE IN RSVAR
; UPD ID= 615, SNARK:<5.MONITOR>STG.MAC.30, 7-Jun-80 18:45:00 by KONEN
; UPD ID= 608, SNARK:<5.MONITOR>STG.MAC.29, 5-Jun-80 15:57:35 by KONEN
;Put FEFLG into writable area for KS code in PROINI
; UPD ID= 607, SNARK:<5.MONITOR>STG.MAC.28, 5-Jun-80 13:36:36 by ENGEL
; UPD ID= 604, SNARK:<5.MONITOR>STG.MAC.26, 5-Jun-80 08:36:27 by ENGEL
; UPD ID= 599, SNARK:<5.MONITOR>STG.MAC.24, 4-Jun-80 14:14:39 by ENGEL
;ADD BLKTRN FOR THE MEMORY DRIVER BLOCK TRANSFER SERVICE
; UPD ID= 589, SNARK:<5.MONITOR>STG.MAC.23, 3-Jun-80 08:16:53 by ENGEL
;MAKE SKDPDL LONGER
; UPD ID= 583, SNARK:<5.MONITOR>STG.MAC.22, 2-Jun-80 10:41:23 by ENGEL
;MAKE .RESNP EQUAL TO 0 (HIGHEST LEVEL SCHEDULAR CONTEXT)
; UPD ID= 571, SNARK:<5.MONITOR>STG.MAC.21, 30-May-80 09:03:31 by GRANT
;Move KLILNO from RESCD to RSVAR - needed for write protecting the
;resident monitor
; UPD ID= 570, SNARK:<5.MONITOR>STG.MAC.20, 30-May-80 08:58:22 by ENGEL
; UPD ID= 566, SNARK:<5.MONITOR>STG.MAC.19, 28-May-80 20:26:58 by ENGEL
;MAKE MCBDTE RESIDENT
; UPD ID= 513, SNARK:<5.MONITOR>STG.MAC.18, 12-May-80 11:07:12 by ENGEL
;MOVE LCSSEC OUT OF SMFLG CONDITIONAL
; UPD ID= 512, SNARK:<5.MONITOR>STG.MAC.17, 9-May-80 12:47:00 by ENGEL
;CHANGE MMALRM
; UPD ID= 511, SNARK:<5.MONITOR>STG.MAC.16, 8-May-80 20:15:58 by ENGEL
;CHANGE MEMHI TO REFLECT THE MF10
; UPD ID= 500, SNARK:<5.MONITOR>STG.MAC.15, 1-May-80 15:00:57 by GRANT
;TCO 5.1031 - Add GUDOBJ
; UPD ID= 488, SNARK:<5.MONITOR>STG.MAC.14, 29-Apr-80 14:36:22 by LYONS
;Move more ARPANET cells into RSADT
; UPD ID= 453, SNARK:<5.MONITOR>STG.MAC.13, 21-Apr-80 18:27:26 by LYONS
;Move GETOK, ARAPNET cells into RSDAT from RSCOD
; UPD ID= 447, SNARK:<5.MONITOR>STG.MAC.12, 19-Apr-80 12:30:38 by KONEN
;Write enable PRELDF
; UPD ID= 446, SNARK:<5.MONITOR>STG.MAC.11, 18-Apr-80 09:17:28 by ENGEL
; UPD ID= 440, SNARK:<5.MONITOR>STG.MAC.10, 13-Apr-80 15:13:45 by OSMAN
;Add CTTAB; remove FKCTTY
; UPD ID= 423, SNARK:<5.MONITOR>STG.MAC.9, 11-Apr-80 13:51:40 by HALL
;CHANGES TO WRITE-PROTECT THE RESIDENT MONITOR:
; INVOKE RSI MACRO FOR BUGXXX WORDS, FFF, SVDTRJ, DDT ENTRY VECTOR
; REMOVE CODE IN STARTUP TO INITIALIZE THESE LOCATIONS
; UPD ID= 417, SNARK:<5.MONITOR>STG.MAC.8, 11-Apr-80 09:18:58 by ENGEL
;ADD OURNOD
; UPD ID= 410, SNARK:<5.MONITOR>STG.MAC.7, 4-Apr-80 11:03:13 by LYONS
;ADD ACJ ENTRIES FOR ARPANET ACCESS AND DECNET ACCESS
; UPD ID= 408, SNARK:<5.MONITOR>STG.MAC.6, 3-Apr-80 17:03:10 by HALL
;CHANGES TO WRITE-PROTECT THE RESIDENT MONITOR:
; CREATE RESIDENT DATA FOR SECPOND PROTOCOL TYPEOUT (BUGMON, ETC.)
; CHANGE DTE DEFINITIONS TO CREATE RESIDENT STORAGE IN RSVAR
; MOVE TO RSVAR PSECT: CONOPG,SVDTRJ,DDT'S DATA VECTOR
; DO AN EXTRA IORST IN STARTUP CODE
; UPD ID= 368, SNARK:<4.1.MONITOR>STG.MAC.318, 26-Mar-80 11:08:50 by DBELL
;TCO 4.1.1119 - REARRANGE DISK DEFINITIONS TO HANDLE RP20 DISKS
; UPD ID= 382, SNARK:<5.MONITOR>STG.MAC.5, 27-Mar-80 10:24:04 by ENGEL
;FIX MEMHI
; UPD ID= 373, SNARK:<5.MONITOR>STG.MAC.4, 26-Mar-80 13:04:09 by ENGEL
;CHANGE MAXSEC TO 6
; UPD ID= 372, SNARK:<5.MONITOR>STG.MAC.3, 26-Mar-80 13:01:05 by ENGEL
;ADD MEMLO AND MEMHI
; UPD ID= 349, SNARK:<4.1.MONITOR>STG.MAC.317, 24-Mar-80 16:58:47 by ENGEL
;MAKE LCSMEM 0
; UPD ID= 348, SNARK:<4.1.MONITOR>STG.MAC.316, 24-Mar-80 16:30:54 by ENGEL
;PUT MEMBOT AND FRIENDS IN RSCOD
; UPD ID= 347, SNARK:<4.1.MONITOR>STG.MAC.315, 22-Mar-80 07:00:33 by ENGEL
;ADD MEMTOP,MEMBOT AND LCSMEM
; UPD ID= 346, SNARK:<4.1.MONITOR>STG.MAC.314, 21-Mar-80 16:18:08 by ENGEL
;ADD LCSSEC . LCS MEMORY DRIVER HAS SECTION 12
;MAKE CTYLNO BE IN RESIDENT DATA INSTEAD OF CODE
;MOVE CONOPG, DO IORST AT SYSLOD
; UPD ID= 170, SNARK:<4.1.MONITOR>STG.MAC.312, 20-Dec-79 15:21:07 by ENGEL
;ADD ERROR MESSAGE IF NTTBL IS GREATER THAN NTTBL1
; UPD ID= 133, SNARK:<4.1.MONITOR>STG.MAC.311, 13-Dec-79 10:53:31 by OSMAN
;Fix spelling
; UPD ID= 104, SNARK:<4.1.MONITOR>STG.MAC.310, 6-Dec-79 13:38:21 by DBELL
;TCO 4.1.1018 FOR R.ACE - REMOVE FCTFIL
; UPD ID= 36, SNARK:<4.1.MONITOR>STG.MAC.309, 28-Nov-79 10:58:37 by MILLER
;TCO 4.2582. ADD FKTIMW
; UPD ID= 20, SNARK:<4.1.MONITOR>STG.MAC.308, 27-Nov-79 13:36:59 by MILLER
;ADD LSTPFK
;<4.1.MONITOR>STG.MAC.307, 21-Nov-79 09:05:35, EDIT BY DBELL
;TCO 4.2574 - ADD PI5CNT
;<4.MONITOR>STG.MAC.305, 20-Nov-79 14:14:18, EDIT BY GRANT
;INCREASE MAXBLK, THE SWAPPABLE FREE SPACE USED BY NSP
;<4.MONITOR>STG.MAC.42, 7-Apr-78 10:49:03, EDIT BY MILLER
;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
; OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
;
;COPYRIGHT (C) 1976,1977,1978,1979 BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
SEARCH PROLOG,PHYPAR,SERCOD
TTITLE STG
IFN KLFLG,<
SEARCH PROKL>
IFN SMFLG,<
SEARCH PROKS>
IFG INETN,<
SEARCH INPAR> ; Only if we are including Internet
IFG TCPN,<
SEARCH TCPPAR> ; Only if we are including TCP
IFN MNET,<
SEARCH MNTPAR> ; if we are runninf Multinet
IFN SSAN,< ;#25 .
SEARCH MACSYM> ;#25 Only if SA10 is used
;PARAMETER-DEPENDENT STORAGE FOR ALL MODULES
EXT <PAGRST,PGRINI,TTINIT,SCDIN>
EXT <PI7P,PIAPR,PIINIT,PGRRST,SWPRST,PISC7,SCKATM>
SWAPCD ;SOME SWAP CODE HERE BEFORE FIRST RESCD
;MISCELANEOUS DEFINITIONS
DEFINE NDG (SYM,VAL)<
IFNDEF SYM,<
SYM==:VAL>>
DRSMDA==:30 ;MAX SIZE OF A DIR ON A MODEL A
NDG MNET,0 ; DefaulT no Multinet
NDG NETHSZ,^D23 ; Size of network hash tables, must be prime
NDG JSSTAT,0 ;DEFAULT TO NO JSYS STATS KEPT
NDG PIBITS,0 ;PI ACCOUNTING BITS FOR KL METER
; NOT USED ON OTHER PROCESSORS
NDG BUGSTF,0 ;BBN--DEFAULT TO NO BUGSTRINGS
; (IF USE, MAKE SURE THEY FOLLOW NRCOD PSECT)
NDG HIDSYM,1 ;SYMBOLS NOT IN MONITOR VAS
;USE /SYMSEG:PSECT:SYVAR IN LINK FILE IF OFF
;USE /SYMSEG:PSECT:INCOD IN LINK FILE IF ON
NDG CHAOS,0 ; 100: CHAOSNET
NDG EXADF,0 ;EXTENDED DIRECTORY FLAG
NDG NTTD10,0 ;NUMBER OF DC10 LINES
IFG DTFLG,<NDLL==:5> ;IF A FE PRESENT, MUST HAVE 5 DLS
IFE DTFLG,<NDLL==:0> ;IF NO FE PRESENT, NDLL=0
IFE DCN,<NTTMCB==:0> ;IF NO DECNET NO DECNET NVTS
NTTFE==:NDHL+NDLL ;NUMBER OF FE LINES
NDG NTTTVT,0 ; Number TCP lines
NDG NTTNVT,0 ; Number of NVT lines
NDG NTTCVT,0 ; number of chaosnet lines
;NUMBER OF LINES, INCLUDING LINE 0 FOR THE CTY
NDG NLINES,NTTFE+NTTMCB+NTTPTY+NTTD10+NTTTVT+NTTNVT+NTTDZ+NTTMLC+NTTCVT+1
IFG ACTLNS-NLINES,<ACTLNS==:NLINES> ;ADJUST VALUE AS APPROPRIATE
NDG DLSN,NTTD10 ;NUMBER OF DC LINES
NDG NTTBL,1 ;DEFAULT NUMBER BUFFERS PER LINE
NDG NTTBL1,2 ;# OF BUFFERS FOR "FAST" LINES
NDG NTTBF,ACTLNS*NTTBL1 ;NUMBER OF TTY BUFFERS
NDG TTSIZ,40 ;SIZE OF INDIVIDUAL TTY BUFFER (POWER OF 4)
NDG TTBSIZ,200 ;BIG BUFFER SIZE
NDG DSKN,1 ;DSK IS PRESENT (MANDATORY)
NDG RP10F,0 ;DISK TYPE IS RP10
NDG RH10F,0 ;RH10
NDG RH20F,1 ;RH20
NDG RH11F,0 ;RH11
NDG SSAN,0 ;#25 SA10
NDG SSADF,0 ;#25 SA10 disks
NDG SSATF,0 ;#26 SA10 tapes
NDG RP04F,1 ;RP04
NDG DRMN,0 ;DRUM IS PRESENT
NDG RS04F,0 ;DRUM TYPE IS RS04
NDG RC10F,0 ;DRUM TYPE IS RC10
NDG DTAN,0 ;NUMBER OF dectape units
NDG TM02F,1 ;TM02/TU16
IFN KLFLG,<
NDG DX20AF,1 ;DX20-A/TU70,71,72
NDG DX20BF,1 ;DX20-B/RP20
NDG TM78F,1 ;TM78/TU78
>
IFN SMFLG,<
NDG DX20AF,0 ;DX20-A/TU70,71,72
NDG DX20BF,0 ;DX20-B/RP20
NDG TM78F,0 ;TM78/TU78
>
NDG PCDPN,1 ;CARD PUNCH IS PRESENT BY DEFAULT
NDG PLTN,0 ; PHYSICAL Plotter exists
NDG PTPN,0 ; Paper tape punch exists
NDG PTRN,0 ; Paper tape reader exists
Ndg Qm1n,0 ;#53 QM1 shouldn't be here
Ndg PngN,0 ;#157 PNG (Penguin) exists
NDG VBCN,0 ;VB10C PRESENT
NDG NRVCPG,0 ;NUMBER OF PAGES TO RESERVE FOR VB10C
NDG DLXN,0 ;NUMBER OF UNITS ON DL10
NDG CMAN,0 ;NUMBER OF AYDIN DISPLAYS
NDG BBNN,0 ;BBN IMP10 IMP INTERFACE
NDG ANXN,0 ;DEC AN10 IMP INTERFACE
NDG NFEN,0 ; CHEAPNET DTE INTERFACES
%NETS==: BBNN+ANXN+NFEN ; Total number of interfaces
IFLE <^D8-%NETS>,<
PRINTX %Too many network interfaces to work with current code
>
;;; Default device address'
NDG ANX0,520 ; Default for 1st AN20
NDG IMP0,504 ; Default for 1st IMP10
NDG IMP1,500 ; Default for 2nd IMP10
NDG NFE0,DTE1 ; Default for 1st Cheapnet DTE
NDG IM2N,0 ;RCCNET INTERFACE
NDG MLCN,0 ;NUMBER OF PTIP LINES
IFG DLXN,<
NDG DLIBFP,<<DLXN+3>/4> ;# OF INPUT BUFFER AND CONTROL PAGES
NDG DLOBFP,<<DLXN+3>/4> ; " OUTPUT "
>;IFG DLXN
DMSMAX==:1050 ;LEGAL DMS JSYS'S ARE 1000-1050
PRAMAX==:200 ;MAXIMUM SIZE OF PRARG BLOCK
SYSDPT==:777740 ;DIRECTORY PROTECTION OF SYSTEM AND SUBSYS
SYSFPT==:777752 ;FILE PROTECTION DEFAULT FOR SUBSYS AND SYSTEM
PSNUM==:0 ;PUBLIC STR NUMBER
USRLH==:500000 ;LEFT HALF OF A 36 BIT USER NUMBER
.DFACT==:^D220100 ;DEFAULT ACCOUNT NUMBER
DEFINE LOADMODULE (A) <
IRP A,< EXTERNAL $'A>>
;section number definitions
NDG MSEC1,1 ;section 1- code
NDG DRSECN,2 ;section 2- directories
NDG IDXSEC,3 ;section 3- index table
NDG BTSEC,4 ;section 4- bit table
IFE SMFLG,<
NDG ANBSEC,5 ;section 5- arpanet buffers
>
NDG LCSSEC,^D8 ;SECTION 6 - LCS MEMORY DRIVER
NDG TABSEC,7 ;SECTION FOR TABLES
IFN SMFLG,<
NDG ANBSEC,0 ;so KS code doesn't break
>
NDG MNTSEC,ANBSEC ; Put Multinet stuff in teh same section as
; ArpaNet for now
NDG INTSEC,6 ; Section 6: Internet storage
NDG MAXSEC,^D8 ;max section number
MSEC1B==:<MSEC1>B17 ;DEFINE SECTION 1 PC FORMAT
;FORCE THE LOADING OF THE CORRECT MODULES
LOADMODULE <LDINIT,SCHED,PAGEM,FORK,MEXEC,GETSAV,SYSERR,COMND>
LOADMODULE <DEVICE,DIRECT,ENQ,FREE,FUTILI,GTJFN,IO,IPCF,JSYSA>
LOADMODULE <JSYSF,LOGNAM,LOOKUP,MSTR,SWPALC,DISC,FILMSC,MFLIN>
LOADMODULE <MFLOUT,DATIME,TIMER,EDDT,MDDT>
;CONDITIONALS TO LOAD PROPER REL FILE
IFNDEF PHYIOF,< PHYIOF==:0>
IFN DX20AF!DX20BF!RP04F!TM02F!TM78F,< PHYIOF==:1>
IFN SSAN,< PHYIOF==:1> ;#25 .
IFG PHYIOF,<
LOADMODULE PHYSIO
LOADMODULE DIAG
LOADMODULE POSTLD
LOADMODULE DSKALC
>
IFE EXADF,< LOADMODULE FILINI>
IFN EXADF,< LOADMODULE EFILIN>
IFG RH20F,< LOADMODULE PHYH2>
IFG RH11F,< LOADMODULE PHYH11>
IFG RP04F,< LOADMODULE PHYP4>
IFG SSAN,< LOADMODULE PHYSA> ;#25 SA10
IFG SSADF,< LOADMODULE PHYC1> ;#25 SA10: Disks
IFG SSATF,< LOADMODULE PHYSAT> ;#26 SA10: Tapes
IFG DRMN,<
IFE PHYIOF,<
IFG RS04F,< LOADMODULE RS04SV>
>
IFG PHYIOF&RS04F,< LOADMODULE PHYS4>
IFG RC10F,< LOADMODULE RC10SV>>
IFG CMAN,< LOADMODULE DSPLAY>
IFE SMFLG,<
IFE TCPN,<
IFE NETN,< LOADMODULE TTYSRV>
IFG NETN,< LOADMODULE TTYSNV>
>
IFN TCPN,< LOADMODULE TTYSTV>
>
IFN SMFLG,<
IFE NETN,< LOADMODULE TTYSSM>
IFN NETN,< LOADMODULE TTYASM>
>
IFG DTAN,< LOADMODULE DECTAP>
IFG FEN,< LOADMODULE FESRV>
IFG MTAN,<
MTDFDN==:4 ;DEFAULT MAGTAPE DENSITY (1600 BPI)
MTDFRS==:PGSIZ*1 ;DEFAULT RECORD SIZE IS 1000 WORDS
MTDFDM==:1 ;DEFAULT MAGTAPE DATA MODE IS CORE DUMP
MTDFPA==:0 ;DEFAULT MAGTAPE PARITY IS ODD
MTMXDN==:5 ;MAXIMUM DENSITY IS 6250 BPI
LOADMODULE MAGTAP
LOADMODULE TAPE
IFG DX20AF,<LOADMODULE PHYX2>
IFG DX20BF,<LOADMODULE PHYP2>
IFG TM78F,<LOADMODULE PHYM78>
IFG TM02F,<LOADMODULE PHYM2>>
IFN SMFLG,< LOADMODULE APRSSM>
IFE SMFLG,< LOADMODULE APRSRV>
IFG DTEN,< LOADMODULE DTESRV>
IFG DCN,< LOADMODULE <NSPSRV>>
IFN CHAOS,< LOADMODULE CHAOS> ; 100
IFN ATS,< LOADMODULE <FILATS,ATSSRV,NRMSRV>>
IFG KDPN,< LOADMODULE KDPSRV>
IFN SMFLG,< LOADMODULE DTESM>
IFG LPTN,<
IFE SMFLG, <LOADMODULE LINEPR>
IFN SMFLG, <LOADMODULE LINPSM>
>
IFE LPTN,<.LPINI::RET>
IFG PCDPN,< LOADMODULE CDPSRV>
IFG CDRN,<
IFN SMFLG,< LOADMODULE CDRSM>
IFE SMFLG, <LOADMODULE CDRSRV>>
IFG PLTN,< LOADMODULE PLT>
IFG PTPN,< LOADMODULE PTP>
IFG PTRN,< LOADMODULE PTR>
IFG VBCN,< LOADMODULE VBC>
IFG DLXN,< LOADMODULE DLX>
LOADMODULE MNETDV
LOADMODULE HSTINI
IFG NETN,< LOADMODULE MIMPDV
LOADMODULE MNETWK
IFG MLCN,< LOADMODULE MMLCDV>
> ; end IFG NETN
IFG ANXN+BBNN,<LOADMODULE 1822DV>
IFG ANXN,< LOADMODULE ANXPHY>
IFG BBNN,< LOADMODULE IMPPHY>
IFG NFEN,< LOADMODULE NFEPHY>
IFG INETN,< LOADMODULE INFREE
LOADMODULE INGWAY
LOADMODULE INCMP
LOADMODULE INGLUK
LOADMOUDLE INLOCK
LOADMODULE INPROC
LOADMODULE INQ
LOADMODULE INUQ
LOADMODULE INWAIT
> ; end ifg inetn
IFG TCPN,< LOADMODULE TCPBFR
LOADMODULE TCPBG
LOADMODULE TCPCRC
LOADMODULE TCPDG
LOADMODULE TCPIP
LOADMODULE TCPJS
LOADMODULE TCPPRC
LOADMODULE TCPMSC
LOADMODULE TCPOPT
LOADMODULE TCPPP
LOADMODULE TCPPZ
LOADMODULE TCPRA
LOADMODULE TCPRX
LOADMODULE TCPSTS
LOADMODULE TCPUSR
> ; end IFG TCPN
;RESIDENT STORAGE WHICH MUST BE DEFINED ON A PAGE BOUNDARY.
;THESE ARE ALL DEFINED FIRST AND MUST BE A MULTIPLE OF 512 WORDS
;EACH.
RS(ZROCOR,0) ;START OF STORAGE AREA TO CLEAR
RS(RESBTB,PGSIZ) ;TEMPORARY - RESIDENT FREE SPACE BITTABLE
RS(KIEPT,PGSIZ) ;EXECUTIVE PAGE TABLE
EP==:KIEPT/PGSIZ ;DEFINE PAGE NUMBER FOR FILDDT
RS(SKHWPT,PGSIZ) ;HW PAGE TABLE WHEN SCHED RUNNING
RS(MMAP,PGSIZ) ;MONITOR MAP
IFG DLXN,<
RS(DLBASE,PGSIZ*DLIBFP) ;RESIDENT PAGES FOR DL10
RS(DLOBUF,PGSIZ*DLOBFP)
>;IFG DLXN
IFN SMFLG,<RS(LPBUF,LPTN*PGSIZ)> ;LINEPRINTER BUFFER SPACE
IFN NETN,<
IFN SMFLG,<RS(NTBFIX,0)> ;NO INDEX PAGE FOR NET BUFFER SECTION
IFE SMFLG,<RS(NTBFIX,PGSIZ)> ;INDEX PAGE FOR NET BUFFER SECTION
>
IFN SSADF,<RS(CC1PGA,PGSIZ)> ;#25 Pg to read in pages being partly changed
IFN KDPN,<RS(KMCPAG,KDPN*PGSIZ)> ;A PAGE FOR EACH KDP(KMC11/DUP11)
IFN INETN,<RS(INTIX,PGSIZ)> ; Index page for Internet buffer section
IFE INETN,<INTIX==:0> ; If none
RS (BLKTRN,PGSIZ) ;LCS MEMORY DRIVER BLOCK TRANSFER PAGE
BLKTRP==:BLKTRN/PGSIZ ;DEFINE THE PAGE NUMBER
;THE READ AFTER WRITE VERIFICATION CODE NEEDS A PLACE TO READ DATA TO CHECK
;ECC. THE RH20 HAS HARDWARE TO USE LOCATION 0 FOR THIS, BUT THE RH11 NEEDS A
;PHYSICAL PAGE TO USE. THE RH20, WHEN WRITING TO LOCATION 0, WILL TRANSFER NO
;DATA, BUT REQUIRE THE MASBUSS TO MOVE THE BITS AND THE DISK WILL CHECK ECC.
;ON WRITES, DATA IS TAKEN FROM LOACTIONS 70-73 OF THE EPT (WHICH TOPS-20 KEEP
;AS 0).
IFN SMFLG,<RS(SKPPAG,PGSIZ)> ;PAGE TO IMPLEMENT RH11 SKIP FUNCTION
IFE SMFLG,<SKPPAG==:0> ;RH20 CAN DO IT TO PHYSICAL 0 AND GET IT RIGHT
;MEMORY MANAGEMENT DATA BASE
RS CST0,MAXCOR ;CORE STATUS TABLES
RS SPCRES,0 ;END OF SPECIAL RESIDENT PAGES.
;USED BY PAGEM CODE THAT
;UNLOCKS PAGES. PUT ALL
;SPECAIL PAGES (I.E. PAGE TABLES,
;UPT'S) BEFORE THIS DEFINITION
RS CST1,MAXCOR
RS CST2,MAXCOR
RS CST3,MAXCOR
IFN PHYIOF,<
RS CST5,MAXCOR ;**TEMP** UNTIL CSTONR MOVED
> ;END IFN PHYIOF
IFG <NOFN-^D500>,<NOFN==:^D500> ;MAX OF 500 OFNS
RS SPTO,NOFN ;OFN TABLE ONLY
RS SPTO2,NOFN ;MORE OFN DATA
IFN SPTDSW,< ;ONLY IF USING SPTLKB DEBUGING
RS SPTO3,NOFN ;SPTLKB DEBUGING TABLE
> ;END OF IFN SPTDSW
RS SPT,SSPT ;SPECIAL/SHARED PAGES TABLE
RS SPTH,SSPT
RS OSECTB,2 ;STORAGE OF ORIGINAL MSECTB WORDS FOR EDDT
RS SSECTB,2 ;NEW MSECTB WORDS FOR EDDT TO USE
RS TOTRC,1 ;TOTAL NUMBER REAL CORE PAGES
RS NRPMIN,1 ;MINIMUM VALUE OF NRPLQ
RS NRPLEV,1 ;HIGHEST NORMAL LEVEL OF NRPLQ
RS GCMINP,1 ;MIN PAGES NEEDED BY GC, = NRPMIN+NRPLEV
RS CGFLG,1 ;DEASSIGNED PAGES MAY EXIST IF .G. 0
RS NRPLQ,1 ;NUMBER OF PAGES ON REPLACABLE QUEUE
RS SRPLQ,1 ;SWAP REPLACABLE QUEUE TAIL,,HEAD
RS DRPLQ,1 ;DISK REPLACABLE QUEUE TAIL,,HEAD
RS NSPMQ,1 ;NUMBER OF PAGES ON SPECIAL MEM QUEUE
RS SPMQ,1 ;"SPECIAL" MEMORY QUEUE TAIL,,HEAD
RS SPMLCK,1 ;LOCK ON PROCESS CONTEXT MANIPULATION OF SPMQ
RS SPMONR,1 ;FORK WHICH OWNS SPMLCK
RS SPMTPG,1 ;PAGE FOR SCHED TEST RTN
RS SPMTIM,1 ;WATCHDOG TIME FOR SCHED TEST RTN
RS PI5CNT,1 ;NUMBER OF UNVECTORED PI 5 INTERRUPTS
IFE SMFLG,<
NMD16K==:<MAXCOR*PGSIZ+37777>/40000 ;MAX # MEM MODULES, 16K EACH
RS MEMTAB,<<NMD16K+^D35>/^D36> ;TABLE INDICATING INT/EXT MEM
> ;END IFN SMFLG
;SYSTEM RESIDENT JOB TABLES
RS JOBDIR,NJOBS ;ATTACHED DIRECTORY,,LOGIN DIRECTORY
RS JOBNAM,NJOBS ;JOB BITS,,SUBSYS NAME INDEX
NR JOBPNM,NJOBS ;JOB PROGRAM NAME
RS JOBRT,NJOBS ;JOB RUN TIME
RS JOBRTL,NJOBS ;JOB RUN TIME LIMIT
;DEFSTR JOBRTP,JOBRTL,35,23 ; Ptr to runtime limit blk
;DEFSTR TIMCNT,JOBRTL,12,13 ; # of clocks in use by job
RS JOBPT,NJOBS ;CONTROL TTY,,TOP FORK
Rs Jobact,Njobs ;#47 Last CPU activity time (TODCLK)
;QUOTA ENFORCEMENT TABLES
NR ALOC1,NOFN ;DIR # ,, OFN COUNT
NR ALOC2,NOFN ;COUNT OF PAGES LEFT
RS OFNLEN,NOFN ;ACTUAL END OF FILE
;GET FILE CACHE STORAGE
NDG FSMAX,20 ;MAX NUMBER OF ENTRIES IN CACHE
;FSN==:3 ;# OF WORDS PER ENTRY
NR FGLOCK,1 ;THE LOCK WORD
NR FSTTBL,FSMAX ;NUMBER OF ENTRIES
;TIME ZONE STORAGE
NR TIMZON,1 ;NUMBER OF HOURS LOCAL TIME LAGS GREENWICH
;MEMORY ERROR REPORTING STORAGE
RS ERRTBL,1 ;QUEUE HEADER
;ARCHIVE SYSTEM
RS IPPKFR,1 ; Flag word used to indicate ARCMSG
; waiting for a free packet (IPCF)
RS TPRCYC,1 ; Tape recycle time (max offline expiration)
RS ARRCYC,1 ; Archive tape recycle time
RS NRTWTS,1 ; Should waits for retrievals fail?
; non-0 implies fail rather than wait
;CLASS SCHEDULER STORAGE
RS MJBUSE,1 ;HIGHEST JOB IN USE
RS RDRTIM,1 ;TIME TO DO NEXT REORDER
RS UTLTIM,1 ;TIME TO COMPUTE UTILIZATION
RS UTLINT,1 ;INTERVAL TO COMPUTE NEXT UTIL
RS CLSTIM,1 ;#211 Time to do next CHKCLS/UPDCLS
RS USROTM,1 ;#211 USRTIM at last UPDCLS
RS JOBORT,NJOBS ;#211 Job runtime at last UPDCLS
RS OLDTOD,1 ;OLD TODCLK FOR NEWUTL
RS CLASSF,1 ;IF NON-ZERO, DOING CLASSY SCHEDULING
RS CLSCTL,1 ;CLASS CONTROL WORD
NDG MAXCLS,10 ;NUMBER OF CLASSES
RS CLSUTL,MAXCLS ;CLASS UTILIZATION
RS JOBSHM,1 ;JOB SHARE MIN (PORTION OF CPU) FOR JOBLIM
RS JOBCLS,NJOBS ;CLASS PER JOB
RS JOBUTL,NJOBS ;JOB UTILIZATION
RS JOBIRT,NJOBS ;JOB INCREMENTAL RUN-TIME
RS JOBCAP,NJOBS ;JOB CAP ON CDIST (1.0 MEANS "NO WINDFALL")
RS JOBDST,NJOBS ;JOB "DISTANCE"
;RS JOBSLD,NJOBS ;ACCUMULATED SOLD TIME PER JOB
RS CLSSHR,MAXCLS
RS WA,MAXCLS ;WINDFALL ALLOCATION (OR -1)
RS CLSJLM,MAXCLS ;JOB LIMIT FOR CLASS
RS CLSFLG,MAXCLS ;FLAGS
RS CLSTYP,MAXCLS ;SERVICE TYPE
RS CLSCAP,MAXCLS ;USAGE CAP
RS CLSOVP,MAXCLS ;JOB OVERFLOW POINTER FOR CLASS
RS CLSSHI,MAXCLS ;SHARE PER MEMBER
RS CLSCNT,MAXCLS
RS CLSDST,MAXCLS ;CLASS DISTANCE
RS CLSSUM,MAXCLS ;INTEGRAL OF NRUN FOR CLASSES
RS CLSIRT,MAXCLS ;CLASS INCREMENTAL RUN TIME
NDG MXCASC,4 ;#211 Keep track of upto 4 different shifts
NCLSPG==:<<1*MXCASC>+<MXCASC*MAXCLS>+PGSIZ-1>/PGSIZ
NRP CLSFIL,<NCLSPG*PGSIZ> ;#211
CLSTRT=:CLSFIL+0 ;#211 Total class runtime (by shifts)
CLSRT=: CLSTRT+MXCASC ;#211 Individual class runtime (by shifts)
;SYSTEM RESIDENT FORK TABLES
; STRUCTURE DEFINED FOR SOME VARIABLES BUT NOT PRESENTLY USED
; CONSISTENTLY THROUGHOUT CODE.
RS FKPGS,NFKS ;PTB,,PSB SPT NUMBERS
;DEFSTR FKPSB,FKPGS(FX),35,18
;DEFSTR FKUPT,FKPGS(FX),17,18
RS FKSTAT,NFKS ;FORK WAIT TEST
RS FKPGST,NFKS ;TEST WORD WHILE IN PAGE WAIT
;ALSO TOD ENTERED WAITLIST
RS FKQ1,NFKS ;REMAINING QUANTUM
;DEFSTR FKQTM,FKQ1(FX),35,36
RS FKQ2,NFKS ;FORK SCHEDULING QUANTITIES
;B0-B17 - FLAGS, MAX QUEUE, CURRENT QUEUE
;B18-35 - FKWTL: LOC OF WAIT LIST PTR FOR BLOCKED FORK
RS FKBSPW,NFKS ; GOLST POSITION ,, BALSET LIST PTR
RS FKSWP,NFKS ;SWAPPING DATA
;B0-B17 - FLAGS; B18-B35 - FKHST: MEM DEMAND HISTORY
RS FKNBW,NFKS ;TIME OF START OF BALSET WAIT
RS FKJTQ,NFKS ; Jsys Traps queue of forks
; waiting to PSI their monitor
RS FKPT,NFKS ;BALSET ENTRY TIME ,, FORK QUEUE PTRS
;DEFSTR FKBET,FKPT(FX),17,18
RS FKINT,NFKS ;FORK INTERRUPT COMMUNICATION REG
RS FKINTB,NFKS ;INTERRUPT CHANNELS REQUEST
RS FKJOB,NFKS ;JOB NUMBER ,, JSB
;DEFSTR FKJSB,FKJOB(FX),35,18
;DEFSTR FKJOBN,FKJOB(FX),17,18
RS FKNR,NFKS ;AGE,,BALANCE SET SIZE (RESERVE)
;DEFSTR FKXAGE,FKNR(FX),8,9 ;AGE AT LAST XGC
;DEFSTR FKAGE,FKNR(FX),17,9 ;CURRENT AGE
;DEFSTR FKWSS,FKNR(FX),35,18 ;WORKING SET SIZE
RS FKWSP,NFKS ;WORKING SET PARAMETERS - NWSCE,,N
;DEFSTR FKCSIZ,FKWSP(FX),35,18 ;CURRENT SIZE
;ALSO LH USED WHILE ENTERING BALSET
RS FKTIME,NFKS ;TIME AT WHICH FORK WAS PUT ON CURRENT QUEUE
RS FKCNO,NFKS ; SPTN OF HWPT ,, CORE NUMBER
;DEFSTR HWPTN,FKCNO(FX),17,18
;TABLES FOR SETNM
NNAMES==:^D80 ;#162 NUMBER OF NAMES ALLOWED
RS SNAMES,NNAMES ;SIXBIT NAME OF SUBSYSTEM
RS STIMES,NNAMES ;ACCUMULATED RUNTIME OF SUBSYSTEM
RS SPFLTS,NNAMES ;ACCUMULATED PAGE FAULTS OF SUBSYSTEM
RS SSIZE,NNAMES ;WORKING SET SIZE INTEGRAL
RS SNBLKS,NNAMES ;NUMBER OF BLOCKS
RS SCOUNT,NNAMES ;NUMBER OF SETSN CALLS
;MONITOR STATISTICS
;N.B. THIS TABLE IS AVAILABLE THROUGH GTTAB AND IS USED BY WATCH, EXEC, ETC.
;THE RELATIVE LOCATION OF WORDS WITHIN THE TABLE SHOULD NOT BE CHANGED.
NSTAT==:0 ;COUNT NUMBER STAT WORDS
;SPECIAL VERSION OF RS FOR STAT WORDS - COUNTS TOTAL
DEFINE STATRS (SYM,NUM)<
NSTAT=NSTAT+NUM
RS SYM,NUM
>
STATRS SKDTM0,1 ;TIME SPENT IN SKDNUL WITH BALSET EMPTY
STATRS SKDTM1,1 ;TIME SPENT IN SKDNUL WITH BALSET NON-EMPTY
STATRS SKDTM2,1 ;TIME SPENT RUNNING SCHEDULER
STATRS SPTTIM,1 ;TIME SPENT IN PAGER TRAP CODE
STATRS DRMRD,1 ;NUMBER OF DRUM READS
STATRS DRMWR,1 ;NUMBER OF DRUM WRITES
STATRS DSKRD,1 ;NUMBER OF DISK READS
STATRS DSKWR,1 ;NUMBER OF DISK WRITES
STATRS TTYBKS,1 ;NUMBER OF TTY WAKEUPS
STATRS TTINTS,1 ;NUMBER OF TERMINAL INTERRUPTS
STATRS BSTSUM,1 ;INTEGRAL OF NBPROC DT
STATRS RJTSUM,1 ;INTEGRAL OF NBPROC+NGOJOB DT
NRJAVS==:3 ;NUMBER OF EXPONENTIAL AVERAGES MAINTAINED
STATRS RJAV,NRJAVS ;EXPONENTIAL AVERAGE OF NUMBER RUNNABLE FORKS
STATRS DSKWT,1 ;SUM OF PROCESS DSK WAIT TIMES
STATRS DRMWT,1 ;SUM OF PROCESS DRUM WAIT TIMES
STATRS NTTYIN,1 ;TOTAL NUMBER TERMINAL INPUT CHARS
STATRS NTTYOT,1 ;TOTAL NUMBER TERMINAL OUTPUT CHARS
STATRS NGCCOR,1 ;COUNT OF GCCOR'S
STATRS GCCTIM,1 ;INTEGRAL OF GCCOR TIME
STATRS NREMR,1 ;COUNT OF WS REMOVALS WHILE RUNNABLE
STATRS BSWT,1 ;SUM OF PROCESS WAIT TIMES
STATRS SKDOVH,1 ;ACCUMULATED SCHED OVERHEAD TIME IN HP UNITS
STATRS SKDIDL,1 ;ACCUMULATED IDLE TIME IN HP UNITS
STATRS SKDSWP,1 ;ACCUMULATED SWAP-WAIT TIME IN HP UNITS
STATRS USRTIM,1 ;ACCUMULATED USER TIME IN MILLISECONDS
STATRS HQFSUM,1 ;INTEGRAL OF NHQFK DT
STATRS LQFSUM,1 ;INTEGRAL OF NLQFK DT
STATRS DWRWT,1 ;SUM OF PROCESS DISK WRITE WAIT
STATRS NAJBAL,1 ;NUMBER OF FORCED AJBALS CALLS
STATRS SNRSUM,1 ;INTEGRAL OF SUMNR
STATRS RPQSUM,1 ;INTEGRAL OF NRPLQ
STATRS HSPTTM,1 ;HP PAGER TRAP TIME
STATRS NCSWCH,1 ;NUMBER OF CONTEXT SWITCHES
STATRS BGNDTM,1 ;TIME DOING BACKGROUND STUFF (TTCH7, ETC.)
STATRS STRPCT,1 ;SYSTEM TOTAL PAGE TRAPS
STATRS SRPQSC,1 ;SYSTEM TOTAL "SAVES" FROM RPLQ
STATRS SGCCWR,1 ;NUMBER WRITES FROM GCCOR
STATRS NWSSUM,1 ;INTEGRAL OF NUMBER WS IN MEM
STATRS SKDFIL,1 ;INTEGRAL OF WAIT TIME WO SWAP WAITS
STATRS NWSLOD,1 ;COUNT OF WS LOADS
STATRS NREMJ,1 ;COUNT OF BALSET REMOVALS WHILE RUNNABLE
STATRS SXGCWR,1 ;NUMBER WRITES FROM XGC
;***** END OF STATISTICS TABLE *****
;LOAD AVERAGE COMPONENTS (GETAB TABLES)
RS CLSRJA,<MAXCLS*NRJAVS> ;RUN AVGS FOR CLASSES
RS HQLAV,NRJAVS ;HIGH-QUEUE AVERAGES
RS LQLAV,NRJAVS ;LOW-QUEUE AVERAGES
;**TEMP** 3A ONLY
RS(XB2RED,1)
RS(XB2WRT,1)
;**TEMP END**
;SCHED VARIABLES
NSKDP==:200 ;SIZE OF SCHED PDL
RS SKDPDL,NSKDP ;SCHEDULER LOCAL PDL
RS SCKATM,1 ;ALARM TIME - MIN OF ALL SCHED CLOCKS
RS OLDTCK,1 ; "
RS PISC7R,4
RS PI7AC1,2 ;TEMPS AT PISC7
RS ALARMT,1 ;MIN TIME OF FORKS ON CLKLST
RS SKDTHS,1 ;TIME IN SCHED SO FAR THIS PASS
RS SKDLST,1 ;LAST READING OF HP CLOCK
RS SKDLRT,1 ;RUNTIME OF LAST TRIP THRU SCHEDULER
RS SNPSV1,1 ;PLACE TO SAVE AN AC WHILE CHECKING PC
; TO SEE IF IT IS IN A SNOOP BREAK POINT
RS LSTPFK,1 ;LAST FORK SCHEDULED
RS LFORKX,1 ;LAST FORK BEFORE BGND TASKS
RS FORKX,1 ;INDEX OF CURRENTLY RUNNING FORK
RS FREJOB,1 ;LIST OF FREE JOBS
RS WTLST,1 ;WAITING FORK LIST
RS WT2LST,1 ;WAITING FORKS TO BE WAKED BY UNBLK1
RS TTILST,1 ;LIST OF FORKS WAITING FOR TTY INPUT
RS TTOLST,1 ; .. .. TTY OUTPUT EVENTS
RS FRZLST,1 ; .. .. UNFREEZING
RS TRMLST,1 ; .. .. INFERIOR FORK TERMINATION
RS CLKLST,1 ; .. .. CLOCK
RS JTLST,1 ; JSYS traps queue
RS JTLSTL,1 ; ... last; doubly linked list of forks
; waiting on JTLCK to PSI some mon fork
RS GOLST,1 ;RUNNABLE FORK LIST
RS JB0FLG,1 ;RUN JOB 0 REQUESTRS JB0FLG,1 ;RUN JOB 0 REQUEST
RS FRECB,1 ;FREE CORE NUMBER BITS
RS FREFK,1 ;LIST OF FREE FORKS
RS SYSIFG,1 ;SYSTEM HAS BEEN INITIALIZED IF NOT 0
RS PWRDWN,1 ;POWER FAILURE DETECTED IF .G. 0, DONE IF .L. 0
RSI RLODPC,<0,0,0,RLDHLT> ;XPCW BLOCK FOR KEEP ALIVE RELOAD
RS FPTABL,MAXSEC+1 ;PAGEM DISPATCH FOR SECTION NUMBERS
RS NBPROC,1 ;NUMBER OF PROCESSES IN BAL SET
RS NBWT,1 ;NUMBER WAITING PROCESSES IN BALSET
RS NBSWP,1 ;NUMBER FORKS IN SWAP WAIT
RS NBHLD,1 ;NUMBER FORKS IN BALSET WAIT
RS OLDSLD
RS OLDIDL
RS MAXBP,1 ;MAX NUMBER OF JOBS IN BAL SET
RS BSQNT0,1 ;VALUE OF BSQNT AT START OF LAST RUNNING
RS SUMNR,1 ;SUM OF RESERVE PAGES, ALL PROCESSES IN MEM
RS SUMBNR,1 ;SUM WORKING SETS IN BALSET
RS NWSEPG,1 ;NUMBER PAGES WSETS ENTERING MEMORY
RS BALSHC,1 ;COUNT OF PAGES IN BALSET BECAUSE OF SHARING
RS NXTCNF,1 ;NEXT FORK TO CHECK - GCNO
RS RELCB,1 ;MASK OF CORE NUMBERS RELEASED BUT NOT CLEARED
RS MAXNR,1 ;MAX VALUE OF SUMNR
RS MAXHNR,1 ;MAX NR OF BALSET HOLDING FORKS
RS BSLST,1 ;LIST OF BALSET HOLDING FORKS
RS NBSL,1 ;NUMBER OF BALSET HOLDING FORKS
RS NEBAL,1 ;NUMBER OF PROCESSES NOW ENTERING BALSET
RS NPMAX,1 ;MAX NUMBER OF PAGES IN CORE FOR ONE PROCESS
RS SNPMAX,1 ;SMALL NPMAX FOR LOADED CONDITIONS
RS IRJAV,1 ;NEAREST INTEGER TO RJAV
RS WSMTIM,1 ;TIME FOR NEXT WSMGT
RS RWSOKF,1 ;FLAG - OK TO DO REMWS
RS NWSMEM,1 ;NUMBER WS IN MEM
RS NHQFK,1 ;NUMBER FORKS ON .L. MAXQ
RS NLQFK,1 ;NUMBER FORKS ON MAXQ
;SCHEDULER VARIABLES
RS SCHFLG,1 ;PERMANENT SCHEDULER FLAGS
RS SKEDF1,1 ;START PROCESS VIA CH7 BREAK IN 1
RS SKEDF3,1 ;PROCESS CLOCK COUNTED TO 0
RS SKEDFC,1 ;FORCE CLEAR OF BALSET & MEMORY
RS INSKED,1 ;IN SCHEDULER IF NON-ZERO
RS SSKED,1 ;LAST JOB RUNNING WAS NOSKED
RS SETPAG,1 ;TEMP FOR SETTING PAGER AT SCDR
RS RSKCHK,4 ;XPCW DESTINATION
RS PSKED,1 ;PAGE TRANSFER COMPLETED
RS QSKED,1 ;BLOCKED FORK NOW UNBLOCKED IF .G. 0
RS TSKED,1 ;TTY OUTPUT EVENT IF .N. 0
RS BSKED,1 ;FORK VOLUNTARILY LEFT BALSET IF .G. 0
RS NGOJOB,1 ;NUMBER OF RUNNABLE JOBS
RS RJTTIM,1 ;TIME AT LAST UPDATE TO RJTSUM
RS RJATIM,1 ;TIME OF NEXT RJAV UPDATE
RS RJAVS1,1 ;RJTSUM AT LAST RJAV UPDATE
RS RJAVS2,1 ;HQFSUM AT LAST RJAV UPDATE
RS RJAVS3,1 ;LQFSUM AT LAST RJAV UPDATE
;CLOCKS COUNTED DOWN AND TESTED, PARALLEL TO PCLKT, DON'T REORDER
RS BSQNT,1 ;RUNNING JOB REMAINING QUANTUM
RS TIM1,1 ;SCHED FAST CLOCK
RS TIM2,1 ;SECOND CLOCK, 100 MS
RS FKT0,1 ;CLOCK AT START OF RUNNING
RS FKT1,1 ;TIME USED SINCE SETRT
RS TIM0,1 ;TODCLK AT LAST C1STAT
RS TODCLK,1 ;MILLISECOND CLOCK, MONOTONICALLY INCREASING
RS TODPWL,1 ;TIME OF DAY (IN SECONDS) BY POWER LINE CLOCK
RS CHKTIM,1 ;TIME AT WHICH JOB 0 CONSIDERED OVERDUE
RS SCDRN1,1 ;RUN ONLY JOB N IF N .G. -1
IFN JSSTAT, < ;FOR JSYS STATS ONLY
RS JSTIM,PGSIZ ;PROCESSOR TIME PER TOP-LEVEL JSYS (MS)
RS JSFREQ,PGSIZ ;TOP-LEVEL JSYS CALLING FREQUENCY DISTRIBUTION
RS UTIM,1 ;TOTAL USER RUN TIME DURING TEST
>
;DIRECTORY RELATED STORAGE
RS MXDIRN,1 ;MAXIMUM DIRECTORY NUMBER
RS NDIRPG,1 ;MAX # OF PAGES FOR A DIRECTORY FILE
RS FBTSIZ,1 ;SIZE OF FREE BIT TABLE BLOCK
RS IDXORA,1 ;WORD CONTAINING START OF INDEX TABLE
RS DIRORA,1 ;WORD CONTAINING BASE ADR OF MAPPED DIR
NDG DIRRDM,777777777700 ;DEFAULT MASK FOR DIRECTORY READ UPDAATE
RS DIRRDU,1 ;READ UPADTE MASK
RS DIRCLK,1 ;DIRECTORY CACHE LOCK
NDG DIRCSZ,^D25 ;DIRECTORY CACHE SIZE
RS DIRCSH,DIRCSZ*5 ;DIRECTORY CACHE TABLE
RS BTBORA,1 ;WORD CONTAINING BASE ADR OF MAPPED BIT TABLE
;MISC STORAGE
;SYSTEM STARTUP FLAG. REPLACES DIDSCA AND STOKF
RS STARTF,1
NR (JB0XFR,1) ;WHERE TO GO ON ERROR IN FORK 0
;STORAGE FOR BUGHLT AND BUGCHK
;KEEP DBUGSW, DCHKSW, EDDTF, WEFLAG IN ORDER (FOR DEBUGGING CONVENIENCE ONLY)
RSI DBUGSW,<0> ;STOP ON BUGHLTS
RSI DCHKSW,<0> ;STOP ON BUGCHKS
RSI EDDTF,<IEDDTF> ;EDDT PRESENT IF NON-0
RSI WEFLAG,<0> ;WRITE-ENABLE MON IF NON-0 AND DBUGSW=1
RSI DINFSW,<0> ;STOP ON BUGINFS
RSI BUGHLT,<0,JRST BUGH0> ;JSR BLOCK FOR BUGHLT'S
RS SVVEXM,1 ;SAVE VALID EXAMINE IN BUGTYO
;USED IN KS10 TO SAVE KEEPALIVE WORD
RSI BUGLCK,<-1> ;LOCK ON BUGXXX ROUTINES
RSI BUGCHK,<0,JRST BUGC0> ;JSR BLOCK FOR BUGCHK'S
RSI BUGINF,<0,JRST BUGI0> ;JSR BLOCK FOR BUGINF'S
RS BUGACS,20 ;ACS
RS BUGACU,20 ;PLACE TO SAVE PREV CONTEXT ACS
BUGPLN==:^D40 ;PUSH DOWN LIST SIZE
RS BUGPDL,BUGPLN ;PUSH DOWN LIST
BUGMAX==:5 ;DONT LET MORE THAN 5 IN QUEUE
RS BUGCNT,1 ;COUNT OF BUG BLOCKS IN QUEUE
RS BUGNUM,1 ;NUMBER OF BUG CHECKS SINCE STARTUP
RS BUGSEB,1 ;SYSERR BLOCK POINTER
RS BUGP,1 ;PLACE TO STORE P DURING BUG HLT/CHK
RS BUGP1,1
RS BUGP2,1
RS BUGP3,1
RS BUGTMS,1 ;TIME TO STORE NEXT BUGTIM
BUGINT==:^D<5*60000> ;INTERVAL FOR STORING BUGTIM-5 MINUTES
RS BUGTIM,4 ;ASCII TIME AND DATE STORED FOR BUGHLT
RS BUGT10 ;START TIME FOR 10-MIN. BUGCHK COUNT
RS BUGN10 ;COUNT FOR 10-MIN. BUGCHK COUNT
;STORAGE FOR JSR'S IN RESIDENT MONITOR
RSI BUGMON,<0,JRST BUGM0> ;TO GO TO SECONDARY PROTOCOL
RSI BUGPRI,<0,JRST BUGP0> ;TO GO TO PRIMARY PROTOCOL
;ROUTINES IN APRSRV TO TYPE CHARACTERS ON THE CTY IN SECONDARY PROTOCOL
;REACHED VIA JSR, WHICH STORES INTO THE FIRST WORD OF THE PAIR.
;THESE LOCATIONS ARE IN PSECT RSDAT
RSI BUGTYC,<0,JRST BUGT0> ;TYPEOUT DURING ERROR HANDLING
RSI BUGMSG,<0,JRST BUGMS0> ;TYPE OUT A STRING
RSI BUGTYO,<0,JRST BUGTY0> ;TYPE CHARACTER, PAD IF <LF>
RSI BUGNO,<0,JRST BUGNO0> ;TYPE A NUMBER
;STORAGE FOR THE UTEST JSYS
RS UTLOCK,1 ;CONTAINS THE FORK # OF OWNER
RS UTBASE,1 ;THE STARTING ADR OF ROUTINE BEING TESTED
RS UTLEN,1 ;THE NUMBER OF WORDS BEING TESTED
UTNPG==:2 ;NUMBER OF PAGES OF STORAGE SPACE
NUTWDS==UTNPG*PGSIZ ;WORDS OF BUFFER SPACE FOR UTEST
NRP UTPGS,NUTWDS ;BUFFER SPACE
;STORAGE FOR TTYSRV
NCHBF==:<TTSIZ-1>*4 ;NUMBER OF CHARS IN 1 BUFFER
;TTY BUFFERS--INPUT, OUTPUT, AND ECHO
;BUFFERS ARE OF SIZE TTSIZ, AND START AT LOCATIONS N*TTSIZ+1
RS TTBUFS,NTTBF*TTSIZ+TTSIZ
;WORD THAT CONTAINS THE UNIT NUMBER ON THE .FEDLS DEVICE BY WHICH
;THE FRONT END KNOWS THE CTY. USED IN IDCTY.
RS CTYINT,1
RS TCOERR,1 ;TCOUT SETS THIS IF FAILS IN SCHEDULER CONTEXT
;STORAGE
RS TTFREC,1 ;COUNT OF FREE BUFFERS
RS TTFREB,1 ;LIST OF FREE BUFFERS
NTSQWD==:<NLINES+^D35>/^D36 ;NUMBER OF WORDS IN START OUTPUT QUEUE
RS TTSOQ,NTSQWD ;START OUTPUT QUEUE, ONE BIT PER LINE
RS PTYSTM,1 ;PTY START TIME
RS TNETRQ,NTSQWD ;BIT MASK FOR ACTIVE NET USER LINES
RS TQLNQ,NTSQWD ;BIT MATRIX FOR LINE FUNCTION QUEUE
;BIG BUFFER
RS TTBIGI,1 ;INPUT INDEX
RS TTBIGO,1 ;OUTPUT INDEX
RS TTBIGC,1 ;COUNT
RS TTBBUF,TTBSIZ ;BUFFER
RS TTQCNT,1 ;COUNT OF SPECIAL LINE ITEMS
RS TTCQLN,1 ;CONTROL OP CURRENT LINE NUMBER
RS TTHNGL,1 ;LINE BEING EXAMINED FOR HUNG
RS TTHNGT,1 ;TIME AT WHICH LINE WILL BE DEFINED AS HUNG
RS TTHNGN,1 ;LAST HUNG LINE ,, NUMBER UNHANGS DONE
RS LINKF,1 ;LINKED OUTPUT CHAR IN NOT 0
RS IMECHF,1 ;IMMEDIATE ECHO OUTPUT CHAR IF NON-0
RS TTCHIC,1 ;INPUT CHARACTER IN TTCHI
IFN SMFLG,<RS DZCHCT,1> ;"CLOCK" FOR DZ11 PI CHECK
RS TTSTAT,NLINES ;STATIC DATA
RS TTACTL,NLINES ;POINTER TO DYNAMIC DATA
RS TTSPWD,NLINES ;INPUT,,OUTPUT SPEEDS
RS TTCSAD,NLINES ;ROUTINE FOR SCHEDULER TO CALL
RS TTCSTM,NLINES ;TIME TO CALL ROUTINE IN TTCSAD
RS CTYLNO,1 ;CTY LINE NUMBER (STORED IN TTINIT)
;STORAGE FOR STRING CONTAINING VERSION AND NAME OF MONITOR
NR SVN,NSVNT ;TEXT IS READ FROM SYSTEM:MONNAM.TXT
; OR DEFAULTED TO A PREASSEMBLED STRING
; AT TSVN
IFN RP04F,<
BTBMAX==:16000 ;MAXIMUM WORDS AVAILABLE FOR BIT TABLE
BTBTOP==:3100 ;SIZE OF TOP HALF FOR OLD DISKS
BTBBOT==:11300 ;SIZE OF BOTTOM HALF FOR OLD DISKS
;BIT TABLE
RS BTBSIZ,1 ;MAXIMUM WORDS AVAILABLE FOR BITTABLE
BTBLEN==:BTBMAX ;LENGTH OF BITTABLE IF IN SECTION 0
IFN NETN!EXADF,<IFE SMFLG,<BTBLEN==:0>> ;DO NOT RESERVE SPACE IN SECTION 0
NRP BTB,BTBLEN
;NOTE THAT THE OLD ASSUMPTION THAT SOME CYLINDERS ARE NOT AVAILABLE
;FOR FILES HAS BEEN REMOVED. LOTRK (THE FIRST AVAILABLE CYLINDER) IS
;NOW ALWAYS 0, AND HITRK (THE HIGHEST AVAILABLE CYLINDER) IS THE LAST
;CYLINDER IN THE STRUCTURE, WHICH IS CONTAINED IN SDBCYL IN THE SDB
LOTRK==:0
>
RS BTBLCK,1 ;BIT TABLE LOCK
RS DERRHD,1 ;HEADER FOR BAT BLOCK QUEUE
ERRLNK==:4 ;OFFSET IN ERROR NODE FOR THE LINK
;VARIABLES HOLDING PARAMETERS OF PUBLIC STRUCTURE
RS NSSUN,1 ;# OF SWAPPING SECTORS PER UNIT
RS FSSUN,1 ;FIRST SWAPPING SECTOR ON UNIT
;VARIABLES USED BY FSI ROUTINES
RS FSIBLK,20 ;TEMPORARY BLOCK
RS FEFSIZ,1 ;SIZE OF FRONT END FILE SYSTEM IN PAGES
RS BOTSIZ,1 ;SIZE OF BOOTSTRAP.BIN IN PAGES
NPGSFE==:NTRFE*^D95 ;DEFAULT NUMBER OF PAGES IN FE FILE SYSTEM
NPGSBT==:NTRBT ;DEFAULT NUMBER OF PAGES IN BOOTSTRAP.BIN
DSKMSK==:777770 ;#163 BITS NOT USED IN LH OF DISK ADDRESS
;HOME BLOCKS
IFN RP04F,<
HOME:: 0 ;BOOT STRAP FOR THE 11
1 ;HOME BLOCK
2 ;BAT BLOCK
3 ;RESERVED
4 ;RESERVED
5 ;RESERVED
6 ;RESERVED
7 ;RESERVED
10 ;RESERVED
11 ;RESERVED
12 ;SECONDARY HOME BLOCK
13 ;SECONDARY BAT BLOCK
NHOME==:.-HOME
>
;DO NOT REORDER ERROR WORDS, USED BY GETAB
NDSKEW==:^D10 ;NUMBER OF ERROR WORDS FOR GETAB
RS DSKRCE,1 ;COUNT OF RECOVERABLE ERRORS
RS DSKRER,4 ;COMMAND WORDS AND ERROR BITS OF LAST ERROR
RS DSKNRE,1 ;COUNT OF NON-RECOVERABLE ERRORS
RS DSKLER,4 ;COMMAND WORDS AND ERROR BITS LAST NON-REC ERR
RS DSPSFK,1 ;FORK,,PSI FOR DISK ONLINE/OFFLINE INTERRUPT
;PARAMETERS FOR THE BAT BLOCK ERROR QUEUE
NODSIZ==:5 ;SIZE OF AN ENTRY
MAXNOD==:^D10 ;NUMBER IN FREE POOL
RS IOERRQ,MAXNOD*NODSIZ ;ALLOCATE THE POOL
RS IOERRH,1 ;THE QUEUE HEADER
RS ERRSWP,1 ;FLAG FOR A BAD BLOCK ON PSB, PT, UPT READ
RS VSMFLG,1 ;FLAG FOR FORCED VERIFICATION OF MONITOR AT
;SYSTEM STARTUP TIME
;BAT BLOCK VARIABLES
CODBAT==:606060 ;UNLIKELY CODE IN BATCOD
MAXBFR==:^D61*2 ;MAX FREE SPACE IN BAT BLOCK
MAXBAD==:^D511 ;MAX BAD SPOTS IN A BAD PAIR
BAT1P==:4 ;OFFSET OF FIRST BAD PAIR
;STRTAB AND SDB DEFINITIONS
NR (UCSEED,1) ;SEED FOR UNIQUE CODE FOR EACH STRUCTURE
NR (STRLOK) ;LOCK FOR THE DISMOUNT CODE
NDG STRN,^D16 ;MAXIMUM NUMBER OF STR'S ALLOWED
RS STRTAB,STRN ;TABLE OF POINTERS TO SDB'S
RS DSMENB,1 ;ENABLE FOR STRUCTURE DISMOUNTS (0=NO DISMNTS,
;NON-0=OK TO DISMOUNT STRUCTURES)
RS BBNBYT,1 ;ENABLE BBN FAST BYTE CODE
NDG MXSTRU,4 ;MAX # OF PACKS IN A STRUCTURE
; (ASSUMES RP04'S, USED TO LIMIT SDBUDB)
HOMTBL==:MXSTRU ;LENGTH OF HOMTAB
RS HOMTAB,HOMTBL ;LOGICAL TO PHYSICAL MAPPING
; (CKU NUMBERS FOR EACH LOGICAL UNIT)
RS SWPSTR,1 ;#14 points to SDB of swapping structure
;SDB - STRUCTURE DATA BLOCK FORMAT
SDBNAM==:0 ;STRUCTURE NAME
SDBNUM==:1 ;NUMBER OF UNITS IN STRUCTURE
SDBSIZ==:2 ;SIZE IN SECTORS OF EACH UNIT IN STR
SDBSTS==:3 ;STATUS FLAGS,,INITING FORK
SDBRXB==:4 ;ADDRESS OF ROOT DIR INDEX BLOCK
SDBBXB==:5 ;ADDRESS OF BACKUP COPY OF ROOT DIR
SDBNSS==:6 ;NUMBER OF SWAPPING SECTORS PER UNIT
SDBFSS==:7 ;FIRST SWAPPING SECTOR PER UNIT
SDBBTB==:10 ;OFN OF BIT TABLE
SDBFRC==:11 ;COUNT OF FREE PAGES ON STRUCTURE
SDBIDX==:12 ;HANDLE'S OF INDEX TABLE AND ROOT-DIRECTORY
SDBLDN==:13 ;LAST DIRECTORY NUMBER ON THIS STRUCTURE
SDBLCA==:14 ;LAST CYLINDER ASSIGNED BY DSKASN
SDBCYL==:15 ;TOTAL CYLINDERS IN STRUCTURE
SDBBT0==:16 ;LENGTH OF TOP HALF OF BIT TABLE
SDBBT1==:17 ;LENGTH OF BOTTOM HALF OF BIT TABLE
SDBTYP==:20 ;ADDRESS OF DSKSIZ TABLE FOR THIS TYPE OF DISK
SDBFLK==:21 ;FILE LOCK COUNT,,UNIQUE CODE
SDBCNT==:22 ;MOUNT COUNT,,OPEN FILE COUNT
SDBPUC==:23 ;PACK UNIQUE CODE FOR MEDIA IDENTIFICATION
SDBOMF==:24 ;ORIGINAL MINIMUM FREE PAGES LIMIT
SDBMXF==:25 ;BOUNDRY ABOVE WHICH SDBMFP=SDBOMF
SDBMFP==:26 ;MIN FREE PAGES BELOW WHICH DSKASA
;CHANGES ASSIGNMENT ALGORITHM
SDBUDB==:27 ;FLAGS,,POINTERS TO UDB'S
SDBLN==:SDBUDB+MXSTRU ;LENGTH OF ONE SDB
RS SDBBL0,SDBLN ;STRUCTURE DATA BLOCK FOR PS
;STORAGE FOR RESIDENT FREE SPACE POOL
;PRIORITY LEVELS
.RESP1==:0 ;HIGHEST PRIORITY, ALWAYS TRY TO ASSIGN SPACE
;NO PAGE FAULTS ALLOWED
.RESP2==:1 ;SECOND LEVEL, NO PAGE FAULTS ALLOWED
;BUT DONT ASSIGN SPACE IF BELOW RESMIN
.RESP3==:2 ;PROCESS CONTEXT. PAGE FAULTS ALLOWED.
;LOCK DOWN MORE SPACE IF NECESSARY
;POOL NUMBERS. NOTE: POOL NUMBERS START AT 1, SO THAT WE CAN DETECT
;INADVERTENT ZEROING OF POOL NUMBERS IN FREE SPACE. OFFSET 0 IN THE
;TABLES IS UNUSED.
.RESGP==:1 ;GENERAL RESIDENT FREE SPACE POOL
.RESTP==:2 ;TERMINAL POOL
.RESNP==:3 ;NETWORK POOL
.RSTMP==:4 ; TIMER pool
RESQTL==:5 ;NUMBER OF POOLS OF RESIDENT FREE SPACE
; USED FOR ALLOCATION OF QUOTA TABLE
;QUOTAS FOR EACH OF THE POOLS. INITIALIZATION CODE IN FREE STORES
;VALUES INTO RESUTB
NDG .RESGQ,10000 ;GENERAL QUOTA - USED BY PHYSIO FOR UDBS
; CDBS, KDBS, AND FOR SDBS.
; APPROXIMATELY 8 CHANNELS, 40 DRIVES,
; AND 16 ONLINE STRUCTURES
.RESTQ==:40*ACTLNS ;TERMINAL QUOTA - USED BY TTYSRV
IFN CHAOS,< ;@@@ FOR CHAOSNET NEED MORE BUFFERS
IFN NETN!INETN,< ;IF HAVE ARPA OR INTERNET SUPPORT
.RESNQ==:10000 ; THIS IS ALL WE CAN SQUEEZE IN
>
IFE NETN!INETN,< ;ELSE,
.RESNQ==:30000 ; WE HAVE MORE ROOM
>
>;IFN CHAOS, 100
IFE CHAOS,<
.RESNQ==:^D<50*2*30> ;NETWORK QUOTA - MESSAGE SIZE * ( # OF
; INPUT MESSAGES + # OF OUTPUT MESSAGES)
; * # OF ACTIVE LINKS
IFN <ATS*SMFLG>,<.RESNQ==:.RESNQ+^D1000>
;Increase buffers for DDCMP on 2020 with ATS
>; 100
.RSTMQ==:3*^D8*NJOBS ; For TIMER 3 per job, 8 words each
;MISCELLANEOUS VALUES FOR RESIDENT FREE SPACE
IFE CHAOS,<RESFRM==:400/4> ; 100 BLOCKS GUARANTEED FOR .RESP1 REQUESTS
IFN CHAOS,<RESFRM==:<.RESNQ/3>/4> ;100 FOR NETWORK, NEED LOTS LOCKED DOWN
RESFRA==:10000/4 ;MINIMUM AMOUNT OF FREE SPACE MAINTAINED
;BY JOB 0
;RESIDENT STORAGE FOR RESIDENT FREE SPACE MANAGER
RS RESMIN,1 ;MINIMUM LEVEL FOR ALL BUT LEVEL 1 REQUESTS
RS RESAVE,1 ;MINIMUM FREE SPACE LEVEL (BLOCK)
RS RESFRE,1 ;COUNT OF FREE BLOCKS LEFT
RS RESFFB,1 ;FIRST FREE 4 WORD BLOCK
RSI RESIFL,<-1> ;INITIALIZATION FLAG = -1 DURING STARTUP
NRESFP==:2*<.RESGQ+.RESTQ+.RESNQ+.RSTMQ>/3000
IFL NRESFP-10,<NRESFP==:10> ;ENSURE MINIMUM VALUE
;# OF PAGES IS 2/3 OF SUM OF QUOTAS
NRESFB==:NRESFP*PGSIZ/4 ;NUMBER OF RESIDENT FREE 4 WORD BLOCKS
NRP RESFRP,<NRESFP*PGSIZ> ;RESERVE SPACE FOR RESIDENT FREE POOL
RESFRZ==:RESFRP+<NRESFP*PGSIZ>-1 ;END OF RESIDENT FREE POOL
RESBTL==:<NRESFP*PGSIZ/4+^D35>/^D36 ;LENGTH OF BIT TABLE
RS RESBAS,1 ;BASE ADDRESS OF THE RESIDENT FREE POOL
RS RESUTB,RESQTL ;RESIDENT FREE SPACE USAGE TABLE
INTERN NDEV,DVXTT0
; Initial device tables used to initialize the working device tables
;CHARACTERISTICS DEFINITIONS AND MODE DEFINITIONS
DSCHR==DV%OUT!DV%IN!DV%DIR!DV%MDD
STRCHR==DV%OUT!DV%IN!DV%DIR!DV%MDD
DSCH1==0
STRCH1==0
DSMOD==DV%M0!DV%M1!DV%M2!DV%M3!DV%M4!DV%M5!DV%M6!DV%M7!DV%M10!DV%M11!DV%M12!DV%M13!DV%M14!DV%M15!DV%M16!DV%M17
MTCHR==DV%OUT!DV%IN!DV%AS
MTCH1==0
MTMOD==DV%M0!DV%M17
DTCHR==DV%MDV!DV%OUT!DV%IN!DV%DIR!DV%AS
DTCH1==0
DTMOD==DV%M0!DV%M17
IFG FEN,<
FECHR==DV%IN!DV%OUT!DV%AS
FECHR1==0
FEMOD==DV%M0>
PRCHR==DV%IN!DV%AS
PRCH1==0
PRMOD==DV%M0!DV%M1!DV%M10!DV%M13!DV%M14
PPCHR==DV%OUT
PPPCHR==DV%OUT!DV%AS
PPCH1==D1%SPL
PPPCH1==0
PPMOD==DV%M0!DV%M1!DV%M10!DV%M13!DV%M14
VBCHR==DV%OUT!DV%IN!DV%AS
VBCH1==0
VBMOD==DV%M0!DV%M17
IFG CDRN,<
CDRCHR==DV%IN!DV%AS
CDRCH1==0
CDRMOD==DV%M0!DV%M10
>
LPCHR==DV%OUT
PLPCHR==DV%OUT!DV%AS
LPCH1==D1%SPL
PLPCH1==0
LPMOD==DV%M0
CRCHR==DV%IN
CRCH1==D1%SPL
CRMOD==DV%M0
CPCHR==DV%OUT ;SPOOLED CARD PUNCH
CPCH1==D1%SPL
CPMOD==DV%M0+DV%M10
PCPCHR==DV%OUT!DV%AS ;PHYSICAL CARD PUNCH
PCPCH1==0
PCPMOD==DV%M0
TTYCHR==DV%OUT!DV%IN!DV%AS
TTYCH1==0
TTYMOD==DV%M0!DV%M10
CHACHR==DV%IN!DV%OUT ;100
CHACH1==0 ;100
CHAMOD==DV%M0!DV%M5!DV%M6!DV%M7 ;100 Same modes as arpanet (not all meaningful)
PTYCHR==DV%OUT!DV%IN!DV%AS
PTYCH1==0
PTYMOD==DV%M0
NULCHR==DV%OUT!DV%IN
NULCH1==0
NULMOD==DV%M0!DV%M1!DV%M2!DV%M3!DV%M4!DV%M5!DV%M6!DV%M7!DV%M10!DV%M11!DV%M12!DV%M13!DV%M14!DV%M15!DV%M16!DV%M17
NETCHR==DV%OUT!DV%IN!DV%DIR
NETCH1==0
NETMOD==DV%M0!DV%M5!DV%M6!DV%M7
PLCHR==DV%OUT
PPLCHR==DV%OUT!DV%AS
PLCH1==D1%SPL
PPLCH1==0
PLMOD==DV%M0
DLXCHR==DV%IN!DV%OUT!DV%AS
DLXCH1==0
DLXMOD==DV%M0
DCNCHR==DV%IN!DV%OUT
DCNCH1==0
DCNMOD==DV%M0!DV%M1
;DEFINITIONS FOR APPLICATIONS TERMINALS
ATSCHR==DV%IN!DV%OUT
ATSCH1==0
ATSMOD==DV%M0
;DEFINITIONS FOR CMA DEVICE (AYDIN DISPLAY)
CMCHR==DV%OUT!DV%AS
CMCH1==0
CMMOD==DV%M17
IFG PNGN,< ;#157 .
PNGCHR==DV%OUT ;#157 .
PNGCH1==D1%SPL ;#157 .
PNGMOD==DV%M0 ;#157 .
> ;#157 End IFG PNGN
DEFINE DV (NAME,UNITS,TYPE,DISP,CHAR1,CHAR2,MODES,CHAR3)<
SIXBIT /NAME/
XWD NDEV,DISP
EXP CHAR1!<TYPE>B17!MODES
EXP CHAR2+CHAR3+UNITS
IFE UNITS,<NDEV==:NDEV+1>
NDEV==:NDEV+UNITS>
DVTSTP==:4 ;STEP SIZE FOR INIDVT TABLE
;DEVICE INITIALIZATION TABLE (LOADED IN SWAPPABLE CODE SEGMENT)
NDEV==:0
INIDVT:: DV(DSK,0,0,DSKDTB,DSCHR,DSCH1,DSMOD,0) ;DSK ALWAYS EXISTS
DVXST0==:NDEV
DV(STR,STRN,0,DSKDTB,STRCHR,STRCH1,DSMOD,0)
DVXSTN==:NDEV
IFG MTAN,<
DV(MTA,MTAN,2,MTADTB,MTCHR,MTCH1,MTMOD,0) ;MAGTAPE
DV(MT,MTAN,2,MTDTB,MTCHR,MTCH1,MTMOD,DV%PSD) ;MT (FOR USER)
>
IFG DTAN,< DV(DTA,DTAN,3,DTADTB,DTCHR,DTCH1,DTMOD,0)> ;DECTAPE
IFG PTRN,< DV(PTR,PTRN,4,PTRDTB,PRCHR,PRCH1,PRMOD,0)> ;PTR
IFG SPTPN,< DV(PTP,0,5,SPLDTB,PPCHR,PPCH1,PPMOD,0) ;SPOOLED PTP
DV(PTP,SPTPN,5,SPLDTB,PPCHR,PPCH1,PPMOD,0)> ;SPOOLED PTP UNITS
IFG PTPN,< DV(PPTP,PTPN,5,PTPDTB,PPPCHR,PPPCH1,PPMOD,0)> ;PTP
IFG VBCN,< DV(VBC,0,6,VBCDTB,VBCHR,VBCH1,VBMOD,0)> ;VB10 DISPLAY
IFG CMAN,< DV(CMA,CMAN,.DVADS,CMADTB,CMCHR,CMCH1,CMMOD,0)> ;AYDIN DISPLAY
DV(LPT,0,7,SPLDTB,LPCHR,LPCH1,LPMOD,0) ;SPOOL LPT ALWAYS EXISTS
IFG LPTN,< DV(LPT,LPTN,7,SPLDTB,LPCHR,LPCH1,LPMOD,0)> ;SPOOLED LPT UNITS
DVXLP0==:NDEV
IFG LPTN,<
DV(PLPT,LPTN,7,LPTDTB,PLPCHR,PLPCH1,LPMOD,0)> ;PHYSICAL LPT
DV(CDR,0,10,SPLDTB,CRCHR,CRCH1,CRMOD,0) ;SPOOLED CDR
IFG CDRN,<DVXCD0==:NDEV
DV(PCDR,CDRN,10,CDRDTB,CDRCHR,CDRCH1,CDRMOD,0)> ;PCDR
IFG CDPN,< DV(CDP,0,21,SPLDTB,CPCHR,CPCH1,CPMOD)> ;SPOOLED CDP
IFG PCDPN,< DV(PCDP,PCDPN,21,CDPDTB,PCPCHR,PCPCH1,CPMOD)> ;PHYSICAL CDP
IFG FEN,< DV(FE,FEN,11,FEDTB,FECHR,FECHR1,FEMOD,0) ;THE FE DEVICES
>
DVXTT0==:NDEV ;SAVE DEV TABLE INDEX OF FIRST TTY
DV(TTY,NLINES,12,TTYDTB,TTYCHR,TTYCH1,TTYMOD,0) ;TTYS ALWAYS EXIST
IFG NTTPTY,< DV(PTY,NTTPTY,13,PTYDTB,PTYCHR,PTYCH1,PTYMOD,0)> ;PSEUDO TTY
DV(NUL,0,15,NILDTB,NULCHR,NULCH1,NULMOD,0) ;THE NULL DEVICE
IFG NETN,< DV(NET,0,16,NETDTB,NETCHR,NETCH1,NETMOD,0)>
IFG SPLTN,< DV(PLT,0,17,SPLDTB,PLCHR,PLCH1,PLMOD,0) ;SPOOLED PLOTTER
DV(PLT,SPLTN,17,SPLDTB,PLCHR,PLCH1,PLMOD,0)> ;SPOOLED PLT UNITS
IFG PLTN,< DV(PPLT,PLTN,17,PLTDTB,PPLCHR,PPLCH1,PLMOD,0)> ;PLOTTER
IFG DLXN,< DV(DLX,DLXN,20,DLXDTB,DLXCHR,DLXCH1,DLXMOD,0)> ;DL10
IFG DCN,< DV(DCN,0,22,DCNDTB,DCNCHR,DCNCH1,DCNMOD,0)
DV(SRV,0,23,SRVDTB,DCNCHR,DCNCH1,DCNMOD,0)>
IFN ATS,< DV(ATS,0,24,ATSDTB,ATSCHR,ATSCH1,ATSMOD,0)> ;APPLICATIONS TERMINALS
IFN CHAOS,< DV(CHA,0,25,CHADTB,CHACHR,CHACH1,CHAMOD,0)> ; 100 CHAOSNET
IFG PNGN,< DV(PNG,0,.DVPNG,SPLDTB,PNGCHR,PNGCH1,PNGMOD,0) ;#157 SPL'd PNG
DV(PNG,PNGN,.DVPNG,SPLDTB,PNGCHR,PNGCH1,PNGMOD,0)> ;#157 SPLd PNG units
BLOCK 2*DVTSTP ;LEAVE ROOM TO PATCH 2 DEVICES
NINIDV==:.-INIDVT
NDEV=NDEV+2 ;LEAVE ROOM TO PATCH 2 DEVICES
RS(DEVL0K,LOKLEN) ; Lock for assigning devices
NR(DEVNAM,NDEV) ; Sixbit device name
NR(DEVCHR,NDEV) ; Device characteristics
NR(DEVCH1,NDEV) ;DEV CHAR WORD # 2
NR(DEVCH2,NDEV) ; DIR NUMBER OF SPOOL DIRECTORY
NR(DEVDSP,NDEV) ; Lh = ofn if any, rh = dispatch table address
RS(DEVUNT,NDEV) ; Lh = job of assigner, rh = unit number
;PARAMETERS AND STORAGE FOR ACCOUNT VALIDATION
NR ACTOFN,1 ;OFN FOR <SYSTEM>ACCOUNTS-TABLE.BIN
NR ACTPGN,1 ;FILE PG # MAPPED INTO ACCOUNT WINDOW PAGE
NR ACTLCK,1 ;LOCK FOR HASH TABLE AND ACCOUNT WINDOW PAGE
NR AVALON,1 ;ACCOUNT VALIDATION RUNNING IF NONZERO
NRP(HSHPG,PGSIZ) ;HASH TABLE PAGE
NRP(ACTPG,PGSIZ) ;ACCOUNT WINDOW PAGE
HASHLN==:PGSIZ-1 ;# OF HASH VALUES FOR ACCOUNT VALIDATION
;PARAMETERS AND DATA STORAGE FOR IPCF,ENA, AND NETWORK STRINGS
ENQBKS==:6 ;ENQ/DEQ BLOCK SIZE (OPTIMUM)
HSHLEN==:3*NJOBS ;LENGTH OF ENQ/DEQ HASH TABLE
ENFREL==:HSHLEN*ENQBKS ;FREE SPACE FOR ENQ/DEQ
PDFKTL==:<NFKS+^D35>/^D36 ;LENGTH OF FORK BIT TABLE
PIDHDS==:5 ;LENGTH OF PID HEADER
MESHDS==:6+MAXLW+WPN ;LENGTH OF MESSAGE HEADER (SEE MESALN, MESLLN IN IPCF.MAC)
PAGMSZ==:MESHDS+3 ;LENGTH OF PAGE MESSAGE
MAXMSL==:^D30 ;MAXIMUM LENGTH OF A NON-PAGE MESSAGE
MAXSMS==:^D60 ; Maximum system packet size
MINPHL==:4 ;MINIMUM SIZE OF PID DESCRIPTOR BLOCK
SWOPTL==:MESHDS+^D12 ;OPTIMAL LENGTH OF FREE STORAGE BLOCK
PIDSSQ==:^D20 ;STANDARD SEND QUOTA
PIDSRQ==:^D20 ;STANDARD RECEIVE QUOTA
PIDSPQ==:5 ;PID QUOTA, MAXIMUM PIDS ALLOWED PER NON-PRIVILEGED JOB
PIDSPJ==:2 ;PIDS GUARANTEED PER JOB IF NONE USE MORE
IPCCFL==:<.IPCCC>B32 ;FLAGS USED WHEN SENDING AN IPCC
; REQUEST TO INFO
MAXPID==:NJOBS*PIDSPJ ;HIGHEST POSSIBLE PIDTBL INDEX (0 ISN'T USED AS AN INDEX)
PIDTBS==:1+MAXPID/2 ;NUMBER OF WORDS NEEDED FOR ONE HALFWORD PER PID
PDFREL==:MAXPID*<PIDHDS+SWOPTL> ;FREE SPACE SIZE (1 MESS/PID)
SRVSPC==^D32
DCNSPC==^D15
MAXBLK==:0
IFN DCN,<
MAXBLK==:SRVSPC*^D50+DCNSPC*^D40 ;STRING SPACE FOR NETWORK CONNECTIONS
>
ENQMXF==:ENFREL+PDFREL*3/4 ;MAXIMUM ENQ FREE SPACE UTILIZATION
SWFREL==:PDFREL+MAXBLK+ENFREL ;IPCF STORAGE + ENQ/DEQ STORAGE+NET STRINGS
MAXPIT==:<SWFREL+PAGMSZ-1>/PAGMSZ ;MAXIMUM NUMBER OF PAGES IN TRANSIT
PIDPBL==:<MAXPIT+^D35>/^D36 ;LENGTH OF PIT BIT TABLE
PIDFTL==:<MAXPIT+^D511>/^D512 ;LENGTH OF PIT OFN TABLE
NR(PIDTBL,PIDTBS) ;PID TABLE HAS HALFWORD PER PID
; THE HALF WORD POINTS TO THE HEADER
; OF THE PID IF IT EXISTS
SPDTBL==:10 ;LENGTH OF SYSTEM PID TABLE SET BY USERS
NR(SPIDTB,SPDTBL) ;TABLE OF COMMONLY USED PIDS
NR(PIDL0K,LOKLEN) ;LOCK ON PID FREE POOL AND DATA STRUCT.
NR(NXTPID,1) ;NEXT UNIQUE # TO BE USED AS LH OF PID
NR(INFOPD,1) ;PID OF SYSTEM INFO
NR(INFOPV,1) ;PUBLIC VALUE OF SYSTEM INFO PID
NR(PIDLST,1) ;NUMBER OF FIRST FREE PID, 0 IF NONE
NR(PIDMXP,1) ;HIGHEST PAGE IN PAGES-IN-TRANSIT FILE
NR(PIDPBT,PIDPBL) ;BIT TABLE OF PAGES-IN-TRANSIT FILE
NR(PIDFTB,PIDFTL) ;TABLE OF PTN'S OF FORKS FOR PAGES IN TRANSIT
NR(SWPFRE,7) ;FREE SPACE HEADER BLOCK
NR(SWFREE,SWFREL) ;FREE STORAGE SPACE FOR MESSAGES
;AND HEADERS
NR(PIDCNT,NJOBS) ;TABLE OF QUOTAS AND COUNTS FOR IPCF
RS(PDFKTB,PDFKTL) ;ONE BIT PER FORK, WAKE UP TABLE
IFN SSAN,< ;#25 .
;#25 This needs to be loaded on page 2 (at 2000). 2000 & 2020 are set in the
;#25 SA10 hardware as the base addresses of SA0 and SA1 respectively. A
;#25 single SA10 system will have only an SA0.
;#25 This is placed here to get it in before GTOKPR, which, contrary to the
;#25 comment at FFF, is the 1st thing loaded after the JSYS table in standard
;#25 DEC TOPS-20
RESCD ;#25 .
SA0BAS::BLOCK SSANSC*4 ;#25 4 words per subchannel
SA1BAS::BLOCK SSANSC*4 ;#25 4 words per subchannel
;#25 The rest of the storage on this page is not hardware determined, but
;#25 is here because it needs to be on an uncached page.
IFN SSADF,< ;#25 if disks exist on SA10
CC1CP(CC1XCP,SHORT) ;#25 create channel program up to RD/WRT
IOW PGSIZ,CC1PGA ;#25 read page into special page
TCH .-. ;#25 transfer to normal CP
EXP 0 ;#25 end of chain (should not be needed)
INTERN CC1XCP ;#25 .
> ;#25 end of IFN SSADF
IFN SSATF,< ;#26 .
MTASEN::BLOCK 6 ;#26 sense data from latest sense command
MTRECP::BLOCK 3 ;#26 error recovery channel program
NMTCM==40 ;#26 amount of channel command space needed
MTCHCL::BLOCK NMTCM ;#26 channel command list buffer
> ;#26 end of IFN SSATF
SAXFRE::XWD -SAXSPC,.+1 ;#25 <-length>,,next free word
SAXSPC==1000-<.-SA0BAS> ;#25 amount of free space available
BLOCK SAXSPC ;#25 finish up the uncached page
> ;#25 end of IFN SSAN
IFN ISIQ,RS(RFNTC) ;#522 RFNTOT counter
RS(FT410) ;#520 410 word blocks only runtime flag
RS(OBCNT) ;#520 OddBlock counter
RS(HBCNT) ;#520 Hashblock counter
; DEFAULT DEFINITIONS FOR GETOK
GT%DEF==77B11
NDG DGOUSR,0!GT%DEF ;USER REQUESTS
NDG DGOASD,SF%DOK!GT%DEF ;ASSIGN DEVICE
NDG DGOCAP,SF%DOK!GT%DEF ;ENABLE CAPABILITIES
NDG DGOCJB,SF%DOK!GT%DEF ;CREATE JOB
NDG DGOLOG,SF%DOK!GT%DEF ;LOGIN
NDG DGOFKN,5 ;DEFAULT NUMBER OF FORKS BEFORE GETOK IS CALLED
NDG DGOCFK,SF%DOK!GT%DEF+DGOFKN ;CREATE FORK
NDG DGOTBR,SF%DOK!GT%DEF
NDG DGOLGO,SF%DOK!GT%DEF ;LOGOUT OVER QUOTA
NDG DGOENQ,0!GT%DEF ;ENQ OVER QUOTA
NDG DGOCRD,SF%DOK!GT%DEF ;CREATE DIRECTORY
NDG DGOSMT,SF%DOK!GT%DEF ;INCREMENT MOUNT COUNT
NDG DGOMDD,SF%DOK!GT%DEF ;ENTRY TO MDDT
NDG DGOCLS,SF%DOK!GT%DEF ;SET CLASS
NDG DGOCL0,SF%DOK!GT%DEF ;SET CLASS AT LOGIN ONLY
NDG DGOMTA,0!GT%DEF ;NO ACCESS FOR MT'S
NDG DGOACC,0!GT%DEF ;NO ACCESS
NDG DGOOAD,SF%DOK!GT%DEF ;OPEN ASSIGNABLE DEVICE
NDG DGODNA,SF%DOK!GT%DEF ;DECNET ACCESS
NDG DGOANA,SF%DOK!GT%DEF ;ARPANET ACCESS
NDG DGOATJ,SF%DOK!GT%DEF ;ATTACH
NDG DGOSPL,SF%DOK!GT%DEF ;#212 Access to spooled device
NDG DGOTTM,0!GT%DEF ;#261 Access to TTMSG JSYS
;DEFAULT TIMEOUT FOR GETOK
NDG GIVTIM,200000 ;GIVOK TIMEOUT TIMER
NDG RCVTIM,200000 ;RCVOK TIMEOUT TIMER
; STORAGE FOR GETOK,GIVOK,RCVOK
.PSECT RSDAT
GTOKPR::DGOUSR ;ONE ENTRY PER LEGAL GETOK/GIVOK FUNCTION (THIS ENTRY IS USER REQUESTS)
DGOASD ;ASSIGN DEVICE
DGOCAP ;ENABLE CAPABILITIES
DGOCJB ;CREATE JOB
DGOLOG ;LOGIN
DGOCFK ;CREATE FORK
DGOTBR ;TERMINAL BAUD RATE
DGOLGO ;LOGOUT WHEN DIR OVER QUOTA
DGOENQ ;ENQ QUOTA SETTING
DGOCRD ;CREDIR
DGOSMT ;SMOUNT
DGOMDD ;MDDT ENTRY
DGOCLS ;SET CLASS FOR JOB
DGOCL0 ;SET CLASS AT LOGIN
DGOMTA ;MT ACCESS
DGOACC ;ENTRY FOR ACESS JSYS
DGOOAD ;ASSIGN DEVICE VIA OPENF
DGODNA ;DECNET ACCESS
DGOANA ;ARPANET ACCESS
DGOATJ ;ATTACH
DGOSPL ;#212 Access to spooled device
DGOTTM ;#261 Access to TTMSG JSYS
MXGOKF==:.-GTOKPR ;SIZE OF TABLE
SWAPCD
RS (GETOKF,1) ;ARGUMENT LIST POINTER
RS (GOKNRQ,1) ;REQUEST NUMBER FOR NEXT FREE NUMBER
RS (GOKQED,1) ;FLAG FOR Q'ED GETOK REQUESTS
RS (GOKLCK,1) ;LOCK FOR GETOK Q
RS (ACJJN,1) ;JOB NUMBER OF ACCESS CONTROL JOB
RS (ACJFN,1) ;FORK NUMBER OF ACCESS CONTROL JOB
RS (RCVTMO,1) ;RCVOK TIMEOUT TIME
;LOCAL STORAGE FOR ENQ/DEQ
ENFKTL==:<NFKS+^D35>/^D36 ;LENGTH OF FORK BIT TABLE
NR(HSHTBL,HSHLEN) ;HASH TABLE FOR ENQ LOCKS
NR(ENQL0K,LOKLEN) ;DATA BASE LOCK FOR ENQ AND DEQ
NR(ENQSPC,1) ;COUNT OF FREE SPACE AVAILABLE FOR ENQ'S
NR(ENQLTL,1) ;LIST OF LONG TERM LOCKS
NR(ENQLTS,1) ;TIME OF NEXT GARBAGE COLLECT
RS(ENFKTB,ENFKTL) ;WAKE UP TABLE - ONE BIT PER FORK
;LOCAL STORAGE FOR DIRECTORY LOCK ENQ/DEQ
LCKDBN==:<NFKS+^D35>/^D36 ;LENGTH OF FORK BIT TABLE
RS LCKDBT,LCKDBN ;FORK BIT TABLE, ONE BIT PER FORK
; Local storage for TIMER
RS (TIMLCK,1) ; Lock on TIMER Q's
RS (TMLSTL,1) ;FORK THAT LAST LOCKED TIMLCK
RS (TIMMLQ,1) ; Elapsed time clock Q head
RS (TIMDTQ,1) ; Date & time clock Q head
RS (TMNSS,1) ; # times scheduler has scanned Q's
RS (TMMUSE,1) ; # milliseconds use by scheduler
;LOCAL STORAGE FOR PTY
RS PTYSTS,NTTPTY ;STATUS BITS
;STORAGE FOR CRJOB JSYS
NR (CRJAC1,1) ;CALLER'S AC1 FLAG BITS
NR (CRJACT,11) ;ACCOUNT FOR NEW JOB LOGIN (STRING)
RS (CRJANS,1) ;ANSWER CELL FROM SCHED OR EXEC0
RS (CRJCAM,1) ;CAP MASK TO APPLY AT LOGIN TIME
RS (CRJCPU,1) ;CPU TIME LIMIT
NR (CRJEVO,1) ;ENTRY VECTOR OFFSET FOR NEW JOB
NR (CRJEXF,1) ;EXEC FLAGS FOR NEW JOB
NR (CRJFAC,20) ;FORK'S AC'S FOR NEW JOB
NR (CRJFIL,40) ;FILE NAME TO RUN IN NEW JOB
RS (CRJJNO,1) ;JOB NUMBER, SET AT SCHED LEVEL
RS (CRJLCK,1) ;LOCK ON ALL THIS DATA, SCHED TESTED
NR (CRJOJC,1) ;OWNING JOB'S CAPABILITIES
NR (CRJONJ,1) ;OWNING JOB'S JOB NUMBER
NR (CRJPJF,1) ;PRIMARY JFNS FOR NEW JOB
NR (CRJPSW,10) ;LOGIN PASSWORD FOR NEW JOB
RS (CRJSLO,1) ;PID TO SIGNAL ON LOGOUT
NR (CRJTTY,1) ;REQUESTED TTY FOR NEW JOB
NR (CRJUSR,10) ;NAME STRING TO LOG NEW JOB IN AS
NR (JOBONT,NJOBS) ;OWNER OF THIS JOB IN RH, ELSE -1
; ALSO, B1 MEANS JOB WANTS TO LOG OUT
;SM10 DEPENDENT DATA
; UNIBUS ADAPTER SAVE AREAS
IFN SMFLG,<
RS (SMADNX,4) ;NXT FREE NPR MAP FOR UBA
RS (SMUAMR,1) ;VALUE TO USE FOR SM10 UNIBUS ADAPTER MAINT REG
RS (SMUASR,1) ;VALUE TO USE FOR SM10 UNIBUS ADAPTER STATUS REG
> ;END IFN SMFLG
IFG DTAN,<
; Private storage for dectapes
DTNBUF==3*DTAN+2 ;Number of buffers is one for read
;One for write, one for directory, and
;2 more for double buffering 1st files
DTNBUF==:<DTNBUF+3>/4*4 ;Round to next higher page boundary
NDBMSK==:-1_<^D36-3*DTAN> ;Mask for unavailble 2nd buffers
RS(DTALCK,DTAN) ;Lock word
RS(DTASTS,DTAN) ;Lh -- status bits (see below)
;Rh -- directory location (0 if none)
RS(DTIBF1,DTAN) ;Bit 0 -- buffer busy
;Bit 1 -- error in this buffer
;Bits 2-11 -- next input block number
;Bits 13-17 -- input file number
;Rh -- location of input buffer 1
RS(DTIBF2,DTAN) ;Bit 0 -- buffer busy
;Bit 1 -- error in this buffer
;Bits 2-11 -- current block number
;Bit 12 -- if doing a nop spacing (rew etc)
;Bit 13 -- if unloading
;BIT 14 -- WRITE LOCK CHECK REQUESTED
;BIT 15 -- WRITE OK (NOT LOCKED OUT) AT LAST CHECK
;BIT 16 -- ACCESS OK (SELECTED) AT LAST CHECK
;BIT 17 -- LAST MOUNT REQUESTED NO DIR READ
;Rh -- location of input buffer 2 (0 if none)
RS(DTOBF1,DTAN) ;Bit 0 -- buffer busy
;Bit 1 -- error in this buffer
;Bits 2-11 -- next output block number
;Bit 12 -- last buffer
;Bits 13-17 -- output file number
;Rh -- location of output buffer 1
RS(DTOBF2,DTAN) ;Bit 0 -- buffer busy
;Bit 1 -- error in this buffer
;Bits 2-11 -- first block number of output file
;Bit 12 -- last buffer
;Rh -- location of output buffer 2 (0 if none)
RS(DTAPTR,DTAN) ;Temp pointer to directory entry
RS(DTAIOW,DTAN) ;Iowd during dead reckoning
RS(DTARKN,DTAN) ;Bit 0 -- dead reckoning for a write
;Bit 1 -- going backward
;Bits 8-17 -- block number
;Rh -- chain to next dead reckoning unit (-1 if end)
RS(DTARCE,DTAN) ;Total error count
NRP(DTABUF,DTNBUF*200) ;Dectape buffers
> ;END IFG DTAN
IFG DLXN,<
DLMASK==:100 ;SIZE OF PDP-10 MEMORY BLOCK IN PDP-11
DLNPIS==:20 ;SIZE OF PI LEVEL STACK
DLIMIN==:20 ;MINIMUM SIZE OF INPUT BUFFER
DLNOB==:2 ;NUMBER OF OUTPUT BUFFERS
DLNIB==:2 ;NUMBER OF INPUT BUFFERS
;SIZE OF EACH OUTPUT BUFFER
DLOBFL==:<DLOBFP*PGSIZ/<<DLXN+3>/4*4*DLNOB>>
DEFINE DLSTOR (X,Y)<
X==:DLPC+DLBASE
IFB <Y>,<DLPC==DLPC+1>
IFNB <Y>,<DLPC==DLPC+Y>>
DLPC==0 ;DEFINE AREAS USED BY PDP-11'S
DLSTOR(DLINTW) ;INTERRUPT VECTOR WORD
DLSTOR(DLUNIT) ;UNIT NUMBER OF THIS PDP-11
DLSTOR(DLOC11) ;COUNT OF OUTPUT BYTES FOR TO 11 TRANS
DLSTOR(DLOP11) ;POINTER TO OUTPUT BUF FOR TO 11 TRANS
DLSTOR(DLIC11) ;COUNT OF BYTES IN INPUT BUF FOR TO 10
DLSTOR(DLIP11) ;POINTER TO INPUT BUF FOR TO 10 TRANS
DLPC==DLXN*DLMASK ;NOW DEFINE LOCAL STORAGE
DLSTOR(DLUBAS,0) ;START OF PER 11 LOCAL STORAGE AREA
DLSTOR(DLXSTS,DLXN) ;STATUS WORD
DLSTOR(DLXPNT,DLXN) ;LH=INITIAL BYTE POINTER, RH = S-FIELD
DLSTOR(DLXOCT,DLXN) ;COUNT OF BYTES IN A FULL OUTPUT BUF
DLSTOR(DLXICT,DLXN) ;COUNT OF BYTES IN A FULL INPUT BUF
DLSTOR(DLXBPW,DLXN) ;BYTES PER WORD
DLSTOR(DLOCNT,DLXN) ;# OF BYTES LEFT TO FILL OUTPUT BUFFER
DLSTOR(DLOPNT,DLXN) ;POINTER TO 10 OUTPUT BUFFER
DLSTOR(DLICNT,DLXN) ;# OF BYTES LEFT TO EMPTY BUFFER
DLSTOR(DLIPNT,DLXN) ;POINTER TO 10 INPUT BUFFER
DLSTOR(DLOBCT,DLXN) ;# OF FULL OUTPUT BUFFERS
DLSTOR(DLIBCT,DLXN) ;# OF FULL INPUT BUFFERS
DLSTOR(DLON11,DLXN) ;NEXT OUTPUT BUF TO BE GIVEN TO 11
DLSTOR(DLIN11,DLXN) ;NEXT INPUT BUF TO GIVE TO 11 TO FILL
DLSTOR(DLON10,DLXN) ;NEXT OUTPUT BUF TO BE FILLED BY 10
DLSTOR(DLIN10,DLXN) ;NEXT INPUT BUF TO BE GIVEN TO 10 USER
DLSTOR(DLOBFC,<DLNOB*DLXN>) ;# OF BYTES IN EACH OUTPUT BUFFER
DLSTOR(DLIBFC,<DLNIB*DLXN>) ;# OF BYTES IN EACH INPUT BUFFER
DLSTOR(DLXIMP,<<DLXN+3>/4*20>) ;4 WORD BLOCKS USED BY XPCW ON INTERRUPTS
DLSTOR(DLAC,5) ;PLACE TO STORE ACS DURING AN INTERRUPT
DLSTOR(DLACP,1) ;PLACE TO STORE P DURING INTERRUPTS
DLSTOR(DLPISK,DLNPIS) ;INTERRUPT LEVEL STACK
DLIBUF==:DLPC+DLBASE ;END OF LOCAL STORAGE
DLIBFL==:<PGSIZ*DLIBFP-DLPC>/<DLNIB*DLXN> ;REST OF PAGE IS FOR INPUT BUFFERS
IFL DLIBFL-DLIMIN,<PRINTX NOT ENOUGH ROOM FOR INPUT BUFFERS!>
> ;END OF IFG DLXN
;STORAGE FOR CMA DEVICES (AYDIN DISPLAY)
IFG CMAN,<
RS(DRBACS,20) ;STORAGE TO SAVE AC'S
LCMAPD==:55 ;LENGTH OF PDL
RS(CMAIPD,LCMAPD) ;INTERRUPT PDL
RS(CMALCK,CMAN) ;LOCK FOR DEVICE DATA BASE
RS(CMASTS,CMAN) ;STATUS
RS(CMINDX,1) ;COUNT OF CMA DEVICES
RS(CMOWNR,CMAN) ;OWNING FORK,,DR11-B BLOCK ADDRESS
RS(CMALAE,CMAN) ;LAST AYDIN ERROR
RS(CMAERC,CMAN) ;AYDIN ERROR INFO
CMBUFN==:2 ;NUMBER OF IORBS/BUFFERS
MAXPPT==:20 ;MAXIMUM PAGES PER BUFFER
;.ALSO MAX PER DUMPI/O AND
;EQUALS SIZE OF UBA WINDOW
XRBLEN==:5+MAXPPT ;ALSO IN CMAPAR
CMXLST==:XRBLEN ;START OF TRANSFER LIST
CMIRBL==:CMXLST+MAXPPT+1 ;TOTAL LENGTH OF IORB
CMABFL==:CMAN*CMBUFN*CMIRBL ;STORAGE REQUIRED FOR IORB'S
RS(CMXORB,CMABFL) ;STORAGE FOR IORB'S
DRCHNN==:2 ;MAX DR11-B'S (ALSO IN CMAPAR)
DRBLEN==:21 ;ALSO IN CMAPAR
CMDRBL==:DRBLEN*DRCHNN ;STORAGE REQUIRED FOR DR11B BLOCKS
RS(CMADRB,CMDRBL) ;STORAGE FOR DR11-B BLOCKS
RS(DRBTAB,DRCHNN) ;ADDRESSES OF DR11-B BLOCKS
NR(CMANR1,CMAN) ;CURRENT,,LAST XORB
NR(CMANR2,CMAN) ;LAST TRANSFER WORD COUNT,,LAST
NR(CMANR3,CMAN) ;LAST FUNCTION,NUMBER OF XORB'S QUEUED
NR(CMANR4,CMAN) ;FREE XORB'S LIST FOR UNIT
;DUMP MODE IORB ADDRESS
NR(CMAPNM,CMAN) ;PROGRAM NAME
NR(CMAUDR,CMAN) ;USER DIRECTORY
> ;END OF IFG CMAN
;STORAGE FOR LCS MEMORY DRIVER
MEMLOW==:2,,0 ;BOTTOM OF MEMORY
MEMHI==:2,,177000 ;TOP OF SHARED MEMORY
RS MEMBOT,1 ;BOTTOM OF SHARED MEMORY
RS MEMTOP,1 ;TOP OF SHARED MEMORY
RS NEWNOD,1 ;NUMBER OF NODES COUNT FOR NEW ARRIVING PORTS
RS OURNOD,1 ;HOLDS OUR SHARED MEMORY NODE NUMBER
RSI MMALRM,<.+1,0>,2 ;SHARED MEMORY ALARM
SWAPCD
;STORAGE FOR DECNET
IFG DCN,< ;ONLY IF PRESENT
NDG DCOPNM,4 ;MAX LINKS PER JOB FOR NO PRIVILEGES
RS LLLLCK,1 ;LL TREE LOCK
MAXEXP==:7 ;EXP FOR MAXIMUM LL ADDRESS
MAXLNK==:1_<MAXEXP>-1 ;GENERATE LARGEST LL ADDRESS
RS LLHEAD,1 ;HEAD OF LL TREE
OBJMAX==:377 ;MAX # OF OBJECTS
DECOBJ==:177 ;MAX OBJECT # RESERVED TO DEC
NR OBJTBL,OBJMAX+1 ;GENERATE LOOK UP TABLE
NR LASTSK,1 ;WORD FOR GENERATING RANDOM TASK NAMES
LLBIT==:<MAXLNK+1+43>/44 ;WORDS IN LL ADDRESS BIT TABLE
NR LLBITS,LLBIT ;BIT TABLE FOR AVAILABLE LINK INDEXES
NR BLKASG,1 ;AMOUNT OF SWAPPABLE STRING SPACE NOW ASSIGNED
RS OURNUM,1 ;LOCAL NODE NUMBER
NDG NODNUM,100 ;DEFAULT NODE NUMBER
NR NODLOK,1 ;LOCK ON NODTBL
AKLSTL==:12 ;LENGTH OF ACKLST
RS ACKLST,AKLSTL ;LIST OF NSP ACK BUFFERS
RS LLSRVQ,1 ;"LL NEEDS SERVICE" QUEUE HEADER
RS LSTLLS,1 ;LAST TIME LOGICAL LINKS WERE SERVICED BY SCHEDULER
RS NSSNTQ,1 ;NSP "SENT MESSAGE" TIMER QUEUE
RS INNSPT,1 ;"IN NSP TIMER" FLAG
RS INNSPI,1 ;"IN NSP INACTIVITY TIMER" FLAG
RS SNTLOK,1 ;SENT MESSAGE QUEUE LOCK
RS SNTLKF,1 ;SENT QUEUE LOCKER'S FORK
RS OUTQUE,1 ;BACKGROUND TASK'S "OUTPUT REMAINING" QUEUE
NR OUTLOK,1 ;LOCK ON OUTQUE
RS OUTTIM,1 ;TIME TO RETRY BLOCKED OUTPUT
NR OUTIVL,1 ;TIME INTERVAL BEFORE RETRYING BLOCKED OUTPUT
NDG INIWAT,100 ; DEFAULT IS 300 MS.
RS NSPMCB,1 ;EACH BIT INDICATES A DED MCB PORT NUMBER (NSP)
RS RMSGQ,1 ;EXPENDED MESSAGE QUEUE
RS MSGQ,1 ;MESSAGE QUEUE
RS SMSGQ,1 ;SCHEDULER'S MESSAGE Q
RS ULLCZQ,1 ;QUEUE OF LL BLOCKS TO CLOSE BY NSPTSK
NR GUDOBJ,1 ;FLAG FOR "FOUND CORRECT OBJECT"
RS NSPLPB,1 ;RH IS PORT FOR LOOPBACK TESTING
RS SEGSZ,1 ;NSP SEGMENT SIZE
BIGNOD==:^D255 ;MAX NUMBER OF DECNET NODES IN NETWORK
NR NODMAP,BIGNOD+1 ;SESSION CONTROL'S NODE NAME MAPPING TABLE
NR NMAPLK,1 ;LOCK FOR NODE NAME MAPPING TABLE
RS NSBYTR,BIGNOD+1 ;NSP - "BYTES RECEIVED"
RS NSBYTS,BIGNOD+1 ;NSP - "BYTES SENT"
RS NSMSGR,BIGNOD+1 ;NSP - "MESSAGES RECEIVED"
RS NSMSGS,BIGNOD+1 ;NSP - "MESSAGES SENT"
NR NSCONR,BIGNOD+1 ;NSP - "CONNECTS RECEIVED"
NR NSCONS,BIGNOD+1 ;NSP - "CONNECTS SENT"
NR NSTIMO,BIGNOD+1 ;NSP - "TIMEOUTS"
NR NSRCNE,BIGNOD+1 ;NSP - "CONNECT RESOURCE ERRORS"
RS NSALNK,BIGNOD+1 ;NSP - "ACTIVE LINKS"
RS NSINAC,1 ;NSP INACTIVITY TIMEOUT VALUE
RS LSTINT,1 ;TIME OF LAST INACTIVITY TIMER CHECK
RS LSTTMR,1 ;TIME OF LAST TIME OUT QUEUE CHECK
NODTSZ==:<BIGNOD+21>/22 ;SIZE OF REACHABLE NODES TABLE
NR NODTBL,NODTSZ ;REACHABLE NODES TABLE
NTCMAX==:5 ;MAX # OF FORKS TO REMEMBER
NR NTCTAB,NTCMAX ;NETWORK TOPOLOGY CHANGE FORK TABLE
NR NSPMAX,DCN ;MAX SEG SIZE OF INTERCEPT NODE
NR ITSNAM,<DCN*2> ;MCB'S NODE NAME
NR ITSNUM,DCN ;MCB'S NODE NUMBER
NR ITSID,<DCN*^D9> ;MCB'S SYSVER STRING
RS NAKCNT,DCN ;COUNT OF NAK'ED SEGS
MCPRON==:.VNMCB ;MCB PROTOCOL IF DCN ASSEMBLED IN
> ;END OF IFG DCN CONDITIONAL
IFG DCN,<
RS MCBDTE,DCN ;THE DTE # OF THE MCB FRONT END
RS OURNAM,WPN ;SPACE TO HOLD LOCAL NODE NAME
RS OURCNT,1 ;COUNT OF CHARS IN "OURNAM"
>
IFE DCN,<MCPRON==:0> ;IF NO DCN, NO MCB PROTOCOL
;FOLLOWING IS A DUMMY FOR WHEN THERE IS NO DECNET. IT SHOULD NEVER BE EXECUTED
IFE DCN,<
NTCOFF::SETZRO FKNTC ;TURN OFF BIT THAT CAUSED US TO GET HERE
RETSKP>
;DEFINITION FOR ATS
IFN ATS,<
NDG ATJBMX,10 ;MAXIMUM NUMBER OF HTN'S PER JOB
>
IFE ATS,<
NDG ATJBMX,0 ;NO HTN'S IF NO ATS
>
RS ATSTYM,1 ;ATS TIMER (NEEDED BY DUMMY ATSINI ALSO)
;;; 100 - begin addition
IFN CHAOS,<
SUBTTL STORAGE FOR CHAOSNET
;PACKET SIZES (GLOBALS SO EVERYONE CAN GET AT THEM)
RS CHPMXC ;MAXIMUM NUMBER OF DATA BYTES LEGAL IN A PACKET
RS CHPMXT ;MAXIMUM NUMBER OF DATA BYTES ALLOWED IN FE PACKET
RS CHPMXW ;MAXIMUM NUMBER OF WORDS THEREIN
NDG MAXCON,100 ;MAXIMUM NUMBER OF CONNECTIONS
NDG CHRFMX,40 ;MAXIMUM NUMBER OF PENDING LISTENERS
NDG CHST2P,^D9 ;231 MAXIMUM NUMBER OF PAGES ALLOWED IN HOSTS2.BIN IMAGE
;191 CHAON must precede CHASBL
RS CHAON,1 ;NON-ZERO CHAOS NET IS ENABLED
RS CHASBL,0 ;STATUS BLOCK TO SEND TO -10
RS CHASDS,1 ;DEVICE STATUS
RS MYCHAD,1 ;MY ADDRESS ON THE NETWORK
RS NPKSIN,1 ;NUMBER OF PACKETS IN FROM INTERFACE
RS NPKSOU,1 ;NUMBER OF PACKETS OUTPUT TO INTERFACE
RS NPKSAB,1 ;NUMBER OF TRANSMISSIONS ABORTED
RS NPKSLS,1 ;NUMBER LOST TO BUSY INTERFACE
RS NPKSER,1 ;NUMBER OF PACKETS WITH CRC ERRORS BEFORE READ IN
RS NPKSRE,1 ;NUMBER READ OUT AS GARBAGE
RS NPKSBB,1 ;NUMBER WITH BAD BIT COUNT
RS NPKSIG,1 ;NUMBER OF PACKETS IGNORED FOR OTHER REASONS
CHASBS==:NPKSIG-CHASBL+1 ;191 LENGTH OF STATUS BLOCK
RS MXTWIN,1 ;MAXIMUM WINDOW SIZES FOR XMISSION AND
RS MXRWIN,1 ; RECEPTION
RS NMWIND,1 ;NOMINAL WINDOW SIZE
RS CHAFLG,1 ;CURRENT REQUESTS FOR CHAOS BACKGROUND FORK
NR CHAPFG,1 ;LAST STATE OF CHAFLG AT START OF BACKGROUND CYCLE
RS CHABFT,1 ;TODCLK SET BY BACKGROUND FORK ON EACH CYCLE
RS CHABFW,1 ;WHERE THE BACKGROUND FORK IS NOW (FOR DEBUGGING)
NR CHAONL,1 ;VALUE OF CHAON LAST TIME CHAOS FORK LOOKED
NR CHAONC,1 ;-1: NET JUST WENT DOWN, 1: JUST CAME UP
RS CHAFHN,1 ;CHAOS NET FORK HANDLE
RS CHATIM,1 ;TIME (TODCLK) OF NEXT BASIC CHAOS FORK CYCLE
NR CHATM1,1 ;TIME OF NEXT TIMEOUT PASS
NR CHATMA,1 ;PARALLEL FLAGS FOR THE ABOVE 2 CLOCKS
NR CHAT1A,1 ; COMING DUE
NR CHATM2,1 ;TIME OF NEXT RFC MATCHING PASS
RS CHNGTM,1 ;TIME FOR NEXT NEGOTIATION TIMEOUT CHECKS
RS CTMSTM,1 ;TIME FOR NVT SENDALL CHECKS
RS CVTPTR,1 ;AOBJN PTR FOR CHAOS NVTS
RS CHCNLK,1 ;CONNECTION TABLE LOCK
RS CHANPD,1 ;NUMBER OF PACKETS DISCARDED
RS CHANPO,1 ;NUMBER OF PACKETS ACTUALLY SENT OVER TO -11
RS CHANOL,1 ;NUMBER OF TIMES WE WANTED TO GO OVER -11 LIMIT
RS CHNPO1,1 ;NUMBER OF PACKETS OUTSTANDING IN -11 STILL
RS CHNPOW,1 ;WATCHDOG FOR CHNPO1
RS CHNPWT,1 ; AND TIMER FOR CHNPOW
RS CHALRW,1 ;LOCAL-ROUTING NEXT-CYCLE TIME
RS CHNPF,1 ;NUMBER OF PACKETS FORWARDED
RS CHNPKI,1 ;NUMBER OF PACKETS INPUT FROM -11
RS CHNSNS,1 ;NUMBER OF SNS PACKETS SENT
RS CHNSTS,1 ;NUMBER OF STS PACKETS SENT
RS CHNRTR,1 ;NUMBER OF RETRANSMISSIONS
RS CHNPOL,1 ;NUMBER OF PACKETS ROUTED LOCALLY
RS CHNNRS,1 ;NUMBER OF TIMES NO PKT STORAGE AT PI LEVEL
RS CHQLCL,1 ;LOCALLY-ROUTED PACKETS-IN-TRANSIT Q
; (PACKETS LINKED THROUGH XMIT ACTIVE IN PKTLNK)
RS CHQRFC,1 ;INCOMING RFC QUEUE
RS CHQRFP,1 ;PACKET BEING LOOKED AT BY CHAOS FORK
RS CHRFLK,1 ;LOCK FOR RFC TABLE
NR RFCTAB,CHRFMX ;RFC LISTENING TABLE
RS CHRFHC,1 ;GLOBAL RFC-HANDLER CONNECTION
RS CHACON,MAXCON ;RESIDENT CONNECTION TABLE
RS MYHNAM,^D50/5 ;MY OFFICIAL HOST NAME (FROM HOSTS2)
RS MYHTIM,1 ;LIMIT FOR WAIT ON MYCHAD TO APPEAR FROM -11
RS CHPIOF,1 ;USED FOR PI LOCKING
RS CHPIDF,1 ;USED TO HANDLE NESTED PI LOCKING
RS CHATTW,NTTCVT+1 ;NVTS-WITH-DATA-WAITING QUEUE
RS CHAPRO,1 ;206 CHAOSNET PROTECTION FLAG
RS CHPKTI,1 ; pointer to next chaos buffer
NR CHOSTP,1 ;HAVE A HOST TABLE IN CHOSTB WHEN NON-ZERO
NR CHANET,1 ;CHAOS NET NUMBER FROM HOST2
NR CHANAO,1 ;OFFSET OF CHAOSNET ADDRESS TABLE IN CHOSTB
NRP CHOSTB,<CHST2P*PGSIZ> ;HOSTS2.BIN IMAGE FOR HOSTNAME LOOKUPS
EXTN <CHADTB,CHAINI,CHTTC7> ;NECESSARY EXTERNALS
IFN NETN,<
RS CHARPQ,1 ;OUTGOING ARPANET QUEUE
RS CHATPB,^D<488/4>+CHPKDT ;TEMPORARY PACKET BUFFER IN SECTION 0
>;166
IFN SMFLG,<
;ON KS10, THE CHAOS HARDWARE IS PHYSICALLY ON THE MACHINE
;NEED STORAGE FOR INTERRUPT HANDLING
CHAIPS==:100 ;NEED LARGE PDL TO HACK CHAOS NET
RS CHAACS,20 ;INTERRUPT SAVE ACS
RS CHAIPL,CHAIPS ;INTERRUPT PDL FOR CHAOSNET
RS CHAXPC,4 ;XPCW BLOCK FOR CHAOSNET INTERRUPTS
RS CHATXQ,1 ;TRANSMIT QUEUE
>;IFN SMFLG,
>;IFN CHAOS, 100
;STORAGE FOR KMC11'S
IFLE KDPN,< ;ONLY IF NOT PRESENT
KDPINI==:R
KDPTSK==:R
IFN SMFLG,<
.BOOT:: MCENT
JRST UJSYS0
>
>
IFN DCN,<
RS KDPFLG,1 ;SET NONZERO WHEN NEED KMCTSK
>
IFG KDPN,< ;ONLY IF PRESENT
KMCQLN==:4+2*4*KDPN ;LENGTH OF KMC11 INPUT QUEUE
RS KMCINQ,KMCQLN ;QUEUE OF INPUT FOR KMC11
; 1ST WORD IS PUTTER, 2ND WORD IS TAKER
; REST IS 2 WORD ENTRIES
RS KMCACS,20 ;INTERRUPT SAVE ACS
KMCSZ==:50 ;LENGTH OF KMC PDL
RS KMCIPL,KMCSZ ;INTERRUPT PDL FOR KMC
KMCPDL::IOWD KMCSZ,KMCIPL ;SETUP WORD FOR KMC PDL USE
RS KDPLIM,1 ;LH IS NEGATIVE NUMBER OF DUP11'S ON SYSTEM
; RH IS 0
RS KDPNLN,1 ;POSITIVE NUMBER OF DUP11'S
RS KDPPAG,KDPN ;UBA ADR OF PAGE,,OUR ADR OF PAGE
RS KDPXPC,10 ;XPCW BLOCK FOR KMC11 INTERRUPTS
>
;STORAGE FOR DTE'S
IFG DTEN,< ;DTE STORAGE
RS UPFLAG,1 ;WORD TO GENERATE CONTINUED MESSAGE
NRP DTERBT,1000 ;PAGE TO DO -11 REBOOTS
EXTN <SVDTAC,INTDTE> ;NECESSARY EXTERNALS
RS LOAD11,1 ;IF AN -11 NEEDS TO BE LOADED
RS LODFRK,1 ;HANDLE OF MONITOR FORK DOING RELOADING
NQPKT==:^D20 ;NUMBER OF QUEUE PACKETS
QPKT==:5 ;SIZE OF A PACKET
RS(DTEDTE,1) ;CELL TO REMEMBER INTERRUPTING
; DTE
RS CTYUNT,1 ;FE PHYSICAL UNIT FOR TS TTY
RS DTEQS,DTEN ;SET UP DRIVER QUEUE HEADERS
RS NDTEMQ,DTEN ;COUNT OF MESSAGES QUEUED FOR EACH DTE
QPKT1==QPKT*NQPKT
RS(COMQ,QPKT1) ;SET UP PACKETS
RS(COMH,1) ;THE QUEUE HEADER
RS(DTESTS,DTEN) ;DTE STATUS WORD
RS(DTEST1,DTEN) ;SECONDARY STATUS WORD
RS(DTETMR,DTEN) ;TIMER VARIABLE
BUFSIZ==:^D34 ;TRANSFER BUFFER SIZE
BYTBUF==:BUFSIZ*4 ;BYTES PER BUFFER
RS(DTBFWD,DTEN) ;THE HEADER WORD FOR THE BUFFERS
DTESZ==:110 ;SIZE OF INTERRUPT STACK
RS(DTETRA,2) ;WORD FOR INTERRUPT RETURN
RS(DTESKP,DTESZ) ;THE LOCAL STACK
RS(DTEACB,20) ;BLOCK TO SAVE REGISTERS
RS(DTEIND,DTEN) ;STORAGE FOR INDIRECT FUNCTIONS
RS(DTEEND,DTEN) ;RESIDENT FREE SPACE DEBUGGING STORAGE
PKTSIZ==:3 ;THE QUEUE PACKETS
PKTSZ1==PKTSIZ*DTEN
RS(PKTADR,PKTSZ1) ;ONE PER DTE
COMSIZ==:COMDAT+COMRGN ;SIZE OF THE "BASIC" COMM REGION
CMSZ==:COMSIZ*<DTEN+1>+COMRGN*DTEN
RS(COMBUF,DTEN+1) ;SIZE OF "VECTOR" FOR THE COMM REGION
RS(COMBAS,CMSZ) ;ALLOCATE COMMUNICATIONS REGION
RS ENDRGN,0 ;END OF COMM REGION
IEXSIZ==:CMSZ-<DTEN+1> ;INITIAL EXAMINE SIZE
RS(TAD11,3) ;TIME FROM -11 CELL
RS(TO11TM,3) ;PACKET TO SEND TIME TO THE -11
KLISIZ==^D10 ;WORDS FOR KLINIK DATA BASE
KLIMAX==:<KLISIZ-1>*4 ;MAX NUMBER OF BYTES IN KLINIK DATABASE
RS (KLIDTA,KLISIZ) ;KLINIK DATABASE
;THIS MACRO GENERATES RESIDENT STORAGE AND CODE FOR EACH DTE.
;FOR EACH DTE, IT GENERATES A 4-WORD BLOCK FOR XPCW'S. THE TABLE
;DTETRP CONTAINS A PROTOTYPE XPCW FOR EACH DTE, WHICH POINTS TO
;THE 4-WORD BLOCK GENERATED HERE
DEFINE DTEPRO (UNIT)< ;MACRO TO GENERATE DTE INTERRUPT VECTOR
RS DTXPC'UNIT,4 ;MAKE PLACE FOR XPCW
DTEN'UNIT:JSR SVDTRJ ;;SAVE REGISTERS
MOVEI A,UNIT
DMOVE B,DTXPC'UNIT ;;GET INTERRUPT PC
DMOVEM B,DTETRA ;;TO COMMON TRAP CELL
CONI DTE'UNIT,F ;;GET DTE STATUS
JRST INTDTE ;;GO DO COMMON STUFF
>
;THIS MACRO GENERATES A PROTOTYPE XPCW FOR EACH DTE. THE VECTORS
;ARE STORED AT DTETRP AND COPIED AS NEEDED.
DEFINE DTEINN (UNIT)< ;;TO GENERATE INTERRUPT VECTOR
XPCW DTXPC'UNIT ;;THE XPCW
>
> ;END IFG DTEN
;THIS MACRO STORES IN THE XPCW BLOCK A POINTER TO THE CORRECT CODE
;FOR EACH DTE. THIS IN INVOKED IN THE STARTUP CODE AFTER RESIDENT
;STORAGE HAS BEEN CLEARED.
DEFINE DTXPCW (UNIT)< ;;TO STORE ADDRESS IN XPCW BLOCK
MOVEI T1,DTEN'UNIT ;;THE ROUTINE FOR THIS DTE
MOVEM T1,DTXPC'UNIT+3 ;;MAKE THE XPCW POINT TO THE RIGHT ROUTINE
>
IFN DTFLG,<
;FIXED LOCATIONS FOR DTE #0, OTHER DTE'S IN FOLLOWING 8-WORD BLOCKS
DTEEBP==:KIEPT+140 ;TO -11 BYTE POINTER
DTETBP==:KIEPT+141 ;TO -10 BYTE POINTER
DTEINT==:KIEPT+142 ;INTERRUPT LOCATION
; 143
DTEEPW==:KIEPT+144 ;EXAMINE PROTECTION WORD
DTEERW==:KIEPT+145 ;EXAMINE RELOCATION WORD
DTEDPW==:KIEPT+146 ;DEPOSIT RELOCATION WORD
DTEDRW==:KIEPT+147 ;DEPOSIT RELOCATION WORD
;FIXED CORE ADDRESSES IN EPT FOR DTE PROTOCOL
DTEFLG==:KIEPT+444 ;OPERATION COMPLETE FLAG
DTECKF==:KIEPT+445 ;CLOCK INTERRUPT FLAG
DTECKI==:KIEPT+446 ;CLOCK INTERRUPT INSTRUCTION
DTET11==:KIEPT+447 ;TO 11 ARGUMENT
DTEF11==:KIEPT+450 ;FROM 11 ARGUMENT
DTECMD==:KIEPT+451 ;COMMAND WORD
DTESEQ==:KIEPT+452 ;DTE20 OPERATION SEQUENCE NUMBER
DTEOPR==:KIEPT+453 ;OPERATION IN PROGRESS FLAG
DTECHR==:KIEPT+454 ;LAST TYPED CHARACTER
DTETMD==:KIEPT+455 ;MONITOR TTY OUTPUT COMPLETE FLAG
DTEMTI==:KIEPT+456 ;MONITOR TTY INPUT FLAG
DTESWR==:KIEPT+457 ;CONSOLE SWITCH REGISTER
SDTE==:3 ;SHIFT VALUE FOR EPT DTE SET
> ;END IFN DTFLG
IFN SMFLG,<
; EPT RESERVED LOCATIONS
SMTEPT==:KIEPT+100 ;POINTERS TO SM10 VECTOR TABLE
>
MSECTB=:KIEPT+540 ;MONITOR SECTION TABLE
;CELLS IN EXEC PROCESS TABLE (EPT)
USECTO==:540 ;OFFSET IN PT FOR USER SECTION
MXSECN==:37 ;HIGHEST POSSIBLE SECTION NUMBER
EPTMHI=:KIEPT+200 ;MAP FOR HIGH EXEC (400-777)
EPTTPI=:KIEPT+420 ;TRAP INSTRUCTIONS
EPTMLO=:KIEPT+600 ;MAP FOR LOW EXEC (0-337)
KIEMP==:KIEPT ;BASE FOR MONITOR PAGES 400-777
RS CONOPG,1 ;WORD FOR CONO PAG,@CONOPG
EPTGBP=:KIEPT+700 ;OWGBP UCODE TABLE STORAGE
OWGBPN==:722-700+1 ;THE OWGBP UCODE USES EPT LOCS 700-722
RSI OWGBPV,<440606360607,300610220611,140612060613
000646441015,341016241017,141020041055
440722350723,260724170725,100726010762
441130331131,221132111133,001170442235
222236002275,000000000000,464750515253
626364656600,555657600000,707172730000
757600000000>,OWGBPN
;ADD RESIDENT STORAGE FOR TAPE SCEDULER TEST
;DTESRV STORAGE
NR BTLOCK ;LOCK ON BOOT PAGE (DTERBT)
NR RLDFRK ;SYSTEM WIDE HANDLE OF RELOAD FORK
RS SNGPK1,6
RS SNGPK2,6
;LINEPRINTER STORAGE
NDG NLPBF,400 ;DEFAULT BUFFER SIZE
RS(LPTTYP,LPTN) ;TYPE OF LPT VECTOR FOR DEVICE INDEPENDENCE
RS(LPTSTS,LPTN) ; Status word
RS(LPTST1,LPTN) ;SECOND STATUS WORD
RS(LPTST2,LPTN) ;THIRD STATUS WORD
RS(LPTST3,LPTN) ;YES
RS(LPTERR,LPTN) ; LAST ERROR WORD
RS(LPTCNT,LPTN) ; Buffer counter
NRP(LPTBUF,LPTN*2*NLPBF) ;2 BUFFERS
RS LPTCLS,LPTN ;LPTCHK CLOCK SWITCH
RS LPTCCW,LPTN ;BLKI/O PTR
RS LPTICT,LPTN ;INTERRUPT BYTE COUNT
RS LPTCKT,LPTN ;INTERVAL FOR LPTTIM
RS(LPTLCK,LPTN) ; Lock on opening lpt
RS (PGDATA,LPTN) ;PAGE COUNTER PLACED HERE TO SEND IT TO -11
NR (LPTOFN,LPTN) ;VFU,,RAM OFN'S TO PREVENT OPENS FOR WRITE
LPFLSZ==:^D28 ;NUMBER OF WORDS IN FILENAME BUFFERS
NR (VFUFIL,LPFLSZ*LPTN) ;ALLOCATE SWAPPABLE STORAGE FOR VFU FILE NAMES
NR (RAMFIL,LPFLSZ*LPTN) ;ALLOCATE SWAPPABLE STORAGE FOR RAM FILE NAMES
IFN BALPTN,< ;#350
RS LPBAUN,1 ;#350 Unit # of the BA10 Lineprinter
RS LPBACC,1 ;#350 Column Counter for the BA10
RS BASTS,1 ;#350 Pseudo status of the BA10 LPT
> ;#350 End IFN BALPTN
IFN SMFLG,<
IFG <LPTN-1>,<PRINTX %%ILLEGAL NUMBER OF LINEPRINTERS DEFINED FOR KS10>
RS L11A,LPTN ;HOLDS FAKE -11 ADDRESS OF BUFFER
RS LPWINA,LPTN ;ADDRESS OF UNIBUS WINDOW
RS LPACS,20 ;AC'S DURING LPT INTERRUPT
LPSLEN==:50 ;LENGTH OF LPT INTERRUPT STACK
RS LPSTAK,LPSLEN ;PDL DURING LPT INTERRUPT
RS LPXJEN,1 ;XJEN INSTRUCTION FOR DISMISSING LPT INTERRUPT
RS LPXPTB,LPTN*4 ;LP INTERRUPT INSTRUCTION IS XPCW
; TO 4-WORD BLOCK IN THIS TABLE
LPERSZ==:6 ;NUMBER OF WORDS PER ERROR BLOCK
RS LPERBF,LPERSZ*LPTN ;ERROR BLOCK CONTAINING ERROR INFORMATION
;FOR SYSERR.
> ;END IFN SMFLG
IFG FEN,< ;PRIVATE STORAGE FOR FE DEVICES
RS FEUDB0,FEN
RS FEUDB1,FEN
RS FEUDB5,FEN
RS FEUDB6,FEN
RS FEUDB7,FEN
RS FEUDB3,FEN
RS FEUDB4,FEN
RS FELOCK,1
> ;END OF FE STORAGE DEFINITIONS
;PHYSICAL CARD PUNCH STORAGE
IFG PCDPN,<
CDPBFZ==:41 ; Size of CDP buffer
RS(CDPBF1,CDPBFZ) ; First buffer
RS(CDPBF2,CDPBFZ) ; Second buffer
RS(CDPSTS) ; Status word
RS(CDPLCK) ; CDP open lock
RS(CDPCNT) ; Count of full buffers
RS(CDPITC) ; Count of items remaining in current buffer
RS(CDPPTR) ; Byte bointer for emptying current buffer
RS(CDPSIO) ; Saved ios during interrupt
> ;END IFG PCDPN
;PHYSICAL CARD READER STORAGE
IFG CDRN,<
CDRSIZ==:^D40 ;SIZE OF A CARD IMAGE
CDRLEN==:2*CDRSIZ ;SPACE IN CDRBUF FOR 1 CDR
RS CDRCT1,CDRN ;BUFFER COUNT
RS CDRCKT,CDRN ;WORD FOR SCHEDULER TEST
RS CDRSTS,CDRN ;THE STATUS WORD
RS CDRST1,CDRN ;THE SECOND STATUS WORD
RS CDRST2,CDRN ;THIRD STATUS WORD
RS CARDCT,CDRN ;COUNT OF CARDS READ
RS CARDER,CDRN ;NUMBER OF "HARDWARE" ERRORS
RS CDRLCK,1 ;THE CDR LOCK WORD
RS CDRCNT,1 ;COUNT OF CDR'S OPENED
NRP CDRBUF,1000 ;THE BUFFER PAGE
IFN SMFLG,< ;KS PARAMETERS
RS CDUBAD,CDRN ;ADDRESS OF UBA WINDOW
RS CD11A,CDRN ;ADDRESS OF UBA-11 ADDRESS
RS CDERBF,CDRN*20 ;ERROR STATUS FOR CARDREADER
RS CDUNIT,CDRN ;UNIT NUMBER OF CARDREADER
>
>
IFG MTAN,<
;Private storage for magtapes
RESCD ;#167
GMTAN:: EXP MTAN ;#167 Will guarantee this many drives at
;startup
; SWAPCD ;#167
RS(MTALCK,MTAN) ;Lock word
RS(MTASTS,MTAN) ;Status of unit
NR(MTANR1,MTAN) ;NON-RESIDENT STORAGE FOR MAGTAPE
NR(MTANR2,MTAN)
NR(MTANR3,MTAN)
NR(MTANR4,MTAN)
NR(MTANR5,MTAN)
NR(MTANR6,MTAN)
RS(MTARS1,MTAN) ;RESIDENT STORAGE FOR MAGTAPE
RS(MTINDX,1) ;NUMBER OF REAL MTA'S ON SYSTEM, SET UP BY PHYM2
; AND/OR PHYX2
RS(MTPSFK,MTAN) ;PSI,,FORK # FOR ONLINE/OFFLINE INTERRUPTS ON TAPE
RS(MTCUTB,MTAN) ;CDB ,, UDB TABLE
MTBUFN==:2 ;NUMBER OF BUFFERS/IORB'S
MAXPPB==:20 ;MAXIMUM PAGES PER BUFFER
IRBLEN==:6 ;LENGTH OF AN IORB (ALSO IN PHYPAR)
MTIRSD==:IRBLEN ;START OF DEVICE SPECIFIC AREA
;SEE MAGTAP FOR DEFSTR'S OF THIS AREA
MTIRTL==:MTIRSD+2 ;START OF TRANSFER LIST
MTIRBL==:MTIRTL+MAXPPB+1 ;TOTAL LENGTH OF MAGTAPE IORB
MTABFL==MTAN*MTBUFN*MTIRBL
MTPBFL==MTBUFN*MAXPPB*MTAN
RS(MTAPBF,MTPBFL) ;SPACE FOR BUFFER PAGE POINTERS
RS(MTIRBF,MTABFL) ;SPACE FOR IORB'S
RS(MTIOWD,MTAN) ;Iowd for next transfer
RS(MTBIOW,MTAN) ;BACKUP IOWD (FOR NEXT XFER)
RS(MTAOLS,MTAN) ;LENGTH OF LAST XFER,,
RS(MTARCE,MTAN) ;Total error count
RS(REWCNT) ;Number of rewinding units
RS(MTERAS) ;Rewrite erase counter
RS(MTPNTR) ;Iowd during transfer
RS(MTAUNT) ;Unit currently attached to controller
RS(MTERRC) ;Retry counter
RS(MTERFL) ;State of retry
RS(MTACOM) ;Cono word of current operation
RS(MTDINR) ;Return address from data interrupt
RS(MTACLS) ;Clock routine switch, 0 for no clock wanted
;PRIVATE STORAGE FOR MT (DUMMY TAPES)
RS (TLABBP,2*MTAN) ;PNTR TO LOCKED BUFFER PAGE
RS (TLABR0,MTAN) ;RESIDENT STORAGE FOR LABEL INFO
NR (TLABL0,MTAN) ;NON-RESIDENT STORAGE FOR TAPE
NR (TLABL1,MTAN) ; LABEL INFORMATION
NR (TLABL2,MTAN)
NR (TLABL3,MTAN)
NR (TLABL4,MTAN)
NR (TLABL5,MTAN)
NR (TLABL6,MTAN)
NR (TLABL7,MTAN)
NR (TLABL8,MTAN)
NR (TLABL9,MTAN)
NR (TLAB10,MTAN) ;PROTECTION FIELD, ETC
NR (TLAB11,MTAN) ;WORD TO HOLD OF MAGTAP PARAMS
NR (TLAB12,MTAN) ;HOLD VOL SET NAME IN HERE
NR (TLAB13,MTAN) ;HOLD EXP DATE HERE
NR (TLAB14,MTAN) ;SEQUENCE NUMBERS
NR (TPFCNT,MTAN) ;MT FILCNT (JFN1
NR (TPFBYN,MTAN) ;MT FILBYN (JFN)
NR (TPFLEN,MTAN) ;MT FILLEN (JFN)
NR (TPFLNX,MTAN) ;COUNT OF BYTES (OF FILLEN(JFN))
;WIICH ARE EXPECTED IN NEXT RECORD (SPANNED)
NR (TPSBYT,MTAN) ;SAVES POINTER TO WHERE SCW/SCW SHOULD GO
;WHEN RECORD IS COMPLETE, ALSO TPSCUP
> ;END IFG MTAN
IFE MTAN,<
MTCLVA:: ;DUMMY FOR MTA CLEAR ALL VALID VOLUME BITS
MTCLVL:: ;DUMMY FOR SINGLE CLEAR VALID VOLUME
MTAKFK::RET ;DUMMY FOR KILL PSI
> ;END IFE MTAN
RS(MTAJB0,1) ;JOB 0 FLAG FOR MTA UNIT CAME ON LINE
IFG PLTN,<
;PLOTTER STORAGE
PLTBFZ==:401 ; Size of plt buffer
RS(PLTBF1,PLTBFZ*PLTN) ; First buffer
RS(PLTBF2,PLTBFZ*PLTN) ; Second buffer
RS(PLTSTS,PLTN) ; Status word
RS(PLTLCK,PLTN) ; Plt open lock
RS(PLTCNT,PLTN) ; Count of full buffers
RS(PLTITC,PLTN) ; Count of items remaining in current buffer
RS(PLTFDC,PLTN) ; SPECIAL FUNCTION TO BE DONE
RS(PLTPTR,PLTN) ; Byte bointer for emptying current buffer
RS(PLTPWR,PLTN) ;PLOTTER HAS REMOTE POWER INDICATE
> ;END OF IFG PLTN
IFG PTPN,<
PTPBFZ==:41 ; Size of ptp buffer
RS(PTPBF1,PTPBFZ) ; First buffer
RS(PTPBF2,PTPBFZ) ; Second buffer
RS(PTPSTS) ; Status word
RS(PTPLCK) ; Ptp open lock
RS(PTPCNT) ; Count of full buffers
RS(PTPITC) ; Count of items remaining in current buffer
RS(PTPFDC) ; Count of lines of feed left to punch
RS(PTPPTR) ; Byte bointer for emptying current buffer
RS(PTPSIO) ; Saved ios during interrupt
> ;END IFG PTPN
IFG PTRN,<
PTRBFZ==:41 ; Size of ptr buffers
RS(PTRBF1,PTRBFZ) ; First buffer
RS(PTRBF2,PTRBFZ) ; Second buffer
RS(PTRSTS) ; Status word
RS(PTRLCK) ; Ptr open lock
RS(PTRCNT) ; Count of full buffers
RS(PTRITC) ; Count of room left in filling buffer
RS(PTRCHC) ; Count of items inserted in buffer
RS(PTRPTR) ; Byte pointer for filling buffers
RS(PTRSIO) ; Saved ios during int
> ;END IFG PTRN
IFG VBCN,<
RS(PENLOC,4) ;X,Y COORDINATE OF LAST PEN HIT
PENADR==:PENLOC+1 ;PROGRAM ADDRESS OF WHERE HIT OCCURED
ERRLOC==:PENLOC+2 ;X,Y COORDINATE OF FIRST ERROR SEEN
ERRADR==:PENLOC+3 ;ADDRESS OF WHERE ERROR OCCURED
RS(DISREL) ;8 BIT BOUNDRY OF FIRST LOCKED PAGE
RS(DISPRT) ;# OF 1K PIECES OF CORE LOCKED
RS(DISBEG) ;LH=PROTECTION AND RELOCATION FOR DISPLAY
;RH=STARTING ADDRESS OF DISPLAY PROGRAM
RS(VBCIOS) ;STATUS WORD
> ;END IFG VBCN
IFG NETN,<
;SIZES OF NETWORK TABLES.
NDG NSQ,10 ;NUMBER OF SPECIAL IMP QUEUES TO HANDLE
IMP8XS==:40 ;SIZE OF IRREG MESSAGE BUFFER
NIMSTK==:50 ;SIZE OF PI LEVEL STACK
NDG IMPNLK,^D199 ;SIZE OF LINK TABLES
NDG NSKT,^D127 ;MAX NUMBER OF SOCKETS DEFINED AT ONCE
NDG NHOSTS,^D397 ;LENGTH OF HOSTN TABLE (MUST BE PRIME)
NDG NHSTN,1400 ;LENGTH OF HOST NAME TABLE (TEXT)
RfnTsz==:400 ;#36 Size of Rfnm count table
IMPLBT==:10 ;LENGTH OF OLD BIT TABLE
NHSTST==:200 ;LENGTH OF OLD HOST STATUS TABLE
;STORAGE
RS RFNFLG,1 ;#36 Flag to enable/disable rfnm counting
RS RFNTOP,1 ;#36 Flag to say top msg on Q OK
RS RFNQBK,1 ;#36 Temp back pointer for special DeQing
RS RFNMAX,1 ;#36 Max # rfnms allowed out to any one host
RS RFNCTM,1 ;#36 Time of next rfntab clear
RS RFNINT,1 ;#36 Interval to do rfntab clearing
RS RFNBLK,1 ;#36 Times ncp code blocked somebody
RS RFNLST,1 ;#36 Last host that got blocked
RS RFNCLN,1 ;#36 Times rfnm table gets cleared
RS NCPSTC,1 ;#112 NCP Sleep time constant- min sleep time
RS NCPTIM,1 ;#112 Time NCP fork can awake after min sleep
RS IMPFLG,1 ;SERVICE NEEDED BY ASYNC PROCESS
RS IMPIBI,1 ;IN BUFFERS IN PTR
RS IMPIBO,1 ;IN BUFFERS OUT PTR
RS NCPFRK,1 ;FORKX OF NCP FORK
RS IIMBUF,3 ;IMP IRREG MSG BUFFER, FOR OUTPUT SIDE
RS TTNOF,1 ;SCAN OF NET TTY LINES REQUESTED IF NON-0
RS NOIBFS,1 ; Flag that input buffer pool ran dry
RS IMPNOS,1 ;OUTPUT SCAN REQUEST FLAG
RS IMINFB,1 ;BUFFERS MADE FREE BY PI ROUTINES
RS IDVLCK,1 ;LOCAL LOCK
RS IDVLLK,1 ;LAST IDVLCK LOCKER
RS IMPOJB,1 ;OLD JOBBIT OF CURRENT IDVLCK LOCKER
RS IMPFRI,1 ;LIST OF FREE INPUT BUFFERS
RS IMPNFI,1 ;COUNT OF FREE INPUT BUFFERS
RS SIQNXT,1 ; Time next special Q message expires
RS SIQIBI,NSQ ;SPECIAL QUEUE
RS SIQIBO,NSQ
RS SIQTIM,NSQ ;TIME OF FIRST MESSAGE ON SPECIAL QUEUE
RS SIQSPC,NSQ ;SPACE OCCUPIED BY SPECIAL INPUT Q
RS SQJOB,NSQ ;JOB TO WHICH SPECIAL Q IS ASSIGNED
RS SQVAL1,NSQ ;VALUES FOR UP TO 3 WORDS OF LEADER
RS SQVAL2,NSQ
RS SQVAL3,NSQ
RS SQMSK1,NSQ ;MASKS FOR UP TO 3 WORDS OF LEADER
RS SQMSK2,NSQ
RS SQMSK3,NSQ
RS SQLCK,1 ;INTERLOCK FOR ASSIGNING SPECIAL Q
RS MLCIBI,1 ;MLC (PTIP) TRAFFIC BUFFER LIST POINTERS
RS MLCIBO,1 ; ..
RS IMPNCL,1 ;NUMBER OF CONTROL INPUT CONNS
RS IMPNOL,1 ;NUMBER OF CONTROL OUTPUT CONNS
RS LNKNDL,1 ;NUMBER OF DELETES IN LINK TABLE
RS IMPTIM,1 ;TIME OF NEXT CLOCK RUN DOWN
RS IBPTIM,1 ;TIME OF NEXT IMPIBP RUN
RS NETTIM,1 ;TIME OF NEXT CHECK OF FSM FOR HANGS
RS RFNTIM,1 ;TIME OF NEXT CHECK FOR LOST RFNM'S
RS NEGTIM,1 ;NEGOTIATION TIME-OUT CLOCK
RS ITMSTM ;TIME TO FLUSH ALL TTMSG'S TO NVT'S
RS IMPCHU,1 ;0 IF CURRENT CONTROL MESS HOST NOT UP
RS IMPCHO,1 ;HOST NUMBER OF CONTROL MSG, MUST PRECEDE I8CAL
RS I8CAL,5 ;ARGS OF CONTROL OPERATION, MUST FOLLOW IMPCHO
RS I8COP,1 ;LAST CONTROL OP-CODE
RS IMPGDM,1 ;LAST IMP GOING DOWN MSG
RS IMP8XI,1 ;IRREG MES BUFFER IN PTR
RS IMP8XO,1 ;.. .. OUT
RS IMP8XC,1 ;.. .. COUNT
RS IMP8XB,3*IMP8XS ;IRREG MES BUFFER
;;;
;;; Note that the following uses the DEFWRD macro, which is defined in
;;; MNTPAR.MAC
;;;
DEFHDR(<LINK-TABLES>,1000) ; Storage after first page
;;; *NOTE* That the following storage must be locked down before
;;; being used
;LINK TABLES
BIMPLK==:..OFST ; First address to lock
DEFWRD IMPLT1,IMPNLK ;LH -- UNIT (INDEX TO NCP TABLES)
; OR -1 IF CONTROL LINK
;B18-19 00 RECIEVE
; 10 SEND
; 11 FREE
; 01 DELETE
;B28-35 -- LINK
DEFWRD IMPLT2,IMPNLK ;B0-9 -- FLAGS
;B10-17 -- BYTE SIZE
;RH -- IN BFR PTR
DEFWRD IMPLT3,IMPNLK ;LH -- OUT BFR PTR
;RH -- SAVE MESSAGE FOR RETRANSMISSION
DEFWRD IMPLT4,IMPNLK ;LH -- CURRENT BUFFER
;RH -- MSG ALLOCATION
DEFWRD IMPLT5,IMPNLK ;B4-11 -- NETWORK
;B12-27 -- IMP
;B28-35 -- HOST
DEFHDR(<SOCKET-TABLES>,..OFST) ; Socket tables follow
DEFWRD(LSKT,NSKT) ;LOCAL SOCKET NUMBER
DEFWRD(FSKT,NSKT) ;FOREIGN SOCKET NUMBER
DEFWRD(NETHST,NSKT) ;-1 IF NO HOST
;B4-11 -- NETWORK
;B12-27 -- IMP
;B28-35 -- HOST
DEFWRD(NETAWD,NSKT) ;B0-8 -- LINK NUMBER (0 IF NONE)
;B18-23 -- TIME-OUT COUNTDOWN
;B24-35 -- INDEX TO LINK TABLES
DEFWRD(NETBAL,NSKT) ;BITS OF ALLOCATION
DEFWRD(NETDAL,NSKT) ;DESIRED LEVEL OF BIT ALLOCATION
DEFWRD(NETBUF,NSKT) ;LH -- BYTES PER BUFFER
;RH -- BUFFER LOCATION -1 (0 FOR NONE)
DEFWRD(NETSTS,NSKT) ;B0-3 -- FSM STATE
;B4-11 -- FLAG BITS
;B12-17 -- BIT STREAM BYTE SIZE
;RH -- MESSAGE COUNT STATISTICS
DEFWRD(NETFRK,NSKT) ;B0-5 -- INTERRUPT CHANNEL FOR INS
;B12-17 -- FSM STATE CHANGE INTERRUPT CHANNEL
;RH -- FORKX OF FORK TO INTERRUPT
DEFWRD(NETBTC,NSKT) ;BIT COUNT STATISTICS
;;; End of locked dowm imp storage
EIMPLK==:..OFST ; ...
;;; The following tables are kept in MNTSEC (currently == ANBSEC )
DEFHDR(<HOST-TABLES>,100000) ; Move host tables up so no overlap
BMNTLK==:..OFST ; First location to lock down
DEFWRD(HOSTNN,NHOSTS) ;HOST NUMBERS
DEFWRD HSTSTS,NHOSTS ;DEAD HOST STATUS TABLE (18 BITS PER HOST)
EMNTLK==:..OFST ; last location to lck down
;;; the following are swappable
DEFWRD(HOSTN,NHOSTS) ;TABLE OF HOST FLAGS,,POINTERS TO NAMES.
DEFWRD(HOSTPN,NHOSTS) ; Primary name for this number
DEFWRD(HSTNAM,NHSTN) ;TEXT TABLE OF HOST NAMES
;;; The following parallel tables are used for looking up network numbers
RS(NETHTB,NETHSZ) ; Network number hash table
RS(NETGWY,NETHSZ) ; Path (interface or gateway) to a network
RS(NETIFC,NETHSZ) ; Interface that gateway is on
IFN NETN,<
NDG RFNTSZ,^D64 ; Size of RFNM hash table (must be power of 2)
RS(RFNTAB,RFNTSZ) ; RFNM counting hash table
RS(RFN8TO,RFNTSZ) ; timeout
>
;;; These are part of the NETRDY GETAB Table
RS NETENT,1 ; Flags to drive NETSER etc.
RS IGDMSG,1 ; Last IMP Going down message
RS IGDTIM,1 ; time of it
NR ABFCNT ; Counter of NETABF BUGINFs
;;; Used by Multinet fork
RS MNTFRK ; FORKX
RS MNTFLG ; Wakeup flag
RS MNTTIM ; when needed next
;;;
;;; Table used to initialize the other protocals, first entry is the
;;; size, rest are routines to call to start the protocal up.
;;;
RESCD
INIPTL::EXP INIPTS ; Number of entries
IFN INETN,<IFIW!INTBEG> ; Start up Internet
IFN NETN,<IFIW!IMPBEG> ; Start up NCP
IFN CHAOS,<IFIW!CHAINI> ; Start up chaos net
IFN MLCN,<IFIW!MLCBEG> ; Start up PTIP protocal
INIPTS==<.-INIPTL>-1 ; Number of entries
;;;
;;; Storage for Multinet device drivers /NCTs
;;;
.PSECT RSDAT ; In resident data area
.NCTS::
MKNCTS ; Make the actual NCTS
;;; NCT Vector table
NCTVT:: MKPTRS ; And the pointers thereto
;;; Interrupt storage
IFG ANXN+BBNN,< ; If any 1822's are defined
RS IMSTK,NIMSTK ; Stack storage area
>
.PSECT RSDAT ; In resident data area
IFG ANXN+BBNN,<
IMPPDP:: IOWD NIMSTK,IMSTK ; Stack pointer for AN20 interrupts
>
;;; (if we put all interfaces on one level, we can maybe combine these stacks)
IMPNIB:: ^D8*<BBNN+ANXN> ; Number input buffers to keep on tap
IFG NFEN,<
IFE ANXN+BBNN,<
RS NFESTK,NIMSTK ; Actual stack
NFEPDP::IOWD NIMSTK,NFESTK ; Stack for Network-front-end DTE interrupts
> ; End of IFE ANXN+BBNN
IFN ANXN+BBNN,<
NFEPDP==:IMPPDP ; Use IMP stack if it's defined
NFESTK==:IMSTK
> ; End of IFN ANXN+BBNN
> ; End of IFG NFEN
RS NUMNCP,1 ; Number of NCP Type nets up
RS NETSUP,1 ; Flag That MNTINI has completed
;VARIABLES
DBGNBF==:100
RS(DBGFAC,1) ;FAILURE COUNTER
RS(DBGSP,1) ;STORE POINTER
RS(DBGRP,1) ;READ POINTER
RS(DBGNWD,1) ;NUMBER OF WORDS IN BUFFER
RS DBGERR,1 ;SET TO LOG ERROR ACTIVITY
RS DBGNCP,1 ;SET TO LOG NCP ACTIVITY
RS DBGINT,1 ;SET TO LOG Internet ACTIVITY
NR(DBGBUF,DBGNBF) ;DEBUG BUFFER
RS(NCPLCK) ;LOCK TO PREVENT DOFSM CONFUSION
RS(NCPLLK) ;FORKX OF LAST NCPLCK LOCKER
RS(NCPLPC) ;PC OF LAST NCPLCK LOCKER
RS(NCPLCN) ;COUNT OF NCPLCK LOCKS
RS(NCPLFC) ;COUNT OF NCPLCK FAILURES
RS(ASNTBC) ;ASNTBF TRAFFIC COUNTER
RS(NETCNC) ;COUNT OF TOTAL CONECTIONS OPENED
RS(FUNNYC) ;COUNT OF FUNNY INPUTS TO FSM
IFE SMFLG,<
NTBUFS==:400000 ;START OF NETWORK BUFFER SECTION TO USE
>
IFN SMFLG,<
NRP(NTBUFS,NNTBFS) ;ARPAnet buffers for KS10
>
RS(NETFRE,5) ;NET BUFFER FREE LIST HEADER
;WD 0 IS BUFFER FREE LIST POINTER
;WD 1 BUFFER LOCK
;WD 2 TOTAL FREE BUFFER SPACE
;WD 3 START OF BUFFER AREA
;WD 4 END OF BUFFER AREA
RESCD
ASNTHR::^D8
;RS(ASNTHR,1) ;THRESHOLD BELOW WHICH WE GET NERVOUS
SWAPCD ; ABOUT BUFFER SPACE
NR(MHOSTS,1) ;MINUS NUMBER OF HOSTS IN TABLE.
> ; END of IFG NETN
IFE INETN,< ; Stuff when Internet not included
.ASNIQ::.RELIQ::.SNDIN::.RCVIN:: JRST UJSYS0
INTLGO::INTBEG::RET
RS INETID,1 ; Our Internet ID
RS INETLB,1 ; Logical host bits (a mask)
RS TNBFFL,1
RS INTNCP,1
RS INTOBI,1
RS INTOBO,1
RS INTON,1
RS INTIBI,1
RS INTIBO,1
RS INTNFI,1
RS INTFRI,1
RS INTNFB,1
RS INTFLG,1
> ; End IFE INETN
IFE TCPN,< ; Stuff when TCP not included
.SEND:: .RECV:: .OPEN:: .CLOSE:: .SCSLV::
.ABORT::.STAT:: .CHANL:: JRST UJSYS0
CHKTVT:: ABTJCS:: RET
RS TCPON,1
RS TCPIFG,1
RS TCPIPQ,1 ; Pointer to TCP input queue head
RS TCPFLG,1
>; End IFE TCPN
IFG INETN,<
NR INTRAN,1 ; IP reassembly packet number
NR INTRAQ,1 ; (Extended) pointer to IP fragment ra queue (PKTQ)
NR INTRAT,1 ; TODLCK of next fragment to timeout (RCVFLS)
RESCD
INTBYP::-1 ; Internet bypass 0 no, -1 ok
..MXSZ==^D1004 ; **** (should be runtime configured)
INTXPB::..MXSZ ; Maximum PIPL for all interfaces (bytes)
INTXPW::<PKTELI+<<..MXSZ+3>/4>+1> ; # Words in max pkt bfr (+1) (PFSIZ=1)
NR PPBUF,PPBWDS ; Packet printer buffer
NR PPBLCK,LOCKSZ ; Lock on PPB
TCPPFN::ASCIZ /PS:<OPERATOR>IPTRAC.BIN/ ;P777777
BLOCK 3
NR TCPPSJ,1 ; Jfn of Simulation file (containing PKTs)
NR TCPPSQ,1 ; Queue of PKTs read so far (maybe RXed)
TCPPSA::BYTE (4)0(8)^D10,0,0,^D5 ; BBNF TCP Development System
IF2 <IFE INTSEC,<PRINTX % Warning: Cannot use default trace in single section machine>>
.PSECT RSDAT ;in resident data area
TCPPTB::INTSEC,,600 ; Defaults if not CALL TCPPIN
TCPPTC::INTSEC,,600 ; Current buffer pointer
TCPPTE::INTSEC,,730 ; Sav Dump <N,,garb>,N<data>
TCPPTO::0 ; IMP Dump <N>,<time>,N<data>
; IP Dump <adr,,N+1>,N<data>
.ENDPS RSDAT
RS INETID,1 ; Our Internet ID
NR INTSCR,1 ; Set non-0 to run in secure mode
NR INTSVC,1 ; Count of scavenges of free storage
NR INTSVR,1 ; Flag to request a scavenge
NR INTSVT,1 ; TODCLK of most recent scavenge BUGINF
RS INTBFF,NTWBWD ; Free wait bit indicators
RS INTABC,NTACWD ; Per fork count of ABORTed TCBs
INTCLS::EXP 4B6,4B6,4B6,4B6,6B6,6B6,7B6,7B6 ; Network class mask
INTLHX::3 ; Maximum logical host value delivered to protocols
INTNET::EXP 37700000000,37700000000,37700000000,37700000000
EXP 37777600000,37777600000,37777777400,37777777777
RS INTFLG,1 ; Flag to make the Internet fork run
RS INTTIM,1 ; TODCLK when Internet fork should run next
RS INTTRC,1 ; Trace bits
RS INTFRK,1 ; FORKX Running Internet
RS INTIBO,1 ; ateway input queue output pointer
RS INTIBI,1 ; Gateway input queue input pointer
RS INTNFB,1 ; Empty output buffer list pointer
RS INTFRI,1 ; Free input buffer list pointer
RS INTNFI,1 ; Free input buffer count
RS INTNIB,1 ; Number of free input buffers desired
RS INTON,1 ; -1 If IP initialized, 0 if not
; Internet Protocol Tables
; *** Do not separate
RESCD
DEFINE PCLTAB (NAM,PRT)<
.X=.
RELOC .X+.INTPC
MSEC1,,NAM'CHK
RELOC .X+.INTPF
NAM'FLG::0
RELOC .X+.INTPI
MSEC1,,NAM'INI
RELOC .X+.INTPQ
NAM'IPQ::0
RELOC .X+.INTPO
NAM'ON:: 0
RELOC .X+.INTPL
IFB <PRT>,<NAM'PCL:: .'NAM'FM>
IFNB <PRT>,<NAM'PCL:: PRT>
RELOC .X+.INTPP
MSEC1,,NAM'PRC
RELOC .X+.INTPS
NAM'SID::0
RELOC .X+.INTPT
NAM'TIM::377777777777
RELOC .X+.INTPE
MSEC1,,NAM'ICM
RELOC .X+.INTPZ
>
.PSECT RSDAT ;in resident data area
INTPIX::-4,,.INTPZ ; -# protocols,,Table length
; Tables follow INTPIX
; TCP table
PCLTAB (TCP)
; GGP table
;; PCLTAB (GGP)
; ICMP table
PCLTAB (ICM)
; Internet User Queue table
; NOTE: This must be last since protocol -1 takes anything
PCLTAB (INQ,-1)
BLOCK .INTPZ ; Spare for tests
.ENDPS RSDAT
SWAPCD
; *** End of do not separate
;;; extra ICMP storage
RS PINGTM ; Time of next gateway ping
RS NETHTM ; Time to re-init the network cache
RS GWTAB ; Pointer to gateway tables
RESCD
PINGT0::^D37000 ; Ping interval (should be prime to
; avoid interactions with other things,
; and should be long enough to avoid putting a
; burden on the host)
NETHT0::^D<6*60*60*1000> ; Interval to clear hash table, msec
; Internet queue storage:
RESCD
INTQMX::^D8 ; Max # of packets in RCVIN queue (INTSQP)
INTQT0::^D30000 ; Internet user queue (packet) timeout, msec (INTQTM)
RS INTQFK,NIQ ; Forkx waiting for stuff on this queue
NR INTQHD,1 ; Pointer to table of queue heads
NR INTQJB,NIQ ; Job owning this queue
NR INTQLK,LOCKSZ ; Lock on queue tables
NR INTQM0,NIQ
NR INTQM1,NIQ
NR INTQM2,NIQ
NR INTQM3,NIQ
NR INTQV0,NIQ
NR INTQV1,NIQ
NR INTQV2,NIQ
NR INTQV3,NIQ
NR INTQSP,NIQ ; Number of messages on this queue
NR INTQTM,NIQ ; Timeout for this queue
; Free Storage:
NR INTBLK,NFIXED
NR ODDBLK,1 ; Odd length blocks list
NR BULKST,1 ; Start of bulk storage
NR BULKND,1 ; End of bulk storage
NR MRGFLG,1 ; Non-0 if a garbage collect might help
NR INTFSP,1 ; Amount of free space currently available
NR FRELCK,LOCKSZ ; Lock on the free storage area
IFKA <NR INTFRE,INTFSZ> ; The free storage area
IFSM <NR INTFRE,INTFSZ> ; The free storage area
IFKL < INTFRE=:1000 ; in INTSEC
INTFSZ==:777000>; use all but page 0
NR BADPCT,1 ; Packets received with bad checksum, etc
NR GENCFL,1 ; General lock conflits counter
>
IFG TCPN,< ; TCP STORAGE
IFE INETN,<PRINTX ? You can't have TCP without Internet>
RS TVTPTR,1 ; AOBJN ptr over TCP Virtual terminals
RS TVTNOF,1 ; TCP output scan needed
RS TVTNTM,1 ; Time to check for over TVT negotiations
RS TVMSTM,1 ; TVT sendall timer
RS TVTLSN,1 ; TVT listening JCN
TVTWTM::^D2000 ; Msec to wait when window filled
RS INTWTB,NTWBWD ; Scheduler wait bits. One per lock, buffer, etc
NR NXTLBL,1 ; Next packet label
NR STATF,1 ; Set non-0 to take statistics
NR TCBCNT,1 ; Count of TCBs now in use
NR TCBDQ,1 ; Head of dead TCB queue (SCAN:)
NR TCBH,1 ; TCB Hash table location
NR TCBHLK,LOCKSZ ; TCBH Lock
NR TCBHUC,1 ; TCBH Use Count
TCBMAX::MAXTCB ; Maximum number of TCBs allowed
RS TCPABC,NTACWD ; Abort counters
RS TCPBDQ,1 ; Buffer done queue
TCPBGT::^D30000 ; BG time interval, msec
TCPBYS::4400+17*4+17*4 ; Max local (bypass) packet size - 1 page + overhead
TCPCKT::^D10000 ; TCP check interval, msec
TCPDGT::^D30000 ; DG time interval, msec
TCPDTL::^D60 ; Default Time to live, seconds
TCPDXD::^D2 ; Default RX denominator
TCPDXI::^D10 ;#470 Default RX interval, seconds
TCPDXN::^D3 ; Default RX numerator
RS TCPIDQ,1 ; Head of IP's dead queue
RS TCPIFG,1 ; Set non-0 after TCP initialized
TCPISN::^D<<MAXSEQ/8>*<<24*60*60>/CYCTIM>> ; TCP sequence # per second
EXP 3 ; Scale factor (8 above) to prevent MUL overflow
TCPPTM::^D300 ; Maximum persistence time, seconds (send timeout)
TCPRA0::^D100 ; Msec to wait for RA to process input packet
TCPRX0::^D10000 ;#470 Initial RX interval, msec
TCPRXF::0,,-4 ; Scale factor for TCPRXS & TCPRXV (ASH x,@TCPRXF)
TCPRXN::^D1000 ; Minimum RX interval, msec
TCPRXS::15 ; 0.1101 = 0.8125
TCPRXV::30 ; 1.1000 = 1.5
TCPRXW::^D120000 ; RX probe into zero window, msec
TCPRXX::^D60000 ; Maximum RX interval, msec
TCPSY0::^D2000 ; Msec delay on re-synchronization attempts
RS TCPUS0,1 ; Saved TCP fork UPT pointer
NR PROC,1 ; Points to currently running "process" in TCP
; "Process" control blocks
NR PZ,PROCSZ ; Packetizer
NR IP,PROCSZ ; InputProcessor
NR RA,PROCSZ ; Reassembler
NR RX,PROCSZ ; Retransmitter
NR DG,PROCSZ ; Delayed Actions Generator
NR BG,PROCSZ ; Background
NR STAT0,0 ; Marks first cell cleared by STSINI
NR SYNSCT,1 ; SYNs counter
NR SYNRCT,1 ; SYNs received counter
NR BYTSCT,1 ; Bytes sent counter
NR BYTRCT,1 ; Bytes received counter
NR FINSCT,1 ; FINs sent counter
NR FINRCT,1 ; FINs received counter
NR RSTSCT,1 ; RSTs sent counter
NR RSTRCT,1 ; RSTs received counter
NR PZPKCT,1 ; Packets produced by Packtizer
NR OPPKCT,1 ; Packets output to the network
NR IPPKCT,1 ; Packets handled by InputProcessor
NR RAPKCT,1 ; Packets processed by Reassembler
NR RXPKCT,1 ; Packets retransmitted
NR DUPKCT,1 ; Count of duplicates received
; Task counters
NR PZRNCT,1 ; Count of times Packetizer has run
NR OPRNCT,1 ; Count of times OutputProcessor has run
NR IPRNCT,1 ; Count of times InputProcessor has run
NR RARNCT,1 ; Count of times Reassembler has run
NR RXRNCT,1 ; Count of times Retransmitter has run
NR DGRNCT,1 ; Count of times Delay Action has run
NR BGRNCT,1 ; Count of times Background has run
NR TASKCT,1 ; Count of all tasks run
; Delay histograms
NR PZDLAY,HISTSZ
NR OPDLAY,HISTSZ
NR IPDLAY,HISTSZ
NR RADLAY,HISTSZ
NR RXDLAY,HISTSZ
NR ACDLAY,HISTSZ
; CPU Usage meters
NR PZUSE,1
NR OPUSE,1
NR IPUSE,1
NR RAUSE,1
NR BGUSE,1
NR RXUSE,1
NR DGUSE,1
NR OHUSE,1
NR TIMPTR,1 ; Current timer. Points to one of the above
NR STATZZ,1 ; Marks last cell cleared by STSINI
> ; END IFG TCP
; Dummy routines for Raw Packet Interface. Needed only if TCP is included
; but no RPI is present.
IFE RPIN,<
IFG TCPN,<
RPIQOB::BUG(RPINX)
RPICHK::RPIINI::RET
RPISRT::JRST 0(T4)
>
>
; Storage for Raw Packet Interface:
IFG RPIN,<
RS RPIIB,1
RS RPIICT,1
RS RPIINP,1
RS RPIOB,1
RS RPIOBI,1
RS RPIOBO,1
RS RPIOCT,1
RS RPIOUP,1
RS RPIS32,1
RS RPOS32,1
>
RESCD
IFN INETN,<
IF1 <PRINTX % SETSPQ assumed to be in SCHED (BBN) >
;;;;SETSPQ::RET ; Not able to do this with DEC scheduler
>
IFE TCPN,<
TVTPTR::0
TCPIX==:0
>
IFE NETN,<
IFN INETN,< ; Internet but no network:
INTQOB::RET ; No skip return means pkt not accepted for o/p
DBGIN::RET ; DBGIM interface for TCP
MAXWPM::400 ; Maximum words per message
>;END OF IFN INETN
;DUMMY ROUTINES FOR NON-ARPANET SYSTEMS
; Set local host number routine. Takes old or new style number.
; Sets to new style, and puts it in NLHOST.
; SETSPD does this. We allow a host to have a name even though the
; ARPANET code is not assembled in. This allows TCP, etc. to work.
; Called from SMON. T2 has the argument.
STHSTJ::TDNE T2,[^-377] ; Stray bits means old format
JRST STHST1 ; No conversion needed
IMULI T2,2001 ; Convert to new format
ANDI T2,600077
IOR T2,NETFLD ; Include network number
STHST1: MOVEM T2,NLHOST
ROTC T2,-6 ; Save IMP number
LSH T2,-^D10 ; Flush middle bits
ROTC T2,6 ; Combine Host and IMP
ANDI T2,377
MOVEM T2,NOHOST
RET
NETLGO:: ;JOB LOGOUT TIME
IFG INETN,< SETO T1, ; NO ARPANET, BUT MAY STILL HAVE INTERNET
RELIQ
JFCL
>
RET
IFE CHAOS,<
CHKNVT:: ;IS TERMINAL AN NVT
>
CHKTVT:: ;IS TERMINAL A TVT
NETKFK:: ;FORK KILLING TIME
IMPHLT:: ;SYSTEM SHUTDOWN TIME (HSYS4)
IMPBEG:: ;SYS STARTUP TIME, CREATE JOB 0 FORK
HSTINI:: ;SYS STARTUP AND SMON. INIT HOST TABLES
CHKNET:: ;WAIT FOR NET TO FINISH
GHOSTN::
GNTAWD::
GTBHSS::
GTBHRT::
IMPFPF:: ;AN20 IOPGF CHECK ROUTINE
NETINI::RET ;INITIALIZATION OF NCP FORK
NR (NETON) ;CELL USED BY SMON, RSO DEFINE IT.
NR (IMPDRQ) ;EVEN THOUGH NEVER USED BY SYSTEM
.GTNCP::
.GTHST::
.ASNSQ::
.CVSKT::
.SNDIM::
.RELSQ::
.FLHST::
.CVHST::
.ATNVT::
.RCVIM::ITERR ILINS2 ;NETWORK ONLY JSYS'S
NTBFIX==:0 ;NEWORK BUFFER SECTION PAGE TABLE
IMPGTN==:0 ;NETWORK GETAB TABLES
IMPRDY==:0
IMPLBT==:0
NHSTST==:0
NHSTN==:0
HSTNAM==:0
NHOSTS==:0
HOSTN==:0
NSKT==:0
LSKT==:0
FSKT==:0
NETAWD==:0
NETBAL==:0
NETSTS==:0
NETBUF==:0
NETBTC==:0
NETHST==:0
NETFRK==:0
NETDAL==:0
IMPNLK==:0
IMPLT1==:0
IMPLT2==:0
IMPLT3==:0
IMPLT4==:0
IMPLT5==:0
>;END OF IFE NETN
; 100 Dummy CHAOS entries
IFE CHAOS,<
CHAINI::
CHIINT::
RELCON::RET
CATNVT::ITERR ILINS2
RS CVTPTR
CHASBS==:0 ; length of status block
CHADTB==:0
CHPMXT:: ; maximum packet size
CHAON:: 0
CHASBS==0
MYCHAD::0 ; Dummy local address
>
;STORAGE FOR PTIP SUPPORT
;TTYSRV REQUIRES MLCXWD
RS MLCXWD,1 ;-#TTYS,,1ST ONE FILLED IN BY TTYSRV
IFN NMLCS,< ;REQUIRE PTIP PRESENT
RS MLCQDS,1 ; MEASUREMENT CELLS
RS MLCQIN,1
RS MLCQIX,1
RS MLCQOU,1
RS MLCQOX,1
RS MLCQLN,1
RS MLCQLX,1
RS MLCQI1,1
RS MLCQO1,1
RS MLCIB,1 ;Current (or last) input buffer addr
RS MLMIBC,1 ;Meter. Input Buffer Count, traffic from MLC
RS MLMICC,1 ;Meter. Input Character Count from MLC
RS MLMIXC,1 ;Meter. Input control count - all but NOP
RS MLMOBC,1 ;Meter. Output Buffer Count, traffic to MLC
RS MLMOCC,1 ;Meter. Output Character Count to MLC
RS MLMOXC,1 ;Meter. Output control count all but NOP
RS MLMRSC,MLCN ;Reset count (PTIP crashes), for each PTIP
RS MLMRST,MLCN ;Time of last reset (TODCLK), for each PTIP
RS MLCIHC,1 ;NUMBER OF TIMES MLCHST HAS BEEN INITIALIZED
RS MLMERS,1 ;Number of ERR's sent to PTIP
RS MLIDBG,1 ; NON-ZERO IF BUGINF MLC ERRORS
RS MLILER,1 ; LAST ERR FROM MLC (9 BIT BYTES)
RS MLMERL,1 ;Line number of last ERR sent
RS MLISLN,1 ;Line number of current input command or data (STATIC)
RS MLIDLN,1 ;CURRENT DYNAMIC ADR OR WHAT STADYN OF STATIC RETURNED
RS MLISTS,1 ;Status byte from Long Data input msg
RS MLIOPC,1 ;Opcode of current input control msg
RS MLIARG,6 ;Argument bytes of current opcode
RS MLCPVL,1 ;Param value lock for set/read OPRFN
RS MLIPVP,1 ;Place for Sched level to unpack Param value msg
RS MLIPVN,1 ; .. the Phys line is in MLIPVP, arg number here
RS MLIPVV,1 ; and the value here.
RS MLCPVP,1 ;Phys line requested by process.
RS MLCICT,1 ;Count of remaining input bytes in Imp msg
RS MLCIPT,2 ;XTNDED Pointer to current input byte in Imp msg
RS MLCINF,1 ;Zero until a reset has been sent to MLC
RS MLCOB,1 ;Current output buffer being built
RS MLCOCT,1 ;Count of characters left in output buffer
RS MLCOPT,2 ;XTENDED Pointer to current output byte in buffer
RS MLOBNE,1 ;Output buffer non-empty flag.
RS MLOTTN,1 ;Space for characters in long output data msg
RS MLCFRK,1 ;Fork Index of the MLC Job 0 fork
RS MLCDED,1 ;Minimum flow control. If non-0, delay outputs
RS MLCJ0F,1 ;Flag to cause scheduling of Job 0 fork
RS MLCJ0A,1 ;Storage for AC's A-D, Q1 for
RS MLCJ0B,1 ; transfer from OPRFN to Job 0 for MLOCMD
RS MLCJ0C,1
RS MLCJ0D,1
RS MLCJ0Q,1 ;This one also is a sched test arg
RS MLCNOS,1 ;Need output scan for TTY characters
RS MLCNCS,1 ;Need control scan for outputting commands
RS MBPTIM,1 ;Scheduler wakeup TODCLK for job 0 fork
RS MLCDRQ,1 ;Manual restart request. Clears and sends reset
RS MLCBGL,MLCN ;Background line number for periodic checks
RS MLCBGT,1 ;And the time to check the next line
RS MLCNRP,1 ;Need to reset parameters. MLC RST came in.
RS MLCNRR,1 ;Need to send reset-reply code
RS MLCRSA,1 ;Reset alarm-clock. Flow control on resets.
RS MLCIFH,1 ;Inferior fork handle for MLCSET.SAV
RS DIALST,1 ;COMMUNICATION CELL WHICH GETS DIALER STATUS
RS DILTTN,1 ;AND ONE FOR CURRENT TTYN FOR PHYS DIALER LINE
RS MLMIOP,NMLIOP ;METERS ON THE OPCODES
RS MLICLN,1 ;LINE # OR -1 FOR ALL IN CTL MSG RCDNG
RS MLICFZ,1 ;0 MEANS FREEZE MLICTB WHEN FULL
;NON-0 MEANS WRAP AROUND
RS MLICAD,1 ;HOLDS PTR FOR NEXT SLOT IN MLICTB
RS MLICTB,MLICTN ;TABLE OF INCOMING MLC CTL MSGS
RS MLOCLN,1 ;LINE # OR -1 FOR ALL OUT CTL MSG RCDNG
RS MLOCFZ,1 ;0 MEANS FREEZE MLOCTB WHEN FULL
;NON-0 MEANS WRAP AROUND
RS MLOCAD,1 ;HOLDS PTR FOR NEXT SLOT IN MLOCTB
RS MLOCTB,MLOCTN ;TABLE OF OUTGOING MLC CTL MSGS
> ;END IFN NMLCS
;*****************
.PSECT RSVAR
;*****************
;STATIC STORAGE FOR MLC AND TELENET LINES
;MAY BE INDEXED BY STATIC LINE # - OFFSET TO TERMINAL LINE TYPE
;THE OFFSETS ARE DEFINED IN THE INDIVIDUAL LINE SPECIFIC MODULES
;IN TTYSRV
;EX. MLCTTY=MLCFLX-OFFSET
;THEREFORE MLCTTY MAY BE INDEXED BY STATIC LINE # DIRECTLY
;REMOTE TTY WORDS
MLCTTX::BLOCK NTTMLC
;FLAG WORDS
MLCFLX::BLOCK NTTMLC
;ALLOCATION WORDS
MLCALX::BLOCK NTTMLC
;MLC LINES MUST BE ASSEMBLED AFTER FE LINES and cty
;MLC LINES MUST BE THE SECOND TYPE OF LINE
;TABLES INDEXED BY STATIC LINE # IF TTY,ALC,FLG USED INSTEAD
;OF TTX,FLX,ALX
IFE <TT.FE-TYPCTY>,<
MLCTTY=:MLCTTX-NTTFE-1
MLCFLG=:MLCFLX-NTTFE-1
MLCALC=:MLCALX-NTTFE-1
>
IFN <TT.FE-TYPCTY>,<
MLCTTY=:MLCTTX-NTTFE
MLCFLG=:MLCFLX-NTTFE
MLCALC=:MLCALX-NTTFE
>
;*****************
.ENDPS RSVAR
;*****************
IFE NMLCS,<MLCCKT::MLCCKD::RET> ; DUMMIES FOR TCOTST
; ACCOUNTING VARIABLES
RS TNTPVL,1 ; LOCK WORD FOR GETTING ACCOUNNING
RS TNTPVI,1 ; LENGTH OF GOTTEN REQUEST
RS TNTPVP,1 ; LINE NUMBER CURRENTLY BEING FOUND
RS TNTABP,2 ; TEMP BYTE POINTER
;;; Once (see above) is more than enough of this kakadoodoo
;;; IFE NMLCS,<MLCCKT::MLCCKD::RET> ; DUMMIES FOR TCOTST
;STORAGE FOR RS04 SERVICE
IFG DRMN,<
IFG RS04F,<
NTRK==:^D8 ;NUMBER OF TRACKS ON RS04
DRMSEC==:^D64 ;NO. OF DRUM SECTORS
;SWAP ALLOCATOR PARAMETERS
SWPSEC==:DRMSEC ;USE DISK PARAMETERS
NDST=<<NDST+SWPSEC-1>/SWPSEC>*SWPSEC
SWPTRK==:NDST/SWPSEC ;..
SWPNUN==:1 ;..
IFN PHYIOF,<
NDRMEW==:1
RS DRMCFE,1
MAXDRM==:^D8 ;MAX NUMBER OF UNITS
;CAN BE GREATER THAN 8
RS DRMNUM,1 ;NUMBER OF DRUMS (COUNTED BY RS4INI)
RS DRMTAB,MAXDRM ;VIRTUAL TO PHYSICAL DRUM ADDRESSES
;CDB,,UDB
>;IFN PHYIOF
IFE PHYIOF,<
MAXDRM==:^D8 ;MAX NUMBER UNITS
NDRCCW==:10 ;NUMBER OF DRUM CCWS
DRMCCL==:50 ;TEMP UNTIL RH20 FIXED
NDRMEW==:5 ;NUMBER OF DRUM ERROR WORDS FOR GETAB
RS DRMCFE,5 ;DRM ERR BLOCK (NAME IS HISTORICAL) SEE DRMERP FOR DESCR
RS DRMEC,1 ;ERROR COUNT, THIS XFER
RS DRMERR,1 ;TOTAL NUMBER OF DRUM ERRORS
RS DRMNRE,1 ;DRM NON REC ERRS
RS DRMNRQ,1 ;NUMBER OF REQUESTS IN QUEUE OR IN PROGRESS
;PER CHANNEL DATA (WILL LIVE IN CCB EVENTUALLY)
RS RHPBAR,1 ;CURRENT BAR - ALSO USED AS ACTIVE FLG
RS RHPTCR,1 ;CURRENT TCR
RS RHPUCB,1 ;UCB CORRESPONDING TO ABOVE
RS RHPCCW,1 ;WILL POINT TO BEG OF PRI. CCW LIST
RS RHSBAR,1 ;SBAR
RS RHSTRC,1 ;STCR
RS RHSUCB,1 ;UCB FOR ABOVE
RS RHSCCW,1 ;WILL POINT TO BEG OF SEC CCW LIST
RS RHCNI,1 ;CONI ON LAST INTERRUPT
;PER UNIT DATA - UCB OFFSETS
RHURI==:0 ;READ Q INPUT PTR
RHURO==:RHURI+DRMSEC ;READ Q OUTPUT PTR
RHUWI==:RHURO+DRMSEC ;WRITE Q INPUT PTR
RHUWO==:RHUWI+DRMSEC ;WRITE Q OUTPUT PTR
RHUSEC==:RHUWO+DRMSEC ;NEXT AVAILABLE SECTOR ON UNIT
RHUERR==:RHUSEC+1 ;ERR REG,,TOTAL ERR COUNT
RHUNRE==:RHUERR+1 ;ERR REG,NON REC ERRS
RHUNRQ==:RHUNRE+1 ;NUMBER OF REQUESTS TO THIS UNIT
RHUUNI==:RHUNRQ+1 ;DRIVE NUMBER
RHUODT==:RHUUNI+1 ;TIME WHEN UNIT REQUEST IS OVERDUE
RHUSTS==:RHUODT+1 ;UNIT STATUS:
; B0 - OFFLINE
UCBLEN==:RHUSTS+1
RS UCBDAT,UCBLEN*MAXDRM ;STORAGE AREA FOR UCBS
RS RH0UTB,MAXDRM ;LH INDEX BY PHYS UNIT #, RH INDEX BY LOG UNIT #
RS DRMACS,5 ;AC0-4 DURING DRUM INTERRUPT
RS DRMACP,1 ;AC P DURING INTERRUPT
RS DRMP12,2 ;INTERRUPT ACS P1&P2
NDRMPD==:25 ;PDL SIZE FOR DRM PD LISTS
RS DRMPDL,NDRMPD ;PDL FOR DRUM INTERRUPT SERVICE
RS DRMSPP,1 ;SAVED P AT NON INT LEVEL
RS DRMPD1,NDRMPD ;PDL FOR NON PI LEVEL
RS RHXIOA ;IO ADDRESS OF MBC
RS RHXICO ;INITIAL CONO
RS RHXATN ;CONI ATTN BIT
RS RHXRAE ;REG ACCESS ERR IN CONI
RS RHXENB ;CONO ENABLE BITS NEEDED TO SEE ALL CONI BITS
RS RHXCRE ;MACHINE INSTR. NEEDED TO CLEAR RAE
RS RHXERR ;CONI ERROR BITS
RS RHXBAR ;LH OF BLOCK ADDR REG LOAD DATAO
RS RHXTCR ;LH OF TRANSFER CONTROL REG LOAD DATAO
RS RHXCIJ ;CHANNEL INITIAL JUMP
RS RHXCHL ;CHANNEL HALT
RS RHXCWC ;CHANNEL WORD COULD
RS RHXLIA ;DATAO TO LOAD INT VECOTR
>;END IFE PHYIOF
>;END IFG RS04F
> ;END IFG DRMN
;STORAGE FOR RC10 DRIVER
IFG DRMN,<IFG RC10F,<
NTRK==:^D90/2 ;NUMBER OF TRACKS PER DRIVE
DRMSEC==:^D15 ;NO. OF DRUM SECTORS
MAXDRM==:^D4 ;MAX NUMBER UNITS
;SWAP ALLOCATOR PARAMETERS
SWPSEC==:DRMSEC ;USE DRUM PARAMETERS
NDST=<<NDST+SWPSEC-1>/SWPSEC>*SWPSEC
NDST=<<NDST+SWPSEC-1>/SWPSEC>*SWPSEC
SWPTRK==:NTRK ;..
SWPNUN==:MAXDRM ;..
DRMPST==:^D60 ;NUMBER OF PHYSICAL SECTORS PER TRACK
DRMNWS==:^D64 ;NUMBER OF WORDS PER DRUM SECTOR
DRMNSP==:PGSIZ/DRMNWS ;NUMBER OF DRUM SECTORS PER PAGE
RS DRMRI,DRMSEC*MAXDRM ;DRUM READ QUEUE INPUT POINTER
RS DRMRO,DRMSEC*MAXDRM ;DRUM READ QUEUE OUTPUT POINTER
RS DRMWI,DRMSEC*MAXDRM ;DRUM WRITE QUEUE INPUT POINTER
RS DRMWO,DRMSEC*MAXDRM ;DRUM WRITE QUEUE OUTPUT POINTER
RS DRMCCL,2 ;COMMAND LIST FOR DF10
RS DRMEC,1 ;ERROR COUNT, THIS XFER
RS DRMACT,1 ;DRUM IS ACTIVE IF NON-0
RS DRMDAO,1 ;LAST DATAO TO DRUM
NDRMEW==:4 ;NUMBER OF DRUM ERROR WORDS FOR GETAB
RS DRMCFE,1 ;COUNT OF CFM ERRORS
RS DRMLER,3 ;LAST ERRONEOUS DRUM COMMAND AND ERROR BITS
>> ;END IFG DRMN & RC10F
;#25 Storage for SA10
IFN SSAN,< ;#25 .
RS SAXICH,1 ;#25 interrupting subchannel number
RS SAXSEL,1 ;#25 word used to equalize SA10 selection
RS SAXCDB,SSAN*4 ;#25 address of CDB for each subchannel
RS SAXERD,6 ;#25 SA10 internal registers saved on error
SAXTTL==:40 ;#25 Trace table length ** TEMP? **
RS SAXTTP,1 ;#25 Trace table pointer ** TEMP? **
RS SAXTT,SAXTTL ;#25 Trace table ** TEMP? **
>
;STORAGE FOR DUMMY DRUM DRIVER
IFE DRMN,<
DRMSEC==:0 ;NO SECTORS...
NTRK==:0 ;NO TRACKS...
MAXDRM==:0 ;NO UNITS...
SWPSEC==:^D95 ;USE DISK PARAMETERS
NDST=<<NDST+SWPSEC-1>/SWPSEC>*SWPSEC
SWPTRK==:NDST/SWPSEC ;..
SWPNUN==:1 ;..
NDRMEW==:1 ;NUMBER OF DRUM ERROR WORDS FOR GETAB
RS DRMCFE,1 ;COUNT OF ERRORS
IFN PHYIOF,<
RS DRMNUM,1 ;PHONEY NUMBER OF DRUMS (0)
RS DRMTAB,1
>;IFN PHYIOF
>;IFE DRMN
;STORAGE FOR SWAP ALLOCATOR -- MUST FOLLOW ALL DRUM DRIVER DECLARATIONS
NDG SWDST,NDST ;IF NOT ALREADY DEFINED, THIS IS DEFAULT
DRMMXB==:SWPNUN*SWPTRK ;MAX NUMBER OF BANDS POSSIBLE
DRMBSZ==:<SWPSEC+^D35>/^D36 ;NUMBER OF BIT WORDS PER TRACK
;PARAMETERS FOR SWAPPING STRUCTURE
RS NPDRMS,1 ;NUMBER OF PHYSICAL DRUMS, SET BY DRMIOI
RS MAXDRA,1 ;NUMBER OF PAGES OF PHYSICAL DRUMS
;FOLLOWING VARIABLES ARE FOR "LOGICAL" DRUM, I.E. SWAPPING SPACE
;RESERVED ON DISK
RS DRMBND,1 ;NUMBER OF DRUM TRACKS
RS MDRMBD,1 ;MINUS DRMBND
RS DRMTPG,1 ;TOTAL NUMBER OF PAGES ON DRUM
;STORAGE
RS DRMBBT,DRMMXB*DRMBSZ ;BIT TABLE - DRMMXB GROUPS OF DRMSEC BITS
RS DRMCNT,DRMMXB ;FREE PAGE COUNT FOR EACH TRACK
RS DRMBN0,1 ;TRACK NUMBER OF LAST ADDRESS ASSIGNED
RS DRMFRE,1 ;TOTAL FREE PAGE COUNT FOR DRUM
;STORAGE FOR SYSERR FACILITY
RS SEBQIN,1 ;JOB 0 QUEUE - IN PTR
;SEBQOU IS IN A FIXED PLACE IN LOWER CORE
RS SEBJFN,1 ;JFN FOR SYSERR.LOG FILE
RS SECHKF,1 ;FLAG TO WAKE JOB 0 SYSERR FORK
RS SEIETM,1 ;TIME AFTER WHICH FAILING SEBOFI TRIED AGAIN
;STORAGE COMMON TO ALL DRUM DRIVERS
RS DRMJ0R,1 ;JOB 0 INTERLOCK ON ERROR BLOCK
RS DSTLOC ;CONTAINS ADDRESS OF DST
IFE EXADF,<
RS DST,NDST ;NOT EXTENDED. ALLOCATE DST IN RSVAR
> ;END IFE EXADF
IFN EXADF,<
DST==:0 ;EXTENDED. DST WILL BE IN SEPARATE SECTION
> ;END IFN EXADF
;STORAGE IN THE SYMBOL TABLE PSECT
;IF HIDSYM IS ON, THIS STORAGE IS HIDDEN WITH THE SYMBOLS
IFN HIDSYM,<
ST SYMMAP,PGSIZ ;ALTERNATE MMAP
>;IFN HIDSYM
IFE HIDSYM,<
ST SYMMAP,0
>;IFE HIDSYM
;SWAPPER PAGES RESERVED IN PROCESSOR-PRIVATE AREA
DEFINE ASNPPG (P,N)<
.PSECT PPVAR
P'A:: BLOCK N*PGSIZ
P==:P'A_-PGSFT
.ENDPS PPVAR
...CNT==...CNT+N
>
...CNT==0
ASNPPG CSWPG,1 ;SWAPPER TEMP
ASNPPG FITPG,1 ;PRELOAD/POSTPG TEMP
ASNPPG PRLPG,1 ;PRELOAD/POSTPURGE TEMP
ASNPPG PIPG,1 ;FOR REAL-CORE REFS AT PI LEVEL
NRSPG==:...CNT
;STORAGE AND CODE BOUNDARIES
;JOB-COMMON AREA
DEFINE ASNJSB (P,N)<
P'A:: BLOCK N*PGSIZ
P=:P'A_-PGSFT
>
;JSB FREE PAGES
NDG NJSBPG,^D50 ;NUMBER OF FREE JSB PAGES
.PSECT JSVAR ;DECLARE ALL PAGES OWNED BY JSB
ASNJSB JSBPG,1 ;JSB IS FIRST PAGE IN JOB-COMMON AREA
ASNJSB JFNPG,3 ;3 PAGES FOR JFNS
ASNJSB JSJFN,0 ;END OF THE JFN STORAGE AREA
ASNJSB JTBPG,2 ;JSYS TRAP BLOCKS. FIRST WORD USED BY
; NEWJTB
JTBFRE=:JTBPGA ; Free JTB bit table (jffo)
JTBIFR==:777777,,770000 ; initial contents of JTBFRE
JTBOFF==:JTBPGA+1 ; address of 0th JTB
ASNJSB FREJP,NJSBPG ;JOB FREE STORAGE. MUST BE LAST
; DEFINITION IN JOB AREA
ASNJSB JSLST,0 ;END OF JSB. MUST BE LAST.
.ENDPS JSVAR ;END OF JSB OWNED PAGES
;JOB STORAGE BLOCK ASSIGNMENTS
;JSB STORAGE
DEFINE JS(T,N)<
T=:JSBPGA+JSBLOC
IFB <N>,<
JSBLOC==JSBLOC+1>
IFNB <N>,<
JSBLOC==JSBLOC+N>
>
.PSECT JSVAR
JSBLOC==0 ;INITIAL VALUES
JS(JOBMAP,<<JSLSTA-JSBPGA>/PGSIZ>) ;OBJECT MAP FOR JOB-COMMON AREA
JOBM0=:JOBMAP-JSBPG ;BEG OF JOBMAP RELATIVE TO VIR PG 0
NUFKS==:30 ;MAX NUMBER FORKS/JOB
JS SYSFK,NUFKS ;JOB FORK INDEX TO SYSTEM FORK INDEX
JS CTTAB,NUFKS ;rh: -1 or controlling terminal number
;lh: vacant!
JS FKJTB,NUFKS ; Address of Jsys Trap Block
JS FKPTRS,NUFKS ;FORK POINTERS (STRUCTURE)
JS FKPSIE,NUFKS ;TERM INTERRUPT ENABLED WORD
JS FKDPSI,NUFKS ;DEFERRED TERM INTERRUPTS MASK
JS FREJFK,1 ;FREE JOB FORK SLOT LIST
JS FKLOCK,1 ;LOCK FOR FORK STRUCTURE MODIFICATION
JS FLKCNT,1 ;NEST COUNT FOR FORK LOCK
JS FLKOWN,1 ;FORK THAT LOCKED THE FORK LOCK
JS FKTIMW,1 ;TIMER WORD
JS FKCNT,1 ;COUNT OF ACTIVE FORKS IN THIS JOB
JS LSTLGN,1 ; Last login D&T
JS SRTTIM,1 ;DATE AND TIME THIS JOB WAS INITIALIZED
JS ARDFRT,1 ; Job default for retrievals
JS CTRLTT,1 ;LINE NUMBER OF CONTROLLING TTY
JS TTSPSI,1 ;CODE ENABLED ANYWHERE IN THIS JOB
JS TTSDPS,1 ;TERM INT CODE DEFERRED
JS TTJTIW,1 ;TERMINAL INTERRUPT ENABLE MASK
JS (CONSTO,1) ;CONSOLE TIME ON (TODCLK UNITS)
JS (CTIMON,1) ;CONNECT TIME ON (GTAD UNITS)
JS (CONCON,1) ;CONSOLE CONNECT TIME (FOR USAGE)
JS (JBRUNT,1) ;JOB RUN TIME (FOR USAGE)
JS (CTITNT,1) ;TELENET CONNECT TIME ON (TODCLK UNITS)
JS (CONTNT,1) ;TELENET CONNECT TIME FOR SESSION (SEC.)
JS (JBNODE,1) ; NODE NAME (SIXBIT)
JS (JBBNAM,1) ; BATCH JOB NAME (SIXBIT)
JS (JBBSEQ,1) ; BATCH SEQUENCE NUMBER
JS (ACCTSL,1) ;LENGTH OF ACCTSR
JS (ACCTSR,MAXLW) ;ACCOUNT STRING
JS (ACCTSX,1) ;EXPIRATION DATE OF ACCTSR
JS (CSHACT,MAXLW) ;MOST RECENTLY VALIDATED ACCOUNT
JS (CSHUSR,1) ;USER FOR WHOM CACHED ACCOUNT WAS VALIDATED
JS (CSHACX,1) ;CSHACT EXPIRATION DATE
JS (CSHCLS,1) ;CLASS OF CACHED ACCOUNT
JS (LLSR,WPN) ;LOGICAL LOCATION (I DON'T UNDERSTAND WHY SOME OF THESE HAVE "+1")
JS (JSSRM,MAXLW+1) ;SESSION REMARK
JS (USRNAM,MAXLW+1) ;USER NAME STRING
JS(JFNLCK) ; Lock to prevent tampering with jfn's
JS(MAXJFN)
JS(ENQLST) ; LH - QUOTAS AND COUNTS
; RH - POINTER TO Q-BLOCKS FOR THIS JOB
JS(TIMALC) ; TIMER clocks limit
JS(LNTABP) ; POINTER TO LOGICAL NAME TABLE
JS(LNMLCK) ; LOCK FOR LOGICAL NAME DATA BASE
JS NPRIVP,1 ;NUMBER OF PRIVATE PAGES IN JOB
JS(JOBUNT) ; CONNECTED DSK UNIT
JS JBCLCK,1 ; LOCK FOR ASGPAG
JS(JBCOR,4) ; Page allocation bit table
IFG TCPN,<JS JCNTCB,MAXJCN> ;#112 Pointer to TCB for each JCN
JS(JSBFRE,7) ; Job area free storage header
JS(JSFREE,IJSFRE) ; Free storage area in job block
;STRUCTURE TABLES, 3 WORDS PER STRUCTURE. DATA INCLUDES STRUCTURE NUMBER
JSSTMX==:4 ;NO ENTRIES PER STRUCTURE
JS JSSTRT,JSSTMX*STRN ;3 WORDS PER STRUCTURE
JSSTRF==:0 ;OFFSET FOR (FLAGS,,STRUCTURE UNIQUE CODE)
JSGRPS==:1 ;OFFSET FOR (AOBJN POINTER TO LIST OF GROUPS)
JSADIR==:2 ;OFFSET FOR (UNUSED,,ACCESSED DIRECTORY NUMBER)
JSFKMT==:3 ;OFFSET FOR FORK-MOUNT BIT WORD
IFG NUFKS-44,<PRINTX ONLY ONE WORD HAS BEEN ALLOCATED FOR FORKS IN JSFKMT>
JS JSSTLK,1 ;LOCK ON THE JSSTRT BLOCK
JS(JSBSDN) ; CONNECTED STRUCTURE UNIQUE CODE,,DIRECTORY #
JS(JSBCDS) ;POINTER TO CONNECTED DIR NAME STRING
JS(MODES) ; DDBMOD WORD FROM LOGIN
JS(GROUPS) ; GROUPS TO WHICH LOGIN USER BELONGS
JS RSCNPT,1 ;RESCAN POINTER
JS RSCNBP,1 ;POINTER TO RSCAN BUFFER
RSCMXC==:777 ;MAX SIZE OF RSCAN BUFFER
JS JBINFO,1 ;PID OF PRIVATE [SYSTEM]INFO FOR JOB
JS JSCDR,1 ;SPOOLED CDR INFORMATION
;LH = NEXT VERSION NUMBER - 1
;RH = ADDRESS OF SPOOL SET STRING
JS JSMTA1,1 ;DEFAULT DENSITY, MODE, AND RECORD SIZE
; FOR MAGTAPES BEING USED BY THIS JOB
JS JBFLAG,1 ;LH = FLAGS SENT TO SPOOLER ON CLOSE
; OF SPOOLED FILE AND LOGOUT
;RH = GENERAL JOB WIDE FLAGS (SEE PROLOG)
;RH = GENERAL JOB WIDE FLAGS (SEE PROLOG)
JS JSLOPD,1 ;PID TO GET LOGOUT MESSAGE, FROM CRJOB.
JS JSLOJB,1 ;JOB NUMBER OF WHO DID LGOUT TO ME
JS JSFSTK,1 ;STACK OF THINGS TO BE DONE ON
; FORK CLEAN UP
JS JSFLCK,1 ;THE LOCK FOR THE JSFSTK STRUCTURE
JS CRJFLG,1 ;FLAG THAT THIS IS A CRJOB STARTUP.
; USED BY MEXEC AND LOGIN
JS DCNCNT,1 ;NETWORK LINK QUOTA,,COUNT
JS JSSRTM,1 ;Runtime at start of this accounting session
JS JSSCTM,1 ;Console time at start of this session
JS JSATCT,1 ;ATS HTN QUOTA,,COUNT
JS JOBSKD,1 ;SPECIAL JOB SCHEDULING PARAMETER
JS BATSTF,1 ;BATCH STREAM NUMBER AND FLAGS WORD
IFG TCPN,<JS JCNTCB,MAXJCN> ; POINTER TO TCB FOR EACH JCN
;JFN BLOCK - EACH JFN USES BLOCK OF N WORDS, JFNS CAN GROW
;BEYOND END OF JSB INTO SUCCESSIVE PAGES.
; *** THIS MUST BE LAST STORAGE DEFINED IN JSB ***
;NAMES DEFINED WITH 0 OVERLAY THE NAME FOLLOWING. POSSIBLE
;BECAUSE THEY ARE USED ONLY DURING GTJFN
;FIRST DEFINE JFN LIMITS AND SIZES
MLJFN==:23 ; # OF WORDS PER JFN BLOCK
MJFN==:<<JSJFNA-JFNPGA+MLJFN-1>/MLJFN> ;MAX NUMBER OF JFNS
RJFN==:MJFN*MLJFN ;ACTUAL SPACE USED BY JFNS
JS(JFN0,0) ; FIRST JFN
JS(FILTMP,0) ; Lh -0 ptr to temp string block for default
; Rh -0 point to temp string block
JS(FILBYT) ; Byte pointers to current window
JS(FILPRT,0) ; Pointer to protection string or protection #
JS(FILBYN) ; Byte number of current byte
JS(FILACT,1) ; Pointer to account string or account number
JS(FILLEN) ; Total length of file in bytes
JS(FILCNT) ; Bytes remaining in current buffer
JS(FILLCK) ; File lock word
JS(FILSKT,0) ;ARPANET CONNECTION NUMBER,,UNUSED
JS(FILOPT,0) ; Byte pointer to store string in gtjfn
JS(FILWND) ; Lh - current page number
; Rh - location of current window
JS(FILSTS) ; Lh - file status bits
; RH - STATUS, AND MODE IN BITS 32-35
JS(FILDEV) ; Device dependent information
JS (FILATB,0) ; FOR ATS, POINTER TO DATA NOT IN JOB SPACE
JS (FILLLB,0) ; FOR DECNET, POINTER TO LL BLOCK
JS (FILMTP,0) ;FOR MT ,HOLD PROTECTION WORD
JS(FILOFN) ; Lh - ofn for this file
; Rh - ofn of long file pt table
JS(FILLNM,0) ; RH - POINTER TO LOGICAL NAME CHAIN
; LH - POINTER TO RDTXT BUFFER
JS(FILLFW) ; LH - COUNT OF PAGES MAPPED
; Rh - location of page table table
JS(FILDDN) ; Lh - pointer to device string block
; Rh - directory number
JS(FILDNM) ; LH - DIR NAME STRING
; RH - POINTER TO ATTRIBUTE LIST (FILATL)
PFXMSK==:777 ;UP TO 512 POSSIBLE PREFIXES
NOATRF==:1B18 ;THIS ATTRIBUTE DOES NOT HAVE A VALUE
.PFACT==:1 ;ACCOUNT STRING ATTRIBUTE
.PFPRT==:2 ;PROTECTION ATTRIBUTE
.PFCOP==:3 ;SPOOLED FILE COPIES
.PFFRM==:4 ;SPOOLED FILE FORMS
.PFALC==:5 ;PREALLOCATE FILE SPACE
.PFBLK==:6 ;MAGTAPE BLOCK LENGTH
.PFEXP==:7 ;MAGTAPE EXPIRATION DATE
.PFFMT==:10 ;MAGTAPE RECORD FORMAT
.PFPOS==:11 ;MAGTAPE POSITION
.PFRLN==:12 ;MAGTAPE RECORD LENGTH
.PFUDT==:13 ;NETWORK USER I.D.
.PFPWD==:14 ;NETWORK ASCII PASSWORD
.PFBPW==:15 ;NETWORK BINARY PASSWORD
.PFACN==:16 ;NETWORK ACCOUNT STRING
.PFOPT==:17 ;NETWORK OPTDATA FIELD
.PFBOP==:20 ;NETWORK BINARY OPTDATA
.PFACC==:21 ;MAGTAPE ACCESS
.PFEXP==:22 ;MAGTAPE EXPIRATION DATE
.PFOFL==:23 ; OFFLINE file attribute
JS(FILNEN) ; Lh - pointer to file name string block
; Rh - pointer to extension string block
JS(FILVER) ; Lh - fork number of originator of this jfn
; Rh - version number
JS (FILBFO,0) ;FOR DECNET, OUPTU BUFFER POINTER
JS(FILMS1) ; LH- DIRECTORY WILD MASK
; RH- NAME WILD MASK
JS(FILIDX,0) ; RH - INDEX INTO DEVICE TABLES FOR THE
; ORIGINAL DEVICE GTJFN'ED. I.E.
; DOES NOT CHANGE DURING SPOOLING
JS (FILBFI,0) ;FOR DECNET, POINTER TO INPUT BUFFER
JS(FILMS2) ; LH- EXTENSION WILD MASK
JS (FILBCT,0) ;FOR DECNET, POINTER TO COUNTS
JS(FILFDB) ; ADDRESS OF THE FDB IN THE DIRECTORY
JS(FILCOD) ;C(LH) := STRUCTURE UNIQUE CODE
;C(RH) := PT0 OFN FOR LONG FILE
.ENDPS JSVAR
;PROCESS-PRIVATE AREA
DEFINE ASNPSB (P,N)<
P'A:: BLOCK N*PGSIZ
P=:P'A_-PGSFT
>
.PSECT PSVAR ;START OF PSB OWNED PAGES
ASNPSB PSSPS,0 ;START OF PSB SPECIAL PAGES,MUST BE FIRST
ASNPSB CXBPG,1 ;SWAPPER, MAP TEMP
ASNPSB CPTPG,1 ; ..
ASNPSB CPYPG,1 ; ..
ASNPSB PSSPE,0 ;END OF PSB SPECIAL PAGES
ASNPSB FPG0,1 ;FORK UTILITY PAGES
ASNPSB FPG1,1 ; ..
ASNPSB FPG2,1 ;FORK UTILITY PAGES
ASNPSB FPG3,1 ; ..
NPSIPG==:2 ;# OF PAGES FOR PI STORAGE
ASNPSB PSIPG,NPSIPG ;PSI IN PROGRESS STORAGE
NIDXPG==:^D16 ;NUMBER OF PAGES FOR THE INDEX
IFE EXADF,<ASNPSB IDXPG,NIDXPG> ;INDEX TABLE IS MAPPED HERE
IFN EXADF,<ASNPSB IDXPG,0>
IFE EXADF,<NDG DRMASZ,DRSMDA> ;NUMBER OF DIR PAGES
IFN EXADF,<NDG DRMASZ,0>
ASNPSB DIRPG,DRMASZ ;DIRECTORY WINDOW
NDDTPG==:2 ;NUMBER OF PAGES FOR MDDT
ASNPSB DDTPG,NDDTPG ;MDDT PRIVATE SEGMENT
;FROM HERE TO THE END OF THE PSB ARE MAGIC PAGES. THEY NEED TO LIVE
;TOGETHER AT THE END.
ASNPSB UPTPG,1 ;USER SECTION 0 PAGE TABLE
ASNPSB HWPT,0 ;HARDWARE VARIABLES IN PSB
ASNPSB PSBPG,1 ;PROCESS CONTEXT VARIABLES
ASNPSB PSB1,1 ;PSB ADDITION (STACK AND WS), MUST BE LAST
PSBMSZ==:<<PSB1A-PSSPSA>_-PGSFT>+1 ;SIZE OF PSB (PAGES)
.ENDPS PSVAR ;END OF PSB OWNED PAGES
;MACROS FOR DECLARATION OF STORAGE
;PSB STORAGE
DEFINE TS(T,N)<
T=:PSBPGA+TSBLOC
IFB <N>,<
TSBLOC==TSBLOC+1>
IFNB <N>,<
TSBLOC==TSBLOC+N>
>
;PROCESS STORAGE BLOCK ASSIGNMENTS
.PSECT PSVAR
TSBLOC==0 ;INITIAL VALUES
TS UACB,NUACB ;MONITOR-CALL AC STACK
TS EUACB,0 ;END
TS JOBNO,1 ;JOB NUMBER TO WHICH THIS FORK BELONGS
TS JOBBIT,1 ;SCHEDULER CONTROL BITS
TS FNPMAX,1 ;MAX NUMBER PAGES IN WS FOR THIS FORK
TS JOBCK0,1 ;VARIABLES FOR SCHEDULER TIME QUARANTEE
TS JOBCK1,1 ; ..
TS RUNT2,1 ;RUNTIME FRACTIONAL PARTS OF A MILLISECOND
NLFKS==:NUFKS ;MAX NUMBER FORK HANDLES/PROCESS
TS FKTAB,NLFKS/2 ;LOCAL FORK HANDLE TO JOB HANDLE TABLE
TS FORKN,1 ;JOB FORK NUMBER OF TOP FORK,,THIS FORK
TS FKRT,1 ;FORK RUN TIME
TS PRARGP,1 ;POINTER TO PROCESS ARGUMENTS
TS MPP,1 ;MONITOR SAVED STACK POINTER AT LAST MENTR
TS(PRIMRY,1) ; Primary io indirection pointers
TS SLOWF,1 ;SLOW MON ROUTINE FLAG
TS INTDF,1 ;DEFER INTERRUPTS IF .GE. 0
TS INTDFF,1 ;SOS INTDF OR JSYS PSISV1
TS MJRSTF,1 ;JRSTF @FPC OR JRST PSISV0
TS ACBAS,1 ;CURRENT AC STACK POINTER
TS ITFFL,1 ;FLAGS ON INTERRUPT TO MEXEC ***MUST STAY WITH ITFPC
TS ITFPC,1 ;PC ON INTERRUPT TO MEXEC
TS TRPID,1 ;IDENT OF PT OR PAGE CAUSING TRAP
TS TRPPTR,1 ;STORAGE ADDRESS OR POINTER CAUSING TRAP
TS UAC,20 ;USER AC'S (FROM BLOCK 1)
TS PAC,20 ;PROCESS AC'S
TS PFL,1 ;PROCESS FLAGS ***MUST STAY WITH PPC
TS PPC,1 ;PROCESS PC
TS NSKED,1 ;NO-SCHEDULE WORD
TS RSKED,1 ;NO-SCHEDULE TRAP
NTSK==:102 ;SIZE OF PAGER TRAP STACK
TS TRAPSK,NTSK ;STACK USED DURING PAGER TRAPS
TS TRAPSW,1 ;TRAP STATUS WORD
TS TRAPAP,1 ;PAGE TRAP SAVED P
TS TRAPC,1 ;PAGER TRAP RECURSION COUNT
TS UTRPCT,1 ;COUNT OF PAGER TRAPS FOR THIS PROCESS
TS USWPCT,1 ;COUNT OF SWPINW CALLS FOR THIS PROCESS
TS PTTIM,1 ;TIME SPENT IN PAGER TRAPS
TS LSTXGR,1 ;TIME (FKRT) OF LAST XGC
TS FKTLST,1 ;LOST TIME WHILE CLOCK TURNED OFF
TS CRSKED,1 ;IN CRITICAL SECTION IF NON-0
TS SKDFL,1 ;SCHEDULER TEMP (RETURN FLAGS)
TS SKDPC,1 ;SCHEDULER TEMP (RETURN) **MUST STAY WITH SKDFL
TS MONFL,1 ;TEMP MONITOR PC AND FLAGS
TS MONPC,1 ;MUST STAY TOGETHER ****
TS PSIPT,1 ;PSI STORAGE LIST POINTER
TS PIOLDS,1 ;FKSTAT PRIOR TO PSI IF WAS WAITING
TS LEVCHN,1 ;LEVEL TABLE,,CHANNEL TABLE ADDRESSES
TS PSISYS,1 ;NON-0 IF PSI SYSTEM OFF
TS MONCHN,1 ;CHANNELS RESERVED BY MONITOR
NPIPDL==:35 ;SIZE OF PSI STACK
;*** NOTE, THIS VALUE SHOULD BE
;GREATER THAN THE VALUE NUFKS.
;HOW MUCH GREATER IS VARIABLE, BUT
;IT SHOULD BE AT LEAST 2 MORE.***
TS PIPDB,NPIPDL ;PSI ROUTINES STACK
TS PSICHA,NTERMI/6 ;CHANNEL ASSIGNED TO TERM CODE
TS PIMSK,1 ;PSI REQUEST WORD BEING PASSED TO PSI SERVICE
TS PSIBW,1 ;BREAK WAITING WORD
TS FORCTC,1 ;CHANNEL WHICH CAUSED FORCED FORK TERMINATION
TS PSICHM,1 ;CHANNEL ENABLED WORD
TS SUPCHN,1 ;CHANNELS RESERVED BY SUPERIOR
;LEAVE ROOM FOR HARDWARE STORAGE
;WARNING: THESE VARIABLES MUST BEGIN AT OFFSET 420. THE CURRENT
;DEFINITIONS THAT PRECEDE THIS WARNING CREATE 420 WORDS. NO WORDS
;MAY BE ADDED WITHOUT MOVING AN EQUAL NUMBER BEYOND OFFSET 600
IFN TSBLOC-420,<PRINTX ?PSB STORAGE NOT ALIGNED TO HDWR BOUNDARY>
;CELLS IN USER PROCESS TABLE (UPT)
UPTPPM=:HWPTA+400 ;PER-PROCESS MAP ORIGIN
NPPMPG==40 ;NUMBER OF ENTRIES (2/WORD) IN PP MAP
UPTTPI=:HWPTA+420 ;TRAP INSTRUCTIONS
KLLUUO=:HWPTA+420 ;LUUO TRAP ADDRESS
UPTOVI=:HWPTA+421 ;OVERFLOW TRAP INSTRUCTION
KIMUFL=:HWPTA+424 ;MUUO FLAGS
KIMUPC=:HWPTA+425 ;MUUO PC
KIMUEF=:HWPTA+426 ;EFFECTIVE ADDRESS
KIMPCW=:HWPTA+427 ;PROCESS CONTEXT WORD
UPTPCW=:HWPTA+427 ;PROCESS CONTEXT WORD
UPTDSP=:HWPTA+430 ;DISPATCH VECTOR-UUO NEW PC WORDS
USECTB=:HWPTA+540 ;USER SECTION TABLE
UPTPFW=:HWPTA+500 ;PAGE FAIL WORD
TRAPS0==:UPTPFW ;PAGE FAIL WORD USED DIRECTLY
UPTPFL=:HWPTA+501 ;PAGE FAIL OLD FLAGS WORD
UPTPFO=:HWPTA+502 ;PAGE FAIL OLD PC WORD
UPTPFN=:HWPTA+503 ;PAGE FAIL NEW PC WORD
FFL==:KIMUFL ;MENTR-MRETN PC
FPC==:KIMUPC ;MENTR-MRETN PC
TRAPFL==:UPTPFL
TRAPPC==:UPTPFO
TSBLOC=600
TS PIAC,20 ;SAVED USER AC'S DURING BREAK START
TS PSIBIP,1 ;BREAK IN PROGRESS WORD (LEVELS)
TS ENSKR,4 ;SCHEDULER TEMP (RETURN)
TS ADRBRK,1 ;ADDRESS BREAK INFO
TS ADRBK1,1 ;ADDRESS OF INSTRUCTION CAUSING ADDR BREAK
TS MONBK,1 ;INTERRUPT TO MONITOR IF NON-0
TS LSTIPC,1 ;PC OF LAST JSP T2,ITRAP1
TS FRKNOP,1 ;CONTAINS A NOP OR MDDT BREAKPOINT
TS PIFL,1 ;SAVED FLAGS MUST STAY WITH PIPC *****
TS PIPC,3 ;SAVED PC DURING INITIAL PI SERVICE
; CALLED WITH XPCW
TS FKTOFF,1 ;TIME AT WHICH CPU CLOCK TURNED OFF
TS NWSCE,1 ;NUMBER OF ENTRIES IN WS CACHE
TS LSTXGT,1 ;TIME (TODCLK) OF LAST XGC
TS SYMPAG,1 ;PAGE USED BY MDDT FOR MAPPING SYMBOLS
TS UTRSW,1 ;SAVED TRAPSW FOR USER
TS UMUUOW,2 ;SAVE MUUO WORD FOR USER
TS KIMUU1,2 ;LAST UUO WORD FROM USER
TS PSLEVT,1 ;ADDRESS OF USER'S LEVEL TABLE
TS PSCHNT,1 ;ADDESS OF USER'S CHANNEL TABLE
TS PSBITS,1 ;MISCELLANEOUS PER PROCESS BITS
TS TRPDSP,1 ;DISPATCH FOR MON ILLEG MEM REF
TS HPSWRN,1 ;TIME TO FLAG EXCESSIVE HP SCHEDULING
; Variables in psb associated with DIRECTORIES
TS(DRLOC,1) ;LOCATION IN DIR DURING SEARCHES
TS(DRINP,1) ;POINTER TO INPUT NAME DURING LOOKUP
TS(DRINL,1) ;LENGTH OF INPUT STRING
TS(DRMSK,1) ;MASK OF 0 BITS IN LAST WORD OF STRING
TS(DRSCN,1) ;POINTER TO FDB LINK DURING LOOKUPS
TS(DROFN,1) ;RH = OFN OF LAST DIRECTORY MAPPED
;LH = LAST FDB CHECKED
TS(DRMAP,1) ;ADDRESS OF MAP PAGE WHEN SEC2
TS (DIRCAD,1) ;CACHE ADDRESS OF LAST MAPDIR
TS(IDXMAP,1) ;ADDRESS OF IDX TABLE PAGE MAP WHEN EXTENDED ADDRESSING
TS(STRINF,1) ;FILE STRUCTURE INFORMATION
; ** KEEP EVLNTH/EVADDR TOGETHER IN ORDER
TS EVLNTH,1 ;ENTRY VECTOR LENGTH
TS EVADDR,1 ;ENTRY VECTOR ADDRESS
; ** KEEP EVLNTH/EVADDR TOGETHER IN ORDER
TS PATLEV,1 ;PA1050 ENTRY VECTOR LENGTH
TS PATADR,1 ;10/50 COMPATABILITY ENTRY VECTOR
; ** KEEP PATLEV/PATADR TOGETHER IN ORDER
TS PATU40,1 ;WHERE TO STORE C(40), SETUP AS UMOVEM 1,XX
TS PATUPC,1 ;WHERE TO STORE PC, SETUP AS UMOVEM 1,YY
TS DMSLEV,1 ;RMS (FORMERLY DMS) ENTRY VECTOR LENGTH
TS DMSADR,1 ;RMS (FORMERLY DMS) ENTRY VECTOR
; ** KEEP DMSLEV/DMSADR TOGETHER IN ORDER
TS DMSU40,1 ;WHERE TO STORE C(40) ON DMS CALL
TS DMSUPC,1 ;WHERE TO STORE PC OF DMS CALL
TS(CAPMSK,1)
TS(CAPENB,1)
TS(SNPPGS,1) ; PAGES LOCKED DOWN FOR SNOOPING
; XWD COUNT ,, PAGE # OF FIRST PAGE
TS(SNPLST,1) ; XWD FLAGS ,, LINK TO 1ST BP FOR FORK
TS(LSTERR,1) ; Last error number
TS (PDVS,1) ; Pointer to PDV block
NERRSV==:4 ; NUMBER OF ERROR PARAMETERS
TS(ERRSAV,NERRSV) ; Block of error parameters
TS(PSBMAP,PSBMSZ) ;MAP FOR PROCESS AREA
PSBM0=:PSBMAP-PSSPS ;BEG OF PSBMAP RELATIVE TO VIRT P G 0
PPLOW==:<PSBMAP-PSBPGA>+<PSSPEA-PSSPSA>/PGSIZ ;LOWEST NON-SPECIAL PAGE IN PP AREA
PPHI==:<PPLOW+<UPTPGA-PSSPEA>/PGSIZ>-1 ;HIGHEST NONSPECIAL PAGE
; STORAGE ASSOCIATED WITH JSYS TRAPS
TS JTBLK,1 ; FKJTB+forkn for this fork
TS JTLCK,1 ; Lock on jsys traps to monitor (this)
; fork; protects JTTRW and allows only
; one jsys trap interrupt at a time to
; this monitor
TS JTTRW,1 ; Jsys Trap Trap Word
; (set by interrupting fork)
; Contains trapping instruction
TS JTTFK,1 ; Forkn of trapping fork
TS JTMNW,1 ; Jsys Traps Monitor fork Word
; B12-B17: monitor's PSI channel,
; 77 means don't PSI this montior
; RH: forkn of mon interrupted (PSI'd)
TS PNSKDC,1 ;NOSKED'S DONE BY DIAG AND OTHER
; RESOURCE MONGERS
TS ARTHTR,1 ;USER-SPECIFIED ARITHMETIC TRAP
TS CRTRGN,1 ;FLAG TO INDICATE CODE NOW
; IN CRITICAL REGION OF MONITOR.
; INHIBITS REMOVAL FROM BALSET
TS STRWRD,1 ;FLAGS,,# OF STRUCTURES MOUNTED BY FORK.
; THIS NUMBER MAY NOT BE ACCURATE AS IT
; IS NOT DECREMENTED WHEN A DRIVE IS
; REMOVED FROM THE SYSTEM, AND THE FORK
; HAS NOT DECREMENTED IT. THE COUNT IS
; USED AT KSELF TIME TO SEE IF IT IS
; NECESSARY TO GO THRU EXTRA STRUCTURE
; CODE.
TS FKXORA,1 ;FORK IDXORA DURING CREATION OF STRUCTURE
TS LOKHI,1 ;INDEX OF HIGHEST LOCK HELD AT THIS TIME
IFN JSSTAT, < ; JSYS TIMING CONDITIONAL
TS JSNUM ; JSYS BEING TIMED
TS JSTIM0 ; FORK RUN TIME AT USER-MONITOR INTERFACE
>
IFG TSBLOC-1000,<
PRINTX PSB STORAGE OVERFLOWS ONE PAGE>
TSBLOC=1000 ;PUT WS CACHE AT START OF SECOND PAGE
WSCNCW==:200 ;SIZE OF WS CACHE - MUST MATCH VALUES IN PAGEM
TS WSCSH,WSCNCW ;WORKING SET CACHE
NUPDL==:400 ;SIZE OF MONITOR CALL STACK
UPDL=:PSBPGA+2*PGSIZ-NUPDL ;PUT UPDL AT TOP OF STACK PAGE
IFL <2*PGSIZ-NUPDL-TSBLOC>,<PRINTX ?PSB Variables and Stack Conflict>
.ENDPS PSVAR
;SWAPPABLE PATCH AREA:
SWAPCD ;PUT SWPF IN SWAP MONITOR CODE
SWPF:: XLIST
REPEAT 100,<0>
LIST
;THE FOLLOWING MUST BE THE FIRST RESIDENT CODE LOADED
RESCD
;PARAMETER DEPENDENT DEVICE CODE
;DTE
DTSCNW::0 ;HOLD CONO WORD FOR MASTER DTE
MSTRDT::0 ;ID OF MASTER DTE
IFG DTEN,< ;DTE STORAGE
PWRFLE::CALL DTEPWF ;TELL MASTER -11 OF POWER FAIL
PROFLG::1 ;IF 0 DON'T GO INTO PRIMARY PROTOCOL
RS FEFLG,1 ;USE 2ND PROTOCOL UNITL FURTHER NOTICE
RS FEDBSW,1 ;FE DEBUG SWITCH
RS FEDBST,1 ;FE DEBUG STATE, TOGGLED BY .DFDBG MSG
RSI SVDTRJ,<0,JRST SVDTAC> ;DOES A JSR TO HERE
QQ==0 ;GENERATE INT VECTOR
DTETRP::REPEAT DTEN,<DTEINN \QQ ;DO ONE
QQ==QQ+1> ;DO ALL DTE'
QQ==0 ;NOW DO INTERRUPT CODE
REPEAT DTEN,<DTEPRO \QQ ;DO ONE
QQ==QQ+1> ;AND DO ALL
QQ==0
CNDO:: REPEAT DTEN,<CONO DTE0+QQ,
QQ==QQ+4> ;DO ALL DTE'S
QQ==0
DATO:: REPEAT DTEN,<DATAO DTE0+QQ, ;THE DATAO TABLE
QQ==QQ+4> ;DO ALL DTE'S
DTESTK::IOWD DTESZ,DTESKP ;DTE LOCAL STACK
>
IFE DTEN,< ;IF NO DTE
PWRFLE::JFCL ;NO SPECIAL POWER FAIL CODE
>
IFG SSATF,< ;#25 If we have SA-10 magtapes
SMTSCN::SSATSC ;#25 Set to sub-channel number that magtapes are on
> ;#25 .
IFN SMFLG,<
;SM10
;THESE ARE CURRENTLY USED ONLY FOR TTY SERVICE FOR SINGLE/MULTI TTYS.
PROFLG::1 ;PROTOCOL FLAG 0 DON'T ENTER PROMAIY PROTOCOL
RS FEFLG,1 ;USE 2ND PROTOCOL UNTIL FURTHER NOTICE
>
IFE DCN,< ;IF NO DECNET SUPPORT
DEDMCB::
NSPSPC::
NSPQ:: BUG(NSPUDF)
NODINI::
NSPINI::RET ;NOTHING TO DO
.NTMAN::JRST UJSYS0 ;UNDEFINED IF NO DECNET SUPPORT
SWAPCD
.NODE:: MCENT ;MONITOR CONTEXT ENTRY
UMOVE T1,1 ;GET FUNCTION CODE FROM USER
CAIL T1,0 ;FUNCTION CODE WITHIN
CAIL T1,NDTLEN ;VALID RANGE ?
ITERR (ARGX02) ;NO, RETURN "INVALID FUNCTION" ERROR
XCT NODTAB(T1) ;DISPATCH TO PROPER ROUTINE
ITERR () ;FAILED, RETURN ERROR CODE
MRETNG ;SUCCESS, DONE.
; TABLE OF NODE JSYS FUNCTIONS
NODTAB: SKIPA ;(0) SET LOCAL NODE NAME
CALL NDGLN ;(1) GET LOCAL NODE NAME
SKIPA ;(2) SET LOCAL NODE NUMBER
SKIPA ;(3) GET LOCAL NODE NUMBER
SKIPA ;(4) SET LOOPBACK PORT
SKIPA ;(5) CLEAR LOOPBACK PORT
SKIPA ;(6) FIND LOOPBACK PORT
SKIPA ;(7) SET NETWORK TOPOLOGY INFO
CALL NDGNT ;(10) GET NETWORK TOPOLOGY INFO
SKIPA ;(11) SET ITERRUPT CHANNEL FOR TOPOLOGY CHANGE
SKIPA ;(12) CLEAR ITERRUPT CHANNEL FOR TOPOLOGY CHANGE
SKIPA ;(13) GET NSP VERSION INFORMATION
SKIPA ;(14) GET LINE INFORMATION
CALL NDVFY ;(15) VERIFY NODE NAME
NDTLEN==.-NODTAB
;NDGLN - RETURN LOCAL NODE NAME
NDGLN: UMOVE T2,2 ;GET ADDRESS OF USER'S ARGUMENT BLOCK
UMOVE T1,.NDNOD(T2) ;GET POINTER TO WHERE NODE NAME IS TO GO
MOVEI T3,.NDNOD(T2) ;GET ADDRESS TO RETURN UPDATED POINTER
HRROI T2,OURNAM-1 ;GET POINTER TO SOURCE STRING
CALL CPYTU1 ;COPY STRING TO USER SPACE, RETURN POINTER
RETSKP ;DONE, RETURN SUCCESS
;NDGNT - GET NETWORK TOPOPLOGY INFORMATION
NDGNT: UMOVE T4,2 ;GET ADDRESS OF USER'S ARGUMENT BLOCK
MOVEI T1,1 ;ONLY LOCAL NODE IS KNOWN
XCTU [HRLM T1,.NDNND(T4)];YES, STORE COUNT OF ITEMS RETURNED
MOVX T1,.NDNBS ;GET SIZE OF A NODE BLOCK
UMOVEM T1,.NDCNT(T4) ;STORE IN USER ARG BLOCK
MOVEI T1,.NDBK1+1(T4) ;SET UP ADDRESS OF POINTER
UMOVEM T1,.NDBK1(T4) ;STORE ADDRESS OF FIRST NODE BLOCK
MOVEI T3,.NDNBS(T1) ;ADD IN BLOCK SIZE
HRLI T3,(<POINT 7,0>) ;FORM A STRING POINTER
UMOVEM T3,.NDNAM(T1) ;STORE NAME POINTER
XCTU [SETZM .NDSTA(T1)] ;SAY IS UP
XCTU [SETZM .NDNXT(T1)] ;NOT CONNECTED TO ANYBODY
DMOVE T1,OURNAM ;GET LOCAL NAME
UMOVEM T1,(T3) ;STORE STRING
UMOVEM T2,1(T3) ;STORE STRING
RETSKP ;DONE, RETURN SUCCESS
; NDVFY - VERIFY NODE NAME IS IN MONITOR'S DATABASE OF KNOWN NODES
NDVFY: UMOVE T2,2 ;GET ADDRESS OF USER ARGUMENT BLOCK
MOVX T1,ND%EXM ;SUCCESS, NODE IS KNOWN
UMOVEM T1,.NDFLG(T2) ;STORE RESULT IN USER SPACE
RETSKP ;DONE, RETURN SUCCESS
NAMINI::RET ;NO NAME SETUP
BLKASG::EXP 0 ;NO DECNET SPACE USED
OURNAM::ASCIZ/LOCAL/ ;#437 DEFAULT NAME
RESCD
DCOPNM==:0 ;DEFAULT OF 0 IF NO DECNET
;ROUTINE TO INITIALIZE NODE NAME TO NULL FOR NON-DECNET SYSTEM
IFG DCN,<
NAMINI::SETZM OURNAM ;NO NODE NAME
SETZM OURCNT ;NO CHARACTERS IN NAME
RET
>
>
; TCP
IFG TCPN,<
FKABCP::POINT ABTCBS,TCPABC ; Pointer to base of TCP abort counters
>; End IFG TCPN
IFE MTAN,< ;IF NO MAGTAPES (YOU LUCKY DEVIL)
RELMT::RET> ;DUMMY ROUTINE
IFE ATS,< ;IF NO APPLICATIONS TERMINAL SERVICE
ATSINI::HRLOI T1,377777 ;SET ATS TIMER NOT TO GO REQUIRE WAKEUP
MOVEM T1,ATSTYM
DOATSQ::RET ;FOR NSPTSK - DON'T DO ANYTHING
CKATSQ:: ;FOR NSPTST - DON'T WAKEUP
CHKATS::RETSKP ;DUMMY CHKATS - INDICATES NOT AN ATS JFN
.SINM:: JRST UJSYS0 ;UNDEFINED IF NO ATS SUPPORT
.SOUTM::JRST UJSYS0 ;UNDEFINED IF NO ATS SUPPORT
>
;BUFFER ADDRESSES
LPTRLP::
XX==0
REPEAT LPTN,<
-NLPBF,,LPTBUF+XX
XX=XX+2*NLPBF>
;TTYSRV
IFL NTTBL1-NTTBL,<PRINTX ?NTTBL IS GREATER THAN NTTBL1. THAT IS AN ERROR.>
IBFRC:: EXP <^D20>B7+<NTTBL>B11+<NTTBL>B15+<NTTBL*NCHBF-1>B25+<NTTBL*NCHBF-2>B35
IBFRC1:: EXP <^D100>B7+<NTTBL>B11+<NTTBL1>B15+<NTTBL*NCHBF-1>B25+<NTTBL1*NCHBF-2>B35
OVRBCT==:1 ;NUMBER OF EXTRA BUFFERS FOR HIGH SPEED LINES
;GLOBAL CONTROL FLAGS
DRUMP:: DRMN ;1 = SWAP ON DRUM, 0 = SWAP ON DSK,
;-1 = DO NOT SWAP
NSWPGS::SWDST ;NUMBER OF SWAP PAGES TO ALLOCATE
RSI PRELDF,0 ;NO PRELOADING IF 0
SWRSAF::1 ;REASSIGN SWAP ADDRESSES IF .G. 0
POSPGF::1 ;POST PURGE IF .G. 0
SMLKF:: 0 ; .G 0 MEANS LOCK SWPMON IN CORE,
; .E 0 MEANS DEMAND PAGE SWPMON
HIDSYF::HIDSYM ;HIDE SYMBOLS IF NON-ZERO
CTYTYP::TYPCTY ;LINE TYPE FOR CTY
RS KLILNO,1 ;KLINIK LINE NUMBER
PSNAM:: 'PS ' ;NAME OF THE PUBLIC STRUCTURE
LPSNAM::0 ;LOGICAN NAME IF OTHER THAN PS
;DISK QUOTA ENFORCEMENT FLAG AND VALUE
NDG USRSCF,-1 ;INITIAL CONTENTS OF USRSPC (NON-0 TO PREVENT
; WRITE OPENF IF USER OVER ALLOCATION)
USRSPC:: USRSCF ;TRUE = DON'T ALLOW WRITE OPEN IF USER EXCEEDS
;DIRECTORY DISK ALLOCATION
SYSSPC:: SYSSCF ;DON'T ALLOW WRITE OPEN IF SYSTEM FREE PAGE
;COUNT IS .L. C(SYSSPC)
RS MADBRK,1 ;MONITOR ADDRESS BREAK WORD
RS APRSER,1 ;APR SERIAL NUMBER
EXADFL::0 ;EXTENDED ADDRESSING FLAG 1=MODEL B MACHINE
EXADF1::0 ;MUUO/PAGE FAIL FLAG 1=MODEL B MACHINE
SMFLAG::SMFLG ;VALUE OF SMFLG (0=NON SM10 1=SM10)
EXADDR::0 ;DIRECTORY FLAG 0=SEC 0 740000
;+>= SEC 2 MAX SIZE 30 PGS
;- = SEC 2 MAX SIZE 256. PGS
SYSTAD::0 ;SYSTEM LOAD DATE/TIME
SWCEND::
IFE BUGSTF<NRCODL> ;END OF SWAPPABLE MONITOR
IFN BUGSTF,<BGPTRL> ;END OF SWAPPABLE MONITOR+BUGSTRINGS+BUGPOINTERS
;POINTER TO BUGPOINTER TABLE
NBUGP==:BGPTRZ-BGPTR+1
BUGTP::
IFE BUGSTF,<0> ;NO BUGPOINTERS IF BUGSTF=0
IFN BUGSTF,<-NBUGP,,BGPTR> ;-LEN,,ADDR OF BGPTR PSECT
;SYSTEM LOGICAL NAME INITIAL VALUES
.PSECT RSDAT
;WHEN SIX SPACES PRECEDE THE COLON, SLNINI INSERTS THE NAME OF THE PRIMARY
;STRUCTURE INTO THAT LOCATION
SYNMTB::XWD [ASCIZ/SYS/],[ASCIZ/ :<SUBSYS>/]
XWD [ASCIZ/HLP/],[ASCIZ/SYS:/]
XWD [ASCIZ/SYSTEM/],[ASCIZ/ :<NEW-SYSTEM>, :<SYSTEM>/]
XWD [ASCIZ/EDITOR/],[ASCIZ/SYS:EDIT.EXE/]
XWD [ASCIZ/ACCOUNT/],[ASCIZ/ :<ACCOUNTS>/]
XWD [ASCIZ/PS/],[ASCIZ/ :/]
SYNMCT==:.-SYNMTB
ERRPT:: ASCIZ / :<SYSTEM>ERROR.REPORT/
LCKTAB:: 0 ;MUST BE HERE
ALLOKS
;TERMINAL TYPE TABLES
; B0, B1, B2, B3, B4-7, B8-11, B12-15, B16-19
; FF,TAB, LC, --, CRPD, LFPAD, TABPAD, FF PAD
;NORMAL MODE IS LOWERCASE BIT ON, MOST DEVICES WILL PRINT LC CHAR
;AS UC. FF AND TAB PADDING IS SPECIFIED FOR TTYS IN CASE
;FF OR TAB BIT TURNED ON MANUALLY
DEFINE TY(BB,CRPD,LFPD,TBPD,FFPD,WID,LEN)<
^D<<BB>B2+<CRPD>B7+<LFPD>B11+<TBPD>B15+<FFPD>B19+<WID>B27+<LEN>B35>
>
RESCD
TTYPE0::TY(0,0,0,2,12,72,66) ; 0 - MOD 33
TY(6,0,0,2,12,72,66) ; 1 - MOD 35
TY(1,0,0,2,12,72,66) ; 2 - MOD 37
TY(1,10,0,0,0,80,66) ; 3 - TI
TY(1,15,15,0,0,79,66) ;#156 4 - Line processor (for NLS)
TY(1,0,0,0,0,80,24) ;#156 5 - Datamedia (for SRI)
TY(5,0,12,0,0,79,24) ;#156 6 - HP 2640A
TY(7,0,0,0,0,0,0) ;#156 7 - NVT (historical value)
TY(1,6,6,2,12,72,66) ; 8 - DEFAULT: MAX PADDING, ETC.
TY(7,0,0,0,0,0,0) ; 9 - 'IDEAL' TERMINAL, NO FILL INF SIZ
TY(2,0,4,0,12,72,20) ; 10 - VT05
TY(2,0,0,0,0,80,12) ; 11 - VT50
TY(0,6,6,2,12,80,66) ; 12 - LA30
TY(1,0,0,0,0,80,30) ; 13 - GT40 (WITH SMALL CHAR STRAPPING)
TY(1,0,0,0,0,132,66) ; 14 - ;LA36. SAME AS VT50 BUT WIDER
TY(3,0,0,0,0,80,24) ; 15 - VT52
TY(3,0,0,0,0,80,24) ; 16 - VT100
TY(3,0,0,0,0,132,66) ; 17 - LA38
TY(7,0,0,0,0,132,66) ; 18 - LA120
TY(1,0,0,2,12,130,0) ;#233 19 - MOD 43
TY(1,0,0,0,0,80,24) ;#233 20 - WTEC
TY(1,0,0,0,0,80,24) ;#233 21 - Hazeltine 1500
TY(3,0,0,0,0,80,24) ;#233 22 - Teleray 1061
TY(1,0,0,0,0,78,34) ;#233 23 - Tektronix 4025
TY(5,0,0,0,1,80,40) ;#233 24 - Annarbor
TY(3,0,0,0,0,80,24) ;#233 25 - Heath H-19
TY(1,0,0,0,0,78,38) ;#233 26 - IMLAC
TY(7,0,0,0,0,80,24) ;#233 27 - DM1520
TY(3,0,0,0,0,80,24) ;#233 28 - Fox 1100
TY(3,0,0,0,0,80,24) ;#233 29 - Concept 100
TY(1,0,0,0,0,80,24) ;#341 30 - SOROC
TY(1,0,0,0,0,80,24) ;#341 31 - TELEVIDEO-950
TY(7,0,0,0,0,80,24) ;#357 32 - DM3025
0 ; 33 - Reserved for Customers
0 ; 34 - " " "
TY(3,0,0,0,0,80,24) ; 35 - VT125
TY(3,0,0,0,0,80,24) ; 36 - VK100
MXDECT==:.-TTYPE0 ; Max DEC TTY type index
TY(1,2,6,0,0,80,66) ; TI733
TY(1,0,4,0,0,79,24) ; Scopes (4023 etc.)
TY(1,0,0,0,0,80,66) ; TI743/745
TY(1,0,0,0,0,79,23) ; HP
TY(7,0,0,0,0,79,34) ; 4024
TY(7,0,0,0,0,79,34) ; 4025
TY(1,16,0,0,16,80,66) ; Scope data, Inc.
TY(3,0,0,0,0,80,24) ; Concept 100
TY(3,0,0,0,0,80,24) ;Teleray 1061
TY(3,0,0,0,0,80,64) ; BBN Bitgraph
NTTYPS==:.-TTYPE0
NLTTYP==:NTTYPS-MXDECT ; # of local TTY types
LTTYPS::SIXBIT /TI733/
SIXBIT /4023/
SIXBIT /TI743/
SIXBIT /HP/
SIXBIT /4024/
SIXBIT /4025/
SIXBIT /SCPDAT/
SIXBIT /C100/
SIXBIT /T1061/
SIXBIT /BITGRF/
;SECOND PARALLEL TYPE INFORMATION TABLE
DEFSTR DSPTB,TTYPE1,35,18 ;ADDRESS OF DISPLAY CONTROL TABLE
;BIT 0 OF TTYPE1 INDICATES WHETHER TERMINAL TYPE AUTOMATICALLY
;ENABLES XON AND XOFF PROCESSING.
DEFINE TY1(DPTAB)<
DPTAB
>
TTYPE1::
REPEAT ^D4,< ;#156 Types 0-3 are not displays
TY1(0)
>
Ty1(0) ;#156 4 - Line Processor
Ty1(DMTB) ;#156 5 - Datamedia
Ty1(Hptb) ;#156 6 - HP 2640a
Ty1(0) ;#156 7 - NVT (historical value)
Ty1(0) ;#156 8 - Reserved for customer
Ty1(0) ;#156 9 - Reserved for customer
TY1(VT05TB) ; 10 - VT05
TY1(VT50TB) ; 11 - VT50
TY1(0) ; 12 - LA30
TY1(0) ; 13 - GT40
TY1(0) ; 14 - LA36
TY1 (VT52TB) ; 15 - VT52
TY1 (VT100T) ; 16 - VT100
TY1 (0) ; 17 - LA38
TY1 (0) ; 18 - LA120
Ty1(0) ;#233 19 - Model 43
Ty1(WtecTb) ;#233 20 - WTec
Ty1(Hazltb) ;#233 21 - Hazeltine 1500
Ty1(Vt50tb) ;#233 22 - Teleray 1061
TY1(Tektb) ;#233 23 - Tektronix 4025
TY1(Anntb) ;#233 24 - Ann Arbor
TY1(VT50TB) ;#233 25 - Heath H-19
TY1(0) ;#233 26 - ImLac
TY1(DM15tb) ;#233 27 - DM1520
TY1(Foxtb) ;#233 28 - Fox 1100
TY1(C100Tb) ;#233 29 - Concept 100
TY1(Teletb) ;#233 30 - Soroc
TY1(Teletb) ;#233 31 - TeleVideo-950
TY1(DM25tb) ;#233 32 - DM3025
TY1(0) ;#233 33
TY1(0) ;#233 34
TY1(VT125T) ; 35 - VT125
TY1(VK100T) ; 36 - VK100 - GIGI
TY1(0) ; 37 - TI733
TY1(SCOPTB) ; 38 - Scope (4023)
TY1(0) ; 39 - TI743/745
TY1(VT52TB) ; 40 - HP's are same as VT52's
TY1(SCOPTB) ; 41 - 4024 like 4023
TY1(SCOPTB) ; 42 - Same for 4025
TY1(0) ; 43 - Scope data isn't a scope...
TY1(C100TB) ; 44 - CONCEPT 100
TY1(T1061T) ; 45 - Teleray 1061
TY1(BITGTB) ; 46 - BBN Bitgraph
IFN <.-TTYPE1>-NTTYPS,<PRINTX %%TERM TYPE TABLES OF DIFFERENT LENGTHS>
;CURSOR CONTROL TABLES. TABLE FOR EACH TERMINAL TYPE, INDEXED
;BY FUNCTION.
.STP==:377 ;STOP CODE
;VT05 TABLE AND FUNCTION INDEX DEFINITIONS
VT05TB::
PHASE 0
.CURUP::!Z [BYTE (8)32,0,0,0,0,.STP]
.CURDN::!Z [BYTE (8)13,0,0,0,0,.STP]
.CURBK::!BYTE (8).CHBSP,.STP
.CURFW::!BYTE (8)30,.STP
.CURHM::!Z [BYTE (8)35,0,0,0,0,.STP]
.CURES::!Z [BYTE (8)37,0,0,0,0,.STP]
.CUREL::!Z [BYTE (8)36,0,0,0,0,.STP]
DEPHASE
AnnTb:: ;#423/#233 Ann Arbor table
VK100T:: ; VK100 TABLE
VT125T:: ; VT125 TABLE
VT100T:: ; VT100 TABLE
BYTE (8).CHESC,"[","A",.STP ;UP
BYTE(8).CHESC,"[","B",.STP ;DOWN
BYTE(8).CHESC,"[","D",.STP ;BACK
BYTE(8).CHESC,"[","C",.STP ;FORWARD
BYTE(8).CHESC,"[","H",.STP ;HOME
BYTE(8).CHESC,"[","J",.STP ;ERASE TO END OF SCREEN
BYTE(8).CHESC,"[","K",.STP ;ERASE TO END OF LINE
;VT50 TABLE - USES ESCAPE SEQUENCES
HPtb:: ;#156 HP2640a
BITGTB::
VT52TB::
VT50TB::BYTE (8).CHESC,"A",.STP ;CURSOR UP
Z [BYTE (8).CHLFD,0,0,0,0,.STP] ;CURSOR DOWN
BYTE (8).CHBSP,.STP ;CURSOR BACK
BYTE (8).CHESC,"C",.STP ;CURSOR FORWARD
BYTE (8).CHESC,"H",.STP ;CURSOR HOME
BYTE (8).CHESC,"J",.STP ;ERASE SCREEN
BYTE (8).CHESC,"K",.STP ;ERASE LINE
; 4023 (SCOPE type)
SCOPTB::BYTE (8).STP ; Cursor up (none)
BYTE (8).CHLFD,.STP ; Cursor down
BYTE (8).CHBSP," ",.CHBSP,.STP ; Cursor back (with erase)
BYTE (8)" ",.STP ; Cursor forward
Z [BYTE (8)^D28,^D32,^D32,0,0,.STP] ; Cursor HOME (position 0,0)
BYTE (8).STP ; No erase end of screen on 4023
BYTE (8).STP ; Erase line (NO FUNCTION)
;Concept 100
C100TB::BYTE (8).CHESC,";",.STP ;CURSOR UP
BYTE (8).CHESC,"<",.STP ;CURSOR DOWN
BYTE (8).CHESC,">",.STP ;CURSOR BACK
BYTE (8).CHESC,"=",.STP ;CURSOR FORWARD
BYTE (8).CHESC,"?",.STP ;CURSOR HOME
BYTE (8).CHESC,3,.STP ;ERASE SCREEN
BYTE (8).CHESC,^D19,.STP;ERASE LINE
;Teleray 1061
T1061T::BYTE (8).CHESC,"A",.STP ;CURSOR UP
BYTE (8).CHESC,"B",.STP ;CURSOR DOWN
BYTE (8).CHESC,"D",.STP ;CURSOR BACK
BYTE (8).CHESC,"C",.STP ;CURSOR FORWARD
BYTE (8).CHESC,"H",.STP ;CURSOR HOME
BYTE (8).CHESC,"J",.STP ;ERASE SCREEN
BYTE (8).CHESC,"K",.STP ;ERASE LINE
;#357 DM3025
DM25TB::BYTE (8).CHESC,"A",.STP ;CURSOR UP
Z [BYTE (8).CHLFD,0,0,0,0,.STP] ;CURSOR DOWN
BYTE (8).CHBSP,.STP ;CURSOR BACK
BYTE (8).CHESC,"C",.STP ;CURSOR FORWARD
BYTE (8).CHESC,"H",.STP ;CURSOR HOME
BYTE (8).CHESC,"K",.STP ;#412 Erase Screen (Actually LINE also)
BYTE (8).CHESC,"K",.STP ;ERASE LINE
DMTB:: BYTE (8)32,.STP ;#156 Datamedia screen controls
BYTE (8)12,.STP ;#156 .
BYTE (8)10,.STP ;#156 .
BYTE (8)34,.STP ;#156 .
BYTE (8)2,.STP ;#156 .
BYTE (8)27,.STP ;#156 .
BYTE (8)20,32,20,.STP ;#156 .
;#233 DM1520 - uses different funny control chars
DM15TB::BYTE (8)037,.STP ;#233 up
BYTE (8)012,.STP ;#233 down
BYTE (8)010,.STP ;#233 left
BYTE (8)034,.STP ;#233 right
BYTE (8)031,.STP ;#233 home
BYTE (8)013,.STP ;#233 erase to end-of-screen
BYTE (8)035,.STP ;#233 erase to end-of-line
;#233 Fox 1100
FOXTB:: BYTE (8).CHESC,"A",.STP ;#233 up
Z [BYTE (8).CHLFD,0,0,0,0,.STP] ;#233 down
BYTE (8).CHBSP,.STP ;#233 left
BYTE (8).CHESC,"C",.STP ;#233 right
BYTE (8).CHESC,"H",.STP ;#233 home
BYTE (8).CHESC,"J",.STP ;#233 erase to end-of-screen
BYTE (8).CHESC,"I",.STP ;#233 erase to end-of-line
;#233 Hazeltine 1500
HAZLTB::BYTE (8)176,014,.STP ;#233 up
BYTE (8)176,013,.STP ;#233 down
BYTE (8).CHBSP,.STP ;#233 left
BYTE (8)020,.STP ;#233 right
Z [BYTE (8)176,022,0,0,0,0,.STP] ;#233 home
Z [BYTE (8)176,027,0,0,0,0,.STP] ;#233 erase to end-of-screen
BYTE (8)176,017,.STP ;#233 erase to end-of-line
;#233 Tektronix 4025
TEKTB:: Z [BYTE (8)"`","U","P","1",015,.STP] ;#375 up
Z [BYTE (8)"`","D","O","W","1",015,.STP] ;#375 down
Z [BYTE (8)"`","L","E","F","1",015,.STP] ;#375 left
Z [BYTE (8)"`","R","I","G","1",015,.STP] ;#375 right
Z [BYTE (8)"`","U","P","5","0",015,.STP] ;#375 home
Z [BYTE (8)"`","D","C","H","9","9",015,.STP] ;#375 erase to end-of-screen
Z [BYTE (8)"`","D","L","I","5","0",015,.STP] ;#375 erase to end-of-line
;#233 Winning TEC
WTECTB::BYTE (8)030,.STP ;#233 up
BYTE (8)021,.STP ;#233 down
BYTE (8)010,.STP ;#233 left
BYTE (8)027,.STP ;#233 right
BYTE (8)011,.STP ;#233 home
BYTE (8)023,.STP ;#233 erase to end-of-screen
BYTE (8)003,.STP ;#233 erase to end-of-line
;#341 SOROC & TELEVIDEO-950
TELETB::BYTE (8).CHVTB,.STP ;#341 up
BYTE (8).CHLFD,.STP ;#341 down
BYTE (8).CHBSP,.STP ;#341 left
BYTE (8).CHFFD,.STP ;#341 right
BYTE (8)036,.STP ;#341 home
BYTE (8).CHESC,"Y",.STP ;#341 erase to end-of-screen
BYTE (8).CHESC,"T",.STP ;#341 erase to-end-of-line
SWAPCD
; NAME OF FILE INTO WHICH ACCOUNTING INFO IS WRITTEN
USGFIL::ASCIZ /ACCOUNT:SYSTEM-DATA.BIN/
CKPFIL::ASCIZ /ACCOUNT:CHECKPOINT.BIN.1/
;ACCOUNTING SYSTEM DATA-BASE
NR USGJFN,1 ;JFN OF USGFIL
NR USGEOF,1 ;END OF FILE FOR USAGE FILE
NR USGBEG,1 ;HEAD OF QUEUE FOR JOB 0
NR USGEND,1 ;TAIL OF QUEUE FOR JOB 0
NR USQCNT,1 ;COUNT OF ITEMS ON USAGE QUEUE
NR CKPJFN,1 ;JFN OF CKPFIL
NR CKPINV,1 ;CHECKPOINT INTERVAL (SETTABLE)
NR CKPTIM,1 ;CHECKPOINT TIMER CELL
NR CKPDTL,1 ;DATE/TIME OF LAST CHECKPOINT
NR USGMUP,1 ; MONITOR UPTIME SINCE LAST RELOAD
RS USGLOK,1 ;LOCK ON USAGE FILE
NR ASCTIM,1 ;Next automatic accounting shift change time
; relative to TODCLK
NR ASCPTR,1 ;AOBJN pointer to accounting shift
;change times block
Nr Ascptx,1 ;#211 Current account shift change index
NR ASCFLG,1 ;Flag -1 if accounting shift change, 0
;if checkpoint
NR ASCLOK,1 ;Lock on ASCPTR
RESCD
;PHYSIO STORAGE
IFG PHYIOF,<
;TABLE OF KNOWN CHANNEL DISPATCH ROUTINES
PHYCHT::
IFG RH20F,< XWD .CTRH2,RH2DSP>
IFG RH11F,< XWD .CTRH2,RH2DSP>
IFG SSAN,< XWD .CTSSA,SSADSP> ;#25 SA10
PHYCHL==:PHYCHT-. ;NEGATIVE LENGTH OF TABLE
;TABLE OF KNOWN UNIT DISPATCH ROUTINES
PHYUNT::
IFG RS04F,< XWD .UTRS4,RS4DSP>
IFG RP04F,< XWD .UTRP4,RP4DSP>
IFG TM02F,< XWD .UTTM2,TM2DSP>
IFG DX20AF,< XWD .UTDXA,DXADSP>
IFG DX20BF,< XWD .UTDXB,DXBDSP>
IFG SSADF,< XWD .UTCC1,CC1DSP> ;#25 SA10 disks
IFG SSATF,< XWD .UTCT1,SATDSP> ;#26 SA10 tapes
IFG TM78F,< XWD .UTTM7,TM8DSP>
PHYUNL==:PHYUNT-. ;NEGATIVE LENGTH OF TABLE
RS CHNTAB,CHNN ;TABLE FOR CDB POINTERS
RS MAXCHN ;HIGHEST NUMBERED CHANNEL IN USE
RS ZSEND ;CURRENT END OF PAGE ZERO STORAGE
RS PHYSEC ;PHYSIO MINUTE COUNTER
;RESIDENT STORAGE FOR DIAG
RS(DIAGLK) ;LOCK ON DIAG
RS(DIAGFK) ;TEMP PAGE,,FORK WHO HAS DIAG LOCK
RS DIAGAR,1 ;AR/ARX INTERCEPT LOCATION
RS DIAGCW ;ADDRESS OF CCW LIST
RS DIAGWT ;FLAG SET IF ANOTHER FORK WAITING TO DIAG
;UDSKIO STORAGE
RS UIOLST ;FREE LIST FOR UDSKIO IORBS
RS UDIORB,<NUIORB*UIOLEN> ;POOL FOR UDSKIO IORBS
;SAVE AREAS AND PDLS
RS PHYACS,20 ;INTERRUPT SAVE ACS
RS PHYPDL,LPHYPD ;PRIVATE PDL FOR REQUESTS
RS PHYSVP ;CALLERS PDL
RS PHYIPD,LPHIPD ;INTERRUPT PDL
;STORAGE ASSOCIATED WITH THE HOME BLOCK CHECKING LOGIC
RS CHBUDB,1 ;UDB BEING CHECKED
RS CHBODT,1 ;OVERDUE TIME FOR CURRENT REQUEST
RS CHBLUC,1 ;UDB OF LAST UNIT CHECKED - TO PREVENT LOCKOUT
RS CHBIRB,IRBLEN ;IORB
RS CHBCCL,2 ;CHANNEL COMMAND LIST
RS CHBHB1,176 ;BUFFER FOR FIRST PART OF HOME BLOCK
RS CHBHB2,2 ;LAST 2 WORDS OF HOME BLOCK
> ;END IFG PHYIOF
IFN SSADF,< ;#25 if disks exist on SA10
DPKSPT==:^D128 ;#25 # HW sectors per track
DPKBPT==^D13440 ;#25 # bytes possible on a track
NBYTES==<NWREC*^D36>/^D8 ;#25 number of bytes in a record
DPKSEC::0 ;#25 record 0: set sector to 0
REPEAT NRECS,< ;#25 .
EXP ^D<DPKSPT*<237+<<135+NBYTES>*<.-DPKSEC-1>>>/DPKBPT>> ;#25 .
DPKSPR==:^D<DPKSPT*<135+NBYTES>/DPKBPT> ;#25 # sectors per record
> ;#25 end of IFN SSADF
IFG SSAN,< ;#25 .
SAXMSA::EXP SSAN-1 ;#25 maximum SA10
SAXMSC::EXP SSAN*SSANSC-1 ;#25 maximum sub channel
RS SSASV ;#25 PI5 rtn calls this location
IFE SSADF,<CC1DSP==:0> ;#25 if no SA10 disks
IFE SSATF,<SATDSP==:0> ;#25 if no SA10 tapes
DEFINE SSADEF(..DEF)< ;#25 .
DEFINE SSADF0(..SA,..SC)< ;#25 .
..DEF ;#25 .
> ;#25 .
DEFINE SSADF1(..SA,..EX)< ;#25 .
..SC==-1 ;#25 .
REPEAT SSANSC,< ;#25 .
SSADF0(..SA,\<..SC==..SC+1>) ;#25 .
> ;#25 .
> ;#25 .
..SA==-1 ;#25 .
REPEAT SSAN,< ;#25 .
SSADF1(\<..SA==..SA+1>) ;#25 .
> ;#25 .
PURGE ..SA,..SC ;#25 .
> ;#25 .
SAXBAS:: ;#25 addresses of base registers for each subchannel
SSADEF <EXP SA'..SA'BAS+<..SC*4>> ;#25 .
SAXCNI:: ;#25 CONI's for each subchannel
SSADEF <CONI SA'..SA,T1> ;#25 .
SAXCNO:: ;#25 CONO's for each subchannel
SSADEF <CONO SA'..SA,0(T1)> ;#25 .
SAXDTI:: ;#25 DATAI for each subchannel
SSADEF <DATAI SA'..SA,0(T1)> ;#25 .
> ;#25 end IFG SSAN
IFN RP04F,<
;RESIDENT TABLES OF SIZE DATA FOR DISKS BASED ON TYPE. DSKSIZ IS
;PARALLEL TO DSKUTP (DEFINED IN PHYSIO), WHICH CONTAINS CODES FOR THE
;KNOWN DISK TYPES. WHEN AN ENTRY IS ADDED TO DSKUTP, A CORRESPONDING
;ENTRY MUST BE ADDED TO DSKSIZ TO POINT TO THE CORRECT SIZE DATA FOR
;THAT TYPE OF DISK. DO NOT CHANGE THE ORDER OF THE SIZE DATA, SINCE
;THE MSTR JSYS USES A BLT TO COPY IT FOR THE .MSRNU FUNCTION.
;MACRO TO DEFINE DISK PARAMETERS. THE ARGUMENTS ARE USED TO GENERATE
;A TABLE OF DERIVED QUANTITIES FOR EACH DISK, AND ALSO TO DEFINE GLOBAL
;OFFSETS FOR REFERENCING THE TABLES. ALL ARGUMENTS ARE IN DECIMAL.
;
;SEPPG NUMBER OF SECTORS PER PAGE (ASSUMED TO BE A POWER OF 2 IN DSKALC)
;SEPSU NUMBER OF SECTORS PER SURFACE (TRACK)
;SUPCY NUMBER OF SURFACES PER CYLINDER
;CYPUN NUMBER OF CYLINDERS PER UNIT
;LATUNI MICROSECONDS PER LATOPT SECTOR UNIT
DEFINE DSKTAB(SEPPG,SEPSU,SUPCY,CYPUN,LATUNI),<
.INDX.==0 ;INITIALIZE OFFSET
;** THE ORDER OF THESE ENTRIES MUST NOT CHANGE WITHOUT FIXING MSTR **
DSKDAT (SECPAG,<SEPPG>,<SECTORS PER PAGE>) ;** MUST BE A POWER OF TWO **
DSKDAT (SECCYL,<<<SEPSU*SUPCY>/SEPPG>*SEPPG>,<SECTORS PER CYLINDER>)
DSKDAT (PAGCYL,<$SECCYL/$SECPAG>,<PAGES PER CYLINDER>)
DSKDAT (CYLUNT,<CYPUN>,<CYLINDERS PER UNIT>)
DSKDAT (SECUNT,<$SECCYL*$CYLUNT>,<SECTORS PER UNIT>)
DSKDAT (BTWCYL,<<$PAGCYL+35>/36>,<NUMBER OF BIT WORDS PER CYLINDER IN BITTABLE>)
DSKDAT (LPPCYL,<SEPSU*SUPCY-$SECCYL>,<LOST SECTORS PER CYLINDER>)
DSKDAT (MINFPG,<$PAGCYL/3>,<MINIMUM FREE PAGES FOR FREE CHOICE>)
DSKDAT (MAXFPU,<$PAGCYL*CYPUN>,<MAXIMUM FREE PAGES BEFORE TURNING POINT>)
DSKDAT (SECSRF,<SEPSU>,<SECTORS PER SURFACE>)
DSKDAT (USSECU,<LATUNI>,<MICROSECONDS PER LATOPT SECTOR UNIT>)
IFG <MXSTRU*$PAGCYL*$CYLUNT-MXPGUN>,< ;;MAXIMUM PAGES IN STRUCTURE INCREASED?
MXPGUN==:<MXSTRU*$PAGCYL*$CYLUNT>> ;;YES, DEFINE VALUE LARGER
IFGE <MXPGUN*$SECPAG-DSKAB>,< ;;BUT SEE IF SECTOR ADDRESS TOO LARGE
MXPGUN==:<<DSKAB-1>/$SECPAG>> ;;YES, REDUCE SO SECTOR ADDRESS FITS
>
MXPGUN==:0 ;DEFINE INITIAL VALUE
;MACRO USED TO DO ACTUAL WORK. IT DEFINES THE OFFSET FOR THIS DATA,
;REMEMBERS THE VALUE OF THIS DATA FOR USE IN LATER EXPRESSIONS, AND
;DUMPS THE DATA.
DEFINE DSKDAT(NAME,VALUE,TEXT),<
NAME==:<.INDX.==.INDX.+1>-1 ;;DEFINE OFFSET INTO TABLES
$'NAME==^D<VALUE> ;;CONDENSE THE EXPRESSION
EXP $'NAME ;NAME - TEXT
>
;NOW DUMP OUT THE TABLES FOR EACH KIND OF DISK:
DSKSZ0::DSKTAB (4,20,19,400,13) ;DATA FOR RP04 AND RP05
DSKSZ1::DSKTAB (4,20,19,800,13) ;DATA FOR RP06
DSKSZ2::DSKTAB (4,43,32,629,7) ;DATA FOR RP07
DSKSZ3::DSKTAB (4,30,5,820,8) ;DATA FOR RM03
DSKSZ4::DSKTAB (1,6,30,1119,8) ;DATA FOR RP20
>
;BREAK POINT PAGE ASSIGNMENTS
SNPBPS==:1000 ;LEN OF BREAK POINT PAGE (MUST BE 1000)
NRP (SNPBPP,SNPBPS) ;BREAK POINT PAGE
;*** SNPDPC <= 36. SINCE SNPFTB BITTABLE IS 1 WORD
SNPDPC==:8 ;NUMBER OF PAGES FOR USER CODE
SNPDPS==:1000*SNPDPC ;LENGTH OF SNOOP VIRTUAL AREA
NRP (SNPDAT,SNPDPS) ;DATA PAGES FOR USER CODE
;CAUTION: SNPBPP AND SNPDAT MUST BE CONTIGUOUS FOR SCHED TEST. (CHKSNP)
;SNOOP BREAK POINT LABEL DEFINITIONS
REPEAT 0,<
BP$000 1 MILLISECOND INTERVAL
RUNS AT APR INTERRUPT LEVEL WITH NO STACK SET UP.
ALL ACS MUST BE SAVED AND RESTORED
BP$001 POWER LINE FREQUENCY INTERVAL (50 OR 60 CYCLES)
RUNS AT APR INTERRUPT LEVEL WITH NO STACK SET UP.
ALL ACS MUST BE SAVED AND RESTORED.
BP$002 1 SECOND INTERVAL
RUNS AT APR INTERRUPT LEVEL WITH NO STACK SET UP.
ALL ACS MUST BE SAVED AND RESTORED.
BP$003 BREAKPOINT FOR OPEN NEW FILE
ASSUMPTIONS: JOB CONTEXT, STACK, OFN IN T1
OFFSET FOR JOB'S JFN TABLE IN 11
THESE ASSUMPTIONS HOLD FOR BP$003-BP$009
BP$004 BREAKPOINT FOR OPEN EXISTING FILE
SEE ASSUMPTIONS FOR BP$003
BP$005 BREAKPOINT FOR GET EXISTING PTT
SEE ASSUMPTIONS FOR BP$003
BP$006 BREAKPOINT FOR MAKE NEW PTT FOR LONG FILE
SEE ASSUMPTIONS FOR BP$003
BP$007 BREAKPOINT FOR PT-0 OF LONG FILE
SEE ASSUMPTIONS FOR BP$003
BP$008 BREAKPOINT FOR MAKE NEW PT IN LONG FILE
ASSUMES PT-NUMBER IN -2(P); ALSO:
SEE ASSUMPTIONS FOR BP$003
BP$009 BREAKPOINT FOR GET EXISTING PT IN LONG FILE
ASSUMES PT-NUMBER IN 0(P); ALSO:
SEE ASSUMPTIONS FOR BP$003
BP$010 (AT DASOFN) BREAKPOINT TO RELEASE OFN
ASSUMES JOB CONTEXT, OFN IN T1, STACK
BP$011 (AT REMFP2) BREAKPOINT FOR DELETE PAGE IN CORE
ASSUMES CST-INDEX IN T1
BP$012 (BELOW BKUP3) BREAKPOINT FOR WRITE TO DISC
ASSUMES CST-INDEX IN T1
BP$013 (BELOW BKUP3) BREAKPOINT FOR WRITE TO RPLQ
ASSUMES CST-INDEX IN T1
BP$014 (BELOW SWPO2) BREAKPOINT FOR WRITE TO DRUM
ASSUMES CST-INDEX IN T1
BP$015 (BELOW BKUP0) BREAKPOINT FOR WRITE TO RPLQ (DRUM ADDR)
ASSUMES CST-INDEX IN T1
BP$016 (AT SWPI5) BREAKPOINT FOR READ FROM DEVICE
ASSUMES [STG-ADDR] IN T4, [IDENT] IN T1 (I.E., [SPTN,,PN])
BP$017 (BELOW TRP0C) BREAKPOINT FOR READ FROM RPLQ
ASSUMES STACK. WILL CALL GETPHA TO IDENTIFY PAGE
BP$018 (BELOW WCPY) BREAKPOINT FOR COPY-ON-WRITE
ASSUMES TARGET [SPTN,,PN] IN T1, SOURCE CST-INDEX IN 0(P)
BP$019 (BELOW .CFORK) BREAKPOINT FOR CREATE SUB-FORK
ASSUMES FORK-INDEX OF CREATED FORK IS IN 7
BP$020 (BELOW LOGI1) BREAKPOINT FOR CREATE MAIN FORK
ASSUMES FORKX HAS FORK-INDEX, FKJOB(FORK-INDEX) HAS JOBNO
BP$021 (AT KSELF) BREAKPOINT FOR KILL FORK.
ASSUMES FORKX HAS SUICIDAL FORK INDEX
BP$022 (AT MAPDI1-1 IN DIRECT) BREAKPOINT FOR ASOFN FOR DIRECTORIES
ASSUMES DIRECTORY# IN T1, OFN IN DROFN USUALLY, BUT IN STRRDO
IF T1=ROOTDN
>
;Define home block I/O page. This page is used by fsiini and
;fsibat as a work page for home block I/O during system startup.
HOMPGA==:SNPDAT ;OVERLAY SNOOP DATA PAGES
HOMPG==:HOMPGA/1000 ;DEFINE THE PAGE NUMBER AS WELL
;SCHEDULER TESTS - HERE BECAUSE NO OTHER RESIDENT CODE IN DIRECT
EXTN <MLDTAB,NLDTAB> ;DEFINED IN DIRECT
LKDTST::HRRZ T1,Q3 ;GET FORK INDEX
IDIVI T1,^D36 ;COMPUTE BIT ADDRESS
MOVE T2,BITS(T2)
TDNE T2,LCKDBT(T1) ;STILL WAITING?
JRST 0(T4) ;YES
JRST 1(T4) ;NO, WAKEUP
LKDSPT::MOVE T1,MLDTAB ;GET LIMIT OF TABLE
CAIL T1,NLDTAB ;FULL?
JRST 0(T4) ;YES
JRST 1(T4) ;NO
;LOWER CORE DEFINITIONS - NOT CLEARED AT STARTUP
SCTLW==:20 ;SCHEDULER HALT REQUEST WORD
LOC 25 ;DOWN TO LOWER CORE
MMAPWD: EXP MMAP ;POINTER TO MMAP FOR SETSPD
LOC 70 ;DOWN TO LOW CORE
PWRTRP::BLOCK 1 ;EXECUTED ON POWER-FAIL AUTO RESTART
RLDADR::BLOCK 1 ;FE EXECUTE'S THIS ON CERTAIN RELAODS
EDDTF ;FORMERLY EDDTF
CRSTAD::BLOCK 1 ;TOD OF LAST CRASH
.JBDDT::DDTX ;JOBDDT
BLOCK 1 ;75 RESERVED - .JBHSO
DBUGSW ;THIS CELL FORMERLY DBUGSW
DCHKSW ;THIS CELL FORMERLY DCHKSW
BLOCK 10 ;100 THROUGH 107 RESERVED FOR
; FE COMMAND LANGUAGE FUNCTIONS
;CELLS NOT CHANGED DURING DISK RELOAD OF RES MON
STSBLK::BLOCK 1 ;110-111: STATUS BLOCK POINTER
BLOCK 1 ;NEXT WORD TO HOLD PHYSICAL ADDRESS
.JBEDV::MONEDV ;112 - POINTER TO EXEC DATA VECTOR
;113-114 RESERVED FOR THE FUTURE.
;THESE TWO LOCATIONS ARE THE ONLY TWO IN LOW CORE STILL FREE IN
;BOTH THE TOPS-10 AND TOPS-20 MONITORS. MAY BE NEEDED FOR EDDT
;ETC. IN THE FUTURE.
RELOC ;BACK TO NORMAL
CRSTD1=:27 ;CRASH TIME AND DATE SAVED WHILE RELOADING
BUGHAD=:26 ;BUGHLT AND CHK ADDRESSES SAVED WHILE RELOADING
;FORMERLY DBUGS1...NOW MMAPWD
SEBQOU=:24 ;OUTPUT PTR FOR SYSERR BLOCKS
;IN A FIXED PLACE SO JOB 0 CAN QUEUE UP
;BUGHLT BLOCK AFTER A CRASH.
CRSHTM=:23 ;INITIAL TIME FOR RELOADS. -1 INDICATES NOT SETUP YET
NPISK==24 ;SIZE OF STACK FOR PI LEVELS
;MONITOR'S EXEC DATA VECTOR. EDDT REFERS TO THIS BLOCK BY THE OFFSET
;NAMES. THE MONITOR USES THE NAMES OF THE INDIVIDUAL ENTRIES.
RSI MONEDV,<<'EDV',,EDVLEN>> ;.EDCNT - COUNT OF WORDS FOLLOWING
RSI HSYBLK,<>,1 ;.EDHSB - POINTER TO HSYSWP WHEN SYMBOLS HIDDEN
RSI HSYPTR,<>,1 ;.EDSYM - .JBSYM IN SYMBOL SPACE
RSI HUSPTR,<>,1 ;.EDUSY - .JBUSY IN SYMBOL SPACE
RSI HSYFLP,HSYFLG ;.EDHSF - POINTER TO SYMBOLS HIDDEN FLAG
EDVLEN==HSYFLP-MONEDV+1
;AREA USED BY EDDT WHEN IT SWAPS ADDRESS SPACES
HSYSWP::EXP 5 ;COUNT OF TOTAL WORDS FOLLOWING
EXP 2 ;COUNT OF WORDS TO SWAP (SECTIONS 0 AND 1)
EXP MSECTB ;ADDRESS OF WHERE TO SWAP WORDS
EXP SSECTB ;ADDRESS OF DATA TO PUT INTO MSECTB
EXP OSECTB ;ADDRESS WHERE EDDT SAVES OLD MSECTB
;HIDDEN SYMBOLS FLAG - NON-ZERO IF MSECTB POINTS TO SYMBOLS
RS HSYFLG,1 ;-1 IF SYMS HIDDEN NOW, 0 IF NOT (SET BY EDDT)
;ORIGIN OF MANUAL START TRANSFER VECTOR
SVECT=:140
;MANUAL START TRANSFER VECTOR
LOC SVECT
EVDDT:: JRST DDTX ;EDDT
JRST SYSDDT ;RESET AND GO TO EDDT
EVDDT2::JRST DDTX ;COPY OF EDDT IN CASE OTHER CLOBBERED
EVSLOD::JRST SYSLOD ;INITIALIZE DISK FILE SYSTEM
EVVSM:: JRST SYSVSM ;VERIFY SWAPABLE MONITOR ON STARTUP.
EVRST:: JRST SYSRST ;RESTART
EVLDGO::JRST SYSGO ;RELOAD AND START
EVGO:: JRST SYSGO1 ;START
DDTPRS::-1 ;DDT PRESENT IF NON-0, INITIALLY IS PRESENT
;AUTOMATIC RELOAD AND SWPMON LOAD STORAGE
BUTRXB::0 ;XB OF ROOT DIR ON SPECIFIED STR
BUTMUN::0 ;MAX. UNIT ON SPECIFIED STR
BUTDRT:: BLOCK 8 ;LOGICAL/ PHYSICAL MAPPING OF SPEC STR
BUTCMD:: BLOCK ^D15 ;ASCIZ MONITOR FILE NAME
BUTPGS::0 ;START,,END ADDRESSES OF VBOOT PAGES
BUTEPT::0 ;ADDRESS OF VBOOT PAGE TABLE PAGE
BUTPHY::0 ;# OF PAGES TO MAP,,# OF FIRST CORE PAGE
BUTVIR::0 ;VIRTUAL ADDRESS OF FIRST PAGE TO MAP
BOOTFL::0 ;0 - NORMAL BOOTSTRAP, +N - SPECIAL BOOT
TMPSMM==:500 ;TEMP SWPMON MAP DURING RESTART
IFN PHYIOF,<
;PAGE ZERO FREE STORAGE POOL FOR PHYSIO
PHYPZS::BLOCK PZSSIZ
> ;END IFN PHYIOF
RELOC
;PTR TO END OF RES VARS
ZROEND::RSVARZ
;NAME TO SAVE THE MONITOR IMAGE AFTER POSTLD AS
MONSNM::
IFE NETN,<IFN SMFLG,< ASCIZ /SMONITR.EXE/>>
IFE SMFLG,<IFN NETN,< ASCIZ /AMONITR.EXE/>>
IFN SMFLG,<IFN NETN,< ASCIZ /TMONITR.EXE/>>
IFE SMFLG!NETN,< ASCIZ /MONITR.EXE/>
DEFINE ECALL (DEV)<
IFG DEV'N,<
CALL DEV'CHK
RS DEV'TIM>>
;SCHEDULER DEVICE-DEPENDENT CALLS
LV8CHK::ECALL VBC
IFG DCN,<CALL NSPCH7> ;DO DECNET MESSAGES
IFN CHAOS,<CALL CHTTC7> ; 100 Do Chaosnet NVT input handling
IFN NMLCS,<CALL MLCCH7> ;DO MLC STUFF
RET
;TABLE OF CALLS FOR SECOND LEVEL CLOCKS
RS CLK2TM,0 ;SYMBOL OF FIRST CLOCK CELL IN TABLE
CLK2CL::
CALL WTCHK ;CHECK NON-SPECIAL WAITING FORKS
RS WTTIM,1
IFE PHYIOF,<
ECALL DSK ;DISK RE-QUEUE CHECK
ECALL DRM ;DRUM TIMEOUT CHECK
> ;END IFE PHYIOF
IFN PHYIOF,<
CALL PHYCHK ;PHYSIO TIMER ROUTINE
RS PHYTIM
> ;END IFN PHYIOF
ECALL DTE ;DO POLLER
ECALL KDP ;CHECK KDP (KMC11/DUP11)
ECALL PTP ;PAPER TAPE PUNCH
IFG PLTN,< ECALL PLT> ;PLOTTER
IFG PCDPN,< ;CARD PUNCH
CALL CDPCHK
RS CDPTIM
>
ECALL DTA ;DECTAPE
ECall LPT ;#161 PHYSICAL LPT
ECALL CDR ;THE CARD READER
ECALL DLX ;DL10
IFN NETN,<
CALL IMPCHK ;ARPANET
RS IMPTM2
>
CALL TIMSCM
RS TMMLTM ; Millisecond TIMER Q (elapsed time)
CALL TIMSCD
RS TMDTTM ; D&T TIMER Q
CALL TTYCHK ;CHECK CONTROLLER THINGS
RS TTYTIM ;ALLOCATE TIMER WORD
N2CLKS==:.-CLK2CL
;DEVICE INITIALIZATION AFTER SWPMON LOADED
SWAPCD
DEFINE INICLL (DEV)<
IFG DEV'N,<
CALL DEV'INI>>
INIDEV::
INICLL MTA
IFG LPTN,< IFG LPTN-FELPTN,<
INICLL LPT
>>
IFG CDRN,< IFG CDRN-FECDRN,<
INICLL CDR
>>
IFG PLTN,< INICLL PLT>
IFG PCDPN,< INICLL CDP> ;CARD PUNCH
INICLL PTP
INICLL PTR
INICLL DTA
INICLL VBC
RET
;DEVICE DEPENDENT ROUTINES USED ON KFORK
DEVKFK::
RET
;DEVICE INITIALIZATION FOR FRONT END DEVICES
INIDV1::
INICLL FE
IFG CDRN,<IFG FECDRN,<
INICLL CDR
>>
IFG LPTN,<IFG FELPTN,<
INICLL LPT
>>
RET
;GENERATE THE PROTOCOL DEVICE DISPATCH TABLE
RESCD
IFG DTEN,< ;ONLY IF A DTE EXISTS
DEFINE DTV (DEV)<
IFG DEV'N,<
DEV'DTV ;DISPACTH ADDRESS
>
IFE DEV'N,<
0 ;NO DISPATCH
>>
MINDEV==:.FECTY ;FIRST KNOWN DEVICE
DTEDTV::
BLOCK MINDEV ;RESERVE SPACE FOR UNKNOWN DEVICES
REPEAT 4,<TTYDTV> ;THE CTY,DL11,DH11, AND DLS DEVICES
IFG FELPTN,< ;FRONT END LPT'S?
DTV LPT> ;YES
IFE FELPTN,< ;BA10 LPT?
0> ;YES
IFG FECDRN,<
DTV CDR> ;THE CDR
IFE FECDRN,< ;IF NO CRD
0> ;RESERVE SPACE ANYWAY
0 ;UNKNOWN
DTV FE ;THE FE DEVICE
MAXDEV==:.-DTEDTV+MINDEV-1 ;LAST KNOWN DEVICE
> ;END OF PROTOCOL TRANSFER VECTOR LOGIC
;Keep these cells together. The ARPA GETAB% .LHOSTN requires this
RSI (NOHOST,<-1>) ; Old format host number
RSI (NVTPTR,<1>) ; -number of nvt's,,first nvt
RSI (DEFADR,<-1>) ; Default host address to use
RSI (DEFAD0,<-1>) ;#535 "backup" default
RS NETFLD ; "Default" network number, shifted
RS DEFNET ; Default network number
.PSECT RSDAT
NLHOST::REPEAT %NETS+3,<-1> ; Table of internet address' for host,
; Indexed by interface number (currently)
EXP 0 ; end of table flag
RESCD
;RESET ALL AND GO TO EDDT
SYSDDT: XCT PIRST
XCT IORST
JRST EVDDT2
;RELOAD SYSTEM FROM DISK AND RESTART
SYSGO::
;START SYSTEM KEEP EXISTING SWPMON PAGES
SYSGOX::MOVE P,PI7P ;GET A STACK
CALL SAVSMM ;SAVE PRESENT SWPMON MAP
MOVEI T1,IRBOOT ;NOTE SPECIAL INTERNAL BOOT
MOVEM T1,BOOTFL
JRST SYSGO1
;START FROM SCRATCH AFTER LOADING
SYSVSM::SETOM VSMFLG ;INDICATE FORCED CHECKS ON SWAPABLE MONITOR
SYSGO1::TDZA 7,7 ;INDICATE NORMAL STARTUP TO SAVE IN STARTF
SYSLOD::MOVX 7,MI%RFS ;INDICATE REFRESHING
MOVE P,PI7P
XCT PIRST ;RESET PI AND IO
XCT IORST
SETZM STSBLK ;NO STATUS BLOCK NOW
;IF HIDING SYMBOLS, BLT THE SYMBOLS UP OUT OF THE PPVAR AND RSCOD
;AREAS SO WE CAN CLEAR THE ZROCOR (RSVAR) AREA.
SKIPN HIDSYF ;INTEND TO HIDE THE SYMBOLS?
JRST SYSLD3 ;NO, PROCEED
HLLZ T2,.JBSYM ;COUNT OF SYMBOLS
SKIPGE .JBUSY ;AN UNDEFINED TABLE?
ADD T2,.JBUSY ;YES, BUMP COUNT
HLRO T2,T2 ;GET TOTAL LENGTH OF SYMBOL TABLE
MOVN T2,T2 ;FORM POSITIVE LENGTH
SKIPL T3,.JBUSY ;GET START OF UNDEFINED TABLE
MOVE T3,.JBSYM ;OR REGULAR TABLE IF NO UNDEFINEDS
ADD T3,T2 ;THENCE TO LAST ADDRESS OF TABLE+1
TLZ T3,-1 ;NOW CLEAR FOR INDEXING
MOVEI T4,SYVARZ+1+200 ;FIRST WORD OF NEW HOME (200 WORDS FOR PATCHING)
ADD T4,T2 ;LAST ADDRESS + 1
SYSLD2: SUBI T3,1 ;DECREMENT TO PREVIOUS SOURCE ADDRESS
SUBI T4,1 ;AND PREVIOUS DESTINATION ADDRESS
MOVE T1,0(T3) ;FETCH NEXT WORD OF TABLE (GOING BACKWARDS)
MOVEM T1,0(T4) ;STORE IN NEW HOME
SOJG T2,SYSLD2 ;LOOP OVER ENTIRE TABLE
SUBM T4,T3 ;OFFSET TO SYMBOLS' NEW HOME
ADDM T3,.JBSYM ;UPDATE .JBSYM
SKIPE .JBUSY ;UNDEFINED PTR SET UP?
ADDM T3,.JBUSY ;YES, FIX IT TOO
MOVE T1,[SYVAR,,SYVAR+1] ;NOW CLEAR SYMBOL MAPS AND PATCH SPACE
SETZM SYVAR ; ..
BLT T1,-1(T4) ; ..
;THIS BLT ZEROES THE RSVAR PSECT. BEFORE RELEASE 5, ANY RESIDENT DATA
;THAT WAS TO HAVE INITIAL VALUES OTHER THAN ZERO WAS INITIALIZED AFTER
;THIS BLT. THERE IS NOW A PSECT, RSDAT, THAT IS NOT ZEROED. THE RSI
;MACRO ALLOCATES SPACE AND ASSIGNS INITIAL VALUES IN RSDAT.
SYSLD3: MOVE 1,[XWD ZROCOR,ZROCOR+1]
SETZM ZROCOR ;CLEAR FIRST WORD
BLT 1,@ZROEND ;CLEAR RESIDENT STORAGE AREA
;BLT THE VIRGIN COPY OF THE OWGBP TABLE INTO THE EPT
HRRZI T1,EPTGBP ;BLT TO EPTGBP
HRLI T1,OWGBPV ;BLT FROM OWGBPV
BLT T1,EPTGBP+OWGBPN-1 ;COPY THE OWGBP TABLE INTO THE EPT
;TELL THE HARDWARE WHERE THE EPT IS
XCT IORST ;RESTORE CONOPG AND CASHF (CLEARED BY BLT)
CALL MONEPT ;SET TO MONITOR'S EPT
CALL PGRON ;TELL HARDWARE ABOUT IT
; ..
;NOW FIND THE MASTER DTE
IFE SMFLG,<
MOVSI T1,-DTEN ;NUMBER TO POLL
MOVE T2,[CONSO DTE0,DTEPRV] ;LOOK FOR PRIVILEGED BIT
MOVE T3,[CONSO DTE0,DTEPI0+7] ;CHECK FOR PI ASSIGNED
MOVE T4,[CONO DTE0,0] ; A CONO WORD
FDMST1: XCT T3 ;HAVE A PI ASSIGNMENT?
JRST [ HRRI T4,DTEPI0+DTEPIE ;NO TRY TO TURN ON PI 0
XCT T4 ;DO IT
XCT T3 ;DID IT TURN ON?
JRST FDMST0 ;NO. NON-EX DEVICE
TRZ T4,DTEPI0 ;TURN IT OFF
XCT T4
JRST .+1] ;AND PROCEED
XCT T2 ;THIS IT?
JRST [ MOVEI T2,0(T1) ;YES. GET DTE NUMBER
MOVEM T2,MSTRDT ;SAVE DTE NUMBER
LSH T1,^D26 ;ADJUST DEVICE FIELD
ADD T1,[CONO DTE0,0(T1)] ;FORM CONO WORD
MOVEM T1,DTSCNW ;STORE IN THE PROTOTYPE WORD
JRST SYSLD1] ;AND PROCEED
FDMST0: ADD T2,[4B11] ;NEXT DTE
ADD T3,[4B11]
ADD T4,[4B11] ;ADJUST ALL I/O INSTRUCTIONS
AOBJN T1,FDMST1 ;LOOK AT NEXT
HALT . ;THIS CAN'T HAPPEN!!!!!!!!!!!!
SYSLD1:
IFN DTFLG,< ;DOING FE PROTOCOLS?
PIOFF ;MAKE SURE MACHINE IS QUIET
JSR BUGMON ;MAKE SURE IN PROPER PROTOCOL
>
> ;END IFE SMFLG
IFN SMFLG,<
SYSLD1:
MOVEI T1,1 ;START WITH SECOND MAPPING REGISTER
;FIRST ONE RESERVED FOR BOOT
MOVEM T1,SMADNX
> ;END IFN SMFLG
SETOM BBNBYT ;FLAG FAST BYTE CODE
SETOM DSMENB ;FLAG ENABLE DISMOUNTS
SETZM CRSTD1
MOVEM 7,STARTF ;SAVE INDICATION OF HOW WE STARTED
MOVE 1,[BTB] ;GET ADDRESS OF BIT TABLE
MOVEM 1,BTBORA ;SET UP BASE ADDRESS FOR REFERENCE ELSEWHERE
SETOM BTBLCK ;INITIALIZE BIT TABLE LOCK
SKIPE 1,CRSTAD ;HAVE SAVED PRE-CRASH INFO?
MOVE 1,BUGHAD ;YES, RESTORE CELLS
HRRZM 1,BUGHLT
HLRZM 1,BUGCHK
AOS INSKED
;SET UP XPCW BLOCK FOR EACH DTE TO POINT TO INTERRUPT CODE
QQ==0
REPEAT DTEN,<DTXPCW \QQ ;STORE WORD FOR THIS DTE
QQ==QQ+1> ;DO THEM ALL
;STORE PROCESSOR'S SERIAL NUMBER. DETERMINE MODE OF ADDRESSING
;(EXTENDED VS: NONEXTENDED)
CALL GAPRID ;READ APR SERIAL NUMBER
MOVEM T1,APRSER
APRID T1 ;FIND TYPE OF MACHINE
TRZ 1,737777 ;CHECK FOR MODEL B MACHINE
IFE SMFLG,<
SKIPE [MSEC1] ;WANT TO TRY EXTENDED ADDRESSING SECTIONS?
HRRZM 1,EXADFL ;YES, SET FLAG
HRRZM 1,EXADF1 ;AND SET PC FORMAT FLAG
IFN EXADF,< ;IF INTENDING TO USE EXTENDED FEATURES
TRNE T1,-1 ;MUST HAVE EXTENDED MACHINE
SKIPN [MSEC1] ;AND BE USING MULTIPLE SECTIONS
BUG (NOXADR)
> ;END OF IFN EXADF
>
IFN SMFLG,<
SETOM EXADF1 ;SM10 DOES MODEL B FORMAT ONLY
HRRZM 1,EXADFL ;AND SET EXTENDED ADDRESSING FLAG
>
; ..
CALL RESFPI ;INITIALIZE THE RESIDENT FREE POOL
CALL PAGRST ;INIT PAGER SIMULATION (FOR KI10)
CALL PGRINI ;INIT CST, ETC.
IFN SMFLG,<
CALL UNBINI ;INIT UNIBUS ADAPTER
>
IFN PHYIOF,<
CALL PHYINI ;MUST INIT BEFORE PAGER (GRABS RES STG)
> ;END IFN PHYIOF
IFE PHYIOF,<
; DRUM IS INITIALIZED AFTER CALLING FSIINI
CALL DSKINI ;DISK
> ;END IFE PHYIOF
CALL TTINIT ;TELETYPE MODULE
IFG DLXN,<CALL DLXINI> ;DL10 CONTROLER
CALL SCDIN ;SCHEDULER
CALL PIINIT ;PI MODULE - LAST INIT
SETZM RESIFL ;END OF SYSTEM START UP (FOR RES FREE POOL)
MOVS 1,CTYLNO ;GET CTY LINE NUMBER
HRRI 1,JOBSRT ;START A NEW JOB LOCATION
CALL SCDRQ7 ;INITIATE FIRST JOB
JRST SCHED0 ;TO SCHEDULER
;ROUTINE TO RETURN THE LINE FREQUENCY OF THE POWER LINE
;RETURNS LINE FREQUENCY IN A. CLOBBERS ONLY A
LINFRQ::PUSH P,B ;SAVE AN AC
MOVEI A,^D60 ;ASSUME 60 HZ
APRID B ;GET LINE FREQ INFO
TRNE B,1B18 ;60 HZ?
MOVEI A,^D50 ;NO. TELL HIM IT IS 50 HZ
POP P,B ;RESTORE B
RET ;RETURN VALUE IN A
;RESTART SYSTEM
DEFINE DEVRST (DEV)<
IFG DEV'N,<CALL DEV'RST>>
SYSRST::MOVE P,PI7P
IFG DTFLG,< ;DOING FE PROTOCOLS?
PIOFF ;MAKE SURE ALL PI'S ARE OFF
JSR BUGMON ;MAKE SURE IN PROPER PROTOCOL
>
XCT PIRST
XCT IORST ;RESET PI AND IO
IFN NETN,< ;CYCLE ARPANET AFTER POWERFAIL
SKIPGE PWRDWN ;POWER RESTART?
JRST [;;AOS IMPDRQ ;YES, CYCLE NET
AOS IMPFLG ;AND ASK NCPFRK TO RUN SOON
JRST .+1] ;CONTINUE ON
>
SETOM SCDRN1
PUSH P,PWRDWN ;SAVE POWER FAIL INDICATOR
SETZM PWRDWN
CALL PAGRST ;INIT PAGER SIMULATION
CALL PGRRST
IFN SMFLG,<
CALL UNBRST ;RESTART UNIBUS ADAPTER
>
CALL TTRSET
IFE PHYIOF,<
DEVRST DRM
DEVRST DSK
DEVRST MTA
> ;END IFE PHYIOF
IFN PHYIOF,<
CALL PHYRST
> ;END IFN PHYIOF
DEVRST LPT
IFG KSCDRN,<
DEVRST CDR
>
DEVRST DTA
DEVRST PTR
IFG PCDPN,< DEVRST CDP> ;CARD PUNCH
DEVRST PTP
IFG PLTN,< DEVRST PLT>
DEVRST VBC
DEVRST DLX
PUSH P,INSKED
MOVEI 1,1
MOVEM 1,INSKED
SETZM SKEDF1
CALL PIINIT
CALL SWPRST ;SWAPPER CLEANUP
IFG DTFLG,< ;DOING FE DH CONFIGURATIONS?
SKIPE PROFLG ;AND DOING PRIMARY PROTOCOL?
CALL DTERST> ;YES. GO INIT THE PROTOCOL
POP P,1
EXCH 1,0(P) ;SAVE OLD INSKED, RESTORE OLD PWRDWN
SKIPGE 1 ;DOING POWER RESTART?
CALL TTDALL ;YES DETACH ALL JOBS THEN
POP P,1 ;GET OLD INSKED
JUMPN 1,SCHED0 ;RESUME SCHED IF THERE AT CRASH
CALL SETPPG ;REESTABLISH CONTEXT
SETZM INSKED
SETOM TRAPC
MOVSI 1,(UMODF) ;CRASH PROCESS RUNNING AT CRASH
MOVEM 1,FFL
SETZM FPC
SETOM SLOWF ;FAKE A USER CONTEXT SO RETURN CODE
; WILL ALWAYS WIN
JRST ITRAP
;DISPATCHES FOR PI CHANNELS 5-6.
;EACH ROUTINE CALLED WITH 'CALL'.
;ROUTINE SHOULD RETURN WITH 'RET' (CALLER +1) IF PI IS NOT FOR IT.
;ROUTINE SHOULD RETURN WITH 'UNBRK DEV' (JRST DEVCHR) AFTER HANDLING
;INTERRUPT.
DEFINE PICALL (DEV)<
IFG DEV'N,<CALL DEV'SV>>
PISC5:: XWD PI5R,.+1
IFN SSAN+DTAN+PTRN+PCDPN,< ;#25 GENERATE IF HELLIWELL IS ASSEMBLING OR CDP PRESENT
DMOVEM T1,PI5AC ;SAVE TEMP ACS
DMOVEM T3,PI5AC+2
DMOVEM CX,PI5CX ;SAVE CX, P
MOVE P,[IOWD NPISK,PI5STK]
PICALL CDP ;CARD PUNCH
PICALL DTA
PICALL SSA ;#25 SA10 channel
PICALL PTR
>
IFE SSAN+DTAN+PTRN+PCDPN,< ;#25 IF NO PI CODE
PIOFF
DMOVEM CX,PIXCX ;SAVE REGS
MOVE P,[IOWD XPISK,PIXSTK]
EXCH T1,PI5CNT ;SAVE AC AND GET COUNTER
AOS T1 ;BUMP COUNTER
TRNN T1,7 ;REACHED THRESHOLD YET?
>; IFE SSAN+DTAN+PTRN+PCDPN
BUG (PI5ERR) ;YES, COMPLAIN
IFE SSAN+DTAN+PTRN+PCDPN,< ;#25 IF NO PI CODE
EXCH T1,PI5CNT ;RESTORE AC AND COUNT
CLSB 5 ;CLEAR THE INTERRUPT ON 5
>; IFE DTAN+PTRN+PCDPN
IFN SSAN+DTAN+PTRN+PCDPN,< ;#25 GENERATE IF HELLIWELL IS ASSEMBLING OR CDP PRESENT
CDPCHR::
PTRCHR::
SSACHR:: ;#25 .
DTACHR::
DMOVE T1,PI5AC ;RESTORE TEMPS
DMOVE T3,PI5AC+2
DMOVE CX,PI5CX ;RESTORE CX, P
RS PI5AC,4
RS PI5CX,2
RS PI5STK,NPISK
>
IFE SSAN+DTAN+PTRN+PCDPN,< ;#25.
DMOVE CX,PIXCX
PION
>
XJEN PI5R
RS PI5R,4
PISC6:: XWD PI6R,.+1
IFN SMFLG!<PLTN+VBCN+PTPN+BALPTN+BBNN>,<;#350/#53 Gen if needed
; for KS10 and/or I/O bus devs
DMOVEM T1,PI6AC ;SAVE TEMP ACS
DMOVEM T3,PI6AC+2
DMOVEM CX,PI6CX ;SAVE CX, P
MOVE P,[IOWD NPISK,PI6STK]
XJRSTF [0
MSEC1,,.+1]
IFN BBNN,<CALL IMPSV> ;Primary IMP iterface
IFN SMFLG,<
CALL DZCTIN ;CALL TERMINAL SERVICE
>
PICALL PLT
PICALL VBC
PICALL PTP
>
IFN BALPTN,<
PICALL LPT ;#350
>
IFE SMFLG!<PLTN+VBCN+PTPN+BALPTN+BBNN>,< ;#53 IF NO PI CODE
PIOFF
DMOVEM CX,PIXCX
MOVE P,[IOWD XPISK,PIXSTK]
> ;IFE SMFLG!<PLTN+VBCN+PTPN+BALPTN+BBNN
BUG (PI6ERR) ;bugchk if nobody can service it
IFE SMFLG!<PLTN+VBCN+PTPN+BALPTN+BBNN>,< ;#53 IF NO PI CODE
CLSB 6 ;CLEAR THE INTERRUPT ON 6
> ;IFE SMFLG!<PLTN+VBCN+PTPN+BALPTN+BBNN
IFN SMFLG!<PLTN+VBCN+PTPN+BALPTN+BBNN>,< ;#53 GENERATE FOR KS10
PLTCHR::
VBCCHR::
PTPCHR::
LPTCHR::
IMPCHR::
DMOVE T1,PI6AC
DMOVE T3,PI6AC+2
DMOVE CX,PI6CX ;RESTORE ACS
RS PI6AC,4
RS PI6CX,2
RS PI6STK,NPISK
>;IFN SMFLG!<PLTN+VBCN+PTPN+BALPTN+BBNN
IFE SMFLG!<PLTN+VBCN+PTPN+BALPTN+BBNN>,<
DMOVE CX,PIXCX
PION
>
XJEN PI6R ;DONE
RS PI6R,4
RS PIXCX,2 ;REG SAVE AREA
NDG XPISK,10 ;SIZE OF STACK
RS PIXSTK,XPISK ;STACK FOR INT
;DUMMY ROUTINES FOR DEVICES NOT PRESENT
IFE DTAN,< ;IF NO DECTAPES
DTADTB::
DTAACK::
DTAMCK::
DTASTS::
RET
>
IFE DRMN!PHYIOF,<
;DRUM DRIVER - DUMMY DRUM, USES DSK
RESCD
;DRUM IO DRIVER
; AC1/ 18-35 CORE PAGE NUMBER (CST INDEX) OF PAGE
; DWRBIT WRITE OPERATION IF 1, READ IF 0
DRMIO:: HLLZS CST3(1) ;SINGLE PAGE REQUEST, ZERO REST OF LIST
DRMIOM::SKIPG DRUMP ;DRUM ON SYSTEM?
JRST DSKIOM ;NO, USE DISK
BUG(DRUMP1)
DRMINI::SETOM DRMJ0R
RET
> ;END IFE DRMN!PHYIOF
;BBN LOCAL NET DUMMY STUFF
IFE MLCN,< ;IF NO PTIP
MLCHLF::EXP -1 ;NO LINK NUMBER FOR PTIP TRAFFIC
MLCCH7:: MLPTPA:: MLCINI:: MLFNCS::
MLCDE1:: MLCBEG::
OPRMLC:: RET ;DUMMY STARTUP ROUTINE
>
IFG ATS,< ; If applications terminal support
SUBTTL ATSSRV STORAGE
;POINTERS FOR BACKGROUND PROCESS QUEUES
NR ATBTR1 ;HEAD OF TERMINAL BLOCK QUEUE
NR ATBTR2 ;TAIL OF TERMINAL BLOCK QUEUE
NR ATBDD1 ;HEAD OF DATA PIPE DATA QUEUE
NR ATBDD2 ;TAIL OF DATA PIPE DATA QUEUE
NR ATBCD1 ;HEAD OF CONTROL PIPE DATA QUEUE
NR ATBCD2 ;TAIL OF CONTROL PIPE DATA QUEUE
NR ATBPI1 ;HEAD OF PIPE BLOCK QUEUE
NR ATBPI2 ;TAIL OF PIPE BLOCK QUEUE
RS ATBPFG ;FLAG TO WAKE UP BACKGROUND PROCESS
; (-1 TO WAKE, 0 TO SLEEP)
NR NRBKGR ;NRM BACKROUND TASK NEEDS TO DISMS AND TRY AGAIN
NDG ATMAX,^D96 ;MAXIMUM NUMBER OF HTN'S IN SYSTEM
NR HTNADR,ATMAX+1 ;TABLE OF ADDRESSES OF TERMINAL DATA
; INDEXED BY HTN (WORD 0 UNUSED)
;SYSTEM INPUT BIT MASK - ONE BIT PER HTN
AMDAT==:1 ;FIRST WORD IN BLOCK THAT HAS VALID BITS
NATMSK==:<<ATMAX+^D36>/^D36>+AMDAT ;NUMBER WORDS OF FREE SPACE
>
Rs Hsyst5 ;#43 [Wook] Halt time for IMP
TNXEND
END EVGO