- Top Stats

Top Posters Top Topic Starters Top Topics
AMSDOS 1288
arnoldemu 1128
TFM 1124
ervin 745
ronaldo 403
AMSDOS 55
arnoldemu 51
ervin 42
EgoTrip 35
Arnaud 33
FutureOS corner - 70696 Views TFM/FS 07:12, 01 October 10
Example Z80 as... - 66063 Views arnoldemu 10:59, 04 April 10
#CPCtelera 1.4... - 32996 Views ronaldo 13:59, 11 May 15
BASIC programm... - 30907 Views arnoldemu 16:23, 22 May 09
CHAMP Assemble... - 24974 Views Bruce Abbo... 12:59, 16 January 14


Author Topic: Rasm Z80 assembler v0.113 [update 2019.04.26]  (Read 23016 times)

0 Members and 1 Guest are viewing this topic.

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 616
  • Country: fr
    • urban exploration
  • Liked: 819
Re: Rasm Z80 assembler v0.71 [update 2018.02.23]
« Reply #75 on: 10:39, 23 February 18 »
update v071
- math functions HI & LO to get high 8 bits or low 8 bits of a pseudo 16 bits value
- @ prefix for octal values
- AS80 assembler compatibility mode* (enough to compile CNG player with the same wrong calculations  :P )








short doc
 
Quote
-ass   AS80 behaviour mimic
  • all calculations are done with 32 bits integer values and wrong rounding
  • macro parameters are not protected with {} anymore
  • multiple declarations with DEFB,DEFW,DEFI got reference adress of the first outputed byte. That's why with AS80, using multiple DEFB produces a different result than using DEFB with multiple values
  • MACRO declaration directive must be used after the macro name
« Last Edit: 11:34, 23 February 18 by roudoudou »
use RASM, the best assembler ever made :p

I will survive

Offline GUNHED

  • 6128 Plus
  • ******
  • Posts: 1.114
  • Country: de
  • Reincarnation of TFM
  • Liked: 586
Re: Rasm Z80 assembler v0.71 [update 2018.02.23]
« Reply #76 on: 16:35, 23 February 18 »
Cool! Thanks!

http://futureos.de --> Get the revolutionary FutureOS (Recent update: 2019.01.14)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Ver.: 2018.08.15)

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 616
  • Country: fr
    • urban exploration
  • Liked: 819
Re: Rasm Z80 assembler v0.72 [update 2018.02.26]
« Reply #77 on: 22:04, 26 February 18 »
update v0.72
- ability to generate snapshot v2 (useful with M4Wifi)

short doc

Code: [Select]
BUILDSNA V2
use RASM, the best assembler ever made :p

I will survive

Offline Bill

  • Supporter
  • Speccy
  • *
  • Posts: 2
  • Country: us
    • index.php?action=treasury
    • Fergusonplus
  • Liked: 0
Re: Rasm Z80 assembler v0.72 [update 2018.02.26]
« Reply #78 on: 05:14, 27 February 18 »
Hi,

Now I feel dumb, I can not get the program to run. I just see the command prompt window to open in a fraction of a second, not able to read what it says, and that's it.


Bill

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 616
  • Country: fr
    • urban exploration
  • Liked: 819
Re: Rasm Z80 assembler v0.72 [update 2018.02.26]
« Reply #79 on: 09:01, 27 February 18 »
Hi,

Now I feel dumb, I can not get the program to run. I just see the command prompt window to open in a fraction of a second, not able to read what it says, and that's it.


Bill
It is a command line tool.
Open a terminal and run
use RASM, the best assembler ever made :p

I will survive

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 616
  • Country: fr
    • urban exploration
  • Liked: 819
Re: Rasm Z80 assembler v0.73 [update 2018.02.28]
« Reply #80 on: 14:01, 28 February 18 »
update v0.73
- bugfix in snapshot when using distinct banks instead of gathering them with bankset directive
use RASM, the best assembler ever made :p

