Archiv der Kategorie: cli

Der (Kybernetisch-)Digitale Space im Computerbereich – Approach 1 – Das Analoge digitalisieren

Räume werden letztlich durch Regeln definiert. Im Folgenden geht es nun danach zu fragen, nach welchen Regeln der entstehende digitale Space funktionierte, was er ermöglichte und verunöglichte, wie er gentutz werden konnte oder anders gesagt: Wie er missbraucht werden konnte.

Der digitale Space ist ein erstaunlicher Ort aus den verschiedensten Blickwinkeln – auch seine historische Entwicklung. Er enstand in den 50er/60er/70er Jahren. Dabei war der Output also das Display, der ‚Screen‘ minimal. Am Anfang war es lediglich Lämpchen oder ein Lineprinter. Also ein Outputgerät, das rein elektromechanisch funktionierte.

Lineprinter-Spaces

Die ersten „Programme“ waren quasi Schaltungen – meist Input-/Output-Programme und folgten damit auch den Computern als elektronische Verschaltungen – als eine Art Algorithmen in Abhängkeit von Schaltern. Die Interaktivtät war also vorgeschaltet als Parameter, wie wir sie es heute noch in Terminalprogrammen nutzen können.
Etwa Programm banner mit Parameter e beim Tool Banner, das Texte Printable macht und danach auch aufgehängt werden können. Endlospapiertext können so enstehen und aufgehängt weden.

> banner e

Spaces – Zeichen und Regelräume

Was ist das nun für ein Space? Vermutlich muss man anfangs unterscheiden zwischen 3 Arten von Spaces, die von den Usern auch wahrgenommen wurden:

Space 1: Terminal – Input (Tastatur)
Analoger Space (Wobei der Input wiederum auf dem Space 3 ausgegeben wird.
Space 2: Das eigentliche Programm im RAM
Space 3: Terminal – Output (Lineprinter anfangs danach Screens) – Analoger Space

Space 1 und 3 waren prinzipiell Spaces gebildet aus Zeichen bzw. anfangs Druckern wie LinePrintern. LinePrinter drucken einfach, all das was ein- und ausgeben wird.

Die Spaces 1 und 3 (Tastatur und Lineprinter) sind analog ‚endlos‘ – meist auch Endlospapier, das abgerissen wird. Dabei wird kein Platz überschrieben sondern immer nur angehängt, eine Art endlose analoge Rolle. Der entstehende Raum im Analogen, der besetzt wird wächst zwar immer mehr, ist aber wegen seines Papiersubstrats auch nicht besonders Platzfüllend und kann auch schnell entsorgt werden. Anders gesagt: Das Digitale benutzte nur vorrübergehend Platz für die Maschine und der Output war ‚temporär‘ analogen Platz besetzend. Sie kommen auch heute noch vorallem im Login-Bereich zum Einsatz. Jedes Programm besitzt heute noch den StdOut, das gelogt wird endlos im Hintergrund (falls die Software da was rausschreibt).

Space 2 hingegen ist von Anfang an interessant. Was die Computer simulierten in ihrem konkreten Programm aber konnte letztlich jeder mögliche Raum sein von 1d-4d etc. Eigentlich nicht anders als heute. Ein Programm konnte sogar 3D Objekte erstellen und konnte sie Raytracen. Denn der „Raum“ des Computerprogramms und seiner Möglichkeiten ist nur eine „Simulation“ – eine Untermenge jedes möglichen Raums. Und ein Raum ist letztlich nur ein bestimmtes Regelset mit Regeln. Man könnte sogar hingehen und jedes Programm als eigenen Raum bezeichnen.

Das unendliche Terminal

Mit dem Aufstieg der Grossrechner und ihren Multiusersystemen wurden immer mehr auch Monitore/Terminals als Ausgabegeräte benutzt. Dadurch konnten mehr Leute an einem Rechner gleichzeitig Arbeiten (VT-X). Diese Screens simulierten anfangs lediglich printbare Seiten und damit auch LinePrinters. Logischersweise gehört damit auch die Simulation des unendlichen Papiers dazu. Da der Screen fest bleibt, scrollt der Inhalt nach oben ins Nichts, bleibt dadurch aber auch unendlich oder anders gesagt: der Screen wird ‚überschrieben‘. Das Konzept bleibt dabei im ersten Moment gleich.

Interaktiver Space

Diese Geschichte seiner Herkunft und den technischen Bedingungen, sieht man noch heute am Dartmouth-Basic gut an. Dann kam die Möglichkeit, den Lineprinter anzuhalten und Fragen zu stellen, gut sichtbar in BASIC mit INPUT. Oder eben einfacher per „Monitor“. Direkt interaktiv und nicht nur vorgeschaltet.

CLS
10 PRINT "what is your name?"
20 INPUT "...(Enter Your Name)...", a$
30 PRINT
40 PRINT "hello, "; a$; ", I am your computer, nice to meet you."
60 END
https://en.wikibooks.org/wiki/BASIC_Programming/Beginning_BASIC/User_Input

Dadurch ist es nun möglich erste interaktive Games zu kreieren. Das bekannteste Beispiel ist bis heute natürlich Hangman (hier die Version aus BasicComputerGames). Dabei arbeitet auch dieses Spiel mit dem simulierten LinePrinter im Screen. Nach jeder Eingabe eines Buchstabens wird der ‚aktuelle‘ Hangman gezeichnet. Dabei wird per ASCII-Grafik eine ‚realistische‘ 2D Ansicht angehängt.

und es kann weitergehen. Das Spiel wäre also noch auf einem klassischen LinePrinter spielbar. Entspricht aber nicht mehr genau dem, was wir unter einem „Computerspiel“ ‚verstehen‘.

BASIC COMPUTER GAMES – Buch 1973

1973 kommt das Listing Buch BASIC COMPUTER GAMES auf den Markt und verkauft sich eine Million mal. Dabei ist der Titel offensichtlich doppeldeutig mit BASIC COMPUTERGAMES in BASIC. Zeigt aber auch auf, was der Spielbegriff damals alles beinhaltete: Von Textspielen, Haiku-Generatoren über Labyrinthgeneratoren, Simulationen bis zu ELIZA (KI). Die meisten der Spiele nutzen das klassische BASIC Commands Repertoir sind also wenn dann ASCII-Art.

Weiterlesen

C64: Der ShellEditor – ein mysteriöses Interface (aus Darthmouth?) – Starting up mit Basic für alles

Viele der 8Bit-Homecomputer kamen mit einem Basic als Entwicklungsumgebung und auch als eine Art Betriebssystem daher. Disketten ansehen & Programme laden lief letztlich alles über Basic. [Siehe auch andere BlogEinträge 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 man das gerade beim ZX81 sehen. Da wird der Rechner als erweiterter Taschenrechner verkauft vom Design bis zur mitgelieferten Anleitung.

Das Basic ist beim C64 im ROM vorhanden und wird in den Speicher geladen beim Aufstarten. Und ist anscheinend 64k – 38911 Byte gross. Es ist ein schon damals uraltes Basic von Microsoft (siehe dazu Blogeintrag um Jack Tramiel).

Computer Handling in Basic

Der Text-Bildschirmspeicher (Textmode) ist dabei eine Art Editor. Lädt man etwa das Listing einer Diskette mit

LOAD "*",8,1

So befindet sich danach das Listing im Speicher. Und mit List lässt es sich ausgeben.

LOAD "TEST.PRG",8,1

Danach tippt man ein load „test.prg“,8,1 und lädt das Programm oder man fährt mit dem Cursor zur entsprechenden Zeile und hängt davor ein ‚load „‚ und danach ein ‚“,8,1″ und drückt RETURN. Schon wird das PRG geladen.

RUN

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.

Mischung aus Shell und Editor (ShEd)

Das C64 Basic Interface ist eine Mischung aus Shell und Editor. Es ist eine Art Shell, weil man Befehle eingeben kann überall. 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önnen. Das Davor und das Danach ist der Output der Shell. Das ist im C64 Basic Editing fundamental anders. Hier ist alles gemischt. Hier führt das Return die aktuellste Zeile aus. Ein ähnliches Konzept findet sich auch noch in der Oberfläche der LILITH, wo auch jeder Text ausgeführt werden kann (soweit ich weiss, unabhängig vom Prg).

Tastatur

Im der Prä-GUI-Zeitalter ist die Tastatur, das wichtigste Eingabegerät. Sie ist tatsächlich qualitativ recht hochwertig für einen so ‚billigen‘ Computer (was ja im Design berücksichtigt wurde). Erinnert an die PC1-Tastatur. Auch die Höhe 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äche). Es muss mit Shift-Pfeil-Rechts nach links navigiert werden und dasselbe nach oben.

Die Tastatur übernimmt auch viele Dinge, die später dann ins GUI ausgelagert wurden und so strotzt sie wie fast alle 8Bit-Tastaturen vor Spezialktasten (Ebene Grafikblöcke, RUN/STOP etc).

Editing Basic

Das Basic nutzt nun diesen ShellEditor-Komplex auch massiv. Zusätzlich kommt hinzu, dass beim Editieren des Sourcecodes die Zeilennummern wichtig sind. Damit scheint der Editor zu erkennen: „Aha es gehört zum Source-Code“.

Weiterlesen