		.MODEL SMALL
		.CODE
		PUBLIC	_writeln, _clrwin

;------------------------------------------------------------------------------

;THIS PROCEDURE WRITES A STRING (TERMINATED WITH $) TO THE DISPLAY

;BX= STRING ADDRESS  DX= POSITION ON DISPLAY (DH= ROW  DL= COL)

_writeln	PROC	NEAR
		MOV	CX,1		;ONE CHARACTER
		PUSH	BX		;SAVE STRING ADDRESS
		MOV	AH,2		;SET CURSOR FUNCTION
		XOR	BH,BH		;PAGE 0
		INT	10H		;MOVE CURSOR
		POP	BX		;RESTORE STRING ADDRESS
	WRCR:	MOV	AL,[BX]		;CHARACTER TO DISPLAY
		CMP	AL,'$'		;DELIMITER?
		JZ	DUN
		PUSH	BX
		MOV	AH,0AH		;REQUEST DISPLAY
		XOR	BH,BH		;PAGE ZERO
		INT	10H		;CALL BIOS
		INC	DX
		MOV	AH,2		;SET CURSOR FUNCTION
		INT	10H		;MOVE CURSOR
		POP	BX
		INC	BX
		JMP	WRCR
	DUN:	RET
_writeln	ENDP

;------------------------------------------------------------------------------

; THIS PROCEDURE CLEARS A RECTANGLE ON THE SCREEN WITH
; UPPER LEFT CORNER 1312H & LOWER RIGHT CORNER 163CH

_clrwin		PROC	NEAR
		MOV	AX,0603H	;WINDOW IS 3 ROWS
		MOV	BH,0EH		;YELLOW ON BLACK
		MOV	CX,1312H	;UPPER LEFT 1312H
		MOV	DX,153CH	;LOWER RIGHT 153CH
		INT	10H
		MOV	AX,0601H	;WINDOW IS 1 ROW
		MOV	BH,8EH		;YELLOW ON BLACK BLINKING
		MOV	CX,1612H
		MOV	DX,163CH
		INT	10H
		RET
_clrwin		ENDP
		END
