home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / Z280 / ZADAPTER.INF < prev    next >
Text File  |  2000-06-30  |  14KB  |  272 lines

  1. GENERAL INFORMATION ON Z280 TO Z80 ADAPTERS:
  2.  
  3. There are two versions of the adapter board.  Both these boards are the
  4. same size: 4.28" in length, 2.24" in width, and approx. 3/4" deep.  The
  5. basic layout looks like this (as best as can be presented in ASCII:
  6.  
  7.  
  8.  
  9.  
  10.                    View from short side:
  11.  
  12.  
  13.                         |---- 2.24 " -----|
  14.  
  15.                     |
  16.                     |      Component side
  17.                     |   -------------------    --->> PCB Board
  18.                     |         ======           --->> Male socket to plug
  19.                   3/4"                               into your Z80 socket.
  20.                   high
  21.  
  22.                    View from long side:
  23.  
  24.  
  25.                  |------------ 4.28" -----------|
  26.  
  27.                  -------------------------------- --->> PCB Board
  28.                         ==================        --->> Male Z80 socket
  29.  
  30.  
  31. The Z80 socket is approximately centered on the PCB, in both directions.
  32.  
  33. THE "ZIP 280":
  34.  
  35. This is the direct adapter version of the board.  It totally replaces
  36. the Z80 in your system.  The basic diagram of this board is:
  37.  
  38.  
  39.  
  40.                   --------- clock       ------------ clock  ---
  41.                   | Z280  |-------------| PHASE    |--------|Z|
  42.                   | CPU   |             | LOCK     |        |8|
  43.                   |       |             | LOOP     |        |0|
  44.                   |       |             ------------        | |
  45.                   |       |                                 |S|
  46.                   |       | address     ------------ address|O|
  47.                   |       |-------------| ADDRESS  |--------|C|
  48.                   |       |             | LATCH    |        |K|
  49.                   |       |             ------------        |E|
  50.                   |       |                                 |T|
  51.                   |       | Signals     ------------        | |
  52.                   |       |-------------| ADAPTION |--------| |
  53.                   |       |             | LOGIC    |        | |
  54.                   ---------             ------------        ---
  55.                       |
  56.                   ---------
  57.                   | 256kb/|
  58.                   | 1mb   |
  59.                   | DRAM  |
  60.                   ---------
  61.  
  62.  
  63. All Z80 signals coming at the socket are "cleaned" versions of the Z280
  64. signals, operating in the Z80 bus mode.  The 64kb address space of the
  65. Z280 is mapped into the first 64kb of the Z280 16 meg space.  The Z280
  66. comes up on with all modes set to look like a standard Z80 (see the Z280
  67. technical technical manual).  Therefore, after changing out the system
  68. Z80 for the adapter, the system software should run as before.  All the
  69. Z280 resources, such as onboard DMA, timers, uart, etc.  are available
  70. for use in the system address space on proper programming.  Also, the
  71. new Z280 instructions can be utilized with new system software.
  72.  
  73. As an additional upgrade aid, a special surface mount 256kb/1mb dram
  74. package is included on the board.  This allows the extension beyond the
  75. 64kb limit of the Z80 address space, while still keeping the Z80 signal
  76. format (which has only 16 address bits).  The onboard dram is operated
  77. on anytime the Z280 fetches/writes to the upper 8 meg of its address
  78. space (address bit 23 set). During this onboard access, the Z80 signals
  79. at the socket are kept inactive, so that accesses to the onboard memory
  80. are completely transparent.
  81.  
  82. There is no way for the Z280 signals/instruction fetch mechanism to be
  83. made 100% Z80 compatible.  However, the onboard adaption logic does help
  84. with the conversion.  Specifically, the onboard PLL matches the Z280
  85. input clock to the lower Z80 clock provided at the Z80 socket (the Z280,
  86. using the normal modes, runs at a clock speed, or XTAL speed, 4 times
  87. the Z80 clock speed).  Also, The timing at which the Z80 "wait" line is
  88. acknowledged is adjusted to match the Z80 (the Z280 accepts waits one
  89. cycle later than the Z80).  The possible incompatibilities with this
  90. board are:
  91.  
  92.     1.  Timing loops.  Any attempt to determine a fixed length of
  93.         time via measurement of time taken to execute an instruction
  94.         will not work.  Such loops would be invalidated by a change in
  95.         the Z80 clock speed, by use of "wait" cycles, or by DMA or other
  96.         CPU parallel access.  On the Z280, the instruction time cannot
  97.         even be measured reliably; The cache and pipeline make the time
  98.         to execute an instruction dependent on the "history" of activity
  99.         before.  Since timing loops are already considered very bad
  100.         coding practice, this can be taken as a signal to get rid of
  101.         them once and for all.
  102.  
  103.     2.  If the code contains very strange self - modifying code.
  104.         Self - modifying code is forbidden absolutely in the Zilog Z280
  105.         technical reference manual, but we have determined that the
  106.         chance of writing such code that can cause Z280 malfunction is
  107.         slight in any case.  Example:
  108.  
  109.                   ld a,$c3       ! get a "JP" instruction
  110.                   ld (loc),a     ! place ahead of us
  111.              loc: nop            ! instruction that is modified
  112.                   dw address     ! address to jump to
  113.  
  114.         This would malfunction on the Z280 because by the time the store
  115.         of $c3 to "loc" occurs, the Z280 "pipelining" mechanism would
  116.         have already fetched the "nop" which was supposed to be
  117.         modified.
  118.  
  119.     3.  The Z80 "R" register.  This register on the Z80 contains the
  120.         current refresh address, and so will appear to change
  121.         continually to the program running.  Some programs have used
  122.         this to generate random numbers (of which it makes a VERY poor
  123.         random number generator).
  124.  
  125.     4.  Utilization of "undocumented" instructions.  Some Z80 code
  126.         sequences which evaluate to illegal instructions have a CPU
  127.         result which some programs use.  In no way will the Z280 react
  128.         the same way as a Z80 here, and in fact, these can change
  129.         between different "brands" of Z80 CPU's.  This is a total misuse
  130.         of the Z80; do not expect these to work.
  131.  
  132.     5.  Use of the "M1" line.  The Z280 does not generate a true M1
  133.         signal, and in fact cannot do so.  Since the M1 line was not a
  134.         signal commonly required to use the Z80, dependencies on the M1
  135.         line should be small.
  136.  
  137.     6.  Assumption of "dead" lines.  When none of the Z80
  138.         (translated) signal lines are active, this DOES NOT mean that
  139.         the address/data lines are floating.  In fact, the lower byte of
  140.         the address is being passed to a latch during this time.
  141.         Although the Z80 lines WOULD float during this time, this
  142.         consitiutes an illegal use of the Z80 signals. Example: the
  143.         Cromemco ZPU card has a "auto - jump" option to transfer to a
  144.         specific location on reset.  It relies on the ability to force a
  145.         jump instruction into the data lines, regardless of whether or
  146.         not the Z80 is actually executing an instruction fetch.  This
  147.         forced data collides with the low address byte coming from the
  148.         Z280.
  149.  
  150.     7.  Assumption of inactive "wait" line between bus cycles. If
  151.         the wait generation circuit assumes that the wait line can be
  152.         set to any value if no Z80 access signals are active, when the
  153.         Z280 accesses the onboard memory, the Z280 may be put into
  154.         perpetual wait.  This is because it will acknowledge an active
  155.         wait during this internal cycle.  The Zip adapter DOES NOT issue
  156.         any active signals to the Z80 socket during these accesses.
  157.         Only affects people using the onboard extension memory.
  158.  
  159. The Zip 280 is the board for anyone who is upgrading to the Z280 part in
  160. an existing design.  With perhaps a small amount of modification to
  161. cover the incompatibilities given above, you can test the Z280 out in
  162. your existing design, and either ship the system with the adapter in
  163. place, or go on to design a version of your product incorporating the
  164. Z280 CPU. For persons attempting to upgrade a system with Zip 280, the
  165. basic requirements are full hardware and software knowledge of the
  166. system to be adapted (SCHEMATICS AND SOFTWARE LISTINGS), and a senior
  167. level engineering knowledge of computer hardware AND software.
  168.  
  169. This board is considered an AID to Z280 upgrade, and in no way do we
  170. warrant it as a guaranteed Z80 replacement.
  171.  
  172. COPROCESSOR VERSION (Accel 280):
  173.  
  174. Our field tests to determine applicability of the Zip 280 (direct)
  175. adapter board to existing CP/M upgrade yielded the the following result:
  176. one or two jumpers and careful check of the system software for timing
  177. loops, etc. were required on 90% of the systems.  I believe this is
  178. accounted for by two reasons:
  179.  
  180.     1.  Many typical CP/M implementations consist of an "all in one"
  181.         package consisting of the video screen, disk drives and keyboard
  182.         integrated into a single enclosure.  There is considerable
  183.         incentive in such a unit to take shortcuts on the design,
  184.         usually to save on chip count.  Quirks in the Z80 timing and
  185.         modes are used.
  186.  
  187.     2.  Since the standard Z80 has a very long history, there has
  188.         been considerable incentive to assume that the Z80 would never
  189.         change.
  190.  
  191. Although the best solution is to directly REPLACE the Z80 by the Z280,
  192. for people who do not have specific details on their machine (schematics
  193. and software listings) or the expertise to diagnose problems, a
  194. virtually 100% compatible solution is provided by the coprocessor
  195. version of the adapter board.  In this version, the Z80 from the system
  196. is plugged back into the top of the board, then the board inserted into
  197. the system:
  198.  
  199.  
  200.                              -------
  201.                              | Z80 |       --->> Z80 from present system
  202.                         ------------------ --->> PCB
  203.                              =======       --->> Z80 socket
  204.  
  205.                                 ||
  206.                                 \/
  207.  
  208.                                 To
  209.                               system
  210.                               Z80 socket
  211.  
  212.  
  213. The basic block diagram of the Accel 280 is:
  214.  
  215.  
  216.                --------- data  -------------------- data   ---
  217.                | Z280  |-------| BIDIRECTIONAL    |--------|Z|
  218.                | CPU   |       | BUS COMMUNICATOR |        |8|
  219.                |       |       |                  |        |0|
  220.                |       |       --------------------        | |    -------
  221.                |       |                                   |S|    | Z80 |
  222.                |       |       ------------                |O|<<--| CPU |
  223.                |       |-------| 256KB/   |                |C|    |     |
  224.                |       |       | 1MB      |                |K|    -------
  225.                |       |       | DRAM     |                |E|
  226.                |       |       ------------                |T|
  227.                |       |                                   | |
  228.                |       |                                   | |
  229.                ---------                                   ---
  230.  
  231.  
  232. The Z280 is completely isolated from the Z80 CPU here.  It executes from
  233. and makes data accesses to its own DRAM module only.  The Z80 CPU
  234. running the system is the same Z80 as was unplugged before the board was
  235. inserted. Communication with the Z280 CPU and memory is accomplished via
  236. an 8 - bit "port".  This port is the only interface between the two
  237. processors.  Both processors run CONCURRENTLY.  The installation of the
  238. board is completed by either picking an UNUSED port in the Z80 system,
  239. or using the default port of $fe.  The Z80 CPU, and the system in
  240. general, operates as a I/O slave CPU.  The Z280 CPU runs programs in its
  241. own DRAM space.  When the Z280 requires I/O service, a "request" packet
  242. is passed to the Z80 CPU, which reads or writes the requested data, and
  243. returns the results to the Z280 CPU. What is required here is a software
  244. program run on the Z80 side to operate the coprocessor interface.  We
  245. provide this, in conjunction with the RP/M o/s that provides interface
  246. via the CP/M BIOS routines.  This board is usually used to support CP/M
  247. based environments, therefore.  Support for other interfaces would
  248. require custom software construction.
  249.  
  250. Using the RP/M operating system, standard CP/M applications can be run
  251. on the Z280.  The restrictions here are:
  252.  
  253.     1.  The application program may not perform direct I/O to system
  254.         devices.  It may however, use I/O based devices in the Z280 CPU
  255.         itself; these include timers, DMA, etc.
  256.  
  257.     2.  Timing loops will be invalidated in an application program.
  258.         Since timing loop are usually associated with I/O, this is less
  259.         of a problem a - priori.
  260.  
  261.     3.  The system I/O (the BIOS program) cannot make use of Z280
  262.         DMA, timer and other devices, or use Z280 advanced instructions.
  263.  
  264. Note that the BIOS code still runs on the Z80 processor, and has no
  265. restrictions.
  266.  
  267. The main penalty for coprocessor operation is the overhead for
  268. coprocessor interface data passage.  This can be offset, however, by the
  269. effect of having the Z80 CPU process I/O in parallel to the Z280 CPU,
  270. and also because the Z280 can be operated at full potential speed (since
  271. it does not have to match clocks with the Z80 side).
  272.