********************************************************************** * Deluxe Editor Version v1.8 beta (C)opyright 1992 Cath of LSD * *--------------------------------------------------------------------* * With those little extras that appealed at the time q8-) * * Dedicated to Bootblock checksums everywhere * *--------------------------------------------------------------------* * Written in Lattice 'C' 5.10a,prepared in CygnusEd Pro * * Uses Reqtools.library (C)Nico Francis 1992. (Very good) * ********************************************************************** __/| ____/\__ ____/\ !o | !o Vo .\\ ||| |___|: |____|| | \\\\:- -:|||: | |___ :|: | .\\ ||. | |sc | o|. | / |______ |________| ______/ ~~~~~~~\|PRESENTS|/~~~~~~ Deluxe Editor 1.8 beta Title - Where to Start? ! PLEASE READ CHAPTER.B ! Index 1. Overview 2. Functions 3. Tips 4. Shortcuts 5. The Assembler.Disassembler 6. ARexx port and how to use 7. Rules for string entering 8. Bugs 9. The future A. Virtual Reality Disk Editing Feature B. Copyrights and Stuff C. Anything else I Think of (To get to a chapter search for Chapter.Id, eg Chapter.A) (or page down madly) ************************************************************************** * !! Note to PD Libraries and Magazines with CoverDisks !! * *------------------------------------------------------------------------* *A) No more than £2.00 can be charged for this program, lower the better * *B) This program CANNOT be put on magazine coverdisks without prior * * permission from either the Author,Cath, OR Pazza of LSD * *C) The program MUST be distributed with all doc files, examples etc * *------------------------------------------------------------------------* * !! Note to PD Libraries and Magazines with CoverDisks !! * ************************************************************************** * Chapter.1 Overview * *--------------------------------------------------------------------* I wrote Deluxe Editor because I'm a masochist, or was that the other thing?. Oh yeah I remember, Start again, I wrote Deluxe Editor because I wanted the following features. 1. (The main one) A BootBlock Checksum Calculator that worked. 2. The ability to use the same editor to edit files and disks. 3. A search that worked with mixed Ascii and Hex strings. 4. A search and replace. 5. The ability to use scripts for doing 'Standard' disk edits ;-). 6. A disassembler and Assembler. 7. And something to show people at the April 92 Anarchy party that didn't have vectors/copper bars/starfields (well not yet anyway) (As for number 7. it came and went and so did the Digital Party in October) (and I still haven't released it) So Deluxe Editor was born, at this point most of the features are written and working Ok. (Three days into the project) and hopefully by the time you are reading this they will all be in, Dream On. I hope DEdit is useful to you and doesn't try to fill a gap that's already filled, I have only ever used NewZAP 3.3 and DiskX 2.2a (Bootchecksums?) and got fed up of switching between the two editors. I have tried to make the program size in line with NewZap and DiskX but not lose any of the features and so far I have suceeded. I have cheated slightly and put the help texts in a different file but since neither DiskX or NewZap has as much Help within them I guess it's Ok. Also I have used extensively reqtools. library by Nice Francis, because it gives a nice Wb2. look to the requesters on either Wb1 or Wb2 and I guess most people will have it already in their LIBS: directory as PowerPacker and its support programs use it too. And everyone I know uses PowerPacker. The program will not work at all without reqtools. library, sorry, I might write a version that uses it if its there or the normal AmigaDos requesters if its not, we will see if anyone complains enough. If you do not have WB2 (Why not?) or do not have the Commercial ARexx programs you will not be able to use the ARexx port (funnily enough) or the Mini-Assembler, Why not you ask because the assemblers written in ARexx that's why. So if you haven't got it you should it's very useful and you will be able to use the scripting features of DEdit and CygnusED if you have it. That's enough overview for now I think. * Chapter.2 Functions * *--------------------------------------------------------------------* Chapter.2.1 Getting Started To load a file into Deluxe Editor at the CLI prompt type :- DE -FILE Filename This will load the specified file and Deluxe editor will create a window on the Workbench screen. To make DEdit open a window on its own custom screen type :- DE -FILE FileName -OWN The parameter -OWN can be anywhere after the DE and can be of any length or case as long as it's unique eg. DE -FILE FileName -O or DE -FILE FileName -OwN These all mean the same. To use DEdit as a disk Editor just type at the CLI prompt :- DE and again the same rules as above for the -OWN apply. DE -OWN Starts DEdit Editing DF0: on a custom screen. To specify a different Disk (dF0: - DF3:) do this, where the ? is replaced by the unit number. DE DF?: (This version of DEdit doesn't currently support Disks other than 3" 1/2 160 Cylinder,2 head,80 Sector 11 Blocks per sector. Although they don't have to be AmigaDOS disks. NonDos disks are fine as long as they conform to the above.) List of switches for Deluxe Editor -PRIORITY ... sets the task priority -OWN ... Makes DE use a custom screen -FILE ... Edits a file instead of a disk DFx: ... Disk Edit a different disk Chapter.1.2 - Getting out of DEdit. When in Deluxe Editor and not in any requesters Type Amiga-Q or select Quit from the Program menu. DEdit will NOT automatically save any changes you must do that before quitting. Chapter.1.3 - Moving around within DEdit. The menus are normal intuition menus and can be accessed either with right mouse button (RMB) or in some cases Shortcut keys. (Amiga + Another key). To move around the file/disk use either the menu Selection or press one of the following. To move Back 1 512 block........................................Amiga , To move Back 11 512 Blocks (Sector).............................Amiga < To move forward 1 512 block.....................................Amiga . To move forward 11 512 blocks...................................Amiga > To goto block 0 (bootblock in disks/Start of file in files).....Amiga 0 To goto the Root Block (Disks Block 880)........................Amiga R To goto a specified block (either in hex or decimal)............Amiga G To edit the other half of the block.............................Amiga H To change from View to Edit and back (toggle)...................Amiga E To change from Hex edit to Ascii edit and back (toggle).........Amiga A To move around within the buffer (whether Hex or Ascii Mode)....Cursor Keys *NOTE Not the Keypad but the 4 arrow keys below DEL HELP You may also move around in edit mode by pressing the left mouse button with the pointer over the desired character. All these functions have an equivalent menu item which can be accessed by using the RMB. Chapter.1.4 - Loading and Saving of Bootblocks (Only useful in Disk Edit) These are a few functions designed specifically for the BootBlock which is Block 0, if you don't understand Bootblocks too well then see Chapter D the Bootblock is the only one which is loaded and saved as 1024 bytes which is two blocks. To Edit the second block you must goto Block 1 by pressing (if you are at block 0) Amiga . «« (amiga + full stop) to calculate the bootblock Checksum press Amiga C this will recalculate the bootblock whether it needs it or not. If the BootBlock does not start with the letters DOS or KICK then DEdit will consider it NOT to be a bootblock and won't let you calculate the checksum. You can restore Bootblocks from normal amigados files. These can either be ones you haved saved with DEdit or ones that you have written and assembled yourself. Normally when you assemble a Bootblock (SEKA users can ignore this !), an AmigaDos header is added to the front of the file, this header is only needed for ordinary AmigaDos executables and is not required for the bootblock, so when you select Restore bootblock from file and select a file with a header a requester will appear telling you that the file is not a BootBlock, this requester will allow you to search through the file for a BootBlock which will then be saved to Blocks 0 and 1 of the Current drive, if DEdit does not find a bootblock within the file it will say so and go back to View/Edit mode, This means that you can search through any file for a BootBlock and if one is found it will be written out. Normally when you write your own bootblocks the Checksum will be invalid this is not fixed when you restore the Bootblock but has to be done manually by Selecting Calc Checksum from the menu or by pressing Amiga-C then by saving the BootBlock to the current disk by selecting Restore BootBlock from Buffer. The library options on the Restore/Save BootBlock menus allows you to store and recall bootblocks from a library file, there is a sample library distributed with DEdit to use it Select Restore Bootblock from Library,a requester will appear asking you to select a bootblock from the ones available in the library. You then select the bootblock/file you want and it will be restored. This time the checksum should be Ok. Unless its a virus, if so DEdit will have Zero'ed out the checksum from the Virus'es bootblock (this goes for the ones supplied) Zero'ing the checksum is an OPTION when you select Save BootBlock to library. Zero'ing the checksum stops the bootblock from booting. Effectively disabling the virus from booting , but be warned!! Fixing the checksum with Amiga C will allow the BootBlock to boot ok. The viruses supplied have had the checksum zero'ed and are there to enable DEdit to identify bootblocks, for instance the SCA virus is in the library, if you work on a disk that has the SCA virus on the BootBlock DEdit will say so. And the ability to add new virus'es to the library means that more and more can be identified. I thought of only storing virus'es as a special checksum so that they could only be identified and not restored or making DEdit disallow any restoring of virus'es from the library to prevent anyone passing them on vindictively, but since there are so many virus'es anyway and so so many utilities that store/restore bootblocks anyway I thought one more won't make any difference. I may still yet add a feature that disallows known virus'es being restored it depends on what the reaction is to the program in its current state. To save a bootblock to the library select Save BootBlock to library and when the requester appears give the BootBlock a Name, Also note that this function DOES not check if the Current Block is a BootBlock or not. So you can save and block to the library. Note that since two blocks (1024 bytes) are recorded in the library the block in the buffer + the next block on the disk will be recorded ! To restore the block back to the disk just load it into the buffer with Restore BootBlock from Library and if the library Block you pick isn't a BootBlock a requester will appear asking you which Block you wish to restore it to. Example.1 Goto Block 880 -> Amiga G Type 880 or $370 or 0x370 Select Save Bootblock to Library -> Pick from menu A requester will appear as so +-------------------------+ |The Current block in the | |buffer is not a bootblock| |do you wish to continue | | anyway ? | +-+--+-----------+------+-+ | |OK| |CANCEL| | +-+--+-----------+------+-+ Select OK Another requester appears Give the Block a name Name Block - > Root.Block.Test (Upto 40) characters The Block in the buffer + the next block on the DISK is saved to the library. *------End of example. Chapter 1.5 The File Pull - feature The Hunt/Mark Start/Mark End/Save menu can be used to find DOS executables that have been stuck on a Non DOS disk ie an Intro/Trainer etc, To use it Select 'Hunt' and the disk will be searched for a HUNK_HEADER at the start of each disk block. If one is found the select 'Mark Start' a requestor will appear asking if you want an automatic search or do it manually, if you select automatic mode then IF the file found has only one hunk then DE will move to the last block belonging to the file. After that select 'Mark End' and then 'Save' and then a file requestor will appear asking for a save file. If, however, the file has more than one hunk then a requestor will appear telling you so, so you will have to find the end of the file yourself (this will change shortly). This feature I use to remove intros and stuff that don't work on the a500+. Use for your own devices. Use Imploder 4 to strip off any rubbish that gets stored on the end of a file as all files are saved in multiples of 512 bytes. AmigaDOS files should end with 0x3f2 (HUNK_END). * Chapter.3 - Tips * *--------------------------------------------------------------------* Recording the Rootblock as above is a good way to protect your disks from some types of deliberate corruption, If the disks Root block gets damaged you can restore it with DEdit and then use FixDisk or similar to try and repair the disk, WARNING: Only work on a copy and Try FixDisk or DiskDoctor?(Maybe not) or DiskSalv First. Only if the disk repair program tells you the root block is damaged then try the above method. Also if you have changed the contents of the disk you might get a lot of rubbish or even worse off. But between what you can recover from the first version and the Restored version you might get the disk Back. (This works best with disks that you don't change ie, workbench, originals etc). * Chapter.4 - Shortcuts (keyboard) * *--------------------------------------------------------------------* Amiga 1 - Help on searching Amiga 2 - Help on editing Amiga 3 - Help on saving Amiga 4 - Help on shortcuts Amiga , - Back one sector Amiga < - Back one track Amiga . - Forward one sector Amiga > - Forward one track Amiga H - Switch to other half Amiga R - Goto root block Amiga 0 - Goto track zero Amiga G - Goto a specified block Amiga S - Search Amiga C - Calc Boot Checksum Amiga Z - About program Amiga N - NewShell Amiga E/F1 - View/Edit mode toggle Amiga A/F2 - Hex/Ascii mode toggle * Amiga $ - Search for DOS Executable Amiga ! - Mark start location Amiga " - Mark end location Amiga £ - Saved marked block to file Amiga X - Examine/analyse bootblock Amiga \ - Toggle DisAssembler Amiga ; - Saved to specified sector Amiga # - Save to current sector Amiga ] - Save to printer Amiga [ - Save to file Amiga F - Fill buffer Amiga U - Undo last change * Amiga O - Toggle Info Requesters Amiga Q - Quit Arrows - Move around buffer * * Only in [EDIT] Mode Function key shortcuts only work in Workbench 2 * Chapter.5 - Assembler/Dis-assembler * *--------------------------------------------------------------------* The Assembler will only be available to you if A:You have Arexx and B: if the file ASSEM.REXX is in your REXX: directory. Otherwise ignore all references to the Assembler !. The Dis-assembler is an internal part of DEdit so is always available to use enter [EDIT] Mode and place the cursor over the Bytes you wish to disassemble and press Amiga \ a window appears. If the bytes at the cursor are valid then the disassembled opcode will be shown. So far only supports 68000.If the bytes are invalid then ???? will be displayed. * Chapter.6 - Arexx Port and how to use it * *--------------------------------------------------------------------* Do you A:know what ARexx is ? B:have you got it? if the answer to it both of these questions is no. then skip this. If a: and not b: then you probably know how already and don't need too, if b: and not a: then read on. if a: and b: then read on too. First things first ARexx, needs to be running that is the Arexx server has have been already run either from startup-sequence or from the CLI: To start it type from the CLI: RexxMast This should startup the ARexx server if not then check C= Workbench manuals to find out that it doesn't do you any good to do that, and after that buy a book on ARexx. You should also have a REXX: directory this is where all your .rexx scripts are, copy the file ASSEM.REXX distributed with DEdit to REXX: if you haven't already done so, execute install.assem.script to have it done for you. DEdit's arexx-portname is DeRexx you must use this to communicate properly with DEdit. Use the aRexx command address 'DeRexx' to do this. * The current commands as of version 1.8 are :- * *--------------------------------------------------------------------* Lock - Locks DE menus during REXX scripts must be done! UnLock - UnDoes the Lock ! Don't forget to do this ! GotoZero - Reads in block 0 GotoBlock - Reads in block SaveBoot - Saves the bootblocks to ReqsOn - Turns requestors on ReqsOff - Turns requestors off CaseOn - Turns case sensitive search on CaseOff - Turns case sensitive search off Search - Searches from current block for DisAsmOn - Turn the dis-assemble feature on DisAsmOff - Turn the dis-assemble feature off KillDe - Tells DE to quit back to AmigaDOS Forward - Set forward direction Back - Set back direction EditAscii offset string - Put string to offset in buffer Load offset name length - Load buffer from a file to offset for length Save offset name length - Save buffer to a files from offset for length Encrypt Key - Encrypt buffer with key (single character) Decrypt Key - Decrypt buffer with key (single character) SaveBuffer file - Save current buffer to file LoadBuffer file - Load file to buffer ClearBuffer - Clear buffer (fill with 0s) FillBuffer byte - Fill buffer with byte ReRead - Tell DE to reread current block Checksum - Calculate the checksum of the current buffer AddBlock - Adds a block to the list SaveList - Saves the block list to a file ClearList - Clears the block list LoadBlock - Load buffer with a block (same as GotoBlock) Sleep - Closes DE's main window, but allows normal use Wake - ReOpens main window *** Sample aREXX Script -----------------------8X Cut Here 8X-------------------------- /* Remember to add this line at the very start of the file */ address 'DeRexx 'Lock' /* De's menus and short keys etc cannot be used now, until an UnLock */ /* Tell DE to read in the current block */ 'ReRead' /* Save from offset 8 in the buffer to ram:BootProg for 1016 bytes */ 'Save 8 ram:BootProg 1016' 'UnLock' /* De's menus and shortcut keys can be used again */ -----------------------8X Cut Here 8X-------------------------- * Chapter.7 - String entering conventions (How to type in strings) * *--------------------------------------------------------------------* Chapter 7.1 Entering a string in the search requester To enter an Ascii only string type Your String -> Find Me (upto 127 chars) To enter a Hex only string type Your Hex Number -> $DEADBEAD (Upto 127 chars) or Your Hex Number -> 0xDEADBEAD or Your Hex Number -> 0xDeadBead or Your Hex Number -> $DeadBEAD .... and so on.. To enter a Combination of Hex and Ascii Type Your HexAscii -> $1A1b'Fred'3AB3 or Your HexAscii -> 0x1a1b'Fred'3ab3 Any of the above can contain 'whitespace' that is space chars ,..-=+ so on so therefore $01 02 03 04 05 = $0102030405 = 0x0102030405 and $0a,0b,0c,0d,0e = $0a0b0c0d0e = 0x0a0b0c0d0e = $0A0B0C0D0E and $1a 1b 'FRED' 1a = $1a1b'FRED'1a = 0x1a1b'FRED'1a Case sensitivity is only valid for ASCII only strings so the string EAT ME can be set for case insensitivity (upper=lower) but $1a'EAT ME'1b can not be and is searched for as is. With HexAscii strings anything within the single quotes is searched for but anything outside the quotes is hex only and any non-hex will be removed, for example $1a 'Hello',1b will become $1a'Hello'1b and $1a'Hello ' 1b will become $1a'Hello '1b Only HEX or ASCII can be used decimal or octal or binary has not been introduced yet. The string handler is quite powerful and will strip out any rubbish passed so the hex string $1A..HELLO....1B will become $01AE1B As you can see if you pass an odd length hex number a leading zero will be added, so that 0x101 will become 0x0101 this is important as if the leading zero wasn't added the bytes in memory would be $10,10 which isn't right, with the leading zero it becomes $01,10 HexAscii strings must have the ascii portion within single quotes (') example $0a0b Face 'Face',0a will become (as bytes) $0a,0b,fa,ce,'F','a','c','e',0a * Chapter 8 - Bug or Feature you decide ~! * *--------------------------------------------------------------------* Version 1.1 beta Sometimes a wierd string appears after the first offset and corrupts the text output, Note: does nothing to the buffer only to the text like so 00000000 µµ±¤×00 92 29 12 ........ Click the left mouse button a couple of times and it will go away. Dunno why yet might only be in WB2 , or a buffer not being zero'ed properly? still its not catastrophic, funny thing is it doesn't actually appear anywhere in the output buffers? Only on screen?. Sometimes a disk read error appears in search because DEdit is trying to read block past the end of the disk. It's a small thing and doesn't actually affect the search. Won't even show if the requesters are turned off. Version 1.1 VR There is a slight bug in one of the library books if you open it a strange hypnotic pattern is released and causes temporary insanity. I can't find the book, or at least if I have I can't remember, but I'm having fun trying. The effects of the book are caused by a Copper 'FireWork' and only seems to happen on the ECS. ? Strange but True. Version 1.3 Wierd string error in 1.1 fixed (bug in lattice C) Can select different disk to use. Fixed a couple of bugs in search Fixed Rawkey convert for 1.3 dos. Version 1.4 Amigados 1.3 doesn't handle RAWKEY events as 2.04....1.3 needs a so no arrows or rawkeys at all...Use the mouse to move around. Version 1.5 The file edit mode is a little unstable as it can add stuff onto the end of a file. Version 1.6 The file edit mode is less unstable but still can add stuff onto the end of the file being edited (Will only be done if you are editing the last block of the file). Version 1.7 A bug crept into the search which knocked it out completely Version 1.8 Err, the file edit..less said.. and some of the menu checkmarks don't follow suit if you use FKeys and such...I know, I know. And the DisAssembler won't open up on a custom screen yet. ( Only happens when you use -own ) * Chapter.9 - The Future ? * *--------------------------------------------------------------------* Currently I can't think of anything else to add to this program except PublicScreens, commodities etc. But I'm sure people will let me know if they want anything else. Hopefully though any new features can be added through Arexx. * Chapter.A - Virutal Reality Disk Editing Feature * *--------------------------------------------------------------------* This is probably the most advanced feature of DEdit at least for now anyway. If you have Arexx then read on else skip it. If you registered your copy of DEdit then you should have the file VR.REXX copy it to your REXX: directory either with install.rexx.scripts or the amigaDOS copy command, then launch the RexxMast program unless you already have done so. Load DEdit with the option VR just type DE VR DEdit will now load in the 'Vr' mode, Virtual Reality, if you have not already done so put on your 'Vr' helmet and get your 'VrMouse' and 'VrPen' at the ready, walk upto the DEdit Door and open it, climb in to the control chair and Select df0:-df3: and use the VrMouse and VrPen to select the various icons and use DEdit just as explained above except instead of using key shortcuts use the icons. If you look up to your right you will see the library here is stored all the bootblocks currently available just take one open it at the page you require and point the VrPen at it press and hold button 'A' point the VrPen at the VrBufferView and let go button 'A', then proceed as documented above. To exit VR get up and go out the door remembering to close it behind you. * Chapter.B - Copyrights And Stuff * *--------------------------------------------------------------------* Trademarks and Copyrights shown where I was aware one existed. Amiga is a registered trade mark of Commodore-Amiga AmigaDOS,Amiga Workbench,Amiga Kickstart are trademarks of Commodore-Amiga Inc 68000,68010,68020,68030,68040 are trademarks of Motorola. CBM,Commodore,the Commodore logo are registered trademarks of Commodore Electronics Limited. Lattice is a trademark of SAS/Lattice. Hisoft and Devpac are trademarks of Hisoft. CygnusED Pro is a copyright of CygnusSoft Software & published by ASDG Arexx copyright William S. Hawes. I nor LSD cannot accept responsiblity for any loss or damage caused by this document or program especially in the sanity front, nor can I be held responsible for any damage or loss caused by Deluxe Editor or by any actions of its programs/utilities, due to the nature of this program and its ability to wipe out small planets in one sweep you should only work on backups and/or know what you are doing, anyone, who shall be now known as the party of the first part, experimenting with monkeys or any other type of animal, vegetable, mineral, whether or not hypothetical, which are now designated as the party of the second part, which causes any damage by any means physical, mental, impossible or impractical to the party of the first parts hardware, software or stair carpets, which will now be known as the Target of the party of the first parts, by the party of the second part using Deluxe Editor which is now known as the Product of a diseased mind, whilst the party of the second part attempting to recover, correct, maim eat or chew the target of the party of the first parts that is belonging to our lent to the party of the first part. No responsibility can befall the author now known as the Party with the diseased mind, whilst the aforementioned parties whether they be of the type rave, getting on one, warehouse, garage, sock or office and the party of the diseased mind not being invited to the aformentioned item, does rightly belive that if the party of the second part causes any loss/damage to the target of the party of the first part, then its tough luck and I hope you've got a backup (unless the target of the party of the first part was a stair carpet or small mammal named Cedric of Rose). And remember 'Don't fix it if it ain't broken' * Chapter.C - Anything i've forgotten or not remembered * *--------------------------------------------------------------------* Please Fill in your own requester text in the box provided and post it to me. +--------------------------+ | | | | | | | | +-+-----+---------+------+-+ | | | | | | +-+-----+---------+------+-+ * Chapter.D - The hidden one * *--------------------------------------------------------------------* If you want to get in touch with reqesters filled out in the style of Terry Pratchett with a hint of Neil Gaiman *--------------------------------------------------------------------* Write To :- 'Cath' 281 Moor Road Chorley Lancashire England UK Or Pazza at the usual address. But if you do want something from him at least send him a blank disk and SAE etc. (or a SAJ Self Addressed Jiffy) REGISTRATION: Since this became an LSD product registration is no longer an issue as the program (Deluxe Editor) is P.D. and future updates will be provided as available to the usual sources. Telephone me at 0257 270441. Repeated just in case ************************************************************************** * !! Note to PD Libraries and Magazines with CoverDisks !! * *------------------------------------------------------------------------* *A) No more than £2.00 can be charged for this program, lower the better * *B) This program CANNOT be put on magazine coverdisks without prior * * permission from either the Author, Cath, OR Pazza of LSD * *C) The program MUST be distributed with all doc files, examples etc * *------------------------------------------------------------------------* * !! Note to PD Libraries and Magazines with CoverDisks !! * **************************************************************************