Hi all,
as announced earlier, Bret Johnson has donated excerpts from his USB drivers written in (NASM style) assembly language as examples of how to process GPT partitioned drives. This can be useful as reference when adding some GPT support in C for the FreeDOS kernel. Our MBR partition table handling is done in initdisk.c, but given the complexity of GPT, it could be a good idea to put the GPT handling code in a separate file. The excerpts are about 2000 lines of text, including plenty of comments and definitions of data structures and constants. Also, the USB drivers work in the background and support USB plug and play. They can be loaded to protected mode, too :-) In short, a static C version to use by our kernel only once at boot, with INT 13 disk I/O instead of USB, with all the DOS specific header files which we already have available, will probably be a few 100 lines. Still complex enough to have something to compare to, no matter whether somebody is writing the C code from scratch or whether they actually use Bret's code to learn how to handle GPT. Tastes will differ and Tom will probably not care either way, but maybe other experts like to have a look :-) It is also entirely possible that Bret or I would start to write a more concise summary of the algorithm. For the time being, I have just shortened the excerpts a bit and written a text file which gives a quick overview of which subroutines exist, as well as which of them will call each other when. Go to https://auersoft.eu/soft/by-others/ to find the new file gpt-bretjohnson-2021-05-25.zip The excerpts are provided as free public domain content, no licenses to worry about. Being excerpts, you cannot just assemble them into a tool, so the target audience are humans, not computers, for now. Regards, Eric _______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel