head     56.3;
access   ;
symbols  ;
locks    ; strict;
comment  @# @;


56.3
date     93.01.27.13.55.46;  author jwh;  state Exp;
branches ;
next     56.2;

56.2
date     93.01.27.12.27.43;  author jwh;  state Exp;
branches ;
next     56.1;

56.1
date     91.11.07.12.28.30;  author jwh;  state Exp;
branches ;
next     1.1;

1.1
date     91.03.13.08.40.07;  author jwh;  state Exp;
branches ;
next     ;


desc
@Moving source around.
@


56.3
log
@
pws2rcs automatic delta on Wed Jan 27 13:14:25 MST 1993
@
text
@
*-------------------------------------------------------------
* MAIN PROGRAM FOR FP40 PACKAGE IN INITLIB
*-------------------------------------------------------------
*
* This code places the floating point package into the PaWS
* operating system.
*
	nosyms
	com     FP40,0
Gbase   equ     FP40
	mname   FP40

*       src     EXT table of 'MARKIT':
*       src     LOADER_MARKUSER

	src     module FP40;
	src     export
	src     end;

	refa    LOADER_MARKUSER
	lmode   LOADER_MARKUSER
	refa    ASM_FLUSH_ICACHE
	lmode   ASM_FLUSH_ICACHE

*       def     FP40__BASE
*       def     FP40_FP40

* these are in the file skel.orig
       refr    real_fline
       refr    real_dz
       refr    real_inex
       refr    real_ovfl
       refr    real_unfl
       refr    real_snan
       refr    real_operr
       refr    real_bsun
       refr    real_unsupp
       refr    real_trace
       refr    which_one
*
       lmode   real_fline
       lmode   real_unsupp
       lmode   real_dz
       lmode   real_inex
       lmode   real_ovfl
       lmode   real_unfl
       lmode   real_snan
       lmode   real_operr
       lmode   real_bsun
       lmode   real_trace
       lmode   which_one

	refr    fpsp_fline    exception  11 (replaces original)
	refr    fpsp_unsupp              55 (replaces original)
	refr    fpsp_snan                54 (replaces original)
	refr    fpsp_operr               52 (replaces original)
	refr    fpsp_ovfl                53 (replaces original)
	refr    fpsp_unfl                51 (replaces original)

*       refr    dz_hd                    50
*       refr    fpsp_inex                49
SYSFLAG2      equ    $FFFFFEDA     Processor Indicator (bit 3 = 0 ==> 68040)
trace_loc     equ    $FFFFFFD0     Exc vector 9
fline_loc     equ    $FFFFFFC4     Exc vector 11
unsupp_loc    equ    $FFFFFEE6     Exc vector 55
others_loc    equ    $FFFFFEE0     Exc vectors 48-54 all enter here
boot_unsupp   equ    $00004F1E     Original jsr target in bootrom

FP40__BASE equ *
	dc.w    0
*- - - - - - - - - - - - - - - - - - - - - - - - - -  FP40_FP40
FP40_FP40 equ *
	link    a6,#0
*----- INITIALIZATION CODE FOR MODULE FP40 -------------------
*      MAKE SURE IT'S RUNNING ON AN '040 - LEAVE OTHERWISE
*      MAKE SURE IT'S NOT ALLREADY INSTALLED - LEAVE OTHERWISE
*      PLOAD THIS MODULE
*      SAVE CURRENT F-LINE CONTENTS TO ENTRY POINTS IN skel.orig
*      TAKE OVER F-LINE VECTOR
*      TAKE OVER OTHERS VECTOR
*      TAKE OVER UNSUPP VECTOR
*      FLUSH CACHES IN CASE OF COPY BACK MODE
*--------------------------------------------------------------
	btst   #3,SYSFLAG2             is it running on a 68040 ?
	bne    NOTTA_40                don't install if not
	cmpi.w #$4EF9,fline_loc        already installed ?
	beq    NOTTA_40                don't re-install
	jsr    LOADER_MARKUSER         p-load this module
