Google
 

Trailing-Edge - PDP-10 Archives - red405a2 - uetp/lib/cmlbsm.mac
There is 1 other file named cmlbsm.mac in the archive. Click here to see a list.
	SUBTTL	C.MITCHELL 1977. - UNIVERSAL FILE FOR SYMBOLS

	UNIVERSAL CMLBSM

	SEARCH	MONSYM,MACSYM
	SALL

	;;ACCUMULATOR DEFINITIONS

F=0	;FOR FLAGS ETC
T1=1	;TEMP AC FOR JSYS
T2=2	;TEMP AC FOR JSYS
T3=3	;TEMP AC FOR JSYS
T4=4	;TEMP AC FOR JSYS
T5=5	;TEMP AC FOR JSYS
A=6	;GENERAL AC
B=7	;GENERAL AC
C=10	;GENERAL AC
D=11	;GENERAL AC
BUF=12	;POINTER TO CURRENT BUFFER
PNT=13	;SECOND POINTER TO BUFFER
INP=14	;HOLDS JFN FOR INPUT
OUTP=15	;HOLDS JFN FOR OUTPUT
P1=16	;SPARE AC
P=17	;PUSH DOWN POINTER

CMSYMV==1	;VERSION NUMBER OF THIS FILE

PAGE
	SUBTTL	MACROS

	;;MACRO TO DEFINE STORAGE

	DEFINE	LS (NM,SZ)
