/* --------------------------------------------------------------------- */
declaration
  dataunit : bit;
  functions
    SRAM_TEST
  ;
  Manufacturers
    RAM
  ;
  Devices
    SRAM_64KBIT
  ;
		/*  ΥΝΝΝΝΈΥΝΝΝΝΈ        */
  chips = A7 ,  /* [³ 1     24 ³] VCC   */
	  A6 ,  /* [³ 2     23 ³] A8    */
          A5 ,  /* [³ 3     22 ³] A9    */
	  A4 ,  /* [³ 4     21 ³] WE    */
	  A3 ,  /* [³ 5     20 ³] OE    */
          A2 ,  /* [³ 6     19 ³] A10   */
	  A1 ,  /* [³ 7     18 ³] CE    */
	  A0 ,  /* [³ 8     17 ³] D7    */
	  D0 ,  /* [³ 9     16 ³] D6    */
	  D1 ,  /* [³ 10    15 ³] D5    */
	  D2 ,  /* [³ 11    14 ³] D4    */
	  GND,  /* [³ 12    13 ³] D3    */	  
		/*  ΤΝΝΝΝΝΝΝΝΝΝΎ        */
	D3, D4, D5, D6, D7, CE, A10, OE, WE, A9, A8, VCC
  ;

  $v3 = VCC;

endd
/* -----------------------------------------------------------------------
 * init() ---> inital processing
 * ----------------------------------------------------------------------- */
int  init()
{
  @Vout  1,  5.0;
  @Vout  2,  5.0;
  @Vout  3,  5.0;
  @Out   GND, @G;
  @Delay 10, @Ms;
  
  @Out   A[0..10],@W;
  @Out   D[0..7], @Z;
  @Out   WE,      @W;
  @Out   CE,      @W;
  @Out   OE,      @W;

  @Out   A[0..10],@L;
  @Out   WE,      @H;
  @Out   CE,      @L;
  @Out   OE,      @H;

  @Out   VCC,     @O;  

  @Delay 100, @Ms;
}
/* -----------------------------------------------------------------------
 * MAIN Porgram
 * ----------------------------------------------------------------------- */
int  main()
{
  int  tmp, data;
  int  i, j;
   
  init();
  tmp = data = 0;  

  @Display 24, 14, "Current : ";

  for(i=0; i<0x800; i++)
  {
     @Display  34, 14, i, @D;   
     for(j=0; j<2; j++)
     {
       if(j == 0) data = 0x55;
       else       data = 0xaa;
/* ------------------------ Write cycle ------------------- */
       @Out A[0..10], i;
       @Out D[0..7],  @W;
       @Out D[0..7],  data;
       @Out WE,       @L;
       @Out WE,       @H;
       @Out D[0..7],  @Z;       
/* ------------------------ Read cycle -------------------- */     
       @Out OE,       @L;
       @In D[0..7],   tmp;
       @Out OE,       @H;
       if(tmp != data) @Exit;
    }
  }
}        
