Se me olvidaba algún detalle:
Buenas. Alfonso ya te ha dado las pistas, pero sí, por ahi van los tiros.
> org 4000h
> DB 41h,42h
> DW start
> DB "MiprimeraROM"
>
>start di
> ld HL,RUTIME ; Cambio del interrup handler por RUTIME
> ld (38h+1),HL
> ld A,0C3h
Aquí estás mandando la instrucción JP RUNTIME
Para que te funcione, tienes que mandar 0CDh, es decir, CALL RUNTIME
Y por supuesto, en RUNTIME, hacer todas las cosas que hacer salvando antes
los registros y recuperándolos después desde la pila. Y para volver al
programa, bastará un RET normal y no un RETI.
Creo que con eso queda todo dicho!
> ld (38h),A
> ei
>main jp main ; No sale.
El código es impecable, pero estás tratando de escribir en la dirección
$0038, que en el momento en que se carga la ROM están mapeadas como BIOS y
no como RAM. Si ejecutaras un programa así desde BASIC tampoco te
funcionaría.
Como dice Alfonso, cambia esa dirección por uno de los punteros de
interrupción de la RAM alta de sistema. Puedes utilizar el hook de teclado,
por ejemplo, que suele ser lo más habitual. Con ese pequeño cambio, todo te
funcionará como la seda.
De todos modos, pasar de .COM (todo RAM) a .ROM (casi todo ROM), tiene sus
problemillas, sobre todo con la gestión de las variables. Tenlo en cuenta.
Un saludo,
Edu R.
_________________________________________________________________
La información más fresca desde diferentes puntos de vista en la Revista de
Prensa de MSN. http://es.newsbot.msn.com/
*HispaMSX. La mailing-list de MSX en castellano*
Para cualquier duda: hispamsx-owner(_en_)yahoogroups(_punto_)com
Web de lista: http://www.hispamsx.org
Enlaces a Yahoo! Grupos
hispamsx-unsubscribe(_en_)yahoogroups(_punto_)com
http://es.docs.yahoo.com/info/utos.html
_________________________________________________________________
Acepta el reto MSN Premium: Correos más divertidos con fotos y textos
increíbles en MSN Premium. Descárgalo y pruébalo 2 meses gratis.
http://join.msn.com?XAPID=1697&DI=1055&HL=Footer_mailsenviados_correosmasdivertidos