{"id":419,"date":"2011-01-31T19:28:47","date_gmt":"2011-02-01T00:28:47","guid":{"rendered":"http:\/\/ve2cuy.wordpress.com\/?p=419"},"modified":"2011-01-31T19:28:47","modified_gmt":"2011-02-01T00:28:47","slug":"mini-i86-dos-machine","status":"publish","type":"post","link":"https:\/\/ve2cuy.com\/blog\/index.php\/2011\/01\/31\/mini-i86-dos-machine\/","title":{"rendered":"Mini i86 Dos machine"},"content":{"rendered":"<p>I\u00a0am currently working on a mini i86 DOS machine.<\/p>\n<p>An old modified PC-XT board serve as a test platform for the homemade BIOS.<\/p>\n<p>All IO\u2019s \u2013 keyboard, VGA Display, floppy disk, RS232 will be handle by a propeller chip board.<\/p>\n<p>To date,<\/p>\n<p>INT10 (video) and<br \/>\nINT 16 (keyboard) are working.<\/p>\n<p>I am currently working on INT13 (disk) function.<\/p>\n<p>An image disk of DOS 3.1 will be on a SD flash drive connected to the propeller chip.<\/p>\n<p>To date, with INT13 AH=02 (read); sector 0, side 0, track 0, I am able to load DOS boot sector from the propeller chip.<\/p>\n<p>Some pictures:<\/p>\n<p><a href=\"http:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/mini-dos-machine-board1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-429\" title=\"mini-dos-machine-board\" src=\"http:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/mini-dos-machine-board1.jpg\" alt=\"\" width=\"630\" height=\"419\" srcset=\"https:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/mini-dos-machine-board1.jpg 800w, https:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/mini-dos-machine-board1-300x200.jpg 300w, https:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/mini-dos-machine-board1-768x512.jpg 768w\" sizes=\"auto, (max-width: 630px) 100vw, 630px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/mini-dos-machine-board.jpg\"><\/a><\/p>\n<p><a href=\"http:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/propeller-board.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-427\" title=\"propeller-board\" src=\"http:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/propeller-board.jpg\" alt=\"\" width=\"630\" height=\"587\" srcset=\"https:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/propeller-board.jpg 801w, https:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/propeller-board-300x280.jpg 300w, https:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/propeller-board-768x716.jpg 768w\" sizes=\"auto, (max-width: 630px) 100vw, 630px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/io-breadbord.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-423\" title=\"io-breadbord\" src=\"http:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/io-breadbord.jpg\" alt=\"\" width=\"630\" height=\"549\" srcset=\"https:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/io-breadbord.jpg 800w, https:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/io-breadbord-300x262.jpg 300w, https:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/io-breadbord-768x670.jpg 768w\" sizes=\"auto, (max-width: 630px) 100vw, 630px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/pc-xt-board.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-422\" title=\"PC-XT-board\" src=\"http:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/pc-xt-board.jpg\" alt=\"\" width=\"630\" height=\"419\" srcset=\"https:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/pc-xt-board.jpg 800w, https:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/pc-xt-board-300x200.jpg 300w, https:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/pc-xt-board-768x512.jpg 768w\" sizes=\"auto, (max-width: 630px) 100vw, 630px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/fisrt-boot.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-424\" title=\"fisrt-boot\" src=\"http:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/fisrt-boot.jpg\" alt=\"\" width=\"630\" height=\"320\" srcset=\"https:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/fisrt-boot.jpg 800w, https:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/fisrt-boot-300x153.jpg 300w, https:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/fisrt-boot-768x391.jpg 768w\" sizes=\"auto, (max-width: 630px) 100vw, 630px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/dos-boot.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-425\" title=\"DOS-boot\" src=\"http:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/dos-boot.jpg\" alt=\"\" width=\"630\" height=\"423\" srcset=\"https:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/dos-boot.jpg 800w, https:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/dos-boot-300x202.jpg 300w, https:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/dos-boot-768x516.jpg 768w\" sizes=\"auto, (max-width: 630px) 100vw, 630px\" \/><\/a><\/p>\n<p>Video at:<\/p>\n<p>[youtube=http:\/\/www.youtube.com\/watch?v=qCj2deCFMnc]<\/p>\n<p>Extract of propeller keyboard micro-code:<\/p>\n<blockquote><p>PRI sendKey(request) | dataToSend<\/p>\n<p>dataToSend := 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lsquo; DATA to return to the 8088<\/p>\n<p>if request == KEYB_AVAILABLE<br \/>\nif kb.gotkey<br \/>\ndataToSend := kb.keyNoRetrieve<\/p>\n<p>if request == KEYB_GET_KEY<br \/>\ndataToSend :=\u00a0 kb.getkey<\/p>\n<p>outa[15..8] := dataToSend<\/p>\n<p>outa[DATA_AVAILABLE_FOR_8088] := 1<br \/>\nwaitcnt(Delay_on + cnt)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lsquo; Wait a moment so the 8088 has time to read it<\/p>\n<p>outa[8..15] := 0<br \/>\nouta[DATA_AVAILABLE_FOR_8088] := 0<br \/>\nwaitcnt(Delay_off + cnt)<\/p>\n<p>return 0<\/p><\/blockquote>\n<p>Extract of Mini DOS Machine BIOS:<\/p>\n<blockquote><p>; Project:\u00a0\u00a0\u00a0MINI DOS MACHINE BIOS<br \/>\n; Auteur:\u00a0\u00a0\u00a0Alain Boudreault (VE2CUY)<br \/>\n; Date:\u00a0\u00a0\u00a0\u00a02010.01.10<br \/>\n;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p>.code<br \/>\nORG\u00a0\u00a0\u00a0\u00a0 0h<\/p>\n<p>start:\u00a0jmp\u00a0\u00a0cold<br \/>\ninclude\u00a0data.inc<br \/>\nCOLD:\u00a0\u00a0 MOV\u00a0\u00a0\u00a0\u00a0 AX,40h<br \/>\nMOV\u00a0\u00a0\u00a0\u00a0 DS,AX<br \/>\nMOV\u00a0\u00a0\u00a0\u00a0 Word ptr DS:72h,0<\/p>\n<p>WARM:<\/p>\n<p>include\u00a0cpu_test.asm<\/p>\n<p>JZ\u00a0\u00a0\u00a0\u00a0\u00a0 CPU_OK<br \/>\nHALT:\u00a0\u00a0 HLT<\/p>\n<p>CPU_OK:<\/p>\n<p>include\u00a0init_8xxxChips.asm<br \/>\ninclude\u00a0Get_MemSize.asm<br \/>\ninclude\u00a0Install_int_vectors.asm<br \/>\nifdef \u00a0INST_BASIC_ROM<br \/>\ninclude\u00a0Inst_Basic_Rom.asm<br \/>\nendif<\/p>\n<p>include\u00a0Check_Devices.asm<\/p>\n<p>&#8230;<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>I\u00a0am currently working on a mini i86 DOS machine. An old modified PC-XT board serve as a test platform for the homemade BIOS. All IO\u2019s \u2013 keyboard, VGA Display, floppy disk, RS232 will be handle by a propeller chip board. To date, INT10 (video) and INT 16 (keyboard) are working. I am currently working on [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[],"class_list":["post-419","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/ve2cuy.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/419","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ve2cuy.com\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ve2cuy.com\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ve2cuy.com\/blog\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ve2cuy.com\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=419"}],"version-history":[{"count":0,"href":"https:\/\/ve2cuy.com\/blog\/index.php\/wp-json\/wp\/v2\/posts\/419\/revisions"}],"wp:attachment":[{"href":"https:\/\/ve2cuy.com\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=419"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ve2cuy.com\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=419"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ve2cuy.com\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=419"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}