home *** CD-ROM | disk | FTP | other *** search
- {$I-,R-,S-,D-,F-,V-,B-,N-,L-}
-
- PROGRAM GlassTty;
-
- { Einfaches Terminalprogramm zur Demonstration der Anwendung
- von V24Pipe.
-
- Autor: Christian Philipps Software-Technik
- Düsseldorfer Str. 316
-
- 4130 Moers 1
-
- Stand: Sep. 1989
- }
-
- USES Crt, Dos, CpMulti, V24, V24Pipe;
-
- CONST Ende : Boolean = False;
- Echo : Boolean = False;
-
- VAR C : Char;
- Regs : Registers;
- LastSelect : BYTE;
-
- {$I GLASSTTY.INC}
-
- {--------------------------------------------------------------------------}
-
- {$F+}
- PROCEDURE V24Input(P:Pointer);
-
- VAR C : Char;
-
- BEGIN
- Read(AuxIn,C);
- WHILE Not Ende AND (IoResult = 0) DO
- BEGIN
- Write(C);
- Read(AuxIn,C);
- END;
- END;
- {$F-}
-
- {--------------------------------------------------------------------------}
-
- PROCEDURE GoodMorning;
-
- BEGIN {GoodMorning}
- TextColor(7);
- TextBackground(0);
- ClrScr;
- Writeln('GlassTty V1.00 / C. Philipps / Sep. 1989');
- Writeln('----------------------------------------');
- Writeln;
- Writeln('Alt-X: Ende des Programmes');
- Writeln('Alt-E: Toggle Echo Modus');
- Writeln;
- Writeln('Glasstty online...');
- Writeln;
- END; {GoodMorning}
-
- {--------------------------------------------------------------------------}
-
- PROCEDURE GoodNight;
-
- BEGIN {GoodNight}
- TextColor(7);
- TextBackground(0);
- ClrScr;
- Writeln('Have a nice day...');
- END; {GoodNight}
-
- {--------------------------------------------------------------------------}
-
- PROCEDURE Output(C:Char);
-
- { Ausgabe eines Zeichens auf dem Bildschirm, falls Echo on und über
- die Schnittstelle }
-
- BEGIN {Output}
- IF Echo
- THEN Write(C);
- Write(AuxOut,C);
- IF IoResult <> 0
- THEN BEGIN
- Writeln('Fehler beim Schreiben von AuxOut!');
- Halt(1);
- END;
- END; {Output}
-
- {--------------------------------------------------------------------------}
-
- PROCEDURE GoOnline;
-
- VAR V24InTask : TaskNoType;
-
- BEGIN {GoOnline}
- OpenAux(Ports[Selects[1].Current],
- Baudraten[Selects[2].Current],
- Paritaet[Selects[3].Current],
- Datenbits[Selects[4].Current],
- Stopbits[Selects[5].Current],
- 2048);
- V24InTask := CreateTask(V24Input,NIL,Pri_User+1,500);
- IF V24InTask < 0
- THEN BEGIN
- Writeln('Fehler bei CreateTask!');
- Halt(1);
- END;
- GoodMorning;
- REPEAT
- C := DoReadKey;
- IF SpecialChar
- THEN CASE C OF
- #45: Ende := True;
- #18: BEGIN
- Echo := Not Echo;
- Write('Echo ist ');
- IF Echo
- THEN Writeln('an')
- ELSE Writeln('aus');
- END;
- ELSE
- Output(C);
- END
- ELSE Output(C);
- UNTIL Ende;
- CloseAux(V24InTask);
- END; {GoOnline}
-
- {--------------------------------------------------------------------------}
-
- BEGIN {Main}
- SpeedUp(3);
- TimeSlice(1,10);
- InitSelection;
- Selection := 1;
- REPEAT
- Ende := False;
- LastSelect := Selection;
- SetupScreen;
- C := DoSelect(LastSelect);
- IF C = F1
- THEN GoOnline;
- UNTIL C = #27;
- GoodNight;
- END. {Main}