I will survive

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 616
  • Country: fr
    • urban exploration
  • Liked: 819
Re: Rasm Z80 assembler v0.74 [update 2018.03.18]
« Reply #81 on: 10:27, 18 March 18 »
quick update v0.74
- usage of snapshot directives forces snapshot output
- try to load .asm or .Z80 file if filename given is not found and has no extension
- BREAKPOINT directive may have an additional parameter to set break adress anywhere
- declaring two MACRO with the same name will trigger an error
- bugfix regression of -m option handling
- each REPEAT or WHILE loop export a REPEAT_COUNTER or WHILE_COUNTER variable, locally
use RASM, the best assembler ever made :p

I will survive

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 616
  • Country: fr
    • urban exploration
  • Liked: 819
Re: Rasm Z80 assembler v0.75 [update 2018.03.29]
« Reply #82 on: 10:10, 29 March 18 »
update v0.75
- newer and faster expression calculator without limitations of comparisons
- % may be used as modulo (still used for binary values)
- Intel hexa & binary style support
- Binary prefix 0b fixed
- does not export IX and IY anymore in symbol files
- better error messages when calculating expressions
- boolean operators && and ||
- PUSH & POP may have more than one register in parameters
- NOP may be multiplied specifying a number of repetition in parameter
- alias <> for != comparison operator
- filenames are forced to upper case when saved to EDSK
- Infinite loop detection won't go to infinite loop anymore ^_^

As the solver is very different from the previous version, i keep the 0.74 version available, in case of regression

Now i have to work on the documentation, again  ;D
use RASM, the best assembler ever made :p

I will survive

Offline GUNHED

  • 6128 Plus
  • ******
  • Posts: 1.114
  • Country: de
  • Reincarnation of TFM
  • Liked: 586
Re: Rasm Z80 assembler v0.75 [update 2018.03.29]
« Reply #83 on: 14:27, 29 March 18 »
Another big update! Thank you!


It's great to have a French manual (mother tongue is always the best). But please also update the English manual if needed (still shows 0.72, not 0.75, but maybe it need no update - I have to find out :-))


Keep the great work going!!!  :) :) :)
http://futureos.de --> Get the revolutionary FutureOS (Recent update: 2019.01.14)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Ver.: 2018.08.15)

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 616
  • Country: fr
    • urban exploration
  • Liked: 819
Re: Rasm Z80 assembler v0.75 [update 2018.03.29]
« Reply #84 on: 14:39, 29 March 18 »
I have to work on english version too before updating here ;)
use RASM, the best assembler ever made :p

I will survive

Offline GUNHED

  • 6128 Plus
  • ******
  • Posts: 1.114
  • Country: de
  • Reincarnation of TFM
  • Liked: 586
Re: Rasm Z80 assembler v0.75 [update 2018.03.29]
« Reply #85 on: 17:13, 29 March 18 »
Yeah, I know, and making docs and manuals is just no fun.  :P  But if you come to an end (or close to an end) I would like to make a translation to German language for you.  :)  Just let me know when "final" stage is in sight  :)
http://futureos.de --> Get the revolutionary FutureOS (Recent update: 2019.01.14)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Ver.: 2018.08.15)

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 616
  • Country: fr
    • urban exploration
  • Liked: 819
Re: Rasm Z80 assembler v0.76 [update 2018.03.29]
« Reply #86 on: 22:22, 29 March 18 »
update v0.76
- fix solver when using % prefixed binary values close to comparison operator or parenthesis

Both FR & EN doc updated  8)
use RASM, the best assembler ever made :p

I will survive

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 616
  • Country: fr
    • urban exploration
  • Liked: 819
Re: Rasm Z80 assembler v0.77 [update 2018.03.30]
« Reply #87 on: 22:59, 30 March 18 »
quick update for maxam compatibility mode users
update v0.77

- even faster expression calculation
- maxam & AS80 comparison operators are back
use RASM, the best assembler ever made :p

