\ SAVESCR.SEQ Routine to save and restore screen. by Tom Zimmer decimal 0 constant svseg \ screen save segment : svinit ( --- ) \ screen save initialization defers initstuff 0 =: svseg 16000 16 / 1+ alloc 8 = abort" Could not allocate memory for Screen save routine." nip =: svseg ; ' svinit is initstuff \ nestable save and restore up to three (3) times. : savescr ( --- ) svseg 0= if exit then svseg 0 2dup 4000 + 12000 cmovel> \ Make a hole in buf video-seg @ 0 svseg 0 4000 cmovel ; \ & save screen in it. : restscr ( --- ) svseg 0= if exit then svseg 0 video-seg @ 0 4000 cmovel \ Restore screen & svseg 4000 over 0 12000 cmovel ; \ compress buffer. : recoverscr ( --- ) \ get a copy of the svseg 0= if exit then \ last saved screen svseg 0 video-seg @ 0 4000 cmovel ; \ Restore screen