!!!!    6    0    1  987185838  V718a                                         

! Device           : idt7132
! Function         : 2k X 8 static RAM with Dual Ports
! revision         : B.01.00
! safeguard        : high_out_hcmos
! Modifications    : Modified for AwareTest xi
!
  warning           "This library has not been verified with hardware."

!warning "pullups will be needed to test open collector outputs pins 3 & 49"
!warning "pullups will be needed to test high impedance outputs pins 17 to 20"
!warning "pullups will be needed to test high impedance outputs pins 27 to 30"
warning "PIN OUT for 52 pin LCC/PLCC package"

vector cycle 1000n
receive delay 900n

assign  VCC               to pins  52
assign  GND               to pins  26

assign  Addr_R            to pins  47,36,37,38,39,40,41,42,43,44,45
assign  IO_R              to pins  34,33,32,31,30,29,28,27
assign  IO_R_D0           to pins  27   !AT Added for minimum pin test.
assign  IO_R_D1           to pins  28   !AT Added for minimum pin test.
assign  IO_R_D2           to pins  29   !AT Added for minimum pin test.
assign  IO_R_D3           to pins  30   !AT Added for minimum pin test.
assign  IO_R_D4           to pins  31   !AT Added for minimum pin test.
assign  IO_R_D5           to pins  32   !AT Added for minimum pin test.
assign  IO_R_D6           to pins  33   !AT Added for minimum pin test.
assign  IO_R_D7           to pins  34   !AT Added for minimum pin test.

assign  OE_bar_R          to pins  46
assign  CE_bar_R          to pins  51
assign  RW_R              to pins  50
assign  Busy_bar_R        to pins  49

assign  Addr_L            to pins  5,16,15,14,13,12,11,10,9,8,7
assign  IO_L              to pins  24,23,22,21,20,19,18,17
assign  IO_L_D0           to pins  17   !AT Added for minimum pin test.
assign  IO_L_D1           to pins  18   !AT Added for minimum pin test.
assign  IO_L_D2           to pins  19   !AT Added for minimum pin test.
assign  IO_L_D3           to pins  20   !AT Added for minimum pin test.
assign  IO_L_D4           to pins  21   !AT Added for minimum pin test.
assign  IO_L_D5           to pins  22   !AT Added for minimum pin test.
assign  IO_L_D6           to pins  23   !AT Added for minimum pin test.
assign  IO_L_D7           to pins  24   !AT Added for minimum pin test.

assign  OE_bar_L          to pins   6
assign  CE_bar_L          to pins   1
assign  RW_L              to pins   2
assign  Busy_bar_L        to pins   3

assign  No_Connects       to pins   4,25,35,48

family  TTL

power   VCC, GND

inputs      Addr_R, OE_bar_R, CE_bar_R, RW_R
inputs      Addr_L, OE_bar_L, CE_bar_L, RW_L

outputs     Busy_bar_R, Busy_bar_L

bidirectional IO_R, IO_L
bidirectional IO_R_D0, IO_R_D1, IO_R_D2, IO_R_D3 !AT Added for min. pin test.
bidirectional IO_R_D4, IO_R_D5, IO_R_D6, IO_R_D7 !AT Added for min. pin test.
bidirectional IO_L_D0, IO_L_D1, IO_L_D2, IO_L_D3 !AT Added for min. pin test.
bidirectional IO_L_D4, IO_L_D5, IO_L_D6, IO_L_D7 !AT Added for min. pin test.

nondigital   No_Connects

format hexadecimal IO_R, IO_L

disable  IO_R            with   OE_bar_R  to "1"
disable  IO_R            with   CE_bar_R  to "1"
disable  IO_L            with   OE_bar_L  to "1"
disable  IO_L            with   CE_bar_L  to "1"

when RW_R  is "0"  inputs IO_R
when RW_R  is "1"  outputs IO_R
when RW_L  is "0"  inputs IO_L
when RW_L  is "1"  outputs IO_L
when OE_bar_R is "1" inactive IO_R
when CE_bar_R is "1" inactive IO_R
when OE_bar_L is "1" inactive IO_L
when CE_bar_L is "1" inactive IO_L

trace IO_R to Addr_R, OE_bar_R, CE_bar_R, RW_R
trace IO_L to Addr_L, OE_bar_L, CE_bar_L, RW_L
trace Busy_bar_L, Busy_bar_R to Addr_R, OE_bar_R, CE_bar_R, RW_R
trace Busy_bar_L, Busy_bar_R to Addr_L, OE_bar_L, CE_bar_L, RW_L

set load on pins  3,49         to pull up
set load on pins  17,18,19,20  to pull up
set load on pins  27,28,29,30  to pull up

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

vector   Set_up_Right
   set   Addr_R      to "00000000000"
   set   RW_R        to "1"
   set   OE_bar_R    to "0"
   set   CE_bar_R    to "0"
   set   CE_bar_L    to "1"
end vector

vector   Set_up_Left
   set   Addr_L      to "00000000000"
   set   RW_L        to "1"
   set   OE_bar_L    to "0"
   set   CE_bar_L    to "0"
   set   CE_bar_R    to "1"
end vector

vector   Keep_inputs_left
   set   Addr_L      to "kkkkkkkkkkk"
   set   RW_L        to "k"
   set   OE_bar_L    to "k"
   set   CE_bar_L    to "k"
   set   CE_bar_R    to "k"
end vector

vector   Keep_inputs_right
   set   Addr_R      to "kkkkkkkkkkk"
   set   RW_R        to "k"
   set   OE_bar_R    to "k"
   set   CE_bar_R    to "k"
   set   CE_bar_L    to "k"
end vector

vector   Write_Right_True
   initialize        to Keep_inputs_right
   drive IO_R
   set   IO_R        to "kk"
   set   RW_R        to "0"
end vector

vector   Busy_Right_False
   initialize        to Keep_inputs_left
   set   Busy_bar_R  to "1"
end vector

vector   Busy_Right_True
   initialize        to Keep_inputs_left
   set   Addr_R      to "00000000000"
   set   CE_bar_R    to "0"
   set   Busy_bar_R  to "0"
end vector

vector   CE_Right_True
   initialize        to Keep_inputs_right
   set   CE_bar_R    to "0"
end vector

vector   CE_Right_False
   initialize        to Keep_inputs_right
   set   CE_bar_R    to "1"
end vector

vector   OE_Right_False
   initialize        to Keep_inputs_right
   set   OE_bar_R    to "1"
end vector

vector   End_write_cycle_Right
   initialize        to Keep_inputs_right
   drive IO_R
   set   IO_R        to "KK"
   set   RW_R        to "1"
end vector

vector   Write_Left_True
   initialize        to Keep_inputs_left
   drive IO_L
   set   IO_L        to "kk"
   set   RW_L        to "0"
end vector

vector   Busy_Left_False
   initialize        to Keep_inputs_right
   set   Busy_bar_L  to "1"
end vector

vector   Busy_Left_True
   initialize        to Keep_inputs_right
   set   Addr_L      to "00000000000"
   set   CE_bar_L    to "0"
   set   Busy_bar_L  to "0"
end vector

vector   CE_Left_True
   initialize        to Keep_inputs_left
   set   CE_bar_L    to "0"
end vector

vector   CE_Left_False
   initialize        to Keep_inputs_left
   set   CE_bar_L    to "1"
end vector

vector   OE_Left_False
   initialize        to Keep_inputs_left
   set   OE_bar_L    to "1"
end vector

vector   End_write_cycle_Left
   initialize        to Keep_inputs_left
   drive IO_L
   set   IO_L        to "KK"
   set   RW_L        to "1"
end vector

!------------------------------------------ Address Vectors
vector   Address_R_00000000000
   initialize        to Keep_inputs_right
   set   Addr_R      to "00000000000"
end vector

vector   Address_R_00000000001
   initialize        to Keep_inputs_right
   set   Addr_R      to "00000000001"
end vector

vector   Address_R_00000000010
   initialize        to Keep_inputs_right
   set   Addr_R      to "00000000010"
end vector

vector   Address_R_00000000100
   initialize        to Keep_inputs_right
   set   Addr_R      to "00000000100"
end vector

vector   Address_R_00000001000
   initialize        to Keep_inputs_right
   set   Addr_R      to "00000001000"
end vector

vector   Address_R_00000010000
   initialize        to Keep_inputs_right
   set   Addr_R      to "00000010000"
end vector

vector   Address_R_00000100000
   initialize        to Keep_inputs_right
   set   Addr_R      to "00000100000"
end vector

vector   Address_R_00001000000
   initialize        to Keep_inputs_right
   set   Addr_R      to "00001000000"
end vector

vector   Address_R_00010000000
   initialize        to Keep_inputs_right
   set   Addr_R      to "00010000000"
end vector

vector   Address_R_00100000000
   initialize        to Keep_inputs_right
   set   Addr_R      to "00100000000"
end vector

vector   Address_R_01000000000
   initialize        to Keep_inputs_right
   set   Addr_R      to "01000000000"
end vector

vector   Address_R_10000000000
   initialize        to Keep_inputs_right
   set   Addr_R      to "10000000000"
end vector

vector   Address_L_11111111111
   initialize        to Keep_inputs_left
   set   Addr_L      to "11111111111"
end vector

vector   Address_L_11111111110
   initialize        to Keep_inputs_left
   set   Addr_L      to "11111111110"
end vector

vector   Address_L_11111111101
   initialize        to Keep_inputs_left
   set   Addr_L      to "11111111101"
end vector

vector   Address_L_11111111011
   initialize        to Keep_inputs_left
   set   Addr_L      to "11111111011"
end vector

vector   Address_L_11111110111
   initialize        to Keep_inputs_left
   set   Addr_L      to "11111110111"
end vector

vector   Address_L_11111101111
   initialize        to Keep_inputs_left
   set   Addr_L      to "11111101111"
end vector

vector   Address_L_11111011111
   initialize        to Keep_inputs_left
   set   Addr_L      to "11111011111"
end vector

vector   Address_L_11110111111
   initialize        to Keep_inputs_left
   set   Addr_L      to "11110111111"
end vector

vector   Address_L_11101111111
   initialize        to Keep_inputs_left
   set   Addr_L      to "11101111111"
end vector

vector   Address_L_11011111111
   initialize        to Keep_inputs_left
   set   Addr_L      to "11011111111"
end vector

vector   Address_L_10111111111
   initialize        to Keep_inputs_left
   set   Addr_L      to "10111111111"
end vector

vector   Address_L_01111111111
   initialize        to Keep_inputs_left
   set   Addr_L      to "01111111111"
end vector


!------------------------------------------ Data Vectors

vector   Data_R_55_drive
   initialize        to Keep_inputs_right
   drive IO_R
   set   IO_R        to "55"
end vector

vector   Data_R_55_rcv
   initialize        to Keep_inputs_right
   receive IO_R
   set   IO_R        to "55"
end vector

vector   Data_R_AA_drive
   initialize        to Keep_inputs_right
   drive IO_R
   set   IO_R        to "AA"
end vector

vector   Data_R_AA_rcv
   initialize        to Keep_inputs_right
   receive IO_R
   set   IO_R        to "AA"
end vector

vector   Data_R_XF_rcv
   initialize        to Keep_inputs_right
   receive IO_R
   set   IO_R        to "XF"
end vector

vector   Data_L_55_drive
   initialize        to Keep_inputs_left
   drive IO_L
   set   IO_L        to "55"
end vector

vector   Data_L_55_rcv
   initialize        to Keep_inputs_left
   receive IO_L
   set   IO_L        to "55"
end vector

vector   Data_L_AA_drive
   initialize        to Keep_inputs_left
   drive IO_L
   set   IO_L        to "AA"
end vector

vector   Data_L_AA_rcv
   initialize        to Keep_inputs_left
   receive IO_L
   set   IO_L        to "AA"
end vector

vector   Data_L_XF_rcv
   initialize        to Keep_inputs_left
   receive IO_L
   set   IO_L        to "XF"
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   W_R_lo_IO_R_D0
   initialize        to Keep_inputs_right
   drive IO_R_D0
   set   IO_R_D0     to "k"
   set   RW_R        to "0"
end vector

vector   W_R_hi_IO_R_D0
   initialize        to Keep_inputs_right
   drive IO_R_D0
   set   IO_R_D0     to "k"
   set   RW_R        to "1"
end vector

vector   W_L_lo_IO_L_D0
   initialize        to Keep_inputs_left
   drive IO_L_D0
   set   IO_L_D0     to "k"
   set   RW_L        to "0"
