VolksForth/sources/AtariST/RELOCATE.fth

52 lines
3.1 KiB
Forth
Raw Normal View History

\ *** Block No. 0 Hexblock 0
\\ 26oct86we
Diese File enth<EFBFBD>lt Worte, mit denen die Speicheraufteilung
des volksFORTH ver<EFBFBD>ndert werden kann.
RELOCATE setzt R0 und S0 neu, beachten Sie dazu auch die
Ausf<EFBFBD>hrungen im Handbuch.
Mit BUFFERS kann man die Anzahl der Diskbuffer ver<EFBFBD>ndern.
Standardm<EFBFBD><EFBFBD>ig ist das System auf &10 Buffer eingestellt. Reicht
der Platz im Dictionary bei sehr gro<EFBFBD>en Programmen nicht aus,
kann man hier am ehesten Speicherplatz einsparen.
Umgekehrt erh<EFBFBD>ht sich der Arbeitskomfort beim Editieren, wenn
m<EFBFBD>glichst viele Diskbuffer vorhanden sind, um Diskettenzugriffe
zu minimieren.
\ *** Block No. 1 Hexblock 1
\ Relocate a system 26oct86we
| : relocate-tasks ( mainup -- ) up@ dup
BEGIN 2+ under @ 2dup - WHILE rot drop REPEAT 2drop !
up@ 2+ @ origin 2+ ! ;
: relocate ( stacklen rstacklen -- )
2dup + limit origin - b/buf - 2-
u> abort" kills all buffers"
over pad $100 + origin - u< abort" cuts the dictionary"
dup udp @ $40 +
u< abort" kills returnstack"
flush empty over + origin + origin &12 + ! \ r0
origin + dup relocate-tasks \ multitasking
6 - origin &10 + ! \ s0
cold ; -->
\ *** Block No. 2 Hexblock 2
\ bytes.more buffers 15sep86we
| : bytes.more ( n+- -- )
up@ origin - + r0 @ up@ - relocate ;
: buffers ( +n -- )
b/buf * 4+ limit r0 @ - swap - bytes.more ;