Jump to content
IGNORED

Recommend a good macroassembler?


eflake

Recommended Posts

Atmas II. Many games and demos have been created using this powerful macro assembler. It has built in debugger. Text and copy buffer locations can be adjusted in memory.

 

https://atariwiki.org/wiki/Wiki.jsp?page=Atmas%20II

http://ivop.free.fr/atari/atmas2.html (manual in german) - google translate is your friend here ;)

 

Another option would be Quick Assembler, but i personally prefer Atmas. Have been using it for years and all demos and games from GMG (http://www.pouet.net/groups.php?which=2673) were coded in it.

Edited by mchorvat
Link to comment
Share on other sites

yeah but Atmas 2 is little bit strange in terms of usage imho. I needed to learn syntax when I was converting HARD sources to MADS last year. Native assembler I used Macro Assembler XE by Thorsten Karwoth (if your 800 XL has more than 64k ram) and Bibo Assembler and of course Atari Macro Assembler cart and Mac/65....

 

Quick Assembler was standard in Poland... seems to be good as it become standard for XASM cross assembler and MADS.

Link to comment
Share on other sites

Quick Assembler is not macroassembler and is not that quick either :) I was quite surprised it gained such a loyal fanbase when being lightyears behind e.g. MAC/65 (it was my macroassember of choice). I guess the built-in editor made all the difference.

Anyways, people say that MAE (https://atariwiki.org/wiki/Wiki.jsp?page=MAE%20Assembler) is THE native macroassember (requires 128KiB RAM though).

  • Like 2
Link to comment
Share on other sites

Mac/65 on real hardware.

 

Do learn about cross-compiling/cross-assembling. Building on a modern computer is blindingly fast and testing on an emulator is so much more convenient.

 

I like atasm on a modern PC. All the joy of Mac/65 with none of the line numbers.

Edited by kenjennings
  • Like 1
Link to comment
Share on other sites

yeah but Atmas 2 is little bit strange in terms of usage imho. I needed to learn syntax when I was converting HARD sources to MADS last year. Native assembler I used Macro Assembler XE by Thorsten Karwoth (if your 800 XL has more than 64k ram) and Bibo Assembler and of course Atari Macro Assembler cart and Mac/65....

 

Quick Assembler was standard in Poland... seems to be good as it become standard for XASM cross assembler and MADS.

well the syntax in Atmas is not that difficult, in fact i find it easier than most other assemblers for Atari. And i really never liked using line numbers in my assembler source code (like in Bibo asm and MAC65) - it felt so 60ties even in 90ties;)

 

But again, it's a personal choice in the end ... Atmas was a standard in Czechoslovakia back then. There are even successors to Atmas 2. Atmas 3 was great tool if one wanted to develop asm and basic (you can switch between basic and asm editor with 'select' key). Atmas 4 was optimized version completely running 'under ROM', leaving all RAM for source code and binaries with support of cassette Turbo 2000 system.

Link to comment
Share on other sites

well the syntax in Atmas is not that difficult, in fact i find it easier than most other assemblers for Atari. And i really never liked using line numbers in my assembler source code (like in Bibo asm and MAC65) - it felt so 60ties even in 90ties;)

 

But again, it's a personal choice in the end ... Atmas was a standard in Czechoslovakia back then. There are even successors to Atmas 2. Atmas 3 was great tool if one wanted to develop asm and basic (you can switch between basic and asm editor with 'select' key). Atmas 4 was optimized version completely running 'under ROM', leaving all RAM for source code and binaries with support of cassette Turbo 2000 system.

It's not that the syntax is difficult, but in '80s behind iron curtain there was no internet or readme files or official books. Unless someone physically showed you that you need to hit TAB in Atmas for the stuff to compile, there's no way you could figure that out yourself, as 4 other editors / languages I used , did not use the Tab, so it was entirely nonstandard.

 

And of course, the compile error did not remotely hint at the Tab, so you just stared at your first program wondering why the hell it won't compile, till finally someone told me about the stupid TAB and I could go work with Atmas...

 

