[Back to COMM SWAG index] [Back to Main SWAG index] [Original]
(*
Serial Ports Info v.1.0
Jose Antonio Noda
Compuserve : 100667,2523
*)
Program SerialPorts;
Uses Dos, Crt;
Var
Regs : Registers;
Com1,Com2,Com3,Com4 : Word;
FUNCTION Hex(w:Word):String;
CONST
Cifra:ARRAY[0..15] OF Char=
('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
BEGIN
Hex:= Cifra[Hi(w) SHR 4] +
Cifra[Hi(w) AND 15] +
Cifra[Lo(w) SHR 4] +
Cifra[Lo(w) AND 15];
END;
FUNCTION NoZero(s:String):String;
BEGIN
WHILE (Length(s)>0) AND (s[1]='0') DO Delete(s,1,1);
NoZero:=s;
END;
Begin
Asm
push es
push di
mov ax, 0040h
xor bx, bx
mov es, ax
mov di, bx
mov ax, es:[di]
mov Com1, ax
mov ax, es:[di+2]
mov Com2, ax
mov ax, es:[di+4]
mov Com3, ax
mov ax, es:[di+6]
mov Com4, ax
pop di
pop es;
End;
Clrscr;
Writeln('Serial Ports Info v.1.0 (C) Jose Antonio Noda');
Writeln;
If Com1=0 then Writeln('Serial Port COM1 not installed')
else Writeln('Serial Port COM1 : ',NoZero(Hex(Com1)));
If Com2=0 then Writeln('Serial Port COM2 not installed')
else Writeln('Serial Port COM2 : ',NoZero(Hex(Com2)));
If Com3=0 then Writeln('Serial Port COM3 not installed')
else Writeln('Serial Port COM3 : ',NoZero(Hex(Com3)));
If Com4=0 then Writeln('Serial Port COM4 not installed')
else Writeln('Serial Port COM4 : ',NoZero(Hex(Com4)));
end.
[Back to COMM SWAG index] [Back to Main SWAG index] [Original]