Jump to content
IGNORED

Syncalc as a Double Density file version


DjayBee

Recommended Posts

After some testing of the 48K+Axlon version by fellow @1200XL M.U.L.E. and @luckybuck, the attached disks now contain all three binaries from the original disk.

As a small bonus, a driver for the CX85 numerical keyboard is automatically loaded. Thanks to @CharlieChaplin for posting his "CX85 library".

 

Syncalc supports these memory configurations with three separate binaries on its disk:

 

  • any Atari with 48K RAM plus available Axlon memory for up to 245K.
  • 130XE version which uses 128K RAM.
  • special 52K version for 400s and 800s with 4K RAM at $C000.
    This version crashes if the machine also has Axlon memory installed.
     

Unfortunately Syncalc replaces some memory areas which are used by DOS with own code. Therefore the binaries work only with the exact versions of DOS 2.0 which are on the disks. Most patching is done by the XEX files during loading.
After patching DOS lacks these features: NOTE, POINT, burst mode and write DOS.

 

While adding the remaining two binaries today, I found out that the DOS patches even vary between the three binaries, because they make calls back into Syncalc.

If you want to check the patches yourself then go to this post where I have added the source code of the original DOS and the version patched for the 48K binary. Some discussions about CX85 can be found in this thread.

 

90K single and 180K double density disks:

Syncalc1985-SD-v1.atr  Syncalc1985-DD-v1.atr

 

 

Edited by DjayBee
  • Like 11
  • Thanks 5
Link to comment
Share on other sites

@DjayBee Fantastic work! Thank you for this! :) It is greatly appreciated! ❤️

 

I downloaded the double density ATR image and wrote it to a disk. The disk booted just fine on my 130XE. I loaded SC85K128.XEX without any problems and I have 84kB available.

 

I created a large sheet that simulates covering weekly stock prices. Columns are week number, date (as text), S&P 500, adjusted closed, actual close, shares owned, total value, and normalized values for the S&P 500 close and the adjusted stock price. There are notes for the company name, stock symbol, overall performance, dividends, and file names. Since this sheet is a simulation all values are "dummy" values calculated with simple formulas. I filled the sheet with text/numbers/calculations from A1 to W255. The sheet, when loaded fresh from a separate data disk, uses 73kB. I saved the same sheet three times to consume space on the data disk. Additionally, I exported the week number and normalized columns to DIF files.

 

I spot checked the sheet and I did not see any lost data but maybe I missed something. Hopefully not.

 

I did not verify the contents of the DIF files.

 

So far, so good! :) I am very impressed with your work expanding SynCalc! 

 

I will use this version for my data entry and tracking to continue exercising the program. Now I will have to switch from my beloved 1200XL to my 130XE.

 

I am attaching an ATR image of my data disk. Hopefully the file opens fine on your system.

 

Thanks again for this great work!

 

SynCalc DD Data Disk.ATR

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

Next update: Syncalc 1985 - the Ultimate

 

Syncalc1985-SD-v3.atr  Syncalc1985-DD-v3.atr

 

Only yesterday I realized that there was hacked 1983 version which supports more than 128K RAM on XL/XE machines.

I stole the code accomplishig the bank switching, adapted it to my loader and now it supports:

  • up to 245K with Axlon
  • up to 213K with Rambo (only 320K+ gives the maximum)
  • 149K with Compy Shop (dunno why it does not detect more)
  • 213K with 1088K
  • 85K with an unmodified 130XE

I only loaded one of @1200XL M.U.L.E.'s big files without problems, but did no further testing. Therefore I hope that the additional memory is not only detected, but actually usable.

Testing was done in Altirra.

  • Like 8
  • Thanks 2
Link to comment
Share on other sites

It seems that Syncalc makes me the new hardware pro. ;)

I found out why I yielded different values for maximum available memory.

 

First off Syncalc supports only 14 banks (224K) of extended memory (plus the 21K in base RAM).

  • Rambo was limited to 213K because the 1993-hacker defined only 12 banks instead of the maximum of 14 in his Axlon-to-Rambo translation table.
  • Rambo 256K was limited to 181K because the 1993-hacker made an unfortunate selection of banks to use.
    This expansion seems to only have 14 banks instead of 16. Due to the selected banks, Syncalc tried to use the non-existing bank 15 after checking bank 10. Therefore the memory test yielded only 10 valid banks (160K).
  • The Compy Shop expansion uses one differing bit of PORTB to select the banks which makes Syncalc recognise only 8 valid banks (128K).

I hope that the limitation to only 12 banks was not done on purpose because of trouble.
Please be careful when toying around with this version and give feedback.

 

Updated images which yield 245K maximum for all types of expansions:

 

Syncalc1985-SD-v4.atr  Syncalc1985-DD-v4.atr

 

Btw.: The official 130XE binary gives 1K less of free memory than the patched 48K+Axlon "Ultimate" version.

Edited by DjayBee
  • Like 8
Link to comment
Share on other sites

Another day, another update. ;)

Yesterday I started to implement bank switching that is compatible with RAM-based OSes but really forgot to finish it.

 

Reading some recent discussion about alternative floating point libraries, I thought that it might come in handy to test Syncalc with these. Testing with a RAM-based OS is always quicker than needing to flash or burn a ROM.

It even supports using PORTB extended RAM with a loaded OS-B which doesn't make sense, but anyway. ;)

 

Syncalc1985-SD-v4a.atr  Syncalc1985-DD-v4a.atr

 

This concludes my planned enhancements unless you guys find some bugs.

 

In case someone wants to step forward, I have two ideas for further improvement (which I will not do):

  • Analyze Syncalc's own weird RAM detection code to see if more than 14 banks of extended memory are possible.
  • Compile MyDos from source code and try to fit in Syncalc's DOS patches. It needs some $220 bytes.
    This would need the same approach as for the original patches: identify not needed subroutines, replace them with Syncalc's code.
    As an additional step you need put entry points at the exact same places they are currently and route MyDos' original code around these.
Edited by DjayBee
  • Like 9
  • Thanks 1
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...