2022-08-18 11:49:17 +00:00
|
|
|
Änderungen im CP/M-volksFORTH von Version 3.80 zu Version 3.80a UH 04Mär88
|
2022-08-18 11:29:55 +00:00
|
|
|
=============================================================================
|
|
|
|
|
2022-08-18 11:49:17 +00:00
|
|
|
Die Unverträlichkeit des ursprünglichen CP/M-volksFORTHs mit CP/M+ und die
|
2022-08-18 11:29:55 +00:00
|
|
|
damit verbundene Vielzahl von unterschiedlichen Versionen hat eine allgmeine
|
2022-08-18 11:49:17 +00:00
|
|
|
Überarbeitung des CP/M-volksFORTHs notwendig gemacht.
|
|
|
|
|
2022-08-18 11:29:55 +00:00
|
|
|
Bei dieser Gelegenheit wurden gleich einige Fehler beseitigt und einige
|
2022-08-18 11:49:17 +00:00
|
|
|
neue Funktionen eingeführt.
|
|
|
|
|
|
|
|
1. Änderungen im Kern (SOURCE.SCR)
|
|
|
|
|
|
|
|
- Die Terminal-Ein- und Ausgabe wurde auf ein Mindestmaß begrenzt,
|
|
|
|
sodaß auch unmittelbar mit dem Kern gearbeitet werden kann. Es
|
|
|
|
gibt keinen Zeileneditor für die Eingabezeile mehr, dieser wurde
|
|
|
|
zusammen mit der "Terminal:" Funktion in die Datei XINOUT.SCR
|
|
|
|
ausgelagert.
|
|
|
|
|
|
|
|
- Der Kern enthält kein Fileinterface mehr, sondern arbeitet nur
|
|
|
|
in dem File, welches bei Aufruf in der Kommandozeile mit
|
|
|
|
angegeben wird (default-file). Typischerweise wird mit diesem
|
|
|
|
Mechanismus zuerst das File-Interface geladen.
|
|
|
|
|
|
|
|
- Direkter Diskettenzugriff wird im Kern nicht mehr unterstützt,
|
|
|
|
da er unter CP/M+ nicht problemlos zu implementieren ist.
|
|
|
|
Außerdem kann in Ermangelung eines CP/M+ Systems der Code hier
|
|
|
|
nicht getestet werden. Diskettenzugriff findet nur noch über das
|
|
|
|
BDOS statt.
|
|
|
|
|
|
|
|
- Zahlreiche Funktionen des Kerns wurden neu überarbeitet und in
|
|
|
|
Code geschrieben, als wichtige neue Funktion des Kerns ist
|
|
|
|
"search" hinzugekommen, das eine schnelle Suche mit
|
|
|
|
Berücksichtigung der Groß/Klein- schreibung ermöglicht.
|
|
|
|
|
|
|
|
- Die Funktion CAPITALIZE ist durch die ähnliche Funktion UPPER
|
|
|
|
ersetzt worden. Das EXIT in NAME verschiebt sich dadurch.
|
|
|
|
|
|
|
|
- Der Kern gibt beim Verlassen eine Größenangabe in (256
|
|
|
|
Byte)-Seiten aus. Diese Angabe kann direkt benutzt werden, um
|
|
|
|
mit dem CP/M =SAVE= Kommando das System auf Diskette zu schreiben.
|
|
|
|
(Forth: =SAVE= nicht vergessen! )
|
|
|
|
|
|
|
|
- SAVE-BUFFERS ist um ein defered Wort SAVE-DOS-BUFFERS erweitert
|
|
|
|
worden. Damit sollte der lästige CP/M+ Fehler ausgeschaltet
|
|
|
|
sein.
|
|
|
|
|
|
|
|
- Das defered Wort POSTLUDE regelt die letzte Handlung des Systems
|
|
|
|
vor dem CP/M Warmstart (Cursor anschalten, Bildschirm löschen
|
|
|
|
oder Systemgröße ausgeben...)
|
|
|
|
|
|
|
|
- Die Kommandozeile des Aufrufs wird in den TIB kopiert und kann
|
|
|
|
dort interpretiert werden. Das Öffnen des default-Files löscht
|
|
|
|
allerdings den TIB wieder, sodaß diese Funktion erst ausgenutzt
|
|
|
|
werden kann, wenn das Fileinterface geladen ist. (DRVINIT öffnet
|
|
|
|
nicht mehr das default-File.)
|
|
|
|
|
|
|
|
- Die Interpret-Loop wurde überarbeitet und um das Wort PROMPT
|
|
|
|
erweitert. Das Sonderwort >INTERPRET ist weggefallen. Seine
|
|
|
|
Funktion übernimmt jetzt das (normale) defered Wort PARSER.
|
|
|
|
|
|
|
|
- Die Kontrollstruktur-Anweisungen (IF, WHILE ... ) sind jetzt
|
|
|
|
auch inter- aktiv verwendbar.
|
|
|
|
|
|
|
|
- Diverse kleinere Änderungen haben stattgefunden.
|
|
|
|
|
|
|
|
|
|
|
|
2. Änderungen im Editor (Dateien =EDITOR.SCR=, =STRING.SCR=)
|
|
|
|
|
|
|
|
- Das Markieren der Screens wurde korrigiert und geschieht jetzt
|
|
|
|
auch beim Suchen/Ersetzen und bei =showload= richtig.
|
|
|
|
|
|
|
|
- =VIEW= wurde geändert und sucht nun nach dem in Blanks
|
|
|
|
eingerahmten Wort.
|
|
|
|
|
|
|
|
- Es wird nun zusätzlich das Associative File angezeigt.
|
|
|
|
|
|
|
|
- Beim Suchen/Ersetzen wird die Screennummer hochgezählt, um eine
|
|
|
|
Kontrolle über das Suchen zu geben.
|
|
|
|
|
|
|
|
- Die Textsuche ist nun schon im Kern definiert, die elementaren
|
|
|
|
Stringfunktionen sind mit in das EDITOR.SCR genommen worden.
|
|
|
|
STRING.SCR ist daher entfallen.
|
|
|
|
|
|
|
|
3. Änderungen im Multi-Tasker (TASKER.SCR)
|
|
|
|
|
|
|
|
- Das Wort TASK wurde geändert: Die Konstante ist nun vor der Task
|
|
|
|
definiert. Man kann also nun mit FORGET <taskname> tatsächlich
|
|
|
|
die Task vergessen.
|
|
|
|
|
|
|
|
- Der PAUSE/WAKE/STOP-Mechanismus wurde geändert. In der Benutzung
|
|
|
|
ergibt sich daraus keine Änderung.
|
|
|
|
|
|
|
|
4. Änderungen im Fileinterface (FILEINT.SCR)
|
|
|
|
|
|
|
|
- Das Fileinterface wurde überarbeitet und einige Fehler
|
|
|
|
beseitigt. Die Namen zahlreicher Worte haben sich geändert, sind
|
|
|
|
dadurch aber systematischer geworden. Die Funktionen sind im
|
|
|
|
Wesentlichen gleich geblieben.
|
|
|
|
|
|
|
|
|
|
|
|
5. Terminal-Installation (Zusatz zu Anpassung von VolksForth an den Computer)
|
|
|
|
|
|
|
|
- Da der Kern kein Fileinterface mehr enthält, muß dies noch vor
|
|
|
|
dem Primitivst-Editor geladen werden. Es ergibt sich also die
|
|
|
|
Kommandosequenz:
|
|
|
|
#+begin_example
|
|
|
|
A> kernel fileint.scr
|
2022-08-18 11:29:55 +00:00
|
|
|
1 load
|
|
|
|
use primed.scr 1 load
|
|
|
|
use terminal.scr
|
2022-08-18 11:49:17 +00:00
|
|
|
#+end_example
|
2022-08-18 11:29:55 +00:00
|
|
|
|
2022-08-18 11:49:17 +00:00
|
|
|
6. Erstellen eines Standard-Systems
|
2022-08-18 11:29:55 +00:00
|
|
|
|
2022-08-18 11:49:17 +00:00
|
|
|
- Mit folgender Kommandosequenz wird aus =KERNEL.COM= das File
|
|
|
|
=VOLKS4TH.COM= gemacht:
|
|
|
|
#+begin_example
|
2022-08-18 11:29:55 +00:00
|
|
|
A> kernel fileint.scr
|
|
|
|
1 load
|
|
|
|
include startup.scr
|
2022-08-18 11:49:17 +00:00
|
|
|
#+end_example
|
|
|
|
|
|
|
|
7. Neue Dateien auf der Diskette
|
2022-08-18 11:29:55 +00:00
|
|
|
|
2022-08-18 11:49:17 +00:00
|
|
|
- READ.ME diese Datei
|
|
|
|
- XINOUT.SCR Terminalfunktionen und Zeileneditor für Eingabe
|
|
|
|
- COPY.SCR Die Funktionen COPY und CONVEY (früher im Kern).
|
2022-08-18 11:29:55 +00:00
|
|
|
|
2022-08-18 11:49:17 +00:00
|
|
|
- STRING.SCR Entfällt, da in EDITOR.SCR und SOURCE.SCR integriert.
|