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 

 Demoprogramm: CODEPTR - Adresse von Tabellen oder von Code bestimmen Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Dietmar, Homepage - 19.09.2020 18:36)
Dietmar nutzt:  Open-Micro, Open-Mini, Open-Midi, Open-Macro, Open-Maxi, Open-Mini Station
' ===========================================================================
' 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
PRINT

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
PRINT

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

Bisherige Antworten:

Re: Demoprogramm: CODEPTR - Adresse von Tabellen oder von Code bestimmen (von das |_ Team - 21.09.2020 2:56)
    Re: Demoprogramm: CODEPTR - Adresse von Tabellen oder von Code bestimmen (von Dietmar - 21.09.2020 3:53)
Re: Demoprogramm: CODEPTR - Adresse von Tabellen oder von Code bestimmen (von Joachim - 19.09.2020 19:03)