Jump to content
IGNORED

SuperSave - Save EA3 files as EA5 files


FarmerPotato

Recommended Posts

This is the source to a utility I wrote in 1986. You load SUPERSAVE before other object files, and it tracks the free addresses in high RAM.

It works on relocatable EA3 object files, and supplies its own copy of the E/A utilities. Supersave itself loads into low RAM (>2C00).

supersave.txt

Before you load other files, Supersave puts a B instruction at >A000, followed by a version of the E/A utilities. You have the option to include none, or KSCAN-VMBW, DSRLNK and so on. Supersave intercepts auto-starting object files by patching the E/A Loader.

 

I'm sure there are some cases it doesn't handle, including code with AORG.

 

I wasn't able to find the disk I distributed this on, so there is no documentation or other goodies that I distributed on the fairware disk.

 

The source code was in an ARK that was unreadable by Barry Boone's 1988 or 1989 Archiver 3.03 versions. Anyhow Fred Kaal's TIDIR unpacked the archives ok into this PC text file.

 

 

SUPER.BIN is a TIFILES object code that I just made, fresh out of the Funlweb 4.10 assembler, in Classic99, but I expect all bits are identical to the original.

I'm not sure what to name an attached executable but AtariAge seems to like .BIN. It's a DIS/FIX80 EA3 loadable file with a TIFILES header.

SUPER.BIN

 

And to test that it's working, I converted a standalone speech demo from EA3 to EA5. Attached also in TIFILES format please find TALK1.BIN

TALK1.BIN

Edited by FarmerPotato
  • Like 11
Link to comment
Share on other sites

Cool! I didn't understand how to use it properly back in the day, I probably tried converting XB object code or some other nonsense. lol. I poked through my disks and found the flippy it resides on, probably from around 1987, and it still works. (I got my Myarc FDC and double-sided drives around that time and did away with most of those self-made flippy disks.)

 

Interesting that that arc was unreadable. I wonder if it was created with the old version 2.x Archiver or some other variant?

  • Like 2
Link to comment
Share on other sites

Hi!


I'm glad another person remembers my program.


Yep, Supersave does nothing specifically to help with XB loadable object code (except purely relocatable code.) I wonder if you have the whole disk image? It had other things like my brother's game CRASH that I have lost. It is mysterious to me where the master copy went to.


One of my disks had an archive of Archiver 2.0, which came with a separate Squeeze program and a note about plans for Archiver 3.0. I think that explains my unreadable (in 3.0) archives.


For Extended Basic object code, loading to low ram, Barry Boone's SYSTEX was ideal. Systex moved the low ram into the high ram inside the XB program table, added some glue to move it back to low ram at runtime, then you

save the whole program as one unit. This gives you a very fast load time for assembly code, compared to the XB CALL LOAD.


I used Systex when TI-NET BBS assembly code filled all of low ram and took quite a while to load.


I peeked into what Systex did and used that technique for Bubble Plane to mix assembly with XB in one file. When Bubble Plane loaded, only the title screen and high score file management was in XB, while the entire game ran in

assembly in high ram. Merging the object code into the final image was tricky, and editing the Basic afterward was hazardous. The development process had gone from 100% XB, trying and giving up on the Basic Compiler of the day (Exceltec warned me that it wouldn't work out), to XB with A/L support for scrolling the screen, (writing the map editor using the same toolbox), to all assembly for gameplay. This version shipped on floppy.


Finally I got it into a 8k cartridge image plus 24k of RLE compressed data, and used GPL on the Geneve to simulate bank switching by paging at >6000 to get at the data. I didn't know who could publish it though.


Footnote: I wrote Supersave one day when I was frustrated at all the steps needed to load and run Congo Bongo (the leaked beta on disk was a dozen or more object files.) Unfortunately, Supersave didn't get everything right and the image would not run after a cold restart. It's also true that I was perpetually out of floppy disks and needed to save space by compressing games.
  • Like 1
Link to comment
Share on other sites

 

For Extended Basic object code, loading to low ram, Barry Boone's SYSTEX was ideal. Systex moved the low ram into the high ram inside the XB program table, added some glue to move it back to low ram at runtime, then you
save the whole program as one unit. This gives you a very fast load time for assembly code, compared to the XB CALL LOAD.

Ah, yes, I recall sending Barry a fairware donation for Systex sometime in the late 80s, so I bet that was my 'solution'. What a great program and time saver! I still use Systex to this day ;) Back then I was still cutting my teeth on XB and assembly hybrid programming and hadn't done much outside of that environment. It wasn't until some of the Milwaukee User group members showed me how to use Editor Assembler code through a few examples that I got into non-XB programming.

Link to comment
Share on other sites

I would love to have something similar of this but for convert MiniMemory to EA3 :P

Like converting the Line by line assembler to EA3 or EA5?

 

Its one thing to read in in whatever file format Easy Bug writes out, but it has addresses based at >7000. Fine if you have an E/A with 8K RAM installed.

 

If you want that to load into the 32k, thats a hard problem. Rebasing code means figuring out what is an address and what is data. You can do a quick and dirty job and wind up with errors.

  • Like 3
Link to comment
Share on other sites

  • 1 month later...

Here is some code that implements the EA5 loader.

 

You might want it if you use EA5 format for run-time loadable segments, or launch different programs from a menu. This code shows how to load one, called 'DSK1.K2P'.

 

loader.txt is the simpler code.

loadea5.a99 has some debugging code in it to display progress and such.

 

 

 

 

loader.txt

loadea5.a99

  • Like 2
Link to comment
Share on other sites

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...