TheByteAttic / CERBERUS2100

The amazing multi-processor 8-bit microcomputer, featuring Z80, 6502 and AVR processors. Built with CPLDs, CERBERUS 2100™ is fully programmable even with respect to its hardware, at the individual gate and flip-flop level.
MIT License
75 stars 13 forks source link

XBUSACK pin PORTE0/Arduino 23 set to output mode/high #5

Closed envenomator closed 1 year ago

envenomator commented 1 year ago

The XBUSACK pin at FAT CAT (Arduino pin 23 on PORT E0) is not initialized as output pin during setup(), defaulting to an input pin and never lowered in response to a XBUSREQ request. The call to DigitalWrite(XBUSACK. LOW) is there in code, but the port is electrically not lowered due to it's default input state.

Current behavior: the Cerberus seems to lock up after the external card asks for XBUSREQ. The external card is then waiting for XBUSACK indefinitely with XBUSREQ lowered, while CAT is waiting for the card to release the bus, which never happens. This was a fun challenge to figure out, but with this small change it works just fine ;-)