{"id":544,"date":"2014-01-31T08:34:26","date_gmt":"2014-01-31T13:34:26","guid":{"rendered":"http:\/\/ve2cuy.wordpress.com\/?page_id=544"},"modified":"2014-01-31T08:34:26","modified_gmt":"2014-01-31T13:34:26","slug":"mini-dos-machine","status":"publish","type":"page","link":"https:\/\/ve2cuy.com\/blog\/index.php\/mini-dos-machine\/","title":{"rendered":"Mini Dos machine"},"content":{"rendered":"<p>I\u00a0am (was) 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\" title=\"mini-dos-machine-board\" alt=\"\" src=\"http:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/mini-dos-machine-board1.jpg\" width=\"630\" height=\"419\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/propeller-board.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"propeller-board\" alt=\"\" src=\"http:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/propeller-board.jpg\" width=\"630\" height=\"587\" \/><\/a><\/p>\n<p><a href=\"http:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/io-breadbord.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"io-breadbord\" alt=\"\" src=\"http:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/io-breadbord.jpg\" width=\"630\" height=\"549\" \/><\/a><\/p>\n<p><a href=\"http:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/pc-xt-board.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"PC-XT-board\" alt=\"\" src=\"http:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/pc-xt-board.jpg\" width=\"630\" height=\"419\" \/><\/a><\/p>\n<p><a href=\"http:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/fisrt-boot.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"fisrt-boot\" alt=\"\" src=\"http:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/fisrt-boot.jpg\" width=\"630\" height=\"320\" \/><\/a><\/p>\n<p><a href=\"http:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/dos-boot.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"DOS-boot\" alt=\"\" src=\"http:\/\/ve2cuy.com\/blog\/wp-content\/uploads\/2011\/01\/dos-boot.jpg\" width=\"630\" height=\"423\" \/><\/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 (was) 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 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-544","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ve2cuy.com\/blog\/index.php\/wp-json\/wp\/v2\/pages\/544","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ve2cuy.com\/blog\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ve2cuy.com\/blog\/index.php\/wp-json\/wp\/v2\/types\/page"}],"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=544"}],"version-history":[{"count":0,"href":"https:\/\/ve2cuy.com\/blog\/index.php\/wp-json\/wp\/v2\/pages\/544\/revisions"}],"wp:attachment":[{"href":"https:\/\/ve2cuy.com\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=544"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}