;<135-TENEX>PARAMS.C;55     3-DEC-75 14:02:43    EDIT BY ROSENBERG
; INCREASE MAXSYM FROM 150000 TO 160000
;<134-TENEX>PARAMS.C;54    10-NOV-75 16:45:43    EDIT BY ALLEN
; INCREASE RESLOC
;<134-TENEX>PARAMS.C;53    10-NOV-75 13:39:56    EDIT BY ALLEN
; INCREASE NSKT TO 200
;<134-TENEX>PARAMS.C;52    10-OCT-75 08:30:47    EDIT BY CALVIN
; MTAN->4
;<134-TENEX>PARAMS.C;51    29-SEP-75 07:56:26    EDIT BY TOMLINSON
;MOVE "GENERATE ACTUAL TITLE" COMMENT
;<134-TENEX>PARAMS.C;50     5-SEP-75 15:50:40    EDIT BY ALLEN
;<134-TENEX>PARAMS.C;49     3-SEP-75 22:07:59    EDIT BY ALLEN
; ADD SOME PARAMETERS FOR NCP
;<134-TENEX>PARAMS.C;48     3-SEP-75 12:33:02    EDIT BY ALLEN
;<134-TENEX>PARAMS.C;47    19-AUG-75 08:05:10    EDIT BY CALVIN
; Added PLT to system C
;<134-TENEX>PARAMS.C;46    15-AUG-75 13:34:37    EDIT BY ALLEN
; REDUCED NRPLBG TO 210000 AND INCREASE NSUBI TO 6

;<134-TENEX>PARAMS.C;45    15-AUG-75 12:54:27    EDIT BY ALLEN
; SET NNTBFS TO 70000
;<134-TENEX>PARAMS.C;44    11-AUG-75 16:13:29    EDIT BY ALLEN
; SET NPACKS TO 5
;<134-TENEX>PARAMS.C;43    22-MAY-75 17:12:38    EDIT BY ALLEN
; DEFINE TELENET LINES (0)
;<134-TENEX>PARAMS.C;42    22-MAY-75 16:12:10    EDIT BY ALLEN
; PARAMETERIZE INITIAL VALUES OF DRMIN0,1,2
;<134-TENEX>PARAMS.C;41    22-MAY-75 15:48:01    EDIT BY ALLEN
; ADD INITIAL VALUE FOR KFACT
;<134-TENEX>PARAMS.C;40    23-APR-75 12:36:28    EDIT BY CLEMENTS
; PUT IN %V'S SYMBOL FOR FILE VERSION NUMBER
;<134-TENEX>PARAMS.C;39     9-APR-75 16:50:44    EDIT BY PLUMMER
; INCREASE NUMBER OF SUBINDICES TO 4
;<134-TENEX>PARAMS.C;38     8-APR-75 22:31:21    EDIT BY CLEMENTS
; BUG POINTERS SPLIT FOR SPLIT JSYS.MAC
;<134-TENEX>PARAMS.C;37    26-MAR-75 14:20:46    EDIT BY PLUMMER
; ADD ABSOKT CAPABILITY
;<134-TENEX>PARAMS.C;36    21-MAR-75 17:45:36    EDIT BY CLEMENTS
; INTERNED MOST EVERYTHING
;<134-TENEX>PARAMS.C;35    14-MAR-75 14:29:39    EDIT BY CLEMENTS
; IFDEF AROUND USE OF RESPC IN END MACRO
;<134-TENEX>PARAMS.C;34    13-MAR-75 22:34:13    EDIT BY PLUMMER
; INCLUDE CONDITIONALS FOR SIGNAL.MAC, BUT LEAVE TURNED OFF
;<134-TENEX>PARAMS.C;33     8-JAN-75 08:38:26    EDIT BY CALVIN
; Changed local host # to be 361
;<133-TENEX>PARAMS.C;32     1-JAN-75 09:57:41    EDIT BY TOMLINSON
; INCREASED SSPT TO 5000
;<133-TENEX>PARAMS.C;31    18-NOV-74 17:46:34    EDIT BY ALLEN
; increase RESLOC
;<CALVIN>PARAMS.C;1    18-NOV-74 13:00:19    EDIT BY CALVIN
;<133-TENEX>PARAMS.C;29    12-NOV-74 17:02:10    EDIT BY ALLEN
;<133-TENEX>PARAMS.C;28    12-NOV-74 16:59:25    EDIT BY ALLEN
;<133-TENEX>PARAMS.C;27    12-NOV-74 16:55:20    EDIT BY ALLEN
;<133-TENEX>PARAMS.C;26    11-NOV-74 11:37:52    EDIT BY ALLEN
; TURN ON PIE-SLICE OPTION
;<133-TENEX>PARAMS.C;25    19-SEP-74 12:37:43    EDIT BY ALLEN
; CORRECT SYS C HOST NUMBER
;<133-TENEX>PARAMS.C;24    17-SEP-74 12:50:14    EDIT BY CLEMENTS
;<133-TENEX>PARAMS.C;23    16-SEP-74 13:30:20    EDIT BY CLEMENTS
;<TENEX-132>PARAMS.C;22    25-JUN-74 19:45:49    EDIT BY CLEMENTS

