Devpac Amiga - Version 2.12 Seit der Version 2.08 haben sich einige Details verändert: Editor: Shift-Amiga-A assembliert ohne den Optionen-Requester. Mit Shift-Amiga-L wird eine Datei ohne den ARP-Requester geladen (für diejenigen, die mit einer langsamen Festplatte arbeiten). Assembler: Es wurden mehrere Bugs korrigiert: mehrzeilige Makro-Aufrufe, Section-Namen in Anführungszeichen und BSS-Sektionen. Es können auch Dateinamen in Anführungszeichen an GenIm2 übergeben werden. Ausdrücke der Art lab1-lab2 sind nun erlaubt, falls sich lab1 und lab2 in anderen Sektionen befinden (die aber gleich sein müssen). Bei Verwendung von Wort- oder Long-sized Indirektionen werden Adressen auf Geradheit überprüft. Z.B. erzeugt MOVE.L 5,A6 einen Fehler. Die Syntax der Registerliste, die von MonAm in MOVEM-Listen erzeugt wird, wird nun von GenAm akzeptiert. | wird als bitweises OR erkannt (für alle C-Programmierer!) Symbole, die REG verwenden, können in Ausdrücken gebraucht werden. Es wird allerdings eine Warnung ausgegeben. Der Wert ist der gleiche wie in MOVEM op. Bei der Generierung von ausführbarem, absolutem Code kann ORG.W spezifiziert werden, wodurch alle Programm-Referenzen Short-Words werden. Aus Kompatibilitätsgründen wird RORG unterstützt. Es gibt eine Anzahl neuer Optimierungen, die der Assembler mit OPT O ausführen kann. Dies sind: 3 Kurzwort-Adressierung Referenzen auf absolute Adressen im Bereich 0-7FFF und FFFF8000 bis FFFFFFFF werden optimiert. 4 MOVEQ-Optimierung Anweisungen der Form MOVE.L ,Dn werden optimiert zu MOVEQ, wobei zwischen -128 und 127 liegen muß. 5 Quick-Optimierung Anweisungen der Form ADD# und SUB# werden zu ADDQ/SUBQ optimiert. 6 Warnung vor Short Branches Eigentlich keine Optimierung, OPT OW6+ in Kombination mit OP 01+ erzeugen Warnungen auf Vorwärts-Branches, die Sie selbst optimieren können. Die von jeder Optimierung generierten Warnungen können individuell durch Verwendung von OPT OWx+/OPT OWx- kontrolliert werden. Mit der neuen Option OPT i können Tippfehler entdeckt werden. Ist sie eingeschaltet, erzeugen indirekte, absolute Referenzen den Fehler '# wahrscheinlich nicht vorhanden' (= # probably missing). Wenn die Stand-Alone-Version des Assemblers gebraucht wird, können Labels in der Kommandozeile mit der Option -e definiert werden, gefolgt von einer oder mehrerer Zuweisungen, die durch Kommas oder Leerzeichen abgetrennt sind. Solche Definitionen werden übergeben, so als ob sie die zweite Zeile im Source-Code wären (nach Optionen). Beispiel: genim2 test -1 -e TYPE=4, OUTPUT=1 In Symbolen ist nun auch @ erlaubt, außer dann, wenn er von einer Zahl von 0-7 gefolgt wird, und als Anfang einer Oktalzahl steht. Dies ist für die Lattice-C-Anwender gedacht. WB 1.3-Anwender: GenIm kann resident sein. GenAm und MonAm sind es nicht, da sie nicht re-entrant sind. Debugger Verschiedene Bugs wurden korrigiert, so z.B. die Disassemblierung verschiedener BIST-Anweisungen, die Anzeige des Register-Fensters, Kompatibilität mit dem 68020/68030er, Ctrl-T auf Breakpoints, Signifikanz von Symbolen und Cross-Referenzen. Der Speicher wird nun komplett geprüt, bevor ein Lesezugriff erfolgt. Unvollständiger Speicher wird mit ** angezeigt. Alt-O wird wiederholt durch Drücken der Leertaste nach Anzeige der Nummern. Die Druckergrundeinstellung steht nun nicht mehr auf PRT: 68020/68030-Anwender: bitte beachten Sie, daß der Anweisungs-Cache während des Ladens von MonAm ausgeschaltet wird, um so unerwünschte Interaktionen mit dem Debugger zu vermeiden. Wenn der Debugger beendet wird, wird der Cache auf den Originalzustand zurückgestzt. Es wird nicht empfohlen, den Cache auszuschalten. Wenn Sie GenAm2 und MonAm2 auf PAL-Maschinen mit externem RAM verwenden, kann es sein, daß zwei Mauszeiger erscheinen. Der eine ist der Intuitions-Zeiger, der andere ist der Zeiger, der vom gerade Programm verwendet wird. Keine Angst: das ist ein harmloser Fehler in Intuition.