{"id":801,"date":"2020-12-06T18:10:35","date_gmt":"2020-12-06T18:10:35","guid":{"rendered":"https:\/\/www.ecsdump.net\/?page_id=801"},"modified":"2020-12-06T18:10:35","modified_gmt":"2020-12-06T18:10:35","slug":"os-2-ifs-inf","status":"publish","type":"page","link":"https:\/\/www.ecsdump.net\/?page_id=801","title":{"rendered":"OS\/2 IFS INF"},"content":{"rendered":"<div class=\"entry-content\">\n<p>When initially transferring control to OS2LDR from a \u201cblack box\u201d, the following interface is defined:<br \/>\nDH<br \/>\nboot mode flags:<br \/>\nbit 0 (NOVOLIO) on indicates that the mini-FSD does not use MFSH_DOVOLIO.<br \/>\nbit 1 (RIPL) on indicates that boot volume is not local (RIPL boot)<br \/>\nbit 2 (MINIFSD) on indicates that a mini-FSD is present.<br \/>\nbit 3 (RESERVED)<br \/>\nbit 4 (MICROFSD) on indicates that a micro-FSD is present.<br \/>\nbits 5-7 are reserved and MUST be zero.<br \/>\nDL<br \/>\ndrive number for the boot disk. This parameter is ignored if either the NOVOLIO or MINIFSD bits are zero.<br \/>\nDS:SI<br \/>\nis a pointer to the BOOT Media\u2019s <a href=\"https:\/\/en.wikipedia.org\/wiki\/BIOS_parameter_block\" data-internallinksmanager029f6b8e52c=\"4\" title=\"BPB\" target=\"_blank\" rel=\"noopener\">BPB<\/a>. This parameter is ignored if either the NOVOLIO or MINIFSD bits are zero.<br \/>\nES:DI<br \/>\nis a pointer to a filetable structure. The filetable structure has the following format:<br \/>\nstruct FileTable {<br \/>\nunsigned short ft_cfiles; \/* # of entries in this table\u00a0<em>\/<br \/>\nunsigned short ft_ldrseg; \/<\/em>\u00a0paragraph # where OS2LDR is loaded\u00a0<em>\/<br \/>\nunsigned long ft_ldrlen; \/<\/em>\u00a0length of OS2LDR in bytes\u00a0<em>\/<br \/>\nunsigned short ft_museg; \/<\/em>\u00a0paragraph # where microFSD is loaded\u00a0<em>\/<br \/>\nunsigned long ft_mulen; \/<\/em>\u00a0length of microFSD in bytes\u00a0<em>\/<br \/>\nunsigned short ft_mfsseg; \/<\/em>\u00a0paragraph # where miniFSD is loaded\u00a0<em>\/<br \/>\nunsigned long ft_mfslen; \/<\/em>\u00a0length of miniFSD in bytes\u00a0<em>\/<br \/>\nunsigned short ft_ripseg; \/<\/em>\u00a0paragraph # where RIPL data is loaded\u00a0<em>\/<br \/>\nunsigned long ft_riplen; \/<\/em>\u00a0length of RIPL data in bytes *\/<br \/>\n\/* The next four elements are 16:16 pointers to microFSD entry points *\/<br \/>\nunsigned short (far *ft_muOpen) (char far *pName, unsigned long far *pulFileSize);<br \/>\nunsigned long (far *ft_muRead) (long loffseek, char far *pBuf, unsigned long cbBuf);<br \/>\nunsigned long (far *ft_muClose)(void);<br \/>\nunsigned long (far *ft_muTerminate)(void);<br \/>\n}<\/p>\n<p>The microFSD entry points interface is defined as follows:<br \/>\nmu_Open \u2013 is passed a far pointer to name of file to be opened and a far pointer to a ULONG to return the file\u2019s size. The returned value (in AX) indicates success(0) or failure(non-0).<br \/>\nmu_Read \u2013 is passed a seek offset, a far pointer to a data buffer, and the size of the data buffer. The returned value(in DX:AX) indicates the number of bytes actually read.<br \/>\nmu_Close \u2013 has no parameters and expects no return value. It is a signal to the micro-FSD that the loader is done reading the current file.<br \/>\nmu_Terminate \u2013 has no parameters and expects no return value. It is a signal to the micro-FSD that the loader has finished reading the boot drive.<br \/>\nThe loader will call the micro-FSD in a Open-Read-Read-\u2026.-Read-Close sequence with each file read in from the boot drive.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>When initially transferring control to OS2LDR from a \u201cblack box\u201d, the following interface is defined: DH boot mode flags: bit 0 (NOVOLIO) on indicates that the mini-FSD does not use MFSH_DOVOLIO. bit 1 (RIPL) on indicates that boot volume is not local (RIPL boot) bit 2 (MINIFSD) on indicates that a mini-FSD is present. bit&hellip;<\/p>\n<p><a class=\"more-link\" href=\"https:\/\/www.ecsdump.net\/?page_id=801\" title=\"Continue reading &lsquo;OS\/2 IFS INF&rsquo;\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-templates\/full-width.php","meta":{"footnotes":""},"categories":[],"tags":[],"wf_page_folders":[80],"class_list":["post-801","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/www.ecsdump.net\/index.php?rest_route=\/wp\/v2\/pages\/801","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ecsdump.net\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.ecsdump.net\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.ecsdump.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ecsdump.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=801"}],"version-history":[{"count":0,"href":"https:\/\/www.ecsdump.net\/index.php?rest_route=\/wp\/v2\/pages\/801\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.ecsdump.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=801"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ecsdump.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=801"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ecsdump.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=801"},{"taxonomy":"wf_page_folders","embeddable":true,"href":"https:\/\/www.ecsdump.net\/index.php?rest_route=%2Fwp%2Fv2%2Fwf_page_folders&post=801"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}