1
0
mirror of https://github.com/cc65/cc65.git synced 2024-09-27 04:54:54 +00:00

Small size optimizations

git-svn-id: svn://svn.cc65.org/cc65/trunk@2746 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz 2003-12-13 15:16:11 +00:00
parent e25fefb2ca
commit 3b69c2fd21
2 changed files with 20 additions and 22 deletions

View File

@ -78,35 +78,34 @@ reu_params: .word $0000 ; Host address, lo, hi
;
INSTALL:
ldx #$00 ; High byte of return code
lda #$55
sta REU_REUADDR
cmp REU_REUADDR ; Check for presence of REU
bne nodevice
lda #$AA
asl a ; A = $AA
sta REU_REUADDR
cmp REU_REUADDR ; Check for presence of REU
bne nodevice
ldx #>(128*4) ; Assume 128KB
ldy #>(128*4) ; Assume 128KB
lda REU_STATUS
and #$10 ; Check size bit
beq @L1
ldx #>(256*4) ; 256KB when size bit is set
@L1: stx pagecount+1
ldy #>(256*4) ; 256KB when size bit is set
@L1: sty pagecount+1
ldx #$FF
stx curpage
stx curpage+1 ; Invalidate the current page
inx
ldy #$FF
sty curpage
sty curpage+1 ; Invalidate the current page
txa ; X = A = EM_ERR_OK
rts
; No REU found
nodevice:
lda #<EM_ERR_NO_DEVICE
ldx #>EM_ERR_NO_DEVICE
rts
lda #EM_ERR_NO_DEVICE
; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------
; UNINSTALL routine. Is called before the driver is removed from memory.

View File

@ -77,35 +77,34 @@ reu_params: .word $0000 ; Host address, lo, hi
;
INSTALL:
ldx #$00 ; High byte of return code
lda #$55
sta REU_REUADDR
cmp REU_REUADDR ; Check for presence of REU
bne nodevice
lda #$AA
asl a ; A = $AA
sta REU_REUADDR
cmp REU_REUADDR ; Check for presence of REU
bne nodevice
ldx #>(128*4) ; Assume 128KB
ldy #>(128*4) ; Assume 128KB
lda REU_STATUS
and #$10 ; Check size bit
beq @L1
ldx #>(256*4) ; 256KB when size bit is set
@L1: stx pagecount+1
ldy #>(256*4) ; 256KB when size bit is set
@L1: sty pagecount+1
ldx #$FF
stx curpage
stx curpage+1 ; Invalidate the current page
inx
ldy #$FF
sty curpage
sty curpage+1 ; Invalidate the current page
txa ; X = A = EM_ERR_OK
rts
; No REU found
nodevice:
lda #<EM_ERR_NO_DEVICE
ldx #>EM_ERR_NO_DEVICE
rts
lda #EM_ERR_NO_DEVICE
; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------
; UNINSTALL routine. Is called before the driver is removed from memory.