!!!!    6    0    1  989869115  Ve234                                         

! Device           : 2816A
! Function         : EEPROM 2K x 8
! revision         : B.01.00
! safeguard        : low_out_mos
! Modifications    : Modified for AwareTest xi
!
  warning           "This library has not been verified with hardware."

sequential

vector cycle  1u
receive delay .9u

!  Use pull-downs to test CEbar and OEbar. Pull-ups cannot be used
!  because they affect the programming of the chip. Use 10 - 100 k ohms.

warning "Pull-downs are required to test Chip Enable and Output Enable"

warning "Write to each Address takes 10 ms for a total test"
warning "  test time of approx. 150 ms.  A minimum fo 30 ms can be"
warning "  obtained by deleting Read and Write Addresses to only"
warning "  one in the execution section. "

assign   VCC            to pins  24
assign   GND            to pins  12

assign   Address        to pins  19,22,23,1,2,3,4,5,6,7,8

assign   Data           to pins  17,16,15,14,13,11,10,9
assign   Data_D0        to pins  9    !AT Added for minimum pin test.
assign   Data_D1        to pins  10   !AT Added for minimum pin test.
assign   Data_D2        to pins  11   !AT Added for minimum pin test.
assign   Data_D3        to pins  13   !AT Added for minimum pin test.
assign   Data_D4        to pins  14   !AT Added for minimum pin test.
assign   Data_D5        to pins  15   !AT Added for minimum pin test.
assign   Data_D6        to pins  16   !AT Added for minimum pin test.
assign   Data_D7        to pins  17   !AT Added for minimum pin test.

assign   CEbar          to pins  18
assign   OEbar          to pins  20
assign   WEbar          to pins  21

family   TTL

format hexadecimal   Data,Address

power    VCC, GND

inputs   Address,OEbar,CEbar,WEbar

bidirectional  Data
bidirectional Data_D0, Data_D1, Data_D2, Data_D3 !AT Added for minimum pin test.
bidirectional Data_D4, Data_D5, Data_D6, Data_D7 !AT Added for minimum pin test.

when     CEbar is "1"   inactive    Data
when     OEbar is "1"   inactive    Data
when     WEbar is "1"   outputs     Data
when     WEbar is "0"   inputs      Data

trace    Data  to    Address,OEbar,CEbar,WEbar

disable  Data  with  CEbar to "1"
disable  Data  with  OEbar to "1"

!***************************************************************
!***************************************************************

vector   Initialize
   drive Data
   set   Address        to "000"
   set   Data           to "00"
   set   CEbar          to "1"
   set   OEbar          to "1"
   set   WEbar          to "1"
end vector

vector   Keep_inputs
   drive Data
   set   Address        to "kkk"
   set   Data           to "kk"
   set   CEbar          to "k"
   set   OEbar          to "k"
   set   WEbar          to "k"
end vector

vector   HOLD
   drive Data
   set   Address        to "kkk"
   set   Data           to "kk"
   set   CEbar          to "k"
   set   OEbar          to "k"
   set   WEbar          to "k"
end vector

! Addresses

vector   A_7FF
   initialize     to Keep_inputs
   set   Address        to "7FF"
end vector

vector   A_7FE
   initialize     to Keep_inputs
   set   Address        to "7FE"
end vector

vector   A_7FD
   initialize     to Keep_inputs
   set   Address        to "7FD"
end vector

vector   A_7FB
   initialize     to Keep_inputs
   set   Address        to "7FB"
end vector

vector   A_7F7
   initialize     to Keep_inputs
   set   Address        to "7F7"
end vector

vector   A_7EF
   initialize     to Keep_inputs
   set   Address        to "7EF"
end vector

vector   A_7DF
   initialize     to Keep_inputs
   set   Address        to "7DF"
end vector

vector   A_7BF
   initialize     to Keep_inputs
   set   Address        to "7BF"
end vector

vector   A_77F
   initialize     to Keep_inputs
   set   Address        to "77F"
end vector

vector   A_6FF
   initialize     to Keep_inputs
   set   Address        to "6FF"
end vector

vector   A_5FF
   initialize     to Keep_inputs
   set   Address        to "5FF"
end vector

vector   A_3FF
   initialize     to Keep_inputs
   set   Address        to "3FF"
end vector

! Bidirectional

