HispaMSX

Duda Basic, ¿alguien puede hecharme una mano?

2008-08-22 23:18:16
Buenas, estoy programando en basic, un programa para que detecte el
modelo de msx que se esta usando, el fabricante y la memoria ram que
dispone el msx.

Para el modelo lo tengo superado, uso esta lineas:

if PEEK(&H2D)=0 then print "MSX1" else if PEEK(&H2D)=1 then print
"MSX2" else if PEEK(&H2D)=2 then print "MSX2+" else if PEEK(&H2D)=3
then print "MSX Turbo R"

y funciona de maravilla, probado y detecta el modelo sin problemas.

Para el fabricante, buscando por internet, encontre esta pagina donde
te dice las ID del fabricante que usa la bios (creo que lo he dicho bien):

http://map.tni.nl/resources/msx_io_ports.php

Hay un programa en esa pagina en ensamblador (creo) para saber el id
del fabricante.Una vez, Jose Luis Tur Santolaria me hecho una mano
diciendome una linea de basic para detectar si un msx2+ era o no
panasonic por el tema del z80 en modo B, me dijo la siguiente linea:

20 OUT 64,8:IF ((INP(64) XOR 255)<>8) THEN PRINT "NO ES UN PANASONIC
2+" ELSE PRINT "ES UN PANASONIC 2+"

yo he adaptado esta linea para otros fabricantes, por ejemplo para un
sony:

20 OUT 64,8:IF ((INP(64) XOR 255)=17) THEN PRINT "Sony"

O para un panasonic:

20 OUT 64,8:IF ((INP(64) XOR 255)=8) THEN PRINT "Panasonic"

La cuestion que para el panasonic funciona de maravilla, lo detecta,
pero para los demas no, siempre me sale que:

(INP(64) XOR 255)= 0
 
0 lo tengo marcado como "desconocido", no se porque no me detecta el
fabricante, ¿es por el out 64,8? ¿que deberia poner para que detecte
si el ordenador es un sony o un philips por ejemplo?, ¿alguien me
puede hechar una mano?

Y por ultimo, llebo dandole vueltas y buscando en internet y no
encuento nada, ¿que deberia teclear en basic para saber cuanta memoria
Ram tiene el ordenador? me gustaria que al ejecutar este programa de
test me dijera si el msx que estoy utilizando tiene 64kb de ram, 128,
256, 512, 1 mega o lo que tenga.

Se que el programa en si es una chorrada y que soy un poco petardo
programando en basic, pero si alguien me hechara una mano le estaria
muy agradecido a ver si de una vez logro terminar el programita de
test ahora que tengo un poco de tiempo libe.

Un saludo y muchas gracias!



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