*--------------------------------------------------------------
* save the entry code for all the real exception handlers :
* these entry points to the original handlers are in the file skel.orig
*------------------------------------------------------------------
	move.w  trace_loc,real_trace
	move.l  trace_loc+2,real_trace+2
*------------------------------------------------------------------
* A little different than the others :
	move.w  $4EB9,real_unsupp            a jsr
	move.l  boot_unsupp,real_unsupp+2   into the bootrom (quit)
*------------------------------------------------------------------
	move.w  fline_loc,real_fline         save current code ...
	move.l  fline_loc+2,real_fline+2     for exception #11
*------------------------------------------------------------------
	move.w  others_loc,real_snan         for signaling not-a-number,
	move.l  others_loc+2,real_snan+2     vector 54
*------------------------------------------------------------------
	move.w  others_loc,real_ovfl         for ...
	move.l  others_loc+2,real_ovfl+2     overflow 53
*------------------------------------------------------------------
	move.w  others_loc,real_operr        for operand error,
	move.l  others_loc+2,real_operr+2    number 52
*------------------------------------------------------------------
	move.w  others_loc,real_unfl         for ...
	move.l  others_loc+2,real_unfl+2     51 underflow
*------------------------------------------------------------------
	move.w  others_loc,real_dz           for ...
	move.l  others_loc+2,real_dz+2       exception 50 div by zero
*------------------------------------------------------------------
	move.w  others_loc,real_inex         for ...
	move.l  others_loc+2,real_inex+2     49 inexact
*------------------------------------------------------------------
	move.w  others_loc,real_bsun         for ...
	move.l  others_loc+2,real_bsun+2     branch/set on unordered 48
*------------------------------------------------------------------
* Now take over :
	move.w  #$4EF9,fline_loc            long word jmp
	move.l  #fpsp_fline,fline_loc+2     address of fline handler
	move.w  #$4EF9,others_loc           long word jump
	move.l  #which_one,others_loc+2     to figure out which one, and bra
	move.w  #$4EF9,unsupp_loc           long word jump
	move.l  #fpsp_unsupp,unsupp_loc+2   to fpsp unsupp handler
	JSR     ASM_FLUSH_ICACHE            in case of copy back mode
NOTTA_40  equ  *
	unlk a6
	rts
	start    FP40_FP40
	end

@


56.2
log
@
pws2rcs automatic delta on Wed Jan 27 11:57:27 MST 1993
@
text
@d1 138
@


56.1
log
@Automatic bump of revision number for PWS version 3.25
@
text
@a0 138

*-------------------------------------------------------------
* MAIN PROGRAM FOR FP40 PACKAGE IN INITLIB
*-------------------------------------------------------------
*
* This code places the floating point package into the PaWS
* operating system.
*
	nosyms
	com     FP40,0
Gbase   equ     FP40
	mname   FP40

*       src     EXT table of 'MARKIT':
*       src     LOADER_MARKUSER

	src     module FP40;
	src     export
	src     end;

	refa    LOADER_MARKUSER
	lmode   LOADER_MARKUSER
	refa    ASM_FLUSH_ICACHE
	lmode   ASM_FLUSH_ICACHE

*       def     FP40__BASE
*       def     FP40_FP40

* these are in the file skel.orig
       refr    real_fline
       refr    real_dz
       refr    real_inex
       refr    real_ovfl
       refr    real_unfl
       refr    real_snan
       refr    real_operr
       refr    real_bsun
       refr    real_unsupp
       refr    real_trace
       refr    which_one
*
       lmode   real_fline
       lmode   real_unsupp
       lmode   real_dz
       lmode   real_inex
       lmode   real_ovfl
       lmode   real_unfl
       lmode   real_snan
       lmode   real_operr
       lmode   real_bsun
       lmode   real_trace
       lmode   which_one

	refr    fpsp_fline    exception  11 (replaces original)
	refr    fpsp_unsupp              55 (replaces original)
	refr    fpsp_snan                54 (replaces original)
	refr    fpsp_operr               52 (replaces original)
	refr    fpsp_ovfl                53 (replaces original)
	refr    fpsp_unfl                51 (replaces original)

*       refr    dz_hd                    50
*       refr    fpsp_inex                49
SYSFLAG2      equ    $FFFFFEDA     Processor Indicator (bit 3 = 0 ==> 68040)
trace_loc     equ    $FFFFFFD0     Exc vector 9
fline_loc     equ    $FFFFFFC4     Exc vector 11
unsupp_loc    equ    $FFFFFEE6     Exc vector 55
others_loc    equ    $FFFFFEE0     Exc vectors 48-54 all enter here
boot_unsupp   equ    $00004F1E     Original jsr target in bootrom

FP40__BASE equ *
	dc.w    0
*- - - - - - - - - - - - - - - - - - - - - - - - - -  FP40_FP40
FP40_FP40 equ *
	link    a6,#0
*----- INITIALIZATION CODE FOR MODULE FP40 -------------------
*      MAKE SURE IT'S RUNNING ON AN '040 - LEAVE OTHERWISE
*      MAKE SURE IT'S NOT ALLREADY INSTALLED - LEAVE OTHERWISE
*      PLOAD THIS MODULE
*      SAVE CURRENT F-LINE CONTENTS TO ENTRY POINTS IN skel.orig
*      TAKE OVER F-LINE VECTOR
*      TAKE OVER OTHERS VECTOR
*      TAKE OVER UNSUPP VECTOR
*      FLUSH CACHES IN CASE OF COPY BACK MODE
*--------------------------------------------------------------
	btst   #3,SYSFLAG2             is it running on a 68040 ?
	bne    NOTTA_40                don't install if not
	cmpi.w #$4EF9,fline_loc        already installed ?
	beq    NOTTA_40                don't re-install
	jsr    LOADER_MARKUSER         p-load this module
*--------------------------------------------------------------
* save the entry code for all the real exception handlers :
* these entry points to the original handlers are in the file skel.orig
*------------------------------------------------------------------
	move.w  trace_loc,real_trace
	move.l  trace_loc+2,real_trace+2
*------------------------------------------------------------------
* A little different than the others :
	move.w  $4EB9,real_unsupp            a jsr
	move.l  boot_unsupp,real_unsupp+2   into the bootrom (quit)
*------------------------------------------------------------------
	move.w  fline_loc,real_fline         save current code ...
	move.l  fline_loc+2,real_fline+2     for exception #11
*------------------------------------------------------------------
	move.w  others_loc,real_snan         for signaling not-a-number,
	move.l  others_loc+2,real_snan+2     vector 54
*------------------------------------------------------------------
	move.w  others_loc,real_ovfl         for ...
	move.l  others_loc+2,real_ovfl+2     overflow 53
*------------------------------------------------------------------
	move.w  others_loc,real_operr        for operand error,
	move.l  others_loc+2,real_operr+2    number 52
*------------------------------------------------------------------
	move.w  others_loc,real_unfl         for ...
	move.l  others_loc+2,real_unfl+2     51 underflow
*------------------------------------------------------------------
	move.w  others_loc,real_dz           for ...
	move.l  others_loc+2,real_dz+2       exception 50 div by zero
*------------------------------------------------------------------
	move.w  others_loc,real_inex         for ...
	move.l  others_loc+2,real_inex+2     49 inexact
*------------------------------------------------------------------
	move.w  others_loc,real_bsun         for ...
	move.l  others_loc+2,real_bsun+2     branch/set on unordered 48
*------------------------------------------------------------------
* Now take over :
	move.w  #$4EF9,fline_loc            long word jmp
	move.l  #fpsp_fline,fline_loc+2     address of fline handler
	move.w  #$4EF9,others_loc           long word jump
	move.l  #which_one,others_loc+2     to figure out which one, and bra
	move.w  #$4EF9,unsupp_loc           long word jump
	move.l  #fpsp_unsupp,unsupp_loc+2   to fpsp unsupp handler
	JSR     ASM_FLUSH_ICACHE            in case of copy back mode
NOTTA_40  equ  *
	unlk a6
	rts
	start    FP40_FP40
	end

@


1.1
log
@Initial revision
@
text
@@