vector   D_00_D
   initialize     to Keep_inputs
   set   Data           to "00"
end vector

vector   D_AA_D
   initialize     to Keep_inputs
   set   Data           to "AA"
end vector

vector   D_55_D
   initialize     to Keep_inputs
   set   Data           to "55"
end vector

vector   D_FF_D
   initialize     to Keep_inputs
   set   Data           to "FF"
end vector

vector   D_FE_D
   initialize     to Keep_inputs
   set   Data           to "FE"
end vector

vector   D_FD_D
   initialize     to Keep_inputs
   set   Data           to "FD"
end vector

vector   D_FB_D
   initialize     to Keep_inputs
   set   Data           to "FB"
end vector

vector   D_F7_D
   initialize     to Keep_inputs
   set   Data           to "F7"
end vector

vector   D_EF_D
   initialize     to Keep_inputs
   set   Data           to "EF"
end vector

vector   D_DF_D
   initialize     to Keep_inputs
   set   Data           to "DF"
end vector

vector   D_BF_D
   initialize     to Keep_inputs
   set   Data           to "BF"
end vector

vector   D_7F_D
   initialize     to Keep_inputs
   set   Data           to "7F"
end vector

vector   D_6F_D
   initialize     to Keep_inputs
   set   Data           to "6F"
end vector

vector   D_5F_D
   initialize     to Keep_inputs
   set   Data           to "5F"
end vector

vector   D_3F_D
   initialize     to Keep_inputs
   set   Data           to "3F"
end vector

vector   D_00_R
   initialize     to Keep_inputs
   receive  Data
   set   Data           to "00"
end vector

vector   D_AA_R
   initialize     to Keep_inputs
   receive  Data
   set   Data           to "AA"
end vector

vector   D_55_R
   initialize     to Keep_inputs
   receive  Data
   set   Data           to "55"
end vector

vector   D_FE_R
   initialize     to Keep_inputs
   receive  Data
   set   Data           to "FE"
end vector

vector   D_FD_R
   initialize     to Keep_inputs
   receive  Data
   set   Data           to "FD"
end vector

vector   D_FB_R
   initialize     to Keep_inputs
   receive  Data
   set   Data           to "FB"
end vector

vector   D_F7_R
   initialize     to Keep_inputs
   receive  Data
   set   Data           to "F7"
end vector

vector   D_EF_R
   initialize     to Keep_inputs
   receive  Data
   set   Data           to "EF"
end vector

vector   D_DF_R
   initialize     to Keep_inputs
   receive  Data
   set   Data           to "DF"
end vector

vector   D_BF_R
   initialize     to Keep_inputs
   receive  Data
   set   Data           to "BF"
end vector

vector   D_7F_R
   initialize     to Keep_inputs
   receive  Data
   set   Data           to "7F"
end vector

vector   D_6F_R
   initialize     to Keep_inputs
   receive  Data
   set   Data           to "6F"
end vector

vector   D_5F_R
   initialize     to Keep_inputs
   receive  Data
   set   Data           to "5F"
end vector

vector   D_3F_R
   initialize     to Keep_inputs
   receive  Data
   set   Data           to "3F"
end vector

! Inputs

vector   CEbar_true
   initialize     to Keep_inputs
   set   CEbar          to "0"
end vector

vector   CEbar_false
   initialize     to Keep_inputs
   set   CEbar          to "1"
end vector

vector   WEbar_true
   initialize     to Keep_inputs
   set   WEbar          to "0"
end vector

vector   WEbar_false
   initialize     to Keep_inputs
   set   WEbar          to "1"
end vector

vector   OEbar_true
   initialize     to Keep_inputs
   set   OEbar          to "0"
end vector

!AT The following vectors have been added for a minimum pins test. Any
!AT vectors that references the data bus was copied and modified to reference
!AT only a single pin of the data bus.

vector   Initialize_D0
   drive Data_D0
   set   Address        to "000"
   set   Data_D0        to "0"
   set   CEbar          to "1"
   set   OEbar          to "1"
   set   WEbar          to "1"
end vector

vector   Initialize_D1
   drive Data_D1
   set   Address        to "000"
   set   Data_D1        to "0"
   set   CEbar          to "1"
   set   OEbar          to "1"
   set   WEbar          to "1"
end vector

