Skip to content

Commit

Permalink
***** JKCEMU Version 0.3 vom 24.02.2009 *****
Browse files Browse the repository at this point in the history
    * Emulation des Kramer-MC hinzugefügt
    * Emulation des Hübler/Evert-MC hinzugefügt
    * AC1:
        o Emulation des Ur-AC1 hinzugefügt (64x16 Zeichen, 1 KByte SRAM,
          U402-Zeichensatz)
        o SCCH-Monitor 8.0 integriert
        o Grafik/Sound-BASIC-Interpreter V3.2 integriert
    * BCS3:
        o S/P-BASIC V3.2 integriert
        o Maschinenkode-Editor für BASIC-SE 3.1 integriert
    * KC85/2..4:
        o Zeitregime an den CTC-Eingängen verbessert
        o Optional wird auch das Zeitverhalten der Bilderzeugung emuliert.
          Dadurch sind manche speziell programmierte Effekte zu sehen.
    * Z1013:
        o Explizite Auswahl nach Z1013.01, Z1013.12, Z1013.16 und Z1013.64
          hinzugefügt,
          Damit können nun auch 1 KByte RAM emuliert werden.
        o Bei 64x16 Zeichen werden nun wie beim Original leere Zwischenzeilen
          angezeigt.
    * Assembler versteht für den Zugriff auf das niederwertige bzw.
      höherwertige Byte nun auch die Syntax LOW(<Ausdruck>) und HIGH
      (<Ausdruck>).
    * Reassembler:
        o Systemaufrufe werden erkannt und entsprechend reassembliert.
        o Suchen und Drucken hinzugefügt
    * Hex-Dateivergleich: Anzahl der unterschiedlichen Bytes wird mit
      ausgegeben.
    * Hex-Editor: Markierte Bytes können als Hex-String in die Zwischenablage
      kopiert werden.
    * Rechner: Vorzeichen ~ hinzugefügt (bitweise Negation)
    * Speicheransicht: Suchen und Drucken hinzugefügt
    * Beim Extrahieren von Text aus der Bildschirmausgabe (Kopieren, Speichern,
      im Texteditor anzeigen) werden entsprechend des Zeichensatzes auch die
      Zeichen konvertiert (z.B. deutsche Umlaute).
    * Möglichkeit zum Einfügen von Text in der Bildschirmausgabe hinzugefügt,
      Damit kann Text an das im Emulator laufende Programm übergeben werden.
    * Hilfe erweitert und korrigiert
    * Bugfixes:
        o BCS3:
            # Einstellung der RAM-Größe war wirkungslos.
            # Zeichensätze und Darstellung der Zeichen berichtigt
        o Z9001: Tastatureingaben mit Shift und Control funktionierten nur
          bei jedem zweiten Tastendruck.
        o Z80:
            # Interrupt-System berichtigt,
              Damit funktioniert beim Z9001 nun auch die
              Kassettenschnittstelle richtig sowie die Tastatur wieder.
            # HALT-Befehl: Nach Rückkehr aus einer Interrupt-Routine wurde
              der PC wieder auf den HALT-Befehl anstelle auf den ersten
              Befehl hinter HALT gesetzt.
            # Flagverhalten bei ADD, ADC, SUB, SBC, NEG, DAA und DJNZ
              berichtigt,
              ZEXDOC_und_ZEXALL melden keine Fehler mehr.

Originated-by: jkcemu-src-0.3.zip
Originated-md5: 06b7231f10fd54d2a82671d5ebb797ab
Originated-URL: http://www.jens-mueller.org/jkcemu/download/jkcemu-src-0.3.zip

Signed-off-by: Stephan Linz <linz@li-pro.net>
  • Loading branch information
Jens Müller authored and rexut committed Feb 24, 2009
1 parent c217831 commit e7d5375
Show file tree
Hide file tree
Showing 94 changed files with 8,414 additions and 3,248 deletions.
7 changes: 2 additions & 5 deletions cmd/compile.bat
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
14 changes: 4 additions & 10 deletions cmd/compile.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand All @@ -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

11 changes: 6 additions & 5 deletions cmd/makejar.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand All @@ -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 \
Expand Down
112 changes: 93 additions & 19 deletions src/help/ac1.htm
Original file line number Diff line number Diff line change
Expand Up @@ -2,36 +2,110 @@
<body>
<h1>Hinweise zur Emulation des AC1</h1>

