ùúùú  #ˆ   Ü   Ü   Ü   Ü   Ü   Ü   Ü   Ü   Ü;-------T-----------T-------T-----------------------------T------T------T
;
; The first line is the Tab-Definition line. It starts with an ; and 
; is followed by the TABS, only a CAPITAL T will be recognized as a TAB
;
; **********************************************************************
;               ASM-ONE Example of all allowed adressingmodes
; **********************************************************************
;
; This example source is split up in three parts:
;
; 1.) The 680x0 adressing modes.
;
; Using      : opcode MOVE
; Parameters : Only source is specified.
;
; Note: This is an example of all adrressing modes. This includes 68020++
;       modes. 
;
;	Not all these modes are allowed in some opcodes.
;
;
; 2.) The 68881/68882/68040 floating point opcodes and modes
;
; Showing    : all known opcodes
; Parametes  : Only source is specified.
;
;
; 3.) The 68851/68030/68040 Memory management Unit (MMU) opcodes and modes
;
; Showing    : all known opcodes
; Parameters : Only source is specified.


Mode_0_:		move.b	d1,d2
		move.w	d1,d2
		move.l	d1,d2

**************************************************************************

mode_1_:		;	move.b	a1,d2 not allowed
		move.w	a1,d2
		move.l	a1,d2

**************************************************************************

mode_2_:		move.b	(a1),d2
		move.w	(a1),d2
		move.l	(a1),d2

**************************************************************************

mode_3_:		move.b	-(a1),d2
		move.w	-(a1),d2
		move.l	-(a1),d2

**************************************************************************

mode_4_:		move.b	(a1)+,d2
		move.w	(a1)+,d2
		move.l	(a1)+,d2

**************************************************************************

mode_5_:		move.b	$7fff(a1),d2
		move.w	$7ffe(a1),d2
		move.l	$7ffe(a1),d2

**************************************************************************

mode_6a_:	move.b	$7f(a1,d1),d2
		move.w	$7e(a1,d1),d2
		move.l	$7e(a1,d1),d2

**************************************************************************

mode_6bw_:	move.b	(a1,d1,$7fff.w),d2		; 68020++
		move.w	(a1,d1,$7ffe.w),d2		; 68020++
		move.l	(a1,d1,$7ffe.w),d2		; 68020++

**************************************************************************

mode_6bl_:	move.b	(a1,d1,$7fffffff.l),d2		; 68020++
		move.w	(a1,d1,$7ffffffe.l),d2		; 68020++
		move.l	(a1,d1,$7ffffffe.l),d2		; 68020++

**************************************************************************

mode_6cww_:	move.b	([$7fff.w,a1],d1,$7fff.w),d2		; 68020++
		move.w	([$7ffe.w,a1],d1,$7ffe.w),d2		; 68020++
		move.l	([$7ffe.w,a1],d1,$7ffe.w),d2		; 68020++

**************************************************************************

mode_6cwl_:	move.b	([$7fff.w,a1],d1,$7fffffff.l),d2	; 68020++
		move.w	([$7ffe.w,a1],d1,$7ffffffe.l),d2	; 68020++
		move.l	([$7ffe.w,a1],d1,$7ffffffe.l),d2	; 68020++

**************************************************************************

mode_6clw_:	move.b	([$7fffffff.l,a1],d1,$7fff.w),d2	; 68020++
		move.w	([$7ffffffe.l,a1],d1,$7ffe.w),d2	; 68020++
		move.l	([$7ffffffe.l,a1],d1,$7ffe.w),d2	; 68020++

**************************************************************************

mode_6cll_:	move.b	([$7fffffff.l,a1],d1,$7fffffff.l),d2	; 68020++
		move.w	([$7ffffffe.l,a1],d1,$7ffffffe.l),d2	; 68020++
		move.l	([$7ffffffe.l,a1],d1,$7ffffffe.l),d2	; 68020++

**************************************************************************

mode_6dww_:	move.b	([$7fff.w,a1,d1],$7fff.w),d2		; 68020++
		move.w	([$7ffe.w,a1,d1],$7ffe.w),d2		; 68020++
		move.l	([$7ffe.w,a1,d1],$7ffe.w),d2		; 68020++

**************************************************************************

mode_6dwl_:	move.b	([$7fff.w,a1,d1],$7fffffff.l),d2	; 68020++
		move.w	([$7ffe.w,a1,d1],$7ffffffe.l),d2	; 68020++
		move.l	([$7ffe.w,a1,d1],$7ffffffe.l),d2	; 68020++

**************************************************************************

mode_6dlw_:	move.b	([$7fffffff.l,a1,d1],$7fff.w),d2	; 68020++
		move.w	([$7ffffffe.l,a1,d1],$7ffe.w),d2	; 68020++
		move.l	([$7ffffffe.l,a1,d1],$7ffe.w),d2	; 68020++

**************************************************************************

mode_6dll_:	move.b	([$7fffffff.l,a1,d1],$7fffffff.l),d2	; 68020++
		move.w	([$7ffffffe.l,a1,d1],$7ffffffe.l),d2	; 68020++
		move.l	([$7ffffffe.l,a1,d1],$7ffffffe.l),d2	; 68020++

**************************************************************************


;- These are variants of the above modes except the Base Displacement or
;- Index register are supressed
 
suppress_:	move.l	([0.w,a1],d2),d3
		move.l	([0.l,a1],d2),d3
		move.l	([0.w,a1]),d2
		move.l	([0.l,a1]),d2
		move.l	([0.l]),d2
		move.l	([0.w]),d2

**************************************************************************

mode_7_0_:	move.b	$7fff.w,d2
		move.w	$7ffe.w,d2
		move.l	$7ffe.w,d2

**************************************************************************

mode_7_1_:	move.b	$7ffff.l,d2
		move.w	$7fffe.l,d2
		move.l	$7fffe.l,d2

**************************************************************************

;=============================================================
; The following PC relative modes are HIGH COMMANDS.
;
; Usualy the numbers used in these commands would be labels !!
; Most assemblers create a relative mode error trying to
; assemble these commands. When the absolute numbers are
; labels the assembler WILL allow them.
;
; in Asm-One you CAN use label OR absolute numbers.
; !!! Just be carefull with them  !!!
;=============================================================

mode_7_2_:	move.b	$7f(pc),d2
		move.w	$7f(pc),d2
		move.l	$7ffe(pc),d2

mode_7_2labels_:	move.b	mode_7_2_(pc),d2
		move.w	mode_7_2_(pc),d2
		move.l	mode_7_2_(pc),d2

; This is also mode_7_2 but in the new syntax !!!

mode_7_2ns_:	move.b	($7f,pc),d2
		move.w	($7f,pc),d2
		move.l	($7ffe,pc),d2

mode_7_2nslabels_:
		move.b	(mode_7_2ns_,pc),d2
		move.w	(mode_7_2ns_,pc),d2
		move.l	(mode_7_2ns_,pc),d2

**************************************************************************

mode_7_3_:	move.b	$7e(pc,d1),d2
		move.w	$7e(pc,d1),d2
		move.l	$7e(pc,d1),d2

mode_7_3labels_:	move.b	mode_7_3_(pc,d1),d2
		move.w	mode_7_3_(pc,d1),d2
		move.l	mode_7_3_(pc,d1),d2

