home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1996 December / PCO1296.ISO / filesbbs / dos / terminat.arj / DEVELOP.EXE / T-MODE.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1995-04-27  |  1.1 KB  |  48 lines

  1.  
  2. Function HexToInt(s:String) : LongInt;
  3. Var
  4.   i,Sum,Divi:LongInt;
  5.   Illegal:Boolean;
  6. Begin
  7.   Illegal:=False;
  8.   Sum:=0; Divi:=1;
  9.   For i:=Length(s) DownTo 1 Do
  10.   Begin
  11.     If s[i] in ['0'..'9'] Then Sum:=Sum+((Ord(s[i])-48)*Divi)
  12.     Else If UpCase(s[i]) in ['A'..'F'] Then Sum:=Sum+((Ord(UpCase(s[i]))-55)*Divi)
  13.     Else Illegal:=True;
  14.     Divi:=Divi shl 4;
  15.   End;
  16.   If Illegal Then HexToInt:=0 Else HexToInt:=Sum;
  17. End;
  18.  
  19. Var
  20.   rAX, rBX, rCX, rDX : Word;
  21.  
  22. Begin
  23.   If Paramcount=0 Then
  24.   Begin
  25.     WriteLn(#10#13'The Terminate Videomode Changer, Copyright (C) 1995 by Bo Bendtsen');
  26.     WriteLn(#10'Syntax : T-MODE ax [bx cx dx]    All in hex, use SCANMODE to find textmodes');
  27.     WriteLn('Example: T-MODE 22                  Change to videomode $22');
  28.     WriteLn('         T-MODE 3                   MODE CO80  80x25');
  29.     WriteLn('         T-MODE 7                   MODE MONO  80x25');
  30.     Halt;
  31.   End;
  32.  
  33.   rAX:=HexToInt(ParamStr(1));
  34.   rBX:=HexToInt(ParamStr(2));
  35.   rCX:=HexToInt(ParamStr(3));
  36.   rDX:=HexToInt(ParamStr(4));
  37.  
  38.   Asm
  39.     Mov AX,rAX
  40.     Mov BX,rBX
  41.     Mov CX,rCX
  42.     Mov DX,rDX
  43.     Int $10
  44.   End;
  45.  
  46. End.
  47.  
  48.