
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
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 |