Sections:
00: "CODE" (0-8BA)


Source: "ALLTEST.S"
                            	     1: *-----------------------------------------------------------------------------*
                            	     2: 
                            	     3: 	MODULE	SPEEDTEST
                            	     4: 	TEXT
                            	     5: 	OPT	P=68040,P=68881
                            	     6: 	OPT	O+
                            	     7: 
                            	     8: ; cache stuff from DML
                            	     9: 
                            	    10: *-----------------------------------------------------------------------------*
                            	    11: *	68030(+020) cache control
                            	    12: *-----------------------------------------------------------------------------*
                            	    13: 
                            	    14: ; bits (used by 68020/30)
                            	    15: ienab030_bit	=	0
                            	    16: ifrz030_bit	=	1
                            	    17: iclre030_bit	=	2
                            	    18: iclr030_bit	=	3
                            	    19: ibrst030_bit	=	4
                            	    20: 
                            	    21: denab030_bit	=	8
                            	    22: dfrz030_bit	=	9
                            	    23: dclre030_bit	=	10
                            	    24: dclr030_bit	=	11
                            	    25: dbrst030_bit	=	12
                            	    26: wa030_bit	=	13
                            	    27: 
                            	    28: ; flags (used by 68020/30)
                            	    29: ienab030	=	1<<ienab030_bit
                            	    30: ifrz030		=	1<<ifrz030_bit
                            	    31: iclre030	=	1<<iclre030_bit
                            	    32: iclr030		=	1<<iclr030_bit
                            	    33: ibrst030	=	1<<ibrst030_bit
                            	    34: 
                            	    35: denab030	=	1<<denab030_bit
                            	    36: dfrz030		=	1<<dfrz030_bit
                            	    37: dclre030	=	1<<dclre030_bit
                            	    38: dclr030		=	1<<dclr030_bit
                            	    39: dbrst030	=	1<<dbrst030_bit
                            	    40: wa030		=	1<<wa030_bit
                            	    41: 
                            	    42: ; masks (valid flags for 68020/30)
                            	    43: i030_cache_mask	=	denab030|dfrz030|dclre030|dclr030|dbrst030|wa030	; all d_cache bit are set and all i cache bit are cl
                            	    44: d030_cache_mask	=	ienab030|ifrz030|iclre030|iclr030|ibrst030		; all i_cache bit are set and all d cache bit are cleared
                            	    45: 
                            	    46: *-----------------------------------------------------------------------------*
                            	    47: *	68040 cache control
                            	    48: *-----------------------------------------------------------------------------*
                            	    49: 
                            	    50: ienab040_bit	=	15
                            	    51: denab040_bit	=	31
                            	    52: 
                            	    53: ienab040	=	1<<ienab040_bit
                            	    54: denab040	=	1<<denab040_bit
                            	    55: 
                            	    56: cache_mask_040	=	ienab040|denab040
                            	    57: 
                            	    58: *-----------------------------------------------------------------------------*
                            	    59: *	68060 cache control
                            	    60: *-----------------------------------------------------------------------------*
                            	    61: 
                            	    62: denab060_bit	=	31
                            	    63: nad060_bit	=	30
                            	    64: esb060_bit	=	29
                            	    65: dpi060_bit	=	28
                            	    66: foc060_bit	=	27
                            	    67: 
                            	    68: ebc060_bit	=	23
                            	    69: cabc060_bit	=	22
                            	    70: cubc060_bit	=	21
                            	    71: 
                            	    72: ienab060_bit	=	15
                            	    73: nai060_bit	=	14
                            	    74: fic060_bit	=	13
                            	    75: 
                            	    76: ienab060	=	1<<ienab060_bit
                            	    77: nad060		=	1<<nad060_bit
                            	    78: esb060		=	1<<esb060_bit
                            	    79: dpi060		=	1<<dpi060_bit
                            	    80: foc060		=	1<<foc060_bit
                            	    81: ebc060		=	1<<ebc060_bit
                            	    82: cabc060		=	1<<cabc060_bit
                            	    83: cubc060		=	1<<cubc060_bit
                            	    84: denab060	=	1<<denab060_bit
                            	    85: nai060		=	1<<nai060_bit
                            	    86: fic060		=	1<<fic060_bit
                            	    87: 
                            	    88: cache_mask_060	=	ienab060|nad060|esb060|dpi060|foc060|ebc060|cabc060|cubc060|denab060|nai060|fic060
                            	    89: 
                            	    90: *-----------------------------------------------------------------------------*
                            	    91: 
                            	    92: timerb		=	$120
                            	    93: timerc		=	$114
                            	    94: 
                            	    95: tbcr		=	$fffffa1b
                            	    96: cdcr		=	$fffffa1d
                            	    97: tbdr		=	$fffffa21
                            	    98: tcdr		=	$fffffa23
                            	    99: iera		=	$fffffa07
                            	   100: ierb		=	$fffffa09
                            	   101: imra		=	$fffffa13
                            	   102: imrb		=	$fffffa15
                            	   103: isra		=	$fffffa0f
                            	   104: isrb		=	$fffffa11
                            	   105: 
                            	   106: *-----------------------------------------------------------------------------*
                            	   107: 
                            	   108: ; ***IMPORTANT*** update this when modifying the function table
                            	   109: max_functions	=	27
                            	   110: 
                            	   111: ; use 10K block
                            	   112: blksize		=	10240
                            	   113: 
                            	   114: ; mode for STRAM
                            	   115: stram_mode	= 	0
                            	   116: ttram_mode	= 	1
                            	   117: 
                            	   118: 
                            	   119: ;teststub
                            	   120: 
                            	   121: 	ifd		teststub
                            	   122: 
                            	   123: *-------------------------------------------------------*
                            	   124: test:	move.l		4(sp),a5
                            	   125: ;	lea		128(a5),a4	; command string
                            	   126: ;	move.l		a4,cli
                            	   127: *-------------------------------------------------------*
                            	   128: *	Mshrink						*
                            	   129: *-------------------------------------------------------*
                            	   130: 	move.l		12(a5),d0	; text segment
                            	   131: 	add.l		20(a5),d0	; data segment
                            	   132: 	add.l		28(a5),d0	; bss segment
                            	   133: 	add.l		#256,d0		; base page
                            	   134: ;	lea		usp_stack,sp
                            	   135: 	move.l		d0,-(sp)
                            	   136: 	move.l		a5,-(sp)
                            	   137: 	clr.w		-(sp)
                            	   138: 	move.w		#$4a,-(sp)
                            	   139: 	trap		#1
                            	   140: 	lea		12(sp),sp
                            	   141: 
                            	   142: ;	bra		*
                            	   143: 
                            	   144: 	lea		test_params,a1
                            	   145: 	bsr		code_start
                            	   146: 	
                            	   147: 	clr.w		-(sp)
                            	   148: 	trap		#1
                            	   149: 	
                            	   150: 	
                            	   151: test_params:
                            	   152: 	dc.l		9
                            	   153: 	dc.l		1000	
                            	   154: 
                            	   155: 	endc
                            	   156: 
                            	   157: *-----------------------------------------------------------------------------*
                            	   158: code_start:
                            	   159: *-----------------------------------------------------------------------------*
00:00000000 6018            	   160: 	bra.s		modstart
                            	   161: *-----------------------------------------------------------------------------*
                            	   162: 
                            	   163: d_cache_state
00:00000002 0000            	   164: 	dc.w		0
                            	   165: i_cache_state
00:00000004 0000            	   166: 	dc.w		0
                            	   167: bas_params
00:00000006 00000000        	   168: 	dc.l		0
                            	   169: processor
00:0000000A 000109A0        	   170: 	dc.l		68000
                            	   171: starttime
00:0000000E 00000000        	   172: 	dc.l		0
                            	   173: sys_state
00:00000012 00000000        	   174: 	ds.l		2
00:00000016 *
                            	   175: 
                            	   176: *-----------------------------------------------------------------------------*
                            	   177: modstart:
                            	   178: *-----------------------------------------------------------------------------*
                            	   179: 	; save registers
00:0000001A 48E7FFFE        	   180: 	movem.l		d0-d7/a0-a6,-(sp)
                            	   181: 	; get params
00:0000001E 41FAFFE6        	   182: 	lea		bas_params(pc),a0
00:00000022 20A90004        	   183: 	move.l		4(a1),(a0)				; parameter
                            	   184: 	; fetch function index
00:00000026 2011            	   185: 	move.l		(a1),d0					; command
                            	   186: 	; safety check
00:00000028 B07C001A        	   187: 	cmp.w		#max_functions-1,d0
00:0000002C 624C            	   188: 	bhi		exit
                            	   189: 	; look up function relative offset
00:0000002E D040            	   190: 	add.w		d0,d0
00:00000030 303B0012        	   191: 	move.w		.func_table(pc,d0.w),d0
                            	   192: 	; calculate function absolute address
00:00000034 45FB000E        	   193: 	lea		.func_table(pc,d0.w),a2
                            	   194: 	; execute function in supervisor mode
00:00000038 4852            	   195: 	pea 		(a2)
00:0000003A 3F3C0026        	   196: 	move.w 		#38,-(sp)
00:0000003E 4E4E            	   197: 	trap 		#14
00:00000040 5C8F            	   198: 	addq.l 		#6,sp
                            	   199: 	; complete
00:00000042 6036            	   200: 	bra		exit
                            	   201: 
                            	   202: .func_table:
                            	   203: 
                            	   204: 	; integer
00:00000044 003C            	   205: 	dc.w		bitlogic_test-.func_table		; 0	68000-60
00:00000046 0068            	   206: 	dc.w		branch_test-.func_table			; 1	68000-60
00:00000048 00DC            	   207: 	dc.w		mul_16_32_test-.func_table		; 2	68000-60
00:0000004A 009E            	   208: 	dc.w		div_32_16_test-.func_table		; 3	68000-60
00:0000004C 017E            	   209: 	dc.w		mul_32_64_test-.func_table		; 4	68020-40 (emulated on 060 via M68060ISP driver software)
00:0000004E 011E            	   210: 	dc.w		div_64_32_test-.func_table		; 5	68020-40 (emulated on 060 via M68060ISP driver software)
                            	   211: 
                            	   212: 	; float math
00:00000050 01E4            	   213: 	dc.w		fprim_test-.func_table			; 6	68881/2/040/060
00:00000052 023E            	   214: 	dc.w		fpow_test-.func_table			; 7	68881/2 (emulated on 040-60 via M680x0FPSP driver software)
00:00000054 028C            	   215: 	dc.w		ftrig_test-.func_table			; 8	68881/2 (emulated on 040-60 via M680x0FPSP driver software)
                            	   216: 
                            	   217: 	; memory
00:00000056 02EE            	   218: 	dc.w		tos_r_test-.func_table			; 9
00:00000058 032A            	   219: 	dc.w		ram_rw_test-.func_table			; 10
00:0000005A 03B2            	   220: 	dc.w		stram_rw_test-.func_table		; 11
00:0000005C 043C            	   221: 	dc.w		ttram_rw_test-.func_table		; 12
00:0000005E 04C8            	   222: 	dc.w		vram_rw_test-.func_table		; 13
                            	   223: 
                            	   224: 	; cache control
00:00000060 06DE            	   225: 	dc.w		get_cache_state-.func_table		; 14	68020-30
00:00000062 0582            	   226: 	dc.w		d_cache_on-.func_table			; 15	68030 (no d-cache on 020, ignored)
00:00000064 05DA            	   227: 	dc.w		d_cache_off-.func_table			; 16	68030 (no d-cache on 020, ignored)
00:00000066 0636            	   228: 	dc.w		i_cache_on-.func_table			; 17	68020-30
00:00000068 068A            	   229: 	dc.w		i_cache_off-.func_table			; 18	68020-30
                            	   230: 
                            	   231: 	; sys timing control
00:0000006A 0772            	   232: 	dc.w		sys_sleep-.func_table			; 19	68000-60
00:0000006C 0798            	   233: 	dc.w		sys_wake-.func_table			; 20	68000-60
00:0000006E 07AE            	   234: 	dc.w		sys_tstart-.func_table			; 21	68000-60
00:00000070 07C2            	   235: 	dc.w		sys_tstop-.func_table			; 22	68000-60
                            	   236: 
                            	   237: 	; processor
00:00000072 0766            	   238: 	dc.w		sys_setcpu-.func_table			; 23	68000-60
                            	   239: 
                            	   240: 	; misc.
00:00000074 0820            	   241: 	dc.w		sys_acia_off-.func_table		; 24	68000-60
00:00000076 0806            	   242: 	dc.w		sys_acia_on-.func_table			; 25	68000-60
00:00000078 083A            	   243: 	dc.w		sys_acia_reset-.func_table		; 26	68000-60
                            	   244: 
                            	   245: exit:	; restore registers
00:0000007A 4CDF7FFF        	   246: 	movem.l 	(sp)+,d0-d7/a0-a6
00:0000007E 4E75            	   247: 	rts
                            	   248: 
                            	   249: 
                            	   250: 
                            	   251: 
                            	   252: *-----------------------------------------------------------------------------*
                            	   253: *	Bitwise logic
                            	   254: *-----------------------------------------------------------------------------*
                            	   255: bitlogic_test:
                            	   256: *-----------------------------------------------------------------------------*
00:00000080 243AFF84        	   257: 	move.l		bas_params(pc),d2
00:00000084 5382            	   258: 	subq.l		#1,d2
00:00000086 6B22            	   259: 	bmi.s		.err
                            	   260: .bit_outer_loop:
00:00000088 203C2D4E4D4B    	   261: 	move.l		#%00101101010011100100110101001011,d0
00:0000008E 323C007F        	   262: 	move.w		#(1024/8)-1,d1 ; 1024 ops with 8 per loop
                            	   263: .bit_loop:
                            	   264: 	;
00:00000092 B383            	   265: 	eor.l		d1,d3
00:00000094 9882            	   266: 	sub.l		d2,d4
00:00000096 8A80            	   267: 	or.l		d0,d5
00:00000098 E798            	   268: 	rol.l		#3,d0
00:0000009A C681            	   269: 	and.l		d1,d3
00:0000009C D882            	   270: 	add.l		d2,d4
00:0000009E B185            	   271: 	eor.l		d0,d5
00:000000A0 D183            	   272: 	addx.l		d3,d0
                            	   273: 	;
00:000000A2 51C9FFEE        	   274: 	dbra		d1,.bit_loop
00:000000A6 51CAFFE0        	   275: 	dbra 		d2,.bit_outer_loop
00:000000AA 4E75            	   276: .err:	rts
                            	   277: 
                            	   278: 
                            	   279: *-----------------------------------------------------------------------------*
                            	   280: *	Conditional branching
                            	   281: *-----------------------------------------------------------------------------*
                            	   282: branch_test:
                            	   283: *-----------------------------------------------------------------------------*
00:000000AC 243AFF58        	   284: 	move.l		bas_params(pc),d2
00:000000B0 5382            	   285: 	subq.l		#1,d2
00:000000B2 6B2C            	   286: 	bmi.s		.err
                            	   287: .bcc_outer_loop:
00:000000B4 323C00A9        	   288: 	move.w		#(1024/6)-1,d1 ; approximate 1024 branches with ~6 per loop
00:000000B8 203C2D4E4D4B    	   289: 	move.l		#%00101101010011100100110101001011,d0
00:000000BE D080            	   290: 	add.l		d0,d0
                            	   291: .bcc_loop:
                            	   292: 	;
00:000000C0 6402            	   293: 	bcc.s		.ta
00:000000C2 6602            	   294: 	bne.s		.tb
00:000000C4 D180            	   295: .ta:	addx.l		d0,d0
                            	   296: .tb:
00:000000C6 6202            	   297: 	bhi.s		.tc
00:000000C8 6702            	   298: 	beq.s		.td
00:000000CA D180            	   299: .tc:	addx.l		d0,d0
                            	   300: .td:
00:000000CC 6302            	   301: 	bls.s		.te
00:000000CE 6602            	   302: 	bne.s		.tf
00:000000D0 D180            	   303: .te:	addx.l		d0,d0
                            	   304: .tf:
00:000000D2 6802            	   305: 	bvc.s		.tg
00:000000D4 6702            	   306: 	beq.s		.th
00:000000D6 D180            	   307: .tg:	addx.l		d0,d0
                            	   308: .th:
                            	   309: 	;
00:000000D8 51C9FFE6        	   310: 	dbra		d1,.bcc_loop
00:000000DC 51CAFFD6        	   311: 	dbra 		d2,.bcc_outer_loop
00:000000E0 4E75            	   312: .err:	rts
                            	   313: 
                            	   314: 
                            	   315: *-----------------------------------------------------------------------------*
                            	   316: *	Integer DIV 32/16=16r:16 speed test
                            	   317: *-----------------------------------------------------------------------------*
                            	   318: div_32_16_test:
                            	   319: *-----------------------------------------------------------------------------*
00:000000E2 243AFF22        	   320: 	move.l		bas_params(pc),d2
00:000000E6 5382            	   321: 	subq.l		#1,d2
00:000000E8 6B34            	   322: 	bmi.s		.err
00:000000EA 7E03            	   323: 	moveq		#3,d7
00:000000EC 2C3C0001FFFF    	   324: 	move.l		#$0001FFFF,d6
                            	   325: .div_outer_loop:
00:000000F2 2606            	   326: 	move.l		d6,d3
00:000000F4 723F            	   327: 	moveq		#(1024/16)-1,d1 ; 1024 loops
                            	   328: .div_loop:
                            	   329: 	;
                            	   330: 	rept		16
                            	   331: 	divu.w		d7,d3
                            	   332: 	endr
00:000000F6 86C7            	     1R 	divu.w		d7,d3
                            	     2R 	
00:000000F8 86C7            	     1R 	divu.w		d7,d3
                            	     2R 	
00:000000FA 86C7            	     1R 	divu.w		d7,d3
                            	     2R 	
00:000000FC 86C7            	     1R 	divu.w		d7,d3
                            	     2R 	
00:000000FE 86C7            	     1R 	divu.w		d7,d3
                            	     2R 	
00:00000100 86C7            	     1R 	divu.w		d7,d3
                            	     2R 	
00:00000102 86C7            	     1R 	divu.w		d7,d3
                            	     2R 	
00:00000104 86C7            	     1R 	divu.w		d7,d3
                            	     2R 	
00:00000106 86C7            	     1R 	divu.w		d7,d3
                            	     2R 	
00:00000108 86C7            	     1R 	divu.w		d7,d3
                            	     2R 	
00:0000010A 86C7            	     1R 	divu.w		d7,d3
                            	     2R 	
00:0000010C 86C7            	     1R 	divu.w		d7,d3
                            	     2R 	
00:0000010E 86C7            	     1R 	divu.w		d7,d3
                            	     2R 	
00:00000110 86C7            	     1R 	divu.w		d7,d3
                            	     2R 	
00:00000112 86C7            	     1R 	divu.w		d7,d3
                            	     2R 	
00:00000114 86C7            	     1R 	divu.w		d7,d3
                            	     2R 	
                            	   333: 	;
00:00000116 51C9FFDE        	   334: 	dbra		d1,.div_loop
00:0000011A 51CAFFD6        	   335: 	dbra 		d2,.div_outer_loop
00:0000011E 4E75            	   336: .err:	rts
                            	   337: 
                            	   338: *-----------------------------------------------------------------------------*
                            	   339: *	Integer MUL 16*16=32 speed test
                            	   340: *-----------------------------------------------------------------------------*
                            	   341: mul_16_32_test
                            	   342: *-----------------------------------------------------------------------------*
00:00000120 243AFEE4        	   343: 	move.l		bas_params(pc),d2
00:00000124 5382            	   344: 	subq.l		#1,d2
00:00000126 6B38            	   345: 	bmi.s		.err
00:00000128 3E3C4D4B        	   346: 	move.w		#%0100110101001011,d7
                            	   347: .mul_outer_loop:
00:0000012C 2A3C0000FFFF    	   348: 	move.l		#$0000FFFF,d5
00:00000132 323C003F        	   349: 	move.w		#(1024/16)-1,d1 ; 1024 loops
                            	   350: .mul_loop:
                            	   351: 	;
00:00000136 2605            	   352: 	move.l		d5,d3
                            	   353: 	rept		16
                            	   354: 	mulu.w		d7,d3
                            	   355: 	endr
00:00000138 C6C7            	     1R 	mulu.w		d7,d3
                            	     2R 	
00:0000013A C6C7            	     1R 	mulu.w		d7,d3
                            	     2R 	
00:0000013C C6C7            	     1R 	mulu.w		d7,d3
                            	     2R 	
00:0000013E C6C7            	     1R 	mulu.w		d7,d3
                            	     2R 	
00:00000140 C6C7            	     1R 	mulu.w		d7,d3
                            	     2R 	
00:00000142 C6C7            	     1R 	mulu.w		d7,d3
                            	     2R 	
00:00000144 C6C7            	     1R 	mulu.w		d7,d3
                            	     2R 	
00:00000146 C6C7            	     1R 	mulu.w		d7,d3
                            	     2R 	
00:00000148 C6C7            	     1R 	mulu.w		d7,d3
                            	     2R 	
00:0000014A C6C7            	     1R 	mulu.w		d7,d3
                            	     2R 	
00:0000014C C6C7            	     1R 	mulu.w		d7,d3
                            	     2R 	
00:0000014E C6C7            	     1R 	mulu.w		d7,d3
                            	     2R 	
00:00000150 C6C7            	     1R 	mulu.w		d7,d3
                            	     2R 	
00:00000152 C6C7            	     1R 	mulu.w		d7,d3
                            	     2R 	
00:00000154 C6C7            	     1R 	mulu.w		d7,d3
                            	     2R 	
00:00000156 C6C7            	     1R 	mulu.w		d7,d3
                            	     2R 	
                            	   356: 	;
00:00000158 51C9FFDC        	   357: 	dbra		d1,.mul_loop
00:0000015C 51CAFFCE        	   358: 	dbra 		d2,.mul_outer_loop
00:00000160 4E75            	   359: .err:	rts
                            	   360: 
                            	   361: *-----------------------------------------------------------------------------*
                            	   362: *	Integer DIV 64/32=32r:32 speed test
                            	   363: *-----------------------------------------------------------------------------*
                            	   364: div_64_32_test
                            	   365: *-----------------------------------------------------------------------------*
00:00000162 243AFEA2        	   366: 	move.l		bas_params(pc),d2
00:00000166 5382            	   367: 	subq.l		#1,d2
00:00000168 6B56            	   368: 	bmi.s		.err
00:0000016A 7E03            	   369: 	moveq		#3,d7
                            	   370: .div_outer_loop:	
00:0000016C 7A01            	   371: 	moveq		#1,d5
00:0000016E 7CFF            	   372: 	moveq		#-1,d6
00:00000170 323C003F        	   373: 	move.w		#(1024/16)-1,d1 ; 1024 loops
                            	   374: .div_loop:
                            	   375: 	;
00:00000174 2605            	   376: 	move.l		d5,d3
00:00000176 2806            	   377: 	move.l		d6,d4
                            	   378: 	rept		16
                            	   379: 	divu.l		d7,d3:d4
                            	   380: 	endr
00:00000178 4C474403        	     1R 	divu.l		d7,d3:d4
                            	     2R 	
00:0000017C 4C474403        	     1R 	divu.l		d7,d3:d4
                            	     2R 	
00:00000180 4C474403        	     1R 	divu.l		d7,d3:d4
                            	     2R 	
00:00000184 4C474403        	     1R 	divu.l		d7,d3:d4
                            	     2R 	
00:00000188 4C474403        	     1R 	divu.l		d7,d3:d4
                            	     2R 	
00:0000018C 4C474403        	     1R 	divu.l		d7,d3:d4
                            	     2R 	
00:00000190 4C474403        	     1R 	divu.l		d7,d3:d4
                            	     2R 	
00:00000194 4C474403        	     1R 	divu.l		d7,d3:d4
                            	     2R 	
00:00000198 4C474403        	     1R 	divu.l		d7,d3:d4
                            	     2R 	
00:0000019C 4C474403        	     1R 	divu.l		d7,d3:d4
                            	     2R 	
00:000001A0 4C474403        	     1R 	divu.l		d7,d3:d4
                            	     2R 	
00:000001A4 4C474403        	     1R 	divu.l		d7,d3:d4
                            	     2R 	
00:000001A8 4C474403        	     1R 	divu.l		d7,d3:d4
                            	     2R 	
00:000001AC 4C474403        	     1R 	divu.l		d7,d3:d4
                            	     2R 	
00:000001B0 4C474403        	     1R 	divu.l		d7,d3:d4
                            	     2R 	
00:000001B4 4C474403        	     1R 	divu.l		d7,d3:d4
                            	     2R 	
                            	   381: 	;
00:000001B8 51C9FFBA        	   382: 	dbra		d1,.div_loop
00:000001BC 51CAFFAE        	   383: 	dbra 		d2,.div_outer_loop
00:000001C0 4E75            	   384: .err:	rts
                            	   385: 
                            	   386: *-----------------------------------------------------------------------------*
                            	   387: *	Integer MUL 32*32=64 speed test
                            	   388: *-----------------------------------------------------------------------------*
                            	   389: mul_32_64_test
                            	   390: *-----------------------------------------------------------------------------*
00:000001C2 243AFE42        	   391: 	move.l		bas_params(pc),d2
00:000001C6 5382            	   392: 	subq.l		#1,d2
00:000001C8 6B5C            	   393: 	bmi.s		.err
00:000001CA 2E3C2D4E4D4B    	   394: 	move.l		#%00101101010011100100110101001011,d7
                            	   395: .mul_outer_loop:
00:000001D0 7600            	   396: 	moveq		#0,d3
00:000001D2 2A3C0000FFFF    	   397: 	move.l		#$0000FFFF,d5
00:000001D8 323C003F        	   398: 	move.w		#(1024/16)-1,d1 ; 1024 loops
                            	   399: .mul_loop:
                            	   400: 	;
00:000001DC 2805            	   401: 	move.l		d5,d4
                            	   402: 	rept		16
                            	   403: 	mulu.l		d7,d3:d4
                            	   404: 	endr
00:000001DE 4C074403        	     1R 	mulu.l		d7,d3:d4
                            	     2R 	
00:000001E2 4C074403        	     1R 	mulu.l		d7,d3:d4
                            	     2R 	
00:000001E6 4C074403        	     1R 	mulu.l		d7,d3:d4
                            	     2R 	
00:000001EA 4C074403        	     1R 	mulu.l		d7,d3:d4
                            	     2R 	
00:000001EE 4C074403        	     1R 	mulu.l		d7,d3:d4
                            	     2R 	
00:000001F2 4C074403        	     1R 	mulu.l		d7,d3:d4
                            	     2R 	
00:000001F6 4C074403        	     1R 	mulu.l		d7,d3:d4
                            	     2R 	
00:000001FA 4C074403        	     1R 	mulu.l		d7,d3:d4
                            	     2R 	
00:000001FE 4C074403        	     1R 	mulu.l		d7,d3:d4
                            	     2R 	
00:00000202 4C074403        	     1R 	mulu.l		d7,d3:d4
                            	     2R 	
00:00000206 4C074403        	     1R 	mulu.l		d7,d3:d4
                            	     2R 	
00:0000020A 4C074403        	     1R 	mulu.l		d7,d3:d4
                            	     2R 	
00:0000020E 4C074403        	     1R 	mulu.l		d7,d3:d4
                            	     2R 	
00:00000212 4C074403        	     1R 	mulu.l		d7,d3:d4
                            	     2R 	
00:00000216 4C074403        	     1R 	mulu.l		d7,d3:d4
                            	     2R 	
00:0000021A 4C074403        	     1R 	mulu.l		d7,d3:d4
                            	     2R 	
                            	   405: 	;
00:0000021E 51C9FFBC        	   406: 	dbra		d1,.mul_loop
00:00000222 51CAFFAC        	   407: 	dbra 		d2,.mul_outer_loop
00:00000226 4E75            	   408: .err:	rts
                            	   409: 
                            	   410: 
                            	   411: 
                            	   412: 
                            	   413: *-----------------------------------------------------------------------------*
                            	   414: *	Float FMUL,FDIV,FADD,FNEG,FSQRT,FCMP,FABS,FREM combined speed test
                            	   415: *-----------------------------------------------------------------------------*
                            	   416: fprim_test:
                            	   417: *-----------------------------------------------------------------------------*
00:00000228 243AFDDC        	   418: 	move.l		bas_params(pc),d2
00:0000022C 5382            	   419: 	subq.l		#1,d2
00:0000022E 6B50            	   420: 	bmi.s		.err
00:00000230 F227E0FF        	   421: 	fmovem		fp0-fp7,-(sp)
                            	   422: .fprim_outer_loop:
00:00000234 F23C44003F8020C5	   423: 	fmove.s		#1.001,fp0
00:0000023C F2000080        	   424: 	fmove.x		fp0,fp1
00:00000240 F2000100        	   425: 	fmove.x		fp0,fp2
00:00000244 F2000180        	   426: 	fmove.x		fp0,fp3
00:00000248 F2000200        	   427: 	fmove.x		fp0,fp4
00:0000024C F2000280        	   428: 	fmove.x		fp0,fp5
00:00000250 323C007F        	   429: 	move.w		#(1024/8)-1,d1 ; 1024 loops
                            	   430: .fprim_loop:
                            	   431: 	;
00:00000254 F20009A3        	   432: 	fmul.x		fp2,fp3
00:00000258 F20012A0        	   433: 	fdiv.x		fp4,fp5
00:0000025C F20000A2        	   434: 	fadd.x		fp0,fp1
00:00000260 F200169A        	   435: 	fneg.x		fp5
00:00000264 F2000D84        	   436: 	fsqrt.x		fp3
00:00000268 F20012B8        	   437: 	fcmp.x		fp4,fp5
00:0000026C F2000498        	   438: 	fabs.x		fp1
00:00000270 F2000E25        	   439: 	frem.x		fp3,fp4
                            	   440: 	;
00:00000274 51C9FFDE        	   441: 	dbra		d1,.fprim_loop
00:00000278 51CAFFBA        	   442: 	dbra 		d2,.fprim_outer_loop
00:0000027C F21FD0FF        	   443: 	fmovem		(sp)+,fp0-fp7
00:00000280 4E75            	   444: .err:	rts
                            	   445: 
                            	   446: *-----------------------------------------------------------------------------*
                            	   447: *	Float pow() (FLOG+FETOX) composite speed test
                            	   448: *-----------------------------------------------------------------------------*
                            	   449: fpow_test:
                            	   450: *-----------------------------------------------------------------------------*
00:00000282 243AFD82        	   451: 	move.l		bas_params(pc),d2
00:00000286 5382            	   452: 	subq.l		#1,d2
00:00000288 6B44            	   453: 	bmi.s		.err
00:0000028A F227E0FF        	   454: 	fmovem		fp0-fp7,-(sp)
                            	   455: .fpow_outer_loop:
00:0000028E F23C44003F8020C5	   456: 	fmove.s		#1.001,fp0
00:00000296 F2000080        	   457: 	fmove.x		fp0,fp1
00:0000029A F2000100        	   458: 	fmove.x		fp0,fp2
00:0000029E 323C01FF        	   459: 	move.w		#(1024/2)-1,d1 ; 1024 loops
                            	   460: .fpow_loop:
                            	   461: 	;
00:000002A2 F2000800        	   462: 	fmove.x		fp2,fp0
00:000002A6 F2000014        	   463: 	flogn.x		fp0
00:000002AA F2000423        	   464:         fmul.x		fp1,fp0
00:000002AE F2000010        	   465:         fetox.x		fp0
                            	   466:         ;
00:000002B2 F2000800        	   467: 	fmove.x		fp2,fp0
00:000002B6 F2000014        	   468: 	flogn.x		fp0
00:000002BA F2000423        	   469:         fmul.x		fp1,fp0
00:000002BE F2000010        	   470:         fetox.x		fp0
                            	   471: 	;
00:000002C2 51C9FFDE        	   472: 	dbra		d1,.fpow_loop
00:000002C6 51CAFFC6        	   473: 	dbra 		d2,.fpow_outer_loop
00:000002CA F21FD0FF        	   474: 	fmovem		(sp)+,fp0-fp7
00:000002CE 4E75            	   475: .err:	rts
                            	   476: 
                            	   477: *-----------------------------------------------------------------------------*
                            	   478: *	Float FTRIG (FSIN,FCOS,FTAN) speed test
                            	   479: *-----------------------------------------------------------------------------*
                            	   480: ftrig_test
                            	   481: *-----------------------------------------------------------------------------*
00:000002D0 243AFD34        	   482: 	move.l		bas_params(pc),d2
00:000002D4 5382            	   483: 	subq.l		#1,d2
00:000002D6 6B58            	   484: 	bmi.s		.err
00:000002D8 F227E0FF        	   485: 	fmovem		fp0-fp7,-(sp)
                            	   486: .ftrig_outer_loop:
00:000002DC 323C007F        	   487: 	move.w		#(1024/8)-1,d1 ; 1024 loops
                            	   488: .ftrig_loop:
                            	   489: 	;
00:000002E0 F23C44003F8020C5	   490: 	fmove.s		#1.001,fp0
00:000002E8 F2000080        	   491: 	fmove.x		fp0,fp1
00:000002EC F200000E        	   492: 	fsin.x		fp0
00:000002F0 F2000500        	   493: 	fmove.x		fp1,fp2
00:000002F4 F200049D        	   494: 	fcos.x		fp1
00:000002F8 F2000980        	   495: 	fmove.x		fp2,fp3
00:000002FC F200090F        	   496: 	ftan.x		fp2
                            	   497: 	;
00:00000300 F2000E00        	   498: 	fmove.x		fp3,fp4
00:00000304 F2000D8C        	   499: 	fasin.x		fp3
00:00000308 F2001280        	   500: 	fmove.x		fp4,fp5
00:0000030C F200121C        	   501: 	facos.x		fp4
00:00000310 F2001700        	   502: 	fmove.x		fp5,fp6
00:00000314 F200168A        	   503: 	fatan.x		fp5
                            	   504: 	;
00:00000318 F2001B80        	   505: 	fmove.x		fp6,fp7
00:0000031C F2001B09        	   506: 	ftanh.x		fp6
00:00000320 F2001F8D        	   507: 	fatanh.x	fp7
                            	   508: 	;
00:00000324 51C9FFBA        	   509: 	dbra		d1,.ftrig_loop
00:00000328 51CAFFB2        	   510: 	dbra 		d2,.ftrig_outer_loop
00:0000032C F21FD0FF        	   511: 	fmovem		(sp)+,fp0-fp7
00:00000330 4E75            	   512: .err:	rts
                            	   513: 
                            	   514: 
                            	   515: 
                            	   516: 
                            	   517: *-----------------------------------------------------------------------------*
                            	   518: *	TOS read speed test
                            	   519: *-----------------------------------------------------------------------------*
                            	   520: tos_r_test:
                            	   521: *-----------------------------------------------------------------------------*
00:00000332 243AFCD2        	   522: 	move.l		bas_params(pc),d2
00:00000336 5382            	   523: 	subq.l		#1,d2
00:00000338 6B32            	   524: 	bmi.s		.err
                            	   525: 	; get TOS base
00:0000033A 207804F2        	   526: 	move.l		$4f2.w,a0
                            	   527: 
                            	   528: .tos_outer_loop:
                            	   529: 	; reads
00:0000033E 2C48            	   530: 	movea.l		a0,a6
00:00000340 323C0027        	   531: 	move.w		#(blksize/(8*8*4))-1,d1
                            	   532: .tos_r_loop:
00:00000344 4CDE0EF8        	   533: 	movem.l 	(a6)+,d3-d7/a1-a3
00:00000348 4CDE0EF8        	   534: 	movem.l 	(a6)+,d3-d7/a1-a3
00:0000034C 4CDE0EF8        	   535: 	movem.l 	(a6)+,d3-d7/a1-a3
00:00000350 4CDE0EF8        	   536: 	movem.l 	(a6)+,d3-d7/a1-a3
00:00000354 4CDE0EF8        	   537: 	movem.l 	(a6)+,d3-d7/a1-a3
00:00000358 4CDE0EF8        	   538: 	movem.l 	(a6)+,d3-d7/a1-a3
00:0000035C 4CDE0EF8        	   539: 	movem.l 	(a6)+,d3-d7/a1-a3
00:00000360 4CDE0EF8        	   540: 	movem.l 	(a6)+,d3-d7/a1-a3
00:00000364 51C9FFDE        	   541: 	dbra		d1,.tos_r_loop
00:00000368 51CAFFD4        	   542: 	dbra 		d2,.tos_outer_loop
00:0000036C 4E75            	   543: .err:	rts
                            	   544: 
                            	   545: 
                            	   546: *-----------------------------------------------------------------------------*
                            	   547: * 	default RAM access speed test (read and write)
                            	   548: *-----------------------------------------------------------------------------*
                            	   549: ram_rw_test
                            	   550: *-----------------------------------------------------------------------------*
00:0000036E 243AFC96        	   551: 	move.l		bas_params(pc),d2
                            	   552: 	; Malloc
                            	   553: 	; return block address in D0
00:00000372 2F3C00002810    	   554: 	move.l		#blksize+16,-(sp)
00:00000378 3F3C0048        	   555: 	move.w		#$48,-(sp)
00:0000037C 4E41            	   556: 	trap 		#1
00:0000037E 5C8F            	   557: 	addq.l		#6,sp
                            	   558: 	; if there is no memory available, this return 0
00:00000380 2A40            	   559: 	move.l		d0,a5
00:00000382 4A40            	   560: 	tst.w		d0
00:00000384 6602            	   561: 	bne.s		.cont_ram_test
00:00000386 4E75            	   562: 	rts
                            	   563: 
                            	   564: .cont_ram_test:
                            	   565: 	; align to 16 bytes
00:00000388 D0BC0000000F    	   566: 	add.l		#16-1,d0
00:0000038E C07CFFF0        	   567: 	and.w		#-16,d0
00:00000392 2040            	   568: 	move.l		d0,a0
                            	   569: .ram_outer_loop:
                            	   570: 	;
                            	   571: 	; reads
00:00000394 2C48            	   572: 	movea.l		a0,a6
                            	   573: 	; blk_size/nb_reg*4 used  = nb loops, here we use 8 registers as 10240/(8*4) is an integer
                            	   574: 	; d3, d4, d5, d6, d7, a1, a2, a3
00:00000396 323C0027        	   575: 	move.w		#(blksize/(8*8*4))-1,d1
                            	   576: .ram_r_loop:
00:0000039A 4CDE0EF8        	   577: 	movem.l 	(a6)+,d3-d7/a1-a3
00:0000039E 4CDE0EF8        	   578: 	movem.l 	(a6)+,d3-d7/a1-a3
00:000003A2 4CDE0EF8        	   579: 	movem.l 	(a6)+,d3-d7/a1-a3
00:000003A6 4CDE0EF8        	   580: 	movem.l 	(a6)+,d3-d7/a1-a3
00:000003AA 4CDE0EF8        	   581: 	movem.l 	(a6)+,d3-d7/a1-a3
00:000003AE 4CDE0EF8        	   582: 	movem.l 	(a6)+,d3-d7/a1-a3
00:000003B2 4CDE0EF8        	   583: 	movem.l 	(a6)+,d3-d7/a1-a3
00:000003B6 4CDE0EF8        	   584: 	movem.l 	(a6)+,d3-d7/a1-a3
00:000003BA 51C9FFDE        	   585: 	dbra		d1,.ram_r_loop
                            	   586: 
                            	   587: 	; writes
                            	   588: ;	lea	blksize(a0),a6
00:000003BE 323C0027        	   589: 	move.w		#(blksize/(8*8*4))-1,d1
                            	   590: .ram_w_loop
00:000003C2 48E61F70        	   591: 	movem.l		d3-d7/a1-a3,-(a6)
00:000003C6 48E61F70        	   592: 	movem.l		d3-d7/a1-a3,-(a6)
00:000003CA 48E61F70        	   593: 	movem.l		d3-d7/a1-a3,-(a6)
00:000003CE 48E61F70        	   594: 	movem.l		d3-d7/a1-a3,-(a6)
00:000003D2 48E61F70        	   595: 	movem.l		d3-d7/a1-a3,-(a6)
00:000003D6 48E61F70        	   596: 	movem.l		d3-d7/a1-a3,-(a6)
00:000003DA 48E61F70        	   597: 	movem.l		d3-d7/a1-a3,-(a6)
00:000003DE 48E61F70        	   598: 	movem.l		d3-d7/a1-a3,-(a6)
00:000003E2 51C9FFDE        	   599: 	dbra		d1,.ram_w_loop
                            	   600: 	;
00:000003E6 51CAFFAC        	   601: 	dbra		d2,.ram_outer_loop
                            	   602: 
                            	   603: 	; free
00:000003EA 2F0D            	   604: 	move.l		a5,-(sp)
00:000003EC 3F3C0049        	   605: 	move.w		#$49,-(sp)
00:000003F0 4E41            	   606: 	trap		#1
00:000003F2 5C8F            	   607: 	addq.l		#6,sp
00:000003F4 4E75            	   608: 	rts
                            	   609: 
                            	   610: *-----------------------------------------------------------------------------*
                            	   611: * 	ST-RAM access speed test (read and write)
                            	   612: *-----------------------------------------------------------------------------*
                            	   613: stram_rw_test
                            	   614: *-----------------------------------------------------------------------------*
00:000003F6 243AFC0E        	   615: 	move.l		bas_params(pc),d2
                            	   616: 	; Mxalloc
                            	   617: 	; return block address in A0
00:000003FA 4267            	   618: 	move.w		#stram_mode,-(sp)
00:000003FC 2F3C00002810    	   619: 	move.l		#blksize+16,-(sp)
00:00000402 3F3C0044        	   620: 	move.w		#$44,-(sp)
00:00000406 4E41            	   621: 	trap		#1
00:00000408 508F            	   622: 	addq.l		#8,sp
                            	   623: 	; if there is no memory available, this return 0
