Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
elektronik:z8671:basic_debug [2021/11/18 11:55] – [Literatur] volkerp | elektronik:z8671:basic_debug [2022/08/04 06:37] (aktuell) – ↷ Links angepasst, weil Seiten im Wiki verschoben wurden volkerp | ||
---|---|---|---|
Zeile 15: | Zeile 15: | ||
Das Basic orientiert sich sehr stark an das TINY-BASIC von Tom Pittman (http:// | Das Basic orientiert sich sehr stark an das TINY-BASIC von Tom Pittman (http:// | ||
Literatur und Programme zu den dort beschriebenen BASICs für 1802, 6502, 6800-Controller passen auch zum BASIC/DEBUG des Z8671. | Literatur und Programme zu den dort beschriebenen BASICs für 1802, 6502, 6800-Controller passen auch zum BASIC/DEBUG des Z8671. | ||
+ | |||
+ | 11/2021: Tom Pittman hat mir bestätigt, dass er dieses BASIC Ende der 70er im Auftrag von Zilog programmiert hat. | ||
+ | |||
===== Downloads ===== | ===== Downloads ===== | ||
Zeile 24: | Zeile 27: | ||
* {{ : | * {{ : | ||
- | zur Anpassung an andere Systeme und andere Adressen sowie Erweiterungen s. [[tiny: | + | zur Anpassung an andere Systeme und andere Adressen sowie Erweiterungen s. [[tiny:es40: |
===== Aufbau ===== | ===== Aufbau ===== | ||
Zeile 487: | Zeile 490: | ||
</ | </ | ||
- | Aufgrund der Beschränkungen bei LN (nur Werte 00xxh möglich) muss bei LIST ohne Parameter ein wenig gezaubert werden: Die Werte auf dem Stack werden durch Manipulation in kleinste und größtmögliche Zeilennummer gewandelt. Das entspricht dann dem Aufruf "LIST 1,32535". | + | Aufgrund der Beschränkungen bei LN (nur Werte 00xxh möglich) muss bei LIST ohne Parameter ein wenig gezaubert werden: Die Werte auf dem Stack werden durch Manipulation in kleinste und größtmögliche Zeilennummer gewandelt. Das entspricht dann dem Aufruf "LIST 1,32767". |
Die Division ist nur als vorzeichenlose 16-Bit-Division implementiert. Deshalb muss in der IL die Fallunterscheidung bzgl. Vorzeichen und Division durch 0 erfolgen. | Die Division ist nur als vorzeichenlose 16-Bit-Division implementiert. Deshalb muss in der IL die Fallunterscheidung bzgl. Vorzeichen und Division durch 0 erfolgen. | ||
- | Um Bytes zu sparen, wurden Unterprogramme verlegt und Codes zusammengeführt. Das erzeut | + | Um Bytes zu sparen, wurden Unterprogramme verlegt und Codes zusammengeführt. Das erzeugt |