<h2>Emulierte Hardware</h2>
<h2>1. Emulierte Hardware</h2>
<ul>
<li>4 KByte ROM f&uuml;r Monitorprogramm und Mini-BASIC
<li>2 KByte Bildwiederholspeicher
<li>2 KByte SRAM
<li>64 KByte DRAM
<li>64x32 Zeichen Bildschirmgr&ouml;&szlig;e
<li>CTC mit ein Verbindung Ausgang Kanal 0 auf Eingang Kanal 1
<li>Bei eingestellten 64x16 Zeichen Bildschirmgr&ouml;&szlig;e (Ur-AC1):
<ul>
<li>4 KByte ROM f&uuml;r Monitorprogramm und Mini-BASIC
<li>1 KByte Bildwiederholspeicher
<li>1 KByte SRAM
</ul>
<li>Bei eingestellten 64x32 Zeichen Bildschirmgr&ouml;&szlig;e:
<ul>
<li>4 KByte ROM f&uuml;r Monitorprogramm und Mini-BASIC
<li>8 KByte Hintergrund-ROM f&uuml;r Grafik/Sound-BASIC
<li>2 KByte Bildwiederholspeicher
<li>2 KByte SRAM
<li>64 KByte DRAM
<li>Eine RAM-Floppy nach Zeitschrift
<em>Mikroprozessortechnik</em> Heft 3/1988
an der IO-Basis-Adresse E0h (RAM-Floppy A)
</ul>
<li>CTC mit Verbindung von Ausgang Kanal 0 auf Eingang Kanal 1
<li>Kassettenrecorderanschluss
<li>Eine RAM-Floppy nach Zeitschrift <em>Mikroprozessortechnik</em>
Heft 3/1988 an der IO-Basis-Adresse E0h (RAM-Floppy A)
</ul>
<br><br>

<h2>Im ROM enthaltene Software</h2>
<h3>1.1. Hinweise zum DRAM</h3>
Bei 64x32 Zeichen Bildschirmgr&ouml;&szlig;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&uuml;r das Monitorprogramm,
Bildwiederholspeicher und SRAM k&ouml;nnen &uuml;ber die IO-Ports
14h sowie 1Ch bis 1Fh ein- und wieder ausgeblendet werden.
<br><br>


<h2>2. Im ROM enthaltene Software</h2>
<ul>
<li>Je nach Einstellung Monitorprogramm Version 3.1
oder SCCH-Monitor 10/88
<li>Je nach Einstellung Monitorprogramm Version 3.1,
SCCH-Monitor 8.0 oder SCCH-Monitor 10/88
<li>Mini-BASIC Version 2.1
(nur in Verbindung mit Monitorprogramm Version 3.1)
<li>Grafik/Sound-BASIC Version 3.2
(nur bei 64x32 Zeichen Bildschirmgr&ouml;&szlig;e)
</ul>
<br><br>

<h2>Hinweise zum DRAM</h2>
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&ouml;nnen &uuml;ber die IO-Ports 1C bis 1F
ein- und wieder ausgeblendet werden.

<h2>3. BASIC</h2>

<h3>3.1. Grafik/Sound-BASIC</h3>
Der Grafik/Sound-BASIC-Interpreter Version 3.2 liegt
in einem Hintergrund-ROM im Adressbereich 4000-5FFF.
Standardm&auml;&szlig;ig befindet sich in diesem Adressbereich RAM.
&Uuml;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.
<br><br>
Mit den im Emulator integrierten SCCH-Monitorprogrammen k&ouml;nnen
Sie das BASIC mit dem Kommando <em>b</em> direkt aufrufen (Kaltstart).
Dabei wird auch der BASIC-ROM in den Vordergrund geholt.
Einen Warmstart des Interpreters f&uuml;hren Sie mit dem Kommando
<em>r</em> aus.
<br><br>

<h3>3.2. Speichern von BASIC-Programmen</h3>
JKCEMU bietet eine spezielle Unterst&uuml;tzung f&uuml;r das Speichern
und Laden von AC1-BASIC- und Mini-BASIC-Programmen.
Zum Speichern nutzen Sie bitte die entsprechende Funktion im Men&uuml;
<em>Datei</em>, Untermen&uuml; <em> BASIC-Programm</em>
bzw. <em>Mini-/Tiny-BASIC-Programm</em>,
und speichern das Programm als
<a href="fileformats.htm#headersave">Headersave</a>-Datei
mit dem Dateityp <tt>B</tt> (AC1- oder Grafik/Sound-BASIC-Programm)
bzw. <tt>b</tt> (Mini-BASIC-Programm).
<br><br>
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&ouml;nnen Sie zwar das BASIC-Programm laden,
aber im Interpreter nicht richtig nutzen.
<br><br>

