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

    {
    I'm not to sure what the rule is for posting code on here but I figured
    a few of the new programmer, maybe even some of the older ones would
    enjoy this little program I whipped up.  (finally got my screen 12
    putpixel working... grrrrr).  Annoying when every odd color rotates the
    bits and doesn't carry. :)  Anyone have a smaller routine :)
    }

    var
      k:byte;
      j:word;
      oddeven:array[1..639] of Boolean;
      gasket :array[1..639] of Boolean;

    function keypressed : boolean; assembler;
    asm
     mov ah,$b
     int $21
     and al,$fe
    end;

    procedure put(x,y:word; c:byte); assembler;
    asm
     mov dx,$3c4
     mov al,2
     out dx,al
     add dx,2
     mov al,[c]
     out dx,al
     mov bx,80
     mov es,sega000
     mov ax,[y]
     mul bx
     mov di,[x]
     shr di,3
     add di,ax
     mov dl,[es:di]
     mov ch,byte(x)
     and ch,7
     mov cl,7
     sub cl,ch
     mov ch,1
     shl ch,cl
     or dl,ch
     mov [es:di],dl
    end;

    begin
      asm mov ax,$12; int $10; end;
      for j:=1 to 639 do gasket[j]:=false;
      gasket[319]:=true;
      put(319,100,10);
      for k:=1 to 255 do begin
        for j:=1 to 639 do begin
          oddeven[j]:=gasket[j-1] xor gasket[j+1];
          if oddeven[j]=true then put(j,100+k,5);
          end;
        move(oddeven,gasket,639);
      end;
      repeat
      until keypressed;
      asm mov ax,$3; int $10; end;
      writeln('"Gasket" from low-res to HI-RES by Nitro & SeKs...');
    for j:=1 to 2000 do begin mem[$b800:1+j*2]:=random(7)+9; end;
    end.

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