end vector

vector   W_L_hi_IO_L_D0
   initialize        to Keep_inputs_left
   drive IO_L_D0
   set   IO_L_D0     to "k"
   set   RW_L        to "1"
end vector

vector   Data_R_D0_0_drive
   initialize        to Keep_inputs_right
   drive IO_R_D0
   set   IO_R_D0     to "0"
end vector

vector   Data_R_D0_1_drive
   initialize        to Keep_inputs_right
   drive IO_R_D0
   set   IO_R_D0     to "1"
end vector

vector   Data_R_D0_0_rcv
   initialize        to Keep_inputs_right
   receive IO_R_D0
   set     IO_R_D0   to "0"
end vector

vector   Data_R_D0_1_rcv
   initialize        to Keep_inputs_right
   receive IO_R_D0
   set     IO_R_D0   to "1"
end vector

vector   Data_L_D0_0_drive
   initialize        to Keep_inputs_left
   drive IO_L_D0
   set   IO_L_D0     to "0"
end vector

vector   Data_L_D0_1_drive
   initialize        to Keep_inputs_left
   drive IO_L_D0
   set   IO_L_D0     to "1"
end vector

vector   Data_L_D0_0_rcv
   initialize        to Keep_inputs_left
   receive IO_L_D0
   set     IO_L_D0   to "0"
end vector

vector   Data_L_D0_1_rcv
   initialize        to Keep_inputs_left
   receive IO_L_D0
   set     IO_L_D0   to "1"
end vector

vector   W_R_lo_IO_R_D1
   initialize        to Keep_inputs_right
   drive IO_R_D1
   set   IO_R_D1     to "k"
   set   RW_R        to "0"
end vector

vector   W_R_hi_IO_R_D1
   initialize        to Keep_inputs_right
   drive IO_R_D1
   set   IO_R_D1     to "k"
   set   RW_R        to "1"
end vector

vector   W_L_lo_IO_L_D1
   initialize        to Keep_inputs_left
   drive IO_L_D1
   set   IO_L_D1     to "k"
   set   RW_L        to "0"
end vector

vector   W_L_hi_IO_L_D1
   initialize        to Keep_inputs_left
   drive IO_L_D1
   set   IO_L_D1     to "k"
   set   RW_L        to "1"
end vector

vector   Data_R_D1_0_drive
   initialize        to Keep_inputs_right
   drive IO_R_D1
   set   IO_R_D1     to "0"
end vector

vector   Data_R_D1_1_drive
   initialize        to Keep_inputs_right
   drive IO_R_D1
   set   IO_R_D1     to "1"
end vector

vector   Data_R_D1_0_rcv
   initialize        to Keep_inputs_right
   receive IO_R_D1
   set     IO_R_D1   to "0"
end vector

vector   Data_R_D1_1_rcv
   initialize        to Keep_inputs_right
   receive IO_R_D1
   set     IO_R_D1   to "1"
end vector

vector   Data_L_D1_0_drive
   initialize        to Keep_inputs_left
   drive IO_L_D1
   set   IO_L_D1     to "0"
end vector

vector   Data_L_D1_1_drive
   initialize        to Keep_inputs_left
   drive IO_L_D1
   set   IO_L_D1     to "1"
end vector

vector   Data_L_D1_0_rcv
   initialize        to Keep_inputs_left
   receive IO_L_D1
   set     IO_L_D1   to "0"
end vector

vector   Data_L_D1_1_rcv
   initialize        to Keep_inputs_left
   receive IO_L_D1
   set     IO_L_D1   to "1"
end vector

vector   W_R_lo_IO_R_D2
   initialize        to Keep_inputs_right
   drive IO_R_D2
   set   IO_R_D2     to "k"
   set   RW_R        to "0"
end vector

vector   W_R_hi_IO_R_D2
   initialize        to Keep_inputs_right
   drive IO_R_D2
   set   IO_R_D2     to "k"
   set   RW_R        to "1"
end vector

vector   W_L_lo_IO_L_D2
   initialize        to Keep_inputs_left
   drive IO_L_D2
   set   IO_L_D2     to "k"
   set   RW_L        to "0"
end vector

vector   W_L_hi_IO_L_D2
   initialize        to Keep_inputs_left
   drive IO_L_D2
   set   IO_L_D2     to "k"
   set   RW_L        to "1"
end vector

vector   Data_R_D2_0_drive
   initialize        to Keep_inputs_right
   drive IO_R_D2
   set   IO_R_D2     to "0"
end vector

vector   Data_R_D2_1_drive
   initialize        to Keep_inputs_right
   drive IO_R_D2
   set   IO_R_D2     to "1"
end vector

vector   Data_R_D2_0_rcv
   initialize        to Keep_inputs_right
   receive IO_R_D2
   set     IO_R_D2   to "0"
end vector

vector   Data_R_D2_1_rcv
   initialize        to Keep_inputs_right
   receive IO_R_D2
   set     IO_R_D2   to "1"
end vector

vector   Data_L_D2_0_drive
   initialize        to Keep_inputs_left
   drive IO_L_D2
   set   IO_L_D2     to "0"
end vector

vector   Data_L_D2_1_drive
   initialize        to Keep_inputs_left
   drive IO_L_D2
   set   IO_L_D2     to "1"
end vector

vector   Data_L_D2_0_rcv
   initialize        to Keep_inputs_left
   receive IO_L_D2
   set     IO_L_D2   to "0"
end vector

vector   Data_L_D2_1_rcv
   initialize        to Keep_inputs_left
   receive IO_L_D2
   set     IO_L_D2   to "1"
end vector

vector   W_R_lo_IO_R_D3
   initialize        to Keep_inputs_right
   drive IO_R_D3
   set   IO_R_D3     to "k"
   set   RW_R        to "0"
end vector

vector   W_R_hi_IO_R_D3
   initialize        to Keep_inputs_right
   drive IO_R_D3
   set   IO_R_D3     to "k"
   set   RW_R        to "1"
end vector

vector   W_L_lo_IO_L_D3
   initialize        to Keep_inputs_left
   drive IO_L_D3
   set   IO_L_D3     to "k"
   set   RW_L        to "0"
end vector

vector   W_L_hi_IO_L_D3
   initialize        to Keep_inputs_left
   drive IO_L_D3
   set   IO_L_D3     to "k"
   set   RW_L        to "1"
