Karoshi MSX Community

MSX Actualidad => General => Mensaje iniciado por: Ramones en 18 de Diciembre de 2006, 12:18:44 am



Título: ODO V02
Publicado por: Ramones en 18 de Diciembre de 2006, 12:18:44 am
Hola a todos.

Como no tenía mucho que hacer este fin de semana, he estado terminado una utilidad que llevaba tiempo persiguiendo. Quizá exista algo parecido, pero no he sido capaz de localizar algo igual.

ODO es un cargador de Roms de 48k y menos sin mapper. Hasta ahora no conocía ningún programa que cargase en memoria y ejecutase Roms de 48k, como The Cure o Universe Unknown y por eso me he decidido a realizarla. Igualmente había algunas Roms que daban problemas con las Flash convencionales, puesto que se ejecutan en la página 0 del Z80 (Hero, Crazy Train...). Y sobre todo algunas de las aquí presentadas como BASIC que tambien son huesos duros para hacer funcionar.

Así pues he intentado dar cabida a todas en esta utilidad.

Por supuesto, no es perfecta. Solo funcionará bien para ordenadores con 64k de Ram en un mismo slot (lo cual será todos los que puedan ejecutarlo ya que es una utilidad para DOS1).

Tampoco funcionan todas desde el cargador, así que le he añadido una opción para que haga un reset automaticamente e intente ejecutar la Rom en memoria.

Si mantenemos pulsado CTRL cuando se ejecuta el programa se ejecutará un reset automáticamente, menos para las Roms de 48k. Roms raritas como "Manicomio" la he conseguido hacer funcionar así. Ejecutando, reseteando y desconectando el interfaz de disco (MegaSCSI) . 

También está probada en un MSX1 con una unidad de disco externa. LoadRom no funcionaba en MSX1, así que los MSX1users podrán disfrutarla.

Es compatible con MSXDOS2, así que también lee sin problemas Roms desde un CDRom o similar.

En fin, espero que sea útil para los desarrolladores de Roms "raritas". :)

Podeis descargarlo de:

http://www.kurarizeku.net/ftp/ODOV02.LZH




Título: Re: ODO V02
Publicado por: jltursan en 18 de Diciembre de 2006, 10:36:36 am
¿Y no se podría incorporar también algún mecanismo para inicializar el sistema de disco independientemente de la ROM?; eso sería muy útil precisamente para este tipo de ROMs como el manicomio, en las que en algún momento se graba la situación y tal...


Título: Re: ODO V02
Publicado por: Ramones en 18 de Diciembre de 2006, 11:11:13 am
¿Y no se podría incorporar también algún mecanismo para inicializar el sistema de disco independientemente de la ROM?; eso sería muy útil precisamente para este tipo de ROMs como el manicomio, en las que en algún momento se graba la situación y tal...

En principio, cualquier Rom que espere la inicialización de disco debe de funcionar. Por ejemplo, EggerLand, se engancha en 0FEDAh cuando arranca, como cualquier Rom que deja que se inicialice la disquetera.

Y estas funcionan directamente sin forzar el Reset.

El problema del manicomio es otro, y no he sabido solucionarlo. El juego se ejecuta como una Rom normal, no Basic, y su propio código después posiciona el BASIC y ejecuta el programa del mismo. En este punto es donde suele "morir" el programa (justo despues de la introducción de los ojos).

Como te digo, si la cargo en memoria, hago reset y deshabilito el interfaz de disco, funciona, y sigue quedando la disquetera activada.



Título: Re: ODO V02
Publicado por: Jon_Cortazar en 18 de Diciembre de 2006, 01:49:20 pm
Pues ahora mismo no puedo probar el programa, Ramones, pero suena muy interesante!. Gracias por compartirlo con nosotros  ;)


Título: Re: ODO V02
Publicado por: jltursan en 18 de Diciembre de 2006, 08:16:17 pm
Yo es que lo de la inicialización del disco lo tengo todo en teoría, nunca he probado :P; pero la verdad es que la chorradilla vendría muy bien para un montón de proyectillos. :)

Te iba a preguntar que significaba el nombre; pero mejor me callo no sea que me lleve pa casa parte del mismo... ;D


Título: Re: ODO V02
Publicado por: Ramones en 18 de Diciembre de 2006, 08:43:01 pm
Yo es que lo de la inicialización del disco lo tengo todo en teoría, nunca he probado :P; pero la verdad es que la chorradilla vendría muy bien para un montón de proyectillos. :)

Pues es una chorrada como un piano. Puedo pegarlo aquí, como en el foro de desarrollo.

A ver ...  te pego pero así un poco revuelto:


Código:


initdsk:
di
call search_slot
ld h,a
ld l,0F7h
ld (HSTKE),hl
ld hl,initmaindskret
ld (HSTKE+2),hl
ret

// -----------------------
// SEARCH_SLOT
// Busca slot de nuestro rom
// -----------------------

search_slot:

call 0138h
rrca
rrca
and 3
ld c,a
ld b,0
ld hl,0FCC1h
add hl,bc
ld a,(hl)
and 080h
or c
ld c,a
inc hl
inc hl
inc hl
inc hl
ld a,(hl)
and 0Ch
or c
ld h,080h
ld (slotvar),a
ret




Y ahora te explico. Aunque quizás lo mejor es poner un ejemplo completo en el área de desarrollo. HSTK, es 0FEDAh.

Y bueno, ese código lo tienes que poner en el inicio de tu Rom.

Una vez ejecutado, al hacer el ret, devuelves el control al MSX, así que si vas a usar esto no hagas al inicializar el típico

di
im1
ld sp,0F380h

puesto que joderás la marrana.


initmaindskret, es la dirección a la que quieres que te devuelva el control el MSX, una vez ha recorrido todos los slots, o lo que es igual, que ha inicializado la disquetera.

En ese sitio, compruebas si HPHYD (0FFA7h) tiene un C9h (un ret). De ser así, no hay disquetera en ese ordenador. Si tiene un valor, tiene disco, y ya puedes implementar tu codigo de acceso al mismo. :)

Esto es así por encima, pero creo que podría dejar un ejemplo completo.

Te iba a preguntar que significaba el nombre; pero mejor me callo no sea que me lleve pa casa parte del mismo... ;D

A ver, esto viene de lejos. Cuando hicimos Manuel y un servidor el OPF no sabíamos que nombre poner. Como Manuel es "muy del norte" siempre estaba con lo de "os voy a dar Ostias como Panes". Y de ahí lo de Ostias como Panes Flash Rom Loader.

Y eso, para seguir con los nombres como no tengo mucha imaginación, pues otra frase suya. Ondonadas de Ostias, aunque realmente Hondonada (de hondo) es con H, y Hostia con H también ya está aceptada como bofetada y demás (aparte del circulito y oblea sagrado para los católicos).

Pero realmente creo que sería Andanadas de Hostias, pero ADH como nombre de programa me quedaba feo. XD

Ale, explicación friki al canto. :P








Título: Re: ODO V02
Publicado por: pitpan en 18 de Diciembre de 2006, 09:45:22 pm
jODO con la explicación  ;D