I would have killed to have a version of Atmas that ran from ROM and had support for T2000, as that would have saved me from having to switch to hexa opcode coding (since under Atmas II you ran out of RAM real fast, plus Atmas II was placed roughly in the middle of RAM, so you had to code around the space it consumed, which made progress that much slower - breaking the code into pieces).

 

When exactly did that last version become available ? I'm pretty sure it wasn't generally available in summer 1990, as that was the last time I visited the local Atari club which had access to all such SW.

Link to comment
Share on other sites

Atmas 4? By Peter Finzel?

 

I have original Atmas 2 here ;)

honestly, i am not sure who wrote Atmas 4, i suppose someone from Czech rep, or Slovakia around 90ties. There is no name of the author in the binary, but it has Turbo 2000 handler (T:) built in, and as I mentioned T2000 cassette system was used by 95% of atari users in these countries back in those times (disk drive was way too expensive for regular folks, i guess it was 2x or 3x the cost of Atari XL/XE).

I am attaching Atmas4 version i enhanced with DIR D1: code (run $500 from built-in monitor). We've been using A4 heavily during our Atari demo scene years. Main advantage is that it runs under the ROM (editor+monitor) and hence you have MEMLO to MEMTOP for your source code and binaries. In case DOS is not used at all, it's basically $400 to $C000. That was insane in those days...

Address of source code and labels in the memory can be changed by pressing 'A' in the monitor (CTRL+P).

 

Another advantage of Atmas was superfast compilation speed. Not an issue these days when people use PCs and Macs to develop for 8bits, but back then it was a necessity.

 

Marco/GMG

a4.xex

Edited by mchorvat
  • Like 5
Link to comment
Share on other sites

It's not that the syntax is difficult, but in '80s behind iron curtain there was no internet or readme files or official books. Unless someone physically showed you that you need to hit TAB in Atmas for the stuff to compile, there's no way you could figure that out yourself, as 4 other editors / languages I used , did not use the Tab, so it was entirely nonstandard.

 

And of course, the compile error did not remotely hint at the Tab, so you just stared at your first program wondering why the hell it won't compile, till finally someone told me about the stupid TAB and I could go work with Atmas...

 

I would have killed to have a version of Atmas that ran from ROM and had support for T2000, as that would have saved me from having to switch to hexa opcode coding (since under Atmas II you ran out of RAM real fast, plus Atmas II was placed roughly in the middle of RAM, so you had to code around the space it consumed, which made progress that much slower - breaking the code into pieces).

 

When exactly did that last version become available ? I'm pretty sure it wasn't generally available in summer 1990, as that was the last time I visited the local Atari club which had access to all such SW.

source code is compiled by CTRL+Y in Atmas, i am 100% sure you don't need to hit TAB to compile. I double checked just now. TAB is used purely for indentation (you can use space key instead)

 

I started to write programs in asm around 1992/1993 and i recall Atmas4 was already available around that time. I have no idea who wrote it or when :)

  • Like 1
Link to comment
Share on other sites

And of course, the compile error did not remotely hint at the Tab, so you just stared at your first program wondering why the hell it won't compile, till finally someone told me about the stupid TAB and I could go work with Atmas...

 

 

source code is compiled by CTRL+Y in Atmas, i am 100% sure you don't need to hit TAB to compile. I double checked just now. TAB is used purely for indentation (you can use space key instead)

See the first quote - I meant that by not hitting TAB [to indent] the source code would not compile (didn't mean to imply that TAB is compilation key). Ctrl-Y (or whatever the actual combo was) was easy to figure out - just keep pressing each key against Ctrl and in 2 minutes you know which does something and which doesn't.

 

I started with Atmas around 1988. No Internet, no BBS, no books.

 

I'm sure I don't have to remind you that sh*t was dangerously illegal back then. You know "collusion with class enemy imperialists"-illegal.

 

So, no retail stores where you would actually be able to buy the program and a manual (which I'm sure mentions this).

 

Meaning, if you didn't know - you really, really didn't know. That changed when somebody in an Atari club did a short presentation and pressed the magical Tab key during first 20 seconds. I didn't need to stay for the rest of the presentation, as he was covering some elementary stuff like bidirectional memory move (or something as basic as that, which I already coded and debugged on paper with a pencil long time ago), I instantly ran home and starting coding and hitting the magical key -including vocal epressions worthy of Mr. Bean- :lol:

 

I started to write programs in asm around 1992/1993 and i recall Atmas4 was already available around that time. I have no idea who wrote it or when :)

Sorry, too late for me - I stopped using Atmas II in summer of 1990, as in September I started attending a high school which just got a brand-new shipment of 8086 and about a year later 80286 PCs.

That meant discovery of Turbo Pascal, its stunning debugger, interactive help via F1, instant compilation, all on color monitor with 50 lines and 80 columns.

And since those things were obtained legally (it was a year after '89), there were actual, physical, manuals. In English, but that's how I learnt the damn language (my fourth language at that time).

 

 

 

Atari simply could not compete with that - it's like offering a ride in an Enterprise starship to a guy from stone age resting his club on his shoulder :lol:

 

There never ever again was a paradigm switch of that magnitude in programming environment. Even switching to a VisualStudio full decade later, which I'm using for my Atari stuff now, was merely [very slightly] incremental compared to Borland's TurboPascal environment (vs Atari).

  • Like 1
Link to comment
Share on other sites

I personally decided for the Mac/65 as native assembler. It is very capable, it came on ROM, so you did not have to boot from disk, and you could not break the assembler by doing "stupid" things. Which happens more often than you like if you program in assembler.

 

As cross-development platform, I am using the ca65. Basically, because it is the only one available for Linux. But yet, it is quite capable and integrates nicely into the Linux build chain.

  • Like 1
Link to comment
Share on other sites

Marco...

 

After spending hours to convert atmas2 sources to mads I learn today that there is a compatible PC cross assembler hehe... ;)

 

Here's a small patch to make 'codegen v2.6.2' compile with gcc 6.3 on debian stable. Also, rename extension to lowercase .c

$ patch -p1 --dry-run < ../codegen.patch

checking file 'Codegen V.2.6.2.C'

checking file file_to_image.h

$ mv Codegen\ V.2.6.2.C codegen.c

$ gcc -o codegen codegen.c -g3

(ignore remaining errors about strcmp() not matching the function pointer description of the compare function of qsort())

$ ./codegen test.src

 

It did generate a proper autorun.sys file and a symbol table that should work with sourcgen.

XFD or ATR output didn't work, but I don't care about that :)

 

A lot more work needs to be done to cleanup the source and fix horribly outdated usage of gets() and buffers passed by reference without knowing its length, etc.... but I don't see a license anywhere, which makes me kind of hesitant to do more work on it.

codegen.patch.zip

Edited by ivop
Link to comment
Share on other sites

 

Here's a small patch to make 'codegen v2.6.2' compile with gcc 6.3 on debian stable. Also, rename extension to lowercase .c

$ patch -p1 --dry-run < ../codegen.patch

checking file 'Codegen V.2.6.2.C'

checking file file_to_image.h

$ mv Codegen\ V.2.6.2.C codegen.c

$ gcc -o codegen codegen.c -g3

(ignore remaining errors about strcmp() not matching the function pointer description of the compare function of qsort())

$ ./codegen test.src

 

It did generate a proper autorun.sys file and a symbol table that should work with sourcgen.

XFD or ATR output didn't work, but I don't care about that :)

 

A lot more work needs to be done to cleanup the source and fix horribly outdated usage of gets() and buffers passed by reference without knowing its length, etc.... but I don't see a license anywhere, which makes me kind of hesitant to do more work on it.

 

I give only the website from Richard and i have not tested any way.

I hope you atari users can use it for something.

 

I like the 6502 disassembler to learn from it or real sources.

 

Do great stuf with ours atari's

 

Gr. Marco sorry from my bad english.

Edited by marcokitt2000
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...