{"id":1091,"date":"2023-11-30T09:56:10","date_gmt":"2023-11-30T09:56:10","guid":{"rendered":"https:\/\/research.swissdigitization.ch\/?p=1091"},"modified":"2024-04-22T07:48:21","modified_gmt":"2024-04-22T07:48:21","slug":"c64-der-shelleditor-ein-mysterioeses-interface-starting-up-mit-basic-fuer-alles","status":"publish","type":"post","link":"https:\/\/research.swissdigitization.ch\/?p=1091","title":{"rendered":"C64: Der ShellEditor &#8211; ein mysteri\u00f6ses Interface (aus Darthmouth?) &#8211; Starting up mit Basic f\u00fcr alles"},"content":{"rendered":"\n<p>Viele der 8Bit-Homecomputer kamen mit einem Basic als Entwicklungsumgebung und auch als eine Art Betriebssystem daher. Disketten ansehen &amp; Programme laden lief letztlich alles \u00fcber Basic. [Siehe auch andere BlogEintr\u00e4ge in diesem Blog] So auch beim C64. <\/p>\n\n\n\n<p>Basic war so quasi ein Verkaufsargument: Du kannst auch selber etwas mit dem Computer machen. Vergleichweise gut kann man das gerade beim ZX81 sehen. Da wird der Rechner als erweiterter Taschenrechner verkauft vom Design bis zur mitgelieferten Anleitung. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.11.53-1024x768.png\" alt=\"\" class=\"wp-image-1123\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.11.53-1024x768.png 1024w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.11.53-300x225.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.11.53-768x576.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.11.53-624x468.png 624w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.11.53.png 1408w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Das Basic ist beim C64 im ROM vorhanden und wird in den Speicher geladen beim Aufstarten. Und ist anscheinend 64k &#8211; 38911 Byte gross. Es ist ein schon damals uraltes Basic von Microsoft (siehe dazu Blogeintrag um Jack Tramiel). <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Computer Handling in Basic<\/h2>\n\n\n\n<p>Der Text-Bildschirmspeicher (Textmode) ist dabei eine Art Editor. L\u00e4dt man etwa das Listing einer Diskette mit <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>LOAD \"*\",8,1<\/code><\/pre>\n\n\n\n<p>So befindet sich danach das Listing im Speicher. Und mit List l\u00e4sst es sich ausgeben. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>LOAD \"TEST.PRG\",8,1<\/code><\/pre>\n\n\n\n<p>Danach tippt man ein load &#8222;test.prg&#8220;,8,1 und l\u00e4dt das Programm oder man f\u00e4hrt mit dem Cursor zur entsprechenden Zeile und h\u00e4ngt davor ein &#8218;load &#8222;&#8218; und danach ein &#8218;&#8220;,8,1&#8243; und dr\u00fcckt RETURN. Schon wird das PRG geladen. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>RUN<\/code><\/pre>\n\n\n\n<p>Mit dem ebenfalls Basic-Befehl RUN startet man das Programm. Und zwar egal ob, eine EXE oder ein Basic-Programm. Letztlich sind alle Binaries Basic Programme.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mischung aus Shell und Editor (ShEd)<\/h2>\n\n\n\n<p>Das C64 Basic Interface ist eine Mischung aus Shell und Editor. Es ist eine Art Shell, weil man Befehle eingeben kann \u00fcberall. Ein Editor, weil man konkret editieren kann. Dennoch ist es keine reine Shell (wie bei Unix, Apple II, MS-DOS, die ja eigentlich nur eine Zeile ist, in der Befehle eingeben werden k\u00f6nnen. Das Davor und das Danach ist der Output der Shell. Das ist im C64 Basic Editing fundamental anders. Hier ist alles gemischt. Hier f\u00fchrt das Return die aktuellste Zeile aus. Ein \u00e4hnliches Konzept findet sich auch noch in der Oberfl\u00e4che der <a href=\"https:\/\/www.vintagecomputing.ch\/?browseid=204\">LILITH<\/a>, wo auch jeder Text ausgef\u00fchrt werden kann (soweit ich weiss, unabh\u00e4ngig vom Prg). <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Tastatur<\/h2>\n\n\n\n<p>Im der Pr\u00e4-GUI-Zeitalter ist die Tastatur, das wichtigste Eingabeger\u00e4t. Sie ist tats\u00e4chlich qualitativ recht hochwertig f\u00fcr einen so &#8218;billigen&#8216; Computer (was ja im Design ber\u00fccksichtigt wurde). Erinnert an die PC1-Tastatur. Auch die H\u00f6he wirkt sich nicht, wie erwartet negativ aus, man kann damit gut arbeiten. Allerdings gibt es auch Unverzeihlichkeiten: etwa kein Cursorfeld (dadurch ist es wirklich schwierig zu navigieren auf der Oberfl\u00e4che). Es muss mit Shift-Pfeil-Rechts nach links navigiert werden und dasselbe nach oben. <br><br>Die Tastatur \u00fcbernimmt auch viele Dinge, die sp\u00e4ter dann ins GUI ausgelagert wurden und so strotzt sie wie fast alle 8Bit-Tastaturen vor Spezialktasten (Ebene Grafikbl\u00f6cke, RUN\/STOP etc).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"550\" height=\"155\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Tastatur_foto1.jpg\" alt=\"\" class=\"wp-image-1135\" style=\"width:801px;height:auto\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Tastatur_foto1.jpg 550w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Tastatur_foto1-300x85.jpg 300w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Editing Basic<\/h2>\n\n\n\n<p>Das Basic nutzt nun diesen ShellEditor-Komplex auch massiv. Zus\u00e4tzlich kommt hinzu, dass beim Editieren des Sourcecodes die Zeilennummern wichtig sind. Damit scheint der Editor zu erkennen: &#8222;Aha es geh\u00f6rt zum Source-Code&#8220;. <\/p>\n\n\n\n<!--more-->\n\n\n\n<p><strong>Editieren<\/strong><\/p>\n\n\n\n<p>Eine neue Zeile kann man immer erstellen (oder eine Zeile l\u00f6schen) mit<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>REM Zeilennummer PRINT \"HALLO\"\n15 PRINT \"HALLO\"<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"694\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.14.33-1024x694.png\" alt=\"\" class=\"wp-image-1126\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.14.33-1024x694.png 1024w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.14.33-300x203.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.14.33-768x520.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.14.33-624x423.png 624w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.14.33.png 1272w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Dies kreiert gleichzeitig eine Zeile und l\u00f6scht eine m\u00f6glich existierende. Will man also eine Zeile l\u00f6schen tipp man einfach:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>15 &#91;Return]<\/code><\/pre>\n\n\n\n<p>Und schon ist sie \u00fcberschrieben.<\/p>\n\n\n\n<p><strong>RUN<\/strong><\/p>\n\n\n\n<p>Mit RUN in einer neuen Zeile startet man das Programm.<br>Mit der RUN\/STOP-Taste kann man das Programm im Notfall abbrechen.<\/p>\n\n\n\n<p><strong>LIST<\/strong><\/p>\n\n\n\n<p>Mit LIST kann nun das aktuelle Listing angeschaut werden. <br>Mit List X-Y kann ein Ausschnitt dargestellt werden.<\/p>\n\n\n\n<p>Editing: Nun kann man in die Zeile gehen und dort was \u00e4ndern und mit RETURN best\u00e4tigen und das ganze ist &#8218;gesichert&#8216;<\/p>\n\n\n\n<p><strong>Demo-Programm Nr. 1<\/strong><\/p>\n\n\n\n<p>H\u00e4ngt man eine weitere Zeile an, hat man schon das vermutlich meist getippte Prg der 8bit Generation \u00fcberhaupt. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"160\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.17.54-1024x160.png\" alt=\"\" class=\"wp-image-1127\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.17.54-1024x160.png 1024w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.17.54-300x47.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.17.54-768x120.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.17.54-624x97.png 624w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.17.54.png 1294w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Eine endlose Wiederholung. Nichts wurde mehr in eingetippt auf Ausstellungscomputern in Warenh\u00e4usern als das. Nichts zeigt mehr den Sinn und die Sinnlosigkeit von Algorithmen: Endlos und m\u00e4chtig.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"701\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.19.13-1024x701.png\" alt=\"\" class=\"wp-image-1128\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.19.13-1024x701.png 1024w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.19.13-300x205.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.19.13-768x526.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.19.13-624x427.png 624w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.19.13.png 1286w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Speichern &amp; Laden<\/strong><\/p>\n\n\n\n<p>Speichern und laden funktioniert analog zum Laden von Prg. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>LOAD \"test.bas\",8,1\nSAVE \"test.bas\",8,1<\/code><\/pre>\n\n\n\n<p>Hier muss selbstverst\u00e4ndlich ein Diskettenlaufwerk mit eingelegter Diskette vorhanden sein. &#8222;,8&#8220; gibt an, dass es auf Diskettenlaufwerk gespeichert werden soll.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Entwickeln in einem Emulator wie VICE<\/h2>\n\n\n\n<p>Wer auf einem modernen Computer entwickelt, wird einen Emulator wie etwa <a href=\"https:\/\/vice-emu.sourceforge.io\">VICE<\/a> benutzen. Dabei ist wichtig zu verstehen, dass Copy&amp;Paste nicht so einfach ist. Da der C64 ein anderes Ascii benutzt (PESCI) und deswegen beim Rein- und Rauskopieren zumindest alles in Kleinbuchstaben sein sollte.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"811\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.50.17-1024x811.png\" alt=\"\" class=\"wp-image-1139\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.50.17-1024x811.png 1024w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.50.17-300x238.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.50.17-768x608.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.50.17-624x494.png 624w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.50.17.png 1432w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Die Einstellungen von VICE findet man mit F10. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"757\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.51.53-1024x757.png\" alt=\"\" class=\"wp-image-1141\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.51.53-1024x757.png 1024w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.51.53-300x222.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.51.53-768x568.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.51.53-624x462.png 624w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.51.53.png 1352w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Hier findet man auch die M\u00f6glichkeit Text zu ex- und importieren mit Copy&amp;Paste. Beim Mac gibt es nur diese M\u00f6glichkeit Text zu in- und exportieren &#8211; anders bei Windows, da gibt es auch Short-Cuts.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"775\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.51.58-1024x775.png\" alt=\"\" class=\"wp-image-1142\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.51.58-1024x775.png 1024w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.51.58-300x227.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.51.58-768x581.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.51.58-624x472.png 624w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.51.58.png 1356w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Viele der 8Bit-Homecomputer kamen mit einem Basic als Entwicklungsumgebung und auch als eine Art Betriebssystem daher. Disketten ansehen &amp; Programme laden lief letztlich alles \u00fcber Basic. [Siehe auch andere BlogEintr\u00e4ge in diesem Blog] So auch beim C64. Basic war so quasi ein Verkaufsargument: Du kannst auch selber etwas mit dem Computer machen. Vergleichweise gut kann [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[66,65,1],"tags":[],"class_list":["post-1091","post","type-post","status-publish","format-standard","hentry","category-basic","category-cli","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/posts\/1091","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1091"}],"version-history":[{"count":18,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/posts\/1091\/revisions"}],"predecessor-version":[{"id":1257,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/posts\/1091\/revisions\/1257"}],"wp:attachment":[{"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1091"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1091"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1091"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}