;EASE$$$ READ ONLY COPY of file ÒFPEQUS.aÓ ; 1.1 CCH 11/11/1988 Fixed Header. ; 1.0 CCH 11/ 9/1988 Adding to EASE. ; OLD REVISIONS BELOW ; 1.0 BBM 2/12/88 Adding file for the first time into EASEÉ ; END EASE MODIFICATION HISTORY ;----------------------------------------------------------- ; 04JUL82: WRITTEN BY JEROME COONEN ; 10AUG82: REMOVE OPWORD ERROR MASKS AND SET UP OPWORD ; TESTS ON WORD, RATHER THAN LONG, BOUNDARY. (JTC) ; 28AUG82: REMOVE FLAGS FOR STATE AREA ACCESS. (JTC) ; 30AUG82: UNDERFLOW AND DIVBYZERO FLAGS SWAPPED (JTC) ; 01SEP82: RND ENCODINGS CHANGED (JTC) ; 03SEP82: FLAG ORDER REVERSED (JTC) ; 13OCT82: ADD ROUND UP BIT (JTC) ; 12DEC82: REMOVE PROJECTIVE MODE MATERIAL (JTC) ; 13APR83: EXPAND COMMENT ABOUT STKREM... (JTC) ; 29APR83: ADD OPHIBIT CONSTANT FOR DISTINGUISHING CLASS AND ; COMPARE IN NANHANDLER. ADD NEXT CONSTANTS. (JTC) ; 09MAY83: REPLACE STACK CONSTANTS WITH LINK CONSTANTS (JTC) ; 26AUG83: MOVED FOR... EQUS FROM FPDRIVER TO HERE (JTC) ; 01NOV83: PRECISION CONTROL TO MODE BITS (JTC) ; 15APR84: MOVED FOR... EQUS BACK OUT TO FPDRIVER FROM HERE (JTC&DGH) ; 14JAN85: MDS (JTC) ; 26MAR85: ADDED QNANBIT (JTC). ; 31JUL85: BACK TO PORKSHOP (JTC). <31JUL85> ; ; SOME BITS ARE ACCESSIBLE BY SEQUENCES BECAUSE ; THEY OCCUR AT THE HIGH END OF A BYTE, WORD, OR LONG ; SUBPIECE. WHENEVER SUCH TESTS ARE EXPLOITED (PREFERABLE ; TO BTST), THE BIT NUMBER IS USED IN THE COMMENT. ; THIS SHOULD AID IN LATER CHANGES. ;----------------------------------------------------------- ;----------------------------------------------------------- ; PC-RELATIVE ADDRESSING GLITCHES. PIC DEPENDS ON ; PC-RELATIVE. MOTOROLA DOCUMENTATION SPECIFIES SYNTAX ; LIKE MOVE.W TABLE(PC,D3),D3 ; BUT APPLE ASSEMBLERS ASSUME PC, AND DON'T ALLOW IT TO ; BE PUT. PCOK TELLS WHETHER OR NOT "PC" IS TO BE USED. ;----------------------------------------------------------- BLANKS ON STRING ASIS PCOK EQU 0 ;----------------------------------------------------------- ; STACK FRAME INFORMATION. AFTER ENTRY DO A "LINK A6,#-2" ; TO GET STACK: ; CNT WORD < OLD A6 < RET < OP < ADR1 < ADR2... ; WITH A6 POINTING TO OLD A6. THEN THE FOLLOWING LINK ; OFFSETS ACCESS STACK ELEMENTS. ;----------------------------------------------------------- LKCNT EQU -2 ; BYTE COUNT FOR TRAP LKA6 EQU 0 ; SAVED A6 LKRET EQU 4 ; RETURN ADDRESS LKOP EQU 8 ; OPWORD LKADR1 EQU 10 ; FIRST ADDRESS LKADR2 EQU 14 ; SECOND ADDRESS LKADR3 EQU 18 ; THIRD ADDRESS ;----------------------------------------------------------- ; WHEN A HALT EXIT IS TAKEN, THE STACK CONSISTS OF: ; RET TO FP68K < OP < ADR1 < ADR2 < ADR3 < PTR ; WHERE PTR REFERS TO THE THREE WORD STRUCTURE: CCR | D0 ; TO BE STUFFED AFTER RETURN TO PACKAGE. ; TO RETURN TO EXECUTING PROGRAM JUST DO ; MOVEA.L (SP)+,A0 ; RETURN ADRS ; ADDA.W #18,SP ; KILL OP, 4 ADRS'S ; JMP (A0) ;----------------------------------------------------------- STKREM1 EQU 12 ; BYTES TO TOSS IF 1 STKREM2 EQU 16 ; BYTES TO TOSS IF 2 STKREM3 EQU 20 ; BYTES TO TOSS IF 3 ;----------------------------------------------------------- ; POSITION OF ERROR BITS IN BYTE. W-MASKS ARE FOR SETTING ; MULTIPLE EXCEPTIONS IN BITS $1F00 OF A WORD. ;----------------------------------------------------------- ERRX EQU 4 ; INEXACT ERRZ EQU 3 ; DIVISION BY ZERO ERRO EQU 2 ; OVERFLOW ERRU EQU 1 ; UNDERFLOW ERRI EQU 0 ; INVALID ERRWXO EQU $1400 ; INEXACT AND OVERFLOW ERRWXU EQU $1200 ; INEXACT AND UNDERFLOW ;----------------------------------------------------------- ; RESULTS OF COMPARISONS, BASED ON CPU MAP: XNZVC. ;----------------------------------------------------------- CMPE EQU $04 ; .EQUAL CMPL EQU $19 ; LESS CMPG EQU $00 ; GREATER CMPU EQU $02 ; UNORDERED ;----------------------------------------------------------- ; CLASS OPERATOR RETURN CODES ;----------------------------------------------------------- CLSNAN EQU 1 ; SIGNALING NAN CLQNAN EQU 2 ; QUIET NAN CLINF EQU 3 ; INFINITY CLZERO EQU 4 ; ZERO CLNORM EQU 5 ; NORMAL NUMBER CLDENORM EQU 6 ; DENORMAL NUMBER ;----------------------------------------------------------- ; OPWORD BITS, BASED ON WORD VALUE. ;----------------------------------------------------------- TWOADRS EQU 00 ; 1 IFF 2 ADDRESSES OPHIBIT EQU 04 ; 0010 = OPCODE LEAD BIT DSTOUT EQU 05 ; 1 IFF NOT COMPARISON SRCIN EQU 06 ; 1 IFF SRC INPUT DSTIN EQU 07 ; 1 IFF DST INPUT DSTLO EQU 08 ; LO BIT OF DST FORMAT DSTMD EQU 09 ; MED BIT OF DST FORMAT DSTINT EQU 10 ; 1 IFF INTEGER OUTPUT SRCLO EQU 11 ; LO BIT OF SRC FORMAT SRCMD EQU 12 ; MED BIT OF SRC FORMAT SRCHI EQU 13 ; HI BIT OF SRC FORMAT DPREC EQU 14 ; DOUBLE OPERATION SPREC EQU 15 ; SINGLE OPERATION (TST.L) ;----------------------------------------------------------- ; TESTS FOR OPERATIONS, ALL AS WORD TESTS. AND SOME ; USEFUL OPCODES FOR B<->D CONVERSIONS. ;----------------------------------------------------------- OPIFCPX EQU 1 ; 1 IFF CMPX VS CMP OPIFTR EQU 1 ; 1 IFF TRUNC VS ROUND OPAMASK EQU $001E ; ISOLATE OPCODE BITS OPFOMASK EQU $3800 ; TO GET SRC FORMAT BITS OPMUL EQU $0004 ; MULTIPLY OPCODE OPDIV EQU $0006 ; DIVIDE OPCODE OPCMP EQU $0008 ; COMPARE WITHOUT EXCEPTIONS OP2EXT EQU $000E ; CONVERT TO EXTENDED OPEXT2 EQU $0010 ; CONVERT FROM EXTENDED OPRINT EQU $0014 ; ROUND TO INTEGER OPCLASS EQU $001C ; CLASS ;----------------------------------------------------------- ; MODE BITS AND MASKS IN BYTE. ;----------------------------------------------------------- RNDMSK EQU $60 ; AS THOUGH IN LOW WORD RNDUP EQU $20 RNDDN EQU $40 RND0 EQU $60 RNDLO EQU 5 RNDHI EQU 6 ; LEAD RND BIT ; ..EQU 7 ...USED TO BE AFF/PROJ BIT DBRMSK EQU $8f ; KILL RND BITS AND INEXACT RNDINC EQU 7 ; IN LOW BYTE OF WORD PRECMSK EQU RNDMSK ; IN LOW BYTE OF WORD ;----------------------------------------------------------- ; AS OF MARCH 85, BIT #30 OF HIGH LONG OF SIGNIFICAND IS ; 0 FOR SIGNALING AND 1 FOR QUIET NANS. ;----------------------------------------------------------- QNANBIT EQU 30 ; INDEX IN HIGH LONGWORD <26MAR85>