Pero ahí lo que estas haciendo es lo que yo ya comentaba, exportar las funciones y variables definidas en assembler para que puedan ser usadas desde C.
Yo me refiero a lo contrario, saber cómo se le puede pasar una variable desde C a assembler, en tu ejemplo sería saber cómo en assembler manejas el parámetro unsigned char que le pasas en la función.
No se si me he explicado...
Pensaba que el ejemplo era claro,
la unsigned char ha sido pasada en el registro A.
Con fastcall es lo que sucede, y si el paremetro es 16bits te pasa en A(LSB) y X(MSB).
Para tener mas parametros, hay que usar popax o popa, para sacar los valores.
[code]
.import popax
.import popa
.import pushax
.import pusha
;----------------------------------------------
;void __fastcall__ c64_PrintTile(unsigned char, unsigned char, unsigned char)
;----------------------------------------------
.export _c64_PrintTile;
_c64_PrintTile: tax
lda _screen
sta $fc
lda _screen+1
sta $fd
jsr popa
cmp #$00
beq @cont
tay
@lp: lda $fc
clc
adc #$28
sta $fc
bcc @golp
inc $fd
@golp: dey
bne @lp
@cont: jsr popa
tay
txa
sta ($fc),y
rts[/quote]