
public unit sys
{
	public memory base
	{
		target = iointerface;
		type = [ uint32 0x0000, 0xffff ] uint8;
	}
	public memory code
	{
		target = iointerface;
		type = [ uint32 128, 0xffff ] uint8;  //[0x0080, 0x1fff],
	}
	unit iointerface
	{
		//uint8 дͶ
		public uint8 get_uint8( uint32 addr )
		{
			if( addr.16(uint8) == 0 ) {
				#asm "_1_local_uint16 0"
				#asm "BASE_uint8"
			}
			else {
				#asm "_1_local_uint16 0"
				#asm "CODE_uint8"
			}
		}
		public void set_uint8( uint32 addr, uint8 data )
		{
			#asm "_1_local_uint32 0"
			#asm "_0_local_uint32 4"
			#asm "BASE_uint8"
		}
		//uint16 дͶ
		public uint16 get_uint16( uint32 addr )
		{
			if( addr.16(uint8) == 0 ) {
				#asm "_1_local_uint16 0"
				#asm "BASE_uint16"
			}
			else {
				#asm "_1_local_uint16 0"
				#asm "CODE_uint16"
			}
		}
		public void set_uint16( uint32 addr, uint16 data )
		{
			#asm "_1_local_uint32 0"
			#asm "_0_local_uint32 4"
			#asm "BASE_uint16"
		}
		//uint32 дͶ
		public uint32 get_uint32( uint32 addr )
		{
			if( addr.16(uint8) == 0 ) {
				#asm "_1_local_uint16 0"
				#asm "BASE_uint32"
			}
			else {
				#asm "_1_local_uint16 0"
				#asm "CODE_uint32"
			}
		}
		public void set_uint32( uint32 addr, uint32 data )
		{
			#asm "_1_local_uint32 0"
			#asm "_0_local_uint32 4"
			#asm "BASE_uint32"
		}
	}
}

