Jump to content
IGNORED

OS speedups


Recommended Posts

I have a terrible feeling I'm repeating myself here, but if I did ask this before, I can't find it in Google.

 

I recall that one of the many OS upgrades, I want to say Fastchip, included a new line-drawing routine that sped up LINETO. Does this ring any bells?

 

More generally, of all the various speedups that have appeared over the years, is there a list of their features and perhaps a performance comparison? It might be nice to collect all of that in a single place so the emulator guys can put in a switch to select all of the best.

Link to comment
Share on other sites

You can insert the routines into the XL/XE OS as well and reap the benefits (provided you recalculate the OS checksum).

 

Years ago I built (ore or less by hand) a new OS for my 800xl, with the Fast math routines, an accelerated E: device for GR.0 (filling in part of the International Charset), and a CTRL-SHIFT-P screen dump for GR.0, and recalculated the checksum.

 

Hey... there's an idea for the ABBUC contest... a program to build new OS ROM images & calculate the checksum. Insert routines at any location; make changes (screen colour, OPTION function, FASTCHIP, fast E:, new Charset etc) and voila!

  • Like 7
Link to comment
Share on other sites

Ok, so it seems I was imagining the LINETO... but that brings me to another question.

 

Am I correct in thinking that there were several replacement math ROMs? I seem to recall reading somewhere that the ones in FastChip were not all that fast compared to the ones in turbo basic. But then perhaps there were two things called FastChip?

 

Can anyone add a little color here?

Link to comment
Share on other sites

There's at least 2 Fastchip FP replacements that I've heard of. The original resided within the 2K of the FP Rom and came out pre-XL so in fact was only a 2K replacement ROM for the FP chip on the OS board (Newell ?)

I think that it was later incorporated into Omnimon, which I'm fairly sure originated pre-XL as well.

Since that is a self-contained 2K set of routines it's easily portable and can be mixed/matched with practically any 3rd party OS replacement out there.

 

There's a later fast FP that also has code living in the $C000 region in the XL. There's benches around that show it's somewhat faster than fastchip in some areas. It's somewhat less portable since it bloats outside of the default 2K but could still be merged into a custom OS with some effort.

 

Turbo Basic is generally Ram based and from what I gather it's improved maths components are self-contained. The system FP points are documented and all over the place within the FP ROM (no nice jump-table like the main part of the OS) which forces 3rd party replacements to also use those entry points to remain compatible.

AFAIK, there's no guaranteed way to cherry-pick part of a routine from the ROM and improve part of it by using your own code, e.g. for an FP multiply you either use your own routine entirely or the one in Rom entirely.

Of course a totally valid method for something like Turbo Basic is to use your own routines for some things and the OS ones for others, e.g. they might use their own binary to FP routine but still use the OS supplied FP add.

Link to comment
Share on other sites

Hi!

 

I always liked the Hype E: screen output acceleator.

 

http://mixinc.net/atari/mae.htm

https://atariwiki.org/wiki/attach/MAE%20Assembler/HYP.txt

I have an E: accelerator that I'm developing for FastBasic, (loosely based in the HYP.COM handler, but smaller and a little faster), attached is the CC65 sources and the assembled EFAST.COM.

 

Load from any DOS, installed it raises MEMLO by 169 bytes, this is 16 bytes for the handler table, 130 bytes for the PUT routine and 23 bytes for the reset handler.

 

About the mathpack accelerators, I know at least two "modern" implementations, the AltirraOS and the OS++ (from Atari++). Both mathpacks can be used independently of the rest of the OS.

efast-1805.zip

  • Like 5
Link to comment
Share on other sites

This is turning into a fascinating thread!

 

So it sounds to me like the Turbo math package would be too large to use as an outright replacement for the one in the original ROMs - I assume that based on loop unrolling, which would normally increase the size more than any offsetting code cleanup might accomplish.

 

But what about the AltirraOS and OS++ versions? Would these be suitable for drop-in replacements if someone wanted to burn a new ROM for an 800? Are the entry points the same?

 

The E: accelerator also sounds like something that could be drop-in replaced.

 

Are there others I'm forgetting?

 

It's interesting that there's all this low-hanging speedup fruit in the OS, and Atari didn't change one bit of it for the 1200XL.

Link to comment
Share on other sites

Hi!

 

This is turning into a fascinating thread!

 

So it sounds to me like the Turbo math package would be too large to use as an outright replacement for the one in the original ROMs - I assume that based on loop unrolling, which would normally increase the size more than any offsetting code cleanup might accomplish.

 

But what about the AltirraOS and OS++ versions? Would these be suitable for drop-in replacements if someone wanted to burn a new ROM for an 800? Are the entry points the same?

Both can be used as replacement mathpack by burning to a new ROM. I try testing FastBasic releases with both to detect any incompatibility.

 

The E: accelerator also sounds like something that could be drop-in replaced.

Not quite, as the accelerator needs the original handler for all special characters, so there is no space to put it without removing something else. But, Altirra OS E: handler is faster than the original one, but not as fast as the accelerator.

Link to comment
Share on other sites

Hey... there's an idea for the ABBUC contest... a program to build new OS ROM images & calculate the checksum. Insert routines at any location; make changes (screen colour, OPTION function, FASTCHIP, fast E:, new Charset etc) and voila!

 

I started working on something like this in Action! a couple of years ago... Maybe I should finish it. :-)

  • Like 3
Link to comment
Share on other sites

  • 2 weeks later...

But what about the AltirraOS and OS++ versions? Would these be suitable for drop-in replacements if someone wanted to burn a new ROM for an 800? Are the entry points the same?

 

Yes. It would be rather pointless if they would not.

Note, however, that the Os++ math isn't really much faster. There isn't any additonal ROM space available, so only some minimal improvements had been made, like the conversion from floating point to integer. More would be possible with more ROM space available.

Link to comment
Share on other sites

  • 5 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...