; This is also mode_7_3 but in the new syntax !!!

mode_7_3ns_:	move.b	($7e.w,pc,d1),d2
		move.w	($7e.w,pc,d1),d2
		move.l	($7e.w,pc,d1),d2

mode_7_3nslabels_:
		move.b	((mode_7_3nslabels_).w,pc,d1),d2
		move.w	((mode_7_3nslabels_).w,pc,d1),d2
		move.l	((mode_7_3nslabels_).w,pc,d1),d2

mode_7_3w_:	move.b	(pc,d1,$7fff.w),d2		; 68020++
		move.w	(pc,d1,$7ffe.w),d2		; 68020++
		move.l	(pc,d1,$7ffe.w),d2		; 68020++

mode_7_3l_:	move.b	(pc,d1,$7fffffff.l),d2		; 68020++
		move.w	(pc,d1,$7ffffffe.l),d2		; 68020++
		move.l	(pc,d1,$7ffffffe.l),d2		; 68020++

**************************************************************************

mode_7_3postww_:	move.b	([$7fff.w,pc],d1,$7fff.w),d2		; 68020++
		move.w	([$7ffe.w,pc],d1,$7ffe.w),d2		; 68020++
		move.l	([$7ffe.w,pc],d1,$7ffe.w),d2		; 68020++

mode_7_3postwwlabels_:
		move.b	([(mode_7_3postwwlabels_).w,pc],d1,$7fff.w),d2 ; 68020++
		move.w	([(mode_7_3postwwlabels_).w,pc],d1,$7ffe.w),d2 ; 68020++
		move.l	([(mode_7_3postwwlabels_).w,pc],d1,$7ffe.w),d2 ; 68020++

mode_7_3postwl_:	move.b	([$7fff.w,pc],d1,$7fffffff.l),d2	; 68020++
		move.w	([$7ffe.w,pc],d1,$7ffffffe.l),d2	; 68020++
		move.l	([$7ffe.w,pc],d1,$7ffffffe.l),d2	; 68020++

mode_7_3postlw_:	move.b	([$7fffffff.l,pc],d1,$7fff.w),d2	; 68020++
		move.w	([$7ffffffe.l,pc],d1,$7ffe.w),d2	; 68020++
		move.l	([$7ffffffe.l,pc],d1,$7ffe.w),d2	; 68020++

mode_7_3postll_:	move.b	([$7fffffff.l,pc],d1,$7fffffff.l),d2	; 68020++
		move.w	([$7ffffffe.l,pc],d1,$7ffffffe.l),d2	; 68020++
		move.l	([$7ffffffe.l,pc],d1,$7ffffffe.l),d2	; 68020++

**************************************************************************

mode_7_3preww_:	move.b	([$7fff.w,pc,d1],$7fff.w),d2		; 68020++
		move.w	([$7ffe.w,pc,d1],$7ffe.w),d2		; 68020++
		move.l	([$7ffe.w,pc,d1],$7ffe.w),d2		; 68020++

mode_7_3prewwlabel_:
		move.b	([(mode_7_3prewwlabel_).w,pc,d1],$7fff.w),d2 ; 68020++
		move.w	([(mode_7_3prewwlabel_).w,pc,d1],$7ffe.w),d2 ; 68020++
		move.l	([(mode_7_3prewwlabel_).w,pc,d1],$7ffe.w),d2 ; 68020++

mode_7_3prewl_:	move.b	([$7fff.w,pc,d1],$7fffffff.l),d2	; 68020++
		move.w	([$7ffe.w,pc,d1],$7ffffffe.l),d2	; 68020++
		move.l	([$7ffe.w,pc,d1],$7ffffffe.l),d2	; 68020++

mode_7_3prelw_:	move.b	([$7fffffff.l,pc,d1],$7fff.w),d2	; 68020++
		move.w	([$7ffffffe.l,pc,d1],$7ffe.w),d2	; 68020++
		move.l	([$7ffffffe.l,pc,d1],$7ffe.w),d2	; 68020++

mode_7_3prell_:	move.b	([$7fffffff.l,pc,d1],$7fffffff.l),d2	; 68020++
		move.w	([$7ffffffe.l,pc,d1],$7ffffffe.l),d2	; 68020++
		move.l	([$7ffffffe.l,pc,d1],$7ffffffe.l),d2	; 68020++


**************************************************************************

mode_7_4_:	move.b	#$7f,d2
		move.w	#$7ffe,d2
		move.l	#$7ffffffe,d2

**************************************************************************

move16_:	move16	(a1)+,(a2)+
	move16	$40000,(a1)+
	move16	$40000,(a1)
	move16	(a1),$40000
	move16	(a1)+,$40000

**************************************************************************

;=========================================================================
;
; Some examples using 68020++ adressing modes.
;
;-----Example 1------ jumping easier
;
; This instruction uses just 1 line to find and jump to a piece of
; coding getting it's pointers from a tabel !!!
; Change D0 to 0,1,2 or 3 to jump to example1_a,example1_b,......
;

example_1_:	moveq	#0,d0
		jmp	([example1_tabel_,pc],d0.w*4) ; !!!!!!!!!!!!!

example1_tabel_:	dc.l	example1_a_
		dc.l	example1_b_
		dc.l	example1_c_
		dc.l	example1_d_

example1_a_:	moveq	#4,d7
		moveq	#0,d0
		bra.s	example_2_

example1_b_:	moveq	#3,d7
		moveq	#0,d0
		bra.s	example_2_

example1_c_:	moveq	#2,d7
		moveq	#0,d0
		bra.s	example_2_

example1_d_:	moveq	#1,d7
		moveq	#0,d0
		bra.w	example_2_


;===============================================================
;
;--Example 2---- getting bits easier
;
; How's the resourcer comming Thaizer ?????????
; Getting a bit bitfucked in the bitbrain allready,
; or is it a bit too easy to get bits in the right bytes ????
; or was it the left byte ????/
;
;                              3         2         1
;                             10987654321098765432109876543210
example_2_:	move.l	#%10011100100100101000100101010101,d0
		bfextu	d0{1:5},d1


;=========================================================================
;
; Here starts the Floating point section !!
;
;=========================================================================

fint_:	fint	fp3	;
	fint	fp5,fp4	; info on the
	fint.w	d1,fp1	; instructions
	fint.w	(a1),fp2	; can be found in
	fint.l	-(a1),fp3	; a lot of books !!
	fint.w	(a1)+,fp4	;
	fint.s	$4000(a1),fp5	; Be sure to read 
	fint.s	d0,fp2	; them before 
	fint.p	10(a1,d2.w),fp6	; trying all these
	fint.d	(a1,d2.w,$4000.w),fp6	; commands......
	fint.s	(a1,d2.w,$404040.l),fp6	;
	fint.p	([$400.w,a1],d2.w,$40000.l),fp6	; Some will create
	fint.x	([$404040.l,a1,d2.w],$8277.w),fp6	; Exeptions !!!

**************************************************************************

fsinh_:	fsinh	fp3
	fsinh	fp5,fp4
	fsinh.w	d1,fp1
	fsinh.w	(a1),fp2
	fsinh.l	-(a1),fp3
	fsinh.w	(a1)+,fp4
	fsinh.s	$4000(a1),fp5
	fsinh.s	d0,fp2
	fsinh.p	10(a1,d2.w),fp6
	fsinh.d	(a1,d2.w,$4000.w),fp6
	fsinh.s	(a1,d2.w,$404040.l),fp6
	fsinh.p	([$400.w,a1],d2.w,$40000.l),fp6
	fsinh.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

flognp1_:flognp1	fp3
	flognp1	fp5,fp4
	flognp1.w	d1,fp1
	flognp1.w	(a1),fp2
	flognp1.l	-(a1),fp3
	flognp1.w	(a1)+,fp4
	flognp1.s	$4000(a1),fp5
	flognp1.s	d0,fp2
	flognp1.p	10(a1,d2.w),fp6
	flognp1.d	(a1,d2.w,$4000.w),fp6
	flognp1.s	(a1,d2.w,$404040.l),fp6
	flognp1.p	([$400.w,a1],d2.w,$40000.l),fp6
	flognp1.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

fetoxm1_:fetoxm1	fp3
	fetoxm1	fp5,fp4
	fetoxm1.w	d1,fp1
	fetoxm1.w	(a1),fp2
	fetoxm1.l	-(a1),fp3
	fetoxm1.w	(a1)+,fp4
	fetoxm1.s	$4000(a1),fp5
	fetoxm1.s	d0,fp2
	fetoxm1.p	10(a1,d2.w),fp6
	fetoxm1.d	(a1,d2.w,$4000.w),fp6
	fetoxm1.s	(a1,d2.w,$404040.l),fp6
	fetoxm1.p	([$400.w,a1],d2.w,$40000.l),fp6
	fetoxm1.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

ftanh_:	ftanh	fp3
	ftanh	fp5,fp4
	ftanh.w	d1,fp1
	ftanh.w	(a1),fp2
	ftanh.l	-(a1),fp3
	ftanh.w	(a1)+,fp4
	ftanh.s	$4000(a1),fp5
	ftanh.s	d0,fp2
	ftanh.p	10(a1,d2.w),fp6
	ftanh.d	(a1,d2.w,$4000.w),fp6
	ftanh.s	(a1,d2.w,$404040.l),fp6
	ftanh.p	([$400.w,a1],d2.w,$40000.l),fp6
	ftanh.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

fatan_:	fatan	fp3
	fatan	fp5,fp4
	fatan.w	d1,fp1
	fatan.w	(a1),fp2
	fatan.l	-(a1),fp3
	fatan.w	(a1)+,fp4
	fatan.s	$4000(a1),fp5
	fatan.s	d0,fp2
	fatan.p	10(a1,d2.w),fp6
	fatan.d	(a1,d2.w,$4000.w),fp6
	fatan.s	(a1,d2.w,$404040.l),fp6
	fatan.p	([$400.w,a1],d2.w,$40000.l),fp6
	fatan.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

fasin_:	fasin	fp3
	fasin	fp5,fp4
	fasin.w	d1,fp1
	fasin.w	(a1),fp2
	fasin.l	-(a1),fp3
	fasin.w	(a1)+,fp4
	fasin.s	$4000(a1),fp5
	fasin.s	d0,fp2
	fasin.p	10(a1,d2.w),fp6
	fasin.d	(a1,d2.w,$4000.w),fp6
	fasin.s	(a1,d2.w,$404040.l),fp6
	fasin.p	([$400.w,a1],d2.w,$40000.l),fp6
	fasin.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

fatanh_:	fatanh	fp3
	fatanh	fp5,fp4
	fatanh.w	d1,fp1
	fatanh.w	(a1),fp2
	fatanh.l	-(a1),fp3
	fatanh.w	(a1)+,fp4
	fatanh.s	$4000(a1),fp5
	fatanh.s	d0,fp2
	fatanh.p	10(a1,d2.w),fp6
	fatanh.d	(a1,d2.w,$4000.w),fp6
	fatanh.s	(a1,d2.w,$404040.l),fp6
	fatanh.p	([$400.w,a1],d2.w,$40000.l),fp6
	fatanh.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

fsin_:	fsin	fp3
	fsin	fp5,fp4
	fsin.w	d1,fp1
	fsin.w	(a1),fp2
	fsin.l	-(a1),fp3
	fsin.w	(a1)+,fp4
	fsin.s	$4000(a1),fp5
	fsin.s	d0,fp2
	fsin.p	10(a1,d2.w),fp6
	fsin.d	(a1,d2.w,$4000.w),fp6
	fsin.s	(a1,d2.w,$404040.l),fp6
	fsin.p	([$400.w,a1],d2.w,$40000.l),fp6
	fsin.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

ftan_:	ftan	fp3
	ftan	fp5,fp4
	ftan.w	d1,fp1
	ftan.w	(a1),fp2
	ftan.l	-(a1),fp3
	ftan.w	(a1)+,fp4
	ftan.s	$4000(a1),fp5
	ftan.s	d0,fp2
	ftan.p	10(a1,d2.w),fp6
	ftan.d	(a1,d2.w,$4000.w),fp6
	ftan.s	(a1,d2.w,$404040.l),fp6
	ftan.p	([$400.w,a1],d2.w,$40000.l),fp6
	ftan.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

fetox_:	fetox	fp3
	fetox	fp5,fp4
	fetox.w	d1,fp1
	fetox.w	(a1),fp2
	fetox.l	-(a1),fp3
	fetox.w	(a1)+,fp4
	fetox.s	$4000(a1),fp5
	fetox.s	d0,fp2
	fetox.p	10(a1,d2.w),fp6
	fetox.d	(a1,d2.w,$4000.w),fp6
	fetox.s	(a1,d2.w,$404040.l),fp6
	fetox.p	([$400.w,a1],d2.w,$40000.l),fp6
	fetox.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

ftwotox_:ftwotox	fp3
	ftwotox	fp5,fp4
	ftwotox.w	d1,fp1
	ftwotox.w	(a1),fp2
	ftwotox.l	-(a1),fp3
	ftwotox.w	(a1)+,fp4
	ftwotox.s	$4000(a1),fp5
	ftwotox.s	d0,fp2
	ftwotox.p	10(a1,d2.w),fp6
	ftwotox.d	(a1,d2.w,$4000.w),fp6
	ftwotox.s	(a1,d2.w,$404040.l),fp6
	ftwotox.p	([$400.w,a1],d2.w,$40000.l),fp6
	ftwotox.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

ftentox_:ftentox	fp3
	ftentox	fp5,fp4
	ftentox.w	d1,fp1
	ftentox.w	(a1),fp2
	ftentox.l	-(a1),fp3
	ftentox.w	(a1)+,fp4
	ftentox.s	$4000(a1),fp5
	ftentox.s	d0,fp2
	ftentox.p	10(a1,d2.w),fp6
	ftentox.d	(a1,d2.w,$4000.w),fp6
	ftentox.s	(a1,d2.w,$404040.l),fp6
	ftentox.p	([$400.w,a1],d2.w,$40000.l),fp6
	ftentox.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

flogn_:	flogn	fp3
	flogn	fp5,fp4
	flogn.w	d1,fp1
	flogn.w	(a1),fp2
	flogn.l	-(a1),fp3
	flogn.w	(a1)+,fp4
	flogn.s	$4000(a1),fp5
	flogn.s	d0,fp2
	flogn.p	10(a1,d2.w),fp6
	flogn.d	(a1,d2.w,$4000.w),fp6
	flogn.s	(a1,d2.w,$404040.l),fp6
	flogn.p	([$400.w,a1],d2.w,$40000.l),fp6
	flogn.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

flog10_:	flog10	fp3
	flog10	fp5,fp4
	flog10.w	d1,fp1
	flog10.w	(a1),fp2
	flog10.l	-(a1),fp3
	flog10.w	(a1)+,fp4
	flog10.s	$4000(a1),fp5
	flog10.s	d0,fp2
	flog10.p	10(a1,d2.w),fp6
	flog10.d	(a1,d2.w,$4000.w),fp6
	flog10.s	(a1,d2.w,$404040.l),fp6
	flog10.p	([$400.w,a1],d2.w,$40000.l),fp6
	flog10.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

flog2_:	flog2	fp3
	flog2	fp5,fp4
	flog2.w	d1,fp1
	flog2.w	(a1),fp2
	flog2.l	-(a1),fp3
	flog2.w	(a1)+,fp4
	flog2.s	$4000(a1),fp5
	flog2.s	d0,fp2
	flog2.p	10(a1,d2.w),fp6
	flog2.d	(a1,d2.w,$4000.w),fp6
	flog2.s	(a1,d2.w,$404040.l),fp6
	flog2.p	([$400.w,a1],d2.w,$40000.l),fp6
	flog2.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

fcosh_:	fcosh	fp3
	fcosh	fp5,fp4
	fcosh.w	d1,fp1
	fcosh.w	(a1),fp2
	fcosh.l	-(a1),fp3
	fcosh.w	(a1)+,fp4
	fcosh.s	$4000(a1),fp5
	fcosh.s	d0,fp2
	fcosh.p	10(a1,d2.w),fp6
	fcosh.d	(a1,d2.w,$4000.w),fp6
	fcosh.s	(a1,d2.w,$404040.l),fp6
	fcosh.p	([$400.w,a1],d2.w,$40000.l),fp6
	fcosh.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

facos_:	facos	fp3
	facos	fp5,fp4
	facos.w	d1,fp1
	facos.w	(a1),fp2
	facos.l	-(a1),fp3
	facos.w	(a1)+,fp4
	facos.s	$4000(a1),fp5
	facos.s	d0,fp2
	facos.p	10(a1,d2.w),fp6
	facos.d	(a1,d2.w,$4000.w),fp6
	facos.s	(a1,d2.w,$404040.l),fp6
	facos.p	([$400.w,a1],d2.w,$40000.l),fp6
	facos.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

fcos_:	fcos	fp3
	fcos	fp5,fp4
	fcos.w	d1,fp1
	fcos.w	(a1),fp2
	fcos.l	-(a1),fp3
	fcos.w	(a1)+,fp4
	fcos.s	$4000(a1),fp5
	fcos.s	d0,fp2
	fcos.p	10(a1,d2.w),fp6
	fcos.d	(a1,d2.w,$4000.w),fp6
	fcos.s	(a1,d2.w,$404040.l),fp6
	fcos.p	([$400.w,a1],d2.w,$40000.l),fp6
	fcos.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

fgetexp_:fgetexp	fp3,fp3
	fgetexp	fp5,fp4
	fgetexp.w	d1,fp1
	fgetexp.w	(a1),fp2
	fgetexp.l	-(a1),fp3
	fgetexp.w	(a1)+,fp4
	fgetexp.s	$4000(a1),fp5
	fgetexp.s	d0,fp2
	fgetexp.p	10(a1,d2.w),fp6
	fgetexp.d	(a1,d2.w,$4000.w),fp6
	fgetexp.s	(a1,d2.w,$404040.l),fp6
	fgetexp.p	([$400.w,a1],d2.w,$40000.l),fp6
	fgetexp.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

fgetman_:fgetman	fp3,fp3
	fgetman	fp5,fp4
	fgetman.w	d1,fp1
	fgetman.w	(a1),fp2
	fgetman.l	-(a1),fp3
	fgetman.w	(a1)+,fp4
	fgetman.s	$4000(a1),fp5
	fgetman.s	d0,fp2
	fgetman.p	10(a1,d2.w),fp6
	fgetman.d	(a1,d2.w,$4000.w),fp6
	fgetman.s	(a1,d2.w,$404040.l),fp6
	fgetman.p	([$400.w,a1],d2.w,$40000.l),fp6
	fgetman.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

fmod_:	fmod	fp3,fp3
	fmod	fp5,fp4
	fmod.w	d1,fp1
	fmod.w	(a1),fp2
	fmod.l	-(a1),fp3
	fmod.w	(a1)+,fp4
	fmod.s	$4000(a1),fp5
	fmod.s	d0,fp2
	fmod.p	10(a1,d2.w),fp6
	fmod.d	(a1,d2.w,$4000.w),fp6
	fmod.s	(a1,d2.w,$404040.l),fp6
	fmod.p	([$400.w,a1],d2.w,$40000.l),fp6
	fmod.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

fsgldiv_:fsgldiv	fp3,fp3
	fsgldiv	fp5,fp4
	fsgldiv.w	d1,fp1
	fsgldiv.w	(a1),fp2
	fsgldiv.l	-(a1),fp3
	fsgldiv.w	(a1)+,fp4
	fsgldiv.s	$4000(a1),fp5
	fsgldiv.s	d0,fp2
	fsgldiv.p	10(a1,d2.w),fp6
	fsgldiv.d	(a1,d2.w,$4000.w),fp6
	fsgldiv.s	(a1,d2.w,$404040.l),fp6
	fsgldiv.p	([$400.w,a1],d2.w,$40000.l),fp6
	fsgldiv.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

frem_:	frem	fp3,fp3
	frem	fp5,fp4
	frem.w	d1,fp1
	frem.w	(a1),fp2
	frem.l	-(a1),fp3
	frem.w	(a1)+,fp4
	frem.s	$4000(a1),fp5
	frem.s	d0,fp2
	frem.p	10(a1,d2.w),fp6
	frem.d	(a1,d2.w,$4000.w),fp6
	frem.s	(a1,d2.w,$404040.l),fp6
	frem.p	([$400.w,a1],d2.w,$40000.l),fp6
	frem.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

fscale_:	fscale	fp3,fp3
	fscale	fp5,fp4
	fscale.w	d1,fp1
	fscale.w	(a1),fp2
	fscale.l	-(a1),fp3
	fscale.w	(a1)+,fp4
	fscale.s	$4000(a1),fp5
	fscale.s	d0,fp2
	fscale.p	10(a1,d2.w),fp6
	fscale.d	(a1,d2.w,$4000.w),fp6
	fscale.s	(a1,d2.w,$404040.l),fp6
	fscale.p	([$400.w,a1],d2.w,$40000.l),fp6
	fscale.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

