Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 1



1                        ; $Id: adm.asm,v 1.50 1996/09/09 21:59:29 cgregg Exp $
2                        ;       SECTION         monitor
3                                  include "adm.h"
4                        ; $Id: adm.h,v 1.27 1996/09/10 15:41:22 cgregg Exp $
5                                  opt     cex,loc,cre,mu,nomsw,lb,mex
6                                  page    133,66,0,0
7                        ;****************************************************************************
8                        ;       MULTIPLE ARCHITECTURE COMMAND CONVERTER PROGRAM
9                        ;
10                       ;       MOTOROLA RESERVES THE RIGHT TO MAKE CHANGES WITHOUT FURTHER
11                       ;       NOTICE TO THE PROGRAM HEREIN TO IMPROVE RELIABILITY, FUNCTION
12                       ;       OR DESIGN.  MOTOROLA DOES NOT ASSUME ANY LIABILITY ARISING OUT
13                       ;       OF THE APPLICATION OR USE OF THE PROGRAM HEREIN; NEITHER DOES
14                       ;       IT CONVEY ANY LICENSE UNDER ITS PATENT RIGHTS NOR THE RIGHTS
15                       ;       OF OTHERS.
16                       ;
17                       ;       THIS PROGRAM IS USED TO TRANSFER DATA TO/FROM THE
18                       ;       THE HOST COMPUTER TO THE TARGET. THE COMMAND CONVERTER
19                       ;       RECEIVES HOST HIGH LEVEL COMMANDS AS DEFINED IN THE
20                       ;       target ADS.  THE CONVERTER THEN SENDS A SEQUENCE OF
21                       ;       INSTRUCTIONS TO THE target OnCE PORT TO INTERPRET
22                       ;       THE COMMAND.  THE COMMAND CONVERTER IS A DSP56000 WHICH
23                       ;       USES THE SSI PORT TO COMMUNICATE WITH THE OnCE PORT AND THE
24                       ;       HOST INTERFACE PORT TO COMMUNICATE WITH THE HOST COMPUTER.
25                       ;
26                       ;       SEQUENCING OF THE OnCE INSTRUCTIONS ADHERE TO AN INTERNAL
27                       ;       FORMAT.  THE LOWER BYTE OF THE Y INTERNAL RAM IS USED TO
28                       ;       DEFINE WHAT MUST BE DONE TO ACCOMPLISH THE CORRECT TRANSFER
29                       ;       PROTOCOL WITH THE OnCE PORT.  THE UPPER TWO BYTES OF THE 24
30                       ;       BIT WORD ARE USED AS OnCE COMMANDS OR target INSTRUCTIONS.
31                       ;       THE LOWER BYTE IS USED BY THE OnCE COMMUNICATION ROUTINES TO
32                       ;       SEND/STORE DATA AS WELL AS TERMINATE THE TRANSFER.
33                       ;
34        000265         REV       equ     $0265                             ;REVISION 6.13
35                       ;       WRITTEN BY      DAVID GONZALES
36                       ;                       CHRIS GREGG
37                       ;
38                       ;*******************************************************************
39                       ;       There are two types of breakpoints that may be set using the OnCE
40                       ;       controller. These are hardware breakpoints and software breakpoints.
41                       ;       Hardware breakpoints use comparator logic on-chip which monitors
42                       ;       the address bus.  When the address falls within a high and low
43                       ;       boundary the debug mode of operation is entered and the command
44                       ;       converter is requested for service.
45                       ;
46                       ;       Software breakpoint types are described as conditional
47                       ;       statements (debugcc) which examine the status register and if the
48                       ;       particular condition is true, the debug mode of operation
49                       ;       is entered. The type is an offset to the correct opcode
50                       ;       to be entered in the user program memory map.
51                       ;
52                       ;       Type            offset          condition
53                       ;       ----            ------          ---------
54                       ;       debugcc/hs      0               carry clear      (C=0)
55                       ;       debugcs         1               carry set        (C=1)
56                       ;       debugeq         2               equal            (Z=1)
57                       ;       debugge         3               greater or equal (N and V = 0)
58                       ;       debuggt         4               greater than     (Z or (N and V) = 0)
59                       ;       debughi         5               higher           (Z or C = 0)
60                       ;       debugle         6               less or equal    (Z or (N and V) = 1)
61                       ;       debugls         7               lower or same    (Z or C = 1)
62                       ;       debuglt         8               less than        (N or V = 1)
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.h  Page 2



63                       ;       debugmi         9               minus            (N = 1)
64                       ;       debugne         10              not equal        (Z = 0)
65                       ;       debugpl         11              plus             (N = 0)
66                       ;       debugvc         12              overflow clear   (V = 0)
67                       ;       debugvs         13              overflow set     (V = 1)
68                       ;       debugal         14              always true      N.A.
69                       ;*******************************************************************
70        000000         RESET     equ     $0000                             ;RESET VECTOR ADDRESS (MODE 1)
71                       ;*********************************************************
72                       ;       SSI STATUS REGISTER BITS
73                       ;*********************************************************
74        000007         RDF       equ     7                                 ;receive data reg. full
75        000006         TDE       equ     6                                 ;transmit data reg. empty
76        000005         ROE       equ     5                                 ;receive overrun error
77        000004         TUE       equ     4                                 ;transmit underrun error
78        000003         RFS       equ     3                                 ;receive frame sync flag
79        000002         TFS       equ     2                                 ;transmit frame sync flag
80        000001         IF1       equ     1                                 ;input flag 1
81        000000         IF0       equ     0                                 ;input flag 0
82                       ;*********************************************************
83                       ;       SSI CRA REGISTER BITS
84                       ;*********************************************************
85        00000E         SSI16_24  equ     $e                                ;WL1 bit dictates 16/24 bit length
86        00000D         SSI12_24  equ     $d                                ;WL0 bit dictates 12/24 bit length
87        00000E         WL1       equ     $e                                ;WL1 - CRA word length (msb) 00=8  01=12
88        00000D         WL0       equ     $d                                ;WL0 - CRA word length (lsb) 10=16 11=24
89     
90                       ;*************************************************************************
91                       ;       DATA BUS PINS USED AS INPUTS
92                       ;*************************************************************************
93        000012         SELECT    equ     18                                ;D<18>
94        000013         RS232     equ     19                                ;D<19>
95        000014         INT_ACK   equ     20                                ;D<20>
96        000015         H_ACK     equ     21                                ;D<21>
97        000016         H_REQ     equ     22                                ;D<22>
98                       ;*********************************************************
99                       ;       COMMAND CONVERTER PORT B OUTPUT BIT NUMBERS
100                      ;       PORT B DATA BITS 0-7 ARE USED TO TRANSFER DATA.
101                      ;*********************************************************
102       00000A         ADM_REQ   equ     10                                ;Port B output
103       000009         ADM_INT   equ     9                                 ;Port B output
104       000008         ADM_ACK   equ     8                                 ;Port B output
105       00000B         DIR       equ     11                                ;Port B output
106       00000C         JTAGPORT  equ     12                                ;informs pal if device is
107                                                                          ;  jtag or once
108       00000D         TMS0      equ     13                                ;TMS0 output control line
109       00000E         TMS1      equ     14                                ;TMS1 output control line
110                      ;*********************************************************
111                      ;       COMMAND CONVERTER PORT C INPUT/OUTPUT BIT NUMBERS
112                      ;*********************************************************
113       000000         SCIRX     equ     0                                 ;Port C SCI RX input
114       000001         SCITX     equ     1                                 ;Port C SCI TX output
115       000003         H_BRK     equ     3                                 ;Port C output
116       000004         ORESET    equ     4                                 ;Port C output
117       000005         DEBUGREQ  equ     5                                 ;Port C output
118       000006         DSCK      equ     6                                 ;Port C SCK are dsck outputs
119       000007         DSO       equ     7                                 ;Port C SRD are dso inputs
120       000008         DSI       equ     8                                 ;Port C STD are dsi outputs
121                      ;**********************************************************
122                      ;       PORT B & C I/O CONFIGURATION
123                      ;       Currently PB12 is now used to distinguish between once and jtag devices.
124                      ;       This is a kludge due to lack of i/o pins available and having to toggle
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.h  Page 3



125                      ;       trst via pb9 only when pb12 is high.  pb12 is called jtagport.
126                      ;**********************************************************
127       007F00         BDDRIN    equ     $7f00                             ;outputs=ADM_REQ,ADM_INT,
128                                                                          ;  ADM_ACK,DIR,TMS0,TMS1
129       007FFF         BDDROUT   equ     $7fff                             ;all outputs including
130                                                                          ;  8 bit data port
131       007000         BOUT      equ     $7000                             ;TMS0=1,TMS1=1,default to jtag
132                                                                          ;  part(pb12=1),all others = 0
133       00017C         CIO       equ     $17c                              ;inputs=SELECT,outputs=H_BRK,
134                                                                          ;  ORESET,TDI/DSI
135    
136    
137       040001         PLLIN     equ     $40001                            ;preset pll for multiplier of
138                                                                          ;  2 x 20mhz
139                      ;**********************************************************
140                      ;       56001 PERIPHERAL REGISTER DEFINITIONS
141                      ;**********************************************************
142                                define  INPUTS    'y:$fff0'               ;dummy address-data bus 18-22 inputs
143                                define  PBC       'x:$ffe0'               ;port b control
144                                define  PCC       'x:$ffe1'               ;port c control
145                                define  PBDDR     'x:$ffe2'               ;port b ddr
146                                define  PCDDR     'x:$ffe3'               ;port c ddr
147                                define  PBD       'x:$ffe4'               ;port b data
148                                define  PCD       'x:$ffe5'               ;port c data
149                                define  CRA       'x:$ffec'               ;ssi control reg. a
150                                define  CRB       'x:$ffed'               ;ssi control reg. b
151                                define  SSISR     'x:$ffee'               ;ssi status reg.
152                                define  RX        'x:$ffef'               ;ssi receive reg.
153                                define  TX        'x:$ffef'               ;ssi transmit reg.
154                                define  PCTL      'x:$fffd'               ;pll control register
155                                define  BCR       'x:$fffe'               ;bus control register
156                                define  IPR       'x:$ffff'               ;interrupt priority reg.
157                      ;****************************************************************************
158                      ;       BIT ASSIGNMENTS WITHIN THE FLAGS WORD
159                      ;****************************************************************************
160       000000         DEBUGMODE equ     0                                 ;debug mode flag, target in debug
161                                                                          ;  mode if set
162       000001         OnCEREQ   equ     1                                 ;OnCE req flag, target requesting
163                                                                          ;  service if set
164       000002         CLEANUP   equ     2                                 ;target reg clean up flag, restore
165                                                                          ;  registers on target if set
166       000003         JTAGDEV   equ     3                                 ;jtag type device if set
167       000004         TMS0FLAG  equ     4                                 ;tms0 flag, use tms0 if set
168       000005         TMS1FLAG  equ     5                                 ;tms1 flag, use tms1 if set
169       000006         POLLSTATUS equ    6                                 ;poll status if set
170       000007         CMDFLAG   equ     7                                 ;ONCE command flag, send 8 bit
171                                                                          ;   command if set
172       000008         STATUSBUSY equ    8                                 ;devices in chain are busy if set,
173                                                                          ;  else all in debug mode
174       000009         POLLSTAT  equ     9                                 ;status poll flag, set when status
175                                                                          ;  needs to be checked in JTAG
176       00000A         DATAFLG   equ     10                                ;data flag bit used to shift in data
177                                                                          ;  from TDO pin.
178       00000B         DEV96K    equ     11                                ;96k  device flag
179       00000C         DEV56K    equ     12                                ;56k  device flag
180       00000D         DEV561K   equ     13                                ;56100 device flag
181       00000E         DEV563K   equ     14                                ;56300 device flag
182       00000F         DEV56L1K  equ     15                                ;56lp16 device flag
183       000010         DEV568K   equ     16                                ;56800 device flag
184       000011         STACKERR  equ     17                                ;Stack error flag
185       000012         ILLEGERR  equ     18                                ;illegal opcode error flag
186       000013         TIMEOUT   equ     19                                ;timeout error flag
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.h  Page 4



187       000014         JTAGFLAG  equ     20                                ;jtag port if set
188       000015         ACTVMODE  equ     21                                ;MODE setting (1 in debug, 0 otherwise)
189                      ;****************************************************************************
190                      ;       BIT ASSIGNMENTS WITHIN THE FLAG2 WORD
191                      ;****************************************************************************
192       000000         POLLENABLE equ    0                                 ;polling of status enabled if 1
193                      ;***************************************************************
194                      ;       MISC. EQUATES
195                      ;***************************************************************
196       D00000         DEBUGSTAT equ     $D00000                           ;value to compare when polling status
197       00C000         LOADADDR  equ     $C000                             ;start location of EPROM
198       000000         JTAGTDI   equ     $0                                ;Data write for BANGBIT (TDI)
199       000001         JTAGTDIV  equ     $1                                ;valid bit for JTAGTDI
200       000002         JTAGTDO   equ     $2                                ;Data read from BANGBIT (TDO)
201       000003         JTAGTDOV  equ     $3                                ;valid bit for JTAGTDO
202       000004         JTAGLAST  equ     $4                                ;Device closest to TDO active
203                      ;************************************************************************
204                      ;       The first 16 locations of X memory are used for storing variables
205                      ;       56001 "SCRATCH PAD" DEFINITIONS
206                      ;**********************************************************
207                                define  LOOPCOUNT 'x:$0'                  ;loop count
208                                define  FLAGS     'x:$1'                  ;debug mode status flag
209                                define  YPTR      'x:$2'                  ;y memory pointer
210                                define  YTEMP     'x:$3'                  ;temporary scratch pad area
211                                define  XPTR      'x:$4'                  ;x memory pointer
212                                define  SSIMOD    'x:$5'                  ;ssi mode settings
213                                define  SSICLK    'x:$6'                  ;variable ssi clock speed
214                                define  DEVICE    'x:$7'                  ;target device type. 0=32,1=24,2=16bit,
215                                define  MARKER    'x:$8'                  ;current revision
216                                define  CLKRATE   'x:$9'                  ;defines manual clock rate
217                                define  TMSCLKS   'x:$a'                  ;defines number of TMS clocks to send
218                                define  DEVCNT    'x:$b'                  ;defines number of devices in jtag chain
219                                define  DEVACTIVE 'x:$c'                  ;defines active devices
220                                define  DEVTMP    'x:$d'                  ;define scratch area for device active
221                                define  DATACLKS  'x:$e'                  ;defines number of clocks to
222                                                                          ;  send/receive Data
223                                define  ICLKS     'x:$f'                  ;defines number clocks to send
224                                                                          ;  (instructions) /receive (status)
225                                define  STATCNT   'x:$10'                 ;defines the JTAG status polling count
226                                define  STATVAL   'x:$11'                 ;defines the status of the current
227                                                                          ;  command executed aa = OK
228                                define  STATCMP   'x:$12'                 ;defines the status value to compare to
229                                define  ONCECNT   'x:$13'                 ;defines the OnCE status polling count
230                                define  ILENGTH   'x:$14'                 ;defines the jtag instruction length
231                                define  JTAGDATA  'x:$15'                 ;defines the jtag data value to send
232                                define  PLLVAR    'x:$16'                 ;pll holding register
233                                define  BCRVAL    'x:$17'                 ;variable bcr value
234                                define  TEMPAREA  'x:$18'                 ;temporary holding area
235                                define  SAVEACTIV 'x:$19'                 ;x:$c save location
236                                define  JTAGCMD1  'x:$1A'
237                                define  JTAGCMD2  'x:$1B'
238                                define  JTAGCMD3  'x:$1C'
239                                define  DEVSERVICE 'x:$1D'                ;device number requesting service
240                                define  FLAG2     'x:$1E'                 ;extra FLAG bits
241                                define  USRTMP    'x:$1F'                 ;temp storage of user list
242                                define  USRLIST   'x:$20'                 ;List of devices in user mode to poll
243                                define  JTAGBDAT  'x:$21'                 ;JTAG single bit data storage
244                                define  ACTIVECMD 'x:$22'                 ;JTAG/OnCE command to send to an
245                                                                          ;  active device in upper 4/8 bits
246                                define  INACTIVECMD 'x:$23'               ;JTAG/OnCE command to send to an
247                                                                          ;  inactive device (BYPASS)
248                                define  CURDEV    'x:$24'                 ;Temp - hold number of device being
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.h  Page 5



249                                                                          ;  talked to but possibly not active
250                                define  DEVNUMA   'x:$25'                 ;Device NUMBER which is active
251                                define  SAVENUMA  'x:$26'                 ;save Device NUMBER which is active
252       X:0000                   org     x:0
253       X:0000 000000  SCRATCH   bsc     $30,0
254                      ;*********************************************************************
255                      ;       THE FOLLOWING TABLE IS USED FOR HOLDING THE
256                      ;       EPROM ADDRESS LOCATIONS OF DIFFERENT SEQUENCES
257                      ;       FOR EACH OF THE ARCHITECTURES.
258                      ;*********************************************************************
259       000030         TABLE     equ     *
260  d    X:0030 000000  RPLOOP    dc      0                                 ;offset to execute p read opcode
261  d    X:0031 000000  RXLOOP    dc      0                                 ;offset to execute x read opcode
262  d    X:0032 000000  RYLOOP    dc      0                                 ;offset to execute y read opcode
263  d    X:0033 000000  WLOOP1    dc      0                                 ;offset to execute write opcode
264  d    X:0034 000000  WPLOOP    dc      0                                 ;offset to execute pmem write opcode
265  d    X:0035 000000  WXLOOP    dc      0                                 ;offset to execute xmem write opcode
266  d    X:0036 000000  WYLOOP    dc      0                                 ;offset to execute ymem write opcode
267  d    X:0037 000000  GETREG    dc      0                                 ;offset to reg. read opcode
268  d    X:0038 000000  PUTREG    dc      0                                 ;offset to reg. write opcode
269  d    X:0039 000000  OGETREG   dc      0                                 ;offset to OnCE reg. read
270  d    X:003A 000000  OPIPE     dc      0                                 ;offset to OnCE pipe reg. write
271  d    X:003B 000000  OPUTREG   dc      0                                 ;offset to OnCE reg. write
272  d    X:003C 000000  REGRDSEQ  dc      0                                 ;offset to reg. read command
273  d    X:003D 000000  REGWRSEQ  dc      0                                 ;offset to reg. write command
274  d    X:003E 000000  PREADSEQ  dc      0                                 ;offset to p read command
275  d    X:003F 000000  XREADSEQ  dc      0                                 ;offset to x read command
276  d    X:0040 000000  YREADSEQ  dc      0                                 ;offset to y read command
277  d    X:0041 000000  PWRITSEQ  dc      0                                 ;offset to p write command
278  d    X:0042 000000  XWRITSEQ  dc      0                                 ;offset to x write command
279  d    X:0043 000000  YWRITSEQ  dc      0                                 ;offset to y write command
280  d    X:0044 000000  GOSEQ     dc      0                                 ;offset to go command sequence
281  d    X:0045 000000  REPSEQ    dc      0                                 ;offset to repeat loop for blk writes
282  d    X:0046 000000  RESTORE   dc      0                                 ;offset to restore regs. used
283  d    X:0047 000000  RSAVE     dc      0                                 ;offset to save regs. used
284  d    X:0048 000000  RESTOR56  dc      0                                 ;offset to restore x0,m0,r0,bpmrl,bpmrh
285  d    X:0049 000000  SAVE566   dc      0                                 ;offset to save x0,m0,r0,bpmrl,bpmrh
286  d    X:004A 000000  GOSEQ2    dc      0
287                      ;**************************************************************************
288  d    X:004B 000000  OFFSET    dc      0                                 ;offset in y memory for mem read/write addr
289  d    X:004C 000000  WVOFFSET  dc      0                                 ;offset in y memory for mem write value
290  d    X:004D 000000  WLOOP     dc      0                                 ;offset in y memory for write loop
291  d    X:004E 000000  WLOOPVAL  dc      0                                 ;offset in y memory for write loop value
292  d    X:004F 000000  LOCREGVAL dc      0                                 ;offset in y memory for reg. write value
293  d    X:0050 000000  X0VAL1    dc      0                                 ;offset in y memory for return x0 value
294  d    X:0051 000000  R0VAL1    dc      0                                 ;offset in y memory for return r0 value
295  d    X:0052 000000  M0VAL1    dc      0                                 ;offset in y memory for return m0 value
296  d    X:0053 000000  PWWLOOP1  dc      0                                 ;offset in y mem for pwrite loop
297  d    X:0054 000000  XWWLOOP1  dc      0                                 ;offset in y mem for xwrite loop
298  d    X:0055 000000  YWWLOOP1  dc      0                                 ;offset in y mem for ywrite loop
299    
300       P:1100                   org     p:$1100
301       P:1100 000000  JMPTABL   bsc     48,0                              ;48 locations for command jump table
302       X:0056                   org     x:
303                      ;SAVETEMP        bsc     16,0    ;scratch area for saving registers used
304  d    X:0056 000000  SAVETEMP  dc      0                                 ;scratch area for saving registers used
305       000057         SAVEREG   equ     *                                 ;area for saving OnCE read data
306                      ;*************************************************************************
307                      ;       The two variables for the ssi bit rate and setup are the following
308                      ;*************************************************************************
309       000008         CRAVAL    equ     8                                 ;prescale of 0, 8 bit word, sys clk/4
310       003E20         CRBVAL    equ     $3e20                             ;gated clk, no rx/tx irqs.
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.h  Page 6



311       003E60         CRBLSB    equ     $3E60                             ;gated clock, no rx/tx irqs, LSB first for JTAG
312    
313       000110         BCRDEFAULT equ    $110                              ;default bcr value
314       040001         PLLDEFAULT equ    $40001                            ;default pll is 8mhz x 10
315                      ;*************************************************************************
316                      ;       The following equates represent values for TMS so that
317                      ;       the JTAG state machine can be sequenced to its proper states.
318                      ;       A maximum of 16 bits can be sent from lsb to msb on the upper
319                      ;       16 bits of the constant, while the lower 8 bits dictate the
320                      ;       number of clocks to toggle.
321                      ;*************************************************************************
322       800003         IDLE_SDR  equ     $800003                           ;3 clocks from idle to shift-dr
323       800002         EXIT_IDLE equ     $800002                           ;2 clocks from exit1 to idle
324       C00004         IDLE_SIR  equ     $C00004                           ;4 clocks from idle to shift-ir
325       F80005         JTAG_RESET equ    $f80005                           ;5 clocks from anywhere to reset state
326       FC0008         JRESET_IDL equ    $fc0008                           ;8 clocks forces jtag reset then to idle state
327       FB000A         JRESET_SIR equ    $fb000a                           ;10 clocks from jtag reset to shift-ir
328       800001         SHIFT_EXIT equ    $800001                           ;1 clock from SHIFT to EXIT1
329       C00003         SHIFT_IDLE equ    $c00003                           ;3 clocks from shift to idle
330       000001         RESET_IDLE equ    $000001                           ;1 clock from RESET to IDLE
331                      ;*************************************************************************
332                      ;       The following equates represent the OS0 and OS1 flag values
333                      ;       when the STATPOLL routine is called to examine whether a
334                      ;       DSP or group of DSPs have completed their DSP instruction
335                      ;       or whether they are in the debug mode.
336                      ;*************************************************************************
337       000000         NORMAL    equ     $0                                ;DSP running out of internal memory normally
338       000001         STOP      equ     $1                                ;DSP is in STOP mode
339       000002         BUSY      equ     $2                                ;DSP is busy executing an instruction
340                                                                          ;  (TA/wait states)
341       000003         DEBUG     equ     $3                                ;DSP is in debug mode waiting for an instruction
342                      ;*************************************************************************
343                      ;       The following equates represent the JTAG Instruction Register
344                      ;       in the upper 8 bits and the number of clocks -1 in the lower 8 bits.
345                      ;       The assumption in the following codes is that there is only one
346                      ;       device to communicate with and the last data clock be toggled when
347                      ;       exiting the shift state.
348                      ;*************************************************************************
349       000003         EXTEST    equ     $0003                             ;extest enables the boundary scan register
350       000103         SAMPLE    equ     $0103                             ;sample/preload data or boundary scan outputs
351       000203         IDCODE    equ     $0203                             ;IDregister enabled between TDI and TDO
352       000303         EX_PULLUP equ     $0303                             ;extest eanbled with weak pullup on inputs
353       000403         HIGHZ     equ     $0403                             ;enable high z on all outputs
354       000503         CLAMP     equ     $0503                             ;clamp/bypass last value on outputs
355       000603         E_ONCE    equ     $0603                             ;enable once registers onto the TDI and TDO
356       000703         DEBUG_R   equ     $0703                             ;send a debug request signal to the core
357       000F03         BYPASS    equ     $0f03                             ;enable bypass mode
358       009E07         DUMB_CMD  equ     $9e07                             ;dummy OnCE command to get OSR value in 8 clocks
359       008007         READ_OSCR equ     $8007                             ;read oscr from onyx/lp16
360                      ;****************************************************************************
361                      ;       The following equates represent the JTAG Instruction Register
362                      ;       in the uppoer 8 bits and the number of clocks in the lower 8
363                      ;       bits.  The assumption in the following codes is that there is
364                      ;       multiple devices and the serial stream will be terminated by a
365                      ;       code which will be -1 clock so the last bit can be shifted when
366                      ;       transitioning to exit state.
367                      ;****************************************************************************
368       000004         MEXTEST   equ     $0004                             ;extest enables the boundary scan register
369       000104         MSAMPLE   equ     $0104                             ;sample/preload data or boundary scan outputs
370       000204         MIDCODE   equ     $0204                             ;IDregister enabled between TDI and TDO
371       000304         MEX_PULLUP equ    $0304                             ;extest eanbled with weak pullup on inputs
372       000404         MHIGHZ    equ     $0404                             ;enable high z on all outputs
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.h  Page 7



373       000504         MCLAMP    equ     $0504                             ;clamp/bypass last value on outputs
374       000604         ME_ONCE   equ     $0604                             ;enable once registers onto the TDI and TDO
375       000704         MDEBUG_R  equ     $0704                             ;send a debug request signal to the core
376       000F04         MBYPASS   equ     $0f04                             ;enable bypass mode
377       009E08         MDUMB_CMD equ     $9e08                             ;dummy OnCE command get OSR value in 8 clocks
378       008008         MREAD_OSCR equ    $8008                             ;read oscr from onyx/lp16
379    
380       P:1000                   org     p:$1000
381       001000         JIRTABLEp equ     *                                 ;pointer to table
382  d    P:1000 001000  JIRTABLE  dc      *
383       P:1001 000004  JIRDATA   bsc     24,4                              ;space allocated and initilized to 4
384    
385                      ;*************************************************************************
386                      ;       THE MONITOR ROUTINE GETS COMMANDS FROM THE HOST AND EXECUTES THEM.
387                      ;       THE MAIN REASON MOST COMMANDS ARE 9 BYTES LONG IS BECAUSE IT MAKES
388                      ;       THE DRIVER SOFTWARE ON THE HOST COMPUTER EASIER TO WRITE AND MAINTAIN.
389                      ;       THE FOLLOWING COMMANDS PERTAIN TO USER SOFTWARE/HARDWARE DEBUG.
390                      ;
391                      ;            THE COMMAND TYPES ARE:     BYTES IN COMMAND
392                      ;               GO IMMEDIATE=10         9 - command,4 byte PIIB/JMP Opcode,
393                      ;                                               4 byte PDB/JMP Operand
394                      ;               GO DELAYED = 11         10 - command,4 byte PIIB/JMP Opcode,
395                      ;                                               4 byte PDB/JMP Operand, trigger
396                      ;               PMEM READ  = 12         9 - command,4 byte addr. start,
397                      ;                                               4 byte count
398                      ;               PMEM WRITE = 13         9 - command,4 byte addr. start,
399                      ;                                               4 byte count ***block fill***
400                      ;               XMEM READ  = 14         9 - "   "       "
401                      ;               XMEM WRITE = 15         9 - "   "       " ***block fill***
402                      ;               YMEM READ  = 16         9 - "   "       "
403                      ;               YMEM WRITE = 17         9 - "   "       " ***block fill***
404                      ;               REG  READ  = 18         9 - command,4 byte offset,4 byte count
405                      ;               REG  WRITE = 19         9 - "   "       "    "     "    "
406                      ;               PMEM WRITE = 1a         9 - "   "       " ***different values***
407                      ;               XMEM WRITE = 1b         9 - "   "       " ***different values***
408                      ;               YMEM WRITE = 1c         9 - "   "       " ***different values***
409                      ;
410                      ;       THE FOLLOWING COMMANDS ARE FOR EXECUTION OF USER DEFINED
411                      ;       ONCE COMMAND SEQUENCES.  THEY ARE MEANT FOR THE USER TO
412                      ;       HAVE DIRECT ACCESS TO THE ONCE PORT FOR DEVELOPING THEIR
413                      ;       OWN UNIQUE COMMAND MACROS. THEY ARE ALSO USED FOR ACCESSING
414                      ;       ONCE REGISTERS THAT ARE USED TO SET UP BREAKPOINTS AND GIVE
415                      ;       CURRENT STATUS OF THE ONCE CONTROLLER.  THESE COMMANDS ARE ALSO
416                      ;       USED FOR CONTROLLING THE OnCE HARDWARE BREAKPOINT REGISTERS/COUNTER
417                      ;       AND THE TRACE COUNTER.
418                      ;
419                      ;          THE COMMAND TYPES ARE:               BYTES IN COMMAND
420                      ;               READ ONCE REG.          = 1d    3 - command, 1 byte offset,
421                      ;                                                       1 byte count
422                      ;               WRITE ONCE REG.         = 1e    3 - command,1 byte offset,
423                      ;                                                       1 byte count
424                      ;     (Step)    TRACE SEQUENCE          = 1f    2 - command,1 byte count
425                      ;     (Go)      RUN SEQUENCE            = 20    2 - command,1 byte Y mem addr
426                      ;               SAVE PIPELINE           = 21    1 - command
427                      ;
428                      ;     (Display) READ SEQUENCE           = 22    2 - command,1 byte count
429                      ;     (Load)    WRITE SEQUENCE          = 23    2 - command,1 byte count
430                      ;               READ MISC. REG.         = 24    2 - command,1 byte offset
431                      ;               WRITE MISC. REG.        = 25    2 - command,1 byte offset
432                      ;               FORCE RESET             = 26    2 - command, 1 byte reset type
433                      ;               FORCE BREAK             = 27    1 - command
434                      ;               EXECUTE PMEM OVERLAY    = 28    1 - command
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.h  Page 8



435                      ;
436                      ;               JTAG_RESET_STATE_MACH   = 29    2 - command,1 byte reset type
437                      ;               JTAG_BREAK              = 2a    2 - command,1 byte break path
438                      ;               JTAG_RESET              = 2b    2 - command,1 byte reset path
439                      ;               EXEC_FROM_ADDR          = 2c    3 - command,2 byte address
440                      ;
441                      ;               READ_FIFO               = 2d    1 - command
442                      ;               POLL_STATUS(JTAG)       = 2e    1 - command
443                      ;
444                      ;
445                      ;       THE COMMAND CONVERTER MUST KEEP TABS ON WHEN THE TARGET IS IN
446                      ;       THE DEBUG MODE.  x:$1 ACTS AS A STATUS WORD TO KEEP TRACK OF
447                      ;       WHEN THE TARGET IS IN DEBUG MODE, NEEDS TO SERVICE A TARGET
448                      ;       REQUEST, ETC.  THE DEBUGMODE FLAG IS SET WHEN THE DEBUG REQUEST
449                      ;       PIN IS ASSERTED OR WHEN THE TARGET ENTERS THE DEBUG MODE AND
450                      ;       REQUESTS SERVICE FROM THE CONVERTER.  THIS FLAG IS CLEARED WHEN
451                      ;       THE TRACE,GO OR RESET COMMANDS ARE EXECUTED.
452                      ;
453                      ;       THERE ARE THREE RESET COMMANDS ON THE ADS USER INTERFACE.
454                      ;       ONE IS TO RESET THE COMMAND CONVERTER, ONE IS TO RESET THE TARGET
455                      ;       WITH THE DEBUG REQUEST ASSERTED AND THE OTHER IS TO RESET THE TARGET
456                      ;       WITH THE DEBUG REQUEST NOT ASSERTED.
457                      ;
458                      ;*********************************************************************
459                      ;       HERE IS WHERE THE MONITOR PROGRAM BEGINS
460                      ;
461                      ;       x:$1 bit 0 is a flag to indicate the TARGET is in debug mode.
462                      ;       x:$1 bit 1 is set whenever the OnCE port asserts the Ack signal.
463                      ;       x:$1 bit 2 is a flag for command being executed.  If an abort occurs
464                      ;                       from the host the registers being used in the 96k must
465                      ;                       be restored.
466                      ;
467                      ;       IRQA is used for the ADM_BREAK function.  The ADM_BREAK
468                      ;       is a signal generated by the host computer to get the
469                      ;       DSP56's attention.  It will cause the stack pointer to
470                      ;       be cleared and the monitor program started over.
471                      ;
472                      ;       IRQB is used for the OnCE acknowledge signal.
473                      ;       The OnCE acknowledge signal is used to request service from
474                      ;       the host computer.  It will set a bit in the x:$1 register
475                      ;       and will remain set until the acknowledge is serviced.
476                      ;
477                      ;       IRQB will have higher priority than the IRQA.  IRQA will be
478                      ;       masked during OnCE communication in order not to lose
479                      ;       synchronization with the OnCE port.  A set of transfer
480                      ;       registers (R0,R1,R2,M0,M1,M2) on the 96k are used by the
481                      ;       monitor during write to/read from 96k memory.  These registers
482                      ;       are saved before use and restored when done.  If an IRQA occurs
483                      ;       during the time these registers are being used by the monitor,
484                      ;       the current activity will be aborted, but the transfer
485                      ;       registers will be restored to the 96k.  If a reset is applied
486                      ;       to the command converter during a write to/read from 96k
487                      ;       memory, the transfer register contents will be lost.
488                      ;
489                      ;       At the completion of the execution of every command, the monitor and
490                      ;       the host go through a handshake sequence to inform the host that
491                      ;       the command has been executed.  This same handshake is also performed
492                      ;       when coming out of reset in order to inform the host that the monitor
493                      ;       program has come up running properly out of reset.
494                      ;
495                      ;*********************************************************************
496                      ;       It should be noted that the reset routine for initialization
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.h  Page 9



497                      ;       resides in the overlay area because it's only used once.
498                      ;       The get command routine also resides in overlay area, since
499                      ;       it is used only once per command, therefore its reloaded
500                      ;       after each overlay command is executed.
501                      ;*********************************************************************
502                      ;       The initialization routine is overlaid only after reset
503                      ;       exit so that the I/O ports can be preset.
504                      ;       Note: The overlay area is immediately after the larger of the
505                      ;       two polling routines to insure the overlay area is constant.
506                      ;       The EPROM must be sequencial however, and requires that when
507                      ;       bootloading, the bootloader initializes the RAM to default as
508                      ;       a JTAG part.  The GETINIT and GETCMD overlays are called after
509                      ;       reset to insure proper loading.
510                                include "mutil.h"
511       768000         DBG_NUL   equ     $768000                           ;JTAG cmd, DEBUG for 1 device
512                                                                          ;  most significant 4 bits are actual
513                                                                          ;  JTAG command. 1 bit is don't care
514                                                                          ;  next 4 bits are dummy debug response
515       668000         ONC_NUL   equ     $668000                           ;JTAG cmd, OnCE for 1 device
516                                                                          ;  most significant 4 bits are actual
517                                                                          ;  JTAG command. 1 bit is don't care
518                                                                          ;  next 4 bits are dummy debug response
519       DD0000         DBG_OK    equ     $dd0000                           ;JTAG reponse if devices are in debug
520       7F0000         DBG_BYP   equ     $7f0000                           ;JTAG cmd, places odd devices (1,3,etc)
521                                                                          ;  in DEBUG, even devices (2,4,etc) in BYPASS
522       6F0000         ONC_BYP   equ     $6f0000                           ;JTAG cmd, places odd devices (1,3,etc)
523                                                                          ;  in OnCE, even devices (2,4,etc) in BYPASS
524       F70000         BYP_DBG   equ     $f70000                           ;JTAG cmd, places odd devices (1,3,etc)
525                                                                          ;  in BYPASS, even devices (2,4,etc) in DEBUG
526       F60000         BYP_ONC   equ     $f60000                           ;JTAG cmd, places odd devices (1,3,etc)
527                                                                          ;  in BYPASS, even devices (2,4,etc) in OnCE
528    
529       FF0000         BYP_BYP   equ     $ff0000                           ;JTAG cmd, places adjacent devices in BYPASS
530       660000         ONC_ONC   equ     $660000                           ;JTAG cmd, places adjacent devices in OnCE
531       770000         DBG_DBG   equ     $770000                           ;JTAG cmd, places adjacent devices in DEBUG
532    
533       700000         DEBUG_REQ equ     $700000                           ;
534                      ENABLE_ONCE
535       600000                   equ     $600000                           ;
536       F00000         J_BYPASS  equ     $f00000                           ;
537    
538                      txwait    MACRO
539  m                             jclr    #TDE,x:$ffee,*                    ;wait until done sending
540  m                             jclr    #RDF,x:$ffee,*                    ;wait until done receiving
541  m                             ENDM
542    
543                      xmit      MACRO   dreg                              ;data to xmit must be in upper 8 bits of dreg
544  m                             move    dreg,x:$ffef                      ;transmit data
545  m                             txwait                                    ;wait until done
546  m                             move    x:$ffef,dreg                      ;read data received
547  m                             ENDM
548    
549                      recv      MACRO   dreg                              ;will receive data into dreg
550  m                             xmit    dreg                              ;sending and receiving are the same
551  m                             ENDM
552                      ;       include         "mutil.ref"
553                      ;*******************************************************************
554       P:0000                   org     p:0
555       P:0000 0AF080  START     jmp     >START1                           ;reset vector
                 000218
556    
557       P:0002 0A0131            bset    #STACKERR,x:$1                    ;set stack error flag
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 10



558       P:0003 0C021A            jmp     <MONITOR1                         ;restart from reset vector
559    
560       P:0004 000000            nop                                       ;trace vector
561       P:0005 000000            nop
562    
563       P:0006 000000            nop                                       ;swi vector
564       P:0007 000000            nop
565    
566       P:0008 0BF080            jsr     >HOSTBRK                          ;IRQA - Host computer service request
                 0002C9
567    
568       P:000A 000000            nop                                       ;IRQB - always ignored for JTAG
569       P:000B 000000            nop                                       ;       tied to DE pin, not used
570    
571       P:000C 000000            bsc     18,0                              ;init to nops
572    
573                      ;**********************************************************************
574       P:001E                   org     p:$1e
575                      ;**********************************************************************
576                      ;       The host computer service is now non-maskable to insure
577                      ;       reliable operation.
578                      ;**********************************************************************
579    
580       P:001E 0BF080            jsr     >HOSTBRK                          ;NMI-New Host computer service request
                 0002C9
581       P:0020 000000            bsc     30,0                              ;init to nops
582    
583                      ;**********************************************************************
584       P:003E                   org     p:$3e
585    
586       P:003E 0A0132            bset    #ILLEGERR,x:$1                    ;set illegal opcode  error flag
587       P:003F 000000            nop
588                      ;*********************************************************************
589                                include "mutil.asm"
590                      ; $Id: mutil.asm,v 1.22 1996/09/04 15:24:04 cgregg Exp $
591                      ;       SECTION MUTIL
592                      ;       include "adm.h"
593                      ;       include "mutil.h"
594                      ;       include "mutil.def"
595       P:0040                   ORG     P:
596                      ;**********************************************************************
597                      ; JTAGPRP prepares JTAG commands to be sent out over the SSI
598                      ;   Assumes: command(s) to be sent resides in the upper 4/8 bits of a1.
599                      ;   After last JTAG command has been sent, BANGBIT must be called
600                      ;**********************************************************************
601    
602       P:0040 200033  JTAGPRP   lsl     a1                                ;shift data left (0 in LSB)
603                                .IF     <CS> THEN                         ;if CARRY bit set then
604   +   P:0041 0AF0A0            jcc     Z_L00001
                 000046
605   +                  Z_L00000
606       P:0043 0A2120            bset    #JTAGTDI,x:$21                    ;  set jtag msb
607                                .ELSE                                     ;else
608   +   P:0044 0AF080            jmp     Z_L00002
                 000047
609   +                  Z_L00001
610       P:0046 0A2100            bclr    #JTAGTDI,x:$21                    ;  clear jtag msb
611                                .ENDI                                     ;endif
612   +                  Z_L00002
613    
614                                .IF     <CS>                              ;if last jtag msb was set
615   +   P:0047 0AF0A0            jcc     Z_L00004
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  mutil.asm  Page 11



                 00004D
616   +                  Z_L00003
617       P:0049 0B2121            btst    #JTAGTDIV,x:$21                   ;  check valid bit
618                                .IF     <CS>                              ;  if bit is valid
619   +   P:004A 0AF0A0            jcc     Z_L00006
                 00004D
620   +                  Z_L00005
621       P:004C 0ACE70            bset    #16,a                             ;    append a 1
622                                .ENDI                                     ;  endif
623   +                  Z_L00006
624                                .ENDI                                     ;endif
625   +                  Z_L00004
626       P:004D 0A2121            bset    #JTAGTDIV,x:$21                   ;TDI bit has been saved, is now valid
627       P:004E 00000C            rts
628    
629                      ;**********************************************************************
630                      ; BANGBIT configures port C for GPIO and sends the bit JTAGTDI ($0)
631                      ;   of x:$21 (x:$23)
632                      ; Assumes: JTAG state machine in SHIFT-DR or SHIFT-IR state
633                      ;          JTAG state machine ends up in RUN-TEST/IDLE state
634                      ;          SSI has no data left to send
635                      ;**********************************************************************
636       P:004F 08F4A1  BANGBIT   movep             #$0,x:$ffe1             ;turn off SSI
                 000000
637    
638       P:0051 758900            move              x:$9,n5                 ;preset for last bit shift
639       P:0052 0B2120            btst    #JTAGTDI,x:$21                    ;check bit to send
640                                .IF     <CS> THEN                         ;if JTAGTDI==1 then
641   +   P:0053 0AF0A0            jcc     Z_L00008
                 000058
642   +                  Z_L00007
643       P:0055 0AA528            bset    #DSI,x:$ffe5                      ;  send 1
644                                .ELSE                                     ;else
645   +   P:0056 0AF080            jmp     Z_L00009
                 000059
646   +                  Z_L00008
647       P:0058 0AA508            bclr    #DSI,x:$ffe5                      ;  send 0
648                                .ENDI                                     ;endif
649   +                  Z_L00009
650       P:0059 0A2123            bset    #JTAGTDOV,x:$21
651       P:005A 55F400            move              #SHIFT_EXIT,b1          ;preset to shift to exit1
                 800001
652       P:005C 0BF080            jsr     TMSTOGGLE                         ;toggle tms pin
                 000069
653       P:005E 0A2103            bclr    #JTAGTDOV,x:$21
654       P:005F 08F4BF            movep             #$3e,x:$ffff            ;turn on IRQA,IRQB
                 00003E
655       P:0061 0A0101            bclr    #OnCEREQ,x:$1
656       P:0062 55F400            move              #EXIT_IDLE,b1           ;need to finish jtag xfer states
                 800002
657       P:0064 0BF080            jsr     TMSTOGGLE
                 000069
658       P:0066 0A0126            bset    #POLLSTATUS,x:$1                  ;need to poll for status
659       P:0067 0A2101            bclr    #JTAGTDIV,x:$21                   ;saved TDI bit used, now invalid
660       P:0068 00000C            rts
661    
662                      ;**********************************************************************
663                      ; TMSTOGGLE routine sends the proper number of clocks to preset
664                      ;   the JTAG state machine for transmitting commands and data in the
665                      ;   shift-dr state. At this time it is assumed that the target jtag
666                      ;   state machine is in the IDLE state.
667                      ;   Accumulator B will contain the tms data in the upper 16 bits and
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  mutil.asm  Page 12



668                      ;   the clock count in the lower 8 bits.
669                      ;**********************************************************************
670       P:0069 21AB00  TMSTOGGLE move              b1,b2                   ;get count
671       P:006A 0A0124            bset    #TMS0FLAG,x:$1
672    
673       P:006B 08F4A1            movep             #0,x:$ffe1
                 000000
674       P:006D 758900            move              x:$9,n5
675       P:006E 06CB00            do      b2,TMSTOGLE                       ;send out tms values
                 000082
676       P:0070 20003B            lsl     b                                 ;get bit value into carry bit
677       P:0071 0A0184            jclr    #TMS0FLAG,x:$1,SETTMS1            ;check if toggling tms0 or tms1
                 000084
678       P:0073 0E8076            jcs     <CLKCALL                          ;setup for sending a 1
679       P:0074 0AA40D            bclr    #TMS0,x:$ffe4                     ;setup tms0 for 0
680       P:0075 0C0077            jmp     <CLKCALL1
681       P:0076 0AA42D  CLKCALL   bset    #TMS0,x:$ffe4
682       P:0077 0D0089  CLKCALL1  jsr     <CLKTOGGLE                        ;toggle clock
683       P:0078 0B2123            btst    #JTAGTDOV,x:$21
684                                .IF     <CS> THEN                         ;if JTAGTDO is VALID for writing
685   +   P:0079 0AF0A0            jcc     Z_L00011
                 000082
686   +                  Z_L00010
687       P:007B 0BA527            btst    #DSO,x:$ffe5                      ;  test TDO
688                                .IF     <CS> THEN                         ;  if TDO == 1
689   +   P:007C 0AF0A0            jcc     Z_L00013
                 000081
690   +                  Z_L00012
691       P:007E 0A2122            bset    #JTAGTDO,x:$21                    ;    JTAGTDO=1
692                                .ELSE                                     ;  else
693   +   P:007F 0AF080            jmp     Z_L00014
                 000082
694   +                  Z_L00013
695       P:0081 0A2102            bclr    #JTAGTDO,x:$21                    ;    JTAGTDO=0
696                                .ENDI                                     ;  endif
697   +                  Z_L00014
698                                .ENDI                                     ;endif
699   +                  Z_L00011
700       P:0082 000000            nop
701       P:0083 00000C  TMSTOGLE  rts
702       P:0084 0E8087  SETTMS1   jcs     <CLKCALL2                         ;setup for sending a 1
703       P:0085 0AA40E            bclr    #TMS1,x:$ffe4                     ;set tms1 to 0
704       P:0086 0C0077            jmp     <CLKCALL1
705       P:0087 0AA42E  CLKCALL2  bset    #TMS1,x:$ffe4
706       P:0088 0C0077            jmp     <CLKCALL1
707    
708                      ;***************************************************************************
709                      ; CLKTOGGLE routine is used to set and clear the clock line in
710                      ;   software.  It is assumed that the data to be output is already
711                      ;   stable on the PC8_STD pin.  The value on the JTAG TDO pin is
712                      ;   saved in bit JTAGTDO ($2) of x:$21 (x:$23)
713                      ;***************************************************************************
714       P:0089 08F4A1  CLKTOGGLE movep             #0,x:$ffe1              ;turn off ssi, turn on portc io
                 000000
715       P:008B 0AA526            bset    #DSCK,x:$ffe5                     ;set clock high
716       P:008C 0602A0            rep     #2
717       P:008D 000000            nop                                       ;kill some time
718       P:008E 0BA527            btst    #DSO,x:$ffe5                      ;get data bit value
719                                .IF     <CC> THEN                         ;If read is 0
720   +   P:008F 0AF0A8            jcs     Z_L00016
                 000094
721   +                  Z_L00015
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  mutil.asm  Page 13



722       P:0091 0A010A            bclr    #DATAFLG,x:$1                     ;clear data flag
723                                .ELSE
724   +   P:0092 0AF080            jmp     Z_L00017
                 000095
725   +                  Z_L00016
726       P:0094 0A012A            bset    #DATAFLG,x:$1                     ;else set it to 1
727                                .ENDI
728   +                  Z_L00017
729       P:0095 0AA526  CLKTOG    bset    #DSCK,x:$ffe5                     ;set clock high
730       P:0096 06DD20            rep     n5
731       P:0097 000000            nop                                       ;set clock high
732       P:0098 0AA506            bclr    #DSCK,x:$ffe5                     ;set clock low
733       P:0099 06DD20            rep     n5
734       P:009A 000000            nop                                       ;set clock low
735       P:009B 00000C            rts
736                      ;**********************************************************************
737                      ; BANGCLK writes TDI before rising edge, reads TDO after rising edge
738                      ;   does not modify JTAG state machine
739                      ;   Assumes: JTAG state in SHIFT_DR or SHIFT_IR
740                      ;            SSI is done with transfer
741                      ;            bit #JTAGTDI of x:$21 should be put on TDI
742                      ;**********************************************************************
743       P:009C 08F4A1  BANGCLK   movep             #0,x:$ffe1              ;turn off ssi, turn on portc io
                 000000
744       P:009E 0B2120            btst    #JTAGTDI,x:$21
745                                .IF     <CS>                              ;if TDI should be 1
746   +   P:009F 0AF0A0            jcc     Z_L00019
                 0000A4
747   +                  Z_L00018
748       P:00A1 0AA528            bset    #DSI,x:$ffe5                      ;  set TDI=1
749                                .ELSE                                     ;else
750   +   P:00A2 0AF080            jmp     Z_L00020
                 0000A5
751   +                  Z_L00019
752       P:00A4 0AA508            bclr    #DSI,x:$ffe5                      ;  set TDI=0
753                                .ENDI
754   +                  Z_L00020
755    
756       P:00A5 0AA526            bset    #DSCK,x:$ffe5                     ;set clock high
757       P:00A6 06DD20            rep     n5                                ;hold clock high for n5 cycles
758       P:00A7 000000            nop                                       ;  wait
759    
760       P:00A8 0BA527            btst    #DSO,x:$ffe5                      ;get data bit value
761                                .IF     <CC> THEN                         ;if read is 0
762   +   P:00A9 0AF0A8            jcs     Z_L00022
                 0000AE
763   +                  Z_L00021
764       P:00AB 0A2102            bclr    #JTAGTDO,x:$21                    ;  save TDO=0
765                                .ELSE                                     ;else
766   +   P:00AC 0AF080            jmp     Z_L00023
                 0000AF
767   +                  Z_L00022
768       P:00AE 0A2122            bset    #JTAGTDO,x:$21                    ;  save TDO=1
769                                .ENDI                                     ;endif
770   +                  Z_L00023
771    
772       P:00AF 0AA506            bclr    #DSCK,x:$ffe5                     ;set clock low
773       P:00B0 06DD20            rep     n5                                ;hold clock high for n5 cycles
774       P:00B1 000000            nop                                       ;  wait
775    
776       P:00B2 00000C            rts
777                      ;*************************************************************************
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  mutil.asm  Page 14



778                      ; JXFERxx presets SSI for xx bit xfer, lsb first for JTAG communication
779                      ;   where xx is 24, 16, 12 or 8
780                      ;*************************************************************************
781       P:00B3 0A062D  JXFER24   bset    #WL0,x:$6                         ;set WL0 in cra
782       P:00B4 0A062E            bset    #WL1,x:$6                         ;set WL1 in cra
783       P:00B5 0AF080            jmp     JXFER
                 0000C1
784    
785       P:00B7 0A060D  JXFER16   bclr    #WL0,x:$6                         ;clear WL0 in x:$ffec
786       P:00B8 0A062E            bset    #WL1,x:$6                         ;set   WL1 in x:$ffec
787       P:00B9 0AF080            jmp     JXFER
                 0000C1
788    
789       P:00BB 0A062D  JXFER12   bset    #WL0,x:$6                         ;set   WL0 in x:$ffec
790       P:00BC 0A060E            bclr    #WL1,x:$6                         ;clear WL1 in x:$ffec
791       P:00BD 0AF080            jmp     JXFER
                 0000C1
792    
793       P:00BF 0A060D  JXFER8    bclr    #WL0,x:$6                         ;clear WL0 in x:$ffec
794       P:00C0 0A060E            bclr    #WL1,x:$6                         ;clear WL1 in x:$ffec
795    
796       P:00C1 0003F8  JXFER     ori     #$3,mr                            ;disable interrupts
797       P:00C2 08F4BF            movep             #$0,x:$ffff             ;turn off IRQA,IRQB
                 000000
798       P:00C4 08F4AD            movep             #CRBLSB,x:$ffed
                 003E60
799       P:00C6 08F4A1            movep             #$0,x:$ffe1             ;turn off SSI
                 000000
800       P:00C8 08F0AC            movep             x:$6,x:$ffec
                 000006
801       P:00CA 08F4A1            movep             #$1c0,x:$ffe1           ;turn on SSI
                 0001C0
802       P:00CC 00000C            rts
803                      ;**********************************************************************
804                      ; FILLTDO reads x:$c and bangs data past all of the bypass
805                      ;  registers near TDO.
806                      ;  Must be called before READING from a OnCE register
807                      ;  Does not need to be called if the active device is the first
808                      ;    (closest to TDO) in the chain
809                      ;**********************************************************************
810       P:00CD 548C00  FILLTDO   move              x:$c,a1
811       P:00CE 200023  FILLTDO1  lsr     a1
812                                .IF     <CC>
813   +   P:00CF 0AF0A8            jcs     Z_L00025
                 0000D3
814   +                  Z_L00024
815       P:00D1 0D009C            jsr     BANGCLK
816       P:00D2 0C00CE            jmp     FILLTDO1
817                                .ENDI
818   +                  Z_L00025
819       P:00D3 00000C            rts
820    
821                      ;**********************************************************************
822                      ; FILLTDI reads x:$c and bangs data past all of the bypass
823                      ;  registers near TDI.
824                      ;  Must be called before WRITING to a OnCE register
825                      ;  Does not need to be called if the active device is the last
826                      ;    (closest to TDI) in the chain
827                      ;**********************************************************************
828       P:00D4 200013  FILLTDI   clr     a
829       P:00D5 548C00            move              x:$c,a1                 ;fetch active device list
830       P:00D6 0AF940            bclr    #0,SR                             ;clear carry
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  mutil.asm  Page 15



831       P:00D7 060B20            rep     x:$b
832       P:00D8 200027            ror     a1
833                      FILLTDI1  .IF     <CC>                              ;if device inactive
834   +   P:00D9 0AF0A8            jcs     Z_L00027
                 0000DE
835   +                  Z_L00026
836       P:00DB 0D009C            jsr     BANGCLK                           ;  toggle clock
837       P:00DC 200033            lsl     a1                                ;  shift active list left
838       P:00DD 0C00D9            jmp     FILLTDI1                          ;  go find active device
839    
840                                .ENDI                                     ;endif
841   +                  Z_L00027
842       P:00DE 00000C            rts                                       ;  return
843    
844                      ;**********************************************************************
845                      ; OISSUE sends a command/data to OnCE shift registers.
846                      ;  Assumes: JTAG state machine in RTI
847                      ;           JTAG state machine ends up in RTI
848                      ;           Data to send is in upper bits of x:$22
849                      ;           Only one device in chain is active
850                      ;           Writes registers: A,B
851                      ;**********************************************************************
852       P:00DF 55F400  OISSUE24  move              #IDLE_SDR,b1            ;Reset JTAG State, go to SIR
                 800003
853       P:00E1 0D0069            jsr     <TMSTOGGLE                        ;toggle tms pin
854       P:00E2 0D00B3            jsr     JXFER24                           ;init ssi for 24 bit transfer
855       P:00E3 0AF080            jmp     OISSUE1                           ;skip 8 & 16 bit init
                 0000EF
856       P:00E5 55F400  OISSUE16  move              #IDLE_SDR,b1            ;Reset JTAG State, go to SIR
                 800003
857       P:00E7 0D0069            jsr     <TMSTOGGLE                        ;toggle tms pin
858       P:00E8 0D00B7            jsr     JXFER16                           ;init ssi for 16 bit transfer
859       P:00E9 0AF080            jmp     OISSUE1                           ;skip 8 bit init
                 0000EF
860       P:00EB 55F400  OISSUE8   move              #IDLE_SDR,b1            ;Reset JTAG State, go to SIR
                 800003
861       P:00ED 0D0069            jsr     <TMSTOGGLE                        ;toggle tms pin
862       P:00EE 0D00BF            jsr     JXFER8                            ;init ssi for 8 bit transfer
863                      OISSUE1
864       P:00EF 54A200            move              x:$22,a1                ;fetch active command
865       P:00F0 0D0040            jsr     JTAGPRP                           ;prepare data for JTAG
866                                xmit    a1                                ;send active command
867   +   P:00F1 547000            move              a1,x:$ffef              ;transmit data
                 00FFEF
868   +                            txwait                                    ;wait until done
869   +   P:00F3 0AAE86            jclr    #TDE,x:$ffee,*                    ;wait until done sending
                 0000F3
870   +   P:00F5 0AAE87            jclr    #RDF,x:$ffee,*                    ;wait until done receiving
                 0000F5
871   +   P:00F7 54F000            move              x:$ffef,a1              ;read data received
                 00FFEF
872       P:00F9 0D00D4            jsr     FILLTDI                           ;fill TDI bypass registers
873       P:00FA 0D004F            jsr     BANGBIT                           ;bang last bit in
874    
875       P:00FB 00000C            rts                                       ;return
876    
877                      ;**********************************************************************
878                      ; OREAD reads data from OnCE shift registers.
879                      ;  Assumes: JTAG state machine in RTI
880                      ;           JTAG state machine ends up in RTI
881                      ;           Only one device in chain is active
882                      ;           Writes registers: A,B
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  mutil.asm  Page 16



883                      ;**********************************************************************
884       P:00FC 55F400  OREAD24   move              #IDLE_SDR,b1            ;Reset JTAG State, go to SIR
                 800003
885       P:00FE 0D0069            jsr     <TMSTOGGLE                        ;toggle tms pin
886       P:00FF 0D00CD            jsr     FILLTDO                           ;fill bypass registers
887       P:0100 0D00B3            jsr     JXFER24                           ;init ssi for 24 bit transfer
888       P:0101 0AF080            jmp     OREAD1                            ;skip 8 & 16 bit init
                 00010F
889    
890       P:0103 55F400  OREAD16   move              #IDLE_SDR,b1            ;Reset JTAG State, go to SIR
                 800003
891       P:0105 0D0069            jsr     <TMSTOGGLE                        ;toggle tms pin
892       P:0106 0D00CD            jsr     FILLTDO                           ;fill bypass registers
893       P:0107 0D00B7            jsr     JXFER16                           ;init ssi for 16 bit transfer
894       P:0108 0AF080            jmp     OREAD1                            ;skip 8 bit init
                 00010F
895    
896       P:010A 55F400  OREAD8    move              #IDLE_SDR,b1            ;Reset JTAG State, go to SIR
                 800003
897       P:010C 0D0069            jsr     <TMSTOGGLE                        ;toggle tms pin
898       P:010D 0D00CD            jsr     FILLTDO                           ;fill bypass registers
899       P:010E 0D00BF            jsr     JXFER8                            ;init ssi for 8 bit transfer
900    
901                      OREAD1
902       P:010F 200013            clr     a
903       P:0110 20001B            clr     b
904                                recv    a1                                ;read into a1
905   +                            xmit    a1                                ;sending and receiving are the same
906   +   P:0111 547000            move              a1,x:$ffef              ;transmit data
                 00FFEF
907   +                            txwait                                    ;wait until done
908   +   P:0113 0AAE86            jclr    #TDE,x:$ffee,*                    ;wait until done sending
                 000113
909   +   P:0115 0AAE87            jclr    #RDF,x:$ffee,*                    ;wait until done receiving
                 000115
910   +   P:0117 54F000            move              x:$ffef,a1              ;read data received
                 00FFEF
911       P:0119 0A07A2            jset    #2,x:$7,OREAD2
                 000122
912       P:011B 0A18A5            jset    #5,x:$18,OREAD2                   ;if 16 bit wrap it up
                 000122
913       P:011D 218D00            move              a1,b1                   ;copy recieved data
914       P:011E 0608A0            rep     #8
915       P:011F 200033            lsl     a1
916       P:0120 0608A0            rep     #8
917       P:0121 20002B            lsr     b1
918       P:0122 545B00  OREAD2    move              a1,x:(r3)+              ;save lower 16bits
919       P:0123 0A07A2            jset    #2,x:$7,OREAD3
                 000126
920       P:0125 555B00            move              b1,x:(r3)+              ;save upper 8 bits
921       P:0126 55F400  OREAD3    move              #SHIFT_IDLE,b1
                 C00003
922       P:0128 0D0069            jsr     TMSTOGGLE
923       P:0129 08F4BF            movep             #$3e,x:$ffff
                 00003E
924       P:012B 0A0101            bclr    #OnCEREQ,x:$1
925       P:012C 00000C            rts
926                      ;**********************************************************************
927                      ; JREADSB - Read status bits from ACTIVE device, decode BYPASS in all
928                      ;           inactive devices and E_ONCE in the active device.
929                      ; JISSUE  - Read status bits from ACTIVE device, decode BYPASS in all
930                      ;           inactive devices and x:$22 in the active device.
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  mutil.asm  Page 17



931                      ; JISSUE2 - Read status bits from ACTIVE device, decode x:$23 in
932                      ;           all inactive devices and x:$22 in the active device.
933                      ;**********************************************************************
934       P:012D 56F400  JREADSB   move              #E_ONCE,a
                 000603
935       P:012F 562200            move              a,x:$22
936       P:0130 56F400  JISSUE    move              #BYPASS,a
                 000F03
937       P:0132 562300            move              a,x:$23
938       P:0133 0A0108  JISSUE2   bclr    #STATUSBUSY,x:$1
939       P:0134 0A0120            bset    #DEBUGMODE,x:$1
940       P:0135 55F400            move              #IDLE_SIR,b1
                 C00004
941       P:0137 0D0069            jsr     TMSTOGGLE                         ;JTAG <- SIR
942       P:0138 578C00            move              x:$c,b
943       P:0139 550D00            move              b1,x:$d                 ;init for CHKACTIVE
944       P:013A 060B00            do      x:$b,JREADSB1                     ;do x:$7 COUNT
                 00017D
945       P:013C 000000            nop
946       P:013D 56F400            move              #>1,a                   ;
                 000001
947       P:013F 044FBF            move              lc,b                    ;
948       P:0140 200005            cmp     b,a                               ;
949                                .IF     <EQ>                              ;  if last device
950   +   P:0141 0AF0A2            jne     Z_L00029
                 000146
951   +                  Z_L00028
952       P:0143 0A2124            bset    #JTAGLAST,x:$21                   ;    set last device bit
953                                .ELSE                                     ;  else
954   +   P:0144 0AF080            jmp     Z_L00030
                 000147
955   +                  Z_L00029
956       P:0146 0A2104            bclr    #JTAGLAST,x:$21                   ;    clear last device bit
957                                .ENDI                                     ;  endif
958   +                  Z_L00030
959       P:0147 578B00            move              x:$b,b                  ;  b      <- x:$7 COUNT
960       P:0148 0446BF            move              lc,y0                   ;  y0     <- Loop Count
961       P:0149 20005C            sub     y0,b                              ;  b      <- b-y0
962       P:014A 46F400            move              #>1,y0
                 000001
963       P:014C 200058            add     y0,b
964       P:014D 572400            move              b,x:$24                 ;  x:$24 <- b
965       P:014E 0BF080            jsr     CHKACTIVE                         ;  check device for activity
                 0001CC
966                                .IF     <CS>                              ;  if device active
967   +   P:0150 0AF0A0            jcc     Z_L00032
                 000168
968   +                  Z_L00031
969       P:0152 54A200            move              x:$22,a1
970       P:0153 0BF080            jsr     J_RDWR                            ;    write ACTIVE_CMD, read SB
                 000183
971       P:0155 559500            move              x:$15,b1                ;    fetch status
972       P:0156 47F400            move              #>$d00000,y1            ;    happy to see d
                 D00000
973       P:0158 45F400            move              #>$f00000,x1            ;    setup mask
                 F00000
974       P:015A 20006E            and     x1,b                              ;    clear out junk
975       P:015B 20007D            cmp     y1,b                              ;    did we read status = d?
976    
977                                .IF     <EQ>                              ;    if read d
978   +   P:015C 0AF0A2            jne     Z_L00034
                 000162
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  mutil.asm  Page 18



979   +                  Z_L00033
980       P:015E 0A0106            bclr    #POLLSTATUS,x:$1                  ;      stop polling
981       P:015F 0A0135            bset    #ACTVMODE,x:$1
982                                .ELSE                                     ;    else
983   +   P:0160 0AF080            jmp     Z_L00035
                 000166
984   +                  Z_L00034
985       P:0162 571100            move              b,x:$11                 ;      save statvalue
986       P:0163 0A0128            bset    #STATUSBUSY,x:$1                  ;      set status as busy
987       P:0164 0A0100            bclr    #DEBUGMODE,x:$1                   ;      clear debug mode
988       P:0165 0A0115            bclr    #ACTVMODE,x:$1                    ;      clear active mode
989                                .ENDI                                     ;    endif
990   +                  Z_L00035
991                                .ELSE                                     ;  else
992   +   P:0166 0AF080            jmp     Z_L00036
                 00017C
993   +                  Z_L00032
994                      ;       move    x:JIRTABLE,r5           ;    r5 <- JIRTABLE pointer
995       P:0168 07F095            move              p:JIRTABLE,r5           ;    r5 <- JIRTABLE pointer
                 001000
996       P:016A 75A400            move              x:$24,n5                ;    n5 <- DEV NUMBER ACTIVE
997       P:016B 000000            nop
998                      ;       move    x:(r5+n5),b             ;    b  <- JTAG IR LENGTH
999       P:016C 07ED8F            move              p:(r5+n5),b             ;    b  <- JTAG IR LENGTH
1000      P:016D 0ACD57            bclr    #23,b1                            ;    test and clear high bit
1001                               .IF     <CS>                              ;    if NOT_A_DSP (bit set)
1002  +   P:016E 0AF0A0            jcc     Z_L00038
                 000178
1003  +                  Z_L00037
1004      P:0170 45F400            move              #>1,x1                  ;      x1 <- 1
                 000001
1005      P:0172 20006C            sub     x1,b                              ;      b  <- b-1
1006      P:0173 21AA00            move              b1,a2                   ;      a2 <- b (#bits to send - 1)
1007      P:0174 54F400            move              #>$ffffff,a1            ;      a1 set to all 1s (bypass)
                 FFFFFF
1008                               .ELSE                                     ;    else
1009  +   P:0176 0AF080            jmp     Z_L00039
                 00017A
1010  +                  Z_L00038
1011      P:0178 54A300            move              x:$23,a1                ;      will send x:$23 (bypass)
1012      P:0179 2A0300            move              #3,a2                   ;      hack, need to send 4 bits
1013                               .ENDI                                     ;    endif
1014  +                  Z_L00039
1015      P:017A 0BF080            jsr     J_WR1                             ;    just write x:$23 (no read sb)
                 0001A4
1016                               .ENDI                                     ;  endif
1017  +                  Z_L00036
1018      P:017C 000000            nop
1019      P:017D 000000            nop
1020      P:017E 000000  JREADSB1  nop                                       ;enddo
1021      P:017F 55F400            move              #EXIT_IDLE,b1           ;will goto IDLE
                 800002
1022      P:0181 0D0069            jsr     TMSTOGGLE                         ;JTAG <- IDLE
1023      P:0182 00000C            rts                                       ;return
1024                     ;*******************************************************************
1025                     ;       J_RDWR routine toggles data in/out, then increments state
1026                     ;       machine to exit1 so that last bit of data is retrieved/sent.
1027                     ;
1028                     ;       This is necessary since the jtag state machine will contine
1029                     ;       transferring data until the state machine decoder is not decoding
1030                     ;       a shift-data or shift-ir command.
1031                     ;
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  mutil.asm  Page 19



1032                     ;       This routine assumes the data is in the A accumulator for sending
1033                     ;       and that data received is in the B accumulator.
1034                     ;
1035                     ;******************************************************************
1036      P:0183 218A00  J_RDWR    move              a1,a2                   ;set up clock count
1037                     ;*****************************************************************
1038                     ;       SHIFT DATA RIGHT 8 BITS AND SEND/RECEIVE IT
1039                     ;       IN LINE CODE TO REDUCE NUMBER OF SUBROUTINE CALLS.
1040                     ;       THIS USED TO BE SHIFTTOG
1041                     ;*****************************************************************
1042      P:0184 0608A0  J_RDWR1   rep     #8                                ;need to shift data in A
1043      P:0185 200023            lsr     a
1044      P:0186 758900            move              x:$9,n5                 ;preset clock rate
1045      P:0187 06CA00            do      a2,J_RDWR2
                 00018E
1046      P:0189 0D01C6            jsr     <SHIFTDATA                        ;go preset data to port pin
1047      P:018A 0D0089            jsr     <CLKTOGGLE                        ;go toggle clock
1048      P:018B 579500            move              x:$15,b                 ;get current value
1049      P:018C 0B012A            btst    #DATAFLG,x:$1                     ;chek if next bit is 0 or 1
1050      P:018D 20002F            ror     b                                 ;get bit
1051      P:018E 551500            move              b1,x:$15                ;save value
1052      P:018F 000000  J_RDWR2   nop
1053      P:0190 0D01C6            jsr     <SHIFTDATA                        ;shift last bit onto port
1054      P:0191 0B2124            btst    #JTAGLAST,x:$21                   ;is this the last command?
1055                               .IF     <CS>                              ;if last command
1056  +   P:0192 0AF0A0            jcc     Z_L00041
                 00019D
1057  +                  Z_L00040
1058   
1059      P:0194 55F400            move              #SHIFT_EXIT,b1          ;  preset for shift to exit
                 800001
1060      P:0196 0D0069            jsr     <TMSTOGGLE                        ;  toggle tms pin and
1061      P:0197 579500            move              x:$15,b                 ;  get current value
1062      P:0198 0B012A            btst    #DATAFLG,x:$1                     ;  chek if next bit is 0 or 1
1063      P:0199 20002F            ror     b                                 ;  get bit
1064      P:019A 551500            move              b1,x:$15                ;  save value
1065                               .ELSE                                     ;else
1066  +   P:019B 0AF080            jmp     Z_L00042
                 0001A2
1067  +                  Z_L00041
1068      P:019D 0D0089            jsr     <CLKTOGGLE                        ;  toggle clock
1069      P:019E 579500            move              x:$15,b                 ;  get current value
1070      P:019F 0B012A            btst    #DATAFLG,x:$1                     ;  check for 0 or 1
1071      P:01A0 20002F            ror     b                                 ;  get bit
1072      P:01A1 551500            move              b1,x:$15                ;  save bit
1073                               .ENDI                                     ;endif and nasty HACK!
1074  +                  Z_L00042
1075      P:01A2 00000C            rts                                       ;return
1076                     ;***************************************************************************
1077                     ;       J_WR routine sends the proper bit values through the TDO
1078                     ;       pin for an n bit data stream.  It will be used for boundary scan
1079                     ;       registers and loading instructions of various lengths.
1080                     ;       Data to be sent is in A accum. and data received is in B accum.
1081                     ;       a2 contains the number of bits to xmit - 1.
1082                     ;***************************************************************************
1083      P:01A3 549500  J_WR      move              x:$15,a1                ;get data to send
1084      P:01A4 758900  J_WR1     move              x:$9,n5                 ;preset clock rate
1085      P:01A5 0608A0            rep     #8
1086      P:01A6 200023            lsr     a
1087      P:01A7 06CA00            do      a2,J_WR6
                 0001B3
1088      P:01A9 0ACC77            bset    #23,a1                            ;ensure a 1 in high bit of a1
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  mutil.asm  Page 20



1089      P:01AA 200023            lsr     a                                 ;check if data is 1 or 0
1090                               .IF     <CS>                              ;if data 1
1091  +   P:01AB 0AF0A0            jcc     Z_L00044
                 0001B0
1092  +                  Z_L00043
1093      P:01AD 0AA528            bset    #DSI,x:$ffe5                      ;  send 1
1094                               .ELSE                                     ;else
1095  +   P:01AE 0AF080            jmp     Z_L00045
                 0001B1
1096  +                  Z_L00044
1097      P:01B0 0AA508            bclr    #DSI,x:$ffe5                      ;  send 0
1098                               .ENDI                                     ;endif
1099  +                  Z_L00045
1100      P:01B1 0D0089            jsr     CLKTOGGLE                         ;toggle clock
1101      P:01B2 000000            nop
1102      P:01B3 000000            nop
1103      P:01B4 0ACC77  J_WR6     bset    #23,a1                            ;ensure 1 in high bit of a1
1104      P:01B5 200023            lsr     a                                 ;check if data is 1 or 0
1105                               .IF     <CS>                              ;if data 1
1106  +   P:01B6 0AF0A0            jcc     Z_L00047
                 0001BB
1107  +                  Z_L00046
1108      P:01B8 0AA528            bset    #DSI,x:$ffe5                      ;  send 1
1109                               .ELSE                                     ;else
1110  +   P:01B9 0AF080            jmp     Z_L00048
                 0001BC
1111  +                  Z_L00047
1112      P:01BB 0AA508            bclr    #DSI,x:$ffe5                      ;  send 0
1113                               .ENDI                                     ;endif
1114  +                  Z_L00048
1115      P:01BC 0B2124            btst    #JTAGLAST,x:$21                   ;test for last device
1116                               .IF     <CS>                              ;if last device
1117  +   P:01BD 0AF0A0            jcc     Z_L00050
                 0001C4
1118  +                  Z_L00049
1119      P:01BF 55F400            move              #SHIFT_EXIT,b1          ;  preset for SHIFT_EXIT
                 800001
1120      P:01C1 0D0069            jsr     TMSTOGGLE                         ;  JTAG <- EXIT
1121                               .ELSE                                     ;else
1122  +   P:01C2 0AF080            jmp     Z_L00051
                 0001C5
1123  +                  Z_L00050
1124      P:01C4 0D0089            jsr     CLKTOGGLE                         ;  just toggle clock
1125                               .ENDI                                     ;endif
1126  +                  Z_L00051
1127      P:01C5 00000C            rts                                       ;return
1128                     ;***************************************************************************
1129                     ;       SHIFTDATA presents the data at the port pin so it may be sent
1130                     ;       to the target.  The last bit of data must be present when exiting
1131                     ;       so that when the jtag state machine transitions to the exit1 state
1132                     ;       it will capture the last bit of data.
1133                     ;       Assumption is that the data going out is in A and data coming in is
1134                     ;       in B.
1135                     ;**************************************************************************
1136      P:01C6 200023  SHIFTDATA lsr     a                                 ;check if data is 1 or 0
1137      P:01C7 0E81CA  SHIFTDATA1 jcs    <DATATOGL2                        ;if carry clear send 0
1138      P:01C8 0AA508            bclr    #DSI,x:$ffe5                      ;else need to send 1
1139      P:01C9 0C01CB            jmp     <DATATOGL5
1140      P:01CA 0AA528  DATATOGL2 bset    #DSI,x:$ffe5                      ;send 1 if carry set
1141      P:01CB 00000C  DATATOGL5 rts
1142   
1143                     ;***************************************************************************
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  mutil.asm  Page 21



1144                     ;       CHKACTIVE routine checks if the current device being addressed
1145                     ;       is in bypass mode or in enable_once mode.
1146                     ;***************************************************************************
1147      P:01CC 558D00  CHKACTIVE move              x:$d,b1                 ;or if active
1148      P:01CD 20002B            lsr     b                                 ;
1149      P:01CE 550D00            move              b1,x:$d                 ;save last device tested
1150      P:01CF 00000C            rts
1151   
1152                     ;***************************************************************************
1153                     ; POLLUSR - poll devices in user mode. Notify host if a device stops.
1154                     ;   remove device from x:$20 if not in user mode.
1155                     ;   ASSUMES: JTAG state in IDLE
1156                     ;***************************************************************************
1157      P:01D0 578B00  POLLUSR   move              x:$b,b
1158      P:01D1 56A00B            tst     b         x:$20,a
1159                               .IF     <EQ>                              ;if x:$b==0
1160  +   P:01D2 0AF0A2            jne     Z_L00053
                 0001D5
1161  +                  Z_L00052
1162      P:01D4 00000C            rts                                       ;  return
1163                               .ENDI                                     ;endif
1164  +                  Z_L00053
1165      P:01D5 578C03            tst     a         x:$c,b
1166                               .IF     <EQ>                              ;if x:$20==0
1167  +   P:01D6 0AF0A2            jne     Z_L00055
                 0001D9
1168  +                  Z_L00054
1169      P:01D8 00000C            rts                                       ;  return
1170                               .ENDI                                     ;endif
1171  +                  Z_L00055
1172      P:01D9 561F0B            tst     b         a,x:$1F
1173                               .IF     <EQ>                              ;if x:$c==0
1174  +   P:01DA 0AF0A2            jne     Z_L00057
                 0001DD
1175  +                  Z_L00056
1176      P:01DC 00000C            rts                                       ;  return
1177                               .ENDI                                     ;endif
1178  +                  Z_L00057
1179      P:01DD 571900            move              b,x:$19                 ;save off ACTIVE x:$7
1180      P:01DE 57A500            move              x:$25,b
1181      P:01DF 572600            move              b,x:$26
1182      P:01E0 55F400            move              #JRESET_IDL,b1
                 FC0008
1183      P:01E2 0D0069            jsr     TMSTOGGLE
1184      P:01E3 57F400            move              #>0,b
                 000000
1185      P:01E5 572500            move              b,x:$25
1186      P:01E6 57F400            move              #>1,b
                 000001
1187      P:01E8 570C00            move              b,x:$c                  ;set x:$c to device 1
1188      P:01E9 060B00            do      x:$b,ENDPOLL                      ;do DEVCOUNT
                 000206
1189      P:01EB 65A500            move              x:$25,r5
1190      P:01EC 000000            nop
1191      P:01ED 205D00            move              (r5)+
1192      P:01EE 652500            move              r5,x:$25
1193      P:01EF 579F00            move              x:$1F,b                 ;  fetch temporary user list
1194      P:01F0 20002B            lsr     b                                 ;  shift user right
1195                               .IF     <CS>                              ;  if device was in user mode
1196  +   P:01F1 0AF0A0            jcc     Z_L00059
                 000203
1197  +                  Z_L00058
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  mutil.asm  Page 22



1198      P:01F3 571F00            move              b,x:$1F                 ;    save temporary user list
1199      P:01F4 0D012D            jsr     JREADSB                           ;    get status
1200      P:01F5 0B0120            btst    #DEBUGMODE,x:$1
1201                               .IF     <CS>                              ;    if in debug mode
1202  +   P:01F6 0AF0A0            jcc     Z_L00061
                 000201
1203  +                  Z_L00060
1204      P:01F8 0BF080            jsr     USRDEL                            ;      remove from x:$20
                 000212
1205      P:01FA 0BF080            jsr     POLLOFF                           ;      notify host (no hndshk)
                 00096A
1206      P:01FC 65A500            move              x:$25,r5                ;      fetch device number
1207      P:01FD 651D00            move              r5,x:$1D                ;      save as reqesting service
1208      P:01FE 00008C            enddo
1209      P:01FF 0AF080            jmp     ENDPOLL
                 000207
1210                               .ENDI                                     ;    endif
1211  +                  Z_L00061
1212                               .ELSE                                     ;  else
1213  +   P:0201 0AF080            jmp     Z_L00062
                 000204
1214  +                  Z_L00059
1215      P:0203 571F00            move              b,x:$1F                 ;    save temporary user list
1216                               .ENDI                                     ;  endif
1217  +                  Z_L00062
1218      P:0204 568C00            move              x:$c,a                  ;  fetch active device
1219      P:0205 200033            lsl     a                                 ;  shift active left
1220      P:0206 560C00            move              a,x:$c                  ;  save new devactive
1221                     ENDPOLL                                             ;enddo
1222      P:0207 579900            move              x:$19,b                 ;restore original active device
1223      P:0208 570C00            move              b,x:$c
1224      P:0209 57A600            move              x:$26,b
1225      P:020A 572500            move              b,x:$25
1226      P:020B 0D012D            jsr     JREADSB                           ;decode enable once in JIR
1227      P:020C 00000C            rts                                       ;return
1228   
1229                     ;*******************************************************************
1230                     ; USRADD adds the active device to the user mode list
1231                     ;    writes to x1,b,x:$20
1232                     ;*******************************************************************
1233   
1234      P:020D 45A000  USRADD    move              x:$20,x1
1235      P:020E 578C00            move              x:$c,b
1236      P:020F 20006A            or      x1,b
1237      P:0210 572000            move              b,x:$20
1238      P:0211 00000C            rts
1239   
1240                     ;*******************************************************************
1241                     ; USRDEL removes the active device from the user mode list
1242                     ;    writes to x1,b,x:$20
1243                     ;*******************************************************************
1244      P:0212 45A000  USRDEL    move              x:$20,x1
1245      P:0213 578C00            move              x:$c,b
1246      P:0214 20001F            not     b
1247      P:0215 20006E            and     x1,b
1248      P:0216 572000            move              b,x:$20
1249      P:0217 00000C            rts
1250      P:0218 45F400  START1    move              #$7fff55,x1             ;preset x:$7 ADDRESS
                 7FFF55
1251      P:021A 0500BB  MONITOR1  move              #0,sp                   ;reset stack pointer
1252      P:021B 54F400            move              #>REV,a1                ;
                 000265
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 23



1253      P:021D 540800            move              a1,x:$8                 ;save current rev num.
1254                     ;***********************************************************************
1255                     ;       Initialize local variables and peripheral ports.
1256                     ;***********************************************************************
1257      P:021E 450700            move              x1,x:$7                 ;preset for no device
1258      P:021F 54F400            move              #>BCRDEFAULT,a1         ;preset x:$fffe for
                 000110
1259      P:0221 541700            move              a1,x:$17                ;1 y mem and 1 p mem wait state
1260   
1261      P:0222 2E0000            move              #0,a
1262      P:0223 562000            move              a,x:$20                 ;clear usrlist
1263      P:0224 561E00            move              a,x:$1E                 ;clear flags2  - dave -
1264      P:0225 56F400            move              #>1,a
                 000001
1265      P:0227 560C00            move              a,x:$c                  ;set x:$c to 1st device
1266      P:0228 560B00            move              a,x:$b                  ;set x:$b to 1
1267   
1268      P:0229 60F400            move              #JIRTABLEp,r0
                 001000
1269                     ;       move    r0,x:JIRTABLE           ;init JTAG IR Length Table
1270      P:022B 077090            move              r0,p:JIRTABLE           ;init JTAG IR Length Table
                 001000
1271                     ;       move    x:(r0)+,a1              ;to all 4 (default for (M) DSP)
1272      P:022D 07D88C            move              p:(r0)+,a1              ;to all 4 (default for (M) DSP)
1273      P:022E 2C0400            move              #$4,a1
1274      P:022F 0618A0            rep     #24
1275                     ;       move    a1,x:(r0)+
1276      P:0230 07588C            move              a1,p:(r0)+
1277   
1278      P:0231 548100            move              x:$1,a1
1279      P:0232 44F400            move              #>$1,x0                 ;clear status flags
                 000001
1280      P:0234 440900            move              x0,x:$9                 ;preset manual clock rate
1281      P:0235 200046            and     x0,a1                             ;except DEBUGMODE
1282      P:0236 540100            move              a1,x:$1
1283   
1284      P:0237 0502BA            move              #$2,omr                 ;set for normal expanded mode
1285      P:0238 328000            move              #$80,r2                 ;initialize xptr&yptr
1286      P:0239 620400            move              r2,x:$4
1287      P:023A 620200            move              r2,x:$2
1288   
1289      P:023B 56F400            move              #>CRBVAL,a              ;gated clk,no rx/tx irqs.
                 003E20
1290      P:023D 540500            move              a1,x:$5
1291      P:023E 56F400            move              #>CRAVAL,a              ;divide by 8 prescale (/32 total)
                 000008
1292      P:0240 540600            move              a1,x:$6
1293      P:0241 56F400            move              #PLLIN,a
                 040001
1294      P:0243 561600            move              a,x:$16
1295      P:0244 08F4A5            movep             #$a4,x:$ffe5            ;deassert portc signals
                 0000A4
1296      P:0246 08F4A4            movep             #BOUT,x:$ffe4           ;preset portb signals
                 007000
1297      P:0248 08F4A2            movep             #BDDRIN,x:$ffe2         ;setup port b i/o
                 007F00
1298                     ;***********************************************************************
1299                     ;       Need to load Command Overlay Offset tables in X memory
1300                     ;***********************************************************************
1301      P:024A 62F400  LGETCMD   move              #JMPTABL,r2             ;need to load offset table in x mem.
                 001100
1302      P:024C 60F400            move              #OVLYTABL,r0
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 24



                 000EC4
1303      P:024E 07F091            move              p:JTABLSZ,r1            ;get table count
                 000EEC
1304      P:0250 06D100            do      r1,LGETCMD1                       ;get values from EPROM
                 000253
1305      P:0252 07D88E            move              p:(r0)+,a               ;get table ptr
1306      P:0253 075A8C            move              a1,p:(r2)+              ;and put in xmem.
1307   
1308      P:0254 60F400  LGETCMD1  move              #>$aa,r0                ;preset status
                 0000AA
1309      P:0256 601100            move              r0,x:$11                ;as good command executed
1310      P:0257 549700            move              x:$17,a1                ;get bcr value to use
1311      P:0258 547000            move              a1,x:$fffe              ;set for zero wait states
                 00FFFE
1312   
1313      P:025A 0D0264  MLOOP     jsr     <GETCMD                           ;go do command
1314      P:025B 380065            cmp     x1,a      #0,n0                   ;chek if command not for target
1315      P:025C 04D8BB            move              n0,sp
1316                     ;***********************************************************************
1317                     ;       Following code assumes that clock on universal command converter
1318                     ;       is 20mhz and the pll will be used to accelerate code execution.
1319                     ;       The pll will be programmed for 80mhz with 1 wait state external
1320                     ;       accesses.
1321                     ;***********************************************************************
1322      P:025D 549600  DOCMD     move              x:$16,a1                ;get pll value
1323      P:025E 08CC3D            movep             a1,x:$fffd              ;preset pll for 80mhz
1324      P:025F 0664A0            rep     #100
1325      P:0260 000000            nop
1326   
1327      P:0261 0BE080            jsr     (r0)                              ;get load count
1328      P:0262 0D028C            jsr     <HND_SHK                          ;end-of-command handshake
1329   
1330      P:0263 0C0254            jmp     <LGETCMD1                         ;go get next command
1331   
1332                     ;*********************************************************************
1333                     ;       This is the monitor getcmd entry point for executing commands
1334                     ;       This routine is overlaid after execution of each command
1335                     ;       so that a larger area is left for fixted routines.  Also,
1336                     ;       initialization code used only once after reset is put in
1337                     ;       this area.  It will be automatically overlaid on reset.
1338                     ;******************************************************************
1339      P:0264 0B1EA0  GETCMD    jsset   #POLLENABLE,x:$1E,POLLUSR         ;poll devices if enabled
                 0001D0
1340      P:0266 548500            move              x:$5,a1                 ;get ssi mode settings
1341      P:0267 547000            move              a1,x:$ffed
                 00FFED
1342      P:0269 2F0013            clr     a         #0,b
1343      P:026A 08CE21            movep             a,x:$ffe1               ;turn SSI off
1344      P:026B 08F4A4            movep             #BOUT,x:$ffe4           ;preset portb signals
                 007000
1345      P:026D 08F4A2            movep             #BDDRIN,x:$ffe2         ;setup port b i/o
                 007F00
1346      P:026F 08F4A3            movep             #CIO,x:$ffe3            ;setup port c i/o
                 00017C
1347      P:0271 0AB0F2            jset    #SELECT,y:$fff0,GETCMD            ;wait to be selected
                 000264
1348      P:0273 0AB0D6            jclr    #H_REQ,y:$fff0,GETCMD             ;and also to be requested
                 000264
1349      P:0275 0D0329  GOTCMD    jsr     <GETBYTE                          ;get command from host
1350      P:0276 20CE00            move              y0,a                    ;move it to accum a
1351      P:0277 200003            tst     a
1352      P:0278 44F400            move              #>$10,x0                ;offset subtract to command
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 25



                 000010
1353      P:027A 07F087            move              p:LASTCOMMAND,y1        ;check if command > max.
                 000EEA
1354      P:027C 45F475            cmp     y1,a      #>$21,x1                ;check if command > OnCE commands
                 000021
1355                               .IF     <GT>                              ;if command # to high
1356  +   P:027E 0AF0AF            jle     Z_L00064
                 000281
1357  +                  Z_L00063
1358      P:0280 0C0264            jmp     <GETCMD                           ;  try to start over
1359                               .ENDI                                     ;endif
1360  +                  Z_L00064
1361      P:0281 200045            cmp     x0,a                              ;lower range
1362                               .IF     <LT>                              ;if command # to low
1363  +   P:0282 0AF0A1            jge     Z_L00066
                 000285
1364  +                  Z_L00065
1365      P:0284 0C0264            jmp     <GETCMD                           ;  try to start over
1366                               .ENDI                                     ;endif
1367  +                  Z_L00066
1368      P:0285 61F444            sub     x0,a      #JMPTABL,r1             ;get offset for sequence
                 001100
1369      P:0287 219900            move              a1,n1                   ;put offset into offset reg.
1370      P:0288 000000            nop
1371      P:0289 07E990            move              p:(r1+n1),r0            ;get command start address
1372      P:028A 20CC00            move              y0,a1
1373      P:028B 00000C            rts
1374   
1375   
1376                     ;*******************************************************************
1377                     ;       HND_SHK
1378                     ;       Handshake used when coming out of reset and at the
1379                     ;       end of each command.  For now, the handshake sends
1380                     ;       the no error code of $aa every time.  Future versions
1381                     ;       of the monitor will send information about the success
1382                     ;       of the execution of the command through this handshake.
1383                     ;*******************************************************************
1384      P:028C 549100  HND_SHK   move              x:$11,a1                ;no error code = $aa
1385                                                                         ;must be in lower byte
1386                                                                         ;of a1 for PUTDATA
1387      P:028D 0D0357            jsr     <PUTDATA                          ;go put data to port
1388      P:028E 200013            clr     a                                 ;clear a after PUTDATA
1389      P:028F 0AA429            bset    #ADM_INT,x:$ffe4                  ;set ADM_INT bit
1390      P:0290 0AB0D4  CHK_AK    jclr    #INT_ACK,y:$fff0,CHK_AK           ;wait for INT_ACK
                 000290
1391      P:0292 0AA5B2            jset    #SELECT,x:$ffe5,CHK_AK            ;wait to be selected
                 000290
1392      P:0294 0AA409            bclr    #ADM_INT,x:$ffe4                  ;clear ADM_INT bit
1393      P:0295 0AB0F4  CHK_AK2   jset    #INT_ACK,y:$fff0,CHK_AK2          ;wait for INT_ACK low
                 000295
1394      P:0297 0D0353            jsr     <MKIN                             ;set port back to input
1395      P:0298 00000C            rts
1396                     ;*****************************************************************
1397                     ;       REDUNDANT2
1398                     ;       This is a subroutine used by WRITBLK and WRITEDATA
1399                     ;*****************************************************************
1400      P:0299 67F000  REDUNDNT2 move              x:OFFSET,r7             ;y mem address to write to
                 00004B
1401      P:029B 0D02B2            jsr     <INITSEQ                          ;load seq. get addr, count
1402      P:029C 67F000            move              x:WVOFFSET,r7
                 00004C
1403      P:029E 0D02A6            jsr     <REDUNDNT3
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 26



1404                     ;******************************************************************
1405                     ;       REDUNDANT
1406                     ;       This is a subroutine used by READDATA,WRITEBLK and WRITEDATA.
1407                     ;******************************************************************
1408      P:029F 0D0362  REDUNDANT jsr     <RUNSEQ                           ;run the sequence
1409      P:02A0 578000  REDUN1    move              x:$0,b                  ;get count value
1410      P:02A1 44F400            move              #>1,x0                  ;decrement by 1
                 000001
1411      P:02A3 20004C            sub     x0,b
1412      P:02A4 21A400            move              b1,x0                   ;save count
1413      P:02A5 00000C            rts
1414                     ;*****************************************************************
1415                     ;       REDUNDANT3
1416                     ;       More redundant code put in a subroutine to save a few words
1417                     ;*****************************************************************
1418      P:02A6 0D030A  REDUNDNT3 jsr     <GETLWORD                         ;get value to write
1419      P:02A7 05F427  REDUNDN3  move              #$ffff,m7
                 00FFFF
1420      P:02A9 0A07A2            jset    #2,x:$7,REDUN3                    ;check if 56lp16 or hawk
                 0002AD
1421      P:02AB 0A01A3  REDUN4    jset    #JTAGDEV,x:$1,REDUN5              ;if jtag device need to put
                 0002AF
1422                                                                         ; data in backwards
1423      P:02AD 4C6700  REDUN3    move                          x0,y:(r7)
1424      P:02AE 00000C            rts
1425      P:02AF 4C5F00  REDUN5    move                          x0,y:(r7)+  ;put lsbs in first
1426      P:02B0 4D6700            move                          x1,y:(r7)   ;followed by msbyte
1427      P:02B1 00000C            rts
1428                     ;******************************************************************
1429                     ;       INITSEQ
1430                     ;       This routine loads the sequence pointed at by the
1431                     ;       r0 register from the EPROM.  The start address
1432                     ;       for reads is also placed in the Y memory
1433                     ;       and the word transfer count is also placed in x:$0.
1434                     ;******************************************************************
1435      P:02B2 0D02C2  INITSEQ   jsr     <LOADSEQ                          ;load sequence
1436      P:02B3 0D02B8            jsr     <GETARG                           ;get start address
1437      P:02B4 0D02A7            jsr     <REDUNDN3
1438      P:02B5 0D02B8            jsr     <GETARG                           ;get word count
1439      P:02B6 540000            move              a1,x:$0                 ;save lower count value
1440      P:02B7 00000C            rts
1441                     ;******************************************************************
1442                     ;       GETARG
1443                     ;       This routine determines how many bytes to get based on
1444                     ;       the architecture.  The 16 and 24 bit devices should get 16 bit
1445                     ;       arguments while the 32 bit devices get 32 bit arguments.
1446                     ;       Note: 0=96k, 1=56k2, 2=56100, 3=56301, 4=56lp16, 5=56800
1447                     ;******************************************************************
1448      P:02B8 0B0721  GETARG    btst    #1,x:$7                           ;check if Onyx
1449      P:02B9 0E82BF            jcs     <CHK24BIT                         ;check if 56100 or Onyx
1450      P:02BA 0A07A2            jset    #2,x:$7,GET16                     ;must be lp16 or hawk
                 00031A
1451      P:02BC 0A07A0            jset    #0,x:$7,GET16                     ;must be 56k2
                 00031A
1452      P:02BE 0C030A            jmp     <GETLWORD                         ;must be 96k
1453      P:02BF 0A07A0  CHK24BIT  jset    #0,x:$7,GETLWORD                  ;must be Onyx
                 00030A
1454      P:02C1 0C031A            jmp     <GET16                            ;must be 56100
1455                     ;*******************************************************************
1456                     ;       LOADSEQ
1457                     ;       This routine loads the OnCE command sequence from the
1458                     ;       external EPROM to the Y memory space.
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 27



1459                     ;       R0 must point to the EPROM address where the sequence is
1460                     ;       to be loaded from.
1461                     ;*******************************************************************
1462      P:02C2 320000  LOADSEQ   move              #0,r2                   ;clear y pointer
1463      P:02C3 57F400            move              #>1,b                   ;set for eos
                 000001
1464      P:02C5 07D88E  LOADSEQ1  move              p:(r0)+,a               ;get a value from EPROM
1465      P:02C6 5C5A05            cmp     b,a                   a1,y:(r2)+  ;test for eos
1466      P:02C7 0E22C5            jne     <LOADSEQ1                         ;go get next word if not eos
1467      P:02C8 00000C            rts
1468                     ;*******************************************************************
1469                     ;       HOSTBRK - IRQA Service Routine
1470                     ;       This is an interrupt driven routine used to service
1471                     ;       host computer breaks.
1472                     ;*******************************************************************
1473      P:02C9 0A0194  HOSTBRK   jclr    #JTAGFLAG,x:$1,HSTBRK0            ;make sure you mask trst on pal
                 0002CB
1474      P:02CB 0AA429  HSTBRK0   bset    #ADM_INT,x:$ffe4                  ;assert ADM_INT
1475      P:02CC 0AB0D4  HSTBRK1   jclr    #INT_ACK,y:$fff0,HSTBRK1          ;wait for INT_ACK=1
                 0002CC
1476      P:02CE 0AA5B2            jset    #SELECT,x:$ffe5,HSTBRK1           ;wait to be selected
                 0002CC
1477      P:02D0 0AA409            bclr    #ADM_INT,x:$ffe4                  ;deassert ADM_INT
1478      P:02D1 0AB0F4  HSTBRK2   jset    #INT_ACK,y:$fff0,HSTBRK2          ;wait for INT_ACK=0
                 0002D1
1479      P:02D3 0500BB            move              #0,sp                   ;reset sp
1480      P:02D4 0A0182            jclr    #CLEANUP,x:$1,BRKDONE             ;return if no clean up required
                 0002D7
1481      P:02D6 0D02E4            jsr     <REGBACK                          ;restore regs used thru OnCE
1482      P:02D7 0C0254  BRKDONE   jmp     <LGETCMD1
1483                     ;****************************************************************************
1484                     ;       OnCEBRK
1485                     ;       This routine services pending OnCE interface requests
1486                     ;       for service.  The host computer must be informed of these
1487                     ;       requests.
1488                     ;       The command converter program will only request service from
1489                     ;       the host when the OnCE port is requesting service.
1490                     ;       The host computer will acknowledge the request and will later
1491                     ;       poll the OnCE registers to determine what type of request needs
1492                     ;       to be serviced.
1493                     ;****************************************************************************
1494      P:02D8 0A0120  OnCEBRK   bset    #DEBUGMODE,x:$1                   ;set debug mode flag
1495      P:02D9 0AA523            bset    #H_BRK,x:$ffe5                    ;set HOST_BRK bit
1496      P:02DA 0D028C            jsr     <HND_SHK                          ;handshake with host
1497      P:02DB 0AA503            bclr    #H_BRK,x:$ffe5                    ;clear HOST_BRK bit
1498      P:02DC 0A0101            bclr    #OnCEREQ,x:$1                     ;clear ack flag
1499      P:02DD 00000C            rts
1500                     ;*******************************************************************
1501                     ;       REGBACK
1502                     ;       This routine restores the transfer registers (R0,X0,M0)
1503                     ;       on the target in the event of a host interrupt.
1504                     ;*******************************************************************
1505      P:02DE 60F000  REGBACK1  move              x:RESTOR56,r0           ;need to restore bpmrl,bpmrh
                 000048
1506      P:02E0 370500            move              #5,r7                   ;preset count to 5
1507      P:02E1 335700            move              #SAVEREG,r3
1508      P:02E2 0AF080            jmp     REGBACK2
                 0002EB
1509      P:02E4 335700  REGBACK   move              #SAVEREG,r3
1510      P:02E5 370300            move              #3,r7                   ;restore 3 for all but 56800
1511      P:02E6 0A0782            jclr    #2,x:$7,REGBACK4
                 0002E9
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 28



1512      P:02E8 370200            move              #2,r7                   ;only need to restore 2 for 56800
1513      P:02E9 60F000  REGBACK4  move              x:RESTORE,r0            ;need to restore regs. after read
                 000046
1514      P:02EB 0D02C2  REGBACK2  jsr     <LOADSEQ                          ;load sequence
1515      P:02EC 340400            move              #4,r4
1516      P:02ED 229C00            move              r4,n4
1517      P:02EE 0A0782            jclr    #2,x:$7,REGBAK7
                 0002F2
1518      P:02F0 340300            move              #3,r4
1519      P:02F1 229C00            move              r4,n4
1520      P:02F2 06D700  REGBAK7   do      r7,SKIP3
                 000300
1521      P:02F4 56DB00            move              x:(r3)+,a               ;get value to restore
1522      P:02F5 5C5C00            move                          a1,y:(r4)+  ;restore r1 upper
1523   
1524      P:02F6 0A07A2            jset    #2,x:$7,SKIP1                     ;check if lp16 or hawk
                 0002FF
1525      P:02F8 0A0781            jclr    #1,x:$7,NOSKIP                    ;check if 96k or 56k
                 0002FD
1526      P:02FA 0A07A0            jset    #0,x:$7,NOSKIP                    ;check if onyx
                 0002FD
1527      P:02FC 0C02FF            jmp     <SKIP1                            ;must be 16 bit device
1528   
1529      P:02FD 56DB00  NOSKIP    move              x:(r3)+,a               ;get value to restore
1530      P:02FE 5C5C00            move                          a1,y:(r4)+  ;restore r1 lower
1531      P:02FF 204C00  SKIP1     move              (r4)+n4                 ;increment r4
1532      P:0300 000000            nop
1533   
1534      P:0301 0D0362  SKIP3     jsr     <RUNSEQ
1535      P:0302 0A0102            bclr    #CLEANUP,x:$1
1536      P:0303 335700            move              #SAVEREG,r3             ;restore storage ptr
1537      P:0304 00000C            rts
1538                     ;********************************************************************
1539                     ;       GETOCMD routine gets a command from y sequence ram to xmit
1540                     ;       to the target.
1541                     ;********************************************************************
1542      P:0305 57F413  GETOCMD   clr     a         #>1,b                   ;end of sequence = 1
                 000001
1543      P:0307 5CE200            move                          y:(r2),a1   ;get a command from Y RAM
1544      P:0308 200005            cmp     b,a                               ;check if end of sequence
1545      P:0309 00000C            rts
1546                     ;****************************************************************************
1547                     ;       GETLWORD
1548                     ;       Get a 32 bit long word from host port and return with value in X
1549                     ;       Upper 16 bits of word are in upper 16 bits of X1 and lower 16
1550                     ;       bits of word are in upper 16 bits of X0.
1551                     ;       Registers X0,X1,Y0,B0,R2 and A are used.
1552                     ;****************************************************************************
1553      P:030A 0A07A2  GETLWORD  jset    #2,x:$7,GET16                     ;check if 56l6 or hawk
                 00031A
1554      P:030C 0A07A0            jset    #0,x:$7,CHEK32                    ;check if 56300
                 000311
1555      P:030E 0A07A1            jset    #1,x:$7,GET16                     ;check if 5616
                 00031A
1556      P:0310 0C0313            jmp     <GET32                            ;must be 96k
1557      P:0311 0A0781  CHEK32    jclr    #1,x:$7,GET24                     ;must be 96k
                 000317
1558      P:0313 0D031A  GET32     jsr     <GET16                            ;get upper 16 bits
1559      P:0314 208500  GETREST   move              x0,x1
1560      P:0315 0D031A            jsr     <GET16                            ;get lower 16 bits
1561      P:0316 00000C            rts
1562      P:0317 240000  GET24     move              #0,x0                   ;clear x0
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 29



1563      P:0318 0D031F            jsr     <GET8                             ;must be 24 bit
1564      P:0319 0C0314            jmp     GETREST
1565                     ;***************************************************************************
1566                     ;       Get 16 bits of data and return in X0 register
1567                     ;***************************************************************************
1568      P:031A 47F400  GET16     move              #>$8000,y1              ;shift data left 16 bits
                 008000
1569      P:031C 0D0329            jsr     <GETBYTE                          ;get bits 15-8
1570      P:031D 2000B0            mpy     y0,y1,a                           ;shift data left 16 bits
1571      P:031E 210400            move              a0,x0
1572      P:031F 0D0329  GET8      jsr     <GETBYTE
1573      P:0320 47F400            move              #>$80,y1
                 000080
1574      P:0322 2000B0            mpy     y0,y1,a                           ;shift data left 8 bits
1575      P:0323 210C00            move              a0,a1
1576      P:0324 200042            or      x0,a
1577      P:0325 218400            move              a1,x0
1578      P:0326 0608A0  SHIFTR8   rep     #8                                ;lower 16 bits into a
1579      P:0327 200023            lsr     a
1580      P:0328 00000C            rts                                       ;return
1581                     ;****************************************************************************
1582                     ;       GETBYTE
1583                     ;       Get a byte from PDB and put it in Y0.
1584                     ;       Registers Y0,B are used.
1585                     ;****************************************************************************
1586      P:0329 0AB0D6  GETBYTE   jclr    #H_REQ,y:$fff0,GETBYTE            ;wait for H_REQ=1
                 000329
1587      P:032B 084624            movep             x:$ffe4,y0              ;get data on PDB
1588      P:032C 0AA428            bset    #ADM_ACK,x:$ffe4                  ;assert ADM_ACK
1589      P:032D 2DFF00            move              #$ff,b1                 ;remove upper bytes
1590      P:032E 20005E            and     y0,b
1591      P:032F 21A600            move              b1,y0
1592      P:0330 0AB0F6  GBYTE1    jset    #H_REQ,y:$fff0,GBYTE1             ;wait for H_REQ=0
                 000330
1593      P:0332 0AA408            bclr    #ADM_ACK,x:$ffe4                  ;deassert ADM_ACK
1594      P:0333 00000C            rts                                       ;return
1595                     ;****************************************************************************
1596                     ;       PUTLWORD
1597                     ;       Put long word in X on host port
1598                     ;       The 32 bit value resides in the upper 16 bits of X1 and X0.
1599                     ;       This routine uses registers X,A,and B0
1600                     ;****************************************************************************
1601      P:0334 0A07A2  PUTLWORD  jset    #2,x:$7,PUT16                     ;check if 56lp16 or hawk
                 00033C
1602                                                                         ;jset           #0,x:$7,CHK32           ;check if 56300
1603                                                                         ;jset            #1,x:$7,PUT16  ;check if 5616 bit devic
e
1604                                                                         ;jmp            <PUT32                  ;check if 96k
1605                     CHK32                                               ;jclr            #1,x:$7,PUT24  ;check if 24 bit device
1606                                                                         ;debug
1607      P:0336 20AE00  PUT32     move              x1,a
1608      P:0337 0D0343            jsr     <UPPERBYTE
1609      P:0338 0D034C            jsr     <PUTBYTE                          ;send bits 31-24
1610      P:0339 20AE00  PUT24     move              x1,a
1611      P:033A 0D0346            jsr     <LOWERBYTE
1612      P:033B 0D034C            jsr     <PUTBYTE                          ;send bits 23-16
1613      P:033C 208E00  PUT16     move              x0,a
1614      P:033D 0D0343            jsr     <UPPERBYTE
1615      P:033E 0D034C            jsr     <PUTBYTE                          ;send bits 15-8
1616      P:033F 208E00            move              x0,a
1617      P:0340 0D0346            jsr     <LOWERBYTE
1618      P:0341 0D034C            jsr     <PUTBYTE                          ;send bits 7-0
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 30



1619      P:0342 00000C            rts
1620      P:0343 0610A0  UPPERBYTE rep     #<16                              ;move bits 16-8 of x1 to 7-0
1621      P:0344 200022            asr     a
1622      P:0345 0C0348            jmp     <LOWERBYTE1
1623      P:0346 0608A0  LOWERBYTE rep     #<8                               ;move bits 7-0 of x1 to 7-0
1624      P:0347 200022            asr     a
1625      P:0348 46F400  LOWERBYTE1 move             #>$ff,y0                ;masking value
                 0000FF
1626      P:034A 200056            and     y0,a
1627      P:034B 00000C            rts                                       ;of the a1 accumulator
1628                     ;****************************************************************************
1629                     ;       PUTBYTE
1630                     ;       Put low order byte in A1 to host port
1631                     ;       This routine uses Y0,Y1 and B registers
1632                     ;****************************************************************************
1633      P:034C 0D0357  PUTBYTE   jsr     <PUTDATA                          ;go put data to port
1634      P:034D 0AA42A            bset    #ADM_REQ,x:$ffe4                  ;assert ADM_REQ
1635      P:034E 0AB0D5  PB1       jclr    #H_ACK,y:$fff0,PB1                ;wait for H_ACK to assert
                 00034E
1636      P:0350 0AA40A            bclr    #ADM_REQ,x:$ffe4                  ;deassert ADM_REQ
1637      P:0351 0AB0F5  PB2       jset    #H_ACK,y:$fff0,PB2                ;wait for H_ACK to deassert
                 000351
1638      P:0353 08F4A2  MKIN      movep             #>BDDRIN,x:$ffe2        ;make pb0-7 inputs
                 007F00
1639      P:0355 0AA40B            bclr    #DIR,x:$ffe4                      ;set data direction as input
1640      P:0356 00000C            rts
1641                     ;*******************************************************************
1642                     ;       PUTDATA
1643                     ;       This routine insures that the data direction of the
1644                     ;       lower 8 bits of port b are outputs so that the value
1645                     ;       read will be correct.  The user must insure to make
1646                     ;       data direction inputs after using this subroutine.
1647                     ;       The lower 8 bit value in A1 register is what gets transmitted.
1648                     ;*******************************************************************
1649      P:0357 46F400  PUTDATA   move              #>$ff00,y0
                 00FF00
1650      P:0359 0AA42B            bset    #DIR,x:$ffe4                      ;set data direction as out
1651      P:035A 084F24            movep             x:$ffe4,b               ;get current x:$ffe4 value
1652      P:035B 20005E            and     y0,b                              ;save only control bits
1653      P:035C 21A600            move              b1,y0
1654      P:035D 200052            or      y0,a
1655      P:035E 08CC24            movep             a1,x:$ffe4              ;store new value with control bits
1656      P:035F 08F4A2            movep             #>BDDROUT,x:$ffe2       ;make port b0-7 outputs
                 007FFF
1657      P:0361 00000C            rts
1658   
1659                     ;*******************************************************************
1660                     ;       The routine sets up the TMS signal for Scan-DR path
1661                     ;       and will also send out the proper number of bypasses for the
1662                     ;       number of devices in the system.
1663                     ;       Assumptions:
1664                     ;       All presets for device setups for JTAG bypass mode are already issued.
1665                     ;       TMS starts from IDLE state.
1666                     ;       If more than one device is to be addressed,
1667                     ;       the sequence in Y memory will contain the commands/data for each
1668                     ;       device, ie, only 1 y mem. ptr and only 1 x mem. ptr.
1669                     ;       x:$b contains the number of devices in the system,
1670                     ;       x:$c contains the active device in the system.
1671                     ;***************************************************************************
1672      P:0362 320000  RUNSEQ    move              #0,r2                   ;preset y memory pointer
1673      P:0363 0A0127  RUNSEQ1   bset    #CMDFLAG,x:$1                     ;set command flag
1674      P:0364 5EDA00            move                          y:(r2)+,a   ;get command
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 31



1675      P:0365 561800            move              a,x:$18                 ;save for later use
1676      P:0366 0A1880            jclr    #0,x:$18,JTAGCOM1                 ;check if end of sequence
                 00036B
1677      P:0368 0002F8            ori     #$2,mr                            ;enable interrupts
1678      P:0369 00F2B8            andi    #$f2,mr
1679      P:036A 00000C            rts
1680   
1681      P:036B 200013  JTAGCOM1  clr     a                                 ;need to clear jtag data register
1682      P:036C 561500            move              a,x:$15
1683      P:036D 558C00            move              x:$c,b1                 ;get active device list
1684      P:036E 550D00            move              b1,x:$d                 ;save in temp space
1685      P:036F 0BF080            jsr     SENDDATA
                 000379
1686   
1687      P:0371 000000            nop
1688      P:0372 000000  JTAGCOM2  nop
1689      P:0373 0A0186  JTAGCOM3  jclr    #POLLSTATUS,x:$1,RUNSEQ2          ;go poll for status if needed
                 000378
1690      P:0375 0D012D            jsr     JREADSB
1691      P:0376 0A01A8  JTAGCOM9  jset    #STATUSBUSY,x:$1,JTAGCOM3         ;return if status error
                 000373
1692      P:0378 0C0363  RUNSEQ2   jmp     <RUNSEQ1                          ;go get next command
1693                     ;*********************************************************************
1694                     ;       This routine sends the 8 bit command to the target
1695                     ;*********************************************************************
1696      P:0379 0A0187  SENDDATA  jclr    #CMDFLAG,x:$1,SENDDATA2           ;check if time to send
                 00037C
1697                                                                         ;  command or data
1698      P:037B 0D03CC            jsr     <SENDCMD                          ;send command
1699   
1700                     ;*********************************************************************
1701                     ;       This routine sends/receives the data to/from the target
1702                     ;       It returns via the rts in the function it calls
1703                     ;*********************************************************************
1704      P:037C 47F413  SENDDATA2 clr     a         #>$ff,y1                ;need to clear jtag data register
                 0000FF
1705      P:037E 561500            move              a,x:$15
1706      P:037F 0A18A2            jset    #2,x:$18,SENDIT                   ;cmd=4, write data and wait for ack
                 0003D1
1707      P:0381 0A18A1            jset    #1,x:$18,GETIT                    ;cmd=2, read data and wait for ack
                 0003F0
1708      P:0383 0B18A4            jsset   #4,x:$18,SENDITX                  ;cmd=10, write data, dont wait for ack
                 0003D2
1709      P:0385 0A0106            bclr    #POLLSTATUS,x:$1                  ;cmd=8, don't do anything
1710      P:0386 00000C            rts
1711   
1712                     ;*******************************************************************
1713                     ;       XFERDATA routine toggles data in/out, then increments state
1714                     ;       machine to exit1 so that last bit of data is retrieved/sent.
1715                     ;
1716                     ;       This is necessary since the jtag state machine will contine
1717                     ;       transferring data until the state machine decoder is not decoding
1718                     ;       a shift-data or shift-ir command.
1719                     ;
1720                     ;       This routine assumes the data is in the A accumulator for sending
1721                     ;       and that data received is in the B accumulator.
1722                     ;
1723                     ;******************************************************************
1724      P:0387 218A00  XFERDAT   move              a1,a2                   ;set up clock count
1725                     ;*****************************************************************
1726                     ;       SHIFT DATA RIGHT 8 BITS AND SEND/RECEIVE IT
1727                     ;       IN LINE CODE TO REDUCE NUMBER OF SUBROUTINE CALLS.
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 32



1728                     ;       THIS USED TO BE SHIFTTOG
1729                     ;*****************************************************************
1730      P:0388 0608A0  XFERDAT1  rep     #8                                ;need to shift data in A
1731      P:0389 200023            lsr     a
1732      P:038A 758900            move              x:$9,n5                 ;preset clock rate
1733      P:038B 06CA00            do      a2,XFERDAT2
                 000392
1734      P:038D 0D01C6            jsr     <SHIFTDATA                        ;go preset data to port pin
1735      P:038E 0D0089            jsr     <CLKTOGGLE                        ;go toggle clock
1736      P:038F 579500            move              x:$15,b                 ;get current value
1737      P:0390 0B012A            btst    #DATAFLG,x:$1                     ;chek if next bit is 0 or 1
1738      P:0391 20002F            ror     b                                 ;get bit
1739      P:0392 551500            move              b1,x:$15                ;save value
1740      P:0393 000000  XFERDAT2  nop
1741                     ;**********************END OF IN-LINE SHIFTTOG********************
1742      P:0394 0D01C6            jsr     <SHIFTDATA                        ;shift last bit onto port
1743   
1744      P:0395 55F400            move              #SHIFT_EXIT,b1          ;preset for shift to exit
                 800001
1745      P:0397 0D0069            jsr     <TMSTOGGLE                        ;toggle tms pin and
1746      P:0398 0D03C7            jsr     <DATATOGL6                        ;shift last bit into buffer
1747   
1748      P:0399 00000C            rts                                       ;return
1749   
1750                     ;*****************************************************************
1751                     ;       SHIFT DATA RIGHT 8 BITS AND SEND/RECEIVE IT
1752                     ;*****************************************************************
1753      P:039A 0608A0  SHIFTTOG  rep     #8                                ;need to shift data in A
1754      P:039B 200023            lsr     a
1755      P:039C 758900            move              x:$9,n5                 ;preset clock rate
1756      P:039D 06CA00            do      a2,DATATOG4
                 0003A4
1757      P:039F 0D01C6            jsr     <SHIFTDATA                        ;go preset data to port pin
1758      P:03A0 0D0089            jsr     <CLKTOGGLE                        ;go toggle clock
1759      P:03A1 579500            move              x:$15,b                 ;get current value
1760      P:03A2 0B012A            btst    #DATAFLG,x:$1                     ;chek if next bit is 0 or 1
1761      P:03A3 20002F            ror     b                                 ;get bit
1762      P:03A4 551500            move              b1,x:$15                ;save value
1763      P:03A5 000000  DATATOG4  nop
1764      P:03A6 00000C            rts
1765                     ;***************************************************************************
1766                     ;       CHKACTIVE routine checks if the current device being addressed
1767                     ;       is in bypass mode or in enable_once mode.
1768                     ;***************************************************************************
1769                     ;CHKACTIVE move          x:$d,b1                ;or if active
1770                     ;        lsr             b                      ;
1771                     ;        move            b1,x:$d                ;save last device tested
1772                     ;       rts
1773                     ;***************************************************************************
1774                     ;       BYPASS1 routine sends a bypass dummy data bit
1775                     ;       Assumes that PC8 is general purpose output pin.
1776                     ;***************************************************************************
1777      P:03A7 0AA508  BYPASS1   bclr    #DSI,x:$ffe5                      ;send bypass=0
1778      P:03A8 0D0089            jsr     <CLKTOGGLE                        ;send clock
1779      P:03A9 00000C            rts
1780                     ;***************************************************************************
1781                     ;       SDR routine shifts the target tms signal to the shift DR state
1782                     ;***************************************************************************
1783      P:03AA 55F400  SDR       move              #IDLE_SDR,b1            ;prepare to shift dr
                 800003
1784      P:03AC 0D0069            jsr     <TMSTOGGLE                        ;go toggle tms
1785      P:03AD 00000C            rts
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 33



1786                     ;***************************************************************************
1787                     ;       DATATOGLE routine sends the proper bit values through the TDO
1788                     ;       pin for an n bit data stream.  It will be used for boundary scan
1789                     ;       registers and loading instructions of various lengths.
1790                     ;       Data to be sent is in A accum. and data received is in B accum.
1791                     ;       R4 contains the number of bits to xmit.
1792                     ;***************************************************************************
1793      P:03AE 549500  DATATOGLE move              x:$15,a1                ;get data to send
1794      P:03AF 758900  DATATOGLE1 move             x:$9,n5                 ;preset clock rate
1795      P:03B0 06CA00            do      a2,DATATOGL4
                 0003CA
1796      P:03B2 200023            lsr     a                                 ;check if data is 1 or 0
1797      P:03B3 0E83B6            jcs     <DATATGL2                         ;if carry clear send 0
1798      P:03B4 0AA508            bclr    #DSI,x:$ffe5                      ;else need to send 1
1799      P:03B5 0C03B7            jmp     <DATATOG5
1800      P:03B6 0AA528  DATATGL2  bset    #DSI,x:$ffe5                      ;send 1 if carry set
1801   
1802                     ;********IN-LINE CLOCK TOGGLE******
1803      P:03B7 08F4A1  DATATOG5  movep             #0,x:$ffe1              ;turn off ssi, turn on portc io
                 000000
1804      P:03B9 0A010A            bclr    #DATAFLG,x:$1                     ;clear data flag
1805      P:03BA 0AA526            bset    #DSCK,x:$ffe5                     ;set clock high
1806      P:03BB 0602A0            rep     #2
1807      P:03BC 000000            nop                                       ;kill some time
1808      P:03BD 0BA527            btst    #DSO,x:$ffe5                      ;get data bit value
1809      P:03BE 0AF0A0            jcc     CLKTG                             ;if data is 0 keep going
                 0003C1
1810      P:03C0 0A012A            bset    #DATAFLG,x:$1                     ;else set it to 1
1811      P:03C1 0AA526  CLKTG     bset    #DSCK,x:$ffe5                     ;set clock high
1812      P:03C2 06DD20            rep     n5
1813      P:03C3 000000            nop                                       ;set clock high
1814      P:03C4 0AA506            bclr    #DSCK,x:$ffe5                     ;set clock low
1815      P:03C5 06DD20            rep     n5
1816      P:03C6 000000            nop                                       ;set clock low
1817                     ;*******END OF IN_LINE CLICK TOGGLE*****
1818      P:03C7 579500  DATATOGL6 move              x:$15,b                 ;get current value
1819      P:03C8 0B012A            btst    #DATAFLG,x:$1                     ;chek if next bit is 0 or 1
1820      P:03C9 20002F            ror     b                                 ;get bit
1821      P:03CA 551500            move              b1,x:$15                ;save value
1822      P:03CB 00000C  DATATOGL4 rts
1823                     ;***************************************************************************
1824                     ;       SHIFTDATA presents the data at the port pin so it may be sent
1825                     ;       to the target.  The last bit of data must be present when exiting
1826                     ;       so that when the jtag state machine transitions to the exit1 state
1827                     ;       it will capture the last bit of data.
1828                     ;       Assumption is that the data going out is in A and data coming in is
1829                     ;       in B.
1830                     ;**************************************************************************
1831                     ;SHIFTDATA lsr             a               ;check if data is 1 or 0
1832                     ;SHIFTDATA1 jcs             <DATATOGL2      ;if carry clear send 0
1833                     ;        bclr            #DSI,x:$ffe5   ;else need to send 1
1834                     ;        jmp             <DATATOGL5
1835                     ;DATATOGL2 bset          #DSI,x:$ffe5   ;send 1 if carry set
1836                     ;DATATOGL5 rts
1837   
1838                     ;*************************************************************************
1839                     ;       SENDCMD will send an 8 bit cmd via the ssi
1840                     ;       WL1,WL0=00 for 8 bit xfer
1841                     ;       WL1,WL0=01 for 12 bit xfer
1842                     ;       WL1,WL0=10 for 16 bit xfer
1843                     ;       WL1,WL0=11 for 24 bit xfer
1844                     ;*************************************************************************
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 34



1845                     SENDCMD                                             ;jsr    JXFER8                  ;go set up ssi: 8bit,LSB
 first
1846      P:03CC 549800            move              x:$18,a1                ;get cmd to send
1847      P:03CD 0608A0            rep     #8
1848      P:03CE 200033            lsl     a1
1849      P:03CF 542200            move              a1,x:$22
1850      P:03D0 0C00EB            jmp     OISSUE8
1851                     ;*******************************************************************
1852                     ;       SENDIT
1853                     ;       This routine transmits a value by calling the DATATOGLE1 routine.
1854                     ;       It transmits either 8 or 16 bits at a time depending
1855                     ;       where this routine is entered.
1856                     ;       The value to transmit is in the A accumulator upper byte or
1857                     ;       upper 16 bits.
1858                     ;*******************************************************************
1859      P:03D1 20001B  SENDIT    clr     b                                 ;this is for command type 4
1860      P:03D2 218700  SENDITX   move              a1,y1                   ;save command temporarily
1861      P:03D3 0A18A5            jset    #5,x:$18,SENDIT1                  ;check if 24 bits to be sent
                 0003E7
1862      P:03D5 5DDA00            move                          y:(r2)+,b1  ;get value to send
1863      P:03D6 0A0782            jclr    #2,x:$7,SENDNXT
                 0003DB
1864      P:03D8 21AC00            move              b1,a1
1865      P:03D9 0AF080            jmp     SEND2
                 0003E2
1866      P:03DB 0608A0  SENDNXT   rep     #8                                ;need to shift it right 8 bits
1867      P:03DC 20002B            lsr     b1
1868      P:03DD 21A700            move              b1,y1                   ;save new lower 16 bits to reconstruct word
1869      P:03DE 5CDA00            move                          y:(r2)+,a1
1870      P:03DF 0608A0            rep     #8                                ;get upper 8 bits of work
1871      P:03E0 200033            lsl     a1
1872      P:03E1 200072            or      y1,a1                             ;need to send 24 bits
1873      P:03E2 542200  SEND2     move              a1,x:$22
1874      P:03E3 0A07A2            jset    #2,x:$7,OISSUE16
                 0000E5
1875      P:03E5 0A0782            jclr    #2,x:$7,OISSUE24                  ;  send 24 bits
                 0000DF
1876   
1877      P:03E7 5CDA00  SENDIT1   move                          y:(r2)+,a1
1878      P:03E8 205A00            move              (r2)+
1879      P:03E9 542200            move              a1,x:$22
1880      P:03EA 0C00E5            jmp     OISSUE16
1881   
1882      P:03EB 55F400  GOIDLE    move              #EXIT_IDLE,b1           ;need to finish jtag xfer states
                 800002
1883      P:03ED 0D0069            jsr     <TMSTOGGLE
1884      P:03EE 0A0126            bset    #POLLSTATUS,x:$1                  ;need to poll for status
1885      P:03EF 00000C            rts                                       ;must be 16 bit device
1886   
1887                     ;*******************************************************************
1888                     ;       GETIT routine toggles data in by sending dummy data and
1889                     ;       receiving it through the port bit pin.  The value is received
1890                     ;       in the B accummulator upper byte or upper 16 bits.
1891                     ;
1892                     ;*******************************************************************
1893      P:03F0 0003F8  GETIT     ori     #$3,mr                            ;disable interrupts
1894      P:03F1 08F4BF            movep             #$0,x:$ffff             ;turn off IRQA,IRQB
                 000000
1895      P:03F3 0A07A2            jset    #2,x:$7,OREAD16
                 000103
1896      P:03F5 0A1885            jclr    #5,x:$18,OREAD24
                 0000FC
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 35



1897      P:03F7 0C0103            jmp     OREAD16
1898   
1899                     ;************************************************************************
1900      P:03F8 20001B  RECEIVE   clr     b                                 ;clear data buffer
1901      P:03F9 551500            move              b1,x:$15
1902      P:03FA 0D0387            jsr     <XFERDAT                          ;go get data by sending dummy data
1903      P:03FB 549500            move              x:$15,a1                ;get stored value
1904      P:03FC 0A07A2            jset    #2,x:$7,GET16B2
                 0003FF
1905      P:03FE 0D0326            jsr     <SHIFTR8                          ;shift data right 8 bits
1906      P:03FF 545B00  GET16B2   move              a1,x:(r3)+              ;save upper 8 bits
1907      P:0400 08F4BF            movep             #$3e,x:$ffff            ;turn on IRQA,IRQB
                 00003E
1908      P:0402 00000C            rts
1909                     ;******************************************************************
1910                     ;       Following are the parsed commands sent from the host computer.
1911                     ;       Each command retrieves the number of arguments
1912                     ;       required to execute that command.
1913                     ;******************************************************************
1914                     ;       GO COMMAND (10)
1915                     ;******************************************************************
1916      P:0403 60F000  GOCMD     move              x:GOSEQ,r0              ;preset sequence load ptr.
                 000044
1917      P:0405 370100            move              #1,r7                   ;preset address write ptr.
1918      P:0406 0D02C2            jsr     <LOADSEQ                          ;load sequence
1919      P:0407 0D030A            jsr     <GETLWORD                         ;get PILR value
1920   
1921      P:0408 0A07A2            jset    #2,x:$7,GO1                       ;check if 56lp16 or hawk
                 000410
1922      P:040A 0A0781            jclr    #1,x:$7,GO4                       ;check if 96k or 56k
                 00040F
1923      P:040C 0A07A0            jset    #0,x:$7,GO3                       ;check if onyx
                 000420
1924      P:040E 0C0410            jmp     <GO1                              ;must be 56100
1925   
1926      P:040F 4D5F00  GO4       move                          x1,y:(r7)+  ;save PILR high
1927      P:0410 4C5F00  GO1       move                          x0,y:(r7)+  ;save PILR low
1928      P:0411 205F00  GOO1      move              (r7)+
1929      P:0412 0D030A            jsr     <GETLWORD                         ;get PDBR value
1930   
1931      P:0413 0A07A2            jset    #2,x:$7,GO2                       ;check if lp16 or hawk
                 00041B
1932      P:0415 0A0781            jclr    #1,x:$7,GO6                       ;check if 96k or 56k
                 00041A
1933      P:0417 0A07A0            jset    #0,x:$7,GO5                       ;check if onyx
                 000423
1934      P:0419 0C041B            jmp     <GO2                              ;must be 56100
1935   
1936      P:041A 4D5F00  GO6       move                          x1,y:(r7)+  ;save PDBR high
1937      P:041B 4C6700  GO2       move                          x0,y:(r7)   ;save PDBR low
1938      P:041C 0D0362  GOO2      jsr     <RUNSEQ                           ;run sequence
1939      P:041D 0A0100            bclr    #DEBUGMODE,x:$1                   ;clear debug mode status flag
1940      P:041E 0D020D            jsr     USRADD
1941      P:041F 00000C            rts                                       ;return to monitor
1942                     ;*******************************************************************
1943                     ;       Need to check for onyx byte reversal
1944                     ;*******************************************************************
1945      P:0420 4C5F00  GO3       move                          x0,y:(r7)+  ;save PILR LOW
1946      P:0421 4D5F00            move                          x1,y:(r7)+  ;save PILR HI
1947      P:0422 0C0411            jmp     <GOO1                             ;must be 56300
1948                     ;*******************************************************************
1949      P:0423 4C5F00  GO5       move                          x0,y:(r7)+  ;save PDBR low
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 36



1950      P:0424 4D6700            move                          x1,y:(r7)   ;save PDBR hi
1951      P:0425 0C041C            jmp     <GOO2                             ;must be 56300
1952                     ;******************************************************************
1953                     ;       GO DELAY COMMAND (11)
1954                     ;       This command is not currently implemented.
1955                     ;******************************************************************
1956      P:0426 60F000  GODELAY   move              x:GOSEQ,r0              ;preset sequence load ptr
                 000044
1957      P:0428 370100            move              #1,r7                   ;preset address write pTr
1958      P:0429 0D02C2            jsr     <LOADSEQ                          ;load seq.
1959      P:042A 0D030A            jsr     <GETLWORD                         ;get PILR value
1960   
1961      P:042B 0A07A2            jset    #2,x:$7,GO21                      ;check if 56lp16 or hawk
                 000433
1962      P:042D 0A0781            jclr    #1,x:$7,GO11                      ;check if 96k or 56k
                 000432
1963      P:042F 0A07A0            jset    #0,x:$7,GO71                      ;check if onyx
                 00044F
1964      P:0431 0C0433            jmp     <GO21
1965   
1966      P:0432 4D5F00  GO11      move                          x1,y:(r7)+  ;put PILR high
1967      P:0433 4C5F00  GO21      move                          x0,y:(r7)+  ;put PILR low
1968      P:0434 205F00  GO31      move              (r7)+
1969      P:0435 0D030A            jsr     <GETLWORD                         ;get PDBR value
1970   
1971      P:0436 0A07A2            jset    #2,x:$7,GO51                      ;check if 56lp16 or hawk
                 00043E
1972      P:0438 0A0781            jclr    #1,x:$7,GO41                      ;check if 96k or 56k
                 00043D
1973      P:043A 0A07A0            jset    #0,x:$7,GO81                      ;check if onyx
                 000452
1974      P:043C 0C043E            jmp     <GO51
1975   
1976      P:043D 4D5F00  GO41      move                          x1,y:(r7)+  ;put PDBR high
1977      P:043E 4C5F00  GO51      move                          x0,y:(r7)+  ;put PDBR low
1978      P:043F 46F400  GO61      move              #>$55,y0                ;setup trig byte
                 000055
1979      P:0441 47F400            move              #>$aa,y1                ;setup abort byte
                 0000AA
1980      P:0443 44F400            move              #>$ff,x0                ;setup mask value
                 0000FF
1981      P:0445 084C24  TRIG1     movep             x:$ffe4,a1              ;wait for trigger
1982      P:0446 200046            and     x0,a
1983      P:0447 200055            cmp     y0,a
1984      P:0448 0EA44C            jeq     <GODELAY1                         ;if trigger byte go
1985      P:0449 200075            cmp     y1,a
1986      P:044A 0EA44E            jeq     <GORETRN                          ;return if abort
1987      P:044B 0C0445            jmp     <TRIG1                            ;else go get new value
1988      P:044C 0D0362  GODELAY1  jsr     <RUNSEQ                           ;run sequence
1989      P:044D 0A0100            bclr    #DEBUGMODE,x:$1                   ;clear debug mode status flag
1990                     GORETRN                                             ;jsr    USRADD
1991      P:044E 00000C            rts                                       ;else return to monitor
1992                     ;*******************************************************************
1993                     ;       Need to check for onyx byte reversal
1994                     ;*******************************************************************
1995      P:044F 4C5F00  GO71      move                          x0,y:(r7)+  ;save PILR LOW
1996      P:0450 4D5F00            move                          x1,y:(r7)+  ;save PILR HI
1997      P:0451 0C0434            jmp     <GO31                             ;must be 56300
1998   
1999      P:0452 4C5F00  GO81      move                          x0,y:(r7)+  ;save PDBR low
2000      P:0453 4D6700            move                          x1,y:(r7)   ;save PDBR hi
2001      P:0454 0C043F            jmp     <GO61                             ;must be 56300
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 37



2002                     ;*******************************************************************
2003                     ;       PREAD COMMAND (12)
2004                     ;       This command services P memory reads. All memory
2005                     ;       reads/writes return to the monitor from PREADDATA subroutine
2006                     ;       via an rts.
2007                     ;*******************************************************************
2008      P:0455 60F000  PREAD     move              x:RSAVE,r0              ;need to save regs. before read
                 000047
2009      P:0457 335700            move              #SAVEREG,r3             ;point to x memory for reg. storage
2010      P:0458 0A0783            jclr    #3,x:$7,PREAD11
                 00045C
2011      P:045A 60F000            move              x:SAVE566,r0
                 000049
2012      P:045C 0D02C2  PREAD11   jsr     <LOADSEQ                          ;load the sequence
2013      P:045D 0D0362            jsr     <RUNSEQ                           ;run the sequence
2014      P:045E 0A0122            bset    #CLEANUP,x:$1                     ;set clean up flag
2015      P:045F 60BE00            move              x:PREADSEQ,r0           ;point to pread seq.
2016      P:0460 61B000            move              x:RPLOOP,r1             ;get pread loop address
2017      P:0461 0D0468            jsr     <PREADDATA
2018      P:0462 0A0783            jclr    #3,x:$7,PREAD22
                 000466
2019      P:0464 0D02DE            jsr     REGBACK1
2020      P:0465 00000C            rts
2021      P:0466 0D02E4  PREAD22   jsr     <REGBACK                          ;need to restore regs. used
2022      P:0467 00000C            rts
2023                     ;*******************************************************************
2024                     ;       PREADDATA
2025                     ;       This routine is called by all memory read commands
2026                     ;       R7 is used to point to the y memory location where
2027                     ;       the start address in user memory is to be placed.
2028                     ;       R3 will contain the value of the user memory location
2029                     ;       read.
2030                     ;*******************************************************************
2031      P:0468 67F000  PREADDATA move              x:OFFSET,r7             ;y memory address to write to
                 00004B
2032      P:046A 0D02B2            jsr     <INITSEQ
2033      P:046B 0D0472            jsr     <PREADVAL                         ;run sequence once
2034      P:046C 0D02A0            jsr     <REDUN1
2035      P:046D 0EA47F            jeq     <PREADDONE                        ;if zero return
2036      P:046E 223000            move              r1,r0                   ;get loop sequence address
2037      P:046F 0D02C2            jsr     <LOADSEQ
2038      P:0470 06C400            do      x0,PREADDONE
                 00047E
2039      P:0472 0D0362  PREADVAL  jsr     <RUNSEQ                           ;run sequence
2040      P:0473 0A0781            jclr    #1,x:$7,PREAD4                    ;check if other than onyx
                 000477
2041      P:0475 0A07A0            jset    #0,x:$7,PREAD3                    ;check if onyx
                 000480
2042      P:0477 44FB00  PREAD4    move              x:-(r3),x0              ;get value to return
2043      P:0478 0A07A1            jset    #1,x:$7,PREAD1                    ;check if 16 bit device
                 00047D
2044      P:047A 0A07A2            jset    #2,x:$7,PREAD1                    ;check if 56lp16 or hawk
                 00047D
2045      P:047C 45FB00  PREAD2    move              x:-(r3),x1
2046      P:047D 0D0334  PREAD1    jsr     <PUTLWORD                         ;send value to host
2047      P:047E 000000            nop
2048      P:047F 00000C  PREADDONE rts
2049   
2050      P:0480 45FB00  PREAD3    move              x:-(r3),x1              ;save reg LOW
2051      P:0481 0A0783            jclr    #3,x:$7,NOT566                    ;need to increment double for 56600
                 000487
2052      P:0483 45FB00            move              x:-(r3),x1              ;dummy decrement of ptr
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 38



2053      P:0484 44FB00            move              x:-(r3),x0              ;get upper 8 bits of word
2054      P:0485 44FB00            move              x:-(r3),x0              ;dummy decrement of ptr
2055      P:0486 0C047D            jmp     PREAD1
2056      P:0487 44FB00  NOT566    move              x:-(r3),x0              ;save reg HI
2057      P:0488 0C047D            jmp     PREAD1                            ;must be 56300
2058   
2059                     ;*******************************************************************
2060                     ;       XREAD COMMAND (14)
2061                     ;*******************************************************************
2062   
2063      P:0489 60F000  XREAD     move              x:RSAVE,r0              ;need to save regs. before read
                 000047
2064      P:048B 335700            move              #SAVEREG,r3             ;point to x memory for reg. storage
2065      P:048C 0D02C2            jsr     <LOADSEQ                          ;load the sequence
2066      P:048D 0D0362            jsr     <RUNSEQ                           ;run the sequence
2067      P:048E 0A0122            bset    #CLEANUP,x:$1                     ;set clean up flag
2068      P:048F 60BF00            move              x:XREADSEQ,r0           ;point to xread seq.
2069      P:0490 61B100            move              x:RXLOOP,r1             ;get pread loop address
2070      P:0491 0D0494  XREADX    jsr     <XREADDATA
2071      P:0492 0D02E4            jsr     <REGBACK                          ;need to restore regs. used
2072      P:0493 00000C            rts
2073                     ;*******************************************************************
2074                     ;       XREADDATA
2075                     ;       This routine is called by all memory read commands
2076                     ;       R7 is used to point to the y memory location where
2077                     ;       the start address in user memory is to be placed.
2078                     ;       R3 will contain the value of the user memory location
2079                     ;       read.
2080                     ;*******************************************************************
2081      P:0494 67F000  XREADDATA move              x:OFFSET,r7             ;y memory address to write to
                 00004B
2082      P:0496 0D02B2            jsr     <INITSEQ
2083      P:0497 0D049E            jsr     <XREADVAL                         ;run sequence once
2084      P:0498 0D02A0            jsr     <REDUN1
2085      P:0499 0EA4AB            jeq     <XREADDONE                        ;if zero return
2086      P:049A 223000            move              r1,r0                   ;get loop sequence address
2087      P:049B 0D02C2            jsr     <LOADSEQ
2088      P:049C 06C400            do      x0,XREADDONE
                 0004AA
2089      P:049E 0D0362  XREADVAL  jsr     <RUNSEQ                           ;run sequence
2090      P:049F 0A0781            jclr    #1,x:$7,XREAD4                    ;check if other than onyx
                 0004A3
2091      P:04A1 0A07A0            jset    #0,x:$7,XREAD3                    ;check if onyx
                 0004AC
2092      P:04A3 44FB00  XREAD4    move              x:-(r3),x0              ;get value to return
2093      P:04A4 0A07A1            jset    #1,x:$7,XREAD1                    ;check if 16 bit device
                 0004A9
2094      P:04A6 0A07A2            jset    #2,x:$7,XREAD1                    ;check if 56lp16 or hawk
                 0004A9
2095      P:04A8 45FB00  XREAD2    move              x:-(r3),x1
2096      P:04A9 0D0334  XREAD1    jsr     <PUTLWORD                         ;send value to host
2097      P:04AA 000000            nop
2098      P:04AB 00000C  XREADDONE rts
2099   
2100      P:04AC 45FB00  XREAD3    move              x:-(r3),x1              ;save mem LOW
2101      P:04AD 44FB00            move              x:-(r3),x0              ;save mem HI
2102      P:04AE 0C04A9            jmp     <XREAD1                           ;must be 56300
2103   
2104                     ;*******************************************************************
2105                     ;       YREAD COMMAND (16)
2106                     ;*******************************************************************
2107   
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 39



2108      P:04AF 60F000  YREAD     move              x:RSAVE,r0              ;need to save regs. before read
                 000047
2109      P:04B1 335700            move              #SAVEREG,r3             ;point to x memory for reg. storage
2110      P:04B2 0D02C2            jsr     <LOADSEQ                          ;load the sequence
2111      P:04B3 0D0362            jsr     <RUNSEQ                           ;run the sequence
2112      P:04B4 0A0122            bset    #CLEANUP,x:$1                     ;set clean up flag
2113      P:04B5 60F000            move              x:YREADSEQ,r0           ;point to yread seq.
                 000040
2114      P:04B7 61B200            move              x:RYLOOP,r1             ;get pread loop address
2115      P:04B8 0D04BB            jsr     <YREADDATA
2116      P:04B9 0D02E4            jsr     <REGBACK                          ;need to restore regs. used
2117      P:04BA 00000C            rts
2118                     ;*******************************************************************
2119                     ;       YREADDATA
2120                     ;       This routine is called by all memory read commands
2121                     ;       R7 is used to point to the y memory location where
2122                     ;       the start address in user memory is to be placed.
2123                     ;       R3 will contain the value of the user memory location
2124                     ;       read.
2125                     ;*******************************************************************
2126      P:04BB 67F000  YREADDATA move              x:OFFSET,r7             ;y memory address to write to
                 00004B
2127      P:04BD 0D02B2            jsr     <INITSEQ
2128      P:04BE 0D04C5            jsr     <YREADVAL                         ;run sequence once
2129      P:04BF 0D02A0            jsr     <REDUN1
2130      P:04C0 0EA4D2            jeq     <YREADDONE                        ;if zero return
2131      P:04C1 223000            move              r1,r0                   ;get loop sequence address
2132      P:04C2 0D02C2            jsr     <LOADSEQ
2133      P:04C3 06C400            do      x0,YREADDONE
                 0004D1
2134      P:04C5 0D0362  YREADVAL  jsr     <RUNSEQ                           ;run sequence
2135      P:04C6 0A0781            jclr    #1,x:$7,YREAD4                    ;check if other than onyx
                 0004CA
2136      P:04C8 0A07A0            jset    #0,x:$7,YREAD3                    ;check if onyx
                 0004D3
2137      P:04CA 44FB00  YREAD4    move              x:-(r3),x0              ;get value to return
2138      P:04CB 0A07A1            jset    #1,x:$7,YREAD1                    ;check if 16 bit device
                 0004D0
2139      P:04CD 0A07A2            jset    #2,x:$7,YREAD1                    ;check if 56lp16 or hawk
                 0004D0
2140      P:04CF 45FB00  YREAD2    move              x:-(r3),x1
2141      P:04D0 0D0334  YREAD1    jsr     <PUTLWORD                         ;send value to host
2142      P:04D1 000000            nop
2143      P:04D2 00000C  YREADDONE rts
2144   
2145      P:04D3 45FB00  YREAD3    move              x:-(r3),x1              ;save mem LOW
2146      P:04D4 44FB00            move              x:-(r3),x0              ;save mem HI
2147      P:04D5 0C04D0            jmp     <YREAD1                           ;must be 56300
2148   
2149                     ;*******************************************************************
2150                     ;       PWRITE Block Fill COMMAND (13)
2151                     ;*******************************************************************
2152   
2153      P:04D6 60F000  PWRITE    move              x:RSAVE,r0              ;need to save regs. before read
                 000047
2154      P:04D8 335700            move              #SAVEREG,r3             ;point to x memory for reg. storage
2155      P:04D9 0A0783            jclr    #3,x:$7,PWRITE1
                 0004DD
2156      P:04DB 60F000            move              x:SAVE566,r0
                 000049
2157      P:04DD 0D02C2  PWRITE1   jsr     <LOADSEQ                          ;load the sequence
2158      P:04DE 0D0362            jsr     <RUNSEQ                           ;run the sequence
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 40



2159      P:04DF 0A0122            bset    #CLEANUP,x:$1                     ;set clean up flag
2160      P:04E0 60F000            move              x:PWRITSEQ,r0           ;point to pwrite seq.
                 000041
2161                     ;*******************************************************************
2162      P:04E2 0B0783            jsclr   #3,x:$7,REDUNDNT2                 ;if not 56600 then do normal way
                 000299
2163      P:04E4 0B07A3            jsset   #3,x:$7,PWRIT5660                 ;else write vals to different locs
                 0004F3
2164      P:04E6 0EA4ED            jeq     <PWBLKDONE
2165      P:04E7 06C400            do      x0,PWBLKDONE
                 0004EC
2166      P:04E9 62F000            move              x:PWWLOOP1,r2           ;point r1 to short seq.
                 000053
2167      P:04EB 0D0363            jsr     <RUNSEQ1
2168      P:04EC 000000            nop
2169      P:04ED 0A0783  PWBLKDONE jclr    #3,x:$7,PWBLKDONE1
                 0004F1
2170      P:04EF 0D02DE            jsr     <REGBACK1
2171      P:04F0 00000C            rts
2172      P:04F1 0D02E4  PWBLKDONE1 jsr    <REGBACK                          ;need to restore regs. used
2173      P:04F2 00000C  DONE1     rts
2174                     ;*******************************************************************
2175                     ;       PWRITE Block to DSP56600
2176                     ;*******************************************************************
2177      P:04F3 67F000  PWRIT5660 move              x:OFFSET,r7             ;y mem address to write to
                 00004B
2178      P:04F5 0D02B2            jsr     INITSEQ                           ;load seq. get addr, count
2179      P:04F6 0D030A  PWRIT5661 jsr     <GETLWORD                         ;get value to write
2180      P:04F7 05F427            move              #$ffff,m7
                 00FFFF
2181      P:04F9 4C0A00            move                          x0,y:$A     ;put lower 16 bits
2182      P:04FA 4D1000            move                          x1,y:$10    ;put upper 8 bits
2183      P:04FB 0D0362            jsr     <RUNSEQ                           ;run the sequence
2184      P:04FC 578000            move              x:$0,b                  ;get count value
2185      P:04FD 44F400            move              #>1,x0                  ;decrement by 1
                 000001
2186      P:04FF 20004C            sub     x0,b
2187      P:0500 21A400            move              b1,x0                   ;save count
2188      P:0501 00000C            rts
2189   
2190                     ;*******************************************************************
2191                     ;       XWRITE Block Fill COMMAND (15)
2192                     ;*******************************************************************
2193   
2194      P:0502 60F000  XWRITE    move              x:RSAVE,r0              ;need to save regs. before read
                 000047
2195      P:0504 335700            move              #SAVEREG,r3             ;point to x memory for reg. storage
2196      P:0505 0D02C2            jsr     <LOADSEQ                          ;load the sequence
2197      P:0506 0D0362            jsr     <RUNSEQ                           ;run the sequence
2198      P:0507 0A0122            bset    #CLEANUP,x:$1                     ;set clean up flag
2199      P:0508 60F000            move              x:XWRITSEQ,r0           ;point to xwrite seq.
                 000042
2200      P:050A 61B300            move              x:WLOOP1,r1             ;point r1 to short seq.
2201                     ;******************************************************************
2202      P:050B 0D0299  XWRITEBLK jsr     <REDUNDNT2
2203      P:050C 0EA513            jeq     <XWBLKDONE
2204      P:050D 06C400            do      x0,XWBLKDONE
                 000512
2205      P:050F 62F000            move              x:XWWLOOP1,r2           ;point r1 to short seq.
                 000054
2206      P:0511 0D0363            jsr     <RUNSEQ1
2207      P:0512 000000            nop
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 41



2208      P:0513 0D02E4  XWBLKDONE jsr     <REGBACK                          ;need to restore regs. used
2209      P:0514 00000C            rts
2210                     ;*******************************************************************
2211                     ;       YWRITE Block Fill COMMAND (17)
2212                     ;*******************************************************************
2213   
2214      P:0515 60F000  YWRITE    move              x:RSAVE,r0              ;need to save regs. before read
                 000047
2215      P:0517 335700            move              #SAVEREG,r3             ;point to x memory for reg. storage
2216      P:0518 0D02C2            jsr     <LOADSEQ                          ;load the sequence
2217      P:0519 0D0362            jsr     <RUNSEQ                           ;run the sequence
2218      P:051A 0A0122            bset    #CLEANUP,x:$1                     ;set clean up flag
2219      P:051B 60F000            move              x:YWRITSEQ,r0           ;point to ywrite seq.
                 000043
2220      P:051D 61B300            move              x:WLOOP1,r1             ;point r1 to short seq.
2221                     ;******************************************************************
2222      P:051E 0D0299  YWRITEBLK jsr     <REDUNDNT2
2223      P:051F 0EA526            jeq     <YWBLKDONE
2224      P:0520 06C400            do      x0,YWBLKDONE
                 000525
2225      P:0522 62F000            move              x:YWWLOOP1,r2           ;point r1 to short seq.
                 000055
2226      P:0524 0D0363            jsr     <RUNSEQ1
2227      P:0525 000000            nop
2228      P:0526 0D02E4  YWBLKDONE jsr     <REGBACK                          ;need to restore regs. used
2229      P:0527 00000C            rts
2230                     ;*******************************************************************
2231                     ;       REG_RD COMMAND (18)
2232                     ;       This command should receive a 4 byte offset value
2233                     ;       and a 4 byte count of how many registers to read.
2234                     ;       R0 contains offset to EPROM where sequence is to be
2235                     ;       retrieved.  R6 contains offset to EPROM where opcode to
2236                     ;       write to register is retrieved.
2237                     ;*******************************************************************
2238      P:0528 0A0782  REG_RD    jclr    #2,x:$7,NOSAVE                    ;do not save if not 56800
                 00052F
2239      P:052A 60F000            move              x:RSAVE,r0              ;need to save regs. before read
                 000047
2240      P:052C 335700            move              #SAVEREG,r3             ;point to x memory for reg. storage
2241      P:052D 0D02C2            jsr     <LOADSEQ                          ;load the sequence
2242      P:052E 0D0362            jsr     <RUNSEQ                           ;run the sequence
2243   
2244      P:052F 60BC00  NOSAVE    move              x:REGRDSEQ,r0           ;point to regread seq.
2245      P:0530 66B700            move              x:GETREG,r6             ;get reg. opcode in EPROM
2246      P:0531 0D0558            jsr     <REGSETUP                         ;go setup sequence RAM
2247   
2248      P:0532 06CC00            do      a1,REG_RDONE
                 00054F
2249      P:0534 61F400            move              #>1,r1                  ;init r1 to point to y opcode
                 000001
2250      P:0536 0A07A0            jset    #0,x:$7,REG_RD3                   ;check if onxy or 56k
                 00053A
2251      P:0538 0A07A1            jset    #1,x:$7,REG_RD1                   ;if 16 bit device only write one
                 00053F
2252      P:053A 0A07A2  REG_RD3   jset    #2,x:$7,REG_RD1                   ;check if 56lp16 or hawk
                 00053F
2253      P:053C 000000            nop
2254      P:053D 060280            do      #2,REG_RD2                        ;load opcode
                 000541
2255      P:053F 07D88E  REG_RD1   move              p:(r0)+,a               ;get reg opcode
2256      P:0540 5C5900            move                          a1,y:(r1)+  ;put in y memory
2257      P:0541 000000            nop
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 42



2258      P:0542 000000  REG_RD2   nop
2259      P:0543 0D0362  RREADVAL  jsr     <RUNSEQ                           ;run sequence
2260      P:0544 0A0781            jclr    #1,x:$7,REG_RD0                   ;if 56k don't byte reverse
                 000548
2261      P:0546 0A07A0            jset    #0,x:$7,RREAD3                    ;if onyx need to swap bytes
                 000555
2262      P:0548 44FB00  REG_RD0   move              x:-(r3),x0              ;get value to return
2263      P:0549 0A07A1            jset    #1,x:$7,RREAD1                    ;check if 16 bit device
                 00054E
2264      P:054B 0A07A2            jset    #2,x:$7,RREAD1                    ;check if 56lp16 or hawk
                 00054E
2265      P:054D 45FB00  RREAD2    move              x:-(r3),x1
2266      P:054E 0D0334  RREAD1    jsr     <PUTLWORD                         ;send value to host
2267      P:054F 000000            nop
2268      P:0550 000000  REG_RDONE nop
2269      P:0551 0A0782            jclr    #2,x:$7,NOREST1
                 000554
2270      P:0553 0D02E4            jsr     <REGBACK                          ;need to restore regs. used
2271      P:0554 00000C  NOREST1   rts                                       ;end of reg_rd
2272                     ;******************************************************************
2273                     ;       Need to byte swap for onyx
2274                     ;*****************************************************************
2275      P:0555 45FB00  RREAD3    move              x:-(r3),x1              ;get hi value first
2276      P:0556 44FB00            move              x:-(r3),x0              ;get low value next
2277      P:0557 0C054E            jmp     <RREAD1
2278                     ;*******************************************************************
2279                     ;       REGSETUP
2280                     ;       This routine is called by the reg read/write commands
2281                     ;       to initialize the sequence RAM before execution.
2282                     ;*******************************************************************
2283      P:0558 0D02C2  REGSETUP  jsr     <LOADSEQ                          ;load sequence
2284      P:0559 200013            clr     a
2285      P:055A 0D02B8            jsr     <GETARG                           ;get start reg. value
2286      P:055B 22CF00  REG_RDX   move              r6,b                    ;get reg. start address in RAM
2287      P:055C 200010            add     b,a                               ;add to start offset
2288      P:055D 219000            move              a1,r0                   ;put in ptr.
2289      P:055E 0D02B8            jsr     <GETARG                           ;get reg. count
2290      P:055F 00000C            rts
2291                     ;*******************************************************************
2292                     ;       REG_WR COMMAND (19)
2293                     ;       This command receives a 4 byte offset and a 4 byte
2294                     ;       count of how many registers to write to.  The values
2295                     ;       to write are then received as each register is written.
2296                     ;*******************************************************************
2297   
2298      P:0560 60BD00  REG_WR    move              x:REGWRSEQ,r0           ;point to regwrite seq.
2299      P:0561 66B800            move              x:PUTREG,r6             ;get reg. opcode in EPROM
2300      P:0562 0D0578            jsr     <WREGSETUP                        ;go setup sequence RAM
2301      P:0563 66F000            move              x:LOCREGVAL,r6          ;pnt r6 to seq mem loc for val to write
                 00004F
2302      P:0565 06CC00            do      a1,REG_WDONE
                 000576
2303      P:0567 61F400            move              #>1,r1                  ;init r1 to point to y opcode
                 000001
2304      P:0569 0A07A2            jset    #2,x:$7,OPWRL6                    ;check if 56lp16 or hawk
                 000571
2305      P:056B 0A07A0            jset    #0,x:$7,OPWRL5                    ;check if onyx
                 00056F
2306      P:056D 0A07A1            jset    #1,x:$7,OPWRL6                    ;if 16 bit device only write one
                 000571
2307      P:056F 060280  OPWRL5    do      #2,OPWRL4                         ;load opcode
                 000572
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 43



2308      P:0571 07D88E  OPWRL6    move              p:(r0)+,a               ;get reg opcode
2309      P:0572 5C5900            move                          a1,y:(r1)+  ;put in y memory
2310      P:0573 22D700  OPWRL4    move              r6,r7
2311      P:0574 0D02A6            jsr     <REDUNDNT3
2312      P:0575 0D0362            jsr     <RUNSEQ
2313      P:0576 000000            nop
2314      P:0577 00000C  REG_WDONE rts
2315                     ;*******************************************************************
2316                     ;       REGSETUP
2317                     ;       This routine is called by the reg read/write commands
2318                     ;       to initialize the sequence RAM before execution.
2319                     ;*******************************************************************
2320      P:0578 0D02C2  WREGSETUP jsr     <LOADSEQ                          ;load sequence
2321      P:0579 0D02B8            jsr     <GETARG                           ;get start reg. value
2322      P:057A 22CF00            move              r6,b                    ;get reg. start address in RAM
2323      P:057B 200010            add     b,a                               ;add to start offset
2324      P:057C 219000            move              a1,r0                   ;put in ptr.
2325      P:057D 0D02B8            jsr     <GETARG                           ;get reg. count
2326      P:057E 00000C            rts
2327                     ;*******************************************************************
2328                     ;       Program memory WRITE values COMMAND (1A)
2329                     ;*******************************************************************
2330   
2331      P:057F 60F000  P1WRITE   move              x:RSAVE,r0              ;need to save regs. before read
                 000047
2332      P:0581 335700            move              #SAVEREG,r3             ;point to x memory for reg. storage
2333      P:0582 0A0783            jclr    #3,x:$7,PWRITE11
                 000586
2334      P:0584 60F000            move              x:SAVE566,r0
                 000049
2335      P:0586 0D02C2  PWRITE11  jsr     <LOADSEQ                          ;load the sequence
2336      P:0587 0D0362            jsr     <RUNSEQ                           ;run the sequence
2337      P:0588 0A0122            bset    #CLEANUP,x:$1                     ;set clean up flag
2338      P:0589 60F000            move              x:PWRITSEQ,r0           ;point to pread seq.
                 000041
2339      P:058B 61B400            move              x:WPLOOP,r1             ;get write loop address
2340      P:058C 0B0783            jsclr   #3,x:$7,REDUNDNT2
                 000299
2341      P:058E 0B07A3            jsset   #3,x:$7,PWRIT5660
                 0004F3
2342      P:0590 0EA59E            jeq     <PWRITEDONE
2343      P:0591 223000            move              r1,r0                   ;get loop sequence address
2344      P:0592 0D02C2            jsr     <LOADSEQ                          ;reload loop sequence
2345      P:0593 66F000            move              x:WLOOPVAL,r6           ;setup ptr for value
                 00004E
2346      P:0595 06C400            do      x0,PWRITEDONE
                 00059D
2347      P:0597 22D700            move              r6,r7
2348      P:0598 0B0783            jsclr   #3,x:$7,REDUNDNT3
                 0002A6
2349      P:059A 0B07A3            jsset   #3,x:$7,PWRIT5662                 ;do differently if 56600
                 0005A4
2350      P:059C 0D0362            jsr     <RUNSEQ
2351      P:059D 000000            nop
2352      P:059E 0A0783  PWRITEDONE jclr   #3,x:$7,P2WRITE
                 0005A2
2353      P:05A0 0D02DE            jsr     REGBACK1
2354      P:05A1 00000C            rts
2355      P:05A2 0D02E4  P2WRITE   jsr     <REGBACK                          ;need to restore regs. used
2356      P:05A3 00000C            rts
2357   
2358      P:05A4 0D030A  PWRIT5662 jsr     <GETLWORD                         ;get value to write
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 44



2359      P:05A5 05F427            move              #$ffff,m7
                 00FFFF
2360      P:05A7 4C0400            move                          x0,y:$4     ;put lower 16 bits
2361      P:05A8 4D0A00            move                          x1,y:$A     ;put upper 8 bits
2362      P:05A9 00000C            rts
2363                     ;*******************************************************************
2364                     ;       X memory WRITE values COMMAND (1B)
2365                     ;*******************************************************************
2366   
2367      P:05AA 60F000  X1WRITE   move              x:RSAVE,r0              ;need to save regs. before read
                 000047
2368      P:05AC 335700            move              #SAVEREG,r3             ;point to x memory for reg. storage
2369      P:05AD 0D02C2            jsr     <LOADSEQ                          ;load the sequence
2370      P:05AE 0D0362            jsr     <RUNSEQ                           ;run the sequence
2371      P:05AF 0A0122            bset    #CLEANUP,x:$1                     ;set clean up flag
2372      P:05B0 60F000            move              x:XWRITSEQ,r0           ;point to xread seq.
                 000042
2373      P:05B2 61B500            move              x:WXLOOP,r1             ;get write loop address
2374      P:05B3 0D0299            jsr     <REDUNDNT2
2375      P:05B4 0EA5BF            jeq     <XWRITEDONE
2376      P:05B5 223000            move              r1,r0                   ;get loop sequence address
2377      P:05B6 0D02C2            jsr     <LOADSEQ                          ;reload loop sequence
2378      P:05B7 66F000            move              x:WLOOPVAL,r6           ;setup ptr for value
                 00004E
2379      P:05B9 06C400            do      x0,XWRITEDONE
                 0005BE
2380      P:05BB 22D700            move              r6,r7
2381      P:05BC 0D02A6            jsr     <REDUNDNT3
2382      P:05BD 0D0362            jsr     <RUNSEQ
2383      P:05BE 000000            nop
2384      P:05BF 0D02E4  XWRITEDONE jsr    <REGBACK                          ;need to restore regs. used
2385      P:05C0 00000C            rts
2386                     ;*******************************************************************
2387                     ;       Y memory WRITE values COMMAND (1C)
2388                     ;*******************************************************************
2389   
2390      P:05C1 60F000  Y1WRITE   move              x:RSAVE,r0              ;need to save regs. before read
                 000047
2391      P:05C3 335700            move              #SAVEREG,r3             ;point to x memory for reg. storage
2392      P:05C4 0D02C2            jsr     <LOADSEQ                          ;load the sequence
2393      P:05C5 0D0362            jsr     <RUNSEQ                           ;run the sequence
2394      P:05C6 0A0122            bset    #CLEANUP,x:$1                     ;set clean up flag
2395      P:05C7 60F000            move              x:YWRITSEQ,r0           ;point to yread seq.
                 000043
2396      P:05C9 61B600            move              x:WYLOOP,r1             ;get write loop address
2397      P:05CA 0D0299            jsr     <REDUNDNT2
2398      P:05CB 0EA5D6            jeq     <YWRITEDONE
2399      P:05CC 223000            move              r1,r0                   ;get loop sequence address
2400      P:05CD 0D02C2            jsr     <LOADSEQ                          ;reload loop sequence
2401      P:05CE 66F000            move              x:WLOOPVAL,r6           ;setup ptr for value
                 00004E
2402      P:05D0 06C400            do      x0,YWRITEDONE
                 0005D5
2403      P:05D2 22D700            move              r6,r7
2404      P:05D3 0D02A6            jsr     <REDUNDNT3
2405      P:05D4 0D0362            jsr     <RUNSEQ
2406      P:05D5 000000            nop
2407      P:05D6 0D02E4  YWRITEDONE jsr    <REGBACK                          ;need to restore regs. used
2408      P:05D7 00000C            rts
2409                     ;*******************************************************************
2410                     ;       READ OnCE REGISTER COMMAND (1D)
2411                     ;       The command will read the OnCE registers and return the results
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 45



2412                     ;       to the host computer after each read.  There are
2413                     ;       a total of N OnCE registers. This command has a 3 byte packet.
2414                     ;*******************************************************************
2415   
2416      P:05D8 60B900  OREG_RD   move              x:OGETREG,r0            ;point to OnCE reg read seq.
2417      P:05D9 0D02C2            jsr     <LOADSEQ                          ;load sequence into Y RAM
2418      P:05DA 0D0329            jsr     <GETBYTE                          ;get start location.
2419      P:05DB 20D200            move              y0,r2                   ;and put in ptr.
2420      P:05DC 20DB00            move              y0,n3                   ;save offset value
2421      P:05DD 0D0329            jsr     <GETBYTE                          ;get stop location.
2422      P:05DE 20D300            move              y0,r3                   ;need to write eos at this location
2423      P:05DF 340100            move              #1,r4                   ;need to set up eos.
2424      P:05E0 6C6B00            move                          r4,y:(r3+n3)
2425      P:05E1 3B0000            move              #0,n3                   ;clear offset to r3
2426      P:05E2 335700            move              #SAVEREG,r3
2427      P:05E3 0D0363            jsr     <RUNSEQ1                          ;run sequence
2428      P:05E4 46F400            move              #>SAVEREG,y0            ;need to calculate loop count
                 000057
2429      P:05E6 226E00            move              r3,a
2430      P:05E7 200054            sub     y0,a
2431      P:05E8 0B07A2            jsset   #2,x:$7,GETOSR                    ;go check if OSR needs to be read
                 000603
2432      P:05EA 0A07A0            jset    #0,x:$7,OREG_RD4                  ;check if onyx or 56k
                 0005EE
2433      P:05EC 0A07A1            jset    #1,x:$7,OREG_RD3                  ;chek if 5616 bit device
                 0005F1
2434      P:05EE 0A07A2  OREG_RD4  jset    #2,x:$7,OREG_RD3                  ;check if 56lp16 or hawk
                 0005F1
2435      P:05F0 200022            asr     a                                 ;divide count by 2
2436      P:05F1 06CC00  OREG_RD3  do      a1,OREG_RD1                       ;need to do r2 times
                 0005FE
2437      P:05F3 0A0781            jclr    #1,x:$7,OREG_RD7                  ;if 56k, don't byte reverse
                 0005F7
2438      P:05F5 0A07A0            jset    #0,x:$7,OREG_RD6                  ;if onyx need to byte reverse
                 000600
2439      P:05F7 44FB00  OREG_RD7  move              x:-(r3),x0              ;get value to return
2440      P:05F8 0A07A1            jset    #1,x:$7,OREG_RD2                  ;chek if 16 bit device
                 0005FD
2441      P:05FA 0A07A2            jset    #2,x:$7,OREG_RD2                  ;check if 56lp16 or hawk
                 0005FD
2442      P:05FC 45FB00  OREG_RD5  move              x:-(r3),x1
2443      P:05FD 0D0334  OREG_RD2  jsr     <PUTLWORD                         ;send to host
2444      P:05FE 000000            nop
2445      P:05FF 00000C  OREG_RD1  rts
2446                     ;*********************************************************************
2447                     ;       Need to send data byte reversed on onyx
2448                     ;*********************************************************************
2449      P:0600 45FB00  OREG_RD6  move              x:-(r3),x1              ;get high byte
2450      P:0601 44FB00            move              x:-(r3),x0              ;get low byte
2451      P:0602 0C05FD            jmp     <OREG_RD2                         ;go send data
2452   
2453                     ;*********************************************************************
2454                     ;       This code is specifically for the LP16
2455                     ;*********************************************************************
2456      P:0603 57F400  GETOSR    move              #>13,b                  ;need to check if getting osr
                 00000D
2457      P:0605 200005            cmp     b,a
2458      P:0606 0AF0A2            jne     GETOSR1                           ;if not then return
                 000617
2459      P:0608 540D00            move              a1,x:$d                 ;save A temporarily
2460      P:0609 0D03AA            jsr     <SDR                              ;put jtag in shift-dr state
2461      P:060A 56F400            move              #DUMB_CMD,a             ;load dumb OnCE command
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 46



                 009E07
2462      P:060C 0D03F8            jsr     <RECEIVE                          ;send it and get osr value
2463      P:060D 0D03EB            jsr     <GOIDLE                           ;be sure to end up in jtag idle
2464      P:060E 548D00            move              x:$d,a1                 ;restore A
2465      P:060F 219700            move              a1,r7                   ;need to increment count
2466      P:0610 55FB00            move              x:-(r3),b1              ;need to shift 8 bit data right
2467      P:0611 0608A0            rep     #8
2468      P:0612 20002B            lsr     b
2469      P:0613 555B00            move              b1,x:(r3)+              ;and return to its place
2470      P:0614 205F00            move              (r7)+
2471      P:0615 000000            nop
2472      P:0616 22EC00            move              r7,a1                   ;now count is correct
2473      P:0617 00000C  GETOSR1   rts
2474   
2475                     ;*******************************************************************
2476                     ;       WRITE OnCE REGISTER COMMAND (1E)
2477                     ;       This command writes values to OnCE registers.
2478                     ;       It must receive a 1 byte offset and a 1 byte count
2479                     ;       to the registers to write to.
2480                     ;*******************************************************************
2481   
2482      P:0618 0D0329  OREG_WR   jsr     <GETBYTE                          ;get offset value
2483      P:0619 57BB00            move              x:OPUTREG,b             ;point to OnCE reg. write seq.
2484      P:061A 200058            add     y0,b                              ;add offset to ptr.
2485      P:061B 21B000            move              b1,r0
2486      P:061C 0D0329            jsr     <GETBYTE                          ;get count value
2487      P:061D 06C600            do      y0,OWRITE                         ;do count times
                 00062E
2488      P:061F 07D88E            move              p:(r0)+,a               ;get register write command
2489      P:0620 5C0000            move                          a1,y:0      ;put in sequence RAM
2490      P:0621 360100            move              #1,r6                   ;r6 points to seq.ram where value to write is put
2491      P:0622 0A07A2            jset    #2,x:$7,OWRIT0                    ;check if lp16 or hawk
                 000628
2492      P:0624 0A0781            jclr    #1,x:$7,OWRIT1                    ;check if 96k or 56k device
                 00062A
2493      P:0626 0A07A0            jset    #0,x:$7,OWRIT1                    ;check if onyx
                 00062A
2494      P:0628 6E0200  OWRIT0    move                          r6,y:2      ;put eos in Y RAM for 16 bit device
2495      P:0629 0C062B            jmp     <OWRIT2
2496      P:062A 6E0300  OWRIT1    move                          r6,y:3      ;put eos in Y RAM for 24,32 bit device
2497      P:062B 22D700  OWRIT2    move              r6,r7
2498      P:062C 0D02A6            jsr     <REDUNDNT3
2499      P:062D 0D0362            jsr     <RUNSEQ
2500      P:062E 000000            nop
2501      P:062F 00000C  OWRITE    rts
2502                     ;*******************************************************************
2503                     ;       This routine compensates for the 16 bit registers on
2504                     ;       the 56600.  The 16 bits must reside in the upper 16 bits
2505                     ;       of a 24 bit word.
2506                     ;******************************************************************
2507      P:0630 5E8000  DATAFIX   move                          y:0,a       ;need to get the once command
2508      P:0631 46F400            move              #>$20,y0                ;ned to test if 16 bit
                 000020
2509      P:0633 200056            and     y0,a
2510      P:0634 200003            tst     a
2511      P:0635 0AF0AA            jeq     NOT16BIT                          ;if result is 0 then return
                 000641
2512      P:0637 200053            eor     y0,a                              ;need to make a 24 bit write
2513      P:0638 5E0000            move                          a,y:0       ;and put it back in y mem
2514      P:0639 5E8100            move                          y:1,a
2515      P:063A 21CF00            move              a,b
2516      P:063B 0608A0            rep     #8                                ;move bits 7-0 to 15-8
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 47



2517      P:063C 200033            lsl     a
2518      P:063D 5E0100            move                          a,y:1       ;and save it back
2519      P:063E 0608A0            rep     #8
2520      P:063F 20002B            lsr     b                                 ;move bits 15-8 to 23-16
2521      P:0640 5F0200            move                          b,y:2
2522      P:0641 00000C  NOT16BIT  rts
2523                     ;*******************************************************************
2524                     ;       TRACE OnCE SEQUENCE COMMAND (1F)
2525                     ;       This command executes one sequence step in Y memory.
2526                     ;       The sequence ptr is retrieved and used to step through the
2527                     ;       Y memory OnCE commands. A one byte trace count is also sent.
2528                     ;*******************************************************************
2529   
2530      P:0642 0D0329  SEQTRACE  jsr     <GETBYTE                          ;get count value
2531      P:0643 628200            move              x:$2,r2                 ;preset y mem. ptr.
2532      P:0644 638400            move              x:$4,r3                 ;preset x mem. ptr.
2533      P:0645 06C600            do      y0,TRAC_END                       ;do count times
                 000662
2534      P:0647 3A0113            clr     a         #1,n2                   ;preset offset for 1
2535      P:0648 4EE200            move                          y:(r2),y0   ;get current value
2536      P:0649 54F400            move              #>4,a1                  ;only write commands are
                 000004
2537      P:064B 200056            and     y0,a                              ;greater than 1 word
2538      P:064C 0E2656            jne     <TRAC_CONT                        ;must be 1 word command
2539      P:064D 3A0200            move              #2,n2                   ;preset for 16 bit
2540      P:064E 0A07A2            jset    #2,x:$7,TRAC_CONT                 ;check if 56lp16 or hawk
                 000656
2541      P:0650 0A07A0            jset    #0,x:$7,TRAC_1                    ;check if onyx
                 000654
2542      P:0652 0A07A1            jset    #1,x:$7,TRAC_CONT                 ;keep going if 5616 bit
                 000656
2543      P:0654 3A0300  TRAC_1    move              #3,n2                   ;else its 3 word command
2544      P:0655 000000            nop
2545      P:0656 4EEA00  TRAC_CONT move                          y:(r2+n2),y0 ;get value to savea
2546      P:0657 56F400            move              #>1,a                   ;make acc.a =1
                 000001
2547      P:0659 5C6A00            move                          a1,y:(r2+n2) ;put eos after command/opcode
2548      P:065A 460300            move              y0,x:$3                 ;save value
2549      P:065B 0D0363            jsr     <RUNSEQ1                          ;go do sequence step
2550      P:065C 468300            move              x:$3,y0                 ;get old value
2551      P:065D 648200            move              x:$2,r4                 ;get original ptr
2552      P:065E 235C00            move              n2,n4                   ;get offset to ptr
2553      P:065F 000000            nop
2554      P:0660 4E6C00            move                          y0,y:(r4+n4) ;restore value
2555      P:0661 3A0000            move              #0,n2                   ;clear n2
2556      P:0662 3C0000            move              #0,n4                   ;clear n4
2557      P:0663 620200  TRAC_END  move              r2,x:$2                 ;save new pointer value
2558      P:0664 00000C            rts
2559                     ;*******************************************************************
2560                     ;       RUN OnCE SEQUENCE COMMAND (20)
2561                     ;       This command executes a complete sequence in Y memory.
2562                     ;       The R2 register is loaded with a Y memory pointer which
2563                     ;       is used to execute the sequence.
2564                     ;
2565                     ;*******************************************************************
2566   
2567      P:0665 628200  SEQEXEC   move              x:$2,r2                 ;get saved ptr value
2568      P:0666 638400            move              x:$4,r3                 ;preset x mem. ptr.
2569      P:0667 0D0363            jsr     <RUNSEQ1                          ;run sequence
2570      P:0668 00000C            rts
2571                     ;*******************************************************************
2572                     ;       Save OnCE Pipeline COMMAND (21)
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 48



2573                     ;       This command loads a sequence which reads all the
2574                     ;       registers associated with the pipeline and sends
2575                     ;       them to the host computer.
2576                     ;*******************************************************************
2577   
2578      P:0669 60BA00  SAV_PIPE  move              x:OPIPE,r0              ;point to pipe read sequence
2579      P:066A 0D02C2            jsr     <LOADSEQ                          ;load sequence into Y RAM
2580      P:066B 335700            move              #SAVEREG,r3
2581      P:066C 0D0362            jsr     <RUNSEQ                           ;run sequence
2582      P:066D 340900            move              #9,r4                   ;preset for once
2583      P:066E 0A0183            jclr    #JTAGDEV,x:$1,SAV_PIP4
                 000675
2584      P:0670 341200            move              #18,r4                  ;preset for onyx
2585      P:0671 0A07A0            jset    #0,x:$7,SAV_PIP5
                 000680
2586      P:0673 340800            move              #8,r4                   ;preset for lp16
2587      P:0674 000000            nop
2588      P:0675 06D400  SAV_PIP4  do      r4,SAV_PIP1                       ;send values to host
                 00067E
2589      P:0677 44FB00            move              x:-(r3),x0              ;get value for host
2590      P:0678 0A07A1            jset    #1,x:$7,SAV_PIP2                  ;chek if 5616 bit device
                 00067D
2591      P:067A 0A07A2            jset    #2,x:$7,SAV_PIP2                  ;check if 56lp16 or hawk
                 00067D
2592      P:067C 45FB00  SAV_PIP3  move              x:-(r3),x1
2593      P:067D 0D0334  SAV_PIP2  jsr     <PUTLWORD                         ;send it
2594      P:067E 000000            nop
2595      P:067F 00000C  SAV_PIP1  rts
2596                     ;*******************************************************************
2597                     ;       SAV_PIP5 is for xfering data in byte reversal
2598                     ;       for onyx
2599                     ;*******************************************************************
2600      P:0680 06D400  SAV_PIP5  do      r4,SAV_PIP6
                 000685
2601      P:0682 45FB00            move              x:-(r3),x1
2602      P:0683 44FB00            move              x:-(r3),x0
2603      P:0684 0D0334            jsr     <PUTLWORD                         ;send data
2604      P:0685 000000            nop
2605      P:0686 00000C  SAV_PIP6  rts
2606                     ;*******************************************************************
2607                     ;       READ OnCE SEQUENCE COMMAND (22)
2608                     ;       This command reads a Command sequence from Y memory for saving.
2609                     ;       It requires a 2 byte address start location and a 2 byte
2610                     ;       count of words to read.
2611                     ;*******************************************************************
2612   
2613      P:0687 0D031A  SEQREAD   jsr     <GET16                            ;get address start
2614      P:0688 209000            move              x0,r0                   ;save for later
2615      P:0689 208E00            move              x0,a
2616      P:068A 0608A0            rep     #8
2617      P:068B 200023            lsr     a
2618      P:068C 21D000            move              a,r0
2619      P:068D 0D031A  SEQREAD1  jsr     <GET16                            ;get count value
2620      P:068E 209100            move              x0,r1                   ;init y memory pointer
2621      P:068F 208E00            move              x0,a
2622      P:0690 0608A0            rep     #8
2623      P:0691 200023            lsr     a
2624      P:0692 21D100            move              a,r1
2625      P:0693 0D0329            jsr     <GETBYTE                          ;get memtype
2626      P:0694 57F400            move              #>$ff,b                 ;preset mask value
                 0000FF
2627      P:0696 20005E            and     y0,b
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 49



2628      P:0697 21F700            move              b,r7                    ;save for later
2629      P:0698 06D100            do      r1,ENDREAD                        ;loop till sequence sent
                 0006AF
2630      P:069A 45E000            move              x:(r0),x1               ;get a value
2631      P:069B 22E600            move              r7,y0                   ;restore memtype
2632      P:069C 57F400            move              #>1,b
                 000001
2633      P:069E 20005D            cmp     y0,b                              ;check if x memory read
2634      P:069F 0EA6A4            jeq     <RDONE
2635      P:06A0 4DE000            move                          y:(r0),x1
2636      P:06A1 0AF0A7            jgt     RDONE                             ;check if y memory read
                 0006A4
2637      P:06A3 07E085            move              p:(r0),x1
2638      P:06A4 20AC00  RDONE     move              x1,a1                   ;need to put 8 bits in x1
2639      P:06A5 0608A0            rep     #8                                ;and 16 in x0
2640      P:06A6 200032            asl     a
2641      P:06A7 218400            move              a1,x0
2642      P:06A8 0608A0            rep     #8
2643      P:06A9 200022            asr     a
2644      P:06AA 2A0000            move              #0,a2                   ;make sure no extra bits set
2645      P:06AB 0608A0            rep     #8
2646      P:06AC 200022            asr     a                                 ;get upper 8 bits
2647      P:06AD 218500            move              a1,x1
2648      P:06AE 0D0339            jsr     <PUT24                            ;send word
2649      P:06AF 205800            move              (r0)+                   ;increment ptr.
2650      P:06B0 00000C  ENDREAD   rts                                       ;return to monitor
2651                     ;*******************************************************************
2652                     ;       WRITE OnCE SEQUENCE COMMAND (23)
2653                     ;       This command writes a command sequence to the Y memory.
2654                     ;       It requires a 2 byte address start and a 2 byte
2655                     ;       count of values which it will write.
2656                     ;*******************************************************************
2657   
2658      P:06B1 0D031A  SEQWRITE  jsr     <GET16                            ;get address start
2659      P:06B2 209000            move              x0,r0                   ;save for later
2660      P:06B3 208E00            move              x0,a
2661      P:06B4 0608A0            rep     #8
2662      P:06B5 200023            lsr     a
2663      P:06B6 21D000            move              a,r0
2664      P:06B7 0D031A  SEQWRITE1 jsr     <GET16                            ;get count value into X0 reg.
2665      P:06B8 209100            move              x0,r1                   ;init y memory pointer
2666      P:06B9 208E00            move              x0,a
2667      P:06BA 0608A0            rep     #8
2668      P:06BB 200023            lsr     a
2669      P:06BC 21D100            move              a,r1
2670      P:06BD 0D0329            jsr     <GETBYTE                          ;get memtype
2671      P:06BE 57F400            move              #>$ff,b                 ;preset mask value
                 0000FF
2672      P:06C0 20005E            and     y0,b
2673      P:06C1 21B700            move              b1,r7                   ;save for later
2674      P:06C2 06D100            do      r1,ENDWRITE
                 0006D9
2675      P:06C4 0D0317            jsr     <GET24                            ;get 24 bit value to write
2676      P:06C5 208C00            move              x0,a1
2677      P:06C6 0608A0            rep     #8
2678      P:06C7 200023            lsr     a
2679      P:06C8 20AD00            move              x1,b1                   ;make value 24 bits
2680      P:06C9 0608A0            rep     #8
2681      P:06CA 20003B            lsl     b
2682      P:06CB 21A500            move              b1,x1
2683      P:06CC 200062            or      x1,a
2684      P:06CD 57F400            move              #>1,b                   ;restore memory type
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 50



                 000001
2685      P:06CF 22E600            move              r7,y0
2686      P:06D0 20005D            cmp     y0,b
2687      P:06D1 0EA6D7            jeq     <WRITEX
2688      P:06D2 0E76D5            jgt     <WRITEY                           ;check if write to x or y
2689      P:06D3 07588C            move              a1,p:(r0)+
2690      P:06D4 0C06D8            jmp     <SEQWREND
2691      P:06D5 5C5800  WRITEY    move                          a1,y:(r0)+
2692      P:06D6 0C06D8            jmp     <SEQWREND
2693      P:06D7 545800  WRITEX    move              a1,x:(r0)+
2694      P:06D8 000000  SEQWREND  nop
2695      P:06D9 000000            nop
2696      P:06DA 00000C  ENDWRITE  rts
2697                     ;*********************************************************************
2698                     ;       Read_Misc command (24)
2699                     ;       This command reads OnCE status and current
2700                     ;       scratch pad registers such as the Y memory ptr.
2701                     ;       and flags register.
2702                     ;       This command receives a 1 byte offset value and sends a
2703                     ;       one byte result.
2704                     ;       Offset values are as follows:
2705                     ;       0=OnCE port status pins (DS0,DS1)
2706                     ;       1=command converter flag bits
2707                     ;       2=command converter Y memory pointer
2708                     ;       3=command converter revision number
2709                     ;*********************************************************************
2710   
2711      P:06DB 0D0329  MISC_RD   jsr     <GETBYTE                          ;get offset value
2712      P:06DC 56F400            move              #>2,a                   ;need to check what to read
                 000002
2713      P:06DE 200055            cmp     y0,a
2714      P:06DF 0E96E6            jlt     <READREV                          ;Command converter rev. num?
2715      P:06E0 0EA6ED            jeq     <READPTR                          ;Command Converter Y ptr?
2716      P:06E1 20CE00            move              y0,a
2717      P:06E2 200003            tst     a
2718      P:06E3 0EA6E9            jeq     <READSTAT                         ;OnCE status pins?
2719                                                                         ;READ COMMAND CONVERTOR STATUS
2720      P:06E4 548100            move              x:$1,a1                 ;read converter flags
2721      P:06E5 0C06EE            jmp     <SENDVAL                          ;send result to host and return
2722                                                                         ;READ SOFTWARE REVISION
2723      P:06E6 54F400  READREV   move              #>REV,a1                ;read software rev. number
                 000265
2724      P:06E8 0C06EE            jmp     <SENDVAL                          ;send result to host and return
2725                                                                         ;READ OnCE STATUS PINS
2726      P:06E9 084C25  READSTAT  movep             x:$ffe5,a1              ;get port C value
2727      P:06EA 0606A0            rep     #6
2728      P:06EB 200023            lsr     a                                 ;put into lower byte
2729      P:06EC 0C06EE            jmp     <SENDVAL                          ;send result to host and return
2730                                                                         ;READ COMMAND CONVERTOR OnCE Y PTR.
2731      P:06ED 548200  READPTR   move              x:$2,a1                 ;read OnCE y ptr
2732                     ;************************************************************************
2733                     ;       SUPER KLUDGE so new monitor works with old revs of
2734                     ;       24 and 32 bit user interfaces.  It always will send
2735                     ;       2 bytes so it will be compatible with 16 bit systems.
2736                     ;************************************************************************
2737      P:06EE 218500  SENDVAL   move              a1,x1
2738      P:06EF 0608A0            rep     #8
2739      P:06F0 200033            lsl     a
2740      P:06F1 218400            move              a1,x0                   ;send info in x0
2741      P:06F2 0A07A3            jset    #3,x:$7,PUT32                     ;if 56600 send 32 bits
                 000336
2742      P:06F4 0D033C            jsr     <PUT16
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 51



2743      P:06F5 0A07A2            jset    #2,x:$7,DONOTDO                   ;check if 56lp16 or hawk
                 0006FF
2744      P:06F7 0A07A0            jset    #0,x:$7,DOMORE                    ;check if onyx
                 0006FB
2745      P:06F9 0A07A1            jset    #1,x:$7,DONOTDO                   ; if 16 bit you're done
                 0006FF
2746      P:06FB 0D034C  DOMORE    jsr     <PUTBYTE                          ;else send another byte
2747      P:06FC 0A0781            jclr    #1,x:$7,DONOTDO                   ; if 24 bit you're done
                 0006FF
2748      P:06FE 0D034C            jsr     <PUTBYTE                          ;else send another byte
2749      P:06FF 00000C  DONOTDO   rts
2750                     ;*********************************************************************
2751                     ;       Write_Misc command (25)
2752                     ;       This command writes to scratch pad registers
2753                     ;       such as the Y memory ptr. and flags register.
2754                     ;       This command receives a 1 byte offset and a
2755                     ;       value to write to the register.
2756                     ;*********************************************************************
2757   
2758      P:0700 0D0329  MISC_WR   jsr     <GETBYTE                          ;get register offset to read
2759      P:0701 20D000            move              y0,r0                   ;put into ptr reg.
2760      P:0702 0D0329            jsr     <GETBYTE                          ;get value to write
2761      P:0703 466000            move              y0,x:(r0)               ;put value in x memory
2762                     ;*********************************************************************
2763                     ;       This is a kludge place to put this code but I needed to do
2764                     ;       this for exit of reset.  First thing host does is a misc_wr
2765                     ;       and I need to make sure the proper flag is set before the
2766                     ;       first hand_shake.
2767                     ;
2768                     ;       Need to set jtagflag if device type is jtag
2769                     ;*********************************************************************
2770      P:0704 0A0114            bclr    #JTAGFLAG,x:$1                    ;preset for once type
2771      P:0705 568700            move              x:$7,a                  ;get register address
2772      P:0706 57F400            move              #>3,b
                 000003
2773      P:0708 200005            cmp     b,a
2774      P:0709 0AF0A9            jlt     MISC_WR1                          ;if not jtag, keep going
                 00070C
2775      P:070B 0A0134            bset    #JTAGFLAG,x:$1                    ;preset for jtag type
2776      P:070C 00000C  MISC_WR1  rts
2777                     ;*******************************************************************
2778                     ;       FORCE RESET COMMAND (26)
2779                     ;       This command forces a reset on the target
2780                     ;       for approximately 500ms.
2781                     ;       The reset output to the target will remain asserted until
2782                     ;       the host computer sends a "terminate reset" byte.
2783                     ;       command packet is as follows
2784                     ;       command, (reset type)
2785                     ;       if reset type = 0 then reset to user mode and wait for deassert byte.
2786                     ;       if reset type = 1 then reset to debug mode and wait for deassert byte.
2787                     ;       if reset type = 2 then get architecture type in next byte and
2788                     ;       reset sequence tables only. 0=32bit,1=24bit,2=16bit,3=onyx,4=lp16,5=hawk.
2789                     ;
2790                     ;       The target reset pin is driven by an NPN transistor.
2791                     ;*******************************************************************
2792   
2793      P:070D 08F4BF  FORCER    movep             #$0,x:$ffff             ;clear all interrupts
                 000000
2794      P:070F 0A0101            bclr    #OnCEREQ,x:$1                     ;clear OnCE flag
2795      P:0710 0D0329            jsr     <GETBYTE                          ;get reset type
2796      P:0711 56F400            move              #>1,a                   ;check if init tables only
                 000001
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 52



2797      P:0713 20C700            move              y0,y1
2798      P:0714 200075            cmp     y1,a
2799      P:0715 0E9728            jlt     <GETARC                           ;if byte=2 then set dsp type
2800      P:0716 0E2718            jne     <FORCER1
2801      P:0717 0AA505            bclr    #DEBUGREQ,x:$ffe5                 ;if byte=1 assert debug pin
2802      P:0718 0AA524  FORCER1   bset    #ORESET,x:$ffe5                   ;if byte = 0 only assert reset pin
2803      P:0719 0D0329            jsr     <GETBYTE                          ;assert till byte received
2804      P:071A 08F4BF            movep             #$3e,x:$ffff            ;enable interrupts
                 00003E
2805      P:071C 0AA504            bclr    #ORESET,x:$ffe5                   ;deassert reset pin
2806      P:071D 200075            cmp     y1,a                              ;if a=0 then we're done
2807      P:071E 0EA721            jeq     <WAITAK                           ;else handle debug stuff
2808      P:071F 0A0100            bclr    #DEBUGMODE,x:$1                   ;take monitor out of debug mode
2809      P:0720 00000C            rts
2810                     ;*****************************************************************
2811      P:0721 0A0181  WAITAK    jclr    #OnCEREQ,x:$1,WAITAK              ;wait for ack. from OnCE
                 000721
2812      P:0723 0AA525            bset    #DEBUGREQ,x:$ffe5                 ;deassert debug request.
2813      P:0724 0A0101            bclr    #OnCEREQ,x:$1                     ;clear OnCE ack. flag
2814      P:0725 0A0120            bset    #DEBUGMODE,x:$1                   ;set debug mode flag
2815      P:0726 0D0212            jsr     USRDEL
2816      P:0727 00000C            rts                                       ;return from byte = 1
2817                     ;*****************************************************************
2818                     ;       Determine which table to load
2819                     ;       lc=0=32 bit, lc=1=24bit, lc=2=16bit, lc=3=onyx,
2820                     ;       lc=4=lp16, lc=5=hawk, lc=8=ultra-lite
2821                     ;       Acc A should = 1 at this point.
2822                     ;       This routine creates a table of pointers to a group of
2823                     ;       tables to pointers in ROM.  The ROM table for a given architecture
2824                     ;       is loaded into the RAM area for sequence execution.
2825                     ;*****************************************************************
2826      P:0728 0D0329  GETARC    jsr     <GETBYTE                          ;get arch type.
2827      P:0729 461800            move              y0,x:$18                ;save device type temporarily
2828      P:072A 315600  ARCDONE   move              #SAVETEMP,r1            ;preset to load to temp x space
2829      P:072B 60F400            move              #TABLE8,r0              ;preset table pointers
                 000EED
2830      P:072D 223300            move              r1,r3                   ;preset to load to temp x space
2831      P:072E 20DB00            move              y0,n3                   ;preset offset for getting ptr to tbl of ptrs.
2832      P:072F 62F400            move              #ENDROM-TABLE8,r2       ;preset loop count
                 00000A
2833      P:0731 56CB00            move              x:(r3)+n3,a             ;add offset to r3 with dummy move
2834      P:0732 0D074E            jsr     <LOADTAB                          ;go load tables
2835   
2836      P:0733 60E300            move              x:(r3),r0               ;get pointer to table of pointers
2837      P:0734 0D074B            jsr     <TABLESET                         ;go load pointers to x mem.
2838                     ;******************************************************************
2839                     ;       The following code is for loading the 56300 or lp16
2840                     ;       polling routine.  They are different at this time due
2841                     ;       to the 56300 status values not being correct in the jtag
2842                     ;       i-r path on first pass silicon.
2843                     ;******************************************************************
2844      P:0735 56F400            move              #>3,a                   ;setup to check for onyx
                 000003
2845      P:0737 200055            cmp     y0,a                              ;preset for 56300
2846      P:0738 0E7745            jgt     <ONCETYPE                         ;load and return if true
2847      P:0739 0AA42C            bset    #JTAGPORT,x:$ffe4                 ;preset pal for dack via dez(pb12=1)
2848      P:073A 0A0134            bset    #JTAGFLAG,x:$1                    ;set flag for later use
2849      P:073B 56F400            move              #>8,a                   ;check if 56600
                 000008
2850      P:073D 200055            cmp     y0,a                              ;and if true, need to add 3
2851      P:073E 0AF0A2            jne     ENDARC
                 000744
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 53



2852      P:0740 56F400            move              #>3,a
                 000003
2853      P:0742 200050            add     y0,a
2854      P:0743 560700            move              a,x:$7                  ;save new device number
2855      P:0744 00000C  ENDARC    rts                                       ;return to getcmd
2856                     ;*****************************************************************
2857                     ;       Part must have OnCE protocol
2858                     ;*****************************************************************
2859      P:0745 0AA40C  ONCETYPE  bclr    #JTAGPORT,x:$ffe4                 ;preset pal for dack via dso(pb12=0)
2860      P:0746 0A0114            bclr    #JTAGFLAG,x:$1                    ;clear flag for later use
2861      P:0747 54F400            move              #>PLLDEFAULT,a1
                 040001
2862      P:0749 541600            move              a1,x:$16                ;slow clock down for OnCE based products
2863      P:074A 00000C            rts                                       ;return to getcmd
2864                     ;******************************************************************
2865                     ;       Load DSP sequence Table of pointers from EPROM
2866                     ;******************************************************************
2867      P:074B 07F092  TABLESET  move              p:TABLESIZ,r2           ;preset loop count
                 000EEB
2868      P:074D 313000            move              #TABLE,r1               ;preset table address
2869      P:074E 06D200  LOADTAB   do      r2,FORCER4                        ;and put in x memory
                 000751
2870      P:0750 07D88E            move              p:(r0)+,a
2871      P:0751 545900            move              a1,x:(r1)+
2872      P:0752 460700  FORCER4   move              y0,x:$7                 ;save device type
2873      P:0753 00000C            rts
2874                     ;*******************************************************************
2875                     ;       FORCE BREAK COMMAND (27)
2876                     ;       This command forces the target into debug mode of
2877                     ;       operation.
2878                     ;       The break output to the target is a debug request assertion
2879                     ;       to bring the target into the debug mode.  The command converter
2880                     ;       will wait for the acknowledge from the OnCE port.
2881                     ;       When an ack is received it will report this to the host computer
2882                     ;       and return to the monitor.
2883                     ;*******************************************************************
2884   
2885      P:0754 0AA505  FORCEB    bclr    #DEBUGREQ,x:$ffe5                 ;assert DE
2886      P:0755 0A0181  WAITFRC   jclr    #OnCEREQ,x:$1,WAITFRC             ;wait for acknowledge from once
                 000755
2887      P:0757 0AA525            bset    #DEBUGREQ,x:$ffe5                 ;deassert DE
2888      P:0758 0A0101            bclr    #OnCEREQ,x:$1                     ;clear OnCE ack. flag
2889      P:0759 0A0120            bset    #DEBUGMODE,x:$1                   ;set monitor to debug mode
2890      P:075A 00000C            rts
2891                     ;******************************************************************
2892                     ;       XFER YMEM TO PMEM AND EXECUTE (28)
2893                     ;       This command will overlay a program into pmem
2894                     ;       and execute it then return to the monitor.
2895                     ;       First word sent will be the start pmem address
2896                     ;       and the second word sent will be the count of
2897                     ;       24 bit values to receive.
2898                     ;*****************************************************************
2899   
2900      P:075B 0D031A  EXOVERLAY jsr     GET16                             ;get start pmem address
2901      P:075C 209000            move              x0,r0                   ;and store in r0
2902      P:075D 209100            move              x0,r1                   ;also save for later
2903      P:075E 0D031A            jsr     GET16                             ;get count
2904      P:075F 208E00            move              x0,a                    ;need to shift right 8
2905      P:0760 0608A0            rep     #8
2906      P:0761 200022            asr     a
2907      P:0762 06CE00            do      a,EXOVERLAY2                      ;go load code
                 00076E
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 54



2908      P:0764 0D0317            jsr     <GET24                            ;get 24 bit value to write
2909      P:0765 208C00            move              x0,a1
2910      P:0766 0608A0            rep     #8
2911      P:0767 200023            lsr     a
2912      P:0768 20AD00            move              x1,b1                   ;make value 24 bits
2913      P:0769 0608A0            rep     #8
2914      P:076A 20003B            lsl     b
2915      P:076B 21A500            move              b1,x1
2916      P:076C 200062            or      x1,a
2917      P:076D 07588E            move              a,p:(r0)+               ;save in p mem.
2918      P:076E 000000            nop
2919      P:076F 0AE180  EXOVERLAY2 jmp    (r1)                              ;done, return to monitor
2920   
2921                     ;*******************************************************************
2922                     ;       JTAG RESET (29)
2923                     ;       This command forces the jtag machine to its reset state either
2924                     ;       via 8 clocks with the TMS pin high or by asserting the TRESET
2925                     ;       line.  An argument of 0 means to send 5 clocks while an argument
2926                     ;       of 1 means to toggle the jtag reset pin.
2927                     ;*******************************************************************
2928   
2929      P:0770 0D0329  JRESET    jsr     <GETBYTE                          ;get argument on how to reset
2930      P:0771 20CF00            move              y0,b                    ;check if toggle clock
2931      P:0772 20000B            tst     b
2932      P:0773 0E2778            jne     <TOGTRST                          ;go toggle trst pin
2933      P:0774 55F400            move              #JRESET_IDL,b1          ;with tms at 1
                 FC0008
2934      P:0776 0D0069            jsr     <TMSTOGGLE                        ;go toggle tms 5 clocks
2935      P:0777 00000C            rts
2936   
2937                     TOGTRST
2938      P:0778 0AA505            bclr    #DEBUGREQ,x:$ffe5                 ;pull DEBUG REQ low
2939      P:0779 06FFAF            rep     #$fff                             ;wait
2940      P:077A 20000B            tst     b                                 ;do something
2941      P:077B 0AA525            bset    #DEBUGREQ,x:$ffe5                 ;pull DEBUG REQ high
2942      P:077C 2D0100            move              #RESET_IDLE,b1          ;go from reset to idle state
2943      P:077D 0D0069            jsr     <TMSTOGGLE                        ;go toggle tms 1 clock
2944      P:077E 00000C            rts                                       ;return
2945   
2946                     ;*******************************************************************
2947                     ;       JTAG BREAK (2A)
2948                     ;       This command forces the target to the debug mode of operation.
2949                     ;       If it receives an argument of 0 it will force the jtag command
2950                     ;       DEBUG_REQUEST, send the ENABLE_ONCE, then reads the status of the target
2951                     ;       and returns this value in the handshake.
2952                     ;
2953                     ;*******************************************************************
2954   
2955      P:077F 0A0100  JBREAK    bclr    #DEBUGMODE,x:$1
2956      P:0780 0D0329            jsr     <GETBYTE                          ;get argument on how to force break
2957                                                                         ;  we throw it away. (not used)
2958                     ;*********************************************************************
2959                     ;       This code will send the debug request via the jtag command
2960                     ;*********************************************************************
2961   
2962      P:0781 57F400            move              #JRESET_IDL,b
                 FC0008
2963      P:0783 0D0069            jsr     TMSTOGGLE                         ;reset JTAG state to RTI
2964      P:0784 54F400            move              #DEBUG_R,a1
                 000703
2965      P:0786 542200            move              a1,x:$22
2966      P:0787 0D0130  JBREAK1   jsr     JISSUE                            ;issue DEBUG_REQ
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 55



2967      P:0788 0A01A8            jset    #STATUSBUSY,x:$1,JBREAK1
                 000787
2968   
2969      P:078A 0D012D            jsr     JREADSB                           ;issue ENABLE_ONCE
2970                     ;JBREAK1 jsset          #2,x:$7,JREADSB ;go check lp16 polling
2971                     ;       jsclr           #2,x:$7,JREADSB     ;go check onyx polling
2972                     ;       jset            #STATUSBUSY,x:$1,JBREAK1 ;return if status error
2973   
2974   
2975      P:078B 0A0120            bset    #DEBUGMODE,x:$1
2976      P:078C 0A0101            bclr    #OnCEREQ,x:$1
2977      P:078D 0D0212            jsr     USRDEL
2978      P:078E 00000C            rts
2979   
2980                     ;*********************************************************************
2981                     ;       This code will toggle the DE pin
2982                     ;*********************************************************************
2983      P:078F 0AA40C  TOGLDE    bclr    #JTAGPORT,x:$ffe4
2984      P:0790 0AA505            bclr    #DEBUGREQ,x:$ffe5                 ;assert DE pin
2985      P:0791 06FFAF            rep     #$fff                             ;wait
2986      P:0792 20000B            tst     b                                 ;do something
2987      P:0793 0AA525            bset    #DEBUGREQ,x:$ffe5                 ;pull DE pin high
2988      P:0794 0AA42C            bset    #JTAGPORT,x:$ffe4
2989                     JBREAKWAIT2
2990      P:0795 0A0181            jclr    #OnCEREQ,x:$1,JBREAKWAIT2
                 000795
2991      P:0797 0A0120            bset    #DEBUGMODE,x:$1
2992      P:0798 0A0101            bclr    #OnCEREQ,x:$1
2993      P:0799 0D0212            jsr     USRDEL
2994      P:079A 00000C            rts
2995                     ;*******************************************************************
2996                     ;       JTAG FORCE RESET TO DEBUG MODE (2B)
2997                     ;       This command forces the target to the debug mode of operation
2998                     ;       after asserting the reset pin.
2999                     ;
3000                     ;       If it receives an argument of 0 it will force the
3001                     ;       target to the user mode from reset.
3002                     ;
3003                     ;       If it receives an argument of 1 it will force the reset pin,
3004                     ;       then assert the DE pin, wait for a deassert byte, then
3005                     ;       deassert the DE pin, followed by a reset of the jtag state
3006                     ;       machine into the idle state.  It will also turn power on to the
3007                     ;       part prior to exiting the reset state.
3008                     ;
3009                     ;       A byte must be sent by host to deassert the pins.
3010                     ;******************************************************************
3011      P:079B 0A0782  TARGET_R  jclr    #2,x:$7,JFORCER
                 000908
3012      P:079D 0D0329            jsr     <GETBYTE                          ;get argument
3013      P:079E 0AA42C            bset    #JTAGPORT,x:$ffe4                 ;insure the pal is ready for trst
3014      P:079F 20CF00            move              y0,b                    ;check if toggle to user mode
3015                     ;*******ASSERT RESET ON TARGET******************
3016      P:07A0 0AA524            bset    #ORESET,x:$ffe5                   ;assert reset pin
3017      P:07A1 20000B            tst     b
3018      P:07A2 0EA7CF            jeq     <WAITBYTE
3019      P:07A3 0A07A2            jset    #2,x:$7,HAWK_R                    ;hawk needs special handling
                 0007DA
3020      P:07A5 55F400            move              #JRESET_IDL,b1
                 FC0008
3021      P:07A7 0D0069            jsr     TMSTOGGLE
3022      P:07A8 56F400            move              #DEBUG_R,a
                 000703
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 56



3023      P:07AA 562200            move              a,x:$22
3024      P:07AB 56F400            move              #DEBUG_R,a
                 000703
3025      P:07AD 562300            move              a,x:$23
3026      P:07AE 0D0130            jsr     JISSUE
3027                     ;*******WAIT FOR SIGNAL TO DEASSERT RESET PIN ***********
3028      P:07AF 0D0329            jsr     <GETBYTE                          ;wait for deassert signal
3029      P:07B0 0AA504            bclr    #ORESET,x:$ffe5                   ;deassert reset pin
3030                     ;*******SEND ENABLE_ONCE JTAG COMMAND ***************
3031      P:07B1 56F400            move              #E_ONCE,a
                 000603
3032      P:07B3 562200            move              a,x:$22
3033      P:07B4 0D0130            jsr     JISSUE
3034   
3035                     ;        jclr            #3,x:$7,WAITACK        ;check if 56300
3036      P:07B5 0D012D  POLL566   jsr     JREADSB
3037      P:07B6 0A01A8            jset    #STATUSBUSY,x:$1,POLL566          ;return if status error
                 0007B5
3038      P:07B8 0AF080            jmp     SETFLAGS                          ;don't wait for DE from 56600
                 0007BE
3039   
3040      P:07BA 0A0181  WAITACK   jclr    #OnCEREQ,x:$1,WAITACK             ;wait for ack from targe
                 0007BA
3041      P:07BC 0A07A2            jset    #2,x:$7,LP16R
                 0007C2
3042      P:07BE 0A0120  SETFLAGS  bset    #DEBUGMODE,x:$1                   ;set debug mode flag
3043      P:07BF 0A0101            bclr    #OnCEREQ,x:$1
3044      P:07C0 0D0212            jsr     USRDEL
3045      P:07C1 00000C            rts
3046                     ;******TURN POWER ON TO LP16 ONCE CIRCUITS************************
3047      P:07C2 56F400  LP16R     move              #>$4,a
                 000004
3048      P:07C4 5E0000            move                          a,y:0       ;need to run a sequence for 16 bit
3049      P:07C5 200013            clr     a
3050      P:07C6 5E0100            move                          a,y:1
3051      P:07C7 56F400            move              #>$1,a
                 000001
3052      P:07C9 5E0200            move                          a,y:2
3053      P:07CA 0D0362            jsr     <RUNSEQ                           ;go execute sequence
3054      P:07CB 0614A0            rep     #20
3055      P:07CC 20002B            lsr     b
3056      P:07CD 571100            move              b,x:$11                 ;put status in memory
3057      P:07CE 0C07BE            jmp     <SETFLAGS
3058   
3059   
3060                     WAITBYTE
3061      P:07CF 0D012D            jsr     JREADSB
3062      P:07D0 0D0329            jsr     <GETBYTE                          ;wait for deassert signal
3063      P:07D1 0AA504            bclr    #ORESET,x:$ffe5                   ;deassert reset pin
3064      P:07D2 0A0100            bclr    #DEBUGMODE,x:$1                   ;clear debug mode flag
3065      P:07D3 54F400            move              #BYPASS,a1
                 000F03
3066      P:07D5 542200            move              a1,x:$22
3067      P:07D6 0D0130            jsr     JISSUE
3068      P:07D7 0D012D            jsr     JREADSB
3069      P:07D8 0D020D            jsr     USRADD
3070      P:07D9 00000C            rts
3071                     ;*******RESET JTAG STATE MACHINE AND PUT IN IDLE STATE *******************
3072      P:07DA 0AA505  HAWK_R    bclr    #DEBUGREQ,x:$ffe5                 ;assert treset pin
3073      P:07DB 0600A1            rep     #$100
3074      P:07DC 000000            nop
3075      P:07DD 0AA525            bset    #DEBUGREQ,x:$ffe5                 ;deassert treset pin
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 57



3076      P:07DE 0D0329            jsr     <GETBYTE                          ;wait for deassert signal
3077      P:07DF 55F400            move              #JRESET_SIR,b1          ;reset jtag state machine to shift-ir state.
                 FB000A
3078      P:07E1 0D0069            jsr     <TMSTOGGLE
3079                     ;*******SEND ENABLE_ONCE JTAG COMMAND******************
3080      P:07E2 56F400            move              #DEBUG_R,a
                 000703
3081      P:07E4 0D0387            jsr     <XFERDAT                          ;go send command
3082      P:07E5 0D03EB            jsr     <GOIDLE
3083      P:07E6 0AA504            bclr    #ORESET,x:$ffe5                   ;deassert reset pin
3084      P:07E7 55F400            move              #IDLE_SIR,b1            ;reset jtag state machine to shift-ir state.
                 C00004
3085      P:07E9 0D0069            jsr     <TMSTOGGLE
3086      P:07EA 56F400            move              #E_ONCE,a
                 000603
3087      P:07EC 0D0387            jsr     <XFERDAT                          ;go send DEBUG_REQUEST command
3088      P:07ED 0D03EB            jsr     <GOIDLE
3089                     ;******TURN POWER ON TO HAWK ONCE CIRCUITS************************
3090      P:07EE 56F400            move              #>$204,a                ;if not set up for hawk
                 000204
3091      P:07F0 5E0000  PWRUP     move                          a,y:0       ;need to run a sequence for 16 bit
3092      P:07F1 56F400            move              #>$800000,a             ;set bits for cop-dis,de-enab,pw-up
                 800000
3093      P:07F3 5E0100  PWRUP1    move                          a,y:1
3094      P:07F4 56F400            move              #>$1,a
                 000001
3095      P:07F6 5E0200            move                          a,y:2
3096      P:07F7 0D0362            jsr     <RUNSEQ                           ;go execute sequence
3097                     ;*******SEND DEBUG_REQUEST JTAG COMMAND******************
3098      P:07F8 0AA504            bclr    #ORESET,x:$ffe5                   ;deassert reset pin
3099      P:07F9 0C07BE            jmp     <SETFLAGS                         ;reset flags
3100   
3101                     ;******************************************************************
3102                     ;       Following are the parsed commands
3103                     ;       Each command retrieves the number of arguments
3104                     ;       required to execute that command.
3105                     ;       GO COMMAND (2C)
3106                     ;******************************************************************
3107   
3108      P:07FA 60F000  JGOCMD    move              x:GOSEQ2,r0             ;preset sequence load ptr.
                 00004A
3109      P:07FC 370100            move              #1,r7                   ;preset address write ptr.
3110      P:07FD 0D02C2            jsr     <LOADSEQ                          ;load sequence
3111      P:07FE 0D030A            jsr     <GETLWORD                         ;get PILR value
3112      P:07FF 0A07A2            jset    #2,x:$7,JGO1                      ;check if 56lp16 or hawk
                 000806
3113      P:0801 0A07A0            jset    #0,x:$7,JGO3                      ;need to check if onxy
                 000815
3114      P:0803 0A07A1            jset    #1,x:$7,JGO1                      ;chek if 5616 bit device
                 000806
3115      P:0805 4D5F00  JGO4      move                          x1,y:(r7)+  ;save PILR high
3116      P:0806 4C5F00  JGO1      move                          x0,y:(r7)+  ;save PILR low
3117      P:0807 205F00  JGOO1     move              (r7)+
3118      P:0808 0D030A            jsr     <GETLWORD                         ;get PDBR value
3119      P:0809 0A07A2            jset    #2,x:$7,JGO2                      ;check if 56lp16 or hawk
                 000810
3120      P:080B 0A07A0            jset    #0,x:$7,JGO5                      ;need to check if onyx
                 00081C
3121      P:080D 0A07A1            jset    #1,x:$7,JGO2                      ;chek if 16 bit device
                 000810
3122      P:080F 4D5F00  JGO6      move                          x1,y:(r7)+  ;save PDBR high
3123      P:0810 4C6700  JGO2      move                          x0,y:(r7)   ;save PDBR low
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 58



3124      P:0811 0D0362  JGOO2     jsr     <RUNSEQ                           ;run sequence
3125      P:0812 0A0100            bclr    #DEBUGMODE,x:$1                   ;clear debug mode status flag
3126      P:0813 0D020D            jsr     USRADD
3127      P:0814 00000C            rts                                       ;return to monitor
3128                     ;*******************************************************************
3129                     ;       Need to check for onyx byte reversal
3130                     ;*******************************************************************
3131      P:0815 0A07A2  JGO3      jset    #2,x:$7,JGO1                      ;check if 56800
                 000806
3132      P:0817 0A0781            jclr    #1,x:$7,JGO4                      ;check if 56002
                 000805
3133      P:0819 4C5F00            move                          x0,y:(r7)+  ;save PILR LOW
3134      P:081A 4D5F00            move                          x1,y:(r7)+  ;save PILR HI
3135      P:081B 0C0807            jmp     <JGOO1                            ;must be 56300
3136      P:081C 0A07A2  JGO5      jset    #2,x:$7,JGO2                      ;check if 56800
                 000810
3137      P:081E 0A0781            jclr    #1,x:$7,JGO6                      ;check if 56002
                 00080F
3138      P:0820 4C5F00            move                          x0,y:(r7)+  ;save PDBR low
3139      P:0821 4D6700            move                          x1,y:(r7)   ;save PDBR hi
3140      P:0822 44F400            move              #>$6c10,x0              ;change once command to pdb-go-to
                 006C10
3141      P:0824 4C0300            move                          x0,y:3
3142      P:0825 0C0811            jmp     <JGOO2                            ;must be 56800
3143                     ;******************************************************************
3144                     ;       56300/56600 READ FIFO Command (2D)
3145                     ;       This command is special for the 56300/56600 since the
3146                     ;       onyx/onyx-ul has 25/17 bit fifo registers and require special
3147                     ;       calls to insure the correct bit xfer count.
3148                     ;       It will always read the entire fifo (12/8 registers)
3149                     ;******************************************************************
3150      P:0826 0A07A3  RFIFOCMD  jset    #3,x:$7,R6FIFO
                 000858
3151   
3152                     ;*********** 56300 RFIFO ***********
3153      P:0828 335700  R3FIFO    move              #SAVEREG,r3             ;point to x memory storage area
3154      P:0829 758900            move              x:$9,n5                 ;preset clock rate
3155      P:082A 300C00            move              #12,r0                  ;preset for 56300
3156      P:082B 06D000            do      r0,R3FIFOEND                      ;need to read all of fifo
                 00084F
3157      P:082D 54F400            move              #$920000,a1             ;FIFO READ command
                 920000
3158      P:082F 542200            move              a1,x:$22
3159      P:0830 0D00EB            jsr     OISSUE8                           ;send command
3160      P:0831 0D03AA            jsr     SDR                               ;JTAG <- Shift Data Register
3161      P:0832 0D00CD            jsr     FILLTDO
3162      P:0833 200013            clr     a
3163      P:0834 561500            move              a,x:$15                 ;clear jtag data buffer
3164      P:0835 560D00            move              a,x:$d
3165      P:0836 0D0089            jsr     <CLKTOGGLE                        ;go get invalid bit first
3166      P:0837 0A018A            jclr    #DATAFLG,x:$1,R3FIFO2
                 00083B
3167      P:0839 2A0100            move              #1,a2
3168      P:083A 520D00            move              a2,x:$d                 ;save invalid bit temporarily
3169      P:083B 2A1000  R3FIFO2   move              #16,a2                  ;preset for 16 bits
3170      P:083C 0D03AF            jsr     <DATATOGLE1                       ;go toggle data
3171      P:083D 559500            move              x:$15,b1
3172      P:083E 555B00            move              b1,x:(r3)+              ;save data lower 16 bits
3173      P:083F 200013            clr     a
3174      P:0840 561500            move              a,x:$15                 ;clear jtag data buffer
3175      P:0841 2A0700            move              #7,a2                   ;preset for last 8 bits
3176      P:0842 0D0388            jsr     <XFERDAT1                         ;go get rest of data
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 59



3177      P:0843 549500            move              x:$15,a1                ;get data from buffer
3178      P:0844 0608A0            rep     #8
3179      P:0845 200023            lsr     a
3180      P:0846 578D00            move              x:$d,b                  ;get first 16 bits
3181      P:0847 20002B            lsr     b
3182      P:0848 0AF0A0            jcc     R3FIFO5                           ;check if invalid bit set
                 00084D
3183      P:084A 46F400            move              #>$010000,y0
                 010000
3184      P:084C 200052            or      y0,a
3185      P:084D 545B00  R3FIFO5   move              a1,x:(r3)+              ;save data upper 9 bits
3186      P:084E 0D03EB            jsr     <GOIDLE                           ;return jtag to idle
3187      P:084F 000000            nop
3188      P:0850 300C00  R3FIFOEND move              #12,r0                  ;56300: 12 deep trace buffer.
3189      P:0851 06D000            do      r0,R3FIFOSND                      ;now need to send to host
                 000856
3190      P:0853 45FB00            move              x:-(r3),x1              ;read reg HIGH
3191      P:0854 44FB00            move              x:-(r3),x0              ;read reg LO
3192      P:0855 0D0334            jsr     <PUTLWORD                         ;send data
3193      P:0856 000000            nop
3194      P:0857 00000C  R3FIFOSND rts
3195   
3196                     ;***********  56600 RFIFO ***********
3197      P:0858 335700  R6FIFO    move              #SAVEREG,r3             ;point to x memory storage area
3198      P:0859 758900            move              x:$9,n5                 ;preset clock rate
3199      P:085A 300800            move              #8,r0
3200      P:085B 06D000            do      r0,R6FIFOEND                      ;do 8 ;need to read all of fifo
                 00087A
3201      P:085D 54F400            move              #$920000,a1             ;  FIFO READ command
                 920000
3202      P:085F 542200            move              a1,x:$22
3203      P:0860 0D00EB            jsr     OISSUE8                           ;  send command
3204      P:0861 0D03AA            jsr     SDR                               ;  JTAG <- Shift Data Register
3205      P:0862 0D00CD            jsr     FILLTDO
3206      P:0863 200013            clr     a
3207      P:0864 561500            move              a,x:$15                 ;  clear jtag data buffer
3208      P:0865 560D00            move              a,x:$d
3209      P:0866 0D0089            jsr     <CLKTOGGLE                        ;  go get invalid bit first
3210      P:0867 0A018A            jclr    #DATAFLG,x:$1,R6FIFO1
                 00086B
3211      P:0869 2A0100            move              #1,a2
3212      P:086A 520D00            move              a2,x:$d                 ;  save invalid bit temporarily
3213      P:086B 2A0F00  R6FIFO1   move              #15,a2                  ;  preset for 56600 - 17 bits
3214                     ;       jsr     <DATATOGLE1             ;  get 15 bits, do not move to exit
3215      P:086C 0D0388            jsr     <XFERDAT1                         ;  get 15 bits, move to exit
3216      P:086D 559500            move              x:$15,b1
3217      P:086E 555B00            move              b1,x:(r3)+              ;  save data lower 16 bits
3218      P:086F 200013            clr     a
3219      P:0870 561500            move              a,x:$15                 ;  clear jtag data buffer
3220      P:0871 578D00            move              x:$d,b                  ;  get first 16 bits
3221      P:0872 20002B            lsr     b
3222      P:0873 0AF0A0            jcc     R6FIFO5                           ;  check if invalid bit set
                 000878
3223      P:0875 46F400            move              #>$010000,y0
                 010000
3224      P:0877 200052            or      y0,a
3225      P:0878 545B00  R6FIFO5   move              a1,x:(r3)+              ;  save data upper 9 bits
3226      P:0879 0D03EB            jsr     <GOIDLE                           ;  return jtag to idle
3227      P:087A 000000            nop
3228                     R6FIFOEND                                           ;enddo
3229      P:087B 300800            move              #8,r0                   ;56600 has 8 deep trace buffer.
3230      P:087C 06D000            do      r0,R6FIFOSND                      ;do 8 ;now need to send to host
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 60



                 000881
3231      P:087E 45FB00            move              x:-(r3),x1              ;  read reg HIGH
3232      P:087F 44FB00            move              x:-(r3),x0              ;  read reg LO
3233      P:0880 0D0334            jsr     <PUTLWORD                         ;  send data
3234      P:0881 000000            nop                                       ;enddo
3235                     R6FIFOSND
3236      P:0882 00000C            rts
3237   
3238                     ;****************************************************************
3239                     ;       POLLSTATUS COMMAND (2E)
3240                     ;       This function will poll the status of the device and
3241                     ;       returns a 4 byte value.
3242                     ;****************************************************************
3243                     POLLCMD                                             ;move   #JRESET_IDL,b
3244                                                                         ;jsr    TMSTOGGLE
3245      P:0883 0A0100            bclr    #DEBUGMODE,x:$1                   ;clear debug mode flag
3246      P:0884 335700            move              #SAVEREG,r3             ;preset save pointer
3247      P:0885 0D012D            jsr     JREADSB
3248      P:0886 20001B            clr     b
3249      P:0887 559500            move              x:$15,b1
3250      P:0888 47F400            move              #>$f000,y1
                 00F000
3251      P:088A 46F400            move              #>$d000,y0
                 00D000
3252      P:088C 0608A0            rep     #8
3253      P:088D 20002B            lsr     b
3254      P:088E 20007E            and     y1,b                              ;mask out garbage
3255      P:088F 21A400            move              b1,x0
3256      P:0890 250000            move              #0,x1
3257   
3258      P:0891 20005D            cmp     y0,b                              ;if in debug mode set debugmode flag
3259                               .IF     <EQ>
3260  +   P:0892 0AF0A2            jne     Z_L00068
                 000898
3261  +                  Z_L00067
3262      P:0894 0A0120            bset    #DEBUGMODE,x:$1
3263      P:0895 0D0334            jsr     PUTLWORD
3264                     ;       jsr     USRDEL
3265                               .ELSE
3266  +   P:0896 0AF080            jmp     Z_L00069
                 00089A
3267  +                  Z_L00068
3268      P:0898 0A0100            bclr    #DEBUGMODE,x:$1
3269      P:0899 0D0334            jsr     PUTLWORD
3270                     ;       jsr     USRADD
3271                               .ENDI
3272  +                  Z_L00069
3273      P:089A 00000C            rts
3274                     ;       ENDSEC
3275                     ;****************************************************************
3276                     ; JTAGCOUNT COMMAND (2F)
3277                     ;   Returns the number of devices on a JTAG chain
3278                     ;****************************************************************
3279      P:089B 0D0329  JTAGCNT   jsr     GETBYTE                           ;get TMS #
3280      P:089C 0A0124            bset    #TMS0FLAG,x:$1
3281      P:089D 55F400            move              #JRESET_SIR,b1          ;Reset JTAG State, go to SIR
                 FB000A
3282      P:089F 0D0069            jsr     <TMSTOGGLE                        ;toggle tms pin
3283      P:08A0 0D00BF            jsr     JXFER8                            ;turn on SSI
3284      P:08A1 54F400            move              #$ffffff,a1             ;set a1 with bypass command
                 FFFFFF
3285      P:08A3 061480            do      #20,ENDBP                         ;do 20
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 61



                 0008A9
3286      P:08A5 0AAE86            jclr    #TDE,x:$ffee,*                    ;  wait to send more
                 0008A5
3287      P:08A7 547000            move              a1,x:$ffef              ;  put all devices in bypass
                 00FFEF
3288      P:08A9 000000            nop
3289                     ENDBP                                               ;enddo
3290      P:08AA 0A2120            bset    #JTAGTDI,x:$21                    ;set bit to send
3291      P:08AB 0A2121            bset    #JTAGTDIV,x:$21                   ;set TDI bit valid
3292      P:08AC 0D004F            jsr     BANGBIT                           ;bang the bit in
3293      P:08AD 55F400            move              #IDLE_SDR,b1
                 800003
3294      P:08AF 0D0069            jsr     TMSTOGGLE                         ;move to SHIFT_DR
3295   
3296      P:08B0 0D00BF            jsr     JXFER8                            ;turn on SSI
3297      P:08B1 200013            clr     a                                 ;clear a
3298      P:08B2 061480            do      #20,ENDZO                         ;do 20
                 0008B8
3299      P:08B4 0AAE86            jclr    #TDE,x:$ffee,*                    ;  wait to send more
                 0008B4
3300      P:08B6 547000            move              a1,x:$ffef              ;  clear out bypass register
                 00FFEF
3301      P:08B8 000000            nop
3302                     ENDZO                                               ;enddo
3303      P:08B9 08F4A1            movep             #0,x:$ffe1              ;turn off SSI
                 000000
3304      P:08BB 200013            clr     a                                 ;clear a
3305      P:08BC 560B00            move              a,x:$b
3306      P:08BD 44F400            move              #>1,x0                  ;set x0 to 1
                 000001
3307   
3308      P:08BF 0A2120  JTAGCN1   bset    #JTAGTDI,x:$21                    ;send 1
3309      P:08C0 0D009C            jsr     BANGCLK                           ;
3310      P:08C1 0B2122            btst    #JTAGTDO,x:$21                    ;test TDO
3311                               .IF     <CC>                              ;if TDO=0 then
3312  +   P:08C2 0AF0A8            jcs     Z_L00071
                 0008C8
3313  +                  Z_L00070
3314      P:08C4 568B00            move              x:$b,a                  ;
3315      P:08C5 200040            add     x0,a                              ;  increment a
3316      P:08C6 560B00            move              a,x:$b                  ;
3317      P:08C7 0C08BF            jmp     JTAGCN1                           ;  send another 1
3318                               .ENDI                                     ;endi
3319  +                  Z_L00071
3320      P:08C8 0D004F            jsr     BANGBIT
3321      P:08C9 250000            move              #0,x1
3322      P:08CA 568B00            move              x:$b,a
3323      P:08CB 0608A0            rep     #8
3324      P:08CC 200033            lsl     a
3325      P:08CD 21C400            move              a,x0
3326      P:08CE 0D0334            jsr     PUTLWORD                          ;return # devices
3327   
3328                     ;       rts
3329      P:08CF 568C00  MKUSRLST  move              x:$c,a                  ;fetch x:$c
3330      P:08D0 561900            move              a,x:$19                 ;save x:$c
3331      P:08D1 56F400            move              #>1,a                   ;make 1st device active
                 000001
3332      P:08D3 560C00            move              a,x:$c                  ;set active
3333      P:08D4 060B00            do      x:$b,DOSTAT                       ;do x:$b
                 0008E0
3334      P:08D6 0D012D            jsr     JREADSB                           ;  read status
3335      P:08D7 0B0120            btst    #DEBUGMODE,x:$1                   ;  test status
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 62



3336                               .IF     <CC>                              ;  if device not in DEBUGMODE
3337  +   P:08D8 0AF0A8            jcs     Z_L00073
                 0008DD
3338  +                  Z_L00072
3339      P:08DA 0D020D            jsr     USRADD                            ;    add it to USERLST
3340                               .ELSE                                     ;  else
3341  +   P:08DB 0AF080            jmp     Z_L00074
                 0008DE
3342  +                  Z_L00073
3343      P:08DD 0D0212            jsr     USRDEL                            ;    remove it from USERLST
3344                               .ENDI                                     ;  endif
3345  +                  Z_L00074
3346      P:08DE 568C00            move              x:$c,a                  ;  fetch last device
3347      P:08DF 200033            lsl     a                                 ;  advance to next device
3348      P:08E0 560C00            move              a,x:$c                  ;  store current device
3349                     DOSTAT                                              ;enddo
3350      P:08E1 569900            move              x:$19,a                 ;get true current device
3351      P:08E2 560C00            move              a,x:$c                  ;restore x:$c
3352      P:08E3 0D012D            jsr     JREADSB                           ;read status of x:$c
3353      P:08E4 0A1E20            bset    #POLLENABLE,x:$1E                 ;enable polling
3354   
3355      P:08E5 00000C            rts                                       ;return
3356                     ;****************************************************************
3357                     ; SETACTV COMMAND (30)
3358                     ;****************************************************************
3359      P:08E6 0D0329  SETACTV   jsr     GETBYTE                           ;get DEV # into y0
3360      P:08E7 462500            move              y0,x:$25
3361      P:08E8 54F400            move              #>1,a1                  ;set a1=1
                 000001
3362      P:08EA 200023            lsr     a                                 ;set carry bit
3363      P:08EB 06C620            rep     y0                                ;repeat DEV # times
3364      P:08EC 200037            rol     a1                                ;  shift a left
3365      P:08ED 0D0329            jsr     GETBYTE                           ;get TMS # (discard)
3366      P:08EE 540C00            move              a1,x:$c                 ;save x:$c
3367      P:08EF 54F400            move              #E_ONCE,a1              ;will xmit enable_once
                 000603
3368      P:08F1 542200            move              a1,x:$22                ;save active command
3369      P:08F2 0D0130            jsr     JISSUE                            ;issue ENABLE_ONCE to x:$c
3370                     ;       rts                             ;return
3371                                                                         ;* need to determine if device
3372                                                                         ;* currently selected is in
3373                                                                         ;* debug or user mode.
3374      P:08F3 0A0100  SETPOLL   bclr    #DEBUGMODE,x:$1                   ;clear debug mode flag
3375                     ;       move    #SAVEREG,r3             ;preset save pointer
3376      P:08F4 0D012D            jsr     JREADSB
3377      P:08F5 20001B            clr     b
3378      P:08F6 559500            move              x:$15,b1
3379      P:08F7 47F400            move              #>$f000,y1
                 00F000
3380      P:08F9 46F400            move              #>$d000,y0
                 00D000
3381      P:08FB 0608A0            rep     #8
3382      P:08FC 20002B            lsr     b
3383      P:08FD 20007E            and     y1,b                              ;mask out garbage
3384      P:08FE 21A400            move              b1,x0
3385      P:08FF 250000            move              #0,x1
3386   
3387      P:0900 20005D            cmp     y0,b                              ;if in debug mode set debugmode flag
3388                               .IF     <EQ>
3389  +   P:0901 0AF0A2            jne     Z_L00076
                 000906
3390  +                  Z_L00075
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 63



3391      P:0903 0A0120            bset    #DEBUGMODE,x:$1
3392                     ;       jsr     USRDEL
3393                               .ELSE
3394  +   P:0904 0AF080            jmp     Z_L00077
                 000907
3395  +                  Z_L00076
3396      P:0906 0A0100            bclr    #DEBUGMODE,x:$1
3397                     ;       jsr     USRADD
3398                               .ENDI
3399  +                  Z_L00077
3400   
3401      P:0907 00000C  SETPOL1   rts
3402   
3403                     ;*******************************************************************
3404                     ;       JTAG FORCE RESET SINGLE x:$7 TO DEBUG MODE (31)
3405                     ;       This command forces the target to the debug mode of operation
3406                     ;       after asserting the reset pin.
3407                     ;
3408                     ;       If it receives an argument of 0 it will force the
3409                     ;       target to the user mode from reset.
3410                     ;
3411                     ;       If it receives an argument of 1 it will force the reset pin,
3412                     ;       then assert the DE pin, wait for a deassert byte, then
3413                     ;       deassert the DE pin, followed by a reset of the jtag state
3414                     ;       machine into the idle state.  It will also turn power on to the
3415                     ;       part prior to exiting the reset state.
3416                     ;
3417                     ;       A byte must be sent by host to deassert the pins.
3418                     ;******************************************************************
3419      P:0908 0D0329  JFORCER   jsr     <GETBYTE                          ;get argument
3420      P:0909 0AA42C            bset    #JTAGPORT,x:$ffe4                 ;insure pal is ready for trst
3421      P:090A 20CF00            move              y0,b                    ;check if toggle to user mode
3422                     ;*******ASSERT RESET ON TARGET******************
3423      P:090B 0AA524            bset    #ORESET,x:$ffe5
3424      P:090C 0AA505            bclr    #DEBUGREQ,x:$ffe5                 ;pull DEBUG REQ low
3425      P:090D 06FFA0            rep     #$ff                              ;wait
3426      P:090E 20000B            tst     b                                 ;do something
3427      P:090F 0AA525            bset    #DEBUGREQ,x:$ffe5                 ;pull DEBUG REQ high
3428      P:0910 20000B            tst     b
3429      P:0911 0AF0AA            jeq     WAITBNJR
                 000937
3430      P:0913 0A07A2            jset    #2,x:$7,HAWK_NJR                  ;hawk needs special handling
                 000944
3431      P:0915 55F400            move              #JRESET_IDL,b1
                 FC0008
3432      P:0917 0D0069            jsr     TMSTOGGLE
3433      P:0918 56F400            move              #DEBUG_R,a
                 000703
3434      P:091A 562200            move              a,x:$22
3435      P:091B 562300            move              a,x:$23
3436      P:091C 0D0133            jsr     JISSUE2
3437      P:091D 0D0329            jsr     <GETBYTE                          ;wait for deassert signal
3438      P:091E 0AA504            bclr    #ORESET,x:$ffe5
3439      P:091F 56F400            move              #E_ONCE,a
                 000603
3440      P:0921 562200            move              a,x:$22
3441      P:0922 0D0130            jsr     JISSUE
3442   
3443      P:0923 0D012D  POLLNJR   jsr     JREADSB
3444      P:0924 0A0120  SETFNJR   bset    #DEBUGMODE,x:$1                   ;set debug mode flag
3445      P:0925 0A0101            bclr    #OnCEREQ,x:$1
3446      P:0926 2F0000            move              #0,b
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 64



3447      P:0927 572000            move              b,x:$20
3448      P:0928 0D0212            jsr     USRDEL
3449      P:0929 00000C            rts
3450                     ;******TURN POWER ON TO LP16 ONCE CIRCUITS************************
3451      P:092A 56F400  LP16NJR   move              #>$4,a
                 000004
3452      P:092C 5E0000            move                          a,y:0       ;need to run a sequence for 16 bit
3453      P:092D 200013            clr     a
3454      P:092E 5E0100            move                          a,y:1
3455      P:092F 56F400            move              #>$1,a
                 000001
3456      P:0931 5E0200            move                          a,y:2
3457      P:0932 0D0362            jsr     <RUNSEQ                           ;go execute sequence
3458      P:0933 0614A0            rep     #20
3459      P:0934 20002B            lsr     b
3460      P:0935 571100            move              b,x:$11                 ;put status in memory
3461      P:0936 0C0924            jmp     <SETFNJR
3462   
3463   
3464      P:0937 0D0329  WAITBNJR  jsr     <GETBYTE                          ;wait for deassert signal
3465      P:0938 55F400            move              #JRESET_IDL,b1
                 FC0008
3466      P:093A 0D0069            jsr     TMSTOGGLE
3467      P:093B 0AA504            bclr    #ORESET,x:$ffe5
3468      P:093C 54F400            move              #E_ONCE,a1
                 000603
3469      P:093E 542200            move              a1,x:$22
3470      P:093F 0D0130            jsr     JISSUE
3471      P:0940 0D012D            jsr     JREADSB
3472      P:0941 0A0100            bclr    #DEBUGMODE,x:$1                   ;clear debug mode flag
3473      P:0942 0D020D            jsr     USRADD
3474      P:0943 00000C            rts
3475                     ;*******RESET JTAG STATE MACHINE AND PUT IN IDLE STATE *******************
3476      P:0944 0AA505  HAWK_NJR  bclr    #DEBUGREQ,x:$ffe5                 ;assert treset pin
3477      P:0945 0600A1            rep     #$100
3478      P:0946 000000            nop
3479      P:0947 0AA525            bset    #DEBUGREQ,x:$ffe5                 ;deassert treset pin
3480      P:0948 0D0329            jsr     <GETBYTE                          ;wait for deassert signal
3481      P:0949 54F400            move              #E_ONCE,a1
                 000603
3482      P:094B 542200            move              a1,x:$22
3483      P:094C 0D0130            jsr     JISSUE
3484                     ;        bclr    #ORESET,x:$ffe5                ;deassert reset pin
3485      P:094D 55F400            move              #JRESET_SIR,b1          ;reset jtag to shift-ir state.
                 FB000A
3486      P:094F 0D0069            jsr     <TMSTOGGLE
3487                     ;*******SEND DEBUG_REQUEST JTAG COMMAND******************
3488      P:0950 56F400            move              #DEBUG_R,a
                 000703
3489      P:0952 0D0387            jsr     <XFERDAT                          ;go send DEBUG_REQUEST command
3490      P:0953 0D03EB            jsr     <GOIDLE
3491                     ;*******SEND ENABLE_ONCE JTAG COMMAND******************
3492      P:0954 55F400            move              #IDLE_SIR,b1            ; machine to shift-ir state.
                 C00004
3493      P:0956 0D0069            jsr     <TMSTOGGLE
3494      P:0957 56F400            move              #E_ONCE,a
                 000603
3495      P:0959 0D0387            jsr     <XFERDAT                          ;go send command
3496      P:095A 0D03EB            jsr     <GOIDLE
3497                     ;******TURN POWER ON TO HAWK ONCE CIRCUITS************************
3498      P:095B 56F400            move              #>$204,a                ;if not set up for hawk
                 000204
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 65



3499      P:095D 5E0000  PWRNJR    move                          a,y:0       ;need to run a sequence for 16 bit
3500      P:095E 56F400            move              #>$C00000,a             ;set bits for cop-dis,de-enab,pw-up
                 C00000
3501      P:0960 5E0100  PWRNJR1   move                          a,y:1
3502      P:0961 56F400            move              #>$1,a
                 000001
3503      P:0963 5E0200            move                          a,y:2
3504      P:0964 0D0362            jsr     <RUNSEQ                           ;go execute sequence
3505      P:0965 0C0924            jmp     <SETFNJR                          ;reset flags
3506   
3507                     ; POLLON (32)
3508      P:0966 0AA503  POLLON    bclr    #H_BRK,x:$ffe5                    ;clear HOST_BRK bit
3509      P:0967 0A0101            bclr    #OnCEREQ,x:$1                     ;clear ack flag
3510      P:0968 0A1E20            bset    #POLLENABLE,x:$1E                 ;set polling enable flag
3511      P:0969 00000C            rts
3512   
3513                     ; POLLOFF (33)
3514      P:096A 0AA523  POLLOFF   bset    #H_BRK,x:$ffe5                    ;set HOST_BRK bit
3515      P:096B 0A1E00            bclr    #POLLENABLE,x:$1E                 ;clear polling enable flag
3516      P:096C 00000C            rts
3517   
3518                     ;****************************************************************
3519                     ; JIRLEN (34) - Set JTAG Instruction Register Length
3520                     ;   arguments: TMS# (0 or 1)
3521                     ;              CHAIN_POS (1 to 24)
3522                     ;              LENGTH (2 to 255)
3523                     ;              NOT_DSP 0=MOTOROLA_DSP 1=OTHER
3524                     ;****************************************************************
3525      P:096D 0D0329  JIRLEN    jsr     GETBYTE                           ;fetch TMS# (discard)
3526      P:096E 0D0329            jsr     GETBYTE                           ;fetch CHAIN_POS
3527      P:096F 20DD00            move              y0,n5                   ;Save offset in n5
3528                     ;       move    x:JIRTABLE,r5           ;get table pointer
3529      P:0970 07F095            move              p:JIRTABLE,r5           ;get table pointer
                 001000
3530      P:0972 0D0329            jsr     GETBYTE                           ;fetch LENGTH
3531      P:0973 20C400            move              y0,x0                   ;x0 <- JIRLEN
3532      P:0974 0D0329            jsr     GETBYTE                           ;fetch NOT_DSP
3533      P:0975 0BC660            btst    #0,y0                             ;test NOT_DSP
3534                               .IF     <CS>                              ;if NOT_DSP (carry set)
3535  +   P:0976 0AF0A0            jcc     Z_L00079
                 000979
3536  +                  Z_L00078
3537      P:0978 0AC477            bset    #23,x0                            ;  set high bit of x0
3538                               .ENDI                                     ;endif
3539  +                  Z_L00079
3540                     ;       move    x0,x:(r5+n5)            ;save length in table
3541      P:0979 076D84            move              x0,p:(r5+n5)            ;save length in table
3542      P:097A 00000C            rts
3543                     ;****************************************************************
3544                     ; CHKSERVICE (35) - Tell the host who is requesting service
3545                     ;   returns:  TMS # of device
3546                     ;             CHAIN_POS (1 to 24)
3547                     ;****************************************************************
3548      P:097B 240000  CHKSERVICE move             #0,x0
3549      P:097C 250000            move              #0,x1
3550      P:097D 0D0334            jsr     PUTLWORD                          ;tell host what TMS LINE (0)
3551      P:097E 569D00            move              x:$1D,a                 ;x:$1D holds CHAIN_POS of device
3552      P:097F 0608A0            rep     #8
3553      P:0980 200033            lsl     a
3554      P:0981 21C400            move              a,x0
3555      P:0982 0D0334            jsr     PUTLWORD                          ;tell host CHAIN_POS
3556      P:0983 00000C            rts
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 66



3557   
3558   
3559                     ;****************************************************************
3560                     RDOS                                                ;jsr    TOGTRST                 ;toggle trst pin
3561      P:0984 57F400            move              #JRESET_IDL,b
                 FC0008
3562      P:0986 0D0069            jsr     TMSTOGGLE
3563      P:0987 56F400            move              #BYPASS,a
                 000F03
3564      P:0989 562200            move              a,x:$22
3565      P:098A 0D0130            jsr     JISSUE
3566      P:098B 57F400            move              #EXIT_IDLE,b
                 800002
3567      P:098D 0D0069            jsr     TMSTOGGLE
3568      P:098E 0C0218            jmp     START1
3569   
3570      P:098F 0D0778  TRTST     jsr     TOGTRST
3571      P:0990 57F400            move              #JRESET_IDL,b
                 FC0008
3572      P:0992 0D0069            jsr     TMSTOGGLE
3573      P:0993 0D012D            jsr     JREADSB
3574      P:0994 56F400            move              #DEBUG_R,a
                 000703
3575      P:0996 562200            move              a,x:$22
3576      P:0997 0D0130            jsr     JISSUE
3577      P:0998 0C0984            jmp     RDOS
3578   
3579      000999         ENDCMD    equ     *
3580                     ;****************************************************************
3581                     ;       OnCE Instruction Sequences
3582                     ;
3583                     ;       Instruction sequences are defined as commands to the
3584                     ;       OnCE controller as well as target opcodes and operands
3585                     ;       used to transfer data.  All commands and opcodes/operands
3586                     ;       are stored in the upper 16 bits of y memory.  The lower
3587                     ;       8 bits are used to control the flow of the sequence.
3588                     ;
3589                     ;       The lower byte is defined as follows:
3590                     ;       Data Value      Action
3591                     ;
3592                     ;        0      No Action
3593                     ;        1      End of sequence
3594                     ;        2      send command, wait for ack, clock in data
3595                     ;        4      send command, wait for ack, clock out data, wait for ack.
3596                     ;        8      send command, wait for ack.
3597                     ;       10      send command, wait for ack, clock out data
3598                     ;
3599                     ;       X memory is the result storage area for command sequences.
3600                     ;       All read results from the OnCE port are stored sequentially
3601                     ;       with the upper 16 bits stored first in the upper 16 bits of
3602                     ;       the memory location and the lower 16 bits stored in the
3603                     ;       upper 16 bits of the next memory location.  All results are
3604                     ;       32 bits long.
3605                     ;
3606                     ;       Only commands to the OnCE controller have non-zero values in the
3607                     ;       lower byte in the sequence RAM and is always tested to know if
3608                     ;       8 bits are to be sent to the OnCE port.
3609                     ;**************************************************************************
5055   
5056      000DBA         TABLE1    equ     *
5057      P:0DBA 000000            bsc     38,0                              ;room for future expansion
5058      000DE0         TABLE2    equ     *
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 67



5059      P:0DE0 000000            bsc     38,0                              ;room for future expansion
5060      000E06         TABLE3    equ     *
5061      P:0E06 000000            bsc     38,0                              ;room for future expansion
5062      000E2C         TABLE4    equ     *
5063                               section sec56k3
5064                     ;**********************************************************************
5065                     ;       56300 TABLE OFFSETS TO OnCE SEQUENCES
5066                     ;       Added additional entries to table for 56300 OnCE register reads/writes
5067                     ;**********************************************************************
5068 d    P:0E2C 000AC1  RPLOOP    dc      PRDLOOP                           ;offset to execute read p opcode
5069 d    P:0E2D 000ACC  RXLOOP    dc      XRDLOOP                           ;offset to execute read x opcode
5070 d    P:0E2E 000AD7  RYLOOP    dc      YRDLOOP                           ;offset to execute read y opcode
5071 d    P:0E2F 000ADF  WLOOP1    dc      PWDLOOP                           ;offset to execute write opcode
5072 d    P:0E30 000AE7  WPLOOP    dc      PWRLOOP                           ;offset to execute pmem write opcode
5073 d    P:0E31 000AF7  WXLOOP    dc      XWRLOOP                           ;offset to execute xmem write opcode
5074 d    P:0E32 000B07  WYLOOP    dc      YWRLOOP                           ;offset to execute ymem write opcode
5075 d    P:0E33 000999  GETREG    dc      SEC56K3                           ;offset to read program register opcode
5076 d    P:0E34 000A01  PUTREG    dc      PUTPREG                           ;offset to write program register opcode
5077 d    P:0E35 000A69  OGETREG   dc      GETOREG                           ;offset to read OnCE registers
5078 d    P:0E36 000A79  OPIPE     dc      PIPE                              ;offset to read OnCE Pipe regs.
5079 d    P:0E37 000A8C  OPUTREG   dc      PUTOREG                           ;offset to write OnCE registers
5080 d    P:0E38 000AAF  REGRDSEQ  dc      REGREAD                           ;offset to reg read command
5081 d    P:0E39 000AB4  REGWRSEQ  dc      REGWRITE                          ;offset to reg write command
5082 d    P:0E3A 000ABB  PREADSEQ  dc      OPREAD                            ;offset to p read command
5083 d    P:0E3B 000AC6  XREADSEQ  dc      OXREAD                            ;offset to x read command
5084 d    P:0E3C 000AD1  YREADSEQ  dc      OYREAD                            ;offset to y read command
5085 d    P:0E3D 000AE1  PWRITSEQ  dc      OPWRITE                           ;offset to p write command
5086 d    P:0E3E 000AF1  XWRITSEQ  dc      OXWRITE                           ;offset to x write command
5087 d    P:0E3F 000B01  YWRITSEQ  dc      OYWRITE                           ;offset to y write command
5088 d    P:0E40 000B11  GOSEQ     dc      USERMODE                          ;offset to go command sequence
5089 d    P:0E41 000ADF  REPSEQ    dc      PWDLOOP                           ;offset to repeat loop for block writes
5090 d    P:0E42 000B18  RESTORE   dc      RESTOREX0                         ;offset to restore x0,r0,m0
5091 d    P:0E43 000B2B  RSAVE     dc      SAVEX0                            ;offset to save r0,m0 regs.
5092 d    P:0E44 000000  RESTORBPMR dc     0                                 ;offset to restore x0,r0,m0,bpmrl,bpmrh
5093 d    P:0E45 000000  RSAVEBPMR dc      0                                 ;offset to save x0,r0,m0,bpmrl,bpmrh
5094 d    P:0E46 000B11  GOSEQ2    dc      USERMODE
5095   
5096                     ;*******************************************************************
5097                     ;       OFFSETS FOR 24 bit OnCE SEQUENCES
5098                     ;*******************************************************************
5099 d    P:0E47 000004  OFFSET    dc      PREADPTR-OPREAD                   ;offset in y mem for mem read/write addr
5100 d    P:0E48 00000A  WVOFFSET  dc      PWRITVAL-OPWRITE                  ;offset in y mem for mem write value
5101 d    P:0E49 000006  WLOOP     dc      PWRLOOP-OPWRITE                   ;offset in y mem for write loop
5102 d    P:0E4A 000004  WLOOPVAL  dc      PWRITVAL-PWRLOOP                  ;offset in y mem for write loop value
5103 d    P:0E4B 000004  LOCREGVAL dc      REGVAL-REGWRITE                   ;offset in y mem for reg. write value
5104 d    P:0E4C 000004  X0VAL1    dc      X0VAL-RESTOREX0                   ;offset in y mem for return r1 value
5105 d    P:0E4D 00000A  R0VAL1    dc      R0VAL-RESTOREX0                   ;offset in y mem for return r0 value
5106 d    P:0E4E 000010  M0VAL1    dc      M0VAL-RESTOREX0                   ;offset in y mem for return m0 value
5107 d    P:0E4F 00000C  PWWLOOP1  dc      PWLOOP-OPWRITE                    ;offset in y mem for p block write loop
5108 d    P:0E50 00000C  XWWLOOP1  dc      XWLOOP-OXWRITE                    ;offset in y mem for x block write loop
5109 d    P:0E51 00000C  YWWLOOP1  dc      YWLOOP-OYWRITE                    ;offset in y mem for y block write loop
5110                     ;||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5111                               endsec                                    ;end of sec56k3
5112                     ;||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5113   
5114      000E52         TABLE5    equ     *
5115      P:0E52 000000            bsc     38,0                              ;room for future expansion
5116      000E78         TABLE6    equ     *
5117                               section sec56800
5118                     ;**********************************************************************
5119                     ;       56800 TABLE OFFSETS TO OnCE SEQUENCES
5120                     ;**********************************************************************
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 68



5121 d    P:0E78 000B94  RPLOOP    dc      PRDLOOP                           ;offset to execute pmem read opcode
5122 d    P:0E79 000B9E  RXLOOP    dc      XRDLOOP                           ;offset to execute xmem read opcode
5123 d    P:0E7A 000000  RYLOOP    dc      0                                 ;dummy location to keep all tables the same
5124 d    P:0E7B 000000  WLOOP1    dc      0                                 ;dummy location to keep all tables the same
5125 d    P:0E7C 000BA8  WPLOOP    dc      PWRLOOP                           ;offset to execute pmem write opcode
5126 d    P:0E7D 000BB9  WXLOOP    dc      XWRLOOP                           ;offset to execute xmem write opcode
5127 d    P:0E7E 000000  WYLOOP    dc      0                                 ;dummy location to keep all tables the same
5128 d    P:0E7F 000B3E  GETREG    dc      SEC56800                          ;offset to read program register opcode
5129 d    P:0E80 000B53  PUTREG    dc      PUTPREG                           ;offset to write program register opcode
5130 d    P:0E81 000B69  OGETREG   dc      GETOREG                           ;offset to read OnCE registers
5131 d    P:0E82 000B6F  OPIPE     dc      PIPE                              ;offset to read OnCE Pipe regs.
5132 d    P:0E83 000B77  OPUTREG   dc      PUTOREG                           ;offset to write OnCE registers
5133 d    P:0E84 000B85  REGRDSEQ  dc      REGREAD                           ;offset to reg read command
5134 d    P:0E85 000B8B  REGWRSEQ  dc      REGWRITE                          ;offset to reg write command
5135 d    P:0E86 000B90  PREADSEQ  dc      OPREAD                            ;offset to p read command
5136 d    P:0E87 000B9A  XREADSEQ  dc      OXREAD                            ;offset to x read command
5137 d    P:0E88 000000  YREADSEQ  dc      0                                 ;dummy location to keep all tables the same
5138 d    P:0E89 000BA4  PWRITSEQ  dc      OPWRITE                           ;offset to p write command
5139 d    P:0E8A 000BB5  XWRITSEQ  dc      OXWRITE                           ;offset to x write command
5140 d    P:0E8B 000000  YWRITSEQ  dc      0                                 ;dummy location to keep all tables the same
5141 d    P:0E8C 000BC2  GOSEQ     dc      USERMODE1                         ;offset to go command sequence
5142 d    P:0E8D 000BB3  REPSEQ    dc      MWRLOOP                           ;offset to repeat loop for block writes
5143 d    P:0E8E 000BCE  RESTORE   dc      RESTOREX0                         ;offset to restore x0,r0,m0
5144 d    P:0E8F 000BD7  RSAVE     dc      SAVEX0                            ;offset to save x0,r0,m0 regs.
5145 d    P:0E90 000000  RESTORBPMR dc     0                                 ;offset to restore x0,r0,m0,bpmrl,bpmrh
5146 d    P:0E91 000000  RSAVEBPMR dc      0                                 ;offset to save x0,r0,m0,bpmrl,bpmrh
5147 d    P:0E92 000BC7  GOSEQ2    dc      USERMODE2
5148   
5149                     ;*******************************************************************
5150                     ;       OFFSETS FOR 16 bit OnCE SEQUENCES
5151                     ;*******************************************************************
5152 d    P:0E93 000003  OFFSET    dc      PREADPTR-OPREAD                   ;offset in y mem for mem read/write addr
5153 d    P:0E94 000007  WVOFFSET  dc      PWRITVAL-OPWRITE                  ;offset in y mem for mem write value
5154 d    P:0E95 000004  WLOOP     dc      PWRLOOP-OPWRITE                   ;offset in y mem for write loop
5155 d    P:0E96 000003  WLOOPVAL  dc      PWRITVAL-PWRLOOP                  ;offset in y mem for write loop value
5156 d    P:0E97 000003  LOCREGVAL dc      REGVAL-REGWRITE                   ;offset in y mem for reg. write value
5157 d    P:0E98 000003  X0VAL1    dc      X0VAL-RESTOREX0                   ;offset in y mem for return r1 value
5158 d    P:0E99 000007  R0VAL1    dc      R0VAL-RESTOREX0                   ;offset in y mem for return r0 value
5159 d    P:0E9A 000000  M0VAL1    dc      0                                 ;offset in y mem for return m0 value
5160 d    P:0E9B 000008  PWWLOOP1  dc      PWLOOP-OPWRITE                    ;offset in y mem for p block write loop
5161 d    P:0E9C 000008  XWWLOOP1  dc      XWLOOP-OXWRITE                    ;offset in y mem for x block write loop
5162 d    P:0E9D 000008  YWWLOOP1  dc      XWLOOP-OXWRITE                    ;note: no y mem on this part
5163                     ;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5164                               endsec                                    ;end of sec56800
5165                     ;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5166   
5167      000E9E         TABLE7    equ     *
5168                               section sec56k6
5169                     ;**********************************************************************
5170                     ;       56600 TABLE OFFSETS TO OnCE SEQUENCES
5171                     ;**********************************************************************
5172 d    P:0E9E 000CEA  RPLOOP    dc      PRDLOOP                           ;offset to execute pmem read opcode
5173 d    P:0E9F 000D02  RXLOOP    dc      XRDLOOP                           ;offset to execute xmem read opcode
5174 d    P:0EA0 000D0D  RYLOOP    dc      YRDLOOP                           ;dummy to keep all tables the same
5175 d    P:0EA1 000D15  WLOOP1    dc      PWDLOOP                           ;dummy to keep all tables the same
5176 d    P:0EA2 000D1D  WPLOOP    dc      PWRLOOP                           ;offset to execute pmem write opcode
5177 d    P:0EA3 000D33  WXLOOP    dc      XWRLOOP                           ;offset to execute xmem write opcode
5178 d    P:0EA4 000D43  WYLOOP    dc      YWRLOOP                           ;dummy, to keep all tables the same
5179 d    P:0EA5 000BDE  GETREG    dc      SEC56K6                           ;offset to read program register opcode
5180 d    P:0EA6 000C46  PUTREG    dc      PUTPREG                           ;offset to write program register opcode
5181 d    P:0EA7 000CAE  OGETREG   dc      GETOREG                           ;offset to read OnCE registers
5182 d    P:0EA8 000CB7  OPIPE     dc      PIPE                              ;offset to read OnCE Pipe regs.
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 69



5183 d    P:0EA9 000CC3  OPUTREG   dc      PUTOREG                           ;offset to write OnCE registers
5184 d    P:0EAA 000CD8  REGRDSEQ  dc      REGREAD                           ;offset to reg read command
5185 d    P:0EAB 000CDD  REGWRSEQ  dc      REGWRITE                          ;offset to reg write command
5186 d    P:0EAC 000CE4  PREADSEQ  dc      OPREAD                            ;offset to p read command
5187 d    P:0EAD 000CFC  XREADSEQ  dc      OXREAD                            ;offset to x read command
5188 d    P:0EAE 000D07  YREADSEQ  dc      OYREAD                            ;dummy, to keep all tables the same
5189 d    P:0EAF 000D17  PWRITSEQ  dc      OPWRITE                           ;offset to p write command
5190 d    P:0EB0 000D2D  XWRITSEQ  dc      OXWRITE                           ;offset to x write command
5191 d    P:0EB1 000D3D  YWRITSEQ  dc      OYWRITE                           ;dummy, to keep all tables the same
5192 d    P:0EB2 000D4D  GOSEQ     dc      USERMODE                          ;offset to go command sequence
5193 d    P:0EB3 000D15  REPSEQ    dc      PWDLOOP                           ;offset to repeat loop for block writes
5194 d    P:0EB4 000D54  RESTORE   dc      RESTOREX0                         ;offset to restore x0,r0,m0
5195 d    P:0EB5 000D86  RSAVE     dc      SAVEX0                            ;offset to save x0,r0,m0 regs.
5196 d    P:0EB6 000D67  RESTORBPMR dc     RESTOR566                         ;offset to restore x0,r0,m0,bpmrl,bpmrh
5197 d    P:0EB7 000D99  RSAVEBPMR dc      SAVE5660                          ;offset to save x0,r0,m0,bpmrl,bpmrh
5198 d    P:0EB8 000D4D  GOSEQ2    dc      USERMODE
5199                     ;*******************************************************************
5200                     ;       OFFSETS FOR 24 bit OnCE SEQUENCES
5201                     ;*******************************************************************
5202 d    P:0EB9 000004  OFFSET    dc      PREADPTR-OPREAD                   ;offset in y mem for mem read/write addr
5203 d    P:0EBA 00000A  WVOFFSET  dc      PWRITVAL-OPWRITE                  ;offset in y mem for mem write value
5204 d    P:0EBB 000006  WLOOP     dc      PWRLOOP-OPWRITE                   ;offset in y mem for write loop
5205 d    P:0EBC 000004  WLOOPVAL  dc      PWRITVAL-PWRLOOP                  ;offset in y mem for write loop value
5206 d    P:0EBD 000004  LOCREGVAL dc      REGVAL-REGWRITE                   ;offset in y mem for reg. write value
5207 d    P:0EBE 000004  X0VAL1    dc      X0VAL-RESTOREX0                   ;offset in y mem for return r1 value
5208 d    P:0EBF 00000A  R0VAL1    dc      R0VAL-RESTOREX0                   ;offset in y mem for return r0 value
5209 d    P:0EC0 000010  M0VAL1    dc      M0VAL-RESTOREX0                   ;offset in y mem for return m0 value
5210 d    P:0EC1 000012  PWWLOOP1  dc      PWLOOP-OPWRITE                    ;offset in y mem for p block write loop
5211 d    P:0EC2 00000C  XWWLOOP1  dc      XWLOOP-OXWRITE                    ;offset in y mem for x block write loop
5212 d    P:0EC3 00000C  YWWLOOP1  dc      YWLOOP-OYWRITE                    ;note: no y mem on this part
5213                     ;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5214                               endsec                                    ;end of sec56k6
5215                     ;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5216                     ;********************************************************************
5217                     ;       FOLLOWING ARE THE TABLE ADDRESSES FOR THE ADM COMMANDS
5218                     ;********************************************************************
5219      000EC4         OVLYTABL  equ     *
5220 d    P:0EC4 000403            dc      GOCMD                             ;command 10
5221 d    P:0EC5 000426            dc      GODELAY                           ;command 11
5222 d    P:0EC6 000455            dc      PREAD                             ;command 12
5223 d    P:0EC7 0004D6            dc      PWRITE                            ;command 13
5224 d    P:0EC8 000489            dc      XREAD                             ;command 14
5225 d    P:0EC9 000502            dc      XWRITE                            ;command 15
5226 d    P:0ECA 0004AF            dc      YREAD                             ;command 16
5227 d    P:0ECB 000515            dc      YWRITE                            ;command 17
5228 d    P:0ECC 000528            dc      REG_RD                            ;command 18
5229 d    P:0ECD 000560            dc      REG_WR                            ;command 19
5230 d    P:0ECE 00057F            dc      P1WRITE                           ;command 1a
5231 d    P:0ECF 0005AA            dc      X1WRITE                           ;command 1b
5232 d    P:0ED0 0005C1            dc      Y1WRITE                           ;command 1c
5233 d    P:0ED1 0005D8            dc      OREG_RD                           ;command 1d
5234 d    P:0ED2 000618            dc      OREG_WR                           ;command 1e
5235 d    P:0ED3 000642            dc      SEQTRACE                          ;command 1f
5236 d    P:0ED4 000665            dc      SEQEXEC                           ;command 20
5237 d    P:0ED5 000669            dc      SAV_PIPE                          ;command 21
5238 d    P:0ED6 000687            dc      SEQREAD                           ;command 22
5239 d    P:0ED7 0006B1            dc      SEQWRITE                          ;command 23
5240 d    P:0ED8 0006DB            dc      MISC_RD                           ;command 24
5241 d    P:0ED9 000700            dc      MISC_WR                           ;command 25
5242 d    P:0EDA 00070D            dc      FORCER                            ;command 26
5243 d    P:0EDB 000754            dc      FORCEB                            ;command 27
5244 d    P:0EDC 00075B            dc      EXOVERLAY                         ;command 28
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 70



5245 d    P:0EDD 000770            dc      JRESET                            ;command 29
5246 d    P:0EDE 00077F            dc      JBREAK                            ;command 2a
5247 d    P:0EDF 00079B            dc      TARGET_R                          ;command 2b
5248 d    P:0EE0 0007FA            dc      JGOCMD                            ;command 2c
5249 d    P:0EE1 000826            dc      RFIFOCMD                          ;command 2d
5250 d    P:0EE2 000883            dc      POLLCMD                           ;command 2e
5251 d    P:0EE3 00089B            dc      JTAGCNT                           ;command 2f
5252 d    P:0EE4 0008E6            dc      SETACTV                           ;command 30
5253 d    P:0EE5 00079B            dc      TARGET_R                          ;command 31 (possible single target)
5254 d    P:0EE6 000966            dc      POLLON                            ;command 32
5255 d    P:0EE7 00096A            dc      POLLOFF                           ;command 33
5256 d    P:0EE8 00096D            dc      JIRLEN                            ;command 34
5257 d    P:0EE9 00097B            dc      CHKSERVICE                        ;command 35
5258                     ;******************************************************************
5259   
5260      000EEA         OVLYTABL1 equ     *
5261 d                   LASTCOMMAND
5262 d    P:0EEA 000036            dc      OVLYTABL1-OVLYTABL+$10
5263 d    P:0EEB 000026  TABLESIZ  dc      (TABLE2-TABLE1)                   ;all jump tables are same size
5264 d    P:0EEC 000026  JTABLSZ   dc      OVLYTABL1-OVLYTABL                ;command jump table size
5265   
5266      000EED         TABLE8    equ     *
5267   
5268 d    P:0EED 000DBA            dc      TABLE1                            ;future expansion
5269 d    P:0EEE 000DE0            dc      TABLE2                            ;future expansion
5270 d    P:0EEF 000E06            dc      TABLE3                            ;future expansion
5271 d    P:0EF0 000E2C            dc      TABLE4                            ;56300
5272 d    P:0EF1 000E52            dc      TABLE5                            ;future expansion
5273 d    P:0EF2 000E78            dc      TABLE6                            ;56800
5274 d    P:0EF3 000000            dc      0                                 ;future expansion
5275 d    P:0EF4 000000            dc      0                                 ;future expansion
5276 d    P:0EF5 000E9E            dc      TABLE7                            ;56600
5277 d    P:0EF6 000EC4            dc      OVLYTABL
5278   
5279      000EF7         ENDROM    equ     *
5280   
5281                               end                                       ;end of program

0    Errors
0    Warnings






















Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 71



Define symbols:

Symbol           Definition

ACTIVECMD........'x:$22'
BCR..............'x:$fffe'
BCRVAL...........'x:$17'
CLKRATE..........'x:$9'
CRA..............'x:$ffec'
CRB..............'x:$ffed'
CURDEV...........'x:$24'
DATACLKS.........'x:$e'
DEVACTIVE........'x:$c'
DEVCNT...........'x:$b'
DEVICE...........'x:$7'
DEVNUMA..........'x:$25'
DEVSERVICE.......'x:$1D'
DEVTMP...........'x:$d'
FLAG2............'x:$1E'
FLAGS............'x:$1'
ICLKS............'x:$f'
ILENGTH..........'x:$14'
INACTIVECMD......'x:$23'
INPUTS...........'y:$fff0'
IPR..............'x:$ffff'
JTAGBDAT.........'x:$21'
JTAGCMD1.........'x:$1A'
JTAGCMD2.........'x:$1B'
JTAGCMD3.........'x:$1C'
JTAGDATA.........'x:$15'
LOOPCOUNT........'x:$0'
MARKER...........'x:$8'
ONCECNT..........'x:$13'
PBC..............'x:$ffe0'
PBD..............'x:$ffe4'
PBDDR............'x:$ffe2'
PCC..............'x:$ffe1'
PCD..............'x:$ffe5'
PCDDR............'x:$ffe3'
PCTL.............'x:$fffd'
PLLVAR...........'x:$16'
RX...............'x:$ffef'
SAVEACTIV........'x:$19'
SAVENUMA.........'x:$26'
SSICLK...........'x:$6'
SSIMOD...........'x:$5'
SSISR............'x:$ffee'
STATCMP..........'x:$12'
STATCNT..........'x:$10'
STATVAL..........'x:$11'
TEMPAREA.........'x:$18'
TMSCLKS..........'x:$a'
TX...............'x:$ffef'
USRLIST..........'x:$20'
USRTMP...........'x:$1F'
XPTR.............'x:$4'
YPTR.............'x:$2'
YTEMP............'x:$3'


Macros:

Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 72



Name          Definition       Section
                 Line

recv.............549   
txwait...........538   
xmit.............543   


Relocatable Sections:

Name

sec56800
sec56k3
sec56k6


Symbols:

Name             Type    Value         Section           Attributes

ACTVMODE.........int     000015                          GLOBAL
ADM_ACK..........int     000008                          GLOBAL
ADM_INT..........int     000009                          GLOBAL
ADM_REQ..........int     00000A                          GLOBAL
ARCDONE..........int   P:072A                            GLOBAL
BANGBIT..........int   P:004F                            GLOBAL
BANGCLK..........int   P:009C                            GLOBAL
BCRDEFAULT.......int     000110                          GLOBAL
BDDRIN...........int     007F00                          GLOBAL
BDDROUT..........int     007FFF                          GLOBAL
BOUT.............int     007000                          GLOBAL
BPMRHVAL.........int   P:0D7D          sec56k6
BPMRLVAL.........int   P:0D83          sec56k6
BRKDONE..........int   P:02D7                            GLOBAL
BUSY.............int     000002                          GLOBAL
BYPASS...........int     000F03                          GLOBAL
BYPASS1..........int   P:03A7                            GLOBAL
BYP_BYP..........int     FF0000                          GLOBAL
BYP_DBG..........int     F70000                          GLOBAL
BYP_ONC..........int     F60000                          GLOBAL
CHEK32...........int   P:0311                            GLOBAL
CHK24BIT.........int   P:02BF                            GLOBAL
CHK32............int   P:0336                            GLOBAL
CHKACTIVE........int   P:01CC                            GLOBAL
CHKSERVICE.......int   P:097B                            GLOBAL
CHK_AK...........int   P:0290                            GLOBAL
CHK_AK2..........int   P:0295                            GLOBAL
CIO..............int     00017C                          GLOBAL
CLAMP............int     000503                          GLOBAL
CLEANUP..........int     000002                          GLOBAL
CLKCALL..........int   P:0076                            GLOBAL
CLKCALL1.........int   P:0077                            GLOBAL
CLKCALL2.........int   P:0087                            GLOBAL
CLKTG............int   P:03C1                            GLOBAL
CLKTOG...........int   P:0095                            GLOBAL
CLKTOGGLE........int   P:0089                            GLOBAL
CMDFLAG..........int     000007                          GLOBAL
CRAVAL...........int     000008                          GLOBAL
CRBLSB...........int     003E60                          GLOBAL
CRBVAL...........int     003E20                          GLOBAL
DATAFIX..........int   P:0630                            GLOBAL
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 73



DATAFLG..........int     00000A                          GLOBAL
DATATGL2.........int   P:03B6                            GLOBAL
DATATOG4.........int   P:03A5                            GLOBAL
DATATOG5.........int   P:03B7                            GLOBAL
DATATOGL2........int   P:01CA                            GLOBAL
DATATOGL4........int   P:03CB                            GLOBAL
DATATOGL5........int   P:01CB                            GLOBAL
DATATOGL6........int   P:03C7                            GLOBAL
DATATOGLE........int   P:03AE                            GLOBAL
DATATOGLE1.......int   P:03AF                            GLOBAL
DBG_BYP..........int     7F0000                          GLOBAL
DBG_DBG..........int     770000                          GLOBAL
DBG_NUL..........int     768000                          GLOBAL
DBG_OK...........int     DD0000                          GLOBAL
DEBUG............int     000003                          GLOBAL
DEBUGMODE........int     000000                          GLOBAL
DEBUGREQ.........int     000005                          GLOBAL
DEBUGSTAT........int     D00000                          GLOBAL
DEBUG_R..........int     000703                          GLOBAL
DEBUG_REQ........int     700000                          GLOBAL
DEV561K..........int     00000D                          GLOBAL
DEV563K..........int     00000E                          GLOBAL
DEV568K..........int     000010                          GLOBAL
DEV56K...........int     00000C                          GLOBAL
DEV56L1K.........int     00000F                          GLOBAL
DEV96K...........int     00000B                          GLOBAL
DIR..............int     00000B                          GLOBAL
DOCMD............int   P:025D                            GLOBAL
DOMORE...........int   P:06FB                            GLOBAL
DONE1............int   P:04F2                            GLOBAL
DONOTDO..........int   P:06FF                            GLOBAL
DOSTAT...........int   P:08E1                            GLOBAL
DSCK.............int     000006                          GLOBAL
DSI..............int     000008                          GLOBAL
DSO..............int     000007                          GLOBAL
DUMB_CMD.........int     009E07                          GLOBAL
ENABLE_ONCE......int     600000                          GLOBAL
ENDARC...........int   P:0744                            GLOBAL
ENDBP............int   P:08AA                            GLOBAL
ENDCMD...........int   P:0999                            GLOBAL
ENDPOLL..........int   P:0207                            GLOBAL
ENDREAD..........int   P:06B0                            GLOBAL
ENDROM...........int   P:0EF7                            GLOBAL
ENDSEC4..........int   P:0B3E                            GLOBAL
ENDSEC6..........int   P:0BDE                            GLOBAL
ENDSEC7..........int   P:0DBA                            GLOBAL
ENDWRITE.........int   P:06DA                            GLOBAL
ENDZO............int   P:08B9                            GLOBAL
EXIT_IDLE........int     800002                          GLOBAL
EXOVERLAY........int   P:075B                            GLOBAL
EXOVERLAY2.......int   P:076F                            GLOBAL
EXTEST...........int     000003                          GLOBAL
EX_PULLUP........int     000303                          GLOBAL
E_ONCE...........int     000603                          GLOBAL
FILLTDI..........int   P:00D4                            GLOBAL
FILLTDI1.........int   P:00D9                            GLOBAL
FILLTDO..........int   P:00CD                            GLOBAL
FILLTDO1.........int   P:00CE                            GLOBAL
FORCEB...........int   P:0754                            GLOBAL
FORCER...........int   P:070D                            GLOBAL
FORCER1..........int   P:0718                            GLOBAL
FORCER4..........int   P:0752                            GLOBAL
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 74



GBYTE1...........int   P:0330                            GLOBAL
GET16............int   P:031A                            GLOBAL
GET16B2..........int   P:03FF                            GLOBAL
GET24............int   P:0317                            GLOBAL
GET32............int   P:0313                            GLOBAL
GET8.............int   P:031F                            GLOBAL
GETARC...........int   P:0728                            GLOBAL
GETARG...........int   P:02B8                            GLOBAL
GETBYTE..........int   P:0329                            GLOBAL
GETCMD...........int   P:0264                            GLOBAL
GETIT............int   P:03F0                            GLOBAL
GETLWORD.........int   P:030A                            GLOBAL
GETOCMD..........int   P:0305                            GLOBAL
GETOREG..........int   P:0A69          sec56k3
GETOREG..........int   P:0B69          sec56800
GETOREG..........int   P:0CAE          sec56k6
GETOSR...........int   P:0603                            GLOBAL
GETOSR1..........int   P:0617                            GLOBAL
GETPREG..........int   P:0999          sec56k3
GETPREG..........int   P:0B3E          sec56800
GETPREG..........int   P:0BDE          sec56k6
GETREG...........int   X:0037                            GLOBAL
GETREG...........int   P:0E33          sec56k3
GETREG...........int   P:0E7F          sec56800
GETREG...........int   P:0EA5          sec56k6
GETREST..........int   P:0314                            GLOBAL
GO1..............int   P:0410                            GLOBAL
GO11.............int   P:0432                            GLOBAL
GO2..............int   P:041B                            GLOBAL
GO21.............int   P:0433                            GLOBAL
GO3..............int   P:0420                            GLOBAL
GO31.............int   P:0434                            GLOBAL
GO4..............int   P:040F                            GLOBAL
GO41.............int   P:043D                            GLOBAL
GO5..............int   P:0423                            GLOBAL
GO51.............int   P:043E                            GLOBAL
GO6..............int   P:041A                            GLOBAL
GO61.............int   P:043F                            GLOBAL
GO71.............int   P:044F                            GLOBAL
GO81.............int   P:0452                            GLOBAL
GOCMD............int   P:0403                            GLOBAL
GODELAY..........int   P:0426                            GLOBAL
GODELAY1.........int   P:044C                            GLOBAL
GOIDLE...........int   P:03EB                            GLOBAL
GOO1.............int   P:0411                            GLOBAL
GOO2.............int   P:041C                            GLOBAL
GORETRN..........int   P:044E                            GLOBAL
GOSEQ............int   X:0044                            GLOBAL
GOSEQ............int   P:0E40          sec56k3
GOSEQ............int   P:0E8C          sec56800
GOSEQ............int   P:0EB2          sec56k6
GOSEQ2...........int   X:004A                            GLOBAL
GOSEQ2...........int   P:0E46          sec56k3
GOSEQ2...........int   P:0E92          sec56800
GOSEQ2...........int   P:0EB8          sec56k6
GOTCMD...........int   P:0275                            GLOBAL
HAWK_NJR.........int   P:0944                            GLOBAL
HAWK_R...........int   P:07DA                            GLOBAL
HIGHZ............int     000403                          GLOBAL
HND_SHK..........int   P:028C                            GLOBAL
HOSTBRK..........int   P:02C9                            GLOBAL
HSTBRK0..........int   P:02CB                            GLOBAL
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 75



HSTBRK1..........int   P:02CC                            GLOBAL
HSTBRK2..........int   P:02D1                            GLOBAL
H_ACK............int     000015                          GLOBAL
H_BRK............int     000003                          GLOBAL
H_REQ............int     000016                          GLOBAL
IDCODE...........int     000203                          GLOBAL
IDLE_SDR.........int     800003                          GLOBAL
IDLE_SIR.........int     C00004                          GLOBAL
IF0..............int     000000                          GLOBAL
IF1..............int     000001                          GLOBAL
ILLEGERR.........int     000012                          GLOBAL
INITSEQ..........int   P:02B2                            GLOBAL
INT_ACK..........int     000014                          GLOBAL
JBREAK...........int   P:077F                            GLOBAL
JBREAK1..........int   P:0787                            GLOBAL
JBREAKWAIT2......int   P:0795                            GLOBAL
JFORCER..........int   P:0908                            GLOBAL
JGO1.............int   P:0806                            GLOBAL
JGO2.............int   P:0810                            GLOBAL
JGO3.............int   P:0815                            GLOBAL
JGO4.............int   P:0805                            GLOBAL
JGO5.............int   P:081C                            GLOBAL
JGO6.............int   P:080F                            GLOBAL
JGOCMD...........int   P:07FA                            GLOBAL
JGOO1............int   P:0807                            GLOBAL
JGOO2............int   P:0811                            GLOBAL
JIRDATA..........int   P:1001                            GLOBAL
JIRLEN...........int   P:096D                            GLOBAL
JIRTABLE.........int   P:1000                            GLOBAL
JIRTABLEp........int   P:1000                            GLOBAL
JISSUE...........int   P:0130                            GLOBAL
JISSUE2..........int   P:0133                            GLOBAL
JMPTABL..........int   P:1100                            GLOBAL
JREADSB..........int   P:012D                            GLOBAL
JREADSB1.........int   P:017E                            GLOBAL
JRESET...........int   P:0770                            GLOBAL
JRESET_IDL.......int     FC0008                          GLOBAL
JRESET_SIR.......int     FB000A                          GLOBAL
JTABLSZ..........int   P:0EEC                            GLOBAL
JTAGCN1..........int   P:08BF                            GLOBAL
JTAGCNT..........int   P:089B                            GLOBAL
JTAGCOM1.........int   P:036B                            GLOBAL
JTAGCOM2.........int   P:0372                            GLOBAL
JTAGCOM3.........int   P:0373                            GLOBAL
JTAGCOM9.........int   P:0376                            GLOBAL
JTAGDEV..........int     000003                          GLOBAL
JTAGFLAG.........int     000014                          GLOBAL
JTAGLAST.........int     000004                          GLOBAL
JTAGPORT.........int     00000C                          GLOBAL
JTAGPRP..........int   P:0040                            GLOBAL
JTAGTDI..........int     000000                          GLOBAL
JTAGTDIV.........int     000001                          GLOBAL
JTAGTDO..........int     000002                          GLOBAL
JTAGTDOV.........int     000003                          GLOBAL
JTAG_RESET.......int     F80005                          GLOBAL
JXFER............int   P:00C1                            GLOBAL
JXFER12..........int   P:00BB                            GLOBAL
JXFER16..........int   P:00B7                            GLOBAL
JXFER24..........int   P:00B3                            GLOBAL
JXFER8...........int   P:00BF                            GLOBAL
J_BYPASS.........int     F00000                          GLOBAL
J_RDWR...........int   P:0183                            GLOBAL
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 76



J_RDWR1..........int   P:0184                            GLOBAL
J_RDWR2..........int   P:018F                            GLOBAL
J_WR.............int   P:01A3                            GLOBAL
J_WR1............int   P:01A4                            GLOBAL
J_WR6............int   P:01B4                            GLOBAL
LASTCOMMAND......int   P:0EEA                            GLOBAL
LGETCMD..........int   P:024A                            GLOBAL
LGETCMD1.........int   P:0254                            GLOBAL
LOADADDR.........int     00C000                          GLOBAL
LOADSEQ..........int   P:02C2                            GLOBAL
LOADSEQ1.........int   P:02C5                            GLOBAL
LOADTAB..........int   P:074E                            GLOBAL
LOCREGVAL........int   X:004F                            GLOBAL
LOCREGVAL........int   P:0E4B          sec56k3
LOCREGVAL........int   P:0E97          sec56800
LOCREGVAL........int   P:0EBD          sec56k6
LOWERBYTE........int   P:0346                            GLOBAL
LOWERBYTE1.......int   P:0348                            GLOBAL
LP16NJR..........int   P:092A                            GLOBAL
LP16R............int   P:07C2                            GLOBAL
M00VAL...........int   P:0D77          sec56k6
M0VAL............int   P:0B28          sec56k3
M0VAL............int   P:0D64          sec56k6
M0VAL1...........int   X:0052                            GLOBAL
M0VAL1...........int   P:0E4E          sec56k3
M0VAL1...........int   P:0E9A          sec56800
M0VAL1...........int   P:0EC0          sec56k6
MBYPASS..........int     000F04                          GLOBAL
MCLAMP...........int     000504                          GLOBAL
MDEBUG_R.........int     000704                          GLOBAL
MDUMB_CMD........int     009E08                          GLOBAL
MEXTEST..........int     000004                          GLOBAL
MEX_PULLUP.......int     000304                          GLOBAL
ME_ONCE..........int     000604                          GLOBAL
MHIGHZ...........int     000404                          GLOBAL
MIDCODE..........int     000204                          GLOBAL
MISC_RD..........int   P:06DB                            GLOBAL
MISC_WR..........int   P:0700                            GLOBAL
MISC_WR1.........int   P:070C                            GLOBAL
MKIN.............int   P:0353                            GLOBAL
MKUSRLST.........int   P:08CF                            GLOBAL
MLOOP............int   P:025A                            GLOBAL
MONITOR1.........int   P:021A                            GLOBAL
MREAD_OSCR.......int     008008                          GLOBAL
MSAMPLE..........int     000104                          GLOBAL
MWRLOOP..........int   P:0BB3          sec56800
NOREST1..........int   P:0554                            GLOBAL
NORMAL...........int     000000                          GLOBAL
NOSAVE...........int   P:052F                            GLOBAL
NOSKIP...........int   P:02FD                            GLOBAL
NOT16BIT.........int   P:0641                            GLOBAL
NOT566...........int   P:0487                            GLOBAL
OFFSET...........int   X:004B                            GLOBAL
OFFSET...........int   P:0E47          sec56k3
OFFSET...........int   P:0E93          sec56800
OFFSET...........int   P:0EB9          sec56k6
OGETREG..........int   X:0039                            GLOBAL
OGETREG..........int   P:0E35          sec56k3
OGETREG..........int   P:0E81          sec56800
OGETREG..........int   P:0EA7          sec56k6
OISSUE1..........int   P:00EF                            GLOBAL
OISSUE16.........int   P:00E5                            GLOBAL
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 77



OISSUE24.........int   P:00DF                            GLOBAL
OISSUE8..........int   P:00EB                            GLOBAL
ONCETYPE.........int   P:0745                            GLOBAL
ONC_BYP..........int     6F0000                          GLOBAL
ONC_NUL..........int     668000                          GLOBAL
ONC_ONC..........int     660000                          GLOBAL
OPIPE............int   X:003A                            GLOBAL
OPIPE............int   P:0E36          sec56k3
OPIPE............int   P:0E82          sec56800
OPIPE............int   P:0EA8          sec56k6
OPREAD...........int   P:0ABB          sec56k3
OPREAD...........int   P:0B90          sec56800
OPREAD...........int   P:0CE4          sec56k6
OPUTREG..........int   X:003B                            GLOBAL
OPUTREG..........int   P:0E37          sec56k3
OPUTREG..........int   P:0E83          sec56800
OPUTREG..........int   P:0EA9          sec56k6
OPWRITE..........int   P:0AE1          sec56k3
OPWRITE..........int   P:0BA4          sec56800
OPWRITE..........int   P:0D17          sec56k6
OPWRL4...........int   P:0573                            GLOBAL
OPWRL5...........int   P:056F                            GLOBAL
OPWRL6...........int   P:0571                            GLOBAL
OREAD1...........int   P:010F                            GLOBAL
OREAD16..........int   P:0103                            GLOBAL
OREAD2...........int   P:0122                            GLOBAL
OREAD24..........int   P:00FC                            GLOBAL
OREAD3...........int   P:0126                            GLOBAL
OREAD8...........int   P:010A                            GLOBAL
OREG_RD..........int   P:05D8                            GLOBAL
OREG_RD1.........int   P:05FF                            GLOBAL
OREG_RD2.........int   P:05FD                            GLOBAL
OREG_RD3.........int   P:05F1                            GLOBAL
OREG_RD4.........int   P:05EE                            GLOBAL
OREG_RD5.........int   P:05FC                            GLOBAL
OREG_RD6.........int   P:0600                            GLOBAL
OREG_RD7.........int   P:05F7                            GLOBAL
OREG_WR..........int   P:0618                            GLOBAL
ORESET...........int     000004                          GLOBAL
OVLYTABL.........int   P:0EC4                            GLOBAL
OVLYTABL1........int   P:0EEA                            GLOBAL
OWRIT0...........int   P:0628                            GLOBAL
OWRIT1...........int   P:062A                            GLOBAL
OWRIT2...........int   P:062B                            GLOBAL
OWRITE...........int   P:062F                            GLOBAL
OXREAD...........int   P:0AC6          sec56k3
OXREAD...........int   P:0B9A          sec56800
OXREAD...........int   P:0CFC          sec56k6
OXWRITE..........int   P:0AF1          sec56k3
OXWRITE..........int   P:0BB5          sec56800
OXWRITE..........int   P:0D2D          sec56k6
OYREAD...........int   P:0AD1          sec56k3
OYREAD...........int   P:0D07          sec56k6
OYWRITE..........int   P:0B01          sec56k3
OYWRITE..........int   P:0D3D          sec56k6
OnCEBRK..........int   P:02D8                            GLOBAL
OnCEREQ..........int     000001                          GLOBAL
P1WRITE..........int   P:057F                            GLOBAL
P2WRITE..........int   P:05A2                            GLOBAL
PB1..............int   P:034E                            GLOBAL
PB2..............int   P:0351                            GLOBAL
PIPE.............int   P:0A79          sec56k3
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 78



PIPE.............int   P:0B6F          sec56800
PIPE.............int   P:0CB7          sec56k6
PLLDEFAULT.......int     040001                          GLOBAL
PLLIN............int     040001                          GLOBAL
POLL566..........int   P:07B5                            GLOBAL
POLLCMD..........int   P:0883                            GLOBAL
POLLENABLE.......int     000000                          GLOBAL
POLLNJR..........int   P:0923                            GLOBAL
POLLOFF..........int   P:096A                            GLOBAL
POLLON...........int   P:0966                            GLOBAL
POLLSTAT.........int     000009                          GLOBAL
POLLSTATUS.......int     000006                          GLOBAL
POLLUSR..........int   P:01D0                            GLOBAL
PRDLOOP..........int   P:0AC1          sec56k3
PRDLOOP..........int   P:0B94          sec56800
PRDLOOP..........int   P:0CEA          sec56k6
PREAD............int   P:0455                            GLOBAL
PREAD1...........int   P:047D                            GLOBAL
PREAD11..........int   P:045C                            GLOBAL
PREAD2...........int   P:047C                            GLOBAL
PREAD22..........int   P:0466                            GLOBAL
PREAD3...........int   P:0480                            GLOBAL
PREAD4...........int   P:0477                            GLOBAL
PREADDATA........int   P:0468                            GLOBAL
PREADDONE........int   P:047F                            GLOBAL
PREADPTR.........int   P:0ABF          sec56k3
PREADPTR.........int   P:0B93          sec56800
PREADPTR.........int   P:0CE8          sec56k6
PREADSEQ.........int   X:003E                            GLOBAL
PREADSEQ.........int   P:0E3A          sec56k3
PREADSEQ.........int   P:0E86          sec56800
PREADSEQ.........int   P:0EAC          sec56k6
PREADVAL.........int   P:0472                            GLOBAL
PUT16............int   P:033C                            GLOBAL
PUT24............int   P:0339                            GLOBAL
PUT32............int   P:0336                            GLOBAL
PUTBYTE..........int   P:034C                            GLOBAL
PUTDATA..........int   P:0357                            GLOBAL
PUTLWORD.........int   P:0334                            GLOBAL
PUTOREG..........int   P:0A8C          sec56k3
PUTOREG..........int   P:0B77          sec56800
PUTOREG..........int   P:0CC3          sec56k6
PUTPREG..........int   P:0A01          sec56k3
PUTPREG..........int   P:0B53          sec56800
PUTPREG..........int   P:0C46          sec56k6
PUTREG...........int   X:0038                            GLOBAL
PUTREG...........int   P:0E34          sec56k3
PUTREG...........int   P:0E80          sec56800
PUTREG...........int   P:0EA6          sec56k6
PWBLKDONE........int   P:04ED                            GLOBAL
PWBLKDONE1.......int   P:04F1                            GLOBAL
PWDLOOP..........int   P:0ADF          sec56k3
PWDLOOP..........int   P:0D15          sec56k6
PWLOOP...........int   P:0AED          sec56k3
PWLOOP...........int   P:0BAC          sec56800
PWLOOP...........int   P:0D29          sec56k6
PWRIT5660........int   P:04F3                            GLOBAL
PWRIT5661........int   P:04F6                            GLOBAL
PWRIT5662........int   P:05A4                            GLOBAL
PWRITE...........int   P:04D6                            GLOBAL
PWRITE1..........int   P:04DD                            GLOBAL
PWRITE11.........int   P:0586                            GLOBAL
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 79



PWRITEDONE.......int   P:059E                            GLOBAL
PWRITPTR.........int   P:0AE5          sec56k3
PWRITPTR.........int   P:0BA7          sec56800
PWRITPTR.........int   P:0D1B          sec56k6
PWRITSEQ.........int   X:0041                            GLOBAL
PWRITSEQ.........int   P:0E3D          sec56k3
PWRITSEQ.........int   P:0E89          sec56800
PWRITSEQ.........int   P:0EAF          sec56k6
PWRITVAL.........int   P:0AEB          sec56k3
PWRITVAL.........int   P:0BAB          sec56800
PWRITVAL.........int   P:0D21          sec56k6
PWRLOOP..........int   P:0AE7          sec56k3
PWRLOOP..........int   P:0BA8          sec56800
PWRLOOP..........int   P:0D1D          sec56k6
PWRNJR...........int   P:095D                            GLOBAL
PWRNJR1..........int   P:0960                            GLOBAL
PWRUP............int   P:07F0                            GLOBAL
PWRUP1...........int   P:07F3                            GLOBAL
PWWLOOP1.........int   X:0053                            GLOBAL
PWWLOOP1.........int   P:0E4F          sec56k3
PWWLOOP1.........int   P:0E9B          sec56800
PWWLOOP1.........int   P:0EC1          sec56k6
R00VAL...........int   P:0D71          sec56k6
R0VAL............int   P:0B22          sec56k3
R0VAL............int   P:0BD5          sec56800
R0VAL............int   P:0D5E          sec56k6
R0VAL1...........int   X:0051                            GLOBAL
R0VAL1...........int   P:0E4D          sec56k3
R0VAL1...........int   P:0E99          sec56800
R0VAL1...........int   P:0EBF          sec56k6
R3FIFO...........int   P:0828                            GLOBAL
R3FIFO2..........int   P:083B                            GLOBAL
R3FIFO5..........int   P:084D                            GLOBAL
R3FIFOEND........int   P:0850                            GLOBAL
R3FIFOSND........int   P:0857                            GLOBAL
R6FIFO...........int   P:0858                            GLOBAL
R6FIFO1..........int   P:086B                            GLOBAL
R6FIFO5..........int   P:0878                            GLOBAL
R6FIFOEND........int   P:087B                            GLOBAL
R6FIFOSND........int   P:0882                            GLOBAL
RDF..............int     000007                          GLOBAL
RDONE............int   P:06A4                            GLOBAL
RDOS.............int   P:0984                            GLOBAL
READPTR..........int   P:06ED                            GLOBAL
READREV..........int   P:06E6                            GLOBAL
READSTAT.........int   P:06E9                            GLOBAL
READ_OSCR........int     008007                          GLOBAL
RECEIVE..........int   P:03F8                            GLOBAL
REDUN1...........int   P:02A0                            GLOBAL
REDUN3...........int   P:02AD                            GLOBAL
REDUN4...........int   P:02AB                            GLOBAL
REDUN5...........int   P:02AF                            GLOBAL
REDUNDANT........int   P:029F                            GLOBAL
REDUNDN3.........int   P:02A7                            GLOBAL
REDUNDNT2........int   P:0299                            GLOBAL
REDUNDNT3........int   P:02A6                            GLOBAL
REGBACK..........int   P:02E4                            GLOBAL
REGBACK1.........int   P:02DE                            GLOBAL
REGBACK2.........int   P:02EB                            GLOBAL
REGBACK4.........int   P:02E9                            GLOBAL
REGBAK7..........int   P:02F2                            GLOBAL
REGRDSEQ.........int   X:003C                            GLOBAL
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 80



REGRDSEQ.........int   P:0E38          sec56k3
REGRDSEQ.........int   P:0E84          sec56800
REGRDSEQ.........int   P:0EAA          sec56k6
REGREAD..........int   P:0AAF          sec56k3
REGREAD..........int   P:0B85          sec56800
REGREAD..........int   P:0CD8          sec56k6
REGROPCOD........int   P:0AB0          sec56k3
REGROPCOD........int   P:0CD9          sec56k6
REGSETUP.........int   P:0558                            GLOBAL
REGVAL...........int   P:0AB8          sec56k3
REGVAL...........int   P:0B8E          sec56800
REGVAL...........int   P:0CE1          sec56k6
REGWOPCOD........int   P:0AB5          sec56k3
REGWOPCOD........int   P:0CDE          sec56k6
REGWRITE.........int   P:0AB4          sec56k3
REGWRITE.........int   P:0B8B          sec56800
REGWRITE.........int   P:0CDD          sec56k6
REGWRSEQ.........int   X:003D                            GLOBAL
REGWRSEQ.........int   P:0E39          sec56k3
REGWRSEQ.........int   P:0E85          sec56800
REGWRSEQ.........int   P:0EAB          sec56k6
REG_RD...........int   P:0528                            GLOBAL
REG_RD0..........int   P:0548                            GLOBAL
REG_RD1..........int   P:053F                            GLOBAL
REG_RD2..........int   P:0542                            GLOBAL
REG_RD3..........int   P:053A                            GLOBAL
REG_RDONE........int   P:0550                            GLOBAL
REG_RDX..........int   P:055B                            GLOBAL
REG_WDONE........int   P:0577                            GLOBAL
REG_WR...........int   P:0560                            GLOBAL
REPSEQ...........int   X:0045                            GLOBAL
REPSEQ...........int   P:0E41          sec56k3
REPSEQ...........int   P:0E8D          sec56800
REPSEQ...........int   P:0EB3          sec56k6
RESET............int     000000                          GLOBAL
RESET_IDLE.......int     000001                          GLOBAL
RESTOR56.........int   X:0048                            GLOBAL
RESTOR566........int   P:0D67          sec56k6
RESTORBPMR.......int   P:0E44          sec56k3
RESTORBPMR.......int   P:0E90          sec56800
RESTORBPMR.......int   P:0EB6          sec56k6
RESTORE..........int   X:0046                            GLOBAL
RESTORE..........int   P:0E42          sec56k3
RESTORE..........int   P:0E8E          sec56800
RESTORE..........int   P:0EB4          sec56k6
RESTOREX0........int   P:0B18          sec56k3
RESTOREX0........int   P:0BCE          sec56800
RESTOREX0........int   P:0D54          sec56k6
REV..............int     000265                          GLOBAL
RFIFOCMD.........int   P:0826                            GLOBAL
RFS..............int     000003                          GLOBAL
ROE..............int     000005                          GLOBAL
RPLOOP...........int   X:0030                            GLOBAL
RPLOOP...........int   P:0E2C          sec56k3
RPLOOP...........int   P:0E78          sec56800
RPLOOP...........int   P:0E9E          sec56k6
RREAD1...........int   P:054E                            GLOBAL
RREAD2...........int   P:054D                            GLOBAL
RREAD3...........int   P:0555                            GLOBAL
RREADVAL.........int   P:0543                            GLOBAL
RS232............int     000013                          GLOBAL
RSAVE............int   X:0047                            GLOBAL
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 81



RSAVE............int   P:0E43          sec56k3
RSAVE............int   P:0E8F          sec56800
RSAVE............int   P:0EB5          sec56k6
RSAVEBPMR........int   P:0E45          sec56k3
RSAVEBPMR........int   P:0E91          sec56800
RSAVEBPMR........int   P:0EB7          sec56k6
RUNSEQ...........int   P:0362                            GLOBAL
RUNSEQ1..........int   P:0363                            GLOBAL
RUNSEQ2..........int   P:0378                            GLOBAL
RXLOOP...........int   X:0031                            GLOBAL
RXLOOP...........int   P:0E2D          sec56k3
RXLOOP...........int   P:0E79          sec56800
RXLOOP...........int   P:0E9F          sec56k6
RYLOOP...........int   X:0032                            GLOBAL
RYLOOP...........int   P:0E2E          sec56k3
RYLOOP...........int   P:0E7A          sec56800
RYLOOP...........int   P:0EA0          sec56k6
SAMPLE...........int     000103                          GLOBAL
SAVE566..........int   X:0049                            GLOBAL
SAVE5660.........int   P:0D99          sec56k6
SAVEBPMRH........int   P:0DAB          sec56k6
SAVEBPMRL........int   P:0DB2          sec56k6
SAVEM0...........int   P:0B33          sec56k3
SAVEM0...........int   P:0D8E          sec56k6
SAVEM00..........int   P:0DA1          sec56k6
SAVER0...........int   P:0B2F          sec56k3
SAVER0...........int   P:0BDA          sec56800
SAVER0...........int   P:0D8A          sec56k6
SAVER00..........int   P:0D9D          sec56k6
SAVEREG..........int   X:0057                            GLOBAL
SAVETEMP.........int   X:0056                            GLOBAL
SAVEX0...........int   P:0B2B          sec56k3
SAVEX0...........int   P:0BD7          sec56800
SAVEX0...........int   P:0D86          sec56k6
SAV_PIP1.........int   P:067F                            GLOBAL
SAV_PIP2.........int   P:067D                            GLOBAL
SAV_PIP3.........int   P:067C                            GLOBAL
SAV_PIP4.........int   P:0675                            GLOBAL
SAV_PIP5.........int   P:0680                            GLOBAL
SAV_PIP6.........int   P:0686                            GLOBAL
SAV_PIPE.........int   P:0669                            GLOBAL
SCIRX............int     000000                          GLOBAL
SCITX............int     000001                          GLOBAL
SCRATCH..........int   X:0000                            GLOBAL
SDR..............int   P:03AA                            GLOBAL
SEC56800.........int   P:0B3E                            GLOBAL
SEC56K3..........int   P:0999                            GLOBAL
SEC56K6..........int   P:0BDE                            GLOBAL
SELECT...........int     000012                          GLOBAL
SEND2............int   P:03E2                            GLOBAL
SENDCMD..........int   P:03CC                            GLOBAL
SENDDATA.........int   P:0379                            GLOBAL
SENDDATA2........int   P:037C                            GLOBAL
SENDIT...........int   P:03D1                            GLOBAL
SENDIT1..........int   P:03E7                            GLOBAL
SENDITX..........int   P:03D2                            GLOBAL
SENDNXT..........int   P:03DB                            GLOBAL
SENDVAL..........int   P:06EE                            GLOBAL
SEQEXEC..........int   P:0665                            GLOBAL
SEQREAD..........int   P:0687                            GLOBAL
SEQREAD1.........int   P:068D                            GLOBAL
SEQTRACE.........int   P:0642                            GLOBAL
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 82



SEQWREND.........int   P:06D8                            GLOBAL
SEQWRITE.........int   P:06B1                            GLOBAL
SEQWRITE1........int   P:06B7                            GLOBAL
SETACTV..........int   P:08E6                            GLOBAL
SETFLAGS.........int   P:07BE                            GLOBAL
SETFNJR..........int   P:0924                            GLOBAL
SETPOL1..........int   P:0907                            GLOBAL
SETPOLL..........int   P:08F3                            GLOBAL
SETTMS1..........int   P:0084                            GLOBAL
SHIFTDATA........int   P:01C6                            GLOBAL
SHIFTDATA1.......int   P:01C7                            GLOBAL
SHIFTR8..........int   P:0326                            GLOBAL
SHIFTTOG.........int   P:039A                            GLOBAL
SHIFT_EXIT.......int     800001                          GLOBAL
SHIFT_IDLE.......int     C00003                          GLOBAL
SKIP1............int   P:02FF                            GLOBAL
SKIP3............int   P:0301                            GLOBAL
SSI12_24.........int     00000D                          GLOBAL
SSI16_24.........int     00000E                          GLOBAL
STACKERR.........int     000011                          GLOBAL
START............int   P:0000                            GLOBAL
START1...........int   P:0218                            GLOBAL
STATUSBUSY.......int     000008                          GLOBAL
STOP.............int     000001                          GLOBAL
TABLE............int   X:0030                            GLOBAL
TABLE1...........int   P:0DBA                            GLOBAL
TABLE2...........int   P:0DE0                            GLOBAL
TABLE3...........int   P:0E06                            GLOBAL
TABLE4...........int   P:0E2C                            GLOBAL
TABLE5...........int   P:0E52                            GLOBAL
TABLE6...........int   P:0E78                            GLOBAL
TABLE7...........int   P:0E9E                            GLOBAL
TABLE8...........int   P:0EED                            GLOBAL
TABLESET.........int   P:074B                            GLOBAL
TABLESIZ.........int   P:0EEB                            GLOBAL
TARGET_R.........int   P:079B                            GLOBAL
TDE..............int     000006                          GLOBAL
TFS..............int     000002                          GLOBAL
TIMEOUT..........int     000013                          GLOBAL
TMS0.............int     00000D                          GLOBAL
TMS0FLAG.........int     000004                          GLOBAL
TMS1.............int     00000E                          GLOBAL
TMS1FLAG.........int     000005                          GLOBAL
TMSTOGGLE........int   P:0069                            GLOBAL
TMSTOGLE.........int   P:0083                            GLOBAL
TOGLDE...........int   P:078F                            GLOBAL
TOGTRST..........int   P:0778                            GLOBAL
TRAC_1...........int   P:0654                            GLOBAL
TRAC_CONT........int   P:0656                            GLOBAL
TRAC_END.........int   P:0663                            GLOBAL
TRIG1............int   P:0445                            GLOBAL
TRTST............int   P:098F                            GLOBAL
TUE..............int     000004                          GLOBAL
UPPERBYTE........int   P:0343                            GLOBAL
USERMODE.........int   P:0B11          sec56k3
USERMODE.........int   P:0D4D          sec56k6
USERMODE1........int   P:0BC2          sec56800
USERMODE2........int   P:0BC7          sec56800
USRADD...........int   P:020D                            GLOBAL
USRDEL...........int   P:0212                            GLOBAL
WAITACK..........int   P:07BA                            GLOBAL
WAITAK...........int   P:0721                            GLOBAL
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 83



WAITBNJR.........int   P:0937                            GLOBAL
WAITBYTE.........int   P:07CF                            GLOBAL
WAITFRC..........int   P:0755                            GLOBAL
WL0..............int     00000D                          GLOBAL
WL1..............int     00000E                          GLOBAL
WLOOP............int   X:004D                            GLOBAL
WLOOP............int   P:0E49          sec56k3
WLOOP............int   P:0E95          sec56800
WLOOP............int   P:0EBB          sec56k6
WLOOP1...........int   X:0033                            GLOBAL
WLOOP1...........int   P:0E2F          sec56k3
WLOOP1...........int   P:0E7B          sec56800
WLOOP1...........int   P:0EA1          sec56k6
WLOOPVAL.........int   X:004E                            GLOBAL
WLOOPVAL.........int   P:0E4A          sec56k3
WLOOPVAL.........int   P:0E96          sec56800
WLOOPVAL.........int   P:0EBC          sec56k6
WPLOOP...........int   X:0034                            GLOBAL
WPLOOP...........int   P:0E30          sec56k3
WPLOOP...........int   P:0E7C          sec56800
WPLOOP...........int   P:0EA2          sec56k6
WREGSETUP........int   P:0578                            GLOBAL
WRITEX...........int   P:06D7                            GLOBAL
WRITEY...........int   P:06D5                            GLOBAL
WVOFFSET.........int   X:004C                            GLOBAL
WVOFFSET.........int   P:0E48          sec56k3
WVOFFSET.........int   P:0E94          sec56800
WVOFFSET.........int   P:0EBA          sec56k6
WXLOOP...........int   X:0035                            GLOBAL
WXLOOP...........int   P:0E31          sec56k3
WXLOOP...........int   P:0E7D          sec56800
WXLOOP...........int   P:0EA3          sec56k6
WYLOOP...........int   X:0036                            GLOBAL
WYLOOP...........int   P:0E32          sec56k3
WYLOOP...........int   P:0E7E          sec56800
WYLOOP...........int   P:0EA4          sec56k6
X00VAL...........int   P:0D6B          sec56k6
X0VAL............int   P:0B1C          sec56k3
X0VAL............int   P:0BD1          sec56800
X0VAL............int   P:0D58          sec56k6
X0VAL1...........int   X:0050                            GLOBAL
X0VAL1...........int   P:0E4C          sec56k3
X0VAL1...........int   P:0E98          sec56800
X0VAL1...........int   P:0EBE          sec56k6
X1WRITE..........int   P:05AA                            GLOBAL
XFERDAT..........int   P:0387                            GLOBAL
XFERDAT1.........int   P:0388                            GLOBAL
XFERDAT2.........int   P:0393                            GLOBAL
XRDLOOP..........int   P:0ACC          sec56k3
XRDLOOP..........int   P:0B9E          sec56800
XRDLOOP..........int   P:0D02          sec56k6
XREAD............int   P:0489                            GLOBAL
XREAD1...........int   P:04A9                            GLOBAL
XREAD2...........int   P:04A8                            GLOBAL
XREAD3...........int   P:04AC                            GLOBAL
XREAD4...........int   P:04A3                            GLOBAL
XREADDATA........int   P:0494                            GLOBAL
XREADDONE........int   P:04AB                            GLOBAL
XREADPTR.........int   P:0ACA          sec56k3
XREADPTR.........int   P:0B9D          sec56800
XREADPTR.........int   P:0D00          sec56k6
XREADSEQ.........int   X:003F                            GLOBAL
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 84



XREADSEQ.........int   P:0E3B          sec56k3
XREADSEQ.........int   P:0E87          sec56800
XREADSEQ.........int   P:0EAD          sec56k6
XREADVAL.........int   P:049E                            GLOBAL
XREADX...........int   P:0491                            GLOBAL
XWBLKDONE........int   P:0513                            GLOBAL
XWLOOP...........int   P:0AFD          sec56k3
XWLOOP...........int   P:0BBD          sec56800
XWLOOP...........int   P:0D39          sec56k6
XWRITE...........int   P:0502                            GLOBAL
XWRITEBLK........int   P:050B                            GLOBAL
XWRITEDONE.......int   P:05BF                            GLOBAL
XWRITPTR.........int   P:0AF5          sec56k3
XWRITPTR.........int   P:0BB8          sec56800
XWRITPTR.........int   P:0D31          sec56k6
XWRITSEQ.........int   X:0042                            GLOBAL
XWRITSEQ.........int   P:0E3E          sec56k3
XWRITSEQ.........int   P:0E8A          sec56800
XWRITSEQ.........int   P:0EB0          sec56k6
XWRITVAL.........int   P:0AFB          sec56k3
XWRITVAL.........int   P:0BBC          sec56800
XWRITVAL.........int   P:0D37          sec56k6
XWRLOOP..........int   P:0AF7          sec56k3
XWRLOOP..........int   P:0BB9          sec56800
XWRLOOP..........int   P:0D33          sec56k6
XWWLOOP1.........int   X:0054                            GLOBAL
XWWLOOP1.........int   P:0E50          sec56k3
XWWLOOP1.........int   P:0E9C          sec56800
XWWLOOP1.........int   P:0EC2          sec56k6
Y1WRITE..........int   P:05C1                            GLOBAL
YRDLOOP..........int   P:0AD7          sec56k3
YRDLOOP..........int   P:0D0D          sec56k6
YREAD............int   P:04AF                            GLOBAL
YREAD1...........int   P:04D0                            GLOBAL
YREAD2...........int   P:04CF                            GLOBAL
YREAD3...........int   P:04D3                            GLOBAL
YREAD4...........int   P:04CA                            GLOBAL
YREADDATA........int   P:04BB                            GLOBAL
YREADDONE........int   P:04D2                            GLOBAL
YREADPTR.........int   P:0AD5          sec56k3
YREADPTR.........int   P:0D0B          sec56k6
YREADSEQ.........int   X:0040                            GLOBAL
YREADSEQ.........int   P:0E3C          sec56k3
YREADSEQ.........int   P:0E88          sec56800
YREADSEQ.........int   P:0EAE          sec56k6
YREADVAL.........int   P:04C5                            GLOBAL
YWBLKDONE........int   P:0526                            GLOBAL
YWLOOP...........int   P:0B0D          sec56k3
YWLOOP...........int   P:0D49          sec56k6
YWRITE...........int   P:0515                            GLOBAL
YWRITEBLK........int   P:051E                            GLOBAL
YWRITEDONE.......int   P:05D6                            GLOBAL
YWRITPTR.........int   P:0B05          sec56k3
YWRITPTR.........int   P:0D41          sec56k6
YWRITSEQ.........int   X:0043                            GLOBAL
YWRITSEQ.........int   P:0E3F          sec56k3
YWRITSEQ.........int   P:0E8B          sec56800
YWRITSEQ.........int   P:0EB1          sec56k6
YWRITVAL.........int   P:0B0B          sec56k3
YWRITVAL.........int   P:0D47          sec56k6
YWRLOOP..........int   P:0B07          sec56k3
YWRLOOP..........int   P:0D43          sec56k6
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 85



YWWLOOP1.........int   X:0055                            GLOBAL
YWWLOOP1.........int   P:0E51          sec56k3
YWWLOOP1.........int   P:0E9D          sec56800
YWWLOOP1.........int   P:0EC3          sec56k6


Symbol cross-reference listing:

Name             Line number (* is definition)
ACTVMODE.........  188*    981     988   
ADM_ACK..........  104*   1588    1593   
ADM_INT..........  103*   1389    1392    1474    1477   
ADM_REQ..........  102*   1634    1636   
ARCDONE.......... 2828*  
BANGBIT..........  636*    873    3292    3320   
BANGCLK..........  743*    815     836    3309   
BCRDEFAULT.......  313*   1258   
BDDRIN...........  127*   1297    1345    1638   
BDDROUT..........  129*   1656   
BOUT.............  131*   1296    1344   
BPMRHVAL......... 4979*  
BPMRLVAL......... 4985*  
BRKDONE.......... 1480    1482*  
BUSY.............  339*  
BYPASS...........  357*    936    3065    3563   
BYPASS1.......... 1777*  
BYP_BYP..........  529*  
BYP_DBG..........  524*  
BYP_ONC..........  526*  
CHEK32........... 1554    1557*  
CHK24BIT......... 1449    1453*  
CHK32............ 1605*  
CHKACTIVE........  965    1147*  
CHKSERVICE....... 3548*   5257   
CHK_AK........... 1390*   1390    1391   
CHK_AK2.......... 1393*   1393   
CIO..............  133*   1346   
CLAMP............  354*  
CLEANUP..........  164*   1480    1535    2014    2067    2112    2159    2198    2218    2337    2371    2394   
CLKCALL..........  678     681*  
CLKCALL1.........  680     682*    704     706   
CLKCALL2.........  702     705*  
CLKTG............ 1809    1811*  
CLKTOG...........  729*  
CLKTOGGLE........  682     714*   1047    1068    1100    1124    1735    1758    1778    3165    3209   
CMDFLAG..........  170*   1673    1696   
CRAVAL...........  309*   1291   
CRBLSB...........  311*    798   
CRBVAL...........  310*   1289   
DATAFIX.......... 2507*  
DATAFLG..........  176*    722     726    1049    1062    1070    1737    1760    1804    1810    1819    3166    3210   
DATATGL2......... 1797    1800*  
DATATOG4......... 1756    1763*  
DATATOG5......... 1799    1803*  
DATATOGL2........ 1137    1140*  
DATATOGL4........ 1795    1822*  
DATATOGL5........ 1139    1141*  
DATATOGL6........ 1746    1818*  
DATATOGLE........ 1793*  
DATATOGLE1....... 1794*   3170   
DBG_BYP..........  520*  
DBG_DBG..........  531*  
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 86



DBG_NUL..........  511*  
DBG_OK...........  519*  
DEBUG............  341*  
DEBUGMODE........  160*    939     987    1200    1494    1939    1989    2808    2814    2889    2955    2975    2991    3042   
                  3064    3125    3245    3262    3268    3335    3374    3391    3396    3444    3472   
DEBUGREQ.........  117*   2801    2812    2885    2887    2938    2941    2984    2987    3072    3075    3424    3427    3476   
                  3479   
DEBUGSTAT........  196*  
DEBUG_R..........  356*   2964    3022    3024    3080    3433    3488    3574   
DEBUG_REQ........  533*  
DEV561K..........  180*  
DEV563K..........  181*  
DEV568K..........  183*  
DEV56K...........  179*  
DEV56L1K.........  182*  
DEV96K...........  178*  
DIR..............  105*   1639    1650   
DOCMD............ 1322*  
DOMORE........... 2744    2746*  
DONE1............ 2173*  
DONOTDO.......... 2743    2745    2747    2749*  
DOSTAT........... 3333    3349*  
DSCK.............  118*    715     729     732     756     772    1805    1811    1814   
DSI..............  120*    643     647     748     752    1093    1097    1108    1112    1138    1140    1777    1798    1800   
DSO..............  119*    687     718     760    1808   
DUMB_CMD.........  358*   2461   
ENABLE_ONCE......  534*  
ENDARC........... 2851    2855*  
ENDBP............ 3285    3289*  
ENDCMD........... 3579*  
ENDPOLL.......... 1188    1209    1221*  
ENDREAD.......... 2629    2650*  
ENDROM........... 2832    5279*  
ENDSEC4.......... 4161*  
ENDSEC6.......... 4437*  
ENDSEC7.......... 5052*  
ENDWRITE......... 2674    2696*  
ENDZO............ 3298    3302*  
EXIT_IDLE........  323*    656    1021    1882    3566   
EXOVERLAY........ 2900*   5244   
EXOVERLAY2....... 2907    2919*  
EXTEST...........  349*  
EX_PULLUP........  352*  
E_ONCE...........  355*    934    3031    3086    3367    3439    3468    3481    3494   
FILLTDI..........  828*    872   
FILLTDI1.........  833*    838   
FILLTDO..........  810*    886     892     898    3161    3205   
FILLTDO1.........  811*    816   
FORCEB........... 2885*   5243   
FORCER........... 2793*   5242   
FORCER1.......... 2800    2802*  
FORCER4.......... 2869    2872*  
GBYTE1........... 1592*   1592   
GET16............ 1450    1451    1454    1553    1555    1558    1560    1568*   2613    2619    2658    2664    2900    2903   
GET16B2.......... 1904    1906*  
GET24............ 1557    1562*   2675    2908   
GET32............ 1556    1558*  
GET8............. 1563    1572*  
GETARC........... 2799    2826*  
GETARG........... 1436    1438    1448*   2285    2289    2321    2325   
GETBYTE.......... 1349    1569    1572    1586*   1586    2418    2421    2482    2486    2530    2625    2670    2711    2758   
                  2760    2795    2803    2826    2929    2956    3012    3028    3062    3076    3279    3359    3365    3419   
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 87



                  3437    3464    3480    3525    3526    3530    3532   
GETCMD........... 1313    1339*   1347    1348    1358    1365   
GETIT............ 1707    1893*  
GETLWORD......... 1418    1452    1453    1553*   1919    1929    1959    1969    2179    2358    3111    3118   
GETOCMD.......... 1542*  
GETOREG.......... 3848*   5077   
GETOREG.......... 4236*   5130   
GETOREG.......... 4676*   5181   
GETOSR........... 2431    2456*  
GETOSR1.......... 2458    2473*  
GETPREG.......... 3625*  
GETPREG.......... 4179*  
GETPREG.......... 4453*  
GETREG...........  267*   2245   
GETREG........... 5075*  
GETREG........... 5128*  
GETREG........... 5179*  
GETREST.......... 1559*   1564   
GO1.............. 1921    1924    1927*  
GO11............. 1962    1966*  
GO2.............. 1931    1934    1937*  
GO21............. 1961    1964    1967*  
GO3.............. 1923    1945*  
GO31............. 1968*   1997   
GO4.............. 1922    1926*  
GO41............. 1972    1976*  
GO5.............. 1933    1949*  
GO51............. 1971    1974    1977*  
GO6.............. 1932    1936*  
GO61............. 1978*   2001   
GO71............. 1963    1995*  
GO81............. 1973    1999*  
GOCMD............ 1916*   5220   
GODELAY.......... 1956*   5221   
GODELAY1......... 1984    1988*  
GOIDLE........... 1882*   2463    3082    3088    3186    3226    3490    3496   
GOO1............. 1928*   1947   
GOO2............. 1938*   1951   
GORETRN.......... 1986    1990*  
GOSEQ............  280*   1916    1956   
GOSEQ............ 5088*  
GOSEQ............ 5141*  
GOSEQ............ 5192*  
GOSEQ2...........  286*   3108   
GOSEQ2........... 5094*  
GOSEQ2........... 5147*  
GOSEQ2........... 5198*  
GOTCMD........... 1349*  
HAWK_NJR......... 3430    3476*  
HAWK_R........... 3019    3072*  
HIGHZ............  353*  
HND_SHK.......... 1328    1384*   1496   
HOSTBRK..........  566     580    1473*  
HSTBRK0.......... 1473    1474*  
HSTBRK1.......... 1475*   1475    1476   
HSTBRK2.......... 1478*   1478   
H_ACK............   96*   1635    1637   
H_BRK............  115*   1495    1497    3508    3514   
H_REQ............   97*   1348    1586    1592   
IDCODE...........  351*  
IDLE_SDR.........  322*    852     856     860     884     890     896    1783    3293   
IDLE_SIR.........  324*    940    3084    3492   
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 88



IF0..............   81*  
IF1..............   80*  
ILLEGERR.........  185*    586   
INITSEQ.......... 1401    1435*   2032    2082    2127    2178   
INT_ACK..........   95*   1390    1393    1475    1478   
JBREAK........... 2955*   5246   
JBREAK1.......... 2966*   2967   
JBREAKWAIT2...... 2989*   2989   
JFORCER.......... 3011    3419*  
JGO1............. 3112    3114    3116*   3131   
JGO2............. 3119    3121    3123*   3136   
JGO3............. 3113    3131*  
JGO4............. 3115*   3132   
JGO5............. 3120    3136*  
JGO6............. 3122*   3137   
JGOCMD........... 3108*   5248   
JGOO1............ 3117*   3135   
JGOO2............ 3124*   3142   
JIRDATA..........  383*  
JIRLEN........... 3525*   5256   
JIRTABLE.........  382*    995    1270    3529   
JIRTABLEp........  381*   1268   
JISSUE...........  936*   2966    3026    3033    3067    3369    3441    3470    3483    3565    3576   
JISSUE2..........  938*   3436   
JMPTABL..........  301*   1301    1368   
JREADSB..........  934*   1199    1226    1690    2969    3036    3061    3068    3247    3334    3352    3376    3443    3471   
                  3573   
JREADSB1.........  944    1020*  
JRESET........... 2929*   5245   
JRESET_IDL.......  326*   1182    2933    2962    3020    3431    3465    3561    3571   
JRESET_SIR.......  327*   3077    3281    3485   
JTABLSZ.......... 1303    5264*  
JTAGCN1.......... 3308*   3317   
JTAGCNT.......... 3279*   5251   
JTAGCOM1......... 1676    1681*  
JTAGCOM2......... 1688*  
JTAGCOM3......... 1689*   1691   
JTAGCOM9......... 1691*  
JTAGDEV..........  166*   1421    2583   
JTAGFLAG.........  187*   1473    2770    2775    2848    2860   
JTAGLAST.........  202*    952     956    1054    1115   
JTAGPORT.........  106*   2847    2859    2983    2988    3013    3420   
JTAGPRP..........  602*    865   
JTAGTDI..........  198*    606     610     639     744    3290    3308   
JTAGTDIV.........  199*    617     626     659    3291   
JTAGTDO..........  200*    691     695     764     768    3310   
JTAGTDOV.........  201*    650     653     683   
JTAG_RESET.......  325*  
JXFER............  783     787     791     796*  
JXFER12..........  789*  
JXFER16..........  785*    858     893   
JXFER24..........  781*    854     887   
JXFER8...........  793*    862     899    3283    3296   
J_BYPASS.........  536*  
J_RDWR...........  970    1036*  
J_RDWR1.......... 1042*  
J_RDWR2.......... 1045    1052*  
J_WR............. 1083*  
J_WR1............ 1015    1084*  
J_WR6............ 1087    1103*  
LASTCOMMAND...... 1353    5261*  
LGETCMD.......... 1301*  
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 89



LGETCMD1......... 1304    1308*   1330    1482   
LOADADDR.........  197*  
LOADSEQ.......... 1435    1462*   1514    1918    1958    2012    2037    2065    2087    2110    2132    2157    2196    2216   
                  2241    2283    2320    2335    2344    2369    2377    2392    2400    2417    2579    3110   
LOADSEQ1......... 1464*   1466   
LOADTAB.......... 2834    2869*  
LOCREGVAL........  292*   2301   
LOCREGVAL........ 5103*  
LOCREGVAL........ 5156*  
LOCREGVAL........ 5206*  
LOWERBYTE........ 1611    1617    1623*  
LOWERBYTE1....... 1622    1625*  
LP16NJR.......... 3451*  
LP16R............ 3041    3047*  
M00VAL........... 4973*  
M0VAL............ 4132*   5106   
M0VAL............ 4950*   5209   
M0VAL1...........  295*  
M0VAL1........... 5106*  
M0VAL1........... 5159*  
M0VAL1........... 5209*  
MBYPASS..........  376*  
MCLAMP...........  373*  
MDEBUG_R.........  375*  
MDUMB_CMD........  377*  
MEXTEST..........  368*  
MEX_PULLUP.......  371*  
ME_ONCE..........  374*  
MHIGHZ...........  372*  
MIDCODE..........  370*  
MISC_RD.......... 2711*   5240   
MISC_WR.......... 2758*   5241   
MISC_WR1......... 2774    2776*  
MKIN............. 1394    1638*  
MKUSRLST......... 3329*  
MLOOP............ 1313*  
MONITOR1.........  558    1251*  
MREAD_OSCR.......  378*  
MSAMPLE..........  369*  
MWRLOOP.......... 4351*   5142   
NOREST1.......... 2269    2271*  
NORMAL...........  337*  
NOSAVE........... 2238    2244*  
NOSKIP........... 1525    1526    1529*  
NOT16BIT......... 2511    2522*  
NOT566........... 2051    2056*  
OFFSET...........  288*   1400    2031    2081    2126    2177   
OFFSET........... 5099*  
OFFSET........... 5152*  
OFFSET........... 5202*  
OGETREG..........  269*   2416   
OGETREG.......... 5077*  
OGETREG.......... 5130*  
OGETREG.......... 5181*  
OISSUE1..........  855     859     863*  
OISSUE16.........  856*   1874    1880   
OISSUE24.........  852*   1875   
OISSUE8..........  860*   1850    3159    3203   
ONCETYPE......... 2846    2859*  
ONC_BYP..........  522*  
ONC_NUL..........  515*  
ONC_ONC..........  530*  
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 90



OPIPE............  270*   2578   
OPIPE............ 5078*  
OPIPE............ 5131*  
OPIPE............ 5182*  
OPREAD........... 3972*   5082    5099   
OPREAD........... 4299*   5135    5152   
OPREAD........... 4771*   5186    5202   
OPUTREG..........  271*   2483   
OPUTREG.......... 5079*  
OPUTREG.......... 5132*  
OPUTREG.......... 5183*  
OPWRITE.......... 4036*   5085    5100    5101    5107   
OPWRITE.......... 4328*   5138    5153    5154    5160   
OPWRITE.......... 4848*   5189    5203    5204    5210   
OPWRL4........... 2307    2310*  
OPWRL5........... 2305    2307*  
OPWRL6........... 2304    2306    2308*  
OREAD1...........  888     894     901*  
OREAD16..........  890*   1895    1897   
OREAD2...........  911     912     918*  
OREAD24..........  884*   1896   
OREAD3...........  919     921*  
OREAD8...........  896*  
OREG_RD.......... 2416*   5233   
OREG_RD1......... 2436    2445*  
OREG_RD2......... 2440    2441    2443*   2451   
OREG_RD3......... 2433    2434    2436*  
OREG_RD4......... 2432    2434*  
OREG_RD5......... 2442*  
OREG_RD6......... 2438    2449*  
OREG_RD7......... 2437    2439*  
OREG_WR.......... 2482*   5234   
ORESET...........  116*   2802    2805    3016    3029    3063    3083    3098    3423    3438    3467   
OVLYTABL......... 1302    5219*   5261    5264    5277   
OVLYTABL1........ 5260*   5261    5264   
OWRIT0........... 2491    2494*  
OWRIT1........... 2492    2493    2496*  
OWRIT2........... 2495    2497*  
OWRITE........... 2487    2501*  
OXREAD........... 3988*   5083   
OXREAD........... 4313*   5136   
OXREAD........... 4800*   5187   
OXWRITE.......... 4058*   5086    5108   
OXWRITE.......... 4358*   5139    5161    5162   
OXWRITE.......... 4876*   5190    5211   
OYREAD........... 4004*   5084   
OYREAD........... 4816*   5188   
OYWRITE.......... 4080*   5087    5109   
OYWRITE.......... 4898*   5191    5212   
OnCEBRK.......... 1494*  
OnCEREQ..........  162*    655     924    1498    2794    2811    2813    2886    2888    2976    2989    2992    3040    3043   
                  3445    3509   
P1WRITE.......... 2331*   5230   
P2WRITE.......... 2352    2355*  
PB1.............. 1635*   1635   
PB2.............. 1637*   1637   
PIPE............. 3867*   5078   
PIPE............. 4243*   5131   
PIPE............. 4687*   5182   
PLLDEFAULT.......  314*   2861   
PLLIN............  137*   1293   
POLL566.......... 3036*   3037   
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 91



POLLCMD.......... 3243*   5250   
POLLENABLE.......  192*   1339    3353    3510    3515   
POLLNJR.......... 3443*  
POLLOFF.......... 1205    3514*   5255   
POLLON........... 3508*   5254   
POLLSTAT.........  174*  
POLLSTATUS.......  169*    658     980    1689    1709    1884   
POLLUSR.......... 1157*   1339   
PRDLOOP.......... 3978*   5068   
PRDLOOP.......... 4303*   5121   
PRDLOOP.......... 4777*   5172   
PREAD............ 2008*   5222   
PREAD1........... 2043    2044    2046*   2055    2057   
PREAD11.......... 2010    2012*  
PREAD2........... 2045*  
PREAD22.......... 2018    2021*  
PREAD3........... 2041    2050*  
PREAD4........... 2040    2042*  
PREADDATA........ 2017    2031*  
PREADDONE........ 2035    2038    2048*  
PREADPTR......... 3976*   5099   
PREADPTR......... 4302*   5152   
PREADPTR......... 4775*   5202   
PREADSEQ.........  274*   2015   
PREADSEQ......... 5082*  
PREADSEQ......... 5135*  
PREADSEQ......... 5186*  
PREADVAL......... 2033    2039*  
PUT16............ 1601    1613*   2742   
PUT24............ 1610*   2648   
PUT32............ 1607*   2741   
PUTBYTE.......... 1609    1612    1615    1618    1633*   2746    2748   
PUTDATA.......... 1387    1633    1649*  
PUTLWORD......... 1601*   2046    2096    2141    2266    2443    2593    2603    3192    3233    3263    3269    3326    3550   
                  3555   
PUTOREG.......... 3900*   5079   
PUTOREG.......... 4259*   5132   
PUTOREG.......... 4713*   5183   
PUTPREG.......... 3736*   5076   
PUTPREG.......... 4205*   5129   
PUTPREG.......... 4564*   5180   
PUTREG...........  268*   2299   
PUTREG........... 5076*  
PUTREG........... 5129*  
PUTREG........... 5180*  
PWBLKDONE........ 2164    2165    2169*  
PWBLKDONE1....... 2169    2172*  
PWDLOOP.......... 4028*   5071    5089   
PWDLOOP.......... 4840*   5175    5193   
PWLOOP........... 4048*   5107   
PWLOOP........... 4336*   5160   
PWLOOP........... 4866*   5210   
PWRIT5660........ 2163    2177*   2341   
PWRIT5661........ 2179*  
PWRIT5662........ 2349    2358*  
PWRITE........... 2153*   5223   
PWRITE1.......... 2155    2157*  
PWRITE11......... 2333    2335*  
PWRITEDONE....... 2342    2346    2352*  
PWRITPTR......... 4040*  
PWRITPTR......... 4331*  
PWRITPTR......... 4852*  
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 92



PWRITSEQ.........  277*   2160    2338   
PWRITSEQ......... 5085*  
PWRITSEQ......... 5138*  
PWRITSEQ......... 5189*  
PWRITVAL......... 4046*   5100    5102   
PWRITVAL......... 4335*   5153    5155   
PWRITVAL......... 4858*   5203    5205   
PWRLOOP.......... 4042*   5072    5101    5102   
PWRLOOP.......... 4332*   5125    5154    5155   
PWRLOOP.......... 4854*   5176    5204    5205   
PWRNJR........... 3499*  
PWRNJR1.......... 3501*  
PWRUP............ 3091*  
PWRUP1........... 3093*  
PWWLOOP1.........  296*   2166   
PWWLOOP1......... 5107*  
PWWLOOP1......... 5160*  
PWWLOOP1......... 5210*  
R00VAL........... 4967*  
R0VAL............ 4126*   5105   
R0VAL............ 4403*   5158   
R0VAL............ 4944*   5208   
R0VAL1...........  294*  
R0VAL1........... 5105*  
R0VAL1........... 5158*  
R0VAL1........... 5208*  
R3FIFO........... 3153*  
R3FIFO2.......... 3166    3169*  
R3FIFO5.......... 3182    3185*  
R3FIFOEND........ 3156    3188*  
R3FIFOSND........ 3189    3194*  
R6FIFO........... 3150    3197*  
R6FIFO1.......... 3210    3213*  
R6FIFO5.......... 3222    3225*  
R6FIFOEND........ 3200    3228*  
R6FIFOSND........ 3230    3235*  
RDF..............   74*    870     909   
RDONE............ 2634    2636    2638*  
RDOS............. 3560*   3577   
READPTR.......... 2715    2731*  
READREV.......... 2714    2723*  
READSTAT......... 2718    2726*  
READ_OSCR........  359*  
RECEIVE.......... 1900*   2462   
REDUN1........... 1409*   2034    2084    2129   
REDUN3........... 1420    1423*  
REDUN4........... 1421*  
REDUN5........... 1421    1425*  
REDUNDANT........ 1408*  
REDUNDN3......... 1419*   1437   
REDUNDNT2........ 1400*   2162    2202    2222    2340    2374    2397   
REDUNDNT3........ 1403    1418*   2311    2348    2381    2404    2498   
REGBACK.......... 1481    1509*   2021    2071    2116    2172    2208    2228    2270    2355    2384    2407   
REGBACK1......... 1505*   2019    2170    2353   
REGBACK2......... 1508    1514*  
REGBACK4......... 1511    1513*  
REGBAK7.......... 1517    1520*  
REGRDSEQ.........  272*   2244   
REGRDSEQ......... 5080*  
REGRDSEQ......... 5133*  
REGRDSEQ......... 5184*  
REGREAD.......... 3950*   5080   
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 93



REGREAD.......... 4280*   5133   
REGREAD.......... 4749*   5184   
REGROPCOD........ 3951*  
REGROPCOD........ 4750*  
REGSETUP......... 2246    2283*  
REGVAL........... 3964*   5103   
REGVAL........... 4293*   5156   
REGVAL........... 4763*   5206   
REGWOPCOD........ 3961*  
REGWOPCOD........ 4760*  
REGWRITE......... 3960*   5081    5103   
REGWRITE......... 4290*   5134    5156   
REGWRITE......... 4759*   5185    5206   
REGWRSEQ.........  273*   2298   
REGWRSEQ......... 5081*  
REGWRSEQ......... 5134*  
REGWRSEQ......... 5185*  
REG_RD........... 2238*   5228   
REG_RD0.......... 2260    2262*  
REG_RD1.......... 2251    2252    2255*  
REG_RD2.......... 2254    2258*  
REG_RD3.......... 2250    2252*  
REG_RDONE........ 2248    2268*  
REG_RDX.......... 2286*  
REG_WDONE........ 2302    2314*  
REG_WR........... 2298*   5229   
REPSEQ...........  281*  
REPSEQ........... 5089*  
REPSEQ........... 5142*  
REPSEQ........... 5193*  
RESET............   70*  
RESET_IDLE.......  330*   2942   
RESTOR56.........  284*   1505   
RESTOR566........ 4957*   5196   
RESTORBPMR....... 5092*  
RESTORBPMR....... 5145*  
RESTORBPMR....... 5196*  
RESTORE..........  282*   1513   
RESTORE.......... 5090*  
RESTORE.......... 5143*  
RESTORE.......... 5194*  
RESTOREX0........ 4116*   5090    5104    5105    5106   
RESTOREX0........ 4396*   5143    5157    5158   
RESTOREX0........ 4934*   5194    5207    5208    5209   
REV..............   34*   1252    2723   
RFIFOCMD......... 3150*   5249   
RFS..............   78*  
ROE..............   76*  
RPLOOP...........  260*   2016   
RPLOOP........... 5068*  
RPLOOP........... 5121*  
RPLOOP........... 5172*  
RREAD1........... 2263    2264    2266*   2277   
RREAD2........... 2265*  
RREAD3........... 2261    2275*  
RREADVAL......... 2259*  
RS232............   94*  
RSAVE............  283*   2008    2063    2108    2153    2194    2214    2239    2331    2367    2390   
RSAVE............ 5091*  
RSAVE............ 5144*  
RSAVE............ 5195*  
RSAVEBPMR........ 5093*  
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 94



RSAVEBPMR........ 5146*  
RSAVEBPMR........ 5197*  
RUNSEQ........... 1408    1534    1672*   1938    1988    2013    2039    2066    2089    2111    2134    2158    2183    2197   
                  2217    2242    2259    2312    2336    2350    2370    2382    2393    2405    2499    2581    3053    3096   
                  3124    3457    3504   
RUNSEQ1.......... 1673*   1692    2167    2206    2226    2427    2549    2569   
RUNSEQ2.......... 1689    1692*  
RXLOOP...........  261*   2069   
RXLOOP........... 5069*  
RXLOOP........... 5122*  
RXLOOP........... 5173*  
RYLOOP...........  262*   2114   
RYLOOP........... 5070*  
RYLOOP........... 5123*  
RYLOOP........... 5174*  
SAMPLE...........  350*  
SAVE566..........  285*   2011    2156    2334   
SAVE5660......... 5017*   5197   
SAVEBPMRH........ 5035*  
SAVEBPMRL........ 5042*  
SAVEM0........... 4148*  
SAVEM0........... 5001*  
SAVEM00.......... 5025*  
SAVER0........... 4144*  
SAVER0........... 4417*  
SAVER0........... 4997*  
SAVER00.......... 5021*  
SAVEREG..........  305*   1507    1509    1536    2009    2064    2109    2154    2195    2215    2240    2332    2368    2391   
                  2426    2428    2580    3153    3197    3246   
SAVETEMP.........  304*   2828   
SAVEX0........... 4140*   5091   
SAVEX0........... 4414*   5144   
SAVEX0........... 4993*   5195   
SAV_PIP1......... 2588    2595*  
SAV_PIP2......... 2590    2591    2593*  
SAV_PIP3......... 2592*  
SAV_PIP4......... 2583    2588*  
SAV_PIP5......... 2585    2600*  
SAV_PIP6......... 2600    2605*  
SAV_PIPE......... 2578*   5237   
SCIRX............  113*  
SCITX............  114*  
SCRATCH..........  253*  
SDR.............. 1783*   2460    3160    3204   
SEC56800......... 4164*   5128   
SEC56K3.......... 3612*   5075   
SEC56K6.......... 4440*   5179   
SELECT...........   93*   1347    1391    1476   
SEND2............ 1865    1873*  
SENDCMD.......... 1698    1845*  
SENDDATA......... 1685    1696*  
SENDDATA2........ 1696    1704*  
SENDIT........... 1706    1859*  
SENDIT1.......... 1861    1877*  
SENDITX.......... 1708    1860*  
SENDNXT.......... 1863    1866*  
SENDVAL.......... 2721    2724    2729    2737*  
SEQEXEC.......... 2567*   5236   
SEQREAD.......... 2613*   5238   
SEQREAD1......... 2619*  
SEQTRACE......... 2530*   5235   
SEQWREND......... 2690    2692    2694*  
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 95



SEQWRITE......... 2658*   5239   
SEQWRITE1........ 2664*  
SETACTV.......... 3359*   5252   
SETFLAGS......... 3038    3042*   3057    3099   
SETFNJR.......... 3444*   3461    3505   
SETPOL1.......... 3401*  
SETPOLL.......... 3374*  
SETTMS1..........  677     702*  
SHIFTDATA........ 1046    1053    1136*   1734    1742    1757   
SHIFTDATA1....... 1137*  
SHIFTR8.......... 1578*   1905   
SHIFTTOG......... 1753*  
SHIFT_EXIT.......  328*    651    1059    1119    1744   
SHIFT_IDLE.......  329*    921   
SKIP1............ 1524    1527    1531*  
SKIP3............ 1520    1534*  
SSI12_24.........   86*  
SSI16_24.........   85*  
STACKERR.........  184*    557   
START............  555*  
START1...........  555    1250*   3568   
STATUSBUSY.......  172*    938     986    1691    2967    3037   
STOP.............  338*  
TABLE............  259*   2868   
TABLE1........... 5056*   5263    5268   
TABLE2........... 5058*   5263    5269   
TABLE3........... 5060*   5270   
TABLE4........... 5062*   5271   
TABLE5........... 5114*   5272   
TABLE6........... 5116*   5273   
TABLE7........... 5167*   5276   
TABLE8........... 2829    2832    5266*  
TABLESET......... 2837    2867*  
TABLESIZ......... 2867    5263*  
TARGET_R......... 3011*   5247    5253   
TDE..............   75*    869     908    3286    3299   
TFS..............   79*  
TIMEOUT..........  186*  
TMS0.............  108*    679     681   
TMS0FLAG.........  167*    671     677    3280   
TMS1.............  109*    703     705   
TMS1FLAG.........  168*  
TMSTOGGLE........  652     657     670*    853     857     861     885     891     897     922     941    1022    1060    1120   
                  1183    1745    1784    1883    2934    2943    2963    3021    3078    3085    3282    3294    3432    3466   
                  3486    3493    3562    3567    3572   
TMSTOGLE.........  675     701*  
TOGLDE........... 2983*  
TOGTRST.......... 2932    2937*   3570   
TRAC_1........... 2541    2543*  
TRAC_CONT........ 2538    2540    2542    2545*  
TRAC_END......... 2533    2557*  
TRIG1............ 1981*   1987   
TRTST............ 3570*  
TUE..............   77*  
UPPERBYTE........ 1608    1614    1620*  
USERMODE......... 4104*   5088    5094   
USERMODE......... 4922*   5192    5198   
USERMODE1........ 4378*   5141   
USERMODE2........ 4385*   5147   
USRADD........... 1234*   1940    3069    3126    3339    3473   
USRDEL........... 1204    1244*   2815    2977    2993    3044    3343    3448   
WAITACK.......... 3040*   3040   
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 96



WAITAK........... 2807    2811*   2811   
WAITBNJR......... 3429    3464*  
WAITBYTE......... 3018    3060*  
WAITFRC.......... 2886*   2886   
WL0..............   88*    781     785     789     793   
WL1..............   87*    782     786     790     794   
WLOOP............  290*  
WLOOP............ 5101*  
WLOOP............ 5154*  
WLOOP............ 5204*  
WLOOP1...........  263*   2200    2220   
WLOOP1........... 5071*  
WLOOP1........... 5124*  
WLOOP1........... 5175*  
WLOOPVAL.........  291*   2345    2378    2401   
WLOOPVAL......... 5102*  
WLOOPVAL......... 5155*  
WLOOPVAL......... 5205*  
WPLOOP...........  264*   2339   
WPLOOP........... 5072*  
WPLOOP........... 5125*  
WPLOOP........... 5176*  
WREGSETUP........ 2300    2320*  
WRITEX........... 2687    2693*  
WRITEY........... 2688    2691*  
WVOFFSET.........  289*   1402   
WVOFFSET......... 5100*  
WVOFFSET......... 5153*  
WVOFFSET......... 5203*  
WXLOOP...........  265*   2373   
WXLOOP........... 5073*  
WXLOOP........... 5126*  
WXLOOP........... 5177*  
WYLOOP...........  266*   2396   
WYLOOP........... 5074*  
WYLOOP........... 5127*  
WYLOOP........... 5178*  
X00VAL........... 4961*  
X0VAL............ 4120*   5104   
X0VAL............ 4399*   5157   
X0VAL............ 4938*   5207   
X0VAL1...........  293*  
X0VAL1........... 5104*  
X0VAL1........... 5157*  
X0VAL1........... 5207*  
X1WRITE.......... 2367*   5231   
XFERDAT.......... 1724*   1902    3081    3087    3489    3495   
XFERDAT1......... 1730*   3176    3215   
XFERDAT2......... 1733    1740*  
XRDLOOP.......... 3994*   5069   
XRDLOOP.......... 4317*   5122   
XRDLOOP.......... 4806*   5173   
XREAD............ 2063*   5224   
XREAD1........... 2093    2094    2096*   2102   
XREAD2........... 2095*  
XREAD3........... 2091    2100*  
XREAD4........... 2090    2092*  
XREADDATA........ 2070    2081*  
XREADDONE........ 2085    2088    2098*  
XREADPTR......... 3992*  
XREADPTR......... 4316*  
XREADPTR......... 4804*  
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 97



XREADSEQ.........  275*   2068   
XREADSEQ......... 5083*  
XREADSEQ......... 5136*  
XREADSEQ......... 5187*  
XREADVAL......... 2083    2089*  
XREADX........... 2070*  
XWBLKDONE........ 2203    2204    2208*  
XWLOOP........... 4070*   5108   
XWLOOP........... 4366*   5161    5162   
XWLOOP........... 4888*   5211   
XWRITE........... 2194*   5225   
XWRITEBLK........ 2202*  
XWRITEDONE....... 2375    2379    2384*  
XWRITPTR......... 4062*  
XWRITPTR......... 4361*  
XWRITPTR......... 4880*  
XWRITSEQ.........  278*   2199    2372   
XWRITSEQ......... 5086*  
XWRITSEQ......... 5139*  
XWRITSEQ......... 5190*  
XWRITVAL......... 4068*  
XWRITVAL......... 4365*  
XWRITVAL......... 4886*  
XWRLOOP.......... 4064*   5073   
XWRLOOP.......... 4362*   5126   
XWRLOOP.......... 4882*   5177   
XWWLOOP1.........  297*   2205   
XWWLOOP1......... 5108*  
XWWLOOP1......... 5161*  
XWWLOOP1......... 5211*  
Y1WRITE.......... 2390*   5232   
YRDLOOP.......... 4010*   5070   
YRDLOOP.......... 4822*   5174   
YREAD............ 2108*   5226   
YREAD1........... 2138    2139    2141*   2147   
YREAD2........... 2140*  
YREAD3........... 2136    2145*  
YREAD4........... 2135    2137*  
YREADDATA........ 2115    2126*  
YREADDONE........ 2130    2133    2143*  
YREADPTR......... 4008*  
YREADPTR......... 4820*  
YREADSEQ.........  276*   2113   
YREADSEQ......... 5084*  
YREADSEQ......... 5137*  
YREADSEQ......... 5188*  
YREADVAL......... 2128    2134*  
YWBLKDONE........ 2223    2224    2228*  
YWLOOP........... 4092*   5109   
YWLOOP........... 4910*   5212   
YWRITE........... 2214*   5227   
YWRITEBLK........ 2222*  
YWRITEDONE....... 2398    2402    2407*  
YWRITPTR......... 4084*  
YWRITPTR......... 4902*  
YWRITSEQ.........  279*   2219    2395   
YWRITSEQ......... 5087*  
YWRITSEQ......... 5140*  
YWRITSEQ......... 5191*  
YWRITVAL......... 4090*  
YWRITVAL......... 4908*  
YWRLOOP.......... 4086*   5074   
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 98



YWRLOOP.......... 4904*   5178   
YWWLOOP1.........  298*   2225   
YWWLOOP1......... 5109*  
YWWLOOP1......... 5162*  
YWWLOOP1......... 5212*  

























































Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 99



                         Memory Utilization Report


X Memory

Start  End  Length  Type    Label             Section           Overlay Address
0000   002F     48  CONST   SCRATCH
0030   0030      1  CONST   RPLOOP
0031   0031      1  CONST   RXLOOP
0032   0032      1  CONST   RYLOOP
0033   0033      1  CONST   WLOOP1
0034   0034      1  CONST   WPLOOP
0035   0035      1  CONST   WXLOOP
0036   0036      1  CONST   WYLOOP
0037   0037      1  CONST   GETREG
0038   0038      1  CONST   PUTREG
0039   0039      1  CONST   OGETREG
003A   003A      1  CONST   OPIPE
003B   003B      1  CONST   OPUTREG
003C   003C      1  CONST   REGRDSEQ
003D   003D      1  CONST   REGWRSEQ
003E   003E      1  CONST   PREADSEQ
003F   003F      1  CONST   XREADSEQ
0040   0040      1  CONST   YREADSEQ
0041   0041      1  CONST   PWRITSEQ
0042   0042      1  CONST   XWRITSEQ
0043   0043      1  CONST   YWRITSEQ
0044   0044      1  CONST   GOSEQ
0045   0045      1  CONST   REPSEQ
0046   0046      1  CONST   RESTORE
0047   0047      1  CONST   RSAVE
0048   0048      1  CONST   RESTOR56
0049   0049      1  CONST   SAVE566
004A   004A      1  CONST   GOSEQ2
004B   004B      1  CONST   OFFSET
004C   004C      1  CONST   WVOFFSET
004D   004D      1  CONST   WLOOP
004E   004E      1  CONST   WLOOPVAL
004F   004F      1  CONST   LOCREGVAL
0050   0050      1  CONST   X0VAL1
0051   0051      1  CONST   R0VAL1
0052   0052      1  CONST   M0VAL1
0053   0053      1  CONST   PWWLOOP1
0054   0054      1  CONST   XWWLOOP1
0055   0055      1  CONST   YWWLOOP1
0056   0056      1  CONST   SAVETEMP
0057   FFFF  65449  UNUSED


P Memory

Start  End  Length  Type    Label             Section           Overlay Address
0000   000B     12  CODE    START
000C   001D     18  CONST 
001E   001F      2  CODE  
0020   003D     30  CONST 
003E   003F      2  CODE  
0040   0998   2393  CODE    JTAGPRP
0999   0A00    104  CONST   GETPREG           sec56k3
0A01   0A78    120  CONST   PUTPREG           sec56k3
0A79   0AAE     54  CONST   PIPE              sec56k3
0AAF   0AAF      1  CONST   REGREAD           sec56k3
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 100



0AB0   0AB3      4  CONST   REGROPCOD         sec56k3
0AB4   0AB4      1  CONST   REGWRITE          sec56k3
0AB5   0AB7      3  CONST   REGWOPCOD         sec56k3
0AB8   0ABA      3  CONST   REGVAL            sec56k3
0ABB   0ABE      4  CONST   OPREAD            sec56k3
0ABF   0AC0      2  CONST   PREADPTR          sec56k3
0AC1   0AC5      5  CONST   PRDLOOP           sec56k3
0AC6   0AC9      4  CONST   OXREAD            sec56k3
0ACA   0ACB      2  CONST   XREADPTR          sec56k3
0ACC   0AD0      5  CONST   XRDLOOP           sec56k3
0AD1   0AD4      4  CONST   OYREAD            sec56k3
0AD5   0AD6      2  CONST   YREADPTR          sec56k3
0AD7   0ADE      8  CONST   YRDLOOP           sec56k3
0ADF   0AE0      2  CONST   PWDLOOP           sec56k3
0AE1   0AE4      4  CONST   OPWRITE           sec56k3
0AE5   0AE6      2  CONST   PWRITPTR          sec56k3
0AE7   0AEA      4  CONST   PWRLOOP           sec56k3
0AEB   0AEC      2  CONST   PWRITVAL          sec56k3
0AED   0AF0      4  CONST   PWLOOP            sec56k3
0AF1   0AF4      4  CONST   OXWRITE           sec56k3
0AF5   0AF6      2  CONST   XWRITPTR          sec56k3
0AF7   0AFA      4  CONST   XWRLOOP           sec56k3
0AFB   0AFC      2  CONST   XWRITVAL          sec56k3
0AFD   0B00      4  CONST   XWLOOP            sec56k3
0B01   0B04      4  CONST   OYWRITE           sec56k3
0B05   0B06      2  CONST   YWRITPTR          sec56k3
0B07   0B0A      4  CONST   YWRLOOP           sec56k3
0B0B   0B0C      2  CONST   YWRITVAL          sec56k3
0B0D   0B10      4  CONST   YWLOOP            sec56k3
0B11   0B17      7  CONST   USERMODE          sec56k3
0B18   0B1B      4  CONST   RESTOREX0         sec56k3
0B1C   0B21      6  CONST   X0VAL             sec56k3
0B22   0B27      6  CONST   R0VAL             sec56k3
0B28   0B2A      3  CONST   M0VAL             sec56k3
0B2B   0B2E      4  CONST   SAVEX0            sec56k3
0B2F   0B32      4  CONST   SAVER0            sec56k3
0B33   0B3D     11  CONST   SAVEM0            sec56k3
0B3E   0B6E     49  CONST   GETPREG           sec56800
0B6F   0B84     22  CONST   PIPE              sec56800
0B85   0B8A      6  CONST   REGREAD           sec56800
0B8B   0B8D      3  CONST   REGWRITE          sec56800
0B8E   0B8F      2  CONST   REGVAL            sec56800
0B90   0B92      3  CONST   OPREAD            sec56800
0B93   0B93      1  CONST   PREADPTR          sec56800
0B94   0B99      6  CONST   PRDLOOP           sec56800
0B9A   0B9C      3  CONST   OXREAD            sec56800
0B9D   0B9D      1  CONST   XREADPTR          sec56800
0B9E   0BA3      6  CONST   XRDLOOP           sec56800
0BA4   0BA6      3  CONST   OPWRITE           sec56800
0BA7   0BA7      1  CONST   PWRITPTR          sec56800
0BA8   0BAA      3  CONST   PWRLOOP           sec56800
0BAB   0BAB      1  CONST   PWRITVAL          sec56800
0BAC   0BB2      7  CONST   PWLOOP            sec56800
0BB3   0BB4      2  CONST   MWRLOOP           sec56800
0BB5   0BB7      3  CONST   OXWRITE           sec56800
0BB8   0BB8      1  CONST   XWRITPTR          sec56800
0BB9   0BBB      3  CONST   XWRLOOP           sec56800
0BBC   0BBC      1  CONST   XWRITVAL          sec56800
0BBD   0BC6     10  CONST   XWLOOP            sec56800
0BC7   0BCD      7  CONST   USERMODE2         sec56800
0BCE   0BD0      3  CONST   RESTOREX0         sec56800
0BD1   0BD4      4  CONST   X0VAL             sec56800
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 101



0BD5   0BD6      2  CONST   R0VAL             sec56800
0BD7   0BD9      3  CONST   SAVEX0            sec56800
0BDA   0BDD      4  CONST   SAVER0            sec56800
0BDE   0C45    104  CONST   GETPREG           sec56k6
0C46   0CB6    113  CONST   PUTPREG           sec56k6
0CB7   0CD7     33  CONST   PIPE              sec56k6
0CD8   0CD8      1  CONST   REGREAD           sec56k6
0CD9   0CDC      4  CONST   REGROPCOD         sec56k6
0CDD   0CDD      1  CONST   REGWRITE          sec56k6
0CDE   0CE0      3  CONST   REGWOPCOD         sec56k6
0CE1   0CE3      3  CONST   REGVAL            sec56k6
0CE4   0CE7      4  CONST   OPREAD            sec56k6
0CE8   0CE9      2  CONST   PREADPTR          sec56k6
0CEA   0CFB     18  CONST   PRDLOOP           sec56k6
0CFC   0CFF      4  CONST   OXREAD            sec56k6
0D00   0D01      2  CONST   XREADPTR          sec56k6
0D02   0D06      5  CONST   XRDLOOP           sec56k6
0D07   0D0A      4  CONST   OYREAD            sec56k6
0D0B   0D0C      2  CONST   YREADPTR          sec56k6
0D0D   0D14      8  CONST   YRDLOOP           sec56k6
0D15   0D16      2  CONST   PWDLOOP           sec56k6
0D17   0D1A      4  CONST   OPWRITE           sec56k6
0D1B   0D1C      2  CONST   PWRITPTR          sec56k6
0D1D   0D20      4  CONST   PWRLOOP           sec56k6
0D21   0D28      8  CONST   PWRITVAL          sec56k6
0D29   0D2C      4  CONST   PWLOOP            sec56k6
0D2D   0D30      4  CONST   OXWRITE           sec56k6
0D31   0D32      2  CONST   XWRITPTR          sec56k6
0D33   0D36      4  CONST   XWRLOOP           sec56k6
0D37   0D38      2  CONST   XWRITVAL          sec56k6
0D39   0D3C      4  CONST   XWLOOP            sec56k6
0D3D   0D40      4  CONST   OYWRITE           sec56k6
0D41   0D42      2  CONST   YWRITPTR          sec56k6
0D43   0D46      4  CONST   YWRLOOP           sec56k6
0D47   0D48      2  CONST   YWRITVAL          sec56k6
0D49   0D4C      4  CONST   YWLOOP            sec56k6
0D4D   0D53      7  CONST   USERMODE          sec56k6
0D54   0D57      4  CONST   RESTOREX0         sec56k6
0D58   0D5D      6  CONST   X0VAL             sec56k6
0D5E   0D63      6  CONST   R0VAL             sec56k6
0D64   0D66      3  CONST   M0VAL             sec56k6
0D67   0D6A      4  CONST   RESTOR566         sec56k6
0D6B   0D70      6  CONST   X00VAL            sec56k6
0D71   0D76      6  CONST   R00VAL            sec56k6
0D77   0D7C      6  CONST   M00VAL            sec56k6
0D7D   0D82      6  CONST   BPMRHVAL          sec56k6
0D83   0D85      3  CONST   BPMRLVAL          sec56k6
0D86   0D89      4  CONST   SAVEX0            sec56k6
0D8A   0D8D      4  CONST   SAVER0            sec56k6
0D8E   0D98     11  CONST   SAVEM0            sec56k6
0D99   0D9C      4  CONST   SAVE5660          sec56k6
0D9D   0DA0      4  CONST   SAVER00           sec56k6
0DA1   0DAA     10  CONST   SAVEM00           sec56k6
0DAB   0DB1      7  CONST   SAVEBPMRH         sec56k6
0DB2   0E2B    122  CONST   SAVEBPMRL         sec56k6
0E2C   0E2C      1  CONST   RPLOOP            sec56k3
0E2D   0E2D      1  CONST   RXLOOP            sec56k3
0E2E   0E2E      1  CONST   RYLOOP            sec56k3
0E2F   0E2F      1  CONST   WLOOP1            sec56k3
0E30   0E30      1  CONST   WPLOOP            sec56k3
0E31   0E31      1  CONST   WXLOOP            sec56k3
0E32   0E32      1  CONST   WYLOOP            sec56k3
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 102



0E33   0E33      1  CONST   GETREG            sec56k3
0E34   0E34      1  CONST   PUTREG            sec56k3
0E35   0E35      1  CONST   OGETREG           sec56k3
0E36   0E36      1  CONST   OPIPE             sec56k3
0E37   0E37      1  CONST   OPUTREG           sec56k3
0E38   0E38      1  CONST   REGRDSEQ          sec56k3
0E39   0E39      1  CONST   REGWRSEQ          sec56k3
0E3A   0E3A      1  CONST   PREADSEQ          sec56k3
0E3B   0E3B      1  CONST   XREADSEQ          sec56k3
0E3C   0E3C      1  CONST   YREADSEQ          sec56k3
0E3D   0E3D      1  CONST   PWRITSEQ          sec56k3
0E3E   0E3E      1  CONST   XWRITSEQ          sec56k3
0E3F   0E3F      1  CONST   YWRITSEQ          sec56k3
0E40   0E40      1  CONST   GOSEQ             sec56k3
0E41   0E41      1  CONST   REPSEQ            sec56k3
0E42   0E42      1  CONST   RESTORE           sec56k3
0E43   0E43      1  CONST   RSAVE             sec56k3
0E44   0E44      1  CONST   RESTORBPMR        sec56k3
0E45   0E45      1  CONST   RSAVEBPMR         sec56k3
0E46   0E46      1  CONST   GOSEQ2            sec56k3
0E47   0E47      1  CONST   OFFSET            sec56k3
0E48   0E48      1  CONST   WVOFFSET          sec56k3
0E49   0E49      1  CONST   WLOOP             sec56k3
0E4A   0E4A      1  CONST   WLOOPVAL          sec56k3
0E4B   0E4B      1  CONST   LOCREGVAL         sec56k3
0E4C   0E4C      1  CONST   X0VAL1            sec56k3
0E4D   0E4D      1  CONST   R0VAL1            sec56k3
0E4E   0E4E      1  CONST   M0VAL1            sec56k3
0E4F   0E4F      1  CONST   PWWLOOP1          sec56k3
0E50   0E50      1  CONST   XWWLOOP1          sec56k3
0E51   0E77     39  CONST   YWWLOOP1          sec56k3
0E78   0E78      1  CONST   RPLOOP            sec56800
0E79   0E79      1  CONST   RXLOOP            sec56800
0E7A   0E7A      1  CONST   RYLOOP            sec56800
0E7B   0E7B      1  CONST   WLOOP1            sec56800
0E7C   0E7C      1  CONST   WPLOOP            sec56800
0E7D   0E7D      1  CONST   WXLOOP            sec56800
0E7E   0E7E      1  CONST   WYLOOP            sec56800
0E7F   0E7F      1  CONST   GETREG            sec56800
0E80   0E80      1  CONST   PUTREG            sec56800
0E81   0E81      1  CONST   OGETREG           sec56800
0E82   0E82      1  CONST   OPIPE             sec56800
0E83   0E83      1  CONST   OPUTREG           sec56800
0E84   0E84      1  CONST   REGRDSEQ          sec56800
0E85   0E85      1  CONST   REGWRSEQ          sec56800
0E86   0E86      1  CONST   PREADSEQ          sec56800
0E87   0E87      1  CONST   XREADSEQ          sec56800
0E88   0E88      1  CONST   YREADSEQ          sec56800
0E89   0E89      1  CONST   PWRITSEQ          sec56800
0E8A   0E8A      1  CONST   XWRITSEQ          sec56800
0E8B   0E8B      1  CONST   YWRITSEQ          sec56800
0E8C   0E8C      1  CONST   GOSEQ             sec56800
0E8D   0E8D      1  CONST   REPSEQ            sec56800
0E8E   0E8E      1  CONST   RESTORE           sec56800
0E8F   0E8F      1  CONST   RSAVE             sec56800
0E90   0E90      1  CONST   RESTORBPMR        sec56800
0E91   0E91      1  CONST   RSAVEBPMR         sec56800
0E92   0E92      1  CONST   GOSEQ2            sec56800
0E93   0E93      1  CONST   OFFSET            sec56800
0E94   0E94      1  CONST   WVOFFSET          sec56800
0E95   0E95      1  CONST   WLOOP             sec56800
0E96   0E96      1  CONST   WLOOPVAL          sec56800
Motorola DSP56000 Assembler  Version 6.1.0   96-09-10  10:51:11  adm.asm  Page 103



0E97   0E97      1  CONST   LOCREGVAL         sec56800
0E98   0E98      1  CONST   X0VAL1            sec56800
0E99   0E99      1  CONST   R0VAL1            sec56800
0E9A   0E9A      1  CONST   M0VAL1            sec56800
0E9B   0E9B      1  CONST   PWWLOOP1          sec56800
0E9C   0E9C      1  CONST   XWWLOOP1          sec56800
0E9D   0E9D      1  CONST   YWWLOOP1          sec56800
0E9E   0E9E      1  CONST   RPLOOP            sec56k6
0E9F   0E9F      1  CONST   RXLOOP            sec56k6
0EA0   0EA0      1  CONST   RYLOOP            sec56k6
0EA1   0EA1      1  CONST   WLOOP1            sec56k6
0EA2   0EA2      1  CONST   WPLOOP            sec56k6
0EA3   0EA3      1  CONST   WXLOOP            sec56k6
0EA4   0EA4      1  CONST   WYLOOP            sec56k6
0EA5   0EA5      1  CONST   GETREG            sec56k6
0EA6   0EA6      1  CONST   PUTREG            sec56k6
0EA7   0EA7      1  CONST   OGETREG           sec56k6
0EA8   0EA8      1  CONST   OPIPE             sec56k6
0EA9   0EA9      1  CONST   OPUTREG           sec56k6
0EAA   0EAA      1  CONST   REGRDSEQ          sec56k6
0EAB   0EAB      1  CONST   REGWRSEQ          sec56k6
0EAC   0EAC      1  CONST   PREADSEQ          sec56k6
0EAD   0EAD      1  CONST   XREADSEQ          sec56k6
0EAE   0EAE      1  CONST   YREADSEQ          sec56k6
0EAF   0EAF      1  CONST   PWRITSEQ          sec56k6
0EB0   0EB0      1  CONST   XWRITSEQ          sec56k6
0EB1   0EB1      1  CONST   YWRITSEQ          sec56k6
0EB2   0EB2      1  CONST   GOSEQ             sec56k6
0EB3   0EB3      1  CONST   REPSEQ            sec56k6
0EB4   0EB4      1  CONST   RESTORE           sec56k6
0EB5   0EB5      1  CONST   RSAVE             sec56k6
0EB6   0EB6      1  CONST   RESTORBPMR        sec56k6
0EB7   0EB7      1  CONST   RSAVEBPMR         sec56k6
0EB8   0EB8      1  CONST   GOSEQ2            sec56k6
0EB9   0EB9      1  CONST   OFFSET            sec56k6
0EBA   0EBA      1  CONST   WVOFFSET          sec56k6
0EBB   0EBB      1  CONST   WLOOP             sec56k6
0EBC   0EBC      1  CONST   WLOOPVAL          sec56k6
0EBD   0EBD      1  CONST   LOCREGVAL         sec56k6
0EBE   0EBE      1  CONST   X0VAL1            sec56k6
0EBF   0EBF      1  CONST   R0VAL1            sec56k6
0EC0   0EC0      1  CONST   M0VAL1            sec56k6
0EC1   0EC1      1  CONST   PWWLOOP1          sec56k6
0EC2   0EC2      1  CONST   XWWLOOP1          sec56k6
0EC3   0EE9     39  CONST   YWWLOOP1          sec56k6
0EEA   0EEA      1  CONST   LASTCOMMAND
0EEB   0EEB      1  CONST   TABLESIZ
0EEC   0EF6     11  CONST   JTABLSZ
0EF7   0FFF    265  UNUSED
1000   1000      1  CONST   JIRTABLE
1001   1018     24  CONST   JIRDATA
1019   10FF    231  UNUSED
1100   112F     48  CONST   JMPTABL
1130   FFFF  61136  UNUSED