end vector

vector   Data_R_D3_0_drive
   initialize        to Keep_inputs_right
   drive IO_R_D3
   set   IO_R_D3     to "0"
end vector

vector   Data_R_D3_1_drive
   initialize        to Keep_inputs_right
   drive IO_R_D3
   set   IO_R_D3     to "1"
end vector

vector   Data_R_D3_0_rcv
   initialize        to Keep_inputs_right
   receive IO_R_D3
   set     IO_R_D3   to "0"
end vector

vector   Data_R_D3_1_rcv
   initialize        to Keep_inputs_right
   receive IO_R_D3
   set     IO_R_D3   to "1"
end vector

vector   Data_L_D3_0_drive
   initialize        to Keep_inputs_left
   drive IO_L_D3
   set   IO_L_D3     to "0"
end vector

vector   Data_L_D3_1_drive
   initialize        to Keep_inputs_left
   drive IO_L_D3
   set   IO_L_D3     to "1"
end vector

vector   Data_L_D3_0_rcv
   initialize        to Keep_inputs_left
   receive IO_L_D3
   set     IO_L_D3   to "0"
end vector

vector   Data_L_D3_1_rcv
   initialize        to Keep_inputs_left
   receive IO_L_D3
   set     IO_L_D3   to "1"
end vector

vector   W_R_lo_IO_R_D4
   initialize        to Keep_inputs_right
   drive IO_R_D4
   set   IO_R_D4     to "k"
   set   RW_R        to "0"
end vector

vector   W_R_hi_IO_R_D4
   initialize        to Keep_inputs_right
   drive IO_R_D4
   set   IO_R_D4     to "k"
   set   RW_R        to "1"
end vector

vector   W_L_lo_IO_L_D4
   initialize        to Keep_inputs_left
   drive IO_L_D4
   set   IO_L_D4     to "k"
   set   RW_L        to "0"
end vector

vector   W_L_hi_IO_L_D4
   initialize        to Keep_inputs_left
   drive IO_L_D4
   set   IO_L_D4     to "k"
   set   RW_L        to "1"
end vector

vector   Data_R_D4_0_drive
   initialize        to Keep_inputs_right
   drive IO_R_D4
   set   IO_R_D4     to "0"
end vector

vector   Data_R_D4_1_drive
   initialize        to Keep_inputs_right
   drive IO_R_D4
   set   IO_R_D4     to "1"
end vector

vector   Data_R_D4_0_rcv
   initialize        to Keep_inputs_right
   receive IO_R_D4
   set     IO_R_D4   to "0"
end vector

vector   Data_R_D4_1_rcv
   initialize        to Keep_inputs_right
   receive IO_R_D4
   set     IO_R_D4   to "1"
end vector

vector   Data_L_D4_0_drive
   initialize        to Keep_inputs_left
   drive IO_L_D4
   set   IO_L_D4     to "0"
end vector

vector   Data_L_D4_1_drive
   initialize        to Keep_inputs_left
   drive IO_L_D4
   set   IO_L_D4     to "1"
end vector

vector   Data_L_D4_0_rcv
   initialize        to Keep_inputs_left
   receive IO_L_D4
   set     IO_L_D4   to "0"
end vector

vector   Data_L_D4_1_rcv
   initialize        to Keep_inputs_left
   receive IO_L_D4
   set     IO_L_D4   to "1"
end vector

vector   W_R_lo_IO_R_D5
   initialize        to Keep_inputs_right
   drive IO_R_D5
   set   IO_R_D5     to "k"
   set   RW_R        to "0"
end vector

vector   W_R_hi_IO_R_D5
   initialize        to Keep_inputs_right
   drive IO_R_D5
   set   IO_R_D5     to "k"
   set   RW_R        to "1"
end vector

vector   W_L_lo_IO_L_D5
   initialize        to Keep_inputs_left
   drive IO_L_D5
   set   IO_L_D5     to "k"
   set   RW_L        to "0"
end vector

vector   W_L_hi_IO_L_D5
   initialize        to Keep_inputs_left
   drive IO_L_D5
   set   IO_L_D5     to "k"
   set   RW_L        to "1"
end vector

vector   Data_R_D5_0_drive
   initialize        to Keep_inputs_right
   drive IO_R_D5
   set   IO_R_D5     to "0"
end vector

vector   Data_R_D5_1_drive
   initialize        to Keep_inputs_right
   drive IO_R_D5
   set   IO_R_D5     to "1"
end vector

vector   Data_R_D5_0_rcv
   initialize        to Keep_inputs_right
   receive IO_R_D5
   set     IO_R_D5   to "0"
end vector

vector   Data_R_D5_1_rcv
   initialize        to Keep_inputs_right
   receive IO_R_D5
   set     IO_R_D5   to "1"
end vector

vector   Data_L_D5_0_drive
   initialize        to Keep_inputs_left
   drive IO_L_D5
   set   IO_L_D5     to "0"
end vector

vector   Data_L_D5_1_drive
   initialize        to Keep_inputs_left
   drive IO_L_D5
   set   IO_L_D5     to "1"
end vector

vector   Data_L_D5_0_rcv
   initialize        to Keep_inputs_left
   receive IO_L_D5
   set     IO_L_D5   to "0"
end vector

vector   Data_L_D5_1_rcv
   initialize        to Keep_inputs_left
   receive IO_L_D5
   set     IO_L_D5   to "1"
end vector

vector   W_R_lo_IO_R_D6
   initialize        to Keep_inputs_right
   drive IO_R_D6
   set   IO_R_D6     to "k"
   set   RW_R        to "0"
end vector

vector   W_R_hi_IO_R_D6
   initialize        to Keep_inputs_right
   drive IO_R_D6
   set   IO_R_D6     to "k"
   set   RW_R        to "1"
end vector

vector   W_L_lo_IO_L_D6
   initialize        to Keep_inputs_left
   drive IO_L_D6
   set   IO_L_D6     to "k"
   set   RW_L        to "0"
end vector

vector   W_L_hi_IO_L_D6
   initialize        to Keep_inputs_left
   drive IO_L_D6
   set   IO_L_D6     to "k"
   set   RW_L        to "1"
end vector

vector   Data_R_D6_0_drive
   initialize        to Keep_inputs_right
   drive IO_R_D6
   set   IO_R_D6     to "0"
end vector

