Das Open-Control-Projekt - Die Alternative zur C-Control-I


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 

 Re: Open_Mini Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Dietmar, Homepage - 23.09.2005 16:27)
 Als Antwort auf Open_Mini von Roland - 23.09.2005 14:24
Dietmar nutzt:  CC1-M-Unit V1.1, Advanced CC1-Unit, Open-Micro, Open-Mini

Hallo Roland

auf der Open-Micro und Open-Micro können Assemblerprogramme (genauer Assemblerroutinen) genauso wie bisher auf der C-Control Version 1.1 per SYSCODE in den BASIC-Sourcecode eingebunden und bei Bedarf per SYS aufgerufen werden. Außerdem ist es jetzt möglich, ausgetestete Assemblerroutinen in sogenannte INLINE-Assemblerroutinen und INLINE-Interrupt-Assemblerroutinen umzuwandeln und auf diese Weise platzsparend in ein BASIC-Programm einzubinden.

Natürlich ist es nicht möglich, bestehende Assemblermodule weiterzuverwenden, die zum Beispiel Sprünge ins Betriebssystem der C-Control (z.B. jsr $0c77) enthalten, da sich das Speicherlayout der OM von dem der bisherigen C-Control unterscheidet. Veränderungen gibt es auch bei der Aktivierung von Interruptroutinen.

Hier einmal ein simples Beispiel:

 org $fd00               ; Assemblerprogramm steht an dieser Adresse
                          ; (der SYSCODE-Bereich beginnt bei $fd00)

start
  bclr #1,$00             ; Bit 1 von PORTA loeschen
                          ; (Port [2] soll auf 0 Volt gesetzt werden)
  bset #1,$04             ; Bit 1 von DDRA setzen
                          ; (dadurch wird Port [2] zum Ausgangspin)
  rts                     ; Ruecksprung nach BASIC, hinter das SYS


Das Assemblerprogramm wird mit einem einfachen Texteditor wie Notepad eingegeben und in die Datei "datei.asm" abgespeichert. Anschließend wird es an der Eingabeaufforderung per "as05 -sl datei.asm" in eine S19-Datei übersetzt, man spricht auch vom Assemblieren. Diese S19-Datei sollte folgendermaßen aussehen:

S108FD00130012048150

In der S19-Datei folgt eventuell noch eine Zeile, die mit S5 beginnt, hier aber uninteressant ist. Diese S19-Datei muß auf jeden Fall per SYSCODE in den folgenden BASIC-Sourcecode eingebunden werden. Die Syntax ist zu CCBASIC und zu OCBASIC kompatibel:

sys &hfd00

syscode "datei.s19"


Beim Übersetzen des Quelltexts muß natürlich beachtet werden, daß die S19-Datei auch vom Compiler gefunden werden kann. Also muß die S19-Datei zusammen mit dem BASIC-Source in einem Verzeichnis stehen. Der CCBASIC-Compiler enthält einen Bug und überstützt deshalb keine Pfadangaben bei der SYSCODE-Anweisung. Beim OCBASIC-Compiler ist das natürlich möglich. Beim Übersetzen meldet der Compiler:

Open-Control/BASIC-Compiler Version 0.81 - 65536 BASIC-Bytes frei
entwickelt von Dietmar Harlos vom 20. Juli bis 17. August 2005
4 BASIC-Bytes, 5 SYS-Bytes und 0 RAM-Bytes belegt


Der Compiler erstellt die Datei "datei.dat", die in die Open-Micro oder Open-Mini übertragen werden kann. Dazu kann man CCTrans32, CCDL.EXE oder OMDL.EXE verwenden. Selbstverständlich kann der BASIC-Sourcecode auch innerhalb der Windows-IDE von CCBASIC übersetzt und zur OM übertragen werden.

Jedesmal, wenn das Programm auf der OM gestartet wird, geht der PORT[2] (PTA1) vom Kontroller auf 0 Volt (low). Auf dem Starterboard ist das dadurch zu erkennen, daß die grüne LED PTA1 ausgeht.

Gruß
Dietmar

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

 Antwort schreiben

Bisherige Antworten: