{"id":36,"date":"2008-05-22T05:12:00","date_gmt":"2008-05-22T09:12:00","guid":{"rendered":"http:\/\/72.167.111.237\/wpmgreene\/?p=36"},"modified":"2008-05-22T05:12:00","modified_gmt":"2008-05-22T09:12:00","slug":"entry-into-os2ldr","status":"publish","type":"post","link":"https:\/\/www.mgreene.org\/?p=36","title":{"rendered":"Entry into os2ldr"},"content":{"rendered":"<p>Using Bochs I have the entry values into os2ldr when booted with BootJFS. One important note is that  any of the filetable structure len fields will depend on the module version.  Also, the 0x8800 segment might vary with machine types in the real world.  It is calculated:<\/p>\n<ol>\n<li>uses INT 12 to find the top of low memory in continuous 1k blocks<\/li>\n<li>subtract 0x54<\/li>\n<li>AND with 0xFFF0<\/li>\n<li>Shift left 6<\/li>\n<\/ol>\n<p>DX == 0x1480 (00010100 10000000)<br \/>DH boot mode flags == mini-FSD is present, micro-FSD is present<br \/>DL drive number for the boot disk == 0x80<\/p>\n<p>DS:SI is a pointer to the BOOT Media&#8217;s BPB 8800:000B (0x8800B)<\/p>\n<p>ES:DI pointer to a filetable structure  8800:124A (0x8924A), filetable structure has the following format:<\/p>\n<p>; module locations<\/p>\n<p>8924A  ft_cfiles          dw  3<br \/>8924C  ft_ldrseg   dw 0x1000<br \/>8924E  ft_ldrlen   dd 0x0000AE00<br \/>89252 ft_museg   dw 0x8800<br \/>89254 ft_mulen   dd 0x00005000<br \/>89258 ft_mfsseg   dw 0x7C00<br \/>8925A ft_mfslen       dd 0x0000EAE9<br \/>8925E ft_ripseg       dw 0<br \/>89260 ft_riplen       dd 0<\/p>\n<p>; microFSD vector table<\/p>\n<p>89264 ft_muOpen_OFF           dw 0x1A9C<br \/>89266 ft_muOpen_SEG           dw 0x8800<br \/>89268 ft_muRead_OFF           dw 0x1BD4<br \/>8926A ft_muRead_SEG           dw 0x8800<br \/>8926C ft_muClose_OFF           dw 0x1DAE<br \/>8926E ft_muClose_SEG           dw 0x8800<br \/>89270 ft_muTerminate_OFF  dw 0x1DD4<br \/>89272 ft_muTerminate_SEG  dw 0x8800<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Using Bochs I have the entry values into os2ldr when booted with BootJFS. One important note is that any of the filetable structure len fields will depend on the module [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[7,31],"tags":[],"class_list":["post-36","post","type-post","status-publish","format-standard","hentry","category-bootldr","category-programming"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":37,"url":"https:\/\/www.mgreene.org\/?p=37","url_meta":{"origin":36,"position":0},"title":"ah&#8230; BootJFS and the process","author":"Mike","date":"May 18, 2008","format":false,"excerpt":"I\u2019m going to plagiarize from www.osfree.org and modify the text to fit my adventures with BootJFS.At the end of POST procedure the ROM BIOS initializes devices and gives control to int 19h interrupt routine, which loads 1st sector of the 1st boot device (a floopy, HDD or another). If the\u2026","rel":"","context":"In &quot;bootldr&quot;","block_context":{"text":"bootldr","link":"https:\/\/www.mgreene.org\/?cat=7"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27,"url":"https:\/\/www.mgreene.org\/?p=27","url_meta":{"origin":36,"position":1},"title":"DosHlp Routines","author":"Mike","date":"August 17, 2008","format":false,"excerpt":"In brief, which is all I can do, the os2ldr contains some hardware dependent routines call DosHlp routines. Thanks to Pasha for pointing out that the ddk contains doshlp.inc which lists most of these (baseinc).The os2ldr contains a table of offsets that is passed to the kernel. The following is\u2026","rel":"","context":"In &quot;bootldr&quot;","block_context":{"text":"bootldr","link":"https:\/\/www.mgreene.org\/?cat=7"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":32,"url":"https:\/\/www.mgreene.org\/?p=32","url_meta":{"origin":36,"position":2},"title":"My os2ldr project","author":"Mike","date":"June 29, 2008","format":false,"excerpt":"I have had sometime to play and committed the results to the SVN page:http:\/\/www.assembla.com\/wiki\/show\/os2ldr","rel":"","context":"In &quot;bootldr&quot;","block_context":{"text":"bootldr","link":"https:\/\/www.mgreene.org\/?cat=7"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":612,"url":"https:\/\/www.mgreene.org\/?p=612","url_meta":{"origin":36,"position":3},"title":"MSDOS Booting on a snow day","author":"Mike","date":"January 23, 2022","format":false,"excerpt":"Anyway, big snow day in southeastern Virginia, so to kill time I was looking around at source on the internet. I had played around with the MSDOS start sequence before, but never looked closely. The typical start, considering a start from hard drive, is MBR load to 0x7C00, relocate to\u2026","rel":"","context":"In &quot;msdos&quot;","block_context":{"text":"msdos","link":"https:\/\/www.mgreene.org\/?cat=118"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":40,"url":"https:\/\/www.mgreene.org\/?p=40","url_meta":{"origin":36,"position":4},"title":"Easy gcc build environment","author":"Mike","date":"March 22, 2008","format":false,"excerpt":"Open Office for eCS-OS\/2 2.4 Beta1 is available (news post) and I installed it on my old SMP PIII box. Seems to work well! I guess the big milestone was just getting it going in the previous version.Also, Pasha has his updated os2ldr on hobbes (here). No chance to try\u2026","rel":"","context":"In &quot;OS\/2&quot;","block_context":{"text":"OS\/2","link":"https:\/\/www.mgreene.org\/?cat=24"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":290,"url":"https:\/\/www.mgreene.org\/?p=290","url_meta":{"origin":36,"position":5},"title":"New toy &#8211; ASRock J3455-ITX","author":"Mike","date":"November 29, 2018","format":false,"excerpt":"Part because of a mistake and part for fun, I purchased an ASRock J3455-ITX.\u00a0 I tried to boot a couple different OSs without much luck, I could not get CoreOS to boot or even a Gentoo LiveCD. Granted, it is low power and slow, so it might have been my\u2026","rel":"","context":"In &quot;Gentoo&quot;","block_context":{"text":"Gentoo","link":"https:\/\/www.mgreene.org\/?cat=12"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/wordpress.greenenet.net\/wp-content\/uploads\/2018\/11\/j3455_memory.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/wordpress.greenenet.net\/wp-content\/uploads\/2018\/11\/j3455_memory.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/wordpress.greenenet.net\/wp-content\/uploads\/2018\/11\/j3455_memory.png?resize=525%2C300 1.5x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.mgreene.org\/index.php?rest_route=\/wp\/v2\/posts\/36","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mgreene.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mgreene.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mgreene.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mgreene.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=36"}],"version-history":[{"count":0,"href":"https:\/\/www.mgreene.org\/index.php?rest_route=\/wp\/v2\/posts\/36\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.mgreene.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=36"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mgreene.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=36"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mgreene.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=36"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}