Neues an DisKey 2.1:
********************


Fehler:
=======

Wie  immer  wurden  wieder  einige Fehler beseitigt - einer davon hat bei
Speicherproblemen sogar zum Absturz geführt.


Suchen:
=======

Die  Suchroutine  hat  sich  - dank meines Informatikstudiums - erheblich
beschleunigt.  Außerdem sind deren Fähigkeiten enorm gewachsen.  Man kann
nach  bestimmten  File-  oder Dir-Headern, List-Blöcken, und Data-Blöcken
suchen:

Der  zu  suchende  String  wird  ge-parsed  und setzt sich folgendermaßen
zusammen:

\Typ\Art\Suchbegriff

Typ: Header: sucht nach File- oder Dir-Headern
     Parent: sucht nach zu einem bestimmten Dir gehörigen File-
             oder Dir-Headern
     Data:   Sucht nach zu einem bestimmten File gehörigen Data-Blöcken
             (nur OFS)
     List:   Sucht nach zu einem bestimmten File gehörigen List-Blöcken
Art: Name:   Der Suchbegriff wird als Filename eingegeben.
     Key:    Der Suchbegriff wird hexadezimal als Blocknummer eingegeben.
             (Geht nicht bei Typ=Header)

Beispiel:
     \parent\name\DisKey  ... sucht alle Files oder Dirs, die in einem
                              Verzeichnis namens DisKey hängen.
     \parent\key\370      ... sucht alle Files oder Dirs, die in der
                              Root ($370=880) hängen (bei Disks)
     \header\name\DMouse  ... Sucht alle Header, die DMouse heißen
     \header              ... Sucht alle Header

Außerdem  sind nun 3 verschiedene Suchmodi implementiert.  Man erhält sie
durch Voranstellen einer Zahl mit Backslash:

\<n>Suchbegriff

<n>: 0: Die gleiche primitiv-Methode wie unter DisKey 2.0
     1: Boyer and Moore (voreingestellt)
     2: KMP-Algorithmus

Beispiel: \2Teststring

Natürlich  -  und  das  ist wohl der Normalfall - kann man auch weiterhin
ganz  gewöhnliche  Strings  eingeben.    Beginnt  der  String  mit  einem
Backslash,  so  erkennt  DisKey  ggf.   automatisch, daß es sich nicht um
einen  zu parsenden Parameter, sonden um den zu suchenden String handelt.
Nur  wenn wer Sachen wie "\1" (bestimmt Suchmodus Boyer and Moore) suchen
möchte, muß noch einen weiteren Backslash voranstellen:  "\\1".


Editieren:
==========

Beim  Editieren eines Blocks hat sich auch etwas getan:  der Cursor läuft
nun immer hinter der Maus hinterher.

Mit SHIFT-ALT-Cursortaste kann man folgendermaßen springen:
   Cursor-Runter / Cursor-Rauf : Wortweise vor / zurück
   Cursor-Rechts               : Assemblerwortweise vor
   Cursor-Links                : Wortweise zurück (evt. Ass.wortweise?)


Screen-Farben:
==============

Die  Farben  des  Screens  können auch nachträglich noch angepaßt werden.
Außerdem  können  nun  auch  noch  einige weitere Sachen der DisKey.Prefs
nachträglich - über Menü - geändert werden.


Hashen:
=======

Ab dieser Version kann man einen Filenamen hashen, ohne den gesamten Path
eingeben  zu  müssen  und ohne direkt in den Block hineinzuspringen.  Der
Cursor  springt  dann  über  das  Langwort, dessen Hashwert den Filenamen
entspricht.   Diesen  Menüpunkt  kann  man  mit "Fileheader" aufrufen; es
funktioniert  allerdings  nur,  wenn man sich in einem Dir-Header oder in
der Root befindet.


Sprachen:
=========

DisKey  spricht  nun  verschiedene  Sprachen.  Bis jetzt sind Deutsch und
Englisch verfügbar und per Menü einstellbar.


Requester:
==========

Wichtige  Meldungen  erscheinen  nun  in  einem Requester.  Falls Sie das
nervt,   können    Sie   es   optional   über   DisKey.Prefs  abschalten.
REQUESTER=FALSE


Diskchanges:
============

Diskchanges  werden  nun auch erkannt, wenn Sie die Diskette ge-inhibitet
haben.   Da das nun endlich funktioniert, habe ich mich entschlossen, die
Diskette  defaultmäßig zu inhibiten.  Natürlich ist das auch abschaltbar,
aber es ist immer besser, wenn das DOS nicht auf Ihre Disketten zugreifen
kann, während Sie daran arbeiten!


Hotkeys, frei definierbare:
===========================

