Projekt
Hardware
Bedienung
BASIC (1)
BASIC (2)
BASIC (3)
Interna
Beispiele
Erweiterungen
Bibliotheken
Treiber
Programme


Bezugsquellen:
Bausatz
Leerplatine

AVR-ChipBasic2 - Programme

V1.50 (c) 2006-2015 Jörg Wolfram



1 Programmübersicht

In der aktuellen Version werden die folgenden Programme mit dem System mitgeliefert:
  • SETKBD -DE-
  • SETKBD -US-
  • Serial Load
  • CBTerm mini
  • Clone644
  • Bench
  • Chip8


2 Keyboard Konfiguration

Mittels dieser Programme ist es möglich, alternative Keyboard-Belegungen zu installieren. Das aktuell eingestellte Layout wird im unteren Bereich des Hauptmenüs angezeigt. Nach dem Start des entsprechenden Programmes ändert sich die Anzeige im Hauptmenü und die neue Tastaturbelegung ist sofort wirksam.

2.1 SETKBD -DE-

Setzt die Tastaturbelegung auf deutsches Layout. Diese Belegung ist auch nach dem Flashen einer neuen version eingestellt.

2.2 SETKBD -US-

Setzt die Tastaturbelegung auf US-amerikanisches Layout.

3 Der serielle Lader

Über den seriellen Lader ist es möglich, das System in gewissem Maße fernzusteuern. Damit lassen sich auch Anwendungsfälle ohne Bildschirmausgabe realisieren. Das ist zum Beispiel der Fall, wenn "nur" ein LCD angesteuert werden soll. Im Weiteren beschriebene Ausgaben und Tastendrücke beziehen sich auf den Computer, der mit dem ChipBasic2 Sytem über die serielle Systemschnittstellle verbunden ist und auf dem ein Terminalprogramm läuft.
Der Lader nimmt innerhalb der Programme eine gewisse Sonderstellung ein. Durch eine spezielle Signatur ("L" als 13.Byte) lässt er sich weder starten noch editieren. Beim Systemstart wird nach einem Lader gesucht und der erste gefundene gestartet. Dies ist unabhängig von einer eingestellten Autostart-Funktion.
Es sind sowohl der Programm-Upload (ASCII und X-Modem) als auch die Konfiguration des Systems möglich.
Nach dem Start des Systems meldet sich der serielle Lader über die serielle System-Schnittstelle mit folgender Meldung:
Press space to start!
Werden hier nur "unsinnige" Zeichen empfangen, sollte geprüft werden, ob die Einstellungen von 1200 oder 2400 Bps, 8Bit, 2 Stopp-Bits stimmen.
Gestartet wird der Loader mittels der Leertaste, dies muß innerhalb von ca. 2 Sekunden erfolgen. Zentraler Punkt im Loader ist das Hauptmenü, zu welchem von fast jeder Stelle mittels Leertaste zurückgekehrt werden kann.
----------------------------
  ChipBasic2 Serial Loader
----------------------------
 S = Show Status
 U = Upload (XMODEM)
 T = Text Upload (ASCII)
 A = Set Autostart
 C = Config Hardware
 Q = Quit


3.1 Show Status

Mit der Taste S kann eine Liste der intern gespeicherten Programme angezeigt werden. Nach der Programm-Nummer stehen der Programmname, der Programmtyp und die Markierung für einen aktiven Autostart.
Mit der Leertaste (und auch allen anderen Buchstaben-, Ziffern- und Zeichentasten) gelangt man wieder zurück ins Hauptmenü
----------------------------
          Status
----------------------------
P1: SerialLoader LOADER 
P2:              BASIC  
P3:              BASIC  
P4:              BASIC  (A)
P5:              BASIC  
P6:              BASIC  
P7:              BASIC  
P8:              BASIC  
Space returns to main menu
Press any key!


3.2 Upload (XMODEM)

Mit der Taste U wird zum Upload Menü gewechselt.
----------------------------
       XModem Upload
