File: CCLTAB.MA of Tape: OS8/OS8-V40/v40-6
(Source file text) 

/1 CCL OVERLAY TABLE
/
/
/
/
/
/COPYRIGHT  (C)  1979 BY DIGITAL EQUIPMENT CORPORATION
/		 AND BY DATAPLAN GMBH.
/
/
/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
/AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
/CORPORATION.  DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
/FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
/
/THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER
/UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED
/(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH
/SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL.
/
/DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE
/OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY
/DIGITAL.
/
/
/
/
/
/
/
/1	CCL OVERLAY TABLE
	/VERSION=4A (WVDM)

	.GLOBAL NOCCL,RESNUM,RESHND,ENTRY

	.NOLIST
	.INCLUDE OUT:CCLDEF.MA
	.LIST

/CCL.SV (THE IMPORTANT PART) MUST BE A SINGLE CORE-LOAD
/CONTIGUOUS LOAD, BECAUSE OF THE WAY THE MONITOR LOADS IT.
/FORTUNATELY, FIELD 0 STUFF OCCURS AFTER FIELD 1 STUFF IN THE
/OS/8 CORE-IMAGE FORMAT.
/FOR VERSION OF THE MONITOR BEFORE LEVEL A,
/THE TOTAL LENGTH OF CCL.SV MUST BE LESS THAN 14 BLOCKS
/OR IT READS OVER 7600.
/BUT NOW CCL COMES IN AND READS THE REMAINDER OF ITSELF
/INTO FIELD 0.  400-777 IS IGNORED BY SKIPPING A BLOCK,
/THEN THER REST OF CCL (7 PAGES) IS READ IN.

	IFDEF XYZMCR <

FOLLOWING IS THE TECO MACRO WE USE TO CREATE THE TABLE:
HKGYJ2SR0,.KHXAHKMA
TYPE COMMANDS, SPACE TERMINATES TABLE PART FROM
COMMENTARY PART, CR TERMINATES BOTH, ^Z TERMINATES ALL.
**  NO EDITING **
HKHXYHXN0UO0UN0UH
!CHLP!^TULQL-32"EOBLANK'QL-13"EOCR'QL-26"EOEND'
!CHLP0!QL&63UT QT/8UXQX+48IQT-(8*QX)+48I
QL"NZJ.UZGNQLIQZJXNK%N'
%O&1"NOCHLP' QN-3"LZUH'I
OCHLP
!BLANK! ZJ.UZGNQLI<UBQB-13"E 0;'QBI>
QZJXNK%N
!CR!
QHJ	/GNZJXN0UN0ULOCHLP0
!END!I00

	>
/TABL0 LOADS OVER THE SAVE, DATE OVERLAY
/AND STARTS AT LOCATION 600

/KEYWORD TABLE IN 400 - THE FOLLOWING 2-LETTER INITIAL
/GROUPS ARE NOT ALLOWED (THEY ARE DECODED BY KM)
/AS - SA - RU - GE - ST - OD

/CONSISTS OF COMMANDS 2 CHARS PER LOCATION
/IN 5-BIT ASCII (ONLY LETTERS ARE LEGAL)
/SEPARATED FROM EACH OTHER BY 6-BIT 00'S.
/@ IS IN TABLE AS _ . 2 _ MUST BE AT END
/OF TABLE FOR TERMINATION. NO LETTER 'K'
/ALLOWED: 'K' ON INPUT IS CONVERTED TO 'C'
/ALSO LOWER CASE INPUT CONVERTED TO UPPER CASE

	.ASECT TABLE0
	FIELD 0

	*400
VNO,	CCLTAB		/MUST BE AT 400!!!
KEYWRD,
0530	/EX ECUTE = EXEKUTIERE
0002	/BA SIC
0100
0217	/BO OT
0003	/CA NCEL = KANZELLIERE
0100
0303	/CC L = KURZER KBM
0003	/CL OSE
1400
0317	/COMPA RE
1520
0100
0317	/COM PILE = KOMPILIERE
1500
0317	/COP Y
2000
0322	/CREF = KREF
0506
0003	/CRE ATE = KREIERE
2205
0004	/DA TE = DATUM
0100
0405	/DEA SSIGN
0100
0405	/DEL ETE
1400
0411	/DI RECTORY
0004	/DR UCKE = LIST
2200
0425	/DU PLICATE = DUPLIZIERE
0005	/ED IT = EDITIERE
0400
0617	/FO CAL = DATAPLAN FOCAL
0006	/FU TIL
2500	/G OTO = GOTO
0700	/H ELP = HILFE
1000	/I NHALTSVERZEICHNIS
1100
1401	/LAU F = SUBMIT
2500
1401	/LAD E = LOAD
0400
1411	/LIN KER
1600
1411	/LI ST
0014	/LOE SCHE = DELETE
1705
0014	/LOGI N
1707
1100
1417	/LOGO UT
0717
0014	/LO AD
1700
1501	/MACE = *KL* MAKE
0305
0015	/MACH E = MAKE
0103
1000
1501	/MAC REL = MAKRO ASS.
0300
1501	/MAP = MAPPIEREN (OEST.)
2000
1505	/ME MORY
0015	/MU NG = MUNG
2500
1601	/NA ME = RENAME
0017	/OE FFNE = OPEN
0500
1720	/OP EN
0020	/PA L8
0100
2022	/PR INT
0021	/Q UEUE
0022	/REN AME
0516
0022	/REQ UEST = REQUIRIERE
0521
0023	/SC HLIESSE = CLOSE
0300
2305	/SEN DE = TALK
1600
2305	/SET = SETZE
2400
2320	/SP EICHER = MEMORY
0023	/SQ UISH
2100
2325	/SU BMIT
0023	/SY STEM = VORMALS RESOURCE
3100
2401	/TA LK
0024	/TEX T VERARBEITUNG
0530
0024	/TE CO = TEXT KORREKTUR
0500
2431	/TY PE
0025	/UA
0100
2502	/UB
0025	/UC
0300
2530	/UX = REMEMBER
0026	/VERD ICHTE = SQUISH
0522
0400
2605	/VERG LEICHE = COMPARE
2207
0026	/VE RSION
0500
3205	/ZEI GE = TYPE
1100
3205	/ZERO = GEFAEHRLICH
2217
0037	/_ = @
0037	/_ = @
0000
	ZBLOCK 600-.
	*600

/RUNS IN FIELD 0 ONLY.

ENTRY,	0		/INITIALLY 0 MEANS 'EX' COMMAND
LINPTR,	JMP	ENTREE	/OS/8 JUMPS HERE (ACTUALLY TO 600)
TEMM,
TEKLDG,	ISZ	CCLNHR	/TECO 'EG' JUMPS HERE
	DCA I	(BEGLN	/ZERO COMMAND LINE
	JMP	TEGO	/FIRST WE DISABLE CALLS TO MONITOR
RESNUM,	1		/DEVICE NUMBER OF RESIDENT HANDLER
RESHND,	SHNDLR		/ENTRY POINT OF RESIDENT HANDLER
ENTREE,	TAD	(MONLOD
	DCA	ERRET
	TAD	SYSTEM
	DCA	MYSYS
MORE,	TAD	(BEGLN-1
	DCA	LINPTR
	ISZ	LINPTR
	TAD I	LINPTR
	TAD	M240
	SNA CLA		/ELIMINATE LEADING SPACES
	JMP	.-4
FNLUP,	TAD I	LINPTR
	ISZ	LINPTR
	TAD	M340	/TEST FOR LC
M240,	SMA SZA
	TAD	M40	/YES: CHANGE TO UPPER CASE
	TAD	(40
	SNA		/TEST FOR @
	TAD	(37	/YES: CHANGE TO _
	SPA SNA		/LETTERS FROM 1-37,`
	JMP	NOLET	/NOT A LETTER
	TAD	(-<"K&77>
	SNA
	TAD	(<"C-"K>&77	/CONVERT 'K' TO 'C'
	TAD	("K&77
	JMS	GETKAR	/GETKAR WILL STORE IN TEMM
	JMP	MATCH
	CIA
	TAD	TEMM
	AND	(77	/6-BIT ASCII
	SNA CLA		/DO THEY MATCH?
	JMP	FNLUP	/YES
NOMT,	JMS	GETKAR
M40,	SZA SMA CLA	/SKIPS ON ZERO
	JMP	NOMT	/SCAN TO NEXT ENTRY
	ISZ	ENTRY	/COUNT TABLE POSITION
	JMP	MORE
NOLET,	JMS	GETKAR	/LOOK IF TABLE ENTRY OVER
	JMP	MATCH	/YESSS
	JMP	NOMT	/NO: SKIP TO NEXT

MATCH,	TAD	CCLINC	/IS CCL IN CORE?
	SZA CLA
	JMP	CCLGO	/YES: MAKE IT FAST
TEGO,	DCA	CCLINC	/IF FROM TECO: CCL NOT IN CORE
	TAD	(7603	/YES
	DCA I	(JSBITS
	CIF 10
	JMS I	MYSYS	/CALL USR AND LOCK IN CORE
	10
	TAD	RESNUM
	CIF 10
	JMS I	(USR
	2
CCLBLC,	CCLSV
CCLEN,	0
CCLNHR,	JMP	NOCCL	/ISZ'ED IF KBM NOT IN MEMORY
	CLA IAC
	TAD	CCLBLC
	DCA	CCLRDB
	JMS I	RESHND
CCLCCW,	1211		/READ 12 PAGES OF CCL.SV
CCLSTR,	2000		/REST IS READ BY OVERDRV
MYSYS,
CCLRDB,	7700		/INITIALLY POINTS TO USR
	JMP	NOCCL
	TAD	CCLBLC
	DCA I	(SOFSET	/CCL BLOCK TO SOFSET
	TAD	RESHND
	DCA I	(MREAD-1
	TAD	RESNUM
	DCA I	(SBLOCK
CCLGO,	CIF CDF 10
	JMP I	CCLSTR

CCLSV,	FILENAME CCL.SV
HALF,	-1		/0 MEANS LEFT HALF
KPTR,	KEYWRD

/GETKAR GETS NEXT 6-BIT CHAR, LEAVES IT IN AC
/TAKES RETURN 1 IF CHAR IS 0
/TAKES RETURN 2 OTHERWISE
/ABORTS BY IT SELF IF END OF TABLE (2 6-BITS)

GETKAR,	0
	DCA	TEMM
	ISZ	HALF
	JMP	RTHALF
	TAD I	KPTR
	BSW
	JMP	INSIDE
RTHALF,	STA
	DCA	HALF
	TAD I	KPTR
	ISZ	KPTR
INSIDE,	SNA		/IS IT END OF TABLE?
	JMP I	(PRQMRK	/YES: ABORT TO KBM
	AND	(77
M340,	SZA
	ISZ	GETKAR
	JMP I	GETKAR

NOCCL,	SPA CLA		/DON'T PRINT ON HANDLER ERROR
	JMP I	(MONLOD	/GO BACK TO MON IF CCL NOT FOUND ON TECO EG COMMAND
	JMS I	(PRMES	/PRINT ERROR MESSAGE OTHERWISE
.IF NDF GERMAN <	TEXT	/NO CCL! />
.IF DF  GERMAN <	TEXT	/KEIN CCL/>
	PAGE