vector   Initialize_D2
   drive Data_D2
   set   Address        to "000"
   set   Data_D2        to "0"
   set   CEbar          to "1"
   set   OEbar          to "1"
   set   WEbar          to "1"
end vector

vector   Initialize_D3
   drive Data_D3
   set   Address        to "000"
   set   Data_D3        to "0"
   set   CEbar          to "1"
   set   OEbar          to "1"
   set   WEbar          to "1"
end vector

vector   Initialize_D4
   drive Data_D4
   set   Address        to "000"
   set   Data_D4        to "0"
   set   CEbar          to "1"
   set   OEbar          to "1"
   set   WEbar          to "1"
end vector

vector   Initialize_D5
   drive Data_D5
   set   Address        to "000"
   set   Data_D5        to "0"
   set   CEbar          to "1"
   set   OEbar          to "1"
   set   WEbar          to "1"
end vector

vector   Initialize_D6
   drive Data_D6
   set   Address        to "000"
   set   Data_D6        to "0"
   set   CEbar          to "1"
   set   OEbar          to "1"
   set   WEbar          to "1"
end vector

vector   Initialize_D7
   drive Data_D7
   set   Address        to "000"
   set   Data_D7        to "0"
   set   CEbar          to "1"
   set   OEbar          to "1"
   set   WEbar          to "1"
end vector

vector   Keep_inputs_D0
   drive Data_D0
   set   Address        to "kkk"
   set   Data_D0        to "k"
   set   CEbar          to "k"
   set   OEbar          to "k"
   set   WEbar          to "k"
end vector

vector   Keep_inputs_D1
   drive Data_D1
   set   Address        to "kkk"
   set   Data_D1        to "k"
   set   CEbar          to "k"
   set   OEbar          to "k"
   set   WEbar          to "k"
end vector

vector   Keep_inputs_D2
   drive Data_D2
   set   Address        to "kkk"
   set   Data_D2        to "k"
   set   CEbar          to "k"
   set   OEbar          to "k"
   set   WEbar          to "k"
end vector

vector   Keep_inputs_D3
   drive Data_D3
   set   Address        to "kkk"
   set   Data_D3        to "k"
   set   CEbar          to "k"
   set   OEbar          to "k"
   set   WEbar          to "k"
end vector

vector   Keep_inputs_D4
   drive Data_D4
   set   Address        to "kkk"
   set   Data_D4        to "k"
   set   CEbar          to "k"
   set   OEbar          to "k"
   set   WEbar          to "k"
end vector

vector   Keep_inputs_D5
   drive Data_D5
   set   Address        to "kkk"
   set   Data_D5        to "k"
   set   CEbar          to "k"
   set   OEbar          to "k"
   set   WEbar          to "k"
end vector

vector   Keep_inputs_D6
   drive Data_D6
   set   Address        to "kkk"
   set   Data_D6        to "k"
   set   CEbar          to "k"
   set   OEbar          to "k"
   set   WEbar          to "k"
end vector

vector   Keep_inputs_D7
   drive Data_D7
   set   Address        to "kkk"
   set   Data_D7        to "k"
   set   CEbar          to "k"
   set   OEbar          to "k"
   set   WEbar          to "k"
end vector

vector   HOLD_D0
   drive Data_D0
   set   Address        to "kkk"
   set   Data_D0        to "k"
   set   CEbar          to "k"
   set   OEbar          to "k"
   set   WEbar          to "k"
end vector

vector   HOLD_D1
   drive Data_D1
   set   Address        to "kkk"
   set   Data_D1        to "k"
   set   CEbar          to "k"
   set   OEbar          to "k"
   set   WEbar          to "k"
end vector

vector   HOLD_D2
   drive Data_D2
   set   Address        to "kkk"
   set   Data_D2        to "k"
   set   CEbar          to "k"
   set   OEbar          to "k"
   set   WEbar          to "k"
end vector

vector   HOLD_D3
   drive Data_D3
   set   Address        to "kkk"
   set   Data_D3        to "k"
   set   CEbar          to "k"
   set   OEbar          to "k"
   set   WEbar          to "k"
end vector

vector   HOLD_D4
   drive Data_D4
   set   Address        to "kkk"
   set   Data_D4        to "k"
   set   CEbar          to "k"
   set   OEbar          to "k"
   set   WEbar          to "k"
end vector