I will survive

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 616
  • Country: fr
    • urban exploration
  • Liked: 819
Re: Rasm Z80 assembler v0.78 [update 2018.04.04]
« Reply #88 on: 14:08, 04 April 18 »
ultra-light but requested update v0.78
- DEFS can handle multiple repetition schemas
- alias DM & DEFM for DEFB

use RASM, the best assembler ever made :p

I will survive

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 616
  • Country: fr
    • urban exploration
  • Liked: 819
Re: Rasm Z80 assembler v0.79 [update 2018.04.04]
« Reply #89 on: 00:09, 05 April 18 »
update v0.79
- != operator is back with new solver  :doh:
use RASM, the best assembler ever made :p

I will survive

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 616
  • Country: fr
    • urban exploration
  • Liked: 819
Re: Rasm Z80 assembler v0.80 [update 2018.04.05]
« Reply #90 on: 10:28, 05 April 18 »
update v0.80

- bugfix operator > and >=
- bugfix Maxam priorities

use RASM, the best assembler ever made :p

I will survive

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 616
  • Country: fr
    • urban exploration
  • Liked: 819
Re: Rasm Z80 assembler v0.80 [update 2018.04.05]
« Reply #91 on: 14:53, 05 April 18 »

update v0.81
- added special maxam priorities for parenthesis and boolean operators




The priority management in maxam compatibility mode is less trivial than it seems to be  >:(
use RASM, the best assembler ever made :p

I will survive

Offline Golem13

  • CPC464
  • **
  • Posts: 26
  • Country: fr
  • Liked: 67
Re: Rasm Z80 assembler v0.80 [update 2018.04.05]
« Reply #92 on: 21:56, 05 April 18 »
Fixes are validated coz 0.81 is working fine for me. 8)
Thanks Roudoudou  :-*

Offline GUNHED

  • 6128 Plus
  • ******
  • Posts: 1.114
  • Country: de
  • Reincarnation of TFM
  • Liked: 586
Re: Rasm Z80 assembler v0.81 [update 2018.04.05]
« Reply #93 on: 15:32, 06 April 18 »
Yes, 81 seems to be a good number. Everything stable and well here too.  :)
http://futureos.de --> Get the revolutionary FutureOS (Recent update: 2019.01.14)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> Get the RSX-ROM for LambdaSpeak :-) (Ver.: 2018.08.15)

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 616
  • Country: fr
    • urban exploration
  • Liked: 819
Re: Rasm Z80 assembler v0.81 [update 2018.04.05]
« Reply #94 on: 17:48, 06 April 18 »
Yes, 81 seems to be a good number. Everything stable and well here too.  :)
I have another version pending  ;D
With 'while 0 bugfix' but nothing really important
use RASM, the best assembler ever made :p

I will survive

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 616
  • Country: fr
    • urban exploration
  • Liked: 819
Re: Rasm Z80 assembler v0.82 [update 2018.04.09]
« Reply #95 on: 15:38, 09 April 18 »
Due to my system upgrade (a 6 years old ubuntu LTS to the new Lubuntu beta LTS) i remove many compilation warnings. CLang compilation takes ages but the performance of the executable is noticable (30% faster)

- I added also SL1 alias for SLL
- better infinite loop detection (i mean, safer)
- bugfix while 0 loop (check and disable block)
- repeat until internal counter harmonisation (now they are all starting from value 1)
use RASM, the best assembler ever made :p

I will survive

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 616
  • Country: fr
    • urban exploration
  • Liked: 819
Re: Rasm Z80 assembler v0.83 [update 2018.04.11]
« Reply #96 on: 21:28, 11 April 18 »
update v0.83
- NOCODE output must increment current adress in all cases
- new directives DR & DEFR to define REAL values (Amstrad firmware compatible)

Example:
Code: [Select]
org #8000
call #BBBA ; GRA initialize

