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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user