Download Area
hier können allerlei nützliche Dinge heruntergeladen werden
   
CCINTERN.ZIP (362 kB)  
CCINTERN.ZIP ist das Ziparchiv mit der C-Control-intern-Infosammlung. Enthalten ist das ROM-Listing, der Speicherbelegungsplan, Informationen über die Bugs im Betriebssystem, der Assembler AS05 inklusive Assemblerkurs, die Disassembler IDI05 und DI05, das Terminalprogramm und alle Beispielprogramme und Textdateien. Wer nicht alles aus dieser Sammlung benötigt, kann den Assembler und die beiden Disassembler weiter unten auch einzeln herunterladen. Das Zip-Archiv sollte inklusive Verzeichnisstruktur entpackt werden.

Nützliche Ergänzungen sind das ROM-Listing im HTML-Format, das Manual zum MC68HC05-Mikrokontroller und zum 24C65-EEPROM, der Originalquellcode des Betriebssystems und weitere Dinge hier auf dieser Site. Einige Sachen im Ziparchiv sind nicht mehr aktuell, aber dafür gibt es Neuigkeiten in den Frequently Asked Questions.

 
ccbasrom_html.zip (65 kB)  
Eine sinnvolle Ergänzung zum C-Control-intern-Archiv ist dieses ROM-Listing der C-Control im HTML-Format. Es ist möglich, mit Hilfe eines Internetbrowsers durch das ROM der C-Control zu "surfen", wodurch die Vorgänge im Betriebssystem erheblich leichter durchschaubar sind! Ein Klick auf die Adresse einer unbekannten Variablen oder Firmwareroutine genügt, um sofort über deren Aufgaben im Bilde zu sein. Es ist auch feststellbar, welche Systemroutinen auf eine bestimmte RAM-Variable oder auf einen Port zugreifen. Zurück kommt man in jedem Fall über den "Back"-, bzw. "Zurück"-Button des Browsers. Der Komfortzuwachs gegenüber der Text-Version ist enorm!

Gestartet werden sollte sinnvollerweise am Ende des ROM-Listings, denn dort befinden sich die Adressen der Firmwareroutinen, die bei einem Interrupt oder nach einem Reset aufgerufen werden. Man kommt so sehr schnell ans Ziel und kann bei Bedarf Teile des Betriebssystems in eigene Assemblerprogramme übernehmen.

 
CCBasic.zip (406 kB)  
Zwar läßt sich C-Control/BASIC Version 1.33 für Windows 95/98/NT unter Windows 10 ausführen, aber leider nicht installieren. Deshalb habe ich ein ZIP-Archiv mit einem fertig installierten CCBASIC erstellt und auf meine Website gesetzt. Es muß heruntergeladen und in das Verzeichnis "C:\CCBasic" entpackt werden. Anschließend läßt sich die Verknüpfung "C:\CCBasic\Ccew32d.exe" auf den Windows-Desktop kopieren. Mit Hilfe der Verknüpfung kann dann CCBASIC gestartet werden.
 
DllSwitcher15b.zip (657 kB)  
Ein sehr interessantes Projekt war der DllSwitcher 1.5b von Christian Edelmann.

Christian Edelmann: Der DllSwitcher ist ein kleines Tool, das es einem vereinfacht zwischen den verschiedenen Dll's für die C-Control Basic Programmierumgebung unter Windows zu wechseln.

Leider ist die Website von Christian nicht mehr online. Fragen zum Programm sollten daher in das Forum zur C-Control-1 gestellt werden.

 
CCPlus.zip (753 kB)  
Zwar läßt sich C-Control/Plus Version 1.08 für Windows 95/98/NT unter Windows 10 ausführen, aber leider nicht installieren. Deshalb habe ich ein ZIP-Archiv mit einem fertig installierten CCPLUS erstellt und auf meine Website gesetzt. Es muß heruntergeladen und in das Verzeichnis "C:\CCPlus" entpackt werden. Anschließend läßt sich die Verknüpfung "C:\CCPlus\Ccplus" auf den Windows-Desktop kopieren. Mit Hilfe der Verknüpfung kann dann CCPLUS gestartet werden.
 