vector   HOLD_D5
   drive Data_D5
   set   Address        to "kkk"
   set   Data_D5        to "k"
   set   CEbar          to "k"
   set   OEbar          to "k"
   set   WEbar          to "k"
end vector

vector   HOLD_D6
   drive Data_D6
   set   Address        to "kkk"
   set   Data_D6        to "k"
   set   CEbar          to "k"
   set   OEbar          to "k"
   set   WEbar          to "k"
end vector

vector   HOLD_D7
   drive Data_D7
   set   Address        to "kkk"
   set   Data_D7        to "k"
   set   CEbar          to "k"
   set   OEbar          to "k"
   set   WEbar          to "k"
end vector

vector   A_000_D0
   initialize     to Keep_inputs_D0
   set   Address        to "000"
end vector

vector   A_000_D1
   initialize     to Keep_inputs_D1
   set   Address        to "000"
end vector

vector   A_000_D2
   initialize     to Keep_inputs_D2
   set   Address        to "000"
end vector

vector   A_000_D3
   initialize     to Keep_inputs_D3
   set   Address        to "000"
end vector

vector   A_000_D4
   initialize     to Keep_inputs_D4
   set   Address        to "000"
end vector

vector   A_000_D5
   initialize     to Keep_inputs_D5
   set   Address        to "000"
end vector

vector   A_000_D6
   initialize     to Keep_inputs_D6
   set   Address        to "000"
end vector

vector   A_000_D7
   initialize     to Keep_inputs_D7
   set   Address        to "000"
end vector

vector   D0_0_D
   initialize     to Keep_inputs_D0
   set   Data_D0        to "0"
end vector

vector   D0_1_D
   initialize     to Keep_inputs_D0
   set   Data_D0        to "1"
end vector

vector   D1_0_D
   initialize     to Keep_inputs_D1
   set   Data_D1        to "0"
end vector

vector   D1_1_D
   initialize     to Keep_inputs_D1
   set   Data_D1        to "1"
end vector

vector   D2_0_D
   initialize     to Keep_inputs_D2
   set   Data_D2        to "0"
end vector

vector   D2_1_D
   initialize     to Keep_inputs_D2
   set   Data_D2        to "1"
end vector

vector   D3_0_D
   initialize     to Keep_inputs_D3
   set   Data_D3        to "0"
end vector

vector   D3_1_D
   initialize     to Keep_inputs_D3
   set   Data_D3        to "1"
end vector

vector   D4_0_D
   initialize     to Keep_inputs_D4
   set   Data_D4        to "0"
end vector

vector   D4_1_D
   initialize     to Keep_inputs_D4
   set   Data_D4        to "1"
end vector

vector   D5_0_D
   initialize     to Keep_inputs_D5
   set   Data_D5        to "0"
end vector

vector   D5_1_D
   initialize     to Keep_inputs_D5
   set   Data_D5        to "1"
end vector

vector   D6_0_D
   initialize     to Keep_inputs_D6
   set   Data_D6        to "0"
end vector

vector   D6_1_D
   initialize     to Keep_inputs_D6
   set   Data_D6        to "1"
end vector

vector   D7_0_D
   initialize     to Keep_inputs_D7
   set   Data_D7        to "0"
end vector

vector   D7_1_D
   initialize     to Keep_inputs_D7
   set   Data_D7        to "1"
end vector

vector   D0_0_R
   initialize     to Keep_inputs_D0
   receive  Data_D0
   set   Data_D0        to "0"
end vector

vector   D0_1_R
   initialize     to Keep_inputs_D0
   receive  Data_D0
   set   Data_D0        to "1"
end vector

vector   D1_0_R
   initialize     to Keep_inputs_D1
   receive  Data_D1
   set   Data_D1        to "0"
end vector

vector   D1_1_R
   initialize     to Keep_inputs_D1
   receive  Data_D1
   set   Data_D1        to "1"
end vector

vector   D2_0_R
   initialize     to Keep_inputs_D2
   receive  Data_D2
   set   Data_D2        to "0"
end vector

vector   D2_1_R
   initialize     to Keep_inputs_D2
   receive  Data_D2
   set   Data_D2        to "1"
end vector

vector   D3_0_R
   initialize     to Keep_inputs_D3
   receive  Data_D3
   set   Data_D3        to "0"
end vector

vector   D3_1_R
   initialize     to Keep_inputs_D3
   receive  Data_D3
   set   Data_D3        to "1"
end vector

vector   D4_0_R
   initialize     to Keep_inputs_D4
   receive  Data_D4
   set   Data_D4        to "0"
end vector

vector   D4_1_R
   initialize     to Keep_inputs_D4
   receive  Data_D4
   set   Data_D4        to "1"
end vector

vector   D5_0_R
   initialize     to Keep_inputs_D5
   receive  Data_D5
   set   Data_D5        to "0"
end vector

vector   D5_1_R
   initialize     to Keep_inputs_D5
   receive  Data_D5
   set   Data_D5        to "1"
end vector

vector   D6_0_R
   initialize     to Keep_inputs_D6
   receive  Data_D6
   set   Data_D6        to "0"
end vector

vector   D6_1_R
   initialize     to Keep_inputs_D6
   receive  Data_D6
   set   Data_D6        to "1"
end vector

vector   D7_0_R
   initialize     to Keep_inputs_D7
   receive  Data_D7
   set   Data_D7        to "0"
end vector

vector   D7_1_R
   initialize     to Keep_inputs_D7
   receive  Data_D7
   set   Data_D7        to "1"
end vector

vector   WEbar_true_D0
   initialize     to Keep_inputs_D0
   set   WEbar          to "0"
end vector

vector   WEbar_true_D1
   initialize     to Keep_inputs_D1
   set   WEbar          to "0"
end vector

vector   WEbar_true_D2
   initialize     to Keep_inputs_D2
   set   WEbar          to "0"
end vector

vector   WEbar_true_D3
   initialize     to Keep_inputs_D3
   set   WEbar          to "0"
end vector

vector   WEbar_true_D4
   initialize     to Keep_inputs_D4
   set   WEbar          to "0"
end vector

vector   WEbar_true_D5
   initialize     to Keep_inputs_D5
   set   WEbar          to "0"
end vector

vector   WEbar_true_D6
   initialize     to Keep_inputs_D6
   set   WEbar          to "0"
end vector

vector   WEbar_true_D7
   initialize     to Keep_inputs_D7
   set   WEbar          to "0"
end vector

vector   CEbar_true_D0
   initialize     to Keep_inputs_D0
   set   CEbar          to "0"
end vector

vector   CEbar_true_D1
   initialize     to Keep_inputs_D1
   set   CEbar          to "0"
end vector

vector   CEbar_true_D2
   initialize     to Keep_inputs_D2
   set   CEbar          to "0"
end vector

vector   CEbar_true_D3
   initialize     to Keep_inputs_D3
   set   CEbar          to "0"
end vector

vector   CEbar_true_D4
   initialize     to Keep_inputs_D4
   set   CEbar          to "0"
end vector

vector   CEbar_true_D5
   initialize     to Keep_inputs_D5
   set   CEbar          to "0"
end vector

vector   CEbar_true_D6
   initialize     to Keep_inputs_D6
   set   CEbar          to "0"
end vector

vector   CEbar_true_D7
   initialize     to Keep_inputs_D7
   set   CEbar          to "0"
end vector

vector   OEbar_true_D0
   initialize     to Keep_inputs_D0
   set   OEbar          to "0"
end vector

vector   OEbar_true_D1
   initialize     to Keep_inputs_D1
   set   OEbar          to "0"
end vector

vector   OEbar_true_D2
   initialize     to Keep_inputs_D2
   set   OEbar          to "0"
end vector

vector   OEbar_true_D3
   initialize     to Keep_inputs_D3
   set   OEbar          to "0"
end vector

vector   OEbar_true_D4
   initialize     to Keep_inputs_D4
   set   OEbar          to "0"
end vector

vector   OEbar_true_D5
   initialize     to Keep_inputs_D5
   set   OEbar          to "0"
end vector

vector   OEbar_true_D6
   initialize     to Keep_inputs_D6
   set   OEbar          to "0"
end vector

vector   OEbar_true_D7
   initialize     to Keep_inputs_D7
   set   OEbar          to "0"
end vector


!***************************************************************
!***************************************************************

!AT The following AwareTest units have been added for minimum pins tests. Each
!AT unit tests a separate data pin starting with D0.

unit   "awaretest D0 Test"

   execute  Initialize_D0
   execute  A_000_D0
   execute  WEbar_true_D0
   execute  D0_0_D
   execute  CEbar_true_D0
   repeat 2000 times
      execute  HOLD_D0
      execute  HOLD_D0
      execute  HOLD_D0
      execute  HOLD_D0
      execute  HOLD_D0
   end repeat

   execute  Initialize_D0
   execute  OEbar_true_D0
   execute  A_000_D0
   execute  CEbar_true_D0
   execute  D0_0_R

   execute  Initialize_D0
   execute  A_000_D0
   execute  WEbar_true_D0
   execute  D0_1_D
   execute  CEbar_true_D0
   repeat 2000 times
      execute  HOLD_D0
      execute  HOLD_D0
      execute  HOLD_D0
      execute  HOLD_D0
      execute  HOLD_D0
   end repeat

   execute  Initialize_D0
   execute  OEbar_true_D0
   execute  A_000_D0
   execute  CEbar_true_D0
   execute  D0_1_R

end unit

unit   "awaretest D1 Test"

   execute  Initialize_D1
   execute  A_000_D1
   execute  WEbar_true_D1
   execute  D1_0_D
   execute  CEbar_true_D1
   repeat 2000 times
      execute  HOLD_D1
      execute  HOLD_D1
      execute  HOLD_D1
      execute  HOLD_D1
      execute  HOLD_D1
   end repeat

   execute  Initialize_D1
   execute  OEbar_true_D1
   execute  A_000_D1
   execute  CEbar_true_D1
   execute  D1_0_R

   execute  Initialize_D1
   execute  A_000_D1
   execute  WEbar_true_D1
   execute  D1_1_D
   execute  CEbar_true_D1
   repeat 2000 times
      execute  HOLD_D1
      execute  HOLD_D1
      execute  HOLD_D1
      execute  HOLD_D1
      execute  HOLD_D1
   end repeat

   execute  Initialize_D1
   execute  OEbar_true_D1
   execute  A_000_D1
   execute  CEbar_true_D1
   execute  D1_1_R

end unit

unit   "awaretest D2 Test"

   execute  Initialize_D2
   execute  A_000_D2
   execute  WEbar_true_D2
   execute  D2_0_D
   execute  CEbar_true_D2
   repeat 2000 times
      execute  HOLD_D2
      execute  HOLD_D2
      execute  HOLD_D2
      execute  HOLD_D2
      execute  HOLD_D2
   end repeat

   execute  Initialize_D2
   execute  OEbar_true_D2
   execute  A_000_D2
   execute  CEbar_true_D2
   execute  D2_0_R

   execute  Initialize_D2
   execute  A_000_D2
   execute  WEbar_true_D2
   execute  D2_1_D
   execute  CEbar_true_D2
   repeat 2000 times
      execute  HOLD_D2
      execute  HOLD_D2
      execute  HOLD_D2
      execute  HOLD_D2
      execute  HOLD_D2
   end repeat

   execute  Initialize_D2
   execute  OEbar_true_D2
   execute  A_000_D2
   execute  CEbar_true_D2
   execute  D2_1_R

end unit

unit   "awaretest D3 Test"

   execute  Initialize_D3
   execute  A_000_D3
   execute  WEbar_true_D3
   execute  D3_0_D
   execute  CEbar_true_D3
   repeat 2000 times
      execute  HOLD_D3
      execute  HOLD_D3
      execute  HOLD_D3
      execute  HOLD_D3
      execute  HOLD_D3
   end repeat

   execute  Initialize_D3
   execute  OEbar_true_D3
   execute  A_000_D3
   execute  CEbar_true_D3
   execute  D3_0_R

   execute  Initialize_D3
   execute  A_000_D3
   execute  WEbar_true_D3
   execute  D3_1_D
   execute  CEbar_true_D3
   repeat 2000 times
      execute  HOLD_D3
      execute  HOLD_D3
      execute  HOLD_D3
      execute  HOLD_D3
      execute  HOLD_D3
   end repeat

   execute  Initialize_D3
   execute  OEbar_true_D3
   execute  A_000_D3
   execute  CEbar_true_D3
   execute  D3_1_R

end unit

