File: OS8B.PA of Tape: Sources/RTS/s3
(Source file text) 

/REBOOT AND START TASK FOR OS8 WM
/START KEYBOARD MONITOR AT 07600 OR 07605

TASK=	OS8B
CUR=	0
INIWT=	0
PARTNO=	0
CPABLE=	0
WRITE=	1

	FIELD 0
	*6000

START,	ISZ	BOOTEF
	CAL
	WAITE+FREE
	BOOTEF
	TAD	(OS8
	CAL
	BLKARG
	USERWT		/SO WE CAN STOP TASK FROM MCR
	TAD	BOOTBK
	DCA	SAVBLK	/SET BLOCK FROM RESIDENT
	JMS I	(TELHIM
	CAL
	SENDW		/DON'T FREE SO WE CAN KEEP MESSAGE HERE
	OSSYSD
	BOOTMS		/LOAD RTS BOOTSTRAP
	TAD	STAT
	SZA
	HLT	/I DON'T KNOW ANY OTHER WAY OUT FOR THE MOMENT
	TAD	(7600
	DCA	BOOT1
	TAD	(7400
	DCA	BOOT0
BOOTLP,	CDF OS8F0
	TAD I	BOOT0
	CDF OS8F1
	DCA I	BOOT1
	ISZ	BOOT0
	ISZ	BOOT1
	JMP	BOOTLP
	TAD	DATE
	DCA I	(7666	/RESET IN CASE OF MIDNIGHT OVERFLOW
	CDF 0
	TAD	PC
	CMA
	AND	(7600	/IF THE ILLEGAL IOT WAS IN THE RESIDENT,
	SNA CLA		/DON'T SAVE CORE ON RELOAD
	TAD	(5	/SINCE SYS IS PROBABLY WRITE PROTECTED
	TAD	(7600
	DCA 	PC
	DCA	UDF
	DCA	UCDF
	JMS I	(CAFLGS		/CLEAR ALL FLAGS, AC ,ION
	DCA I	(OS8^4+TSTABL	/KILL OLD FIELD
	TAD	(HNDRET		/JUMP IN HANDLER EXIT
	DCA I	(OS8^4+TSTABL+1	/THIS SIMULATES A DERAIL
	DCA I	(OS8^4+TSTABL+2	/ZERO AC
	TAD	(OS8
	CAL
	UNBARG
	EFWT!USERWT	/WAKE HER UP AND SET INPUT FLAG
	JMP	START
BOOT0,	7400
BOOT1,	7600

BOOTMS,	ZBLOCK 3
	0
	2^100+OS8F0
I7400,	7400
SAVBLK,	0
STAT,	0

	PAGE
CRMES,	7;7;7;15;12
	0		/WATCH GARBLING!
ILIOMS,	"=;"I;"L;"L;"E;"G;"A;"L
	" ;"I;"O;"T;" ;"A;"T;" ;0
HLTMS,	"H;"A;"L;"T;" ;"A;"T;" ;0
HNDMS,	"!;"H;"A;"N;"D;"L;"E;"R
	" ;"E;"R;"R;"O;"R;" ;"A;"T;" ;0
RTSMES,	"!;"R;"T;"S;"-;"8;"!;0

	PAGE
/ROUTINE TO PRINT 4 DIGITS

PRNT4,	0
	DCA	PTEMP
	TAD	(-4
	DCA	PCNT
PCPTLP,	TAD	PTEMP
	CLL RTL
	RAL
	DCA	PTEMP
	TAD	PTEMP
	RAL
	AND	K7
	TAD	(260
	JMS	PRINT	/PRINT THE PC IN OCTAL
	ISZ	PCNT
	JMP	PCPTLP	/4 DIGITS WORTH
	JMP I	PRNT4

PRNTMS,	0
	DCA	PTEMP
ILIOLP,	TAD I	PTEMP	/PRINT ERROR MESSAGE ON OS/8 TTY
	SNA		/LIST ENDS WITH 0
	JMP I	PRNTMS
	JMS	PRINT
	ISZ	PTEMP
	JMP	ILIOLP

PTEMP,	0
PCNT,	0

PRINT,	0	/PRINT AND HANG IF NECESARY
	JMS I	(XTLSUB
	TAD I	PTSFEF
	SNA CLA
	JMP I	PRINT	/CAN RECEIVE
	CAL		/BUFFER FULL
	WAITE		/HANG ON TSFEF
PTSFEF,	TSFEF
	JMP I	PRINT
/MESSAGE HANDLER REACTS ON CONTENTS OF 'WD'
/
/	WD=	0	START OR MANUAL REBOOT (^A)
/	WD=	7402	HALT
/	WD=	6200	HANDLER ERROR
/	WD=	OTHER	ILLEGAL IOT

TELHIM,	0
	IOF
	AC0002		/SET CHECKPOINTABLE BIT
	TAD I	(OS8B-NRTASK^2+RESTBL
	DCA I	(OS8B-NRTASK^2+RESTBL
	ION
	TAD	(CRMES
	JMS	PRNTMS
	TAD	WD	/GET INST. FROM CANONICAL LOCATION
	SNA
	JMP	BOTHIM
	TAD	(-7402
	SNA
	JMP	HLTERR
	TAD	(7402-6200
	SNA CLA
	JMP	HNDERR
	TAD	WD
IOTERR,	JMS	PRNT4
	TAD	(ILIOMS
PRADD,	JMS	PRNTMS
	TAD	UIF	
	CLL RTR
	RAR
	TAD	(260
	JMS I	(XTLSUB	/PRINT FIELD
	TAD	PC
	JMS	PRNT4
TELEX,	IOF
	AC7775		/CLEAR CHECKP. BIT
	AND I	(OS8B-NRTASK^2+RESTBL
	DCA I	(OS8B-NRTASK^2+RESTBL
	ION
	JMP I	TELHIM

BOTHIM,	TAD	(RTSMES
	JMS	PRNTMS
	JMP	TELEX

HLTERR,	TAD	(HLTMS
	JMP	PRADD

HNDERR,	TAD	(HNDMS
	JMP	PRADD

	PAGE