Der Nachfolger des WDR-Computerclub mit Wolfgang Back und Wolfgang Rudolph - ...und immer ein Bit übrigbehalten!


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Compiler für BASIC-nach-Maschinensprache auf der OM Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Dietmar, Homepage - 19.11.2006 16:13)
 Als Antwort auf Neuigkeiten von Dietmar - 25.06.2005 10:00
Dietmar nutzt:  CC1-M-Unit V1.1, Advanced CC1-Unit, Open-Micro, Open-Mini, Open-Mini M-Unit, Open-Mini Station, sonstige
Hallo an alle Open-Micro- und Open-Mini-Besitzer!

Um BASIC-Programme noch weiter zu beschleunigen, habe ich für die Open-Micro und Open-Mini einen Compiler namens OCBASR geschrieben, mit dem der Anwender BASIC-Quellcode sehr komfortabel in Maschinensprache, bzw. Assembler, umwandeln kann. Der Standard-Compiler OCBASIC übersetzt bekanntlich BASIC-Quellcode in Tokencode, der vom Interpreter in der OM ausgeführt wird. Gegenüber diesem interpretiertem Tokencode wird die vom Compiler OCBASR erzeugte Maschinensprache erheblich schneller ausgeführt.

Und dabei ist die Benutzung des neuen Compilers denkbar einfach. Zur Installation muß man einfach das Programm OCBASR.EXE in das Verzeichnis kopieren, in dem schon OCBAS.EXE steht, und in ConTEXT bei den Benutzerbefehlen "OCBAS.EXE" durch "OCBASR.EXE" ersetzen. Nun wird der BASIC-Compiler OCBASR statt OCBASIC gestartet.

Noch einfacher ist es, BASIC-Quellcode in Assemblercode, bzw. Maschinensprache übersetzen zu lassen. Der zu beschleunigende Code muß in einer Subroutine oder in einer Funktion stehen. Wird hinter die Startzeile dieser Subroutine oder Funktion das Schlüsselwort COMPILE angefügt, wird der OCBASR-Compiler aktiv und übersetzt den in ihr stehenden BASIC-Sourcecode in die Maschinensprache. Dieser Programmteil wird nun üblicherweise 3 bis 4 mal schneller ausgeführt. Einige BASIC-Befehle sind sogar 10 bis 20 mal schneller. Siehe folgendes Beispiel.

INCLUDE "om.def"

DEFINE a,b,c BYTE

subroutine
PRINT funktion(5,8)
END

PROCEDURE subroutine COMPILE
  PRINT "Hallo, hier ist eine Subroutine in Maschinensprache!"
  RETURN
END PROCEDURE

FUNCTION funktion(a,b) COMPILE
  FOR c=a TO b
    PRINT c
  NEXT c
  RETURN 123
END FUNCTION

Bei der Entwicklung des BASIC-Compilers OCBASR stand vor allem die sehr einfache Benutzung im Vordergrund. Der Anwender braucht nur das Schlüsselwort COMPILE an den Namen eines Unterprogramms anzuhängen, um sein Programm zu beschleunigen. Es läßt sich so gut wie jeder BASIC-Befehl in Maschinensprache übersetzen und er führt interpretiert wie compiliert zum gleichen Ergebnis.

Viel Spaß mit den OM-Kontrollern
Dietmar

Passender Link: OCBASR auf der OM-Infosite

Meine Homepage: http://ccintern.dharlos.de

 Antwort schreiben

Bisherige Antworten: