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

  1. module    led1
  2. title 'Binary to seven segment display decoder for Blackjack machine
  3. Michael Holley & Walter Bright   Data I/O Corp     11 Jan 1986'
  4. "
  5. "          a       binary-to-seven-segment decimal decoder
  6. "      ---
  7. "    f| g |b
  8. "      ---        segment identification
  9. "    e| d |c
  10. "      ---
  11. "  ---            ---     ---           ---    ---    ---    ---    ---
  12. " |   |      |       |       |  |   |  |      |          |  |   |  |   | 
  13. "                 ---     ---    ---    ---    ---           ---    ---
  14. " |   |      |   |           |      |      |  |   |      |  |   |      | 
  15. "  ---            ---     ---           ---    ---           ---    ---
  16.  
  17.     BJ4A    device    'F82S153';
  18.  
  19.     S4,S3,S2,S1,S0    pin 1,2,3,4,5;         score = [S4,S3,S2,S1,S0];
  20.     a,b,c,d,e,f,g    pin 12,13,14,15,16,17,18;  led = [a,b,c,d,e,f,g];
  21.     LT22,LT17,ena    pin 19,9,11;
  22.  
  23.     a,b,c,d,e,f,g    istype 'pos'; "Default is active low or 'neg'
  24.  
  25.     ON,OFF    = 0,1;            " for common anode leds    
  26.     L,H,Z   = 0,1,.Z.;
  27.  
  28.      "input                     outputs
  29.     "             a    b    c    d    e    f    g
  30.     digit0    =   [ ON,  ON,  ON,  ON,  ON,  ON, OFF] ;
  31.     digit1    =   [OFF,  ON,  ON, OFF, OFF, OFF, OFF] ;
  32.     digit2    =   [ ON,  ON, OFF,  ON,  ON, OFF,  ON] ;
  33.     digit3    =   [ ON,  ON,  ON,  ON, OFF, OFF,  ON] ;
  34.     digit4    =   [OFF,  ON,  ON, OFF, OFF,  ON,  ON] ;
  35.     digit5    =   [ ON, OFF,  ON,  ON, OFF,  ON,  ON] ;
  36.     digit6    =   [ ON, OFF,  ON,  ON,  ON,  ON,  ON] ;
  37.     digit7    =   [ ON,  ON,  ON, OFF, OFF, OFF, OFF] ;
  38.     digit8    =   [ ON,  ON,  ON,  ON,  ON,  ON,  ON] ;
  39.     digit9    =   [ ON,  ON,  ON,  ON, OFF,  ON,  ON] ;
  40.  
  41.     HighZ    macro  { [  Z,   Z,   Z,   Z,   Z,   Z,   Z] };
  42.  
  43. equations
  44.     LT22        = (score < 22);        "Bust
  45.     LT17        = (score < 17);        "Stand
  46.     enable led     = !ena;
  47.  
  48. truth_table (score -> led)
  49.     @const i = 0;    
  50.     @repeat 32 { 
  51.     @expr i;     -> @expr {digit} i%10; ; @const i = i+1;}
  52.  
  53. test_vectors ([ena,score] -> led)
  54.     @const  i = 0;
  55.     @repeat 32 { 
  56.    [ L, @expr i; ] -> @expr {digit} i%10; ; @const i = i+1;}
  57.  
  58.    [ H ,  0] -> HighZ;
  59.    [ H , 15] -> HighZ;
  60.    [ H , 31] -> HighZ;
  61. end led1
  62.