Hallo,
ich bin dabei eine Lib für Bascom zu schreiben. Dabei habe ich sicher ein Problem mit dem Pointer ?!

Das Bascom Programm
Code:
$regfile = "m8535.dat"
$crystal = 8000000
$lib "Test.lib"
$external Grtxt

Config Porta = Output
Porta = $ff

Declare Sub Grtxt

Call Grtxt

Do
Loop
Und die Test.Lib dazu
Code:
[grtxt]
Grtxt:
  ldi zh,High(Daten)
  ldi zl,Low(Daten)
  ld r22,z
* out Porta,r22
  ret
;
Daten: 					
.db &H14,&H7F,&H14,&H7F,&H14,&H00				
[end]
Alles noch sehr übersichtlich und trotzdem irgendwo fehlerhaft ?
R22 bzw. der Porta zeigen $17 anstatt $14 ?
Wenn ich in der Lib "ld r22,z+1" schreibe, ist R22 / Porta = 0 ?
Kann mir das jemand erklären ?

Wie ist das eigendlich mit Push und Pop ? Muß ich vor dem Aufruf der Lib, irgendwelche Register sichern ?