00:0000040A 2A40            	   624: 	move.l		d0,a5
00:0000040C 4A40            	   625: 	tst.w		d0
00:0000040E 6602            	   626: 	bne.s		.cont_ram_test
00:00000410 4E75            	   627: 	rts
                            	   628: 
                            	   629: .cont_ram_test:
                            	   630: 	; align to 16 bytes
00:00000412 D0BC0000000F    	   631: 	add.l		#16-1,d0
00:00000418 C07CFFF0        	   632: 	and.w		#-16,d0
00:0000041C 2040            	   633: 	move.l		d0,a0
                            	   634: .ram_outer_loop:
                            	   635: 	;
                            	   636: 	; reads
00:0000041E 2C48            	   637: 	movea.l		a0,a6
                            	   638: 	; blk_size/nb_reg*4 used  = nb loops, here we use 8 registers as 10240/(8*4) is an integer
                            	   639: 	; d3, d4, d5, d6, d7, a1, a2, a3
00:00000420 323C0027        	   640: 	move.w		#(blksize/(8*8*4))-1,d1
                            	   641: .ram_r_loop:
00:00000424 4CDE0EF8        	   642: 	movem.l 	(a6)+,d3-d7/a1-a3
00:00000428 4CDE0EF8        	   643: 	movem.l 	(a6)+,d3-d7/a1-a3
00:0000042C 4CDE0EF8        	   644: 	movem.l 	(a6)+,d3-d7/a1-a3
00:00000430 4CDE0EF8        	   645: 	movem.l 	(a6)+,d3-d7/a1-a3
00:00000434 4CDE0EF8        	   646: 	movem.l 	(a6)+,d3-d7/a1-a3
00:00000438 4CDE0EF8        	   647: 	movem.l 	(a6)+,d3-d7/a1-a3
00:0000043C 4CDE0EF8        	   648: 	movem.l 	(a6)+,d3-d7/a1-a3
00:00000440 4CDE0EF8        	   649: 	movem.l 	(a6)+,d3-d7/a1-a3
00:00000444 51C9FFDE        	   650: 	dbra		d1,.ram_r_loop
                            	   651: 
                            	   652: 	; writes
                            	   653: ;	lea	blksize(a0),a6
00:00000448 323C0027        	   654: 	move.w		#(blksize/(8*8*4))-1,d1
                            	   655: .ram_w_loop
00:0000044C 48E61F70        	   656: 	movem.l		d3-d7/a1-a3,-(a6)
00:00000450 48E61F70        	   657: 	movem.l		d3-d7/a1-a3,-(a6)
00:00000454 48E61F70        	   658: 	movem.l		d3-d7/a1-a3,-(a6)
00:00000458 48E61F70        	   659: 	movem.l		d3-d7/a1-a3,-(a6)
00:0000045C 48E61F70        	   660: 	movem.l		d3-d7/a1-a3,-(a6)
00:00000460 48E61F70        	   661: 	movem.l		d3-d7/a1-a3,-(a6)
00:00000464 48E61F70        	   662: 	movem.l		d3-d7/a1-a3,-(a6)
00:00000468 48E61F70        	   663: 	movem.l		d3-d7/a1-a3,-(a6)
00:0000046C 51C9FFDE        	   664: 	dbra		d1,.ram_w_loop
                            	   665: 	;
00:00000470 51CAFFAC        	   666: 	dbra		d2,.ram_outer_loop
                            	   667: 
                            	   668: 	; free
00:00000474 2F0D            	   669: 	move.l		a5,-(sp)
00:00000476 3F3C0049        	   670: 	move.w		#$49,-(sp)
00:0000047A 4E41            	   671: 	trap		#1
00:0000047C 5C8F            	   672: 	addq.l		#6,sp
00:0000047E 4E75            	   673: 	rts
                            	   674: 
                            	   675: *-----------------------------------------------------------------------------*
                            	   676: * 	TT-RAM access speed test (read and write)
                            	   677: *-----------------------------------------------------------------------------*
                            	   678: ttram_rw_test
                            	   679: *-----------------------------------------------------------------------------*
00:00000480 243AFB84        	   680: 	move.l		bas_params(pc),d2
                            	   681: 	; Mxalloc
                            	   682: 	; return block address in A0
00:00000484 3F3C0001        	   683: 	move.w		#ttram_mode,-(sp)
00:00000488 2F3C00002810    	   684: 	move.l		#blksize+16,-(sp)
00:0000048E 3F3C0044        	   685: 	move.w		#$44,-(sp)
00:00000492 4E41            	   686: 	trap		#1
00:00000494 508F            	   687: 	addq.l		#8,sp
                            	   688: 	; if there is no memory available, this return 0
00:00000496 2A40            	   689: 	move.l		d0,a5
00:00000498 4A40            	   690: 	tst.w		d0
00:0000049A 6602            	   691: 	bne.s		.cont_ram_test
00:0000049C 4E75            	   692: 	rts
                            	   693: 
                            	   694: .cont_ram_test:
                            	   695: 	; align to 16 bytes
00:0000049E D0BC0000000F    	   696: 	add.l		#16-1,d0
00:000004A4 C07CFFF0        	   697: 	and.w		#-16,d0
00:000004A8 2040            	   698: 	move.l		d0,a0
                            	   699: .ram_outer_loop:
                            	   700: 	;
                            	   701: 	; reads
00:000004AA 2C48            	   702: 	movea.l		a0,a6
                            	   703: 	; blk_size/nb_reg*4 used  = nb loops, here we use 8 registers as 10240/(8*4) is an integer
                            	   704: 	; d3, d4, d5, d6, d7, a1, a2, a3
00:000004AC 323C0027        	   705: 	move.w		#(blksize/(8*8*4))-1,d1
                            	   706: .ram_r_loop:
00:000004B0 4CDE0EF8        	   707: 	movem.l 	(a6)+,d3-d7/a1-a3
00:000004B4 4CDE0EF8        	   708: 	movem.l 	(a6)+,d3-d7/a1-a3
00:000004B8 4CDE0EF8        	   709: 	movem.l 	(a6)+,d3-d7/a1-a3
00:000004BC 4CDE0EF8        	   710: 	movem.l 	(a6)+,d3-d7/a1-a3
00:000004C0 4CDE0EF8        	   711: 	movem.l 	(a6)+,d3-d7/a1-a3
00:000004C4 4CDE0EF8        	   712: 	movem.l 	(a6)+,d3-d7/a1-a3
00:000004C8 4CDE0EF8        	   713: 	movem.l 	(a6)+,d3-d7/a1-a3
00:000004CC 4CDE0EF8        	   714: 	movem.l 	(a6)+,d3-d7/a1-a3
00:000004D0 51C9FFDE        	   715: 	dbra		d1,.ram_r_loop
                            	   716: 
                            	   717: 	; writes
                            	   718: ;	lea		blksize(a0),a6
00:000004D4 323C0027        	   719: 	move.w		#(blksize/(8*8*4))-1,d1
                            	   720: .ram_w_loop
00:000004D8 48E61F70        	   721: 	movem.l		d3-d7/a1-a3,-(a6)
00:000004DC 48E61F70        	   722: 	movem.l		d3-d7/a1-a3,-(a6)
00:000004E0 48E61F70        	   723: 	movem.l		d3-d7/a1-a3,-(a6)
00:000004E4 48E61F70        	   724: 	movem.l		d3-d7/a1-a3,-(a6)
00:000004E8 48E61F70        	   725: 	movem.l		d3-d7/a1-a3,-(a6)
00:000004EC 48E61F70        	   726: 	movem.l		d3-d7/a1-a3,-(a6)
00:000004F0 48E61F70        	   727: 	movem.l		d3-d7/a1-a3,-(a6)
00:000004F4 48E61F70        	   728: 	movem.l		d3-d7/a1-a3,-(a6)
00:000004F8 51C9FFDE        	   729: 	dbra		d1,.ram_w_loop
                            	   730: 	;
00:000004FC 51CAFFAC        	   731: 	dbra		d2,.ram_outer_loop
                            	   732: 
                            	   733: 	; free
00:00000500 2F0D            	   734: 	move.l		a5,-(sp)
00:00000502 3F3C0049        	   735: 	move.w		#$49,-(sp)
00:00000506 4E41            	   736: 	trap		#1
00:00000508 5C8F            	   737: 	addq.l		#6,sp
00:0000050A 4E75            	   738: 	rts
                            	   739: 
                            	   740: 
                            	   741: 
                            	   742: *-----------------------------------------------------------------------------*
                            	   743: * 	Video RAM access speed test (read and write)
                            	   744: *-----------------------------------------------------------------------------*
                            	   745: vram_rw_test
                            	   746: *-----------------------------------------------------------------------------*
00:0000050C 243AFAF8        	   747: 	move.l		bas_params(pc),d2
                            	   748: 	; Malloc scratch
                            	   749: 	; return block address in D0
00:00000510 2F3C00002800    	   750: 	move.l		#blksize,-(sp)
00:00000516 3F3C0048        	   751: 	move.w		#$48,-(sp)
00:0000051A 4E41            	   752: 	trap 		#1
00:0000051C 5C8F            	   753: 	addq.l		#6,sp
                            	   754: 	; if there is no memory available, this return 0
00:0000051E 2A40            	   755: 	move.l		d0,a5
00:00000520 4A40            	   756: 	tst.w		d0
00:00000522 6602            	   757: 	bne.s		.cont_ram_test
00:00000524 4E75            	   758: 	rts
                            	   759: 
                            	   760: 
                            	   761: .cont_ram_test:
                            	   762: 	; Physbase
00:00000526 3F3C0002        	   763: 	move.w		#2,-(sp)
00:0000052A 4E4E            	   764: 	trap		#14
00:0000052C 548F            	   765: 	addq.l		#2,sp
00:0000052E 2840            	   766: 	move.l		d0,a4
                            	   767: 
                            	   768: 	; backup display
00:00000530 2C4C            	   769: 	movea.l		a4,a6
00:00000532 204D            	   770: 	move.l		a5,a0
00:00000534 223C0000013F    	   771: 	move.l		#(blksize/(8*4))-1,d1
                            	   772: .store:
00:0000053A 4CDE0EF8        	   773: 	movem.l 	(a6)+,d3-d7/a1-a3
00:0000053E 48D00EF8        	   774: 	movem.l 	d3-d7/a1-a3,(a0)
00:00000542 41E80020        	   775: 	lea		8*4(a0),a0
00:00000546 51C9FFF2        	   776: 	dbra		d1,.store
                            	   777: 
                            	   778: .ram_outer_loop:
                            	   779: 	;
                            	   780: 	; reads
