Hello, Guest the thread was viewed8.5k times and contains 94 replies

last post from juergenmeyer at the

Mega Assembler is live on file host

  • I find it weird how many people prioritize enjoying sunny weather and meeting friends over writing assembly programs for 8 bit computers 8|

    True nerds don't even know what time of the year it is :D

    Reactions after 5 weeks of lockdown:

    Normal people: I can't stand this isolation anymore. I absolutely have to go out among people, party, get out and enjoy the sun! I'm almost dying from lack of personal contact!

    Nerd: What lockdown?

  • I uploaded version 0.1.2 of Mega Assembler to the file host. It adds the .BANK directive so you can now use any memory bank of the Mega65 for your programs (see comment above), plus the ability to write the machine code output to a file, so you can load and run your programs later without having to assemble them again (set your bank, then load with ,8,1 or use the new BLOAD command).

    The new .BASIC directive automatically saves a Basic version of your assembler program to disk, so you can just load and run it like you would any Basic program.

    Documentation is included in the built-in help feature, plus I created some examples how to use the new features. They are included on the disk.

    grubi, thank you for the Mega Assembler.

    I've tried it. It's really fun to work with an editor.
    the mega assembler got its own disk :)

    ...a further step towards independence ;)

    PS: sooo nice when the disk box for the Mega65 is slowly filling up ;)

  • Mega Assembler Version 1.0.2 is now available, with dramatic performance improvements and bugfixes. Assembly now runs 2.5x faster! Plus, it can now write C64 mode BASIC headers.

    Note: Due to a seeming bug in the current core 192, access to attic RAM does not work properly, so the example program "45GS02.ASM" does not work as intended if you have that core flashed. (update: at least sometimes... there seems to be a timing problem with ram read cycles)

  • grubi : My first try today with your updated assembler and it crashes! ;(

    I hope the program was not too complex, it was just a little change of your demo program! :whistling:

    Just out of curiosity I tested the same program with the inline assembler of BASIC 65.EX and there it works.

    But I can't find the error with the program and your assembler? ?(

  • Hi Snoopy, thanks for reporting. However, after investigating I found that the issue has nothing to do with Mega Assembler. The same thing happens when you write the short program with MONITOR at $48000.

    The cause is a wrong mapping of the Mega65. Different from what is stated in the manual, when you SYS a program in bank 4, there is only RAM from bank 4 in $2000-$7FFF. The RAM beginning at $8000 stems actually from bank 0!

    Look at this example: It's the same program you wrote,, poked into RAM at $8000 in bank 0. After that, it can be executed properly from bank 4!

    So if you want to use memory at $8000 or hgher in bank 4 (and also 5, I checked), you have to map it in yourself. SYS does not do it. I don't know however if this is a bug or by intention. Whatever the case, it does not fit the description in the Basic manual.

  • The example at $8000 or $B000 in bank 4 and 5 works with the BASIC 65.EX ROM, even with your assembler. I'm not at home at the moment (sun, fun and stuff) ... but maybe later I can test it again, just to be sure. I have some own stuff in the EX ROM so there can be some differences in the handling towards the official ROM. :gruebel

  • New release: Mega Assembler V1.1.0 is now available on file host, with local labels and many other additions and improvements.

    Changes in version 1.1.0 Released 18-JUN-2022

    When you run mega assembler while on top left of the screen it is written:
    the source file "FILENAME" is automatically loaded into Mega Assembler. This enables you to create disks with your assembler projects, that automatically load when you turn on your MEGA65. Simply create a program "AUTOBOOT.C65" on the disk, like:


    You can also use this to quickly load multiple source files of a multi-file project by assigning something similar to a function key.

    AUTORUN "FILENAME" acts like AUTOLOAD, but automatically assembles the file and runs it if assembly was successful.
    Try the above AUTOBOOT.C65 with AUTORUN "4510.ASM" instead!

    A new run flag has been implemented: AUTO
    With .RUN AUTO, the program is automatically run after successful assembly

    The help screen can now be activated by pressing the help key of the MEGA65

    Added the ability to define local labels and symbols: Start a new section with local labels with the keyword SECTION on leftmost column. End the section with ENDSECTION, this will return to global namespace. You may begin a new section without ending the previous one. Labels and symbols that are defined within a section cover global symbols with the same name within that section.

    If you want to define a global label within a section, prefix the label or symbol name with GLOBAL (must be on leftmost column).

    An example how to use sections is provided within the "CHANGELOG.ASM" file.

  • Yes, maybe. I have asked the question on Discord, maybe Bit Shifter will see it and respond.

    OK, here's what Bit Shifter said. It's simply not yet implemented. The manual describes how it should be in the future :rolleyes:


    It was planned to do a standard mapping for the chosen sys-bank for the range $2000 to $BFFF, but this needs to be implemented.

    Due to other work with higher priorities it is at the end of the queue.
    But you can of course place a MAP instruction with the mapping of your choice at the start of your ML program

  • It's simply not yet implemented. The manual describes how it should be in the future :rolleyes:

    Thanks! I would have sworn that this also worked with the official ROM, but I guess I was wrong. :/

    Then I do not need to look further if it is simply a matter of ROM. Anyway, with the EX ROM it works.

    Sorry that I had here in the first moment your assembler in the suspicion, there you can not help it! :whistling:

    Your assembler works fine! :thumbup: