Problem mit Bascom Lib und Assembler
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 ?
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Robert,
hier das Hex (als Txt) mit 60 eingebundenen Datenbytes.
Liste der Anhänge anzeigen (Anzahl: 1)
Schau, schau. Der Kerl reserviert (hinten) die 60 Bytes, schreibt aber keinen Pieps rein. (anbei der Assembler dazu).
d.h. er erkennt ".DB" eigentlich richtig als das, was es sein soll, vergißt aber auf den Inhalt. Oder es ist ein "hidden feature" bzw "non-documented restriction", wie man so sagt.
Das müßte man reklamieren, allerdings dürfte das die 1.11.7.4 BasCom Version gewesen sein, da werden die keine Support bieten.
Poste vielleicht prog.bas und prog.lib (im aktuellen Status), dann kann ich es mit der neueren Version probieren, mal sehen.