Dies ist eine alte Version des Dokuments!


HC-Basic

Auf der Kassette M0111 gab es erstmals ein großes, zum Z9001 (und KC85/3) kompatibles Basic, das HC-BASIC.

Adressbereich : 100H - 2AFFH
zusätzlich: 0B0h-0FFh
Startadresse : 300H od. @B
Restart : 302H od. @R

Für den A2-Monitor muss das BASIC angepasst werden. Details dazu siehe Bedienungsanleitung Z1013.64.

KC-BASIC+ von V.Lühne/IG-HC TU Dresden

KC-BASIC+ ist das 10-K-BASIC, der gegenüber bedingt dem HC-BASIC von Riesa 16-K alle Direktsprünge in den MONITOR vermeidet.

KC-BASIC+m von M.Duchrow/Berlin

KC-BASIC+m1 von Dr.Trog-CC URANIA Berlin

Die letzte Version mit Bearbeitungen ist mit implementiertem 'main-tape' (m) (*Duchow/Berlin*) und verbesserter Funktion des 'LIST#', wo jetzt ein anschließendes 'verify' möglich ist (*Dr.Trog-CC URANIA Berlin*). Ergebnisse sind ein verbessertes Einladen von BASIC-Programmen im KC-Modus und bei Rundfunk-Mitschnitten.

KC-ROM-BASIC+ von V.Lühne/IG-HC TU Dresden

Dieser 10-K-Basic kann ab C000H in einem ROM (auch RAM-lauffähig) stehen. Er ist zum KC-BASIC+ voll kompatibel. Seine Programme stehen zwar in einem anderen Speicherbereich, nutzen aber intern die gleichen Adressen. Der KC-ROM-BASIC+ rechnet sich diese dann jeweils um. Der KC-BASIC+ ab 100H lädt sich diese Programme richtig in den Speicher, umgekehrt ebenfalls.

AUTO /ZN ab/,ZN

      Automatische Zeilennummerierung.Ohne
      Parameter 10,10
      Parameter : ab Zeilennummer,Schrittweite
      Abbruch   : BREAK

CLEAR /I,J

      Loeschen aller Variablen
      Parameter : I Neureservierung Stringbereich
                  J neues Speicherende

DELETE ZN/,ZN bis

      Loeschen Programmzeile bzw. von,bis

LIST /ZN

      Auflisten des Programmes ab niedrigster
      Zeilennummer bzw. ab ZN.Es werden 10 Zeilen
      aufgelistet.Veraenderbar durch LINES N.
      Fortsetzung mit ENTER.

LINES N

      Neuvereinbarung N-Zeilen bei LIST.
      Bleibt bis auf Wiederruf erhalten.

RENUMBER /ZN ab/,ZN bis/,ZN 1/,SW

      Neunummerierung des Programmes.
      Zeilennr. ab,Zeilennr. bis,neue niedrigste Schrw.
      Standard: Niedrigste,hoechste,niedrigste =10

EDIT ZN

      Editieren des Programmes ab ZN.Der Kursor
      steht am Zeilenende und kann zur fehler-
      haften Stelle gefuehrt werden.
      Abbruch : BREAK

RUN ZN

      Loeschen aller Variablen und Starten des
      Programmes ab niedrigster oder ab ZN.
      Sollen vereinbarte Variablen erhalten bleiben,
      dann Start mit GOTO ZN.

CSAVE„Filename“

      Abspeichern des Programmes.Filename max. 8 Bytes.

CLOAD„Filename“

      Laden eines Programmes.

BYE

      Verlassen des Interpreters.

TRON

      Trace-Modus.Bei Abarbeitung des Programmes
      werden die Zeilennummern mit ausgegeben.

TROFF

      Ausschalten des Trace-Modus.

Jedes laufende Programm kann mit BREAK (03H) abgebr. werden. In diesem Fall erfolgt Meldung: BREAK AT Zeilennummer.

  • max. Zeilenlaenge 70 Zeichen.
  • Anweisungen durch Doppelpunkt getrennt.
  • Zahlenbereich : Festpunktzahlen sechsstellig + Vorzeichen

Gleitpunktzahlen Mantisse wie Festpunktz.
Exponent max. +/- 38

  • Variablen : Namen = 2 Stellen,erstes Zeichen ein Buchstabe

IF,OR,ON als Namen verboten.
num.Variable z.B. A1, AA …
String z.B. B$, U$ …

  • Anweisungen ohne Zeilennummer werden sofort ausgefuehrt.
  • Basic-Programme sind ab 2C00H abgelegt. Ende durch 00 00 00.

DATA N1/,N2/,N3 …

      Bereitstellen von Daten fuer die READ-Anw.
      Zahlenwerte oder Strings(Strings ohne "......")

READ N/,N1…

      Die in DATA bereitgestellten Daten werden der
      Reihe nach ausgelesen und dem entsprechenden Namen
      zugeordnet.Es koennen nicht
      mehr Daten gelesen werden als bereitstehen.

RESTORE /ZN

      Ruecksetzen des DATA-Zeigers auf erste
      DATA-Zeile bzw. Zeilennummer ZN.

DIM N(I)/,N1(I,J,…)

      Dimensionieren von Indexvariablen.Menge
      beliebig.Auch Strings(dann Stringzeichen)
      Theoretisch 255 Dimensionen moeglich.

PRINT N, N$ ,„N“

      Statt PRINT ist auch " ? " moeglich.
      Ausdruck der folgenden Werte ab letzter Cursor-
      position. Variablen,Strings ("...")
      PRINT ohne Ausdruck ergibt Leerzeile.

