home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / MADTRB28.ZIP / PRINTER.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1984-11-11  |  2.0 KB  |  103 lines

  1. {$I FUNCTION.PAS}
  2.  
  3. TYPE
  4.    STRING20 = STRING[20];
  5.    DISP = ARRAY[1..10] OF STRING20;
  6.  
  7. VAR
  8.    FUNC, I, CODE: INTEGER;
  9.    FUNCINP: STRING20;
  10.    STATUS: ARRAY[1..6] OF BOOLEAN;
  11.  
  12. CONST
  13.    OPTION: DISP = ('NARROW PRINT ON', 'NARROW PRINT OFF',
  14.                   'EMPHASIZED PRINT ON', 'EMPHASIZED PRINT OFF',
  15.                   'DOUBLE STRIKE ON', 'DOUBLE STRIKE OFF',
  16.                   'LINE FEED', 'FORM FEED', 'PRINT TEST LINE', 'END');
  17.  
  18.  
  19. BEGIN
  20.  
  21. {  SET UP PRINTER TO NORMAL PRINT  }
  22.  
  23. WRITE(LST, CHR(27), CHR(70));
  24. WRITE(LST, CHR(27), CHR(72));
  25. WRITE(LST, CHR(18));
  26. STATUS[1] := FALSE;
  27. STATUS[2] := TRUE;
  28. STATUS[3] := FALSE;
  29. STATUS[4] := TRUE;
  30. STATUS[5] := FALSE;
  31. STATUS[6] := TRUE;
  32.  
  33.  
  34. {  INPUT PRINTER FUNCTION  }
  35.  
  36. REPEAT
  37. CLRSCR;
  38. GOTOXY(24,3);
  39. WRITELN('***  SELECT PRINTER FUNCTION  ***');
  40. WRITELN;
  41. WRITELN;
  42. FOR I := 1 TO 10 DO
  43.    BEGIN
  44.    IF STATUS[I]=TRUE THEN
  45.       BEGIN
  46.       TEXTCOLOR(15);
  47.       TEXTBACKGROUND(0);
  48.       END
  49.  
  50.       ELSE BEGIN
  51.       TEXTCOLOR(7);
  52.       TEXTBACKGROUND(0);
  53.       END;
  54.  
  55.    WRITELN(TAB(24),I,TAB(29),OPTION[I]);
  56.    END;
  57.  
  58.    REPEAT
  59.    GOTOXY(25,17);
  60.    WRITE('ENTER FUNCTION NUMBER   ');
  61.    CLREOL;
  62.    READLN(FUNCINP);
  63.    VAL(FUNCINP,FUNC,CODE);
  64.    IF CODE <> 0 THEN FUNC := 0;
  65.    IF (FUNC < 1) OR (FUNC > 10) THEN
  66.       BEGIN
  67.       SOUND(880);
  68.       DELAY(300);
  69.       NOSOUND;
  70.       END;
  71.    UNTIL (FUNC>0) AND (FUNC<11);
  72.  
  73. CASE FUNC OF
  74.    1 : WRITE(LST,CHR(15));
  75.    2 : WRITE(LST,CHR(18));
  76.    3 : WRITE(LST,CHR(27), CHR(69));
  77.    4 : WRITE(LST,CHR(27), CHR(70));
  78.    5 : WRITE(LST,CHR(27), CHR(71));
  79.    6 : WRITE(LST,CHR(27), CHR(72));
  80.    7 : WRITELN(LST);
  81.    8 : WRITE(LST,CHR(12));
  82.    9 : WRITELN(LST, 'TEST PRINT LINE');
  83.    END;
  84.  
  85.  
  86. {  CHECK THE STATUS OF THE OPTIONS  }
  87.  
  88. IF FUNC < 7 THEN
  89.    BEGIN
  90.    STATUS[FUNC]:=TRUE;
  91.    IF (FUNC/2) = (FUNC DIV 2)
  92.       THEN STATUS[FUNC-1]:=FALSE
  93.       ELSE STATUS[FUNC+1]:=FALSE;
  94.    IF STATUS[3]
  95.       THEN BEGIN
  96.       STATUS[1] := FALSE;
  97.       STATUS[2] := TRUE;
  98.       END;
  99.    END;
  100.  
  101. UNTIL FUNC = 10;
  102.  
  103. END.