[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]