Die  Hotkeys  der  ersten  vier  Menüs können nun per DisKey.Prefs selber
definiert werden, also auch das Menü mit den Devices!

Beispiel: KEY1 = RlRwRdLaLzLyLxLrLYLXRIRiRe
          KEY1 steht für Menü 1
          Die Zeichen nach dem "=" setzen sich folgendermaßen zusammen:
          1) R oder L für rechte oder linke Amiga-Taste bzw. C für
             Links-Amiga + Control-Taste
          2) Der dazugehörige Buchstabe (Groß- und Kleinschreibung wird
             unterschieden!) usw.

          Erlaubt sind außerdem noch KEY2, KEY3 und KEY4!


DeviceListe:
============

Die Devicelist kann auch nachträglich (per Menü) nochmal gelesen werden.


Iconify:
========

Iconify wurde realisiert.  "Pause" gibt die Libraries und Laufwerkspuffer
usw.  nicht wieder frei; auch INHIBITS bleiben erhalten.  "Susp." gibt so
viel wie möglich wieder frei; INHIBITS werden aufgelöst!  Das Bool-Gadget
kann   mit   der   Tastenkombination   Shift-ESC   umgeschaltet   werden,
anschließend   kann  man  den  Screen  bzw.   das  Fenster  mit  Ctrl-ESC
iconifizieren.


Schreibschutz:
==============

Ein   Schreibschutz   ist  nun  optisch  sichtbar  und  wird  durch  rote
Befehlsgadgets dargestellt.


DisKey.Prefs:
=============

Entfernt    wurden   die   DisKey.Prefs-Einstellungen   CURSORSPEED   und
CURSORDELAY,  sowie SETPREFS.  Die ersten beiden entstanden nur, weil ich
die  ersten  80 KB von DisKey mit Ed (oh wie peinlich) programmiert habe,
und somit meine CURSORSPEED per Preferences heruntersetzen mußte.  DisKey
sollte aber einen schnelleren Cursor haben.  Also...

SETPREFS wird nun auch nicht mehr benötigt - die Kompatibilität zu MachII
ist - so hoffe ich wenigstens - auch so gewährleistet.

Außer  KEY1  bis KEY4 gibt es nun auch noch die Schlüsselwörter ICONX und
ICONY, die die Position des Iconify-Icons auf der Workbench angeben.

LANGUAGE=Deutsch oder English stellt die Sprache ein.

REQUESTER=TRUE  oder  FALSE  stellt  die (req.library-)Requester ein oder
aus.

Als  Retten-Pfad  kann  man nun auch einen File-Namen angeben.  Die Files
werden  also  nicht mehr DisKey0, DisKey1 usw.  genannt, sondern erhalten
den  angegebenen  Namen!   Wird kein Dateiname angegeben, so ist - wie in
der letzten Version - "DisKey" voreingestellt.

Bsp: Retten=RAM:T/Uff_Gerettet#     (mit Filenamen)
     Retten=RAM:T/#                 (ohne Filenamen)

Die  Defaults von RAWREAD und SCREEN wurden geändert.  Als Screen ist nun
ein Customscreen voreingestellt; als RAWREAD - wegen der Inkompatibilität
mit einigen Amigas - FALSE.  Des weiteren steht INHIBIT nun standardmäßig
auf TRUE.


Disassembler:
=============

Des  weiteren wurde ein 68K-Dis-Assembler eingebaut.  Die Routinen hierzu
stammen  von  Bernhard  Möllemann  (vielen  Dank!) In DisKey.Prefs können
einige Defaults hierzu eingestellt werden.

DC.W=TRUE oder FALSE   ... Unknowns als dc.w
OFFSET=DEZI oder HEX   ... Offsets Dezimal oder Hexadezimal

Innerhalb  des  Disassembler-Fensters  kann man mit den Cursortasten (mit
oder ohne Shift) oder mit der Scrollbar scrollen.  Das Fenster kann außer
mit dem Closegadget auch mit "Q" oder "ESC" geschlossen werden.


MEMORY:
=======

Das  Device  und  der  Handler  dienen  dazu,  mit DisKey Professional im
Speicher  herumzuwühlen.   Beides  stammt  wieder von Bernhard Möllemann.
Danke!!!  :-)


Bildschirmaufbau:
=================

Der Bildschirmaufbau wurde etwas geändert.


Drucken:
========

Drucken  spaltet  nun  einen  Prozess  ab.   Aber  Vorsicht!  Solange der
Druckvorgang aktiv ist, kann man DisKey nicht beenden!!!


Programmaufruf:
===============

Wenn man im CLI nach "DisKey" noch einen Devicenamen angibt, so ignoriert
DisKey die entsprechende Voreinstellung nimmt stattdessen dieses Device.

Bsp.: DisKey dh1:

Das Preferences-File kann natürlich zusätzlich auch noch angegeben werden.

Bsp.: DisKey dh1: MeinePrefs       oder
      DisKey MeinePrefs df2:


Aber  auch von der Workbench aus kann man diese Parameter mitgeben.  Dazu
muß man aber die Tooltypes setzen:

DRIVE = DH1
PREFS = S:MeinePrefs


Rotes Fenster:
==============

Das   rote   Fenster   wurde   "wegoptimiert".   Stattdessen  wurde  eine
Status-Zeile  im  Screen eingeführt, die sowohl durch einen Mausklick als
auch  durch  RAMIGA-'.'  zwischen  dem Disassembler und den Dezimalwerten
(Langwort, Wort, Byte) umschalten kann.


Suchen usw.
===========

Bei einigen Funktionen (z.  B.  Suchen, Prüfen,...) wurden für die Block-
oder   Trackbereiche  Defaults  vorgegeben,  die  den  maximalen  Bereich
kennzeichen.    Bei   "gefährlichen"  Funktionen  (Format)  werden  diese
Defaults sicherheitshalber nicht gegeben!


Letzter:
========

Eine neue Funktion, die den zuletzt geladenen Block wieder lädt.


Eingaberoutine:
===============

Wird  eine  dezimale  Zahl  erwartet,  so  kann  der  User sie meist auch
wahlweise  hexadizimal  eingeben.   Dazu  drückt  man einfach während des
Eingabevorgangs  die  "$"-Taste.  Die bisherigen Eingaben werden dann als
Hex-Zahl  angesehen.   Um in den dezimalen Modus zurückzukehren, wird die
"$"-Taste ein weiteres Mal gedrückt.

Wenn  man  statt einem "$"-Zeichen ein "!"-Zeichen eingibt, so werden die
bisherigen  Eingaben in Hex- bzw.  Dezimaldarstellung umgerechnet und die
Eingabe  entsprechend  umgeschaltet.   Bei  der Eingabe eines Blocks usw.
erkennt man den Hex-Modus an den roten Ziffern, im roten Fenster wird ein
$-Zeichen vorangestellt.

Der Cursor läßt sich ab sofort - wie in den String-Gadgets - auch mit der
Maus positionieren!


Eingabe des Blocks usw.
=======================

Hier  gibts  nun  auch  einen  Cursor,  der  alles kann, was der im roten
Fenster auch beherrscht.


Viren
=====

Leider  gibt  es  immer  mehr  Viren,  und  das wird sich wohl auch nicht
ändern!   DisKey   versucht,  so  viele  Bootblockviren  wie  möglich  zu
erkennen.   Auch  in  dieser  Version  wurde  die  Abfrage  wieder  etwas
verbessert.

Richtige Viren:
---------------

Byte Bandit Plus VIRUS
Byte Bandit VIRUS
Warhawk VIRUS
Bamiga Sector one VIRUS
Micro Master Virus
LSD VIRUS
SCA-VIRUS
SCA-Abkömmling
DASA (Byte Warrior) VIRUS
Paramount VIRUS
Byte Warrior Abkömmling
North Star II VIRUS
System Z VIRUS V3.0
System Z VIRUS V4.0
System Z VIRUS V5.0
System Z VIRUS V5.4 (PVL-VIRUS)
GADAFFI VIRUS
North Star I VIRUS
DiskDoctors VIRUS
Revenge VIRUS 1.2
Pentagon VIRUS
Time Bomb VIRUS 1.0
Lamer-Exterminator VIRUS
GYROS-VIRUS
Obelisk-VIRUS
VKill V1.0 VIRUS
WAFT-VIRUS
MCA (Class Abraham) VIRUS
H.C.S VIRUS
Butonic VIRUS


Unbekannt:
----------

ASS VIRUS Bootblock
Virus Destructor Bootblock
SQC Bootblock
Hotline Bootblock
Overscan Bootblock
MGF Bootblock
Memory_I Bootblock
Memory_II Bootblock
Pentagon Bootblock-Loader
Phaselock Bootblock
Playfield Bootblock
Protected Bootblock
StealMem Bootblock
Virus Alert I Bootblock
Virus Alert II Bootblock
PVL Protector


Bootblöcke:
-----------

Observe Bootblock
Neuhaus Bootblock
Sigma Virusterminator Bootblock
AVIREX-Bootblock
CCS-Bootblock
Chip-Bootblock
Blizzard Protector
MEMCTRL-Bootblock
Starfire2-Bootblock
Bootcopy-Bootblock
XCopy Bootblock
Tristar Viruskiller V1.1
Viruskiller Professionel V2.0
