Source file: /~heha/hs/kcemu/kcswberg.zip/DISK/TURBO.ASM

TURBOASM;
; ***	Turbolader von KCTOOLS	***
;	}berarbeitet von
;	> #haftmann software <
;	Sonntag, 16.02.92
;	Das Programm ist 380H lang
;	und frei verschiebbar
;	lauff{hig auf KC85/2,3,4
;
OS	EQU	0F003H
RC	EQU	0F00FH
BIT0	EQU	15H	;TC 0-Bit
BIT1	EQU	39H	;TC 1-Bit
BITD	EQU	7BH	;Diskriminator
 
;*** INTERNE UNTERPROGRAMME ***
 
IMBII
	CALL	RC
	DEFW	SIXD3-$-2
	LD	(IX+3),1
	SET	5,(IX+7)
	IN	89H
	RES	7,A
	OUT	89H
	IN	A,88H
	SET	6,A
IMBI1	OUT	88H
	EI
	PUSH	HL
	LD	HL,(0B7A4H)
	LD	(0B7CFH),HL
	CALL	OS
	DEFB	20H
	LD	(0B7CDH),HL
	LD	A,11H
	CALL	OS
	DEFB	0
	POP	HL
PHALT	LD	A,3
	OUT	8CH
	OUT	8DH
	RES	1,(IX+8)
	RET
 
ISROI
	CALL	RC
	DEFW	SIXD3-$-2
	IN	A,88H
	OR	60H
	CALL	RC
	DEFW	IMBI1-$-2
	LD	(IX+2),0
	LD	BC,2000H
	;
MBOT	INC	(IX+2)
	LD	L,(IX+5)
	LD	H,(IX+6)
	DI
	LD	A,87H
	OUT	8DH
	LD	A,BIT0
	OUT	8DH
	EI
	LD	E,A
MBOT1	LD	(IX),E
MBOTW	LD	A,(IX)
	AND	A
	JR	NZ,MBOTW
	DEC	BC
	LD	A,B
	OR	C
	JR	NZ,MBOT1
	CALL	RC
	DEFW	BIT1O-$-2
	CALL	RC
	DEFW	BIT1O-$-2
	LD	A,(IX+2)
	CALL	RC
	DEFW	BYTOT-$-2
	LD	BC,8000H
MBT1	LD	A,M
	CALL	RC
	DEFW	BYTOT-$-2
	LD	A,C
	XOR	M
	LD	C,A
	INC	HL
	DJNZ	MBT1
	CALL	RC
	DEFW	BYTOT-$-2
	CALL	RC
	DEFW	BIT1O-$-2
	LD	A,3
	OUT	8DH
	RET
 
BYTOT
	LD	D,A
	LD	E,8
BYTOUT	RRC	D
	LD	A,BIT0
	JR	NC,BITOUT
	LD	A,BIT1
BITOUT	LD	(IX),A
BITOT	LD	A,(IX)
	AND	A
	JR	NZ,BITOT
	DEC	E
	JR	NZ,BYTOUT
	RET
 
BIT1O	LD	(IX),BIT1
BIT1OT	LD	A,(IX)
	AND	A
	JR	NZ,BIT1OT
	RET
 
MBI	LD	A,83H
	OUT	8AH
	PUSH	HL
MBI1
	LD	B,28H
MBI2
MS1	IN	A,88H
	OUT	88H
	LD	A,(IX)
	OR	A
	JR	Z,MS1
	LD	(IX),0
	CP	BITD
	CALL	RC
	DEFW	LEDOO-$-2
	JR	C,MBI1
	DJNZ	MBI2
MBI3
MBI4
MS2	IN	A,88H
	OUT	88H
	LD	A,(IX)
	OR	A
	JR	Z,MS2
	LD	(IX),0
	CP	BITD
	JR	NC,MBI3
MS3	IN	A,88H
	OUT	88H
	LD	A,(IX)
	OR	A
	JR	Z,MS3
	LD	(IX),0
	CP	BITD
	JR	NC,MBI1
	CALL	RC
	DEFW	BYTIN-$-2
	LD	(IX+2),A
	LD	BC,8000H
	LD	L,(IX+5)
	LD	H,(IX+6)
MBI5
	CALL	RC
	DEFW	BYTIN-$-2
	LD	M,A
	XOR	C
	LD	C,A
	INC	HL
	DJNZ	MBI5
	CALL	RC
	DEFW	BYTIN-$-2
	SUB	C
	ADD	0FFH
MBI6	POP	HL
	LD	A,3
	OUT	8AH
LEDOO	IN	A,88H
	SET	5,A
	JR	NC,MBI7
	RES	5,A
MBI7	OUT	88H
	RET
BYTIN
	LD	D,8
BYTI
BS1	IN	A,88H
	OUT	88H
	LD	A,(IX)
	OR	A
	JR	Z,BS1
	LD	(IX),0
	CP	BITD
	RR	E
	DEC	D
	JR	NZ,BYTI
	LD	A,E
	RET
 
;*** HAUPTPROGRAMME ***
 
	DEFW	7F7FH
	DEFM	'TSAVE'
	DEFB	1
	CP	2
	JR	NC,NERR
	CALL	OS
	DEFB	19H
	RET
 
NERR	CALL	OS
	DEFB	23H
	DEFM	'Name :'
	DEFB	0
	CALL	OS
	DEFB	17H
	RET	C
	LD	HL,6
	ADD	HL,DE
	LD	DE,0B700H
	LD	BC,11
	LDIR
	XOR	A
	LD	(DE),A
	LD	HL,0B781H
	LD	E,10H
	LD	C,15H
	LDIR
	CALL	RC
	DEFW	ISROI-$-2
 
	LD	HL,(0B782H)
	LD	BC,0E0H
	DEFB	11H
 
SAV2	LD	BC,0C0H
	LD	(IX+5),L
	LD	(IX+6),H
	LD	A,(IX+2)
	CALL	OS
	DEFB	1CH
	CALL	OS
	DEFB	23H
	DEFB	'<'
	DEFB	0DH
	NOP
	CALL	OS
	DEFB	2AH	;BRKT
	JR	C,CRO0
	LD	DE,80H
	ADD	HL,DE
	LD	DE,(0B784H)
	SBC	HL,DE
	JR	NC,CSRO
	CALL	RC
	DEFW	MBOT-$-2
	JR	SAV2
 
CSRO
	LD	(IX+2),0FEH
	CALL	RC
	DEFW	MBOT-$-2
CRO0	PUSH	HL
	LD	HL,(0B7CDH)
	LD	(0B7B9H),HL
	LD	HL,(0B7CFH)
	LD	(0B7A4H),HL
	LD	HL,0B780H
	XOR	A
CRO1	DEC	L
	LD	M,A
	JR	NZ,CRO1
	POP	HL
	IN	A,88H
	AND	9FH
	OUT	88H
	CALL	OS
	DEFB	2CH
	;
SIXD2	LD	A,(IX+7)
	AND	1FH
	LD	(IX+7),A
SIXD3
	IN	A,89H
	OR	9FH
	OUT	89H
	LD	(IX+5),0
	LD	(IX+6),0B7H
	RES	0,(IX+8)
	RET
 
 
NBL1	CALL	OS
	DEFB	23H
	DEFM	'???'
	DEFB	0
NBL2
CMBI
	CALL	RC
	DEFW	CRO0-$-2
BLION	IN	A,89H
	OR	80H
	OUT	89H
	DI
	LD	A,47H
	OUT	8EH
	LD	A,0CH
	OUT	8EH
	EI
	RET
 
 
	DEFW	7F7FH
	DEFM	'TVERIFY'
	DEFB	1
	RES	0,(IX+7)
	JR	LOAD0
 
	DEFW	7F7FH
	DEFM	'TLOAD'
	DEFB	1
	SET	0,(IX+7)
 
LOAD0	CALL	RC
	DEFW	IMBII-$-2
	CALL	RC
	DEFW	NBR-$-2
	RES	5,(IX+7)
LOAD1	JR	C,NBL2
	LD	HL,0B700H
	LD	B,11
LOADN	LD	A,M
	INC	HL
	CALL	OS
	DEFB	0
	DJNZ	LOADN
	CALL	OS
	DEFB	2BH
	BIT	0,(IX+7)
	JR	Z,LOAD4
	LD	L,10H
	LD	A,M
	SUB	2
	CP	8
	JR	NC,NBL1
	RLCA
	RLCA
	LD	H,A
	LD	A,(IX+7)
	AND	3
	OR	H
	LD	(IX+7),A
	LD	BC,(0B715H)
	LD	DE,(0B713H)
	LD	HL,(0B711H)
	LD	A,(0B781H)
	AND	A
	JR	Z,LOAD3
	PUSH	BC
	LD	BC,(0B782H)
	ADD	HL,BC
	EX	DE,HL
	ADD	HL,BC
	EX	DE,HL
	BIT	3,(IX+7)
	JR	NZ,LOAD2
	EX	(SP),HL
	ADD	HL,BC
	EX	(SP),HL
LOAD2	POP	BC
LOAD3	LD	(0B782H),HL
	LD	(0B784H),DE
	LD	(0B786H),BC
	CALL	OS
	DEFB	1BH
LOAD4	CALL	OS
	DEFB	2CH
	EX	DE,HL
LOAD5	PUSH	DE
	CALL	RC
	DEFW	NBR-$-2
	POP	DE
	JR	C,LOAD1
	BIT	0,(IX+7)
	JR	Z,LOAD6
	PUSH	HL
	SBC	HL,DE
	LD	BC,80H
	SBC	HL,BC
	ADD	HL,BC
	JR	NC,BLC1
	LD	C,L
BLC1	LD	HL,0B700H
	LDIR
	POP	HL
LOAD6	INC	(IX+2)
	JR	NZ,LOAD5
	CALL	RC
	DEFW	CMBI-$-2
	LD	A,(IX+7)
	RRA
	RET	NC
	AND	0EH
	RES	0,(IX+7)
	RET	Z
	BIT	1,(IX+7)
	RET	NZ
	LD	HL,(0B786H)
	JP	(HL)
 
NBR
	PUSH	HL
	LD	L,4
	LD	H,(IX+3)
NBR0	CALL	OS
	DEFB	2AH
	JR	C,NBREND
	CALL	RC
	DEFW	MBI-$-2
	LD	A,(IX+2)
	PUSH	AF
	CP	H
	JR	Z,NBR2
	INC	A
	JR	NZ,NBR4
	LD	A,L
	CP	4
	JR	NZ,NBR4
	DEC	H
	JR	Z,NBR41
	INC	H
NBR2	POP	AF
	JR	C,NBR5
	PUSH	AF
	LD	A,2	;Clear Line
	CALL	OS	;auf CAOS3.1
	DEFB	0	;zu langsam
	POP	AF
	BIT	5,(IX+7)
	JR	NZ,NBR3
	CALL	OS
	DEFB	1CH
	CALL	OS
	DEFB	23H
	DEFM	'> '
	NOP
NBR3	INC	H
	LD	(IX+3),H
NBREND	POP	HL
	RET
	;
NBR41	INC	H
NBR4	POP	AF
	CALL	OS
	DEFB	1CH
	CALL	OS
	DEFB	23H
	DEFM	'*'
	DEFW	808H
	DEFW	8
	JR	NBR0
	;
NBR5	LD	H,A
	CALL	OS
	DEFB	1CH
	DEC	L
	JR	Z,NBR6
	CALL	OS
	DEFB	23H
	DEFM	'? '
	DEFW	7
	JR	NBR0
	;
NBR6	CALL	OS
	DEFB	23H
	DEFM	' !'
	DEFW	0D0AH
	NOP
	JR	NBR3
 
;	END.
                                                                                                                               
Detected encoding: ASCII (7 bit)2