spt_con_print:	pop hl
con_print:
	.loop:
		ld a,(HL)       ; get message char
		or a            ; test for null
		jr z, .done     ; return if done
		ld (ix+0),A     ; store char
		inc ix          ; advance screen pointer
		inc hl          ; advance message pointer
		jr .loop        ; continue

	.done:
		ret

con_home:	ld ix,VBASE
		ret

spt_con_goto:	pop ix
		ret

con_NL:
		ld a,ixl		; go to beginning of line
		and $c0			; then go to the next line
		add a,$40
		ld ixl,a		; store the low byte back
		jr nc,.skip
		inc ixh			; fix up high byte if there was a carry
	.skip:
		ret

con_clear:
		ld hl,VBASE
		ld bc,VSIZE
	.loop:
		ld (hl),20h
		cpi
		jp pe,.loop

		ld ix,VBASE
		ret

spt_con_index:	pop bc
con_index:
		add ix,bc
		ret