DOSIDE.ZIP (308 kB)  
Dieses ZIP-Archiv enthält die leicht erweiterte integrierte Entwicklungsumgebung (IDE) für DOS. Die IDE wurde dermaßen modifziert, daß der "Runtime error 200", der bei schnellen Rechnern oftmals auftritt, nicht mehr erscheint. Darüberhinaus ist es nun möglich, in BASIC-Programmen mehr als 24 Byte Variablenspeicher zu verwenden (siehe mehrvars.zip) und Assemblerprogramme in der IDE zu entwickeln. Sogar Syntaxhighlighting wird jetzt in Assemblerprogrammen unterstützt. Auch ein besseres Terminalprogramm wurde in die IDE integriert. Und damit gleich mit der IDE gearbeitet werden kann, wurden sowohl die Originalbeispielprogramme von Conrad Electronic, als auch ein paar Beispiele aus der C-Control-intern-Sammlung hinzugefügt.

Die IDE ist unter DOS und unter Windows 95/98 (in der Eingabeaufforderung und im DOS-Modus) lauffähig und hat den Vorteil, daß sie gegenüber der Windows-IDE in Teilbereichen mehr Komfort bietet.

 
OCBAS100.ZIP (249 kB)  
Dieser BASIC-Dialekt ist die Weiterentwicklung von CCBASIC. Open-Control/BASIC ist 100% syntaxkompatibel zu CCBASIC, unterstützt aber viele zusätzliche Features wie WHILE..WEND, REPEAT..UNTIL, mehrzeiliges als auch einzeiliges IF..THEN, Funktionen, Subroutinen und INCLUDE-Dateien. Außerdem wurden die Fehler von CCBASIC beseitigt. Unter anderem erscheinen nun Warnungen, falls Variablen, Ports, symbolische Konstanten oder Labels wie reservierte Wörter (PRINT, MIN, MAX, PUSH, POP, etc.) heißen. Tabellen lassen sich optional im Byteformat erstellen und können Zeichenketten enthalten. Der Compiler wurde komplett neu entwickelt, es wurde also kein Sourcecode vom CCBASIC-Compiler (siehe unten) übernommen.

OCBASIC ist die offizielle Programmiersprache der Open-Control-Kontroller (z.Z. Open-Micro, Open-Mini und Open-Midi). Deshalb nutzt der Compiler die neuen Tokenbefehle dieser Kontroller, um Programme um typisch 20% in der Größe zu reduzieren. Mit Hilfe der Option "CCBAS" ist es aber auch möglich, mit dem Compiler Programme zu erstellen, die auf der Original-C-Control lauffähig sind. Die neuen Befehle DBNZ, ADD, SUB und REMOVETOS, als auch neue interne Variablen und Zeigeroperationen dürfen in diesem Fall aber nicht verwendet werden. Der Compiler besitzt sogar einen integrierten Assembler, der aber ebenfalls nur auf den OM-Kontrollern nutzbar ist.

Der Compiler besteht aus der Datei OCBAS.EXE, die sich in beliebige integrierte Entwicklungsumgebungen (IDEs), wie zum Beispiel die DOS-IDE oder ConTEXT anstelle von CCBAS.EXE einbinden läßt. Der Compiler hat eine ausführliche Betatestphase durchlaufen, wurde anhand vieler Beispielprogramme überprüft und kann Programme bis 64 KB Größe fehlerfrei übersetzen. Auf der offiziellen Infosite zur OM ist eine ausführliche Dokumentation zur Programmierung der OM unter OCBASIC erhältlich. Dort gibt es auch die aktuelle Version des Compilers.

 
mBasic9,0,5,37.zip (1,4 MB)  
Ein sehr ehrgeiziges Projekt war mBasic. Es enthält einen Editor, BASIC-Compiler, Assembler und Simulator für die C-Control und für die von Martin Kaup entwickelte B-Control. Es eignet sich durch seinen Simulator und Motorola-HC05-Assembler besonders gut zur Programmierung der C-Control M-Unit 1.1. Der integrierte Emulator, den im Kern ein virtueller Motorola-MC68HC05-Prozessor, ein I2C-Bus und ein virtuelles 24C512-EEPROM bilden, liefert eine höchstgenaue und realistische Simulation. Mühelos kann man auch ohne Mikrocontroller BASIC- und Assembler-Programme bis ins kleinste Detail testen.

Im nebenstehenden ZIP-Archiv ist die aktuellste Version von mBasic enthalten. Es unterstützt wohl auch die Open-Micro und Open-Mini. Leider kann ich keine Verbindung zur Open-Maxi aufbauen, was wohl daran liegt, daß mBasic von einer Single-Wire-Schnittstelle mit Echo ausgeht. Was ich außerdem feststellen mußte: Wenn man mBasic so konfiguriert, daß Code für die OM-Mikrocontroller erstellt wird, dann werden weder Word-Variablen noch Strings unterstützt!

