"Disk offline" despite the drive working?

By HarryCane

Supporter (2)

HarryCane's picture

10-11-2016, 19:35

Hello! I recently brought an MSX2! The particular model being a Philips VG-8235 (64k rom, 256k ram, 360k Disk Drive Capacity) and as such I have been lurking around these forums, hunting for info as I repaired the unit (Replaced the Floppy drive, repaired the exterior case) and I have got the unit working perfectly!

But I have encountered one little problem. When ever I attempt to load a game from floppy (so far I have tested Metal Gear 1/2, Fantasy Zone 2, Contra and Gladius) I can't get anything to load...
I quickly realized that most of the Roms I have acquired lacked a Autoexc.bat file and as such wouldn't auto start at boot. So I attempted to load the files direct from disks post boot... But when ever I attempt to access any files I get the error "Disk offline".
In the end I have become so frustrated I attempted to just install SymbOS so I could deal with a 'modern' GUI opposed to DOS but again I can't access any files to initiate the installation...
I'm kinda stuck. lol

I know the drive is functional as I can run the 'call format' command and it proceeds to successfully format's my floppy disks (See this image) and I have been using Lex Lechz Disk-Image to format the floppy's and write the files (1side, 80 track, 9 sectors/track 360KBytes. MSX-DOS boot sector and MSX-DOS 2.2 Sector. I am switching between both formats)

So what do I need to do to get my system to access files?
The drive works, I just can't utilize it for some reason ;(

I apologize if this is a super novice question or if I have posted it in the wrong board. I just can't seem to find a solution to this as all the guides I find refer to emulation opposed to real hardware. So I am rather stuck :-?

Thank you in advance for any responses! =D

Login or register to post comments

By tvalenca

Paladin (728)

tvalenca's picture

10-11-2016, 20:08

Being -as you said- your computer equipped with a 360k disk drive, this means it is a single side drive so it can read only single side disks. you can't read 720k formatted (double side) disks.

By Jipe

Paragon (1366)

Jipe's picture

10-11-2016, 20:12

normal FORMAT is A:
why do you use dive B format ?

have replace the diskrom by a 8245 version ?

the memory of a 8235 is only 128K RAM the other 128K is the video ram VRAM

many megaroms on floppy required 256k of RAM

By HarryCane

Supporter (2)

HarryCane's picture

10-11-2016, 21:52

I know the normal format is A but when I wired up the replacement Floppy drive it switched over to B for unknown reasons, I am also aware of the VRAM taking up half of the available memory. (It's rather similar to the CD32 in that respect)

The replacement Floppy drive is a generic Alps model, (Co DF354H(121G) Black 3.5" 1.44MB FDD Floppy Disk Drive) and I have been writing all of my disks to be single side due to the Limitations of the MSX2.
But from the sounds of it I need to invest in a different type of Floppy disk other then the 3M IBM 1.44MB ones I am currently using?

By Manuel

Ascended (15536)

Manuel's picture

10-11-2016, 23:45

You should at least put some dark tape over the "HD hole" of your floppy disk.

Did you try saving something to the floppy disk after formatting it? And loading it back?

E.g.:

10 PRINT "Hi there!"
20 GOTO 10
SAVE"B:TEST.BAS"

and then reset the MSX and try

RUN"B:TEST.BAS"

By Meits

Scribe (5439)

Meits's picture

11-11-2016, 00:38

And use dcopy on the dosprompt of your pc to write 360KB images to your diskdrive. Disk Manager has bugs when it comes to that.
See this very recent facebook thread

By Louthrax

Prophet (2067)

Louthrax's picture

11-11-2016, 01:42

Problem with dcopy is that it only works on WindowsXP.

The only way I've found to write back a 360KB floppy to a disk on a Win7 and above PC is to first expand the 360KB disk image to 720KB (while still keeping it single-sided). I've created this Python script for that:

#!/usr/bin/env python

import sys
import os
import array

sys.argv.pop(0)

trackSize = 9*512
trackCount = 80

sourceFileName = sys.argv.pop(0)

emptyTrack = array.array('B',(255 for i in range(0,trackSize)))

fileName, fileExtension = os.path.splitext(sourceFileName)
targetFileName = fileName+"_720"+ fileExtension

with open(sourceFileName, mode='rb') as sourceFile:
	with open(targetFileName, mode='wb') as targetFile:
		for track in range(0,trackCount):
			trackContent = sourceFile.read(trackSize)
			targetFile.write(trackContent)
			targetFile.write(emptyTrack)
		targetFile.close()
	
	sourceFile.close()

Save that to a sstods.py file and invoke it with:

python sstods.py "Last Mission, The (1987)(Opera Soft)(ES).dsk"

(assuming you have Python 2.x installed on your machine, have not tried it with Python 3.x)

You'll get a "Last Mission, The (1987)(Opera Soft)(ES)_720.dsk" file that you can write back to a floppy with DiskWrite (definitively do not use DiskManager).

Even if the file is 720KB big, it is still single-sided (expanding it to 720KB only "tricks" the disk writer to work correctly).

Edit: if your drive is single sided, you'll have to format the disk on your PC (not MSX), with this command:

format A: /T:80 /N:9

(this works on Windows 7 and my USB floppy drive).

Edit: maybe we should create a Wiki with these instructions, questions about creating disk images are frequent on the forum (yeah, I know, I could do it myself...)

By Jipe

Paragon (1366)

Jipe's picture

11-11-2016, 12:08

the MSX boot on drive A:
change the strap solder on your ALPS
you have a little square windows with 3 straps : DS1 DS0 DSN
desold DS1 and sold DS0

By RetroTechie

Paragon (1563)

RetroTechie's picture

12-11-2016, 14:31

Welcome here, HarryCane! Smile

HarryCane wrote:

I know the normal format is A but when I wired up the replacement Floppy drive it switched over to B for unknown reasons (..)

Unknown to you. Wink There's 3 issues here:

a) The drive select (A/B). This is basically a wiring problem. You can fix by changing the cable such that /DS0 signal from MSX activates /DS1 on floppy drive. For example if the floppy drive doesn't have a DS0/DS1 setting/jumper.
But... luckily your drive does seem to have that. So another route is take out a soldering iron, and change DS1 to DS0 solder pad on the drive itself. See here for details.

b) The /RDY (Ready) signal. Seems this depends on exact 8235 model, according to service manuals:
VG8235/00/02/19 have /RDY signal routed to the FDC (floppy controller). In this case you'd have to change wiring on the MSX's board (or on the connector) to hard-wire that signal as always-"Ready". Or see if you can pull that signal from the drive (which seems possible with this drive too, see above).
Whereas VG8235/20/.../39 seem to not use the /RDY signal (like NMS8245), so nothing needs doing there. What model VG8235 you have?

So it seems your floppy drive is pretty 'easy' to wire up hardware wise. Which leaves:

c) DiskROM in these machines can deal with 720K drives, but assumes that's only B: (external drive) and internal A: drive is 360K. Of course that assumption becomes wrong when A: drive is changed for a 720K one...
Fix is to change diskROM for another one (as said above). Usually this involves (someone who has) an EPROM programmer.

And yeah, good advice to disable permanently the DD/HD sensor in the drive, such that drive electronics always sees "DD" no matter what type floppy you put in.