vector   Data_R_D6_1_drive
   initialize        to Keep_inputs_right
   drive IO_R_D6
   set   IO_R_D6     to "1"
end vector

vector   Data_R_D6_0_rcv
   initialize        to Keep_inputs_right
   receive IO_R_D6
   set     IO_R_D6   to "0"
end vector

vector   Data_R_D6_1_rcv
   initialize        to Keep_inputs_right
   receive IO_R_D6
   set     IO_R_D6   to "1"
end vector

vector   Data_L_D6_0_drive
   initialize        to Keep_inputs_left
   drive IO_L_D6
   set   IO_L_D6     to "0"
end vector

vector   Data_L_D6_1_drive
   initialize        to Keep_inputs_left
   drive IO_L_D6
   set   IO_L_D6     to "1"
end vector

vector   Data_L_D6_0_rcv
   initialize        to Keep_inputs_left
   receive IO_L_D6
   set     IO_L_D6   to "0"
end vector

vector   Data_L_D6_1_rcv
   initialize        to Keep_inputs_left
   receive IO_L_D6
   set     IO_L_D6   to "1"
end vector

vector   W_R_lo_IO_R_D7
   initialize        to Keep_inputs_right
   drive IO_R_D7
   set   IO_R_D7     to "k"
   set   RW_R        to "0"
end vector

vector   W_R_hi_IO_R_D7
   initialize        to Keep_inputs_right
   drive IO_R_D7
   set   IO_R_D7     to "k"
   set   RW_R        to "1"
end vector

vector   W_L_lo_IO_L_D7
   initialize        to Keep_inputs_left
   drive IO_L_D7
   set   IO_L_D7     to "k"
   set   RW_L        to "0"
end vector

vector   W_L_hi_IO_L_D7
   initialize        to Keep_inputs_left
   drive IO_L_D7
   set   IO_L_D7     to "k"
   set   RW_L        to "1"
end vector

vector   Data_R_D7_0_drive
   initialize        to Keep_inputs_right
   drive IO_R_D7
   set   IO_R_D7     to "0"
end vector

vector   Data_R_D7_1_drive
   initialize        to Keep_inputs_right
   drive IO_R_D7
   set   IO_R_D7     to "1"
end vector

vector   Data_R_D7_0_rcv
   initialize        to Keep_inputs_right
   receive IO_R_D7
   set     IO_R_D7   to "0"
end vector

vector   Data_R_D7_1_rcv
   initialize        to Keep_inputs_right
   receive IO_R_D7
   set     IO_R_D7   to "1"
end vector

vector   Data_L_D7_0_drive
   initialize        to Keep_inputs_left
   drive IO_L_D7
   set   IO_L_D7     to "0"
end vector

vector   Data_L_D7_1_drive
   initialize        to Keep_inputs_left
   drive IO_L_D7
   set   IO_L_D7     to "1"
end vector

vector   Data_L_D7_0_rcv
   initialize        to Keep_inputs_left
   receive IO_L_D7
   set     IO_L_D7   to "0"
end vector

vector   Data_L_D7_1_rcv
   initialize        to Keep_inputs_left
   receive IO_L_D7
   set     IO_L_D7   to "1"
end vector


!***************************************************************
!*******************  subroutine section  **********************
!***************************************************************

sub Read_cycle_Right (Address, Data_Out)
   execute Address
   execute Data_Out
end sub

sub Write_cycle_Right (Address, Data_In)
   execute Address
   execute Data_In
   execute Write_Right_true
   execute End_write_cycle_Right
end sub

sub Read_cycle_Left (Address, Data_Out)
   execute Address
   execute Data_Out
end sub

sub Write_cycle_Left (Address, Data_In)
   execute Address
   execute Data_In
   execute Write_Left_true
   execute End_write_cycle_Left
end sub

!AT The following subroutines have been added for a minimum pins test.
!AT Vectors in the subroutine "Write_Cycle" reference the entire data bus.
!AT Therefore this subroutine was copied and modified to reference only
!AT a single pin of the data bus. The subroutine "Read_Cycle" did not
!AT require any modification as all references to the data bus are made
!AT via a passed parameter (data). This reference can be modified in the
!AT call statement.

sub Write_cycle_Right_Dx (Address, Data_In_Dx, W_R_lo_IO_R_Dx, W_R_hi_IO_R_Dx)
   execute Address
   execute Data_In_Dx
   execute W_R_lo_IO_R_Dx
   execute W_R_hi_IO_R_Dx
end sub

sub Write_cycle_Left_Dx (Address, Data_In_Dx, W_L_lo_IO_L_Dx, W_L_hi_IO_L_Dx)
   execute Address
   execute Data_In_Dx
   execute W_L_lo_IO_L_Dx
   execute W_L_hi_IO_L_Dx
end sub

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

!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 Left D0 Test"

   execute Set_Up_Left

   call Write_cycle_Left_Dx (Address_L_11111111111, Data_L_D0_0_drive, W_L_lo_IO_L_D0, W_L_hi_IO_L_D0)
   call Read_cycle_Left  (Address_L_11111111111, Data_L_D0_0_rcv)

   call Write_cycle_Left_Dx (Address_L_11111111111, Data_L_D0_1_drive, W_L_lo_IO_L_D0, W_L_hi_IO_L_D0)
   call Read_cycle_Left  (Address_L_11111111111, Data_L_D0_1_rcv)

end unit

unit   "awaretest Left D1 Test"

   execute Set_Up_Left

   call Write_cycle_Left_Dx (Address_L_11111111111, Data_L_D1_0_drive, W_L_lo_IO_L_D1, W_L_hi_IO_L_D1)
   call Read_cycle_Left  (Address_L_11111111111, Data_L_D1_0_rcv)

   call Write_cycle_Left_Dx (Address_L_11111111111, Data_L_D1_1_drive, W_L_lo_IO_L_D1, W_L_hi_IO_L_D1)
   call Read_cycle_Left  (Address_L_11111111111, Data_L_D1_1_rcv)

end unit

unit   "awaretest Left D2 Test"

   execute Set_Up_Left

   call Write_cycle_Left_Dx (Address_L_11111111111, Data_L_D2_0_drive, W_L_lo_IO_L_D2, W_L_hi_IO_L_D2)
   call Read_cycle_Left  (Address_L_11111111111, Data_L_D2_0_rcv)

   call Write_cycle_Left_Dx (Address_L_11111111111, Data_L_D2_1_drive, W_L_lo_IO_L_D2, W_L_hi_IO_L_D2)
   call Read_cycle_Left  (Address_L_11111111111, Data_L_D2_1_rcv)

end unit

unit   "awaretest Left D3 Test"

   execute Set_Up_Left

   call Write_cycle_Left_Dx (Address_L_11111111111, Data_L_D3_0_drive, W_L_lo_IO_L_D3, W_L_hi_IO_L_D3)
   call Read_cycle_Left  (Address_L_11111111111, Data_L_D3_0_rcv)

   call Write_cycle_Left_Dx (Address_L_11111111111, Data_L_D3_1_drive, W_L_lo_IO_L_D3, W_L_hi_IO_L_D3)
   call Read_cycle_Left  (Address_L_11111111111, Data_L_D3_1_rcv)

end unit

unit   "awaretest Left D4 Test"

   execute Set_Up_Left

   call Write_cycle_Left_Dx (Address_L_11111111111, Data_L_D4_0_drive, W_L_lo_IO_L_D4, W_L_hi_IO_L_D4)
   call Read_cycle_Left  (Address_L_11111111111, Data_L_D4_0_rcv)

   call Write_cycle_Left_Dx (Address_L_11111111111, Data_L_D4_1_drive, W_L_lo_IO_L_D4, W_L_hi_IO_L_D4)
   call Read_cycle_Left  (Address_L_11111111111, Data_L_D4_1_rcv)

end unit

unit   "awaretest Left D5 Test"

   execute Set_Up_Left

   call Write_cycle_Left_Dx (Address_L_11111111111, Data_L_D5_0_drive, W_L_lo_IO_L_D5, W_L_hi_IO_L_D5)
   call Read_cycle_Left  (Address_L_11111111111, Data_L_D5_0_rcv)

   call Write_cycle_Left_Dx (Address_L_11111111111, Data_L_D5_1_drive, W_L_lo_IO_L_D5, W_L_hi_IO_L_D5)
   call Read_cycle_Left  (Address_L_11111111111, Data_L_D5_1_rcv)

end unit

unit   "awaretest Left D6 Test"

   execute Set_Up_Left

   call Write_cycle_Left_Dx (Address_L_11111111111, Data_L_D6_0_drive, W_L_lo_IO_L_D6, W_L_hi_IO_L_D6)
   call Read_cycle_Left  (Address_L_11111111111, Data_L_D6_0_rcv)

   call Write_cycle_Left_Dx (Address_L_11111111111, Data_L_D6_1_drive, W_L_lo_IO_L_D6, W_L_hi_IO_L_D6)
   call Read_cycle_Left  (Address_L_11111111111, Data_L_D6_1_rcv)

end unit

unit   "awaretest Left D7 Test"

   execute Set_Up_Left

   call Write_cycle_Left_Dx (Address_L_11111111111, Data_L_D7_0_drive, W_L_lo_IO_L_D7, W_L_hi_IO_L_D7)
   call Read_cycle_Left  (Address_L_11111111111, Data_L_D7_0_rcv)

   call Write_cycle_Left_Dx (Address_L_11111111111, Data_L_D7_1_drive, W_L_lo_IO_L_D7, W_L_hi_IO_L_D7)
   call Read_cycle_Left  (Address_L_11111111111, Data_L_D7_1_rcv)

end unit

unit   "awaretest Right D0 Test"

   execute Set_Up_Right

   call Write_cycle_Right_Dx (Address_R_00000000000, Data_R_D0_0_drive, W_R_lo_IO_R_D0, W_R_hi_IO_R_D0)
   call Read_cycle_Right  (Address_R_00000000000, Data_R_D0_0_rcv)

   call Write_cycle_Right_Dx (Address_R_00000000000, Data_R_D0_1_drive, W_R_lo_IO_R_D0, W_R_hi_IO_R_D0)
   call Read_cycle_Right  (Address_R_00000000000, Data_R_D0_1_rcv)

end unit

unit   "awaretest Right D1 Test"

   execute Set_Up_Right

   call Write_cycle_Right_Dx (Address_R_00000000000, Data_R_D1_0_drive, W_R_lo_IO_R_D1, W_R_hi_IO_R_D1)
   call Read_cycle_Right  (Address_R_00000000000, Data_R_D1_0_rcv)

   call Write_cycle_Right_Dx (Address_R_00000000000, Data_R_D1_1_drive, W_R_lo_IO_R_D1, W_R_hi_IO_R_D1)
   call Read_cycle_Right  (Address_R_00000000000, Data_R_D1_1_rcv)

end unit

unit   "awaretest Right D2 Test"

   execute Set_Up_Right

   call Write_cycle_Right_Dx (Address_R_00000000000, Data_R_D2_0_drive, W_R_lo_IO_R_D2, W_R_hi_IO_R_D2)
   call Read_cycle_Right  (Address_R_00000000000, Data_R_D2_0_rcv)

   call Write_cycle_Right_Dx (Address_R_00000000000, Data_R_D2_1_drive, W_R_lo_IO_R_D2, W_R_hi_IO_R_D2)
   call Read_cycle_Right  (Address_R_00000000000, Data_R_D2_1_rcv)

end unit

unit   "awaretest Right D3 Test"

   execute Set_Up_Right

   call Write_cycle_Right_Dx (Address_R_00000000000, Data_R_D3_0_drive, W_R_lo_IO_R_D3, W_R_hi_IO_R_D3)
   call Read_cycle_Right  (Address_R_00000000000, Data_R_D3_0_rcv)

   call Write_cycle_Right_Dx (Address_R_00000000000, Data_R_D3_1_drive, W_R_lo_IO_R_D3, W_R_hi_IO_R_D3)
   call Read_cycle_Right  (Address_R_00000000000, Data_R_D3_1_rcv)

end unit

unit   "awaretest Right D4 Test"

   execute Set_Up_Right

   call Write_cycle_Right_Dx (Address_R_00000000000, Data_R_D4_0_drive, W_R_lo_IO_R_D4, W_R_hi_IO_R_D4)
   call Read_cycle_Right  (Address_R_00000000000, Data_R_D4_0_rcv)

   call Write_cycle_Right_Dx (Address_R_00000000000, Data_R_D4_1_drive, W_R_lo_IO_R_D4, W_R_hi_IO_R_D4)
   call Read_cycle_Right  (Address_R_00000000000, Data_R_D4_1_rcv)

end unit

unit   "awaretest Right D5 Test"

   execute Set_Up_Right

   call Write_cycle_Right_Dx (Address_R_00000000000, Data_R_D5_0_drive, W_R_lo_IO_R_D5, W_R_hi_IO_R_D5)
   call Read_cycle_Right  (Address_R_00000000000, Data_R_D5_0_rcv)

   call Write_cycle_Right_Dx (Address_R_00000000000, Data_R_D5_1_drive, W_R_lo_IO_R_D5, W_R_hi_IO_R_D5)
   call Read_cycle_Right  (Address_R_00000000000, Data_R_D5_1_rcv)

end unit

unit   "awaretest Right D6 Test"

   execute Set_Up_Right

   call Write_cycle_Right_Dx (Address_R_00000000000, Data_R_D6_0_drive, W_R_lo_IO_R_D6, W_R_hi_IO_R_D6)
   call Read_cycle_Right  (Address_R_00000000000, Data_R_D6_0_rcv)

   call Write_cycle_Right_Dx (Address_R_00000000000, Data_R_D6_1_drive, W_R_lo_IO_R_D6, W_R_hi_IO_R_D6)
   call Read_cycle_Right  (Address_R_00000000000, Data_R_D6_1_rcv)

end unit

unit   "awaretest Right D7 Test"

   execute Set_Up_Right

   call Write_cycle_Right_Dx (Address_R_00000000000, Data_R_D7_0_drive, W_R_lo_IO_R_D7, W_R_hi_IO_R_D7)
   call Read_cycle_Right  (Address_R_00000000000, Data_R_D7_0_rcv)

   call Write_cycle_Right_Dx (Address_R_00000000000, Data_R_D7_1_drive, W_R_lo_IO_R_D7, W_R_hi_IO_R_D7)
   call Read_cycle_Right  (Address_R_00000000000, Data_R_D7_1_rcv)

end unit

   ! TEST CONCEPT:
   ! Use a 'walking-one' to access several RAM addresses on Right side.
   ! Write a 55 to those addresses.
   ! Read each address and re-write an AA.
   !  Use a 'walking-zero' to access several RAM addresses on the Left side.
   !  Write an AA to those addresses.
   !  Read each address and re-write a 55.
   !   From the Left side read the AA's re-written via the Right side.
   !   From the Right side, read the 55's re-written via the Left side.
   ! Note that the walking ones and zeros traverse Row and Column address.

unit "Test Left RAM"
   execute Set_Up_Left
   call Write_cycle_Left (Address_L_11111111111, Data_L_AA_drive)
   call Write_cycle_Left (Address_L_11111111110, Data_L_AA_drive)
   call Write_cycle_Left (Address_L_11111111101, Data_L_AA_drive)
   call Write_cycle_Left (Address_L_11111111011, Data_L_AA_drive)
   call Write_cycle_Left (Address_L_11111110111, Data_L_AA_drive)
   call Write_cycle_Left (Address_L_11111101111, Data_L_AA_drive)
   call Write_cycle_Left (Address_L_11111011111, Data_L_AA_drive)
   call Write_cycle_Left (Address_L_11110111111, Data_L_AA_drive)
   call Write_cycle_Left (Address_L_11101111111, Data_L_AA_drive)
   call Write_cycle_Left (Address_L_11011111111, Data_L_AA_drive)
   call Write_cycle_Left (Address_L_10111111111, Data_L_AA_drive)
   call Write_cycle_Left (Address_L_01111111111, Data_L_AA_drive)

   call Read_cycle_Left  (Address_L_11111111111, Data_L_AA_rcv)
   call Write_cycle_Left (Address_L_11111111111, Data_L_55_drive)

   call Read_cycle_Left  (Address_L_11111111110, Data_L_AA_rcv)
   call Write_cycle_Left (Address_L_11111111110, Data_L_55_drive)

   call Read_cycle_Left  (Address_L_11111111101, Data_L_AA_rcv)
   call Write_cycle_Left (Address_L_11111111101, Data_L_55_drive)

   call Read_cycle_Left  (Address_L_11111111011, Data_L_AA_rcv)
   call Write_cycle_Left (Address_L_11111111011, Data_L_55_drive)

   call Read_cycle_Left  (Address_L_11111110111, Data_L_AA_rcv)
   call Write_cycle_Left (Address_L_11111110111, Data_L_55_drive)

   call Read_cycle_Left  (Address_L_11111101111, Data_L_AA_rcv)
   call Write_cycle_Left (Address_L_11111101111, Data_L_55_drive)

   call Read_cycle_Left  (Address_L_11111011111, Data_L_AA_rcv)
   call Write_cycle_Left (Address_L_11111011111, Data_L_55_drive)

   call Read_cycle_Left  (Address_L_11110111111, Data_L_AA_rcv)
   call Write_cycle_Left (Address_L_11110111111, Data_L_55_drive)

   call Read_cycle_Left  (Address_L_11101111111, Data_L_AA_rcv)
   call Write_cycle_Left (Address_L_11101111111, Data_L_55_drive)

   call Read_cycle_Left  (Address_L_11011111111, Data_L_AA_rcv)
   call Write_cycle_Left (Address_L_11011111111, Data_L_55_drive)

   call Read_cycle_Left  (Address_L_10111111111, Data_L_AA_rcv)
   call Write_cycle_Left (Address_L_10111111111, Data_L_55_drive)

   call Read_cycle_Left  (Address_L_01111111111, Data_L_AA_rcv)
   call Write_cycle_Left (Address_L_01111111111, Data_L_55_drive)

   call Read_cycle_Left (Address_L_11111111111, Data_L_55_rcv)
   call Read_cycle_Left (Address_L_11111111110, Data_L_55_rcv)
   call Read_cycle_Left (Address_L_11111111101, Data_L_55_rcv)
   call Read_cycle_Left (Address_L_11111111011, Data_L_55_rcv)
   call Read_cycle_Left (Address_L_11111110111, Data_L_55_rcv)
   call Read_cycle_Left (Address_L_11111101111, Data_L_55_rcv)
   call Read_cycle_Left (Address_L_11111011111, Data_L_55_rcv)
   call Read_cycle_Left (Address_L_11110111111, Data_L_55_rcv)
   call Read_cycle_Left (Address_L_11101111111, Data_L_55_rcv)
   call Read_cycle_Left (Address_L_11011111111, Data_L_55_rcv)
   call Read_cycle_Left (Address_L_10111111111, Data_L_55_rcv)
   call Read_cycle_Left (Address_L_01111111111, Data_L_55_rcv)
end unit

unit  "Test Right RAM"
   execute Set_up_Right
   call Write_cycle_Right (Address_R_00000000000, Data_R_55_drive)
   call Write_cycle_Right (Address_R_00000000001, Data_R_55_drive)
   call Write_cycle_Right (Address_R_00000000010, Data_R_55_drive)
   call Write_cycle_Right (Address_R_00000000100, Data_R_55_drive)
   call Write_cycle_Right (Address_R_00000001000, Data_R_55_drive)
   call Write_cycle_Right (Address_R_00000010000, Data_R_55_drive)
   call Write_cycle_Right (Address_R_00000100000, Data_R_55_drive)
   call Write_cycle_Right (Address_R_00001000000, Data_R_55_drive)
   call Write_cycle_Right (Address_R_00010000000, Data_R_55_drive)
   call Write_cycle_Right (Address_R_00100000000, Data_R_55_drive)
   call Write_cycle_Right (Address_R_01000000000, Data_R_55_drive)
   call Write_cycle_Right (Address_R_10000000000, Data_R_55_drive)

   call Read_cycle_Right  (Address_R_00000000000, Data_R_55_rcv)
   call Write_cycle_Right (Address_R_00000000000, Data_R_AA_drive)

   call Read_cycle_Right  (Address_R_00000000001, Data_R_55_rcv)
   call Write_cycle_Right (Address_R_00000000001, Data_R_AA_drive)

   call Read_cycle_Right  (Address_R_00000000010, Data_R_55_rcv)
   call Write_cycle_Right (Address_R_00000000010, Data_R_AA_drive)

   call Read_cycle_Right  (Address_R_00000000100, Data_R_55_rcv)
   call Write_cycle_Right (Address_R_00000000100, Data_R_AA_drive)

   call Read_cycle_Right  (Address_R_00000001000, Data_R_55_rcv)
   call Write_cycle_Right (Address_R_00000001000, Data_R_AA_drive)

   call Read_cycle_Right  (Address_R_00000010000, Data_R_55_rcv)
   call Write_cycle_Right (Address_R_00000010000, Data_R_AA_drive)

   call Read_cycle_Right  (Address_R_00000100000, Data_R_55_rcv)
   call Write_cycle_Right (Address_R_00000100000, Data_R_AA_drive)

   call Read_cycle_Right  (Address_R_00001000000, Data_R_55_rcv)
   call Write_cycle_Right (Address_R_00001000000, Data_R_AA_drive)

   call Read_cycle_Right  (Address_R_00010000000, Data_R_55_rcv)
   call Write_cycle_Right (Address_R_00010000000, Data_R_AA_drive)

   call Read_cycle_Right  (Address_R_00100000000, Data_R_55_rcv)
   call Write_cycle_Right (Address_R_00100000000, Data_R_AA_drive)

   call Read_cycle_Right  (Address_R_01000000000, Data_R_55_rcv)
   call Write_cycle_Right (Address_R_01000000000, Data_R_AA_drive)

   call Read_cycle_Right  (Address_R_10000000000, Data_R_55_rcv)
   call Write_cycle_Right (Address_R_10000000000, Data_R_AA_drive)

   call Read_cycle_Right  (Address_R_00000000000, Data_R_AA_rcv)
   call Read_cycle_Right  (Address_R_00000000001, Data_R_AA_rcv)
   call Read_cycle_Right  (Address_R_00000000010, Data_R_AA_rcv)
   call Read_cycle_Right  (Address_R_00000000100, Data_R_AA_rcv)
   call Read_cycle_Right  (Address_R_00000001000, Data_R_AA_rcv)
   call Read_cycle_Right  (Address_R_00000010000, Data_R_AA_rcv)
   call Read_cycle_Right  (Address_R_00000100000, Data_R_AA_rcv)
   call Read_cycle_Right  (Address_R_00001000000, Data_R_AA_rcv)
   call Read_cycle_Right  (Address_R_00010000000, Data_R_AA_rcv)
   call Read_cycle_Right  (Address_R_00100000000, Data_R_AA_rcv)
   call Read_cycle_Right  (Address_R_01000000000, Data_R_AA_rcv)
   call Read_cycle_Right  (Address_R_10000000000, Data_R_AA_rcv)
end   unit

unit "Test Left RAM Chip Select"
   execute Set_Up_Left
   call Write_cycle_Left (Address_L_11111111111, Data_L_AA_drive)

   execute CE_Left_False
   call Write_cycle_Left (Address_L_11111111111, Data_L_55_drive)
   execute CE_Left_True

   call Read_cycle_Left  (Address_L_11111111111, Data_L_AA_rcv)
end unit

unit "Test Right RAM Chip Select"
   execute Set_Up_Right
   call Write_cycle_Right (Address_R_00000000000, Data_R_AA_drive)

   execute CE_Right_False
   call Write_cycle_Right (Address_R_00000000000, Data_R_55_drive)
   execute CE_Right_True

   call Read_cycle_Right  (Address_R_00000000000, Data_R_AA_rcv)
end unit

unit "test BUSY"
   execute Set_Up_Right
   execute Busy_Left_False
   execute Busy_Left_True

   execute Set_Up_Left
   execute Busy_Right_False
   execute Busy_Right_True
end unit

unit "Test Left RAM OE"
   execute Set_Up_Left
   call Write_cycle_Left (Address_L_11111111111, Data_L_55_drive)
   call Read_cycle_Left  (Address_L_11111111111, Data_L_55_rcv)
   execute OE_Left_False
   homingloop 3 times
     execute Data_L_XF_rcv  exit if pass
   end homingloop
end unit

unit "Test Right RAM OE"
   execute Set_Up_Right
   call Write_cycle_Right (Address_R_00000000000, Data_R_55_drive)
   call Read_cycle_Right  (Address_R_00000000000, Data_R_55_rcv)
   execute OE_Right_False
   homingloop 3 times
      execute Data_R_XF_rcv exit if pass
   end homingloop
end unit

!End of test



