APPENDIX

modes. The processor flags are contained in the 8-bit condition Code Register (CCR).

The basic bus cycle of the MC6809 is a single, 500 nsec clock cycle for the 2.0 MHz version. The normal memory access time is 320 nsec. To accommodate slower memories, 125 nsec wait states can be added. Ad- ding one wait state extends the memory access time to 445 nsec.

Although the instruction set of the MC6809 operates predominantly on 8-bit data, there are a few bit opera- tions, two BCD adjusts, and eight instructions with 16-bit operands. Most two operand instructions require one operand to be in a register, and the other operand to reside in memory, with the result going to the register. Two operand instructions such as Add or Compare can- not be done from register to register. The exceptions to this are the Multiply, Transfer Exchange, and Sign Ex- tend instructions, for which both source operands and the destination operand must be in registers. The arith- metic instructions include 8-bit unsigned integer Multip- ly and 8- or 16-bit Add, Subtract and Compare. Other 16-bit instructions include Load, Store, Exchange, Transfer, and Sign Extend.

For stack manipulation, a single Push or Pull instruc- tion allows any combination of registers to be placed on or removed from either of the two stacks. There are also

19branch instructions, in long (l6-bit offset) or short (8-bit offset) forms.

The MC6809 supports 13 different addressing modes. Included in these modes are 5 forms of indexed address- ing, including indexed Auto Increment and Auto Decre- ment modes which are useful for string operations. Relative addressing for Branch instructions use one- or two-byte offsets as a pointer to a data location.

The MC6809 provides maskable and nonmaskable hardware interrupts, as well as three software inter- rupts. There are two maskable hardware interrupts, FIRQ and IRQ. The FIRQ (Fast Interrupt Request) pushes only the Condition Code and Program Counter registers. The IRQ automatically pushes all of the MC6809 registers (except the SP) onto the stack. Each MC6809 interrupt has a fixed vector address, fetching its service routine address from a predefined memory location. For more information regarding hardware and software interrupts see your local Intel office.

PROGRAM DESCRIPTIONS

The ten benchmark programs were chosen to demon- strate the capabilities of the iAPX 88/10 and the MC6809 in the areas of data manipulation, computa- tion, and processor control. The basic algorithms for several of the programs (Block Move, Character Search, Word Shift, Vector Add, and 16-Bit Multiply) are similar to the algorithms of benchmark programs in Motorola's MC6809 Preliminary Programming Manual. All iAPX 88 code has been assembled and run.

1.Computer Graphics

The Computer Graphics program scales the X and Y pairs that make up a graphics display. The 16-bit X and Y pairs are offset by constant values (XO and YO), then multiplied by a fractional scale factor to obtain the scaled XY pairs. There are 16,384 pairs. This program demonstrates 16-bit computational capability.

2. 16-Bit Multiply

The 16-Bit Multiply program reads two 16-bit numbers from memory, multiplies them and returns the 32-bit product and the two mUltiplicands to memory. Multiply demonstrates 16-bit computational capability.

3. Vector Add

The l6-Bit Vector Add performs an element-by-element add of two twenty-element vectors. Vector add demon- strates 16-bit computation and string processing capa- bilities.

4. Block Move

The Block Move program reads the block length, source, and destination from memory. The block length was chosen to be 126 bytes. The data is moved from the source to the destination using word moves. Block Move demonstrates data manipulation and auto incre- ment addressing.

5. Block Translate

The Block Translate program translates a memory block containing EBCDIC characters to ASCII and stores the ASCII characters in another memory block. The translation is done using an EBCDIC to ASCII translation table, and the block length is 125 bytes. This demonstrates data manipUlation, auto increment ad- dressing, and the use of a lookup table.

6. Character Search

The Character Search program searches a table of known length for a specific character. If that character is found, its address is returned. If it is not found, zero is returned. This program demonstrates data com- parison and auto increment addressing.

7. Word Shift

The Word Shift program reads a 16-bit word from memory, and shifts it N places to the right. (N is chosen to be five.) Zeros rotate in on the left. The result is stored in memory. This demonstrates manipUlation of 16-bit data.

8. Reentrant Call

The Reentrant Call program passes three parameters to the called procedure. One is pushed from a general register, the other two are pushed from memory. The procedure is called, the state of the processor is pushed onto the stack, and local storage is set up. The pro- cedure body adds the three parameters and places the result in local storage. The procedure is then exited and the state of the processor is restored.

23

AFN 01532A

Page 292
Image 292
Intel 210200-002 manual Program Descriptions