OS-9 Level 2 for (updated) Dragons

A place to discuss everything Dragon related that doesn't fall into the other categories.
pser1
Posts: 1896
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: OS-9 Level 2 for (updated) Dragons

Post by pser1 »

Hi L.Curtis,
thanks a lot for that explanantion!
While debugging the F$SRqMem I found out the 'need' for that $1900 value ... to ensure beginning at an even numbered page.
When I have the time I will debug/trace from the last point I did arrive to.
This time I will not 'skip' code setting a breakpoint on $c0c3 (where string should be printed), instead I will trace everything,
so sooner or later I will get to $c0c3.
I had found an endless loop the first time I debugged from $c0c3 (inside CC3Go), I hope to detect this time what are the variables
that do not change value and so create the dread loop
cheers!
pere

Ps I downloaded the file "NitrOS-9_EOU_Level_2_Technical_Reference_Manual (L.Curtis Boyle).pdf"
This is really a must read book. Thanks a lot for sharing all this information!
KenH
Posts: 184
Joined: Fri Oct 12, 2012 9:50 am

Re: OS-9 Level 2 for (updated) Dragons

Post by KenH »

Hi Pere,

Thanks for your work on reconstructing Bob Hall’s level 2 procedure.

I recall that Tormod has already ported NitrOS-9 Level 2 to the MOOH, which might be a useful starting point for your work.

The source is available here: https://gitlab.com/tormod/level2mooh

Cheers
Ken
pser1
Posts: 1896
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: OS-9 Level 2 for (updated) Dragons

Post by pser1 »

KenH wrote: Fri Jul 24, 2026 10:47 am Hi Pere,
Thanks for your work on reconstructing Bob Hall’s level 2 procedure.
I recall that Tormod has already ported NitrOS-9 Level 2 to the MOOH, which might be a useful starting point for your work.
The source is available here: https://gitlab.com/tormod/level2mooh
Cheers
Ken
Hi, Ken
pleased to hear from you!
I have a 'mooh' module, will give a peek at his web. The version we are converting to the Dragon uses modules from the v2.0 of OS9L1
from Eurohard, so it is using PMode4 to show the text. The first Tormod's version I remember was using plain text but I think it was for
any Dragon, so 64K were enough to start ...
Thanks a lot for the pointer!
cheers!
pere
pser1
Posts: 1896
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: OS-9 Level 2 for (updated) Dragons

Post by pser1 »

Hello,
just an update of the status of this project.
I have arrived to the point where a new process is created (OS9 F$Fork) and then it is associated to the module "CC3Go"
The second process is started and the 'parent' process never returns ...
In theory, CC3Go is the module that should print the welcome message so, hopefully in next debug/trace session I will get to
the point that creates the endless loop. Hopefully we will find the reason for that ...

By the way, while tracing till this point, I found an apparently Easter egg. It is an encoded string just using the eor function.
The text that appears seem to be the name of three important people inside Microware:
- The president and the OS9 programmers (one for sure ...) See image
#image
EasterEgg found at $da26 (from $d9f5)x.jpg
EasterEgg found at $da26 (from $d9f5)x.jpg (38.05 KiB) Viewed 202 times
cheers!
pere
Last edited by pser1 on Sat Jul 25, 2026 11:04 am, edited 1 time in total.
KenH
Posts: 184
Joined: Fri Oct 12, 2012 9:50 am

Re: OS-9 Level 2 for (updated) Dragons

Post by KenH »

Hi Pere
Good to hear from you too.
My MOOH board is no longer functional, but I believe Tormod’s Level2 implementation supported multiple screen modes, including COHR for high res. Might be worthwhile to check out his code.

https://gitlab.com/tormod/level2mooh/-/wikis/build
pser1
Posts: 1896
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: OS-9 Level 2 for (updated) Dragons

Post by pser1 »

KenH wrote: Fri Jul 24, 2026 3:02 pm Hi Pere
Good to hear from you too.
My MOOH board is no longer functional, but I believe Tormod’s Level2 implementation supported multiple screen modes, including COHR for high res. Might be worthwhile to check out his code.
https://gitlab.com/tormod/level2mooh/-/wikis/build
That's right. Looking at the last url I can see a lot of different possible graphic compilations.
I have downloaded the zip with some source files. Maybe could be of help for next versions.
First we need to get it writting onto screen!
thanks a bunch!
pere
lcurtisboyle
Posts: 33
Joined: Thu Nov 05, 2020 9:47 pm

