1.7.4.
- .PRINT directive is now fixed, there was a bug with displaying labels that started with 'A','B','C','D','E','F','G','H','L','T','V'
- .DS directive is now blocked in .RELOC & SDX blocks; it now works correctly with .IF (IFT) statement
- enhanced looking for path (-i:path) [you may know call the directories listed there]
- all of the assembly-errors are now displayed (not only the first one)
- fixed some issues e.g. using a macro in .RELOC file might cause sometimes wrong address-data (-> wrong relocation)
- simplified ending of procedures which are using the prosgram-stack in MADS, no need to use .EXIT and the .END directive doesn't cause additional mess with this stack
- added new .SYMBOL directive as counterpart of update-block BLK UPDATE NEW SYMBOL 'SYMBOL', it may be used anywhere in program
- added auto-calling of update blocks (ADDRESS, EXTERNAL, PUBLIC, SYMBOL) for .RELOC and SDX
- added new directives (.BY, .WO, .HE, .EN, .SB - borrowed from MAE)
- addes new switch OPT ?- (default) - the labels with "?" (?labels) are treated as temporary ones; OPT?+ - these labels are treated as local and temporary ones, last used label (without "?") is the name of the local area
- added .LEND, .PEND, .AEND, .WEND, .TEND, .SEND directives as counerparts of .ENDL, .ENDP, .ENDW, ENDW, .ENDT, .ENDS
- added .GLOBAL and GLOBL directives as counterpart (equivalent) of . PUBLIC
- conditional jumps (JEQ, JNE, JPL, JMI, JCC, JCS, JVC, JVS) are optimized and they're changed to short ones (BEQ, BNE, BPL, BMI, BCC, BCS, BVC, BVS)
- added new default char to parametres put on .PROC and .MARCO (the old one was comma ",")
- enhanced putting parametres to procedures and macros e.g. the macro-parameter can be derective returning the value of expression or the symbol of the loop-counter:
:12 makro #
- it's now possible to use spaces as separators in .VAR and .EXTRN e.g.:
.EXTRN a b c d .word
.VAR i = 1 j = 2 .byte
.VAR a b c d .byte
- extended syntax of .VAR enabling initialization of variables with constants e.g.
.var i = 10 j = 12 .byte
.var a , b = 2 .byte
- added new .WHILE, .ENDW directives enabling automatic code-generation for WHILE loop e.g.:
ldx #$ff
.while .word adr < #$bc40+40*24
stx $bc40
adr: equ *-2
inw adr
.endw
- added new .TEST, .ENDT directives enabling automatic code-generation for a condition e.g.
.test .byte (@>=#'a')
.test .byte (@<=#'z')
.endt
.endt
1.7.3.
- added the possibility to change the assembly-address of .PROC or .LOCAL without changling loading-address
- removed code-optimizing for macros like MWA (and so on); hat caused sometimes freezing of MADS
- added .REG and .VAR directives telling the way of putting parametres into procedures and macros (.REG - using CPU-registers and .VAR - using variables)
- added .VAR directive to declare the variables in .PORC and .LOCAL blocks; declared variables are physically stored at the end of tehe blocks
- extented syntax of .EXTRN directive e.g. EXTRN label1,label2,label3... TYPE
- if no labels of MADS' program-stack are declared then MDS set them to: @PROC_VARS_ADR=$0500, @STACK_ADDRESS=$0600, @STACK_POINTER=$FE by default
- added repeat_counter # which may be same as .R directive
- error '^ not relocatable' occurs when trying to relocate 'lda ^label'
- added handling of public symbols for constants (C-ONSTANT) in PUBLIC blocks
- corrected relocability for arrays .ARRAY, data made by .STRUCT and parametres putting to procedures by the "#" constant.