home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: Alpha / Whiteline Alpha.iso / progtool / assemblr / re_ass / dokument / reassemb.doc
Encoding:
Text File  |  1994-09-22  |  24.4 KB  |  616 lines

  1.  
  2.                     **********************************
  3.                     *   8-bit CPU Reassembler-Paket  *
  4.                     * incl. PurePASCAL GEM-Quelltext *
  5.                     **********************************
  6.  
  7. Programmautor :
  8.  
  9. Jens Schulz
  10. Rosenstraße 5
  11. D-25368 Kiebitzreihe
  12. Deutschland
  13.  
  14. ****************************************************************************
  15.  
  16.            Reassembler-Paket für folgende 8-bit CPU-Typen :
  17.            ------------------------------------------------
  18.  
  19.        - INTEL 8051/52/252/535 Microcontroller
  20.        - INTEL 8048 Microcontroller-Serie
  21.        - Zilog Z-80 CPU
  22.        - Mostek/Rockwell 6502-CPU
  23.        - Motorola 68HC11-Microcontroller
  24.        - INTEL 8080/85-CPU
  25.  
  26. *****************************************************************************
  27.  
  28. System: ATARI ST/TT/FALCON
  29.         auflösungsunabhängig ab 640*400 Punkte
  30.         multitaskingfähig
  31.         mind. 1 MB RAM
  32.  
  33. ****************************************************************************
  34.  
  35.                      Diese Programme sind Freeware
  36.  
  37. Weitergabe in PD-Sammlungen erwünscht. Sollten die Programme in kommerziellen
  38. Anwendungen genutzt werden, so bedarf dies meiner schriftlichen Genehmigung
  39. (Flasche Wein könnte förderlich sein).
  40.  
  41. ****************************************************************************
  42.  
  43.               Was ist ein Reassembler, um alles in der Welt ?
  44.              ------------------------------------------------
  45.  
  46. Bevor wir diese Frage klären, stelle ich Ihnen erstmal eine Frage :
  47.  
  48. Sind Sie GFA- oder OMIKRON BASIC-Programmierer und möchten Sie die GEM-
  49. Programmierung unter PurePASCAL lernen. Wollen Sie endlich mal saubere
  50. GEM-Applikationen schreiben und die GEM-POKErei a la BASIC vergessen ?
  51.  
  52. Wenn ja :
  53. --------
  54.  
  55. Dann können Sie den PurePASCAL GEM-Quelltext für Ihre neuen Programme
  56. nutzen. Ich selbst habe diese Programme in ca. 1 Monat geschrieben, um
  57. mit dem GEM-Handling von PurePASCAL vertraut zu werden. Die Programme
  58. umfassen alle wichtigen Funktionen zur Verwaltung von GEM-Programmen.
  59. Vorallem ist dies die Verwaltung von GEM-Events incl. Redraw-Behandlung,
  60. sowie die auflösungsunabhängigen Rasterkopierfunktionen mit VDI 109.
  61.  
  62. 1 Monat ist eine relativ kurze Zeit für ein solches Projekt. Dies war
  63. natürlich nur möglich, weil ich bereits früher in C und Assembler GEM-
  64. Programme geschrieben hatte.
  65.  
  66. Das Programm stellt Ihnen also ein GEM-Grundgerüst zur Verfügung. Sie
  67. können es beliebig verbessern (z.B. Fensterdialoge/Flying dials). Ich
  68. erhebe keinen Anspruch auf besonders geniale Programmierung, dies
  69. überlasse ich anderen.
  70.  
  71.  
  72.                            Reassembler
  73.                            -----------
  74.  
  75. Sollten Sie sich bisher nicht mit Assemblern bzw. Maschinensprache ausein-
  76. ander gesetzt haben, dann können Sie wenigstens die PurePASCAL-GEM-Teile
  77. noch für sich nutzen.
  78.  
  79. Die nachfolgenden Teile sind dann nur noch etwas für Assembler-Freaks :
  80. -----------------------------------------------------------------------
  81.  
  82. Ein Reassembler beschäftigt sich mit der Entschlüsselung von Maschinen-
  83. programmen, in diesem Fall mit der Decodierung von Programmen von sechs
  84. 8-bit CPU-Familien.
  85.  
  86. Ein Reassembler ist ein erweiterter Disassembler, d.h. er ist in der
  87. Lage, neben den Befehlen auch sämtliche Label (Sprungmarken) einzusetzen.
  88. Statt der Adressen sind nun Label im decodierten Maschinenprogramm. Dies
  89. hat den großen Vorteil, daß die Teile adreßunabhängig werden und bequem
  90. in einen Assembler neu codiert werden können.
  91.  
  92. Der Z80 und 6502-Reassembler verfügen zusätzlich über die Möglichkeit
  93. Symboltabellen bei der Reassemblierung zu nutzen. So können z.B.
  94. wichtige ROM-Adressen und Peripherie-Adressen benannt werden.
  95.  
  96. Außerdem erleichert ein Reassembler-Listing die Lesbarkeit von Programmen
  97. wesentlich.
  98.  
  99.                       Wann nutzt man einen Reassembler ?
  100.                       ----------------------------------
  101.  
  102. 1. sehr seltener Fall :
  103.  
  104.    Man glaubt, daß ein Hochsprachen-Compiler ineffektiv oder falsch codiert,
  105.    und möchte dies herausbekommen.
  106.  
  107. 2. seltener Fall :
  108.  
  109.    Man hat den Assembler-Sourcecode seiner letzten Maschinensteuerung
  110.    verschlampt oder wegformatiert.
  111.  
  112. 3. häufigster Fall :
  113.  
  114.    Ein Konkurrent hat ein geniales Programm geschrieben. Mit einem
  115.    Reassembler tut man alles, um dessen Hyperpokes zu knacken.
  116.  
  117. 4. Worst case :
  118.    Konkurrent hat sich sein Programm verschlüsselt bzw. selbstmodifi-
  119.    zierenden Code eingebaut. Da hilft auch ein Reassembler wenig.
  120.    Manche Microcontroller können außerdem der Zugriff auf das interne
  121.    ROM sperren (z.B. 68HC11), da hat man wieder Pech.
  122.  
  123. *****************************************************************************
  124.  
  125.                      Allgemeine Bedienung der Reassembler
  126.                      -----------------------------------
  127.  
  128. Die sechs Reassembler ähneln sich sehr, wenn man einen verstanden hat,
  129. sind die anderen fast genauso zu bedienen. Die Unterschiede werden in
  130. einer gesonderten Dokumentation in jedem Reassembler-Ordner angesprochen.
  131.  
  132.  
  133. 1.) Maximale Codegröße für die Reassembler
  134. ------------------------------------------
  135.  
  136.     Die maximale Codegrösse ein Blocks ist auf 8 KByte begrenzt. Was, nur
  137.     8 KB ? Richtig gelesen, denn 8 KB Code ergeben bereits mehrere tausend
  138.     Zeilen Assembler-Mnemonics.
  139.  
  140.     Es ist aber möglich sich mehrere 8 KB Blöcke zu reassemblieren und in
  141.     einem Editor zusammenzufügen. Das Labelhandling erlaubt die Verwaltung
  142.     von 64 KB Labeladressen aus mehreren Blöcken.
  143.  
  144. 2.) Wie reassembliere ich meinen Code ?
  145. ---------------------------------------
  146.  
  147.     Max. 8 KByte große Binärdatei erzeugen, die die Endung (.BIN) hat.
  148.     Unter dem Menüpunkt Datei, die entsprechende Code-Datei einladen.
  149.  
  150.     Unter Menüpunkt Datei, den Punkt 'Reassemblieren' aufrufen. Warten
  151.     bis der Reassembler fertig ist, geht trotz PASCAL recht flott.
  152.  
  153.     Danach steht der dekodierte Code samt symbolischer Label im
  154.     Ausgabefenster. Per Fensterpfeilen-/slider oder per Cursortasten
  155.     kann jetzt beliebig geblättert werden.
  156.  
  157.     Das Fenster kann verkleinert und verschoben werden.
  158.  
  159. 3.) Wie setze ich eine neue Startadresse (ORG) ?
  160. ------------------------------------------------
  161.  
  162.     Dummerweise fangen die meisten Maschinenprogramme nicht auf Adresse 0
  163.     an bzw. sind nicht adressunabhängig.
  164.  
  165.     Unter Menüpunkt Datei, den Punkt 'Startadresse setzen' anwählen.
  166.  
  167.     Neue Basisadresse (ORG) in HEXADEZIMAL eingeben z.B. C000
  168.     Danach erfolgt eine automatische Neu-Reassemblierung des Codes ab
  169.     Adresse $C000.
  170.  
  171. 4.) Wie überspringe ich Teile in der Binärdatei (File-Offset)
  172. -------------------------------------------------------------
  173.  
  174.     Wir haben gemerkt das uns der Anfang der Binärdatei überhaupt
  175.     nicht interessiert, was tun.
  176.  
  177.     1. Möglichkeit : Datei mit Debugger einkürzen (müsig)
  178.  
  179.     2. Möglichkeit : Datei-Offset setzen
  180.  
  181.     Unter Menüpunkt Datei, den Punkt 'Startadresse setzen' anwählen.
  182.  
  183.     Start ab Datei-Byte-Nr. in HEXADEZIMAL eingeben z.B. 0100
  184.     Danach erfolgt eine automatische Neu-Reassemblierung des Codes,
  185.     allerdings werden 256 Bytes der Datei übersprungen und nicht
  186.     reassembliert.
  187.  
  188. 5.) Wie begrenze ich die 'Flut' der Reassembler-Zeilen ?
  189. --------------------------------------------------------
  190.  
  191.     Man kann auch die max. Anzahl der zu reassemblierenden Bytes
  192.     einschränken. Standardmäßig wird immer die max. Dateigröße
  193.     genommen.
  194.  
  195.     Unter Menüpunkt Datei, den Punkt 'Startadresse setzen' anwählen.
  196.  
  197.     Max. Reassemblierlänge. in Dezimal eingeben z.B. 100
  198.     Danach erfolgt eine automatische Neu-Reassemblierung des Codes,
  199.     allerdings werden nur max. 100 Bytes der Datei reassembliert
  200.  
  201. 6.) Wie komme ich an eine ganz bestimmte Adresse im Code ?
  202. ----------------------------------------------------------
  203.  
  204.     Mit Blättern kommt man meistens nicht genau auf eine bestimmte
  205.     Adresse im Code.
  206.  
  207.     Unter Menüpunkt Datei, den Punkt 'Adresse anspringen' anwählen.
  208.  
  209.     Adresse in HEXADEZIMAL eingeben z.B. 0E00. Danach erfolgt ein Sprung
  210.     zu dieser Reassembler-Adresse (1. Adresse >= der angegebenen Adresse).
  211.     Maschinenbefehle haben oft die Angewohnheit mehrere Adressen zu über-
  212.     lappen.
  213.  
  214.  
  215. 7.) Wie werde ich Opcodes und Adressen im Listing wieder los ?
  216. --------------------------------------------------------------
  217.  
  218.     Das Reassembler-Listing zeigt mehr an, als man für eine spätere
  219.     Neu-Assemblierung gebrauchen kann. Der Assembler würde reichlich
  220.     ins Husten kommen, also weg mit den Adressen und den Opcodes.
  221.  
  222.     Unter Menüpunkt Datei, den Punkt 'Adressen einblenden' anwählen.
  223.  
  224.     Hier kann man wahlweise Adressen/Opcode ein- oder ausblenden.
  225.  
  226. 8.) Wie bekomme ich das Reassembler-Listing als Datei oder Ausdruck ?
  227. ---------------------------------------------------------------------
  228.  
  229.     Man kann sich jeder Zeit das Reassembler-Listing aus Datei oder
  230.     auf den Drucker ausgeben lassen. Beachten Sie, das im 'Worst case'
  231.     mehrere tausend Zeilen Listing entstehen können.
  232.  
  233.     Entweder reichlich Papier/Disketten kaufen oder klugerweise der
  234.     max. Reassemblierlänge einschränken.
  235.  
  236.     Beide Punkte sind unter dem Menüpunkt Ausgabe zu erreichen. Nach
  237.     der Anwahl muß neu reassembliert werden.
  238.  
  239. ****************************************************************************
  240.  
  241.                  Labelhandling / Symbolische Reassemblierung
  242.                  -------------------------------------------
  243.  
  244.     Allen Reassemblern steht das Menü 'Label' zur Verfügung. Der Z-80
  245.     und 6502-Assembler besitzen zusätzlich noch die Möglichkeit der
  246.     symbolischen Reassemblierung.
  247.  
  248.     1.) Labelhandling
  249.     -----------------
  250.  
  251.     Alle Labelmarkierungen werden in einem 64 KB großen Array gehalten.
  252.     Normalerweise wird dieses Array bei jedem Reassemblerlauf gelöscht.
  253.  
  254.     Unter dem Menü 'Label' und dem Menüpunkt 'Label automatisch löschen'
  255.     wird die Löschung ein- oder ausgeschaltet.
  256.  
  257.     Welchen Sinn macht es die Labelmarkierungen nicht zu löschen ?
  258.  
  259.     Wenn man mehrere verschiedene Codedateien reassembliert, dann entstehen
  260.     jeweils Labelzugriffe/Sprünge, die außerhalb dieses Codeblocks liegen
  261.     können.
  262.  
  263.     Diese Labelverweise kann man für anderen Codedateien mitnutzen. Sinn
  264.     macht dies natürlich nur, wenn diese Codedateien in einem Zusammen-
  265.     hang stehen.
  266.  
  267.     2.) Labeltabelle speichern
  268.     --------------------------
  269.  
  270.     Man kann jederzeit die aktuelle Labeltabelle (64 KB) sichern. Sie
  271.     hat die Extension (.LAB).
  272.  
  273.     3.) Labeltabelle laden
  274.     ----------------------
  275.  
  276.     Man kann sich eine 64 KB Labeltabelle jederzeit laden. Dieser Lade-
  277.     vorgang sperrt automatisch die automatische Labellöschung.
  278.  
  279.                        Symbolische Reassemblierung
  280.                        ---------------------------
  281.  
  282.     Ein Reassembler erzeugt stets automatische Label. Ein automatischer
  283.     Label beginnt mit einem L, gefolgt von seiner Hexadezimaladresse.
  284.     Automatische Label erlauben es, schnell die Struktur innerhalb eines
  285.     Codesegments zu erkennen.
  286.  
  287.     Nun, automatische Label sind gegenüber einem simplen Disassembler
  288.     sicherlich nicht schlecht. Aber noch schöner sind symbolische
  289.     Namen, statt automatischen Label.
  290.  
  291.     Die 6502 und Z80-Reassembler beinhalten die symbolische Reassemb-
  292.     lierung.
  293.  
  294.     Hier kann jeder Adresse ein Name zu geordnet werden. Diese Namen
  295.     dürfen max. 8 Zeichen lang sein. Die Anzahl der symbolischen Label
  296.     ist auf 2000 begrenzt.
  297.  
  298.     Warum gibt es dies nur bei Z80- und 6502-CPU's ? Der Grund ist ganz
  299.     einfach. Die Z80 und 6502-CPU sind die bedeutensten Prozessoren von
  300.     8-bit Homecomputern (z.B. Schneider CPC, C64 usw.). Hier existieren
  301.     kommentierte ROM-Listings und Adressverweise. Diese können genutzt
  302.     werden, um Programme auf ROM/Adresszugriffe zu checken.
  303.  
  304.     Die anderen Prozessoren spielen eigentlich nur im Microcontroller-
  305.     Bereich eine Rolle.
  306.  
  307.     1.) Symboltabelle erstellen und importieren
  308.  
  309.     Eine Symboltabelle ist eine reine ASCII-Datei mit der Datei-Extension
  310.     (.LBI). Sie kann mit jedem Editor stellt werden. Die Symbole und
  311.     Adressen (in Hexadezimal) werden zeilenweise angegeben.
  312.  
  313.     Beispiel-Datei (6502.LBI):
  314.     --------------------------
  315.  
  316.     POS_1=203
  317.     LOOP=20D
  318.     LOOP_1=214
  319.     SET_TST=219
  320.     PROC_1=223
  321.     PROC_2=22E
  322.     VALUE_1 = 68
  323.     VALUE_2 = 69
  324.  
  325.     Diese Symboldatei wird unter dem Menü Symbol und unter dem Menüpunkt
  326.     'Symbole importieren' eingeladen. Nach dem Laden werden die Symbole
  327.     nach ihren Adressen sortiert und stehen der Reassemblierung zur Ver-
  328.     fügung.
  329.  
  330.     2.) Symboldatei erzeugen
  331.     ------------------------
  332.  
  333.     Im Gegensatz zur ASCII-Symboldatei ist die richtige Symboldatei eine
  334.     sortierte und platzsparende Binärdatei. Sie kann jederzeit erzeugt
  335.     werden, sobald einmal Symbole importiert wurden.
  336.  
  337.     Diese Datei wird schneller geladen und sollte nach einmaligen
  338.     Import stets verwendet werden. Sie hat die Datei-Extension (.SYM).
  339.  
  340.     2.) Symboldatei laden
  341.     ---------------------
  342.  
  343.     Lädt kompakte Symboldatei ein. Dabei wird geprüft, ob es auch wirklich
  344.     eine Symboldatei ist. Sie hat die Datei-Extension (.SYM).
  345.  
  346. *****************************************************************************
  347.  
  348.                      Farbliche Reassemblierung
  349.                      -------------------------
  350.  
  351.     Wenn Ihr ATARI mind. 16 Farben und mind. 640*400 unterstützt, dann
  352.     werden Sie ein farbiges Reassemblerlisting erhalten. Dies ist nicht
  353.     nur schön, sondern auch sehr informativ.
  354.  
  355.     Es gibt 3 Farben :
  356.  
  357.     - rot : alle Zeilen, die einen Label besitzen sind rot markiert
  358.  
  359.     - schwarz : alle Zeilen, die Adresse oder Sprünge beinhalten
  360.  
  361.     - blau : alle Zeilen, die keinerlei Adressen direkt ansprechen
  362.  
  363.     Die Farbe Rot hat immer Vorrang vor Schwarz und Blau, so daß jede
  364.     labelmarkierte Zeile immer rot ist.
  365.  
  366.     (! Ein Grund mehr einen FALCON, TT oder eine Medusa zu besitzen !)
  367.  
  368. *****************************************************************************
  369.  
  370.                       Spezialregister/Porteinblendung
  371.                       -------------------------------
  372.  
  373.     Die 8051-Serie und der Motorola 68HC11 verfügen über eine diverse
  374.     Anzahl von Spezialadressen.
  375.  
  376.     Diese werden standardmäßig eingeblendet. Der 68HC11-Reassembler
  377.     erlaubt auch die Ausblendung der Registerbezeichner.
  378.  
  379. *****************************************************************************
  380.  
  381.                       Standard-Tastatur-Shortcuts
  382.                       ---------------------------
  383.  
  384.      Übersicht über die Tastatur-Shortcuts, die allen Reassemblern
  385.      gemeinsam sind.
  386.  
  387.      Menü Datei
  388.      ----------
  389.  
  390.      Code einladen            Control L
  391.      Startadresse setzen      Control S
  392.      Startadresse anspringen  Control A
  393.      Reassemblieren           Taste F1
  394.      Programmende             Control Q
  395.  
  396.      Menü Ausgabe
  397.      ------------
  398.  
  399.      Bildschim-Ausgabe        Control B
  400.      Drucker-Ausgabe          Control P
  401.      Datei-Ausgabe            Control F
  402.  
  403.      Menü Label
  404.      ----------
  405.  
  406.      Labeltabelle laden       Control T
  407.      Labeltabelle sichern     Control N
  408.      Label automat. löschen   Control C
  409.  
  410. *****************************************************************************
  411.  
  412.                      Spezialverhalten der Reassembler
  413.                      --------------------------------
  414.  
  415.     Weitere Besonderheiten der einzelnen Reassembler sind in deren
  416.     Spezial-Dokumentationen enthalten und dort nachzulesen.
  417.  
  418.  
  419. *****************************************************************************
  420.  
  421.                     Quelltext zum 8080/85-Reassembler
  422.                     ---------------------------------
  423.  
  424.     Für diesen Reassembler liegt der gesamte Quelltext vor. Hier kann man
  425.     das Grundschema eines Reassembler kennenlernen und außerdem die GEM-
  426.     Programmierung. Der Quelltext ist für PurePASCAL 1.1 vorgesehen.
  427.  
  428.     Die anderen Quelltexte stehen nicht zur freien Verfügung und bleiben
  429.     mein geistiges Eigentum (Bestechung zwecklos).
  430.  
  431.     Jeder kann diesen Quelltext für eigene Experimente nutzen, verbessern
  432.     oder verschlimmbessern.
  433.  
  434.     Dateien des PurePASCAL-Quelltextes :
  435.     ------------------------------------
  436.  
  437.     Übersetzung : nur Compilerflagge Z gesetzt, Stackgröße 16384 Bytes
  438.  
  439.     REASS_85.PAS  - Quelltext des 8080/85 Reassemblers
  440.     REASS_85.RSC  - Resource-Datei des 8080/85 Reassemblers
  441.     REASS_85.I    - Resource-Datei Konstanten (Interface 2.2 PASCAL-Ausgabe)
  442.     REASS_85.HRD  - RCS Interface 2.2 Hilfsdatei
  443.     GEMINIT.PAS   - Includedatei von GEM-Initialisierung
  444.     GEMINIT.PPU   - GEM-Init als UNIT
  445.  
  446. ******************************************************************************
  447.  
  448.                       Freie PD-/Shareware-Assembler
  449.                       -----------------------------
  450.  
  451.  Es gibt eine riesige Auswahl an Assemblern/Disassemblern/Reassemblern für
  452.  den ATARI. Ich habe mal die aktuelle Liste des Computer Club Elmshorn e.V.
  453.  beigefügt. Falls Bedarf besteht, schicken Sie mir die entsprechenden Anzahl
  454.  Leerdisketten und Rückporto zu. Die PD-Sammlung ist absolut kostenfrei.
  455.  
  456.  Kurze Erläuterung :
  457.  
  458.  - am Anfang steht die Disknummer der CCE PD-Sammlung
  459.  - am Ende ein 3-stelliger Code und Sterne (je mehr Sterne um so besser).
  460.  - vom Code die wichtigsten Buchstaben :
  461.  
  462.    X = läuft auf jedem ATARI
  463.    S = läuft nur auf dem ST/STE
  464.    G = GEM-Programm
  465.    N = TOS/TTP-Programm
  466.    A = Auflösungsunabhängig
  467.    M = nur in Monochrom ST-High
  468.  
  469. ------------------------------- (Assembler) -------------------------------
  470.  
  471.   31  68000-ASSEMBLER-Paket                               MXN          *
  472.   58  Disassembler 68000                                  AXN
  473.   95  Disassembler 68000                                  AXN
  474.   98  Turbo-Ass 1.72 & Debugger                           BSP          **
  475.  143  Assembler 6303                                      AXN          *
  476.  143  Assembler 65c02                                     AXG          *
  477.  146  Z-80 Crossassembler                                 MSN          *
  478.  220  Sharp Pocket Assembler                              MSN          *
  479.  263  68000-Assembler (incl. ASM-Source)                  AXN          *
  480.  263  8048-Assembler/Disassembler (Incl. ASM-Source)      AXN          *
  481.  300  Assembler NEC 78310/312                             AXN          *
  482.  300  Assembler MCS 48                                    AXN          *
  483.  300  Assembler 8051                                      AXN          *
  484.  341  Desert Drain 1.1 680xx-Reassembler                  AXG          *
  485.  380  Desert Drain 1.3 680XX-Reassembler                  AXG          **
  486.  450  6502-Emulator-Demo                                  AXG          **
  487.  457  GNU-Assembler 1.38                                  AXN          **
  488.  505  TurboAss & Debugger 1.77                            AXP          **
  489.  580  MIT2MOT-Konverter GNU68000-Syntax nach Motorola     AXN          *
  490.  611  6502-Disassembler                                   AXN          *
  491.  721  Crossassembler 6800/02/04/05/6303                   AXN          **
  492.  721  Crossassembler 6809/6811                            AXN          **
  493.  721  Crossassembler Z80/HD64180                          AXN          **
  494.  721  Crossassembler 8080/85                              AXN          **
  495.  721  Disassembler 68000                                  AXN
  496.  721  Assembler HP-48 0.99b                               AXN          **
  497.  748  FAS Crossassembler RCA 1805         HD              AXN          **
  498.  748  FAS Crossassembler 2650 SC/MP II    HD              AXN          **
  499.  748  FAS Crossassembler 6301             HD              AXN          **
  500.  748  FAS Crossassembler 6805             HD              AXN          **
  501.  748  FAS Crossassembler 6809             HD              AXN          **
  502.  748  FAS Crossassembler 6811             HD              AXN          **
  503.  748  FAS Crossassembler Zilog Z8         HD              AXN          **
  504.  748  FAS Crossassembler Zilog Z80        HD              AXN          **
  505.  748  FAS Crossassembler TI 7000          HD              AXN          **
  506.  748  FAS Crossassembler 6502             HD              AXN          **
  507.  748  FAS Crossassembler Intel 8048       HD              AXN          **
  508.  748  FAS Crossassembler Intel 8051       HD              AXN          **
  509.  748  FAS Crossassembler Intel 8096       HD              AXN          **
  510.  748  FAS Quelltexte (.LZH)               HD              AXN          **
  511.  
  512. ------------------------------ Assembler (DSP 56001) -----------------------
  513.  
  514.  502  DSP-56000/01-ASSEMBLER                              AXN          **
  515.  682  DSP-Shell 1.0 für DSP-ASSEMBLER                     AXG          **
  516.  756  DSP 56001-Disassembler (.LOD)                       AXN          **
  517.  756  DSP-Konverter .OUT to .LOD                          AXN          *
  518.  
  519.  Der TurboAss 1.77-Assembler, der 680xx-Reassembler Desert-Drain und der
  520.  6502-Emulator bilden sicherlich die Highlights dieser Sammlung.
  521.  
  522. *****************************************************************************
  523.  
  524.                              Fehlerquellen
  525.                              -------------
  526.  
  527.    Die Entwicklung von Reassemblern ist ein sehr mühevoller Prozeß. Tausende
  528.    von Bitkombinationen müssen richtig eingegeben und interpretiert werden.
  529.    Ich kann deshalb natürlich nicht garantieren, daß es keine Fehler in
  530.    einem der Reassembler gibt. Ich habe allerdings intensive Checks durch-
  531.    geführt und mir alle Mühe gegeben alle Bugs zu greifen.
  532.  
  533.    Sollten Sie einen Fehler entdecken, dann informieren Sie mich bitte.
  534.    Soweit es in meinen Kräften steht, wird dieser Bug umzingelt und
  535.    getilgt.
  536.  
  537.                                 Updates
  538.                                 -------
  539.  
  540.    Nun, Programme kann man stets verbessern oder optimieren. Den Level
  541.    eines Desert Drain haben meine Reassembler leider noch nicht. Aber
  542.    im 8-bit Bereich sind sie sicherlich noch ganz weit vorn. Vorschlägen
  543.    und Quelltexten stehe ich offen gegenüber.
  544.  
  545.  
  546.                             Entwicklungssystem
  547.                             ------------------
  548.  
  549.    - ATARI TT 4MB/105MB HD und Proscreen TT/PTC 1526
  550.    - PurePASCAL 1.1 von Application Systems Heidelberg
  551.    - Interface 2.2 RCS von Olaf Meisiek (früher Shift Flensburg)
  552.  
  553.                             Literaturhinweise
  554.                             -----------------
  555.  
  556.    Ottmar Feger, Die 8051-Microcontroller-Familie, Markt & Technik-Verlag
  557.  
  558.    Motorola 68HC11 Programmer's Reference Manual (vielen Dank an Motorola
  559.    München für die kostenlose Überlassung !)
  560.  
  561.    Rodnay Zaks, Die Programmierung des Z80, Sybex-Verlag
  562.  
  563.    E. Floegel, The Apple in your Hand (6502), Hofacker-Verlag
  564.  
  565.    Horst Pelka, Praxis mit Mikroprozessoren (8080/85), Franzis Verlag
  566.  
  567.    National Semiconductor, 48-Series Microprocessor Handbook, 1980
  568.  
  569. *****************************************************************************
  570.  
  571.                              Kommerzielle Nutzung
  572.                              --------------------
  573.  
  574.    Die Reassembler sind Freeware und dürfen nur frei weitergegeben werden.
  575.    Die Weitergabe innerhalb von PD-Sammlungen oder Mailboxen ist allerdings
  576.    erwünscht.
  577.  
  578.    Der Verkauf außerhalb von PD-Sammlungen ist strikt verboten. Für solche
  579.    Schnorrer habe ich nämlich nichts über.
  580.  
  581.    Die Beigabe innerhalb von kommerziellen Paketen bedarf meiner schriftlichen
  582.    Erlaubnis. Wie bereits erwähnt könnte eine Flasche Wein (ALDI-free) dieser
  583.    schriftlichen Erlaubnis Vorschub leisten. Umschreiben Sie bitte Ihr kommer-
  584.    zielles Produkt. Ich werde dann entscheiden, ob es genügend 'PC-Knockout'
  585.    Punkte enthält, um der freien Weitergabe zu zustimmen. Das Reassembler-
  586.    Paket darf nur komplett weitergegeben werden.
  587.  
  588. *****************************************************************************
  589.  
  590.                             Schlußwort
  591.                             ----------
  592.  
  593.    Ich hoffe Ihnen gefällt dieses Reassemblerpaket. Spenden sind jederzeit
  594.    willkommen, obwohl die Spendenmoral der ATARI-User relativ niedrig ist.
  595.    Ich wünsche mir natürlich viele weitere PD-/Shareware-Applikationen
  596.    für den ATARI. Es gibt noch viele Bereiche, wo man noch etwas bewegen
  597.    kann. Also strengen Sie Ihre 'Birne' mal an, um vom User zum Program-
  598.    mierer zu werden. PurePASCAL ist hier ein guter Anfang.
  599.  
  600.    Ich wünsche Ihnen viel Freude mit den Programmen und bedanke mich für
  601.    Ihr Interesse bereits im voraus.
  602.  
  603.    Jens Schulz
  604.    2. April 1994
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.