Path: utzoo!utgpu!attcan!uunet!lll-winken!ames!mailrus!cornell!rochester!udel!mmdf From: iphwk%MTSUNIX1.BITNET@cunyvm.cuny.edu (Bill Kinnersley) Newsgroups: comp.sys.amiga Subject: Re: Math Chip Interface Message-ID: <6736@louie.udel.EDU> Date: 16 Jan 89 03:45:19 GMT Sender: mmdf@udel.EDU Lines: 66 [In "Re: Math Chip Interface", Dale Luck said:] : : In article <8901070305.AA02117@terra.oscs.montana.edu> iphwk@MTSUNIX1.BITNET : (Bill Kinnersley) writes: : >[In "Re: Math Chip Interface", Dale Luck said:] : >: : >: If there is 680x0 and an 881 as a memory mapped io device then the ieee : >: libraries will talk to the chip as a peripheral device spoon feeding : >: and extracting the numbers. : > : >How do the libraries determine where my 68881 is located in memory? : >(How do *I* determine where it is located?) : : You autoconfig software should create a resource structure like the : following and add it via AddResource(). : The ieee libraries call OpenResource("MathIEEE.resource",0) : If it succeeds then it checks the contents of the resource structure. : ---------------------------------------------------------------- : A portion in reproduced here of mathresource.h : This file should be in your V1.3 include files. : struct MathIEEEResource : { : struct Node MathIEEEResource_Node; : unsigned short MathIEEEResource_Flags; : unsigned short *MathIEEEResource_BaseAddr; /* ptr to 881 if exists */ : void (*MathIEEEResource_DblBasInit)(); : void (*MathIEEEResource_DblTransInit)(); : void (*MathIEEEResource_SglBasInit)(); : void (*MathIEEEResource_SglTransInit)(); : void (*MathIEEEResource_ExtBasInit)(); : void (*MathIEEEResource_ExtTransInit)(); : }; : : --------------------------------------------------------------- : If you have a 68881 in your system as a memory mapped device then : a ptr to the base address should be put in MathIEEEResource_BaseAddr. : : If you have some other type of ieee math device that is not a 68881 then : this gets a little more complicated. However it should be possible. : : Dale Luck GfxBase/Boing, Inc. : {uunet!cbmvax|pyramid}!amiga!boing!dale : When I posted this, I was assuming that my 68010/68881 board (from Netch Computer Products) was, as you say, a memory-mapped I/O device, and that all I had to do was figure out where in memory it was located. After poking around, I'm not so sure. It may not be located anywhere! My goodness, my little 68010's got all kinds of registers I never realized were in there. It apparently talks to the 68881 by using the "CPU address space". It loads 7 into the Function Code registers (SFC and DFC) then sends stuff to the 68881 registers using the MOVES instruction. That's just the way they describe how the coprocessor interface is supposed to work in the 68020 manual (the part of the manual I never read). Probably means I am out of luck for 1.3 support, doesn't it? -- --Bill Kinnersley Physics Department Montana State University Bozeman, MT 59717 INTERNET: iphwk@terra.oscs.montana.edu BITNET: IPHWK@MTSUNIX1