[Coco] NitrOS9 and 6309 code

Jeff Teunissen deek at d2dc.net
Sat Jun 1 04:28:27 EDT 2019


I posted these messages because I was doing exactly that, adding IFNE
H6309 stanzas to modules that contained 6309 code, so that they would
not be accidentally included in a 6809 disk, or at least they could be
checked. My problem was that when I did it to gshell, or apparently
any program module, something (shell, fork, etc.) triggered an error
234 and didn't allow me to run the program.

Maybe it works on things in the bootfile, because they're not being
forked or chained to, but not programs?

On Fri, May 31, 2019 at 5:44 PM Robert Gault <robert.gault at att.net> wrote:
>
> Unfortunately, Jeff has a point but Gene is correct that 6309 modules work with a 6309CPU.
>
> I just looked at the code on a nightly build of NitrOS-9. I booted the disk
> nos96309l2v030300coco3_80d.dsk
> and used the module SCF as a test case. Ident -m scf gave the module as a 6809 obj with a CRC of
> $37392D. That is indeed the CRC value that I got by compiling the source code for the 6309 SCF
> Level2 module.
> If you look at the source code for SCF you will see the line
> tylg     set   FlMgr+Objct
> and that means regardless of how H6309 is set when assembling the module, Objct will ALWAYS show
> 6809 code.
>
> I have to plead guilty here as I think I'm the last person to work on the SCF source code. However,
> I'm willing to bet that essentially the entire NitrOS-9 project has the same problem. The line
> probably should be
>    IFNE H6309
> tylg     set   FlMgr+Obj6309
>    ELSE
> tylg     set   FlMgr+Objct
>    ENDC
>
> Now to Gene's point. I booted the L2 6309 disk on a 6309 system and then did
> ded OS9Boot
> l scf                ie. link to SCF
> I then edited byte $06 changing it from $D1 to $D7 and then told ded
> w                    ie. write sector
> v                    ie. verify
> On rebooting, an ident of SCF gave a new CRC and 6309 obj code.
>
> So the NitrOS9 project does not have the correct values for many/most module TYLG but when changed
> from Objct to Obj6309, the modules are found and used if the system has a 6309 CPU.


More information about the Coco mailing list