So Motorola apparently never produced the MC6839, a ROM containing
position independent 6809 code for implementing (as far as I can see) IEEE
754 Draft 8.  Motorola *did* however, release the resulting binary into
(from what I understand) the Public Domain [1] but I've yet to find the
actual source code, which would solve my current problem.

  I'm playing around with the code in an MC6809 emulator [2] and trying to
use it (getting my retro-software fix in as it were).  It works---not as
accurate as today's stuff, but close enough and it supports single and
double precision.  The current issue I have is with the FMOV opcode
(register entry) described as:

        
------------------------------------------------------------------------------
        |Function|Opcode|  Register entry conditions   | Stack entry conditions
        
------------------------------------------------------------------------------
        | FMOV   | $1A  | U =  precision parameter word| push arg
        |        |      | Y -> argument                | push precision param 
word
        |        |      | D -> fpcb                    | push ptr to fpcb
        |        |      | X -> result                  | call FPO9
        |        |      |                              | pull result
        
------------------------------------------------------------------------------

        For moves, U contains a parameter word describing the size of the
        source and destination arguments.  The bits are as follows, where
        the size is as defined in the fpcb control byte
        
        Bits 0-2  : Destination size
        Bits 3-7  : unused
        Bits 8-10 : Source size
        Bits 11-15: unused

  It's not clear if U should contain the actual parameter value, or a
pointer to the parameter value.  It just doesn't seem to work no matter how
I code it.  Anyone have any clue?

  -spc (I'm at a loss here ... )

[1]     Available in the file fpo9.lzh here
        https://ftplike.com/browser/os9archive.rtsi.com/OS9/OS9_6X09/PROG/

[2]     I wrote one:  https://github.com/spc476/mc6809
        Not much documentation I'm afraid.

Reply via email to