diff --git a/cmd/compile.bat b/cmd/compile.bat index 8893fd8..5b542e0 100644 --- a/cmd/compile.bat +++ b/cmd/compile.bat @@ -11,16 +11,13 @@ del %SRC_DIR%\jkcemu\print\*.class del %SRC_DIR%\jkcemu\programming\*.class del %SRC_DIR%\jkcemu\programming\assembler\*.class del %SRC_DIR%\jkcemu\programming\basic\*.class +del %SRC_DIR%\jkcemu\system\*.class +del %SRC_DIR%\jkcemu\system\z1013\*.class del %SRC_DIR%\jkcemu\text\*.class del %SRC_DIR%\jkcemu\tools\*.class del %SRC_DIR%\jkcemu\tools\calculator\*.class del %SRC_DIR%\jkcemu\tools\hexdiff\*.class del %SRC_DIR%\jkcemu\tools\hexeditor\*.class -del %SRC_DIR%\jkcemu\ac1\*.class -del %SRC_DIR%\jkcemu\bcs3\*.class -del %SRC_DIR%\jkcemu\kc85\*.class -del %SRC_DIR%\jkcemu\z1013\*.class -del %SRC_DIR%\jkcemu\z9001\*.class del %SRC_DIR%\z80emu\*.class javac -classpath %SRC_DIR% %1 %2 %3 %SRC_DIR%\jkcemu\Main.java diff --git a/cmd/compile.sh b/cmd/compile.sh index 46a8853..a7d6181 100755 --- a/cmd/compile.sh +++ b/cmd/compile.sh @@ -11,16 +11,13 @@ rm -f $SRC_DIR/jkcemu/print/*.class rm -f $SRC_DIR/jkcemu/programming/*.class rm -f $SRC_DIR/jkcemu/programming/assembler/*.class rm -f $SRC_DIR/jkcemu/programming/basic/*.class +rm -f $SRC_DIR/jkcemu/system/*.class +rm -f $SRC_DIR/jkcemu/system/z1013/*.class rm -f $SRC_DIR/jkcemu/text/*.class rm -f $SRC_DIR/jkcemu/tools/*.class rm -f $SRC_DIR/jkcemu/tools/calculator/*.class rm -f $SRC_DIR/jkcemu/tools/hexdiff/*.class rm -f $SRC_DIR/jkcemu/tools/hexeditor/*.class -rm -f $SRC_DIR/jkcemu/ac1/*.class -rm -f $SRC_DIR/jkcemu/bcs3/*.class -rm -f $SRC_DIR/jkcemu/kc85/*.class -rm -f $SRC_DIR/jkcemu/z1013/*.class -rm -f $SRC_DIR/jkcemu/z9001/*.class rm -f $SRC_DIR/z80emu/*.class javac $* -classpath $SRC_DIR \ @@ -33,15 +30,12 @@ javac $* -classpath $SRC_DIR \ $SRC_DIR/jkcemu/programming/*.java \ $SRC_DIR/jkcemu/programming/assembler/*.java \ $SRC_DIR/jkcemu/programming/basic/*.java \ + $SRC_DIR/jkcemu/system/*.java \ + $SRC_DIR/jkcemu/system/z1013/*.java \ $SRC_DIR/jkcemu/text/*.java \ $SRC_DIR/jkcemu/tools/*.java \ $SRC_DIR/jkcemu/tools/calculator/*.java \ $SRC_DIR/jkcemu/tools/hexdiff/*.java \ $SRC_DIR/jkcemu/tools/hexeditor/*.java \ - $SRC_DIR/jkcemu/ac1/*.java \ - $SRC_DIR/jkcemu/bcs3/*.java \ - $SRC_DIR/jkcemu/kc85/*.java \ - $SRC_DIR/jkcemu/z1013/*.java \ - $SRC_DIR/jkcemu/z9001/*.java \ $SRC_DIR/z80emu/*.java diff --git a/cmd/makejar.sh b/cmd/makejar.sh index e2d6eb1..0bbc1d7 100755 --- a/cmd/makejar.sh +++ b/cmd/makejar.sh @@ -11,20 +11,19 @@ jar cvmf Manifest.txt ../jkcemu.jar \ jkcemu/programming/*.class \ jkcemu/programming/assembler/*.class \ jkcemu/programming/basic/*.class \ + jkcemu/system/*.class \ + jkcemu/system/z1013/*.class \ jkcemu/text/*.class \ jkcemu/tools/*.class \ jkcemu/tools/calculator/*.class \ jkcemu/tools/hexdiff/*.class \ jkcemu/tools/hexeditor/*.class \ - jkcemu/ac1/*.class \ - jkcemu/bcs3/*.class \ - jkcemu/kc85/*.class \ - jkcemu/z1013/*.class \ - jkcemu/z9001/*.class \ z80emu/*.class \ rom/ac1/*.bin \ rom/bcs3/*.bin \ + rom/huebler/*.bin \ rom/kc85/*.bin \ + rom/kramermc/*.bin \ rom/z1013/*.bin \ rom/z9001/*.bin \ images/debug/*.png \ @@ -33,6 +32,8 @@ jar cvmf Manifest.txt ../jkcemu.jar \ images/icon/*.png \ images/nav/*.png \ help/*.htm \ + help/bcs3/*.htm \ + help/kramermc/*.htm \ help/tips/*.htm \ help/tools/*.htm \ help/tools/basicc/*.htm \ diff --git a/src/help/ac1.htm b/src/help/ac1.htm index 4cf7d41..5f6734b 100644 --- a/src/help/ac1.htm +++ b/src/help/ac1.htm @@ -2,36 +2,110 @@

Hinweise zur Emulation des AC1

-

Emulierte Hardware

+

1. Emulierte Hardware



-

Im ROM enthaltene Software

+

1.1. Hinweise zum DRAM

+ Bei 64x32 Zeichen Bildschirmgröße werden auch + 64 KByte DRAM emuliert. + Diese befinden sich physisch in einem globalen RAM-Bereich, + der von allen emulierten Systemen gemeinsam genutzt wird. + Die unteren 8 KByte liegen parallel zum ROM für das Monitorprogramm, + Bildwiederholspeicher und SRAM können über die IO-Ports + 14h sowie 1Ch bis 1Fh ein- und wieder ausgeblendet werden. +

+ + +

2. Im ROM enthaltene Software



-

Hinweise zum DRAM

- Es werden 64 KByte DRAM emuliert. - Diese befinden sich physisch in einem globalen RAM-Bereich, - der von allen emulierten Systemen gemeinsam genutzt wird. - Die unteren 8 KByte liegen parallel zu ROM, Bildwiederholspeicher - und SRAM und können über die IO-Ports 1C bis 1F - ein- und wieder ausgeblendet werden. + +

3. BASIC

+ +

3.1. Grafik/Sound-BASIC

+ Der Grafik/Sound-BASIC-Interpreter Version 3.2 liegt + in einem Hintergrund-ROM im Adressbereich 4000-5FFF. + Standardmäßig befindet sich in diesem Adressbereich RAM. + Über das Bit 1 des IO-Ports 14h kann der ROM in den Vordergrund + geholt und somit der BASIC-Interpreter in dem Adressbereich sichtbar + gemacht werden. +

+ Mit den im Emulator integrierten SCCH-Monitorprogrammen können + Sie das BASIC mit dem Kommando b direkt aufrufen (Kaltstart). + Dabei wird auch der BASIC-ROM in den Vordergrund geholt. + Einen Warmstart des Interpreters führen Sie mit dem Kommando + r aus. +

+ +

3.2. Speichern von BASIC-Programmen

+ JKCEMU bietet eine spezielle Unterstützung für das Speichern + und Laden von AC1-BASIC- und Mini-BASIC-Programmen. + Zum Speichern nutzen Sie bitte die entsprechende Funktion im Menü + Datei, Untermenü BASIC-Programm + bzw. Mini-/Tiny-BASIC-Programm, + und speichern das Programm als + Headersave-Datei + mit dem Dateityp B (AC1- oder Grafik/Sound-BASIC-Programm) + bzw. b (Mini-BASIC-Programm). +

+ Nur wenn Sie das BASIC-Programm so speichern, + werden beim Laden des Programms die Systemzellen des + BASIC-Interpreters richtig angepasst. + In jedem anderen Fall können Sie zwar das BASIC-Programm laden, + aber im Interpreter nicht richtig nutzen. +

+ +

3.3. Anzeige eines im Arbeitsspeichers befindlichen BASIC-Programms

+ Der Emulator bietet im Menü Datei, + Untermenü BASIC-Programm, eine Funktion zum Anzeigen + des im Arbeitsspeichers befindlichen BASIC-Programms im Texteditor. + Da die Schlüsselwörter im BASIC-Programm in Form von Tokens + gespeichert werden, + muss JKCEMU die Tokens in ihre textuelle Form wandeln. + Allerdings unterscheiden sich die Tokens bei den verschiedenen + BASIC-Interpretern. + Aus diesem Grund werden die Tokens entsprechend + folgender Regel expandiert: + diff --git a/src/help/bcs3.htm b/src/help/bcs3.htm index 4a2d366..2736bc4 100644 --- a/src/help/bcs3.htm +++ b/src/help/bcs3.htm @@ -2,64 +2,132 @@

Hinweise zur Emulation des BCS3

-

Emulierte Hardware

+

1. Emulierte Hardware



-

Im ROM enthaltene Software

+

1.1. Kassettenrecorderanschluss

+ Der Kassettenrecorderanschluss wird ausgangsseitig vom gleichen + CTC-Kanal bedient, der auch die Zeilensynchronimpulse für + die Bildschirmausgabe liefert. + Aus diesem Grund hören Sie ein Pfeifen, wenn Sie eine + Audio-Funktion + zur Ausgabe von Tönen aktivieren. + Das Pfeifen sind die mit halber Frequenz ausgegebenen + Zeilensynchronimpulse. + Erst beim BASIC-Befehl SAVE werden die für die + Datenspeicherung bekannten Töne erzeugt. + Sobald das BASIC-Programm auf dem Kassettenrecorderanschluss + ausgegeben wurde, wird die Bildausgabe wieder aktiv, + und Sie hören auch wieder das Pfeifen. +

+ Achtung! BASIC-SE 2.4 enthält keine Unterstützung + für das Speichern und Laden auf Kassette. + Die Befehle LOAD und SAVE springen zur Adresse + 0800 bzw.0803, d.h., außerhalb des ROM-Bereichs. + Man kannt dort seine eigenen Routinen zum Laden und Speichern installieren. + Da sich dort aber standardmäßig kein gültiger Programmcode + befindet, führen die Befehle LOAD und SAVE + zu einem undefinierten Verhalten. +

+ + +

2. Im ROM enthaltene Software

Je nach Einstellung:


-

Hinweise zu BASIC-SE 3.1

+

2.1. Hinweise zu BASIC-SE 3.1 und S/P-BASIC V3.2

+

+ + +

3. Sonstiges

+ +

3.1. Speichern und Laden von BASIC-Programmen

+ Speichern Sie die BASIC-Programme mit der entsprechenden Funktion + des Emulator (Menü Datei → + BASIC-ProgrammSpeichern...). + Da das BASIC-Programm abhängig von der sichtbaren Zeilenzahl + eventuell auf eine andere Adresse wieder eingeladen werden muss, + sollte die Ladeadresse nicht in der Datei stehen. + Verwenden Sie deshalb am besten + Speicherabbilddateien ohne Kopfdaten + (BIN-Dateien). +

+ Beim Laden eines BASIC-Programms sollten Sie immer so vorgehen, + dass der Dialog mit den Ladeoptionen angezeigt wird + (siehe Ladeoptionen). + JKCEMU ermittelt nämlich die zuverwendende Ladeadresse + und schreibt sie in das entsprechende Feld in den Ladeoptionen. + Dazu muss aber der Dialog auch angezeigt werden. + Bei Speicherabbilddateien ohne Kopfdaten ist das immer der Fall. +

+ +

3.2. JKCEMU BASIC-Compiler

+ Der BCS3 ist von seinem Konzept her als reiner BASIC-Rechner ausgelegt. + Zur Verwaltung und Benutzung von Maschinencodeprogrammen, + d.h. von solchen Programmen, die auch ein BASIC-Compiler erzeugt, + bieten die verschiedenen Betriebssystemversionen des BCS3 + keine Unterstütztung. + Aus diesem Grund kann auch der JKCEMU BASIC-Compiler keinen + Programmcode für den BCS3 erzeugen. diff --git a/src/help/bcs3/basic_se24.htm b/src/help/bcs3/basic_se24.htm new file mode 100644 index 0000000..65dfece --- /dev/null +++ b/src/help/bcs3/basic_se24.htm @@ -0,0 +1,214 @@ + + +

BASIC-SE 2.4

+ BASIC-SE 2.4 ist ein einfacher BASIC-Dialekt + mit einer 16-Bit-Ganzzahlarithmetik. +

+ +

Kommandos

+ + + + +
LISTProgramm anzeigen
NEWProgramm löschen
RUNProgramm starten
+

+ +

Zeilenformat, Eingabe einer Programmzeile

+ Eine Programmzeile beginnt mit der Zeilennummer (1 bis 9998), + gefolgt von einer oder mehreren Anweisungen, + die durch Semikolon zu trennen sind. + Die Zeile 9999 END wird automatisch angehängt. +

+ +

Zahlenformat

+ Die Zahlen (immer Ganzzahlen) werden mit 1 Bit Vorzeichen + und 15 Bit Betrag dargestellt, also nicht im Zweierkompliment. +

+ +

Konstanten

+ + + +
Dezimalzahlen:-32627 bis 32627
Hexadezimale Zahlen:0 bis 0FFFH
+

+ +

Variablen

+ Variablennamen bestehen aus einem oder zwei Buchstaben. + Die Namen IF, OR und alle, + die mit dem Buchstaben H beginnen, sind verboten. +

+ +

Operationen

+ + + + + + + + + + + + + + + + + + + + +
*Multiplikation
/Division, rundet immer ab
-Suktraktion
+Addition
ORBitweises Inklusiv-ODER
ANDBitweises UND
> + Größer als,
+ Ergebnis ist 0 oder 1.
< + Kleiner als,
+ Ergebnis ist 0 oder 1.
+
+ Weiter oben stehende Operationen haben Vorrang, + d.h., wenn in einem numerischen Ausdruck alle 8 Operationen + vorkommen, wird die Multiplikation zuerst und der Vergleich + Größer als zuletzt ausgeführt. + Durch runde Klammern lässt sich eine andere + Ausführungsreihenfolge erzwingen. +

+ +

Anweisungen

+ + + + Bildschirm löschen + + + + + Programm beenden,
+ Die Zeile 9999 END wird automatisch angefügt. + + + + + + Aufruf eines Unterprogramms,
+ Die Zeilennummer kann auch als variabler numerischer Ausdruck + angegeben werden. + + + + + + Sprung zu einer Programmzeile,
+ Die Zeilennummer kann auch als variabler numerischer Ausdruck + angegeben werden. + + + + + + Bedingte Programmausführung,
+ Hat der Ausdruck einen Wert ungleich Null, + werden die hinter THEN stehenden Anweisungen ausgeführt. + + + + + + Eingabe von Zahlen und Schreiben des eingegebenen Wertes + in eine Variable,
+ Die Bildschirmausgabe ist bei der PRINT-Anweisung beschrieben. + + + + + + + + + + + + + + + + + + + + + + + + + + +
AnweisungBedeutung
CLEAR
END
GOSUB <Zeilennummer>
GOTO <Zeilennummer>
+ IF <Numerischer Ausdruck> THEN <Anweisungen> +
+ INPUT [ <String-Literal> , ] + [ <Leerzeichenausdruck> , ] Variable> [ , ... ]
+ LET <Variable> = <Numerischer Ausdruck> + Wertzuweisung,
+ Das Schlüsselwort LET kann weggelassen werden. +
+ OUT <Port-Adresse> , <Numerischer Ausdruck> + + Der Wert des numerischen Ausdrucks wird auf dem angegebenen + IO-Port ausgegeben. +
+ POKE <Adresse> , <Numerischer Ausdruck> + + Der Wert des numerischen Ausdrucks wird in die Speicherzelle + mit der angegebenen Adresse geschrieben. +
+ PRINT [ <String-Literal> ] [ , ] + [ <Leerzeichenausdruck> ] [ , ] + [ [ BYTE ] <Numerischer Ausdruck> ] [ , ... ] + + Ausgabe auf dem Bildschirm:
+
    +
  • String-Literal:
    + In einfachen Quote-Zeichen eingeschlossene Zeichenkette +
  • Leerzeichenausdruck:
    + Syntax: # <Numerischer Ausdruck>
    + Es werden so viele Leerzeichen ausgegeben, + wie der Wert des numerischen Ausdrucks ist. +
  • BYTE:
    + Steht vor einem numerischen Ausdruck das Schlüsselwort + BYTE, wird das niederwertige Byte des Wertes hexadezimal + ausgegeben. +
+
REM <Kommentar> + Der hinter REM stehende Text wird bis zum nächsten Semikolon + bzw. bis zum Zeilenende als Kommentar gewertet. +
RETURNBeenden eines Unterprogramms
+

+ +

Funktionen

+ + + + + + + + + + + + + + +
FunktionBedeutung
IN( <Port-Adresse> )Lesen des angegebenen IO-Ports
PEEK( <Port-Adresse> )Lesen der angegebenen Speicherzelle
RND( <Numerischer Ausdruck> ) + Ermitteln einer Zufallszahl zwischen 1 und dem angegebenen Ausdruck + (max. 255) +
+

+ +

Literatur

+ Schiller, Eckhard: Basic-Heimcomputer,
+ in radio fernsehen elektronik, Heft 1/1985, S. 13-18,
+ Berlin 1985 + + + diff --git a/src/help/bcs3/basic_se31.htm b/src/help/bcs3/basic_se31.htm new file mode 100644 index 0000000..b447f8c --- /dev/null +++ b/src/help/bcs3/basic_se31.htm @@ -0,0 +1,339 @@ + + +

BASIC-SE 3.1

+ BASIC-SE 3.1 ist ein BASIC-Dialekt mit einer 16-Bit-Ganzzahl- + und einer 32-BIT-Fließkommaarithmetik sowie String-Verarbeitung. +

+ +

System-Start

+ Nach einem Kaltstart müssen Sie als erstes die Anzahl + der sichtbaren Zeilen eingeben. + Erst danach gelangen Sie in den Kommandomodus. +

+ +

Kommandos

+ + + + + + + + + + +
LISTProgramm anzeigen
LOADLaden von Kassette
NEWProgramm löschen
RUNProgramm starten
SAVEProgramm auf Kassette speichern
SAVEDProgramm und nachfolgenden RAM-Bereich auf Kassette speichern
+

+ +

Zeilenformat, Eingabe einer Programmzeile

+ Eine Programmzeile beginnt mit der Zeilennummer (1 bis 9998), + gefolgt von einer oder mehreren Anweisungen, + die durch Doppelpunkt zu trennen sind. + Die Zeile 9999 END wird automatisch angehängt. +

+ +

Datentypen

+ Es gibt Integer- (Ganzzahlen mit einem Betrag kleiner 32628) + und Fließkommazahlen sowie Zeichenketten (Strings). +

+ +

Konstanten

+ + + + + + + + + + + + + +
Integerzahlen:-32627 bis 32627
Fließkommazahlen:0.0000001 bis 9999999
Hexadezimale Zahlen: + Beginen mit einer Ziffer und enden mit einem H,
+ z.B.: 0F000H +
String-Literal: + In einfachen Quote-Zeichen eingeschlossene Zeichenkette
+ z.B. 'ABC' +
+

+ +

Variablen

+ Numerische Variablen können mit einem Buchstaben, zwei Buchstaben + oder einem Buchstaben und einer Ziffer bezeichnet werden. + Außdem sind auch ein- und zweidimensionale Felder möglich. +

+ Die Namen der String-Variablen bestehen aus einem Buchstaben + und dem Währungssymbol. +

+ Numerische Felder sowie String-Variablen müssen + mit der DIM-Anweisung deklariert werden. +

+ +

Operationen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
*Multiplikation
/Division
-Suktraktion
+Addition
ORBitweises Inklusiv-ODER
ANDBitweises UND
> + Größer als
+ Ergebnis ist 0 oder 1.
< + Kleiner als
+ Ergebnis ist 0 oder 1.
# + Ungleich
+ Ergebnis ist 0 oder 1.
= + Gleich
+ Ergebnis ist 0 oder 1.
+
+ Weiter oben stehende Operationen haben Vorrang, + d.h., wenn in einem numerischen Ausdruck alle 10 Operationen + vorkommen, wird die Multiplikation zuerst und der Test auf Gleichheit + zuletzt ausgeführt. + Diese Vorrangreihenfolge entspricht aber nicht in allen Punkten + den mathematischen Regeln! + Außerdem ist BASIC-SE 3.1 an der Stelle auch nicht ganz fehlerfrei. + Aus diesem Grund sollte man die Ausführungsreihenfolge + mit Hilfe runder Klammern selbst festlegen. +

+ +

Anweisungen

+ + + Bildschirm löschen + + + Datenbereich (Liste von Zahlen und/oder Zeichenketten) + + + + + Deklarieren und Dimensionieren von Feld- und String-Variablen,
+ Beispiel: DIM A(5), B2(6,7), C$(10) + + + + + + Programm beenden,
+ Die Zeile 9999 END wird automatisch angefügt. + +
+ + + + + + + + Aufruf eines Unterprogramms,
+ Die Zeilennummer kann auch als variabler numerischer Ausdruck + angegeben werden. + +
+ + + + Sprung zu einer Programmzeile,
+ Die Zeilennummer kann auch als variabler numerischer Ausdruck + angegeben werden. + +
+ + + + Bedingte Programmausführung,
+ Hat der Ausdruck einen Wert ungleich Null, + werden die hinter THEN stehenden Anweisungen ausgeführt. + +
+ + + + Eingabe von Zahlen und Schreiben des eingegebenen Wertes + in eine Variable + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AnweisungBedeutung
CLS
DATA <Ausdruck> [ , ... ]
DIM
END
+ FOR <Startwert> TO <Endwert> + [ STEP <Schritweite> ] + Beginn einer Schleife
GOSUB <Zeilennummer>
GOTO <Zeilennummer>
+ IF <Numerischer Ausdruck> THEN <Anweisungen> +
+ INPUT [ <String-Literal> , ] Variable> [ , ... ]
+ LET <Variable> = <Ausdruck> [ , ... ] + Wertzuweisung,
+ Das Schlüsselwort LET kann weggelassen werden. +
NEXTEnde einer FOR-Schleife
+ OUT <Port-Adresse> , <Wert> [ , <Wert> [ , ... ] ] + Ausgabe des Wertes oder der Werte auf dem angegebenen IO-Port
PLOT <x> , <y> + Setzen eines Bildpunktes mit Hilfe der Pseudografik,
+ Eine Zeichenstelle ist dabei in vier Bildpunkte unterteilt. +
+ POKE <Adresse> , <Wert> [ , <Wert_2> [ , ... ] ] + + Der Wert wird in die angegebene Speicherzelle geschrieben, + Wert 2 in Speicherzelle + 1 usw. +
+ PRINT [ <Ausdruck> ] [ , ... ] [;] + + Ausgabe auf dem Bildschirm,
+ Ausdruck: Numerischer oder Zeichenkettenausdruck,
+ Steht vor einem Integer-Ausdruck ein Prozentzeichen, + wird der Wert hexadezimal ausgegeben. +
READ <Variable> [ , <Variable> + Lesen des nächsten Elements oder der nächsten Elemente + des mit DATA erzeugten Datenbereichs in die angegebenen + Variablen,
+ Der Lesezeiger wird entsprechend weitergesetzt. +
REM <Kommentar> + Der hinter REM stehende Text wird als Kommentar gewertet. +
RESTOREZurücksetzen des Lesezeigers für READ
RETURNBeenden eines Unterprogramms
UNPLOT <x> , <y> + Zurücksetzen eines Bildpunktes mit Hilfe der Pseudografik,
+ Eine Zeichenstelle ist dabei in vier Bildpunkte unterteilt. +
+

+ +

Funktionen

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FunktionBedeutung
CHR$( <Numerischer Ausdruck> )Ermitteln des ACSII-Zeichens, dessen Wert der Ausdruck hat
IN( <Port-Adresse> )Lesen des angegebenen IO-Ports
INKEY$ + Abfrage der Tastatur,
+ Ist eine Taste gedrückt, wird das Zeichen zurückgegeben. +
INT( <Numerischer Ausdruck> ) + Ermitteln der nächst kleineren ganzen Zahl,
+ Ist der Betrag des Wertes kleiner 32628, + wird intern die Fließkomma- in eine Integer-Zahl gewandelt. +
LEN( <String-Ausdruck> )Ermitteln der Länge eines Strings
PEEK( <Port-Adresse> )Lesen der angegebenen Speicherzelle
RNDErmitteln einer Zufallszahl zwischen 0 und 0.9999
USR( <Adresse> ) + Aufruf eines Maschinencodeunterprogramms
+ Der Rückgabewert ist der Inhalt der Register CBLH. +
+

+ +

Fehlermeldungen

+ + + + + + + + + + + +
@Weder Zahl noch Schlüsselwort
AArithmetikfehler
BSyntaxfehler
DDATA fehlt
FFunktion und Anweisung verwechselt
IKeine Integer-Zahl
MSpeicher voll
UÜberlauf bei PLOT/UNPLOT oder Feldern
$ (Währungssymbol)Keine Zeichenkette
= ()Dieses Zeichen fehlt
+

+ +

Literatur

+ Schiller, Eckhard: Erweiterungen für Basic-Heimcomputer,
+ in radio fernsehen elektronik, Heft 9/1986, S. 559-563,
+ Berlin 1986 + + + diff --git a/src/help/bcs3/mc_editor.htm b/src/help/bcs3/mc_editor.htm new file mode 100644 index 0000000..5c95651 --- /dev/null +++ b/src/help/bcs3/mc_editor.htm @@ -0,0 +1,83 @@ + + +

Maschinenkode-Editor

+ Torsten Musiol hat für den BCS3 einen Maschinenkode-Editor + entwickelt, der auch im Emulator integriert ist. + Da dieser Maschinenkode-Editor nur mit BASIC-SE 3.1 + f&ür 29 Zeichen pro Zeile korrekt läuft, + ist er auch nur bei dieser BASIC-Version als ROM + im Arbeitsspeicher verfügbar. +

+ Der Maschinenkode-Editor erfordert mindestens 20 sichtbare Zeilen. + Stellen Sie bitte beim Kaltstart von BASIC.SE 3.1 + eine entsprechende Zeilenzahl ein. +

+ +

Aufruf

+ Geben Sie im BASIC-SE 3.1 folgende Zeile ein:

+ Y=USR(0F000H)

+ Der Maschinenkode-Editor meldet sich mit: EDIT>
+ Sie befinden sich nun in der Kommandoschleife. +

+ +

Kommandos

+ + + + + + Go
+ Start eines Maschinencodeunterprogramms + ab der angegebenen Adresse.
+ Bei einem RETURN-Befehl wird in die Kommandoschleife + zurückgesprungen. + + + + + + + + + + Substitute
+ Beschreiben von Speicherzellen ab der angegebenen Adresse,
+ Mit den Tasten O, L, I und P + können Sie den Cursor auf die gewünschte + Speicherzelle setzen. + Geben Sie nun das zu schreibende Byte hexadezimal ein + und drücken die ENTER-Taste. + Die Taste Q führt in die Kommandoschleife zurück. + + + + + + Test
+ Wie Kommando G, nur mit dem Unterschied, + dass bei Rückkehr aus dem Maschinencodeunterprogramm + die Register AF, BC, DE und HL ausgegeben werden. + + + + + + Quit
+ Rückkehr zu BASIC-SE 3.1 + + +
KommandoBedeutung
G<Adresse>
M<Adr1>-<Adr2>-<Adr3> + Move
+ Kopieren des Speicherbereichs von <Adr1> bis <Adr2> + nach <Adr3>,
+ Die Speicherbereiche können sich überlappen. +
S<Adresse>
T<Adresse>
Q
+

+ +

Literatur

+ Musiol, Torsten: Maschinenkode-Editor,
+ in radio fernsehen elektronik, Heft 1/1989, S. 50-52,
+ Berlin 1989 + + + diff --git a/src/help/bcs3/sp_basic_32.htm b/src/help/bcs3/sp_basic_32.htm new file mode 100644 index 0000000..33680eb --- /dev/null +++ b/src/help/bcs3/sp_basic_32.htm @@ -0,0 +1,90 @@ + + +

S/P-BASIC V3.2

+ S/P-BASIC V3.2 ist eine von Frank Prüfer geschaffene + Weiterentwicklung von BASIC-SE 3.1. + Nachfolgend wird nur auf die wesentlichen Unterschiede eingegangen. +

+ +

Ausführungsreihenfolge der Operationen

+ Die Ausführungsreihenfolge wurde geändert, + entspricht aber wie bei BASIC-SE 3.1 auch nicht den mathematischen Regeln. + Deshalb ist es ratsam, + die Ausführungsreihenfolge durch runde Klammern selbst festzulegen. +

+ +

Neue und geänderte Anweisungen

+ + + + + + Aufruf eines Maschinencodeunterprogramms ohne Rückgabe + eines Wertes + + + + + + + + + + Festlegen eines zufälligen Startwertes + für den Zufallszahlengenerator (RND-Funktion) + + +
AnweisungBedeutung
CALL <Adresse> [ , ... ]
PRINT [... [, ...]] [;] + Bei PRINT ist ein Konstrukt zur Ausgabe von Leerzeichen + hinzugekommen:
+ & <Ausdruck>
+ Es werden so viele Leerzeichen ausgegeben, + wie der Wert des Ausdrucks ist. +
RANDOMIZE
+

+ +

Neue und geänderte Funktionen

+ + + + + + + + + + +
FunktionBedeutung
ASC( <String-Ausdruck> ) + Ermitteln des ACSII-Codes des ersten Zeichens + der übergebenen Zeichenkette
+ USR( <Adresse> )
+ USR( <Adresse> , <Wert> ) +
+ Aufruf eines Maschinencodeunterprogramms mit Rückgabe + eines Wertes in den Registern CBHL,
+ Außerdem ist auch die Übergabe eines Wertes + in diesen Registern möglich. +
+

+ +

Neue und geänderte Fehlermeldungen

+ + + + + + + + + + + + +
UUndefiniertes Zeichen, weder Zahl noch Schlüsselwort
SSyntaxfehler
OÜberlauf bei PLOT/UNPLOT oder Feldern
LZeile nicht gefunden
T + Lesen von Magnetband fehlgeschlagen,
+ Sie sollten mit NEW alles neu initialiseren. +
+

+ + + diff --git a/src/help/emusys.htm b/src/help/emusys.htm index fb93edd..31f188c 100644 --- a/src/help/emusys.htm +++ b/src/help/emusys.htm @@ -4,10 +4,71 @@

Emulierte Systeme

+

+ +

RAM

+ Der Arbeitsspeicher der emulierten Systeme liegt mit einigen Ausnahmen + in einem globalen RAM-Bereich, d.h. es wird für alle Systeme + physisch der gleiche Speicher verwendet. + Sie können so z.B. in der Z1013-Emulation eine Datei in den RAM laden, + anschließend in den Einstellungen + auf Z9001 umstellen, + und die Datei befindet sich dann im Z9001-Arbeitsspeicher. +

+ Spezielle Speicherbereiche, z.B. Bildwiederholspeicher, + werden jedoch nicht gemeinsam genutzt, da das kaum sinvoll ist. +

+ +

Deutsche Umlaute

+ Manche emulierten Systeme kennen deutsche Umlaute, andere wiederum nicht. + Wenn ein Zeichensatz deutsche Umlaute enthält, + dann anstelle von einigen ASCII-Zeichen + (war damals so üblich, siehe auch deutsche Variante von ISO646). + Die deutschen Umlaute haben somit die gleichen Codes wie einige + ASCII-Zeichen. + Aus diesem Grund mappt auch JKCEMU die Umlaute auf die Codes + der entsprechenden ASCII-Zeichen. + Wenn Sie z.B. ein ä eingeben, + erzeugt der Emulator den Code 5Bh, + der auch für das ASCII-Zeichen [ steht. + Wenn nun der Zeichensatz deutsche Umlaute enthält, + sehen Sie das ä, + anderenfalls die öffnende eckige Klammer. +

+ Im umgekehrten Fall, d.h. wenn Sie die Bildschirmaugabe + des emulierten Systems in eine Textdatei speichern + oder als Text in die Zwischenablage kopieren, + wandelt JKCEMU die Umlaute wieder in die Codes + des Systemzeichensatzes um, jedoch nur, + wenn der Zeichensatz auch Umlaute enthält. +

+ Die Tabelle zeigt die Codes, + die sowohl für deutsche Umlaute als auch für ASCII-Zeichen + stehen können: +
+ + + + + + + + + + + + + + + +
Dezimal-CodeHex-CodeASCII-ZeichenUmlaut
6440@§
915B[Ä
925C\Ö
935D]Ü
1237B{ä
1247C|ö
1257D}ü
1267E~ß
+

diff --git a/src/help/hemc.htm b/src/help/hemc.htm new file mode 100644 index 0000000..0597e57 --- /dev/null +++ b/src/help/hemc.htm @@ -0,0 +1,20 @@ + + +

Hinweise zur Emulation des Hübler/Evert-MC

+ +

1. Emulierte Hardware

+ +

+ +

2. Im ROM enthaltene Software

+ +

+ + + diff --git a/src/help/index.htm b/src/help/index.htm index 985d424..d594976 100644 --- a/src/help/index.htm +++ b/src/help/index.htm @@ -22,6 +22,7 @@

B

  • BASIC-Programme laden und speichern
  • BASIC-Programm aus KCC-/KC-TAP-Datei extrahieren +
  • BCS3
  • Bildbetrachter
  • BIN-Format (Speicherabbilddateien)
  • Browser (Datei-Browser) @@ -96,6 +97,7 @@

    K

  • KCC-Format
  • Klammer prüfen
  • Koventionen +
  • Kramer-MC
    diff --git a/src/help/kc85.htm b/src/help/kc85.htm index e645d84..c81ff0c 100644 --- a/src/help/kc85.htm +++ b/src/help/kc85.htm @@ -2,12 +2,12 @@

    Hinweise zur Emulation des KC85/2...4

    -

    Emulierte Hardware

    +

    1. Emulierte Hardware

    Emuliert werden die Grundgeräte inklusive Tongeneratoren und Kassettenrecorderanschluss. Der emulierte Speicher beträgt bei: