home *** CD-ROM | disk | FTP | other *** search
- TYPE Cpm_Name = STRING [ 14] ;
-
- PROCEDURE DispText( Quell_Name : CPM_Name );
-
- { Diese Prozedur gibt einen Text von der Diskette auf den }
- { Bildschirm aus. }
-
- { - Copyright (c) 1988 Pascal International - }
- { - Autor : Heinz Hagemeyer - }
-
- { -------------------------------------------------------- }
-
-
- CONST WS = TRUE ;
-
- { Wird WS auf false gesetzt, erfolgt keine Ausblendung des }
- { Bit 7 und keine Auswertung der von Wordstar benutzten }
- { Steuerzeichen. }
-
- Max_Zeile = 24 ; { maximal mögliche Zeilen }
- CR = 13 ; { ASCII 13 = Zeilenende }
-
- VAR anzahl,
- ascii : INTEGER ;
- c : CHAR;
- Quelle : TEXT;
-
- PROCEDURE Oeffne_Quell_Datei (Quell_Name : Cpm_Name );
-
- { Oeffnet die Quelldatei zum Lesen. Ueberprueft gleichzei- }
- { tig, ob diese ueberhaupt vorhanden ist. Falls nicht, er- }
- { folgt Programmabbruch ! }
-
- BEGIN
- Assign (Quelle, Quell_Name );
-
- {$I-} { Fehlerueberwachung aus }
- Reset (Quelle);
- {$I+} { und wieder ein. }
-
- IF IOResult <> 0 THEN { Falls Fehler aufgetreten }
- BEGIN
- WriteLn;WriteLn;
- WriteLn ('** Quelldatei existiert nicht ! ',
- ' **': 38);
- WriteLn ('** Programm wird daher abgebrochen ! ',
- ' **': 38);
- HALT;
- END;
- WriteLn;
- END { Oeffne_Quell_Datei } ;
-
- { ---------------------------------------------------------}
-
- FUNCTION Naechste_Seite : BOOLEAN ;
-
- CONST Klingel = #07 ;
- Loesche_Zeile = #27'[2K' ; { ANSI - Terminal ! }
- Cursor_Up = #27'[1A' ; { dto. }
- INVERS_On = #27'[7m' ; { dto. }
- INVERS_Off = #27'[0m' ; { dto. }
-
- VAR c : CHAR;
-
- BEGIN
- Write (Invers_On); { Umschalten auf }
- { INVERSE - Ausgabe }
- Write (Klingel,'Fuer naechste Seite Taste pressen. ',
- 'Wenn genug gelesen, "." druecken : ');
-
- Write (Invers_Off) ; { Zurueckschalten auf }
- { normale Ausgabe }
-
- REPEAT
- Read (kbd,c) ;
- UNTIL Ord (c) > 0 ;
-
- WriteLn (Loesche_Zeile,Cursor_Up); { Hier geht auch }
- { DelLine, wenn }
- Naechste_Seite := c <> '.'; { initialisiert }
- END;
-
- BEGIN
- Oeffne_Quell_Datei (Quell_Name) ;
- Anzahl := 0;
-
- WHILE NOT EoF (quelle) DO
- BEGIN
- Read (quelle,c);
- ascii := Ord (c);
-
- { Fuer Wordstar-Muffel : Bei bestehenden Texten, die }
- { nicht durch Wordstar unter CP/M erzeugt wurden, }
- { sind die folgenden Zeilen zu entfernen bzw. geeig- }
- { net zu aendern, wenn das verwendetete Textprogramm }
- { das 7. Bit anders nutzt. Am Einfachsten geht dies }
- { durch Aendern der Konstanten WS. Bei Benutzung des }
- { Turbo Pascal Editors ist das nicht noetig, es sei }
- { denn, man benutzt das ^P - Steuerzeichen. }
-
- IF WS THEN
- BEGIN
- WHILE ascii > $7F DO ascii := ascii - $80;
- c := Chr (ascii);
- IF ascii = $1F THEN Write ('-');
- { "weiches" Trennzeichen }
- END;
-
- IF ascii > $1F { kein Steuerzeichen }
- THEN Write (c);
-
- IF ascii = CR
- THEN
- BEGIN
- WriteLn;
- anzahl := Succ (anzahl);
- END;
-
- IF Anzahl > Max_Zeile - 2 THEN
- BEGIN
- IF NOT Naechste_Seite
- THEN
- BEGIN
- Close (Quelle);
- Exit;
- END ;
- Anzahl := 0;
- END;
-
- END { WHILE } ;
-
- Close (Quelle);
-
- END; { DispText }
-