Patrick Borek, der Entwickler von mBasic, wollte mir den in Delphi 5 erstellten Sourcecode von mBasic zuschicken. Leider ist der Sourcecode unauffindbar. Patrick meint, man könnte eventuell einen Decompiler für Delphi verwenden, um das Programm zu rekonstruieren.

 
CCBASPARSER_V1_1.ZIP (78 kB)  
Mit Hilfe des C-Control/BASIC-Parsers können in CCBASIC-Programmen mehrzeilige, verschachtelte IF-Abfragen verwendet werden. Außerdem meldet der Parser in einigen Fällen, in denen der C-Control/BASIC-Compiler von Conrad Electronic (CCBAS.EXE) ohne Warnung fehlerhaften Code erzeugen würde, einen Fehler. Unter anderem wird überprüft, ob alle deklarierten Variablen in das User-RAM passen. Darüber hinaus werden alle deklarierten Variablen in einer MAP-Datei aufgelistet, wodurch z.B. Überschneidungen sofort ersichtlich sind. Auch Lücken im User-RAM werden gefunden.

Der Parser kann problemlos in die C-Control-Entwicklungsumgebung für DOS (siehe DOS-IDE) anstelle des Compilers CCBAS.EXE eingebunden werden. Bei jedem Compiliervorgang innerhalb der Entwicklungsumgebung wird dann zunächst der Parser aufgerufen, der automatisch den Compiler startet.

 
MEHRVARS2.ZIP (58 kB)  
In diesem ZIP-Archiv ist ein gepatchter CCBASIC-Compiler für DOS (CCBAS.EXE) enthalten, mit dem in BASIC-Programmen mehr als die üblichen 24 Byte- oder 12 Wordvariablen verwendet werden können. Die neuen Variablen werden in einem Speicherbereich abgelegt, der auch vom Betriebssystem benutzt wird, deshalb sind bei Verwendung der Variablen bestimmte Dinge zu beachten. Es sollte aber in (fast) jedem Anwendungsfall möglich sein, rund 12 Byte- oder 6 Wordvariablen zusätzlich "herauszuholen".

Bitte die beiliegende HTML-Seite INFO.HTM erst komplett durchlesen, bevor die neuen Variablen verwendet werden!

 
ONTIMER.ZIP (5 kB)  
Bei vielen Anwendern lag bisher die Interruptprogrammierung in CCBASIC brach, da nur bei der M-Unit, aber nicht bei der Main-Unit und der Station der IRQ-Pin herausgefuehrt ist. Ohne Hardwareeingriff waren bei diesen deshalb die Befehle INTERRUPT und RETURN INTERRUPT völlig nutzlos. Das nebenstehende ZIP-Archiv enthält darum ein Assemblermodul, mit dem die aus anderen BASIC-Dialekten bekannte ON TIMER GOSUB-Funktion nachgebildet werden kann. Damit unterbricht eine aktivierte Interruptroutine das Hauptprogramm in periodischen Zeitabständen. Diese Fähigkeit wird manchmal sogar als Multitasking, bzw. Multithreading bezeichnet und stand bisher nur Assembler-Profis zur Verfügung.

Allerdings gilt es für die Interruptprogrammierung in BASIC eine weitere Hürde zu überwinden: Die Interruptroutine und das Hauptprogramm teilen sich den Rechenstack. Da das Betriebssystem der C-Control kein echtes POP kennt, führte jede Stackbenutzung in der Interruptroutine zu Rechenfehlern im Hauptprogramm. Es gab bereits einen Workaround zur Umgehung dieses Problems in der C-Control-intern-Infosammlung, doch war dessen Nutzung kompliziert. Das neue Verfahren bietet dagegen eine komfortable Behebung des Stackproblems: Hauptprogramm und Interruptroutine verfuegen praktisch jeweils über einen eigenen Stack. Der Anwender braucht sich um Stacküberläufe oder Stackfehler keine Gedanken mehr zu machen. Allerdings wird hierfür unter anderem der DCF-77-Buffer belegt, so daß DCF-77 nicht mehr benutzt werden kann. Zu diesem Nachteil werden aber einige Empfehlungen gegeben.

 
CCBAS2MT.ZIP (12 kB)  
Während mit Hilfe der Interruptprogrammierung nur ganze Subroutinen in einem bestimmten Zeitrythmus aufgerufen und abgearbeitet werden können, ist mittlerweile auch echtes Multitasking auf der C-Control-1 (!) möglich. Ein in CCBASIC erstelltes Programm enthält zwei Threads, die quasi-parallel ausgeführt werden. Hierdurch erschließen sich ganz neue Anwendungsgebiete, die bisher der CC2 vorbehalten waren. Die Multitaskingprogrammierung auf der C-Control-1 ist sehr einfach möglich. Nur wenige Dinge müssen beachtet werden. Dem ZIP-Archiv liegen einige Beispielprogramme bei, die demonstrieren, wie der neue Multitasking-Interpreter aufgerufen und die beiden Threads gestartet werden müssen. Außerdem ist eine kurze Anleitung im HTML-Format enthalten.
 
CountUp!_RC2.ZIP (43 kB)  
Das nebenstehende Archiv enthält das sogenannte CountUp!-Modul und ist der erste Bestandteil eines vom Autor als POWER!UP bezeichneten Projekts. Dieses Projekt hat das Ziel, die Handhabung der C-Control-1 Version 1.1 noch bequemer und leistungsfähiger zu machen. Das Modul unterstützt das komfortable Neuprogrammieren der C-Control bei gesetztem Autostart-Jumper und hält zusätzlich die Anzahl der Uploads von CCBASIC- und Assembler-Programmen und die Anzahl der Programmstarts fest.

Bei der Installation wird das Modul an das Ende des externen EEPROMs geschrieben und verbleibt dort. Dieser Bereich kann von der normalen Windows-IDE nicht genutzt werden, deshalb besteht nur beim Speichern in die EEPROM-Datei die Gefahr, daß das Modul überschrieben wird. In eigenen CCBASIC-Programmen lassen sich die Funktionen des Moduls sehr einfach nutzen. Dazu ist das Beispiel PLDTEST2.BAS im Archiv enthalten. Als Bonus wird sogar das wahlfreie Lesen und Schreiben im externen EEPROM ermöglicht.

Die beiliegende Dokumentation stellt das Modul kurz vor. Zusätzlich werden in CCAutoload.rtf verschiedene Vorläufer der Entwicklung beschrieben, die ebenfalls eine Neuprogrammierung der C-Control bei gesetztem Autostart-Jumper ermöglichen.

 
FASTBAS.ZIP (3 kB)  
Ganz ohne Hardwaremodifikationen lassen sich BASIC-Programme um rund 12% beschleunigen! Benötigt wird nur ein SYS-Befehl im BASIC-Programm und 30 Byte des internen EEPROMs. Neben der schnelleren BASIC-Befehlsausführung gibt es noch den Vorteil, daß zwei Einträge des Hardwarestacks eingespart werden. Das bedeutet vier Byte Variablenspeicher, wenn der, in der erweiterten DOS-IDE enthaltene, gepatchte CCBASIC-Compiler benutzt wird! Das keine BASIC-IRQ-Routine unterstützt wird, läßt sich dagegen gut verschmerzen. Diese konnte ohnehin nur mit trickreicher Programmierung verwendet werden.

Wer noch mehr Geschwindigkeit benötigt, kann zum echten BASIC-Compiler (CCBAS2MC) greifen. Damit lassen sich BASIC-Programme in Assemblercode umwandeln.

 
ccbas2mc_vollversion.zip (154 kB)  
Mit diesem echten BASIC-Compiler (CCBAS2MC) kann ein BASIC-Programm in echten Maschinencode umgewandelt werden. Das erzeugte Kompilat ist bis zu 250 mal schneller als die interpretierte Variante! Das kompilierte BASIC-Programm wird im internen EEPROM gespeichert und darf daher (leider) nicht allzu groß sein. Dieser Compiler kann also immer dann sinnvoll eingesetzt werden, wenn ein kleines Programmsegment eines BASIC-Programms beschleunigt werden soll.

Anläßlich "13 Jahre C-Control intern" kann nun die Vollversion des Compilers gratis heruntergeladen werden.

 
cctokbas_vollversion.zip (78 kB)  
Tokensierte Programme des C-Control-Mikrokontrollers lassen sich mit diesem C-Control-Decompiler in lesbaren CCBASIC-Quellcode umwandeln (detokensieren). Damit lassen sich Programme, deren Quellcode verloren gegangen ist, wieder in lesbaren BASIC-Code konvertieren. Als besonderen Bonus lassen sich mit Hilfe des Decompilers sogar C-Control/PLUS-Programme in CCBASIC-Quellcode umwandeln! Außerdem wird eine detaillierte Liste aller verwendeten Variablen und deren Lage im User-RAM erstellt. Dadurch ist sofort ersichtlich, ob mehrere Variablen den gleichen Speicherbereich belegen.

Die neue Version 3.1 bietet deutliche Erleichterungen gegenüber den Vorgängerversionen beim Übersetzen von C-Control/PLUS nach C-Control/BASIC. Die meisten CCPLUS-Programme lassen sich nun ohne manuelle Nachbearbeitung konvertieren. Für die Datenübertragung unter neueren Windows-Versionen liegt ein Extra-Programm bei. Auch die Dokumentation wurde überarbeitet und einige Bugs der Vorgängerversion behoben.

Anläßlich "12 Jahre C-Control intern" kann nun die Vollversion des Decompilers gratis heruntergeladen werden.

 
ausleseschutz.zip (32 kB)  
In dieser Anleitung wird detailliert beschrieben, wie sich der Ausleseschutz auf der C-Control 1.1 aktivieren läßt. Nach dem Aktivieren ist das Programm in der C-Control weiterhin normal ausführbar, aber vor dem Auslesen geschützt und kann deshalb unter anderem nicht mehr mittels CCTOKBAS dekompiliert werden.

Zur Durchführung der Prozedur wird keine spezielle Software benötigt, sondern alle Schritte lassen sich mit einem einfachen Terminal-Programm über die serielle Schnittstelle durchführen. Es müssen einige Tasten gedrückt werden, um Kommandos zur C-Control zu senden, wenn sich diese in der sogenannten Idle-Loop befindet. Dem ZIP-Archiv liegt ein passendes Terminal-Programm bei, das über eine PIF-Datei gestartet werden kann.

 
9thbit.zip (3 kB)  
Dieses Assemblermodul ermöglicht Parity oder ein zusätzliches Stopbit an der seriellen Schnittstelle. Der Empfang geht sehr einfach, da das Betriebssystem das empfangene 9. Bit einfach ignoriert. Es kann aber bei Bedarf vom Anwender abgefragt und ausgewertet werden. Dafür ist es allerdings erforderlich, daß der Sender ausreichend langsam, also Byte-für-Byte, sendet. Das Senden ist nicht ganz so einfach, da das 9. Bit vor dem Senden eines Bytes vom Anwender passend gesetzt werden muß. Dazu muß zum Beispiel die Parität berechnet werden, wie im beiliegenden BASIC-Programm gezeigt wird.

Wen es stört, einen Teil des internen EEPROMs für das Assemblermodul zu opfern, kann die Funktionen auch mit Hilfe von temporär auf dem Rechenstack abgelegten Maschinenspracheprogrammen nachbilden. Wie das geht, steht in der C-Control-intern-Sammlung.

 
c-control_uebertakten.zip (20 kB)
Bisher gab es nur einen Patch, um die Zeitfunktionen bei 12 MHz Takt zu korrigieren. Doch Giso Wittig hat sich die Mühe gemacht, Patches für 8, 12, 16 und 20 MHz Takt zu erstellen, um die interne Echtzeituhr und das DCF77-Signal trotz Übertaktung in der richtigen Geschwindigkeit laufen zu lassen.

Das ZIP-Archiv enthält zwar nur eine Anpassung für 8 MHz Takt, doch Giso erklärt in der Dokumentation ausführlich, wie man auch höhere Takte anpassen kann. Dazu wird kaum Assemblererfahrung benötig, da die Programme sehr gut kommentiert sind. Es gibt zwei verschiedene Wege, die Zeitfunktionen zu korrigieren. Zu beiden Varianten gibt es den entsprechenden Sourcecode. Außerdem kann man wählen zwischen einer Version die SLOWMODE OFF unterstützt oder nicht. Letztere Version belegt weniger Speicher im internen EEPROM.


