| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 
 | MOTOROLA MICROPROCESSOR & MEMORY TECHNOLOGY GROUP | 
 | M68000 Hi-Performance Microprocessor Division | 
 | M68060 Software Package | 
 | Production Release P1.00 -- October 10, 1994 | 
 |  | 
 | M68060 Software Package Copyright © 1993, 1994 Motorola Inc.  All rights reserved. | 
 |  | 
 | THE SOFTWARE is provided on an "AS IS" basis and without warranty. | 
 | To the maximum extent permitted by applicable law, | 
 | MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, | 
 | INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE | 
 | and any warranty against infringement with regard to the SOFTWARE | 
 | (INCLUDING ANY MODIFIED VERSIONS THEREOF) and any accompanying written materials. | 
 |  | 
 | To the maximum extent permitted by applicable law, | 
 | IN NO EVENT SHALL MOTOROLA BE LIABLE FOR ANY DAMAGES WHATSOEVER | 
 | (INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, | 
 | BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) | 
 | ARISING OF THE USE OR INABILITY TO USE THE SOFTWARE. | 
 | Motorola assumes no responsibility for the maintenance and support of the SOFTWARE. | 
 |  | 
 | You are hereby granted a copyright license to use, modify, and distribute the SOFTWARE | 
 | so long as this entire notice is retained without alteration in any modified and/or | 
 | redistributed versions, and that such modified versions are clearly identified as such. | 
 | No licenses are granted by implication, estoppel or otherwise under any patents | 
 | or trademarks of Motorola, Inc. | 
 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 
 | 68060 SOFTWARE PACKAGE (Kernel version) SIMPLE TESTS | 
 | ----------------------------------------------------- | 
 |  | 
 | The files itest.sa and ftest.sa contain simple tests to check | 
 | the state of the 68060ISP and 68060FPSP once they have been installed. | 
 |  | 
 | Release file format: | 
 | -------------------- | 
 | The release files itest.sa and ftest.sa are essentially | 
 | hexadecimal images of the actual tests. This format is the | 
 | ONLY format that will be supported. The hex images were created | 
 | by assembling the source code and then converting the resulting | 
 | binary output images into ASCII text files. The hexadecimal | 
 | numbers are listed using the Motorola Assembly syntax assembler | 
 | directive "dc.l" (define constant longword). The files can be | 
 | converted to other assembly syntaxes by using any word processor | 
 | with a global search and replace function. | 
 |  | 
 | To assist in assembling and linking these modules with other modules, | 
 | the installer should add symbolic labels to the top of the files. | 
 | This will allow the calling routines to access the entry points | 
 | of these packages. | 
 |  | 
 | The source code itest.s and ftest.s have been included but only | 
 | for documentation purposes. | 
 |  | 
 | Release file structure: | 
 | ----------------------- | 
 |  | 
 | (top of module) | 
 | 	----------------- | 
 | 	|		| - 128 byte-sized section | 
 |    (1)  |   Call-Out	| - 4 bytes per entry (user fills these in) | 
 | 	|		| | 
 | 	----------------- | 
 | 	|		| - 8 bytes per entry | 
 |    (2)  | Entry Point	| - user does "bsr" or "jsr" to this address | 
 | 	|		| | 
 | 	----------------- | 
 | 	|		| - code section | 
 |    (3)  ~		~ | 
 | 	|		| | 
 | 	----------------- | 
 | (bottom of module) | 
 |  | 
 | The first section of this module is the "Call-out" section. This section | 
 | is NOT INCLUDED in {i,f}test.sa (an example "Call-out" section is provided at | 
 | the end of this file). The purpose of this section is to allow the test | 
 | routines to reference external printing functions that must be provided | 
 | by the host operating system. This section MUST be exactly 128 bytes in | 
 | size. There are 32 fields, each 4 bytes in size. Each field corresponds | 
 | to a function required by the test packages (these functions and their | 
 | location are listed in "68060{ISP,FPSP}-TEST call-outs" below). Each field | 
 | entry should contain the address of the corresponding function RELATIVE to | 
 | the starting address of the "call-out" section. The "Call-out" section must | 
 | sit adjacent to the {i,f}test.sa image in memory. Since itest.sa and ftest.sa | 
 | are individual tests, they each require their own "Call-out" sections. | 
 |  | 
 | The second section, the "Entry-point" section, is used by external routines | 
 | to access the test routines. Since the {i,f}test.sa hex files contain | 
 | no symbol names, this section contains function entry points that are fixed | 
 | with respect to the top of the package. The currently defined entry-points | 
 | are listed in section "68060{ISP,FPSP}-TEST entry points" below. A calling | 
 | routine would simply execute a "bsr" or "jsr" that jumped to the selected | 
 | function entry-point. | 
 |  | 
 | For example, to run the 060ISP test, write a program that includes the | 
 | itest.sa data and execute something similar to: | 
 |  | 
 | 	bsr	_060ISP_TEST+128+0 | 
 |  | 
 | (_060ISP_TEST is the starting address of the "Call-out" section; the "Call-out" | 
 | section is 128 bytes long; and the 68060ISP test entry point is located | 
 | 0 bytes from the top of the "Entry-point" section.) | 
 |  | 
 | The third section is the code section. After entering through an "Entry-point", | 
 | the entry code jumps to the appropriate test code within the code section. | 
 |  | 
 | 68060ISP-TEST Call-outs: | 
 | ------------------------ | 
 | 0x0: _print_string() | 
 | 0x4: _print_number() | 
 |  | 
 | 68060FPSP-TEST Call-outs: | 
 | ------------------------- | 
 | 0x0: _print_string() | 
 | 0x4: _print_number() | 
 |  | 
 | The test packages call _print_string() and _print_number() | 
 | as subroutines and expect the main program to print a string | 
 | or a number to a file or to the screen. | 
 | In "C"-like fashion, the test program calls: | 
 |  | 
 | 	print_string("Test passed"); | 
 |  | 
 | 		or | 
 |  | 
 | 	print_number(20); | 
 |  | 
 | For _print_string(), the test programs pass a longword address | 
 | of the string on the stack. For _print_number(), the test programs pass | 
 | a longword number to be printed. | 
 |  | 
 | For debugging purposes, after the main program performs a "print" | 
 | for a test package, it should flush the output so that it's not | 
 | buffered. In this way, if the test program crashes, at least the previous | 
 | statements printed will be seen. | 
 |  | 
 | 68060ISP-TEST Entry-points: | 
 | --------------------------- | 
 | 0x0: integer test | 
 |  | 
 | 68060FPSP-TEST Entry-points: | 
 | ---------------------------- | 
 | 0x00: main fp test | 
 | 0x08: FP unimplemented test | 
 | 0x10: FP enabled snan/operr/ovfl/unfl/dz/inex | 
 |  | 
 | The floating-point unit test has 3 entry points which will require | 
 | 3 different calls to the package if each of the three following tests | 
 | is desired: | 
 |  | 
 | main fp test: tests (1) unimp effective address exception | 
 | 		    (2) unsupported data type exceptions | 
 | 		    (3) non-maskable overflow/underflow exceptions | 
 |  | 
 | FP unimplemented: tests FP unimplemented exception. this one is | 
 | 		  separate from the previous tests for systems that don't | 
 | 		  want FP unimplemented instructions. | 
 |  | 
 | FP enabled: tests enabled snan/operr/ovfl/unfl/dz/inex. | 
 | 	    basically, it enables each of these exceptions and forces | 
 | 	    each using an implemented FP instruction. this process | 
 | 	    exercises _fpsp_{snan,operr,ovfl,unfl,dz,inex}() and | 
 | 	    _real_{snan,operr,ovfl,unfl,dz,inex}(). the test expects | 
 | 	    _real_XXXX() to do nothing except clear the exception | 
 | 	    and "rte". if a system's _real_XXXX() handler creates an | 
 | 	    alternate result, the test will print "failed" but this | 
 | 	    is acceptable. | 
 |  | 
 | Miscellaneous: | 
 | -------------- | 
 | Again, itest.sa and ftest.sa are simple tests and do not thoroughly | 
 | test all 68060SP connections. For example, they do not test connections | 
 | to _real_access(), _real_trace(), _real_trap(), etc. because these | 
 | will be system-implemented several different ways and the test packages | 
 | must remain system independent. | 
 |  | 
 | Example test package set-up: | 
 | ---------------------------- | 
 | _print_str: | 
 | 	.			# provided by system | 
 | 	rts | 
 |  | 
 | _print_num: | 
 | 	.			# provided by system | 
 | 	rts | 
 |  | 
 | 	. | 
 | 	. | 
 | 	bsr	_060FPSP_TEST+128+0 | 
 | 	. | 
 | 	. | 
 | 	rts | 
 |  | 
 | # beginning of "Call-out" section; provided by integrator. | 
 | # MUST be 128 bytes long. | 
 | _060FPSP_TEST: | 
 | 	long	_print_str - _060FPSP_TEST | 
 | 	long	_print_num - _060FPSP_TEST | 
 | 	space	120 | 
 |  | 
 | # ftest.sa starts here; start of "Entry-point" section. | 
 | 	long	0x60ff0000, 0x00002346 | 
 | 	long	0x60ff0000, 0x00018766 | 
 | 	long	0x60ff0000, 0x00023338 | 
 | 	long	0x24377299, 0xab2643ea | 
 | 		. | 
 | 		. | 
 | 		. |