HispaMSX

Re: [hispamsx] loaders

2004-05-24 16:28:18
Agrego, antes que me reten, si lo hacen para msx1 y quieren guardar el BIN
en 0000-3FFF, hay que agregar 2 RRCA donde los haya, y cambiar los AND &HF3
por AND &HFC

----- Original Message -----
From: "Flyguille" <Flyguille(_en_)arnet(_punto_)com(_punto_)ar>
To: <hispamsx(_en_)yahoogroups(_punto_)com>
Sent: Monday, May 24, 2004 11:17 AM
Subject: Re: [hispamsx] loaders


hablo de juegos de msx2 corriendo en msx2.... y la posición de la RAM no
es
standard de todos modos

no, por si sola no es razón, son muchas cosas que me llevaron a crear el
mnbios

Aparte, te cuento, que en TODOS los MSX, sea msx1, 2 o TR, es facilísimo
averiguar donde está la RAM

SIMPLEMENTE

SLOT= (INP(&HA8) AND &HC0) \64

más facil que eso es imposible

y en cuanto a sub-slot

SLOT=((PEEK(-1) XOR 255) AND &HC0)\64

puesto que la última página siempre tiene seleccionada la RAM, el registro
FFFF al que accedemos es el del slot donde está la RAM y no otro

Eso, es mucho mejor porque es universal, mucho mejor que toda la porquería
que estube vieno..

como verán, no hay que ingeniarselas, ni nada, los datos simplemente están
ahí.

Este loader lo puse para alguien hace unas semanas en el MRC..... es lo
mejor para ponerlo en un bload.

Y funciona en todas las MSX del mundo


Universal without slotting sensitive.

DI
IN A,(0xA8)
PUSH AF

AND 0x30
RRCA
RRCA
LD B,A
IN A,(0xA8)
AND 0xF3
OR B
OUT (0xA8),A

LD A,(0xFFFF)
CPL
PUSH AF
AND 0x30
RRCA
RRCA
LD B,A
LD A,(0xFFFF)
AND 0xF3
OR B
LD (0xFFFF),A

IN A,(0xFD)
PUSH AF
LD A,0xXX       ------< page number where load the bin.
OUT (0xFD),A ----> this block only for MSX2 or upper

LD HL, 0x8000
LD DE, 0x4000   ----> address destiny, change it if the game is for MSX1
and
you want to use the page 0
LD BC, 0x4000
LDIR

POP AF
OUT (0xFD),A -----> this block only for MSX2 or upper

POP AF
LD (0xFFFF),A

POP AF
OUT (0xA8),A
EI
RET


This is the more perfect loader, for work in all world msx.

At following the coding....all in HEXA

F3, DB, A8, F5
E6, 30, 0F, 0F, 47, DB, A8, E6, F3, B0, D3 , A8
3A, FF, FF, 2F, F5, E6, 30, 0F, 0F, 47, 3A, FF, FF, E6, F3, B0, 32, FF, FF
DB, FD, F5, 3E, xx, D3, FD <---- only for msx2 or upper
21, 00, 80, 11, 00, 40, 01, 00, 40, ED, B0
F1, D3, FD   <---- only for msx2 or upper
F1, 32, FF, FF
F1, D3, A8, FB, C9




tHE CODING and routine I DO IT A HAND, MAYBE WRONG , just need a test.

Please tellme, if it work


AND THIS WORK WITH ALL INPUT DEVICE LIKE CASSETE


----- Original Message -----
From: "Armando Perez Abad" <armando(_en_)g2k(_punto_)es>
To: <hispamsx(_en_)yahoogroups(_punto_)com>
Sent: Monday, May 24, 2004 10:51 AM
Subject: Re: [hispamsx] loaders


Flyguille wrote:

ayer me estube arreglando los loaders de juegos que me he bajado de
funet hace un par de años atrás para hacerlos rular

es increiblemente estúpida la programación que usan los crackers....

Si. Resulta que en MSX1 no es tan facil averiguar donde esta la memoria,
si no haces un test.

La memoria no es mapeada, no sabes donde esta, y te las tienes que
ingeniar para averiguarlo. Coincido que el 90% son una chapuza. Y que no
funcionan en MSX2 parriba.

Pero tambien es cierto, que en MSX1 no es tan sencillo. Se tienen que
recorrer todos los slots y subslots y determinar donde tienes memoria,
para ponerla en la pagina 0 y 1, que es loq ue buscan el 99% de juegos
de casette para poder usar 64k de RAM.

En cualquier MSX ocn unidad de disco ya lo tienes mas sencillo, puesto
que las variables del DOS te dicen donde tienes memoria para cada pagina
(0F341h en adelante).

Pero eran otras historias, de hace muchos muchos años. Y no creo que den
razon de ser para el MNBIOS.

Yo estuve un tiempo arreglando muchos de estos loaders, por peticion del
Imanok con un cargador generico que te buscaba la ram y te ponia las
variables en el formato del 80% de esos cargadores (que eran el mismo).

La verdad , muy malos todos los loaders en general.. salvo algunos
que multiplicaban a PEEK(-1)*1.0625 o algo así. como se las
ingeniaron para hacer el equivalente a .... LD a,(FFFF), CPL, AND 30,
RRCA RRCA, LD B,A ..... y duplicar la selección de la página 3 o 2 en
1....


Tete, creo que estas patinando. Puesto que no tiene por que tener la RAM
en el mismo slot el MSX. Eso que haces en un MSX1 puede fallar. Pues no
existe en la norma, en ningun sitio, donde te diga que es obligado que
la ram este siempre en el mismo slot.

Precisamente POR ESO hacian algunos loaders los test, por que en algunos
modelos de MSX1 los 64k (por los que mas se hicieron) no estaban en el
mismo slot/subslot, y tenian 16k aqui, 16 alli y asi.

Creo que tu lo ves todo desde la perspectiva MSX2, y aqui es mas facil
acertar con tu formula, pero aun asi podrias patinar.

Eso si, no estaria de mas que se juntasen en algun sitio versiones 100%
compatibles con todos los MSX de esos juegos, pero ya te digo, es una
faena, pues hay que hacerlos uno a uno.

--

Un saludo,

Armando Pérez Abad
HELIO YAGO, S.L.
http://www.g2k.es
Tlf: (96) 363 43 17
Fax: (96) 390 27 17



*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

Para visitar tu grupo en la web, accede a:
 http://es.groups.yahoo.com/group/hispamsx/

Para cancelar tu suscripción en este grupo, envía
un mensaje en blanco a:
 hispamsx-unsubscribe(_en_)yahoogroups(_punto_)com

El uso que hagas de Yahoo! Grupos está sujeto a
las Condiciones del servicio de Yahoo!:
 http://es.docs.yahoo.com/info/utos.html




*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

Para visitar tu grupo en la web, accede a:
 http://es.groups.yahoo.com/group/hispamsx/

Para cancelar tu suscripción en este grupo, envía
un mensaje en blanco a:
 hispamsx-unsubscribe(_en_)yahoogroups(_punto_)com

El uso que hagas de Yahoo! Grupos está sujeto a
las Condiciones del servicio de Yahoo!:
 http://es.docs.yahoo.com/info/utos.html



<Anterior en la conversación] Conversación actual [Siguiente en la conversación>