Korg 01/W disk layout


Antonio
 

Hi.

Based on my experiments some weeks ago, the layout for a 01W disk is as follows:

  Start     Size Content
    0x0      512 Disk header
  0x200     6656 empty (AAAA...)
 0x1c00     2048 List of files present
 0x2400     1024 empty (AAAA...)
 0x2800     2000 File A Combi A00-B99 names (10 bytes each) redundant?
 0x2fd0       48 padding?
 0x3000     2000 File A Prog A00-B99 names (10 bytes each) redundant?
 0x37d0       48 padding?
 0x3800     1000 File B Combi A00-B99 names (10 bytes each) redundant?
 0x3fd0       48 padding?
 0x4000     1000 File B Prog A00-B99 names (10 bytes each) redundant?
 0x47d0       48 padding?
 0x4800     2692 File A Global?
 0x5284    12800 File A Combi A00-A99 data (128 bytes each)
 0x8484    17200 File A Prog A00-A99 data (172 bytes each)
 0xc7b4       76 empty (0000...)
 0xc800     4096 empty (AAAA...)
 0xd800     2692 File A Global? repeated?
 0xe284    12800 File A Combi B00-B99 data (128 bytes each)
0x11484    17200 File A Prog B00-B99 data (172 bytes each)
0x157b4       76 empty (0000...)
0x15800     4096 empty (AAAA...)
0x16800   138240 empty (AAAA...)
0x38400     2692 File B Global?
0x38e84    12800 File B Combi A00-A99 data (128 bytes each)
0x3c084    17200 File B Prog A00-A99 data (172 bytes each)
0x403b4       76 empty (0000...)
0x40400     4096 empty (AAAA...)
0x41400     2692 File B Global? repeated?
0x41e84    12800 File B Combi B00-B99 data (128 bytes each)
0x45084    17200 File B Prog B00-B99 data (172 bytes each)
0x493b4       76 empty (0000...)
0x49400     4096 empty (AAAA...)
0x4a400     2720 File A Song 0-9 headers (272 bytes each)
0x4aea0 variable File A Song data
0x7f200     2720 File B Song 0-9 headers (272 bytes each)
0x7fca0 variable File B Song data

I don't know whet the names sections are for, since the names are found in the data sections as well.
The small 'padding' sections have what looks like overwritten combi/prog data, it's another mystery.
The song data varies wildly, as is to be expected. I don't even know if it is contiguous, or even if FileA / FileB aren't interspersed, but each one at least starts where it says above.

I haven't looked into the data bytes itself to see how they compare to SysEx. It would be great to know what they mean, but that would require endless reverse engineering which nobody ain't got time for.


Devan
 

I ordered a Raayoo usb 3.5 floppy drive and have an older computer with vista.  


On Sun, Mar 21, 2021, 8:20 AM <antonioprm@...> wrote:
Hi.

Based on my experiments some weeks ago, the layout for a 01W disk is as follows:

  Start     Size Content
    0x0      512 Disk header
  0x200     6656 empty (AAAA...)
 0x1c00     2048 List of files present
 0x2400     1024 empty (AAAA...)
 0x2800     2000 File A Combi A00-B99 names (10 bytes each) redundant?
 0x2fd0       48 padding?
 0x3000     2000 File A Prog A00-B99 names (10 bytes each) redundant?
 0x37d0       48 padding?
 0x3800     1000 File B Combi A00-B99 names (10 bytes each) redundant?
 0x3fd0       48 padding?
 0x4000     1000 File B Prog A00-B99 names (10 bytes each) redundant?
 0x47d0       48 padding?
 0x4800     2692 File A Global?
 0x5284    12800 File A Combi A00-A99 data (128 bytes each)
 0x8484    17200 File A Prog A00-A99 data (172 bytes each)
 0xc7b4       76 empty (0000...)
 0xc800     4096 empty (AAAA...)
 0xd800     2692 File A Global? repeated?
 0xe284    12800 File A Combi B00-B99 data (128 bytes each)
