1 Ostatnio edytowany przez twh (2006-08-26 09:31:09)

Hello my polish friends,

Quite a lot of improvements and changes has been introduced with MADS 1.7.4. Currently I'm using 1.7.2. Could you please help me to translate the polish release notes? A short summary of the most important changes would be enough. Thanks for your help and for that great cross assembler!

\twh

1.7.4

- naprawione działanie dyrektywy .PRINT, dotąd mogła nie wyświetlić wartości etykiet zaczynającej się na literę 'A','B','C','D','E','F','G','H','L','T','V'
- zablokowane działanie dyrektywy .DS w blokach .RELOC i SDX oraz naprawione jej działanie z instrukcją warunkową .IF (IFT)
- usprawnione przeszukiwanie ścieżek dostępu -i:path (można odwoływać się do podkatalogów tam zawartych)
- w przypadku wystąpienia błędów podczas asemblacji wyświetlane są one wszystkie a nie tylko pierwszy z błędów
- poprawione zauważone błędy, m.in. użycie makra w pliku .RELOC mogło spowodować w pewnych sytuacjach zapis błędnej informacji o relokownych adresach
- uproszczony został sposób kończenia procedur wykorzystujących stos programowy MADS-a, nie ma potrzeby używania dyrektywy .EXIT, a dyrektywa .ENDP nie powoduje już dodatkowych działań na stosie programowym
- dodana nowa dyrektywa .SYMBOL jako odpowiednik bloku aktualizacji BLK UPDATE NEW SYMBOL 'SYMBOL', dyrektywę .SYMBOL można użyć w dowolnym miejscu programu
- dodane automatyczne wywoływanie bloków aktualizacji (ADDRESS, EXTERNAL, PUBLIC, SYMBOL) dla .RELOC i SDX
- dodane nowe dyrektywy .BY, .WO, .HE, .EN, .SB (zapożyczone z MAE)
- dodany nowy przełącznik OPT ?- (domyślnie) etykiety ze znakiem zapytania (?labels) traktowane są jako etykiety tymczasowe, OPT ?+ etykiety ze znakiem zapytania (?labels) traktowane są jako lokalne i tymczasowe, nazwą obszaru lokalnego jest ostatnio użyta etykieta bez znaku zapytania
- dodane dyrektywy .LEND, .PEND, .AEND, .WEND, .TEND, .SEND jako odpowiedniki dyrektyw .ENDL, .ENDP, .ENDW, ENDW, .ENDT, .ENDS
- dodane nowe dyrektywy .GLOBAL i .GLOBL jako odpowiednik (zamiennik) dyrektywy .PUBLIC
- dodana optymalizacja skoków warunkowych JEQ, JNE, JPL, JMI, JCC, JCS, JVC, JVS, jeśli jest taka możliwość wybierany jest skok krótki typu BEQ, BNE, BPL, BMI, BCC, BCS, BVC, BVS
- dodany nowy domyślny separator znak spacji dla przekazywanych parametrów do .PROC, .MACRO, dotąd był to tylko znak przecinka
- usprawnienia dotyczące przekazywania parametrów do makr i procedur, np. paramatrem makra może być dyrektywa zwracająca wartość wyrażenia lub symbol licznika pętli '#'

  :12 makro #

- dodana możliwość użycia znaku spacji jako separatora dla .VAR, .EXTRN, np.

  .EXTRN a b c d .word
  .VAR i = 1  j = 2 .byte
  .VAR a b c d .byte

- rozszerzona składnia dla .VAR umożliwiająca zaincjowanie zmiennych stałą, np.:

 .var i = 10  j = 12 .byte
 .var a , b = 2 .byte

- dodane nowe dyrektywy .WHILE, .ENDW pozwalające na automatyczne wygenerowanie kodu dla pętli WHILE, np.:

         ldx #$ff
 .while .word adr < #$bc40+40*24
         stx $bc40
    adr: equ *-2
         inw adr
 .endw

- dodane nowe dyrektywy .TEST, .ENDT pozwalające na automatyczne wygenerowanie kodu dla warunku, np.:

 .test .byte (@>=#'a')
  .test .byte (@<=#'z')
      
  .endt
 .endt

1.7.3

- dodana możliwość zmiany adresu asemblacji .PROC lub .LOCAL bez zmiany adresu ładowania
- usunięto optymalizację kodu dla makro rozkazów MWA itp., która mogła powodować w szczególnych przypadkach zapętlenie się MADS-a
- dodane dyrektywy .REG, .VAR pozwalające określić sposób przekazywania parametrów do procedur (.REG przez rejestry CPU, .VAR przez zmienne)
- dodana dyrektywa .VAR pozwalająca na deklarację zmiennych w blokach .PROC, .LOCAL, zadeklarowane zmiennne są fizycznie odkładane na końcu takiego bloku
- rozszerzona składnia dla dyrektywy .EXTRN, np. EXTRN label1,label2,label3... TYPE
- jesli brak deklaracji etykiet dla stosu programowego MADS-a, przyjmowane są domyślne wartości @PROC_VARS_ADR=$0500, @STACK_ADDRESS=$0600, @STACK_POINTER=$FE
- dodany repeat_counter #, który można używać zamiennie z dyrektywą .R
- wystapi błąd '^ not relocatable' przy próbie relokacji rozkazu 'lda ^label'
- dodana obsługa symboli publicznych dla stałych (C-ONSTANT) w blokach PUBLIC
- poprawiona relokowalnosc dla tablic .ARRAY, danych stworzonych przez .STRUCT, parametrów przekazywanych do procedur przez stała #

2

So, here we go!/No to lecim na Szczecin!

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.
I Ty zostaniesz big endianem...

3

dzięki Miker

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

4

Thank you very much!!!

\twh

5

@twh:

ask if something isn't clear, i'm using English only from time to time. ;)

I Ty zostaniesz big endianem...

6 Ostatnio edytowany przez twh (2006-08-27 15:59:42)

@miker

Yeah. I would say I have no trouble with your english - looks good for me, as I am also not a english speaker *g. My biggest issue is that I have partially no idea how the new functions and bug fixes can be used. I have no possibility to just check the manual .. because it's written polish :) However, I feel that the MADS is an incredibly great cross assembler. But for now I'm mostly using the "XASM" inside MADS. And for that Fox has created a little english introduction.

\twh

7

twh: Maybe you would like this. :)

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.