
;
; Maciej 'YTM/Elysium' Witkowiak
;
; 27.10.2001
; 05.03.2002

; void cpputsxy (unsigned char x, unsigned char y, char* s);
; void cpputs (char* s);

; same as cputsxy and cputs but faster and use proportional font spacing
; does not update cursor position

	    .export _cpputsxy, _cpputs

	    .import _gotoxy
	    .import popa
	    .importzp cursor_x, cursor_y

	    .include "../inc/const.inc"
	    .include "../inc/geossym.inc"
	    .include "../inc/jumptab.inc"

_cpputsxy:
	sta	r0L		; Save s for later
	stx	r0H
	jsr	popa		; Get Y
	jsr	_gotoxy		; Set cursor, pop x
   	jmp	L0		; Same as cputs...

_cpputs:
	sta	r0L		; Save s
   	stx	r0H
L0:	ldy	#0
	lda	(r0),y
   	bne	L1		; Jump if there's something
	rts

L1:	lda	cursor_x
	sta 	r11L
	lda	cursor_x+1
	sta	r11H
	lda	cursor_y
	sta	r1H
	jmp	PutString
