!Prepared by W. Krakar

 !          DABBEL ON FILE DABWJKAAA.TMP
 !               BEGIN PASS 1
 !               END OF PASS 1
 !               BEGIN PASS 2
 ADD A:BS403  ( 'A4B3    25A DIPOLE SHUNT' , PBAR   ,          , 7FFFFFE )
 !   \/           \/                         \/       \/          \/
 !   device name   24 character description   node     sibling **  con. mask **
 !   Analog EMC
 EMX (031B/040B/0000/0000) 
 !    \/\/ \/\/
 !     | |  | MADC #
 !     | |  channel #
 !     | node (node number for respective front end)
 !     |subsystem (Analog MADC)
 !note: reading is done via an MADC channel, the device itself does not
 !support the reading property.
 SSDNHX READNG (0DFF/040B/0000/0000)
 !              \/\/ \/\/
 !               | | |  MADC #
 !               | | channel #
 !               | camac front end standard driver **
 !               driver code **
                          
 PRO READNG ( 2 ,     2 ,    60 )
 !            \/      \/     \/
 !             |       |      FTD 
 !             |       Max data size - ALWAYS 2
 !             default data size - ALWAYS 2
 !note: device does support the reading of setting which simply returns the
 !setting
 SSDNHX SETTNG (24FF/0151/0004/0000)
 !              \/\/ \/\/   \/
 !               | |  | |    subaddress(0-5 depending on channel used)
 !               | |  | crate #
 !               | |  slot #
 !               | camac front end standard driver **
 !               driver code **
 PRO SETTNG ( 2 ,     2 ,    60 )
 !            \/      \/     \/
 !             |       |      FTD 
 !             |       Max data size **
 !             default data size **
 PDB READNG ( 'VOLT' , 'AMP ' ,  0 ,  6 , 2 , 0 , 0 , 0 ,   2.500000E+01 ,
 !             \/       \/       \/   \/  \/  \/  \/  \/    \/
 !              |        |        |    |   |   |   |   |     common transform 1
 !              |        |        |    |   |   |   |   motor controller flag
 !              |        |        |    |   |   |   long or short display **
 !              |        |        |    |   |   decimal or scientific notation
 !              |        |        |    |   input data length **
 !              |        |        |    common transform
 !              |        |        primary transform **
 !              |        common units
 !              primary units **
   1.000000E+01)
 ! \/
 !  common transform 2
 PDB SETTNG ( 'VOLT' , 'AMP ' ,  0 ,  2 , 2 , 0 , 0 , 0 ,   2.500000E+01 ,
 !             \/       \/       \/   \/  \/  \/  \/  \/    \/
 !              |        |        |    |   |   |   |   |     common transform 1
 !              |        |        |    |   |   |   |   motor controller flag
 !              |        |        |    |   |   |   long or short display **
 !              |        |        |    |   |   decimal or scientific notation
 !              |        |        |    |   input data length **
 !              |        |        |    common transform
 !              |        |        primary transform **
 !              |        common units
 !              primary units **
   2.000000E+01,  1.280000E+01)
 ! \/             \/
 !  |              common transform 3
 !  common transform 2
 SSDNHX ANALBL (0DFF/040B/0000/0000)
 !              \/\/ \/\/
 !               | | |  MADC #
 !               | | channel #
 !               | camac front end standard driver **
 !               driver code for reading from D/A

 PRO ANALBL ( 2 ,    20 ,    60 , FFFF9D01 , FFFFB100 ,
 !            \/     \/      \/    \/        \/
 !             |      |       |     |         maximum
 !             |      |       |     minimum
 !             |      |       ftd
 !             |      max data size ** (standard alarm block size)
 !             default data size
              2 , 2 , 1 , 1 , 0 , 0 , 0 , 1 ,
 !            \/  \/  \/  \/  \/  \/  \/  \/
 !             |   |   |   |   |   |   |   alarm bypassed bit
 !             |   |   |   |   |   |   abort allowed
 !             |   |   |   |   |   override abort
 !             |   |   |   |   exception or event
 !             |   |   |   event logging bit
 !             |   |   event display bit
 !             |   length of min/max **
 !             alarm type ** (minimum maximum)
                2 ,   0 ,   0 )
 !              \/    \/    \/
 !               |     |     event 2
 !               |     event 1
 !               tries needed
 PRO ANALTX (   5 , '!HL ')
 !              \/   \/
 !               |    alarm text
 !               message priority
 PRO SAVE(  73 , 0000 , 0000 , READNG , SETTNG , ANALBL )
 !          \/     \/     \/     \/        \/       \/
 !           |      |      |      save all properties defined
 !           |      |      display save code
 !           |      restore save code
 !           save list id
 !
 !note: ** indicates do not change from value shown
 !
 !               END OF PASS 2
 !       1 DEVICE(S) LISTED

Notes from the driver source code:
/*----------------------------------------------------------------------------*/
/*
/*  The 054 card has six channels of 16 bit unipolar DAC, which we support
/*  with a setting property.
/*
/*  It does not have status, but we do support an F(9)A(0) basic control
/*  reset function.
/*
/*  SSDN  24FF/nncc/000a/0000
/*              a = subaddress (0 to 5)
/*
/*      Setting:              F(16)A(n)
/*      Reading-the-Setting:  F(0)A(n)
/*      Reset:                F(9)A(0)
/*
/*  The 054 card is unipolar, 10.24 volt full scale.  Thus the raw
/*  DAC values look like:
/*
/*              Volts   Raw DAC
/*              -----   -------
/*              0       0000
/*              <5.12   7FFF
/*              5.12    8000
/*              <10.24  FFFF
/*
/*  Unfortunately, the upper half of the range looks like negative numbers
/*  to console scaling services.  The solution is that the front end adds
/*  8000 to the settings to linearize them.  Thus the table can be extended:
/*
/*
/*              Volts   Raw DAC Raw Console Value
/*              -----   ------- -----------------
/*              0       0000    8000
/*              <5.12   7FFF    FFFF
/*              5.12    8000    0000
/*              <10.24  FFFF    7FFF
/*
/*  In this way, the console sees most-negative is the lowest setting,
/*  the half-way point is at zero, and most-positive is the highest setting.
/*  There is a bias, but no discontinuity.
/*
/*  The data base scaling can be linear; you must merely account for the
/*  bias, and adjust your scale factor for the fact that the normal
/*  +/- 10.24 volt F.S. is now 0.0 to 20.48 volt F.S.
/*
/*      X' (volts) = X / 3200           (10.24 V Primary Transform)
/*      Rslt = (X' + 10.24) * SF        (Secondary Transform: add in bias)
/*