	PAGE	64
	TITLE	CONFIGURATOR 21-JAN-1983
	MACLIB	ZMACRO.LIB

;********************************************************
;*							*
;*	-System configurator for mixed bios-		*
;*							*
;*	Copyright (C) 1983 by   L.Koopman.		*
;*				Waarbekenplein 13	*
;*				7553 KK Hengelo (o)	*
;*				074-913022		*
;*				Nederland		*
;*							*
;*	Last edit date  19-May-1983			*
;*							*
;********************************************************


SYSRAM	EQU	0FF00H

BDOS	EQU	5

BEGIN:
	XOR	A
	LD	(ACTIV),A

STARTA:
	PRINT	<1AH,09H,09H,1BH,'G','4','CONFIG PROGRAM',1BH,'G','0'>
	PRINT	<CR,LF,LF>
	PRINT	<1Bh,'G','1','Warning',1BH,'G','0','  This program is to be used'>
	PRINT	<CR,LF,'In conjunction with a modified monitor and'>
	PRINT	<CR,LF,'a modified bios.'>
	CALL	TYPECON		;DISPLAY CONFIG.
	PRINT	<CR,LF,LF>
	LD	A,(ACTIV)
	OR	A
	JP	NZ,STEPCNT
	PRINT	'WANT TO MAKE ANY CHANGE ? (A-D) OR (CR) TO SKIP  - '
	CHARIN
	RES	5,A
	CP	13
	JR	Z,STEPCNT
	CP	'A'
	JP	C,BEGIN
	CP	'D'+1
	JP	NC,BEGIN
	AND	7		;MAKE IT 1-4
	LD	B,A
	LD	A,80H
GETMSK:
	RLCA
	DJNZ	GETMSK
	LD	B,A
	LD	A,(TYPEFLAG)	;GET CONFIG BYTE
	XOR	B
	LD	(TYPEFLAG),A	;STORE NEW CONFIG
	JP	STARTA		;DISPLAY IT

STEPCNT:
	PRINT	<CR,LF,LF,'WANT TO SELECT DOUBLE STEP COUNT FOR 5 1/4" DRIVES ?" (A-D) OR (CR)--'>
	CHARIN
	RES	5,A
	CP	13
	JR	Z,TIME8
	CP	'A'		;CHECK VALIDITY
	JP	C,STARTA
	CP	'D'+1
	JP	NC,STARTA
	AND	7		;MAKE IT 1-4
	LD	B,A
	LD	A,1
GTSPMSK:
	RRCA
	DJNZ	GTSPMSK
	LD	B,A
	LD	A,(TYPEFLAG)
	XOR	B
	LD	(TYPEFLAG),A
	LD	A,0FFH
	LD	(ACTIV),A
	JP	STARTA
TIME8:
	PRINT	<CR,LF,LF,'ENTER SEEK STEP TIME (IN {HEX.} MILISEC.) FOR 8 INCH (OR CR) --'>

	call	getres
	ld	a,b
	or	a
	jr	z,time5
	xor	a
	ld	(hl),a
	hexin	buffer
	ld	(speed8),a
time5:
	PRINT	<CR,LF,'ENTER SEEK STEP TIME (IN {HEX.} MILISEC.) FOR 5 1/4 INCH --'>

	call	getres
	ld	a,b
	or	a
	jr	z,retry
	xor	a
	ld	(hl),a
	hexin	buffer
	LD	(SPEED5),A
RETRY:
	PRINT	<CR,LF,'ENTER READ/WRITE RETRY COUNT {HEX}, OR (CR) TO SKIP --'>

	call	getres
	ld	a,b
	or	a
	jr	z,quit
	xor	a
	ld	(hl),a
	hexin	buffer
	LD	(MAXRWT),A
QUIT:
	PRINT	<CR,LF,LF,' END OF CONFIG PROGRAM !!!!'>
	RET

getres:
	ld	b,0		;char count
	ld	hl,buffer
inloop:
	push	bc
	push	hl
	ld	c,1
	call	bdos
	pop	hl
	pop	bc
	cp	cr
	ret	z
	call	makebig		;convert to upper case
	ld	(hl),a		;store in buffer
	inc	hl
	inc	b		;inc char count
	jr	inloop

makebig:
	cp	60h
	ret	c
	res	5,a
	ret

TYPECON:
	PRINT	<CR,LF,LF>
	LD	A,(TYPEFLAG)
	LD	C,A
	LD	B,4		;MAX DRIVE NO
	LD	A,'A'
TYPEIT:
	SRL	C
	CALL	C,TYPE8		;8 INCH
	CALL	NC,TYPE5	;5 INCH
	INC	A
	DJNZ	TYPEIT
	RET

TYPE8:
	SAVE
	PUSH	AF
	PRINT	<CR,LF,'DRIVE - '>
	POP	AF
	PUSH	AF
	CHAROUT
	PRINT	' IS CONFIGURED AS "8 INCH"'
	POP	AF
	RESTORE
	RET

TYPE5:
	SAVE
	PUSH	AF
	AND	7		;MAKE IT DRIVE NO:
	LD	B,A
	LD	A,(TYPEFLAG)
TYPE5LP:
	SLA	A
	DJNZ	TYPE5LP
	JR	NC,TYPE5S
TYPE5D:
	POP	AF
	RESTORE
	JR	T5DOUB
TYPE5S:
	POP	AF
	RESTORE
	JR	T5SING

T5DOUB:
	SAVE
	PUSH	AF
	PRINT	<CR,LF,'DRIVE - '>
	POP	AF
	PUSH	AF
	CHAROUT
	PRINT	' IS CONFIGURED AS "5 1/4 INCH DOUBLE STEPS"'
	POP	AF
	RESTORE
	RET

T5SING:
	SAVE
	PUSH	AF
	PRINT	<CR,LF,'DRIVE - '>
	POP	AF
	PUSH	AF
	CHAROUT
	PRINT	' IS CONFIGURED AS "5 1/4 INCH SINGLE STEPS"'
	POP	AF
	RESTORE
	RET
ACTIV:	DEFS	1
BUFFER:
BUFF2	EQU	$+1
	DEFS	80
	
	.XLIST
	.PHASE	SYSRAM
	INCLUDE	MEMDEF.MAC
	.DEPHASE
	.LIST
	
	END	BEGIN
