Jump to content

Rom Version od Synassembler?

Recommended Posts


I have 5 different versions of SYNASM.XEX and I'm not sure which is which. Can someone help identify them?


Here are all the md5's

SYNASM-1.XEX - d34950b1aa12afa01fdde2b9c168569f
SYNASM-2.XEX - 3e0cde527b2f972db0b9ccaab53cdc8d
SYNASM-3.XEX - f3fad581725973386b7f13d7a9485062
SYNASM-4.XEX - d8f5226dfdb159e3ece33abf0910ef7b
SYNASM-5.XEX - 3eb747c811a16b938ae61cd95429738d


Here's the differences between these 5 xex files.

  • #4 is the base/early version it seems with direct calls into the 800 editor routines, so it will only work on the 800 OS.
  • #5 has two bitflips compared to #4 that aren't in any of the other versions, so it's likely a bad dump.

ae48 $85 (STA) => $05 (ORA) (v.5 only)

ae76 $a5 (LDA) => $25 (AND) (v.5 only)

  • #3 is identical to #4, but with two calls into the OS patched to work in the XL/XE OS. So it will only work on the XL/XE OS.

ab75 JSR $f63e (v.1,4,5) => JSR $f24a (v.3) or JSR $bbee (v.2) Editor GET-BYTE

b99a JSR $f6a4 (v.1,4,5) => JSR $f2b0 (v.2) or JSR $bbf2 (v.2) Editor PUT-BYTE

  • #1 is the same as version 4, but with some init code added that patches the get byte/put byte addresses based on the values in the vector table. This version can run on 800 and XL OS, and possibly other OS's as well.

be78-be9c init routine

  • #2 is the most different of these versions, it has patched the editor calls to custom routines, relocating/reusing part of the init routine, and changes a LDA #10 to LDA #1 in one place.

9be7-9bff init routine relocated from bbee, JMP's back to $bc04

9c55 LDA #10 => LDA #1

ab75, b99a editor patches.

b3eb change copyright message

bbee-bbfd editor patch overwriting part of the init code.


  • Like 5

Share this post

Link to post
Share on other sites

Noob question


So, is it possible to program a big 64k game with the cart version of SynAssembler (or MAC65) on a stock 800XL + 1050? How to do that?

The cart version still occupies RAM, right? So the program have to be assembled in parts and saved to disk and put together one after one?

Share this post

Link to post
Share on other sites

Depends on how you plan to load it. You could assemble it as some number of separate binaries and then append the second and others to the first. Depending on the actual size and memory layout you might be able to build it as one big binary and use offsets and then after the binary loads the game moves the offsetted part to it's true location. I think Mac/65 can build maybe about 20-25K binary in a single run, but it really depends on how many labels you use as symbol table space will be the limiting factor.


The Basic XE 4.2 source results in 27K of code, takes Sparta 2.3 ( or some other super low memlo Dos) and has about 100 bytes free. It only works because they reuse the same local symbol dozens of times.

Edited by Alfred
  • Like 3

Share this post

Link to post
Share on other sites

Jesus what a thread...


I would taken the disk version and put some cart header on it done... ;) or did I oversee some special of the cart version?


Having no Makros I have to say Mac/65 rules and even Atari MakroAssembler Cart ;)

Share this post

Link to post
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.

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.


  • Recently Browsing   0 members

    No registered users viewing this page.

  • Create New...