007
29.12.2024, 23:44 Uhr
susowa
|
Zitat: | mwd schrieb Aber wie schreibe ich vom Grundgerät aus Daten in den Koppel-RAM direkt? Und muß ich das überhaupt, wenn ich nur ein einzelnen Byte übertragen will? |
Geschrieben und gelesen wird vom D001 aus in den zur Verfügung stehenden Koppel-RAM-Bereichen mit I/O-Befehlen. Auch ein einzelnes Byte muss so übertragen werden.
Zitat: | mwd schrieb Die Funktion, die mittels ESC-U aufgerufen wird, darf sicher keine Register oder den Stack verändern. |
Du rufst mit ESC-U nicht Dein Programm im D001 auf, sondern eine ESC-Funktion von ZAS. Alles was Dein Programm machen darf, steht in der ZAS-Hilfe. Wenn da nichts steht, darfst Du auch alles machen, was sonst auch in einem D001-Programm gemacht werden darf. Da mit ESC-U nur Dein UP gerufen wird ohne Parameter, kannst Du auch alle Register ändern, wie Du willst und es muss mit RET zu ZAS zurückkehren.
Für die Parameterübergabe musst Du eine Zelle im Koppel-RAM verwenden, so wie Mario schon schrieb.
Für die Quittierung kannst Du MEMANF auf 0FFAEH verwenden, was ohnehin für so etwas vorgesehen ist. Du ersparst Dir damit bei Deiner Anwendung einen kompletten Treiber zu programmieren. Sieh' Dir das UP "CREADN:" in der genannten Quelle an.
MfG susowa |