Made the CBM Pet kbrepeat() work on both 40-column and 80-column machines.

Put the kbrepeat() description in an alphabetical position in the function document.
This commit is contained in:
Greg King
2017-09-05 03:40:34 -04:00
parent 0deeccebf8
commit 3c0b8c4e86
3 changed files with 55 additions and 40 deletions

View File

@@ -1,14 +1,29 @@
;
; unsigned char __fastcall__ kbrepeat (unsigned char mode);
;
; 2017-06-16, Groepaz
; 2017-09-05, Greg King
;
.export _kbrepeat
.export _kbrepeat
.include "pet.inc"
_kbrepeat:
ldx KBDREPEAT ; get old value
sta KBDREPEAT ; store new value
txa ; return old value
ldx #0
ldx #>$0000
ldy SCR_LINELEN
cpy #40 + 1
bcc L1 ; branch if screen is 40 columns wide
ldy KBDREPEAT80 ; get old value
sta KBDREPEAT80 ; store new value
tya ; return old value
rts
L1: tay
lda KBDREPEAT40B ; get REPEAT-key flag (used by some editor ROMs)
lsr a ; move bit 0 into bit 7
ror a
ora KBDREPEAT40 ; combine with old key-REPEAT flags
sty KBDREPEAT40
rts