File: CCLSEM.MA of Disk: V50/Source/Source-Listing-MAC-1
(Source file text) 

/CCL SEMICOLONS FOR KBM V50
/
/
/
/
/
/	CCL SEMICOLON CODE
/	VERSION=5A

	.ENTRY SEMI

	.EXTERNAL ERROR,YBATCH,ZOW,GLIN

	.NOLIST
	.INCLUDE IN:CCLDEF.MA
	.LIST

	.RSECT SEM1
	FIELD 1

ENGOA,	TAD (-5
	JMS	ZEROCD
	TAD I (BLKNO
	DCA I (MIFILE+1
	CLA IAC
	DCA I (MIFILE	/'CCBTCH' IS ON SYS:
	TAD (40		/ /S OPTION FOR SECOND LEVEL
	DCA I (MPARAM+1
	TAD (20		/  ALSO /H (HUSH) OPTION
	DCA I (MPARAM
	TAD (YBATCH
	JMP I (ZOW	/CHAIN TO BATCH

ZEROCD,	0
	TAD (-42	/AC MAY BE NON-0
	DCA T$
	TAD (MOFILE-1
	DCA XR
	DCA I XR	/ZERO THE COMMAND DECODER OUTPUT AREA
	ISZ T$
	JMP .-2
	JMP I ZEROCD
T$:	0


	.ENABLE ASCII
BATHED,	TEXT	"$JOB"<215><212>"."
BATAIL,	TEXT ".DEL SYS:CCBTCH.TM/H"<215><212>"$END"<215><212><32>
	.ENABLE SIXBIT
TEMNAM,	FILENAME CCBTCH.TM


	PAGE


BATPTR,	BATBUF-1
LCHAR,	0
SEMSWI,	-1

SEMI,	0
	CLA IAC		/SYS
	JMS I (USR
	3		/ENTER
BLKNO,	TEMNAM
BLKLEN,	0		/NEG OF LENGTH
	JMP SEMER1	/ENTER ERROR
	TAD BLKNO
	DCA BATBLK
	TAD (BEGLN-1
	DCA XR
	TAD (7600
	CDF 0
	DCA I (CTRLCK	/FORCE ^C TO GLINE TO GO TO 7600
	CDF 10
	JMS BATLST
	BATHED
S2,	CDF 0
	TAD I XR
	CDF 10
	SNA
	JMP LINEND
	DCA LCHAR	/SAVE CHAR
	TAD LCHAR
	TAD (-";
	SNA CLA
	JMP GOTSEM
	TAD LCHAR
S3,	JMS BATPUT
	DCA	SEMSWI	/INITIAL ; IS PAST
	JMP S2


LINEND,	TAD LCHAR
	TAD (-";	/LOOK AT LAST CHAR
	SZA CLA		/WAS IT SEMICOLON?
	JMP BATEND	/NO, END OF TEMP BATCH STREAM
	CIF CDF 0
	JMS I (GLIN	/YES, READ NEW LINE FROM KEYBOARD
	TAD (BEGLN-1	/**** WHAT IF WE'RE RUNNING UNDER BATCH ****
	DCA XR
	JMP S2

GOTSEM,	ISZ	SEMSWI	/WAS IT INITIAL ; ?
	SKP
	JMP S2		/YES ; DON'T PUT EXTRA '.'
	JMS KRLF
	TAD (".
	JMP S3

KRLF,	0
	TAD (215
	JMS BATPUT
	TAD (212
	JMS BATPUT
	JMP I KRLF

BATPUT,	0
	ISZ BATPTR
	CDF 0
	DCA I BATPTR
	CDF 10
	TAD BATPTR
	TAD (-BATBUF-377
	SNA CLA
	JMS BATWRIT	/WRITE OUT BUFFER IF FULL
	JMP I BATPUT


BATWRIT,0
	CIF 0
	JMS I (7607
	4200		/WRITE 1 BLOCK
	BATBUF
BATBLK,	0
	JMP SEMER2	/  I/O ERROR
	ISZ BATBLK	/POINT TO NEXT BLOCK
	ISZ BATLEN	/BUMP LENGTH
	ISZ BLKLEN
	SKP
	JMP SEMER3	/DEVICE FULL
	TAD (BATBUF-1
	DCA BATPTR
	JMP I BATWRIT

BATEND,	JMS KRLF
	JMS BATLST
	BATAIL
	JMS BATWRIT
	CLA IAC		/SYS
	JMS I (USR
	4		/CLOSE
	TEMNAM
BATLEN,	0		/LENGTH OF TEMPORARY FILE
	JMP SEMER4	/CLOSE ERROR
	JMP I (ENGOA


BATLST,	0
	TAD I BATLST
	DCA T$
	ISZ BATLST
L$:	TAD I T$
	SNA
	JMP I BATLST
	JMS BATPUT
	ISZ T$
	JMP L$

T$:	0

SEMER1,	JMS I (ERROR
	17.		/#CCBTCH Enter error
SEMER2,	JMS I (ERROR
	0.		/#I/O Error on SYS:
SEMER3,	JMS I (ERROR
	18.		/#Device full
SEMER4,	JMS I (ERROR
	19.		/#CCBTCH Close error
	PAGE