News for HD owners & diskROM question (Development Foros MSX)MSX Resource Center PassionMSX MSX2 contest           
                       
English Nederlands Español Português Russian                  
 Noticias
   Página principal
  Almacén de noticias
  Temas de noticias

 Recursos
   Foros MSX
  Artículos
  Analisis
  Informe de ferias/RUs
  Álbum de fotos
  Ferias y encuentros
  Encuestas
  Enlaces
  Buscar

 Software
   Descargas
  Tienda Online

 MRC
   Quiénes somos
  Únete a nuestro equipo
  Donar
  Políticas
  Contacta con nosotros
  Enlázanos
  Estadísticas

 Buscar
 
  

  

 Login
 

Login

Contraseña




¿Aún no tienes una cuenta? ¡Conviértete en miembro del MSX Resource Center! ¡Únete a nosotros!.


 Estadísticas
 

Hay 71 invitados y 1 miembro en línea

Eres un usuario anónimo.
 

Foros MSX


Foros MSX

Development - News for HD owners & diskROM question

Autor

News for HD owners & diskROM question

NYYRIKKI
msx master
Mensajes: 1509
Publicado: Octubre 11 2005, 11:52   

About 5 years ago MSX harddisk, that contained many of my sources was damaged by stupid software and after that it was lost in a move. When we collected stuff to the MSX Info Update 2005 meeting the harddisk was accidentaly found again from warehouse. This old 120MB harddisk was packed to gorilla looking hairy shoe to protect it from damage. Unfortunately this shoe did not protect it from moisture, so the harddisk was a bit rusty.

Last weekend I thought, that it has been in a dry environment for long enough to try it. I picked all fake gorilla hair out of it and connected it to the good old Gouda-SCSI interface. I must say, that I was quite a surpriced when the rattling started (<200MB disks are really not very quiet) and the device booted up without any problems! No data loss at all! Only boot sector was a bit damaged so, that it was not possible to boot from the disk, but when I booted from Compactflash card, I was able to copy all the stuff away from the HD partitions! Once again it is proved, that earlyer the hardware was made to last!

Most important thing I found was source of FDDEMU. I've now already fixed it to work with more than 2 disk interfaces. If you need this kind of version, mail me. Next I'm going to port it for CF/ATA-IDE interfaces. At the moment I have some difficulties to get 24bit absolute sector read routine to work under special memory layout I use in my program.

Now one question:

Is there a standard way to detect floppy disk ROM? At the moment I search all disk ROMs and try to find one, that starts with "ABoWve". I think it works pretty well in other than MSX tR in DOS2 mode.


Bart
msx professional
Mensajes: 646
Publicado: Octubre 11 2005, 12:07   
Wow, congrats with the recovery of your old HDD You really got lucky!
manuel
msx guru
Mensajes: 3441
Publicado: Octubre 11 2005, 15:53   
NYYRIKKI: if you make improvements, please keep supporting SCSI! I'm still using my cool Gouda Novaxis SCSI interface
zeilemaker54
msx lover
Mensajes: 97
Publicado: Octubre 12 2005, 08:20   
Old stuff seems to work for ages.....

The correct way (according to me) to detect diskroms, is to check the DRVINF table at &HFB21. This tables constists of 4 entries of 2 bytes each (so a maximium of 4 diskroms is supported). The first byte contains the number of drivers connected to the diskrom (zero means that entry and following entries are not used, eg end of table). The second byte contains the slotid of the diskrom.

Hope this helps.....

NYYRIKKI
msx master
Mensajes: 1509
Publicado: Octubre 12 2005, 13:15   
manuel: Hey, it seems, I have at least one (potential?) user for this program. Currently I'm doing separate versions for SCSI and IDE, but if it is not too hard, I'll combine them to one program later. That way it is more nice to use... expetially if you use both interfaces at a same time. So don't worry, I have no plans to abandon SCSI support.

zeilemaker54: Yup, that is how I'm going trough disk ROMs. The problem is, wich of the 4 disk ROMs is the floppy drive controller.

zeilemaker54
msx lover
Mensajes: 97
Publicado: Octubre 12 2005, 14:34   
@NYYRIKKI no easy solution to that problem.

may be you could do a call to the DSKIO of the diskrom to read sector 0 with the following routine:

