home *** CD-ROM | disk | FTP | other *** search
- (*********************************************)
- (* *)
- (* MINIMAL.PAS April 95 *)
- (* *)
- (*********************************************)
-
-
- program minimal;
- uses crt, PCL4P;
-
- var
- RetCode : Integer;
- Byte : Char;
- Port : Integer;
- BufPtr : Pointer;
- BufSeg : Integer;
-
- begin (* main program *)
- (* setup 1K receive buffer *)
- GetMem(BufPtr,1024+16);
- BufSeg := Seg(BufPtr^) + ((Ofs(BufPtr^)+15) SHR 4);
- RetCode := SioRxBuf(COM1, BufSeg, Size1024);
- if SioInfo('I') > 0 then
- begin
- (* setup 128 transmit buffer *)
- GetMem(BufPtr,128+16);
- BufSeg := Seg(BufPtr^) + ((Ofs(BufPtr^)+15) SHR 4);
- RetCode := SioTxBuf(Port, BufSeg, Size128);
- end;
- (* reset port *)
- RetCode := SioReset(COM1,Baud9600);
- (* was port reset ? *)
- if RetCode <> 0 then
- begin
- write('Cannot reset COM1: ');
- SioError(RetCode);
- Halt;
- end;
- (* begin terminal loop *)
- writeln('Enter terminal loop ( Type ^Z to exit )');
- while TRUE do
- begin
- (* anything incoming over serial port ? *)
- RetCode := SioGetc(COM1,0);
- if RetCode > -1 then Write( chr(RetCode) );
- (* has user pressed keyboard ? *)
- if KeyPressed then
- begin
- (* read keyboard *)
- Byte := ReadKey;
- (* quit if user types ^Z *)
- if Byte = chr($1a) then
- begin
- writeln('User typed ^Z');
- RetCode := SioDone(COM1);
- Halt;
- end;
- (* send out over serial line *)
- RetCode := SioPutc(COM1, Byte );
- end
- end
- end.