!!!!    6    0    1  989956177  Vfb55                                         

! Device           : 8755
! Function         : 16,384-Bit EPROM with I_O
! revision         : B.01.00
! safeguard        : med_out_mos
! Modifications    : Modified for AwareTest xi
!
  warning           "This library has not been verified with hardware."

sequential

vector cycle 400n
receive delay 300n

assign    VCC            to pins   40
assign    VDD            to pins   5
assign    GND            to pins   20

assign    Addr_bus       to pins   23,22,21,19,18,17,16,15
assign    Addr_bus       to pins   14,13,12
assign    Data_bus       to pins   19,18,17,16,15,14,13,12

assign    Port_select    to pins   13,12

assign    ALE            to pins   11

assign    Chip_enable    to pins   2
assign    Chip_enable_bar to pins  1

assign    IO_M_bar       to pins   7
assign    Read_bar       to pins   9
assign    IO_Read_bar    to pins   8
assign    IO_Write_bar   to pins   10

assign    Clock          to pins   3

assign    Ready          to pins   6

assign    Port_A         to pins   31,30,29,28,27,26,25,24
assign    Port_B         to pins   39,38,37,36,35,34,33,32
assign    Ports          to pins   31,30,29,28,27,26,25,24
assign    Ports          to pins   39,38,37
assign    Ports          to pins   36,35,34,33,32

assign    Reset          to pins   4

assign    Disable_pins_1  to pins   1,2,3
assign    Disable_pins_2  to pins   4,3
assign    Disable_pins_3  to pins   7,9,3
assign    Disable_pins_4  to pins   8,3

family    TTL

format    hexadecimal Addr_bus, Data_bus, Port_A, Port_B,Ports

power     VCC, VDD, GND

bidirectional    Port_A, Port_B, Ports,Data_bus,Addr_bus,Port_select

inputs    ALE,  Clock, Reset
inputs    IO_M_bar, IO_Write_bar, IO_Read_bar, Read_bar
inputs    Chip_enable, Chip_enable_bar

outputs   Ready

when     Chip_enable       is "0"   inactive    Data_bus
when     Chip_enable_bar   is "1"   inactive    Data_bus
when     IO_Write_bar      is "0"   inputs      Data_bus
when     IO_Read_bar       is "0"   outputs     Data_bus

trace    Data_bus  to  ALE,  Clock, Reset,Read_bar,Port_A,Port_B
trace    Data_bus  to  IO_M_bar, IO_Write_bar, IO_Read_bar
trace    Data_bus  to  Chip_enable, Chip_enable_bar,Addr_bus

trace    Addr_bus  to  ALE,  Clock, Reset,Read_bar,Data_bus
trace    Addr_bus  to  IO_M_bar, IO_Write_bar, IO_Read_bar
trace    Addr_bus  to  Chip_enable, Chip_enable_bar,Addr_bus

trace    Ready     to  ALE,  Clock, Reset,Read_bar
trace    Ready     to  IO_M_bar, IO_Write_bar, IO_Read_bar
trace    Ready     to  Chip_enable, Chip_enable_bar

trace    Port_A    to  ALE,  Clock, Reset,Read_bar,Data_bus
trace    Port_A    to  IO_M_bar, IO_Write_bar, IO_Read_bar
trace    Port_A    to  Chip_enable, Chip_enable_bar,Addr_bus

trace    Port_B    to  ALE,  Clock, Reset,Read_bar,Data_bus
trace    Port_B    to  IO_M_bar, IO_Write_bar, IO_Read_bar
trace    Port_B    to  Chip_enable, Chip_enable_bar,Addr_bus

disable   Data_bus       with  Disable_pins_1    to   "10T"  10 times
disable   Addr_bus       with  Disable_pins_1    to   "10T"  10 times
disable   Ready          with  Disable_pins_1    to   "10T"  10 times
disable   Ports          with  Disable_pins_1    to   "10T"  10 times
disable   Ports          with  Disable_pins_2    to   "1T"   10 times
disable   Ports          with  Disable_pins_3    to   "10T"  10 times
disable   Ports          with  Disable_pins_4    to   "0T"  10 times

