Skip to content

Releases: snakebyte69/agon-ez80asm

eZ80asm v2.0 - macOS

16 Jan 07:09

Choose a tag to compare

Enhancements:

  • Macros can now call other macros, with a maximum depth level of 8 AgonPlatform#100
  • Length of a label can now be 64 characters AgonPlatform#102
  • Going forward, only LOCAL labels will be allowed inside a macro body. Local labels are internally expanded with a 'macro expansion ID' to create a unique - macro-expansion scope that will also work during recursive macro invocations AgonPlatform#103
  • -m option now allows for minimum memory buffer configuration to assemble large programs on the Agon AgonPlatform#105
  • Large programs like the ez80asm version of BBC Basic can now be assembled directly on the Agon
  • Macro arguments mappings are now displayed during listings AgonPlatform#107
  • ALIGN statement at end of file / between DS statements at the end of a file no longer producing unnecessary fillbytes AgonPlatform#109
  • Macro arguments not longer accepted when name of argument is a valid number AgonPlatform#116
  • Macro bodies are no longer limited to 2K per macro AgonPlatform#117
  • Processing 'depth' maximum is raised from 4 to 8 to allow for deeper include levels used in larger programs AgonPlatform#119
  • Support for a CPU directive, to limit the opcodes to Z80/Z180 AgonPlatform#120
  • Labels and instructions are accepted without preceding spaces AgonPlatform#121
  • Support for a relocatable code block using the .relocate directive AgonPlatform#122
  • General cleanup of older code, improved code readability
  • Much Improved error handling

Fixed since previous release:

  • -v option quits without throwing an error AgonPlatform#101
  • Extremely low memory situations on the Agon didn't always correctly produce an 'Out of memory' error, while the program doesn't exit in an orderly fashion AgonPlatform#104
  • Macro call failed using an EQU as an input parameter AgonPlatform#106
  • -x option incorrectly displayed output size AgonPlatform#108
  • Using comment ';' immediately after macro command without arguments resulted in error 'Incorrect number of macro arguments' AgonPlatform#110
  • Expressions with compound escaped literals resulted in an error AgonPlatform#111
  • Commented single quoted literal produced an error AgonPlatform#112
  • Missing first data value in DB/DW/DW24/DW32 list was not detected AgonPlatform#113
  • incbin/include without argument didn't provide an error, program crashed AgonPlatform#114
  • including files with long filenames could lead to a crash, when the file couldn't be opened / didn't exist AgonPlatform#118
  • Removed excessive empty lines in a listing file with windows builds AgonPlatform#123

ez80asm v1.2 - macOS

26 Feb 09:20

Choose a tag to compare

ez80asm macOS Version v1.2

Increased performance, is the main purpose of this release.

The code was ported to the AgDev compiler suite and numerous parts where rewritten for optimal performance. The assembler makes heavy use of the underlying filesystem, where IO calls to the MOS are costly. Additional steps have been taken to make the absolute minimum number of IO calls. Pearson hash tables are now in use, which are optimized for 8/16bit systems and parts of old ZDSII code, which were necessary before the AgDev standard library came into existence, have been removed completely.
The mosloader (the ez80asm.bin file) that loads the ez80asm.ldr payload to 0x40000 from the /mos moslet area has been rewritten (in ez80asm assembly) to allow it to be easily adaptable to other payloads.

Overall, this release shows a 30% performance increase compared to v1.0 (on actual hardware)

Additional features:

  • The '-x' commandline option shows job statistics

Additionally, the following bugs were fixed:

  • Labels aren't case sensitive (issue AgonPlatform#55)
  • MACROs fail to understand EQU (issue AgonPlatform#49) - in some cases where a - replacement argument is larger than the target, the assembler failed to recognize the defined EQU statement or crashed
  • Number literals containing operator symbols, like '+', '-' were not correctly parsed in all cases
  • String format error in release v1.1 (issue AgonPlatform#56)

Linux Version

10 Jan 03:04

Choose a tag to compare

ez80asm Linux Version

v1.0

Fixes:
comments are now allowed after .include / .incbin statements
0x number format had issues when the given value ended with a 'b'

Functionality:
Displaying total assembly time at completion
Implied displacement on direct and indirect operands - e.g. - LD A, (IX) now implies 0 as displacement, as does LEA IX, IX

Windows Version

10 Jan 03:02

Choose a tag to compare

ez80asm Windows Version

v1.0

Fixes:
comments are now allowed after .include / .incbin statements
0x number format had issues when the given value ended with a 'b'

Functionality:
Displaying total assembly time at completion
Implied displacement on direct and indirect operands - e.g. - LD A, (IX) now implies 0 as displacement, as does LEA IX, IX

macOS Version

10 Jan 02:57

Choose a tag to compare

ez80asm macOS Version

v1.0

  • Fixes:

comments are now allowed after .include / .incbin statements
0x number format had issues when the given value ended with a 'b'

  • Functionality:

Displaying total assembly time at completion
Implied displacement on direct and indirect operands - e.g. - LD A, (IX) now implies 0 as displacement, as does LEA IX, IX

Windows Version

08 Jul 04:50
baf17cf

Choose a tag to compare

ez80asm v0.101 Windows Version

New functionality:

Implement simple (non-nested) conditional assembly support - if/else/endif
Export global labels to file as a cmdline option (-s)
command line option to send output to different directory/filename
Performance rewrite of str2num routine
Fixes:

Macro names can now have 32 characters
A single whitespace character after a directive (db / dw / if) without any arguments didn't result in an error
'0bh' is now recognized as hex value '0b'

Linux Version

21 May 23:05
baf17cf

Choose a tag to compare

ez80asm v0.101 Linux Version

New functionality:

Implement simple (non-nested) conditional assembly support - if/else/endif
Export global labels to file as a cmdline option (-s)
command line option to send output to different directory/filename
Performance rewrite of str2num routine
Fixes:

Macro names can now have 32 characters
A single whitespace character after a directive (db / dw / if) without any arguments didn't result in an error
'0bh' is now recognized as hex value '0b'

macOS Version

06 Jul 10:21
e9a1d99

Choose a tag to compare

ez80asm macOS Version

v0.104
New functionality:

Multi-platform release for Agon, Linux and Windows
Fixes:

Resolved build errors on MS VC++
Makefile updated for static Linux releases