0x11484    17200 File A Prog B00-B99 data (172 bytes each)
0x157b4       76 empty (0000...)
0x15800     4096 empty (AAAA...)
0x16800   138240 empty (AAAA...)
0x38400     2692 File B Global?
0x38e84    12800 File B Combi A00-A99 data (128 bytes each)
0x3c084    17200 File B Prog A00-A99 data (172 bytes each)
0x403b4       76 empty (0000...)
0x40400     4096 empty (AAAA...)
0x41400     2692 File B Global? repeated?
0x41e84    12800 File B Combi B00-B99 data (128 bytes each)
0x45084    17200 File B Prog B00-B99 data (172 bytes each)
0x493b4       76 empty (0000...)
0x49400     4096 empty (AAAA...)
0x4a400     2720 File A Song 0-9 headers (272 bytes each)
0x4aea0 variable File A Song data
0x7f200     2720 File B Song 0-9 headers (272 bytes each)
0x7fca0 variable File B Song data

I don't know whet the names sections are for, since the names are found in the data sections as well.
The small 'padding' sections have what looks like overwritten combi/prog data, it's another mystery.
The song data varies wildly, as is to be expected. I don't even know if it is contiguous, or even if FileA / FileB aren't interspersed, but each one at least starts where it says above.

I haven't looked into the data bytes itself to see how they compare to SysEx. It would be great to know what they mean, but that would require endless reverse engineering which nobody ain't got time for.


JohnM
 

Hi Devan
I hope this works out for you.
For what it’s worth, when I replaced my O1W floppy drive with an emulator I had to convert my 01W floppy disks with an old Win98 laptop with an oboard FDD. It was made clear to me that there had to be integral floppy drive circuitry on the motherboard for it to work. It was also indicated to me that a USB floppy would not work so I never tried that option.
As I said earlier I hope this works for you.
Good luck.
JohnM


On 21 Mar 2021, at 17:11, Devan <devanphenix@...> wrote:


I ordered a Raayoo usb 3.5 floppy drive and have an older computer with vista.  

On Sun, Mar 21, 2021, 8:20 AM <antonioprm@...> wrote:
Hi.

Based on my experiments some weeks ago, the layout for a 01W disk is as follows:

  Start     Size Content
    0x0      512 Disk header
  0x200     6656 empty (AAAA...)
 0x1c00     2048 List of files present
 0x2400     1024 empty (AAAA...)
 0x2800     2000 File A Combi A00-B99 names (10 bytes each) redundant?
 0x2fd0       48 padding?
 0x3000     2000 File A Prog A00-B99 names (10 bytes each) redundant?
 0x37d0       48 padding?
 0x3800     1000 File B Combi A00-B99 names (10 bytes each) redundant?
 0x3fd0       48 padding?
 0x4000     1000 File B Prog A00-B99 names (10 bytes each) redundant?
 0x47d0       48 padding?
 0x4800     2692 File A Global?
 0x5284    12800 File A Combi A00-A99 data (128 bytes each)
 0x8484    17200 File A Prog A00-A99 data (172 bytes each)
 0xc7b4       76 empty (0000...)
 0xc800     4096 empty (AAAA...)
 0xd800     2692 File A Global? repeated?
 0xe284    12800 File A Combi B00-B99 data (128 bytes each)
0x11484    17200 File A Prog B00-B99 data (172 bytes each)
0x157b4       76 empty (0000...)
0x15800     4096 empty (AAAA...)
0x16800   138240 empty (AAAA...)
0x38400     2692 File B Global?
0x38e84    12800 File B Combi A00-A99 data (128 bytes each)
0x3c084    17200 File B Prog A00-A99 data (172 bytes each)
0x403b4       76 empty (0000...)
0x40400     4096 empty (AAAA...)
0x41400     2692 File B Global? repeated?
0x41e84    12800 File B Combi B00-B99 data (128 bytes each)
0x45084    17200 File B Prog B00-B99 data (172 bytes each)
0x493b4       76 empty (0000...)
0x49400     4096 empty (AAAA...)
0x4a400     2720 File A Song 0-9 headers (272 bytes each)
0x4aea0 variable File A Song data
0x7f200     2720 File B Song 0-9 headers (272 bytes each)
0x7fca0 variable File B Song data

I don't know whet the names sections are for, since the names are found in the data sections as well.
The small 'padding' sections have what looks like overwritten combi/prog data, it's another mystery.
The song data varies wildly, as is to be expected. I don't even know if it is contiguous, or even if FileA / FileB aren't interspersed, but each one at least starts where it says above.

I haven't looked into the data bytes itself to see how they compare to SysEx. It would be great to know what they mean, but that would require endless reverse engineering which nobody ain't got time for.


Chris
 

Hi all (sorry for my English),

the program that i wrote can save PROG and COMBI as SYS-EX from a 01W image file. I have not yet been able to find out where GLOBAL and SEQ are stored on the disk.

@antonioprm@...
There are two different image formats. You have described the newer one. The old one is very rare. Everything to PROG and COMBI is correct however...
0x4800 is equal to 0x38400 and starts with "KORG!ÿX-011 1990". The first 16 bytes cannot be GLOBAL data. Maybe only from 0x4810 on? 0x41400 starts like this and is after the first 16 bytes the same as what can be found under 0xd800. So not everything will be correct yet. I wrote my program in C++.

To find out everything someone had to read a disk (e.g.: O1W DemoDisk) on the Korg and save as SYS-EX single data (PROG, COMBI, GLOBAL, SEQ).

Who wants to help?


Translated with www.DeepL.com/Translator (free version)


Chris
 

Hi Antonio,

below 0x04800, 0x0d800, 0x38400, 0x41400 are not GLOBAL DATA. I think that they are DRUM KIT DATA (A1, A2, B1, B2).


Daniel Forró
 

Hi, dzien dobry, Krzysztof,

I have some data you need, will send them yo your mail address.

Daniel Forró


On Mar 22, 2021, at 17:58, krzysztof.cylkowski@... wrote:

Hi all (sorry for my English),

the program that i wrote can save PROG and COMBI as SYS-EX from a 01W image file. I have not yet been able to find out where GLOBAL and SEQ are stored on the disk.

@antonioprm@...
There are two different image formats. You have described the newer one. The old one is very rare. Everything to PROG and COMBI is correct however...
0x4800 is equal to 0x38400 and starts with "KORG!ÿX-011 1990". The first 16 bytes cannot be GLOBAL data. Maybe only from 0x4810 on? 0x41400 starts like this and is after the first 16 bytes the same as what can be found under 0xd800. So not everything will be correct yet. I wrote my program in C++.

To find out everything someone had to read a disk (e.g.: O1W DemoDisk) on the Korg and save as SYS-EX single data (PROG, COMBI, GLOBAL, SEQ).

Who wants to help?


Translated with www.DeepL.com/Translator (free version)


Antonio
 

Hi Chris,

I'll certainly be interested in helping develop your program. Ideally, we'd have:
- The ability to convert disk data to classes/structs and vice-versa
- The ability to convert SysEx data to classes/structs and vice-versa

Because then we could edit the data, rather than just converting it.
But that would require understanding the disk/SysEx data, and I imagine it's possible to have a program that can convert disk to SysEx and vice-versa without having to understand the data...

Either way, if you point me to a specific disk image online, and tell me what to do with it, I can do it (later in the week).
I do know a 'demodisk.01w', but I don't know if it's the same one you're thinking of.


Chris
 

Hi Antonio,

great news. I am glad that you want to help me. To be sure we are talking about the same disc, I will send you the image file to your email address. What I need from the disk is a dump of:
All PROG Data
All COMBI Data
All GLOBAL Data
All DRUMS Data
All SEQUENCE Data

and all as SYS-EX files.

I think I have found the GLOBAL Data. They can be found at : 0x004810 and 0x038410.

Many greetings
Chris