home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol131 / level.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1984-04-29  |  2.6 KB  |  87 lines

  1. {
  2.         *        *******  *            *  *******   *
  3.         *        *         *          *   *         *
  4.         *        *          *        *    *         *
  5.         *        ****        *      *     ****      *
  6.         *        *            *    *      *         *
  7.         *        *             * *        *         *
  8.         *******  *******        *         ********  ********      }
  9.  
  10. PROCEDURE LEVEL (VAR BASELINE : BOOLEAN );
  11.  
  12.  CONST
  13.      MAX_TILT = 5;
  14.      LONGNUFF = 500;
  15.  
  16.  VAR
  17.     LEFTX,
  18.     LEFTY,
  19.     RIGHTX,
  20.     RIGHTY,
  21.     UP_DOWN : INTEGER;
  22.     DUMMY   : CHAR;
  23.     TILT    : REAL;
  24.  
  25. BEGIN
  26.   BLNKSCRN;
  27.   CRSR(8,1);
  28.   BASELINE := FALSE;
  29.   WRITELN('         ROUTINE TO ADJUST ORIENTATION OF A DOCUMENT ON HIPAD :');
  30.   WRITELN;
  31.   WRITELN(' 1 : DEFINE A HORIZONTAL BASELINE ON YOUR DOCUMENT.');
  32.   WRITELN(' 2 : SET THE DOCUMENT ON THE HIPAD SO THAT YOUR HORIZONTAL LINE');
  33.   WRITELN('     IS PARALLEL TO THE X-AXIS OF THE HIPAD.');
  34.   WRITELN(' 3 : LIGHTLY TAPE OR OTHERWISE SECURE DOCUMENT TO ENSURE THAT');
  35.   WRITELN('     IT CANNOT SLIP.');
  36.   WRITELN(' 4 : CHECK THAT HIPAD IS IN POINT MODE.');
  37.   WRITELN;
  38.   WRITELN(' 5 : WHEN YOU ARE READY , HIT ANY KEY TO START.');
  39.   READQ(DUMMY);
  40.   WRITELN;
  41.   BLNKSCRN;
  42.   REPEAT  { UNTIL BASELINE = TRUE }
  43.  
  44.    REPEAT  { UNTIL 0 = LEFTX AND LEFTY }
  45.     BLNKSCRN;
  46.     WRITELN('HIT RESET ON HIPAD.');
  47.     WRITE('THE 1ST POINT TO BE TO ACQUIRED IS THE LEFTMOST END');
  48.     WRITELN(' OF THE BASELINE');
  49.     POINT(LEFTX,LEFTY)
  50.    UNTIL ((0 = LEFTX ) AND (0 = LEFTY ));
  51.   
  52.    BLNKSCRN;
  53.    WRITELN(' OK : ORIGON READ!  ');
  54.    WRITELN;
  55.   
  56.    REPEAT { UNTIL RIGHTX  LONGNUFF}
  57.     WRITE('THE 2ND POINT MUST BE ON THE BASELINE AND AT LEAST 5CMS');
  58.     WRITELN(' FROM THE 1ST POINT');
  59.     POINT(RIGHTX,RIGHTY);
  60.     IF RIGHTX < LONGNUFF
  61.        THEN WRITELN(' POINT WAS TOO CLOSE TO ORIGON.TRY AGAIN,PLEASE.')
  62.    UNTIL (RIGHTX > (LONGNUFF - 1));
  63.  
  64.    UP_DOWN := ABS(RIGHTY);
  65.    IF UP_DOWN < MAX_TILT
  66.       THEN BASELINE  := TRUE
  67.       ELSE BEGIN
  68.           BLNKSCRN;
  69.           TILT := 0.1*UP_DOWN;
  70.           IF RIGHTY > 0
  71.              THEN WRITE('RIGHT END TOO HIGH BY ')
  72.              ELSE WRITE('RIGHT END TOO LOW BY ');
  73.           WRITELN(TILT:7:1,' MM.');
  74.           WRITELN;
  75.           WRITELN('IF YOU ACCEPT THAT MUCH TILT : HIT Y');
  76.           WRITELN('OTHERWISE HIT RETURN TO TRY AGAIN.');
  77.           READQ(DUMMY);
  78.           BASELINE:= (DUMMY='Y');
  79.           IF BASELINE = FALSE THEN
  80.              BEGIN
  81.              BLNKSCRN;
  82.              WRITELN('PLEASE READJUST DOCUMENT ON HIPAD. ')
  83.              END;
  84.           END;  { ELSE }
  85.   UNTIL (BASELINE = TRUE);
  86. END;{ OF PROCEDURE LEVEL. }
  87.