Atari_Ace Posted June 11, 2017 Share Posted June 11, 2017 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. 5 Quote Link to comment Share on other sites More sharing options...
OmaOhneBH Posted October 3, 2018 Share Posted October 3, 2018 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? Quote Link to comment Share on other sites More sharing options...
Alfred Posted October 3, 2018 Share Posted October 3, 2018 (edited) 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 October 3, 2018 by Alfred 3 Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted October 3, 2018 Share Posted October 3, 2018 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.