home *** CD-ROM | disk | FTP | other *** search
-
- MODULE PrintDemo;
- (*---------------------------------------------------------------------*)
- (* P R I N T - D E M O *)
- (* M 2 P R O L I B *)
- (* Copyright (C) 1987 Bühlmann Computer Software CH-8636 WALD *)
- (* -- All Rights Reserved -- *)
- (*---------------------------------------------------------------------*)
- (* Author: X. Bühlmann *)
- (* *)
- (* Version 1.0 Date: 30/12/87 *)
- (* Version 1.1 Date: 28/09/88 Angepasst auf M2Prolib V3.03 *)
- (*---------------------------------------------------------------------*)
- FROM SYSTEM IMPORT WORD, ADR, ADDRESS, SIZE;
- IMPORT Screen, ScreenNum, Input, InputNum, Ascii;
- FROM Keyboard IMPORT Key;
- FROM PrintSupport IMPORT aKeyTable, KeyTable, TableFile, ReadTable;
- FROM PrintGround IMPORT SetPrinterCode, PrinterInstall, aPrinterCode;
- FROM PrintOut IMPORT PrnError, ePrnError, PrinterReset, ConnectPRN,
- InterfaceTp, Interface, Print, PrintLn, PrintString, PrintCard,
- PrintInt, PrintLongInt, PrintReal, KeyConvert;
- (*
- *)
- VAR
- ProgramHalt : BOOLEAN;
- PROCEDURE Handler(error : ePrnError): BOOLEAN;
- VAR
- l :
- RECORD
- chr : CARDINAL;
- END;
- BEGIN
- CASE error OF
- | outOfPaper :
- Screen.ScrPutString(' Drucker hat kein Papier ');
- Screen.ScrWriteLn();
- | notBusy :
- Screen.ScrPutString(' Drucker nicht bereit ');
- Screen.ScrWriteLn();
- ELSE
- Screen.ScrPutString(
- ' Drucker auf OFF oder anderer Fehler am Drucker ');
- Screen.ScrWriteLn();
- END;
- Screen.ScrPutString(' Wie Sie sehen geht auch das !');
- Screen.ScrWriteLn();
- Screen.ScrPutString(' Esc abbrechen / Return weiter ');
- Screen.ScrWriteLn();
- LOOP
- l.chr := Key();
- CASE l.chr OF
- | ORD(Ascii.cCR) :
- ProgramHalt := FALSE;
- RETURN TRUE;
- | ORD(Ascii.cESC) :
- ProgramHalt := TRUE;
- RETURN FALSE;
- ELSE
- END;
- END;
- END Handler;
- PROCEDURE Copyright();
- BEGIN
- Screen.ClearScrBound();
- Screen.ScrWriteLn();
- Screen.ScrPutString(
- ' P R I N T - D E M O Version 1.1 ');
- Screen.ScrWriteLn();
- Screen.ScrPutString(
- ' 1 9 8 8 ');
- Screen.ScrWriteLn();
- Screen.ScrWriteLn();
- Screen.ScrPutString(
- ' Copyright by ');
- Screen.ScrWriteLn();
- Screen.ScrPutString(
- ' (c) Bühlmann Computer Software ');
- Screen.ScrWriteLn();
- Screen.ScrPutString(
- ' CH-8636 Wald ');
- Screen.ScrWriteLn();
- END Copyright;
- PROCEDURE charOK(VAR chr : CHAR): BOOLEAN;
- BEGIN
- RETURN TRUE;
- END charOK;
- PROCEDURE charOKPort(VAR chr : CHAR): BOOLEAN;
- BEGIN
- chr := CAP(chr);
- RETURN (chr='P') OR (chr='R') OR (chr='N') OR (chr='L') OR (chr='P'
- ) OR (chr='T') OR (chr='1') OR (chr='2') OR (chr='3');
- END charOKPort;
- VAR
- Port : ARRAY [0..3] OF CHAR;
- Code : ARRAY [0..40] OF CHAR;
- BEGIN
- ProgramHalt := FALSE;
- Copyright();
- PrnError := Handler;
- (**)
- Port := 'PRN';
- Code := 'Φ27W1';
- Input.CharOK := charOKPort;
- Screen.ScrPutString('Drucker-Port [PRN/LPT2/LPT3] : ');
- Input.ReadString(Port);
- Screen.ScrWriteLn();
- Screen.ScrWriteLn();
- Input.CharOK := charOK;
- (**)
- PrinterInstall(Port);
- ConnectPRN(Interface, TRUE);
- TableFile := 'DEMO.PRN';
- KeyConvert(TRUE);
- IF ProgramHalt THEN
- RETURN;
- END;
- (**)
- PrintString(' P R I N T - D E M O Version 1.1 ');
- PrintLn();
- PrintString(' 1 9 8 8');
- PrintLn();
- PrintLn();
- PrintString(' Copyright by');
- PrintLn();
- PrintString(' (c) Bühlmann Computer Software');
- PrintLn();
- PrintString(' CH-8636 Wald');
- PrintLn();
- PrintLn();
- PrintLn();
- IF ProgramHalt THEN
- RETURN;
- END;
- (**)
- Screen.ScrPutString('Sie können auch Zahlen formatiert ausgeben ');
- Screen.ScrWriteLn();
- Screen.ScrPutString('Drücken Sie eine Taste');
- Screen.ScrWriteLn();
- Screen.ScrWriteLn();
- REPEAT
- UNTIL Key()#0;
- (**)
- PrintString('Cardinal-Zahl : ');
- PrintCard(27382, 15);
- PrintLn();
- PrintString('Integer-Zahl : ');
- PrintInt(-1238, 15);
- PrintLn();
- PrintString('Longint-Zahl : ');
- PrintLongInt(32478239, 15);
- PrintLn();
- PrintString('Real-Zahl : ');
- PrintReal(32483123.2173, 15, 2);
- PrintLn();
- PrintLn();
- IF ProgramHalt THEN
- RETURN;
- END;
- (**)
- Screen.ScrPutString(
- 'Falls der Drucker nicht bereit ist, führt das selbst-');
- Screen.ScrWriteLn();
- Screen.ScrPutString('verständlich nicht zu einer DOS-Fehler-Meldung ');
- Screen.ScrWriteLn();
- Screen.ScrPutString(
- 'Stellen Sie den Drucker auf OFF und drücken Sie eine Taste');
- Screen.ScrWriteLn();
- Screen.ScrWriteLn();
- REPEAT
- UNTIL Key()#0;
- ConnectPRN(Interface, TRUE);
- IF ProgramHalt THEN
- RETURN;
- END;
- (**)
- Screen.ScrWriteLn();
- Screen.ScrPutString(
- 'Sie können aber auch Steuerzeichen auf eine sehr einfache ');
- Screen.ScrWriteLn();
- Screen.ScrPutString('Art an den Drucker senden. ');
- Screen.ScrWriteLn();
- Screen.ScrPutString(
- 'Geben Sie zum Beispiel folgenden Code ein: Φ27W1 (ESC W 1)');
- Screen.ScrWriteLn();
- Screen.ScrPutString(
- 'Dieser Code bewirkt beim Epson-Drucker das Einschalten der ');
- Screen.ScrWriteLn();
- Screen.ScrPutString(
- 'Zeichenvergrösserung. Uebrigens das Zeichen Φ können Sie mit ');
- Screen.ScrWriteLn();
- Screen.ScrPutString('mit ALT 232 eingeben ');
- Screen.ScrWriteLn();
- Input.ReadString(Code);
- Screen.ScrWriteLn();
- Screen.ScrWriteLn();
- SetPrinterCode(Code);
- PrintString('Wie Sie sehen, geht auch das !');
- PrintLn();
- IF ProgramHalt THEN
- RETURN;
- END;
- (**)
- Screen.ScrPutString(
- 'Nun können Sie die Zeichenvergrösserung wieder zurück stellen.');
- Screen.ScrWriteLn();
- Screen.ScrPutString('Dazu geben Sie den Code Φ27W0 ein (ESC W 0)');
- Screen.ScrWriteLn();
- Input.ReadString(Code);
- Screen.ScrWriteLn();
- SetPrinterCode(Code);
- PrintString('Nun Schreibt der Drucker wieder normal !');
- PrintLn();
- IF ProgramHalt THEN
- RETURN;
- END;
- (**)
- END PrintDemo.