80-Bus Journal

  

Juli/Aug. 1983 · Ausgabe 7/8

NASCALC

von Gerhard Klement

Spreadsheet fuer den Nascom
Absolut gratis fuer 80 Bus Leser

Unter den Namen VI­SI­CALC, SU­PER­CALC u.s.w. gibt es auf dem Softwaremarkt eine Reihe von Rechenprogrammen die nach dem ‚Spread­sheet‘ Prinzip eine schnelle und uebersichtliche Kalkulation ermoeglichen. Das Prinzip ist immer das Gleiche. Ein grosser gedachter Bogen der in Zellen eingeteilt ist, die miteinander verknuepft werden. Der Bildschirm stellt ein Fenster dar, der ueber diesen Bogen verschoben werden kann um in bestimmte Zellen Werte oder mathematische Beziehungen einzuschreiben oder auszulesen. Nach jeder Veraenderung werden alle Zellen neu berechnet und koennen durch das Bildschirmfenster gelesen werden.

Im Oktober 1982 erschien in Computing Today ein MINI­CALC fuer den Nascom von Paul Kriwaczek von dem auch ein gefinkeltes* DOS stammt. Er ging von der Ueberlegung aus, dass in seiner Maschine eine Reihe Rechenroutinen vorhanden sind, die er nicht neu zu schreiben brauchte- naemlich in seinem BASIC Interpreter. Leider hatte die so viel versprechende Sache einen Pferdefuss, denn ihm stand nur das Xtal BASIC zur Verfuegung das ja nicht gerade das Standard BASIC fuer den Nascom Besitzer ist. Erich MOSER setzte sich hin und klamueserte saemtliche BASIC Adressen heraus und bald lief MINI­CALC auch mit Microsoft BASIC. Nach kurzer Betriebszeit waren wir jedoch mit der vorliegenden Version unzufrieden und so entstand NAS­CALC.

Handhabung:

Beim Kaltstart laeuft parallel ein BASIC Initialisierung und ein Ausschnitt aus dem Spreadsheet erscheint. Zur besseren Übersicht ist der Bildschirm gesplitted. Der obere Teil ist der aktive Schirm. In der untersten Zeile erscheint die Bezeichnung der momentan angesprochenen Zelle. Eine Eingabe die durch ENTER abgeschlossen wird erscheint sofort in dieser Zelle. Zur besseren Orientierung erscheinen Pfeilsymbole in den Buchstabenleisten, die ebenfalls die Zelle bezeichnen. Die Buchstabenleisten laufen jeweils von A bis Z es sind demnach 26*26 Zellen vorhanden. Um in eine Nachbarzelle zu gelangen werden die Cursortasten bedient. Ist man am Ende des Schirms scrollen die aussen liegenden Zellen herein, das geht in allen vier Richtungen. Hat man einen wichtigen Bildschirmteil aus dem ausgelesen werden soll gefunden, dann kann durch die ‚ARROW UP‘ Taste der Schirm geswapt werden. Im oberen Teil finden jeweils Eingaben statt, der untere Teil dient nur zur passiven Anzeige.

Weitere Steuerfunktionen: ESCAPE loescht die aktive Zelle. Control P ‚Put‘tet das jeweilige User Programm auf Band. Mit Control G (Get) kann es wieder geladen werden. Fuer einen Ausdruck auf einem ‚externen‘ Drucker wird mit Control X der aktive Schirm auf der seriellen Schnittstelle ausgegeben. Das Programm wartet auf ein Handshake – Signal auf Bit 7 von Port 0. Nach den Steuerfunktionen zu den eigentlichen Rechnerfunktionen. Eine Eingabe die mit einer Zahl, einem +,– oder . beginnt wird als numerische Eingabe interpretiert. Eine Zahl wird sofort in die aktive Zelle kopiert. Das Pluszeichen dient weiters als Prefix fuer numerische Variable. (Gleich wirds verstaendlicher). Nehmen wir an wir haetten in Feld AA die Zahl −2 eingetragen. Wir gehen mit dem Cursor in Feld AB (ein Feld nach rechts). Wir koennen hier den Inhalt von AA wieder erscheinen lassen. Tippen wir AA dann wird diese Eingabe als String verstanden und die Buchstaben AA erscheinen in Feld AB. Mit dem + Prefix, also +AA erscheint der Inhalt von AA. Wollen wir beispielsweise das Quadrat von AA berechnen geben wir +AA*AA ein. Das geht mit allen in BASIC vorhandenen Funktionen. Also +SIN(AA) oder +NOT AA bzw. +AA*COS(3.14*AA)/SIN(AA). Versuchen wir +AA/CC. Oops! Abgestuerzt, aber eine gute Moeglichkeit die Sache zu durchschauen. Wir sind in BASIC mit einer Error Message gelandet. Wir koennen eine ganz normale BASIC Editierung vornehmen und mit RUN starten. Was war geschehen? CC wurde von uns nicht definiert und deshalb die /0 Meldung. Fuer das Kopieren von Zellen die Strings als Inhalte haben wird : als Prefix verwendet.z.B. :AA. Stringfunktionen wie LEFT$(AA$,2) sind in direkter Eingabe nicht moeglich aber ueber den Umweg von RESET und BASIC Warmstart koennte auch dies programmiert werden.

Durch das Layout sind Strings mit 8 Zeichen begrenzt, aber fuer

Seite 4 von 52