Short: Vintage multi-assign tool for OS1.x Author: Anders 'ALi' Lindgren Uploader: Matt_H amiga org Type: util/cli Architecture: m68k-amigaos PathAssign V1.1 ~~~~~~~~~~~~~~~ Written by Anders `ALi' Lindgren Introduction ~~~~~~~~~~~~ This is a program which increases the flexibility of the AmigaDOS system. The basic idea is to replace the old standard assignments with new which can read from a several different (i.e. a path) of directories. This operation is totaly transparent to the user and to normal programs. To use the program, read and follow the instructions found in the `Installation' paragraph below. Then read the `Function' and `Usage' section, or the supplied manual file `PathAss.man' If you are a novice, this text may seem a little `complicated', but don`t panic. The AmigaDOS and CLI is not so difficult, just try it and you will LOVE it. As a last resort, I can only recomend you to read one of the many books on the topic. Function: ~~~~~~~~~ A PathAssignemnt works like a normal assignment, the difference lies in the fact that is can contain several directories. For example, the direcory HELLO: can be assignmed to `DF0:hi' AND `DF1:goodbye'. This is very helpful if there is useful files in several different disks and you would like to access them like they here stored in one single directory. The main reason to use this program is to gain more flexibility out of already existing programs. For examples the AmigaDOS make six different assignments at the startup. These are C:, S:, L:, LIBS:, DEVS: and FONTS:. These can be replaces by ekvivialent Path- Assignments so vd0:, df0: and df1: will be searched, for example. Everybody can benifit from this program, from one disk owners to people who has 300 Mb HDs, only your imagination will stop you! Here are some tips: - One drive (and two drive owners) with a shortage of RAM can place a few of their favorite commands on every disk. No irritating diskswapping will occoure. - Some comands and libraries can be placed in RAM: (or VD0:), the rest can be kept on a diskett. - HD owners sometimes don`t want to fill up their HD with several program (they do get filledup.) They simply can make a assignment to hd0:,RAD:,df0:,df1:,df2:,df3: and to every other device they own... - Lattice C and assembler programmers can place some often used headerfiles and libraries in RAM and place the rest on disk. The order of the directories are significant. The program scans the directories from the beginning so put the references to ram based devices first. NOTE: Files that don`t exist in any directory will be written to the first dir in the list! Note alse that PathAss doesn`t put put out any filerequesters, so if a file isn`t found, PathAss will return an error immediatley. Another feuture of this program is that it doesn`t consider assignments volume-relative, as the AmigaDos assignment command does. PathAss consider them device-relative. This means when an assignment is made to df0: PathAss will look at the volume currently is df0:, while Assign would check the volume that was inserted in df0: at the time of the assignment. To the advanced user: PathAssignments is implemented as normal AmigaDOS devices. The handler program is `Path-Handler'. This program handles almost every packet type existing on the Amiga. This code will search each specified directory in turn. To programmers: Don`t assume that the standard Amiga logical devices ARE assignments (i.e. DLT_DIRECTORY), they aren`t! (At least not on my system.) Usage: ~~~~~~ To make a assigement write for examples: PathAss name: df1:,df0: If `name:' exists as a device or volume, the operation will fail, otherwise the system will have a new PathAssignment. If `name:' is a normal assignment or a PathAssignment it will be replaced with the new one. The PathAssignment will stay activated until it is deleted or replaced with an other PathAssignment. The dirs is separated with a comma. No blanks can be inserted between dirs. If a blank is embedded in a dirname, quote the whole string. Example: PathAss name: "hello:,hi there:" To list all current PathAssignments write: PathAss -l To delete an assignment write: PathAss -d name: or PathAss name: (Note: This also deletes old AmigaDos assignments) You can see a short help text by writing: PathAss -h If no arguments are specified, the PathAssignments will be listed if there exist any, otherwise the help text will be typed. Important: Because the komplexity (.Hmmm.) of AmigaDos and CLI, C: must be an assignment, I recommend the following workaround: Make a PathAssign to another device with the path that normally would have been the C: path. Then assign C: to that device. Example: PathAss CX: vd0:c,df0:c,df1:c Assign C: CX: I strongly suggest that you insert the PathAssignments in your startup-sequence file. Normal examples: PathAss devs: vd0:devs,df1:devs,df0:devs PathAss include: vd0:myinc,lattice5.0.2:CompactH PathAss fonts: vd0:fonts,df0:fonts,df1:fonts PathAss fonts: PathAss -l PathAss -h PathAss (Please note:) PathAss cx: vd0:c,df0:c,df1:c Assign c: cx: Insallation: ~~~~~~~~~~~~ To use the program you put the file `path-handler' in your L: directory and the PathAss command in C:. For you non-CLI masters I have included the script `Install' to do this for you. (Type `Execute Install' at the CLI prompt.) Contents ~~~~~~~~ The following files are included in the .zoo archive: PathAss - The actual command. Place it in C: Path-Handler - The device-handler. -----"----- L: PathAss.man - A manual file in UNIX-format. ReadMe.1.1 - This file Install - Script file to install PathAss. PathAll - Example Script file. PathAssigns all AmigaDos assignments to vd0:, df0: and df1: Current Satus ~~~~~~~~~~~~~ The PathAss program is shareware. To become a registred user just pay the fee, $10, to the address below. I will accept payment in any currency, like swedish crowns, new PD/SW programs, clean disks and so on. All registred users will recieve the lastest version of the program and the sourcecode. All registed users can send in an empty disk and return postage to get the absolute latest version of the program and source. To pay the fee, ask any question, complain, bug reports, suggestions, ask for autograps etc. Please write to: SNAIL-MAIL: Anders `ALi' Lindgren Mälarblick 8 S-161 51 Bromma Sweden PHONE: No thanks, no calls at 3 AM....... Or contact me on the swedish Amiga base `Camelot'. The author takes no responsibility what so ever! Use the program on your own risk! Credits: ~~~~~~~~ I here give a big thanks for all of you who has sent is a ShareWare registrartion, it was beyond my wildest dreams that anyone would do that. I will also apologize for those who hasn`t heard of me while I was develloping V1.1. (I told my self next week, next week... But now it`s finally finished, I hope. You know, it takes a month to repair a broken computer here in Sweden :-( ) A big thank goes to they who tested the prereleases, sent in bugreports, and to they who supported me morally by saying that they actually used my product, and liked it. (Hmmm, how about the SW notice.... :-) ) Another big thanks goes to all other PD/SW devellopers around the world. Their effort has made the Amiga was it is today, i.e. a FUN machine to use. Background ~~~~~~~~~~ The idea to this program first popped into my mind when I was thinking of an alternate method of storing the fonts in the Fonts: The reason why it become a complete program was because a friend of mine claimed that it couldn`t be done. The program was develloped om my Amiga 500 with 2 drives and a 2Mb memory expansion unit. It was developped using Lattice V 4.0, but the progran is now compiled with V 5.02. Future Fixes ~~~~~~~~~~~~ In the occourance of free time, and user response, I have a few extra implementations to work on, these are among else: - Put out system requesters for volume relative access. (I maybe add a flag for this.) - Fix the memory bug in the release process of the resident segment. (Sorry, but this version is _late_ already). - Make the executable shorter, I might use the Arp librarys Printf() and Assign( ,NULL) functions. (So far I have written everything on my own.) I migth even rewrite some parts in Assembler. - Make the PathAss code pure. (Mabye it is, I don`t know.) - Multiple assignments and/or file (script) assignments. - Make the PathAssignments DLT_DIRECTORY`s, which in turn has locked a separate PATH:-device. This will fix the C: feature - Start the process only when accessed. This would save _some_ memory. (At least 3Kb per device :-) ) Release History ~~~~~~~~~~~~~~~ 0.9x Prerelease. Use on your own risk :-) 1.0 (88-11-21) Release Full program. Delete. Replace. 1.0b (88-12-29) Very small release Only minor fixes and cleanups. 1.1 (89-09-08) Release. - Handler code made resident! - L: bug fixed! - Protection bit support added. (Sorry, forgot it in V1.0) - Comment code added. - Code cleanup and several small bug fixed. - several small bug fixed. (i.e. more relaiable program.)