{ When you change modes, you lose the contents of the screen (cleared). It's all IBM's fault. You see, there is also a change in resolution and available colors and how video is used. It totally changes and that's a way of life on the PC. Sorry, no way around it but to use full graphics mode. FA> use, of course...) (I can't do it on a IBM, but ask me for C64-sources, FA> if you want to have a look ) 320 x 200 x 256c, 13h, isn't the same as the resolution required for 80x50 text (640 x 400 x 256). In that case, I have seen graphics (simple) under text in text mode. If you're forced to change resolution, kiss it all good bye. Run this under text: } {$A+,B-,E-,F-,G+,I-,L-,N-,O-,R-,S-,V-,X-} program RedBar; VAR C:Byte; C2,C3,C4:Word; SINTAB:Array[0..127] of Word; HeadPtr:Word absolute $40:$1A; TailPtr:Word absolute $40:$1C; begin; for c:=0 to 127 do sintab[c]:=Trunc((Sin((2*Pi/128)*C)+1)*135); C3:=0; REPEAT INLINE($FA); repeat until (port[$3da] and 8)>0; repeat until (port[$3da] and 8)=0; for c4:=0 to sintab[c3 and 127] do begin repeat until (port[$3da] and 1)=0; repeat until (port[$3da] and 1)>0; end; for c:=0 to 63 do begin repeat until (port[$3da] and 1)>0; Port[$3C8]:=0; Port[$3C9]:=C; Port[$3C9]:=0; Port[$3C9]:=0; repeat until (port[$3Da] and 1)=0; end; for c:=63 downto 0 do begin; repeat until (port[$3Da] and 1)>0; Port[$3C8]:=0; Port[$3C9]:=C; Port[$3C9]:=0; Port[$3C9]:=0; Repeat until (port[$3da] and 1)=0; end; port[$3C8]:=0; port[$3c9]:=0;port[$3c9]:=0;Port[$3c9]:=0; Inc(C3); inline($FB); until headptr<>tailptr; headptr:=tailptr; end.