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 >
Wrap
Text File
|
1994-10-23
|
5KB
|
123 lines
version 2.00 pl 7
Bugfixes by Thorsten Roskowetz:
Es werden
jetzt keine bsr mehr verwendet, wenn das Ziel ausserhalb des
32k-Limits liegt (ein ziemlich peinlicher Fehler, wie ich finde;
der ist wohl nur deshalb bisher nicht aufgefallen, weil JAS bei
so grossen Quellen sowieso schnell mal aus Speichermangel in
die Knie geht). Bra-Befehle koennen uebrigends immer noch
schiefgehen, aber die sollten wohl eher selten Probleme bereiten.
HCC schraenkt ja durch die Sprungtabellen bei switch-Anweisungen
die Groesse von Funktionen sowieso ein. Notfalls kann man ja
noch den -N Schalter setzen, dann klappt es.
Auch der `~`-Operator sollte jetzt funktionieren.
Desweiteren compilieren sowohl c68 als auch HCC die JAS Quellen
jetzt ohne Warnungen (wenn man die pingeligsten Warnungen von
c68 mal ausser Acht laesst).
version 2.00x6
pl 2 to 6 by jerry
small bugfixes and std interface
Änderungen an JAS, vorgenommen von Holger Weets
Stand: 18.11.92
2.0 -> 2.00x1:
- mit neuem Compiler, Optimizer und XDLibs übersetzt
--> statt 38 KB jetzt nur noch 32 KB lang
(noch ohne peephole changes)
- Versions-Meldung auf die anderen Komponenten angepasst
- Fehlermeldungen an die des Compilers angepasst, damit daß
Error-Handling unter C-Desk besser läuft
- statt 'bra.b' kann jetzt richtigerweise auch 'bra.s' geschrieben
werden. Gleiches gilt für alle '.b' Endungen.
- Datei Ein-/Ausgabe umgeschrieben, ist jetzt wesentlich schneller und
kürzer; jetzt ist er (immer noch ohne peephole changes) nur noch
28 KB lang ...
- JAS liest jetzt auch großgeschriebene Kommandos ein,
wie z.B. "MOVE.L D0, A0".
Vorgesehen war das bereits, aber funktioniert hat es nicht...
- Die Angabe von '-o <OUTFILE>' ist jetzt WIRKLICH optional; auch das
war bereits vorgesehen, funktionierte aber nicht.
- "dc.w <LABEL>" erzeugt einen Wortbreiten Eintrag in der Datei,
welcher nicht reloziert werden muß, und den Abstand von der
aktuellen Position zur Adresse des Labels angibt.
Dies ist äußerst vorteilhaft für die Erzeugung kurzer Programme, denn
XCC V2.00x5+ erzeugt dc's bei Switches in Form von Sprungtabellen,
bisher als ".dc.l <LABEL>, jetzt als ".dc.w <LABEL>"
-> die Tabelle wird nur halb so lang
-> der Zugriff ist schneller und kürzer
-> es können evtl. mehr kurze Branches erzeugt werden
- erkennt jetzt die Pseudo - Ops
CODE (*) TEXT, .TEXT -- Text-Segment-Anfang, optional mit Namen
DATA, .DATA -- Data-Segment-Anfang, optional mit Namen
BSS .BSS -- BSS-Segement-Anfang, optional mit Namen
XDEF (*), GLOBL, .GLOBL -- Symbol exportieren, Namensliste erlaubt
XREF (*) -- Symbol importieren, Namensliste erlaubt
(wurde nur aus Kompatibilitäts-
Gründen aufgenommen und ist nicht
notwendig, tut auch nichts)
END, .END -- Assemblierung beenden
ORG, .ORG -- aktuelle Adresse setzen
EVEN, .EVEN -- nachfolgende Daten auf gerade Adresse
EQU, .EQU -- Zuweisung <name> = <wert>
DC, .DC -- nachfolgende Daten speichern
DS, .DS -- Bytes reservieren
COMM, .COMM -- Größe eines externen Symbols
definieren
Die mit (*) gekennzeichneten Pseudo-Ops habe ich aus Kompatibilitäts-
Gründen ergänzt.
Auch hier ist die Groß-/Kleinschreibung egal.
2.00x1 -> 2.00x2:
- mit den neusten Komponenten übersetzt, jetzt auch mit Peepholechanges
->nur noch 25 KB...
- wenn eine leere Datei übersetzt werden sollte (leere Segmente, also
nur Pseudo-Ops), dann schrieb jas den Datenträger bis an den Rannd
voll, was bei einer Festplatte schon etwas dauern konnte...
Behoben.
2.00x2 -> 2.00x3:
- PseudoOp "PUBLIC" wird erkannt (ebenfalls Kompatibilität)
- wenn lokale Symbole in die Tabelle aufgenommen werden sollen (-L), dann
werden bei Level 1 jetzt nicht mehr nur die aussortiert, die mit einem
'L' beginnen, sondern auch solche, die mit einem 'T' beginnen (der TOP
erzeugt solche schon immer, aber Tony hat Joe davon wohl nichts erzählt)
2.00x3 -> 2.00x4:
- neue Option '-e ERRORFILE' eingebaut; Fehlermeldungen werden auf den
Bildschirm und in die Datei ERRORFILE geschrieben
ANMERKUNGEN:
- JAS kann auch C-Kommantare (/* ... */)
- '@' ist das Prefix fuer Oktal-Konstanten
- '$' ist das Prefix fuer Hex-Konstanten
- '<<' und '>>' werden erkannt (Shift-Operation)
- pro Ausdruck ist nur ein Label erlaubt (warum ?)
BUGS:
- jsr LABEL(pc)
wird nicht angemeckert, wenn LABEL nicht in der selben Datei
definiert ist, funktioniert aber trotzdem nicht!
- move.X LABEL(pc, d0.w), Y
funktioniert nicht, move.X 0(pc, d0.w), Y aber wohl
- pea 1000
erzeugt nicht, wie es sein sollte, absolute short, sondern
absolute long ...
FEHLT NOCH:
- die Erkennung dessen, was nun eigentlich in einer Zeile steht,
ist immer noch viel zu kompliziert
(JAS ist mit LEX und YACC geschrieben, was bei einem Assembler-
Scanner nun wirklich nicht nötig ist, und außerdem viel zu
langsam und lang)