[Coco] NitrOS9 and 6309 code

Robert Gault robert.gault at att.net
Fri May 31 17:45:04 EDT 2019


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.

Robert


Gene Heskett wrote:
> On Friday 31 May 2019 01:15:15 pm Jeff Teunissen wrote:
>
>> On Fri, May 10, 2019 at 11:03 PM Jeff Teunissen <deek at d2dc.net> wrote:
>>
>> Yay, quoting myself, how solipsistic.
>> [snip]
>>
>>> At this point, I figured that the 6309-marked modules were the ones
>>> that wouldn't run on a Motorola chip (hey, cool, an opportunity to
>>> do some hacking myself), but then while reading some of the source
>>> code I saw that some of those modules (Basic09, gshell) indeed HAD
>>> 6309 code in them, but were still marked as suitable for a Moto
>>> system. OK, fair enough, I can fix that.
>>>
>>> Imagine my surprise when, having changed the module type of gshell
>>> from Objct to Obj6309 and transferring the resulting module to my
>>> CoCo, it suddenly started failing with Error #234 (Non-existent
>>> Module), and wouldn't work until I changed it back.
>>>
>>> What gives? [snip]
>>
>> Curiouser and curiouser -- it seems that NitrOS9 can't run programs
>> that are marked Obj6309, aborting them with Error 234. Is this a bug,
>> or is it intentional?
>
> Do you have a 6309 in that machine? I do, and I build my boots from 6309
> modules, and its never been a problem that I've encountered.
>
> Cheers, Gene Heskett
>


More information about the Coco mailing list