Releases: CycoPH/atasm
Auto memory banking and .INIT / .RUN directrives
V1.25
- Added basic trigonometry functions as dot commands: .sin, .cos
These can be used in loops to generate trig tables. - Added -a / -mac65 option
This option will create a memory bank for every program counter assignment and will make Atasm more compatible with mac/65. - Added the .INIT and .RUN directives to simplify the INITAT and RUNAT segment generation.
Check the tests/how-to-boot-asm-*.asm samples
V1.23 - Fixed JCC opcode
Fixed the JCC generated opcode.
Thank you to LarsImNetz for finding the bug
V1.22
V1.22
Added long jump commands JEQ, JNE, JPL, JMI, JCC, JCS, JVC, JVS.
These macro commands are similar to the 6502 branch instructions BEQ, BNE, BPL, BMI, BCC, BCS,
BVC, BVS, but can target the entire 64KB address space via a jump. If the distance is short
and the target is known during the first assembler pass then the jump is converted into a branch.
The assembler spits out code change suggestions if it finds jumps that could be optimized.
V1.21
Version 1.21 - Fixed the .REF implementation. It will now detect a forward reference to a label correctly. This is useful in building libraries and excluding code from them if the functions or data is not being referenced. i.e. If there is no JSR FUNC1 then the code in the .IF block is not generated.
.IF .DEF func1
func1 ...
.ENDIF
Version 1.17 - Exporting data to VSCode symbol explorer
Extended the -hv[clm] option. You can now limit the data export to (c)onstants, (l)abels and (m)acros.
Or any combination of them. -hvcl exports constants and labels. By default all data is exported.
Used by the "Atasm-Altirra-Bridge" VSCode plugin (https://bit.ly/3ATTHVR)
Breaking default behavior change: When running atasm without a target assembler file (was test.m65) the command line help is shown. Same when specifying -h on the command line.
Version 1.16 - Shift operator and .LST fixes
Added the << and >> shift operators to the expression parser.
Code like this now assembles:
lda #$100>>[DataMatrix_SIZE&7]
Fixed a bug in .LST output generator. Filenames were not tracked correctly which caused source lines
to be allocated to the wrong source file. Thank you to Lars Langhans for reporting this.
Version 1.15
Added -hv switch to dump all equates, labels, macro defs and included source files to the 'plugin.json' file located at the root folder from where atasm starts searching for source files. This is to be used my the Atasm-Altirra-Bridge VSCode plugin to allow you to quickly manouver your code.
Added modulo/remainder operator. %% or .MOD
You can now say '.byte 15%%10' and it will store the value of 5.
Version 1.14
Improved the source file and line # tracking for equate and label definitions.
The -hc and -ha switches now dump detailed info on which file and on which line the definition occurred.
-hc and -ha dumps sort their output by the address and not alphabetically.
Added support for labels with '.' in them.
cio.cmd .byte 0
cio.len .byte 0
are now valid labels.
Fixed some Linux compile warnings.
Version 1.13
Added CC65 header and assembler include file generation switches.
Switch -hc dumps all equates and labels into a C-style header file. Useful when interfacing with CC65. Each #define is prefixed with the basename of the assembler file. atasm -hc test.asm will create "test.asm.h" with #define TEST_...
Switch -ha dumps all equated and labels into an atasm style include file.
Both -hc and -ha switches can have their output filenames specified by the switch or if left out auto-generated by atasm.
-hcmy-project.h -hamy-project.inc will generate "my-project.h" and "my-project.inc"
Version 1.12
V1.12
When listing an assembly via the -g command line parameter, labels not defined on the same line as an operand where not output at all. This version outputs the label in its original name (in all caps).
i.e.
SomeLabel:
lda #0
Will output as "SOMELABEL lda #0"