fsglmul_:fsglmul	fp3,fp3
	fsglmul	fp5,fp4
	fsglmul.w	d1,fp1
	fsglmul.w	(a1),fp2
	fsglmul.l	-(a1),fp3
	fsglmul.w	(a1)+,fp4
	fsglmul.s	$4000(a1),fp5
	fsglmul.s	d0,fp2
	fsglmul.p	10(a1,d2.w),fp6
	fsglmul.d	(a1,d2.w,$4000.w),fp6
	fsglmul.s	(a1,d2.w,$404040.l),fp6
	fsglmul.p	([$400.w,a1],d2.w,$40000.l),fp6
	fsglmul.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

fsincos_:fsincos	fp3,fp3_:fp2
	fsincos	fp5,fp4_:fp2
	fsincos.w	d1,fp1_:fp2
	fsincos.w	(a1),fp2_:fp2
	fsincos.l	-(a1),fp3_:fp2
	fsincos.w	(a1)+,fp4_:fp2
	fsincos.s	$4000(a1),fp5_:fp2
	fsincos.s	d0,fp2_:fp2
	fsincos.p	10(a1,d2.w),fp6_:fp2
	fsincos.d	(a1,d2.w,$4000.w),fp6_:fp2
	fsincos.s	(a1,d2.w,$404040.l),fp6_:fp2
	fsincos.p	([$400.w,a1],d2.w,$40000.l),fp6_:fp2
	fsincos.x	([$404040.l,a1,d2.w],$8277.w),fp6_:fp2

**************************************************************************

fcmp_:	fcmp	fp3,fp3
	fcmp	fp5,fp4
	fcmp.w	d1,fp1
	fcmp.w	(a1),fp2
	fcmp.l	-(a1),fp3
	fcmp.w	(a1)+,fp4
	fcmp.s	$4000(a1),fp5
	fcmp.s	d0,fp2
	fcmp.p	10(a1,d2.w),fp6
	fcmp.d	(a1,d2.w,$4000.w),fp6
	fcmp.s	(a1,d2.w,$404040.l),fp6
	fcmp.p	([$400.w,a1],d2.w,$40000.l),fp6
	fcmp.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

ftst_:	ftst	fp3
	ftst	fp4
	ftst.w	d1
	ftst.w	(a1)
	ftst.l	-(a1)
	ftst.w	(a1)+
	ftst.s	$4000(a1)
	ftst.s	d0
	ftst.p	10(a1,d2.w)
	ftst.d	(a1,d2.w,$4000.w)
	ftst.s	(a1,d2.w,$404040.l)
	ftst.p	([$400.w,a1],d2.w,$40000.l)
	ftst.x	([$404040.l,a1,d2.w],$8277.w)

**************************************************************************

fabs_:	fabs	fp3,fp3
	fabs	fp5,fp4
	fabs.w	d1,fp1
	fabs.w	(a1),fp2
	fabs.l	-(a1),fp3
	fabs.w	(a1)+,fp4
	fabs.s	$4000(a1),fp5
	fabs.s	d0,fp2
	fabs.p	10(a1,d2.w),fp6
	fabs.d	(a1,d2.w,$4000.w),fp6
	fabs.s	(a1,d2.w,$404040.l),fp6
	fabs.p	([$400.w,a1],d2.w,$40000.l),fp6
	fabs.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

fadd_:	fadd	fp3,fp3
	fadd	fp5,fp4
	fadd.w	d1,fp1
	fadd.w	(a1),fp2
	fadd.l	-(a1),fp3
	fadd.w	(a1)+,fp4
	fadd.s	$4000(a1),fp5
	fadd.s	d0,fp2
	fadd.p	10(a1,d2.w),fp6
	fadd.d	(a1,d2.w,$4000.w),fp6
	fadd.s	(a1,d2.w,$404040.l),fp6
	fadd.p	([$400.w,a1],d2.w,$40000.l),fp6
	fadd.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

fdiv_:	fdiv	fp3,fp3
	fdiv	fp5,fp4
	fdiv.w	d1,fp1
	fdiv.w	(a1),fp2
	fdiv.l	-(a1),fp3
	fdiv.w	(a1)+,fp4
	fdiv.s	$4000(a1),fp5
	fdiv.s	d0,fp2
	fdiv.p	10(a1,d2.w),fp6
	fdiv.d	(a1,d2.w,$4000.w),fp6
	fdiv.s	(a1,d2.w,$404040.l),fp6
	fdiv.p	([$400.w,a1],d2.w,$40000.l),fp6
	fdiv.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

fmul_:	fmul	fp3,fp3
	fmul	fp5,fp4
	fmul.w	d1,fp1
	fmul.w	(a1),fp2
	fmul.l	-(a1),fp3
	fmul.w	(a1)+,fp4
	fmul.s	$4000(a1),fp5
	fmul.s	d0,fp2
	fmul.p	10(a1,d2.w),fp6
	fmul.d	(a1,d2.w,$4000.w),fp6
	fmul.s	(a1,d2.w,$404040.l),fp6
	fmul.p	([$400.w,a1],d2.w,$40000.l),fp6
	fmul.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

fneg_:	fneg	fp3
	fneg	fp5,fp4
	fneg.w	d1,fp1
	fneg.w	(a1),fp2
	fneg.l	-(a1),fp3
	fneg.w	(a1)+,fp4
	fneg.s	$4000(a1),fp5
	fneg.s	d0,fp2
	fneg.p	10(a1,d2.w),fp6
	fneg.d	(a1,d2.w,$4000.w),fp6
	fneg.s	(a1,d2.w,$404040.l),fp6
	fneg.p	([$400.w,a1],d2.w,$40000.l),fp6
	fneg.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

fsqrt_:	fsqrt	fp3,fp3
	fsqrt	fp5,fp4
	fsqrt.w	d1,fp1
	fsqrt.w	(a1),fp2
	fsqrt.l	-(a1),fp3
	fsqrt.w	(a1)+,fp4
	fsqrt.s	$4000(a1),fp5
	fsqrt.s	d0,fp2
	fsqrt.p	10(a1,d2.w),fp6
	fsqrt.d	(a1,d2.w,$4000.w),fp6
	fsqrt.s	(a1,d2.w,$404040.l),fp6
	fsqrt.p	([$400.w,a1],d2.w,$40000.l),fp6
	fsqrt.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

fsub_:	fsub	fp3,fp3
	fsub	fp5,fp4
	fsub.w	d1,fp1
	fsub.w	(a1),fp2
	fsub.l	-(a1),fp3
	fsub.w	(a1)+,fp4
	fsub.s	$4000(a1),fp5
	fsub.s	d0,fp2
	fsub.p	10(a1,d2.w),fp6
	fsub.d	(a1,d2.w,$4000.w),fp6
	fsub.s	(a1,d2.w,$404040.l),fp6
	fsub.p	([$400.w,a1],d2.w,$40000.l),fp6
	fsub.x	([$404040.l,a1,d2.w],$8277.w),fp6

**************************************************************************

fsave_:	fsave	(a1)
	fsave	-(a1)
	fsave	$4000(a1)
	fsave	10(a1,d2.w)
	fsave	(a1,d2.w,$4000.w)
	fsave	(a1,d2.w,$404040.l)
	fsave	([$400.w,a1],d2.w,$40000.l)
	fsave	([$404040.l,a1,d2.w],$8277.w)

**************************************************************************

frestore_:frestore	(a1)
	frestore	(a1)+
	frestore	$4000(a1)
	frestore	10(a1,d2.w)
	frestore	(a1,d2.w,$4000.w)
	frestore	(a1,d2.w,$404040.l)
	frestore	([$400.w,a1],d2.w,$40000.l)
	frestore	([$404040.l,a1,d2.w],$8277.w)

**************************************************************************


fbcc_:	fbf	fbcc_
	fbf.w	fbcc_
	fbf.l	fbcc_

	fbeq	fbcc_
	fbeq.w	fbcc_
	fbeq.l	fbcc_

	fbogt	fbcc_
	fbogt.w	fbcc_
	fbogt.l	fbcc_

	fboge	fbcc_
	fboge.w	fbcc_
	fboge.l	fbcc_

	fbolt	fbcc_
	fbolt.w	fbcc_
	fbolt.l	fbcc_

	fbole	fbcc_
	fbole.w	fbcc_
	fbole.l	fbcc_

	fbogl	fbcc_
	fbogl.w	fbcc_
	fbogl.l	fbcc_

	fbor	fbcc_
	fbor.w	fbcc_
	fbor.l	fbcc_

	fbun	fbcc_
	fbun.w	fbcc_
	fbun.l	fbcc_

	fbueq	fbcc_
	fbueq.w	fbcc_
	fbueq.l	fbcc_

	fbugt	fbcc_
	fbugt.w	fbcc_
	fbugt.l	fbcc_

	fbuge	fbcc_
	fbuge.w	fbcc_
	fbuge.l	fbcc_

	fbult	fbcc_
	fbult.w	fbcc_
	fbult.l	fbcc_

	fbule	fbcc_
	fbule.w	fbcc_
	fbule.l	fbcc_

	fbne	fbcc_
	fbne.w	fbcc_
	fbne.l	fbcc_

	fbt	fbcc_
	fbt.w	fbcc_
	fbt.l	fbcc_

	fbsf	fbcc_
	fbsf.w	fbcc_
	fbsf.l	fbcc_
	
	fbseq	fbcc_
	fbseq.w	fbcc_
	fbseq.l	fbcc_
	
	fbgt	fbcc_
	fbgt.w	fbcc_
	fbgt.l	fbcc_
	
	fbge	fbcc_
	fbge.w	fbcc_
	fbge.l	fbcc_
	
	fblt	fbcc_
	fblt.w	fbcc_
	fblt.l	fbcc_
	
	fble	fbcc_
	fble.w	fbcc_
	fble.l	fbcc_
	
	fbgl	fbcc_
	fbgl.w	fbcc_
	fbgl.l	fbcc_
	
	fbgle	fbcc_
	fbgle.w	fbcc_
	fbgle.l	fbcc_
	
	fbngle	fbcc_
	fbngle.w	fbcc_
	fbngle.l	fbcc_
	
	fbngl	fbcc_
	fbngl.w	fbcc_
	fbngl.l	fbcc_
	
	fbnle	fbcc_
	fbnle.w	fbcc_
	fbnle.l	fbcc_
	
	fbnlt	fbcc_
	fbnlt.w	fbcc_
	fbnlt.l	fbcc_
	
	fbnge	fbcc_
	fbnge.w	fbcc_
	fbnge.l	fbcc_
	
	fbngt	fbcc_
	fbngt.w	fbcc_
	fbngt.l	fbcc_
	
	fbsne	fbcc_
	fbsne.w	fbcc_
	fbsne.l	fbcc_
	
	fbst	fbcc_
	fbst.w	fbcc_
	fbst.l	fbcc_

**************************************************************************
	
fscc_:	fsf	(a0)
	fsf	d0
	fsf	(a0)+
	fsf	-(a0)
	fsf	$2000(a0)
	fsf	(a0,d2,$400)
	fsf	([$400.w,a0,d2.w*4],(fscc_).l)
	fsf	([$400.w,a0],d2.w*4,(fscc_).l)
	fsf	$2000
	fsf	$20000
	fseq	(a0)
	fsogt	(a0)
	fsoge	(a0)
	fsolt	(a0)
	fsole	(a0)
	fsogl	(a0)
	fsor	(a0)
	fsun	(a0)
	fsueq	(a0)
	fsugt	(a0)
	fsuge	(a0)
	fsult	(a0)
	fsule	(a0)
	fsne	(a0)
	fst	(a0)
	fssf	(a0)
	fsseq	(a0)
	fsgt	(a0)
	fsge	(a0)
	fslt	(a0)
	fsle	(a0)
	fsgl	(a0)
	fsgle	(a0)
	fsngle	(a0)
	fsngl	(a0)
	fsnle	(a0)
	fsnlt	(a0)
	fsnge	(a0)
	fsngt	(a0)
	fssne	(a0)
	fsst	(a0)

**************************************************************************

fdbcc_:	fdbf	d5,fdbcc_
	fdbeq	d5,fdbcc_
	fdbogt	d5,fdbcc_
	fdboge	d5,fdbcc_
	fdbolt	d5,fdbcc_
	fdbole	d5,fdbcc_
	fdbogl	d5,fdbcc_
	fdbor	d5,fdbcc_
	fdbun	d5,fdbcc_
	fdbueq	d5,fdbcc_
	fdbugt	d5,fdbcc_
	fdbuge	d5,fdbcc_
	fdbult	d5,fdbcc_
	fdbule	d5,fdbcc_
	fdbne	d5,fdbcc_
	fdbt	d5,fdbcc_
	fdbsf	d5,fdbcc_
	fdbseq	d5,fdbcc_
	fdbgt	d5,fdbcc_
	fdbge	d5,fdbcc_
	fdblt	d5,fdbcc_
	fdble	d5,fdbcc_
	fdbgl	d5,fdbcc_
	fdbgle	d5,fdbcc_
	fdbngle	d5,fdbcc_
	fdbngl	d5,fdbcc_
	fdbnle	d5,fdbcc_
	fdbnlt	d5,fdbcc_
	fdbnge	d5,fdbcc_
	fdbngt	d5,fdbcc_
	fdbsne	d5,fdbcc_
	fdbst	d5,fdbcc_

**************************************************************************

