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.

pelrun

#50
You might want to look at MAXAM again, all the code I can find, including IN THE MANUALS uses &.

DAMS, I have no knowledge of.


In any case, this is completely moot. I voiced my opinion, you said you won't change it, there's nothing left to discuss.

roudoudou

#51
Quote from: pelrun on 16:42, 02 December 17
You might want to look at MAXAM again, all the code I can find, including IN THE MANUALS uses &.

DAMS, I have no knowledge of.


In any case, this is completely moot. I voiced my opinion, you said you won't change it, there's nothing left to discuss.


Page 142 of MAXAM manual -> Hexadecimal numbers by "&" or "#"

So that not weird to choose '#' for hex values, that's clever to support the common hex syntax of the two oldest and widely used Z80 assemblers  :P
use RASM, the best (and fastest) assembler ever made

Sykobee (Briggsy)

I remember '&' being the standard hex prefix back in the day, far more than #. I'd have to double check.
This may be a UK/not-UK thing.


Supporting 0x is pretty nice IMO, as rasm is modern.

roudoudou

#53
First post updated with binary and documentation

update 2017.12.03 - v0.63

- snapshot generation (with SYMB chunk support for ACE)
- new directive BANKSET to work with 4 consecutives pages (only in snapshot mode)
- MEND alias for ENDM (and vice versa)
- Added '0x' prefix for hexadecimal values
- Cartridge generation is supposed to work with Rasm on big-endian CPU (like PowerPC)
- INCBIN directive support negative value for "size to read" in order to read a size relative to fullsize
- BANK directive may be used without parameter to open a new memory space
- bugfix UNTIL condition test

Documentation lightly updated

On v0.64 i will upgrade snapshot management and documentation to detail the workflow

Sykobee: In France there was a wellknown magazine (Amstrad 100%) with assembly initiation using DAMS so i guess that's why many french guys are used to # prefix. The logon system had a section for them where they release DAMS sources also.
use RASM, the best (and fastest) assembler ever made

roudoudou

first post updated with v0.64

(mostly snapshot related evolutions and fix)

- bugfix SYMB chunk size
- added optionnal var export in snapshot SYMB chunk
- improve bankset switch control (do not mix bank & bankset of the same pages)
- INCBIN handle negative offset to seek relative to the end of file
- INCBIN special option to disable overwrite control
- Documentation updated
use RASM, the best (and fastest) assembler ever made

GUNHED

Quote from: roudoudou on 08:23, 05 December 17
first post updated with v0.64


Can't wait for v1.28  :P  Thank's for the update, I will post in other-language forums!  :)
http://futureos.de --> Get the revolutionary FutureOS (Update: 2022.03.09)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

roudoudou

v0.65 is coming (need moar testing)


- new prefix {PAGE} for labels, in order to retrieve gate array banking value (useful in snapshot mode) #C0,#C4,#C5,...


Maybe it can be interresting to have a {PAGESET} prefix when banking 64K? #C2,#CA,#D2,...


- SAVE may be used to save file in a (new) DSK. I have to work on a update mode


SAVE"filename",begin,size ; raw export
SAVE"filename",begin,size,AMSDOS ; export with amsdos header
SAVE"filename",begin,size,DSK,"dskname" ; create a dsk and save filename on it
SAVE"filename",begin,size,DSK,"dskname",B ; side B select to save filename
SAVE"filename",begin,size,DSK ; save filename on last deckared DSK and last side used (rasm can handle as many DSK as you want in the same time)

SAVE"filename",begin,size,DSK,A ; current DSK, back to side A
- "checkmode" option to assemble without writing file(s)

- moar comprehensive error message when using illegal register combination


- moar compact splash screen


Need to update documentation too




use RASM, the best (and fastest) assembler ever made

roudoudou

#57
Update v0.65


- snapshot is initialised with standard CRTC values, all audio channels OFF, all inks to deep blue except ink 1 to bright yellow
- new directives SETCRTC and SETCPC to select the CRTC and CPC model with snapshots