00:0000054A 2C4C            	   781: 	movea.l		a4,a6
                            	   782: 	; blk_size/nb_reg*4 used  = nb loops, here we use 8 registers as 10240/(8*4) is an integer
                            	   783: 	; d3, d4, d5, d6, d7, a1, a2, a3
00:0000054C 323C0027        	   784: 	move.w		#(blksize/(8*8*4))-1,d1
                            	   785: .ram_r_loop:
00:00000550 4CDE0EF8        	   786: 	movem.l 	(a6)+,d3-d7/a1-a3
00:00000554 4CDE0EF8        	   787: 	movem.l 	(a6)+,d3-d7/a1-a3
00:00000558 4CDE0EF8        	   788: 	movem.l 	(a6)+,d3-d7/a1-a3
00:0000055C 4CDE0EF8        	   789: 	movem.l 	(a6)+,d3-d7/a1-a3
00:00000560 4CDE0EF8        	   790: 	movem.l 	(a6)+,d3-d7/a1-a3
00:00000564 4CDE0EF8        	   791: 	movem.l 	(a6)+,d3-d7/a1-a3
00:00000568 4CDE0EF8        	   792: 	movem.l 	(a6)+,d3-d7/a1-a3
00:0000056C 4CDE0EF8        	   793: 	movem.l 	(a6)+,d3-d7/a1-a3
00:00000570 51C9FFDE        	   794: 	dbra		d1,.ram_r_loop
                            	   795: 
                            	   796: 	; writes
                            	   797: ;	lea		blksize(a0),a6
00:00000574 323C0027        	   798: 	move.w		#(blksize/(8*8*4))-1,d1
                            	   799: .ram_w_loop
00:00000578 48E61F70        	   800: 	movem.l		d3-d7/a1-a3,-(a6)
00:0000057C 48E61F70        	   801: 	movem.l		d3-d7/a1-a3,-(a6)
00:00000580 48E61F70        	   802: 	movem.l		d3-d7/a1-a3,-(a6)
00:00000584 48E61F70        	   803: 	movem.l		d3-d7/a1-a3,-(a6)
00:00000588 48E61F70        	   804: 	movem.l		d3-d7/a1-a3,-(a6)
00:0000058C 48E61F70        	   805: 	movem.l		d3-d7/a1-a3,-(a6)
00:00000590 48E61F70        	   806: 	movem.l		d3-d7/a1-a3,-(a6)
00:00000594 48E61F70        	   807: 	movem.l		d3-d7/a1-a3,-(a6)
00:00000598 51C9FFDE        	   808: 	dbra		d1,.ram_w_loop
                            	   809: 	;
00:0000059C 51CAFFAC        	   810: 	dbra		d2,.ram_outer_loop
                            	   811: 
                            	   812: 	; restore display
00:000005A0 2C4D            	   813: 	move.l		a5,a6
00:000005A2 204C            	   814: 	movea.l		a4,a0
00:000005A4 223C0000013F    	   815: 	move.l		#(blksize/(8*4))-1,d1
                            	   816: .restore:
00:000005AA 4CDE0EF8        	   817: 	movem.l 	(a6)+,d3-d7/a1-a3
00:000005AE 48D00EF8        	   818: 	movem.l 	d3-d7/a1-a3,(a0)
00:000005B2 41E80020        	   819: 	lea		8*4(a0),a0
00:000005B6 51C9FFF2        	   820: 	dbra		d1,.restore
                            	   821: 
                            	   822: 	; free scratch
00:000005BA 2F0D            	   823: 	move.l		a5,-(sp)
00:000005BC 3F3C0049        	   824: 	move.w		#$49,-(sp)
00:000005C0 4E41            	   825: 	trap		#1
00:000005C2 5C8F            	   826: 	addq.l		#6,sp
00:000005C4 4E75            	   827: 	rts
                            	   828: 
                            	   829: 
                            	   830: *-----------------------------------------------------------------------------*
                            	   831: d_cache_on:
                            	   832: *-----------------------------------------------------------------------------*
                            	   833: ;	move.l		bas_params(pc),d0
                            	   834: ;	lea		processor(pc),a1
                            	   835: ;	move.l		d0,(a1)
                            	   836: 
00:000005C6 43FAFA42        	   837: 	lea		processor(pc),a1
00:000005CA 2011            	   838: 	move.l		(a1),d0
                            	   839: 
00:000005CC B0BC000109A0    	   840: 	cmp.l		#68000,d0
00:000005D2 67000164        	   841: 	beq		get_cache_state_
                            	   842: 	
00:000005D6 B0BC000109DC    	   843: 	cmp.l		#68060,d0
00:000005DC 671C            	   844: 	beq.s		.proc060
00:000005DE B0BC000109C8    	   845: 	cmp.l		#68040,d0
00:000005E4 6726            	   846: 	beq.s		.proc040
                            	   847: .proc02030:
00:000005E6 4E7A2002        	   848: 	movec		cacr,d2
00:000005EA 0242001F        	   849: 	andi.w		#d030_cache_mask,d2		; masks dcache bits
00:000005EE 00423900        	   850: 	ori.w		#denab030|dbrst030|dclr030|wa030,d2	; enables dcache
00:000005F2 4E7B2002        	   851: 	movec		d2,cacr
00:000005F6 60000140        	   852: 	bra		get_cache_state_
                            	   853: .proc060:
00:000005FA 4E7A2002        	   854: 	movec		cacr,d2
00:000005FE 84BC80000000    	   855: 	or.l		#denab060,d2
00:00000604 4E7B2002        	   856: 	movec		d2,cacr
00:00000608 6000012E        	   857: 	bra		get_cache_state_
                            	   858: .proc040:
00:0000060C 4E7A2002        	   859: 	movec		cacr,d2
00:00000610 84BC80000000    	   860: 	or.l		#denab040,d2
00:00000616 4E7B2002        	   861: 	movec		d2,cacr
00:0000061A 6000011C        	   862: 	bra		get_cache_state_
                            	   863: 
                            	   864: 
                            	   865: *-----------------------------------------------------------------------------*
                            	   866: d_cache_off:
                            	   867: *-----------------------------------------------------------------------------*
                            	   868: ;	move.l		bas_params(pc),d0
                            	   869: ;	lea		processor(pc),a1
                            	   870: ;	move.l		d0,(a1)
                            	   871: 
00:0000061E 43FAF9EA        	   872: 	lea		processor(pc),a1
00:00000622 2011            	   873: 	move.l		(a1),d0
                            	   874: 
00:00000624 B0BC000109A0    	   875: 	cmp.l		#68000,d0
00:0000062A 6700010C        	   876: 	beq		get_cache_state_
                            	   877: 
00:0000062E B0BC000109DC    	   878: 	cmp.l		#68060,d0
00:00000634 671C            	   879: 	beq.s		.proc060
00:00000636 B0BC000109C8    	   880: 	cmp.l		#68040,d0
00:0000063C 6728            	   881: 	beq.s		.proc040
                            	   882: .proc02030:
00:0000063E 4E7A2002        	   883: 	movec		cacr,d2
00:00000642 0242001F        	   884: 	andi.w		#d030_cache_mask,d2		; masks dcache bits
00:00000646 00420800        	   885: 	ori.w		#dclr030,d2  			; disables d_cache
00:0000064A 4E7B2002        	   886: 	movec		d2,cacr
00:0000064E 600000E8        	   887: 	bra		get_cache_state_
                            	   888: .proc060:
00:00000652 F478            	   889: 	cpusha		dc
00:00000654 4E7A2002        	   890: 	movec		cacr,d2
00:00000658 C4BC7FFFFFFF    	   891: 	and.l		#~denab060,d2
00:0000065E 4E7B2002        	   892: 	movec		d2,cacr
00:00000662 600000D4        	   893: 	bra		get_cache_state_
                            	   894: .proc040:
00:00000666 F478            	   895: 	cpusha		dc
00:00000668 4E7A2002        	   896: 	movec		cacr,d2
00:0000066C C4BC7FFFFFFF    	   897: 	and.l		#~denab040,d2
00:00000672 4E7B2002        	   898: 	movec		d2,cacr
00:00000676 600000C0        	   899: 	bra		get_cache_state_
                            	   900: 
                            	   901: *-----------------------------------------------------------------------------*
                            	   902: i_cache_on:
                            	   903: *-----------------------------------------------------------------------------*
                            	   904: ;	move.l		bas_params(pc),d0
                            	   905: ;	lea		processor(pc),a1
                            	   906: ;	move.l		d0,(a1)
                            	   907: 
00:0000067A 43FAF98E        	   908: 	lea		processor(pc),a1
00:0000067E 2011            	   909: 	move.l		(a1),d0
                            	   910: 
00:00000680 B0BC000109A0    	   911: 	cmp.l		#68000,d0
00:00000686 670000B0        	   912: 	beq		get_cache_state_
                            	   913: 
00:0000068A B0BC000109DC    	   914: 	cmp.l		#68060,d0
00:00000690 671C            	   915: 	beq.s		.proc060
00:00000692 B0BC000109C8    	   916: 	cmp.l		#68040,d0
00:00000698 6724            	   917: 	beq.s		.proc040
                            	   918: .proc02030:
00:0000069A 4E7A2002        	   919: 	movec		cacr,d2
00:0000069E 02423F00        	   920: 	andi.w		#i030_cache_mask,d2		; masks icache bits
00:000006A2 00420019        	   921: 	ori.w		#ienab030|ibrst030|iclr030,d2	; enables icache
00:000006A6 4E7B2002        	   922: 	movec		d2,cacr
00:000006AA 6000008C        	   923: 	bra		get_cache_state_
                            	   924: .proc060:
00:000006AE 4E7A2002        	   925: 	movec		cacr,d2
00:000006B2 84BC00008000    	   926: 	or.l		#ienab060,d2
00:000006B8 4E7B2002        	   927: 	movec		d2,cacr
00:000006BC 607A            	   928: 	bra		get_cache_state_
                            	   929: .proc040:
00:000006BE 4E7A2002        	   930: 	movec		cacr,d2
00:000006C2 84BC00008000    	   931: 	or.l		#ienab040,d2
00:000006C8 4E7B2002        	   932: 	movec		d2,cacr
00:000006CC 606A            	   933: 	bra		get_cache_state_
                            	   934: 
                            	   935: *-----------------------------------------------------------------------------*
                            	   936: i_cache_off:
                            	   937: *-----------------------------------------------------------------------------*
                            	   938: ;	move.l		bas_params(pc),d0
                            	   939: ;	lea		processor(pc),a1
                            	   940: ;	move.l		d0,(a1)
                            	   941: 
00:000006CE 43FAF93A        	   942: 	lea		processor(pc),a1
00:000006D2 2011            	   943: 	move.l		(a1),d0
                            	   944: 
