home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / mac / developm / language / elan.sit / clock / CLLCD.E < prev    next >
Encoding:
Text File  |  1988-11-09  |  2.5 KB  |  156 lines

  1.  
  2.  
  3. reset display:
  4.   LET max column = 7;
  5.   LET max row = 7;
  6.   LET starting x pos = 10;
  7.   LET starting y pos = 5;
  8.   INT VAR x pos;
  9.   INT VAR y pos.
  10.  
  11. PROC put 2 digits (INT CONST n):
  12.   put character(n DIV 10);
  13.   put character(n MOD 10)
  14. ENDPROC put 2 digits;
  15.  
  16. PROC put character (INT CONST n):
  17.   ROW 11 TEXT CONST characters ::
  18.          [d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, colon];
  19.  
  20.   INT VAR i;
  21.   FOR i FROM 1 UPTO max row
  22.   REP
  23.     put next row;
  24.     go to next line
  25.   ENDREP;
  26.   go to next position.
  27.  
  28.   put next row:
  29.     put (subtext (characters[n+1],
  30.                   (i-1) * max column + 1, i * max column)).
  31.  
  32.   go to next line:
  33.     y pos INCR 1;
  34.     cursor (x pos, y pos).
  35.  
  36. d0:             
  37.   " 00000 " +   
  38.   "0     0" +    
  39.   "0     0" +    
  40.   "0     0" +   
  41.   "0     0" +    
  42.   "0     0" +    
  43.   " 00000 ".
  44. d1:        
  45.   "     11" +   
  46.   "    1 1" +   
  47.   "   1  1" +    
  48.   "  1   1" +   
  49.   "      1" +   
  50.   "      1" +    
  51.   "      1".
  52. d2:
  53.   " 22222 " +
  54.   "2     2" +
  55.   "     2 " +
  56.   "    2  " +
  57.   "   2   " +
  58.   "  2    " +
  59.   " 222222".
  60.  
  61. d3:              
  62.   " 33333 " +     
  63.   "3     3" +     
  64.   "     3 " +   
  65.   "    3  " +     
  66.   "     3 " +    
  67.   "3     3" +     
  68.   " 33333 ".
  69. d4:           
  70.   "  4    " +  
  71.   " 4     " +  
  72.   "4     4" +    
  73.   "4444444" +  
  74.   "      4" +   
  75.   "      4" +    
  76.   "      4".
  77. d5:
  78.   "5555555" +
  79.   "5      " +
  80.   "55555  " +
  81.   "     5 " +
  82.   "      5" +
  83.   "      5" +
  84.   "555555 ".
  85.  
  86. d6:           
  87.   " 66666 " +     
  88.   "6      " +  
  89.   "6      " +  
  90.   "666666 " + 
  91.   "6     6" +    
  92.   "6     6" +   
  93.   " 66666 ".
  94. d7:         
  95.   "7777777" +   
  96.   "     7 " +   
  97.   "    7  " +   
  98.   "   7   " +  
  99.   "  7    " + 
  100.   " 7     " +  
  101.   "7      ".
  102. d8:
  103.   " 88888 " +
  104.   "8     8" +
  105.   "8     8" +
  106.   " 88888 " +
  107.   "8     8" +
  108.   "8     8" +
  109.   " 88888 ".
  110.  
  111. d9:          
  112.   " 99999 " +    
  113.   "9     9" +      
  114.   "9     9" +   
  115.   " 999999" +   
  116.   "      9" +   
  117.   "      9" +   
  118.   " 99999 ".
  119.  
  120. colon:
  121.   "       " +
  122.   "  :::  " +
  123.   "  :::  " +
  124.   "       " +
  125.   "  :::  " +
  126.   "  :::  " +
  127.   "       ".
  128.  
  129. ENDPROC put character;
  130.  
  131. PROC put separator (TEXT CONST sep):
  132.   IF sep = ":"
  133.   THEN
  134.     put character (10)
  135.   ELSE
  136.     # sep = " " #
  137.     go to next position
  138.   FI
  139. ENDPROC put separator;
  140.  
  141. PROC move to display position:
  142.   page;
  143.   x pos := starting x pos;
  144.   y pos := starting y pos;
  145.   cursor (x pos, y pos)
  146. ENDPROC move to display position;
  147.  
  148. PROC go to next position:
  149.   flush buffer;
  150.   x pos INCR max column + 3;
  151.   y pos := starting y pos;
  152.   cursor (x pos, y pos).
  153.     flush buffer:
  154.       line.
  155. ENDPROC go to next position;
  156.