- new tag {PAGE} before a label to get the gate array banking value for the bank of a label (ex: #C4 for a label in bank 4)
- new tag {PAGESET} before a label to get the gate array banking value for the bankset of a label (ex: #C2 for a label in bankset 1 or bank 4,5,6,7)
- new variable ASSEMBLER_RASM (set to 1) in order to have specific rasm code

- SAVE may be used to save file in a (new) DSK. I have to work on a update mode
- "checkmode" option to assemble without writing file(s)
- moar comprehensive error message when using illegal register combination
- moar compact splash screen
- documentation updated
use RASM, the best (and fastest) assembler ever made

roudoudou

updated first post with v0.66


- new directives IFDEF, IFNDEF to test label, variable or alias existence

use RASM, the best (and fastest) assembler ever made

Golem13

Always at the top.

Thank you Roudoudou.

roudoudou

updated first post 2017.12.21 - v0.67
- bugfix buffer overflow with long filenames for export
- export breakpoint in snapshot (unofficial Winape chunk)

- new directive BREAKPOINT

Labels begining with BRK or @BRK for local labels will be exported as breakpoints in the snapshots


buildsna
bankset 0
run 0


nop
breakpoint
ld hl,#1234
breakpoint
ld hl,#1234
repeat 2
nop
@brktest
ld hl,#1234
nop
rend
brknext
ld hl,#1234
nop

use RASM, the best (and fastest) assembler ever made

CloudStrife

(at least in ACE it's official :))

roudoudou

Quote from: CloudStrife on 11:55, 22 December 17
(at least in ACE it's official :) )

It's a great news because we will have at least 3 emulators with snapshot breakpoint support as Lone annonced next release of Sugarbox will do.

Kevin? You know what to do  ;D
use RASM, the best (and fastest) assembler ever made

CloudStrife

Quote from: CloudStrife on 11:55, 22 December 17
(at least in ACE it's official :) )

Need to specify: by the chunk descripted here:
http://www.cpcwiki.eu/index.php/Snapshot#BRKC_Chunk_.28ACE.29
(not the same as WinAPE and more evolved)

roudoudou

Quote from: CloudStrife on 14:56, 26 December 17
Need to specify: by the chunk descripted here:
http://www.cpcwiki.eu/index.php/Snapshot#BRKC_Chunk_.28ACE.29
(not the same as WinAPE and more evolved)

ok, not the same
will add the support for this one, thanks!
use RASM, the best (and fastest) assembler ever made

Lone

Hello,


I found (with the help of CPPCheck, that run on the wrong folder  ;D ) some potential bugs in RASM (version 0.67) :


- rasm_v067.c line 1589 : Message: Returning/dereferencing 'subchunk' after it is deallocated / released
- rasm_v067.c line 1594 : Common realloc mistake: 'subchunk' nulled but not freed upon failure
- rasm_v067.c line 3308 : Memory leak: data
- rasm_v067.c line 6782, 6783, 6807, 6831 : Uninitialized variable: mypc


By the way, any plan for a new release soon ?






roudoudou

Thanks! I will take a look
I fix some (minor) bugs this month so...
Maybe a release soon
use RASM, the best (and fastest) assembler ever made

roudoudou

New release, nothing really significant for users, except...

...Rasm does not warn anymore if there is an include of a missing file in a disabled code section

I finally manage to handle the case without loss of speed nor heavy modifications
use RASM, the best (and fastest) assembler ever made

Targhan

Targhan/Arkos

Arkos Tracker 2.0.1 now released! - Follow the news on Twitter!
Disark - A cross-platform Z80 disassembler/source converter
FDC Tool 1.1 - Read Amsdos files without the system

Imperial Mahjong
Orion Prime

roudoudou

documentation lightly updated (there is a glitch in the english index table, don't know how to remove it but it's still usable)
use RASM, the best (and fastest) assembler ever made

roudoudou

#70
Valentine's release v0.69
- added $ prefix for hex values
- added 0b prefix for binary values
- added shifting operators << and >>
- EDSK update/generation improvements (make backups before use!)
use RASM, the best (and fastest) assembler ever made

GUNHED

Thanks for the update! Yay!  :) :) :)  Just un idea, if future can you rename "manual" to "RASM_manual" or similar, after a while it's confusing to have multiple "manual" files in disc.  :)
http://futureos.de --> Get the revolutionary FutureOS (Update: 2022.03.09)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Updated: 2021.12.26)

roudoudou

Quote from: GUNHED on 15:41, 15 February 18
Thanks for the update! Yay!  :) :) :)  Just un idea, if future can you rename "manual" to "RASM_manual" or similar, after a while it's confusing to have multiple "manual" files in disc.  :)
Sure
Will do it for next release
use RASM, the best (and fastest) assembler ever made

Ast

Quote from: roudoudou on 13:14, 15 February 18
Valentine's release v0.69
- added $ prefix for hex values
- added 0xb prefix for binary values
- added shifting operators << and >>
- EDSK update/generation improvements (make backups before use!)
Ah ah ah! Petit coquinou !
What a strange version name (0.69) for valentine ´s day !
What a joker you are!
MacDeath will be happy about that 😋
_____________________

Ast/iMP4CT. "By the power of Grayskull, i've the power"

http://amstradplus.forumforever.com/index.php
http://impdos.wikidot.com/
http://impdraw.wikidot.com/

All friends are welcome !

roudoudou

a quick update cause of shifting operator >> did not work...
now shrinkler sources can compile
use RASM, the best (and fastest) assembler ever made

Powered by SMFPacks Menu Editor Mod