{"id":70,"date":"2021-06-06T19:09:32","date_gmt":"2021-06-06T17:09:32","guid":{"rendered":"http:\/\/automatico.freevar.com\/?page_id=70"},"modified":"2021-11-24T17:41:25","modified_gmt":"2021-11-24T16:41:25","slug":"cp-m-80-2","status":"publish","type":"page","link":"https:\/\/automatico.freevar.com\/index.php\/cp-m-80-2\/","title":{"rendered":"CP\/M 80"},"content":{"rendered":"\r\n<p class=\"has-text-align-left\"><span style=\"font-size: 14pt;\">Writing something new on the CP \/ M is an impossible operation.\u00a0As they say, &#8220;rivers of ink&#8221; have been spilled and with current technology &#8220;kW * h of energy have been consumed&#8221; to popularize the CP \/ M operating system.\u00a0However let&#8217;s see if something comes out.<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">The CP \/ M I will cover is the version for 8080-Z80.\u00a0The CP \/ M (Control Program for Microcomputer) is an operating system that originally used hard disks as secondary memory and later foldable disks (floppy disks).\u00a0It provides a general program development and application management environment for Personal Computers with 8080, Z80 or 8085 type microprocessor.<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">The typical CP \/ M must have at least 20 KB of direct access primary memory available and is used to store both the OS and the program to be executed. This operating system requires at least one external memory unit and manages up to 16 in the CP \/ M 3 version. The external memory units are classified with the letters of the English alphabet from \u201cA\u201d to \u201cP\u201d.<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">The CP \/ M has been designed and implemented for functional parts.\u00a0<strong>FDOS<\/strong>\u00a0is the part that manages the disk and more generally the data transfer.\u00a0In turn, it consists of two parts: the BIOS and the BDOS.\u00a0<strong>BIOS<\/strong>\u00a0is responsible for peripheral device activity, monitors their activity and error status.\u00a0Handles data flow and validity.\u00a0The\u00a0<strong>BDOS<\/strong>\u00a0regards the data transfer rates to and from the disk drives.\u00a0It is the controller of the reliability of the transfer, of the maintenance of the management of the\u00a0<em>file system<\/em>\u00a0on disk.\u00a0the CCP (Console Command Processor) is the module that allows the user interface with the OS.\u00a0Accept the keyboard commands, verify their correctness and start the invoked functionality.<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">Exempli gratia:<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\"><strong>DIR<\/strong>\u00a0lists the names of the files contained on the disk<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\"><strong>ERA<\/strong>\u00a0deletes a file on the disk<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\"><strong>TYPE<\/strong>\u00a0displays the contents of a file on the screen<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">These commands are immediately available as they are resident in memory.<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">All programs that are not resident in memory are on disk ready to be recalled one at a time and are called transients.<\/span><\/p>\r\n<h1>C language<\/h1>\r\n<p><span style=\"font-size: 14pt;\">The following C compilers are for the CP \/ M 80 and are available on the network.<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">\r\n\r\n<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">Ad esempio:<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">\r\n\r\n<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\"><strong>DIR <\/strong>elenca i nomi dei file contenuti sul disco<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">\r\n\r\n<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\"><strong>ERA <\/strong>cancella un file sul disco<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">\r\n\r\n<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\"><strong>TYPE <\/strong>visualizza il contenuto di un file su schermo<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">\r\n\r\n<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">These commands are immediately available as they are resident in memory.<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">All programs that are not resident in memory are on disk ready to be recalled one at a time and are called transients.<\/span><\/p>\r\n<h1>C language<\/h1>\r\n<p><span style=\"font-size: 14pt;\">The following C compilers are for the CP \/ M 80 and are available on the network.<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">\r\n\r\n<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\"><a href=\"http:\/\/www.z80.eu\/downloads\/arnor-c100.zip\">Arnor C 1.00<\/a> (without math library, originally for CPC Amstrad)<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">\r\n\r\n<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\"><a href=\"http:\/\/www.z80.eu\/downloads\/Aztec-C106d.zip\">Aztec C 1.06d<\/a><\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">\r\n\r\n<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\"><a href=\"http:\/\/www.z80.eu\/downloads\/bdsc-all.zip\">BDS-C 1.6<\/a> (recently made free)<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">\r\n\r\n<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\"><a href=\"http:\/\/www.z80.eu\/downloads\/ECO-C343.zip\">Ecosoft C Compiler 3.43<\/a> (for Z80 thanks to Rolf Harrmann)<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">\r\n\r\n<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\"><a href=\"..\/dump\/HiTech%20C%203.09.zip\">HiTech C 3.09\u00a0<\/a>(for Z80 local link) and\u00a0 <a href=\"https:\/\/automatico.freevar.com\/dump\/Hi-TechC309.txt\">text manual<\/a> and <a href=\"https:\/\/automatico.freevar.com\/dump\/Hi-TechC309.pdf\">manual in pdf<\/a>\u00a0 (local link)<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">\r\n\r\n<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\"><a href=\"http:\/\/www.z80.eu\/downloads\/HiSoft-C135.zip\">HiSoft C 1.35<\/a><\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">\r\n\r\n<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\"><a href=\"http:\/\/www.z80.eu\/downloads\/ManxC105.zip\">ManxC 1.05<\/a><\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">\r\n\r\n<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\"><a href=\"http:\/\/www.z80.eu\/downloads\/mi_c_318.zip\">Mi-C 3.18<\/a> i\u00a0in German<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">\r\n\r\n<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\"><a href=\"http:\/\/www.z80.eu\/downloads\/mix-c20.zip\">Mix C Compiler 2.0<\/a>\u00a0<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">\r\n\r\n<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\"><a href=\"http:\/\/www.z80.eu\/downloads\/c80v31a.zip\">Q\/C Compiler V3.1a<\/a> (from Codeworks for Z80 also known as Quality Computer Systems))<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">\r\n\r\n<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\"><a href=\"http:\/\/www.z80.eu\/downloads\/SIL15new.zip\">SIL 1.5 di Digilog<\/a> (a subset of C, but with other extensions)<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">\r\n\r\n<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\"><a href=\"http:\/\/www.z80.eu\/downloads\/smallc21.zip\">Small C 2.1<\/a>\u00a0 (no floating point, partially K &amp; R, source supplied <a href=\"http:\/\/z80cpu.eu\/mirrors\/ftp.mayn.de\/pub\/cpm\/archive\/smallc21\/\">here<\/a>)<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">\r\n\r\n<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\"><a href=\"http:\/\/www.z80.eu\/downloads\/small_c_27.zip\">Small C 2.7<\/a> (written by F.A. Scacchitti in 1986)<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">\r\n\r\n<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\"><a href=\"http:\/\/www.z80.eu\/downloads\/Small-C-wfloats.zip\">Small C 1.2<\/a> (for Z80 with floating point)<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">\r\n\r\n<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\"><a href=\"http:\/\/www.z80.eu\/downloads\/SmallCplus.zip\">Small C\/Plus v1.0<\/a> (with floating point, structures and merges from 1988)<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">\r\n\r\n<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">Another variation of Small C called MESCC with code optimization, written by Miguel L\u00f2pez and you can find it at this\u00a0 <a href=\"http:\/\/www.floppysoftware.es\/mescc.html\">link<\/a>.<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">\r\n\r\n<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\"><a href=\"http:\/\/www.z80.eu\/downloads\/WhiteSmithC21.zip\">Whitesmith C 2.1<\/a> (full version)<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\">\r\n\r\n<\/span><\/p>\r\n<p><span style=\"font-size: 14pt;\"><span class=\"\">The C compiler I use is\u00a0<\/span><span class=\"\">modified\u00a0<\/span><strong><span class=\"\">Hi-tech C 3.09<\/span><\/strong><span class=\"\">\u00a0(that&#8217;s what you find in download).<\/span><\/span><\/p>\r\n<div class=\"pvc_clear\"><\/div><p id=\"pvc_stats_70\" class=\"pvc_stats all  \" data-element-id=\"70\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/automatico.freevar.com\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p><div class=\"pvc_clear\"><\/div>","protected":false},"excerpt":{"rendered":"<p>Writing something new on the CP \/ M is an impossible operation.\u00a0As they say, &#8220;rivers of ink&#8221; have been spilled and with current technology &#8220;kW * h of energy have been consumed&#8221; to popularize the CP \/ M operating system.\u00a0However let&#8217;s see if something comes out. The CP \/ M I will cover is the [&hellip;]<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_70\" class=\"pvc_stats all  \" data-element-id=\"70\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/automatico.freevar.com\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-70","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/automatico.freevar.com\/index.php\/wp-json\/wp\/v2\/pages\/70"}],"collection":[{"href":"https:\/\/automatico.freevar.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/automatico.freevar.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/automatico.freevar.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/automatico.freevar.com\/index.php\/wp-json\/wp\/v2\/comments?post=70"}],"version-history":[{"count":6,"href":"https:\/\/automatico.freevar.com\/index.php\/wp-json\/wp\/v2\/pages\/70\/revisions"}],"predecessor-version":[{"id":719,"href":"https:\/\/automatico.freevar.com\/index.php\/wp-json\/wp\/v2\/pages\/70\/revisions\/719"}],"wp:attachment":[{"href":"https:\/\/automatico.freevar.com\/index.php\/wp-json\/wp\/v2\/media?parent=70"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}