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

  1. module    Cardsel
  2. title 'Card input selector for Blackjack Machine
  3. Michael Holley       Data I/O Redmond WA    13 Jan 1984'
  4.  
  5.     BJ1A        device 'P16HD8';
  6.  
  7.     H,L,X        = 1,0,.X.;
  8.  
  9.  
  10.        Q3,Q2,Q1,Q0    pin 5,6,7,8;        Qstate =    [Q3,Q2,Q1,Q0];
  11.     valid,is_ace    pin 17,18;
  12.  
  13.        D3,D2,D1,D0    pin 1,2,3,4;        card   = [ X,D3,D2,D1,D0];
  14.     V4,V3,V2,V1,V0    pin 12,13,14,15,16;    value  = [V4,V3,V2,V1,V0];
  15.  
  16.     ten        = [0,1,0,1,0];
  17.     minus_ten    = [1,0,1,1,0];
  18.     clr        = [1,1,1,1,1];
  19.     blank_msb    = [0,1,1,1,1];
  20.  
  21. @include 'bjstate.tab'
  22. equations
  23.     is_ace        = (!card == 1);
  24.  
  25.     valid        = (!card >= 1) & (!card <=10);
  26.  
  27.     value = (Qstate==AddCard) & valid & !card & blank_msb
  28.           # (Qstate==Add10)   & ten
  29.           # (Qstate==Sub10)   & minus_ten
  30.           # (Qstate==Clear)   & clr;
  31. @page
  32. test_vectors  'Test card values'
  33.        ([Qstate,card] ->  [value,valid,is_ace])
  34.     [AddCard, !0] ->  [   0,   L,    L];
  35.     [AddCard, !1] ->  [   1,   H,    H];
  36.     [AddCard, !2] ->  [   2,   H,    L];
  37.     [AddCard, !3] ->  [   3,   H,    L];
  38.     [AddCard, !4] ->  [   4,   H,    L];
  39.     [AddCard, !5] ->  [   5,   H,    L];
  40.     [AddCard, !6] ->  [   6,   H,    L];
  41.     [AddCard, !7] ->  [   7,   H,    L];
  42.     [AddCard, !8] ->  [   8,   H,    L];
  43.     [AddCard, !9] ->  [   9,   H,    L];
  44.     [AddCard,!10] ->  [  10,   H,    L];
  45.     [AddCard,!15] ->  [   0,   L,    L];
  46.  
  47. test_vectors  'Test fixed values'
  48.        ([Qstate,card] ->  [value,valid,is_ace])
  49.     [Add10  , 0]  ->  [  10,   X,    X];
  50.     [Add10  , 5]  ->  [  10,   X,    X];
  51.     [Add10  ,15]  ->  [  10,   X,    X];
  52.     [Sub10  , 0]  ->  [  22,   X,    X];
  53.     [Sub10  , 5]  ->  [  22,   X,    X];
  54.     [Sub10  ,15]  ->  [  22,   X,    X];
  55.     [Clear  , 0]  ->  [  31,   X,    X];
  56.     [Clear  , 5]  ->  [  31,   X,    X];
  57.     [Clear  ,15]  ->  [  31,   X,    X];
  58. end Cardsel
  59.