mirror of
https://github.com/forth-ev/VolksForth.git
synced 2024-11-26 02:49:17 +00:00
171 lines
11 KiB
Plaintext
171 lines
11 KiB
Plaintext
|
Screen 0 not modified
|
|||
|
0 \\ *** Diverses *** 26oct86we
|
|||
|
1
|
|||
|
2 In diesem File haben wir Worte untergebracht, die zwar h<>ufig
|
|||
|
3 gebraucht werden, aber nicht bestimmten Files zugeordnet werden
|
|||
|
4 k<>nnen.
|
|||
|
5
|
|||
|
6
|
|||
|
7
|
|||
|
8
|
|||
|
9
|
|||
|
10
|
|||
|
11
|
|||
|
12
|
|||
|
13
|
|||
|
14
|
|||
|
15
|
|||
|
Screen 1 not modified
|
|||
|
0 \ Loadscreen f<>r Diverses 26oct86we
|
|||
|
1
|
|||
|
2 Onlyforth
|
|||
|
3
|
|||
|
4 1 2 +thru
|
|||
|
5
|
|||
|
6 ' .blk Is .status
|
|||
|
7
|
|||
|
8
|
|||
|
9 \ 3 +load setvec
|
|||
|
10
|
|||
|
11
|
|||
|
12
|
|||
|
13
|
|||
|
14
|
|||
|
15
|
|||
|
Screen 2 not modified
|
|||
|
0 \ H<>ufig benutzte Definitionen 26oct86we
|
|||
|
1
|
|||
|
2 : >absaddr ( addr -- abs_laddr ) 0 forthstart d+ ;
|
|||
|
3
|
|||
|
4 : .blk ( -- ) blk @ ?dup 0= ?exit
|
|||
|
5 dup 1 = IF cr file? THEN ." Blk " . ?cr ;
|
|||
|
6
|
|||
|
7 : abort( ( f -- )
|
|||
|
8 IF [compile] .( true abort" !" THEN [compile] ( ;
|
|||
|
9
|
|||
|
10 \needs arguments abort( use definition in FILEINT.SCR)
|
|||
|
11
|
|||
|
12
|
|||
|
13
|
|||
|
14
|
|||
|
15
|
|||
|
Screen 3 not modified
|
|||
|
0 \ H<>ufig benutzte Definitionen II 26oct86we
|
|||
|
1
|
|||
|
2 | Create: cpull
|
|||
|
3 rp@ count 2dup + even rp! r> swap cmove ;
|
|||
|
4
|
|||
|
5 : cpush ( addr len --) r> -rot over >r
|
|||
|
6 rp@ over 2+ - even dup rp! place cpull >r >r ;
|
|||
|
7
|
|||
|
8
|
|||
|
9 : bell 7 con! ;
|
|||
|
10 : blank ( addr count -- ) bl fill ;
|
|||
|
11
|
|||
|
12
|
|||
|
13
|
|||
|
14
|
|||
|
15
|
|||
|
Screen 4 not modified
|
|||
|
0 \ TOS-Alerts abschalten 16oct86we
|
|||
|
1
|
|||
|
2 Create oldvec 4 allot
|
|||
|
3
|
|||
|
4 Label newvector
|
|||
|
5 -8 D1 cmpi 0<> IF -&13 D1 cmpi 0<> IF
|
|||
|
6 .l oldvec pcrel) A2 move A2 ) jmp THEN THEN
|
|||
|
7 .l D1 D0 move rts end-code
|
|||
|
8
|
|||
|
9 : setvec $0.0404 l2@ oldvec 2!
|
|||
|
10 newvector >absaddr $0.0404 l2! ;
|
|||
|
11
|
|||
|
12 : restvec oldvec 2@ $0.0404 l2! ;
|
|||
|
13
|
|||
|
14 : bye restvec bye ;
|
|||
|
15
|
|||
|
Screen 5 not modified
|
|||
|
0
|
|||
|
1
|
|||
|
2
|
|||
|
3
|
|||
|
4
|
|||
|
5
|
|||
|
6
|
|||
|
7
|
|||
|
8
|
|||
|
9
|
|||
|
10
|
|||
|
11
|
|||
|
12
|
|||
|
13
|
|||
|
14
|
|||
|
15
|
|||
|
Screen 6 not modified
|
|||
|
0 \ Loadscreen f<>r Diverses 26oct86we
|
|||
|
1
|
|||
|
2 setzt Searchorder auf FORTH FORTH ONLY FORTH
|
|||
|
3
|
|||
|
4 kompiliert die n<>chsten 2 Screens.
|
|||
|
5
|
|||
|
6 .STATUS ist ein 'deferred word', das jeweils beim Kompilieren
|
|||
|
7 eines Quelltextscreens aufgerufen wird.
|
|||
|
8
|
|||
|
9 Screen 4 wird nicht mitkompiliert, denn SETVEC mu<6D> nach jedem
|
|||
|
10 Neustart wieder aufgerufen werden. Falls Sie diese Funktion
|
|||
|
11 nutzen wollen, m<>ssen Sie nach jedem Laden SETVEC eingeben.
|
|||
|
12 (Dazu mu<6D> nat<61>rlich Screen 4 kompiliert worden sein.)
|
|||
|
13
|
|||
|
14
|
|||
|
15
|
|||
|
Screen 7 not modified
|
|||
|
0 \ H<>ufig benutzte Definitionen 26oct86we
|
|||
|
1
|
|||
|
2 >ABSADDR rechnet eine - relative- Adresse im FORTH-System in
|
|||
|
3 eine absolute 32-Bit-Adresse um.
|
|||
|
4 .BLK gibt die Nummer des gerade kompilierten Screens aus,
|
|||
|
5 bei Screen 1 auch den Filenamen.
|
|||
|
6
|
|||
|
7 ABORT( bewirkt das gleiche wie ABORT", ist aber im Direkt-
|
|||
|
8 modus zul<75>ssig.
|
|||
|
9
|
|||
|
10 ARGUMENTS pr<70>ft, ob eine bestimmte (Mindest-)Anzahl von Werten
|
|||
|
11 auf dem Stack liegt. Dieses Wort ist bereits im
|
|||
|
12 FORTHKER.PRG vorhanden, da es vom File-Interface
|
|||
|
13 gebraucht wird.
|
|||
|
14
|
|||
|
15
|
|||
|
Screen 8 not modified
|
|||
|
0 \ H<>ufig benutzte Definitionen II 26oct86we
|
|||
|
1
|
|||
|
2 CPUSH sorgt im Zusammenspiel mit CPULL daf<61>r, da<64> ein
|
|||
|
3 String (bzw. ein beliebiger Speicherbereich, z.B.
|
|||
|
4 ein Array) nach dem Aufruf einer Funktion wieder
|
|||
|
5 die alten Werte erh<72>lt. Entspricht dem Wort PUSH,
|
|||
|
6 aber f<>r Strings anstelle von Variablen.
|
|||
|
7
|
|||
|
8
|
|||
|
9 BELL Dieses Wort ist selbsterkl<6B>rend !!!
|
|||
|
10 BLANK f<>llt ab addr count Speicherstellen mit Leerzeichen.
|
|||
|
11
|
|||
|
12
|
|||
|
13
|
|||
|
14
|
|||
|
15
|
|||
|
Screen 9 not modified
|
|||
|
0 \ TOS-Alerts abschalten 26oct86we
|
|||
|
1
|
|||
|
2 Vielleicht haben Sie es schon einmal bemerkt. Wenn Sie auf eine
|
|||
|
3 Diskette schreiben wollen, bei der der Schreibschutz gesetzt
|
|||
|
4 ist, erscheint eine Alert-Box, aber ohne Maus, soda<64> Sie den
|
|||
|
5 ABBRUCH-Knopf nur durch geduldiges Experimentieren mit der Maus
|
|||
|
6 erreichen k<>nnen. Diese Box wird vom Betriebssystem ohne unser
|
|||
|
7 Zutun und ohne Einwirkungsm<73>glichkeit erzeugt.
|
|||
|
8 NEWVECTOR <20>ndert den zugeh<65>rigen Vector (critical error handler)
|
|||
|
9 so, da<64> diese Boxen nicht mehr erscheinen, wohl aber die, in
|
|||
|
10 denen z.B. zum Diskettenwechsel aufgefordert wird.
|
|||
|
11 SETVEC und RESTVEC dienen zum Umschalten zwischen altem und
|
|||
|
12 neuen Vector.
|
|||
|
13 Insbesondere mu<6D> BYE den alten Vector wiederherstellen, sonst
|
|||
|
14 st<73>rzt das System gnadenlos ab.
|
|||
|
15 Noch keine besonders elegante L<>sung, aber besser als keine !!
|