;********************************************************
;*							*
;*	ONE-SECTOR LOADER FOR FIRST STAGE DD BOOT	*
;*							*
;********************************************************
;
;
;	... READ CBIOS FROM SINGLE DENSITY TRACK ZERO ...
;
ONESECT:
	LD	HL,DIRBUF
	LD	C,2
	CALL	MONITR+36	;READ SIGNON MESSAGE INTO TEMP BUFFER
	JR	NZ,BTERR
	LD	HL,CBIOS
	LD	B,BIOSLEN/128
	LD	C,3
OSEC2:	PUSH	HL		;SAVE PARAMETERS
	PUSH	BC
	CALL	MONITR+36	;CALL MONITOR DISK READ ROUTINE
	POP	BC
	POP	HL
	JR	NZ,BTERR
	LD	DE,128
	ADD	HL,DE
	INC	C
	DJNZ	OSEC2		;REPEAT UNTIL 12 SECTOR BIOS READ IN
;
;	... PUT COLDSTART INIT HERE TO CONSERVE BIOS SPACE ..
;
	IF	WINCH
	LD	A,RST+ON
	OUT	(SASI+1),A	;RESET SASI BUS CONTROLLER(S)
	LD	A,RST+OFF
	OUT	(SASI+1),A
	ENDIF
	IF	SERIAL
	LD	HL,(MONITR+16)	;PATCH MONITOR CONOUT VECTOR TO
	LD	(MONITR+13),HL	; DIRECT OUTPUT TO BUILT-IN CRT DRIVER
	ENDIF
	LD	HL,DIRBUF
	CALL	PMSG		;OUTPUT SIGNON MSG PARKED IN 'DIRBUF'
	XOR	A
	LD	(IOBYTE),A	;CLEAR IOBYTE
	LD	A,USRDRV
	LD	(IOBYTE+1),A	;SET DEFAULT DRIVE/USER FOR COLDSTART
	LD	HL,SCRATCH
	LD	(HL),0
	LD	DE,SCRATCH+1
	LD	BC,SCRLEN-1
	LDIR			;ZERO-OUT SCRATCH MEMORY FOR BIOS
	LD	HL,LSTINIT
	LD	B,6
	LD	C,LSTCTL
	OTIR			;SET PRINTER PARITY/LENGTH/STOP BITS
	LD	B,2
	LD	C,LSTBAUD
	OTIR			;SET PRINTER BAUDRATE
	LD	A,12
	LD	(NREVS),A	;MAKE DRIVE READY WAIT 12 REVOLUTIONS
	LD	A,1
	LD	(TRKTAB+4),A	;SET DRIVE ZERO TO DOUBLE DENSITY
	JP	CBIOS		;EXECUTE BIOS COLDSTART ROUTINE
;
;
;
LSTINIT:			;SERIAL PRINTER INIT CONSTANTS
	DEFB	4
	DEFB	01000101B	;16X CLOCK / 1 STOP BIT / ODD PARITY
	DEFB	3
	DEFB	01000001B	;RX 7 BIT CHARACTERS
	DEFB	5
	DEFB	10101010B	;TX 7 BIT CHARACTERS / DTR AND RTS HIGH

	DEFB	01000111B	;PROGRAM CTC AND LOAD TIME CONST
	DEFB	4		;DIVIDE BY 4 GIVES 9600 BAUD
;
;
;
BTERR:	LD	A,'?'
	CALL	MONITR+12	;OUTPUT ERROR INDICATION TO CONSOLE
	LD	A,'G'-64
	CALL	MONITR+12
	JP	MONITR+3	;JUMP BACK TO MONITOR ROM
;
;
;
