Utilities Docs  This file includes Documentation for all files in the Utilities Drawer. They have all been combined into one to save disk space. The Docs included in this file are:  TextReader SafeBoot 2.2 DefSysDisk Lacer AutoChange NoClickStart 1.3  Doc File Headers are in RED! *****************************************************************************  TextReader by Oren Peli, Copyright (c) 1987 BazboSOFT!  Introduction: TextReader is, I believe, the most useful program I've written on the Amiga, and I am very proud of it. TextReader's purpose is to make editing within the CLI much easier, and as far as I know, there isn't any other program of that kind for the Amiga. Examples of where could TextReader make you life easier: 1) Right after finishing writing TextReader, I wanted to copy it to my browsing/debugging/working CLI disk, only that it was completely full. I dir'ed the C subdirectory and saw many files I never use (lab, if, endif, else, etc.). So I wrote (from csh): % rm and with TextReader copied all the files names I wanted to delete. 2) While looking at several Fish disks to see how useful and debugged TextReader was, I've encounterred STEmualtor. I cd'd into it's directory (with TextReader, of course) and type'd the README. Fish wrote in that file that in order to run the STEmulator, it is necessary to write something like: "assign STEmulator: AmigaLibDisk43:STEmulator", so, with TextReader, I simply copied those instructions instead of retyping then. Usage: It's very simple: "run" it (using the run command) and press the left mouse button within the CLI window on a text, drag the mouse and watch the results. To quit: You have a menu; just press the right mouse button and pick the Quit (and only) menu. Note: The menu will appear ONLY if the pointer is positioned above the window's title bar. If the right mouse button is pressed: If the pointer is positioned left of the cursor (but in the same line), the program will generate BACKSPACE events. If the pointer is positioned right of the cursor (but in the same line), the program will generate DEL keys events. If the pointer is positioned exactly over the cursor, the program will echo your arguments. If the pointer is positioned under the current cursor line, the program will generate a RETURN key event. Syntax: RUN TextReader [string...] Note: For generating Return key event, use '\n' Examples: RUN TextReader RUN TextReader "Cd df1:\nDir opt a\n" RUN TextReader sys: RUN TextReader NewCLI\n Problems list: 1) The program won't recognize alt characters. 2) The program won't recognize any text written with foreground color other then 1 and/or background color other then 0. 3) The program won't recognize any text written in any other style than normal. 4) The program won't recognize any text written with a font whose size is not 8x8 (the font must also be a fixed with font (i.e., not proportional)). 5) After changing the font (using "font" for example) of the CLI, you MUST quit from TextReader and re-run it. All in all, TextReader is an extremely useful utility and should be called from everyone's startup-sequence. Bug reports, suggestions, etc. can be sent to me at the following address: Oren Peli Shkediya 13 Ramat-Gan 52-546 ISRAEL ... or, if you want to chat with me over the phone, you can call: 03-7514475. You may not immediately realize how powerful TextReader really is. After doing so, please consider sending me a donation ($20 seems like a nice round number), although TextReader is NOT a Sharewere program but a public domain. For every $100 dollars I receive, I will fix a problem from the above list. ENJOY! *****************************************************************************  SafeBoot V2.2 ©1988 Mark Lanoux  UnderSea World Software 03-Oct-88 Docs revised: 29-Oct-88 Boring stuff: This program is NOT public domain, nor Shareware. The author (me!) retains all rights. SafeBoot is Copyrighted, therefore it may not be sold by anyone without my permission. This program may be distributed freely as long as all the files in the archive accompany it. Brief history of SafeBoot: V1.0 CLI based only V1.1 Through in some basic Workbench support... V2.0 Trashed the old interface, added the Arp file requester V2.1 Mistakenly release..found a bug at the last minute after uploaded to Genie V2.2 Replaced Arp file requester with one of my own doing, added 'loop mode' so multilple saves/restores can be done without having to restart each time ...who knows what the future holds... Requirements: The only requirement, other then Kickstart/Workbench 1.2+, is to have the BootIcon file in the directory that you start SafeBoot from. This file is actually the .info file that will be created for any files that you save IF you run under WorkBench. If you run from the CLI exclusivly, you do not have to have this file for SafeBoot to work. Synopsis: The virus problem is well known in the Amiga community. These virus are brought into the system from the boot sectors of a bootable disk, and usually spread like wildfire unless detected. The numerous virus checkers out there in PD land do the trick, but one problem is if the virus infects the boot sectors of commercial disks, which occasionaly have special code imbedded there which is needed to start the program, that disk will be rendered useless. This program was written to solve that problem. SafeBoot will allow the user to save custom boot sectors of all your commercial disks and save them for such an emergency. If a virus somehow manages to trash the boot sectors of a commercial disk, just run SafeBoot and it will restore the boot sectors, therefore saving your disk! (and hard earned money!). INSTRUCTIONS: SafeBoot is runnable from Workbench and the CLI. If you run it from Workbench, an icon for the saved boot block data file will be created. Remember, for the icon to be created, the BootIcon file must be in the directory that you start SafeBoot from! When the program starts, a small window comes up and you are presented with nine gadgets. These gadgets are all thats needed to run the program. Here is a layout of the gadgets: Save Restore > ? DF0: DF1: DF2: DF3: > ? Volume Name Custom Name (this is NOT a gadget) Status: Exit Save Sets the program into save mode whereby the user may save the boot block data from a bootable disk. When clicked on, Save will be printed next to the > . Restore Acts like save, but this will allow the user to restore a boot block to a bootable disk. Restore will be printed next to the > . DF0: DF1: These gadgets select which drive the bootable disk whose DF2: DF3: boot block is to be saved/restored is placed. The drive selected will be printed next to the > . Volume Name Hitting this gadget will affect SafeBoot depending on which mode (Save or Restore) you are in. If in Save mode, the file that will be saved will be given the name of the disk volume whose data is to be saved. The data file will be saved in the directory that SafeBoot was started from. In Restore mode, SafeBoot will look for the date file with the disk volume name whose boot block is to be restored. This file is searched for in the directory SafeBoot was started from. Custom Name This gadget puts up the file requester. You may select files by clicking on their names, and to enter directories you just click on the directory name. To back out of a directory, hit the Parent Dir gadget. If you need to change drives or even devices, use the proportional gadget on the right hand side to display the bottom of the listing. At the end is a list of AmigaDOS drives and devices. Clicking on these will send you to any drive or device that you have mounted. To select the file, you have 3 choices. First, you may go to the string gadget near the bottom of the requester and type in a name. Second, you can click on a name in the list, it will then appear in the string gadget. Or third, you may go to any directory you wish and click in the string gadget. If you delete all the characters in the string gadget (if any at all), then SafeBoot will use the volume name of the target disk. This is like hitting the Volumne Name gadget, except that you can specify in which directory the file is. Finally, if you are satisfied with the filename, click in the Use It gadget. To abort at any time, click the CANCEL gadget. Exit Quits the program. When you have selected the mode of operation, the drive where the bootable disk is located, and the filename, the actual work begins. If all is ok, the filename that is created/accessed will be printed in the Workbench Screen's title bar. If there is an error, a small error message will be printed to alert the user. There is no required order of operation, but a sample run may be as follows. For a save, first click on the Save gadget. Next, select the disk drive gadget where the bootable disk is placed. Finally, decide on whether you want to use a custom name or the disk volume name. To restore a boot block, just select the Restore gadget and follow the same pattern as above. As a little bit of added protection, if you attempt to save a bootblock, and a file with the same name that you wish to use already exists, SafeBoot puts up a requester asking whether or not you wish to overwrite the old file. Click on Save Anyway to overwrite the file, otherwise just click on Cancel. At the time of saving, a checksum is calculated and saved as part of the header. When a restore is attempted, the checksum is recalculated and compared to the checksum in the saved header. If they do not match for some reason, a requester is displayed warning the user, and a choice is given on whether to proceed or abort is given. A note on restoring boot blocks. SafeBoot saves as part of the data file a header, this header contains the volume name of the disk it was saved from. If you attempt to restore a boot block data file to the disk that is was not originally from, SafeBoot puts a requester warning you. You may then proceed to restore, or abort. If you give a boot block data file a less than descript filename, you should go to the CLI and do a TYPE OPT H for a hex dump of the file. You will see on the first line 'BootBlock for:' and on the second line will appear the volume name this boot block file is for. But, for the easiest way to check the volume name for a particular file, just check that file's comment. You can do this in the CLI by listing the file or by getting a directory where the file is. The comment line will show 'BootBlock for:' and the volume name will be printed here. If you run from Workbench, just click on the icon for the data file, and select the 'Info' menu selection from the Project menu. This program was written in Benchmark Modula-2. I would like to thank the following people, who in one way or the other, helped me to finish this program (after heavy-duty testing): Patrick Goudeau who gave me programming tips, help, suggestions. Paul Trauth who drew the great icons, thanx Paul! John Palmer who gave me the idea and who has helped test this program. If you wish to thank me, gripe, complain, give money, etc, I can be reached at the following address: Mark Lanoux 4447 Markham Avenue Jefferson, LA 70121 USA The source is available from me, just send me a blank disk and it will be promptly returned. This program can be found on our board, UnderSea World BBS (504)-341-5323. It is also in the New Orleans Commodore Klub (NOCK) library on it's anti-virus disk, appropriatly name the in-NOCK-ulation disk. *****************************************************************************  DefSysDisk  I took J.K. Levie's "DefDisk" and made with the workbench. This program will reassign SYS, C, LIBS, FONTS, DEVS, L, and S to another disk if they are *already* assigned. Here is a sample use: Boot with DPaint finish artwork start a CLI >DefSysDisk TelecommWorkbench: >Run Amic -or- Boot with DPaint finish artwork hold shift, click DefSysDisk icon, double-click TelecommWorkbench disk icon double-click Amic icon This way you don't have to do many (7) assigns or reboot to use programs on the other Workbench (SYS) without getting tons of requesters. Usage: > DefSysDisk dev:[dir.../dir] ( [dev:[dir.../dir] becomes SYS: ) or hold shift click DefSysDisk double click a disk icon ( the double clicked disk becomes SYS: ) The source code (Oxxi Modula-2) should clearly demonstrate how to access the startup message Workbench sends. Note: if you startup programs from the Workbench compiled with Oxxi you will get a window "raw:10/10/320/80/stuff....". I use DiskZap on the final program to change the window to "raw:10/10/000/00/stuff....". This effectively eliminates that bothersome window. *****************************************************************************  LACER PD v1.02 --------------  Public Domain 12 May 88 LACER puts the Amiga video output into interlaced mode, and keeps it interlaced. Interlaced mode is essential for good recording on video tape. LACER does not affect the resolution of the screen. Any screen can be interlaced. LACER was written specifically to counter the effect of some Aegis(tm) programs (such as VideoTitler and VideoScape 3D(tm)). These programs turn off the interlaced mode when run, or in the case of 3D, after each sequence is run. LACER should handle all programs that do that. When the interlaced mode is turned off, LACER will automatically re-interlace the display within one-half second. LACER is a very small program, and takes up less graphics ("chip") memory than you might think. The garish logo is not stored in chip memory, but chip memory is allocated briefly to display it. LACER can be run from CLI or Workbench. A crass advertisement first appears, and ten seconds later the garish logo is displayed. At that point the display will be interlaced, and should stay interlaced as long as the window is open. To exit, close the window. Exiting will turn off the interlacing (unless your Workbench screen is interlaced by default). If you would like a custom version that does not have the advertisement or the logo, (i.e. if you find this program useful), send me $15, or $10 and a disk. Include any text you would like to appear in the window, such as your company name. Please send me suggestions or comments about video production software for the Amiga. You can call (818) 362-6031 between 10am & 4pm Pacific time, or if you have a modem, you can leave a message on CompuServe(tm) to 73267,3361, or on the 1939 BBS at (818) 368-4248. ---Mike Berro BCS Software 13432 Lochrin Lane Sylmar, CA 91342 *****************************************************************************  (*======================================================================*) (* AutoDiskChnage: A program to run FFS on floppies *) (*======================================================================*) (* Copyright © 1988 Martin Taillefer, All Rights Reserved *) (* This is freely redistributable *) (*======================================================================*) (* Version: 1.00 Author : Martin Taillefer *) (* Date : 12-Oct-88 Changes: Original *) (*======================================================================*)  NOTE: This document will refer to "internal" and "first external" disk drives. For A2000 users, the internal drive will be the disk drive on the right side. The "first external" drive refers to the unit on the left side on your Amiga. FFS: The Fast File System ------------------------- The Fast File System is an alternate file systen developed by Commodore to replace the BCPL file system used up to this point. The initial release of FFS (as shipped with the 1.3 enhancer kit) is geared towards non-removable media such as hard disks, or RAD: (another 1.3 goodie). This means that FFS doesn't directly support floopies. The Problem: Swapping floppies ------------------------------ In all fairness, FFS does work on floppies. There is a problem though: it doesn't notice when you swap floppies. This steems from the fact that FFS currently expects to be run on non-removabke media only. This means you can easily corrupt floppies by writing data to a disk which was meant for another disk since FFS doesn't know that you changed floppy and may have a corrupt view of the floppy in the drive. The First Solution: DISKCHANGE ------------------------------ The 1.2 release of AmigaDOS saw the apparition of the DISKCHANGE command. This was mainly meant for 5'25 inch drive users. It turns out the command can also be used to inform FFS whenever a disk is changed. This means that every time you change a floppy, you have to send a DISKCHANGE command. This is quite annoying, and risky. If you forget a DISKCHANGE only once you can damage two floppies! The Second Solution: AUTODISKCHANGE ----------------------------------- AutoDiskChange is a small program that you run in the background. Every time you change a floppy it will send the appropriate information to FFS to tell it that a disk has changed. This puts FFS on the same level as the normal file system. The Third Solution: 1.4 ----------------------- Kickstart 1.4 will see FFS migrate into ROM. This will allow the system to be completly running FFS (including floppies). Why FFS on floppies? -------------------- FFS will allow you to store 4.9% more data on the same floppy. It will also do disk directories quite a bit faster. Disk reads and writes are speeded up a little, but not that much. This is due to hardware limitations. One area where a big difference can be perceived is when doing 2 or more disk transactions simultaneously. If you're saving some data to floppy in DF0: and reading stuff to the RAM disk from DF1:, there will be virtually no slowdown of either the write or read operations. This is in contrast with the old FS. Note that performing two disk operations on the same floopy still results in HORRIBLE performance loss. 'How To' Guide -------------- First, you need the file "FastFileSystem" in your system's L: directory. Second, you will need the file "arp.library" in your system's LIBS: directory. Third, append the following MountList entries to your system's mountlist (found in the DEVS: directory). /* Entries to mount the normal DF0: and DF1: as FF0: and FF1:, those new * handlers will use FFS. */ FF0: Device = trackdisk.device FileSystem = l:FastFileSystem GlobVec = -1 Mask = 0x7FFF Unit = 0 Flags = 1 Surfaces = 2 Mount = 1 BlocksPerTrack = 11 Reserved = 2 PreAlloc = 11 Interleave = 0 LowCyl = 0 ; HighCyl = 79 Buffers = 5 BufMemType = 3 DosType = 0x444F5301 # FF1: Device = trackdisk.device FileSystem = l:FastFileSystem GlobVec = -1 Mask = 0x7FFF Unit = 1 Flags = 1 Surfaces = 2 Mount =1 BlocksPerTrack = 11 Reserved = 2 PreAlloc = 11 Interleave = 0 LowCyl = 0 ; HighCyl = 79 Buffers = 5 BufMemType = 3 # Fourth, issue the following commands from a CLI: MOUNT FF0: MOUNT FF1: At this point, you should run AutoDiskChange: RUN >NIL: