Name		H8-MULTI-IO-DECODER	;
PartNo		H8-MULTI-IO-DECODER	;
Date		03/31/2026			;
Revision	01					;
Designer	Norberto Collado	;
Company  	KOYADO.COM			;
Assembly	None				;
Location	Hillsboro, OR		;
Device		g16v8a				;


/* ***************** H8-MULTI-IO INPUT PINS ***********************/
PIN [1..8] = ![A0..7]		;	/* CPU INVERTED ADDRESS BUSS connected to the GAL */
PIN 9 = IOWR_H				;	/* H8-IOWR BUSS SIGNAL */
PIN 11 = IORD_H				;	/* H8-IORD BUSS SIGNAL */
PIN 12 = CHANNEL_0_1_2_1_L	;	/* INDICATES A SERIAL PORT ADDRESS IS ENABLED */

/***************** H8-MULTI-IO OUTPUT PINS ***********************/
PIN 19 = IO_VDIP1_L			;	/* PORT 261Q RD/WR ENABLED */
PIN 18 = IO_STATUS_L		;	/* PORT 262Q READ ENABLED */
PIN 17 = IO_I2C_WR_L		;	/* PORT 201Q WRITE ENABLED */
PIN 16 = IO_I2C_RD_L		;	/* PORT 201Q READ ENABLED */
PIN 15 = USB_PRINTER_WRITE_L;	/* PORT 262Q WRITE ENABLED*/
PIN 14 = BRD_SELECTED_L		;	/* BOARD SELECTED FOR I/O */
PIN 13 = READ_ENABLED_L		;	/* READ IO ENABLED */

/* Intermediate equation	*/
A_261Q 		= A7 & !A6 & A5 & A4 & !A3 & !A2 & !A1 & A0 ;
A_262Q 		= A7 & !A6 & A5 & A4 & !A3 & !A2 & A1 & !A0 ;

A_200Q = A7 & !A6 & !A5 & !A4 & !A3 & !A2 & !A1 & !A0 ;
A_201Q = A7 & !A6 & !A5 & !A4 & !A3 & !A2 & !A1 & A0 ;

DEVICE_SELECTED = (!CHANNEL_0_1_2_1_L # A_261Q # A_262Q # A_200Q # A_201Q) ;

/* EQUATIONS */

/****************************************************************/
/* 					IO_VDIP1_L	 								*/
/* Use this signal to read/write to the VDIP1 USB device		*/
/****************************************************************/

!IO_VDIP1_L= (A_261Q);	/* RD/WR ON Address 261Q 				*/


/****************************************************************/
/* 					IO_STATUS_L	 								*/
/* Use this signal to read status of the VDIP1 USB device		*/
/****************************************************************/

!IO_STATUS_L  = (A_262Q & !IORD_H);  /*Read only on address 262Q*/


/****************************************************************/
/* 					IO_I2C_WR_L									*/
/* Use this signal to write to the I2C Bus						*/
/****************************************************************/

!IO_I2C_WR_L = (A_201Q & !IOWR_H);	/* WRITE TO Address 201Q 	*/


/****************************************************************/
/* 					IO_I2C_RD_L	 								*/
/* Use this signal to read from the I2C Bus						*/
/****************************************************************/

!IO_I2C_RD_L= (A_201Q & !IORD_H);	/* READ FROM Address 201Q 	*/


/************************************************************************************/
/* 					USB_PRINTER_WRITE_L ON VDIP1 MODULE								*/
/* Use this signal to write to USB_PRINTER on port USB PRINTER ON 262Q				*/
/************************************************************************************/

!USB_PRINTER_WRITE_L =(A_262Q & !IOWR_H);


/************************************************************************************/
/* 					BRD_SELECTED_L													*/
/* DETECTED IO PORT OPERATION FOR H8-MULTI-IO BOARD									*/
/************************************************************************************/

!BRD_SELECTED_L = DEVICE_SELECTED ;


/************************************************************************************/
/* 					READ_ENABLED_L													*/
/* ENABLE "RD-DATA" ON 74LS640 U6 PIN 1.											*/
/************************************************************************************/

!READ_ENABLED_L = !IORD_H & DEVICE_SELECTED ;