----------------------------
P1: SerialLoader LOADER 
P2:              BASIC  
P3:              BASIC  
P4:              BASIC  (A)
P5:              BASIC  
P6:              BASIC  
P7:              BASIC  
P8:              BASIC  
Space returns to main menu
Select Program (1..8) :
Gestartet wird der Upload durch Auswahl eines der Programme (Tasten 1...8), mit der Leertaste gelangt man wieder zurück ins Hauptmenü. Falls der Lader ausgewählt wurde, gibt es noch eine Sicherheitsabfrage, da man sich durch das Überschreiben des Loaders selbst aussperren kann.
Der eigentliche Upload beginnt erst nach 10 Sekunden, damit genügend Zeit am Terminalprogramm ist, um auch dort den Upload zu starten. Sind alle Daten übertragen, wird wieder das Upload-Menü angezeigt. Lediglich wenn der Lader überschrieben wurde wird das System neu gestartet.

3.3 Text Upload

Mit der Taste T wird zum Text-Upload Menü gewechselt. Hiermit können BASIC-Quellprogramme übertragen werden. Diee werden im Anschluß der Übertragung in das Binärformt übersetzt, falls das erste Zeichen des Dateinamens kein Unterstrich _ ist.
----------------------------
       Text Upload
----------------------------
P1: SerialLoader LOADER 
P2:              BASIC  
P3:              BASIC  
P4:              BASIC  (A)
P5:              BASIC  
P6:              BASIC  
P7:              BASIC  
P8:              BASIC  
Space returns to main menu
Select Program (1..8) : 
Gestartet wird der Upload durch Auswahl eines der Programme (Tasten 1...8), mit der Leertaste gelangt man wieder zurück ins Hauptmenü. Der Lader lässt sichauf diese Weise nicht überschreiben, wählt man diesen zum Überschreiben aus, wird eine Fehlermeldung angezeigt.
Da der Bildspeicher als Textpuffer benutzt wird, erscheint auf dem Bildschirm (falls angeschlossen) des ChipBasic2 Systems ein buntes "Buchstabendurcheinander". Dies ist aber normal.

3.4 Autostart

Mit der Taste A kann die Autostart-Funktion eingestellt werden. Einstellbar ist Autostart für die Programme 1 bis 7, abgestellt werden kann sie nicht. Die Autostart-Funktion lässt sich nicht auf einen Lader einstellen.
----------------------------
         Autostart
----------------------------
P1: SerialLoader LOADER 
P2:              BASIC  
P3:              BASIC  
P4:              BASIC  (A)
P5:              BASIC  
P6:              BASIC  
P7:              BASIC  
P8:              BASIC  
Space returns to main menu
Select Autostart (1..7) :2
Der Autostart wird jetzt auf Programm 2 eingestellt.

3.5 Config Hardware

Mit der Taste C lässt sich die Hardware des Zielsystems konfigurieren. Die Einstellungen entsprechen der "normalen" Konfigurationsseite. Mit der Taste 8 werden die getätigten Einstellungen gespeichert und das System neu gestartet, wird das Menü mittels Leertaste verlassen, gehen die getätigten Einstellungen verloren.
----------------------------
  ChipBasic2 Configuration
----------------------------
(1) Serial speed: 2400 Bps
(2) I2C speed   : 400 kHz
(3) SPI speed   : 5 MHz  
(4) EEPROM addr : 0
(5) Line end    : only LF
(6) Serial I/O  : simple  
(7) Serial Input: PD3
(8) Store 
Space returns to main menu
Select Parameter (1..8) : 


3.6 Quit

Mit der Taste Q wird der Lader beendet und die Autostart-Funktion ausgeführt.
----------------------------
  Serial Loader Quit
----------------------------


4 Das Kommunikationsprogramm CBTerm mini

