mirror of
https://github.com/forth-ev/VolksForth.git
synced 2024-10-31 19:04:43 +00:00
Compare commits
5 Commits
3c1b33c68f
...
3255cf9fc4
Author | SHA1 | Date | |
---|---|---|---|
|
3255cf9fc4 | ||
|
b057cc2140 | ||
|
01ddb5643c | ||
|
c9aff2c819 | ||
|
52d0ec8091 |
File diff suppressed because one or more lines are too long
@ -20,7 +20,7 @@ ende 123
|
|||||||
|
|
||||||
\ *** Block No. 1, Hexblock 1
|
\ *** Block No. 1, Hexblock 1
|
||||||
|
|
||||||
\ volksFORTH Loadscreen for py65 target cas 15juli2020
|
\ volksFORTH Loadscreen for py65 target cas 02aug2020
|
||||||
forth definitions
|
forth definitions
|
||||||
: (C [compile] ( ; IMMEDIATE \ : ) ; IMMEDIATE
|
: (C [compile] ( ; IMMEDIATE \ : ) ; IMMEDIATE
|
||||||
|
|
||||||
@ -58,7 +58,7 @@ HERE DUP ORIGIN!
|
|||||||
|
|
||||||
\ *** Block No. 3, Hexblock 3
|
\ *** Block No. 3, Hexblock 3
|
||||||
|
|
||||||
\ Coldstartvalues and user variables cas 15juli2020
|
\ Coldstartvalues and user variables cas 02aug2020
|
||||||
\
|
\
|
||||||
|
|
||||||
0 JMP 0 JSR HERE 2- >LABEL >WAKE
|
0 JMP 0 JSR HERE 2- >LABEL >WAKE
|
||||||
@ -67,7 +67,7 @@ HERE DUP ORIGIN!
|
|||||||
0D6 ALLOT
|
0D6 ALLOT
|
||||||
|
|
||||||
\ Bootlabel
|
\ Bootlabel
|
||||||
," VOLKSFORTH-83 3.8 py65 15july2020 CS"
|
," VolksForth-83 3.8.1 py65 02aug2020 CS"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -172,7 +172,7 @@ USER UDP \ POINTS TO NEXT FREE ADDR IN USER
|
|||||||
|
|
||||||
\ *** Block No. 9, Hexblock 9
|
\ *** Block No. 9, Hexblock 9
|
||||||
|
|
||||||
\ MANIPULATE SYSTEM POINTERS 29JAN85BP)
|
\ MANIPULATE SYSTEM POINTERS 29JAN85BP) cas 02aug2020
|
||||||
|
|
||||||
CODE SP@ ( -- ADDR)
|
CODE SP@ ( -- ADDR)
|
||||||
SP LDA N STA SP 1+ LDA N 1+ STA
|
SP LDA N STA SP 1+ LDA N 1+ STA
|
||||||
@ -628,12 +628,12 @@ CODE U< ( U1 U2 -- FLAG)
|
|||||||
|
|
||||||
\ *** Block No. 33, Hexblock 21
|
\ *** Block No. 33, Hexblock 21
|
||||||
|
|
||||||
\ COMPARISION WORDS 24DEC83KS)
|
\ COMPARISION WORDS 24DEC83KS) cas 02aug2020
|
||||||
|
|
||||||
| : 0< 8000 AND 0<> ;
|
| : 0< 8000 AND 0<> ;
|
||||||
|
|
||||||
: > ( N1 N2 -- FLAG) SWAP < ;
|
: > ( N1 N2 -- FLAG) SWAP < ;
|
||||||
: 0> ( N -- FLAG) NEGATE 0< ;
|
: 0> ( N -- FLAG) DUP 0< SWAP 0= OR NOT ;
|
||||||
: 0<> ( N -- FLAG) 0= NOT ;
|
: 0<> ( N -- FLAG) 0= NOT ;
|
||||||
: U> ( U1 U2 -- FLAG) SWAP U< ;
|
: U> ( U1 U2 -- FLAG) SWAP U< ;
|
||||||
: = ( N1 N2 -- FLAG) - 0= ;
|
: = ( N1 N2 -- FLAG) - 0= ;
|
||||||
@ -2300,7 +2300,7 @@ HOST TARGET
|
|||||||
|
|
||||||
\ *** Block No. 121, Hexblock 79
|
\ *** Block No. 121, Hexblock 79
|
||||||
|
|
||||||
\ 'COLD 07JUN85BP) cas 15juli2020
|
\ 'COLD 07JUN85BP) cas 02aug2020
|
||||||
| : INIT-VOCABULARYS VOC-LINK @
|
| : INIT-VOCABULARYS VOC-LINK @
|
||||||
BEGIN DUP 2- @ OVER 4 - ! @ ?DUP 0= UNTIL ;
|
BEGIN DUP 2- @ OVER 4 - ! @ ?DUP 0= UNTIL ;
|
||||||
|
|
||||||
@ -2309,7 +2309,7 @@ HOST TARGET
|
|||||||
DEFER 'COLD ' NOOP IS 'COLD
|
DEFER 'COLD ' NOOP IS 'COLD
|
||||||
|
|
||||||
| : (COLD INIT-VOCABULARYS INIT-BUFFERS PAGE 'COLD ONLYFORTH
|
| : (COLD INIT-VOCABULARYS INIT-BUFFERS PAGE 'COLD ONLYFORTH
|
||||||
." volksFORTH-83 3.8 py65 202007" CR RESTART ; -2 ALLOT
|
." volksFORTH-83 3.8.1 py65 202008" CR RESTART ; -2 ALLOT
|
||||||
|
|
||||||
DEFER 'RESTART ' NOOP IS 'RESTART
|
DEFER 'RESTART ' NOOP IS 'RESTART
|
||||||
| : (RESTART ['] (QUIT IS 'QUIT
|
| : (RESTART ['] (QUIT IS 'QUIT
|
||||||
|
Binary file not shown.
1
8080/AmstradCPC/AMSDOS.SCR
Normal file
1
8080/AmstradCPC/AMSDOS.SCR
Normal file
File diff suppressed because one or more lines are too long
1
8080/AmstradCPC/ASS8080.SCR
Normal file
1
8080/AmstradCPC/ASS8080.SCR
Normal file
File diff suppressed because one or more lines are too long
1
8080/AmstradCPC/ASSTRAN.SCR
Normal file
1
8080/AmstradCPC/ASSTRAN.SCR
Normal file
@ -0,0 +1 @@
|
|||||||
|
\\ Transinient Assembler 11Nov86 Dieses File enthaelt Befehle, die den Assembler vollstaendig in den Heap laden, so dass er schliesslich mit clear wieder vergessen werden kann. Dadurch ist es nicht notwendig in einer Anwendung den ganzen Assembler im Speicher lassen zu muessen, nur weil einige primitive Worte in Assembler geschrieben sind. \ Internal Assembler UH 22Oct86 Onlyforth here $C00 hallot heap dp ! include ass8080.scr dp !
|
1
8080/AmstradCPC/ATARI.SCR
Normal file
1
8080/AmstradCPC/ATARI.SCR
Normal file
File diff suppressed because one or more lines are too long
1
8080/AmstradCPC/COPY.SCR
Normal file
1
8080/AmstradCPC/COPY.SCR
Normal file
@ -0,0 +1 @@
|
|||||||
|
\ Copy und Convey 19Nov87 Dieses File enthaelt Definitionen, die urspruenglich im Kern enthalten waren. Sie sind jetzt ausgelagert worden, um den Kern klein zu halten. copy kopiert einen Screen convey kopiert einen Bereich von Screens \ moving blocks 20Oct86 19Nov87| : full? ( -- flag ) prev BEGIN @ dup @ 0= UNTIL 6 + @ 0< ; | : fromblock ( blk -- adr ) fromfile @ (block ; | : (copy ( from to -- ) dup isfile@ core? IF prev @ emptybuf THEN full? IF save-buffers THEN offset @ + isfile@ rot fromblock 6 - 2! update ; | : blkmove ( from to quan --) save-buffers >r over r@ + over u> >r 2dup u< r> and IF r@ r@ d+ r> 0 ?DO -1 -2 d+ 2dup (copy LOOP ELSE r> 0 ?DO 2dup (copy 1 1 d+ LOOP THEN save-buffers 2drop ; : copy ( from to --) 1 blkmove ; : convey ( [blk1 blk2] [to.blk --) swap 1+ 2 pick - dup 0> not Abort" Nein !" blkmove ;
|
1
8080/AmstradCPC/DISASS.SCR
Normal file
1
8080/AmstradCPC/DISASS.SCR
Normal file
File diff suppressed because one or more lines are too long
1
8080/AmstradCPC/DOUBLE.SCR
Normal file
1
8080/AmstradCPC/DOUBLE.SCR
Normal file
@ -0,0 +1 @@
|
|||||||
|
\\ Double words 11Nov86 Dieses File enthaelt Worte fuer 32-Bit Objekte. Im Kern bereits enthalten sind: 2@ 2! 2dup 2drop 2swap dnegate d+ Hier werden definiert: 2Variable 2Constant 2over d* \ 2over 2@ 2! 2Variable 2Constant UH 30Oct86 : 2Variable Variable 2 allot ; : 2Constant Create , , does> 2@ ; Code 2over ( 32b1 32b2 -- 32b1 32b2 32b1 ) 7 H lxi SP dad M D mov H dcx M E mov D push H dcx M D mov H dcx M E mov D push Next end-code --> \\ Code 2@ ( addr -- 32b ) H pop H push H inx H inx M E mov H inx M D mov H pop D push M E mov H inx M D mov D push Next end-code Code 2! ( 32b addr -- ) H pop D pop E M mov H inx D M mov H inx D pop E M mov H inx D M mov Next end-code \ d* d- 29Jun86 : d* ( d1 d2 -- d1*d2 ) rot 2over rot um* 2swap um* d+ 2swap um* d+ ; : d- ( d1 d2 -- d1-d2 ) dnegate d+ ;
|
1
8080/AmstradCPC/EDITOR.SCR
Normal file
1
8080/AmstradCPC/EDITOR.SCR
Normal file
File diff suppressed because one or more lines are too long
1
8080/AmstradCPC/FILEINT.SCR
Normal file
1
8080/AmstradCPC/FILEINT.SCR
Normal file
File diff suppressed because one or more lines are too long
1
8080/AmstradCPC/GRAFDEMO.SCR
Normal file
1
8080/AmstradCPC/GRAFDEMO.SCR
Normal file
File diff suppressed because one or more lines are too long
1
8080/AmstradCPC/GRAFIK.SCR
Normal file
1
8080/AmstradCPC/GRAFIK.SCR
Normal file
File diff suppressed because one or more lines are too long
1
8080/AmstradCPC/HASHCASH.SCR
Normal file
1
8080/AmstradCPC/HASHCASH.SCR
Normal file
File diff suppressed because one or more lines are too long
1
8080/AmstradCPC/INSTALL.SCR
Normal file
1
8080/AmstradCPC/INSTALL.SCR
Normal file
File diff suppressed because one or more lines are too long
BIN
8080/AmstradCPC/KERNEL.COM
Normal file
BIN
8080/AmstradCPC/KERNEL.COM
Normal file
Binary file not shown.
1
8080/AmstradCPC/MATHE.SCR
Normal file
1
8080/AmstradCPC/MATHE.SCR
Normal file
@ -0,0 +1 @@
|
|||||||
|
\ Mathematics calculating sin & cos nach FD IV 1 6UH 03Dec86 Dieses File enthaelt Definitionen zur Berechnung von Integer-Sinus und -Cosinus. Sie werden z.B. von der Turtle-Grafik benutzt. \ Mathematics calculating sin & cos nach FD IV 1 6 05Sep86 Create sintab decimal 0000 , 0175 , 0349 , 0523 , 0698 , 0872 , 1045 , 1219 , 1392 , 1564 , 1736 , 1908 , 2079 , 2250 , 2419 , 2588 , 2756 , 2924 , 3090 , 3256 , 3420 , 3584 , 3746 , 3907 , 4067 , 4226 , 4384 , 4540 , 4695 , 4848 , 5000 , 5150 , 5299 , 5446 , 5592 , 5736 , 5878 , 6018 , 6157 , 6293 , 6428 , 6561 , 6691 , 6820 , 6947 , 7071 , 7193 , 7314 , 7431 , 7547 , 7660 , 7771 , 7880 , 7986 , 8090 , 8192 , 8290 , 8387 , 8480 , 8572 , 8660 , 8746 , 8829 , 8910 , 8988 , 9063 , 9135 , 9205 , 9272 , 9336 , 9397 , 9455 , 9511 , 9563 , 9613 , 9659 , 9703 , 9744 , 9781 , 9816 , 9848 , 9877 , 9903 , 9925 , 9945 , 9962 , 9976 , 9986 , 9994 , 9998 , 10000 , : sintable ( deg -- sine*10000 ) 2* sintab + @ ; --> \ sin 05Sep86 : s180 ( deg -- sine*10000 ) dup 90 > IF 180 swap - ( reflect ) THEN sintable ; : sin ( deg -- sine*10000 ) 360 mod dup 180 > IF 180 - s180 negate exit THEN s180 ; : cos ( deg -- cosine*10000 ) 90 + sin ; hex
|
1
8080/AmstradCPC/PORT8080.SCR
Normal file
1
8080/AmstradCPC/PORT8080.SCR
Normal file
@ -0,0 +1 @@
|
|||||||
|
\ 8080-Portzugriff UH 11Nov86 Dieses File enthaelt Definitionen um die 8080-Ports ueber 8-Bit Adressen anzusprechen. Der Code ist leider selbstmodifizierend, da beim 8080 die Portadresse im Code ausdruecklich angegeben werden muss. Sollte dies unerwuenscht sein und ein Z80-Komputer vorliegen, kann auch das File portz80.scr benutzt werden, indem die Z80-IO-Befehle (16Bit-Adressen) benutzt werden. \ 8080-Portzugriff pc@, pc! 15Jul86 ' 0 | Alias patch Code pc@ ( addr -- c ) H pop L A mov here 4 + sta patch in 0 H mvi A L mov Hpush jmp end-code Code pc! ( c addr -- ) H pop L A Mov here 6 + sta H pop L A mov patch out Next end-code
|
1
8080/AmstradCPC/PORTZ80.SCR
Normal file
1
8080/AmstradCPC/PORTZ80.SCR
Normal file
@ -0,0 +1 @@
|
|||||||
|
\ Z80-Portzugriff UH 05Nov86 Dieses File enthaelt Definitionen um die Z80-Ports ueber 16-Bit Adressen anzusprechen. Einige Komputer, so die der Schneider Serie dekodieren ihre Ports etwas unkonventionell, sodass sie unbedingt ueber 16-Bit Adressen angesprochen werden muessen. Im allgemeinen sollte es ausreichen 8-Bit Adressen zu benutzen. \ Z80-Portaccess Extending 8080-Assembler UH 05Nov86 Assembler definitions | : Z80-io ( base -- ) \ define special Z80-io instruction Create c, Does> ( reg -- ) $ED c, c@ swap 8 * + c, ; $40 Z80-io (c)in $41 Z80-io (c)out Forth definitions --> \ store and fetch values with 16-bit port-adresses UH 05Nov86 Code pc@ ( 16b -- 8b ) \ fetch 8-bit value from 16-bit port-addr H pop IP push H B mvx L (c)in 0 H mvi IP pop hpush jmp end-code Code pc! ( 8b 16b -- ) \ store 8-bit value to 16-bit port-addr H pop D pop IP push H B mvx E (c)out IP pop Next end-code
|
1
8080/AmstradCPC/PRIMED.SCR
Normal file
1
8080/AmstradCPC/PRIMED.SCR
Normal file
@ -0,0 +1 @@
|
|||||||
|
\\ Primitivst Editor zur Installation UH 17Nov86 Da zur Installationszeit der Full-Screen Editor noch nicht funtionsfaehig ist, muessen die zu aendernden Screens auf eine andere Weise ge{nder werden: mit dem primitivst Editor PRIMED, der nur ein Benutzer wort enthaelt: Benutzung: Mit "nn LIST" Screen nn zum editieren Anwaehlen, dann mit "ll NEW" den Screen aendern. Es koennen immer nur ganze Zeilen neu geschrieben werden. ll gibt an, ab welcher Zeilennummer neue Zeilen eingeben werden sollen. Die Eingabe einer leeren Zeile (nur RETURN) bewirkt den Abruch von NEW. Nach jeder Eingabe von RETURN wird die eingegebene Zeile in den Screen uebernommen, und der ganze Screen zur Kontrolle nocheinmal ausgegeben. \ primitivst Editor PRIMED UH 17Nov86 | : !line ( adr count line# -- ) scr @ block swap c/l * + dup c/l bl fill swap cmove update ; : new ( n -- ) l/s 1+ swap ?DO cr I . pad c/l expect span @ 0= IF leave THEN pad span @ I !line cr scr @ list LOOP ; \ PRIMED Demo-Screen Dieser Text entstand durch: "2 LIST 4 NEW" mit anschliessender Eingabe dieses Textes Die Kopfzeile (Zeile 0) wurde spaeter durch Verlassen von new durch Eingabe einer leeren Zeile (nur RETURN) und Neustart mit "0 NEW" erzeugt. Ulrich Hoffmann
|
1
8080/AmstradCPC/PRINTER.SCR
Normal file
1
8080/AmstradCPC/PRINTER.SCR
Normal file
File diff suppressed because one or more lines are too long
129
8080/AmstradCPC/README-german.org
Normal file
129
8080/AmstradCPC/README-german.org
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
Änderungen im CP/M-volksFORTH von Version 3.80 zu Version 3.80a UH 04Mär88
|
||||||
|
=============================================================================
|
||||||
|
|
||||||
|
Die Unverträlichkeit des ursprünglichen CP/M-volksFORTHs mit CP/M+ und die
|
||||||
|
damit verbundene Vielzahl von unterschiedlichen Versionen hat eine allgmeine
|
||||||
|
Überarbeitung des CP/M-volksFORTHs notwendig gemacht.
|
||||||
|
|
||||||
|
Bei dieser Gelegenheit wurden gleich einige Fehler beseitigt und einige
|
||||||
|
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
|
||||||
|
1 load
|
||||||
|
use primed.scr 1 load
|
||||||
|
use terminal.scr
|
||||||
|
#+end_example
|
||||||
|
|
||||||
|
6. Erstellen eines Standard-Systems
|
||||||
|
|
||||||
|
- Mit folgender Kommandosequenz wird aus =KERNEL.COM= das File
|
||||||
|
=VOLKS4TH.COM= gemacht:
|
||||||
|
#+begin_example
|
||||||
|
A> kernel fileint.scr
|
||||||
|
1 load
|
||||||
|
include startup.scr
|
||||||
|
#+end_example
|
||||||
|
|
||||||
|
7. Neue Dateien auf der Diskette
|
||||||
|
|
||||||
|
- READ.ME diese Datei
|
||||||
|
- XINOUT.SCR Terminalfunktionen und Zeileneditor für Eingabe
|
||||||
|
- COPY.SCR Die Funktionen COPY und CONVEY (früher im Kern).
|
||||||
|
|
||||||
|
- STRING.SCR Entfällt, da in EDITOR.SCR und SOURCE.SCR integriert.
|
1
8080/AmstradCPC/RELOCATE.SCR
Normal file
1
8080/AmstradCPC/RELOCATE.SCR
Normal file
@ -0,0 +1 @@
|
|||||||
|
\\ Relocate System 11Nov86 Dieses File enthaelt das Utility-Wort BUFFERS. Mit ihm ist es moeglich die Zahl der Disk-Buffers festzulegen, die volksFORTH benutzt. Voreingestellt sind 4 Buffer. Benutzung: nn BUFFERS \ Relocate a system 16Jul86 | : relocate-tasks ( mainup -- ) up@ dup BEGIN 2+ under @ 2dup - WHILE rot drop REPEAT 2drop ! ; | : relocate ( stacklen rstacklen -- ) 2dup + b/buf + 2+ limit origin - u> abort" kills all buffers" over pad $100 + origin - u< abort" cuts the dictionary" dup udp @ $40 + u< abort" a ticket to the moon with no return ..." flush empty over + origin + origin $0A + ! \ r0 origin + dup relocate-tasks \ multitasking link 6 - origin 8 + ! \ s0 cold ; --> \ bytes.more buffers 29Jun86 | : bytes.more ( n+- -- ) up@ origin - + r0 @ up@ - relocate ; : buffers ( +n -- ) b/buf * 4+ limit r0 @ - swap - bytes.more ;
|
1
8080/AmstradCPC/SAVESYS.SCR
Normal file
1
8080/AmstradCPC/SAVESYS.SCR
Normal file
@ -0,0 +1 @@
|
|||||||
|
\\ savesystem 11Nov86 Dieses File enthaelt das Utility-Wort SAVESYSTEM. Mit ihm kann man das gesamte System als File auf Disk schreiben. Achtung: Es wird SAVE ausgefuehrt, daher ist nach SAVESYSTEM der Heap geloescht! Benutzung: SAVESYSTEM <filename> \ savsystem 05Nov86 : savesystem \ filename save $100 here over - savefile ; \\ Einfaches savesystem 18Aug86 | : message ( -- ) base push decimal cr ." ready for SAVE " here 1- $100 / u. ." VOLKS4TH.COM" cr ; : savesystem ( -- ) save message bye ;
|
1
8080/AmstradCPC/SEE.SCR
Normal file
1
8080/AmstradCPC/SEE.SCR
Normal file
File diff suppressed because one or more lines are too long
1
8080/AmstradCPC/SIMPFILE.SCR
Normal file
1
8080/AmstradCPC/SIMPFILE.SCR
Normal file
@ -0,0 +1 @@
|
|||||||
|
\\ Simple Files 11Nov86 Wenn volksFORTH im Direktzugriff Disketten bearbeitet, ist es trotzdem wuenschenswert eine Art File-Struktur zu besitzen. Dieses File enthaelt eine einfache Implementation eines Filesystems. Der/die Programmierer/in muss selbst die Direktory auf dem laufenden halten: in ihr sind die Start-Bloecke des entsprechenden Diskettenteils gespeichert. Sogar eine Hierarchie von Direktories laesst sich so relisieren. Vorgestellt wurde dieses FileSystem von Georg Rehfeld und auch von ihm fuer volksFORTH implementiert (ultraFORTH auf dem C64). \ simple files 12feb86 \needs search .( search missing) \\ | Variable (dir : dir (dir @ ; : root 0 (dir ! ; root | : read" ( -- n) Ascii " word count dup >r dir block b/blk search 0= abort" not found" r> + >in push >in ! bl dir block b/blk (word number drop ; : load" read" dir + load ; : dir" read" (dir +! ; : list" read" dir + list ; \ 1 +load \ Only if file" is needed \ simple files 01feb86 | : snap ( n0 -- n1) $20 / 3 max $20 * ; : file" ( n --) Ascii " word count 2dup dir block b/blk search IF + nip ELSE drop dir block b/blk -trailing nip snap $20 + dup b/blk 1- > abort" directory full" 2dup + >r dir block + swap cmove r> THEN snap $18 + >r dir - extend under dabs <# # # # # base @ $0A = IF Ascii & ELSE Ascii $ THEN hold rot 0< IF Ascii - ELSE bl THEN hold #> r> dir block + swap cmove update ; \ dir load" 11feb86 \needs search .( search missing) \\ 0 Constant dir : load" ( -- ) Ascii " word count dup >r dir block b/blk search 0= abort" not found" r> + >in @ blk @ rot >in ! dir blk ! bl word number drop -rot blk ! >in ! load ;
|
1
8080/AmstradCPC/SOURCE.SCR
Normal file
1
8080/AmstradCPC/SOURCE.SCR
Normal file
File diff suppressed because one or more lines are too long
1
8080/AmstradCPC/STARTUP.SCR
Normal file
1
8080/AmstradCPC/STARTUP.SCR
Normal file
@ -0,0 +1 @@
|
|||||||
|
\\ Startup: Load Standard System UH 11Nov86 Dieses File enthaelt Befehle, die aus dem File KERNEL.COM ein vollstaendiges volksFORTH machen, das mit SAVESYSTEM als File (z.B. VOLKS4th.COM) auf Disk geschrieben werden kann. \ System LOAD-Screen fuer CP/M VolksForth ( 10.02.89/KK ) include ass8080.scr include xinout.scr \ Erweiterte Ein- u. Ausgabe include terminal.scr save \ Terminal include copy.scr cr .( copy und convey geladen.) cr include savesys.scr cr .( Savesystem geladen.) cr include editor.scr cr .( Editor geladen.) cr include tools.scr cr .( Tools geladen.) cr include see.scr cr .( Decompiler geladen.) cr include tasker.scr cr .( Multitasker geladen.) cr include printer.scr cr .( Printer Interface geladen.) cr include relocate.scr cr .( Relocating geladen. ) cr .( May the volksFORTH be with you ...) cr decimal caps on editor.scr scr off r# off ( savesystem volks4th.com ) \ UH 22Oct86
|
1
8080/AmstradCPC/TASKER.SCR
Normal file
1
8080/AmstradCPC/TASKER.SCR
Normal file
File diff suppressed because one or more lines are too long
1
8080/AmstradCPC/TERMINAL.SCR
Normal file
1
8080/AmstradCPC/TERMINAL.SCR
Normal file
@ -0,0 +1 @@
|
|||||||
|
\\ Terminal-Anpassung 11Nov86 In diesem File wird volksFORTH an das benutzte Terminal angepasst. Ueber folgende Faehigkeiten muss das Terminal verfuegen, damit alle Moeglichkeiten von volksFORTH ausgenutzt werden koennen: curon, curoff \ Ein- bzw. Ausschalten des Cursors curleft, currite \ Cursor nach links bzw. rechts bewegen rvson, rvsoff \ Ein- bzw. Ausschalten der Inversedarstellungdark \ Loeschen des Bildschirms locate \ Positionieren des Cursors auf eine \ bestimmte Position auf dem Bildschirm \ Schneider CPC464-Terminal Anpassung UH 18Mar87 | : CPCcuron ( -- ) 3 con! ; | : CPCcuroff ( -- ) 2 con! ; | Variable reverse reverse off | : CPCrvson ( -- ) reverse @ ?exit reverse on $18 con! ; | : CPCrvsoff ( -- ) reverse @ 0= ?exit reverse off $18 con! ; | : CPCdark ( -- ) $0C con! ; | : CPClocate ( row col -- ) $1F con! 1+ con! &24 min 1+ con! ; Terminal: schneider CPCcuron CPCcuroff CPCrvson CPCrvsoff CPCdark CPClocate ; schneider page .( CPC-464 Terminal installiert. ) cr cr
|
1
8080/AmstradCPC/TIMES.SCR
Normal file
1
8080/AmstradCPC/TIMES.SCR
Normal file
@ -0,0 +1 @@
|
|||||||
|
\\ Times Often: interactive loops 11Nov86 Dieses File enthaelt die Definitionen der beiden Utility-Worte TIMES, OFTEN, die interaktiv benutzt werden koennen, was normalerweise mit BEGIN WHILE ... nicht moeglich ist. Benutzung: nur interaktiv! a b ... nn times \ Wiederhole die Befehlsfolge "a b ..." nn mal, \ oder bis eine Taste gedrueckt wird, oder \ bis ein Fehler auftritt, a b ... often \ Wiederhole die Befehlsfolge "a b ..." \ so oft, bis eine Taste gedrueckt wird, oder \ bis ein Fehler auftritt. \ Times, Often 02feb86 also Forth definitions : often stop? ?exit >in off ; | Variable #times #times off : times ( n --) ?dup IF #times @ 2+ u< stop? or IF #times off exit THEN 1 #times +! ELSE stop? ?exit THEN >in off ; toss definitions
|
1
8080/AmstradCPC/TOOLS.SCR
Normal file
1
8080/AmstradCPC/TOOLS.SCR
Normal file
File diff suppressed because one or more lines are too long
1
8080/AmstradCPC/TURTDEMO.SCR
Normal file
1
8080/AmstradCPC/TURTDEMO.SCR
Normal file
File diff suppressed because one or more lines are too long
1
8080/AmstradCPC/TURTLE.SCR
Normal file
1
8080/AmstradCPC/TURTLE.SCR
Normal file
File diff suppressed because one or more lines are too long
1
8080/AmstradCPC/VDOS62KX.SCR
Normal file
1
8080/AmstradCPC/VDOS62KX.SCR
Normal file
File diff suppressed because one or more lines are too long
BIN
8080/AmstradCPC/VOLKS4TH.COM
Normal file
BIN
8080/AmstradCPC/VOLKS4TH.COM
Normal file
Binary file not shown.
1
8080/AmstradCPC/XINOUT.SCR
Normal file
1
8080/AmstradCPC/XINOUT.SCR
Normal file
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
|||||||
\\ Startup: Load Standard System UH 11Nov86 Dieses File enthaelt Befehle, die aus dem File KERNEL.COM ein vollstaendiges volksFORTH machen, das mit SAVESYSTEM als File (z.B. VOLKS4th.COM) auf Disk geschrieben werden kann. \ System LOAD-Screen fuer CP/M VolksForth UH 27Nov87include ass8080.fb include xinout.fb \ extended I/O include terminal.fb save \ Terminal include copy.fb cr .( copy and convey loaded) cr include savesys.fb cr .( Savesystem loaded) cr include editor.fb cr .( Editor loaded) cr include tools.fb cr .( Tools loaded) cr include see.fb cr .( Decompiler loaded) cr include tasker.fb cr .( Multitasker loaded) cr include printer.fb cr .( Printer Interface loaded) cr include relocate.fb cr .( Relocating loaded) cr .( May the volksFORTH be with you ...) cr decimal caps on scr off r# off savesystem volks4th.com UH 22Oct86
|
\\ Startup: Load Standard System UH 11Nov86 Dieses File enthaelt Befehle, die aus dem File KERNEL.COM ein vollstaendiges volksFORTH machen, das mit SAVESYSTEM als File (z.B. VOLKS4th.COM) auf Disk geschrieben werden kann. \ System LOAD-Screen fuer CP/M VolksForth UH 27Nov87include ass8080.fb include xinout.fb \ extended I/O \ include terminal.fb save \ Terminal include copy.fb cr .( copy and convey loaded) cr include savesys.fb cr .( Savesystem loaded) cr include editor.fb cr .( Editor loaded) cr include tools.fb cr .( Tools loaded) cr \ include see.fb cr .( Decompiler loaded) cr \ include tasker.fb cr .( Multitasker loaded) cr \ include printer.fb cr .( Printer Interface loaded) cr include relocate.fb cr .( Relocating loaded) cr .( May the volksFORTH be with you ...) cr decimal caps on scr off r# off savesystem volks4th.com UH 22Oct86
|
Binary file not shown.
BIN
8086/pc-baremetal/bootdisk/flp144.bin
Normal file
BIN
8086/pc-baremetal/bootdisk/flp144.bin
Normal file
Binary file not shown.
BIN
8086/pc-baremetal/bootdisk/mkimg144
Executable file
BIN
8086/pc-baremetal/bootdisk/mkimg144
Executable file
Binary file not shown.
Loading…
Reference in New Issue
Block a user