Pub Utils --------- Public Screen Utilities by Chris Papademetrious Documentation by Kevin-Neil Klop PubUtils is an archive of 4 programs designed to create, close, and manage public screens. Since public screens are a feature of the Amiga Operating system version 2.0 and greater, these programs will not work with any operating system prior to 2.0. Notes about the documentation: ----------------------------- Words marked with this symbol: § are defined in the glossary at the end of this manual. If you don't know what the word means, the glossary will provide more information. It is strongly suggested that you know what all the words mean before attempting to install or use the PubUtils package. What is a public screen: ------------------------ When you start up the Amiga computer, you are presented with a screen§ upon which certain icons show up, and maybe a Shell§. This screen, called the Workbench Screen, is available for all programs to use when they need to display things. A program has the option to either use the workbench screen or to create their own private screen to use in displaying things. At least that's how things worked until the Amiga OS revision 2.04 became available. The Workbench screen was ``public'' in that it was available to all applications to use. All other screens were ``private'' and as such could not be shared (easily) between applications. With the 2.04 revision of the Amiga Operating System, the concept of ``public'' screens was further refined and the ability given to applications to create these ``public'' screens and to share public screens with each other. PubUtils provide an easy way for a user (in other words, YOU!) to create these public screens, delete public screens, and change the colors§ of these public screens. Why would I use a public screen? -------------------------------- An example of one person's use of public screens is that he uses one public screen for one project. He has his editor open on the screen and also a Shell for programming. On a different public screen he may have a drawing package open. On yet a third public screen, he has his terminal program, and also a Shell to deal with uploads and downloads. I'm sure that there are other uses to which you'll put public screens after you've mulled the concept over. Installation: ------------ Installation consists of the following general steps: 1) Unarchive the executable files 2) Place them into a directory accessible through your PATH§ The files have been archived using the LZ archiver by Jonathan Forbes. To unarchive the files, you must use the Shell to execute the LZ program. You can either choose to unarchive the programs straight to their final destination directory, or else you can unarchive them into one directory and then copy them to whatever directory you wish to use as their final resting place. If you choose the first option, then you would use a command line similar to: LZ X PUBUTILS destdir where ``destdir'' would be replaced with the destination directory. If you choose the second option, or the current directory is the place in which you want the executable files to reside, then use the following command line: LZ X PUBUTILS If you need to add the final directory to the path, you probably should consider putting the necessary lines into your startup-sequence so that they will be available to you every time you restart your Amiga. The commands that you need to type, or add to your startup-sequence are: PATH destdir ADD where destdir is either the destdir from the LZ X PUBUTILS destdir command, the name of the current directory, or the directory to which you copied the executable files. Using the utilities: -------------------- The five utilities are named: OpenScreen SetColors CloseScreen ScreenToFront ScreenFlags Each utility will be explained in their own section, but generally they are executed in the following order: ScreenFlags OpenScreen SetColors any number of ScreenToFronts while you're working CloseScreen Note that these utilities are designed to be run from the Shell. They do not run correctly from the Workbench, and so do not come with any icons. ScreenFlags: ------------ ScreenFlags provides a way to set the various public screen flags kept by the system. The syntax for this command is: ScreenFlags DEFAULT,POP/S,SHANGHAI/S where: DEFAULT is replaced by the name of the default screen. Windows requesting the default screen will then open on the screen of your choice. POP tells the system that whenever a window opens on a public screen (this includes Workbench), that screen should pop to the front. SHANGHAI tells the system to 'hijack' all windows bound for the Workbench screen, and open them on the default screen (set above) instead. Examples: ScreenFlags HullaBullo makes the screen "HullaBullo" the default screen, and turns off public screen popping and shanghai mode. ScreenFlags POP will turn on public screen popping, and will disable shanghai mode. OpenScreen: ----------- OpenScreen is the utility that actually creates the public screen. A screen must be created before anyone can use it (This sort of makes sense - it's hard to use something before it's built, right?) The Syntax for this command is: OpenScreen SCREEN/A,DEPTH/A/N,HIRES/S,LACE/S,DISPLAYID/K/N, FONT/K,SIZE/K/N,WIDTH/N,HEIGHT/N,AUTOSCROLL/S where: SCREEN is replaced with the name of the screen DEPTH is the number of bit planes§ for the screen (The workbench screen uses 2 bit planes by default) HIRES (if present) specifies either 640x200 or 640x400, depending on the state of the LACE keyword. LACE (if present) causes the screen to be interlaced§. DISPLAYID is the number of the displaymode ID for more non-standard modes. Some common numbers follow: Productivity: 233508 Productivity/Lace: 233509 SuperHires: 32800 SuperHires/Lace: 32804 A2024(10Hz): 266240 A2024(15Hz): 299008 FONT is replaced with the name of the font you wish to use as the default font for the screen. If this option is not present, then the default system font will be used. The font name MUST include the .font extension. SIZE is the size of the font you wish to use. WIDTH is the desired width of the public screen in pixels. HEIGHT is the desired height of the public screen in pixels. AUTOSCROLL is a keyword used to set the AUTOSCROLL§ mode on the public screen. Examples: OpenScreen Boojum 2 HIRES LACE opens a 2 bit plane screen (same number of colors as the default Workbench screen) called Boojum. The screen will be 640x400 pixels if no overscan is set in Overscan Prefs. If the LACE keyword was left out, it would have been 640x200 pixels. If, instead, the HIRES had been left out, it would have been 320x400. OpenScreen Bandersnatch 4 FONT ZapfChancery.font SIZE 8 opens a screen called Bandersnatch that has 4 bit planes (16 colors). The default font for the screen will be Zapf Chancery in an 8 point size. CloseScreen: ----------- CloseScreen is the program used to close a public screen that was opened by the OpenScreen program. The syntax for this command is: CloseScreen SCREEN/A where: SCREEN is replaced with the name of the screen opened by the OpenScreen program. Examples: OpenScreen Boojum 2 HIRES LACE CloseScreen Boojum opens up a screen called Boojum and then closes it. OpenScreen Babaloo" 4 OpenScreen "Caspar The Ghost" OpenScreen "Dippity Doo" CloseScreen "Caspar The Ghost" CloseScreen Babaloo CloseScreen "Dippity Doo" opens up screens and then closes them in a different order. ScreenToFront: ------------- This program is used to move a specified screen in front of other ones. Note that you can do this with the mouse using the depth arranging gadgets in the top right hand corner of the screen, but this program allows you to do it from scripts or from the keyboard and Shell. The syntax for this command is: ScreenToFront SCREEN/A where SCREEN is replaced by the name of the screen that you want to move to the front. Examples: OpenScreen Laurel 2 OpenScreen Hardy 2 HIRES ScreenToFront Laurel will open up two screens, one called Laurel and one called Hardy. After the second OpenScreen call, the screen called Hardy will be in front. The ScreenToFront command moves the screen called Laurel in front of the screen called Hardy. SetColors: -------- This utility is used to set the colors used in a public screen. These default colors are things such as the foreground Color, the background Color, the Color used to draw the window frames, and the Color used to draw menus. The syntax for this command is: SetColors SCREEN/A,HEXCOLOR/A/M where: SCREEN is replaced by the name of the public screen whose colors you wish to modify. HEXCOLOR is a set of one or more three-character hex colors. If the hex color is an asterisk (*), the register is left unmodified. The rgb arguments can be repeated for as many colors as are used in the specified public screen The rgb arguments have to be specified as hexadecimal values§. The values for each of the components (red, green, and blue) are from 0 to 'F'. You can find out the hex combination of any color from the Colors program in the Tools directory. Examples: OpenScreen Paisley 2 SetColors Paisley 000 FFF sets the screen, "Paisley" to a black and white Color scheme. SetColors Paisley 777 FFF Okay, now Paisley is grey and white. OpenScreen Gaudy 4 SetColors "Gaudy" F00 0F0 00F 372 makes a pretty gaudy screen - almost blinding. Note that not all the colors were specified - with 4 bit planes, a total of 16 colors can be specified, but I only specified 4. The rest of the colors will be taken from whatever happens to be in the Color registers§ when OpenScreen was called. Glossary: -------- Autoscroll In the new, 2.04, operating system, you can define screens that are larger than your CRT can display at one time. When using one of these screens, you'll want to scroll around so that you can see the portions of the screen that are "off" your CRT or else these large screens are virtually useless (Wonder if that's how they got the name, "Virtual Screens?... nahhhh...). If a screen is Autoscrolling, then moving the mouse pointer near the side of your CRT will cause the screen to scroll to bring whatever is hidden beyond that side into view. Bit Planes Bit planes are used to help the Amiga define the colors for any given dot (also called a "Pixel") on the screen. The actual way in which bit planes are used is somewhat immaterial to you as a user, but in general the more bit planes there are, the more colors that are available to you. Blue component Virtually any Color that you can see can be broken down into a mixture of three primary colors. In photography, these primary colors are Yellow, Cyan, and Magenta. In video, the primary colors are Red, Green, and Blue. By mixing these three colors together in various proportions, all the other colors can be generated. For instance, if you want white, you would mix equal parts of all three primary colors. by mixing a LOT of these colors, you would get white. Less and less of these colors (keeping the proportions equal) would give you darker and darker greys until mixing NONE of these colors gives you black. Shell (or CLI, Command Line Interpreter) Although the Amiga has what is known as a Graphical User Interface (sometimes shortened to "GUI" [Gee You Eye]), there is an interface§ available on the Amiga that allows you to type in commands on the keyboard rather than select menus and icons with the mouse. This interface is called the Shell, or sometimes, Command Line Interpreter (CLI). Color Register The number specified for a certain pixel through the use of the bit planes§ does not directly select a Color to draw on the screen. Instead, it tells the computer where to look for the actual Color to be displayed. This "where" is one of the Color registers held in one of the custom chips in the Amiga. As an example, suppose that the number from the bit planes for a pixel is 5. This means for the computer to look in Color register 5 for the actual Red, Green, and Blue components§ of the Color to be displayed. Current Directory The current directory is the directory that the CLI thinks you are currently using. Hmmm, that was a bit confusing, let's show an example. Assume you type in the following command: CD Work:ADirectory/SubDirctory Yeah, yeah, I know I misspelled "SubDirctory", but let's assume that's the way it is on my disk. The current directory after that would be Work:ADirectory/SubDirctory. The concept of the "current directory" is useful since it becomes the default for all commands unless you specify a complete path specification§ to override the current directory. Green component See Blue component Hexadecimal Values Hexadecimal is a numbering system used quite a bit in the computer field. While you are familiar with the decimal numbering scheme used in most human mathematics, it is often more convenient to use the hexadecimal numbering scheme when dealing with a computer. In hexadecimal, instead of using the digits 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9, we use the digits 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, and F. Wait a minute! A, B, C, D, E, and F are letters, they aren't numbers! All I can say is that in Hexadecimal, they are numbers. In decimal, 1 is greater than 0, 2 is greater than 1, 3 is greater than 2, and so on until we get to 9 is greater than 8. After that we go to 10 is greater than 9, 11 is greater than 10, and so on. In hexadecimal, we use the following relationship: 1 is greater than 0 2 is greater than 1 3 is greater than 2 . . . 8 is greater than 7 9 is greater than 8 A is greater than 9 B is greater than A C is greater than B D is greater than C E is greater than D F is greater than E 10 is greater than F Interface An interface is the way in which you interact with the computer. For instance, WorkBench is what is known as a Graphical User Interface, and it allows you to interact with your Amiga through the use of icons, a mouse, and menus. Interlace Interlace is a method used in displays to double the number of pixels available in the vertical (up and down) direction. If a non-interlaced display has 200 pixels in the vertical direction, then an interlaced display will have 400 pixels in the vertical direction. There is a cost, however, in interlacing a display. The refresh rate (the number of times the picture is painted onto your screen per second) is halved. This can lead to an annoying "flickering" of your display. The new Amiga chips (called the ECS, or Enhanced Chip Set) are capable of higher resolutions without flickering. In addition, several manufacturers make "Flicker Fixers" which remove the flickering from interlaced displays. Path In the CLI, when you type the name of a program to run, the Amiga computer searches for that program in several places trying to find it. The first place that it searches is the current directory§. If the program can't be found there, then it starts looking in other directories that have been specified as part of your PATH. If you never specify your own path, then the path will (by default) cause the Amiga to look in the C: directory for the program. If, on the other hand, you specify the following command either manually to the CLI or in your startup-sequence or cli-startup: PATH Work:BIN WORK:MyDir then the Amiga will search First: The current directory Second: the directory Work:BIN Third: the directory Work:MyDir Only if it can't find the program in any of those will the Amiga admit that it doesn't understand how to do that (i.e. the infamous, "Unknown Command" error message). Path Specification A Path specification is merely the name of a file plus its directory. For instance, in the following file name: MyDisk:MyDir/AllMyStuff/PlusSome/FileName then the path specification is "MyDisk:MyDir/AllMyStiff/PlusSome" and the file name is "FileName". Red component See Blue Component Screen A screen can be different things depending on the context in which it is used. Generally, when used in this documentation, a "screen" is a graphic presentation upon which windows or other graphics are placed. That might not be all that clear, so let's give you an example. The workbench screen is generally the first thing you see when you start your Amiga. Upon that screen are icons representing disk or other storage devices. If you start a CLI, the window for the CLI is put on the workbench screen. If you start a program, that program may create its own screen upon which it places graphics or windows. These screens generally can be slid up and down. Also, the Colored bar at the top of the screen is used to display menus.