unit   "awaretest D4 Test"

   execute  Initialize_D4
   execute  A_000_D4
   execute  WEbar_true_D4
   execute  D4_0_D
   execute  CEbar_true_D4
   repeat 2000 times
      execute  HOLD_D4
      execute  HOLD_D4
      execute  HOLD_D4
      execute  HOLD_D4
      execute  HOLD_D4
   end repeat

   execute  Initialize_D4
   execute  OEbar_true_D4
   execute  A_000_D4
   execute  CEbar_true_D4
   execute  D4_0_R

   execute  Initialize_D4
   execute  A_000_D4
   execute  WEbar_true_D4
   execute  D4_1_D
   execute  CEbar_true_D4
   repeat 2000 times
      execute  HOLD_D4
      execute  HOLD_D4
      execute  HOLD_D4
      execute  HOLD_D4
      execute  HOLD_D4
   end repeat

   execute  Initialize_D4
   execute  OEbar_true_D4
   execute  A_000_D4
   execute  CEbar_true_D4
   execute  D4_1_R

end unit

unit   "awaretest D5 Test"

   execute  Initialize_D5
   execute  A_000_D5
   execute  WEbar_true_D5
   execute  D5_0_D
   execute  CEbar_true_D5
   repeat 2000 times
      execute  HOLD_D5
      execute  HOLD_D5
      execute  HOLD_D5
      execute  HOLD_D5
      execute  HOLD_D5
   end repeat

   execute  Initialize_D5
   execute  OEbar_true_D5
   execute  A_000_D5
   execute  CEbar_true_D5
   execute  D5_0_R

   execute  Initialize_D5
   execute  A_000_D5
   execute  WEbar_true_D5
   execute  D5_1_D
   execute  CEbar_true_D5
   repeat 2000 times
      execute  HOLD_D5
      execute  HOLD_D5
      execute  HOLD_D5
      execute  HOLD_D5
      execute  HOLD_D5
   end repeat

   execute  Initialize_D5
   execute  OEbar_true_D5
   execute  A_000_D5
   execute  CEbar_true_D5
   execute  D5_1_R

end unit

unit   "awaretest D6 Test"

   execute  Initialize_D6
   execute  A_000_D6
   execute  WEbar_true_D6
   execute  D6_0_D
   execute  CEbar_true_D6
   repeat 2000 times
      execute  HOLD_D6
      execute  HOLD_D6
      execute  HOLD_D6
      execute  HOLD_D6
      execute  HOLD_D6
   end repeat

   execute  Initialize_D6
   execute  OEbar_true_D6
   execute  A_000_D6
   execute  CEbar_true_D6
   execute  D6_0_R

   execute  Initialize_D6
   execute  A_000_D6
   execute  WEbar_true_D6
   execute  D6_1_D
   execute  CEbar_true_D6
   repeat 2000 times
      execute  HOLD_D6
      execute  HOLD_D6
      execute  HOLD_D6
      execute  HOLD_D6
      execute  HOLD_D6
   end repeat

   execute  Initialize_D6
   execute  OEbar_true_D6
   execute  A_000_D6
   execute  CEbar_true_D6
   execute  D6_1_R

end unit

unit   "awaretest D7 Test"

   execute  Initialize_D7
   execute  A_000_D7
   execute  WEbar_true_D7
   execute  D7_0_D
   execute  CEbar_true_D7
   repeat 2000 times
      execute  HOLD_D7
      execute  HOLD_D7
      execute  HOLD_D7
      execute  HOLD_D7
      execute  HOLD_D7
   end repeat

   execute  Initialize_D7
   execute  OEbar_true_D7
   execute  A_000_D7
   execute  CEbar_true_D7
   execute  D7_0_R

   execute  Initialize_D7
   execute  A_000_D7
   execute  WEbar_true_D7
   execute  D7_1_D
   execute  CEbar_true_D7
   repeat 2000 times
      execute  HOLD_D7
      execute  HOLD_D7
      execute  HOLD_D7
      execute  HOLD_D7
      execute  HOLD_D7
   end repeat

   execute  Initialize_D7
   execute  OEbar_true_D7
   execute  A_000_D7
   execute  CEbar_true_D7
   execute  D7_1_R

end unit

unit "Program EEPROM"

! Write
! Address A7FE
   execute  Initialize
   execute  A_7FE
   execute  WEbar_true
   execute  D_FE_D
   execute  CEbar_true
   repeat 2000 times
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
   end repeat

