Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
z9001:software:prettyc [2025/03/25 14:18] – angelegt volkerp | z9001:software:prettyc [2025/03/26 08:50] (aktuell) – volkerp | ||
---|---|---|---|
Zeile 6: | Zeile 6: | ||
Pretty C ist ein kleiner Einpass-C-Compiler zum Lernen der Sprache C (K& | Pretty C ist ein kleiner Einpass-C-Compiler zum Lernen der Sprache C (K& | ||
+ | |||
+ | {{: | ||
Vor Nutzung des Compilers ist es erforderlich, | Vor Nutzung des Compilers ist es erforderlich, | ||
Zeile 22: | Zeile 24: | ||
===== Downloads ===== | ===== Downloads ===== | ||
+ | |||
+ | {{ : | ||
* Handbuch Version 1.0 incl. Ergänzung Version 1.1 (digitalisiert U. Zander) | * Handbuch Version 1.0 incl. Ergänzung Version 1.1 (digitalisiert U. Zander) | ||
+ | * Beschreibung K&R C (Aus: Kernighan/ | ||
* Softwarepaket (PRETTYC.COM, | * Softwarepaket (PRETTYC.COM, | ||
+ | * mein Patch | ||
===== Hinweise ===== | ===== Hinweise ===== | ||
Zeile 30: | Zeile 36: | ||
Die originale Version lässt nur mit Kassettenrekorder nutzen! Meine gepatchte Version arbeitet auch mit USB und SD-Karten. | Die originale Version lässt nur mit Kassettenrekorder nutzen! Meine gepatchte Version arbeitet auch mit USB und SD-Karten. | ||
- | **Achtung**: Es darf kein [[z9001: | + | :!: Bei " |
+ | |||
+ | :!: Es darf kein [[z9001: | ||
+ | |||
+ | Auf der Tastatur nicht vorhandene Zeichen wie [,{,~ können aus vorhandenen Zeichen | ||
+ | durch nachfolgendes Drücken von ' | ||
< | < | ||
Zeile 46: | Zeile 57: | ||
compiliert ist. | compiliert ist. | ||
- | >EC CLIBM/CR | + | >EC CLIBM/CR Textpuffer CLIBM anlegen |
- | * | + | * Leerzeile |
- | *STRG-C | + | *STRG-C Insert-Mode beenden |
- | ESC+R, | + | ESC+R, |
- | ESC+E | + | ESC+E Editor Ende |
- | >EC CMD/CR | + | >EC CMD/CR Textpuffer CMD anlegen |
*CC MAIN/ | *CC MAIN/ | ||
*CC CLIBM/CN | *CC CLIBM/CN | ||
- | STRG-C | + | *STRG-C Insert-Mode beenden |
- | ESC+E | + | ESC+E Editor Ende |
- | EC MAIN/CR | + | EC MAIN/CR Textpuffer MAIN anlegen |
- | *main(){} | + | * Leerzeile |
*STRG-C | *STRG-C | ||
- | ESC+E | + | ESC+E Editor Ende |
Speicherabzug CLIBM+CMD+MAIN auf Band sichern, dann spart man sich diese Schritte, | Speicherabzug CLIBM+CMD+MAIN auf Band sichern, dann spart man sich diese Schritte, | ||
sondern lädt einfach im OS. | sondern lädt einfach im OS. | ||
- | ( prettyc muss aber vorab init werden, dazu einfach einmal CC ) | + | ( prettyc muss aber vorab init werden, dazu einfach einmal CC ausführen |
- | >EC /DI | + | >EC /DI alle Textpuffer auflisten |
8000 8E8F CLIBM | 8000 8E8F CLIBM | ||
9000 902A CMD | 9000 902A CMD | ||
9200 9217 MAIN | 9200 9217 MAIN | ||
- | >SAVE 8000 921F FFFF | + | >SAVE 8000 921F FFFF OS-Kommando SAVE |
filename: EC_CLIB.COM | filename: EC_CLIB.COM | ||
Zeile 82: | Zeile 93: | ||
</ | </ | ||
+ | ===== Bedienung ===== | ||
+ | |||
+ | EC / | ||
+ | |||
+ | EC TEST/ | ||
+ | |||
+ | Cursor runter/ | ||
+ | |||
+ | ESC+T Pufferfanang | ||
+ | ESC+B Pufferende | ||
+ | |||
+ | * kennzeichnet Insertmodus (neue Zeilen) | ||
+ | es muss mindestens eine Zeile da sein, also mindestens 1x Enter drücken | ||
+ | |||
+ | ^C -> _ (Kommandomode) | ||
+ | ^D Zeile löschen | ||
+ | ^E Insertmodus | ||
+ | |||
+ | ESC+W WRITE: | ||
+ | Ausgabe des gesamten Puffers auf Magnetband | ||
+ | |||
+ | ESC+R READ: | ||
+ | Lesen eines Files von Magnetband, Anhängen an das | ||
+ | Pufferende. WIRD STATT DES Filenamens nur ' | ||
+ | dieser Vergleich unterdrückt | ||
+ | |||
+ | ESC+C Großbuchstaben nutzen | ||
+ | |||
+ | ESC+E end | ||
+ | |||
+ | Textpuffer mit dem Namen CMD schreiben. | ||
+ | |||
+ | OS-Kommando | ||
+ | C@ | ||
+ | arbeitet seine Zeilen nacheinander ab. | ||
+ | |||
+ | CC CQ/ | ||
+ | CC debug/ | ||
+ | CC printf/ | ||
+ | |||
+ | ===== Internes ===== | ||
+ | |||
+ | Aufbau der C-Dateien: | ||
+ | |||
+ | Der Puffer wird in Blöcken zu 128 Bytes aufgezeichnet. | ||
+ | Die Blöcke werden mit 0 beginnend durchnummeriert. | ||
+ | Block 0 ist Steuerblock und enthält außer dem Filenamen (erste 8 Zeichen) | ||
+ | keine relevanten Informationen. | ||
+ | Block 1 beginnt mit der ersten Textzeile. Text im ASCII-Code. Jede | ||
+ | Textzeile endet mit ' | ||
+ | Ein Block, der ETX (03) enthält, wird als letzter Block erkannt. | ||
+ | Danach folgt ein bedeutungsloser Block mit der Nummer FFH. | ||