8237A-5 DMA controller pinout

DIP-40. Four DMA channels. PC: channel 0 refreshes DRAM, channel 2 is the diskette.

Four DMA channels at ports $00 to $0F; the -5 part runs to 5 MHz. On the 5150 (U35) channel 0 does DRAM refresh, paced by timer 1, and channel 2 serves the diskette adapter. It puts address bits A8 to A15 out on its data pins, latched by ADSTB; a page register at $80 to $83 adds A16 to A19. A dead DMA gives lost memory and no diskette transfers.

Open the interactive 8237A pinout

Pins

PinNameTypeSignal
1/IORctrlI/O read, active LOW, three-state. Input when the CPU reads the 8237A; output during a DMA write (peripheral to memory).
2/IOWctrlI/O write, active LOW, three-state. Input when the CPU programs it; output during a DMA read (memory to peripheral).
3/MEMRctrlMemory read, active LOW, three-state.
4/MEMWctrlMemory write, active LOW, three-state.
5PIN 5powerMust be held HIGH. Has an internal pull-up and may be tied to VCC. 5150: tied to +5 V.
6READYctrlReady, active HIGH. LOW stretches the memory strobes for slow parts.
7HLDActrlHold acknowledge, active HIGH: the bus is free.
8ADSTBctrlAddress strobe, active HIGH. Latches A8 to A15 from DB0 to DB7 into an external latch.
9AENctrlAddress enable, active HIGH. Enables the upper-address latch and can turn off other bus drivers. 5150: not connected (the board makes AEN in its own logic).
10HRQctrlHold request, active HIGH. Any unmasked DREQ raises it.
11/CSctrlChip select, active LOW. PC: ports $00 to $0F.
12CLKclockClock input, up to 5 MHz for the -5 part.
13RESETctrlReset, active HIGH. Clears the Command, Status, Request and Temporary registers and the first/last flip-flop, and sets the Mask register. Address, count and base registers are not cleared.
14DACK2ctrlDMA acknowledge 2. Sense set by software; reset makes it active LOW. PC: diskette (I/O channel B26).
15DACK3ctrlDMA acknowledge 3. PC: I/O channel B15.
16DREQ3ctrlDMA request 3. Polarity set by software; reset makes it active HIGH. PC: I/O channel B16.
17DREQ2ctrlDMA request 2. PC: diskette adapter DRQ2 (I/O channel B6).
18DREQ1ctrlDMA request 1. PC: I/O channel B18.
19DREQ0ctrlDMA request 0, highest fixed priority. PC: refresh request from timer 1.
20GNDgroundGround (VSS).
21DB7dataData bus bit 7. Carries address bit A15 early in a DMA cycle, latched by ADSTB.
22DB6dataData bus bit 6 (A14 during DMA).
23DB5dataData bus bit 5 (A13 during DMA).
24DACK1ctrlDMA acknowledge 1. PC: I/O channel B17.
25DACK0ctrlDMA acknowledge 0. PC: refresh cycle (I/O channel B19).
26DB4dataData bus bit 4 (A12 during DMA).
27DB3dataData bus bit 3 (A11 during DMA).
28DB2dataData bus bit 2 (A10 during DMA).
29DB1dataData bus bit 1 (A9 during DMA).
30DB0dataData bus bit 0 (A8 during DMA).
31VCCpower+5 V supply.
32A0addrAddress bit 0. Input when the CPU selects a register; output during DMA.
33A1addrAddress bit 1.
34A2addrAddress bit 2.
35A3addrAddress bit 3.
36/EOPctrlEnd of process, active LOW. Pulses at terminal count; pulling it LOW ends a transfer. PC: inverted to T/C on I/O channel B27.
37A4addrAddress bit 4, three-state, driven only during DMA.
38A5addrAddress bit 5.
39A6addrAddress bit 6.
40A7addrAddress bit 7.

Fitted in

Sources