home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 15 / 15.iso / s / s199 / 1.img / CNTRS8.ABL < prev    next >
Encoding:
Text File  |  1986-02-04  |  1.4 KB  |  57 lines

  1. module cntrs8    flag '-r3'
  2. title 'test program for 20RS8
  3. Mary Bailey           Data I/O Redmond Wa    12 Oct 1984'
  4.  
  5.     RS8    device  'P20RS8';
  6.  
  7.     k = 24; "number of states
  8.  
  9.     Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0        pin 15,16,17,18,19,20,21,22;
  10.     Clk,Dir,Clr,OE            pin 1,2,3,13;
  11.  
  12.     Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0 istype     'pos';
  13.     H,L,Ck,Z,X        = 1, 0, .C., .Z., .X.;
  14.  
  15.     count    = [Q6,Q4,Q2,Q1,Q0];
  16.  
  17.     Mode    = [Dir,Clr];
  18.     Up    = [ 1 , 1 ];
  19.     Down    = [ 1 , 0 ];
  20.     Clear    = [ 0 , X ];
  21.  
  22. @message 'expanding state diagram'
  23. state_diagram count
  24.  
  25.     State 0:    case     (Mode == Up   )    :1;
  26.                 (Mode == Down )    :@expr k-1;;
  27.                 (Mode == Clear) :0;
  28.             endcase;
  29. @const i=1; @repeat k-2 {
  30.     State @expr i;:        case       (Mode == Up   )    :@expr i+1;;
  31.                 (Mode == Down )    :@expr i-1;;
  32.                 (Mode == Clear) :0;
  33.             endcase;
  34.  @const i=i+1;}
  35.     State @expr k-1;:        case       (Mode == Up   )    :0;
  36.                 (Mode == Down )    :@expr k-2;;
  37.                 (Mode == Clear) :0;
  38.             endcase;
  39.  
  40. @message 'expanding test vectors'
  41. test_vectors   ([Clk,OE, Mode ] -> count)
  42.         [Ck, 0 , Clear] ->   0;
  43. @const i=1; @repeat k-1 {
  44.         [Ck, 0 , Up   ] ->  @expr i;; @const i=i+1;}
  45.  
  46.         [Ck, 0 , Up   ] ->   0;  "test roll over
  47.         [Ck, 0 , Up   ] ->   1;
  48.         [Ck, 0 , Up   ] ->   2;
  49.         [Ck, 0 , Up   ] ->   3;
  50.         [Ck, 0 , Clear] ->   0;
  51. @const i=k-1; @repeat k {
  52.         [Ck, 0 , Down ] ->  @expr i;; @const i=i-1;}
  53.         [Ck, 0 , Down ] ->  @expr k-1;; "test roll over
  54.  
  55. end cntrs8
  56.  
  57.