ftrapcc_:ftrapf
	ftrapf.w	#$7422
	ftrapf.l	#$7422

	ftrapeq
	ftrapeq.w	#$7422
	ftrapeq.l	#$7422

	ftrapogt
	ftrapogt.w	#$7422
	ftrapogt.l	#$7422

	ftrapoge
	ftrapoge.w	#$7422
	ftrapoge.l	#$7422

	ftrapolt
	ftrapolt.w	#$7422
	ftrapolt.l	#$7422

	ftrapole
	ftrapole.w	#$7422
	ftrapole.l	#$7422

	ftrapogl
	ftrapogl.w	#$7422
	ftrapogl.l	#$7422

	ftrapor
	ftrapor.w	#$7422
	ftrapor.l	#$7422

	ftrapun
	ftrapun.w	#$7422
	ftrapun.l	#$7422

	ftrapueq
	ftrapueq.w	#$7422
	ftrapueq.l	#$7422

	ftrapugt
	ftrapugt.w	#$7422
	ftrapugt.l	#$7422

	ftrapuge
	ftrapuge.w	#$7422
	ftrapuge.l	#$7422

	ftrapult
	ftrapult.w	#$7422
	ftrapult.l	#$7422

	ftrapule
	ftrapule.w	#$7422
	ftrapule.l	#$7422

	ftrapne
	ftrapne.w	#$7422
	ftrapne.l	#$7422

	ftrapt
	ftrapt.w	#$7422
	ftrapt.l	#$7422

	ftrapsf
	ftrapsf.w	#$7422
	ftrapsf.l	#$7422
	
	ftrapseq
	ftrapseq.w	#$7422
	ftrapseq.l	#$7422
	
	ftrapgt
	ftrapgt.w	#$7422
	ftrapgt.l	#$7422
	
	ftrapge
	ftrapge.w	#$7422
	ftrapge.l	#$7422
	
	ftraplt
	ftraplt.w	#$7422
	ftraplt.l	#$7422
	
	ftraple
	ftraple.w	#$7422
	ftraple.l	#$7422
	
	ftrapgl
	ftrapgl.w	#$7422
	ftrapgl.l	#$7422
	
	ftrapgle
	ftrapgle.w	#$7422
	ftrapgle.l	#$7422
	
	ftrapngle	
	ftrapngle.w	#$7422
	ftrapngle.l	#$7422
	
	ftrapngl
	ftrapngl.w	#$7422
	ftrapngl.l	#$7422
	
	ftrapnle
	ftrapnle.w	#$7422
	ftrapnle.l	#$7422
	
	ftrapnlt
	ftrapnlt.w	#$7422
	ftrapnlt.l	#$7422
	
	ftrapnge
	ftrapnge.w	#$7422
	ftrapnge.l	#$7422
	
	ftrapngt
	ftrapngt.w	#$7422
	ftrapngt.l	#$7422
	
	ftrapsne
	ftrapsne.w	#$7422
	ftrapsne.l	#$7422
	
	ftrapst
	ftrapst.w	#$7422
	ftrapst.l	#$7422
	
**************************************************************************