Re: OS-9 Level 2 for (updated) Dragons

Post by lcurtisboyle »

pser1 wrote: Fri Jul 24, 2026 2:12 pm By the way, while tracing till this point, I found an apparently Easter egg. It is an encoded string just using the eor function.
The text that appears seem to be the name of three important people inside Microware:
- The president and the OS9 programmers (one for sure ...) See image
#image
EasterEgg found at $da26 (from $d9f5)x.jpg
cheers!
pere
Yes, this is the default keyboard buffer string in SCF (we changed it in NitrOS9, naturally!). If you hit CTRL-A (or SHIFT-RIGHT ARROW in NitrOS9 Level 2) before you type anything else in any SCF device (screen, window, terminal, etc.), that hidden credits message will show up.
pser1
Posts: 1896
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: OS-9 Level 2 for (updated) Dragons

Post by pser1 »

I have debugged/traced that code three more times to be sure that the welcome message is correctly processed.
OS9 returned address $8a00 as the beginning of the $1800 area we need for PMode4
The module CC3Go prepares chunks of 32 chars (copied to $a2e0) and then calls the function F$Write that reads
every char and then processes it applying 4 masks and the result is put into RAM in the reserved range ($8a00 ...)
The message is processed in five parts because it has length $89 = 137 (4x32+9)
Despite I can see the values POKEd in the RAM area, nothing is shown on screen :-(
Nothing shown on screen.jpg
Nothing shown on screen.jpg (88.32 KiB) Viewed 48 times
I cannot understand that behaviour. I don't know if this could be the result of one or more wrong parameters in
modules like SCF, Kbvdio, Term ...
Looking at the MMU pages, I can see slot 4 for task #0 associated to physical page #03
But for task #1 in that same slot there is value '3e' that seems to denote slot not in use
OS9 writes from task #0 and when finished returns control to CC3Go so I imagine that this is the point where it
changes back to task #1.
Could anyone shine a bit of light to solve this 'white screen' problem?
Thanks beforehand
pere

Ps according to Bob Hall's procedure, we are using SCF, CC3Go, IOMan from Tandy Level II
but Term, Kbvdio are from Eurohard Level I v2.0
To help anyone wanting to look for that problem, I am attching here a zip with all of the source files
Source Files.zip
(180.27 KiB) Not downloaded yet
pser1
Posts: 1896
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: OS-9 Level 2 for (updated) Dragons

Post by pser1 »

Just to prove that the intro message is well depicted on screen despite being not visible ...
I have saved a Snapshot from XRoar and then have found the beginning of the data at $86C70
I have used an hexadecimal editor to cut out just some $1600 bytes into a Dragon binary file
Then I have started a Dragon emulation, set PMode4, PCLS1, SCREEN1,1 and set an infinite loop
While looping I can load from disk the file into memory ($C00 on)
The result is in the image below. So the masking system works flawlessly.
Now we need to find a way to make it appear on screen.
Seems easy, doesn't it?
But I cannot see what's preventing it to be shown
cheers!
pere
@sixxie
Could you tell me what exact memory is saved at trhat address ($86C70) when saving a snapshot
of the Dragon with the iMMUnity module?
Welcome Message that doesn't appear on screen.jpg
Welcome Message that doesn't appear on screen.jpg (14.02 KiB) Viewed 46 times
pser1
Posts: 1896
Joined: Sun Mar 25, 2012 7:32 pm
Location: Barcelona (SPAIN)

Re: OS-9 Level 2 for (updated) Dragons

Post by pser1 »

For anyone that could want to give it a debug session, I am attaching here a zip containing two virtual disks
- F1-step8 (BOOT6, L2BOOT, CCSW53).VDK
- F2X2-184K.VDK
We need to have the 'Level 2-like' disk on drive 1, so we need to mount into drive 1 disc 'F2X2' and to drive 2 disk 'F1-'
Sorry for the numbers inversion ...
Once done, on XRoar just issue: RUN"2:CCSW53 and press Enter
You will see a message asking for confirmation and then it will STOP
Now it is time to start GDB and set one breakpoint at least ...
Then just 'cont' on GDB and 'CONT' on the Dragon
Hope someone will find the offending code ;-)
cheers
pere
OS-9 L2 Test-Discs.ZIP
(28.11 KiB) Not downloaded yet
Post Reply