{"id":59664,"date":"2023-12-11T01:00:34","date_gmt":"2023-12-11T06:00:34","guid":{"rendered":"http:\/\/pappp.net\/?guid=cfcf7a7973bcfd4ac60b52bcbe7712b5"},"modified":"2023-12-11T01:00:34","modified_gmt":"2023-12-11T06:00:34","slug":"cowgol-development-environment-comes-to-z80-and-cp-m","status":"publish","type":"post","link":"https:\/\/pappp.net\/?p=59664","title":{"rendered":"Cowgol Development Environment Comes to Z80 and CP\/M"},"content":{"rendered":"<p class=\"syndicated-attribution\">Source: <a href=\"https:\/\/hackaday.com\/2023\/12\/10\/cowgol-development-environment-comes-to-z80-and-cp-m\/\">Hack a Day<\/a><\/p>\n<div style=\"background-color : #fff7d5;\n\t\t\tborder-width : 1px; padding : 5px; border-style : dashed; border-color : #e7d796;margin-bottom : 1em; color : #9a8c59;\">Article note: The thing I like about cowgol and a bunch of the related projects is they're headed toward self-hosting environments. \nSimple self-hosting computers are - intellectually speaking - important for learning to reason about systems, and almost an extinct species except for actually historical systems.<\/div><div><img src=\"https:\/\/hackaday.com\/wp-content\/uploads\/2015\/01\/retro1.jpg?w=800\" alt=\"\" decoding=\"async\" loading=\"lazy\" srcset=\"https:\/\/hackaday.com\/wp-content\/uploads\/2015\/01\/retro1.jpg 800w,https:\/\/hackaday.com\/wp-content\/uploads\/2015\/01\/retro1.jpg?resize=250,78 250w,https:\/\/hackaday.com\/wp-content\/uploads\/2015\/01\/retro1.jpg?resize=400,125 400w,https:\/\/hackaday.com\/wp-content\/uploads\/2015\/01\/retro1.jpg 800w,https:\/\/hackaday.com\/wp-content\/uploads\/2015\/01\/retro1.jpg?resize=250,78 250w,https:\/\/hackaday.com\/wp-content\/uploads\/2015\/01\/retro1.jpg?resize=400,125 400w\" sizes=\"(max-width: 800px) 100vw, 800px\" referrerpolicy=\"no-referrer\"\/><\/div><p><a href=\"https:\/\/github.com\/Laci1953\/Cowgol_on_CP_M\/tree\/main\"  rel=\"noopener noreferrer\">Cowgol on Z80 running CP\/M<\/a> ties together everything needed to provide a Cowgol development environment (including C and assembler) on a Z80 running the CP\/M operating system, making it easier to get up and running with a language aimed to be small, bootstrapped, and modern.<\/p>\n<figure aria-describedby=\"caption-attachment-650201\"><a href=\"https:\/\/hackaday.com\/wp-content\/uploads\/2023\/12\/flying-cow.png\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/hackaday.com\/wp-content\/uploads\/2023\/12\/flying-cow.png?w=250\" alt=\"\" srcset=\"https:\/\/hackaday.com\/wp-content\/uploads\/2023\/12\/flying-cow.png 348w,https:\/\/hackaday.com\/wp-content\/uploads\/2023\/12\/flying-cow.png?resize=250,250 250w,https:\/\/hackaday.com\/wp-content\/uploads\/2023\/12\/flying-cow.png 348w,https:\/\/hackaday.com\/wp-content\/uploads\/2023\/12\/flying-cow.png?resize=250,250 250w\" sizes=\"(max-width: 250px) 100vw, 250px\" referrerpolicy=\"no-referrer\"\/><\/a><figcaption><a href=\"https:\/\/github.com\/davidgiven\/cowgol#readme\"  rel=\"noopener noreferrer\">Cowgol<\/a> is an experimental modern language for (very) small systems.<\/figcaption><\/figure>\n<p>The Zilog Z80 was an 8-bit microprocessor common in embedded systems of the 1970s and 1980s, and CP\/M was a contemporary mass-market operating system. As for <a href=\"https:\/\/github.com\/davidgiven\/cowgol\"  rel=\"noopener noreferrer\">Cowgol<\/a>? It&rsquo;s an Ada-inspired compiler toolchain and programming language aimed at very small systems, such as the Z80.<\/p>\n<p>What&rsquo;s different about Cowgol is that it is intended to be self-hosted on these small systems; Cowgol is written in itself, and is able to compile itself. Once one has compiled the compiler for a particular target architecture (for example, the Z80) one could then use that compiler on the target system to compile and run programs for itself.<\/p>\n<p>Thankfully, there&rsquo;s no need to start from scratch. The Cowgol on Z80 running CP\/M repository (see the first link of this post) contains the pre-compiled binaries and guidance on using them.<\/p>\n<p>Cowgol is still under development, but it works. It is a modern language well-suited to (very) small systems, and thanks to this project, getting it up and running on a Z80 running CP\/M is about as easy as such things can get.<\/p>\n<p>Thanks to [feinfinger] for the tip!<\/p>","protected":false},"excerpt":{"rendered":"<p>Cowgol on Z80 running CP\/M ties together everything needed to provide a Cowgol development environme&#8230;<\/p>\n<p> <a href=\"https:\/\/pappp.net\/?p=59664\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[226],"tags":[],"class_list":["post-59664","post","type-post","status-publish","format-standard","hentry","category-news-2"],"_links":{"self":[{"href":"https:\/\/pappp.net\/index.php?rest_route=\/wp\/v2\/posts\/59664","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pappp.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pappp.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pappp.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pappp.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=59664"}],"version-history":[{"count":0,"href":"https:\/\/pappp.net\/index.php?rest_route=\/wp\/v2\/posts\/59664\/revisions"}],"wp:attachment":[{"href":"https:\/\/pappp.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=59664"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pappp.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=59664"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pappp.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=59664"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}