Files
cc65/libsrc/c128/cpeekchar.s
2017-06-17 03:01:31 +02:00

75 lines
784 B
ArmAsm

.export _cpeekchar
.export _cpeekcharxy
.import _gotoxy
.import plot,popa
.include "zeropage.inc"
.include "c128.inc"
.segment "CODE"
_cpeekcharxy:
jsr _gotoxy ; Set cursor
_cpeekchar:
lda MODE
bmi @c80
ldy CURS_X
lda (SCREEN_PTR),y ; get char
@return:
; convert to asc
and #$7f
; 0 - $1f +$40
; $20 - $3f
; $40 - $7e +$80
cmp #$1f
bcs @sk1
;; clc
adc #$40
rts
@sk1:
cmp #$40
bcc @end
clc
adc #$80
@end:
ldx #0
rts
@c80:
lda SCREEN_PTR
ldy SCREEN_PTR+1
clc
adc CURS_X
bcc @s
iny
@s:
; get byte from vdc mem
ldx #VDC_DATA_LO
stx VDC_INDEX
@L0: bit VDC_INDEX
bpl @L0
sta VDC_DATA
dex
tya
stx VDC_INDEX
sta VDC_DATA
ldx #VDC_DATA_RW
stx VDC_INDEX
@L1: bit VDC_INDEX
bpl @L1
lda VDC_DATA
jmp @return