At your service @mrlou ,
CALL &A500 to set command (fully relocatable!!)
then use:
a%=0
|charcode,@a%,x,y
returns at a% = number of chr found else a%=0
org &A500
INITIALIZE:
LD HL,WORK_SPACE ;RSX power - up Routine
LD BC,RSX_TABLE
JP &BCD1
WORK_SPACE: DEFS 4 ;Area for Kernel to use
RSX_TABLE: DEFW NAME_TABLE
JP CHAR_CODE ;
NAME_TABLE: DEFB 'CHARCOD','E'+#80 ;
DEFB #00
CHAR_CODE
CP 3
RET NZ ;EXIT if not 3 parameters
LD D,(IX+5) ;
LD E,(IX+4) ; DE = ADR OF A%
LD H,(IX+2) ; H = X
LD L,(IX+0) ; L = Y
CALL &BB75
CALL &BB60
LD(DE),A ; STORE VALUE IN A%
RET