!***************************************************************
!***************************************************************
!***************************************************************
vector    Normal_operation
   set    Chip_enable             to "1"
   set    Chip_enable_bar         to "0"
   set    ALE                     to "0"
   set    IO_M_bar                to "0"
   set    Read_bar                to "1"
   set    IO_Read_bar             to "1"
   set    IO_Write_bar            to "1"
   set    Clock                   to "1"
   set    Reset                   to "0"
end vector

vector    Keep_on_Control_lines
   set    Chip_enable             to "K"
   set    Chip_enable_bar         to "K"
   set    ALE                     to "K"
   set    IO_M_bar                to "K"
   set    Read_bar                to "K"
   set    IO_Read_bar             to "K"
   set    IO_Write_bar            to "K"
   set    Clock                   to "K"
   set    Reset                   to "K"
end vector

vector    Keep_on_AD1_2_lines
   drive  Port_select
   set    Chip_enable             to "K"
   set    Chip_enable_bar         to "K"
   set    ALE                     to "K"
   set    IO_M_bar                to "K"
   set    Read_bar                to "K"
   set    IO_Read_bar             to "K"
   set    IO_Write_bar            to "K"
   set    Clock                   to "K"
   set    Reset                   to "K"
   set    Port_select             to "KK"
end vector

vector    Keep_on_Data_lines
   drive  Data_bus
   set    Chip_enable             to "K"
   set    Chip_enable_bar         to "K"
   set    ALE                     to "K"
   set    IO_M_bar                to "K"
   set    Read_bar                to "K"
   set    IO_Read_bar             to "K"
   set    IO_Write_bar            to "K"
   set    Clock                   to "K"
   set    Reset                   to "K"
   set    Data_bus                to "KK"
end vector

vector    Keep_on_Addr_lines
   drive  Addr_bus
   set    Chip_enable             to "K"
   set    Chip_enable_bar         to "K"
   set    ALE                     to "K"
   set    IO_M_bar                to "K"
   set    Read_bar                to "K"
   set    IO_Read_bar             to "K"
   set    IO_Write_bar            to "K"
   set    Clock                   to "K"
   set    Reset                   to "K"
   set    Addr_bus                to "KKK"
end vector


vector    Keep_on_Port_A
   drive  Port_A
   set    Chip_enable             to "K"
   set    Chip_enable_bar         to "K"
   set    ALE                     to "K"
   set    IO_M_bar                to "K"
   set    Read_bar                to "K"
   set    IO_Read_bar             to "K"
   set    IO_Write_bar            to "K"
   set    Clock                   to "K"
   set    Reset                   to "K"
   set    Port_A                  to  "KK"
end vector

vector    Keep_on_Port_B
   drive  Port_B
   set    Chip_enable             to "K"
   set    Chip_enable_bar         to "K"
   set    ALE                     to "K"
   set    IO_M_bar                to "K"
   set    ReAd_bar                to "K"
   set    IO_Read_bar             to "K"
   set    IO_Write_bar            to "K"
   set    Clock                   to "K"
   set    Reset                   to "K"
   set    Port_B                  to  "KK"
end vector


vector    Clock_low
   initialize to Keep_on_control_lines
   set    Clock                   to "0"
end vector

vector    Clock_high
   initialize to Keep_on_control_lines
   set    Clock                   to "1"
end vector

vector    Clock_low_Keep_on_Data_lines
   initialize to Keep_on_Data_lines
   set    Clock                   to "0"
end vector

vector    Clock_high_Keep_on_Data_lines
   initialize to Keep_on_Data_lines
   set    Clock                   to "1"
end vector

vector    Clock_low_Keep_on_Addr_lines
   initialize to Keep_on_Addr_lines
   set    Clock                   to "0"
end vector

vector    Clock_high_Keep_on_Addr_lines
   initialize to Keep_on_Addr_lines
   set    Clock                   to "1"
end vector


vector    Clock_low_keep_on_AD1_2_lines
   initialize to Keep_on_AD1_2_lines
   set    Clock                   to "0"
end vector

vector    Clock_high_Keep_on_AD1_2_lines
   initialize to Keep_on_AD1_2_lines
   set    Clock                   to "1"
end vector


vector    Clock_low_Keep_on_Port_A
   initialize to Keep_on_Port_A
   set    Clock                   to "0"
end vector

vector    Clock_high_Keep_on_Port_A
   initialize to Keep_on_Port_A
   set    Clock                   to "1"
end vector

vector    Clock_low_Keep_on_Port_B
   initialize to Keep_on_Port_B
   set    Clock                   to "0"
end vector

vector    Clock_high_Keep_on_Port_B
   initialize to Keep_on_Port_B
   set    Clock                   to "1"
end vector


vector  Reset_low
   initialize to Keep_on_control_lines
   set    Reset                   to "0"
end vector

vector  Reset_high
   initialize to Keep_on_control_lines
   set    Reset                   to "1"
end vector


vector    Chip_enable_low
   initialize to Keep_on_control_lines
   set    Chip_enable             to "0"
end vector

vector    Chip_enable_high
   initialize to Keep_on_control_lines
   set    Chip_enable             to "1"
end vector

vector    Chip_enable_bar_low
   initialize to Keep_on_control_lines
   set    Chip_enable_bar          to "0"
end vector

vector    Chip_enable_bar_high
   initialize to Keep_on_control_lines
   set    Chip_enable_bar         to "1"
end vector


vector    Ready_low
   initialize to Keep_on_control_lines
   set    Ready                   to "0"
end vector

vector    Ready_high
   initialize to Keep_on_control_lines
   set    Ready                   to "1"
end vector

vector    ALE_low_Keep_on_Addr_lines
   initialize to Keep_on_Addr_lines
   set    ALE                     to "0"
end vector

vector    ALE_low
   initialize to Keep_on_Control_lines
   set    ALE                     to "0"
end vector


vector    ALE_low_keep_AD1_2_lines
   initialize to Keep_on_AD1_2_lines
   set    ALE                     to "0"
end vector

vector    ALE_high
   initialize to Keep_on_control_lines
   set    ALE                     to "1"
end vector

vector    Port_A_select
   initialize to Keep_on_control_lines
   drive  Port_select
   set    Port_select             to "00"
end vector


vector   Port_B_select
   initialize to Keep_on_control_lines
   drive  Port_select
   set    Port_select             to "01"
end vector

vector    Port_A_DDR_select
   initialize to Keep_on_control_lines
   drive  Port_select
   set    Port_select             to "10"
end vector

vector    Port_B_DDR_select
   initialize to Keep_on_control_lines
   drive  Port_select
   set    Port_select             to "11"
end vector


vector    IO_M_bar_low
   initialize to Keep_on_Control_lines
   set    IO_M_bar                to "0"
end vector

vector    IO_M_bar_high
   initialize to Keep_on_Control_lines
   set    IO_M_bar                to "1"
end vector


vector    IO_M_bar_low_Keep_on_Port_A
   initialize to Keep_on_Port_A
   set    IO_M_bar                to "0"
end vector


vector    IO_M_bar_high_keep_on_Port_A
   initialize to Keep_on_Port_A
   set    IO_M_bar                to "1"
end vector

vector    IO_M_bar_low_Keep_on_Port_B
   initialize to Keep_on_Port_B
   set    IO_M_bar                to "0"
end vector


vector    IO_M_bar_high_keep_on_Port_B
   initialize to Keep_on_Port_B
   set    IO_M_bar                to "1"
end vector


vector    Read_bar_high_Keep_on_Port_A
   initialize to Keep_on_Port_A
   set    Read_bar                to "1"
end vector



vector    Read_bar_low_Keep_on_Port_A
   initialize to Keep_on_Port_A
   set    Read_bar                to "0"
end vector


vector    Read_bar_high_Keep_on_Port_B
   initialize to Keep_on_Port_B
   set    Read_bar                to "1"
end vector



vector    Read_bar_low_Keep_on_Port_B
   initialize to Keep_on_Port_B
   set    Read_bar                to "0"
end vector

vector    Read_bar_high
   initialize to Keep_on_Control_lines
   set    Read_bar                to "1"
end vector

vector    Read_bar_low
   initialize to Keep_on_Control_lines
   set    Read_bar                to "0"
end vector


vector    IO_Write_bar_low
   initialize to Keep_on_Data_lines
   set    IO_Write_bar            to "0"
end vector


vector    IO_Write_bar_high
   initialize to Keep_on_Data_lines
   set    IO_Write_bar            to "1"
end vector

vector    IO_Read_bar_high_keep_on_Port_A
   initialize to Keep_on_Port_A
   set    IO_Read_bar             to "1"
end vector

vector    IO_Read_bar_low_keep_on_Port_A
   initialize to Keep_on_Port_A
   set    IO_Read_bar             to "0"
end vector


vector    IO_Read_bar_high_keep_on_Port_B
   initialize to Keep_on_Port_B
   set    IO_Read_bar             to "1"
end vector

vector    IO_Read_bar_low_keep_on_Port_B
   initialize to Keep_on_Port_B
   set    IO_Read_bar             to "0"
end vector

vector    Out_mode
   initialize to Keep_on_control_lines
   drive  Data_bus
   set    Data_bus           to "FF"
end vector

vector    Drive_data_55
   initialize to Keep_on_control_lines
   drive  Data_bus
   set    Data_bus           to "55"
end vector


vector    Drive_data_66
   initialize to Keep_on_control_lines
   drive  Data_bus
   set    Data_bus           to "66"
end vector

vector    Drive_data_99
   initialize to Keep_on_control_lines
   drive  Data_bus
   set    Data_bus           to "99"
end vector

vector    Drive_data_AA
   initialize to Keep_on_control_lines
   drive  Data_bus
   set    Data_bus           to "AA"
end vector

vector    Recv_data_55_from_A
   initialize to Keep_on_Port_A
   receive  Data_bus
   set    Data_bus           to "55"
end vector

vector    Recv_data_AA_from_A
   initialize to Keep_on_Port_A
   receive  Data_bus
   set    Data_bus           to "AA"
end vector


vector    Recv_data_55_from_B
   initialize to Keep_on_Port_B
   receive  Data_bus
   set    Data_bus           to "55"
end vector

vector    Recv_data_AA_from_B
   initialize to Keep_on_Port_B
   receive  Data_bus
   set    Data_bus           to "AA"
end vector



vector    Recv_Port_A_AA
   initialize to Keep_on_control_lines
   receive Port_A
   set    Port_A                  to "AA"
end vector


vector    Recv_Port_A_55
   initialize to Keep_on_control_lines
   receive Port_A
   set    Port_A                  to "55"
end vector


vector    Recv_Port_B_AA
   initialize to Keep_on_control_lines
   receive Port_B
   set    Port_B                  to "AA"
end vector


vector    Recv_Port_B_55
   initialize to Keep_on_control_lines
   receive Port_B
   set    Port_B                  to "55"
end vector

vector    Recv_Port_A_66
   initialize to Keep_on_control_lines
   receive Port_A
   set    Port_A                  to "66"
end vector


vector    Recv_Port_A_99
   initialize to Keep_on_control_lines
   receive Port_A
   set    Port_A                  to "99"
end vector


vector    Recv_Port_B_66
   initialize to Keep_on_control_lines
   receive Port_B
   set    Port_B                  to "66"
end vector


vector    Recv_Port_B_99
   initialize to Keep_on_control_lines
   receive Port_B
   set    Port_B                  to "99"
end vector


vector   Drive_Port_A_AA
   initialize to Keep_on_control_lines
   drive  Port_A
   set    Port_A                  to "AA"
end vector


vector    Drive_Port_A_55
   initialize to Keep_on_control_lines
   drive Port_A
   set    Port_A                  to "55"
end vector


vector    Drive_Port_B_AA
   initialize to Keep_on_control_lines
   drive Port_B
   set    Port_B                  to "AA"
end vector


vector    Drive_Port_B_55
   initialize to Keep_on_control_lines
   drive Port_B
   set    Port_B                  to "55"
end vector


vector    Data_keeps
   initialize to Keep_on_control_lines
   receive  Data_bus
   set    Data_bus           to "KK"
end vector

vector    Address_counter
   drive Addr_bus
   set  Addr_bus            to   "000"
   upcounter         Addr_bus
end vector

vector    Address_counter_2
   drive Addr_bus
   set  Addr_bus         to   "500"
   upcounter         Addr_bus
end vector

!***************************************************************
!***************************************************************
!***************************************************************
sub   Initialize_device
   execute Normal_operation
   execute Reset_high
   repeat 2  times
      execute Clock_low
      execute Clock_high
   end repeat
   execute Reset_low
end sub


sub   IO_writing(Port_X_select,Drive_Data_XX, Recv_Port_X_XX)

   execute ALE_high
   execute Port_X_select
   execute Clock_low_Keep_on_AD1_2_lines
   execute Clock_high_Keep_on_AD1_2_lines
   execute ALE_low_keep_AD1_2_lines
   execute Clock_low_Keep_on_AD1_2_lines
   execute Clock_high_Keep_on_AD1_2_lines
   execute Drive_Data_XX
   execute Clock_low_Keep_on_Data_lines
   execute Clock_high_Keep_on_Data_lines
   execute IO_Write_bar_low

   repeat  2  times
   execute Clock_low_Keep_on_Data_lines
   execute Clock_high_Keep_on_Data_lines
   end repeat

   execute IO_Write_bar_high

   repeat 2 times
   execute Clock_low_Keep_on_Data_lines
   execute Clock_high_Keep_on_Data_lines
   end repeat

   execute Recv_Port_X_XX
end sub

sub   Port_A_reading(Port_X_select, Drive_Port_X_XX, Recv_Data_XX)

   execute ALE_high
   execute Port_X_select
   execute Clock_low_Keep_on_AD1_2_lines
   execute Clock_high_Keep_on_AD1_2_lines
   execute ALE_low_keep_AD1_2_lines
   execute Clock_low_Keep_on_AD1_2_lines
   execute Clock_high_Keep_on_AD1_2_lines
   execute Drive_Port_X_XX
   execute Clock_low_Keep_on_Port_A
   execute Clock_high_Keep_on_Port_A
   execute IO_Read_bar_low_Keep_on_Port_A

   execute Clock_low_Keep_on_Port_A
   execute Clock_high_Keep_on_Port_A

   execute Recv_Data_XX
   execute IO_Read_bar_high_keep_on_Port_A
end sub


sub   Port_B_reading(Port_X_select, Drive_Port_X_XX, Recv_Data_XX)

   execute ALE_high
   execute Port_X_select
   execute Clock_low_Keep_on_AD1_2_lines
   execute Clock_high_Keep_on_AD1_2_lines
   execute ALE_low_keep_AD1_2_lines
   execute Clock_low_Keep_on_AD1_2_lines
   execute Clock_high_Keep_on_AD1_2_lines
   execute Drive_Port_X_XX
   execute Clock_low_Keep_on_Port_B
   execute Clock_high_Keep_on_Port_B
   execute IO_Read_bar_low_Keep_on_Port_B

   execute Clock_low_Keep_on_Port_B
   execute Clock_high_Keep_on_Port_B

   execute Recv_Data_XX
   execute IO_Read_bar_high_keep_on_Port_B
end sub

sub   Read_Port_A(Port_X_select, Drive_Port_X_XX, Recv_Data_XX)

   execute ALE_high
   execute IO_M_bar_high
   execute Port_X_select
   execute Clock_low_Keep_on_AD1_2_lines
   execute Clock_high_Keep_on_AD1_2_lines
   execute ALE_low_keep_AD1_2_lines
   execute Clock_low_Keep_on_AD1_2_lines
   execute Clock_high_Keep_on_AD1_2_lines
   execute Drive_Port_X_XX
   execute Clock_low_Keep_on_Port_A
   execute Clock_high_Keep_on_Port_A
   execute Read_bar_low_Keep_on_Port_A

   execute Clock_low_Keep_on_Port_A
   execute Clock_high_Keep_on_Port_A

   execute Recv_Data_XX
   execute IO_M_bar_low_Keep_on_Port_A
   execute Read_bar_high_Keep_on_Port_A
end sub



sub   Read_Port_B(Port_X_select, Drive_Port_X_XX, Recv_Data_XX)

   execute ALE_high
   execute IO_M_bar_high
   execute Port_X_select
   execute Clock_low_Keep_on_AD1_2_lines
   execute Clock_high_Keep_on_AD1_2_lines
   execute ALE_low_keep_AD1_2_lines
   execute Clock_low_Keep_on_AD1_2_lines
   execute Clock_high_Keep_on_AD1_2_lines
   execute Drive_Port_X_XX
   execute Clock_low_Keep_on_Port_B
   execute Clock_high_Keep_on_Port_B
   execute Read_bar_low_Keep_on_Port_B

   execute Clock_low_Keep_on_Port_B
   execute Clock_high_Keep_on_Port_B

   execute Recv_Data_XX
   execute IO_M_bar_low_Keep_on_Port_B
   execute Read_bar_high_Keep_on_Port_B
end sub

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

!AT The following AwareTest units have been added for minimum pins tests.

unit "awaretest Test 1"
   call Initialize_device
   execute  Clock_high
   execute ALE_high
   execute Clock_low
   execute Clock_high
   execute ALE_low
   execute Clock_low
   execute Ready_low
   execute Clock_high
   execute Clock_low
   execute Ready_high
end unit

unit "awaretest Test 2"
!    This unit tests the response of a ROM against a
!    response learned from a known good device.
   call Initialize_device
   execute ALE_high
   execute IO_M_bar_low
   preset counter      Address_counter
   execute Clock_low_keep_on_Addr_lines
   execute Clock_high_keep_on_Addr_lines
   repeat            255   times
   execute ALE_low_keep_on_Addr_lines  compress
   execute Clock_low_keep_on_Addr_lines  compress
   execute Clock_high_keep_on_Addr_lines compress
   execute Read_bar_low  compress
   execute Clock_low compress
   execute Clock_high  compress
   execute Data_keeps         compress
   execute Read_bar_high compress
   execute Clock_low compress
   execute Clock_high  compress
   execute ALE_high  compress
   execute IO_M_bar_low  compress
   count          Address_counter  compress
   execute Clock_low_keep_on_Addr_lines  compress
   execute Clock_high_keep_on_Addr_lines compress
   end repeat
end unit

unit "PROM test 1"
!    This unit tests the response of a ROM against a
!    response learned from a known good device.
   call Initialize_device
   execute ALE_high
   execute IO_M_bar_low
   preset counter      Address_counter
   execute Clock_low_keep_on_Addr_lines
   execute Clock_high_keep_on_Addr_lines
   repeat              512  times
   execute ALE_low_keep_on_Addr_lines  compress
   execute Clock_low_keep_on_Addr_lines  compress
   execute Clock_high_keep_on_Addr_lines compress
   execute Read_bar_low  compress
   execute Clock_low compress
   execute Clock_high  compress
   execute Data_keeps         compress
   execute Read_bar_high compress
   execute Clock_low compress
   execute Clock_high  compress
   execute ALE_high  compress
   execute IO_M_bar_low  compress
   count          Address_counter  compress
   execute Clock_low_keep_on_Addr_lines  compress
   execute Clock_high_keep_on_Addr_lines compress
   end repeat
end unit


unit "PROM test 2"

!    This unit tests the response of a ROM against a
!    response learned from a known good device.
   call Initialize_device
   execute ALE_high
   execute IO_M_bar_low
   preset counter      Address_counter_2
   execute Clock_low_keep_on_Addr_lines
   execute Clock_high_keep_on_Addr_lines
   repeat              512  times
   execute ALE_low_keep_on_Addr_lines  compress
   execute Clock_low_keep_on_Addr_lines  compress
   execute Clock_high_keep_on_Addr_lines compress
   execute Read_bar_low  compress
   execute Clock_low compress
   execute Clock_high  compress
   execute Data_keeps         compress
   execute Read_bar_high compress
   execute Clock_low compress
   execute Clock_high  compress
   execute ALE_high  compress
   execute IO_M_bar_low  compress
   count          Address_counter_2  compress
   execute Clock_low_keep_on_Addr_lines  compress
   execute Clock_high_keep_on_Addr_lines compress
   end repeat
end unit


unit "Chip enable inactive"

   call Initialize_device

   execute  Chip_enable_low
   execute  Clock_low
   execute  Clock_high
   call IO_Writing(Port_A_DDR_select,Out_mode,Clock_high)
   execute  Chip_enable_high
   execute  Clock_low
   execute  Clock_high
   call Port_A_Reading(Port_A_select,Drive_Port_A_55,Recv_Data_55_from_A)

end unit

unit "Chip enable bar inactive"

   call Initialize_device

   execute  Chip_enable_bar_high
   execute  Clock_low
   execute  Clock_high
   call IO_Writing(Port_A_DDR_select,Out_mode,Clock_high)
   execute  Chip_enable_bar_low
   execute  Clock_low
   execute  Clock_high
   call Port_A_Reading(Port_A_select,Drive_Port_A_55,Recv_Data_55_from_A)

end unit


unit  "Read Port A using Read_bar and IO_M_bar"

   call Initialize_device

   call Read_Port_A(Port_A_select, Drive_Port_A_55, Recv_Data_55_from_A)
   call Read_Port_A(Port_A_select, Drive_Port_A_AA, Recv_Data_AA_from_A)
   call Read_Port_A(Port_A_select, Drive_Port_A_55, Recv_Data_55_from_A)

end unit



unit  "Read Port B using Read_bar and IO_M_bar"

   call Initialize_device

   call Read_Port_B(Port_B_select, Drive_Port_B_55, Recv_Data_55_from_B)
   call Read_Port_B(Port_B_select, Drive_Port_B_AA, Recv_Data_AA_from_B)
   call Read_Port_B(Port_B_select, Drive_Port_B_55, Recv_Data_55_from_B)

end unit


unit "Ready"

   call Initialize_device
   execute  Clock_high
   execute ALE_high
   execute Clock_low
   execute Clock_high
   execute ALE_low
   execute Clock_low
   execute Ready_low
   execute Clock_high
   execute Clock_low
   execute Ready_high
end unit


unit  "Read Port A using IO_Read_bar"

   call Initialize_device

   call Port_A_Reading(Port_A_select, Drive_Port_A_55, Recv_Data_55_from_A)
   call Port_A_Reading(Port_A_select, Drive_Port_A_AA, Recv_Data_AA_from_A)
   call Port_A_Reading(Port_A_select, Drive_Port_A_55, Recv_Data_55_from_A)

end unit

unit  "Read Port B using IO_Read_bar"

   call Initialize_device

   call Port_B_Reading(Port_B_select,Drive_Port_B_AA,Recv_Data_AA_from_B)
   call Port_B_Reading(Port_B_select,Drive_Port_B_55,Recv_Data_55_from_B)
   call Port_B_Reading(Port_B_select,Drive_Port_B_AA,Recv_Data_AA_from_B)
end unit




unit  "Write to Port A "

   call Initialize_device

   call IO_Writing(Port_A_DDR_select,Out_mode,Clock_high)
   call IO_Writing(Port_A_select, Drive_Data_66, Recv_Port_A_66)
   call IO_Writing(Port_A_select, Drive_Data_99, Recv_Port_A_99)
   call IO_Writing(Port_A_select, Drive_Data_66, Recv_Port_A_66)

end unit


unit  "Write to Port B "

   call Initialize_device

   call IO_Writing(Port_B_DDR_select,Out_mode,Clock_high)
   call IO_Writing(Port_B_select, Drive_Data_99, Recv_Port_B_99)
   call IO_Writing(Port_B_select, Drive_Data_66, Recv_Port_B_66)
   call IO_Writing(Port_B_select, Drive_Data_99, Recv_Port_B_99)

end unit


unit   "Test Reset"

   call Initialize_device

   call IO_Writing(Port_A_DDR_select,Out_Mode,Clock_high)
   execute  Reset_high
   execute  Clock_low
   execute  Clock_high
   call Port_A_Reading(Port_A_select,Drive_Port_A_55,Recv_Data_55_from_A)

end unit





!    End of test
