{"id":1146,"date":"2023-11-30T15:05:10","date_gmt":"2023-11-30T15:05:10","guid":{"rendered":"https:\/\/research.swissdigitization.ch\/?p=1146"},"modified":"2024-04-22T07:37:42","modified_gmt":"2024-04-22T07:37:42","slug":"einfaches-action-spiel-in-basic-experimentelle-archeologie","status":"publish","type":"post","link":"https:\/\/research.swissdigitization.ch\/?p=1146","title":{"rendered":"Einfaches Action-Spiel in Basic (Experimentelle Archeologie)"},"content":{"rendered":"\n<p>Wie <a href=\"https:\/\/research.swissdigitization.ch\/?p=1091\">hier<\/a> eingef\u00fchrt verf\u00fcgt der C64 ebenfalls \u00fcber eine Basic-Schnittstelle als &#8218;Interface&#8216; f\u00fcr den C64 wie auch um zu Programmieren. Es ist mehr oder weniger die erste eingebaute Anwendung. <\/p>\n\n\n\n<p>BASIC entstand bekanntlich <a href=\"https:\/\/de.wikipedia.org\/wiki\/BASIC\">1964 als einfach erlernbare Programmiersprache<\/a>, der man bis heute ihren klassischen Sprachansatz ansieht. Es ist eine Art Shellerweiterung mit Zeilen. <\/p>\n\n\n\n<p>Viele 8Bit-Computer kamen ebenso wie der C64 mit Basic daher. Einige waren einfacher gestrickt als der C64 f\u00fcr Games andere mehr (vgl. Atari 400) in Sachen Farbe, Sprites, Scrolling. Diese Features wurden nat\u00fcrlich damals bis heute genutzt in BASIC-Aptippspielen, die zus\u00e4tzlich noch oft auch Assemblerpasagen enthielten. All diese mache recht komplexe Spiele in Basic m\u00f6glich. Am besten sieht man das bis heute etwa an <a href=\"https:\/\/romwer.itch.io\/super-marble-boy\">Super-Marble-Boy<\/a> des Amiga Game Design Veteranen Roman Werner.<br><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Minimales Actionspiel in Basic?<\/h2>\n\n\n\n<p>Turnbasierte Spiele in Basic gibt es selbstverst\u00e4ndlich viele. Eines der Kursspiele in den 80er Jahren war etwa HangMan. Simple und einfach und doch gut zu zeigen, wie eine Spielmechanik programmiert werden kann.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Standardbasic<\/strong><\/h2>\n\n\n\n<p>Aber ist es m\u00f6glich (eine Recherche steht noch aus) ein Action-Spiel zu machen, das allein in BASIC programmiert ist und auf allen Systemen l\u00e4uft? Was nat\u00fcrlich jede Art von Spezialfeatures per se ausschliesst und das ausgehend vom C64 Basic. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Ausgabe<\/strong>: Print<\/h2>\n\n\n\n<p>In Sachen Ausgaben ist BASIC nicht gerade der Hit. Die meisten Basics aber besitzen sicher PRINT. Und was auch interessant ist &#8211; es gibt meist PRINT String und PRINT String Return. Einen allgmeinen Standard zum Positionieren des Cursors existiert &#8211; soweit bekannt &#8211; in Basic nicht. Es gibt nur sehr viele Hacks f\u00fcr jedes System. Und damit sollte sich doch auch ein Actionspiel machen lassen. Zudem bringt PRINT mit RETURN die M\u00f6glichkeit mit den Bildschirm zu scrollen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Gamekonzept?<\/h2>\n\n\n\n<p>Ist es m\u00f6glich in einer Linie ein Gamekonzept zu erschaffen? Ein einfaches Shoot-Em-Up oder Sammlerspiel? Diese Frage hat vor einigen Jahren eigentlich Robin Baumgarten beantwortet mit seinem <a href=\"https:\/\/www.wobblylabs.com\/line-wobbler\">Line Whobbler<\/a>. Es ist ein eindimensionales Rollenspiel mit einem LED-Lichtstreifen und einem Extrakontroller. Das Konzept ist beeindruckend einfach und funktioniert sehr gut.<\/p>\n\n\n\n<p>Ausgehend aus diesem Konzept liess sich schnell etwas entwickeln, was an Line whobbler erinnert, aber visuelle einen anderen Weg ging.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Version 1: <\/strong>ein kontrollierbarer Punkt &#8211; Endpunkt<\/h2>\n\n\n\n<p>Ein simple kontrollierbarer Punkt. Er kann nach links und rechts gesteuert werden und zieht automatisch gescrollt einen Schweif hinter sich her. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"772\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-15.08.34-1024x772.png\" alt=\"\" class=\"wp-image-1149\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-15.08.34-1024x772.png 1024w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-15.08.34-300x226.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-15.08.34-768x579.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-15.08.34-624x470.png 624w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-15.08.34.png 1178w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Technisch wird zuerst die Position per Space geschrieben und danach der Avatar hingeh\u00e4ngt. Das Ganze ist je weiter links umso schneller (weniger Spaces), als gegen rechts. Das Ergebnis ist interessant. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"478\" height=\"430\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-29-um-10.33.02.png\" alt=\"\" class=\"wp-image-1151\" style=\"width:378px;height:auto\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-29-um-10.33.02.png 478w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-29-um-10.33.02-300x270.png 300w\" sizes=\"auto, (max-width: 478px) 100vw, 478px\" \/><\/figure>\n\n\n\n<p><br><strong>Allerdings bricht das Spiel schon die erste Regel: Es nutzt einen Peek, um die Tastatur auszulesen.<\/strong> Basic war 1964 in dem damaligen Paradigma nat\u00fcrlich als Input\/Output-Sprache (ohne Keypressed-Abfragen &#8211; sondern mit Return als Abschluss einer Eingabe &#8211; Input) designed. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Version 2: Fange ein Zeitextra<\/h2>\n\n\n\n<p>Die zweite Version addierte einen Extra, das man holen musste, um weiterspielen zu k\u00f6nnen. Sobald es gefangen war, wurde es per Zufall wieder anderswo &#8218;gespawnt&#8216;. Im gesamten eine minimale Gamemechanik. Idee: L\u00e4uft die Zeit aus, ist das Spiel zu Ende. Wie weit bist du gekommen?<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"740\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-15.13.33-1024x740.png\" alt=\"\" class=\"wp-image-1150\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-15.13.33-1024x740.png 1024w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-15.13.33-300x217.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-15.13.33-768x555.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-15.13.33-624x451.png 624w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-15.13.33.png 1140w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<!--more-->\n\n\n\n<p>Technisch wiederum gel\u00f6st wie bis anhin. Die Mechanik funktioniert und ist einigermassen interessant. Das visuelle Ergebnis funktionierte sehr gut, da es das Spielgeschehen in eine &#8222;Grafik&#8220; verwandelt(e).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>10 print \"last line\"\n15 let c = 5\n20 let e = 12\n\n50 for i=0 to 20\n\n51 if i=c then print \"*\";\n52 if i=e then print \"-\";\n60 print \" \";\n70 next i\n71 print \" \"\n\n90 a = peek(197)\n91 if a=10 and c&gt;1 then c = c - 1\n92 if a=18 and c&lt;19 then c = c + 1\n100 goto 50<\/code><\/pre>\n\n\n\n<p><strong>Das Problem: Es ist eher ein Stocken, denn ein fl\u00fcssiges Spiel. Der Basic-Interpreter kam da schon an seine Grenzen. <\/strong><\/p>\n\n\n\n<p><strong>Eine zweite Version mit String-Concat-&#8218;Optimierung&#8216; war auch nicht viel besser. <\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"699\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.10.47-1024x699.png\" alt=\"\" class=\"wp-image-1153\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.10.47-1024x699.png 1024w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.10.47-300x205.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.10.47-768x524.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.10.47-624x426.png 624w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-10.10.47.png 1298w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Eine Begrenzung des Spiels etwa auf 20 Zeichenbreite brachte auch nicht den erhofften Geschwindigkeitszuwachs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Basic Fazit<\/h2>\n\n\n\n<p>Das Spielkonzept scheint zu funktionieren und bedient sich dabei der Endlosrunners und der Idee von Line whobbler. Die hier ausprobierten Implementationen sind aber zu langsam (selbst die If-Statements verlangsamen das Spiel ungemein) und ein Grundproblem nutzen einen Peek. Dies scheint aber einfach nicht anders l\u00f6sbar zu sein.<\/p>\n\n\n\n<p>Todo: Ausprobieren des Codes in anderen Basics dieser Zeit etwa des ZX81 oder des Atari-Basic etc.<br>Todo: Inkey$ nutzen &#8211; weil eine Art Standard<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Next Step: 16\/32Bit Atari ST\/Amiga<\/h2>\n\n\n\n<p>Interessant ist die Frage, wie sah es bei der n\u00e4chsten Generation von Computern aus, dem Atari ST oder dem Amiga. L\u00e4uft das Spiel hier merklich schneller? <\/p>\n\n\n\n<p><strong>Atari ST Basic<\/strong><\/p>\n\n\n\n<p>F\u00fcrs folgende Experiment wurde eine Atari ST online Emulator benutzt, der im Laufwerk A auch ein Basic enth\u00e4lt: <a href=\"https:\/\/jamesfriend.com.au\/pce-js\/atari-st\/\">pce-emulator &gt;<\/a><\/p>\n\n\n\n<p>Das Atari ST Basic orientiert sich in seiner Bedienung noch stark an der Idee einer Shell. Hier kann man tippen oder man clickt das Menu an, dann l\u00f6st es in der Shell den Befehl aus. Der Background mal im Vordergrund. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"642\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-16.33.21-1024x642.png\" alt=\"\" class=\"wp-image-1162\" style=\"width:406px;height:auto\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-16.33.21-1024x642.png 1024w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-16.33.21-300x188.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-16.33.21-768x481.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-16.33.21-624x391.png 624w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-16.33.21.png 1360w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Der Editor ist &#8217;schwierig&#8216; er arbeitet zwar wie ein Edit-Fenster, nur kann man mit der Maus nicht reinklicken sondern muss per Cursor hinfahren. Das Ende der Zeile wird auch nicht verwaltet. Mit Cursor-Links zum Ende der Zeile etc. Es ist mehr eine Art grosser Array aus Zeichen das Textfeld\/window. Nicht mit Return best\u00e4tigte Zeilen bleiben ausgebleicht und werden nicht ausgef\u00fchrt. \u00dcberall k\u00f6nnen neue Zeilen er\u00f6ffnet werden mit einer neuen Zeilenzahl. Diese werden anschliessend geordnet. Zudem scheinen fehlerhafte Zeilen auch ausgegraut zu werden. Editieren kann man nur per Befehl EDIT.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"984\" height=\"632\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-18.02.54.png\" alt=\"\" class=\"wp-image-1172\" style=\"width:458px;height:auto\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-18.02.54.png 984w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-18.02.54-300x193.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-18.02.54-768x493.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-18.02.54-624x401.png 624w\" sizes=\"auto, (max-width: 984px) 100vw, 984px\" \/><\/figure>\n\n\n\n<p>Eine erste Demo erstellt man relativ schnell (F\u00fcr Mac Chrome-User: Esc &#8211; Fullscreen \/ = : &#8218; \/ &#8220; : shift \u00e4 \/ ; option \u00f6 \/ $: shift 4 \/ * : shift 8 \/ + : shift ^). Die Demo ist deutlich schneller als die C64 Version. Fraglich noch, ob hier ein echter Atari ST im Speed abgebildet ist. <\/p>\n\n\n\n<p>Leider funktioniert hier der Input noch \u00fcberhaupt nicht wie gew\u00fcnscht. Inkey$ geht anscheinend \u00fcberhaupt nicht. Und Inp(x) ist auch keine Keypressed-Funktion. <\/p>\n\n\n\n<p>M\u00f6gliche L\u00f6sung:  inp(-2) gibt 0 oder 1 zur\u00fcck f\u00fcr anstehende Keys, dann alle auslesen mit inp(2). Kommt Zeit kommt Rat.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"996\" height=\"642\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-18.03.20.png\" alt=\"\" class=\"wp-image-1173\" style=\"width:452px;height:auto\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-18.03.20.png 996w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-18.03.20-300x193.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-18.03.20-768x495.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/Bildschirmfoto-2023-11-30-um-18.03.20-624x402.png 624w\" sizes=\"auto, (max-width: 996px) 100vw, 996px\" \/><\/figure>\n\n\n\n<p><br>Todo: Vervollst\u00e4ndigung des Beispiels&#8230;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Heutige: Moderne Basics<\/h2>\n\n\n\n<p>Ein weiterer Interessanter Approach w\u00e4re nat\u00fcrlich sich moderne Basics anzusehen. Also Visual Basics und Co, um es dort auch zum implementieren und zu schauen, wie performant das Ganze w\u00e4re. Allerdings ist hier klar, moderne Basics kommen alle ohne Zeilennummern daher.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Heute: Fantasy-Console Pico8<\/h2>\n\n\n\n<p>In den letzten Jahren sind sogenannte Fantasy-consolen wie Pico8 entstanden. Diese propagieren eine Art Programmieren wie damals 8bit Farbtiefe, 8bit Sound mit der Power eines modernen Rechners. Wie sieht eine Realisierung hier aus?<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"256\" height=\"256\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/11\/lastline_2.gif\" alt=\"\" class=\"wp-image-1158\" style=\"width:487px;height:auto\"\/><\/figure>\n\n\n\n<p>Das Spiel wird genau gleich in implementiert allerdings in LUA. Hier aber compiliert und l\u00e4uft einwandfrei.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>p = 4\ne = 5\nt = 100\nfunction _draw() \nstr = \"\"\nfor i=0,24 do\n  str = str .. chr(20+t%10)\n\t if (p==i) str = str .. \"\u2b05\ufe0f\"\n\t if (e==i) str = str .. \"\u274e\"\nend\nif (p==e) then \ne=flr(rnd(25))\nt=t+30\nend\nif (btn(0) and p&gt;0) p=p-1 \nif (btn(1) and p&lt;25) p=p+1 \nstr = str .. \" \" .. t\nt=t-1\nprint (str)\nend<\/code><\/pre>\n\n\n\n<p>Mit ein bisschen Demoscene-EyeCandy sieht das dann so aus:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"256\" height=\"256\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2023\/12\/lastline_1.gif\" alt=\"\" class=\"wp-image-1183\" style=\"width:612px;height:auto\"\/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>Der Code dazu arbeitet mit viel String-inline-Farben und Chars abh\u00e4ngig von hochz\u00e4hlenden und modelierten Zahlen.\n\np = 4\ne = 5\nt = 100\ns = 0\nfunction _draw() \nstr = \"\"\ns = s+1\nc = \"\"\nfor i=0,24 do\n  c = (0+s%5) \nif (p==e) c = 8\n  str = str .. \"\\f\"..c\n  str = str  .. chr(20+t%10+s%4)\n\t if (p==i) str = str .. \"\\f\"..(6+s%3)..\"\u2b05\ufe0f\\f\"..c\n\t if (e==i) str = str .. \"\\f\"..(8+s%2)..chr(30+s%23)..\"\\f\"..c\nend\nif (p==e) then \ne=flr(rnd(25))\nt=t+30\nend\nif (btn(0) and p&gt;0) p=p-1 \nif (btn(1) and p&lt;25) p=p+1 \nstr = str .. \" \\f9\" .. t\nt=t-1\nprint (str)\nend<\/code><\/pre>\n\n\n\n<p>ToDo: Mit Gegner<\/p>\n\n\n\n<p>Das Spiel macht grunds\u00e4tzlich Spass und l\u00e4sst sich auch einfach aufbohren. Ein bewegendes Extra und ein Gegner w\u00e4re nat\u00fcrlich lustig, sowie die M\u00f6glichkeit \u00fcber den Gegner* zu springen.<\/p>\n\n\n\n<p><strong>Nachtrag<\/strong><\/p>\n\n\n\n<p>Der Micro BBC erm\u00f6glicht auch als 8Bit eine fast perfekte BASIC Variante mit genug Speed. Siehe diese Variante hier:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-researchblog-swissdigitization-latest-findings-and-outcomes wp-block-embed-researchblog-swissdigitization-latest-findings-and-outcomes\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"ftJJQrqb2y\"><a href=\"https:\/\/research.swissdigitization.ch\/?p=1275\">Micro BBC &#8211; ein schnelles BASIC und eine 8Bit Variante des LineRunners<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8222;Micro BBC &#8211; ein schnelles BASIC und eine 8Bit Variante des LineRunners&#8220; &#8212; ResearchBlog Swissdigitization - Latest findings and outcomes.\" src=\"https:\/\/research.swissdigitization.ch\/?p=1275&#038;embed=true#?secret=5jVMy1tdtL#?secret=ftJJQrqb2y\" data-secret=\"ftJJQrqb2y\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Wie hier eingef\u00fchrt verf\u00fcgt der C64 ebenfalls \u00fcber eine Basic-Schnittstelle als &#8218;Interface&#8216; f\u00fcr den C64 wie auch um zu Programmieren. Es ist mehr oder weniger die erste eingebaute Anwendung. BASIC entstand bekanntlich 1964 als einfach erlernbare Programmiersprache, der man bis heute ihren klassischen Sprachansatz ansieht. Es ist eine Art Shellerweiterung mit Zeilen. Viele 8Bit-Computer kamen [&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,1],"tags":[],"class_list":["post-1146","post","type-post","status-publish","format-standard","hentry","category-basic","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/posts\/1146","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=1146"}],"version-history":[{"count":29,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/posts\/1146\/revisions"}],"predecessor-version":[{"id":1280,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/posts\/1146\/revisions\/1280"}],"wp:attachment":[{"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1146"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1146"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1146"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}