Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung Nächste ÜberarbeitungBeide Seiten der Revision | ||
z9001:basic [2011/04/12 06:32] – volkerp | z9001:basic [2012/08/07 13:12] – Zahlenformat BASIC volkerp | ||
---|---|---|---|
Zeile 152: | Zeile 152: | ||
| basic-2le.rom | BASIC-Erweitwerung von L.Elßner, Version 1.00 | | | basic-2le.rom | BASIC-Erweitwerung von L.Elßner, Version 1.00 | | ||
| basea.rom | BASIC-Erweitwerung von L.Elßner, vermutlich ältere Version (kleine Unterschiede in den Merkzellen für die Kassettenroutinen) | | | basea.rom | BASIC-Erweitwerung von L.Elßner, vermutlich ältere Version (kleine Unterschiede in den Merkzellen für die Kassettenroutinen) | | ||
+ | |||
+ | |||
+ | ===== Patch BASIC86 ===== | ||
+ | |||
+ | um das o.a. Problem beim BASIC86, einen sinnlosen Kopfblock zu schreiben, zu umgehen, gibt es einen kleinen Patch. Der kleine Nachteil dieser Lösung ist, das jetzt wieder direkt interne Monitoraufrufe getätigt werden. | ||
+ | |||
+ | -> weitere Patches s. Assemblerquellcode bm608p.asm | ||
+ | |||
+ | < | ||
+ | ; Patch in BASIC-Erweiterung BM608 für write tape | ||
+ | ; nicht OPENW nutzen, das (schreibt nur sinnlosen (!!!) Block 0 | ||
+ | org 0E68Bh | ||
+ | call 0F593h | ||
+ | ld a, 1 | ||
+ | ld (6Bh), a ; BLNR | ||
+ | nop | ||
+ | nop | ||
+ | ; | ||
+ | org 0E6EEh | ||
+ | push de | ||
+ | call sub_E7D8 | ||
+ | pop de | ||
+ | |||
+ | |||
+ | org | ||
+ | sub_E7D8: | ||
+ | dec a | ||
+ | jp nz, 0F46Fh ; wenn nicht Block 1 | ||
+ | ld bc, 1770h ; sonst: langer Vorton | ||
+ | jp 0F472h ; fuer ersten Block | ||
+ | </ | ||
Zeile 241: | Zeile 272: | ||
===== Internas ===== | ===== Internas ===== | ||
+ | |||
+ | 7.8.2012: Das Zahlenformat des BASIC entspricht dem SKR-Standardformat. | ||
+ | s. Lampe/ Jorke/ Wengel: Algorithmen der Mikrorechentechnik, | ||
+ | |||
< | < | ||
Zeile 448: | Zeile 483: | ||
Es gibt keine direkte Möglichkeit zu ermitteln, ob es sich um | Es gibt keine direkte Möglichkeit zu ermitteln, ob es sich um | ||
- | ein Zahlen- oder Stringfeld handelt. Auch die Größe ist nicht bestimmbar | + | ein Zahlen- oder Stringfeld handelt. Auch die Größe ist nicht direkt |
+ | (mit ein paar Programmtricks geht es aber -> total commander plugin listtap2 zeigt auch Felder an!) | ||
84 85 7C 3F A$(0) je 4 Byte pro Feldwert | 84 85 7C 3F A$(0) je 4 Byte pro Feldwert |