Author Topic: Rasm Z80 assembler v1.3 [update 2020.11.24]  (Read 57346 times)

0 Members and 2 Guests are viewing this topic.

Offline reidrac

  • Supporter
  • 6128 Plus
  • *
  • Posts: 909
  • Country: gb
  • Trying to gamedev!
    • index.php?action=treasury
    • usebox.net
  • Liked: 1670
  • Likes Given: 906
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: 299
  • Country: fr
  • My heart still runs on traditional CPC.
    • My code for the CPC.
  • Liked: 148
  • Likes Given: 371
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: 662
  • Country: au
    • index.php?action=treasury
  • Liked: 349
  • Likes Given: 225
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: 909
  • Country: gb
  • Trying to gamedev!
    • index.php?action=treasury
    • usebox.net
  • Liked: 1670
  • Likes Given: 906
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: 299
  • Country: fr
  • My heart still runs on traditional CPC.
    • My code for the CPC.
  • Liked: 148
  • Likes Given: 371
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.

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 890
  • Country: fr
    • urban exploration
  • Liked: 1189
  • Likes Given: 736
use RASM, the best assembler ever made :p

I will survive

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 890
  • Country: fr
    • urban exploration
  • Liked: 1189
  • Likes Given: 736
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

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 890
  • Country: fr
    • urban exploration
  • Liked: 1189
  • Likes Given: 736
Re: Rasm Z80 assembler v1.3 [update 2020.11.24]
« Reply #257 on: 13:26, 24 November 20 »
new release v1.3
https://github.com/EdouardBERGE/rasm/releases/tag/v1.3
  • extended cartridge support
  • new directive LZSA1, LZSA2 for crunched code sections
  • new directives INCLZSA1 and INCLZSA2 for binary import and LZSA crunching
  • new directives XORMEM and SUMMEM to generate checksum of a memory area
  • new directive TIMESTAMP to output date/time
  • new TAPE option for SAVE directive
  • new DMA import options with INCBIN directive (new checks & warnings)
  • new enhanced instructions LD IX/IY,BC/DE & LD BC/DE,IX/IY
  • new tag {SLOT} for extended cartridge management
  • new suffix .HIGH and .LOW to split 16bits register in macro definition
  • new option -msep to specify separator for labels inside modules
  • new option -amper to use ampersand for hex values
  • directive BRK now generates #ED,#FF opcode
  • bugfix byte order for Microsoft real format
  • bugfix DSK header with nightly build
  • bugfix 16bits PCM wav import
  • do not warn for missing file with INCLUDE in disabled condition
  • do not export struct definition with symbols
  • many warnings removed, cleanup, some draft for future functionalities
use RASM, the best assembler ever made :p

I will survive

Offline GUNHED

  • 6128 Plus
  • ******
  • Posts: 2.067
  • Country: de
  • Reincarnation of TFM
    • FutureOS - The quickest OS for the CPC and Plus
  • Liked: 936
  • Likes Given: 2328
Re: Rasm Z80 assembler v1.3 [update 2020.11.24]
« Reply #258 on: 16:40, 24 November 20 »
Great job done!


Hint to new users: You find the documentation inside the source code.
« Last Edit: 16:43, 24 November 20 by GUNHED »
http://futureos.de --> Get the revolutionary FutureOS (Recent update: 2019.08.07)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2019.08.14)

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 890
  • Country: fr
    • urban exploration
  • Liked: 1189
  • Likes Given: 736
Re: Rasm Z80 assembler v1.3 [update 2020.11.24]
« Reply #259 on: 16:45, 24 November 20 »
Hint to new users: You find the documentation inside the source code.
always get the latest PDF on master branch because documentation is never up to date when i'm doing a release !
use RASM, the best assembler ever made :p

I will survive

Offline GUNHED

  • 6128 Plus
  • ******
  • Posts: 2.067
  • Country: de
  • Reincarnation of TFM
    • FutureOS - The quickest OS for the CPC and Plus
  • Liked: 936
  • Likes Given: 2328
Re: Rasm Z80 assembler v1.3 [update 2020.11.24]
« Reply #260 on: 16:50, 24 November 20 »
Writing documentation suxx. (I know that from own projects). But nevertheless we all need it. Thanks for this, it's made in an "easy to be understood" way.  :) :)
http://futureos.de --> Get the revolutionary FutureOS (Recent update: 2019.08.07)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2019.08.14)

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 890
  • Country: fr
    • urban exploration
  • Liked: 1189
  • Likes Given: 736
Re: Rasm Z80 assembler v1.3 [update 2020.11.24]
« Reply #261 on: 16:56, 24 November 20 »
Writing documentation suxx. (I know that from own projects). But nevertheless we all need it. Thanks for this, it's made in an "easy to be understood" way.  :) :)
anyway i'm always ok to answer any question by mail  ;D
use RASM, the best assembler ever made :p

I will survive