07.06.2013 Views

Chapter 2 THE GENERAL INSTRUMENT CP1600 - Intellivision Brasil

Chapter 2 THE GENERAL INSTRUMENT CP1600 - Intellivision Brasil

Chapter 2 THE GENERAL INSTRUMENT CP1600 - Intellivision Brasil

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Jump instructions use direct memory addressing. Jump instructions are all three words long. The direct address<br />

is computed from the second and third memory words as follows:<br />

AAAAAABBBBBBBBBB Jump address (binary)<br />

YY are enable/disable bits for interrupts<br />

XX identity the register where the return address will be stored for JSR<br />

XX and YY are described in detail in Table 2-4.<br />

You can enable or disable interrupts whenever you execute a Jump or Jump-to-Subroutine instruction.<br />

The only difference between a Jump instruction and a Jump-to-Subroutine instruction is that the Jump-to-<br />

Subroutin instruction saves the Program Counter contents in Register 4, 5, or 6. The two high-order bits (XX) or<br />

the second Jump-to-Subroutine obect code word specifies which of the three registers will be used to hold the<br />

return address.<br />

Jump-to-Subroutine instructions, like the Jump instruction, allow direct memory addressing only.<br />

<strong>CP1600</strong> STATUS AND CONTROL FLAGS<br />

The <strong>CP1600</strong> CPU has four of the standard status flags; in addition, it has some unusual control signals.<br />

These are the four standard status flags:<br />

Sign (S). This status is set equal to the high-order bit of any arithmetic operation result.<br />

Zero (Z). This status is set to 1 when any instruction’s execution creates a zero result. The status is set to 0 for<br />

a nonzero result.<br />

The Carry (C) and Overflow (O) statuses are standard carry and overflow, as described in Volume 1.<br />

Four control signals (EBCA0 - EVCA3) are output during a Branch-on-External (BEXT) instruction. These<br />

four signals are output to reflect the low-order four bits of the BEXT instruction’s object code. External logic<br />

receives these four signals and (depending on their state), may or may not return a high input via EBCI. If EBCI<br />

is returned high, then the BEXT instruction will perform a branch; if EBCI is returned low, then the BEXT instruction<br />

will cause the next sequential instruction to be executed. The four control signals EBCA0 - EBCA3 therefore<br />

provide the <strong>CP1600</strong> with a means of testing 16 external conditions.<br />

<strong>CP1600</strong> CPU PINS AND SIGNALS<br />

9 8 7 6 5 4 3 2 1 0<br />

0 0 0 0 0 0 0 1 0 0<br />

X X A A A A A A Y Y<br />

B B B B B B B B B B<br />

<strong>CP1600</strong> CPU pins and signals are illustrated in Figure 2-2.<br />

JR or JSR<br />

D0 - D15 is a multiplexed Address and Data Bus. Given a total of 40 pins in a package, <strong>CP1600</strong> designers<br />

have been forced to share 16 pins between addresses and data. Three control signals BDIR, BC1, and BC2,<br />

identify the traffic on the Address/Data Bus. External logic (one MSI chip) must decode these three signals<br />

to create eight control signals, as summarized in Table 2-1.<br />

Remaining signals may be divided into four groups: timing, status/control, interrupt, and DMA.<br />

Two timing clock signals are required: F1 and F2. These are complementary clock signals which may be<br />

illustrated as follows:<br />

F1<br />

F2<br />

Word 2<br />

Word 3

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!