![]() ![]() INFO - FAQ - CC2-Forum - CCPro-Forum |
|
' =========================================================================== ' Demoprogramm: CODEPTR - Adresse von Tabellen oder von Code bestimmen ' In OCBASIC 1.11a für Open-Maxi von Dietmar Harlos am 10. September 2020 ' =========================================================================== ' Manchmal ist es nützlich, die Adresse von Tabellen oder von Code zu kennen. ' Zum Beispiel für den PEEK-Befehl. Leider existiert in OCBASIC keine ' CODEPTR-Funktion, die so etwas ermöglichen würde. Aber wie es trotzdem geht ' wird hier in diesem Beispielprogramm demonstriert. ' An dieser Stelle möchte ich mich bei Norbert Klein und bei Dirk von "das ' |_ Team" für ihre Unterstützung bedanken. ' --- Definitionen ---------------------------------------------------------- INCLUDE "omax.def" 'Definitionen für die Open-Maxi DIM a,b,c BYTE DIM w WORD ' --- Hauptprogramm --------------------------------------------------------- PRINT "CODEPTR auf der Open-Maxi" PrintSpc=ON 'Dezimale Zahlen mit führendem Leerzeichen ausgeben End2Host=ON 'Bei Programmende gleich in den Host-Modus wechseln w=tabelle1ptr 'Adresse von tabelle1 ermitteln PrintHex=ON 'Und Adresse und einige Bytes ausgeben PRINT "$";w PrintHex=OFF FOR a=0 TO 4 PRINT PEEK(w+a); NEXT a w=tabelle2ptr 'Adresse von tabelle2 ermitteln PrintHex=ON 'Und Adresse und einige Bytes ausgeben PRINT "$";w PrintHex=OFF FOR a=0 TO 4 PRINT PEEK(w+a); NEXT a END 'Programmende, Neustart per Enter-Taste ' --- Subroutinen und Funktionen -------------------------------------------- FUNCTION codeptr INLASM 'wird von tabelle1ptr & tabelle2ptr aufgerufen ! popa ! sta OSTEMP ! popa ! jmp FwPushW END FUNCTION ' --- Tabellen -------------------------------------------------------------- FUNCTION tabelle1ptr INLASM ! jsr codeptr 'muß direkt vor tabelle1 stehen END FUNCTION TABLE tabelle1 BYTE 4 3 2 1 0 END TABLE FUNCTION tabelle2ptr INLASM ! jsr codeptr 'muß direkt vor tabelle2 stehen END FUNCTION TABLE tabelle2 BYTE "4" "3" "2" "1" "0" END TABLE ' --- Include-Dateien ------------------------------------------------------- INCLUDE "om_fw.pro" ' --- Programmende --------------------------------------------------------- Passender Link: Infosite zu den OM-Mikrocontrollern Meine Homepage: http://ccintern.dharlos.de |
Antwort schreiben |