TURBOASM.ZIP (25 kB)
Wer seine C-Control übertaktet hat, wird sich wundern, warum die interne Uhr der C-Control zu schnell läuft und der DCF77-Empfang nicht mehr funktioniert. Genau zu diesem Zweck hat Conrad Electronic bereits vor einiger Zeit einen Betriebssystempatch veröffentlicht, mit dem man die Zeitfunktionen bei 12 MHz Takt korrigieren kann. Der Patch besteht aus einem kurzen Assemblerprogramm und muß in das interne EEPROM geladen und gestartet werden. Zusätzlich ist ein Downloadprogramm für die DOS-IDE enthalten, das auf dreifache Übertragungsgeschwindigkeit eingestellt ist.

Früher konnte man dieses nützliche ZIP-Archiv auf der C-Control-Help-Site von Thomas Trepper herunterladen. Leider weiß ich nicht, weshalb er diese Datei seit einiger Zeit nicht mehr anbietet.


IDI05.ZIP (142 kB)  
IDI05 ist ein Disassembler, mit dem ein Maschinenspracheprogramm, das für eine 6805'er CPU geschrieben wurde, vollständig disassembliert werden kann. Im günstigsten Fall wird der Disassembler gestartet und erstellt ausgehend von einigen Startadressen selbstständig ein disassembliertes Listing des Maschinenspracheprogramms inklusive Speicherbelegungsplan ("cross reference list"). Zusätzlich ist im ZIP-Archiv ein einfacher Disassembler (DI05) enthalten, mit dessen Hilfe das zu disassemblierende Programm interaktiv untersucht werden kann.

Die beiden Disassembler sind für jeden 6805'er Microcontroller zu gebrauchen - nicht nur für die C-Control!

 
S2BIN.ZIP (8 kB)  
Sehr nützlich beim Einsatz der beiden Disassembler DI05 und IDI05 ist dieses kleine Tool, das S19-Dateien ins Binärformat konvertieren kann, denn leider sind die beiden Disassembler nicht in der Lage, das S19-Format einzulesen. Nützlich ist das Programm aber auch, wenn der Inhalt von S19-Dateien mittels Hexeditor untersucht werden soll.
 
AS05.ZIP (65 kB)  
AS05 ist ein einfacher Freeware-Assembler von der Firma Kingswood Software, mit dem sehr gut Programme innerhalb einer Entwicklungsumgebung wie der DOS-IDE entwickelt werden können. Die IDE kann so konfiguriert werden, daß der Assembler durch einen Tastendruck startet und das gerade editierte Programm übersetzt. In diesem ZIP-Archiv liegt nicht nur der Assembler mit Beschreibung bei, sondern auch eine neue Tokendatei, mit der auch bei Assemblerprogrammen Syntaxhighlighting unterstützt wird. Außerdem ist der Einführungskurs und Tips zur Simulation von Maschinenspracheprogrammen mittels COSMIC-C und ZAP enthalten. Auch auf das Programmieren der C-Control-Unit mit der Programmiersprache C wird kurz eingegangen.
 
c3c.zip (92 kB)  
Ein sehr interessantes Projekt war der C3C-Compiler für C-Control von Marc van Endert. Mit diesem Compiler wird die Programmierung der C-Control-1 in der Programmiersprache C ermöglicht. Zwar wird der C-Quellcode "nur" in C-Control-Tokens umgesetzt, die Ausführungsgeschwindigkeit ist also nicht höher als in CCBASIC, aber der Compiler macht Schluß mit der 24-Byte-Speichergrenze für Variablen und den umständlichen Dateifunktionen: Variablen, Arrays und Zeichenketten können im externen EEPROM abgelegt werden. Außerdem wird der lesende und schreibende Zugriff auf Tabellenelemente ermöglicht. Die Nutzung von lokalen Variablen und Funktionsparametern führt darüber hinaus zu leichter lesbaren Programmen. Auch C-Control-Systeme mit erhöhter Taktfrequenz oder erweitertem EEPROM-Speicher können programmiert werden.

Aus Zeitgründen entwickelt Marc den Compiler nicht mehr weiter und liefert auch keinen Support. Bei Fragen zum Compiler sollte daher in das Forum gepostet werden. Der I2C-Bus ist bisher nur rudimentär implementiert, außerdem beansprucht der Compiler einen Teil des internen EEPROMs, so daß für eigene Assemblerprogramme 186 Byte weniger Speicher zur Verfügung steht.

 
c3c_asm_mod.zip (5 kB)  
Ein Nachteil vom C3C ist, daß der Compiler ein großes Stück des internen EEPROMs für die Laufzeitunterstützung beansprucht, wenn Variablen der Speicherklassen static oder eeprom verwendet werden oder aus einem anderen Grund auf den I2C-Bus zugegriffen werden muß. Deshalb bleibt nur wenig Platz für eigene Assemblerprogramme. Das hier angegebene modifizierte Assemblermodul für C3C wurde in dieser Hinsicht optimiert und es werden statt 186 Byte nur noch 144 Byte des internen EEPROMs belegt.

