Some questions about the MC6839

Sean Conner spc at conman.org
Mon Jun 27 18:31:16 CDT 2016


  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.


More information about the cctech mailing list