Opened 7 years ago

Closed 6 years ago

#35 closed enhancement (worksforme)

UFAT32 should provide for the (undocumented) /P option in FORMAT.EXE to convert messages to MSG_ format

Reported by: Lewis Rosenthal Owned by:
Priority: Feedback Pending Milestone: Future
Component: utilities Version:
Severity: high Keywords:
Cc: ataylor

Description

Adding support for this parameter would make FAT32's format work with Arca Noae's new PMFORMAT which depends upon reading messages in MSG_ format.

Change History (14)

comment:1 Changed 7 years ago by Valery V. Sedletski

What is the MSG_ format? How should UFAT32.DLL pass messages to PMFORMAT? Is this /P parameter supported by HPFS and JFS format? Please, more details. Will it work then with IBM's PMFORMAT.EXE, or only with yours?

PS: I would suggest that UFAT32 should call some callback in PMFORMAT instead of calling printf()?

Last edited 7 years ago by Valery V. Sedletski (previous) (diff)

comment:2 Changed 7 years ago by Valery V. Sedletski

My guess is that UFAT32 should store messages in a .msg file or in binary, and PMFORMAT should listen a pipe. Then UFAT32 should put message number together with parameters to a pipe. This way it can pass messages to PMFORMAT. Am I right?

comment:3 Changed 7 years ago by Valery V. Sedletski

Heh, started

[c:\] format o: /fs:hpfs /v:os2boot /p

and see:

...
MSG_538,47
47% of the disk has been formatted.
MSG_538,48
48% of the disk has been formatted.
MSG_538,49
49% of the disk has been formatted.
MSG_538,50
50% of the disk has been formatted.
MSG_538,100
100% of the disk has been formatted.
MSG_635


Format completed successfully.


MSG_568,15144944
15144944 kilobytes total disk space.

MSG_537,15131076
15131076 kilobytes are available.

So, it writes "MSG_NNN,parameters" to stdout, and PMFORMAT reads it. No server pipe needed. Even, more interesting. Also, I looked into pmformat.exe and pmchkdsk.exe and see "/P" in the list of parameters. Also, I noticed that pmformat.exe contains strings "/FS:FAT", "/FS:UDF", "/FS:HPFS", "/FS:UDF". So, the list of FS'es is hardcoded. I wonder, why it is?

Also, I tried to start pmformat.exe and pmchkdsk.exe and they won't start, for some reason. PMDLL says, all DLL's are loaded. Tried to unlxlite both programs, but this does not help. WTF?

comment:4 Changed 7 years ago by Valery V. Sedletski

Ah, I need to specify parameters.

comment:5 Changed 7 years ago by ataylor

Yes, basically /P does two things.

First, it bypasses the prompt for volume label, which is useful (although not essential as this can be worked around by e.g. setting a blank label before running format).

Second, it causes the additional output of MSG_xxx,<parameters> for every normal string of output. The MSG_xxx numbers are message numbers from OSO0001.MSG. Known message numbers used by other IFS modules (and/or FORMAT itself) include:

 534  Formatting...
 538  %1%% of the disk has been formatted.
 568  %1 kilobytes total disk space. 
 537  %1 kilobytes are available.
 536  %1 kilobytes are in bad blocks.
 635  Format completed successfully.
1271  Warning!  All data on hard disk %1 will be lost!\r\nProceed with FORMAT (Y/N)?
1362  %1 bytes in bad sectors.
1293  The new type of file system is %1.
1507  The type of file system for the disk is %1.

There are a few others that seem to be specific to FAT12/16 and/or floppy formatting, but I think those are unimportant here. :)

comment:6 Changed 7 years ago by ataylor

Of course, using messages from another file is OK too, as long as I know where to go to find them. :)

comment:7 Changed 7 years ago by Valery V. Sedletski

2ataylor: Big thanks for your notes! How could I specify to use different message file, instead of oso001.msg (or use MSGSEG, embedded into the binary)?

PS: Is it possible to give me a test version of your new PMFORMAT, for testing with UFAT32.DLL?

comment:8 Changed 7 years ago by Lewis Rosenthal

Valery, if you will kindly email me (lgrosenthal AT arcanoae DOT com), I will get you access.

Thanks for all of the attention, here, too. FAT32 has come along really well in recent months. Great work!

comment:9 Changed 7 years ago by Valery V. Sedletski

Since r186, I added the /P switch to FORMAT and CHKDSK. So, it now works with Alex's PMFORMAT and IBM's PMCHKDSK. -- I tested both. PMFORMAT successfully reformatted the FAT32 disk again to FAT32. But this works only with default cluster size. If I specify /C:128 (128 sectors per cluster), or any other value, the cluster size, reported by CHKDSK, is not changed. From format.exe, it is formatted successfully with this cluster size value. PMCHKDSK checks the disk, chkdsk.log appears on it, and it finally shows the statistics (only total disk space and free disk space). Also, I should note that format to HPFS or JFS by PMFORMAT is unsuccessful to me. HPFS just hangs for a long time, and JFS shows a progress at the beginning, but at the end, it hangs.

The new r188 binaries are uploaded to FAT32 project page at http://trac.netlabs.org/fat32/.

comment:10 Changed 7 years ago by Valery V. Sedletski

Updated to r190

comment:11 Changed 7 years ago by Valery V. Sedletski

Priority: majorFeedback Pending

comment:12 Changed 7 years ago by Valery V. Sedletski

2lewisr & ataylor: Our FORMAT is extended to support formatting to FAT12/FAT16/exFAT now. So it supports formatting to any FAT filesystem. (The exFAT volume created still does not accepted by winxp, though, but the work is in progress and fat32.ifs mounts it ok). Are there any plans to test if it will work with new PMFormat? As I can see, a modification is needed to have an option to format to exFAT. (I could suggest to create a combo box with an option to add the FS name manually, if it is not already in the list. So, the FS list will be not hardcoded and it should support any future FS'es appearing later.). And how is the progress with new pmformat? Is it tested ok with fat32.ifs?

comment:13 Changed 6 years ago by Valery V. Sedletski

Support was added by me long time ago. No feedback too, so closing it.

comment:14 Changed 6 years ago by Valery V. Sedletski

Resolution: worksforme
Status: newclosed
Note: See TracTickets for help on using tickets.