
Open-Control/BASIC-Compiler v0.92 - Betaversion
von Dietmar Harlos ab 20. Juli 2005 bis 16. Maerz 2006


Die Datei OCBAS.EXE enthaelt den gegenueber der bisherigen veroeffentlichten
Version 0.81 verbesserten Open-Control/BASIC-Compiler. Ausserdem gibt es eine
neue INCLUDE-Datei fuer die OM und diverse neue Beispielprogramme! Und bei
den TOOLS gibt es eine ressourcenschonende OCBASIC-Version 0.84 fuer 8086.


Hier die Liste der Bugfixes und Erweiterungen seit OCBASIC 0.81:

Behoben in 0.82:
  - bei ADD und SUB kein Fehler bei Verwendung ungueltiger Variablentypen

Behoben in 0.83:
  - Namen von Tabellen koennen bestehende Labelnamen sein
  - Tabellennamen koennen doppelt vergeben werden
  - bei ungueltigem Vergleichsoperator (">>") kommt interner Fehler
  - vor Remark (') musste ein SPACE stehen
  - ELSEIF und ENDIF fehlen in CCE.TOK fuer DOS-IDE

Erweiterung in 0.84:
  - WHILE TRUE und WHILE ON werden jetzt optimiert (spart 4 Byte)

Erweiterung in 0.90:
  - integrierter 6808-Assembler, der z.Z. nur von der OM unterstuetzt wird

Erweiterung in 0.91:
  - Prozeduren (PROCEDURE) und Funktionen (FUNCTION) hinzugefuegt, damit
    der Anwender dafuer nicht mehr ein Label, POP und REMOVETOS verwenden
    muss. Dadurch ergibt sich ein Komfortgewinn und der Sourcecode ist
    besser lesbar.
  - REMOVETOS wird, wenn Code fuer die C-Control V1.1 erzeugt wird, jetzt
    in ein SYS &h1499 umgesetzt. Dadurch ist mit "OPTION CCBAS" erstellter
    Code, der REMOVETOS enthaelt, nicht auf der OM, der C-Control V2.0x,
    V1.2 und Conrad-Micro lauffaehig. FUNCTION und PROCEDURE enthalten
    versteckte REMOVETOS-Befehle, falls mehr als ein Parameter vom Stack
    geholt wird.

Erweiterung in 0.92:
  - die OM10.INC-INCLUDE-Datei wurde um viele Definitionen erweitert, die
    besonders fuer Nutzer des integrierten 6808-Assemblers sinnvoll sind
  - neue Beispielprogramme erstellt, um die Faehigkeiten des Assemblers
    zu demonstrieren (u.a. CRC32, DTMF-Signalausgabe und Debugging)
  - neuer Befehl INLINE, der wie !DB Daten in den Code einfuegt
  - Subroutinen (PROCEDURE) und Funktionen (FUNCTION) werden durch INLASM-
    Schluesselwort zu Assemblerroutinen. Der Compiler erzeugt automatisch
    einen INLASM- und RETURN-Tokenbefehl und ein INLASM-Label.
  - Bei Subroutinen und Funktionen am Programmbeginn wird automatisch ein
    "GOTO main" davor kodiert. Wenn zusaetzlich INLASM angegeben, wird
    die IAR als IIAR angesehen. Das GOTO ist also einsparbar. Das ist aber
    nicht der Fall bei IIARs in Tabellen oder mit einfachem Label.
  - bei Subroutinen und Funktionen koennen nun auch BIT-Variablen zur
    Parameteruebergabe benutzt werden
  - Labels, Subroutinen und Funktionen mit Assemblercode lassen sich mittels
    SYS aufrufen. Das spart Zeit beim Aufruf gegenueber GOSUB und spart
    einen GOSUB-Stackeintrag.
  - in Assembler koennen nun auch noch nicht definierte Labels bei Befehlen
    mit 16-Bit-Adressierung (u.a. lange Sprungbefehle) verwendet werden
  - Trennzeichen (Komma und Semikolon) bei PRINT sind nicht mehr optional,
    da auch CCBASIC dabei mitunter enorme Schwierigkeiten hat
  - Offset bei Angabe des Indexes bei DEFINE moeglich
  - Offset beim Definieren von Konstanten moeglich (z.B. DEFINE a konst+2)
  - Offset beim Label bei BRA und anderen kurzen Sprungbefehlen moeglich
  - detaillierte Fehlermeldungen, falls ein Bezeichner in Assembler nicht
    verwendbar ist
  - bei vom Compiler als INLASM-Label zu erkennenden Labels (z.Z. nur INLASM-
    PROCEDURE und -FUNCTION) wird wegen der beiden Tokenbefehle INLASM und
    RETURN bei der Verwendung innerhalb des Assemblers und bei SYS auto-
    matisch deren Adresswert um zwei erhoeht
  - interne Variablen der OM koennen innerhalb des Assemblers benutzt werden
  - BIT-, BYTE- und WORD-Variablen koennen in BYTE-, WORD- und LONG-Variablen
    untergebracht werden (z.B. DEFINE a BIT[5] OF b). Das hilft, Variablen-
    ueberschneidungen zu vermeiden.
  - OPTION kann ab jetzt nur noch am Programmbeginn benutzt werden
  - neue Option "OPENMIDI"
  - der INLASM-Befehl wurde wg. Verwechslungsgefahr mit INLASM-Schluessel-
    wort entfernt
  - im Fehlerfall werden aus Sicht des Compilers ueberfluessige Anweisungen
    nun bis Anweisungsende ausgegeben
  - Fehler in der Uebergabeparameterliste bei GOTO und GOSUB wurden nicht
    immer vom Compiler gemeldet (z.B. test (1,2,)
  - Binaerzahlen koennen nun auch mit dem Prefix % statt &b beginnen
  - bei mehr als 20 Fehlermeldungen wird die Kompilierung abgebrochen
  - Kommata sind bei den Assemblerbefehlen CBEQ, DBNZ, BSET, BCLR, BRSET,
    BRCLR und MOV nicht mehr optional
  - Fehler in CBEQ und DBNZ behoben
  - internen Fehler bei Verwendung von BITPORTs und BITs in ASM behoben
  - weitere diverse Verbesserungen, Erweiterungen und Bugfixes


Fehlermeldungen zu dieser experimentellen Version 0.92 bitte direkt an
meine Email-Adresse schicken.

Allgemeine Fragen werden im Forum zur C-Control-1 beantwortet:

http://ccintern.dharlos.de/forum

Viel Spass mit Open-Basic

Dietmar Harlos
dharlos@web.de
