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


56.1
date     91.11.05.09.32.39;  author jwh;  state Exp;
branches ;
next     55.1;

55.1
date     91.08.25.10.10.50;  author jwh;  state Exp;
branches ;
next     54.2;

54.2
date     91.08.21.14.36.59;  author jwh;  state Exp;
branches ;
next     54.1;

54.1
date     91.03.18.15.18.05;  author jwh;  state Exp;
branches ;
next     53.1;

53.1
date     91.03.11.19.18.36;  author jwh;  state Exp;
branches ;
next     1.1;

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


desc
@same old main, i just accidently deleted the one in RCS control.
@


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


55.1
log
@Automatic bump of revision number for PWS version 3.25A
@
text
@@


54.2
log
@
pws2rcs automatic delta on Wed Aug 21 13:42:03 MDT 1991
@
text
@@


54.1
log
@Automatic bump of revision number for PWS version 3.24
@
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

@


53.1
log
@Automatic bump of revision number for PWS version 3.24B
@
text
@@


1.1
log
@Initial revision
@
text
@@
