Beginers Questions from the January 14 1987 PANORAMA meeting CLI QUESTIONS: Q. I'm typing up this file in ED. When the text is typed, it is only one screen wide. However, if I insert an addition the text for that line scrolls to the right and off the screen. Also when I DOWNLOADED part of this file it was wider than the sceen. How do I keep the text only one screen wide? A. ED is not a very smart editor, and lacks a few things that are nice to have. When you try to insert text, ED does not know where to wrap the text. Unfortunately, the only way around it at this time is to do the corrections by hand, a tedious process indeed. To do the corrections, simply split the line, by entering a RETURN, where you want it to end and join up the following line to it. Repeat this process until everything lines up. To keep downloaded files to one screen wide (actually captured files), some services allow you to set a screen width. If this is the case, set it for 78 columns or less. Larry Phillips Q. What does "NOT AN OBJECT MODULE" mean? A. It means it is not a loadable program file or it's been corrupted and it's discription does not match its contents in some way? Dave Allen Q. If "NOT AN OBJECT MODULE" is not a loadable program of what use is it? Or if its been corrupted, was it something I did or do they come that way? A. The "NOT AN OBJECT MODULE" message means that the file is not a loadable, runnable program. It could be many things, such as an icon (.info), a text file, a picture file, sound, whatever. If it is a corrupt file, there is a chance that it may have been corrupted by something you did, but not necessarily. It may have been munged in downloading, or some other program may have changed it. The latter is unlikely, but I mention it as a possibility. Larry Phillips Q. Can you explain some of the .SUFFIXES such as .bat .info .arc .c etc. A. On the Amiga, the only suffixes that are actually needed by the system are the ones that end in .INFO. These are icon files, and the WorkBench will look for that extension to determine if a file is an icon. Other extensions are not needed by the system, but may be needed by a program. Some conventions follow. .C C source code .ARC ARChived file, process through ARC to list, add or extract files. .BAT Haven't seen this one except on IBM, ususally a script file. .TXT Text file There are many extensions you will see. The best thing to do is to look at them with an eye on what they are part of. For instance, a group of files that go with an assembler will have .A or .ASM or .SRC for source code, .O or .OBJ for object files, etc. Larry Phillips Q. What is a printer driver? A. PRT: is a logical device. By logical device I mean that you can use it as part of the filing system. Some examples of logical devices are DF0:, RAM:, C:, LIBS:, and FONTS: You can see what logical devices are currently recognized by typing ASSIGN on a line by itself. Since PRT: is a device, you can COPY, TYPE, or otherwise send output to it. The default for this device happens to be the "printer.device", which handles the data in a particular way. It accepts data and send it to PAR:, another logical device, after first running it through a printer driver. A printer driver is nothing more than a translation program to allow any printer to understand a set number of ESC sequences, that will be constant for any printer having an appropriate driver installed. Larry Phillips Q. What is a RAM-Handler? A. RAM-Handler is the program that allows you to have a ramdisk, which is a logical device called RAM: Please note the differences between physical and logical devices. A logical device allows you to assign the logical device name to other than the default. For instance, the C directory (note lack of colon) on the disk you boot from is the normal default for your C: device. You can tell the system that you want the logical device "C:" to be somewhere else, say in the ramdisk, by typing... ASSIGN C: RAM: Larry Phillips Q. When you only have one drive, how do you print out a disk directory and file directory to the printer? A. Does the author of this question mean "print the directory of a different disk"? If so, all he has to do is COPY dir TO RAM: From there, he can insert the other disk, and type RAM:DIR df0: > PRT: OPT A Larry Phillips A. To print a disk directory all you do get into CLI and type: DIR > PRT: OPT A and you get all directories and all files in all directories. But you must be in the DRIVE. Type: CD DF0: DIR > PRT: OPT A and here it comes...Please NOTE the spaces in the SYNTAX !!!! Ivan M. WORKBENCH QUESTIONS: Q. How does one make a minimal workbench? A. Basically, make a backup of your WB disk and delete everything you don't need. I know this sounds a little general, but it is a general question that can be answered specifically only if I knew what you intend to do with the disk. You can safely delete: All demos, any printer drivers you don't need Any libraries you don't need (translator, etc) Any commands you don't need. The worst that can happen if you delete something you end up needing is that you will have to copy it back onto the disk. The .info files are icons only, and serve only to clutter the directory if you are using CLI only. Zapp 'em all! Larry Phillips Q. With respect to the .info files Larry, does that mean if you don't wish to make use of the iconic interface you could safely do a del #?.info and get away with it? Steve Barer A. Steve, if you are not going to use the workbench, you can safely delete all the info files. If by chance you did subsequently open the disk icon from workbench, all you would see is a blank window - no drawers or garbage can or pictures. Larry Phillips Q. When using PREFERNCES under Workbench 1.2, I have been unable to SAVE the Key Repeat Speed at fast settings and when attempting to do so, I have also had GURU errors and system freeze ups which are associated with mouse movents during the transition out of PREFERENCES. I have an early series AMIGA. Is this a bug in 1.2 or my machine? A. There seems to be a bug or two in Preferences. In particular, things seem to go wrong when trying to rush things, or when doing certain operations. One user found that for his particular problems, if he clicked on the "hours" digits on the time, that it stopped him from seeing the GURU (How do these people find these things?). When using Preferences, try to slow things down a bit. Move the mouse pointer only after everything has stabilized from the last operation. Moving the pointer quickly to another place or clicking the buttons can aggravate the problems if windows are opening or closing at the time. Be sure to have the right Preferences program in place. I don't know if the old 1.1 Preferences will even work with 1.2, but it is a good idea to make sure that all your disks are updated to reflect any changes to programs, commands, etc. that happened with the 1.2 release. Larry Phillips HARDWARE QUESTIONS: Q. How to best set up a single drive system? A. The best way to set up a single drive system is with a second drive. This goes a long way toward making things easy. If this cannot be, then you will need to learn how to do the various operations in such a way that they need minimal swapping of disks. RAM: is a good place to put your most frequently used commands. Under 1.2 there is a command called PATH, that allows you to set up an alternate path where the system will look for commands. Try to get a good balance between ease of use and runing short of RAM. There is no hard and fast answer to this question, as it depends heavily on what you want to do with your system. Larry Phillips WORD PROCESSING QUESTIONS: Q. What is the TC (Dir)? A. TC (dir) is from that "masterpiece" of a word processor, TextCraft. As far as I know, it's the directory in which the help screens or files are kept. For some reason, you can't erase it; TextCraft looks for it.... Joel Murray DATABASES QUESTIONS: Q. Can I leave my SUPERBASE DONGLE in all the time? A. You can leave your Superbase dongle in place all the time, unless you happen to want to use the port for something else. If you end up getting more memory and want to run Superbase and another program requiring a dongle simultaneously, then you are out of luck. Isn't copy protection wonderful? Larry Phillips SPREADSHEETS QUESTIONS: Q. Why can't I errase a file called "A*" from PROFESSIONAL? A. Not being familiar with professional, I can only hazard a guess that you are not supposed to erase it. There is nothing stopping you from erasing a file with an asterisk in it, other than that it may be "delete protected". Larry Phillips Q. What is the differences between Lattice C and Aztec C, and what is a good manual to familiarize one's self with C? A. Both Lattice C and Aztec C are really "development systems" used for translating computer programs written in the "C" language into runnable programs on your computer. As a minimum, both development packages include: 1) the compiler which translates the source "C" language into an intermediate format, 2) the code generator which generates 68000 CPU instructions from the intermediate code and, 3) A linker which will gather a number of seperately-compiled modules into a runnable program. 4) A number of supporting functions are also provided to make the job of writing programs easier, and to comply with Ansii standards. The products differ, sometimes greatly, in all four phases. 1) The Lattice compiler was originally supplied by Commodore, and you will find that the "C" source code examples supplied by Commodore will work with the Lattice compiler. Not so with Aztec! The Lattice compiler tends to be more pedantic about error diagnostics than Aztec. Diagnostics tend to be wordy and misleading more often than not. Aztec seems to be ahead in this area in my opinion. Under the current releases, (V3.10 of Lattice and V3.20 of Aztec), Lattice is the more Ansii-compatible compiler. It supports most of the extensions to "C" such as "enum" types, and prototyping your function parameters. The next release of Aztec (V3.40) due to be released in February, is rumored to wipe out this advantage. 2)Aztec is the hands down winner on the code generator. The generated code is normally about half the size of an equivalent Lattice program. the code is of much better quality - ie it runs faster. You can also read the intermediate file with an editor. Aztec's compiler generates 68000 Assembly source code. If you are not sure just how the compiler interpreted your code, you can look in the intermediate code and see! These comments apply to the older version of Lattice. I understand the current version (V3.10) has partially negated this advantage. 3)Linkers also differ. Lattice was originally supplied with a very sloooowwww Metacompco linker. Lattice currently comes with The Software Distilleries' public domain Blink linker. This is a great improvement over Metacompco's but it still lacks some features. Manx has it's own linker which runs pretty fast. The next release is rumored to clear up a few complaints about non-compatible object formats, and will also implement load module segment overlays and support scatter loading. 4)Both supply a wealth of supporting subroutines for Ansii compatibility, and for use on the Amiga. Aztec goes a little further by including a number of utilities, including a full screen editor, make, a librarian, a source file comparison utility, a disassembler, and a debugger. Depending on the option you select, you can also get Aztec's source code for the library routines. SUMMARY: If you are just starting out with "C", I would suggest you look closely at Lattice. It's cheaper, and you will find that most of Commodore's sample source code can be lifted verbatim and will work. If you are an advanced user, I would suggest you look at Aztec. Aztec still gets the nod from the big developers, mostly because of the code generated. Both Aegis and Electronic Arts are rumored to use Aztec. Oh, my favourite book? It's "C Primer Plus" by Waite, Pratra and Martin, published by Sams. Jeff Lydiatt A. Differences between Lattice and Aztec C, and what is a good C tutorial text... I can only recommend that you look in the November '86 issue of Byte magazine for an article entitled "Two C Compilers for the Amiga" by Charlie Heath. Although a new version of Lattice C is now shipping, and Manx is on the verge of releasing their new version, it is still quite a good article to go by. If you need any specific questions answered, just ask the many users of both at any Panorama meeting. There are many excellent texts designed to teach C. I learned C myself after pouring over the definitive "C Programming Language" by the C creators Kernighan and Ritchie, along with help from a series of books written by Jack Purdum, entitled "The C Programming Guide" and "C Self-Study Guide". The study guide was designed as a companion to the programming guide, and following both at the same time is a good way to study C. Of course, The C Programming Language is a must-buy. It is perhaps the only TRUE book on C, and although it wasn't written for a C beginner, it is an invaluable reference text. Anson Mah Q. How do you get rid of a program once done with it? A. A program, if properly written, will clean up after itself when you are done. There are many ways to end a program, but all of them should cause the program to free up any memory it has grabbed, close all files associated with it, and leave you with exactly the same amount of memory that you had before you ran it. Unfortunalely, a side effect of having the power of dynamically allocated memory is that sometimes "fragments" of memory will remain, being used by some other program. STACK and HEAP. The stack is used by a program to store temporary variables and pointers. Each program has its own stack, and its size is determined by the the OS (about 4K), with the CLI command STACK (variable size), or with the STACK argument in the info structure of the icon for the program if run from WorkBench. The HEAP is merely the pool of free memory that any program may use, after first politely asking the OS if it may do so. A program, when loaded, is also given memory from the HEAP in order to have room to load in. BITS and PIECES and FRAGMENTED MEMORY There is really nothing you can do about memory fragmentation short of rebooting. This may seem a tad severe, but bear in mind that it is due to the dynamic allocation of memory by the OS, and is really a small price to pay for such power. It really pays to keep an eye on memory, and to try to identify those programs that are particularly prone to leaving fragments lying about. When you identify them, try to see if there are better implementations or upgrades. Other than that, reboot the machine whenever you see a problem developing. In addition to Anson's comments regarding C books, I would highly recommend the "C Primer Plus" from The Waite Group, and published by Sam's (all Waite Group books make a pleasurable contrast from Sam's usual dreary garbage) Regards, Larry.