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 ?
Lesezeichen