Jul 242017
 

Roudoudou released a new version of his Zilog Z80 cross-assembler called Rasm. Of course it supports all the undocumented opcodes, but beside of that, you can use conditional macros, a floating point engine and several mathmatical functions. A special feature is the possibility to create a cartridge for the Amstrad Plus or the Amstrad GX4000 directly by assembling your source code and you can automatically add an AMSDOS header to your binaries. It also supports crunched sections (the coded will be loaded and crunched on the fly) for LZ48, LZ49, LZ4, ZX7, and Exomizer. It has also a compatibility option to support the widely in the Amstrad CPC used MAXAM syntax. You can download and discuss it at the CPCWiki forums and at the end of this news.

Changes in v0.57

  • more flexible preprocessor with macro parameters
  • new label prefix tag {BANK} to get the bank where is located a label

 

Mar 202017
 

Roudoudou released a brand new Zilog Z80 cross-assembler that targets the Amstrad CPC. Of course it supports all the undocumented opcodes, but beside of that, you can use conditional macros, a floating point engine and several mathmatical functions. A special feature is the possibility to create a cartridge for the Amstrad Plus or the Amstrad GX4000 directly by assembling your source code and you can automatically add an AMSDOS header to your binaries. However, it currently does not support the Maxam assembly syntax.
The latest version contains a lot of bugfixes (local labels, macro, label tree, alias, …) and a documentation in french and english. You can download and discuss it at the CPCWiki forums and at the end of this news.

Update 21.03.2017
Roudoudou released a new version v0.42 with the following changes:

  • allow old style label declaration with a starting dot
  • allow useless A, register form with ADC, ADD, SBC, SUB
  • extended syntax for 8bits index registers
  • documentation FR/EN updated

Update 31.03.2017 – Rasm v0.48

  • bugfix of label calculations when placed after a LZ48/LZ49 block (there is a buf left with more than one LZ section in the same ORG)
  • directives SWITCH/CASE/DEFAULT/ENDSWITCH added
Rasm - Z80 assembler
Rasm - Z80 assembler
rasm_v040.zip
Version: v0.40
234.8 KiB
46 Downloads
Details
Rasm v0.42 - Z80 assembler
Rasm v0.42 - Z80 assembler
rasm_v042.zip
Version: v0.42
237.4 KiB
43 Downloads
Details
Dec 312016
 

Roudoudou worked on a compressor / decompressor which uses the LZ48 / LZ49 compression algorithm on the Amstrad CPC and released his work in the CPCWiki forums. The compressor is inspired by the LZ4 compression algorithm of Yann Collet and the modifications fits well to the Z80 CPU of the Amstrad CPC. The advantage of this compression method is, that the decompression code is very small (83 bytes) and very fast. The disadvatage is that there are other compressors which feature a better compression ratio, but require more memory and more time for decompression as well.
You can get more information about the modified algorithm and download the assembly source from the CPCWiki forums. You can also find a version for SDCC / CPCtelera and binary files for Windows there.

LZ48/49 (de)compressor
LZ48/49 (de)compressor
LZ48-49-de-compressor.zip
16.5 KiB
71 Downloads
Details
Dec 312016
 

Docent wrote a decompressor the the LZ4 compression algorithm, which can be used on any Zilog Z80 CPU. The focus of the LZ4 compression algorithm is a fast decompression speed and a small decompression routine. The size of Docents version of the decompression routine is 219 bytes (raw decompression routine under 110 bytes) and it supports the legacy and the newest LZ4 format (except for framing).
You can download the latest version of the decompression code here or at the end of this news.

Features

  • decompresses files packed by lz4 command line packer and raw lz4 compressed data
  • supports legacy and the newest lz4 file format (except framing)
  • fully relocatable code
  • total size of 219 bytes size with raw decompression routine below 110 bytes
  • cpc firmware friendly (no alternate register set used)
  • ROM friendly – no self modifying code or additional memory required
  • simple interface – only start of file in memory and target memory destination required

 

LZ4 Decompressor
LZ4 Decompressor
LZ4-Decompressor.zip
7.0 KiB
45 Downloads
Details
Aug 232016
 

Madram, Drill and Hicks have released a new version of ORGAMS – an assembler for Z80 assembly language, which runs on the Amstrad CPC. It is a ROM based assembler, so you should use it with a ROM expansion like the X-MEM board by TotO or the Amstrad WiFi. It also features a very detailed english and a french user guide. You can download the latest version from the CPCWiki forums.

ORGAMS assembler

New features

  • Trace: Source visualization while debugging (imperfect, Orgams can be lost with conditional or repeated blocs)
  • Trace: Memory visualization while debugging
  • Trace: CONTROL UP/DOWN for faster navigation
  • Monitor: Binary display with ‘?’ command
  • Monitor: Display restored zone when returning to BASIC
  • Assembler: Can assemble up to #BF80, and in #C000-#FFFF page
  • Editor: Free cursor
  • Editor: TAB to repeat previous search (text or label)
  • Editor: ESC to stop current search (only works with CONTROL F)
  • Editor: CONTROL-ESPACE put/remove BRK
  • Editor: CONTROL-C to display CATalogue
  • Editor: Can join lines (DEL at first column). Corollary : ‘DEL’ after ‘RETURN’ cancels an unexpected split
  • Editor: Use ‘&’ for hexa, like in BASIC and MAXAM.
  • Editor: Allow (IX) as shortcut for (IX+0)
  • General: Use RAM from very last bank (&FF) to alleviate conflict with 256k RAM-DISC.
  • General: Extension and Monogams ROMs can be burned everywhere (i.e. ROM 1 to 127)
  • General: Allow |o,”source” (no need to write “.o”)

Bugfixes

  • Bloc repetition was corrupted when corresponding source was overlapping 2 banks
  • Division with MSB set in divisor (e.g. &240/&C0) was corrupted
  • Sign was lost with sub-expression (e.g. -1/[1/1] or -1 mod [4 mod 5])
  • Negative values for FILL, ORG and repetitions raise error.
  • Bad expression for repetitions (e.g. undefined label) raise error.
  • Proper binary save from 9800-HIMEM zone
  • Returning to basic won’t reset 9800-HIMEM zone anymore
  • ‘ORG &100’ now correctly parsed (not as ‘OR G AND 100’)
  • Assembling in RSX workzone (e.g. A6FC+) won’t corrupt firmware (Orgams-wise) anymore
  • Reset CRTC in RESTORE
  • Mute AY in BRK/RESTORE
  • At first invocation of BRK/Monogams, select RAM by default (lower & upper)
  • Robuster memory detection
  • Fix stack going down at each assemble / editor access.
  • Numeric pad is active when invoking |m
  • Block markers properly corrected when importing file
  • LD B,(IX) doesn’t crash anymore
  • LD H,IXH doesn’t crash anymore
  • Miscellaneous search bugs (CONTROL F) corrected.

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close