Author Topic: Rasm Z80 assembler v1.2 [update 2020.07.18]  (Read 55211 times)

0 Members and 1 Guest are viewing this topic.

Offline reidrac

  • Supporter
  • 6128 Plus
  • *
  • Posts: 905
  • Country: gb
  • Trying to gamedev!
    • index.php?action=treasury
    • usebox.net
  • Liked: 1667
  • Likes Given: 896
Re: Rasm Z80 assembler v0.129 [update 2020.06.08]
« Reply #250 on: 08:27, 13 June 20 »
Thus, make clean deletes .asm files and they are excluded from source code history.
Currently I use .rasm for assembly source to be compiled by RASM, vs .s for assembly source to be compiled by sdasz80.

Use .z80 for example (I prefer it because I can set specific syntax highlighting for Z80).
Released The Return of Traxtor, Golden Tail, Magica, The Dawn of Kernel, Kitsune`s Curse and Brick Rick for the CPC.

If you like my games and want to show some appreciation, you can always buy me a coffee.

Offline cpcitor

  • The user previously known as FindYWay
  • CPC6128
  • ****
  • Posts: 298
  • Country: fr
  • My heart still runs on traditional CPC.
    • My code for the CPC.
  • Liked: 148
  • Likes Given: 370
Re: Rasm Z80 assembler v0.129 [update 2020.06.08]
« Reply #251 on: 08:38, 13 June 20 »
Well, in perfect world maybe. But in real life Makefiles never work out of the box and you always have to dig inside, and to moan because it is over-complicated for nothing.  :P

Don't blame friends that help you

You're conflating. Variety of build environments is not Make's fault.

Complaining like this is like blaming a friend that helps you because they don't have a solution for every problem of your life.

Different build systems for different kind of programs.

Programs with tons of dependencies on modern features often use different, higher level tools, because in those cases, pure makefile-based workflow cannot simply express the needs. Perhaps you have suffered some program where author wrote a big makefile in a situation where it was not the simplest solution.

Simple program, simple makefile.

rasm is simple to build, it uses basic file APIs along with standard input and output. It's typically a program perfectly suited for a simple makefile.

A simple makefile is where people are looking first.

When getting source code, people look at file names for hints.
Makefile is a traditional entry point.

A simple makefile is machine-executable documentation.

Programs need it too. IDE, packaging infrastructures, automated quality assurance tools like travis need machine-readable instructions. A two-line Makefile eases integration and avoids bugs due to different contexts using different build options.

No makefile feels like the author is too lazy, doesn't know how to write a two-line makefile.

Simple and convenient solution that always works

For the user, typing make is shorter than other options.

Even make -f Makefile.other is only a few more keystrokes using Tab key.

Such directory layout is very clear, shows that author is seasoned about portability, with default Makefile for gcc-compatible build environment and took care of making things easy for users of a number of platforms:

Code: [Select]
Makefile
Makefile.win-msvs
Makefile.dos-watcom
Makefile.morphos-gcc
Makefile.macos
source.c

In the case of RASM it *will* work out-of-the-box.
« Last Edit: 08:51, 13 June 20 by cpcitor »
Had a CPC since 1985, currently software dev professional, including embedded systems.

I made the first CPC cross-dev environment that auto-installs C compiler and tools: cpc-dev-tool-chain: a portable toolchain for C/ASM development targetting CPC.

Offline pelrun

  • Supporter
  • 6128 Plus
  • *
  • Posts: 661
  • Country: au
    • index.php?action=treasury
  • Liked: 349
  • Likes Given: 217
Re: Rasm Z80 assembler v0.129 [update 2020.06.08]
« Reply #252 on: 09:28, 13 June 20 »
I wasn't going to push the point quite that hard. In fact I forked RASM so I could write the Makefile myself but I was beaten to the punch. Cheers!

Offline reidrac

  • Supporter
  • 6128 Plus
  • *
  • Posts: 905
  • Country: gb
  • Trying to gamedev!
    • index.php?action=treasury
    • usebox.net
  • Liked: 1667
  • Likes Given: 896
Re: Rasm Z80 assembler v0.129 [update 2020.06.08]
« Reply #253 on: 10:17, 13 June 20 »
Is not the end of the world, really.

I also write my own Makefile for rasm, for example for the rasm version I used in Kitsune's Curse:
Code: [Select]
all: rasm

rasm: rasm_v0119.c
gcc -s -O2 $< -o $@ -lm -lrt -march=native

clean:
rm -f rasm

.PHONY: all clean

I use GNU Make, but you can make it generic enough.
Released The Return of Traxtor, Golden Tail, Magica, The Dawn of Kernel, Kitsune`s Curse and Brick Rick for the CPC.

If you like my games and want to show some appreciation, you can always buy me a coffee.

Offline cpcitor

  • The user previously known as FindYWay
  • CPC6128
  • ****
  • Posts: 298
  • Country: fr
  • My heart still runs on traditional CPC.
    • My code for the CPC.
  • Liked: 148
  • Likes Given: 370
Re: Rasm Z80 assembler v0.129 [update 2020.06.08]
« Reply #254 on: 11:26, 13 June 20 »
Is not the end of the world, really.

I also write my own Makefile for rasm, for example for the rasm version I used in Kitsune's Curse:

You makefile is nice and complete with usual patterns.

I went straight to the point when integrating RASM in cpc-dev-tool-chain: after automatically fetching and unpacking rasm source, cpc-dev-tool-chain build system copies a strictly two lines makefile into the source directory and calls it.
Had a CPC since 1985, currently software dev professional, including embedded systems.

I made the first CPC cross-dev environment that auto-installs C compiler and tools: cpc-dev-tool-chain: a portable toolchain for C/ASM development targetting CPC.

Online roudoudou

  • 6128 Plus
  • ******
  • Posts: 883
  • Country: fr
    • urban exploration
  • Liked: 1177
  • Likes Given: 725
use RASM, the best assembler ever made :p

I will survive

Online roudoudou

  • 6128 Plus
  • ******
  • Posts: 883
  • Country: fr
    • urban exploration
  • Liked: 1177
  • Likes Given: 725
Re: Rasm Z80 assembler v1.2 [update 2020.07.18]
« Reply #256 on: 10:53, 18 July 20 »
https://github.com/EdouardBERGE/rasm/releases/tag/v1.2
release v1.2
  • nightly bugfix
  • bugfix memory leaks and error management with includes in embedded rasm
  • bugfix INCLZ4 directive
  • many new autotests for include and crunch
  • RUN directive do not force PPI configuration to #C0 if there is no second argument
  • produce zero size file when there is no breakpoint
  • new command line option -amper in order to use ampersand for hex values
  • new directive BREAKPOINT_Z80 to produce #ED,#FF opcode
  • new directives beginings GETTICK, DURATION (only a few instructions supported)
  • new ROM mode to automatically save multiple numbered ROM files
  • ability to split 16 bits registers in macro declaration (example: hl.low or {register}.high )
documentation will be updated later
use RASM, the best assembler ever made :p

I will survive