! Address A7FD
   execute  Initialize
   execute  A_7FD
   execute  WEbar_true
   execute  D_FD_D
   execute  CEbar_true
   repeat 2000 times
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
   end repeat

! Address A7FB
   execute  Initialize
   execute  A_7FB
   execute  WEbar_true
   execute  D_FB_D
   execute  CEbar_true

   repeat 2000 times
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
   end repeat

! Address A7F7
   execute  Initialize
   execute  A_7F7
   execute  WEbar_true
   execute  D_F7_D
   execute  CEbar_true
   repeat 2000 times
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
   end repeat

! Address A7EF
   execute  Initialize
   execute  A_7EF
   execute  WEbar_true
   execute  D_EF_D
   execute  CEbar_true
   repeat 2000 times
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
   end repeat

! Address A7DF
   execute  Initialize
   execute  A_7DF
   execute  WEbar_true
   execute  D_DF_D
   execute  CEbar_true
   repeat 2000 times
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
   end repeat

! Address A7BF
   execute  Initialize
   execute  A_7BF
   execute  WEbar_true
   execute  D_BF_D
   execute  CEbar_true
   repeat 2000 times
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
   end repeat

! Address A77F
   execute  Initialize
   execute  A_77F
   execute  WEbar_true
   execute  D_7F_D
   execute  CEbar_true
   repeat 2000 times
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
   end repeat

! Address A6FF
   execute  Initialize
   execute  A_6FF
   execute  WEbar_true
   execute  D_6F_D
   execute  CEbar_true
   repeat 2000 times
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
   end repeat

! Address A5FF
   execute  Initialize
   execute  A_5FF
   execute  WEbar_true
   execute  D_5F_D
   execute  CEbar_true
   repeat 2000 times
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
   end repeat

! Address A3FF
   execute  Initialize
   execute  A_3FF
   execute  WEbar_true
   execute  D_3F_D
   execute  CEbar_true
   repeat 2000 times
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
   end repeat

   execute  Initialize
   execute  A_7FF
   execute  WEbar_true
   execute  D_AA_D
   execute  CEbar_true
   repeat 2000 times
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
   end repeat

   execute  Initialize
   execute  A_7FE
   execute  WEbar_false
   execute  D_55_D
   execute  CEbar_true
   repeat 2000 times
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
      execute  HOLD
   end repeat

! Read

! Address A7FE
   execute  Initialize
   execute  OEbar_true
   execute  A_7FE
   execute  CEbar_true
   execute  D_FE_R

! Address A7FD
   execute  Initialize
   execute  OEbar_true
   execute  A_7FD
   execute  CEbar_true
   execute  D_FD_R

! Address A7FB
   execute  Initialize
   execute  OEbar_true
   execute  A_7FB
   execute  CEbar_true
   execute  D_FB_R

! Address A7F7
   execute  Initialize
   execute  OEbar_true
   execute  A_7F7
   execute  CEbar_true
   execute  D_F7_R

! Address A7EF
   execute  Initialize
   execute  OEbar_true
   execute  A_7EF
   execute  CEbar_true
   execute  D_EF_R

! Address A7DF
   execute  Initialize
   execute  OEbar_true
   execute  A_7DF
   execute  CEbar_true
   execute  D_DF_R

! Address A7BF
   execute  Initialize
   execute  OEbar_true
   execute  A_7BF
   execute  CEbar_true
   execute  D_BF_R

! Address A77F
   execute  Initialize
   execute  OEbar_true
   execute  A_77F
   execute  CEbar_true
   execute  D_7F_R

! Address A6FF
   execute  Initialize
   execute  OEbar_true
   execute  A_6FF
   execute  CEbar_true
   execute  D_6F_R

! Address A5FF
   execute  Initialize
   execute  OEbar_true
   execute  A_5FF
   execute  CEbar_true
   execute  D_5F_R

! Address A3FF
   execute  Initialize
   execute  OEbar_true
   execute  A_3FF
   execute  CEbar_true
   execute  D_3F_R

end unit

!! CE and OE Units require pull-down resistors.

!!unit "test CEbar"
!!   execute  Initialize
!!   execute  OEbar_true
!!   execute  A_7FF
!!   execute  D_00_R
!!end unit

!!unit "test OEbar"
!!   execute  Initialize
!!   execute  A_7FF
!!   execute  CEbar_true
!!   execute  D_00_R
!!end unit

!    End of test


