release v2.0 - 2023 Blue Hedgehog Latest
What? Less than a month since two releases? Yeah, sorry, but there was a huge rework and enhancement on dynamic LZ sections You can now overflow the 64K memory space allocated IF YOU SQUEEZE enough your data to fit the 64K at the end ^_^ You may jump on another crunched section from anywhere if the destination is not 'in place', i mean, with a relocated ORG like "ORG #A000,$" As usual, new features use the unlimited design, you may overflow as much as you want in the memory As usual, the feature is already documented Enjoy! Note : There is also new AY conversion value, expect some audio changes Windows binaries MacOS binaries for ARM and Intel/AMD (Merci Sid!) release v1.9 - 2023 Guilty Pleasure - ludicrous speed enhancement - new struct export for rasm embeded - enforce LD r8,im8 usage (to avoid confusion when it's possible between memory reference and calculation using parenthesis) - enforce AMSDOS name proper format - may export files on DSK with another user - new REMU chunk in snapshots for debug usage and precise breakpoints - new RMxx chunks in snapshots for ROM usage - new directives ROMBANK to manage ROM in snapshot output - new directives SRL8 and shift aliases RLC/RRC for 16 bits registers - new conditionnals RST #38 - audio filtering for DMA conversion - various prototypes in order to design relocatable code (still in progress but documented) - changed DJNZ timing to "loop" - bugfix some autotests and leaks with embeded Rasm - up to date documentation - each OS build of rasm is still tested with more than 1100 automatic tests builds for windows XP, windows x64 builds for MacOS ARM and MacOS Intel release v1.8 - 2022 Flying monkeys - new up to date documentation on wikidot => http://rasm.wikidot.com/home:home - new conditional directive ELSEIFNOT - new math function IS_REGISTER - new directives CPRINIT and SNAPINIT in order to initialise RASM memory with a cartridge or a snapshot - new command line option to handler macro calls on multiple lines - MAP output improvements - MODULE support for EQU => Alias are now inside modules, like labels - CHARSET can be used with string to string conversion - removed ENDREPEAT and ENDREP literaly unused directives - bugfix WATCOM compatibility issue - bugfix STR endmark with CHARSET conversion - bugfix CONFINE directive with ENFORCE parameter usage - bugfix backslash usage with CHARSET defined for it - bugfix memory leak with map output and alias usage - bugfix memory overrun at memory cleanup - bugfix preprocessor with include filename strictly ending the line release v1.7 Easter Fix Latest - bugfix snapshot v3 first chunks when memory cannot be crunched in RLE - bugfix negative rounding for REAL conversion - bugfix segfault with UTF8 char usage in strings - bugfix quote starting with escaped char - bugfix macOS support, new target install - bugfix label import - bugfix GETNOP/GETTICK LD (HL),im8 + some missing instructions added - bugfix breakpoints missing when exporting for snap and breakpoint file - bugfix undefined behaviour with EQU usage before declaration - new Amstrad/Microsoft conversion to 5-bytes REAL with full precision - new math function FILESIZE to get file size on disk - new math function GETSIZE to get opcode size - new poker option with a few cipher methods - new directive SNAPINIT to initialize memory with a snapshot - new directive CIPHERMEM to cipher memory portion - new CONFINE option in order to enforce location - new UTF8 support to convert legacy french or spanish char to proper Locomotive Basic values + new command line option - more symbol exports with "ignore case" (and faster) - GTILES option for INCBIN to import tiles with gray encoding - documentation NOT updated since 1.6 release v1.6 (unstable) - ZX0 cruncher upgraded to v2 + new Z80 decrunchers - do not export command line define(s) - bugfix ZX0 backward compression - bugfix automatic filetype search for main source - bugfix autotests with 3rd parties disabled - bugfix include paths search - bugfix IFUSED, IFDEF, IFNDEF when used with MODULE directive - bugfix file output with HOBETA header - new option to export ROM description - new option to export label with original case release v1.5 (unstable) - new directive DELAYED_PRINT - new directive STARTINGINDEX + REPEAT options - new directives PROCEDURE, EXTERNAL, BUILDOBJ for kind of objects export - new shortcut ENDMODULE - new autotests + debug struct info RUN+START - new external function for emulators and assembling into RAM - ROM flat output for BUILDROM directive - use _setmode only with Visual Studio 14.0 and below - use custom strnlen with BorlandC - use only declarations from rasm.h - bugfix IX/IY invalid syntaxes - bugfix INCBIN wav preamp with DMA options - bugfix ZX snapshot output + RUN bugfix - bugfix TIMESTAMP and custom charset - bugfix Borland compatibility - bugfix segfault with wrong char in DEFB/DEFM string - bugfix segfault with quote not closed in the very last directive - bugfix INTn prefix behaviour - bugfix LD reg16,(IX/IY) alias - warn about ORG inside crunched section - compute alias values before crunching sections, this fix some side effects of EQU inside crunched sections - ZX0 firmware compatible decrunch routine - Linux version compiled with GCC v9.3.0 - MS-DOS version compiled with Open-Watcom 1.9 - Windows version compiled with Microsoft Compiler v19 - EDIT: Documentation up to date!!! release v1.4 - new TAPE output code from CNG in GPL2 - new directive BUILDTAPE - new directives GETNOP to count Amstrad nops - new directives GETTICK to count Z80 ticks - new DMA options for Amstrad Plus WAV import - new LZSA directives for LZSA1 and LZSA2 compression - new ZX0 directives for ZX0 compression and backward compression - new CONFINE directive - new command line option for amper hex values usage - new command line option for quick ZX0 compression - new postfix .low and .high to split registers in macro definition - BANK tag may process proximity label - bugfix some warnings - bugfix IN A,(C) timing in rasm - bugfix moar timings in documentation - bugfix SRL reg16 alias - bugfix segfault when LZ section was not closed - bugfix compilation without third parties - UPX compression is used for binary releases - Linux version compiled with GCC v9.3.0 - MS-DOS version compiled with Open-Watcom 1.9 - Windows version compiled with Microsoft Compiler v19 release 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 option -msep to specify separator for labels inside modules - new option -amper to use ampersand for hex values - new escapes code maybe used in DEFB strings - 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 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 release v1.1 - bugfixes, cleannup - new directive SNASET to tune CPC snapshots - new math functions for gate array color conversion - new behaviour + securisation for RND math function - new autotests - MorphOS compatibility improvement - documentation updated initial release v1.0 - stable release v1.0 release v0.14 - new TAPE output code from CNG in GPL2 - new directive BUILDTAPE - new directives GETNOP to count Amstrad nops - new directives GETTICK to count Z80 ticks - new DMA options for Amstrad Plus WAV import - new LZSA directives for LZSA1 and LZSA2 compression - new ZX0 directives for ZX0 compression and backward compression - new CONFINE directive - new command line option for amper hex values usage - new command line option for quick ZX0 compression - new postfix .low and .high to split registers in macro definition - BANK tag may process proximity label - bugfix some warnings - bugfix IN A,(C) timing in rasm - bugfix moar timings in documentation - bugfix SRL reg16 alias - bugfix segfault when LZ section was not closed - bugfix compilation without third parties - UPX compression is used for binary releases - Linux version compiled with GCC v9.3.0 - MS-DOS version compiled with Open-Watcom 1.9 - Windows version compiled with Microsoft Compiler v19 release v0.13 - 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 option -msep to specify separator for labels inside modules - new option -amper to use ampersand for hex values - new escapes code maybe used in DEFB strings - 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 release v0.129 - bugfix read overrun in pre-processor - bugfix read overrun in snapshot encoding - bugfix AMSDOS header creation with filename that contains a path - force memory cleanup with MorphOS - when a variable cannot be computed, check for directive names to avoid confusion release v0.128 - bugfix moar memory leaks - label code clean-up release v0.127 - bugfix some memory leaks release v0.126 - Rasm is able to mix LZsegments and contiguous ORG sections release v0.125 - bugfix EQU with current adress reference and crunched zones integration release v0.124 - new directive DF/DEFF in order to output Microsoft IEEE-754 40bits real - pasmo compatibility option for DEFB/DEFW with multiple output and reference to current adress release v0.123 - new option to treat warnings as errors - bugfix segfault with empty struct declaration - bugfix v0.121 regression for INCWAV - check labels,variables and alias when declare macro name release v0.122 - proximity label enhancement with macro inception and loops - new directive MODULE release v0.121 - early stages MODULE support - APlib Ultra integration (load&crunch + crunched section) - bugfix segfault when trying to assemble a file that does not exists - bugfix segfault with opened comment '/*' until the end of the file - bugfix DEFB calculation with $ after crunched section - proximity label beginning with BRK will generate an exportable breakpoint - \ support (experimental) - LIMIT directive evolution (mostly for #FFFF writing case) - crunched INCBIN may use offset/length/remap before crunch release v0.120 - BIT,RES,SET may use deferred shifting value - BANK directive may use NEXT as parameter to switch to next BANK space - operator assignment are now supported - may use tags in filenames with SAVE directive - warn for huge shifting and force result to zero (as it's an architecture independant operation) release v0.119 - bugfix ASSERT with extra-parameters - local labels are also reference for proximity label inside their respective scope - struct may be indexed (work in progress concerning init and filler) - RUN directive also set execution adress for SAVE directive and may be used multiple times - new option -wu in order to make warnings for every unused var, alias or label release v0.118 - bugfix using variables for size/offset with SAVE directive - bugfix using variables for size/offset in a loop with INCBIN directive - bugfix error message causing core dump (when doing macro inception) - new option to enforce void usage with macro without parameter - new option for INCBIN to interlace+zigzag tiles release v0.117 - new spectrum option HOBETA for SAVE directive - new snapshot 48K output when using spectrum mode - bugfix error message when trying to export in symbol file an invalid (but not used) EQU - bugfix PAGE,PAGESET when used with generated label names and defered computation - bugfix automatic uppercase+remove spaces in formulas for generated names with INCBIN - bugfix using negative size with INCBIN (will compute filesize + negative size) release v0.116 - bugfix infinite loop when first file is not found - bugfix using prefix with generated label name - bugfix default max limit (no moar 65535) - bugfix eDSK generation with interlaced sectors (wrong since 0.112) - bugfix snapshot with moar than 192K of extended RAM - snapshot now use PPI control value to 0x82 as default - struct definition allow DEFB,DEFW,DEFI,DEFR to be used without value - struct usage may use default values of the struct definition - struct usage allow inline values for each field - allow use CP with non implicit A register - allow proximity label without previous global label (mostly for heritage sources) - more flexibility with DEFS value - new math functions GET_R, GET_G/GET_V, GET_B to manage amstrad Plus colors - new math functions SET_R, SET_G/SET_V, SET_B to manage amstrad Plus colors - new symbol export option to export one file per memory space - MX chunk support for up to 4M snapshot with ACE emulator - BANK, PAGE and PAGESET enhancement for 4M snapshot support (now return 16 bits gate array value) release v0.115 - bugfix preprocessing with multi-line comments - bugfix unrecognized % for modulo - new banking BUILDZX directive for ZX Spectrum usage release v0114 (summer release!) - new INCBIN options: REMAP, REVERT, VTILES - new command line option "-oa" to mimic inputname for binary output - try some file extensions if the input file is not found - new alias EXA for EX AF,AF' release v0.113 - trigger an error when dynamic LZ section cannot crunch - bugfix when trying to crunch an empty section - dynamic debug options removed - snapshot & cartridge summary by default - embedded rasm export all labels and EQU in the info struct - new math function CEIL - rasm may handle generated name with INCBIN directive release v0.112 - bugfix single NOP wasn't increment nop counter ^_^ - bugfix NOP count with ADD/SUB/XOR/AND/CP (IX+n)/(IY+n) - bugfix in WAV import release v0.111 - error management code cleanup - new options with directive INCBIN for wav import - allow EDSK with invalid track sector size or supernumerary tracks if sectors are DATA compliant - bugfix confusion between generated global labels and local labels for export - bugfix EQU with generated names AND curly brackets formulas inside a loop - bugfix invalid REPEAT values will increment the error counter release v0.110 - allow numeric expression beginning with + - bugfix uninitialized memory reads with embedded Rasm release v0.109 - bugfix crash when trying to save with a negative size - bugfix crash case with macro and wrong parameter number - bugfix EDSK update - IFDEF/IFNDEF now scans for macro names - TZX/CDT output support (not working) - RUN directive may use unknown var as parameter - embedded Rasm may return info struct about errors and symbols release v0.108 - allow var name beginning with '_' - CODE directive may retrieve last outputed byte adress release v0.107 - colored output with Unix terminal - trigger error if a (VOID) arg is used with a macro which has parameter(s) - added Vasm syntax ENDREP and ENDREPEAT to end a REPEAT block - enforce zero result when there is an error in a calculation - new directives NOEXPORT/ENOEXPORT to disable/enable on demand symbol export release v0.106 - multi-line comments release v0.105 - bugfix wrong error with operator+non decimal negative value - do not allow CALL (IX) or CALL (IY) syntax - added comments begining with // - added SIZEOF support for fields of structures - new directive TICKER to count instruction duration release v0.104 - BANK again in the same slot keep memory tracking - no more path simplification (until i solve it!) release v0.103 - bugfix memory cleanup with embedded rasm release v0.102 - bugfix 'BREAKPOINT <adress>' export - bugfix default limit of 65535 - bugfix limit autotest - bugfix path simplification for dependencies export - bugfix memory leak when using (VOID) with macro - new math function to get a random value release v0.101 - warn if no byte is written to a snapshot - warn if RUN directive was already used - bugfix calculation error cases - bugfix maxam AND/OR/XOR/MOD operator (regression of v0.89) - UNDEF does not care anymore about variable existence - better error management with macro and wrong number of parameters release v0.100 - bugfix crash with zeroed output file - bugfix moar memory leaks release v0.99 - new directive UNDEF - bugfix memory leaks - bugfix calculations with a function followed by two or more opened parenthesis release v0.98 - bugfix with snapshot v2 memory size detection - new optional parameter to get file size when load and crunch on the fly - new option to remove warnings - new fake instructions RR,RL,SRL,SRA,SLL,SLA with 16 bits (BC,DE,HL) registers - preprocessing does not allow empty parameter to avoid confusion - extended error may suggest a name if a variable/label/alias looks similar to a 'not found' value release v0.97 - bugfix conditionnal code inhibition with macro declaration - better alias infinite recursivity detection release v0.96 - bugfix memory leak in tag translation with PRINT directive - bugfix negative offset with INCBIN - bugfix autotests memory handling - added include path in command line release v0.95 - allow spaces in tags inside strings with PRINT directive - display warning if you try to export symbols or breakpoints with snapshot version 2 - proximity label beginning with BRK will generate an exportable breakpoint - new enhanced LD instructions (see online documentation) release v0.94 - bugfix using macro parameter inside print quote - bugfix multiple memory leak with tag replacement - bugfix command line side effect with wrong option - better hack in expression calculator for expression beginning with negative value - better equality processing in expression calculator - dependencies export do not display preprocessing message anymore release v0.93 - bugfix RUN gate array configuration - overriding an alias with a label will trigger an error - PRINT directive may use escaped chars in strings - tags BANK,PAGE,PAGESET may be used with current adress $ release v0.92 - bugfix PAGE tag when using BANK in snapshot mode release v0.91 - bugfix school case with crunched block - bugfix proximity labels when using loops or macros - bugfix imbricated IFUSED/IFNUSED - new directive FAIL will print a message before exiting with an error flag - label usage may use formula - escaped codes support in strings (disregarding the current charset) - PRINT directive may compute formula in strings when using curly brackets - RUN directive may set the gate array configuration for snapshots - generated label with negative index will trigger an error - overriding an alias with a variable will trigger an error - overriding a variable with an alias will trigger an error - missing ENDIF at the end of the source will trigger an error release v0.90 - PROTECT directive does not increase automatic binary size anymore - bugfix memory leak with proximity labels - proximity label properties also for EQU aliases - label declaration may use formula release v0.89 - bugfix dependencies export - multiple bugfix in preprocessor - simplify path of dependencies when possible - enhanced ASSERT may PRINT additional parameters release v0.88 - bugfix another cases during preprocessing release v0.87 - new proximity labels - rasm is able to use variables inside label names - INCBIN directive enhanced for WAV import as a CPC sample or DMA list - REPEAT directive may export internal counter to a variable - new directive IFUSED & IFNUSED - new math operator ! for NOT - new math function PSGVALUE - rasm return 1 to shell when there is error(s) - new options to export dependencies (makefile style) - new option to define variable(s) from command line - new option for extended error messages - bugfix cases during preprocessing - bugfix tags PAGE & PAGESET - new autotests embedded in Rasm in order to reduce regressions release v0.86 - fix many bugs in label import - fix multi-nops - fix automatic extension for primary source - fix infinite loop when error on reserved keyword in an expression release v0.85 - fix some regressions introduced by STRUCT code modifications release v0.84 - new directives STRUCT and ENDSTRUCT, ENDS to create structures - fix regression introduced with v0.75 and embedded usage (like Arkos Tracker II does) release v0.83 - NOCODE output must increment current adress in all cases - new directives DR & DEFR to define REAL values (Amstrad firmware compatible) release v0.82 - better infinite loop detection - bugfix while 0 loop (check and disable block) - repeat until internal counter harmonisation - alias SL1 for SLL instruction - remove CLang warnings on Linux release v0.81 - added special maxam priorities for parenthesis and boolean operators release v0.80 - bugfix operator > and >= - bugfix Maxam priorities release v0.79 - != operator is back with new solver release v0.78 - DEFS can handle multiple repetition schemas - alias DM & DEFM for DEFB release v0.77 - even faster expression calculation - maxam & AS80 comparison operators are back release v0.76 - fix solver when using % prefixed binary values and comparison operators or parenthesis release 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 ^_^ release 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 release v0.73 - bugfix in snapshot directive - bugfix in snapshot when using distinct bank instead of banksets release v0.72 - ability to generate v2 snapshot for M4Wifi release v0.71 - 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) release v0.70 - shifting operator >> bugfix - EDSK face selection bugfix 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!) release v0.68 - Morphos compatibility code - better error messages - includes or incbin in a disabled section won't warn anymore if file does not exists - breakpoint in snapshot with BRKC chunk for ACE emulator - shorter splash text - unused var cleanup release v0.67 - bugfix buffer overflow with long filenames for export - snapshot support unofficial Winape breakpoint chunk - new directive BREAKPOINT - labels begining by BRK or @BRK are exported as breakpoint in snapshots release v0.66 - new conditionnal directives IFDEF and IFNDEF release 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 conditionnal 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 release v0.64 - 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 release 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 updated v0.61 - bugfix var memory leak with data flow - bugfix preprocessing with data flow not using string endchar - bugfix var export - new directive ASSERT release v0.58 - fixed INC SP encoding (was DEC SP opcode) updated v0.57 - more flexible preprocessor with macro parameters - new label prefix tag {BANK} to get the bank where is located a label updated 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} updated 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 - licenses of third parties softwares are included in the windows executable and their respective source files release 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 - literal values syntax check updated v052 - bugfix ADD (IY+n), SBC (IY+n) ADC (IY+n) CP (iy+n) were encoded like IX version - label duplicate name check - tree search for variables speed up +20% release v0.51 - bugfix ORG analysis for cartridge generation - bugfix LIMIT - bugfix with local labels not found in imbricated macros release v0.50 - bugfix ORG <adress>,$ - you may use unix relative paths using Windows so there is nothing to change when switching between both OS update 2017.04.03 - v0.49 - bugfix multiple LZ48/LZ49 block in the same ORG zone updated first post with v0.48 - bugfix of label calculations when placed after a LZ48/LZ49 block (there is a bug left with more than one LZ section in the same ORG) - directives SWITCH/CASE/DEFAULT/ENDSWITCH added - PRINT enhancement release v0.46 RELEASE CANDIDATE - bugfix force binary mode when writing files with Windows to avoid extra-bytes - bugfix with identical local labels when many repeat/while/macro are imbricated - bugfix when macro parameters are bigger than parameter definitions (led to abnormal end) - bugfix ADD,SUB,ADC,SBC with IX adressing - bugfix with a few error messages that did not trigger an error - bugfix truncate instead of rounding in MAXAM compatibility mode - bugfix translate $ current adress once for all with EQU - bugfix intempestive error message when writing symbol file - EQU aliases may be declared after use (even it's NOT a recommended practice) - Allow repeat 0 (zero) to disable a block. The block must be correct as there will be a partial decoding for loops - Allow RES,SET,BIT,LIMIT first parameter to be a variable/EQU - Added optionnal EQU and variable export - Added FLOOR function for calculations - Added STR winape directive - Added LIST keyword to ignored winape directives - Added check for REPEAT/WHILE opened but not closed - Added automatic windows compiler detection for visual studio & Watcom C - Improved a lot MAXAM compatibility (when using appropriate option) - bugfix calculations when there is no operator inside a parenthesis block release v0.42 - calculation chain reviewed - allow old style label declaration with a starting dot - allow useless A,register form with ADC,ADD,SBC,SUB - extended syntax for 8bits index registers release v0.40 - huge bugfix session (local labels, macro, label tree, alias, ...) - documentation FR/EN! release v0.37 - Macro support with curly brackets - EQU is now managed as an alias - Added a PROTECT function to prevent overwrite - several bugfixes (memory issue, macro mixed with repeat, WRITE DIRECT) release v035 - many bugfixes, RASM is still in beta ;) - new directives WRITE, BANK, LET, READ, BRK, RUN, PRINT, STOP, CHARSET, INCBIN, SAVE release v032 - a few fixes, new directives incl48, incl49 to include a binary file and crunch it on the fly - windows executable early stage v027 - cleanup - licence - comment support - c++ wrapper early stage v026 - wip with conditionnal assembling - verbose mode, debug mode early stage v024 - local labels, duplicate labels - AMSDOS header wip - automatic save early stage v023 - INCLUDE fix - error management early stage v022 - conditionnal loops wip - symbol export early stage v021 - conditionnal assembling - instructions fix - memory leak fix early stage v019 - REPEAT wip early stage v018 - relative adress fix - CPR building wip - Visual Studio compatibility early stage v017 - mathematical functions premices - current assembly adress management early stage v016 (2017 february 16th) - all Z80 instructions supported (thinking about a public beta) - use CRC to speed up instruction early stage v015 - cleanup - a lot of instructions added - undocumented instructions added - (IX+n) management - flexible limit for binary output early stage v014 - state machine for parsing - fast translation with expression for constants, etc. early stage v013 - relative jumps - RST assembling as an expression - variables computed on the fly early stage v012 - CPR building - crunched zone relocation - local labels premices - single quote and double quotes - INCBIN early stage v010 - wip crunchzone early stage v009 - wip computeExpression early stage v008 - memory dump - wip push label, push expression early stage v007 - label premices - expression management early stage v004 - preprocessor creates a word list early stage v001 - preprocessor draft src/url: https://github.com/EdouardBERGE/rasm/releases/ |