Servus alle zusammen,
ich versuche gerade ein Array an eine sub zu übergeben und habe mich für varptr() entschieden. Aber irgendwie klappt das nicht richtig.
Code:
$regfile = "m128def.dat"
$crystal = 8000000
$sim



Dim Tabelle(5) As Long

Tabelle(1) = 100
Tabelle(2) = 200
Tabelle(3) = 300
Tabelle(4) = 400
Tabelle(5) = 500


 Dim Addresse As Word
   Dim X As Byte

   Declare Sub Array_anzeigen(addr As Word)


   Aufruf:
       Addresse = Varptr(tabelle(1))
       Print " adresse ";
       Print Addresse

       Addresse = Varptr(tabelle(2))
       Print " adresse ";
       Print Addresse

       Addresse = Varptr(tabelle(3))
       Print " adresse ";
       Print Addresse

       Addresse = Varptr(tabelle(4))
       Print " adresse ";
       Print Addresse

       Addresse = Varptr(tabelle(5))
       Print " adresse ";
       Print Addresse

       Dim I As Byte
       For I = 1 To 5
         Print Tabelle(i)
       Next I

       Addresse = Varptr(tabelle(1))
       Call Array_anzeigen(addresse)

   Do
      nop
   Loop

   End                                                      'end program




   Sub Array_anzeigen(addr As Word)
   Local Y As Byte
   Local D As Byte


   Print " "
   Print "Von Suboutine aus :"
   For Y = 1 To 5                                           ' einfache Schleife
      D = Inp(addr)
      Print "addr ";
      Print Addr
      Print D
      Addr = Addr + 4                                       ' Inhalt des Arrays anzeigen.
      Print "tabelle ";
      Print Tabelle(y)
   Next Y

   End Sub
Das was dabei raus kommt ist folgendes:
adresse 257
adresse 261
adresse 265
adresse 269
adresse 273

100
200
300
400
500



Von Suboutine aus :
addr 257
100
tabelle 100

addr 261
200
tabelle 200

addr 265
44
tabelle 300

addr 269
144
tabelle 400

addr 273
244
tabelle 500

kann mir jemand Verraten warum der 2 mal von den Richtigen Adresse liest, auch die richtigen Werte holt, aber dann die Falschen wert von den richtigen adressen?