ld a,1
call #BC0E ; mode 1
ld a,1
call #BD97 ; deg

ld de,320
ld hl,200
call #BBC9 ; origin 320,200

ld de,180
ld hl,0
call #BBC0 ; move 180,0



ld b,0

circle_trace
    push bc
    ld hl,angle
    ld de,incre
    call #BD7C ; angle=angle+incre

    ld de,angle
    ld hl,tmp
    call #BD61 ; tmp=angle
    call #BDAF ; tmp=cosinus(tmp)
    ld de,rayon
    call #BD85 ; tmp=tmp*rayon
    call #BD6A ; HL=int(tmp)
    call m,fixsign
    push hl

    ld de,angle
    ld hl,tmp
    call #BD61 ; tmp=angle
    call #BDAC ; tmp=sinus(tmp)
    ld de,rayon
    call #BD85 ; tmp=tmp*rayon
    call #BD6A ; HL=int(tmp)
    call m,fixsign
    pop de

    call #BBF6 ; LINE DE,HL

    pop bc
    djnz circle_trace
ret

fixsign
    ld de,0
    ex hl,de
    or a
    sbc hl,de
    ret
   

rayon   defr     180
angle   defr       0
incre   defr 360/256
tmp        defr       0

use RASM, the best assembler ever made :p

I will survive

Offline Targhan

  • Supporter
  • 6128 Plus
  • *
  • Posts: 863
  • Country: fr
  • Liked: 816
Re: Rasm Z80 assembler v0.83 [update 2018.04.11]
« Reply #97 on: 10:48, 12 April 18 »
I just learned (at the Revision, from Offset) that Basic has an integer division, with the symbol \ (or ç on French keyboard). I already reported you that the "accurate" division was a bit problematic in some cases. Do you think something similar could be implemented?
Targhan/Arkos

Arkos Tracker 2 - alpha 5 now released! - Follow the news on Twitter!
Disark A cross-platform Z80 disassembler/source converter

Imperial Mahjong
Orion Prime

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 616
  • Country: fr
    • urban exploration
  • Liked: 819
Re: Rasm Z80 assembler v0.83 [update 2018.04.11]
« Reply #98 on: 12:56, 12 April 18 »
I just learned (at the Revision, from Offset) that Basic has an integer division, with the symbol \ (or ç on French keyboard). I already reported you that the "accurate" division was a bit problematic in some cases. Do you think something similar could be implemented?
Using INT() must solve the case
use RASM, the best assembler ever made :p

I will survive

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 616
  • Country: fr
    • urban exploration
  • Liked: 819
Re: Rasm Z80 assembler v0.83 [update 2018.04.11]
« Reply #99 on: 14:04, 12 April 18 »
You may be interrested also by the floor() function, the result is again different in another way


Example:



Code: [Select]

a=10
b=2
repeat 10
print a,"/",b," normal=",a/b," int()=",int(a/b)," floor()=",floor(a/b)
b=b+1
rend


Will produce


Code: [Select]
10.00 / 2.00  normal= 5.00  int()= 5.00  floor()= 5.00
10.00 / 3.00  normal= 3.33  int()= 3.00  floor()= 3.00
10.00 / 4.00  normal= 2.50  int()= 3.00  floor()= 2.00
10.00 / 5.00  normal= 2.00  int()= 2.00  floor()= 2.00
10.00 / 6.00  normal= 1.67  int()= 2.00  floor()= 1.00
10.00 / 7.00  normal= 1.43  int()= 1.00  floor()= 1.00
10.00 / 8.00  normal= 1.25  int()= 1.00  floor()= 1.00
10.00 / 9.00  normal= 1.11  int()= 1.00  floor()= 1.00
10.00 / 10.00  normal= 1.00  int()= 1.00  floor()= 1.00
10.00 / 11.00  normal= 0.91  int()= 1.00  floor()= 0.00

use RASM, the best assembler ever made :p

I will survive