home *** CD-ROM | disk | FTP | other *** search
- Z80 Processor Expansion Card
- (c) Adrian Lees 1994
- v1.01
-
- Construction
- ------------
-
- The complete circuit will fit on a standard expansion card (100mm x 160mm)
- without any trouble. The prototype was constructed using veroboard,
- although on reflection tri-pad would probably have been more suitable
- as most of the wiring is essentially point-to-point.
-
- The use of IC sockets is strongly recommended !
-
- I used 74LS series logic for my card but it is better to use 74HC or 74HCT
- series. The only problem I foresee with using 74HC is that 4k7 pull-up
- resistors wherever a TTL device drives an HC device, ie. notably the
- outputs from the processor, unless of course you can obtain a CMOS variant
- of the Z80 processor. The static RAM chip used, 62256, is CMOS anyway,
- although I'm not sure whether the outputs are CMOS or TTL levels.
-
-
- Testing
- -------
-
- I would suggest that you wire-up the entire circuit but do not fit the ICs
- initially. Starting simple is always a good idea. I recommend following the
- stages listed below as a guideline during testing:
-
- 1. Initially connect the board with none of the ICs installed.
- The computer should behave normally. If not then check your wiring !
-
- 2. Fit _only_ the 138 address decoder and the 245 which is responsible
- for provide the expansion card ID byte. (the one which is connected
- to the DIP switches !)
-
- Set the DIP switches to an ID (not zero !) that is not used in your
- machine. *Podules will provide this information.
- (Incidentally, the more binary 1's you have in the ID the lower will
- be the current consumed by the card, although the difference is
- fairly negligible, especially if you are using 74LS logic ! Either way,
- you might aswell use 15 if you don't have one of these already.)
-
- The card should now register itself with RISC OS, and *Podules will
- display an identification of the form 'Simple expansion card n'
-
- NOTE: TO PERFORM THE FOLLOWING TESTS YOU MUST TIE THE BUSACK* LINE
- LOW TO ENSURE THAT THE ARCHIMEDES CAN ACCESS THE Z80'S BUS.
-
- 3. Add the 374 latch chip and check the output produced by writing to
- the latch. It is best to write the values 1,2,4,8,16... and test all
- outputs for each value written so that you can ascertain that none
- of the lines have been crossed-over or shorted together.
-
- 4. Add the 245 data buffer between the Archimedes and the Z80's RAM and
- perform a series of read operations from the RAM, setting each input
- to the buffer low in turn. (Assuming that the other inputs float
- high)
-
- 5. Then check the 175 latch in the same way that the 374 was tested. The
- outputs from this latch should enter the following states when the
- Archimedes performs a Reset operation, ie. the reset is pressed or
- power-on occurs.
-
- BUSREQ* 0 Bus is requested, thus disabling the Z80
- processor because there will be no
- meaningful code present in the memory.
- RSTB 0 Reset operation is not in progress.
- IRQEN* 1 Interrupts are disabled because an
- interrupt handler may not have been
- installed in the Archimedes at this
- stage.
-
- 6. Test that the processor is executing instructions by downloading
- a simple Z80 routine into address 0, for example the program
- supplied which adds two numbers together in two addresses,
- returning a result in a third address which the Archimedes can
- subsequently verify.
-
- 7. Testing the IRQ logic:
-
- Download a program that contains and IN/OUT operation and commence
- execution. When this instruction is reached, the IORQ* output from
- the Z80 will pulse low, triggering the IRQ flip-flop and the output
- Q* from the appropriate half of the 74 chip will be taken low.
- Check this and set IRQEN* high (the initial state). The PIRQ*
- line to the expansion card interface should be pulled-high
- by the Archimedes' internal pull-up. When IRQEN* is forced low,
- by programming the 'Set status' register at offset 4, the
- PIRQ* should be pulled-low and the PIRQ input to the Expansion Card
- ID Buffer (bit 0) will be high.
-
- 8. Clearing the interrupt request.
-
- Reading from offset 8 will reset the 74 flip-flop, taking
- the Q* output high, the PIRQ output low and the PIRQ* input
- to the expansion card interface will be pulled high.
-
- 9. Run the AutoTest program which will randomly write random data
- into the Z80's memory and retrieve it, checking its validity.
- If any discrepancies are detected then the address and the value
- written are displayed on the screen. Hopefully you will
- simply see a blank screen. Leave the program running for a few
- minutes (perhaps 10 - 15) and if no errors are reported then
- you can assume that the memory is working correctly.
-
- 10.Congratulations ! If you have got this far and all of the above
- tests have passed successfully then your card should be
- working perfectly.
-
-