Desert Drain - 68000 Disassembler 
Informationen zu den Versionen 1.2 und 1.3 
 
Seit der Version 1.1 hat sich einiges gendert. Hier das Wichtigste 
in Stichworten: 
 
- Laden und Verarbeiten von Resource-Dateien. Es wird Code erzeugt der 
  von Assemblern zu relozierbaren Programmen weiterverarbeitet werden 
  kann. Beispiele fr ST-Pascal plus und Assembler liegen bei. 
- Unkomprimierte Monochrombilder knnen als DATA umgewandelt, und so 
  in disassemblierte RSC-Files eingebaut werden. 
- Relozierte Adressen im DATA-Bereich werden jetzt vor dem bersetzen 
  der DATAS gesetzt. So ist es mglich, da ,wenn die Inhalte dieser  
  Adressen ins DATA-Segment zeigen, die dazugehrigen Label richtig  
  gesetzt werden. 
- Erweiterte Fileselectboxen knnen auch bei TOS-Versionen kleiner 
  1.04 wie fsel_exinp aufgerufen werden. 
- Auf Wunsch erscheinen alle Dialogboxen nicht mehr in der 
  Bildschirmmitte, sondern dort wo die Maus steht. 
- Die Dialogboxen knnen auch verschoben werden. 
- Der Disassembler entschlsselt nun auch 68010er Opcodes und die 
  mulx.l und divx.l Befehle des 68020. 
- Die Hilfsdatei 'DS_HILFE.TXT' wurde nochmals berarbeitet. 
- Der Fehler bei 'Symbol ersetzen' wurde behoben. (Entschuldigt bitte 
  meine Schusseligkeit. Ich habe einfach ein 'local' wegoptimiert und 
  siehe da, es lief nicht mehr.) 
- Bei "Trap #2" werden die Funktionen vq_gdos und vq_driver richtig 
  erkannt. 
- XBRA-Kennungen werden nun auch im DATA-Bereich erkannt! 
  Warum? siehe ST-Computer 12/91 S.156 : MEMWATCH-Modifikationen 
  kommen auer Mode 
- Trap's mit #1,#13 und #14 knnen auch bei 'pea' und 'move.? #?,(sp)' 
  entschlsselt werden. 
- Und die beste Neuerung: Der Editor wirft keine Bomben mehr. Es hat 
  ca. 5 h gedauert bis ich den Fehler fand. 
  Hchstwahrscheinlich (!?!) war es ein "stack overruns heap" ! 
- Das Pfadsystem wurde gendert. Man kann nun auf INF- /Hilfs- und 
  Quelldatei zugreifen ohne den aktuellen Ordner zu wechseln. 
- move R,ccr und move R,sr gibt es nicht mit Adressregister direkt. 
  sub.b A,D/add.b A,D und cmp.b A,D ist auch nicht mehr mglich. 
  Wurde gelegentlich bei DATA-Blcken im TEXT-Segment erkannt. 
  Im selben Fall traten Fehler bei moveq und den Adressierungsarten 
  d(A,R) und d(PC,R) auf. 
- Bei 'movep.? k(A),D' wurden die Nummern der Register vertauscht. 
- Und schon wieder fand ich ganz berraschend einen neuen Opcode: 
  z.B.  lsl.w (A0)      lsl.w #1,(A0)      mulu #2,(A0) 
- Gelegentlich kam es vor, da der Disassembler einige Zeilen 
  verschluckte. Ich wei zwar nicht mehr genau woran es lag, aber  
  jetzt ist es weg! 
 
 
 
Neuerungen zu Desert Drain 1.3 
 
Es ist da! Nach 5 Monaten Wartezeit halte ich das neue Profibuch in 
Hnden. Ich hatte leider kein altes und habe deshalb die meisten 
Informationen zu Programmheadern, Symbol- und Reloziertabellen durch 
sinnvolles Suchen in Programmen herausgefunden. Aber ab jetzt werden 
die 'offiziellen' Dokumentationen verwendet. Folgende Neuerungen haben 
sich hierdurch noch zustzlich ergeben: 
- Eine Reloziertabelle wird nur noch gelesen, wenn im Programmheader 
  der entsprechende Eintrag stimmt. (26.Wort = 0 -> Reloc) 
- Eine Reloziertabelle endet immer mit einem Nullbyte und nicht 
  weiter. Es gibt Programme, bei denen geht ab da noch weiter. 
  SAGROTAN meldet einen Verdacht auf einen Virus! 
- Es gibt doch tatschlich eine von DR und Atari abgesegnete Symbol- 
  tabelle! Warum benutzt die blo keiner? 
- Im System-Info erhlt man nun unter 'Linea' noch weitere Infos. 
- Die Hilfsdatei wurde erheblich erweitert. Sie ist schon viel zu lang! 
 
 
- Die Systemvariablen werden nun auch an 24 Bit Adressen erkannt. 
  z.B. $FF8800 anstatt $FFFF8800 
- Am meisten strten bisher die Databereiche im Textsegment. Ab jetzt 
  kann man diese Programmiererabart in den Griff bekommen, indem man 
  die entsprechenden Adressen herausfischt und den Disassembler damit 
  fttert. 
- Bei groen Quellen strzte Desert Drain gelegentlich auf Rechnern 
  mit viel Ram bereits beim Laden ab. Der Grund liegt in den Befehlen 
  BGET, BPUT und BMOVE. Hchstwahrscheinlich wird hier whrend der 
  Abarbeitung eine Garbage-Collection durchgefhrt. Basic lt gren! 
- Bei Verwendung von XCONTROL gibt es fters das Problem, da nicht 
  mehr gengend Speicher frei ist. Ihr knnt nun selbst bestimmen 
  wieviel RAM Ihr dem Disassembler zugesteht. 
 