PRINT AT (Z,S);…

      Ausdruck auf ZEILE 0-31,SPALTE 0-31.
      Kursor bleibt aber auf Spaltenposition
      wird intern weitergezaehlt.Aufzaehlungen
      mit Kommas trennen!

LET N=…

      Wertzuweisung,kann entfallen.
      Additive Verknuepfung von Strings moeglich.

DEF FNA(I)=…

      Definieren einer Funktion mit dem Namen A
      und einer Variablen I.

OUT P,I

      Ausgabe eines Wertes I auf dem Port P.

A=INP(P)

      Port P wird gelesen und der Variablen A zugewiesen

WAIT P,U/,X

     Stop bis ein Wert vom Port P kommt.Wert wird
      mit U UND-verknuepft.Wenn =0 dann weiter.
      X=Erstverknuepfungswert XOR (normal =0)

WIDTH N

      Breite einer Ausgabezeile N Zeichen.

A=POS(X)

      Die aktuelle Cursorposition wird A
      zugewiesen.

PAUSE/N

      Ohne Variable Unterbrechung bis BREAK
      mit Variable Unterbrechung fuer N/10 Sekunden.

GOSUB ZN

      Sprung in ein Unterprogramm ab ZN.
      Abschluss des Unterprogramms mit RETURN

GOTO ZN

      Unbedingter Sprung zu Zeile ZN.

ON A GOTO ZN1/,ZN2…

      Verteilersprung.Es wird zur A-ten
      Zeile gesprungen.Ist A gleich oder grosser
      als ZN angegeben sind,so wird zur
      folgenden ZN gesprungen.

IF … THEN … /ELSE …

      Bedingte Anweisung.Statt THEN kann auch
      GOTO stehen.ELSE kann entfallen.

FOR I=A TO B/STEP C

      Laufanweisung.A=Anfangswert,B=Endwert
      C=Schrittweite.(Standard SW=1)

NEXT/I/J

      Ende einer Laufanweisung.Mehrere Schleifen
      koennen verschachtelt sein,duerfen sich
      aber nicht ueberlappen.

WINDOW Z1,Z2,S1,S2

      Fenster von Z1-Z2,S1-S2
      WINDOW ohne Werte = volles Fenster

CALL N

      Aufruf Maschinenunterprogramm (Ende C9H)
      Ist N groesser 32767,dann N=N-65536
      Auch HEX-Werte moeglich.Bsp. CALL*37A0

POKE A,N

      Auf Adresse A wird der Wert N abgelegt.

N=PEEK(A)

      Der Wert von Speicherplatz A wird N.

DOKE A,N

      Auf Adresse A u. A+1 wird N abgelegt.

N=DEEK(A)

      Ab A werden 2 Bytes gelesen (NWT,HWT)

CLS

      Bildschirm loeschen

REM

      Kommentarzeile
      (Statt REM kann auch ! geschrieben werden)

END

      Programmende.(Notwendig wenn Unterprogr.folgen)

STOP

      Programmierter Abbruch (BREAK IN ZN)

CONT

      Fortsetzung des Programms nach STOP.

N=FRE(A)

      N erhaelt Anzahl der noch freien Speicher-
      plaetze. Klammerausdruck definiert
      Variablentyp z.B. PRINT FRE(A$) gibt Platz
      fuer Strings an.

SPC(N)

      Nach PRINT Ausgabe von N Leerzeichen.

TAB(N)

      Nach PRINT Ausgabe ab N-ter Spalte.

INPUT„Text“;N,N$,T6

      Eingabe eines Wetes bzw.einer Zeichen-
      kette wird erwartet. (Abschluss mit ENTER)
      Es werden so viele Werte abgefragt, wie
      angegeben sind.
      Bei zu wenig Werten  : ??
          zu vielen        : EXTRA IGNORED
          unzulaessig      : REDO FROM START

N$=INKEY$

      Abfrage Tastatur bis Taste gedrueckt und
      danach N$ zugewiesen.Programm haelt nicht an.

ASC (X$)

      liefert ASCII-Code des 1. Zeichens in X$

CHR$ (I)

      wandelt I in ASCII-Code um

LEFT$ (X$,I)

      liefert I Zeichen von links aus X$

RIGHT (X$,I)

      liefert I Zeichen von rechts aus X$

MID$ (X$,I)

      liefert die Zeichen ab der i-ten Position ab X$

STR$ (A)

      wandelt den Zahlenwert von A in ein String

VAL (X$)

      wandelt X$ in eine Zahl (Umkehr von STR$ (A))

LEN (X$)

      liefert die Laenge von X$

STRING$ (I,X$)

      setzt I-mal X$ zu einem neuen String zusammen.

INSTR(A$,B$)

      Posit. des ersten Auftretens von A$ in B$

ABS (N)

      Absolutbetrag von N

INT (N)

      Wert vor dem Komma (Integer)

SGN (N)

      Signum-Funktion (Vorzeichen)

SQR (N)

      Wurzel aus N

SIN (N)

      Sinus N in Bogenmaß

COS (N)

      Cosinus N in Bogenmaß

TAN (N)

      Tangens N in Bogenmaß

ATN (N)

      Arcus-Tangens in Bogenmaß

LN (N)

      Natuerlicher Logarithmus von N

EXP (N)

      Exponentialfunktion N

RND (N)

      Zufallszahl groesser 0 kleiner 1
      N=0 dann Wert ZZ normal
      N>0 dann naechster Wert der ZZ-Reihe
      N<0 dann neue Folge von ZZ (neu initialisieren)

PI

      Konstante PI=3.14159

AND

      logisches UND

OR

      logisches ODER

NOT

      logische Negation
  • z1013/software/hc-basic.1316349407.txt.gz
  • Zuletzt geändert: 2011/09/18 12:36
  • von volkerp