[cc65] kernal patch

From: MagerValp <MagerValp1cling.gu.se>
Date: 2004-08-16 15:40:21
I'm writing a kernal patch that replaces the keyboard input routine at
$ea87. I've set up a linker config like so:

MEMORY {
	[...]
	PATCH:	start = $ea87, size = $56;
}
SEGMENTS {
	[...]
	PATCH:		load = RAM, run = PATCH, type = rw, define = yes;
}

and my code starts like this:

	.segment "PATCH"

scankbd:
	lda #0
	sta $028d
	ldy #$40
	sta $cb
	sta $dc00
	lda $dc01
	cpx #$ff
	beq $eafb
	tay
	lda #$81
	sta $f5
	lda #$eb
	sta $f6

which causes ca65 to halt on "beq $eafb" with a range error. Adding

	.import __PATCH_RUN__
	.org __PATCH_RUN__

fixes the problem, but is there a more elegant solution?

-- 
    ___          .     .  .         .       . +  .         .      o   
  _|___|_   +   .  +     .     +         .  Per Olofsson, arkadspelare
    o-o    .      .     .   o         +          MagerValp@cling.gu.se
     -       +            +    .     http://www.cling.gu.se/~cl3polof/
----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo@musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.
Received on Mon Aug 16 15:40:25 2004

This archive was generated by hypermail 2.1.8 : 2004-08-16 15:40:34 CEST