Hi! "Paul R. Santa-Maria" wrote in message news:<401C5C18.DEFA6089@buckeye-express.com>... > Let me add that the uSPEED card > used a 9511 math coprocessor. I > know of at least three different > 9511 cards for the Apple II. If > anyone has software or documentation > for any 9511 card please let us know. I have three 8 inch CP/M disks with MT+ Pascal. There is source for using the 9511 on one of them. I've appended the files "AMDIO.SRC" and "TRAN9511.SRC". There are files named "FPRTNS.ERL" and "REALIO.ERL" that are referred to in a file named "AMD9511.CMD" but it's obvious that they aren't text files. =============================================================================== "AMDIO.SRC" follows: MODULE AMDIOROUTINE; (*----------------------------------------------------------*) (* THIS MODULE CONTAINS TWO "ASSEMBLY" LANGUAGE SUBROUTINES *) (* WHICH ARE CALLED FROM THE FPRTNS MODULE AND IF LOADED *) (* THE TRAN9511 MODULE. *) (* *) (* THESE ROUTINES ARE SPECIFIC TO PASCAL/MT+ AND PASS *) (* PARAMETERS BACK AND FORTH THROUGH REGISTERS *) (* *) (* THE USER SHOULD CHANGE THE PORT NUMBERS AS NECESSARY *) (* FOR THEIR PARTICULAR HARDWARE IMPLEMENTATION OF THE 9511 *) (*----------------------------------------------------------*) PROCEDURE @O95D; (* OUTPUT A-REG TO 9511 DATA PORT *) BEGIN INLINE("OUT / $88) (* CHANGE TO YOUR 9511 DATA PORT NUMBER *) END; PROCEDURE @O95C; (* OUTPUT A-REG TO 9511 CONTROL PORT *) BEGIN INLINE("OUT / $89) (* CHANGE TO YOUR 9511 CTRL PORT NUMBER *) END; PROCEDURE @I95D; (* INPUT A-REG FROM 9511 DATA PORT *) BEGIN INLINE("IN / $88) (* CHANGE TO YOUR 9511 DATA PORT (SAME AS @O95D) *) END; PROCEDURE @I95C; (* INPUT A-REG FROM 9511 CONTROL PORT *) BEGIN INLINE("IN / $89) (* CHANGE TO YOUR 9511 CTRL PORT (SAME AS @O95C) *) END; MODEND. ================================================================================ "TRAN9511.SRC" follows: MODULE TRAN9511; EXTERNAL PROCEDURE @ERR(AN_ERROR:BOOLEAN; ERRNUM:INTEGER); EXTERNAL PROCEDURE @AMD(FUNC:INTEGER;VAR ARG:REAL;VAR STATUS:INTEGER); {THE PROCEDURE @AMD,INTERFACES TO THE AMD9511 ARITHMETIC PROCESSING UNIT (APU). THE FIRST ARGUMENT IS THE FUNCTION CODE (AND IS STRAIGHT FROM THE AM9511 LITERATURE). THE SECOND IS THE ADDRESS OF ARG, A REAL VARIABLE, THE FUNTION ARGUMENT IS IN ARG, AND THE RESULT IS RETURNED IN ARG. THE THIRD ARGUMENT IS THE ADDRESS WHERE THE APU STATUS IS RETURNED.} FUNCTION SIN(ARG:REAL):REAL; {SINE FUNCTION} VAR STATUS:INTEGER; BEGIN @AMD($02,ARG,STATUS); SIN:=ARG; END; FUNCTION COS(ARG:REAL):REAL; {COSINE FUNCTION} VAR STATUS:INTEGER; BEGIN @AMD($03,ARG,STATUS); COS:=ARG; END; FUNCTION EXP(ARG:REAL):REAL; {E TO THE X FUNCTION} VAR STATUS:INTEGER; BEGIN @AMD($0A,ARG,STATUS); IF (STATUS & $1E) = $18 THEN BEGIN @ERR(TRUE,7); (* TRANCENDENTAL OUT OF RANGE *) END; EXP:=ARG; END; FUNCTION LN(ARG:REAL):REAL; {NATURAL LOGARITHM FUNCTION} VAR STATUS:INTEGER; BEGIN @AMD($09,ARG,STATUS); IF (STATUS & $1E) = $8 THEN BEGIN @ERR(TRUE,7); END; LN:=ARG; END; FUNCTION ARCTAN(ARG:REAL):REAL; {INVERSE TANGENT FUNCTION} VAR STATUS:INTEGER; BEGIN @AMD($07,ARG,STATUS); ARCTAN:=ARG; END; MODEND.