\ 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 ;        