ld a,localdriveid
ld b,1 ; just 1 sector
ld de,0 ; sector 0 the bootsector
ld hl,transferadres
ld c,0 ; mediadescriptor
call DSKIO

the trick is here to use 0 as mediadescriptor, which should return an error 12 (other error) in case of a floppydriver. most harddiskdrivers support the 23 bit sectornumber method (eg bit 22-bit 16 of sectornumber in register C) and should NOT return an error 12.

An other solution could be to search for the jumptables of the various harddiskcontrollers. most interfaces have this, and also have a method how they should be searched for.

Good luck...
NYYRIKKI
msx master
Mensajes: 1509
Publicado: Octubre 12 2005, 14:57   
Your method does not work with Novaxis ROM, because it has only 16bit sector number support. I think current method (comparing "init" and "call" address) is more "safe". I have now compared these addresses on every diskROM delivered with BlueMSX, and it seems to work. (MSX tR can be handled as exeption)

I don't like the later idea, because new interfaces may appear in future.

BiFi
msx guru
Mensajes: 3142
Publicado: Octubre 12 2005, 15:03   
in a HD interface there are 2 types of sector reading:

  1. logical device access (4010h)
    this type uses a 16-bit sector number and reads the sector from a partition... it's used by normal programs
  2. physical device access (7F89h iirc)
    this type uses at least a 24-bit sector number and reads the sector from the device... it's used by interface specific tools, to read the partition table for example

Guillian
msx professional
Mensajes: 631
Publicado: Octubre 12 2005, 15:48   
NYYRIKKI: In DOS2 mode you can try to use format function (#67) using "return choice string" option. If you get a NZ or HL = 0 then you can't format it, so probably it is NOT a floppy disk drive or Novaxis. When you find them, then check the string in #7f80 (diskROM slot is in B register) and compare it with "HD#" to check whether it is the floppy drive or not.

Perhaps this is not the right way of doing it, but it should work.
AuroraMSX

msx master
Mensajes: 1247
Publicado: Octubre 12 2005, 16:10   
But the most interesting question is: what did you do to the gorilla-lookalike?
NYYRIKKI
msx master
Mensajes: 1509
Publicado: Octubre 13 2005, 08:45   
Guillian: "Return choice string" asks, if you want to write protect a partition in Novaxis. "HD#" check does not usually work with BERT interfaces, I'm not sure about IDE, MegaSCSI etc.

I would still like to detect FDD controller, not detect ones, that are not FDD controllers. That way I think the system is more future compatible.


msd
msx professional
Mensajes: 612
Publicado: Octubre 13 2005, 12:01   
He NYYRIKKI, I use the program to on novaxis. So I'm your second user
Guillian
msx professional
Mensajes: 631
Publicado: Octubre 13 2005, 12:29   
NYYRYKKI:They way I said is the one I used for detecting the FDD controller in Sonyc and seemed to work ok. So the game could be installed on HDD and the copy protection cheched in the floppy disk. It works with MegaSCSI and as far as I now it also works with Novaxis.

But as I said, I don't know whether it is the right way of doing it and/or fully compatible.
SMDNearDark
msx user
Mensajes: 44
Publicado: Octubre 28 2005, 23:33   
The best way is to check the Address &HF348 it contains the slot of the real msx diskrom
(not the HDD controllers)

HDD controllers will be on the addresses from &HFB21

&HFB22 slot address of first controller
&HFB24 slot address of second controller
&HFB26 slot address of third controller
&HFB28 slot address of fourth controller

If you have a megascsi and ata-ide controller the floppy controller slot is saved at &HFB26



zeilemaker54
msx lover
Mensajes: 97
Publicado: Noviembre 15 2005, 12:27   
A quick look at all disassembled diskroms I have, may be the following method is the best:

look at &H7FE0 for the text "MEGASCSI"
if found, megascsi hd (you can use MEGASCSI BIOS calls)
look at &H7F80 for the text "HD!"
if found, first generation scsihd (you can use MSX-SCSI BIOS v1.x calls)
look at &H7F80 for the text "HD#"
if found, second generation scsihd (you can use MSX-SCSI BIOS v2.x calls)
look at &H7F80 for the text "ID#"
if found, sunrise ide (you can use some of the MSX-SCSI BIOS v1.x calls)
else non-hd controller

 
 







(c) 1994 - 2008 Fundación MSX Resource Center. MSX es una marca registrada de MSX Licensing Corporation