[Back to EGAVGA SWAG index] [Back to Main SWAG index] [Original]

    { 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 <grin>)

    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.

[Back to EGAVGA SWAG index] [Back to Main SWAG index] [Original]