home *** CD-ROM | disk | FTP | other *** search
/ Computer Club Elmshorn Atari PD / CCE_PD.iso / mac / 1000 / CCE_1024.ZIP / CCE_1024 / SOZBIN07.LZH / SOZDISTR / DOC / JAS.CHG < prev    next >
Text File  |  1994-10-23  |  5KB  |  123 lines

  1. version 2.00 pl 7
  2. Bugfixes by Thorsten Roskowetz:
  3.  
  4.         Es werden
  5.     jetzt keine bsr mehr verwendet, wenn das Ziel ausserhalb des
  6.     32k-Limits liegt (ein ziemlich peinlicher Fehler, wie ich finde;
  7.     der ist wohl nur deshalb bisher nicht aufgefallen, weil JAS bei
  8.     so grossen Quellen sowieso schnell mal aus Speichermangel in
  9.     die Knie geht).  Bra-Befehle koennen uebrigends immer noch
  10.     schiefgehen, aber die sollten wohl eher selten Probleme bereiten.
  11.     HCC schraenkt ja durch die Sprungtabellen bei switch-Anweisungen
  12.     die Groesse von Funktionen sowieso ein.  Notfalls kann man ja
  13.     noch den -N Schalter setzen, dann klappt es.
  14.     Auch der `~`-Operator sollte jetzt funktionieren.
  15.     Desweiteren compilieren sowohl c68 als auch HCC die JAS Quellen
  16.     jetzt ohne Warnungen (wenn man die pingeligsten Warnungen von
  17.     c68 mal ausser Acht laesst).
  18.  
  19.  
  20. version 2.00x6
  21. pl 2 to 6 by jerry
  22.     small bugfixes and std interface 
  23.  
  24.  
  25. Änderungen an JAS, vorgenommen von Holger Weets
  26. Stand: 18.11.92
  27.  
  28. 2.0 -> 2.00x1:
  29.    - mit neuem Compiler, Optimizer und XDLibs übersetzt
  30.       --> statt 38 KB jetzt nur noch 32 KB lang
  31.           (noch ohne peephole changes)
  32.    - Versions-Meldung auf die anderen Komponenten angepasst
  33.    - Fehlermeldungen an die des Compilers angepasst, damit daß
  34.      Error-Handling unter C-Desk besser läuft
  35.    - statt 'bra.b' kann jetzt richtigerweise auch 'bra.s' geschrieben
  36.      werden. Gleiches gilt für alle '.b' Endungen.
  37.    - Datei Ein-/Ausgabe umgeschrieben, ist jetzt wesentlich schneller und
  38.      kürzer; jetzt ist er (immer noch ohne peephole changes) nur noch
  39.      28 KB lang ...
  40.    - JAS liest jetzt auch großgeschriebene Kommandos ein,
  41.      wie z.B. "MOVE.L D0, A0".
  42.      Vorgesehen war das bereits, aber funktioniert hat es nicht...
  43.    - Die Angabe von '-o <OUTFILE>' ist jetzt WIRKLICH optional; auch das
  44.      war bereits vorgesehen, funktionierte aber nicht.
  45.    - "dc.w <LABEL>" erzeugt einen Wortbreiten Eintrag in der Datei,
  46.      welcher nicht reloziert werden muß, und den Abstand von der
  47.      aktuellen Position zur Adresse des Labels angibt.
  48.      Dies ist äußerst vorteilhaft für die Erzeugung kurzer Programme, denn
  49.      XCC V2.00x5+ erzeugt dc's bei Switches in Form von Sprungtabellen,
  50.      bisher als ".dc.l <LABEL>, jetzt als ".dc.w <LABEL>"
  51.      -> die Tabelle wird nur halb so lang
  52.      -> der Zugriff ist schneller und kürzer
  53.      -> es können evtl. mehr kurze Branches erzeugt werden
  54.  
  55.    - erkennt jetzt die Pseudo - Ops
  56.         CODE (*) TEXT, .TEXT        -- Text-Segment-Anfang, optional mit Namen
  57.         DATA,  .DATA                -- Data-Segment-Anfang, optional mit Namen
  58.         BSS .BSS                    -- BSS-Segement-Anfang, optional mit Namen
  59.         XDEF (*), GLOBL, .GLOBL     -- Symbol exportieren, Namensliste erlaubt
  60.         XREF (*)                    -- Symbol importieren, Namensliste erlaubt
  61.                                        (wurde nur aus Kompatibilitäts-
  62.                                        Gründen aufgenommen und ist nicht
  63.                                        notwendig, tut auch nichts)
  64.         END, .END                   -- Assemblierung beenden
  65.         ORG, .ORG                   -- aktuelle Adresse setzen
  66.         EVEN, .EVEN                 -- nachfolgende Daten auf gerade Adresse
  67.         EQU, .EQU                   -- Zuweisung <name> = <wert>
  68.         DC, .DC                     -- nachfolgende Daten speichern
  69.         DS, .DS                     -- Bytes reservieren
  70.         COMM, .COMM                 -- Größe eines externen Symbols
  71.                                        definieren
  72.     Die mit (*) gekennzeichneten Pseudo-Ops habe ich aus Kompatibilitäts-
  73.     Gründen ergänzt.
  74.     Auch hier ist die Groß-/Kleinschreibung egal.
  75. 2.00x1 -> 2.00x2:
  76.    - mit den neusten Komponenten übersetzt, jetzt auch mit Peepholechanges
  77.      ->nur noch 25 KB...
  78.    - wenn eine leere Datei übersetzt werden sollte (leere Segmente, also
  79.      nur Pseudo-Ops), dann schrieb jas den Datenträger bis an den Rannd
  80.      voll, was bei einer Festplatte schon etwas dauern konnte...
  81.      Behoben.
  82. 2.00x2 -> 2.00x3:
  83.    - PseudoOp "PUBLIC" wird erkannt (ebenfalls Kompatibilität)
  84.    - wenn lokale Symbole in die Tabelle aufgenommen werden sollen (-L), dann
  85.      werden bei Level 1 jetzt nicht mehr nur die aussortiert, die mit einem
  86.      'L' beginnen, sondern auch solche, die mit einem 'T' beginnen (der TOP
  87.      erzeugt solche schon immer, aber Tony hat Joe davon wohl nichts erzählt)
  88. 2.00x3 -> 2.00x4:
  89.    - neue Option '-e ERRORFILE' eingebaut; Fehlermeldungen werden auf den
  90.      Bildschirm und in die Datei ERRORFILE geschrieben
  91.  
  92.  
  93. ANMERKUNGEN:
  94.    - JAS kann auch C-Kommantare (/* ... */)
  95.    - '@' ist das Prefix fuer Oktal-Konstanten
  96.    - '$' ist das Prefix fuer Hex-Konstanten
  97.    - '<<' und '>>' werden erkannt (Shift-Operation)
  98.    - pro Ausdruck ist nur ein Label erlaubt (warum ?)
  99.  
  100.  
  101. BUGS:
  102.    - jsr LABEL(pc)
  103.      wird nicht angemeckert, wenn LABEL nicht in der selben Datei
  104.      definiert ist, funktioniert aber trotzdem nicht!
  105.    - move.X LABEL(pc, d0.w), Y
  106.      funktioniert nicht, move.X 0(pc, d0.w), Y aber wohl
  107.    - pea 1000
  108.      erzeugt nicht, wie es sein sollte, absolute short, sondern
  109.      absolute long ...
  110.  
  111. FEHLT NOCH:
  112.    - die Erkennung dessen, was nun eigentlich in einer Zeile steht,
  113.      ist immer noch viel zu kompliziert
  114.      (JAS ist mit LEX und YACC geschrieben, was bei einem Assembler-
  115.      Scanner nun wirklich nicht nötig ist, und außerdem viel zu
  116.      langsam und lang)
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.