{"id":869,"date":"2016-08-19T18:11:20","date_gmt":"2016-08-20T01:11:20","guid":{"rendered":"http:\/\/www.pagetable.com\/?p=869"},"modified":"2016-08-19T18:11:20","modified_gmt":"2016-08-20T01:11:20","slug":"reverse-engineered-geos-2-0-for-c64-source-code","status":"publish","type":"post","link":"https:\/\/www.pagetable.com\/?p=869","title":{"rendered":"Reverse-Engineered GEOS 2.0 for C64 Source Code"},"content":{"rendered":"<p>The <a href=\"https:\/\/en.wikipedia.org\/wiki\/GEOS_(8-bit_operating_system)\">GEOS<\/a> operating system managed to clone the Macintosh GUI on the Commodore 64, a computer with an 8 bit CPU and 64 KB of RAM. Based on <a href=\"https:\/\/github.com\/ytmytm\">Maciej Witkowiak<\/a>&#39;s <a href=\"https:\/\/github.com\/ytmytm\/c64-GEOS2000\">work<\/a>, I created a reverse-engineered source version of the C64 GEOS 2.0 KERNAL for the <a href=\"https:\/\/github.com\/cc65\/cc65\">cc65 compiler suite<\/a>:<\/p>\n<p><a href=\"https:\/\/github.com\/mist64\/geos\">https:\/\/github.com\/mist64\/geos<\/a><\/p>\n<ul>\n<li>The source compiles into the exact same binary as shipped with GEOS 2.0.<\/li>\n<li>The source is well-structured and split up into 31 source files.<\/li>\n<li>Machine-specific code is marked up.<\/li>\n<li><a href=\"http:\/\/www.pagetable.com\/?p=865\">Copy protection\/trap mechanisms<\/a> can be disabled.<\/li>\n<li>The build system makes sure binary layout requirements are met.<\/li>\n<\/ul>\n<p>This makes the source a great starting point for<\/p>\n<ul>\n<li>adding (optional) optimized code paths or features<\/li>\n<li>integrating existing patches from various sources<\/li>\n<li>integrating versions for other computers<\/li>\n<li>porting it to different 6502-based computers<\/li>\n<\/ul>\n<p>Just fork the project and send pull requests!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The GEOS operating system managed to clone the Macintosh GUI on the Commodore 64, a computer with an 8 bit CPU and 64 KB of RAM. Based on Maciej Witkowiak&#39;s work, I created a reverse-engineered source version of the C64 GEOS 2.0 KERNAL for the cc65 compiler suite: https:\/\/github.com\/mist64\/geos The source compiles into the exact &#8230; <a title=\"Reverse-Engineered GEOS 2.0 for C64 Source Code\" class=\"read-more\" href=\"https:\/\/www.pagetable.com\/?p=869\" aria-label=\"Read more about Reverse-Engineered GEOS 2.0 for C64 Source Code\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,5,41,8,15,16],"tags":[],"class_list":["post-869","post","type-post","status-publish","format-standard","hentry","category-2","category-archeology","category-c64","category-commodore","category-geos","category-github"],"_links":{"self":[{"href":"https:\/\/www.pagetable.com\/index.php?rest_route=\/wp\/v2\/posts\/869","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pagetable.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pagetable.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pagetable.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pagetable.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=869"}],"version-history":[{"count":0,"href":"https:\/\/www.pagetable.com\/index.php?rest_route=\/wp\/v2\/posts\/869\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.pagetable.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=869"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pagetable.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=869"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pagetable.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=869"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}