00:000006D4 B0BC000109A0    	   945: 	cmp.l		#68000,d0
00:000006DA 675C            	   946: 	beq		get_cache_state_
                            	   947: 
00:000006DC B0BC000109DC    	   948: 	cmp.l		#68060,d0
00:000006E2 671A            	   949: 	beq.s		.proc060
00:000006E4 B0BC000109C8    	   950: 	cmp.l		#68040,d0
00:000006EA 6724            	   951: 	beq.s		.proc040
                            	   952: .proc02030:
00:000006EC 4E7A2002        	   953: 	movec		cacr,d2
00:000006F0 02423F00        	   954: 	andi.w		#i030_cache_mask,d2		; masks icache bits
00:000006F4 00420008        	   955: 	ori.w		#iclr030,d2			; enables icache
00:000006F8 4E7B2002        	   956: 	movec		d2,cacr
00:000006FC 603A            	   957: 	bra		get_cache_state_
                            	   958: .proc060:
00:000006FE F4B8            	   959: 	cpusha		ic
00:00000700 4E7A2002        	   960: 	movec		cacr,d2
00:00000704 C4BCFFFF7FFF    	   961: 	and.l		#~ienab060,d2
00:0000070A 4E7B2002        	   962: 	movec		d2,cacr
00:0000070E 6028            	   963: 	bra		get_cache_state_
                            	   964: .proc040:
00:00000710 F4B8            	   965: 	cpusha		ic
00:00000712 4E7A2002        	   966: 	movec		cacr,d2
00:00000716 C4BCFFFF7FFF    	   967: 	and.l		#~ienab040,d2
00:0000071C 4E7B2002        	   968: 	movec		d2,cacr
00:00000720 6016            	   969: 	bra		get_cache_state_
                            	   970: 
                            	   971: 
                            	   972: *-----------------------------------------------------------------------------*
                            	   973: get_cache_state:
                            	   974: *-----------------------------------------------------------------------------*
                            	   975: ;	move.l		bas_params(pc),d0
                            	   976: ;	lea		processor(pc),a1
                            	   977: ;	move.l		d0,(a1)
                            	   978: 
00:00000722 43FAF8E6        	   979: 	lea		processor(pc),a1
00:00000726 2011            	   980: 	move.l		(a1),d0
00:00000728 610E            	   981: 	bsr		get_cache_state_
                            	   982: 	
00:0000072A 207AF8DA        	   983: 	move.l		bas_params(pc),a0
00:0000072E 43FAF8D2        	   984: 	lea		d_cache_state(pc),a1
00:00000732 30D9            	   985: 	move.w		(a1)+,(a0)+
00:00000734 30D9            	   986: 	move.w		(a1)+,(a0)+
00:00000736 4E75            	   987: 	rts
                            	   988: 	
                            	   989: *-----------------------------------------------------------------------------*
                            	   990: get_cache_state_:
                            	   991: *-----------------------------------------------------------------------------*
00:00000738 B0BC000109A0    	   992: 	cmp.l		#68000,d0
00:0000073E 672C            	   993: 	beq.s		.err
                            	   994: 	
00:00000740 B0BC000109DC    	   995: 	cmp.l		#68060,d0
00:00000746 6726            	   996: 	beq.s		.proc060
00:00000748 B0BC000109C8    	   997: 	cmp.l		#68040,d0
00:0000074E 673C            	   998: 	beq.s		.proc040
                            	   999: .proc02030:
00:00000750 4E7A2002        	  1000: 	movec		cacr,d2
00:00000754 47FAF8AC        	  1001: 	lea		d_cache_state(pc),a3
00:00000758 3602            	  1002: 	move.w		d2,d3
                            	  1003: 	; mask i_cache bits
00:0000075A 02433F00        	  1004: 	andi.w		#i030_cache_mask,d3
                            	  1005: 	; copy d_cache_state
00:0000075E 3683            	  1006: 	move.w		d3,(a3)
00:00000760 3602            	  1007: 	move.w 		d2,d3
00:00000762 47FAF8A0        	  1008: 	lea		i_cache_state(pc),a3
                            	  1009: 	; mask d_cache bits
00:00000766 0243001F        	  1010: 	andi.w 		#d030_cache_mask,d3
                            	  1011: 	; copy i_cache_state
00:0000076A 3683            	  1012: 	move.w		d3,(a3)
00:0000076C 4E75            	  1013: .err:	rts
                            	  1014: .proc060:
00:0000076E 4E7A2002        	  1015: 	movec		cacr,d2
00:00000772 C47C8000        	  1016: 	and.w		#ienab060,d2		; bit #15
00:00000776 47FAF88C        	  1017: 	lea		i_cache_state(pc),a3
00:0000077A 3682            	  1018: 	move.w		d2,(a3)
00:0000077C C4BC80000000    	  1019: 	and.l		#denab060,d2		; bit #31 (move to bit #15)
00:00000782 4842            	  1020: 	swap		d2
00:00000784 47FAF87C        	  1021: 	lea		d_cache_state(pc),a3
00:00000788 3682            	  1022: 	move.w		d2,(a3)		
00:0000078A 4E75            	  1023: 	rts
                            	  1024: .proc040:
00:0000078C 4E7A2002        	  1025: 	movec		cacr,d2
00:00000790 C47C8000        	  1026: 	and.w		#ienab040,d2		; bit #15
00:00000794 47FAF86E        	  1027: 	lea		i_cache_state(pc),a3
00:00000798 3682            	  1028: 	move.w		d2,(a3)
00:0000079A C4BC80000000    	  1029: 	and.l		#denab040,d2		; bit #31 (move to bit #15)
00:000007A0 4842            	  1030: 	swap		d2
00:000007A2 47FAF85E        	  1031: 	lea		d_cache_state(pc),a3
00:000007A6 3682            	  1032: 	move.w		d2,(a3)		
00:000007A8 4E75            	  1033: 	rts
                            	  1034: 
                            	  1035: 
                            	  1036: *-----------------------------------------------------------------------------*
                            	  1037: sys_setcpu:
                            	  1038: *-----------------------------------------------------------------------------*
00:000007AA 203AF85A        	  1039: 	move.l		bas_params(pc),d0
00:000007AE 43FAF85A        	  1040: 	lea		processor(pc),a1
00:000007B2 2280            	  1041: 	move.l		d0,(a1)
00:000007B4 4E75            	  1042: 	rts
                            	  1043: 	
                            	  1044: 
                            	  1045: sys_sleep:
00:000007B6 41FAF85A        	  1046: 	lea		sys_state(pc),a0
00:000007BA 007C0700        	  1047: 	ori.w		#$0700,sr
00:000007BE 20F80070        	  1048: 	move.l		$70.w,(a0)+
00:000007C2 20F80114        	  1049: 	move.l		$114.w,(a0)+
00:000007C6 43FA00DC        	  1050: 	lea		new_vbi(pc),a1
00:000007CA 21C90070        	  1051: 	move.l		a1,$70.w
00:000007CE 43FA00DE        	  1052: 	lea		new_tc(pc),a1
00:000007D2 21C90114        	  1053: 	move.l		a1,timerc.w
00:000007D6 027CF3FF        	  1054: 	andi.w		#$f3ff,sr
00:000007DA 4E75            	  1055: 	rts
                            	  1056: 
                            	  1057: *-----------------------------------------------------------------------------*
                            	  1058: sys_wake:
                            	  1059: *-----------------------------------------------------------------------------*
00:000007DC 41FAF834        	  1060: 	lea		sys_state(pc),a0
00:000007E0 007C0700        	  1061: 	ori.w		#$0700,sr
00:000007E4 21D80070        	  1062: 	move.l		(a0)+,$70.w
00:000007E8 21D80114        	  1063: 	move.l		(a0)+,timerc.w
00:000007EC 027CF3FF        	  1064: 	andi.w		#$f3ff,sr
00:000007F0 4E75            	  1065: 	rts
                            	  1066: 
                            	  1067: *-----------------------------------------------------------------------------*
                            	  1068: sys_tstart:
                            	  1069: *-----------------------------------------------------------------------------*
00:000007F2 41FAF81A        	  1070: 	lea		starttime(pc),a0
00:000007F6 203804BA        	  1071: 	move.l		$4ba.w,d0
00:000007FA 223804BA        	  1072: .wait:	move.l		$4ba.w,d1
00:000007FE B081            	  1073: 	cmp.l		d1,d0
00:00000800 67F8            	  1074: 	beq.s		.wait
00:00000802 2081            	  1075: 	move.l		d1,(a0)
00:00000804 4E75            	  1076: 	rts
                            	  1077: 
                            	  1078: *-----------------------------------------------------------------------------*
                            	  1079: sys_tstop:
                            	  1080: *-----------------------------------------------------------------------------*
00:00000806 243AF7FE        	  1081: 	move.l		bas_params(pc),d2
00:0000080A 670C            	  1082: 	beq.s		.err
00:0000080C 2242            	  1083: 	move.l		d2,a1
00:0000080E 203804BA        	  1084: 	move.l		$4ba.w,d0
00:00000812 90BAF7FA        	  1085: 	sub.l		starttime(pc),d0
00:00000816 2280            	  1086: 	move.l		d0,(a1)	
00:00000818 4E75            	  1087: .err:	rts
                            	  1088: 
                            	  1089: *-----------------------------------------------------------------------------*
                            	  1090: 
                            	  1091: 
                            	  1092: 
                            	  1093: *-------------------------------------------------------*
                            	  1094: _ST_FlushInput:
                            	  1095: *-------------------------------------------------------*
00:0000081A 4E75            	  1096:         rts
00:0000081C 41F8FC00        	  1097: 	lea		$fffffc00.w,a0
00:00000820 600C            	  1098: 	bra.s		.read
00:00000822 08100000        	  1099: .next:	btst		#0,(a0)
00:00000826 6606            	  1100: 	bne.s		.read
00:00000828 5340            	  1101: 	subq.w		#1,d0
00:0000082A 66F6            	  1102: 	bne.s		.next
00:0000082C 600A            	  1103: 	bra.s		.end
00:0000082E 10280002        	  1104: .read:	move.b		2(a0),d0
00:00000832 303C012C        	  1105: 	move.w		#$12c,d0
00:00000836 60EA            	  1106: 	bra.s		.next
00:00000838 4E75            	  1107: .end:	rts
                            	  1108: 
                            	  1109: *-------------------------------------------------------*
                            	  1110: write_acia:	
                            	  1111: *-------------------------------------------------------*
00:0000083A 4E75            	  1112:         rts
00:0000083C 08380001FC00    	  1113: .wait:	btst		#1,$fffffc00.w
00:00000842 67F8            	  1114: 	beq.s		.wait
00:00000844 11C0FC02        	  1115: 	move.b		d0,$fffffc02.w
00:00000848 4E75            	  1116: 	rts
                            	  1117: 
                            	  1118: *-------------------------------------------------------*
                            	  1119: sys_acia_on:
                            	  1120: ;_ST_EnableInput:
                            	  1121: *-------------------------------------------------------*