fmove_:	fmove.s	d1,fp0
	fmove.w	(a1),fp1
	fmove.l	(a1)+,fp2
	fmove.s	-(a1),fp3
	fmove.d	$3000(a1),fp1
	fmove.x	$20(a1,d1.w),fp2
	fmove.p	(a1,d2.w*8,$4000.w),fp3
	fmove.p	([$6000.w,a1,d2.w*8],$4000.w),fp3
	fmove.p	([$6000.w,a1],d2.w*8,$4000.w),fp3

	fmove.s	fp1,d1
	fmove.w	fp2,(a1)
	fmove.l	fp3,(a1)+
	fmove.s	fp4,-(a1)
	fmove.d	fp5,$3000(a1)
	fmove.x	fp6,$20(a1,d1.w)
	fmove.p	fp7,(a1,d2.w*8,$4000.w)
	fmove.p	fp6,([$6000.w,a1,d2.w*8],$4000.w)
	fmove.p	fp5,([$6000.w,a1],d2.w*8,$4000.w)

	fmove.p	fp3,([$6000.w,a1,d2.w*8],$4000.w){d2}
	fmove.p	fp3,([$6000.w,a1],d2.w*8,$4000.w){#20}
	fmove.p	fp3,([$6000.w,a1],d2.w*8,$4000.w){$20}

**************************************************************************

fmove_cr_:fmove.l	d1,fpsr
	fmove.l	(a1),fpcr
	fmove.l	(a1)+,fpiar
	fmove.l	-(a1),fpcr
	fmove.l	$3000(a1),fpsr
	fmove.l	$20(a1,d1.w),fpcr
	fmove.l	(a1,d2.w*8,$4000.w),fpiar
	fmove.l	([$6000.w,a1,d2.w*8],$4000.w),fpsr
	fmove.l	([$6000.w,a1],d2.w*8,$4000.w),fpcr

	fmove.l	fpsr,d1
	fmove.l	fpcr,(a1)
	fmove.l	fpiar,(a1)+
	fmove.l	fpcr,-(a1)
	fmove.l	fpsr,$3000(a1)
	fmove.l	fpcr,$20(a1,d1.w)
	fmove.l	fpiar,(a1,d2.w*8,$4000.w)
	fmove.l	fpsr,([$6000.w,a1,d2.w*8],$4000.w)
	fmove.l	fpcr,([$6000.w,a1],d2.w*8,$4000.w)

**************************************************************************

fmovem_crto_:
	fmovem	(a1),fpcr/fpsr
	fmovem	(a1)+,fpsr/fpiar
	fmovem	$3000(a1),fpcr/fpsr
	fmovem	$20(a1,d1.w),fpcr/fpsr/fpiar
	fmovem	(a1,d2.w*8,$4000.w),fpcr/fpiar
	fmovem	([$6000.w,a1,d2.w*8],$4000.w),fpsr/fpiar
	fmovem	([$6000.w,a1],d2.w*8,$4000.w),fpcr/fpsr/fpiar

fmovem_crfrom_:
	fmovem	fpcr/fpsr,(a1)
	fmovem	fpcr/fpiar,(a1)+
	fmovem	fpcr/fpsr/fpiar,-(a1)
	fmovem	fpsr/fpiar,$3000(a1)
	fmovem	fpcr/fpsr,$20(a1,d1.w)
	fmovem	fpsr/fpiar,(a1,d2.w*8,$4000.w)
	fmovem	fpcr/fpsr,([$6000.w,a1,d2.w*8],$4000.w)
	fmovem	fpcr/fpiar,([$6000.w,a1],d2.w*8,$4000.w)

**************************************************************************


fmovem_:	fmovem	fp0-fp2/fp4-fp5/fp7,-(a0)
	fmovem	fp0-fp2/fp4-fp5/fp7,(a0)
	fmovem	(a0)+,fp0-fp5
	fmovem	([$400.w,a0],d0.w),fp0-fp2/fp4-fp5/fp7

**************************************************************************

fmovecr_:fmovecr	#0,fp0
	fmovecr	#$2,fp5
	fmovecr	#$b,fp1
	fmovecr	#$c,fp2
	fmovecr	#$d,fp3
	fmovecr	#$e,fp4
	fmovecr	#$f,fp5

**************************************************************************

;=========================================================================
;
; Here starts the Memory Management Unit (MMU) section !!
;
;=========================================================================

PBccword_:
	pbbs.w	PBccword_
	pbbc.w	PBccword_
	pbls.w	PBccword_
	pbls.w	PBccword_
	pbss.w	PBccword_
	pbss.w	PBccword_
	pbas.w	PBccword_
	pbas.w	PBccword_
	pbws.w	PBccword_
	pbws.w	PBccword_
	pbis.w	PBccword_
	pbis.w	PBccword_
	pbgs.w	PBccword_
	pbgs.w	PBccword_
	pbcs.w	PBccword_
	pbcs.w	PBccword_

PBcclong_:
	pbbs.l	PBcclong_
	pbbc.l	PBcclong_
	pbls.l	PBcclong_
	pbls.l	PBcclong_
	pbss.l	PBcclong_
	pbss.l	PBcclong_
	pbas.l	PBcclong_
	pbas.l	PBcclong_
	pbws.l	PBcclong_
	pbws.l	PBcclong_
	pbis.l	PBcclong_
	pbis.l	PBcclong_
	pbgs.l	PBcclong_
	pbgs.l	PBcclong_
	pbcs.l	PBcclong_
	pbcs.l	PBcclong_

**************************************************************************

PDBcc_:	pdbbs	D7,PDBcc_
	pdbbc	D7,PDBcc_
	pdbls	D7,PDBcc_
	pdblc	D7,PDBcc_
	pdbss	D7,PDBcc_
	pdbsc	D7,PDBcc_
	pdbas	D7,PDBcc_
	pdbac	D7,PDBcc_
	pdbws	D7,PDBcc_
	pdbwc	D7,PDBcc_
	pdbis	D7,PDBcc_
	pdbic	D7,PDBcc_
	pdbgs	D7,PDBcc_
	pdbgc	D7,PDBcc_
	pdbcs	D7,PDBcc_
	pdbcc	D7,PDBcc_

**************************************************************************

PFLUSH_:
	pflusha		; MC68030/MC68040/MC68851

	pflush	(a0)		; MC68040 only
	pflushn	(a0)		; MC68040 only
	
	pflushr	([$402.w,pc,d2.l*8],$726252.l)

	pflush	#5,#4		; MC68030 / MC68851
	pflush	d2,#4		; MC68030 / MC68851
	pflush	SFC,#4		; MC68030 / MC68851
	pflush	DFC,#4		; MC68030 / MC68851

	pflush	#5,#1,(a0,d0.w*2,$200.w)	; MC68030 / MC68851
	pflush	d2,#2,(a0,d0.w*4,$300.w)	; MC68030 / MC68851
	pflush	SFC,#3,(a0,d0.w*8,$400.w)	; MC68030 / MC68851
	pflush	DFC,#4,(a0,d0.w*8,$400.w)	; MC68030 / MC68851

	pflushs	#5,#4		; MC68851
	pflushs	d2,#4		; MC68851
	pflushs	SFC,#4		; MC68851
	pflushs	DFC,#4		; MC68851
	pflushs	#5,#1,(a0,d0.w*2,$200.w)	; MC68851
	pflushs	d2,#2,(a0,d0.w*4,$300.w)	; MC68851
	pflushs	SFC,#3,(a0,d0.w*8,$400.w)	; MC68851
	pflushs	DFC,#4,(a0,d0.w*8,$400.w)	; MC68851

**************************************************************************

PLOAD_:	ploadr	#%111,(a1)	; MC68030 / MC68851
	ploadw	#%110,$2000(a2)	; MC68030 / MC68851
	ploadr	#%0111,([$400.w,a2,d6.l*8],$919.l)	; MC68851
	ploadw	#%1010,([$400.w,a2],d6.w*4,$919.w)	; MC68851

**************************************************************************

PMOVE_:	pmove.b	cal,(a0)
	pmove.b	([$100.w,a1,d2.w],$400.l),val
	pmove.b	scc,d0

	pmove.w	mmusr,(a1)
	pmove.w	acusr,(a2)
	pmove.w	psr,(a3)
	pmove.w	pcr,(a4)
	pmove.w	bad2,(a5,d0.w*2)
	pmove.w	bac3,([$400.w,a4,d3.l*4],$500.w)
	pmove.w	ac,([$400.w,a3,d3.l*4],$500.w)
	pmove.w	(a0),mmusr
	pmove.w	(a1),acusr
	pmove.w	(a2),psr
	pmove.w	(a3),pcr
	pmove.w	(a5,d0.w*2),bad2
	pmove.w	([$400.w,a4,d3.l*4],$500.w),bac3
	pmove.w	([$400.w,a3,d3.l*4],$500.w),ac

	pmove.l	tc,(a1,d0.w*2,$400.w)
	pmove.l	tt0,(a2)
	pmove.l	tt1,(a3)
	pmove.l	(a1,d0.w*2,$400.w),tc
	pmove.l	(a2),tt0
	pmove.l	(a3),tt1

	pmove.q	srp,(a2)
	pmove.q	crp,(a3)
	pmove.d	drp,(a4)
	pmove.q	(a2),srp
	pmove.q	(a3),crp
	pmove.d	(a4),drp

**************************************************************************

PSAVE_:	psave	(a1)
	psave	-(a2)
	psave	$2000(a3)
	psave	$40(a0,d2.w)
	psave	(a2,d3.w*4,$400.w)

**************************************************************************

PRESTORE_:
	prestore	(a1)
	prestore	(a2)+
	prestore	$2000(a3)
	prestore	$40(a0,d2.w)
	prestore	(a2,d3.w*4,$400.w)

**************************************************************************

PScc_:	psbs	d1
	psbc	(a2)
	psls	(a3)+
	pslc	-(a4)
	psss	$3000(a5)
	pssc	$40(a6,d0.w)
	psas	([$450.w,a5,d2.w*4])
	psac	([$500.l,a4,d3.l*2],$992.w)
	psws	$400.w
	pswc	PScc_
	psis	([$400.w,a3],d6.w*8,$99283.l)
	psic	(a5,d2.w*4,$450.w)
	psgs	(d4)
	psgc	(a3,d4)
	pscs	(d4.w,$400)
	pscc	(d7.l*2,$200.w)

**************************************************************************

PTEST_:	ptestr	(a1)
	ptestw	(a2)

	ptestr	#5,(a2,d4.w)
	ptestw	#3,$2000(a3)

	ptestr	sfc,([$100.w,a2,d3.w],$400.w),#4
	ptestw	dfc,(a3,d2.l*4,$400.w),#5

	ptestr	d2,([$300.w,a1,d4.w*4]),#4,a2
	ptestw	d4,(a1,d4.w*2,$200.w),#5,a3

**************************************************************************

PTRAPcc_:
	ptrapbs
	ptrapbs.w	#400
	ptrapbs.l	#$210202
	ptrapbc
	ptrapbc.w	#400
	ptrapbc.l	#$210202

	ptrapls
	ptrapls.w	#400
	ptrapls.l	#$210202
	ptraplc
	ptraplc.w	#400
	ptraplc.l	#$210202

	ptrapss
	ptrapss.w	#400
	ptrapss.l	#$210202
	ptrapsc
	ptrapsc.w	#400
	ptrapsc.l	#$210202

	ptrapas
	ptrapas.w	#400
	ptrapas.l	#$210202
	ptrapac
	ptrapac.w	#400
	ptrapac.l	#$210202

	ptrapws
	ptrapws.w	#400
	ptrapws.l	#$210202
	ptrapwc
	ptrapwc.w	#400
	ptrapwc.l	#$210202

	ptrapis
	ptrapis.w	#400
	ptrapis.l	#$210202
	ptrapic
	ptrapic.w	#400
	ptrapic.l	#$210202

	ptrapgs
	ptrapgs.w	#400
	ptrapgs.l	#$210202
	ptrapgc
	ptrapgc.w	#400
	ptrapgc.l	#$210202

	ptrapcs
	ptrapcs.w	#400
	ptrapcs.l	#$210202
	ptrapcc
	ptrapcc.w	#400
	ptrapcc.l	#$210202

**************************************************************************

PVALID_:	pvalid	val,$3440(a2)
	pvalid	a4,PVALID_

;=============================T=H=E==E=N=D===================================