CBTerm mini ist ein minimales Kommunikationsprogramm, mit dem zwei ChipBasic2 Computer untereinander oder auch mit einem PC kommunizieren können. Es gibt zwei Modi, zusätzlich können auch Programme per XModem Protokoll übertragen werden.





4.1 Die Belegung der Funktionstasten

In der untersten Zeile stehen die möglichen Kommandos, die Farben entsprechen den Tasten ESC und F1...F4 und haben folgende Funktionen:


Programm verlassen
Den Modus (Normal/Dialog) wechseln
Ein Programm mittels X-Modem Protokoll senden
Ein Programm mittels X-Modem Protokoll empfangen
Textfenster leeren




4.1.1 Exit (ESC)

Nach einer Abfrage, ob das Programm verlassen werden soll, wird zum Hauptmenü zurückgekehrt.

4.1.2 Mode (F1)

Mit jedem Tastendruck ändert sich die aktuell ausgewählte Einstellung. Diese wird links oben angezeigt. Bei jedem Wechsel wird das Textfenster gelöscht. Es gibt zwei Modi, normal und dialog. Im Normalmodus werden nur die empfangenen Zeichen angezeigt:



Im Gegensatz dazu werden im Dialogmodus sowohl die empfangenen als auch die gesendeten Zeichen angezeigt. Dabei werden die gesendeten Zeichen grün und die empfangenen Zeichen rot dargestellt.





4.1.3 Send (F2)

Mit dieser Funktionen können Programme mittels des XModen Protokolls gesendet werden. Zunächst erscheint eine Auswahlbox, in der zu sendende Programm gewählt werden kann.



Mit den Cursortasten nach oben und unten wird das zu sendende Programm gewählt, mit der ENTER Taste wird die Übertragung gestartet, was durch eine kleine Hinweisbox angezeigt wird. Während der Programmauswahl als auch bevor die Übertragung durch den Empfänger gestartet wird kann der Vorgang mit der ESC Taste abgebrochen werden.

4.1.4 Receive (F3)

Mit dieser Funktionen können Programme mittels des XModen Protokolls empfangen werden. Zunächst erscheint eine Auswahlbox, in der zu überschreibende Programm gewählt werden kann. Dabei lässt sich das Teminalprogramm selbst nicht überschreiben. Wird dies versucht, wird der Vorgang mit einer Alertbox abgebrochen.



Mit den Cursortasten nach oben und unten wird das zu überschreibende Programm gewählt, mit der ENTER Taste wird die Übertragung gestartet, was durch eine kleine Hinweisbox angezeigt wird. Zuvor sollte aber die Übertragung auf Senderseite gestartet werden. Während der Programmauswahl kann der Vorgang mittels der ESC Taste abgebrochen werden.

4.1.5 Clear (F4)

Mit dieser Taste wird das Textfenster gelöscht und der Cursor an den Anfang desselben gesetzt.

4.1.6 Übertragene Zeichen

Einige Tasten und übertragene Codes haben spezielle Funktionen, die in untenstehender Tabelle aufgeführt sind. Für die Zeilenenden haben die auf der Konfigurationsseite eingestellten Gültigkeit.


ASCII Code Taste Aktion
0x08 Backspace Löscht letztes Zeichen, aber nur bis zum Anfang der aktuellen Zeile
0x0a ENTER Zeilenvorschub (abhängig von der Zeilenende-Konfiguration)
0x0c F4 löscht das Textfenster
restliche <128 Buchstaben/Ziffern/Zeichen Zeichen ausgeben


5 System Clonen (Mega644/P)

Vom Aufbau her ähnelt des Clone Programm der Konfigurationsseite wobei die aktuelle Konfiguration als Voreinstellung genommen wird.





5.1 Die Belegung der Funktionstasten

Die gerade aktive Funktion ist invertiert dargestellt, die Auswahl erfolgt über die Cursor-Hoch und Cursor-Runter Tasten. In der untersten Zeile stehen die möglichen Kommandos, die Farben entsprechen wieder den Tasten ESC und F1...F4 und haben folgende Funktionen:


