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

{
This is some code I did for someone.  I figure they may be one of you all that
need it.
Also put it in SWAG if you like it.

This will let you change between the 6 most common text modes!  Nice easy to
read code I think. <grin>
There is NO warranty with this!  You are on your own if it messes anything up!
----------------> CUT HERE <--------------

(* Info:                                                                     *)
(*                                                                           *)
(*  Forbis's Cool Text Mode Thing v0.01                                      *)
(*  by: Chris Forbis                                                         *)
(*  CopyRight 1994 . All Rights Reserved                                     *)
(*                                                                           *)
(* About:                                                                    *)
(*  I worked on this one day when well I just had to get into 132x25x16!     *)
(*  Enjoy!  Please don't hack this up!  If you use  ease give me a little    *)
(*  credit where it is due.                                                  *)
(*                                                                           *)
(* Getting Hold Of Me:                                                       *)
(*                                                                           *)
(* InterNet:  forbis@vsl.ist.ucf                                             *)
(* FidoNet :  1:363/246                                                      *)
(*            Pascal and Pascal Lessons Areas                                *)
(* BBS     :  Darkened Lands (407)679-3449                                   *)
}

program TEXTMODE;

procedure SetMode_80_25_16; assembler;
asm
  mov ax, 03h
  int 10h
end;

procedure SetMode_80_25_2; assembler;
asm
  mov ax, 07h
  int 10h
end;

procedure SetMode_80_60_16; assembler;
asm
  mov ax, 4Eh
  int 10h
end;

procedure SetMode_132_60_16; assembler;
asm
  mov ax, 4Fh
  int 10h
end;

procedure SetMode_132_25_16; assembler;
asm
  mov ax, 50h
  int 10h
end;

procedure SetMode_132_43_16; assembler;
asm
  mov ax, 51h
  int 10h
end;

procedure HelpMenu;
begin
  writeln('þ Forbis''s Cool Text Mode Thing! v0.01');
  writeln('ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ');
  writeln('Usage: TEXTMODE <MODE>');
  writeln;
  writeln('MODE:');
  writeln('       0 : 80x 25y 16c   Mode: 03h');
  writeln('       1 : 80x 25y 2c    Mode: 07h');
  writeln('       2 : 80x 60y 16c   Mode: 4Eh');
  writeln('       3 : 132x 60y 16c  Mode: 4Fh');
  writeln('       4 : 132x 25y 16c  Mode: 50h');
  writeln('       5 : 132x 43y 16c  Mode: 51h');
  writeln('ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ');
  writeln('I will not be held liable if this messes');
  writeln('up your machine!');
  writeln('ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ');
end;

var
  st : string[1];
  ch : char;

begin
  if (paramcount = 0) then begin
    HelpMenu;
  end else begin
    st := paramstr(1);
    ch := st[1];
    case upcase(ch) of
      '0' : SetMode_80_25_16;
      '1' : SetMode_80_25_2;
      '2' : SetMode_80_60_16;
      '3' : SetMode_132_60_16;
      '4' : SetMode_132_25_16;
      '5' : SetMode_132_43_16;
      else HelpMenu;
    end;
  end;
  writeln('Thanks for using Forbis''s Cool Text Mode Thing!');
end.

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