> VDUState  Read and write VDU state ; (: 2: << Set palette from "palette file" VDU sequence at store% Fvdu_paletteset(store%) P( A%: A%=store% store%+95: ?A%: Z d: n: Get palatte as "palette file" VDU sequence to store% xvdu_paletteget(store%)  X%,Y%,A%,col%:A%=11 A%=-256:A%<>"W":A%=11  col%=0 15 3X%=store%+col%*6+1:Y%=X%256:X%?-1=19:X%?0=col%  A%=11: &FFF1 ? A%="W":X%?1=16:ș "GetPaletteEntries",@hpal%,col%,1,X%+2  A%="S":.... col%  :  Set VDU non-palette state vdu_stateset(store%) ( A%: A%=store% store%+43: ?A%:  : @ Get the VDU state as a sequence of VDUs to restore it from "x 29,a,b,c,d, 24,a,b,c,d,e,f,g,h, 25,k,a,b,c,d, 25,k,a,b,c,d, 28,a,b,c,d, 31,a,b, 17,a, 17,128+b, 18,a,b, 18,a,128+b ,v ..origin .... graphicwindow .... previous .... current ... textwindow pos/vpos txfgd .. txbgd .. gfgd .... gbgd @vdu_stateget(store%) J X%,Y%,A%,col%:A%=11 TA%=-256:A%<>"W":A%=11 ^ A%<>"W": 7store%?00=29 : Graphics origin, must do first store%!01=@vdu.o.x% store%!03=@vdu.o.y%  h(store%?05=24 : Graphics window r:store%!06=0: @vdu%!60 is handle to graphics rectangle |store%!08=0 store%!10=0 store%!12=0  0store%?14=25 : Previous graphics point #store%?15=2 : MOVE to it store%!16=@vdu.p.x% store%!18=@vdu.p.y%  ,store%?20=25 : Last graphics point #store%?21=4 : MOVE to it store%!22=@vdu.l.x% store%!24=@vdu.l.y% & 0$store%?26=28 : Text window :store%?27=@vdu.tl% Dstore%?28=@vdu.tb% Nstore%?29=@vdu.tr% Xstore%?30=@vdu.tt% b l&store%?31=31 : Text position vstore%?32= store%?33=  /store%?34=17 : Text foreground COLOUR store%?35=@vdu.t.c& (store%?36=17 : Text background store%?37=@vdu.t.d& 128  1store%?38=18 : Graphics foreground GCOL store%?39=@vdu.g.a& store%?40=@vdu.g.b& 1store%?41=18 : Graphics background GCOL store%?42=@vdu.g.c& store%?43=@vdu.g.d& 128       * 4 > H R7 Read and restore VDU state by read/writing memory \' Requires X%=>5 bytes, Y%=X%DIV256 f: p Save VDU state z store% => 48 bytes vdu_stateread(store%) 'mem_rd(store%+&00,&FFFF00D0,0,&06) 'mem_rd(store%+&06,&FFFF0300,0,&1A) 'mem_rd(store%+&20,&FFFF0357,0,&06) 'mem_rd(store%+&26,&FFFF0366,0,&09)  :  Restore VDU state  store% => 48 bytes vdu_statewrite(store%) 'mem_wr(store%+&00,&FFFF00D0,0,&06) 'mem_wr(store%+&06,&FFFF0300,0,&1A) 'mem_wr(store%+&20,&FFFF0357,0,&06) 'mem_wr(store%+&26,&FFFF0366,0,&09) /31,store%?30-store%?14,store%?31-store%?17  $: . mem_rd(mem%,io%,rom%,num%) 8FA%=5::!X%=io%:&FFF1:?mem%=X%?4:io%=io%+1:mem%=mem%+1:num%=num%-1 B num%<1: L: V mem_wr(mem%,io%,rom%,num%) `FA%=6::!X%=io%:X%?4=?mem%:&FFF1:io%=io%+1:mem%=mem%+1:num%=num%-1 j num%<1: t: ~+ݤfx(A%,X%):Y%:=((&FFF4)&FFFF00)256