*JH*> You  on to a different coffee or something?

Years of irritation (TS-DOS bugs), strong motivation after some major
breakthroughs, and yes quite a bit of caffeine.  ;-)

*JO*> One question, though: how'd you pull it off?
*JP*> How did you accomplish it?

A few key things lined up all at once:

* I have a massive toolkit already built up from the Ultrascreen and
WebRom/Teeny++ projects.
* The major breakthroughs:  The secrets of option ROM coding got completely
blown wide open as I was integrating the math fixup routines into my
SuperROM for NEC port.
* I examined how Cleuseau added its commands to BASIC.  Turns out what it
does is hook into the ?SN Error handler, walk things back and take a new
path.  That's how you're able to type *.MIN, .EXPAND,* etc., right at the
BASIC prompt.
* I've actually had the machine language CIRCLE.CO code for many years just
hanging around, the algorithm wasn't my creation.  But my integrating the
argument parser certainly was.  Originally it was just hooking into the
NEC's "*H.CMD*" hook, which let me do " *CMD CIRCLE(X,Y),R *" right at the
basic prompt or in a program. (This is what the NEC CRT Basic does.)  (That
hook doesn't exist on the M100 by the way!)  But after "?SN Error" handling
became a thing (thank you Cleuseau), I could just directly parse the
statement line and that opened the door to the M100.  Of course the issue
with this is that if you're in a BASIC program and have "ON ERROR
GOTO", that will trap the statements earlier than my code in the option
ROM, so you do have to account for that.  You can avoid ON ERROR GOTO
considerations by continuing to use the "CMD" syntax though.
* Getting all of this to work cross platform is, at this point, mostly
trivial.  I have what I think might be the most comprehensive Model T
RAM/ROM cross reference database
<https://www.web8201.net/default.asp?content=modelt_memorymaps/mapview.asp?hx=1>
on Web8201 and it's the key to many of these efforts.
* I already had the TPDD-specific directory navigation routines in my
toolbag from the WebRom/Teeny++ project.  It was just a matter of
integrating all of it into my new BASIC command handler.

And it's handled within the context of basic statement parsing, so you can
literally do these things inside of a program:
*10 CD FOLDER : PWD : CD .. : PWD*

I guess I could say I've been cooking some of this up for years, followed
by a relatively recent integration effort.

Gary


On Fri, Oct 16, 2026 at 7:54 AM Joshua O'Keefe <[email protected]>
wrote:

> On Oct 15, 2026, at 11:45 PM, Gary Weber <[email protected]> wrote:
>
> *TS-DOS 4.20 DOS-ON+*
>
> SARDOS 1.80
>
> SARDOS 1.80 is also available for the Model 100 and with every one of the
> new DOS-ON keywords.
>
> ...and one more thing.
>
> CIRCLE.
>
> Two ROMs. Two machines. Folders at the Ok prompt. Circles on the screen.
>
>
> Holy cow! Wow! Wow wow! How long have you been cooking this up? It's
> wonderful.
>
> Impressive to say the least. I think I can speak for the entire community
> and our descendants when I say: thank you.
>
> One question, though: how'd you pull it off?
>
>

Reply via email to