pouët.net

RASM by Flower Corp.
[nfo]
screenshot added by roudoudou on 2017-08-11 13:22:17
platform :
type :
release date : august 2017
  • 10
  • 8
  • 0
popularity : 64%
 64%
  • 0.56
alltime top: #7910
added on the 2017-08-11 13:22:16 by roudoudou roudoudou

popularity helper

increase the popularity of this prod by spreading this URL:

or via: facebook twitter pinterest tumblr bluesky threads

comments

Yes! Another Z80 assembler! :P

- DAMN fast assembling
- integrated crunched sections (LZ48/LZ49/LZ4/ZX7/Exomizer) + load&crunch on the fly
- cartridge generation, amsdos header
- ORG checking, unlimited memory workspaces where labels are shared
- ALL undocumented instructions
- conditionnal macro, unlimited & embeded loops with local labels, switch/case
- floating point engine, mathematical functions, ...
- MAXAM compatibility option
- English & French documentation
- Uninterrupted support

official thread for new releases http://www.cpcwiki.eu/forum/programming/rasm-z80-assembler-in-beta/
added on the 2017-08-11 13:23:21 by roudoudou roudoudou
windows executable + sources + documentation included in the archive
read the documentation to compile with Linux (as easy as with windows)
added on the 2017-08-11 13:45:45 by roudoudou roudoudou
A good idea to distribute source. Why fuck to bother? xD

How it reated to ZX Enhanced?
added on the 2017-08-11 14:55:25 by g0blinish g0blinish
@goblinish: "let's check all platforms that look like they have a z80 inside?"

@roud: no gameboy support? :p
gameboy does not have a Z80 (coquinou)
added on the 2017-08-11 20:26:00 by roudoudou roudoudou
@roudoudou: it's a hybrid of 8080 and z80.
added on the 2017-08-11 20:29:42 by visy visy
documentation is king :)
rulez added on the 2017-08-11 20:44:34 by cxw cxw
nice :) can't see from the docs how to declare a local label inside a macro?
rulez added on the 2017-08-11 20:48:09 by Fell Fell
@Fell: English doc page 8 & 9 -> prefix the label with @
added on the 2017-08-11 21:01:52 by roudoudou roudoudou
ah cool, thanks :)
added on the 2017-08-11 23:58:27 by Fell Fell
PulkoMandy. for spg format is good idea to suppport banks.
added on the 2017-08-12 04:42:23 by g0blinish g0blinish
More demotools for the Z80!
rulez added on the 2017-08-12 08:38:42 by fra fra
@goblinish: i do not know about SPG format, neither MSX cartridge. Do not hesitate to send me informations as i may add them to RASM in a future release
added on the 2017-08-12 09:56:27 by roudoudou roudoudou
any win32 build?
added on the 2017-08-12 11:27:47 by g0blinish g0blinish
my last 32 bits windows machine broke down last month...
added on the 2017-08-12 13:10:59 by roudoudou roudoudou
lol:
Code: Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\minilib.h: 192 missing prototype for _strdup Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\minilib.h: 192 Missing prototype for '_strdup' Error c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\minilib.h: 192 operands of = have illegal types 'pointer to char' and 'int' Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\minilib.h: 212 missing prototype for _strdup Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\minilib.h: 212 Missing prototype for '_strdup' Error c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\minilib.h: 212 operands of = have illegal types 'pointer to char' and 'int' Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\minilib.h: 295 missing prototype for strnlen Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\minilib.h: 295 Missing prototype for 'strnlen' Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\minilib.h: 632 missing prototype for strnlen Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\minilib.h: 632 Missing prototype for 'strnlen' Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\minilib.h: 671 missing prototype for strnlen Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\minilib.h: 671 Missing prototype for 'strnlen' Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\minilib.h: 836 missing prototype for _fileno Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\minilib.h: 836 Missing prototype for '_fileno' Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\minilib.h: 899 missing prototype for strnlen Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\minilib.h: 899 Missing prototype for 'strnlen' Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\minilib.h: 1094 missing prototype for strnlen Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\minilib.h: 1094 Missing prototype for 'strnlen' Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\minilib.h: 1108 Missing prototype for 'strnlen' Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\minilib.h: 1135 missing prototype for strnlen Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\minilib.h: 1135 Missing prototype for 'strnlen' Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\lz4.h: 792 shift by 32 is undefined Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\lz4.h: 792 shift by 32 is undefined Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\lz4.h: 881 overflow in constant expression Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\lz4.h: 921 assignment of pointer to unsigned char to pointer to unsigned char Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\exomizer.h: 3189 missing prototype for _vsnprintf Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\exomizer.h: 3189 Missing prototype for '_vsnprintf' Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\exomizer.h: 3287 reference to 'volatile int' elided Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\exomizer.h: 3287 Statement has no effect Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\exomizer.h: 3500 inconsistent linkage for 'matches_calc' previously declared at c:\lcc\projects\rasm\exomizer.h 3274 Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\exomizer.h: 4886 missing prototype for strdup Warning c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\exomizer.h: 4886 Missing prototype for 'strdup' Error c:\lcc\projects\rasm\rasm.c: c:\lcc\projects\rasm\exomizer.h: 4886 operands of = have illegal types 'pointer to char' and 'int' Warning c:\lcc\projects\rasm\rasm.c: 1550 missing prototype for _snprintf Warning c:\lcc\projects\rasm\rasm.c: 1550 Missing prototype for '_snprintf' Warning c:\lcc\projects\rasm\rasm.c: 1559 missing prototype for _snprintf Warning c:\lcc\projects\rasm\rasm.c: 1559 Missing prototype for '_snprintf' Warning c:\lcc\projects\rasm\rasm.c: 2167 missing prototype for _strdup Warning c:\lcc\projects\rasm\rasm.c: 2167 Missing prototype for '_strdup' Error c:\lcc\projects\rasm\rasm.c: 2167 operands of = have illegal types 'pointer to char' and 'int' Warning c:\lcc\projects\rasm\rasm.c: 2204 missing prototype for _strdup Warning c:\lcc\projects\rasm\rasm.c: 2204 Missing prototype for '_strdup' Error c:\lcc\projects\rasm\rasm.c: 2204 operands of = have illegal types 'pointer to char' and 'int' Warning c:\lcc\projects\rasm\rasm.c: 2467 missing prototype for _snprintf Warning c:\lcc\projects\rasm\rasm.c: 2467 Missing prototype for '_snprintf' Warning c:\lcc\projects\rasm\rasm.c: 2491 missing prototype for _snprintf Warning c:\lcc\projects\rasm\rasm.c: 2491 Missing prototype for '_snprintf' Warning c:\lcc\projects\rasm\rasm.c: 2519 missing prototype for _snprintf Warning c:\lcc\projects\rasm\rasm.c: 2519 Missing prototype for '_snprintf' Warning c:\lcc\projects\rasm\rasm.c: 2618 missing prototype for _strdup Warning c:\lcc\projects\rasm\rasm.c: 2618 Missing prototype for '_strdup' Error c:\lcc\projects\rasm\rasm.c: 2618 operands of = have illegal types 'pointer to char' and 'int' Warning c:\lcc\projects\rasm\rasm.c: 2761 overflow in constant expression Warning c:\lcc\projects\rasm\rasm.c: 5585 missing prototype for _strdup Warning c:\lcc\projects\rasm\rasm.c: 5585 Missing prototype for '_strdup' Error c:\lcc\projects\rasm\rasm.c: 5585 operands of = have illegal types 'pointer to char' and 'int' Warning c:\lcc\projects\rasm\rasm.c: 5590 missing prototype for _snprintf Warning c:\lcc\projects\rasm\rasm.c: 5590 Missing prototype for '_snprintf' Warning c:\lcc\projects\rasm\rasm.c: 5636 missing prototype for _strdup Warning c:\lcc\projects\rasm\rasm.c: 5636 Missing prototype for '_strdup' Error c:\lcc\projects\rasm\rasm.c: 5636 operands of = have illegal types 'pointer to char' and 'int' Warning c:\lcc\projects\rasm\rasm.c: 5719 missing prototype for _strdup Warning c:\lcc\projects\rasm\rasm.c: 5719 Missing prototype for '_strdup' Error c:\lcc\projects\rasm\rasm.c: 5719 operands of = have illegal types 'pointer to char' and 'int' Warning c:\lcc\projects\rasm\rasm.c: 5722 missing prototype for _strdup Warning c:\lcc\projects\rasm\rasm.c: 5722 Missing prototype for '_strdup' Error c:\lcc\projects\rasm\rasm.c: 5722 operands of = have illegal types 'pointer to char' and 'int' Warning c:\lcc\projects\rasm\rasm.c: 5725 missing prototype for _strdup Warning c:\lcc\projects\rasm\rasm.c: 5725 Missing prototype for '_strdup' Error c:\lcc\projects\rasm\rasm.c: 5725 operands of = have illegal types 'pointer to char' and 'int' Warning c:\lcc\projects\rasm\rasm.c: 5728 missing prototype for _strdup Warning c:\lcc\projects\rasm\rasm.c: 5728 Missing prototype for '_strdup' Error c:\lcc\projects\rasm\rasm.c: 5728 operands of = have illegal types 'pointer to char' and 'int' Warning c:\lcc\projects\rasm\rasm.c: 5731 missing prototype for _strdup Warning c:\lcc\projects\rasm\rasm.c: 5731 Missing prototype for '_strdup' Error c:\lcc\projects\rasm\rasm.c: 5731 operands of = have illegal types 'pointer to char' and 'int' Warning c:\lcc\projects\rasm\rasm.c: 5734 missing prototype for _strdup Warning c:\lcc\projects\rasm\rasm.c: 5734 Missing prototype for '_strdup' Error c:\lcc\projects\rasm\rasm.c: 5734 operands of = have illegal types 'pointer to char' and 'int' Warning c:\lcc\projects\rasm\rasm.c: 5737 missing prototype for _strdup Warning c:\lcc\projects\rasm\rasm.c: 5737 Missing prototype for '_strdup' Error c:\lcc\projects\rasm\rasm.c: 5737 operands of = have illegal types 'pointer to char' and 'int' Warning c:\lcc\projects\rasm\rasm.c: 5740 missing prototype for _strdup Warning c:\lcc\projects\rasm\rasm.c: 5740 Missing prototype for '_strdup' Error c:\lcc\projects\rasm\rasm.c: 5740 operands of = have illegal types 'pointer to char' and 'int' Warning c:\lcc\projects\rasm\rasm.c: 5743 missing prototype for _strdup Warning c:\lcc\projects\rasm\rasm.c: 5743 Missing prototype for '_strdup' Error c:\lcc\projects\rasm\rasm.c: 5743 operands of = have illegal types 'pointer to char' and 'int' Warning c:\lcc\projects\rasm\rasm.c: 5746 missing prototype for _strdup Warning c:\lcc\projects\rasm\rasm.c: 5746 Missing prototype for '_strdup' Error c:\lcc\projects\rasm\rasm.c: 5746 operands of = have illegal types 'pointer to char' and 'int' Warning c:\lcc\projects\rasm\rasm.c: 7234 missing prototype for _strdup Warning c:\lcc\projects\rasm\rasm.c: 7234 Missing prototype for '_strdup' Error c:\lcc\projects\rasm\rasm.c: 7234 operands of = have illegal types 'pointer to char' and 'int' Warning c:\lcc\projects\rasm\rasm.c: 7236 missing prototype for _strdup Warning c:\lcc\projects\rasm\rasm.c: 7236 Missing prototype for '_strdup' Error c:\lcc\projects\rasm\rasm.c: 7236 operands of = have illegal types 'pointer to char' and 'int' Warning c:\lcc\projects\rasm\rasm.c: 7387 missing prototype for _strdup Warning c:\lcc\projects\rasm\rasm.c: 7387 Missing prototype for '_strdup' Error c:\lcc\projects\rasm\rasm.c: 7387 too many errors
added on the 2017-08-12 14:58:22 by g0blinish g0blinish
Cannot help you if you omit the only important thing: what is your C compiler?

GCC compilation:
cc rasm_v059.c -O2 -lm -lrt
strip a.out
mv a.out rasm

Visual studio compilation:
cl.exe rasm_v059.c -O2

Simple as that...
added on the 2017-08-12 15:05:36 by roudoudou roudoudou
"Error c:\lcc\projects\rasm\rasm.c: 7387 too many errors"

An error about having too many errors can't be good, right? :)
added on the 2017-08-12 17:15:18 by ramon ramon
lcc

Should I instal alter compilators?

cl.exe available with Visual Studio, DLL's and link.exe
added on the 2017-08-12 18:00:18 by g0blinish g0blinish
crap(
Code: C:\MinGWStudio\MinGW\bin>cc rasm_v059.c -O2 -lm -lrt rasm_v059.c: In function 'PopAllExpression': rasm_v059.c:2760:5: warning: this decimal constant is unsigned only in ISO C90 [ enabled by default] rasm_v059.c:2760:5: warning: this decimal constant is unsigned only in ISO C90 [ enabled by default] c:/mingwstudio/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe : cannot find -lrt collect2.exe: error: ld returned 1 exit status C:\MinGWStudio\MinGW\bin>strip a.out strip: 'a.out': No such file C:\MinGWStudio\MinGW\bin>mv a.out rasm "mv" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. C:\MinGWStudio\MinGW\bin>pause Для продолжения нажмите любую клавишу . . .
added on the 2017-08-12 18:02:20 by g0blinish g0blinish
Yeah, MinGW is crap and minimalistic, glad you noticed it ^_^
Maybe it may work removing -lrt flag in the compilation line?

About your version of visual studio, it seems to be very old.

for example, strdup is deprecated since almost a decade and illegal since VS2015 (maybe earlier version), so if your visual studio compiler does not understand _strdup

I haven't planed to make rasm compliant with deprecated compiler ;)
added on the 2017-08-12 18:18:39 by roudoudou roudoudou
Quote:


C:\MinGWStudio\MinGW\bin>rem cc rasm_v059.c -O2 -lm -lrt

C:\MinGWStudio\MinGW\bin>cc rasm_v059.c -O2 -lm
rasm_v059.c: In function 'PopAllExpression':
rasm_v059.c:2760:5: warning: this decimal constant is unsigned only in ISO C90 [
enabled by default]
rasm_v059.c:2760:5: warning: this decimal constant is unsigned only in ISO C90 [
enabled by default]
c:\Temp\ccAROZYq.o:rasm_v059.c:(.text+0x35bb): undefined reference to `strnlen'
c:\Temp\ccAROZYq.o:rasm_v059.c:(.text+0x3c47): undefined reference to `strnlen'
c:\Temp\ccAROZYq.o:rasm_v059.c:(.text+0x3d68): undefined reference to `strnlen'
c:\Temp\ccAROZYq.o:rasm_v059.c:(.text+0x41e6): undefined reference to `strnlen'
c:\Temp\ccAROZYq.o:rasm_v059.c:(.text+0x46a3): undefined reference to `strnlen'
c:\Temp\ccAROZYq.o:rasm_v059.c:(.text+0x46c7): more undefined references to `str
nlen' follow
c:/mingwstudio/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe
: c:\Temp\ccAROZYq.o: bad reloc address 0x40 in section `.data'
c:/mingwstudio/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe
: final link failed: Invalid operation
collect2.exe: error: ld returned 1 exit status

C:\MinGWStudio\MinGW\bin>strip a.out
strip: 'a.out': No such file

C:\MinGWStudio\MinGW\bin>mv a.out rasm



Jesus, I have to teach C compilers instead of examine rasm(
added on the 2017-08-12 18:48:59 by g0blinish g0blinish
lol, works when compiled from (tada) Open Watcom C 1.9 :))
not tested it btw
added on the 2017-08-12 19:30:20 by wbcbz7 wbcbz7
Yes, and Open Watcom may generate an good old MSDOS .exe ^_^
added on the 2017-08-12 20:27:05 by roudoudou roudoudou
also builds fine on Windows using mingw-w64 (gcc 4.9.3) when omitting -lrt
added on the 2017-08-12 21:16:15 by Revenant Revenant
Makefiles or it didn't happen ;)
Always happy to ban makefile for such a little project...
added on the 2017-08-12 23:22:18 by roudoudou roudoudou
Kudos for the serious effort.

docs say there is [can't type] symbol for modulo. So what to do on non-french keyboards? :)
rulez added on the 2017-08-15 16:42:03 by lvd lvd
OMG le Roudoudou is back! \(•◡•)/
rulez added on the 2017-08-15 17:09:58 by rez rez
@lvd you can still use old syntax keyword " MOD "
added on the 2017-08-16 15:09:15 by roudoudou roudoudou
A few hours today to switch to rasm: very easy to switch from sjasm+. What I do appreciate the most until now: building cpr, exporting symbols to winape emulator. bank and {bank} seem to be a powerful way to code thru several rom banks. Great tool! thanks! I'm sure I'll find other useful features from now on.
rulez added on the 2017-12-02 15:39:35 by Overflow Overflow
Many news since the first post. As only Amstrad users took a look, there is only new Amstrad related features -> snapshot generation, files on DSK generation and other features (see the official cpcwiki thread)

Maybe Spectrum/MSX users have some suggestions?
added on the 2017-12-15 20:24:00 by roudoudou roudoudou
Donc un mod pour la sega master system ?
rulez added on the 2018-04-04 00:42:36 by MacDeath MacDeath
Oh yes, I leave native-dev for cross-dev!!
rulez added on the 2018-04-04 00:56:18 by Hicks Hicks
*The* reason i started coding for CPC again
rulez added on the 2018-09-05 01:09:25 by siko siko
New-comers: don't focus on the first comments of this thread. The compiler is pretty stable now and each iterations bring more awesome-ness... way to go, Roudoudou! :D thanks for your time on this.
rulez added on the 2018-09-05 03:45:02 by norecess norecess
+ Open source
- Not tailored to run on CPC
Cochon :O
added on the 2019-05-19 13:14:02 by m_dr_m m_dr_m

submit changes

if this prod is a fake, some info is false or the download link is broken,

do not post about it in the comments, it will get lost.

instead, click here !

[previous edits]

add a comment