<NM:	BLOCK	SZ
>

	;;MACRO TO SET UP COMMAND TABLES

	DEFINE	TB (DAT,TXT)<
	XWD  [ASCIZ /TXT/],DAT>

	;;MACRO TO PRINT ERROR AND GOTO SPECIFIED LOCATION

	DEFINE	ERROR (ADDR,MSG)<
	JRST	[HRROI T1,[ASCIZ /
? MSG

/]
	PSOUT
	JRST	ADDR]>


	;;MACRO TO TYPE MESSAGE ON THE TERMINAL

	DEFINE	TELUSR (A)<
	HRROI	T1,[ASCIZ /[A]
/]
	PSOUT>

	;;MACRO TO SET UP BYTE POINTER TO A STRING

	DEFINE	TXTPTR (MSG) <POINT 7,[ASCIZ /MSG/]>


	;;MACRO TO BUILD TABLE ENTRY WITH TWO STRINGS

	DEFINE	DMPNAM (A,B)<
	[ASCIZ /A/],,[ASCIZ /B/]>


	;;MACRO TO DEFINE JSYS STRING POINTER ENTRY

	DEFINE	STG (A)<
	777777,,[ASCIZ #A#]>

PAGE
	;;MACRO TO DEFINE PARAMETER BLOCK FOR A DIRECTORY

	DEFINE	TPB(A,B,C,D,E,F,G,H,J)<
	EXP	A	;USER TYPE
	EXP	B	;PERMANENT LIMIT
	EXP	C	;WORKING LIMIT
	EXP	D	;MODE WORD
	EXP	E	;PRIVILEDGES
	EXP	F	;DIRECTORY PROTECTION
	EXP	G	;FILE PROTECTION
	EXP	H	;GENERATION RETENTION COUNT
	EXP	J	;GROUP LIST>

	;OFFSETS INTO BLOCK

	TYPLNK==0
	PERLIM==1
	WORLIM==2
	MODWRD==3
	CAPABL==4
	DRPROT==5
	DFPROT==6
	GENRET==7
	GRPLST==10

	;MACRO TO DEFINE CHARGES FOR A USER. EXTENSION OF ABOVE MACRO.

	DEFINE	CHB (A,B,C,D,E)<
	EXP	A	;NON-PEAK CONNECT/HR
	EXP	B	;NON-PEAK CPU TIME/HR
	EXP	C	;PEAK CONNECT/HR
	EXP	D	;PEAK CPU TIME/HR
	EXP	E	;DISK SPACE CHARGE>

	;OFFSETS INTO BLOCK

	CHGNCN==11
	CHGNCP==12
	CHGPCN==13
	CHGPCP==14
	CHGDSK==15

PAGE
	SUBTTL	MACROS FOR PRINTING LAYOUTS ETC

	;MACRO TO DEFINE A STRING TO BE PRINTED DURING LAYOUT
	;PRINTING.

	DEFINE	L(A) <LY%PNT,,[ASCIZ /A/]>

	;MACRO TO DEFINE A STRING TO BE PRINTED SURROUNDED BY
	;STARS	DURING LAYOUT PRINTING.

	DEFINE	LS(A) <LY%PST,,[ASCIZ /A/]>

	;MACRO TO DEFINE A STING TO BE CENTRE ALIGNED AND PRINTED
	;BETWEEN STARS.

	DEFINE	CS(A)	<LY%CST,,[ASCIZ /A/]>

	;MACRO TO DEFINE A ROUTINE TO BE EXECUTED DURING LAYOUT
	;PRINTING.

	DEFINE	RTN(A) <LY%RTN,,A>

	;MACRO TO DEFINE A NEW HEADER

	DEFINE	HD(A) <LY%HDR,,[ASCIZ /A/]>

	;SYMBOLS TO CONTROL LAYOUT PRINTING

	LY%PNT==400000	;JUST PRINT STRING
	LY%PST==200000	;RING STRING WITH STARS
	LY%RTN==100000	;EXECUTE ROUTINE
	LY%HDR==40000	;USE NEW HEADER
	LY%CST==20000	;CENTRE ALIGN AND RING WITH STARS

PAGE
	SUBTTL	ACCOUNTING SYMBOLS

	;FACT FILE ENTRY DEFINITIONS

	;OFFSETS INTO FACT FILE ENTRIES

.EFRUN==3	;RUN TIME
.EFFIL==3	;NUMBER OF FILE PAGES
.EFCON==4	;CONSOLE TIME
.EFDEV==4	;DEVICE DESIGNATOR
.EFQUA==5	;SPOOLER OUTPUT

ENTMSZ==20	;MAX SIZE OF ACCOUNTS ENTRY

	;FIELD DEFINITIONS FOR STANDARD FIELDS

MSKSTR	(ENTCOD,FCTENT+.EFHDR,EF%COD)	;ENTRY TYPE CODE
MSKSTR	(ENTJOB,FCTENT+.EFHDR,EF%JOB)	;JOB NUMBER
MSKSTR	(ENTLIN,FCTENT+.EFHDR,EF%LIN)	;LINE NUMBER
MSKSTR	(ENTSIZ,FCTENT+.EFHDR,EF%SIZ)	;SIZE OF ENTRY
DEFSTR	(ENTUSR,FCTENT+.EFUSR,35,36)	;DIRECTORY NUMBER
DEFSTR	(ENTTAD,FCTENT+.EFTAD,35,36)	;TIME AND DATE
DEFSTR	(ENTRUN,FCTENT+.EFRUN,35,36)	;RUN TIME
DEFSTR	(ENTFIL,FCTENT+.EFFIL,35,36)	;NUMBER OF PAGES
DEFSTR	(ENTCTM,FCTENT+.EFCON,35,36)	;CONSOLE TIME
DEFSTR	(ENTDEV,FCTENT+.EFDEV,35,36)	;SPOOLER DEVICE
DEFSTR	(ENTQUA,FCTENT+.EFQUA,35,36)	;SPOOLER PAGES ETC.

	;INDEX IN FACT ENTRIES TO ACCOUNT TYPE WORD

.AWLGI==4	;LOGIN
.AWCAC==4	;CHANGE ACCOUNT
.AWDSK==4	;DISK UTILISATION
.AWLPT==7	;LPT
.AWCDR==7	;CDR

JBMAX==MAXJOB	;MAX NUMBER OF JOBS
NSTR==2		;MAXIMUM NUMBER OF PUBLIC FILE STRUCTURES

NOTE1==1	;NOTES FOR ACCOUNTS OUTPUT
NOTE2==2
NOTE3==3
NOTE4==4

TIMTOP==^D24*^D60*^D60	;I.E. 2400 HRS IN SECONDS
PKSTRT==^D8*^D60*^D60	;I.E. 0800 HRS IN SECONDS
PKEND==^D18*^D60*^D60	;I.E. 1800 IN MINUTES
TIMCNS==^D330		;TIME CONSTANT FOR TIME CONVERSION

PAGE
	;ACCOUNTING FUNCTIONS
AC%LOG==501	;LOGIN
AC%CHA==502	;CHANGE ACCOUNT
AC%LGO==141	;LOGOUT
AC%ATT==142	;ATTACH
AC%DET==143	;DETACH
AC%CHK==201	;CHECKPOINT
AC%RLD==740	;RELOAD
AC%TMS==741	;TIMESET
AC%DSU==540	;START OF DISK UTILISATION STATISTICS
AC%DSE==601	;DISK UTILISATION ENTRY
AC%LPT==401	;LPT USAGE
AC%CDR==402	;CDR USAGE

PAGE
	SUBTTL	SYMBOLS FOR "DLUSER" FORMAT FILE

	;OFFSETS INTO IN-CORE DIRECTORY BLOCK WHEN PROCESSING
	;A "DLUSER" FORMAT FILE.



	PLOC==0			;LINK TO NEXT BLOCK
	DNAM==PLOC+1		;POINTER TO NAME BLOCK
	DPAS==DNAM+1		;POINTER TO PASSWORD
	DWOR==DPAS+1		;WORKING LIMIT
	DCAP==DWOR+1		;CAPABILITIES
	DMOD==DCAP+1		;MODE WORD
	DPER==DMOD+1		;PERMANENT LIMIT
	DNUM==DPER+1		;DIRECTORY NUMBER
	DPRT==DNUM+1		;FILE PROTECTION
	DDPT==DPRT+1		;DIRECTORY PROTECTION
	DRET==DDPT+1		;GENERATION RETENTION COUNT
	DLLG==DRET+1		;LAST LOGIN
	DUGP==DLLG+1		;POINTER TO USER GROUP LIST
	DDGP==DUGP+1		;POINTER TO DIRECTORY GROUP
	DNMB==DDGP+1		;SPACE FOR NAME
	DPSB==DNMB+11		;SPACE FOR PASSWORD
	DTYP==DPSB+11		;DIRECTORY TYPE
	DOWN==DTYP+1		;OWNER
	DNCN==DOWN+1		;NON-PEAK CONNECT CHARGE
	DNCP==DNCN+1		;NON-PEAK CPU CHARGE
	DPCN==DNCP+1		;PEAK CONNECT CHARGE
	DPCP==DPCN+1		;PEAK CPU CHARGE
	DDSK==DPCP+1		;DISK USAGE CHARGE
	DSPR==DDSK+1		;SPARE LOCATIONS
	DSPC==DSPR+10+NSTR	;NEXT FREE LOCATION


	;FLAGS IN "DTYP"

	TYP%US==1B0		;DIRECTORY IS A USER DIRECTORY
	TYP%NP==1B1		;DO NOT PURGE THIS DIRECTORY
	TYP%ND==1B2		;DO NOT "DUMPER" THIS DIRECTORY

PAGE
	SUBTTL	DEFAULT VALUES FOR DEFAULT DIRECTORY PARAMETERS

	;PERMANENT STOREAGE LIMITS

	PMIN=^D250
	PSML=^D500
	PNOR=^D10000
	PMAX=^D100000

	;WORKING STOREAGE LIMITS

	WMIN=^D250
	WSML=^D500
	WNOR=^D10000
	WMAX=^D100000

	;MODE WORDS

	M0=0
	M1=CD%DIR

	;CAPABILITIES

	PRVMIN==0
	PRVLOW==0
	PRVNOR==SC%CTC+SC%GTB+SC%SUP+SC%IPC+SC%ENQ

	;DIRECTORY PROTECTIONS

	DPRLIB=500000777740
	DPRNOR=500000777700
	DPRSEC=500000770000

	;FILE PROTECTIONS

	FPRLIB=500000777752
	FPRNOR=500000777700
	FPRSEC=500000770000

	;GENERATION RETENTION COUNTS

	GENSTD=500000000001

	;CHARGES

	INHPCN==2.50		;IN-HOUSE CHARGE PRIME CONNECT/HR
	INHNCN==1.25		;IN-HOUSE CHARGE NON-PRIME CONNECT/HR
	INHPCP==350.00		;IN-HOUSE CHARGE PRIME CPU HOUR
	INHNCP==175.00		;IN-HOUSE CHARGE NON-PRIME CPU HOUR
	INHDSK==0.25		;IN-HOUSE CHARGE DSK PAGE/MONTH

	OUTPCN==5.00		;OUTSIDE CHARGE PRIME CONNECT/HR
	OUTNCN==2.50		;OUTSIDE CHARGE NON-PRIME CONNECT/HR
	OUTPCP==700.00		;OUTSIDE CHARGE PRIME CPU HOUR
	OUTNCP==400.00		;OUTSIDE CHARGE NON-PRIME CPU HOUR
	OUTDSK==0.25		;OUTSIDE CHARGE DSK PAGE/MONTH

PAGE
	SUBTTL	SYMBOLS FOR CIRCULATION LIST ENTRIES


	NMLEN==10		;SIZE OF NAME
	FSTMAX==20		;NUMBER OF FIRST NAMES ALLOWED

	CLOC==0			;LH POINTS TO PREVIOUS BLOCK
				;RH POINTS TO NEXT BLOCK
	CNAM==CLOC+1		;SPACE FOR SURNAME
	CFST==CNAM+NMLEN	;SPACE FOR FIRST NAME
	CREG==CFST+NMLEN	;SPACE FOR REGION
	CADR==CREG+1		;SPACE FOR ADDRESS CODE
	CCLS==CADR+1		;SPACE FOR CLASSIFICATION
	CINT==CCLS+1		;SPACE FOR PROFILE WORD
	CSPC==CINT+1		;END OF BLOCK


	;SYMBOLS FOR ADDRESS BLOCK DEFINITION

	ALOC==0			;SPACE FOR LOCATION
	ACOD==ALOC+NMLEN	;SPACE FOR LOCATION CODE
	AADR==ACOD+1		;SPACE FOR ADDRESS
	ASPC==AADR+^D40		;FREE SPACE

PAGE
	SUBTTL	SYMBOLS FOR FILE LOOKUP ROUTINES

	;THERE IS A SET OF FILE LOOKUP ROUTINES IN "CMLIB" WHICH ARE
	;USED TO IDENTIFY THE TYPE OF FILE AS WELL AS THE EXISTENCE
	;OF RELATED FILES. SYMBOLS FOR THESE ROUTINES ARE DEFINED HERE.

	;"LOOKUP BLOCK" OFFSETS

..ZZ==0			;START AT THE BEGINNING

DEFINE	..ZZZ(A)<
A==..ZZ
..ZZ==..ZZ+1>

..ZZZ	F%%JFN;JFN FOR FILE HERE
..ZZZ	F%%TYP;FLAGS FOR FILE TYPE STORED HERE
..ZZZ	F%%EXI;FLAGS FOR RELATED FILES STORED HERE
..ZZZ	F%%DFL;FLAGS DOR DIRECTORY
..ZZZ	F%%DRF;DIRECTORY NUMBER 
..ZZZ	F%%TST;TEST ROUTINE FOR RELATED FILES STORED HERE
..ZZZ	F%%STR;POINTER TO STRUCTURE
..ZZZ	F%%DIR;POINTER TO DIRECTORY
..ZZZ	F%%PTC;POINTER TO PROTECTION STRING
..ZZZ	F%%ACC;POINTER TO ACCOUNT STRING
..ZZZ	F%%HDR;START OF FDB

DEFINE	..ZZZ(A)<
F%%'A==F%%HDR+.FB'A	;.FB'A WORD OF FDB>

..ZZZ	CTL
..ZZZ	EXL
..ZZZ	ADR
..ZZZ	PRT
..ZZZ	CRE
..ZZZ	AUT
..ZZZ	GEN
..ZZZ	ACT
..ZZZ	BYV
..ZZZ	SIZ
..ZZZ	CRV
..ZZZ	WRT
..ZZZ	REF
..ZZZ	CNT
..ZZZ	BK0
..ZZZ	BK1
..ZZZ	BK2
..ZZZ	BK3
..ZZZ	BK4
..ZZZ	USW
..ZZZ	GNL
..ZZZ	NAM
..ZZZ	EXT
..ZZZ	LWR
..ZZZ	LEN

PAGE
	;FLAGS IN F%%TYP

DEFINE	..ZZZ(A)<
T%%'A==:..ZZ
..ZZ==..ZZ*2>

..ZZ==1

..ZZZ	SAV;SAV FILE
..ZZZ	EXE;EXE FILE
..ZZZ	REL;REL FILE
..ZZZ	UNV;UNV FILE
..ZZZ	CRF;CRF FILE
..ZZZ	LST;LST FILE
..ZZZ	TXT;TXT FILE
..ZZZ	DOC;DOC FILE
..ZZZ	MEM;MEM FILE
..ZZZ	HLP;HLP FILE
..ZZZ	RNO;RNO FILE
..ZZZ	RND;RND FILE
..ZZZ	RNH;RNH FILE
..ZZZ	DAT;DAT FILE
..ZZZ	IDA;IDA FILE
..ZZZ	IDX;IDX FILE
..ZZZ	SRC;SOURCE FILE
..ZZZ	CTL;CTL FILE
..ZZZ	LOG;LOG FILE
..ZZZ	CMD;CMD FILE
..ZZZ	CCL;CCL FILE
..ZZZ	TMP;TMP FILE
..ZZZ	BAK;BACKUP FILE
..ZZZ	WSP;WORKSPACE TYPE
..ZZZ	SFK;KNOWN SYSTEM FILE
..ZZZ	UNK;UNKNOWN FORMAT

PAGE
	;FLAGS IN FF%%EXI

DEFINE	..ZZZ(A)<
E%%'A==..ZZ
..ZZ==..ZZ*2>

..ZZ==1

..ZZZ	REL;REL FILE EXISTS
..ZZZ	SRC;SOURCE FILE EXISTS
..ZZZ	RND;RND EXISTS
..ZZZ	RNH;RNH EXISTS
..ZZZ	RNO;RNO EXISTS
..ZZZ	IDA;IDA EXISTS
..ZZZ	IDX;IDX EXISTS
..ZZZ	CTL;CTL EXISTS
..ZZZ	ODT;DAT FILE IS AN OUTPUT FILE
..ZZZ	DEP;DEPENDENT FILE EXISTS
..ZZZ	HGN;HIGHER GENERATION EXISTS


	;FLAGS IN F%%DFL

D%%LGC==1		;RIGHT HALF BIT 17. JOB LOGGED IN OR CONNECTED

PAGE
	SUBTTL	OUTPUT CONTROL FLAGS FOR FILESPEC

	;THESE FLAGS ARE SUPPLIED IN T2 DURING A CALL TO
	;ROUTINE "OTPFSP" AND RELATED ROUTINES IN "CMLIB".
	;THEY CONTROL THE FIELDS TO BE OUTPUT WHEN PRINTING
	;A FILESPEC.


S%%STR==400000000000
S%%DIR==200000000000
S%%NAM==100000000000
S%%EXT==40000000000
S%%GEN==20000000000
S%%PRO==10000000000
S%%ACC==4000000000

PAGE
	SUBTTL	SYMBOLS FOR STRUCTURES AND DIRECTORIES


	DEFINE	DEFDIR(A,B)<
	A		;DEFAULT STRUCTURE
	B		;DEFAULT DIRECTORY
	BLOCK	STRBUF	;WHERE TO PUT NEW STRUCTURE
	BLOCK	DIRBUF	;WHERE TO PUT NEW DIRECTORY
	>

	;OFFSETS IN ABOVE BLOCK

DE%STR==0
DE%DIR==DE%STR+1
DE%STS==DE%DIR+1
DE%DRS==DE%STS+STRBUF


STRBUF==10		;SIZE OF BLOCK FOR STRUCTURE NAME
DIRBUF==20		;SIZE OF BLOCK FOR DIRECTORY NAME

PAGE
	SUBTTL	GENERAL SYMBOLS

NPDL==50	;SIZE OF PUSH DOWN STACK
DMXUSR==1000	;DEFAULT MAX NUMBER OF USERS
ADRMAX==^D500	;MAX NUMBER OF ADDRESSES
PEPMAX==^D500	;MAX NUMBER OF PEOPLE
GRPSIZ==1000	;SIZE OF GROUP BLOCK
HEPTOP==777500	;TOP OF HEAP
PAGWID==^D64	;WIDTH OF NEWSLETTER PAGE
PAGLEN==^D50	;LENGTH OF PAGE FOR NEWSLETTER

MAXCOR==^D512*2	;MAX NUMBER OF PAGES ON SYSTEM
MAXJOB==^D256	;MAX NUMBER OF JOBS ON THE SYSTEM
FSTDIR==1	;FIRST LEGAL DIRECTORY NUMBER
DIRMAX==777	;HIGHEST LEGAL DIRECTORY NUMBER

DSWID==^D132	;WIDTH OF LPT LINE

NCHPW==5	;NUMBER OF CHARS PER WORD
ATMSIZ==150	;LARGEST ATOM IN COMMAND SCAN
BUFSIZ==150	;SIZE OF BUFFER FOR COMMAND SCANNER

SOFAR==0	;FOR STATISTICS-OFFSET INTO DATA BLOCK FOR TOTAL
INCRMT==1	;FOR STATISTICS-OFFSET INTO DATA BLOCK FOR INCR.
SUMM==2		;FOR STATISTICS-OFFSET INTO DATA BLOCK FOR SUMMARY.

OPDEF	PJRST [JRST]	;JUMP TO ROUTINE AND POPJ FROM THERE.

PAGE
	END