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/07/07 11:01] (aktuell) – [Internes] 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 ===== | ||
| + | |||
| + | Es wird reservierter Systemspeicher genutzt. Auch die RST-Adressen werden verwendet. Das muss bei anderen Erweiterungen (z.B. Mega-Flash) beachtet werden! | ||
| + | |||
| + | < | ||
| + | 90 - 18F Stack für Syntaxanalyse (nur Compiler) | ||
| + | 210- 2FF interne Puffer (Compiler + Laufzeit) | ||
| + | 300 - 4F00 Pretty C mit Arbeitszellen | ||
| + | ... | ||
| + | </ | ||
| + | JKCEMU: C@ schreibt auf Adresse FFFE/FFFD und deaktiviert dadurch den ROM des Mega-Flash. Stattdessen wird das normale BASIC eingeblendet. | ||
| + | Nach dem Kompilieren muss man daher erst mal Reset drücken (und ggf. den Massenspeicher-Treiber neu laden), ehe man wieder mit ED korrekt editieren und vor allem speichern kann! | ||
| + | --> [[..: | ||
| + | Mit einem Schreibzugriff auf Adresse FC00h wird der ROM abgeschaltet. („LD (0FC00h), | ||
| + | Mit einem Schreibzugriff auf Adresse F800h wird der ROM zugeschaltet. („LD (0F800h), | ||