Replacing Disk-on-chip on a PC104 board - Page 1
Forum section: electronics / general

author: popcalent
author_rank: Newbie
timestamp: October 13, 2024, 05:45:40 pm
content: Hi, all. I have a 386 based PC104 board that came with an 8MB Disk-on-chip (DOC) as unit C: with MS-DOS 6.22. It works great. I recently bought a 64MB DOC to upgrade the system. According to the manual, the PC104 supports DOCs up to 128MB. I replaced the DOC and the PC104 doesn't see it. I tried formating it from MS-DOS using "format c: /s", and it said "Invalid drive specification". I imagine the new DOC needs some firmware to tell it it should work as a MSDOS drive, but I can't find any information on the internet on how to do this. Can someone help, please?The 8MB DOC:https://ibb.co/X2d2JjmThe 64MB DOC on the PC104:https://ibb.co/vz9fTvLOutput of the format command:https://ibb.co/K5yyXVL

author: DavidAlfa
author_rank: Super Contributor
timestamp: October 13, 2024, 06:51:00 pm
content: It seems you need custom tools.Check if these exist in your system:Quotehttps://www.os2museum.com/wp/diskonchip/

author: popcalent
author_rank: Newbie
timestamp: October 13, 2024, 09:47:14 pm
content: Thanks. This looks promising. I used DINFO.EXE and it finds the DOC at physical address 0xC8000, and it prints some information about it (including the correct size of 64MB). Unfortunately, DFORMAT.EXE is not working and it returns a "DOC not found" message.According to DINFO, the DOC is at physical address 0xC8000, but all examples I see of DFORMAT, they use address D000. For example: DFORMAT /WIN:D000, which is not an address the same size I'm seeing. Am I missing something, if physical address is 0xC8000, I should do "DFORMAT /WIN:C8000", correct?Edit: Apparently, C8000 means C800. The correct command is DFORMAT /WIN:C800 /S:file.EXB.

author: fzabkar
author_rank: Super Contributor
timestamp: December 09, 2024, 10:56:15 pm
content: Quote from: popcalent on October 13, 2024, 09:47:14 pm0xC8000 is the address, 0xC800 is the segment.0xC8000 = 0xC800:0https://en.wikipedia.org/wiki/X86_memory_segmentation

author: PA0PBZ
author_rank: Super Contributor
timestamp: December 10, 2024, 11:32:03 am
content: Segment C800 is (was) the standard address for a disk controller card in the old days, anyone remember G=C800:5?Since the address selector is outside the DOC the 8MB one should also present itself at C800, did you verify that?I guess D000 is the segment for an additional drive.

author: coromonadalix
author_rank: Super Contributor
timestamp: December 10, 2024, 05:40:38 pm
content: Quote from: PA0PBZ on December 10, 2024, 11:32:03 amyeah i do remember thisMFM RLL ... scsi drives with their associated cards with all the partition management in them .... good ol daysA dual slot drive who consume lots of amps when starting rotation ... ahhhhh loll

author: fzabkar
author_rank: Super Contributor
timestamp: December 11, 2024, 09:03:37 pm
content: Try this.Create a bootable medium (floppy diskette?) and add MSDOS debug.exe to the root.To dump system RAM/ROM and save it to a file ...Code:debug-n a:\c800.bin-rcxCX 0000:8000-w c800:0Writing 08000 bytes-q"n" specifies the target file name."rcx" specifies the number of bytes to save."-w c000:0" will save the graphics adapter ROM."-w F000:0" will save the BIOS (use rbx = 1, rcx = 0)."rbx" specifies the number of 64KB segments to save.