Home | History | Annotate | Line # | Download | only in fpsp
      1  1.2      cgd *	$NetBSD: fpsp.h,v 1.2 1994/10/26 07:49:04 cgd Exp $
      2  1.2      cgd 
      3  1.1  mycroft *	MOTOROLA MICROPROCESSOR & MEMORY TECHNOLOGY GROUP
      4  1.1  mycroft *	M68000 Hi-Performance Microprocessor Division
      5  1.1  mycroft *	M68040 Software Package
      6  1.1  mycroft *
      7  1.1  mycroft *	M68040 Software Package Copyright (c) 1993, 1994 Motorola Inc.
      8  1.1  mycroft *	All rights reserved.
      9  1.1  mycroft *
     10  1.1  mycroft *	THE SOFTWARE is provided on an "AS IS" basis and without warranty.
     11  1.1  mycroft *	To the maximum extent permitted by applicable law,
     12  1.1  mycroft *	MOTOROLA DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED,
     13  1.1  mycroft *	INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
     14  1.1  mycroft *	PARTICULAR PURPOSE and any warranty against infringement with
     15  1.1  mycroft *	regard to the SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF)
     16  1.1  mycroft *	and any accompanying written materials.
     17  1.1  mycroft *
     18  1.1  mycroft *	To the maximum extent permitted by applicable law,
     19  1.1  mycroft *	IN NO EVENT SHALL MOTOROLA BE LIABLE FOR ANY DAMAGES WHATSOEVER
     20  1.1  mycroft *	(INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS
     21  1.1  mycroft *	PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR
     22  1.1  mycroft *	OTHER PECUNIARY LOSS) ARISING OF THE USE OR INABILITY TO USE THE
     23  1.1  mycroft *	SOFTWARE.  Motorola assumes no responsibility for the maintenance
     24  1.1  mycroft *	and support of the SOFTWARE.
     25  1.1  mycroft *
     26  1.1  mycroft *	You are hereby granted a copyright license to use, modify, and
     27  1.1  mycroft *	distribute the SOFTWARE so long as this entire notice is retained
     28  1.1  mycroft *	without alteration in any modified and/or redistributed versions,
     29  1.1  mycroft *	and that such modified versions are clearly identified as such.
     30  1.1  mycroft *	No licenses are granted by implication, estoppel or otherwise
     31  1.1  mycroft *	under any patents or trademarks of Motorola, Inc.
     32  1.1  mycroft 
     33  1.1  mycroft *
     34  1.1  mycroft *	fpsp.h 3.3 3.3
     35  1.1  mycroft *
     36  1.1  mycroft 
     37  1.1  mycroft *	fpsp.h --- stack frame offsets during FPSP exception handling
     38  1.1  mycroft *
     39  1.1  mycroft *	These equates are used to access the exception frame, the fsave
     40  1.1  mycroft *	frame and any local variables needed by the FPSP package.
     41  1.1  mycroft *
     42  1.1  mycroft *	All FPSP handlers begin by executing:
     43  1.1  mycroft *
     44  1.1  mycroft *		link	a6,#-LOCAL_SIZE
     45  1.1  mycroft *		fsave	-(a7)
     46  1.1  mycroft *		movem.l	d0-d1/a0-a1,USER_DA(a6)
     47  1.1  mycroft *		fmovem.x fp0-fp3,USER_FP0(a6)
     48  1.1  mycroft *		fmove.l	fpsr/fpcr/fpiar,USER_FPSR(a6)
     49  1.1  mycroft *
     50  1.1  mycroft *	After initialization, the stack looks like this:
     51  1.1  mycroft *
     52  1.1  mycroft *	A7 --->	+-------------------------------+
     53  1.1  mycroft *		|				|
     54  1.1  mycroft *		|	FPU fsave area		|
     55  1.1  mycroft *		|				|
     56  1.1  mycroft *		+-------------------------------+
     57  1.1  mycroft *		|				|
     58  1.1  mycroft *		|	FPSP Local Variables	|
     59  1.1  mycroft *		|	     including		|
     60  1.1  mycroft *		|	  saved registers	|
     61  1.1  mycroft *		|				|
     62  1.1  mycroft *		+-------------------------------+
     63  1.1  mycroft *	A6 --->	|	Saved A6		|
     64  1.1  mycroft *		+-------------------------------+
     65  1.1  mycroft *		|				|
     66  1.1  mycroft *		|	Exception Frame		|
     67  1.1  mycroft *		|				|
     68  1.1  mycroft *		|				|
     69  1.1  mycroft *
     70  1.1  mycroft *	Positive offsets from A6 refer to the exception frame.  Negative
     71  1.1  mycroft *	offsets refer to the Local Variable area and the fsave area.
     72  1.1  mycroft *	The fsave frame is also accessible 'from the top' via A7.
     73  1.1  mycroft *
     74  1.1  mycroft *	On exit, the handlers execute:
     75  1.1  mycroft *
     76  1.1  mycroft *		movem.l	USER_DA(a6),d0-d1/a0-a1
     77  1.1  mycroft *		fmovem.x USER_FP0(a6),fp0-fp3
     78  1.1  mycroft *		fmove.l	USER_FPSR(a6),fpsr/fpcr/fpiar
     79  1.1  mycroft *		frestore (a7)+
     80  1.1  mycroft *		unlk	a6
     81  1.1  mycroft *
     82  1.1  mycroft *	and then either 'bra fpsp_done' if the exception was completely
     83  1.1  mycroft *	handled	by the package, or 'bra real_xxxx' which is an external
     84  1.1  mycroft *	label to a routine that will process a real exception of the
     85  1.1  mycroft *	type that was generated.  Some handlers may omit the 'frestore'
     86  1.1  mycroft *	if the FPU state after the exception is idle.
     87  1.1  mycroft *
     88  1.1  mycroft *	Sometimes the exception handler will transform the fsave area
     89  1.1  mycroft *	because it needs to report an exception back to the user.  This
     90  1.1  mycroft *	can happen if the package is entered for an unimplemented float
     91  1.1  mycroft *	instruction that generates (say) an underflow.  Alternatively,
     92  1.1  mycroft *	a second fsave frame can be pushed onto the stack and the
     93  1.1  mycroft *	handler	exit code will reload the new frame and discard the old.
     94  1.1  mycroft *
     95  1.1  mycroft *	The registers d0, d1, a0, a1 and fp0-fp3 are always saved and
     96  1.1  mycroft *	restored from the 'local variable' area and can be used as
     97  1.1  mycroft *	temporaries.  If a routine needs to change any
     98  1.1  mycroft *	of these registers, it should modify the saved copy and let
     99  1.1  mycroft *	the handler exit code restore the value.
    100  1.1  mycroft *
    101  1.1  mycroft *----------------------------------------------------------------------
    102  1.1  mycroft *
    103  1.1  mycroft *	Local Variables on the stack
    104  1.1  mycroft *
    105  1.1  mycroft LOCAL_SIZE	equ	192		;bytes needed for local variables
    106  1.1  mycroft LV		equ	-LOCAL_SIZE	;convenient base value
    107  1.1  mycroft *
    108  1.1  mycroft USER_DA		equ	LV+0		;save space for D0-D1,A0-A1
    109  1.1  mycroft USER_D0		equ	LV+0		;saved user D0
    110  1.1  mycroft USER_D1		equ	LV+4		;saved user D1
    111  1.1  mycroft USER_A0		equ	LV+8		;saved user A0
    112  1.1  mycroft USER_A1		equ	LV+12		;saved user A1
    113  1.1  mycroft USER_FP0	equ	LV+16		;saved user FP0
    114  1.1  mycroft USER_FP1	equ	LV+28		;saved user FP1
    115  1.1  mycroft USER_FP2	equ	LV+40		;saved user FP2
    116  1.1  mycroft USER_FP3	equ	LV+52		;saved user FP3
    117  1.1  mycroft USER_FPCR	equ	LV+64		;saved user FPCR
    118  1.1  mycroft FPCR_ENABLE	equ	USER_FPCR+2	;	FPCR exception enable
    119  1.1  mycroft FPCR_MODE	equ	USER_FPCR+3	;	FPCR rounding mode control
    120  1.1  mycroft USER_FPSR	equ	LV+68		;saved user FPSR
    121  1.1  mycroft FPSR_CC		equ	USER_FPSR+0	;	FPSR condition code
    122  1.1  mycroft FPSR_QBYTE	equ	USER_FPSR+1	;	FPSR quotient
    123  1.1  mycroft FPSR_EXCEPT	equ	USER_FPSR+2	;	FPSR exception
    124  1.1  mycroft FPSR_AEXCEPT	equ	USER_FPSR+3	;	FPSR accrued exception
    125  1.1  mycroft USER_FPIAR	equ	LV+72		;saved user FPIAR
    126  1.1  mycroft FP_SCR1		equ	LV+76		;room for a temporary float value
    127  1.1  mycroft FP_SCR2		equ	LV+92		;room for a temporary float value
    128  1.1  mycroft L_SCR1		equ	LV+108		;room for a temporary long value
    129  1.1  mycroft L_SCR2		equ	LV+112		;room for a temporary long value
    130  1.1  mycroft STORE_FLG	equ	LV+116
    131  1.1  mycroft BINDEC_FLG	equ	LV+117		;used in bindec
    132  1.1  mycroft DNRM_FLG	equ	LV+118		;used in res_func
    133  1.1  mycroft RES_FLG		equ	LV+119		;used in res_func
    134  1.1  mycroft DY_MO_FLG	equ	LV+120		;dyadic/monadic flag
    135  1.1  mycroft UFLG_TMP	equ	LV+121		;temporary for uflag errata
    136  1.1  mycroft CU_ONLY		equ	LV+122		;cu-only flag
    137  1.1  mycroft VER_TMP		equ	LV+123		;temp holding for version number
    138  1.1  mycroft L_SCR3		equ	LV+124		;room for a temporary long value
    139  1.1  mycroft FP_SCR3		equ	LV+128		;room for a temporary float value
    140  1.1  mycroft FP_SCR4		equ	LV+144		;room for a temporary float value
    141  1.1  mycroft FP_SCR5		equ	LV+160		;room for a temporary float value
    142  1.1  mycroft FP_SCR6		equ	LV+176
    143  1.1  mycroft *
    144  1.1  mycroft *NEXT		equ	LV+192		;need to increase LOCAL_SIZE
    145  1.1  mycroft *
    146  1.1  mycroft *--------------------------------------------------------------------------
    147  1.1  mycroft *
    148  1.1  mycroft *	fsave offsets and bit definitions
    149  1.1  mycroft *
    150  1.1  mycroft *	Offsets are defined from the end of an fsave because the last 10
    151  1.1  mycroft *	words of a busy frame are the same as the unimplemented frame.
    152  1.1  mycroft *
    153  1.1  mycroft CU_SAVEPC	equ	LV-92		;micro-pc for CU (1 byte)
    154  1.1  mycroft FPR_DIRTY_BITS	equ	LV-91		;fpr dirty bits
    155  1.1  mycroft *
    156  1.1  mycroft WBTEMP		equ	LV-76		;write back temp (12 bytes)
    157  1.1  mycroft WBTEMP_EX	equ	WBTEMP		;wbtemp sign and exponent (2 bytes)
    158  1.1  mycroft WBTEMP_HI	equ	WBTEMP+4	;wbtemp mantissa [63:32] (4 bytes)
    159  1.1  mycroft WBTEMP_LO	equ	WBTEMP+8	;wbtemp mantissa [31:00] (4 bytes)
    160  1.1  mycroft *
    161  1.1  mycroft WBTEMP_SGN	equ	WBTEMP+2	;used to store sign
    162  1.1  mycroft *
    163  1.1  mycroft FPSR_SHADOW	equ	LV-64		;fpsr shadow reg
    164  1.1  mycroft *
    165  1.1  mycroft FPIARCU		equ	LV-60		;Instr. addr. reg. for CU (4 bytes)
    166  1.1  mycroft *
    167  1.1  mycroft CMDREG2B	equ	LV-52		;cmd reg for machine 2
    168  1.1  mycroft CMDREG3B	equ	LV-48		;cmd reg for E3 exceptions (2 bytes)
    169  1.1  mycroft *
    170  1.1  mycroft NMNEXC		equ	LV-44		;NMNEXC (unsup,snan bits only)
    171  1.1  mycroft nmn_unsup_bit	equ	1
    172  1.1  mycroft nmn_snan_bit	equ	0
    173  1.1  mycroft *
    174  1.1  mycroft NMCEXC		equ	LV-43		;NMNEXC & NMCEXC
    175  1.1  mycroft nmn_operr_bit	equ	7
    176  1.1  mycroft nmn_ovfl_bit	equ	6
    177  1.1  mycroft nmn_unfl_bit	equ	5
    178  1.1  mycroft nmc_unsup_bit	equ	4
    179  1.1  mycroft nmc_snan_bit	equ	3
    180  1.1  mycroft nmc_operr_bit	equ	2
    181  1.1  mycroft nmc_ovfl_bit	equ	1
    182  1.1  mycroft nmc_unfl_bit	equ	0
    183  1.1  mycroft *
    184  1.1  mycroft STAG		equ	LV-40		;source tag (1 byte)
    185  1.1  mycroft WBTEMP_GRS	equ	LV-40		;alias wbtemp guard, round, sticky
    186  1.1  mycroft guard_bit	equ	1		;guard bit is bit number 1
    187  1.1  mycroft round_bit	equ	0		;round bit is bit number 0
    188  1.1  mycroft stag_mask	equ	$E0		;upper 3 bits are source tag type
    189  1.1  mycroft denorm_bit	equ	7		;bit determins if denorm or unnorm
    190  1.1  mycroft etemp15_bit	equ	4		;etemp exponent bit #15
    191  1.1  mycroft wbtemp66_bit	equ	2		;wbtemp mantissa bit #66
    192  1.1  mycroft wbtemp1_bit	equ	1		;wbtemp mantissa bit #1
    193  1.1  mycroft wbtemp0_bit	equ	0		;wbtemp mantissa bit #0
    194  1.1  mycroft *
    195  1.1  mycroft STICKY		equ	LV-39		;holds sticky bit
    196  1.1  mycroft sticky_bit	equ	7
    197  1.1  mycroft *
    198  1.1  mycroft CMDREG1B	equ	LV-36		;cmd reg for E1 exceptions (2 bytes)
    199  1.1  mycroft kfact_bit	equ	12		;distinguishes static/dynamic k-factor
    200  1.1  mycroft *					;on packed move out's.  NOTE: this
    201  1.1  mycroft *					;equate only works when CMDREG1B is in
    202  1.1  mycroft *					;a register.
    203  1.1  mycroft *
    204  1.1  mycroft CMDWORD		equ	LV-35		;command word in cmd1b
    205  1.1  mycroft direction_bit	equ	5		;bit 0 in opclass
    206  1.1  mycroft size_bit2	equ	12		;bit 2 in size field
    207  1.1  mycroft *
    208  1.1  mycroft DTAG		equ	LV-32		;dest tag (1 byte)
    209  1.1  mycroft dtag_mask	equ	$E0		;upper 3 bits are dest type tag
    210  1.1  mycroft fptemp15_bit	equ	4		;fptemp exponent bit #15
    211  1.1  mycroft *
    212  1.1  mycroft WB_BYTE		equ	LV-31		;holds WBTE15 bit (1 byte)
    213  1.1  mycroft wbtemp15_bit	equ	4		;wbtemp exponent bit #15
    214  1.1  mycroft *
    215  1.1  mycroft E_BYTE		equ	LV-28		;holds E1 and E3 bits (1 byte)
    216  1.1  mycroft E1		equ	2		;which bit is E1 flag
    217  1.1  mycroft E3		equ	1		;which bit is E3 flag
    218  1.1  mycroft SFLAG		equ	0		;which bit is S flag
    219  1.1  mycroft *
    220  1.1  mycroft T_BYTE		equ	LV-27		;holds T and U bits (1 byte)
    221  1.1  mycroft XFLAG		equ	7		;which bit is X flag
    222  1.1  mycroft UFLAG		equ	5		;which bit is U flag
    223  1.1  mycroft TFLAG		equ	4		;which bit is T flag
    224  1.1  mycroft *
    225  1.1  mycroft FPTEMP		equ	LV-24		;fptemp (12 bytes)
    226  1.1  mycroft FPTEMP_EX	equ	FPTEMP		;fptemp sign and exponent (2 bytes)
    227  1.1  mycroft FPTEMP_HI	equ	FPTEMP+4	;fptemp mantissa [63:32] (4 bytes)
    228  1.1  mycroft FPTEMP_LO	equ	FPTEMP+8	;fptemp mantissa [31:00] (4 bytes)
    229  1.1  mycroft *
    230  1.1  mycroft FPTEMP_SGN	equ	FPTEMP+2	;used to store sign
    231  1.1  mycroft *
    232  1.1  mycroft ETEMP		equ	LV-12		;etemp (12 bytes)
    233  1.1  mycroft ETEMP_EX	equ	ETEMP		;etemp sign and exponent (2 bytes)
    234  1.1  mycroft ETEMP_HI	equ	ETEMP+4		;etemp mantissa [63:32] (4 bytes)
    235  1.1  mycroft ETEMP_LO	equ	ETEMP+8		;etemp mantissa [31:00] (4 bytes)
    236  1.1  mycroft *
    237  1.1  mycroft ETEMP_SGN	equ	ETEMP+2		;used to store sign
    238  1.1  mycroft *
    239  1.1  mycroft EXC_SR		equ	4		;exception frame status register
    240  1.1  mycroft EXC_PC		equ	6		;exception frame program counter
    241  1.1  mycroft EXC_VEC		equ	10		;exception frame vector (format+vector#)
    242  1.1  mycroft EXC_EA		equ	12		;exception frame effective address
    243  1.1  mycroft *
    244  1.1  mycroft *--------------------------------------------------------------------------
    245  1.1  mycroft *
    246  1.1  mycroft *	FPSR/FPCR bits
    247  1.1  mycroft *
    248  1.1  mycroft neg_bit		equ	3	negative result
    249  1.1  mycroft z_bit		equ	2	zero result
    250  1.1  mycroft inf_bit		equ	1	infinity result
    251  1.1  mycroft nan_bit		equ	0	not-a-number result
    252  1.1  mycroft *
    253  1.1  mycroft q_sn_bit	equ	7	sign bit of quotient byte
    254  1.1  mycroft *
    255  1.1  mycroft bsun_bit	equ	7	branch on unordered
    256  1.1  mycroft snan_bit	equ	6	signalling nan
    257  1.1  mycroft operr_bit	equ	5	operand error
    258  1.1  mycroft ovfl_bit	equ	4	overflow
    259  1.1  mycroft unfl_bit	equ	3	underflow
    260  1.1  mycroft dz_bit		equ	2	divide by zero
    261  1.1  mycroft inex2_bit	equ	1	inexact result 2
    262  1.1  mycroft inex1_bit	equ	0	inexact result 1
    263  1.1  mycroft *
    264  1.1  mycroft aiop_bit	equ	7	accrued illegal operation
    265  1.1  mycroft aovfl_bit	equ	6	accrued overflow
    266  1.1  mycroft aunfl_bit	equ	5	accrued underflow
    267  1.1  mycroft adz_bit		equ	4	accrued divide by zero
    268  1.1  mycroft ainex_bit	equ	3	accrued inexact
    269  1.1  mycroft *
    270  1.1  mycroft *	FPSR individual bit masks
    271  1.1  mycroft *
    272  1.1  mycroft neg_mask	equ	$08000000
    273  1.1  mycroft z_mask		equ	$04000000
    274  1.1  mycroft inf_mask	equ	$02000000
    275  1.1  mycroft nan_mask	equ	$01000000
    276  1.1  mycroft *
    277  1.1  mycroft bsun_mask	equ	$00008000
    278  1.1  mycroft snan_mask	equ	$00004000
    279  1.1  mycroft operr_mask	equ	$00002000
    280  1.1  mycroft ovfl_mask	equ	$00001000
    281  1.1  mycroft unfl_mask	equ	$00000800
    282  1.1  mycroft dz_mask		equ	$00000400
    283  1.1  mycroft inex2_mask	equ	$00000200
    284  1.1  mycroft inex1_mask	equ	$00000100
    285  1.1  mycroft *
    286  1.1  mycroft aiop_mask	equ	$00000080	accrued illegal operation
    287  1.1  mycroft aovfl_mask	equ	$00000040	accrued overflow
    288  1.1  mycroft aunfl_mask	equ	$00000020	accrued underflow
    289  1.1  mycroft adz_mask	equ	$00000010	accrued divide by zero
    290  1.1  mycroft ainex_mask	equ	$00000008	accrued inexact
    291  1.1  mycroft *
    292  1.1  mycroft *	FPSR combinations used in the FPSP
    293  1.1  mycroft *
    294  1.1  mycroft dzinf_mask	equ	inf_mask+dz_mask+adz_mask
    295  1.1  mycroft opnan_mask	equ	nan_mask+operr_mask+aiop_mask
    296  1.1  mycroft nzi_mask	equ	$01ffffff 	clears N, Z, and I
    297  1.1  mycroft unfinx_mask	equ	unfl_mask+inex2_mask+aunfl_mask+ainex_mask
    298  1.1  mycroft unf2inx_mask	equ	unfl_mask+inex2_mask+ainex_mask
    299  1.1  mycroft ovfinx_mask	equ	ovfl_mask+inex2_mask+aovfl_mask+ainex_mask
    300  1.1  mycroft inx1a_mask	equ	inex1_mask+ainex_mask
    301  1.1  mycroft inx2a_mask	equ	inex2_mask+ainex_mask
    302  1.1  mycroft snaniop_mask	equ	nan_mask+snan_mask+aiop_mask
    303  1.1  mycroft naniop_mask	equ	nan_mask+aiop_mask
    304  1.1  mycroft neginf_mask	equ	neg_mask+inf_mask
    305  1.1  mycroft infaiop_mask	equ	inf_mask+aiop_mask
    306  1.1  mycroft negz_mask	equ	neg_mask+z_mask
    307  1.1  mycroft opaop_mask	equ	operr_mask+aiop_mask
    308  1.1  mycroft unfl_inx_mask	equ	unfl_mask+aunfl_mask+ainex_mask
    309  1.1  mycroft ovfl_inx_mask	equ	ovfl_mask+aovfl_mask+ainex_mask
    310  1.1  mycroft *
    311  1.1  mycroft *--------------------------------------------------------------------------
    312  1.1  mycroft *
    313  1.1  mycroft *	FPCR rounding modes
    314  1.1  mycroft *
    315  1.1  mycroft x_mode		equ	$00	round to extended
    316  1.1  mycroft s_mode		equ	$40	round to single
    317  1.1  mycroft d_mode		equ	$80	round to double
    318  1.1  mycroft *
    319  1.1  mycroft rn_mode		equ	$00	round nearest
    320  1.1  mycroft rz_mode		equ	$10	round to zero
    321  1.1  mycroft rm_mode		equ	$20	round to minus infinity
    322  1.1  mycroft rp_mode		equ	$30	round to plus infinity
    323  1.1  mycroft *
    324  1.1  mycroft *--------------------------------------------------------------------------
    325  1.1  mycroft *
    326  1.1  mycroft *	Miscellaneous equates
    327  1.1  mycroft *
    328  1.1  mycroft signan_bit	equ	6	signalling nan bit in mantissa
    329  1.1  mycroft sign_bit	equ	7
    330  1.1  mycroft *
    331  1.1  mycroft rnd_stky_bit	equ	29	round/sticky bit of mantissa
    332  1.1  mycroft *				this can only be used if in a data register
    333  1.1  mycroft sx_mask		equ	$01800000 set s and x bits in word $48
    334  1.1  mycroft *
    335  1.1  mycroft LOCAL_EX	equ	0
    336  1.1  mycroft LOCAL_SGN	equ	2
    337  1.1  mycroft LOCAL_HI	equ	4
    338  1.1  mycroft LOCAL_LO	equ	8
    339  1.1  mycroft LOCAL_GRS	equ	12	valid ONLY for FP_SCR1, FP_SCR2
    340  1.1  mycroft *
    341  1.1  mycroft *
    342  1.1  mycroft norm_tag	equ	$00	tag bits in {7:5} position
    343  1.1  mycroft zero_tag	equ	$20
    344  1.1  mycroft inf_tag		equ	$40
    345  1.1  mycroft nan_tag		equ	$60
    346  1.1  mycroft dnrm_tag	equ	$80
    347  1.1  mycroft *
    348  1.1  mycroft *	fsave sizes and formats
    349  1.1  mycroft *
    350  1.1  mycroft VER_4		equ	$40		fpsp compatible version numbers
    351  1.1  mycroft *					are in the $40s {$40-$4f}
    352  1.1  mycroft VER_40		equ	$40		original version number
    353  1.1  mycroft VER_41		equ	$41		revision version number
    354  1.1  mycroft *
    355  1.1  mycroft BUSY_SIZE	equ	100		size of busy frame
    356  1.1  mycroft BUSY_FRAME	equ	LV-BUSY_SIZE	start of busy frame
    357  1.1  mycroft *
    358  1.1  mycroft UNIMP_40_SIZE	equ	44		size of orig unimp frame
    359  1.1  mycroft UNIMP_41_SIZE	equ	52		size of rev unimp frame
    360  1.1  mycroft *
    361  1.1  mycroft IDLE_SIZE	equ	4		size of idle frame
    362  1.1  mycroft IDLE_FRAME	equ	LV-IDLE_SIZE	start of idle frame
    363  1.1  mycroft *
    364  1.1  mycroft *	exception vectors
    365  1.1  mycroft *
    366  1.1  mycroft TRACE_VEC	equ	$2024		trace trap
    367  1.1  mycroft FLINE_VEC	equ	$002C		'real' F-line
    368  1.1  mycroft UNIMP_VEC	equ	$202C		unimplemented
    369  1.1  mycroft INEX_VEC	equ	$00C4
    370  1.1  mycroft *
    371  1.1  mycroft dbl_thresh	equ	$3C01
    372  1.1  mycroft sgl_thresh	equ	$3F81
    373  1.1  mycroft *
    374