News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_roudoudou

Rasm Z80 assembler

Started by roudoudou, 08:58, 22 February 17

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

roudoudou

#25
update 2017.04.03 - v0.49
- bugfix multiple LZ48/LZ49 block in the same ORG zone

updated first post with new .zip


EDIT: i forgot to mentionned PRINT enhancement, it's now possible to format numeric ouput



MyVar=5*70


PRINT 'MyVar=',{INT}MyVar,' pouet pouet'

Avalaible tags: HEX, HEX2, HEX4, HEX8, BIN, BIN8, BIN16, BIN32, INT
My pronouns are RASM and ACE

roudoudou

update 2017.04.11 - v0.50
- bugfix ORG <adress>,$

- you may use unix relative paths using Windows so there is nothing to change when switching between both OS


updated first post with new release





My pronouns are RASM and ACE

roudoudou


quick update v0.51
- bugfix ORG analysis for cartridge generation
- bugfix LIMIT
- bugfix with local labels not found in imbricated macros


still working on exomizer integrated compression
My pronouns are RASM and ACE

roudoudou

new version in a few days (i cannot generate a windows version until a few days for various reasons...)

critical bug found: ADD (IY+n), SBC (IY+n) ADC (IY+n) CP (iy+n) are encoded like IX version  >:(

Golem report me that literal values syntax was not checked: LD A,5CCF (if you forget the : separator) won't warn but the CCF will be omit at the assembly. I fix this and add error messages.


There was no check for duplicate name between labels and variables, now it's ok

I was afraid to lose some speed so i add the same tree search for variables to speed up again the assembling (+20% faster)

See you soon

My pronouns are RASM and ACE

roudoudou

updated first post with executable of v052


documentation need a strong update now! Soon... :)
My pronouns are RASM and ACE

Sykobee (Briggsy)

I look forward one day (hopefully) to use this and its cartridge features!


One day...

roudoudou

#31
v0.53
- bugfix CHARSET <start>,<end>,<index>
- bugfix duplicate name check for alias
- new directives INCLZ4, INCZX7 to include and crunch a file with LZ4 or LZX7
- new directives LZX7, LZ4 to open a code section that will be crunched after assembly


Manuals and executables updated in the first post
My pronouns are RASM and ACE

roudoudou

#32
updated first post 2017.05.21 - v0.55

- bugfix local label internal building

- new directive INCEXO to include and crunch a file with Exomizer 2 (it's not faster than the original cruncher...)
- new directive LZEXO to open a code section that will be crunched after assembly
- documentation updated (now with quick access in the summary)
- licenses of third parties softwares are included in the windows executable and their respective source files
My pronouns are RASM and ACE

roudoudou


updated first post 2017.05.28 - v0.56


- bugfix contiguous ORG check
- bugfix when a macro is opened for declaration and never closed
- added while/wend check in pre-processing
- now you can call a macro with a local value using prefix tag {eval} (will be documented)
My pronouns are RASM and ACE

roudoudou

#34
updated first post 2017.07.20 - v0.57

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

documentation update in a few days
My pronouns are RASM and ACE

roudoudou

My pronouns are RASM and ACE

roudoudou

Quote from: Sykobee (Briggsy) on 15:23, 02 May 17
I look forward one day (hopefully) to use this and its cartridge features!

One day...


1 minute test  ;D



My pronouns are RASM and ACE

roudoudou

update 2017.08.02 - v0.58

- fixed INC SP encoding (was DEC SP opcode :picard:  )



:doh: :doh: :doh:
My pronouns are RASM and ACE

roudoudou

minor update 2017.09.15


some improvements in the documentation (that nobody reads anyway since everyone asks me obvious and documented questions.  :P :P :P [size=78%] [/size][/size][size=78%])[/size]



My pronouns are RASM and ACE

roudoudou

updated first post 2017.10.10 - v0.61

- bugfix var memory leak with data flow
- bugfix preprocessing with data flow not using string endchar
- bugfix var export

- new directive ASSERT
My pronouns are RASM and ACE

roudoudou




Hey, some news!


Originally Rasm was designed for the release of CRTC³ (cartridge mode, banking, ...)


As i plan to release a few things on CPC i will extend Rasm banking management to make snapshots (up to 576K)


Will it be usefull to allow user to set (a few) snapshot settings? (CRTC, registers?)


Not in my opinion as i'm used to do all initialisations with cartridge but...


Let me know :)

My pronouns are RASM and ACE

GUNHED

First of all: Thanks for the great work (both prods). It's good to see that this nice ASM project goes on.
Second, personally I don't care about Snapshot stuff and so on, as long as it runs on the native CPC / Plus machines.  :)  But maybe it can help some guys during development of their stuff.
http://futureos.de --> Get the revolutionary FutureOS (Update: 2023.11.30)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

roudoudou

As suggested to me by a few people:


- incbin will handle negative size (to include size-value binary file)
- nocode behaviour will change
- snapshot will include SYMB chunk (supported by ACE emulator) on demand


SYMB chunk in snapshot:
1 byte : symbol name size

n byte(s) : symbol name (without 0 terminator as we know the size)
6 bytes : reserved
2 bytes : with a shitty big endian adress for the symbol

this struct repeated until the chunk size is reached
My pronouns are RASM and ACE

CloudStrife

Quote from: roudoudou on 16:16, 30 November 17
2 bytes : with a shitty big endianusing the only logical endianness adress for the symbol

:)

pelrun

Everything looks awesome, except... instead of '&','$' or '0x', it only supports '#' for hex values!? What?  :picard2:


roudoudou

Quote from: pelrun on 08:29, 02 December 17
Everything looks awesome, except... instead of '&','$' or '0x', it only supports '#' for hex values!? What?  :picard2:


$ is used since 30 years by (almost?) all Z80 assemblers for current assembling adress.


What assembler do you use?  :o


I may support 0x for hexa but if you want C style hex value you may admit the & stand for AND a nothing else. Be coherent  ;D
My pronouns are RASM and ACE

pelrun

Yes, $ *by itself* is the current address. And & *by itself* is 'AND'. As prefixes for numbers they are distinct, and can be readily parsed as such.


But I see you've rolled your own lexer and parser, so I suppose you can be given a little slack for not being able to support everything. But it's still a sour note for me.

roudoudou

Quote from: pelrun on 13:17, 02 December 17
Yes, $ *by itself* is the current address. And & *by itself* is 'AND'. As prefixes for numbers they are distinct, and can be readily parsed as such.


But I see you've rolled your own lexer and parser, so I suppose you can be given a little slack for not being able to support everything. But it's still a sour note for me.


'0x' prefix for hex value will be available in the next release, so the syntax will be completely consistent. that was not a big deal to add this but i wont add '&' prefix for the same reason.





My pronouns are RASM and ACE

pelrun

I don't actually care about '0x', I just included it for completeness. I don't like # at all, it's weird and rasm specific, but then it's not my assembler or my choice to make.

roudoudou


That's absolutely not specific to Rasm

# is prefix for hexa in MAXAM and DAMS syntax since 1985  ;D

Those who do not integrate this syntax are curious

Both MAXAM and DAMS are Amstrad CPC assemblers

Rasm was designed as a cool transition from old assemblers. That's why there is also a maxam compatibility flags for very old sources with wrong operator priority everywhere

My pronouns are RASM and ACE

Powered by SMFPacks Menu Editor Mod