$TITLE('Series-III i8087 Linkage Module, Small Model') $NOMACRO $PAGEWIDTH(132) ; Intel insite Reference: BG59 ; File Name: BG59S.A86 NAME LINK87_SMALL ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ; ; Series-III i8087 Linkage Module, Small Compilation Model ; ; ; ; Written By: ; ; Mike Silverstone ; ; Brunswick Defense ; ; 3333 Harbor Blvd. ; ; Costa Mesa, California 92626-1009 ; ; Revised: 27 Apr 82 ; ; ; ; This module links the interrupt of the i8087 Numeric Data Processor on an ; ; iSBC-337 Multimodule Math Board installed on the Series-III RPB-86 board to ; ; the FORTRAN-86 and PASCAL-86 math exception handlers and the RUN program ; ; default math exception handler. ISIS-II RUN, V1.0 and V1.3, do not ; ; recognize the existance of an i8087 Numeric Data Processor in the ; ; Series-III Microcomputer Development System. ; ; ; ; It is assumed that an Intel iSBC-337 Multimodule Math Board has been ; ; installed on the Series-III RPB-86 Board in accordance with the 142887-001 ; ; iSBC-337 Multimodule Numeric Data Processor Hardware Reference Manual. It ; ; is also assumed that a wire has been connected between P2-1, the math ; ; interrupt output on the iSBC-337 Multimodule Math Board, and E74, the ; ; programmable interrupt controller interrupt 7 input on the RPB-86 Board. ; ; ; ; Three separate parts are in this module: ; ; 1. The first part loads the math interrupt procedure entry point into ; ; the RPB-86 Board interrupt vector array. ; ; 2. The second part contains the math interrupt procedure. It generates ; ; a software interrupt 16 which is the standard Intel Numeric Data ; ; Processor exception handler entry point. ; ; 3. The third part modifies the ISIS-II RUN program default PIC mask to ; ; acknowledge the presence of the math interrupt on the RPB-86 Board ; ; PIC interrupt 7 input. ; ; ; ; This procedure must be called at the beginning of the user program to link ; ; the i8087 to the Series-III Microcomputer Development System before any ; ; floating point operations occur. The linkage of the LINK87 procedure to ; ; the user program will set up the proper PIC mask, and link the math ; ; interrupt vector and the math interrupt procedure to the user program. ; ; ; ; NOTE: ; ; This module is compatible with the PL/M-86 Small and Compact models of ; ; compilation. With suitable modification it will also be compatible with ; ; the PL/M-86 Medium and Large models of compilation. ; ; ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; LITERAL DECLARATIONS PIC_MASK_PORT EQU 0C2H ; RPB-86 PIC MASK PORT i8087_MASK EQU 01111111B ; MATH INTERRUPT MASK CGROUP GROUP i8087_LINK INT_63_SEG SEGMENT AT 0FH ORG 0CH DD MATH_EXCEPTION ; MATH INTERRUPT VECTOR INT_63_SEG ENDS i8087_LINK SEGMENT PUBLIC 'CODE' ASSUME CS:CGROUP MATH_EXCEPTION PROC NEAR INT 16 ; CONVERT INTERRUPT 63 TO INTERRUPT 16 IRET MATH_EXCEPTION ENDP PUBLIC LINK87 LINK87 PROC NEAR IN AL,PIC_MASK_PORT ; GET EXISTING PIC MASK AND AL,i8087_MASK ; ACKOWLEDGE MATH INTERRUPT OUT PIC_MASK_PORT,AL ; LOAD REVISED PIC MASK RET LINK87 ENDP i8087_LINK ENDS END