<h3>3.3. Anzeige eines im Arbeitsspeichers befindlichen BASIC-Programms</h3>
Der Emulator bietet im Men&uuml; <em>Datei</em>,
Untermen&uuml; <em>BASIC-Programm</em>, eine Funktion zum Anzeigen
des im Arbeitsspeichers befindlichen BASIC-Programms im Texteditor.
Da die Schl&uuml;sselw&ouml;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:
<ul>
<li>Ist in den <a href="settings.htm">Einstellungen</a>
die AC1-Option <em>Monitorprogramm 3.1</em> aktiviert,
werden die Tokens entsprechend dem
AC1-BASIC-Interpreter Version 1.1 von Frank Heyder expandiert.
<li>Ist in den <a href="settings.htm">Einstellungen</a>
eine AC1-Option mit einem SCCH-Monitorprogramm aktiviert,
werden die Tokens entsprechend dem
Grafik/Sound-BASIC-Interpreter Version 3.2
von Eckhard Ludwig expandiert.
</ul>
</body>
</html>

120 changes: 94 additions & 26 deletions src/help/bcs3.htm
Original file line number Diff line number Diff line change
Expand Up @@ -2,64 +2,132 @@
<body>
<h1>Hinweise zur Emulation des BCS3</h1>

<h2>Emulierte Hardware</h2>
<h2>1. Emulierte Hardware</h2>
<ul>
<li>Je nach Einstellung 2 oder 4 KByte ROM
<li>1 KByte RAM
<li>Kassettenrecorderanschluss
<li>Optional eine Speichererweiterung mit 16 oder 32 KByte RAM<br>
<li>Optional eine Speichererweiterung mit 16 KByte RAM<br>
Die Speichererweiterung liegt in einem globalen RAM-Bereich und
wird f&uuml;r alle emulierten Systeme gemeinsam genutzt.
</ul>
<br><br>

<h2>Im ROM enthaltene Software</h2>
<h3>1.1. Kassettenrecorderanschluss</h3>
Der Kassettenrecorderanschluss wird ausgangsseitig vom gleichen
CTC-Kanal bedient, der auch die Zeilensynchronimpulse f&uuml;r
die Bildschirmausgabe liefert.
Aus diesem Grund h&ouml;ren Sie ein Pfeifen, wenn Sie eine
<a href="audio.htm">Audio-Funktion</a>
zur Ausgabe von T&ouml;nen aktivieren.
Das Pfeifen sind die mit halber Frequenz ausgegebenen
Zeilensynchronimpulse.
Erst beim BASIC-Befehl <em>SAVE</em> werden die f&uuml;r die
Datenspeicherung bekannten T&ouml;ne erzeugt.
Sobald das BASIC-Programm auf dem Kassettenrecorderanschluss
ausgegeben wurde, wird die Bildausgabe wieder aktiv,
und Sie h&ouml;ren auch wieder das Pfeifen.
<br><br>
<b>Achtung!</b> BASIC-SE 2.4 enth&auml;lt keine Unterst&uuml;tzung
f&uuml;r das Speichern und Laden auf Kassette.
Die Befehle <em>LOAD</em> und <em>SAVE</em> springen zur Adresse
0800 bzw.0803, d.h., au&szlig;erhalb des ROM-Bereichs.
Man kannt dort seine eigenen Routinen zum Laden und Speichern installieren.
Da sich dort aber standardm&auml;&szlig;ig kein g&uuml;ltiger Programmcode
befindet, f&uuml;hren die Befehle <em>LOAD</em> und <em>SAVE</em>
zu einem undefinierten Verhalten.
<br><br>


<h2>2. Im ROM enthaltene Software</h2>
Je nach Einstellung:<br>
<ul>
<li>BASIC-SE 2.4 f&uuml;r 27 sichtbare Zeichen pro Zeile
<li><a href="bcs3/basic_se24.htm">BASIC-SE 2.4</a>
f&uuml;r 27 sichtbare Zeichen pro Zeile und 2,5 MHz Taktfrequenz
<li><a href="bcs3/basic_se31.htm">BASIC-SE 3.1</a>
f&uuml;r 29 sichtbare Zeichen pro Zeile
und 2,5 MHz Taktfrequenz
<li>BASIC-SE 3.1 f&uuml;r 29 sichtbare Zeichen pro Zeile
und 2,5 MHz Taktfrequenz
<li>BASIC-SE 3.1 f&uuml;r 40 sichtbare Zeichen pro Zeile
<li><a href="bcs3/basic_se31.htm">BASIC-SE 3.1</a>
f&uuml;r 40 sichtbare Zeichen pro Zeile
und 3,5 MHz Taktfrequenz
<li><a href="bcs3/sp_basic_32.htm">S/P-BASIC V3.2</a>
f&uuml;r 29 sichtbare Zeichen pro Zeile
und 2,5 MHz Taktfrequenz
<li><a href="bcs3/mc_editor.htm">Maschinenkode-Editor</a>
(nur in Verbindung mit BASIC-SE 3.1
f&uuml;r 29 sichtbare Zeichen pro Zeile)
</ul>
<br><br>

