Files
z80_monitor/hardware/audio_casette_card.pld
T

53 lines
1.2 KiB
Plaintext

Name acc;
PartNo 00;
Date 2026-10-11;
Revision 01;
Designer Joppe Blondel;
Company unknown;
Assembly unknown;
Location unknown;
Device g22v10;
/* Constants */
ar = 'b'0;
sp = 'b'0;
/* Pin assignments */
/* inputs */
PIN 1 = CLK;
PIN 2 = A1;
PIN 3 = A2;
PIN 4 = IOSELN;
PIN 5 = RDN;
PIN 6 = A0;
PIN 7 = COMP;
PIN 8 = WRN;
/* outputs */
PIN 14 = D0;
PIN 15 = SNWEN;
PIN 16 = AYBDIR;
PIN 17 = AYBC1;
PIN 22 = COUT;
/* Read reg0 */
/* places comparator output on D0 when reading addr0 */
D0 = COMP;
D0.OE = !IOSELN & !RDN & WRN & !A0 & !A1 & !A2;
/* Write reg0 */
/* writes D0 to casette output port */
/* during a write COUT.D=D0 otherwise COUT.D = COUT */
COUT.D = (!IOSELN & RDN & !WRN & !A0 & !A1 & !A2 & D0) #
((IOSELN # !RDN # WRN # A0 # A1 # A2) & COUT);
COUT.ar = ar;
COUT.sp = sp;
/* Write to SN76489 at addr 1 */
SNWEN = !(!IOSELN & RDN & !WRN & A0 & !A1 & !A2);
/* AY-3-8910 access at addr 2 (data) addr 3 (adress) */
AYDATAREAD = !IOSELN & !RDN & WRN & !A0 & A1 & !A2;
AYDATAWRITE = !IOSELN & RDN & !WRN & !A0 & A1 & !A2;
AYADDRWRITE = !IOSELN & RDN & !WRN & A0 & A1 & !A2;
AYBDIR = AYDATAWRITE # AYADDRWRITE;
AYBC1 = AYDATAREAD # AYADDRWRITE;