Open Romfos opened 8 months ago
Clean the card (fill with 0x00) on a modern Windows or Linux PC, and put it in the target computer. Boot it from a floppy, make a primary bootable partition on it, and format the card with the system transfer (/s) option.
I have a 2GB CF card in my micro 8088 and it works fine, although having such a big partition on an XT class system is not the best idea (calculating free space takes forever).
Sorry, but I cannot boot from floppy on target computer, because i don't have floppy for book 8088 I need to make it somehow from my pc
I've also tried to use VMware Workstation 17 Player, connected cf (next my card, 128gb) as pysical hdd and setup dos from here. but as the result - missing os. looks like it was abto to find boot sector, but not dos kernel
I have a progress with my 128 GB card: I was able to find different datasheet with CHS data for CF cards of different sizes. One of them - works for my 128GB card: CHS 980,8,32 Now my 128gb card works correctly: boot successful, scandisk 0 error, no any problems with disk during the work
But 1gb card is still doesn't work For card with 1gb+ some datasheets have values with number of cylinders more then 1024. I think this is a source of problem. old bios just cannot correct recognize it. Actually i was able to boot from this card to msdos, but i had a lot of random disk errors later and system is not usable
maybe someone had this issue?
8 MB 2 32 245 16 MB 2 32 490 32 MB 3 4 32 490 64 MB 8 32 490 128 MB 1 8 32 980 256 MB 16 32 980 512 MB 16 63 993 1024 MB 63 1,986 2048 MB 16 63 3,970 4096 MB 16 63 7,964
Try to write this image on your card (this image is 512MB, but may be written to a bigger CF card. Preferably use DD (under Linux) or HDD Raw Copy (under Windows) to write this image. cf_dos_5.zip
@TzOk83 this image is bootable, but later it has disk errors for example if after boot open edit and then exit from edit, i see this error
It is not a disk error, it is a lack of properly set environment variables. This disk is bootable but doesn't have a complete installation of DOS. Before using it, you must set up a DOS or any other period-correct operating system. Setting up a DOS system is not a point-and-click task...
You may hook this disk to VMware or VirtualBox to set up MS-DOS from floppy images. If you want a "clean start" you may format the C: partition, but the one thing you should not do is alter partitions. So do not use FDISK or any other partition editing software.
I think that it is not not correct conclusion, see
1) dir 2) edit config.sys no changes, exit from editor 3) edit autoexec.bat error: system halted
I think this is happens because wrong CHS geometry and some sectors are wrong addressed, then i catch this error
when i did: 1) format c: /s 2) upload program to this partition
result: the same. random disk errors
I ended up using an external ISA controller and a Gotek. My go to solution would be to use Rufus to make the disk bootable (it can make actual MS-DOS disks now) but it uses as a source a floppy image meant for Windows Me so DOS 7.1 which I don't think would boot on a 8088.
There is a fork of this repo which has floppy emulation as an extra feature which would be nice if it got merged here, that would solve this issue
I am having a similar issue with Book 8088: the provided 512Mb card has too big partition and every dir or file operation takes forever (10+ seconds). So trying to use a 32Mb card.
But getting "Missing operating system" on boot. This exact error is from the MBR. (I know because I had a German card and it showed a German message from the MBR.) So the card is read, but the it cannot find the Partition correctly.
In general, anyone should be able to recreate a CF card in case one is corrupted. But it's a mystery what is expected for the card partitioning and how such a CF card can be created.
I don't have a floppy for Book 8088. (It has USB storage, but the driver is on the CF card, which cannot boot. Chicken and egg.) So I used VirtualBox with a flat VMDK to install MS-DOS 5 from a floppy image on it.
Then I wiped the CF card with zeros:
dd if=/dev/zero of=\\?\Device\Harddisk1\Partition0 bs=100k --size --progress
Then transferred the flat VMDK to the raw CF card device:
dd if=Book8088_30.6-flat.vmdk of=\\?\Device\Harddisk1\Partition0 bs=100k --size --progress
The resulting disk is booting to VirtualBox, and is read/written normally by the host Windows. But getting "Missing operating system" on boot in Book 8088.
I am suspecting that the CHS geometry resulting from such method may not map correctly to the CF card. Or is the CHS geometry is somehow in the CMOS or is it expecting something fixed?
@TzOk83 - What is so magical about cf_dos_5? And how can it be produced for 32Mb?
Here's a diff in MBR/PAT between the disk image created in VirtualBox and cf_dos_5.
And there's the info with the CHS geometry: 62,16,63. Maybe that's what could be selected differently with VBoxManage.
Something along these lines: Geometry of imported disk images
# Disk DescriptorFile
version=1
CID=2797ad9c
parentCID=ffffffff
createType="monolithicFlat"
# Extent description
RW 62668 FLAT "Book8088_30.6-flat.vmdk" 0
# The disk Data Base
#DDB
ddb.virtualHWVersion = "4"
ddb.adapterType="ide"
ddb.uuid.image="d641ac7d-1d47-4a19-bdaf-d6477fee36a3"
ddb.uuid.parent="00000000-0000-0000-0000-000000000000"
ddb.uuid.modification="1c6e70fe-0095-429b-bfa3-f3632e163d78"
ddb.uuid.parentmodification="00000000-0000-0000-0000-000000000000"
ddb.geometry.cylinders="62"
ddb.geometry.heads="16"
ddb.geometry.sectors="63"
ddb.geometry.biosCylinders="62"
ddb.geometry.biosHeads="16"
ddb.geometry.biosSectors="63"
I think this is happens because wrong CHS geometry and some sectors are wrong addressed, then i catch this error
I remember having similar troubles, until I locked new drives from mounting in Windows, zeroed the CF card using DMDE, put it into Micro8088, booted from MS-DOS 5 floppy, and used FDISK, FORMAT, and SYS to create the partitions, format them, and transfer system files to the first one.
Just create an MBR and partition table using FDISK from MS-DOS 5.0 (or earlier) boot disk.
I have noticed a different partition ID (01BE+04) on my and your image (06h vs. 04h).
My Image has the following PTE for the 1st partition: 80 01 01 00 06 0F 3F F7 3F 00 00 00 41 D0 03
Which means: 80: Partition is active (bootable) 01: First Head = 1 01: First Sector = 1 00: First Cylinder = 0 06: FAT16b partition table 0F: Last Head = 16 3F: Last Sector = 63 F7: Last Cylinder = 247 3F: First LBA = 63 00: " 00: " 00: " 41: Total sectors = 249921 (x 512 B = 122 MB) D0: " 03: "
@TzOk83 - When you "locked new drives from mounting in Windows" -- How do you insert the CF to Windows (as CF or via an IDE adapter)?
If I use a USB CF card reader (like SD reader), it's recognized as a Removable device, and it cannot be Off-lined. Earlier for a different old laptop, I used a CF-IDE adaptor inserted into an IDE-USB adaptor, which allowed Off-lining and creating a Physical virtual drive for VirtualBox. I am wondering if I should to that here too.
So next I used this CF-IDE enclosure with IDE-USB interface, and created a virtual physical drive for VirtualBox and did fdisk and installed MS-DOS 5.
Still getting "Missing operating system".
Could it be CF card model compatibility?
Note this card is read and booted from in HP 200LX. Although it's treated like a removable drive (not hard drive)
(There are config errors, but it boots and runs config.sys)
@TzOk83 I have noticed a different partition ID (01BE+04) on my and your image (06h vs. 04h).
The Partition Type at 01BE+04:
So it makes sense for my 32Mb card. But it's something that 8088 might get confused with.
So it is worth trying a 64Mb card.
A few additional failed experiments: In these cases the card was zero'd, and raw copied raw disk (starting with MBR) using DD.
fdisk /mbr
from DOS 6.22 didn't do anything onAlso tried copying the larger known 512Mb cards to 64Mb:
Attached diff between cf_dos_5.img and the original 512Mb CF "TEST_IDEDOM"
I got my Book8088 but haven’t taken the time to clone the drive yet. Have you tried that?
For the free space/dir issue, consider https://github.com/ChartreuseK/FREESP
On my HB8088, I just live with the long dir pause.
to clone the drive yet. Have you tried that?
I don't have another 512Mb card. Cloning to 64Mb failed (see above) I can also try to clone to a larger CF card.
I wonder if using the latest BIOS ROM from here or jinshin/8088_bios would resolve these CF issues.
- the amount of code in MBR is twice as large
This will have something to do with the apparent two versions ("classic" and "modern") of the MBR mentioned there: https://en.wikipedia.org/wiki/Master_boot_record
The long pause after DIR seems to happen only once, after first using this command.
I remember finding one particular MBR that wouldn't boot on i8088.
My image holds 4 122MB primary partitions, so the card needs to be at least 128MB to fit the first (boot) partition.
When you "locked new drives from mounting in Windows" -- How do you insert the CF to Windows (as CF or via an IDE adapter)?
In an elevated command prompt type "mountvol /n" to disable the automatic mounting of newly recognized volumes (if it was mounted before, it still will be mounted, unless you manually remove its mounting point). DMDE which I used to blank out the card, doesn't require a volume to be mounted. I'm using a USB CF card reader.
to clone the drive yet. Have you tried that?
I don't have another 512Mb card. Cloning to 64Mb failed (see above) I can also try to clone to a larger CF card.
Of course cloning a 512MB card to a 64MB card would fail. I don’t see evidence of you cloning the Book8088 card to a file and inspecting that or booting that in Virtual Box.
What I’m suggesting is dd if=/dev/<512MB CF in adapter> of=512MB.img bs=512
fdisk 512MB.img
@lpsantil, @TzOk83 - Thank you for responding and ideas. Here's the fdisk
details.
One strange observation: why the OEM CF has End-C/H/S=61/254/63. So it has 255 heads? The other CFs have end heads as 15. So 16 heads as in VMDK above.
Is this head geometry configured somewhere in BIOS or CMOS - can it be changed?
The Book 8088 OEM card "TEST_IDEDOM":
$ fdisk -l --bytes -o +Start-C/H/S,End-C/H/S Book8088_512.dsk
Disk Book8088_512.dsk: 488.76 MiB, 512483328 bytes, 1000944 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type Start-C/H/S End-C/H/S
Book8088_512.dsk1 * 63 996029 995967 509935104 6 FAT16 0/1/1 61/254/63
@TzOk83 card with 4 partitions:
$ fdisk -l --bytes -o +Start-C/H/S,End-C/H/S /h/2/cf_dos_5.img
Disk /h/2/cf_dos_5.img: 502.3 MiB, 526417920 bytes, 1028160 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x2719abc2
Device Boot Start End Sectors Size Id Type Start-C/H/S End-C/H/S
/h/2/cf_dos_5.img1 * 63 256031 255969 131056128 6 FAT16 0/1/1 253/15/63
/h/2/cf_dos_5.img2 256032 512063 256032 131088384 6 FAT16 254/0/1 507/15/63
/h/2/cf_dos_5.img3 512064 770111 258048 132120576 6 FAT16 508/0/1 763/15/63
/h/2/cf_dos_5.img4 770112 1027151 257040 131604480 6 FAT16 764/0/1 1018/15/63
My 64 Mb CF card created in VirtualBox and installed MS-DOS 5:
$ fdisk -l --bytes -o +Start-C/H/S,End-C/H/S CF64_disk.dsk
Disk CF64_disk.dsk: 61.51 MiB, 64487424 bytes, 125952 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type Start-C/H/S End-C/H/S
CF64_disk.dsk1 * 63 124991 124929 63963648 6 FAT16 0/1/1 123/15/63
The responsibility of recognizing the disk geometry is in the XTIDE Universal BIOS (XUB).
The original IDE specification does not support a 16-bit cylinder count (max cylinder should be 0FFh/255). A greater number of cylinders is only possible with a 28-bit IDE (EIDE), but it doesn't seem to be an issue with the XUB.
@TzOk83
does not support a 16-bit cylinder count (max cylinder should be 0FFh/255)
So that may explain why the OEM CF card has 255 heads to lower the cylinder count.
But in the cf_dos_5.img, the cylinders go up to 1018. Or as long as the first partition is up to 255, it may still be OK?
This is a partition table of a card I normally use in my Micro8088: An this is its MBR:
I have a 2GB card, which has a partition with 1014 cylinders and 63 heads.
$ fdisk -l --bytes -o +Start-C/H/S,End-C/H/S CF_2GB.dsk
Disk CF_2GB.dsk: 1.98 GiB, 2097930240 bytes, 4097520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type Start-C/H/S End-C/H/S
CF_2GB.dsk1 * 63 4092479 4092417 2095317504 b W95 FAT32 0/1/1 1014/63/63
If it's a blank disk, there's no partition info
$ fdisk -l --bytes -o +Start-C/H/S,End-C/H/S SanDisk32b_zero.dsk
Disk SanDisk32b_zero.dsk: 30.64 MiB, 32112640 bytes, 62720 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
which I assume, mean wiping a CF card with zeros, and DD a new image would result in new geometry regardless of the target CF card (as long it fits it or larger.
Erasing a card before writing an image has no point. You need to partition it on a target system if its BIOS, for whatever reason, is incompatible with the addressing scheme used on the image. What version of XUD (XTIDE Universal BIOS) are you using?
The XTIDE BIOS screenshot shows version as:
XTIDE @ F000h
r625 (2023-02-19)
Copying the OEM CF card (512Mb) to a 2GB card, which works fine on the host Windows, gives very strange errors when booting on Book 8088:
Master at 300h: not found
Booting C>C
Error 1h!
The resulting 2GB card has fdisk
:
$ fdisk -l --bytes -o +Start-C/H/S,End-C/H/S CF_2GBb.dsk
Disk CF_2GBb.dsk: 1.98 GiB, 2097930240 bytes, 4097520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type Start-C/H/S End-C/H/S
CF_2GBb.dsk1 * 63 996029 995967 509935104 6 FAT16 0/1/1 61/254/63
Compared with the original OEM 512 Mb CF - the partition looks the same (except the parent disk size):
$ fdisk -l --bytes -o +Start-C/H/S,End-C/H/S Book8088_512.dsk
Disk Book8088_512.dsk: 488.76 MiB, 512483328 bytes, 1000944 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type Start-C/H/S End-C/H/S
Book8088_512.dsk1 * 63 996029 995967 509935104 6 FAT16 0/1/1 61/254/63
Error booting 2GB CF copied from the OEM disk:
Maybe this will help:
As i know, the CF Card need to be created on XT, to be readable in XT. My 2GB CF card, which i use on my 386sx PC can't boot on Micro8088.
I have another 1GB CF Card in my Micro8088 with MS-DOS 6.22, if it would help, i can upload the image somewhere.
It would work as long as the CF card was partitioned using the same XT-IDE adapter, or at least using XUD running on a 386. BTW I'm using Monotech XT-CF-Mini ISA adapter.
Well, that can be the case. In my Micro8088 i have Lo-tech XTIDE Lite, in the 386sx i use OnBoard IDE-Controller and XTIDE BIOS on the 3c509B ISA LAN Card.
@explit7 Thank you for offering the image. If it's zipped, it should be a couple of Megs, just like the cf_dos_5.zip above. If you drag it into this message, it will automatically attach like a picture.
Is it possible to boot the Book 8088 v2 from the USB? Such as using DD (raw copy) with a 1.44 floppy image to the top of it?
For the record, here's a partition created by Windows, which would be most likely unusable by XTIDE.
$ fdisk -l --bytes -o +Start-C/H/S,End-C/H/S CF_2GBc.dsk
Disk CF_2GBc.dsk: 1.98 GiB, 2097930240 bytes, 4097520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000001
Device Boot Start End Sectors Size Id Type Start-C/H/S End-C/H/S
CF_2GBc.dsk1 128 262271 262144 134217728 e W95 FAT16 (LBA) 0/2/3 16/83/3
@explit7 Thank you for offering the image. If it's zipped, it should be a couple of Megs, just like the cf_dos_5.zip above. If you drag it into this message, it will automatically attach like a picture.
It to big to attach it here, but i put the compressed 1GB Micro8088 CF Image on DropBox. Here is the link: https://www.dropbox.com/scl/fi/63mzamn3lg8jbo3hd0dca/Micro8088_1GB.zip?rlkey=1mcs3qlrx5pevkviudlpxhnkw&dl=0
Thank you. The exercise well worth the effort. It worked: copied with DD onto a 4Gb card. Note; Windows detected disk issue and recommended disk scan, and fixed it.
The partition info for the 1Gb drive:
$ fdisk -l --bytes -o +Start-C/H/S,End-C/H/S Micro8088_CF1G.img
Disk Micro8088_CF1G.img: 977.5 MiB, 1024966656 bytes, 2001888 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xaed85e7f
Device Boot Start End Sectors Size Id Type Start-C/H/S End-C/H/S
/h/2/Micro8088_CF1G.img1 * 63 1999871 1999809 1023902208 6 FAT16 0/1/1 123/254/63
Compared with the original OEM 512 Mb CF - the geometry looks similar (except cylinder count and the parent disk size):
$ fdisk -l --bytes -o +Start-C/H/S,End-C/H/S Book8088_512.dsk
Disk Book8088_512.dsk: 488.76 MiB, 512483328 bytes, 1000944 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000
Device Boot Start End Sectors Size Id Type Start-C/H/S End-C/H/S
Book8088_512.dsk1 * 63 996029 995967 509935104 6 FAT16 0/1/1 61/254/63
Error 1h from XTIDE [0] means drive is plugged into wrong connector on cable, OR ,you have the CF card(s) set to the wrong Master/Slave/Cable Select setting for the Book8088. If you can't adjust it, then maybe the CF card is not compatible. You likely need a CF card set to Master, or if you're lucky, Cable Select.
[0] https://forum.vcfed.org/index.php?threads/xt-ide-lo-tech-and-error-1h.74922/
@lpsantil
Error 1h from XTIDE [0] means drive is plugged into wrong connector on cable, OR ,you have the CF card(s) set to the wrong Master/Slave/Cable Select setting for the Book8088
The insight about the Error 1h! and the CF card Master/Slave compatibility is a very useful bit of information. Book 8088 does not expose a physical IDE connector, and the CF probably has an internal CF-IDE interface, which apparently expects a Master CF card.
I looked up various threads about using CF cards in period PCs and CF-IDE adapters, and there are many issues esp. with no-name brands. And those problem cards would present themselves as Slave and not Master.
To verify this point, I copied the OEM 512 Mb CF image into this 4Gb card that worked with the 1Gb image above, and it worked as well. So my 4Gb Transcend happens to a a good card. (Too bad to waste its 4Gb, and though it's fast, it has speed drops, and reported low seek read and write times.)
And the previously tested 2Gb Onefavor card is not compatible.
Error 1h from XTIDE [0] means drive is plugged into wrong connector on cable, OR ,you have the CF card(s) set to the wrong Master/Slave/Cable Select setting for the Book8088
The insight about the Error 1h! and the CF card Master/Slave compatibility is a very useful bit of information. Book 8088 does not expose an IDE connector, and the CF probably has an internal CD-IDE interface, which apparently expects a Master CF card.
Wrong. The Book8088 exposes IDE interface because CF cards are IDE devices just like a regular hard drive (and are pin compatible but obviously not form factor compatible). CF to IDE adapters are pass through (even possibly completely passive) boards passing the IDE 40 Pin & either Molex or Berg Power connector. Also, it uses XT-IDE BIOS ROM which is another giveaway.
I'm not sure what you mean by a "CD-IDE" interface.
CF cards are not like the Flash on SD cards. There is a little controller in each (https://youtu.be/RvTEh9FhSz4).
I looked up various threads about using CF cards in period PCs and CF-IDE adapters, and there are many issues esp. with no-name brands. And those problem cards would present themselves as Slave and not Master.
In the old days, many "name" brands were less compatible than others. I like PhilsComputerLab's recommendation here to stick with Industrial marked CF (https://www.vogons.org/viewtopic.php?t=40380). My guess is that Industrial CF assumes the least about the host machine and forces itself into the most compatible mode.
To verify this point, I copied the OEM 512 Mb CF image into this 4Gb card that worked with the 1Gb image above, and it worked as well. So my 4Gb Transcend happens to a a good card. (Too bad to waste its 4Gb, and though it's fast, it has speed drops, and reported low seek read and write times.)
And the previously tested 2Gb Onefavor card is not compatible.
Glad to see you got it to work. My guess here is that the 2GB is missing some compatibility mode. I have the same issue with some SD to CF adapters I bought. The SD-CF Adapter works fine in chain of CF-IDE adapter, IDE-USB adapter on Fedora 38. But, my XT-IDE adapter card does not like the SD-CF Adapter as it is missing some compatibility mode.
Wrong. The Book8088 exposes IDE interface
I specifically said "IDE connector" not "IDE interface". I now edited to say "physical IDE connector". This is to say that there is no way to use a CF-IDE adapter and select a Master jumper, like in some laptops to replace a spindle PATA drive.
It's fascinating how it's completely random which cards would work.
Finally also the cf_dos_5 512 Mb image with 4 128 Mb partitions worked on both those OK cards above. Note: cf_dos_5 CHS geometry is 253/15/63 (15 heads), while both OEM and the 1 Gb CF have C/254/63 (254 heads).
Also with 15 heads was my previous 64 Mb drive created in VirtualBox. So copying it onto the 128 Mb no-name "Car" ... And ... it freakin' WORKS! (as in Digital Basement)
So, No - you don't need to partition the card on the physical machine, it can be imaged from a disk file made in VirtualBox. But, Yes - you need a compatible CF card.
Thank you, @TzOk83, @explit7 and @lpsantil for collectively contributing to this effort.
Ok, I never thought about that. I'm mostly using SanDisk Extreme cards (1GB-4GB), but I also have some industrial CF cards, namely Pretec, and Wintec (both 512MB).
This is to say that there is no way to use a CF-IDE adapter and select a Master jumper
True, but you could set XUB to look also for a SLAVE drive @ 300h.
@TzOk83 Your cf_dos_5 image was very instrumental in chasing the issues with the CF cards. It has four 128 MB Primary partitions on a 512 MB disk.
I was trying to re-create a similar setup of 4 Primary partitions on a 128 MB card (32 MB each). But so far no luck:
Could you shed some light on the magic of creating recognizable 4 Primary partitions?
Note: I wasn't aware of the 1M boundary (1024x1024 bytes or 2048 sectors), so I padded them side by side, and the first one wasn't ending on the 1M either. Not sure if that plays a role. E.g. for the 2nd Start-Sector I selected 63504, whereas the next 1M boundary is 65536.
Here's the 128 MB resulting layout:
Disk CF_128-flat.dsk: 123.51 MiB, 129499136 bytes, 252928 sectors
Device Boot Start End Sectors Size Id Type
CF_128-flat.dsk1 * 63 63503 63441 32481792 4 FAT16 <32M
CF_128-flat.dsk2 63504 126944 63441 32481792 4 FAT16 <32M
CF_128-flat.dsk3 126945 190385 63441 32481792 4 FAT16 <32M
CF_128-flat.dsk4 190386 252927 62542 32021504 4 FAT16 <32M
cf_dos_5 acting normal
CF_128-flat.dsk very strange with the first partition moved to the 4th place. The first partition still boots and works. But the other partitions are inaccessible.
Sometimes partitioning issues are resolved in MS-DOS 6.22 with fdisk /mbr
.
I remembered that the new Primary partitions were actually formatted as "FAT" in Windows, and were usable in Windows normally. And I wanted to experiment with different cluster sizes (1k, 2k, 4k).
After fdisk /mbr
and reboot.
And after formatting drive D: in MS-DOS 6.22 - it recognizes the formatted partition as FAT16.
All I remember, is that: a) I had to use a card not "initialized" under Windows. b) I needed to do the partitioning on the target system (or at least under a XUB controlled CF ISA adapter). c) I needed to use a FDISK version without FAT32 support (so, not a Windows 95 boot disk).
FDISK will not overwrite the partition table if it has a correct signature.
The first partition on the list is the one which is set ACTIVE.
Thank you for sharing the steps. Do you remember what tool was used for partitioning? The MS-DOS FDSIK (both 5 and 6.22) does not allow creating multiple Primary partitions.
Another odd observation, while trying to match the recommended 1MB (1024x1024) boundary for flash cards (see those numbers below, which are multiples of 2048 512-byte sectors),
2048 x 31 = 63488
2048 x 32 63 94
= 65536 129024 192512
The CHS geometry is now all over the place.
Disk CF_128-flat.dsk: 123.51 MiB, 129499136 bytes, 252928 sectors
Device Boot Start End Sectors Size Id Type Start-C/H/S End-C/H/S
CF_128-flat.dsk1 * 63 65535 65473 33522176 4 FAT16 <32M 0/1/1 4/20/16
CF_128-flat.dsk2 65536 129023 63488 32505856 4 FAT16 <32M 4/20/17 8/7/63
CF_128-flat.dsk3 129024 192511 63488 32505856 4 FAT16 <32M 8/8/1 11/250/47
CF_128-flat.dsk4 192512 252927 60416 30932992 4 FAT16 <32M 11/250/48 15/189/46
Where as in cf_dos_5 each partition aligns at the CHS geometry at the cylinder boundary C/15/63. This corresponds to 16 heads and 63 sectors.
Disk cf_dos_5.img: 502.3 MiB, 526417920 bytes, 1028160 sectors
Device Boot Start End Sectors Size Id Type Start-C/H/S End-C/H/S
/h/2/cf_dos_5.img1 * 63 256031 255969 131056128 6 FAT16 0/1/1 253/15/63
/h/2/cf_dos_5.img2 256032 512063 256032 131088384 6 FAT16 254/0/1 507/15/63
/h/2/cf_dos_5.img3 512064 770111 258048 132120576 6 FAT16 508/0/1 763/15/63
/h/2/cf_dos_5.img4 770112 1027151 257040 131604480 6 FAT16 764/0/1 1018/15/63
Apparently the Linux fdisk
did not infer the heads count (to be originally 16) and used the 255 heads value.
There is a command-line parameter to specify heads for the CHS geometry.
And Linux fdisk
has a very useful feature to save, edit and re-apply an "fdisk script", which only records linear sectors.
So after specifying the heads of 16, the resulting CHS looks more reasonable, still with 1MB boundaries
Disk CF_128-flat.dsk: 123.51 MiB, 129499136 bytes, 252928 sectors
Device Boot Start End Sectors Size Id Type Start-C/H/S End-C/H/S
CF_128-flat.dsk1 * 63 65535 65473 33522176 4 FAT16 <32M 0/1/1 65/0/16
CF_128-flat.dsk2 65536 129023 63488 32505856 4 FAT16 <32M 65/0/17 127/15/63
CF_128-flat.dsk3 129024 192511 63488 32505856 4 FAT16 <32M 128/0/1 190/15/47
CF_128-flat.dsk4 192512 252927 60416 30932992 4 FAT16 <32M 190/15/48 250/14/46
IIRC, you want to honor 1MB boundaries on partition starts sectors. I think it is expected that the geometry will look unnatural when compared to hard drives.
Hi,
I know that you are not book 8088 support, but you are very experienced guys that probably could help
goal: Make bootable CF card (1GB) with fresh msdos 6.22
When I'm try to create empty image with MSDOS 6.22 - book 8088 is not able to boot on it. My modern notebook book is able to boot from this image I know that old system uses CHS system and probably this is source of the problem, but how can I configure it for my new CF card? I don't see any setup menu i bios for CHS config
Ranish Partition Manager show me that CHS is 933,33,63, but how can I check - what values are in bios? (CHS of original card (500mb) RPM show me as 933,16,63)
1) When I create new image in dosbox: IMGMAKE 8086_cga.img -t hd -nofs -force -chs 993,16,63 2) mount it IMGMOUNT 2 8086_cga.img -size 512,63,16,993 -t hdd -fs none 3) Boot from msdos 6.22 install disk BOOT disk1.img disk2.img disk3.img 4) Install msdos, next-next-next 5) burn image to CF card 6) copy additional software via default windows explorer ... boot failure
Thank you