<h2>Hinweise zu BASIC-SE 3.1</h2>
<h3>2.1. Hinweise zu BASIC-SE 3.1 und S/P-BASIC V3.2</h3>
<ul>
<li>Beim Systemstart pr&uuml;ft BASIC-SE 3.1,
<li>Beim Systemstart pr&uuml;ft das BASIC,
ob der Speicher bereits initialisiert ist
und f&uuml;hrt in Abh&auml;ngigkeit davon entweder
einen Kalt- oder Warmstart durch.
einen Kalt- oder Warmstart aus.
Bei einem Warmstart werden die Systemzellen im Arbeitsspeicher
nicht neu initialisiert.
Demzufolge f&uuml;hrt ein RESET gew&ouml;hnlich zu einem Warmstart,
da der Speicher bereits initialisiert ist.
<br><br>
<li>Bei einem Kaltstart m&uuml;ssen Sie als erstes
die Anzahl der sichtbaren Zeilen (3 bis 29) eingeben
die Anzahl der sichtbaren Zeilen (4 bis 29) eingeben
und <em>ENTER</em> bet&auml;tigen,
bevor Sie in die BASIC-Eingabeaufforderung gelangen.
<br><br>
<li>Der Speicherplatz f&uuml;r das BASIC-Programm beginnt hinter
dem Bildspeicher, d.h., je mehr sichtbare Zeilen es gibt,
desto weiter hinten beginnt das BASIC-Programm.
<br>
<br><br>
<b>Achtung!</b> Wenn Sie z.B. bei 8 sichtbaren Zeilen
ein BASIC-Programm speichern und es bei 12 Zeilen
wieder laden, m&uuml;ssen Sie das BASIC-Programm
auf eine andere Adresse laden, sonst &uuml;berschreiben
Sie den Bildspeicher!
ein BASIC-Programm mit den Emulatorfunktionen speichern
und es bei 12 Zeilen wieder laden,
m&uuml;ssen Sie das BASIC-Programm auf eine andere Adresse laden,
sonst &uuml;berschreiben Sie den Bildspeicher!
Und das d&uuml;rfte den BCS3 zum Absturz bringen!
Der Anfang des Speicherplatzes f&uuml;r das BASIC-Programm
steht in 3C00/3C01.
Lesen Sie die Adresse aus diesen beiden Bytes
(z.B. mit der Speicheransicht im Men&uuml; <em>Extra</em>,
Untermen&uuml; <em>Werkzeuge</em>)
und laden das BASIC-Programm auf diese Adresse.
<li>BASIC-SE 3.1 ist nicht abw&auml;rtskompatibel zur Version 2.4,
d.h., BASIC-SE-Programme der Version 2.4 laufen nicht
mit der Version 3.1.
Die Tokens und damit das Bin&auml;rformat hat sich ge&auml;ndert.
Speichern und Laden Sie deshalb die BASIC-Programme so,
wie es weiter unter beschrieben ist.
<br><br>
<li>S/P-BASIC V3.2 ist nicht abw&auml;rtskompatibel zu BASIC-SE 3.1,
und dieses ist auch nicht abw&auml;rtskompatibel zur Version 2.4,
d.h., BASIC-Programme laufen nur mit der Version,
mit der sie auch eingetippt wurden.
Die Token und damit das Bin&auml;rformat ist bei allen drei
Versionen unterschiedlich.
</ul>
<br><br>


<h2>3. Sonstiges</h2>

<h3>3.1. Speichern und Laden von BASIC-Programmen</h3>
Speichern Sie die BASIC-Programme mit der entsprechenden Funktion
des Emulator (Men&uuml; <em>Datei</em> &rarr;
<em>BASIC-Programm</em> &rarr; <em>Speichern...</em>).
Da das BASIC-Programm abh&auml;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
<a href="fileformats.htm#bin">Speicherabbilddateien ohne Kopfdaten</a>
(BIN-Dateien).
<br><br>
Beim Laden eines BASIC-Programms sollten Sie immer so vorgehen,
dass der Dialog mit den Ladeoptionen angezeigt wird
(siehe <a href="loadsave.htm#options">Ladeoptionen</a>).
JKCEMU ermittelt n&auml;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.
<br><br>

<h3>3.2. JKCEMU BASIC-Compiler</h3>
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&uuml;tztung.
Aus diesem Grund kann auch der JKCEMU BASIC-Compiler keinen
Programmcode f&uuml;r den BCS3 erzeugen.
</body>
</html>

Loading

0 comments on commit e7d5375

Please # to comment.