Booting from Disks Problem

Started by Jamie, February 13, 2012, 11:24:39 PM

Previous topic - Next topic

Jamie

I've got a bit of a strange problem that i'm having a bit of trouble with. I've got a Compact with an external SCSI hard drive with eidis's image running on it. This works absolutely fine and is fantastic. The problem i have however is that i can't boot certain games from disk without the hard drive being attached. It seems to be down which human.sys version the game has. Games with human.sys 3.02 seem to work fine, which incidentially is what the hard drive is ruuning on, however anything else just gives me a blank screen or gets part way through the config.sys and stops. I can make alot of games work by using editdisk and moving the human.sys from a working game to a non working one, not all though. The strange thing is though, when the hard drive is attached all disks boot without issue.

I'm guessing the machine is using the hard drive for something on boot even when booting disks, but i can't understand why the disks with the same system as the hdd work when all others don't when the hdd isn't on. Another strange thing is that i don't get the little disk icon pop up when nothing is in the drive, i just get a blank screen.

In switch.x my boot is set the STD. I've tried clearing the SRAM and now i'm out of ideas.

Does anyone have any suggestions on things i could try?

lydux

Hi Jamie,

Strange thing yes... I've no idea of what's going on but I would like you to try something : when pressing the interrupt button, it should show you a white popup with the value of SR and PC. Try this without the hard drive, when it freeze (with or without a disk), and as possible with a cleared SRAM.
Hope this popup show up... If so, press multiple times the interrupt button and write down different values of PC.
This could give me some hints.

Jamie

#2
If i boot the machine with no disk and no HDD i get the following message when i press the interrupt button:



When I try to boot Gradius II without the HDD attached, it freezes just after the human.sys loads, if i press the interrupt button i get the following values:

Interrupt (SR=$2100:PC=$00FCC069A)


eidis

 Hi Jamie,

Sorry for the late reply. Have you replaced capacitors in your X68000 ? Strange and unexplainable errors are often linked to them.

Keep the scene alive !
Eidis
X68000 personal computer is called, "X68K" or "no good good" is called, is the PC that are loved by many people today.

lydux

#4
Ok, sorry for the late reply.
I've finally spend some time the last week looking to your problem.
Yes, It seems it get lock into the internal scsi rom (all PC values that start with $00FC#### is the internal scsi rom).

First, the access to the scsi chain is not due to human68k v2 (checked by HUMAN.SYS disassembly), but more to the presence of SCSIDRV.SYS in CONFIG.SYS ! You can safelly remove these lines as long as your games have nothing to deal with scsi. Allthough, this will not fix your problem.

So, I also have a Compact and have dumped this internal scsi rom, disassemble it and check were these PC values point to.
From what I could see, a possible reason of what occurs is that the cpu request your scsi controller for how many bytes were written/readen to or from the drive. The problem is that... you don't have a drive !
Unless you have a different Compact model than me (at least, a different internal scsi rom, which is unlikely probable), your SCSIDRV.SYS may assume there is a drive. This assumption were given earlier by the scsi controller itself.

Tell us more about your hardware. Any mod done on internal scsi terminator block ?

I'm thinking about the blue resistors network in this card. Any missing or broken resistors here will not end-up the scsi chain and may result into such behavior.

But that just an hint of what's going on... Having more PC values could help me (2 is not enough). Wait a little more after the "human68k for x68000 blah blah" (let's say 15sec) and when on the white popup, you can press the "R" letter to resume program execution, then press Interrupt, the PC value should have changed, then press "R" again, Interrupt,... and so on.


lydux

Hey ! Just figure this out !
There is a fuse on this board ! It's located on top of the above picture ("F601").
You should check it too, as it seems to provide the neccessary voltage for these resistors network to work as pull-up.