flashjazzcat Posted December 14, 2008 Share Posted December 14, 2008 Finally got the manual for the MA65 Assembler written up so here's a disk image with the Assembler, source code and text editor: MA65.zip And this is the manual for the assembler: MA65_Macro_Assembler.pdf There are a couple of things I'd like to add to the assembler but the source code is there for others who want to have a look. Ideas for imporovement, bug reports, etc, welcome as usual. Enjoy! 2 Quote Link to comment Share on other sites More sharing options...
dwhyte Posted December 14, 2008 Share Posted December 14, 2008 I'm going to thoroughly enjoy testing this assembler... Nice job on the manual, by the way... Quote Link to comment Share on other sites More sharing options...
spookt Posted December 14, 2008 Share Posted December 14, 2008 Wow another fine release! Thanks! Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted December 15, 2008 Author Share Posted December 15, 2008 (edited) Updated manual with a couple of amendments: MA65_Macro_Assembler_1.6.pdf Includes the "LOC" directive corrects the default source file extension, which is "A65" and not "MAC". Edited December 15, 2008 by flashjazzcat 1 Quote Link to comment Share on other sites More sharing options...
twh/f2 Posted December 17, 2008 Share Posted December 17, 2008 Excellent toolset!! Really nice in combination with the batch-abilities of SDX and your great Xedit. One more question: what's the right way to binary-include a file like a font or a picture? In MADS our often use .incbin ... --------- And a little bug report: % ma65 test /m O: /l A: does not generate two files but just one (always the listing). Both parameters allow a different path but on a "PRN" file is generated. --------- with MA65 I can now code small SDX tools with parameter support just directly on the Atari within SDX. really cool!! grtx, \twh Quote Link to comment Share on other sites More sharing options...
twh/f2 Posted December 17, 2008 Share Posted December 17, 2008 Hi, I have this MADS sample from KMK. How would that translate into MA65 ? Especially the MADS specialities like "smb, blk, reloc" and so on probably don't work in MA65. PRINTF smb 'PRINTF' blk reloc main start jsr PRINTF .byte $9b,'Hello world!',$9b,0 jsr PRINTF .byte $9b,'My numbers:',$9b .byte '%b, %d, %x',$9b .byte '%e, %l',$9b,0 .word bdec,wdec,whex,tdec,ldec rts bdec .byte $FF wdec .word $FFFF whex .word $FFFF tdec .long $FFFFFF ldec .word $FFFF,$FFFF Or the other way around, do you have a little MA65 source code sample for some command line driven tool which I could use to start with? grtx, \twh Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted December 17, 2008 Author Share Posted December 17, 2008 (edited) Excellent toolset!! Really nice in combination with the batch-abilities of SDX and your great Xedit. -------- with MA65 I can now code small SDX tools with parameter support just directly on the Atari within SDX. really cool!! grtx, \twh Thanks! Really glad you like the tools, and it's GREAT to hear they're being used after all these years gathering dust in a disk box. And a little bug report:% ma65 test /m O: /l A: does not generate two files but just one (always the listing). Both parameters allow a different path but on a "PRN" file is generated. In hindsight the manual is probably not very clear on this, but it's intentional that only one listing file is produced even if both a symbol map and source listing are specified. I guess (can't remember) that the filename specified after the "/L" command takes precedence. If I remember rightly, the only time the filename for the "/M" option is used is if you just wanted a symbol map WITHOUT a listing. Otherwise the symbol map is always appended to the main listing file. One more question: what's the right way to binary-include a file like a font or a picture? In MADS our often use .incbin ... MA65 does not have a "literal" include command, but I can immediately see what a useful feature it would be. It's something I could easily add to the program, along with a couple of other things: - An internal "Pass" variable - The ability to output non-segmented object files (removing the need for the UNSEG.COM utility) Also, if you study the MA65 executable, there are some date and time variable names hard-coded into the program at the very end but I can't remember how to use them! Hopefully when I get time I'll figure them out using the source code. It sounds like your programming environment is much the same as mine used to be on the Atari ten years ago. I used to churn out Sparta utilities quite quickly using a library of standard routines in INCLUDE files... needless to say I'll release them when I write up the documentation. I'll also include the source code for some of the Sparta utilities as examples. Writing SpartaDOS utilties was by far my favourite programming activity, and it would be great to gather together commonly used assembly routines for a common programming library for the latest versions of SDX. Edited December 17, 2008 by flashjazzcat Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted December 17, 2008 Author Share Posted December 17, 2008 (edited) Hi, I have this MADS sample from KMK. How would that translate into MA65 ? Especially the MADS specialities like "smb, blk, reloc" and so on probably don't work in MA65. PRINTF smb 'PRINTF' blk reloc main start jsr PRINTF .byte $9b,'Hello world!',$9b,0 jsr PRINTF .byte $9b,'My numbers:',$9b .byte '%b, %d, %x',$9b .byte '%e, %l',$9b,0 .word bdec,wdec,whex,tdec,ldec rts bdec .byte $FF wdec .word $FFFF whex .word $FFFF tdec .long $FFFFFF ldec .word $FFFF,$FFFF Or the other way around, do you have a little MA65 source code sample for some command line driven tool which I could use to start with? grtx, \twh Here's the INCLUDE library I used to use, along with the source to the UNSEG.COM program: UTILSRC.zip I hope it's of some help: I won't have time to provide something more tailored until tomorrow. I've just been studying a piece of code similar to the one you've given, and I was wondering about the structure (I haven't yet read up on the MADS "specialities" yet!). Is this program structured as a relocatable SDX utility? ------------------ Addendum: The print statement at the start of UNSEG.A65 uses the internal MA65 Date and Time variables I mentioned in the previous post! The variables proper appear at the very end of the source code. I included them so that programs could be auto-stamped with the date and time of assembly. I'd like to interface the SpartaDOS library I wrote with the internal routines in the latest SDX cart. It's something I'll have a go at when I get time... Edited December 17, 2008 by flashjazzcat 1 Quote Link to comment Share on other sites More sharing options...
tebe Posted December 19, 2008 Share Posted December 19, 2008 SDX syntax in MADS (PC), HCA (PC) is from Fast Assembler (XE/XL) by MMMG (Marek Goderski), Fast Assembler it has been made especially for SDX MMMG disasembling SDX and write book about all disasembling SDX procedure, limited edition Quote Link to comment Share on other sites More sharing options...
bob_er Posted December 20, 2008 Share Posted December 20, 2008 I think that symbols (printf smb 'PRINTF') are one of greatest features of spartados x. They make programming for sdx very fast and easy. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted December 20, 2008 Author Share Posted December 20, 2008 I think that symbols (printf smb 'PRINTF') are one of greatest features of spartados x.They make programming for sdx very fast and easy. If I had a breakdown of the SDX relocatable file structure, it would be fairly easy to add support for symbols to MA65. Then we could have an SDX programming environment right on the Atari hardware. 1 Quote Link to comment Share on other sites More sharing options...
tebe Posted December 20, 2008 Share Posted December 20, 2008 SDX programming enviroment exists on XE/XL, Fast Assembler on XE/XL support pseudo command SMB flashjazzcat have you Fast Assembler (FA) on XE/XL ? parhaps FA is all what You want Quote Link to comment Share on other sites More sharing options...
cas Posted December 20, 2008 Share Posted December 20, 2008 SDX programming enviroment exists on XE/XL, Fast Assembler on XE/XL support pseudo command SMB flashjazzcat have you Fast Assembler (FA) on XE/XL ? parhaps FA is all what You want Hello Tebe, is there a page where Fast Assembler can be found? I Google search for "Fast Assembler MMMG" did only find an entry if the A8 FAQ, but no weg page with information/download. Is the FA still in use by someone? Or do most developers use a cross assembler for SDX assembly work? Carsten Quote Link to comment Share on other sites More sharing options...
tebe Posted December 21, 2008 Share Posted December 21, 2008 (edited) http://atariki.krap.pl/index.php/Fast_Assembler hmm, FA is not freeware "Razem z pełną (płatną) wersją asemblera autor dostarczał dokumentację dotyczącą programowania dla SDX." FA demo version from SYZYGY #8 (DISK3) http://madteam.atari8.info/scena/syzygy8.zip FA_DEMO.ZIP Edited December 21, 2008 by tebe Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted December 21, 2008 Author Share Posted December 21, 2008 http://atariki.krap.pl/index.php/Fast_Assembler hmm, FA is not freeware "Razem z pełną (płatną) wersją asemblera autor dostarczał dokumentację dotyczącą programowania dla SDX." FA demo version from SYZYGY #8 (DISK3) http://madteam.atari8.info/scena/syzygy8.zip Excellent. For those of us thinking of buying the Fast Assembler - can we expect English documentation? In the meantime, I'd still like to understand the SpartaDOS X relocatable file format and incorporate the means to create same in the freeware MA65 assembler. 1 Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted December 21, 2008 Author Share Posted December 21, 2008 (edited) What are the limitations on the demo version of the Fast Assembler, by the way? Just the lack of documentation? Edited December 21, 2008 by flashjazzcat Quote Link to comment Share on other sites More sharing options...
tebe Posted December 21, 2008 Share Posted December 21, 2008 limitations - length of program Quote Link to comment Share on other sites More sharing options...
maguman Posted February 1, 2009 Share Posted February 1, 2009 What a great assembler & text editor combo! I have been fiddling around with this all weekend. I have used both MAC/65 and AMAC in the past, and MA65 seems to combine some good featurs of both. I even tried modding it to assemble stock standard MAC/65 code (.BYTE instead of BYTE etc) - no problems. I have been assembling all weekend. It did raise an issue, though. Does anyone have or know of a good debugger that works well under Spartados? I haven't been able to get Extended DDT to work, and I'd like to put MA65, XEDIT and a debugger on a floppy to transfer over and use as a package on my real hardware. If anyone has a Spartados ATR or something with a good debugger, or any other suggestions, I'd really appreciate it! Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted February 1, 2009 Author Share Posted February 1, 2009 What a great assembler & text editor combo! I have been fiddling around with this all weekend. I have used both MAC/65 and AMAC in the past, and MA65 seems to combine some good featurs of both. I even tried modding it to assemble stock standard MAC/65 code (.BYTE instead of BYTE etc) - no problems. I have been assembling all weekend. Glad you like it. I was always in two minds about the non-standard pseudo ops. Maybe it's not too difficult to convert MAC/65 code to compile with MA65, but the last time I tried to convert the source code for LW (some 160K in length) to work with MAC/65 compatible cross-assembler, I ended up in all kinds of knots. Have you not discovered the BYTE bug in MA65 yet? I only found it the other week. The following won't comple correctly: BYTE <POINTER BYTE >POINTER You have to write: BYTE POINTER MOD 256 BYTE POINTER / 256 I'll fix this as soon as I get time. Quote Link to comment Share on other sites More sharing options...
maguman Posted February 1, 2009 Share Posted February 1, 2009 Didn't strike that bug. I originally moved to MAC/65 from other assemblers (and I coded on the c64 before that). I got used to POINTER&255 and POINTER/256 and never changed to anything more assembler specific. When modding MA65, all I did was change BYTE to .BYTE etc in OPCODES.MAC, assembled a new version, and then tried it on some MAC/65 code (around 120k long). Worked a treat. I can assemble the same code using the ATASM cross assembler. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted February 21, 2009 Author Share Posted February 21, 2009 Didn't strike that bug. I originally moved to MAC/65 from other assemblers (and I coded on the c64 before that). I got used to POINTER&255 and POINTER/256 and never changed to anything more assembler specific. When modding MA65, all I did was change BYTE to .BYTE etc in OPCODES.MAC, assembled a new version, and then tried it on some MAC/65 code (around 120k long). Worked a treat. I can assemble the same code using the ATASM cross assembler. In an effort to make MA65 as MAC/65 compatible as possible, I've done something similar to that with version 1.7a, which will be released soon, but I've kept both kinds of directives in the table: with and without leading periods (for compatibility with my own source code). I have a few new directives in the pipeline, too, and the new version will produce unsegmented OBJ files. Compatibility with the new SDX 4.42 will also be tightened up. Quote Link to comment Share on other sites More sharing options...
tep392 Posted January 31, 2017 Share Posted January 31, 2017 I'm trying to use MA65 with SDX 4.48 an using LW33RC7 as the editor. I'm running SDX on an Atarimax 8mb cart. I've been having problems with MA65 crashing. What's weird, is it will only crash if I've used Last Word before running MA65. So if I boot SDX then assemble with MA65 it will work fine. But if I use Last Word to edit a file, then exit LW and run MA65, it locks. Any idea's what could be causing this? Quote Link to comment Share on other sites More sharing options...
_The Doctor__ Posted January 31, 2017 Share Posted January 31, 2017 (edited) can you try this with a 1mb atarimax sdx cart? I have a suspicion. If I can remember I'll try some experimenting later today Edited January 31, 2017 by _The Doctor__ Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted January 31, 2017 Author Share Posted January 31, 2017 Probably uninitialised RAM in the assembler or something... it's rather old. I still have the source code somewhere, though, so if the reason for the crash becomes clear, I can probably get it fixed. 1 Quote Link to comment Share on other sites More sharing options...
tep392 Posted January 31, 2017 Share Posted January 31, 2017 Probably uninitialised RAM in the assembler or something... it's rather old. I still have the source code somewhere, though, so if the reason for the crash becomes clear, I can probably get it fixed. Is there another alternative that will work with SDX? I've tried AMAC and it seems to run, but the output files it creates are always empty. 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.