fix cpeekc/cpeekcolor/cpeekrevers for atari 800
This commit is contained in:
35
libsrc/atari/cpeekc.s
Normal file
35
libsrc/atari/cpeekc.s
Normal file
@@ -0,0 +1,35 @@
|
||||
;
|
||||
; 2016-02-28, Groepaz
|
||||
; 2017-06-21, Greg King
|
||||
;
|
||||
; char cpeekc (void);
|
||||
;
|
||||
|
||||
.export _cpeekc
|
||||
|
||||
.include "atari.inc"
|
||||
|
||||
|
||||
_cpeekc:
|
||||
lda OLDCHR ; get char under cursor
|
||||
and #<~$80 ; remove reverse bit
|
||||
|
||||
;; convert internal screen code to AtSCII
|
||||
|
||||
tay
|
||||
and #%01100000
|
||||
asl a
|
||||
asl a
|
||||
rol a
|
||||
rol a
|
||||
tax
|
||||
tya
|
||||
eor intats,x
|
||||
ldx #>$0000
|
||||
rts
|
||||
|
||||
.rodata
|
||||
intats: .byte %00100000 ; -> %001xxxxx
|
||||
.byte %01100000 ; -> %010xxxxx
|
||||
.byte %01000000 ; -> %000xxxxx
|
||||
.byte %00000000 ; -> %011xxxxx
|
||||
@@ -1,35 +0,0 @@
|
||||
|
||||
.export _cpeekc
|
||||
|
||||
.import mul40
|
||||
.importzp ptr4
|
||||
|
||||
.include "atari.inc"
|
||||
|
||||
.segment "CODE"
|
||||
|
||||
_cpeekc:
|
||||
|
||||
lda ROWCRS
|
||||
jsr mul40 ; destroys tmp4
|
||||
clc
|
||||
adc SAVMSC ; add start of screen memory
|
||||
sta ptr4
|
||||
txa
|
||||
adc SAVMSC+1
|
||||
sta ptr4+1
|
||||
|
||||
ldy COLCRS
|
||||
lda (ptr4),y ; get char
|
||||
tax
|
||||
|
||||
;; convert to asc
|
||||
|
||||
;; FIXME: ugly hack here to make tetris fx work :=P
|
||||
lda #' '
|
||||
cpx #0
|
||||
beq @l
|
||||
lda #0
|
||||
@l:
|
||||
ldx #0
|
||||
rts
|
||||
8
libsrc/atari/cpeekcolor.s
Normal file
8
libsrc/atari/cpeekcolor.s
Normal file
@@ -0,0 +1,8 @@
|
||||
;
|
||||
; 2017-06-03, Greg King
|
||||
;
|
||||
; unsigned char cpeekcolor (void);
|
||||
;
|
||||
|
||||
.import return1
|
||||
.export _cpeekcolor := return1 ; always COLOR_WHITE
|
||||
18
libsrc/atari/cpeekrevers.s
Normal file
18
libsrc/atari/cpeekrevers.s
Normal file
@@ -0,0 +1,18 @@
|
||||
;
|
||||
; 2017-06-21, Greg King
|
||||
;
|
||||
; unsigned char cpeekrevers (void);
|
||||
;
|
||||
|
||||
.export _cpeekrevers
|
||||
|
||||
.include "atari.inc"
|
||||
|
||||
|
||||
_cpeekrevers:
|
||||
lda OLDCHR ; get char under cursor
|
||||
and #$80 ; get reverse bit
|
||||
asl a
|
||||
tax ; ldx #>$0000
|
||||
rol a ; return boolean value
|
||||
rts
|
||||
Reference in New Issue
Block a user