00:0000084A 48E7FFFE        	  1122: 	movem.l		d0-a6,-(sp)
00:0000084E 61CA            	  1123: 	bsr		_ST_FlushInput
00:00000850 41FA004A        	  1124: 	lea		enable_ikbd_seq(pc),a0
00:00000854 1018            	  1125: .next:	move.b		(a0)+,d0
00:00000856 6B04            	  1126: 	bmi.s		.end
00:00000858 61E0            	  1127: 	bsr		write_acia
00:0000085A 60F8            	  1128: 	bra.s		.next
00:0000085C 61BC            	  1129: .end:	bsr		_ST_FlushInput
00:0000085E 4CDF7FFF        	  1130: 	movem.l		(sp)+,d0-a6
00:00000862 4E75            	  1131: 	rts
                            	  1132: 
                            	  1133: *-------------------------------------------------------*
                            	  1134: sys_acia_off:
                            	  1135: ;_ST_DisableInput:
                            	  1136: *-------------------------------------------------------*
00:00000864 48E7FFFE        	  1137: 	movem.l		d0-a6,-(sp)
00:00000868 61B0            	  1138: 	bsr		_ST_FlushInput
00:0000086A 41FA002C        	  1139: 	lea		disable_ikbd_seq(pc),a0
00:0000086E 1018            	  1140: .next:	move.b		(a0)+,d0
00:00000870 6B04            	  1141: 	bmi.s		.end
00:00000872 61C6            	  1142: 	bsr		write_acia
00:00000874 60F8            	  1143: 	bra.s		.next
00:00000876 61A2            	  1144: .end:	bsr		_ST_FlushInput
00:00000878 4CDF7FFF        	  1145: 	movem.l		(sp)+,d0-a6
00:0000087C 4E75            	  1146: 	rts
                            	  1147: 
                            	  1148: *-------------------------------------------------------*
                            	  1149: sys_acia_reset:
                            	  1150: ;_ST_ResetInput:
                            	  1151: *-------------------------------------------------------*
00:0000087E 48E7FFFE        	  1152: 	movem.l		d0-a6,-(sp)
00:00000882 6196            	  1153: 	bsr		_ST_FlushInput
00:00000884 41FA001A        	  1154: 	lea		reset_ikbd_seq(pc),a0
00:00000888 1018            	  1155: .next:	move.b		(a0)+,d0
00:0000088A 6B04            	  1156: 	bmi.s		.end
00:0000088C 61AC            	  1157: 	bsr		write_acia
00:0000088E 60F8            	  1158: 	bra.s		.next
00:00000890 6188            	  1159: .end:	bsr		_ST_FlushInput
00:00000892 4CDF7FFF        	  1160: 	movem.l		(sp)+,d0-a6
00:00000896 4E75            	  1161: 	rts
                            	  1162: 
                            	  1163: *-------------------------------------------------------*
                            	  1164: 
00:00000898 13              	  1165: disable_ikbd_seq:	dc.b	$13,$1a,$12,-1			; reporting off, joystick events off, mouse events off 
00:00000899 1A
00:0000089A 12
00:0000089B FF
00:0000089C 11              	  1166: enable_ikbd_seq:	dc.b	$11,$14,$8,-1			; resume reporting, joystick events on, mouse events on
00:0000089D 14
00:0000089E 08
00:0000089F FF
00:000008A0 80              	  1167: reset_ikbd_seq:		dc.b	$80,$1,-1
00:000008A1 01
00:000008A2 FF
                            	  1168: 			even
                            	  1169: 
                            	  1170: 	
                            	  1171: *-----------------------------------------------------------------------------*
                            	  1172: new_vbi:
                            	  1173: *-----------------------------------------------------------------------------*
00:000008A4 52B80462        	  1174: 	addq.l		#1,$462.w
00:000008A8 52B80466        	  1175: 	addq.l		#1,$466.w
00:000008AC 4E73            	  1176: 	rte
                            	  1177: 
                            	  1178: *-----------------------------------------------------------------------------*
                            	  1179: new_tc:
                            	  1180: *-----------------------------------------------------------------------------*
00:000008AE 52B804BA        	  1181: 	addq.l		#1,$4ba.w
00:000008B2 08B80005FA11    	  1182: 	bclr		#5,isrb.w
00:000008B8 4E73            	  1183: 	rte
                            	  1184: 


Symbols by name:
_ST_FlushInput                  00:0000081A
bas_params                      00:00000006
bitlogic_test                   00:00000080
blksize                          E:00002800
branch_test                     00:000000AC
cabc060                          E:00400000
cabc060_bit                      E:00000016
code_start                      00:00000000
cubc060                          E:00200000
cubc060_bit                      E:00000015
d030_cache_mask                  E:0000001F
d_cache_off                     00:0000061E
d_cache_on                      00:000005C6
d_cache_state                   00:00000002
dbrst030                         E:00001000
dbrst030_bit                     E:0000000C
dclr030                          E:00000800
dclr030_bit                      E:0000000B
dclre030                         E:00000400
dclre030_bit                     E:0000000A
denab030                         E:00000100
denab030_bit                     E:00000008
denab040                         E:80000000
denab040_bit                     E:0000001F
denab060                         E:80000000
denab060_bit                     E:0000001F
dfrz030                          E:00000200
dfrz030_bit                      E:00000009
disable_ikbd_seq                00:00000898
div_32_16_test                  00:000000E2
div_64_32_test                  00:00000162
dpi060                           E:10000000
dpi060_bit                       E:0000001C
ebc060                           E:00800000
ebc060_bit                       E:00000017
enable_ikbd_seq                 00:0000089C
esb060                           E:20000000
esb060_bit                       E:0000001D
exit                            00:0000007A
fic060                           E:00002000
fic060_bit                       E:0000000D
foc060                           E:08000000
foc060_bit                       E:0000001B
fpow_test                       00:00000282
fprim_test                      00:00000228
ftrig_test                      00:000002D0
get_cache_state                 00:00000722
get_cache_state_                00:00000738
i030_cache_mask                  E:00003F00
i_cache_off                     00:000006CE
i_cache_on                      00:0000067A
i_cache_state                   00:00000004
ibrst030                         E:00000010
ibrst030_bit                     E:00000004
iclr030                          E:00000008
iclr030_bit                      E:00000003
iclre030                         E:00000004
iclre030_bit                     E:00000002
ienab030                         E:00000001
ienab030_bit                     E:00000000
ienab040                         E:00008000
ienab040_bit                     E:0000000F
ienab060                         E:00008000
ienab060_bit                     E:0000000F
ifrz030                          E:00000002
ifrz030_bit                      E:00000001
isrb                             E:FFFFFA11
max_functions                    E:0000001B
modstart                        00:0000001A
mul_16_32_test                  00:00000120
mul_32_64_test                  00:000001C2
nad060                           E:40000000
nad060_bit                       E:0000001E
nai060                           E:00004000
nai060_bit                       E:0000000E
new_tc                          00:000008AE
new_vbi                         00:000008A4
processor                       00:0000000A
ram_rw_test                     00:0000036E
reset_ikbd_seq                  00:000008A0
starttime                       00:0000000E
stram_mode                       E:00000000
stram_rw_test                   00:000003F6
sys_acia_off                    00:00000864
sys_acia_on                     00:0000084A
sys_acia_reset                  00:0000087E
sys_setcpu                      00:000007AA
sys_sleep                       00:000007B6
sys_state                       00:00000012
sys_tstart                      00:000007F2
sys_tstop                       00:00000806
sys_wake                        00:000007DC
timerc                           E:00000114
tos_r_test                      00:00000332
ttram_mode                       E:00000001
ttram_rw_test                   00:00000480
vram_rw_test                    00:0000050C
wa030                            E:00002000
wa030_bit                        E:0000000D
write_acia                      00:0000083A

Symbols by value:
FFFFFA11 isrb
00000000 code_start
00000000 stram_mode
00000000 ienab030_bit
00000001 ienab030
00000001 ttram_mode
00000001 ifrz030_bit
00000002 iclre030_bit
00000002 ifrz030
00000002 d_cache_state
00000003 iclr030_bit
00000004 ibrst030_bit
00000004 i_cache_state
00000004 iclre030
00000006 bas_params
00000008 iclr030
00000008 denab030_bit
00000009 dfrz030_bit
0000000A dclre030_bit
0000000A processor
0000000B dclr030_bit
0000000C dbrst030_bit
0000000D fic060_bit
0000000D wa030_bit
0000000E starttime
0000000E nai060_bit
0000000F ienab040_bit
0000000F ienab060_bit
00000010 ibrst030
00000012 sys_state
00000015 cubc060_bit
00000016 cabc060_bit
00000017 ebc060_bit
0000001A modstart
0000001B max_functions
0000001B foc060_bit
0000001C dpi060_bit
0000001D esb060_bit
0000001E nad060_bit
0000001F denab060_bit
0000001F denab040_bit
0000001F d030_cache_mask
0000007A exit
00000080 bitlogic_test
000000AC branch_test
000000E2 div_32_16_test
00000100 denab030
00000114 timerc
00000120 mul_16_32_test
00000162 div_64_32_test
000001C2 mul_32_64_test
00000200 dfrz030
00000228 fprim_test
00000282 fpow_test
000002D0 ftrig_test
00000332 tos_r_test
0000036E ram_rw_test
000003F6 stram_rw_test
00000400 dclre030
00000480 ttram_rw_test
0000050C vram_rw_test
000005C6 d_cache_on
0000061E d_cache_off
0000067A i_cache_on
000006CE i_cache_off
00000722 get_cache_state
00000738 get_cache_state_
000007AA sys_setcpu
000007B6 sys_sleep
000007DC sys_wake
000007F2 sys_tstart
00000800 dclr030
00000806 sys_tstop
0000081A _ST_FlushInput
0000083A write_acia
0000084A sys_acia_on
00000864 sys_acia_off
0000087E sys_acia_reset
00000898 disable_ikbd_seq
0000089C enable_ikbd_seq
000008A0 reset_ikbd_seq
000008A4 new_vbi
000008AE new_tc
00001000 dbrst030
00002000 wa030
00002000 fic060
00002800 blksize
00003F00 i030_cache_mask
00004000 nai060
00008000 ienab060
00008000 ienab040
00200000 cubc060
00400000 cabc060
00800000 ebc060
08000000 foc060
10000000 dpi060
20000000 esb060
40000000 nad060
80000000 denab040
80000000 denab060
