Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
forth:fgforth:kassette [2023/10/19 14:49] – [Beispiel] volkerp | forth:fgforth:kassette [2025/07/14 10:10] (aktuell) – [Get/Put Orig. Br.] volkerp | ||
---|---|---|---|
Zeile 109: | Zeile 109: | ||
14 ' RAM-LOAD IS GET ( n --) | 14 ' RAM-LOAD IS GET ( n --) | ||
15 ' RAM-SAVE IS PUT ( von bis --) | 15 ' RAM-SAVE IS PUT ( von bis --) | ||
+ | </ | ||
+ | |||
+ | JUMP macht einen allg. [[z1013: | ||
+ | Es werden die Einsprungadressen aus dem [[z1013: | ||
+ | |||
+ | Mit JUAD wird das Wort JUMP modifiziert. NEW und OLD patchen das Wiederholungsflag; | ||
+ | |||
+ | < | ||
+ | JUMP is | ||
+ | 2A6A: PUSH AF | ||
+ | 2A6B: PUSH BC | ||
+ | 2A6C: PUSH DE | ||
+ | 2A6D: PUSH HL | ||
+ | 2A6E: PUSH IX | ||
+ | 2A70: PUSH IY | ||
+ | 2A72: LD IY, | ||
+ | 2A76: LD A,4E ; offs 0Fh A=0 ohne, A=4EH mit Typ und Namensabfrage, | ||
+ | 2A78: CALL FFF4 ; offs 11h FFF1H - JMP LORUF, FFF4H - JMP SARUF | ||
+ | 2A7B: POP IY | ||
+ | 2A7D: POP IX | ||
+ | 2A7F: POP HL | ||
+ | 2A80: POP DE | ||
+ | 2A81: POP BC | ||
+ | 2A82: POP AF | ||
+ | 2A83: JP 0422 | ||
+ | 2A86: END | ||
+ | |||
+ | nb: Aus Forth-Sicht müsste man nicht alle Register retten; BC und IY reichen. | ||
+ | |||
</ | </ | ||
Zeile 119: | Zeile 148: | ||
===== Z9001 ===== | ===== Z9001 ===== | ||
- | <code> | + | <file> |
Screen # 01 ----------------------- | Screen # 01 ----------------------- | ||
Zeile 271: | Zeile 300: | ||
14 Anzeige der Filenamen von Kas | 14 Anzeige der Filenamen von Kas | ||
15 sette, Abbruch mit > | 15 sette, Abbruch mit > | ||
- | </code> | + | </file> |
+ | **MC Routinen dürfen BC (IP) und IY (RP) nicht verändern!** | ||
+ | |||
+ | < | ||
+ | CBOS: Aufruf Sprungverteiler, | ||
+ | 2A62 E1 | ||
+ | 2A63 C5 | ||
+ | 2A64 FD E5 PUSH IY | ||
+ | 2A66 4D | ||
+ | 2A67 CD 05 00 | ||
+ | 2A6A FD E1 POP | ||
+ | 2A6C C1 | ||
+ | 2A6D 26 00 LD H,00H | ||
+ | 2A6F 6F | ||
+ | 2A70 E5 | ||
+ | 2A71 ED 62 SBC | ||
+ | 2A73 E5 | ||
+ | 2A74 C3 22 04 | ||
+ | |||
+ | MAREK: Aufruf OS-Systemfunktion Lesen eines bel. Blocks von Kassette | ||
+ | 2A81 C5 | ||
+ | 2A82 FD E5 PUSH IY | ||
+ | 2A84 CD 59 FF | ||
+ | 2A87 CD E3 FA | ||
+ | 2A8A FD E1 POP | ||
+ | 2A8C C1 | ||
+ | 2A8D C3 22 04 | ||
+ | </ | ||
===== Beispiel ===== | ===== Beispiel ===== | ||