Eventuell können durch Modifizieren des Assemblermoduls weitere Bytes eingespart werden. Falls im C3C-Programm kein Zugriff auf das EEPROM oder den I2C-Bus stattfindet, können einzelnen Routinen natürlich auch durch eine Pseudo-Routine, die nur ein RTS enthält, ersetzt werden.

 
ccontrolSDK-0.1.tgz (64 kB)
Auf dieses ZIP-Archiv hat eine große Zahl von Linux-Begeisterten bestimmt sehnsüchtig gewartet. Diman Todorov hat die Quelltexte des C-Control/BASIC-Compilers so modifiziert, daß sie mit GCC kompiliert werden können. Aber damit nicht genug: Diman hat eine ganze C-Control Toolsammlung für Linux erstellt. Enthalten ist der portierte CCBASIC-Compiler, ein Upload-/Downloadprogramm, das die Programme zur CC-Unit überträgt, und der etwas modifizierte freie Assembler von Motorola für die 68HC05! Die Toolsammlung liegt in der neueren Version vom 24. Juli 2001 vor, die auch unter dieser URL heruntergeladen werden kann und muß vor dem Gebrauch mit GCC kompiliert werden.

Diman: ...das ganze ist jedoch noch ziemlich unausgereift. Es funktioniert, aber bitte keine ZU hohen Ansprüche stellen ;-)

Da bei einigen Anwendern Probleme auftauchten und Diman seine Toolsammlung nicht mehr weiterentwickelt, ist Chris Ruehl dabei, das Linux-SDK zu überarbeiten. Diese neuste Version ist auch kompatibel zu den aktuellen Distributionen von Red-Hat und SuSE. Chris hat eine eigene Homepage für das Linux-SDK eingerichtet.


CCBASBIG.ZIP (142 kB)  
Im diesem ZIP-Archiv ist ein BASIC-Kompiler für 32-kB-EEPROMs enthalten. Mit ihm ist es möglich, Programme bis zu einer Größe von maximal 32000 Byte zu kompilieren. Der Original-Kompiler von Conrad-Electronic unterstützt nur Programme bis zu einer Größe von maximal 8100 Byte. Sinn macht der neue Kompiler natürlich nur, wenn das Standard-24C65-EEPROM durch ein größeres ersetzt wurde.

Seit einiger Zeit kann auf Idel´s Homepage eine leicht veränderte DLL für die Windows-IDE heruntergeladen werden. Mit dieser DLL ist es ebenfalls möglich, Programme größer 8 Kilobyte zu kompilieren.

Unter der Windows-IDE besteht generell das Problem, daß der Kompiler zusätzliche Token in das BASIC-Programm einfügt, damit es vom Simulator ausgeführt werden kann. Diese "unsichtbaren" Token führen häufig dazu, daß nur Programme bis etwa 5 bis 6 Kilobyte Größe kompiliert werden können. Diese Beschränkung existiert bei Idels neuer DLL natürlich nicht mehr, so daß es durchaus Sinn macht, die DLL auch dann einzusetzen, wenn sich auf der Unit nur das Standard-8-KB-EEPROM befindet!

 
ccupload.zip (49 kB)  
Mit diesem Upload-Tool kann das CCBASIC- oder CCPLUS-Programm, das sich zur Zeit in der C-Control befindet, über die serielle Schnittstelle ausgelesen und in Binärform in einer DAT-Datei gespeichert werden. Mit Hilfe des von Conrad Electronic entwickelten Programmladers CCDL.EXE kann diese DAT-Datei anschießend in eine andere C-Control übertragen werden. Auf diese Weise ist das Kopieren von Programmen möglich, auch wenn der Quellcode oder die Original-DAT-Datei nicht greifbar sind.
 
Sublink_V1_01.zip (232 kB)  
Wer einen TI92-Taschenrechner von Texas Instruments besitzt, hat sicher Verwendung für das nebenstehende Programmpaket von Marko Kleistner. Es wurde erstellt, um mobile Softwareupdates bei einer C-Control-1 durchzuführen. Ein auf dem PC compiliertes C-Control-Programm kann im TI gespeichert und unterwegs an eine C-Control gesendet werden. Ebenso lassen sich Daten der C-Control mittels Taschenrechner in einen PC zurücktransferieren.

Dem Programmpaket liegt eine ausführliche Infodatei im Word-Format und alle benötigten DLLs bei.

 
CCCOMPSRC.ZIP (27 kB)  
Dieses ZIP-Archiv stammt direkt von Martin Förster, dem Entwickler der C-Control-1. Es enthält den Original-Source-Code des C-Control/BASIC-Compilers. Mit Hilfe des Source-Code sollte es kein Problem darstellen, den Compiler auf ein anderes Computersystem oder Betriebssystem (z.B. Linux) zu portieren. Auch einer eigenen Anpassung und Erweiterung sind Tür und Tor geöffnet. Beispielsweise kann mit Hilfe eines MC68HC705B16-Mikrokontrollers ein eigenes C-Control-Betriebssystem entwickelt werden, das zusätzliche BASIC-Token unterstützt, mit denen beispielsweise auf den I2C-Bus oder auf das Extra-RAM des Mikrokontrollers zugegriffen werden kann.

Martin Förster: Sie werden in den Quellen einige "böse" Dinge finden! Ich selbst distanziere mich von diesen Jugendsünden ;-) Die Ursprünge des Projektes stammen aus den frühen 90er Jahren. Mit der Zeit sind einige "dirty hacks" dazugekommen. Der Compiler ist inzwischen auch nicht mehr Stand der Technik. Ich habe mich jedoch aus dem Thema C-Control I vollständig zurückgezogen und werde nichts mehr daran ändern. Wenn Sie wollen, können Sie die Quellen modifizieren und einen eigenen Compiler veröffentlichen.

 
csources.zip (30 kB)  
In die Sammlung jedes ernsthaften C-Control-Anwenders gehört auch der Originalquellcode des Betriebssystems von Conrad Electronic. Er hat im Vergleich zu meinem ROM-Listing den Vorteil, daß die Aufgaben vieler Betriebssystemroutinen im Original-C-Quellcode sehr viel leichter verständlich sind. Die Darstellung des eigentlichen Programmcodes ist in der Programmiersprache C bereits durch die dort möglichen Einrückungen bei Schleifen und IF-Abfragen sehr viel übersichtlicher als im Assemblerformat.

Dafür fehlt im Originalquellcode jegliche Art von Dokumentation und es fehlen natürlich die Sourcecodes zu den zum Original-Compiler gehörenden Berechnungsroutinen und zu den Pseudobefehlen zur 16-Bit-Adressierung. Außerdem wird auch nicht auf die Bootstrap-Routine ("Self-Check-ROM I") von Motorola eingegangen. Alles im allem betrachtet steht mit dem Quellcode von Conrad also nur ein Teil (und gewissermaßen eine Vorstufe) des gesamten ROM-Inhalts des C-Control/BASIC-Chips zur Verfügung. Vom C-Compiler produzierte Fehler können so gar nicht gefunden werden.

HINWEIS: Dieses Archiv stammt direkt von Martin Förster, dem Entwickler der C-Control-1, und sollte alle zum Kompilieren benötigten Dateien enthalten. In der bisherigen Version fehlten einige Quelldateien. Zum Kompilieren wird allerdings ein spezieller, recht teurer Compiler benötigt.

 
msdostools.zip (670 kB)  
Das nebenstehende ZIP-Archiv enthält nützliche Tools für MS-DOS. Es handelt sich um die sogenannten Supplemental Tools von Microsoft. Also jene Programme, die Microsoft beim Wechsel von MS-DOS 6.22 zu MS-DOS 7.x, welches in Windows 95 und höheren Windowsversionen enthalten ist, nicht integriert hat. Ich habe die wichtigsten Dateien aus dieser Programmsammlung im vorliegenden ZIP-Archiv zusammengestellt. Interessant ist unter anderem der BASIC-Interpreter QBASIC und die Hilfe zu allen DOS-Befehlen bis MS-DOS 6.22.

Nach dem Herunterladen und Entpacken des Archivs muß info.htm im Webbrowser geladen werden. Die Dateien README.TXT und LICENSE.TXT stammen von Microsoft und enthalten zusätzliche Informationen.