;PARAMETERS FOR SYSTEM C

DEFINE	SYSNAM(A%,B%)<A%'BBN-SYSTEM-C'B%>

KAFLG==:1		; ON FOR A KA-10 AND PAGER
KIFLG==:0		; ON FOR A KI-10
BBNCLK==:1		; ON FOR THE BBN 1 MS CLK (KA-10 MOD)
DK10F==:0		; ON FOR TIMING VIA A DK10 CLOCK
RTICLK==:1		; IF DEFINED, BBN GTAD CLOCK EXISTS
;SIGIPC==:1		;IF DEFINED, SIGNAL.MAC ASSEMBLES

NJOBS==:^D80		;NUMBER OF JOBS ON SYSTEM
NAUTO==:4		;NUMBER OF NON-JOB0 AUTO-START JOBS
NSCNLN==:0		; NUMBER OF LINES ON SCANNER
NNVTLN==:^D70		; NUMBER OF NVT'S (NETWORK TTY'S) TO SERVE
NPTY==:0			; NOT YET IMPLEMENTED - PSEUDO-TTY'S
NTNTLN==0		; NUMBER OF TELENET LINES
CTYLIN==:NSCNLN		;NAME OF CONSOLE TTY - ONE AFTER SCANNER
PTYLO==:CTYLIN+1		; FIRST LINE WHICH IS A PTY
PTYHI==:PTYLO+NPTY-1	; LAST ..
NVTLO==:PTYHI+1		; FIRST LINE WHICH IS AN NVT
NVTHI==:NVTLO+NNVTLN-1	; LAST ..
TNTLO==:NVTLO+NNVTLN	;FIRST TELENET LINE
TNTHI==:TNTLO+NTNTLN-1	; LAST ...
NLINES==:TNTLO+NTNTLN	;TOTAL NUMBER OF "TTY"'S
NDLS==:0			;ONE TO INCLUDE CODE FOR THE TTY LINE SCANNER
NTTYS==:CTYLIN+1		; NUMBER OF HARDWARE TTY'S
OTYLNE==:0		; OPERATOR TTY (ENTRY ALLOWED EVEN IF DISC GONE)
USRSCF==:1		; INITIAL CONTENT OF USRSPC (NON-0 TO PROHIBIT
			;  WRITE OPENF IF USER IS EXCEEDING ALLOCATION)
