MODULE cdq220tm

TITLE 'CQD-220/TM'

"Inputs
	BBS7	pin 1;

	BDAL2	pin 2;
	BDAL3	pin 3;
	BDAL4	pin 4;
	BDAL5	pin 5;
	BDAL6	pin 6;
	BDAL7	pin 7;
	BDAL8	pin 8;
	BDAL9	pin 9;
	BDAL10	pin 10;
	BDAL11	pin 11;
	BDAL12	pin 13;

"Input is zero when jumper is installed
	W6_1	pin 15;
	W6_2	pin 23;
	W6_3	pin 22;
	W6_4	pin 14;
	W6_5	pin 18;
	W6_6	pin 21;
	W6_7	pin 16;

	Address = [1, 1, 1, 1, 1, 1, 1, 1, 1, BDAL12, BDAL11, BDAL10, BDAL9, BDAL8, BDAL7, BDAL6, BDAL5, BDAL4, BDAL3, BDAL2, 0, 0];
	DiskSel	= [W6_2, W6_3, W6_4];
	TapeSel	= [W6_5, W6_6, W6_7];

"Outputs
	CsrSelect	pin 20 istype 'com';
	RomSelect	pin 19 istype 'com';
	CsrIsTape	pin 17 istype 'com';

"CSR Select
	DiskSelect	= BBS7 & (((Address == ^o17772150) & (DiskSel == 0)) #
				  ((Address == ^o17760334) & (DiskSel == 1)) #
				  ((Address == ^o17760354) & (DiskSel == 2)) #
				  ((Address == ^o17760374) & (DiskSel == 3)) # 
				  ((Address == ^o17760340) & (DiskSel == 4)) #
				  ((Address == ^o17760344) & (DiskSel == 5)) #
				  ((Address == ^o17760350) & (DiskSel == 6)));

	TapeSelect	= BBS7 & (((Address == ^o17774500) & (TapeSel == 0)) #
				  ((Address == ^o17760404) & (TapeSel == 1)) #
				  ((Address == ^o17760444) & (TapeSel == 2)) #
				  ((Address == ^o17760504) & (TapeSel == 3)) #
				  ((Address == ^o17760544) & (TapeSel == 4)) #
				  ((Address == ^o17760410) & (TapeSel == 5)) #
				  ((Address == ^o17760450) & (TapeSel == 6)));

Equations
	CsrSelect	= DiskSelect # TapeSelect;

	CsrIsTape	= TapeSelect;

	RomSelect	= BBS7 & (Address >= ^o17773000) & (Address <= ^o17773777) & !W6_1;
	RomSelect	= BBS7 & (Address >= ^o17771000) & (Address <= ^o17771777) &  W6_1;
END

