Hallo Rolf,
ich habe ein kleines Problem mit dem Bankport. Werden normale Variablen in die Banks gelegt und anschließend auf Sie zugegriffen funktioniert das ganze problemlos.
Wenn ich allerdings mit records und arrays arbeite verhält sich das ganze zum Teil seltsam.
{ Type Declarations }
type
tTest2Arr = record
Valu : array[0..4] of byte;
end;
{ Var Declarations }
var
{$BData 0} //Bank 0
TestArr : array[0..4] of byte; //Testarray im banked Bereich
Test2Arr: tTest2Arr;
{$IDATA}
LocArr : tTest2Arr;
//im Programm:Zugriff auf die verschiedenen Arrays und Elemente
TestArr[0] := $11; //funktioniert
Test2Arr.Val := LocArr;//funktioniert
Test2Arr.Val[0]:= $22; //funtioniert nicht -> es wird kein Aufruf des Treibers initiiert
D.h. wenn ich auf ein einzelnes Element des Arrays zugreifen möchte wird dieser Zugriff nicht initiiert bzw. die BankDevOut Prozedur nicht aufgerufen, wenn das Array in einem record liegt. Dies ist auch im Simulator nachvollziehbar.
Gruß Mario
Ps.: Compiler-Rev ist 5.04.06
ich habe ein kleines Problem mit dem Bankport. Werden normale Variablen in die Banks gelegt und anschließend auf Sie zugegriffen funktioniert das ganze problemlos.
Wenn ich allerdings mit records und arrays arbeite verhält sich das ganze zum Teil seltsam.
Code
{ Type Declarations }
type
tTest2Arr = record
Valu : array[0..4] of byte;
end;
{ Var Declarations }
var
{$BData 0} //Bank 0
TestArr : array[0..4] of byte; //Testarray im banked Bereich
Test2Arr: tTest2Arr;
{$IDATA}
LocArr : tTest2Arr;
//im Programm:Zugriff auf die verschiedenen Arrays und Elemente
TestArr[0] := $11; //funktioniert
Test2Arr.Val := LocArr;//funktioniert
Test2Arr.Val[0]:= $22; //funtioniert nicht -> es wird kein Aufruf des Treibers initiiert
D.h. wenn ich auf ein einzelnes Element des Arrays zugreifen möchte wird dieser Zugriff nicht initiiert bzw. die BankDevOut Prozedur nicht aufgerufen, wenn das Array in einem record liegt. Dies ist auch im Simulator nachvollziehbar.
Gruß Mario
Ps.: Compiler-Rev ist 5.04.06