The schematic is large but fairly simple and can be broken down into some smaller parts.
J2 is the 40-pin PIC socket, which connects pin-for-pin to the 40-pin IDE connector
J8 is the 28-pin PIC socket, which will rest in between the 40-pin socket
J3-J6 are arranged to form a 20x2 IDE cable connection for connecting the MDM to the PIC substitute board
J7 is a header for running the MDM in a stand-alone configuration without power from the breadboard circuit
Each port has a 74LS541 connected to it which buffers and supplies current for 16 LEDs. A red LED has its cathode connected to the output pin and its anode ultimately connected to a +5V rail, and a green LED has its anode connected to the same output pin with its cathode connected to ground. The result is that when the PIC pin goes high, the corresponding 74LS541 pin does the same. When the pin is high
the red LED has +5V on both sides of it, and thus will not light, but the green LED has +5V of potential on it now, and will light. When the pin is low
then the red LED now has +5V of potential across it, and the green LED has GND on both sides of it and will not light. If the pin is rapidly switching from high to low, it will appear as if both LEDs are illuminated. Both LEDs would appear lit only in the event that the MCU pin is rapidly changing states, or if the 74LM541 has been disabled.
DSW1 is a DIP switch bank that allows the user to disable or enable the LED output ports if they so wish to. It will reduce the brightness of the port LEDs if you are not using that port for anything, or if the port is being used as an analog input port. When the pin is Tri-state
then both LEDs will light up at 50% brightness. Due to limitations of the 74LS541, when the MCU pin is displaying tri-state, it will display as high. The only time that the output of the 74LS541 will go tri-state is when the enable/disable switch for that chip is enabled.
An oscillator is included on the board, and I recommend it be used because the crystal should be as close to the MCU as possible, and it is not a good idea for it to have to go through a ribbon cable to get there. It might also cause unwanted noise in the rest of the circuit and could affect ADC readings.
an ICSP header is included on the board, and can be enabled/disabled from the MCU pins with SW1.Please press the "i" symbol at the top corner of each image to view it in full, readable resolution. Thank you.