{"id":539,"date":"2021-09-23T10:58:48","date_gmt":"2021-09-23T00:58:48","guid":{"rendered":"http:\/\/www.vk1zdj.net\/?p=539"},"modified":"2021-09-23T10:58:48","modified_gmt":"2021-09-23T00:58:48","slug":"dracblade-a-propeller-based-z80-cp-m-board","status":"publish","type":"post","link":"http:\/\/www.vk1zdj.net\/?p=539","title":{"rendered":"Dracblade &#8211; A Propeller based Z80 CP\/M board"},"content":{"rendered":"\n<p>A couple of years ago, a fellow named Dr. Acula designed a neat little Parallax Propeller based board that implemented a full CP\/M system providing a Z80 with dual serial, 512k Ram, VGA, PS\/2 Keyboard, and SD storage.  I *had* to get one.<\/p>\n\n\n\n<p>The cool thing about this board is there is not a Z80 in sight &#8211; None, Nada,  Nill.  The Z80 is implemented in a cog as a sub process within the Propeller chip.  It is a software implementation of the Z80 in Parallax machine code.   The Parallax Propeller is a neat chip.<\/p>\n\n\n\n<h2>The Paralax Propeller<\/h2>\n\n\n\n<p>In about 2006 the Parallax corporation released the Propeller 1 &#8211; It provided some interesting features;<\/p>\n\n\n\n<ul><li>Eight 32-bit cores &#8211; Called Cogs<\/li><li>32 GPIO CMOS I\/O pins<\/li><li>Clock from DC to 80 MHz<\/li><li>Execution Speed: 0 to 160 MIPS (20 MIPS\/cog)<\/li><li>Available as a 40 pin DIP, or a 44 pin QFP<\/li><\/ul>\n\n\n\n<p>The reason why the Propeller get its name, is that there is a constant p[rocess that moves shared memory within the chip round between the cogs. This allows each cog to communicate.  20 MIPS per cog (core) is quite a nice feat.  Very quickly, developers discovered that you could implement a VGA screen driver in software in one of the cores, using a simple resistive divider to define the RGB color space.  You could also emulate entire CPUs in another cog, and break down a complex system into a series of parallel executed subsystems.  Hence, the Dracblade.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2>The Dracblade<\/h2>\n\n\n\n<p>The Dracblade provides a simple hardware environment to connect a 512K ram chip to the propeller, as well as a small amount of glue logic to support the SD card and serial interfaces.<\/p>\n\n\n\n<p>Software running in the system is unaware that it is being executed in a virtual environment &#8211; Plug a serial terminal in, and you boot to a CP\/M prompt.  Below is a print of the silkscreen layer for the Dracblade.  The developer went to a lot of effort to provide multiple regulator options.  Most of the regulators are able to be deployed as switching units &#8211; cheaper than linear regulators, and more efficient.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"http:\/\/www.vk1zdj.net\/wp-content\/uploads\/2021\/09\/Propv5.png\"><img decoding=\"async\" loading=\"lazy\" width=\"792\" height=\"711\" src=\"http:\/\/www.vk1zdj.net\/wp-content\/uploads\/2021\/09\/Propv5.png\" alt=\"\" class=\"wp-image-541\" srcset=\"http:\/\/www.vk1zdj.net\/wp-content\/uploads\/2021\/09\/Propv5.png 792w, http:\/\/www.vk1zdj.net\/wp-content\/uploads\/2021\/09\/Propv5-300x269.png 300w, http:\/\/www.vk1zdj.net\/wp-content\/uploads\/2021\/09\/Propv5-768x689.png 768w, http:\/\/www.vk1zdj.net\/wp-content\/uploads\/2021\/09\/Propv5-80x72.png 80w\" sizes=\"(max-width: 792px) 100vw, 792px\" \/><\/a><\/figure>\n\n\n\n<p>Here is a downloadable copy of the schematic:<\/p>\n\n\n\n<div class=\"wp-block-file\"><a href=\"http:\/\/www.vk1zdj.net\/wp-content\/uploads\/2021\/09\/Propeller_v5.pdf\">Propeller_v5<\/a><a href=\"http:\/\/www.vk1zdj.net\/wp-content\/uploads\/2021\/09\/Propeller_v5.pdf\" class=\"wp-block-file__button\" download>Download<\/a><\/div>\n\n\n\n<p>And the PCB files in Eagle:<\/p>\n\n\n\n<div class=\"wp-block-file\"><a href=\"http:\/\/www.vk1zdj.net\/wp-content\/uploads\/2021\/09\/V5-Eagle-Files.zip\">V5 Eagle Files<\/a><a href=\"http:\/\/www.vk1zdj.net\/wp-content\/uploads\/2021\/09\/V5-Eagle-Files.zip\" class=\"wp-block-file__button\" download>Download<\/a><\/div>\n\n\n\n<p>Being an older project, many or the developers appear to have moved on to other projects, and the various mailing lists have gone quiet.<\/p>\n\n\n\n<p>Here is a copy of the SDCard, as well as all of the Propeller SPIN files for the system.  Note that the because the source uses conditional compilation functions (#define, #ifdef, etc) It can not be compiled with the Parallax spin tool &#8211; There is a project from 10 years ago, written by Brad, called &#8216;Brads Spin tool&#8217; BST, that compiles the source fine.<\/p>\n\n\n\n<p>Here is a copy of Brads Spin tool:<\/p>\n\n\n\n<div class=\"wp-block-file\"><a href=\"http:\/\/www.vk1zdj.net\/wp-content\/uploads\/2021\/09\/bst-0.19.3.exe_.zip\">bst-0.19.3.exe<\/a><a href=\"http:\/\/www.vk1zdj.net\/wp-content\/uploads\/2021\/09\/bst-0.19.3.exe_.zip\" class=\"wp-block-file__button\" download>Download<\/a><\/div>\n\n\n\n<p>And here is the latest version of the source code repository that I could locate:<\/p>\n\n\n\n<div class=\"wp-block-file\"><a href=\"http:\/\/www.vk1zdj.net\/wp-content\/uploads\/2021\/09\/CPM_Oct_2011-latest.zip\">CPM_Oct_2011-latest<\/a><a href=\"http:\/\/www.vk1zdj.net\/wp-content\/uploads\/2021\/09\/CPM_Oct_2011-latest.zip\" class=\"wp-block-file__button\" download>Download<\/a><\/div>\n\n\n\n<p>When you compile the code, make sure that the following options are set in BST:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"http:\/\/www.vk1zdj.net\/wp-content\/uploads\/2021\/09\/BSTCompilerOptions.png\"><img decoding=\"async\" loading=\"lazy\" width=\"425\" height=\"283\" src=\"http:\/\/www.vk1zdj.net\/wp-content\/uploads\/2021\/09\/BSTCompilerOptions.png\" alt=\"\" class=\"wp-image-543\" srcset=\"http:\/\/www.vk1zdj.net\/wp-content\/uploads\/2021\/09\/BSTCompilerOptions.png 425w, http:\/\/www.vk1zdj.net\/wp-content\/uploads\/2021\/09\/BSTCompilerOptions-300x200.png 300w, http:\/\/www.vk1zdj.net\/wp-content\/uploads\/2021\/09\/BSTCompilerOptions-80x53.png 80w\" sizes=\"(max-width: 425px) 100vw, 425px\" \/><\/a><\/figure>\n\n\n\n<p>Files on the SD card have to be written in FAT16 format, and I believe that it is also important for them to be contiguous, so I reformat the SD each time I copy image files onto the card.<\/p>\n\n\n\n<p>Finally, here is a copy of the Sd card that goes with the above source.  It implements a CP\/M system, using a VGA display, and when MP\/M is started, it starts the second user on the serial port.<\/p>\n\n\n\n<div class=\"wp-block-file\"><a href=\"http:\/\/www.vk1zdj.net\/wp-content\/uploads\/2021\/09\/CPM_Oct_2011-latest.zip\">CPM_Oct_2011-latest<\/a><a href=\"http:\/\/www.vk1zdj.net\/wp-content\/uploads\/2021\/09\/CPM_Oct_2011-latest.zip\" class=\"wp-block-file__button\" download>Download<\/a><\/div>\n\n\n\n<p> Anyhow, that provides enough information os that I can go back to the project in the future without relying on web copies of material.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A couple of years ago, a fellow named Dr. Acula designed a neat little Parallax Propeller based board that implemented a full CP\/M system providing a Z80 with dual serial, 512k Ram, VGA, PS\/2 Keyboard, and SD storage&#8230;. <\/p>\n","protected":false},"author":1,"featured_media":540,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false},"categories":[34,19],"tags":[36,35],"jetpack_featured_media_url":"http:\/\/www.vk1zdj.net\/wp-content\/uploads\/2021\/09\/Dracblade.png","_links":{"self":[{"href":"http:\/\/www.vk1zdj.net\/index.php?rest_route=\/wp\/v2\/posts\/539"}],"collection":[{"href":"http:\/\/www.vk1zdj.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.vk1zdj.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.vk1zdj.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.vk1zdj.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=539"}],"version-history":[{"count":3,"href":"http:\/\/www.vk1zdj.net\/index.php?rest_route=\/wp\/v2\/posts\/539\/revisions"}],"predecessor-version":[{"id":550,"href":"http:\/\/www.vk1zdj.net\/index.php?rest_route=\/wp\/v2\/posts\/539\/revisions\/550"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.vk1zdj.net\/index.php?rest_route=\/wp\/v2\/media\/540"}],"wp:attachment":[{"href":"http:\/\/www.vk1zdj.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=539"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.vk1zdj.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=539"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.vk1zdj.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=539"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}