PROMPT	EQU	03EH	; THE DOS PROMPT ">"
CR	EQU	0DH
LF	EQU	0AH
;
; ISIS CALLS
;
OPEN	EQU	0
CLOSE	EQU	1
READ	EQU	3
WRITE	EQU	4
EXIT	EQU	9
ERROR	EQU	12
;

TTYI	EQU	0F4H
TTYO	EQU	0F4H
TTYS	EQU	0F5H
TTYC	EQU	0F5H
;
TRDY	EQU	00000001B
RRDY	EQU	00000010B
;
DTR	EQU	00000010B
;
	EXTRN	ISIS
	EXTRN	CO
	EXTRN	CI
;
	CSEG
;
DIR:	LXI	SP,STK+4
;		LXI	H,DIRMSG-1
;
;	MVI	A,0CEH	; TTY USART MODE, 1-STOP NP RX1 8BITS 
;	OUT	0F5H
;	MVI	A,27H	; TTY USART CMD
;	OUT	0F5H
;	MVI	A,36H	; TTY TIMER SELECT
;	OUT	0F3H
;	MVI	A,20H	; 2400 BAUD
;	OUT	0F0H
;	MVI	A,0
;	OUT 0F0H
;
;	MVI	A,0CEH	; CRT MODE
;	OUT	0F7H
;	MVI	A,27H	; CRT CMD
;	OUT	0F7H
;	MVI	A,76H
;	OUT	0F3H	; SELECT CRT TIMER
;	MVI	A,7		; 9600 BAUD
;	OUT	0F1H
;	MVI	A,0
;	OUT	0F1H
;
		LXI	H,DIRMSG-1
DIR0:
		INX		H
		MOV		A,M
		CPI		0
		JZ		LISTEN
		MOV		C,M
		CALL	CRTOUT
;		CALL	CI
;		ANI		07FH
;		CPI		CR
;		JZ		ABORT
		JMP		DIR0
;
LISTEN:
		CALL	CRTIN
		ANI		07FH
		STA		BUFFER
		MOV		C,A
		CALL	CO
		LDA		BUFFER
		CPI		PROMPT
		JNZ		LISTEN
		MVI		C,CR
		CALL	CO
		MVI		C,LF
		CALL	CO
		JMP		DONE
;
DIRMSG:	DB	'DIR /F',CR,0
ERRMSG:	DB	CR,'USER ABORTED',CR,LF,0
;
ABORT:
		LXI	H,ERRMSG-1
ABORT0:
		INX	H
		MOV	A,M
		CPI	0
		JZ	DONE
		MOV	C,M
		CALL	CO
		JMP	ABORT0
;
DONE:
		MVI	C,EXIT
		LXI	D,XBLK
		CALL	ISIS
;
	DSEG

XBLK:	DW	STATUS
EBLK:
STATUS:	DS	2
		DW	STATUS
;
BUFFER:	DS	128
;
STK:	DS	4
;
	CSEG
;
CRTOUT:
		IN	0F7H
		ANI	TRDY
		JZ	CRTOUT
		MOV	A,C
		OUT	0F6H
		RET
;
CRTIN:
		IN	0F7H
		ANI	RRDY
		JZ	CRTIN
		IN	0F6H
		RET
;
END	DIR

