Dual CPU 68000 Users Manual 1982
Dual CPU 68000 Users Manual 1982
CPU/68000
USER'S MANUAL
68000-BASED
CENTRAL PROCESSING UNIT BOARD
Table of Contents
Introduction 2
1
INTRODUCTION
2
SPECIFICATIONS
3
Booting the CPU/68000 with Macsbug'
The CPU'/68000 comes wi th the Macsbug 1 moni tor installed in
the on-board ROM sockets. The monitor is factory configured for
use with a Godbout Interfacer· I serial I/O board. If the
, Cpu/68000 is ordered with the Interfacer 2 and CMEM memory cards,
then the system can be brought up immediately.
Set the dip-switches on the CPU/68000, Interfacer 2 , and CMEM
cards as shown in figures 1, 2, and 3.
After the dip-switches 'have been set properly, insert the
CPU/68000, the Interfacer, and the CMEM boards into the S-100
card cage. Then connect the serial I/O cables between the
Interfacer card and the terminal. Be sure to connect pin 1 on the
ri bbon cable by the index on the edge connector. Set the
terminal tor 9600 BAUD and upper case only. Now apply power. If
everything was done properly, you should see the Macsbug prompt
on the terminal:
MACSBUG 1.31
• If this does not appear, turn off the power and recheck all
connections and dip-switch settings. Be sure the Interfacer and
the terminal are set for identical BAUD rates. Try again. If
there is still no response please call Dual Systems.
The dip-switch settings on the CPU/68000 map the monitor
program to location 020000H and provide for the boot vectors to
be read from the ROMs. These switches are described fully in
this manual.
The Interfacer2 switch setting define the first port to be
at I/O location OH and the second port (for printer or host
computer) at I/O location 2H.
In order to configure the board for use wi th your terminal
and printer, the port 1 baud rate must be set for the speed of
the console terminal and the Port 2 baud rate must match the
speed of the printer or the connection to the host computer. In
the figure these rates are 9600 and 300 respectively. Parity and
stop bi ts are set for use wi th an ADM 3A or ADM 5 terminal. For
more information regarding baud rates, stop bits, parity etc.,
refer to the Godbout Interfacer I manual.
The CMEM is set to span memory locations OH to 7FFFH. The
stacks reside in the top 1 Kbyte of this memory, the exeptlon
vectors in the low 1 Kbytes and the middle is available for user
programs. The remaining switches are set to enable extended
addressing, initially enable the board, and to allow writing to
the board. For more details refer to the CMEM manual.
4
RI§
R2
RS
·VAI
CIO
o 00
Figure 1. Factory settings for switches 51 and 52, and jumpers on CPU/68000 board.
PORT B CONFIG:
~- ALTERNATE CONFIGURATION - PORT B AS PRINTER PORT
FACTORY CONFIGURATION - PORT B USED FOR COMMUNICATION WITH HOSr
OJ --
I
()
C1 +]
0 01 lX)OO
PORT A: 9600 BAUD
0
~N""
=lO;i, ". ~~ 0 • .0 ~I
,_
m 0 ..----- ..-
IC30-7805 ~ . . { 0".
OOT
0
....
~ -, • - -, • ~
o -ffD3 Ci PORT B: 300 BAUD ~~ : U "'-_---J
c=:::J ' UI , III • IC11-1602 COPYRIGHT 1979 GODBOUT ELECTRONICS IC18-1602
I C2 +)
M
U
~
U
c=::::>, . . . . . . . .) PO RT A
~
C==>
~ i
c:::> c:::=J
~
ED- (3 <3 -, R1:~DE IN USA !,C20-25LS2521 em J,~ ABC§ 'ABCJ1~
IC32-7812 10 40
20 30
Figure 2. Factory configuration of serial I/O board for operation with CPU/68000.
EXTENDED
ADDRESSING
[/16 BIT OPERATION ENABLED
ENABLED
ALL 32K ENABLED
Figure 3. Switch and jumper settings for CMEM series nonvolatile memories when used with CPU/68000.
ON-BOARD ROM
8
If the address translation feature is not desired, 81 should
be set to all zeros. In this case the address appearing on the
bus is identical to the processor's address lines. The user
must not disable this feature unless non-volatile (and
previously set) memory resides in the first 8 bytes of memory.
Switch 2
OFF ON
1) "EV" Read vectors from Read vectors from
OFF-BOARD memory ON-BOARD ROMS
at 31 address
2 ) "XV" Enable for ALL Enable ONLY for reset
system vectors. vectors.
3) "R" ROMs for vectors Enable ROMs when reading from
only. address space set by switch 1.
4) Unused. Unused.
Summary
The possible configurations are:
S2-1 32-3 Effect
OFF OFF Read exception vectors from off-board memory
starting at S1 address.
OFF ON Read exception vectors from off board memory
and program starting at 31 address from ROM.
ON OFF Read vectors only from ROM.
ON ON Read vectors and programs from ROM. Program
starts at 31 address.
For each of these configurations, if 32-2 is ON then
"vectors" only means the first two· boot vectors, otherwiS'e all
the system vectors (the first 64) are referred to.
Note that even though the program address space starts at
the 31 address, you must not overlap the program with the
exception vectors. If S2-2 is ON then the program can start at
location 08H, if 32-2 is OFF then the program must start after
location OFFH.
9
Exception Vector Assignment
Vector Address
Number(s) Dec Hex Space Assignment
0 .0 000 SP Reset: I nitial SSP
4 004 SP Reset: Initial PC
2 8 008 SD Bus Error
3 12 DOC SO Address Error
4 16 010 SO Illegal Instruction
5 20 014 SO Zero Divide
6 24 018 SO CHK Instruction
7 28 OlC SD TRAPV Instruction
8 32 020 SO Privilege Violation
9 36 024 SO Trace
10 40 028 SO Line 1010 Emulator
11 44 02C SO Line 1111 Emulator
12* 48 030 SO (Unassigned reserved)
13* 52 034 SO (Unassigned, reserved)
14* 5f) 038 SO :Unassigned, reserved)
15* 60 03C SO Unassigned reserved)
16·23* 64 040 SO Unassigned reserved)
95 05F -
24 96 060 SO Spurious Interrupt
25 100 064 SO Level 1 Interru pt Autovector
26 104 068 SO Level 2 Interrupt Autovector
27 108 06C SO Level 3 Interrupt Autovector
28 112 070 SO Level .:t Interrupt Autovector
29 116 074 SO Level 5 Interrupt Autovector
30 120 078 SO Level 6 Interrupt Autovector
31 124 07C SO Leve I 7 Interru pt Autovector
32·47 128 080 SO TRAP Instruction Vectors
191 OSF -
48·63* 192 OCO SO (Unassigned, reserved)
255 OFF -
64·255 256 100 SO User Interrupt Vectors
1023 3FF -
*Vector numbers 12 through 23 and 48 through 63 are reserved for future enhancements by
Motorola. No user peripheral devices should be assigned these numbers.
10
What happens on Power Up
After power up the 68000 loads the system stack pointer
and program counter from the first two exception vectors. These
two 32 bit vectors are stored in the least significant eight
bytes of memory. Since these vectors are required when power is
first applied, they should be stored in ROM. In this example,
the program counter vector points to location 020008H which is
the first instruction in the program in ROM, (after the boot
vectors).
If you wish to modify the moni tor, you could copy the
contents of the ROMS into another memory board, preferably
non-volatile RAM. (To read the ROMS, simply read from locations
20000 through 21 FFF.) Then you can modi fy the copy in RAM. To
execute the new version you must relocate the RAM to location
20000 and set S2-1 and S2-3 to OFF, so the monitor and the boot
vectors are read from the RAM. A sample program for a block move
is listed in Appendix D.
11
ADDRESS BUS
The processor board supports an extended 24 bit address bus.
This allows the CPU to directly address up to 16 megabytes of
memory. Such a vast address space eliminates the need for
cumbersome bank select schemes. Older boards responding to only
the 16 bit address bus may be used with this CPU but this would
restrict the total system address space to 64 kilobytes.
12
OFF02. So the above example could also be coded:
MOVE.B OFF02.W,DO
AO
The 68000 address bus directly drives A1 through A23. The
CPU / 68000 comes factory j umpered for the updated IEEE-696
standard. That is, the most significant byte of each word is
stored at an even address and the least significant byte is
stored at the next odd address. Note that instructions, operands,
stack data, address vectors etc. are all stored at even
addresses.
The definition of AO may be reversed by carefully cutting
the trace marked LO (Low Odd) and installing a jumper to the
pad marked LE (Low Even).
13
DATA BUS
The 68000 transfers data over a single 16 bit bidirectional
bus. Programs must reside in ,16 bit memory, however, data bytes
may be accessed from byte wide memory. Long words must be
transferred in sequential 16 bit bus cycles. Byte data is
transferred over the corresponding data lines; high order (even
address) bytes on D15-DB, low order (odd address) bytes on D7-DO.
The S-100 bus has two 8 bit data paths, Data Odd and Data
Even). For byte transfers data is sent over the Data Even bus
for write operations and over the Data Odd bus for read
operations. For word transfers Data Even and Data Odd are
ganged, forming a 16 bit bidirectional bus. During word bus
cycles the even (AO=O) byte is transferred over the Data Even bus
and the odd (AO= 1) byte over the Data Odd bus. On the 68000 the
even byte is most significant (D15-D8). If you have changed the
AO jumper on the CPU board then these definitions are reversed.
14
In general, ,the 68000 will relinquish control of the bus
after the current bus cycle. However, if HOLD is received just
before the start of a bus cycle, the 68000 will go ahead with the
bus cycle, relinquishing control after its completion.
The 68000 instruction TAS (Test And Set) results in
different CPU timing than other instructions. Motorola defines
it as a read-modify write cycle. The instruction results in
sequential read and write cycles on the S-100 bus. The two
cycles are indivisible, that is, the write cycle must follow the
read cycle. This type of instruction allows meaningful
communications wi thin a mu1 tiprocessor or mul tiprocessing
environment. TAS is designed to prevent transfer of bus control
until the entire instruction has completed execution. Note that
two distinct S-100 cycles are completed, but no interrupts or bus
requests will be accepted until the second cycle has completed.
INTERRUPTS
The 68000 has a powerful internal interrupt controller.
There are seven levels of interrupt priority. All except the
non-maskable interrupt are software maskable via the system
status word.
15
Appendix A
Selecting ROMS
The ROM type is selected by jumpers on H1. ROMs supported
are the 2716, 2732, 2516, and 2532. The CPU comes
configured for use wi th 2732 ROMs. Following is a diagram of H1:
G P P P ROM pins
N
D e 2
0
2
1
• • • •
• • • •
A A E + EN is active low
~
1 1 N
3 2
Examples:
,
:-: II
2716
• ~
2732
:-: I I
2516
: I I1
2532
16
Appendix B
Details of the S-100 bus Interface for the 68000
FUNCTION OF M1
Status signal sM1 is asserted during any program (as opposed
to data) fetch. Historically, sM1 indicated that the current bus
cycle would require four clock periods instead of three clock
periods. The extra clock period, required for instruction
decode, allowed time to refresh dynamic memory. With the 68000,
no assumption can be made about the length of a bus cycle based
on the level of sM1.
SIXTN Line
The CPU/68000 does not support seqential byte operations to
implement a sixteen-bit data transfer. Therefore it has no need
for the SIXTN line on the S-100 bus and it is ignored.
17
Appendix C
Special Configurations
Faster Memory Access When Used with Dual Systems Memories
When the CPU/68000 is used with the Dual Systems line of
FAST CMEM (Rev. B and later) memories, memory cycle time is
decreased by 25%. This allows the CPU/68000 to run at absolutely
full speed with no CPU wait states. This increased speed is
possible through the use of an asynchronous bus transfer
protocol. When the CPU commences a memory cycle, the CMEM
memories respond to a valid address on the·bus by asserting a
manufacturer-definable line (166) called FASTACK* and either
gates data onto or latches the data from the data bus.
Immediately after the CPU detects that FASTACK* has been
asserted, the processor completes the cycle.
If the memories being accessed do not respond with FASTACK*
a standard S-100 bus cycle is completed. Thus, both Dual FAST
CMEM and regular 16 bi t S-100 memories may be used in the same
system.
The CPU/68000 must have the pins 1abled "FAST" and "66"
jumpered together to enable fast mode.
Using the Phantom Line for System Protection
The 68000 is always in one of two modes: system mode or user
mode. When in user mode, it is usually desirable to not allow
the user access to anything which might impair the integrity of
the operating system or file system.
The CPU/68000 is capable of supporting a simple protection
scheme. Install a jumper between the pads marked "USER" and "PIt
(Phantom). When this jumper is installed, the Phantom line will
be asserted whenever the CPU is in user mode. Then any I/O
(especially disks) which should only be acessed when in system
mode can be set to disable themselves when the Phantom line is
asserted. In addi tion, memory that should only be seen read or
changed by the operating system- directly, can also be set to be
disabled when the phantom line is asserted.
18
Appendix D
A Few Utility Programs
This program performs a block move, enter it with:
AO Starting address of source
A1 Starting address of destination
A2 Last address to move +, 1
0000 32DB LP1: MOVW AO@+,A2@+ MOVE A WORD
0002 B1CA CMPL A2,AO DONE?
0004 6DFA BLTS·LP1 REPEAT
0006 4EF9 0002 OODB JMP /200DB .RETURN TO MACSBUG
19
MACSBUG OPERATING INSTRUCTIONS
1. INTRODUCTION
This document describes the operation of the MACSbug monitor after it has
been installed. It includes a complete description of all the commands
and examples of its use.
2. OPERATIONAL PROCEDURE
After the CPU/68000 board has been installed, as per the manual, the user
should perform the following:
MACSBUG 1.31
*
If these two lines do not print out, go back and check the CPU/68000 manual.
Check especially that the terminal and I/O board have the same BAUD rates.
Commands are entered the same as in most other buffer organized computer
systems. A standard input routine controls the system while the user types
a line of input. The delete (RUBOUT) key or control 'H' will delete the
last character entered. A control 'X' will cancel the entire line.
Control '0' will redisplay the line. Processing begins only after the
carriage return has been entered.
During output to the console the control 'W' will suspend the output until
another character is entered. The BREAK key will abort most commands.
where: * is the prompt from the monitor. The user does not
enter this. In the examples given, the lines beginning
with this character are lines where the user entered
a command.
1.
co is the necessary input for the command. Each
command has one or two upper case letters necessary
in its syntax. In the examples, the entire command
may be used, but only those letters in upper case
in the syntax definition are necessary.
mmand is the unnecessary part of the command. It is given
in the syntax definition only to improve readability.
If this part of the command was actually entered on
the command line, it would be ignored.
(Control A)
*MACSBUG* Message put out by MACSbug to indicate user is
now in MACSbug command mode
*READ ;=COPY FILE.MX,#CN Download from EXORciser host
*DM 1000 Display memory
001000 70 01 70 02 70 03 70 04 70 OS 4E F8 10 00 FF FF p.p.p.p.p.N •••••
*PC 1000 Set program counter to START
*TD CLEAR Clear the trace display
*TD PC.22 00.1 Specify which registers to print in display
*TD Print the trace display
PC=lOOO 00=00
*BR 1004 Set a breakpoint
*T TILL 0 Trace command
PC=1002 00=01
PC=1004 00=02 Stopped at breakpoint
:*GO
PC=1004 00=02 Stopped at breakpoint
* Program is ready to run
2.
3.6 MACSbug COMMAND SUMMARY
3·4
3.6.1 Set and Display Registers REGISTER DISPLAY
EXAMPLES COMMENTS
-
3·5
3.6.2 Display and Set Memory MEMORY DISPLAY
OM start end Display Memory in hex and ASCII where start < end
OM start count Where start> count
OM2 start end Send output to PORT 2
SM address data Set Memory to hex
SM address 'ASCII" Set Memory to ASCII
SM address data N The 'N' as the last character means start a new line; the system will
prompt with the current address
EXAMPLES COMMENTS
-OM 100020
001000 54 41 42 4C 45 20 20 200000 56 78 53 54 41 52 TABLE ..... VxSTAR
001010 54 20 20 20 00 02 34 5600 00 00 00 00 00 00 00 T ..... 4V ....... .
003030 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ................
·SM 1005 1234 N Global offset added to address 1005
00003037 ? AB
-OM 1000
003030 FF FF FF FF FF 12 34 AB FF FF FF FF FF FF FF FF ................
-SM 20000 AB CD EF Trying to set ROM
ERROR Error message
•
3·6
3.6.3 Open Memory for Read/Change OPEN MEMORY
OPen address Open memory at specified address and enter subcommand mode
SUBCOMMAND FORMAT
USER
ADDRESS CONTENT ENTERS COMMENTS
3-7
3.6.4 Define and Print Symbols SYMBOLS
SYmbol name hex value Put a symbol in the symbol table with a hex value or assign a new
value to a previously defined one. NAME can be 8 characters
long, consisting of: A·Z, 0·9, (period), and $ (dollar sign). It must
begin with letter (A·Z) or period.
SY -name Remove a symbol from the symbol table
SY name Print the current value of the symbol (absolute)
SY value Print the first symbol with the given value
SY Print the sorted symbol table
NOTE
EXAMPLES COMMENTS
·SYnT Print a value for symbol not in table, when not found, it tries to
T IS NOT A HEX DIGIT convert parameter to number
·SYS67 Attempt to print value for symbol not in table
00000567 =567
3·8
3.6.5 Displaying and Accessing Memory through Windows WINDOWS
A "window" is an effective address through which the user can "see" memory. The windows are
labeled WO to W7 and are defined using the syntax listed below. The windows address corresponding
memory locations labeled MO to M7 which use the same syntax as registers. These memory locations
can be examined, set or defined in the display the same as a register.
EXAMPLES COMMENTS
3-9
3.6.6 GO and Breakpoints GO,BREAKPOINT
EXAMPLES COMMENTS
(see example program on page 3·3)
EXAMPLES COMMENTS
3·11
3.6.8 Set the Trace Display Format (Blocks of Re&isters) TRACE DISPLAY
EXAMPLES COMMENTS
3·12
3.6.9 Tracine TRACE
EXAMPLES COMMENTS
(see example program on page 3·3)
3-13
3.6.10 Offset OFFSET
The 68000 instruction set lends itself to relocatability and position independence. A general purpose,
global offset feature has been provided. The single offset address applies to all of the commands
listed below. Registers displayed in the trace display may have the offset subtracted by using 'R' as
the format See paragraph 3.6.7 on trace display.
The offset may be overriden by entering a comma and alternate offset All commands do not use the
offset but any number can be forced to be relative (have the offset added) by entering an 'R' as the
last character of the number.
WARNING: This is a very simple offset feature and may not be able to solve complex relocation prob-
lems. The user is encouraged to experiment with the global offset and the window features to deter-
mine their limitations and usefulness in a particular application.
EXAMPLE COMMENTS
3·14
3.6.11 Number Base Conversion NUMBER CONVERSION
NOTE
EXAMPLES COMMENTS
3·15
3.6.12 Upload, Download and Verify LOAD
NOTE
EXAMPLE COMMENTS
(See example program on page 3·3)
3·16
3.6.13 Configure Ports SET TERMINALS
There are two serial ports numbered 1 and 2. The following commands
may program a specific port or if a port number is not used in the
command, both ports will be set by the cOl11T1and.
For port commands shown below, '#' may be either 1 for PORT 1 (console), or 2 for PORT 2 (host). If
the '#' field is left blank, the command applies to both ports.
BAUD NU CR
110 0 0 (default)
300 0 4
1200 3 $17
2400 7 $2F
NOTE
EXAMPLE COMMENTS
3·17
3.6.14 The CALL Command and Adding Commands to MACSbug CALL
There are two ways for the user to add commands. The simplest way is for the user to write the new
command as a subroutine which ends with an RTS. The user can then use the CAli command.
This command does not affect the user's registers and is not to be confused with the GO command.
The user may use a symbol as the command parameter instead of an absolute starting address. Reg·
isters A5 and A6 point to the start and end of the liD BUFFER (see RAM equate file listing, paragraph
3.11) so the user may pass additional parameters on the command line.
EXAMPLE COMMENTS
The second method of adding commands involves MACSbug's command table. There is a RAM loca·
tion CMDTABLE that is MACSbug's pointer to the start of the command table. The user may wish to
copy this table into RAM, add his own commands or change the names of the existing ones, and
change CMDTABLE to point to the new table.
The format of the table is very simple. Each command occupies six bytes in the table. The first two
bytes are the command name and the next four bytes are the starting address of the code. The com·
mands are not subroutines and all end by reentering the command decoder routine. The last entry in
the table has $FFFF as the two byte name.
There are two special characters that may be used in the name field. The '@' means that the com·
mand must contain an ASCII digit from 0 to 7 in that character position. The'·' is a wild character that
will match anything. For example, the use of the wild character '.' must follow after and not before a
similar command, such as 'TE' then 'T·'in the table.
3-18
3.6.15 Transparent Mode and Host Communication TRANSPARENT
COMMAND FORMAT DESCRIPTION
*... data ... Asterisk, '*', as the first character of the console input buffer means
transmit the rest of the buffer to the host (PORT2), the BAUD rates
DO NOT have to be the same
EXAMPLES COMMENTS
User talks directly to the host uses the editor, assembler, etc.
*MACSBUG* MACSbug prints this and system is ready for new command
3·19
3.7 1/0 SPECIFICATIONS
Provision has been made for the user to substitute his own 1/0 routines and direct the 1/0 for some
commands to these routines. There are three pairs of locations in RAM that hold the addresses of the
1/0 routines. (See paragraph 3.11 on the equate file of RAM locations used by MACSbug.) They are
initialized when the system is reset to contain the addresses of the default ACIA routines in ROM.
INPORTI and OUTPORTI are defaulted to ACIA #1 (PORT 1) which is the system console. The system
prompt, command entry, all error messages, and all other unassigned 1/0 use these addresses to find
the 1/0 routines. Most commands do .not need a port specifier to use PORT l. The REad and VErify
commands, however. default to PORT 2.
INPORT2 and OUTPORT2 are defaulted to ACIA #2 (PORT 2) which is the host system (an EXORciser
or timesharing system, etc.). Output or input is directed to this port by including a port specifier in
the command field of the command line.
The 2 in the command PU2 specifies that the addresses for the 1/0 routines will be found in the RAM
locations INPUT2 and OUTPUT2. Error messages, however, will be printed on PORT 1 - the system
console.
INPORT3 and OUTPORT3 are initialized to the same routine addresses as PORT 1 when the system is
reset The user can insert the addresses of his own 1/0 routines into these locations. 1/0 can then be
directed to his configuration by using a 3 in the command field.
3-20
3.8 USER 1/0 THROUGH TRAP 15
o Coded Breakpoint
1 PORT1 console Input line A5=A6 is start of buffer.
2 PORTI console Output line A5 to A6·1 is buffer.
3 PORT2 host Read line A5=A6 is start of buffer.
4 PORT2 host Print line A5 to A6·1 is buffer.
EXAMPLE PROGRAM:
•
• TEST OF TRAP 15 USER 1/0
•
00002000 ORG $2000 PROGRAM STARTS HERE
002000 2E7COOOO4oo0 START MOVE.L #$4000,A7 INITIAUZE STACK
002006 2A7COOOO201C MOVE.L #BUFFER,A5 FIX UP A5 & A6 FOR I/O
oo200c 2C4D MOVE.L A5,A6
•
oo2ooE 4E4F TRAP 15 INPUT BUFFER FROM CONSOLE
00210 0001 DC.W#1
•
002012 4E4F TRAP 15 PRINT BUFFER TO CONSOLE
002014 0002 OC.W#2
•
002016 4E4F TRAP 15 STOP HERE LIKE BREAKPOINT
002018 0000 OC.W#O
oo201A 6OE4 BRA START DO IT AGAIN
•
oo201C 0200 BUFFER DS.L 128 THIS IS THE 1/0 BUFFER
•
• EXAMPLE OF HOW TO PUT SYMBOLS IN SYMBOL TABLE
• (SEE RAM EQUATE FILE FOR EXACT VALUE OF STRSYM)
•
oo221C 53 SYMB OC.L'START ',START
002228 42 OC.L 'SUFFER ',SUFFER
00002234 SYMBE EQU·
00000570 ORGSTRSYM MACSBUG'S POINTERS TO
000570 0000221C OC.L SYMB,SYMBE START/ENDOFTABLE
END
3·21
3.9 GENERAL INFORMATION
The trace display print routine has a CRT screen control feature. There are two four byte parameters,
SCREENI and SCREEN2, that are listed in the RAM equate file. These parameters are normally null
but the user may set them to appropriate values for his particular brand of CRT. The four bytes of
SCREENI are printed before the trace display and the four bytes of 5CREEN2 are printed after the
display. Motorola EXQRterms use a $CO to 'home' the cursor. If this is put in 5CREENl, it will give the
effect of a stationary trace display.
TRAP ERROR is the general message given when an unexpected trap occurs. Nearly all of the low vec-
tors including the user traps, interrupts, divide by zero, etc. are initialized during the reset to point to
this simple error routine. No attempt is made to decipher which trap happened, but the user's regis·
ters are saved. The system usually retrieves the right program counter from the supervisor stack but
some exception traps push additional information on to the stack and the system will get the pro·
gram counter from the wrong place. It is recommended that the user's program reinitialize all unused
vectors to his own error handler.
The REad command may have problems in some configurations. No attempt is made to control the
equipment sending the information. When the system recognizes the end of a line it must process
the buffer fast enough to be able to capture the first character of the next line. Normally the system
can download from an EXORciser at 9600 BAUD. If the system is having problems, it might be worth·
while to experiment with lower BAUD rates.
The REad and PUnch used with cassette systems may also have speed problems. Typically the
cassette can record faster than the console can print The user may have to switch null padding
. profiles with the TErminal command when recording or reading a tape.
When sending data to the printer with the DM2 or PU2 type commands, additional nulls may be reo
Quired after each carriage return. The maximum number of nulls is 255 with the CR2 $FF command.
With high BAUD rates and slow printers. even this may not be enough. The BAUD rate may have to be
set down in some situations. A 6800 assembly language program is provided in paragraph 3.12 for
use with EXORciser host systems-that want to use the printer.
·The REad routine DOES NOT protect any memory locations. The routine will not protect itself from
programs trying to overlay the I/O buffer. This will, of course. lead to errors during the download. Any
location in memory can be loaded into, including MACSbug's RAM area. This allows the user to initial·
ize such locations as the starting and ending address of the symbol table. An example of this is given
with program listing in paragraph 3.8 on User liD through TRAP 15. All the registers may be
initialized except the program counter which takes its address from the 58 or S9 record.
The REad and PUnch commands support the normal SQ, 51, and S9 record formats. Two new formats
have been added to handle three byte addresses. The 52 record is the new data record, exactly the
same as the 51 except for an extra address byte. The 58 is the upgraded version of the 59.
TRAP 15 is used by both the user liD feature and breakpoints. When the program is running, the
address of the breakpoint routine is normally in the TRAP 15 vector. When program execution is
stopped, the liD routine address is normally inserted into TRAP 15 vector. If 1/0 is not needed in the
program, the user may change the vector with the SM command. If breakpoints are not needed, the
program may change the vector while the program is running. It is recommended, however, that the
user should use the other 15 vectors (or other programming techniques) and let MACSbug control
TRAP 15.
·NOTE: RESET SSP,PC are actually stored in ROM at addresses 20000 and 20004.
3·23
Warranty and Service
Dual Systems Control Corporation guarantees its products, under to Dual Systems Control Corporation, transportation charges pre-
normal use and service as described in the manufacturer's product paid by customer. This warranty does not apply to any eqUipment
literature, free from defects in material and workmanship. for a that has been repaired or altered, except by Dual Systems Control
period of one year from date of shipment. This warranty is limited to Corporation, or which has been misused or damaged by accident.
the repair or replacement of the product. or any part of the product In no case shall the manufacturer's liability exceed the original cost
found to be defective at the manufacturer's factory, when retume9 of the product.