Programm verlassen
Ausgewählte Einstellung verändern
System clonen




5.1.1 Exit (ESC)

Nach einer Abfrage, ob das Programm verlassen werden soll, wird zum Hauptmenü zurückgekehrt.

5.1.2 Change (F1)

Mit jedem Tastendruck ändert sich die aktuell ausgewählte Einstellung.

5.1.3 Serielle Geschwindigkeit

An dieser Stelle kann die Geschwindigkeit der seriellen Schnittstelle zwischen 1200 und 2400 Bps umgeschaltet werden. Mit dem BASIC-Befehl BAUD kann die Geschwindigkeit im Programm temporär verstellt werden, nach Ende des Programmes wird wieder auf den hier eingestellten Wert zurückgestellt.

5.1.4 I2C-Geschwindigkeit

Hier kann die Geschwindigkeit der I2C-Schnittstelle zwischen 100 und 400 kHz umgeschaltet werden. Die meisten I2C-Bausteine kommen mit 400kHz zurecht, aus Kompatibilitätsgründen kann auch die langsame Geschwindigkeit genutzt werden.

5.1.5 SPI-Geschwindigkeit

Hier kann die Geschwindigkeit der SPI-Schnittstelle zwischen 156 kHz und 5 MHz umgeschaltet werden.

5.1.6 EEPROM Adresse

Hiermit lässt sich die EEPROM-Adresse für das Daten-EEPROM einstellen (XPOKE/XPEEK).

5.1.7 Zeilenende

Mit dieser Taste kann die Art des Zeilenendes für die serielle und parallele Schnittstelle festgelegt werden. Möglich sind LF only (Unix/Linux), CR only (Mac) und CR+LF (Windows).

5.1.8 Serielles Interface - Typ

Möchte man z.B. einen anderen RS232 Pegelwandler als die vorhandene Schaltung verwenden, kann dies hier umgeschaltet werden. Simple ist die original-Schaltung, mit Standard funktionieren RX und TX wie bei jedem anderen UART.

5.1.9 Serielles Interface - Eingangspin

Da die ursprüngliche Beschaltung der seriellen Schnittstelle schon den TX1-Pin (PD3) des ATMega644P belegt, gibt es hier die Möglichkeit, den Eingangspin der seriellen System-Schnittstelle zwischen PD1 (notwendig für ATMega644P) und PD3 (Kompatibilitätsmodus) umzuschalten. Die Umschaltung ist für beide Typen möglich, allerdings lässt sich die zweite serielle Schnittstelle des 644P im Kompatibilitätsmodus nicht benutzen.

5.1.10 Autostart

Wenn im Intro-Screen keine Taste gedrückt wird, kann ein Programm automatisch gestartet werden. Der in früheren Versionen vorhandene Autostart-Jumper wird nicht mehr abgefragt und sollte unbedingt offengelassen werden. Wählbar sind die Programme 1...7 sowie eine Dekativierung der Autostart-Funktion.

5.1.11 System clonen (F4)

Mit dieser Taste wird das Clonen gestartet. Der Target-Mikrocontroller muss auch ein Mega644 sein und einen Quarz oder externen Oszillator angeschlossen haben. Denn neben dem Flash werden auch die Fusebits programmiert. Eventuell vorhandene BASIC-Programme werden natürlich auch mit übertragen. Damit ist es möglich, einen weiteren Computer aufzubauen ohne einen PC zur Verfügung zu haben / zu benutzen.
Nach Anwahl der Funktion folgt noch eine Sicherheitsabfrage, danach wird der Kopiervorgang gestartet. Um das System zu clonen ist ein Kabel mit einer speziellen Belegung notwendig, mit welchem dann die SPI/ISP-Schnittstellen beider Systeme verbunden werden.


Host Signal Host PIN Target Signal Target PIN
GND 4,6,8,10 GND 4,6,8,10
VCC 2 VCC 2
MOSI 1 MOSI 1
MISO 9 MISO 9
SCK 7 SCK 7
SS 3 RESET 5




6 System-Benchmark

Mit Benchmark lässt sich die effektive Taktfrequenz in MHz für alle 8 Videomodi bestimmen. Effektive Taktfrequenz bedeutet dabei, bei welcher Taktfrequenz der Mikrocontroller genauso schnell wäre wenn er keine Videoausgabe etc. erledigen muss. Wenn die Anzeige erscheint, kann das Programm mit einem beliebigen Tastendruck beendet werden.



Die angezeigten Ergebnisse sind im NTSC-Mode (ohne Treiber für Mode 7) gemessen. Bei PAL sind die Ergebnisse etwas besser, da die Gesamt-Zeilenzahl bei gleicher Anzahl sichtbarer Zeilen höher ist.

7 Der Chip8-Interpreter

Chip8 ist ein Interpreter, mit dem Chip8 oder S-Chip Programme im Videomode 5 oder im Videomode 7 (nur Drivercode 0xA8) laufen können.





7.1 Die Belegung der Funktionstasten

In der untersten Zeile stehen die möglichen Kommandos, die Farben entsprechen wieder den Tasten ESC und F1...F4 und haben folgende Funktionen:


Programm verlassen
Chip8-Programm via X-Modem empfangen
Chip8-Programm speichern
Chip8-Programm laden
Chip8-Programm starten




7.1.1 Exit (ESC)

Nach einer Abfrage, ob das Programm verlassen werden soll, wird zum Hauptmenü zurückgekehrt.

7.1.2 Recv (F1)

Es kann ein Chip8-Programm via XMODEM übertragen werden. Das Programm muss allerdings entsprechend aufbereitet werden (s.u.). Beim iram2 Treiber werden die oberen 2K ignoriert.

7.1.3 Save (F2)

Es kann ein Chip8-Programm auf das DataFlash Modul gespeichert werden. Es können nur leere Speicherplätze oder bestehende Chip8-Programme überschrieben werden. Die Dateiauswahl geschieht über die Fileselektorbox, der Dateiname entspricht dem Programmnamen und der Typ wird automatisch auf CH8 gesetzt.

7.1.4 Load (F3)

Es kann ein Chip8-Programm vom DataFlash Modul geladen werden. Die Dateiauswahl geschieht dabei über die Fileselektorbox, es können nur CH8 Dateien geladen werden.

7.1.5 Run (F4)

Das geladene Programm wird gestartet. Mit CTRL-C kann die Programmausführung abgebrochen werden. Wenn sich ein Programm in einer Endlosschleife befindet (z.B. am Spielende) kann es mit der Taste F10 neu gestartet werden.



Mit gedrückter linker CTRL Taste sind witere Funktionen erreichbar:


Delay verringern, Programmausführung wird schneller
Delay erhöhen, Programmausführung wird langsamer


Da der Chip8-Interpreter wesentlich schneller als das Original ist, kann ein Delay eingestellt werden. Es entspricht der Anzahl der Bildzeilen, die vor jedem Befehl gewartet werden und wird mit dem Programm gespeichert. Sinnvoll sind Werte zwischen 6 und 20.

7.2 "Aufbereitung" von Chip8-Programmen

Der Chip8-Interpreter braucht die Daten in einem bestimmten Format, und zwar einem 4 KBytes großem Speicherabbild. Zusätzlich sind Delay und die Tastenbelegung hinterlegt.
Dazu müssen die Programme aus dem Internet heruntergeladen werden und mittels der Programme im TOOL-Ordner konvertiert werden.

8 Der 8080-Emulator

Der 8080-Emulator befindet sich noch in einem frühen Entwicklungsstadium. Er unterstützt derzeit nur das XRAM64 Modul und kann als Vorlage für eigene Anwendungen dienen.

created with latex2web.pl v0.63 © 2006-2013 Joerg Wolfram