SYSSCF==:^D2000		; INITIAL CONTENT OF SYSSPC (DISK SPACE LEVEL
			;  BELOW WHICH NO NEW WRITES ARE ALLOWED
NTTBF==:^D100		;NUMBER OF TTY BUFFERS
TTSIZ==:20		;SIZE OF INDIVIDUAL TTY BUFFER (POWER OF 2)
SSPT==:5000		;SIZE OF SPT (H'WARE MAX IS 20000)
NDST=^D<19*5*50>	; 50 CYLINDERS OF 3330
DRMII0==1121			;INITIAL VALUE FOR DRMIN0
DRMII1==1121			;INITIAL VALUE FOR DRMIN1
DRMII2==1572			;INITIAL VALUE FOR DRMIN2
TMZONE==:5		;LOCAL TIME ZONE. HOURS BEHIND GMT, SEE DATIME

IJSFRE==:100		; INITIAL SIZE OF JSB FREE AREA
NFDIB==:40		; NUMBER OF FILE DIRECTORY INDEX BLOCKS
			; LIMITS ULTIMATE NUMBER OF DIRECTORIES
NSUBI==:6		; NUMBER OF SUBINDICES ~NFDIB/5
NPACKS==:5		; NUMBER OF PACKS
NPPCKS==:6		; NUMBER OF PACKS IN PUBLIC STRUCTURE
DTAN==:3			; NUMBER OF dectape units
MTAN==:4			; NUMBER OF mag tape units 
SSAN==:1			; ON IF SA-10 SSA INCLUDED FOR DISK OR TAPE
SSAWCP==:^D11		; RIGHTMOST BIT OF WC FIELD OF DATA POINTERS.
			; THIS IS 15 FOR EARLY UNITS, 11 FOR LATE ONES
SA10BF==:1		; SMART PACKING MODES EXIST
SSATF==:1		; SA-10 USED FOR TAPES
SSADF==:1		; SA-10 USED FOR DISKS
SSATC==:1		; SUBCHANNEL OF SSA WHICH CONTROLS TAPES
SSADC==:0		; SUBCHANNEL OF SSA WHICH CONTROLS DISKS
LPTN==:1			; LPT: EXISTS
;LPTDVF==:1		; Physical lpt exists
LPTSPL==:1		; Line printer spooler exists
LP10F==:0		; NO DEC LP10 PRINTER HARDWARE
BBNPF==:0		; NO BBN PRINTER (IT'S ON THE OTHER SYSTEM)
NETN==:1		; We have a network
NNTBFS==:70000		; SIZE OF NETWORK BUFFER AREA
NINBFS==^D10	; NUMBER OF INPUT BUFFERS TO KEEP AROUND
NSKT==:^D200		; Number of network sockets
LHOSTN==:361		; Local host number for bbn-TENEX
INIACT==:^D220100	; ACCT SET AT JOB INIT - SITE OVERHEAD ACCT
IDRDPW==:775200		; DEFAULT DEFAULT FILE PROTECTION
IDRPRT==:776000		; DEFAULT DIRECTORY PROTECTION
PLTN==:1		; Plotter exists
PTPN==:1		; Paper tape punch exists
PTRN==:1		; Paper tape reader exists
;NDP==:4		; Number of E&S display processes
;NDC==:2		; Number of E&S display consoles
;DACN==:1		; DAC EXISTS
;ADCN==:1		; AND ADC EXISTS

PIESLC==:1		;ASSEMBLY CONTROL FOR PIE-SLICE SCHEDULER
			;=0 MEANS NO SUCH FEATURE
			;NE 0 MEANS ASSEMBLE PIE-SLICE SCHEDULER CODE
IFN PIESLC,<
NGRPPG==:1		;NUMBER OF PAGES IN <SYSTEM>PIE-SLICE-GROUP.DATA
NWDGRP==:7		;NUMBER OF WORDS PER GROUP ENTRY
NGRPS==:<<NGRPPG*1000>-1>/NWDGRP	;NUMBER OF PIE-SLICE GROUPS
INIGP==:SIXBIT /SYSJOB/
KFINIT==1.0		;INITIAL VALUE FOR KFACT
>; END PIE-SLICE SCHEDULER CONDITIONAL


JTRPSW==:2		;ASSEMBLY CONTROL FOR JSYS TRAPPING MECHANISM
			;=0 MEANS NO SUCH FEATURE
			;=1 MEANS SINGLE PROCESSOR SYSTEM, MAP RES MON
			;	FOR TRAPPED FORKS
			;=2 MEANS HARDWARE MODIFIED TO DISPATCH JSYS'S
			;	THROUGH PAGE 600

IFDEF SIGIPC,<		;IF SIGNAL.MAC BEING ASSEMBLED:
NSSIGS==:10		;NUMBER OF SYSTEM SIGNALS
NUSIGS==:10		;NUMBER OF USER SIGNALS
>; END SIGNAL CONDITIONAL

OPTTY==:400000+CTYLIN	; OPERATOR TERMINAL DESIGNATOR
LOGTTY==:377777	; DESIGNATOR FOR LOGGING INFO
JB0TTY==:400000	; DESIGNATOR FOR JOB 0 AND ERROR MSGS.

IFDEF DPKN,<NDSKS==:1+DPKN>
IFNDEF DPKN,<NDSKS==:1>

IFDEF DACN,<RTISW==:1>
IFDEF ADCN,<RTISW==:1>

;IF PI CHANNEL FOR DEVICE IS NOT DEFINED, CODE FOR THAT DEVICE
;IS NOT ASEMBLED

DSKCHN==:5		;DISK
;RP02F==:1		;RP02/RP10 DISK
;DRMCHN==:4		;DRUM
DLSCHN==:4		;DLS AND TTY PI CHANNEL
;BBNDLS==:1		;FOR BBN-MODIFIED SCANNER
 ;DECDLS==:1		;FOR DEC STANDARD SCANNER
IFDEF MTAN,<
IFNDEF SSATF,<
IFDEF ADCN,<PRINTX CONFLICT OVER LOC 42 BETWEEN MTA: AND ADC:>
IFDEF DACN,<PRINTX CONFLICT OVER LOC 42 BETWEEN MTA: AND DAC:>
>
 MTDCHN==:1		;MAG TAPE DATA CHANNEL
 MTACHN==:5>		;MAG TAPE FLAGS CHANNEL
IFDEF DTAN,<
 DTDCHN==:2		;DECTAPE DATA
 DTACHN==:5>		;DECTAPE CONTROL
IFDEF SSAN,<
SSACHN==:5>		; SA-10 SSA FOR DISKS AND/OR TAPES
IFDEF NETN,<
 IMPCHN==:5>		;IMP (NETWORK)
IFDEF PTPN,<
 PTPCHN==:6>		;PAPER TAPE PUNCH
IFDEF PTRN,<
 PTRCHN==:5>		;PAPER TAPE READER
IFDEF PLTN,<
 PLTCHN==:6>		;PLOTTER
IFDEF LPTDVF,<
 LPTCHN==:6>		; LINE PRINTER PI CHANNEL
IFDEF NDP,<
 DSPCHN==:6>		; E&S DISPLAY
IFDEF DACN,<
 DACCHN==:1>		; DAC PI CHANNEL
IFDEF ADCN,<
 ADCCHN==:1>		; ADC PI CHANNEL

;GLOBAL PARAMETERS

SJFN==:4		;LOG2 NUMBER OF JFN WORDS

;STORAGE BOUNDARIES, JUGGLED TO USE SPACE BETWEEN CST0 AND SPT

MAXCOR==:1000	; MAXIMUM REAL CORE EVER USABLE
SPT=20000	; HARDWARE DEFINED

DEFINE	DX(NM,SIZ)
<	DXXCK(3000,1000,SIZ)
	DXXCK(4000,MAXCOR,SIZ)
	DXXCK(20000,SSPT,SIZ)
	NM=DXX
	DXX=DXX+SIZ>

DEFINE	DXXCK(LOC,SIZNM,SIZV)
<IFG DXX+SIZV-LOC,<IFG LOC+SIZNM-DXX,<
	DXWST==:DXWST+LOC-DXX
	DXX==:LOC+SIZNM>>>

DXX==:2000		;VARIOUS STORAGE STARTS AFTER JSYS DTB
DXWST==:0		; SPACE WASTED HERE

IFN KIFLG,<		;PAGES NEEDED FOR KI-10 PAGER
DX(KIEPT,1000)
DX(KIUPT,1000)>
DX(CST1,MAXCOR)
DX(CST2,MAXCOR)
DX(DST,NDST)		;DRUM STATUS TABLE
DX(CST3,MAXCOR)
DX(SPTH,SSPT)
DX(RESLOC,32000)		;ALL OTHER RESIDENT STORAGE
ERSLOC=DXX		; USED BY POSTLD
DX(RESMA0,40000)	; SKIP OVER POSSIBLE FIXED LOCATIONS
  INTERN RESMA0

DEFINE	PDXWST(N)<PRINTX !N WORDS WASTED IN DX STORAGE!>
IFG DXWST-400,<PDXWST(\DXWST)>

;MAX END OF SYMBOL TABLE, USED BY POSTLD

MAXSYM==:160000

;SWAPPABLE STORAGE AND CODE BOUNDARIES

IFN KAFLG,<
NRESBG=200000	;BEGINNING OF SWAPPABLE VARIABLE STORAGE
NRPLBG=210000	; " " SWAPPABLE PAGE STORAGE
>
IFN KIFLG,<
NRESBG=350000		;MAP LAID OUT DIFFERENTLY ON KI-10
NRPLBG=442000		; ..
>
SWPMP0==:400		; START OF SWAPPABLE CODE
SWPMA0==:SWPMP0*1000	; ..


; PROLOG-ISH THINGS THAT ARE COMMON TO BOTH FILE AND MON
; TO BE MOVED INTO COMMON PROLOG FILE WHEN IT EXISTS

; USE MACRO SWITCHES PC'S

DEFINE	USE(PC,IVAL)<
.OLDPC(.)		;; SAVE CURRENT LOCATION AS OLD PC
IFDIF <IVAL><><PC==IVAL>;; IF (OPTIONAL) IVAL, SET NEW PC TO IT
IFNDEF PC,<PRINTX PC NOT DEFINED>
ORG PC			;; SET LOCATION TO CURRENT VALUE OF PC
DEFINE	.OLDPC(V)<PC==V>;; REDEFINE OLD PC
>

; DEFINE ALTERNATES FOR TITLE AND END

IF1,<	SYN TITLE,.TITLE
	SYN END,.END>

; REDEFINE TITLE TO INIT PC'S AND BUGSTRINGS

DEFINE	TITLE(S)<
; GENERATE ACTUAL TITLE
.TITLE S
RESPC==.		; DEFINE RESPC AS RELOCATABLE 0
	TWOSEG SWPMA0		; SIDE EFFECT IS RELOC(SWPMA0)
DEFINE	.OLDPC(V)<SWAPPC==V>	;; SO REMEMBER THAT FACT
USE RESPC			; AND RETURN TO RESIDENT CODE
%P==%P'S			; DEFINE BUG PS'S
%S==%S'S
%IP==%P'S
%IS==%S'S
%IN==%N'S
IFDEF .DIRECTIVE,<.DIRECTIVE XSRCVN %V'S >	;REMEMBER FILE VERSION
SUPPRESS %P'S,%S'S,%N'S
>

; REDEFINE END TO CLEANUP AFTER ASSEMBLY

DEFINE	END(ZZZ)<
IFDEF RESPC,<IFN RESPC,<USE RESPC>>	; IF ANY RESIDENT CODE
LITS:	LIT			; MAKE LITS RESIDENT
IFDEF %IN,<
BUGOFL(<BUG POINTERS>,\<%P-%IP-%IN>); PRINT AMOUNT OF OVERFLOWS IF ANY
BUGOFL(<BUG STRINGS>,\<%S-%IS-10*%IN>)
PURGE %P,%S,%IP,%IS,%IN>; END IFDEF %IN

.END ZZZ>

; MACRO TO PRINT AMOUNT OF OVERFLOW IF ANY

DEFINE	BUGOFL(WHAT,AMOUNT)<
	IFG AMOUNT,<PRINTX WHAT OVERFLOW BY AMOUNT>
>

;MACROS FOR DEFINING BUGHLT AND BUGCHK STRINGS

;THIS IS THE MACRO THAT APPEARS IN THE CODE.  ITS FIRST ARG IS
;CHK OR HLT, AND CAUSES ASSEMBLY OF JSR BUGCHK OR JSR BUGHLT
;RESPECTIVELY.  ITS SECOND ARGUMENT IS A STRING DEFINING THE
;PROBLEM REPRESENTED BY THE CHECK.

DEFINE BUG (TYP,STR,PUSHF,%TG1,%TG2)<
%TG1:
ORG %S
%TG2:	ASCIZ /STR/
%S==.
ORG %P
	%TG1,,%TG2
%P==.
ORG %TG1
IFIDN <PUSHF>,<>,<	JSR BUG'TYP>
IFDIF <PUSHF>,<>,<	PUSHJ P,BGR'TYP>
IF2,<	PURGE %TG1,%TG2>
>
