DEMon 1.0b von Gregor Goldbach ----------------------------------------------------------------------------- Einleitung ----------------------------------------------------------------------------- DEMon - noch ein Disketten-Monitor mit einer Edit-Funktion. Yep. Aber diesmal mit beliegendem E-Source, der einige 2.0-Features benutzt und relativ kurz ist. Er ist auch nicht als Konkurrenz zu DiskX, DisKey gedacht - dafür kann er zu wenig -, sondern entstand einzig und allein aus dem Wunsch, "doch mal was mit E zu machen". Urteilt also nicht zu streng, guckt euch den Source an dankt Wouter für seine tolle, tolle Sprache... Das Packet sollte folgende Dateien enthalten: DEMon - das Programm DEMon - der Source DEMon.doc - das hier DEMon.sdoc - die Dokumentation des Sources (wenn man das so nennen will) DEMon.m - die trackdisk-Routinen DEMon.mdoc - Dokumentation der trackdisk-Routinen DEMon ist GIFTWARE, d.h. wem das Programm zusagt, der möge mir bitte irgendetwas schicken (Anregungen weiter unten). Das Copyright des Packetes liegt bei mir, wenn Ihr einen Teil des Codes in eigenen Programmen verwenden wollt, fragt doch bitte. OK, die trackdisk-Routinen (trackdisk... open(), close(), readblock(), writeblock(), diskindrive(), diskprotected()) könnt Ihr auch so verwenden, aber bitte bitte erwähnt mich wenigstens. Diese Version von DEMon darf AUSSCHLIESSLICH auf der EPD-Serie vertrieben werden! ----------------------------------------------------------------------------- Installation ----------------------------------------------------------------------------- DEMon benötigt für seinen Betrieb die reqtools.library V37. Da ich nicht weiß, wie es mit dem Verteilungsrecht dafür aussieht, ist sie nicht im Packet enthalten. Ansonsten wird noch die gadtools.library V37 benötigt, außerdem die von E üblicherweise automatisch geöffneten shared libraries. Er läuft also erst ab Kickstart 2.04 (wer eine Version für 1.2 haben will, kann sich ja melden). Sind die Libs vorhanden, muß DEMon nur noch irgendwohin kopiert werden und kann dann schon gestartet werden. 1> copy DEMon irgendwohin: 1> run DEMon Nach dem Programmstart... ...öffnet DEMon sein Fenster und klinkt die Menüs und Gadgets ein. Außerdem wird der Block 0 eines Laufwerks geladen (normalerweise DF0:) und dargestellt: auf der linken Seite ist die erste Hälfte in hexadezimaler, auf der rechten in ASCII Schreibweise zu sehen. ----------------------------------------------------------------------------- Die Gadgets ----------------------------------------------------------------------------- Folgende Gadgets sollten zu sehen sein: Blocknummer Hier steht die Nummer des dargestellten Blocks. Es kann auch zur Eingabe verwendet werden, um einen Parameter für einen Menüpunkt zu verändern. Zu diesem Gadget gehören die mit '+' und '-' beschrifteten Buttons, die bei Betätigung den nächsten/vorherigen Block laden und anzeigen. Laufwerksgadgets DF0 bis DF3 Hier wird festgelegt, auf welches Diskettenlaufwerk sich die Operationen beziehen. Nicht vorhandene Laufwerke können nicht angewählt werden. ----------------------------------------------------------------------------- Die Menüs ----------------------------------------------------------------------------- Project Laden Block: Der im Gadget eingetragene Block wird geladen. Falls nach dem letzten Laden/Speichern eine Änderung noch nicht abge- speichert wurde, besteht hier die Möglichkeit dazu: der Inhalt kann in eine Datei gesichert werden. Datei: Aus einer Datei werden 512 Bytes in den Puffer geladen. Auch hier gibt es die bereits geschilderte Sicherung. Speichern Block: Der Inhalt des Puffers wird in den Block geschrieben, dessen Nummer im Blockgadget eingetragen ist. Datei: Schreibt den Inhalt des Pufferspeichers in eine Datei. Ende Das Programm wird verlassen. Auch hier gibt es die gleiche Sicherung wie bei 'Block laden' ----------------------------------------------------------------------------- Verschiedenes ----------------------------------------------------------------------------- Suchen: Eine Zeichenkette kann auf der Diskette gesucht werden. Bei Erfolg wird der Block angezeigt, in dem sie gefunden wurde. Die Suche kann entweder bei Block 0 oder bei dem Block beginnen, der im Gadget 'Blocknummer' eingetragen ist. Editieren: Gleicht in der Wrikung dem Drücken der Retrun-Taste. Es wird in den Editier-Modus gewechselt bzw. das Editieren wird beendet. Offset wechseln: Die Anwahl dieses Menüpunktes wirkt wie das Betätigen des 'Offset wechseln'-Buttons: es wird die jeweils andere Hälfte des Blockinhalts dargestellt. ----------------------------------------------------------------------------- Tastaturbelegung ----------------------------------------------------------------------------- DEMon läßt sich sowohl über Tastatur als auch über Menüs/Gadgets steuern. Folgende Tasten sind belegt: Help: Öffnet einen Informationsrequester, in dem die Tastaturbele- gung dargestellt wird. Return: Wechselt von der reinen Darstellung in den Editier-Modus. Jetzt können die Cursortasten benutzt werden. Erneutes Drücken von Return beendet das Editieren. Cursor: Im Editier-Modus kann jetzt im Puffer hin- und hergefahren werden bis man an der Stelle ist, wo eine Veränderung vor- genommen werden soll. F1: Entspricht der Anwahl des Menüpunktes 'Verschiedenes/Suchen' F4: Das Byte, auf dem sich der Cursor befindet, kann verändert werden. Der neue Zahlenwert kann dezimal (42), hexadezimal ($2a) oder binär (%101010) eingegeben werden. Nur möglich im Editier-Modus. ----------------------------------------------------------------------------- Sonstiges ----------------------------------------------------------------------------- Mittlerweile werden für eine Compilierung über 500 KByte verlangt, ich glaube daher nicht, das eine Re-Compilierung auf einem 512K-Amiga erfolgreich vorgenommen werden kann. Dies ist mein erstes wirklich 'sinnvolles' Programm überhaupt, wer mir also Kritik äußert, mag das im Hinterkopf behalten. Das es gerade in E geschrieben wurde, liegt daran, daß mir E auf Anhieb gefiel und außerdem leicht zu erlernen war (dafür ein dickes Lob an Wouter). Bug-Reports und Verbesserungsvorschläge sind natürlich immer erwünscht, geplant ist bereits folgendes: Ausbau zu einem File-Editor (NewZap), eine schönere Dokumentation, viel- leicht Hilfsfunktionen, die das Reparieren von Disketten erleichern (DiskX, DisKey). Allerdings möchte ich noch einmal betonen, das DEMon eigentlich klein bleiben soll. DEMon wurde ziemlich ·schnell· und ·dreckig· zusammengetippt, es ist daher weder sauber noch elegant programmiert. Am längsten hat nicht etwa die Programmierung des trackdisk.devices (wozu hat man das Intern) oder das Ausprobieren der 2.0-Funktionen (die Compilierung geht ja dank der binären Includes recht fix) gedauert, nein, die meiste Zeit hat die Erstellung des Outfits gedauert (wer lacht da? Meine GadToolsBox hat noch kein E-Output!). Wem DEMon gefällt, der MUSS mir nichts geben, schön wäre es aber, zum Beispiel: Informationen über OS 2.04 (gern auch RKRMs), ein Shakespeare-Gesamtwerk, Infocom-Originalpackungen, den fünften Anhalter als Taschenbuch, Postkarten, PD, Diskworld-Figuren, E-Programme, eine Scroll-Routine nach dem Blocksatz-Prinzip in assembler undundund. ----------------------------------------------------------------------------- History ----------------------------------------------------------------------------- vor 1.0 Aufbauend auf einem externen Programm zum Laden/Speichern eines Blockes auf ein beliebiges Laufwerk wurde ein ganz kleiner Disketten-Editor zusammengeschustert. 1.0a Das erste Mal, daß ich Axel etwas gegeben habe, was auch bei ihm lief - bis auf den Guru beim Verlassen. 1.0b 'first public release' an den guten Jörg, der mir auch gleich eine Bug entfernt hat. Jetzt auch umfangreiche, wenn auch unschöne Dokumentation. Hoffe, es hilft jemandem. ----------------------------------------------------------------------------- Anwendungsbeispiele ----------------------------------------------------------------------------- Obwohl die Benutzung von DEMon eigentlich recht einfach sein sollte, hier einige Beispiele zur Bedienung: Handlung: Block 0 von DF1: laden Bedienung: - 'DF1:'-Gadget anklicken. Es wird dann versucht, dieses Laufwerk anzu- sprechen. - '0' im Blocknummer-Gadget eingeben und 'Block laden' aus dem Menü wählen bzw. + 'l' drücken oder solange das '+'/'-' Gadget anklicken, bis '0' im Blocknummer-Gadget erscheint. Bei jeder Anwahl des '+' bzw. '-' Knopfes wird der entsprechende Block automatisch geladen. Handlung: Block 42 von DF1: laden und als Block 10 auf der Diskette im Laufwerk DF2: abspeichern Bedienung: - wie im vorigen Beispiel Block 42 von DF1: laden - 'DF2:' anwählen - '10' im Blocknummer-Gadget eingeben - 'Block speichern' im Menü wählen bzw. + 's' drücken Handlung: Block 23 von DF0: laden und verändert in eine Datei schreiben. - Block 23 wie gehabt laden - RETURN drücken, es wird jetzt in den Editier-Modus gewechselt - mit den Cursortasten das zu verändernde Byte anwählen - hierbei kann auch der 'Offset wechseln'-Knopf bzw. Menüpunkt verwendet werden - und F4 drücken. Du wirst nun aufgefordert, den neuen Wert des Bytes einzugeben, erlaubt sind: Dezimalzahlen, Binärzahlen (vorangestelltes %) und Hexadezimalzahlen (vorangestelltes $). Bei korrekter Eingabe wird der Wert in den Pufferspeicher übernommen - weitere Bytes auf gleiche Weise verändern - Menüpunkt 'Project/Speichern/Datei' wählen, Du wirst nun aufgefordert, den Namen der Datei einzugeben, in den der Pufferinhalt geschrieben werden soll ----------------------------------------------------------------------------- Meine Adresse: Gregor Goldbach Grüner Weg 10 21423 Pattensen Telefon: 04173/7015 -----------------------------------------------------------------------------