DOS BOSS INSTRUCTIONS --------------------- What's DOS? ----------- DOS is Apple's "Disk Operating System". Without it, your Apple simply does not know how to perform any function that involves a disk--load a program form disk, catalog, tell you "FILE NOT FOUND", access a text file, etc., let alone start the actor on your disk drive. Without DOS, your Apple DOES know how to execute BASIC functions (I assume you are using Applesoft or Integer BASIC), because BASIC is BUILT IN to your Apple in the form of unchangeable hardware, or "ROM" (Read Only Memory), DOS (rhymes with "boss", by the way) is actually a complex machine-language PROGRAM that is entered into your Apple's memory in "RAM" (Random Access Memory) each time you boot a disk. DOS normally remains in memory as long as your Apple is turned on and is not affected or changed by anything you ordinarily do--programming, loading, saving, deleting, etc. So, after you boot a disk (load DOS), your Apple knows TWO sets of instructions, BASIC and DOS. When you enter an instruction through the keyboard, the Apple checks it FIRST to see if it is a DOS command, THEN to see if it is a BASIC command. If you type "ABCFED" with a carriage return, for example, the Apple checks its entire 28 word DOS command vocabulary (words like "CATALOG", "INIT", "DELETE", etc.) to see if it knows "ABCFED". If it doesn't, it then checks its BASIC vocabulary (words like "LIST", "GOTO", "AND", "NEXT", "POKE", etc.). If it can't find "ABCFED" there, it gives up and prints "?SYNTAX ERROR" or "*** SYNTAX ERR". If it DOES know the word that you have typed, it executes the command according to the instructions that reside in memory, either DOS or BASIC, depending on where the command was found. All of the above takes approximately no time at all. What's DOS BOSS? Since DOS is an ACCESSIBLE written program in RAM and not a permanent collection of hardware like BASIC, you can CHANGE it to suit your desires and to have more control over your computer. DOS BOSS is the key to making these changes. With DOS BOSS, you will have immediate access to DOS's most visible functions and features. With this book, you will have even further control, and learn a bit more about what goes on inside your Apple's "brain". I have written as much as possible from a beginner's viewpoint, assuming that you know nothing of machine level programming or the way a computer works. Technical details, whenever possible, have been omitted or written in English. Let's get on with it and have some fun! Using DOS BOSS DOS BOSS is easy to use. Let's use it! STARTING OUT Boot the DOS BOSS disk. You are now operating under normal DOS conditions with your normal Apple. Now type RUN DOS BOSS and hit "return". (M) MENU In a few seconds, you will see the DOS BOSS MENU, showing the DOS change options available to you. To the left of each option is a letter of <> brackets. This indicates that only one keypress is needed to select the option. Most of what you do with DOS BOSS will be done with one keypress (no "return" is necessary). You will need to return to the MENU each time you want to select another DOS BOSS feature. to do so, simply type an M or an M + carriage return (cr) from almost any part of DOS BOSS. If you wanted to, you could even hit RESET and RUN DOS BOSS again without losing the DOS changes you had made so far. DOS BOSS's "variables" are actually memory values in DOS and will not be cleared when you RUN any program or change languages because DOS is tucked safely above HIMEM, the highest memory location accessible by your BASIC (Applesoft or Integer) programs, Let's cover the DOS BOSS features-- (C) DOS COMMAND CHANGES Select C from the MENU and you will soon be presented with Apple's 28 DOS COMMANDS, ready to be changed. To the right of each command should be the word "SAME". This means that each command is in its standard form (CATALOG will catalog; LOAD will load, etc.). If all the commands are not marked "SAME", you may standardize them at any time by entering a $ sign. Let's change a command; Select "CATALOG" as a test command by pressing the R key (no need to press "return"). Now, type in a new command, seven characters or shorter (no spaces, commas or colons allowed in commands!), and hit "return". In a few seconds, you will see your new command in inverse to the right of CATALOG. During the pauses between your inputs, the Apple is making room for the new command, inserting the new command in DOS, and "sliding" all other commands up or down to be adjacent. See "CRUISING THROUGH DOS" later in this book for a memory layout of the DOS commands. For a test, enter "CAT" as the new CATALOG command. Exit the COMMAND CHANGE MODE by pressing M for MENU and exit DOS BOSS my pressing Q for QUIT. Now try to CATALOG a disk. The word CATALOG gives you a SYNTAX ERROR (the Apple thinks it means CATALOG ALOG), BUT the word CAT catalogs your disk! Much easier to type, right? How about changing the command to CC? Simpler yet! Type RUN now and change it. There are 132 character location set aside for DOS commands. The total length of all 28 commands may not exceed 132 characters. DOS BOSS will let you lengthen a short command IF you have shortened another and have the spare characters available. To lengthen the FP command to the word APPLESOFT, for example, you could shorten CATALOG to CAT and VERIFY to VER. You have created seven spare characters, and now you can lengthen FP to APPLESOFT. Each new command may be as long as the number of underscores (----) shown before you enter the new word. DOS BOSS will not allow a command longer than nine characters. In DOS BOSS, on certain long commands, the new command will overwrite the original on the left. This was done in the interest of saving screen space. COMMAND POSSIBILITIES --------------------- You may want to change all or just a couple of commands to cover a given situation. Let's take a look at just a few change ideas. More command change ideas appear in the Error Message section of this book. CATALOG -- Shorten it. See above. INIT -- Accidentally typing INIT could prove disastrous! For me, it resembles "INIT", the Integer command just a bit too much. Why not change INIT to KILL or a longer code word like FORRMATT? FP -- Beginners have a hard time remembering this one. A/S or APPLESOFT ] (shift-M) might make more sense to you. EXEC -- I use EX. I have a Text File called LIST that turns on my printer, sets it up for 80 character per line, lists a program, then turns the printer off. To list any program on my printer, I simply type EXLIST (meaning EXEC the file name LIST), and my printer goes to work with my program still intact! The BASIC LIST command, of course, still lists on the screen in the normal manner. BRUN -- Typing HELP can BRUN a user instruction file names LP if you rename the BRUN command HE (HELP then means BRUN LP). Try it. There's a sample LP program on the DOS BOSS disk which runs the ASSISTANCE program. VERIFY -- VV is perfect here; much shorter (and REAL hard to misspell!) LOAD & SAVE -- Special commands! If you rename them, you must name other commands "LOAD" and "SAVE" or your system will freeze if they are accidentally typed, thinking you are doing a cassette LOAD or SAVE> More later in the Error Message Section. RUN -- RUN bu itself is a BASIC command. With anything following it other than a carriage return, it is a DOS command. It is best not to mess with DOS's RUN command... Oh, GO AHEAD!! It's fun to confuse your Apple! If you rename RUN, R, for example, your Apple could misinterpret the BASIC command RUN as RUN UN. If things get totally out of hand while you're experimenting, you can always re-boot. WATCH-OUT-FORS 1. If you have changed a command (say CATALOG to CAT) and encounter a ctrl-D execution of that command in its REGULAR FORM in a program (like PRINT CHR$(4); "CATALOG"), the program will bomb with a SYNTAX ERROR or ?SYNTAX ERROR. Boot normal DOS of you aren't familiar with a program. 2. BE CAREFUL WITH ONE-LETTER COMMANDS! It's best to use a letter that no other command starts with. 3. Giving a DOS command a BASIC command name will make the BASIC command unusable. Change CATALOG to LIST, for example, to make your programs un-LISTable. Remember, Apple checks DOS, THEN BASIC for commands. 4. Don't use spaces in commands. If you want a two-word command like CAT LIST, enter it in DOS BOSS as CATLIST. The Apple is trained to ignore spaces-> For example, the normal CATALOG command will execute fine as CAT A LOG or CATAL OG. 5. Don't put commas or colons in commands. apple's INPUT function won't allow them, so DOS BOSS won't either. 6. All DOS commands except CATALOG, CLOSE, INT & FP must be followed by other words or characters, usually a file name, to be valid. Just thought I'd mention it. 7. With duplicate DOS commands, only the first one will function. SELF TEST You can quickly print all DOS commands in their current form without having to enter the Command Change mode-- 1. Quit DOS BOSS with a Q. 2. Type RUN 22222 ("return"). If you see some inverse +'s, those are spare characters. (E) ERROR MESSAGE CHANGES Error Message changes are made just like Command changes. Select the message and type in a new one. When you are finished, hit M for MENU. Changing error messages is faster, because LENGTHENING MESSAGES IS NOT ALLOWED, and DOS BOSS, on certain long error messages, your new message will overwrite the original on the left. This was allowed in the interest of saving screen space. TESTING ERROR MESSAGES To see if your altered error messages are printing the way you want, you can trigger each with the following (standard) DOS command: LANGUAGE NOT AVAILABLE-- LOAD an INT file with an Applesoft-only Apple. RANGE ERROR-- MAXFILES 17. WRITE PROTECTED-- SAVE FILE with a write-protected disk. END OF DATA-- WRITE an empty Text File, TFILE, and then EXEC TFILE, R2. FILE NOT FOUND-- LOCK X (no program X on disk). VOLUME MISMATCH-- LOCK X, V123 (123 is wrong volume number). I/O ERROR-- CATALOG with no disk in drive. DISK FULL-- SAVE X with a full disk. FILE LOCKED-- SAVE FILE where FILE is locked. SYNTAX ERROR-- CATALOGX. NO BUFFERS AVAILABLE-- Set MAXFILES 1. Then OPEN a file, and CATALOG. FILE TYPE MISMATCH-- BLOAD FILE where FILE is in Applesoft or Integer. PROGRAM TOO LARGE-- Lower HIMEM to 3000 and LOAD large program. COMPUTERS-DON'T-HAVE-TO-TALK-LIKE-COMPUTERS DEPARTMENT Come on gang! Loosen up your Apple! Life is too short for those D-U-L-L error messages! DISK FULL-- Maybe make it BURP! Instead. LANGUAGE NOT AVAILABLE-- How about NO SPEAKA DA INTEGER! FILE NOT FOUND-- TRY AGAIN, BOZO! PROGRAM TOO LARGE-- CANNOT COMPUTE! ANYTHING-- How about BUMMER! Or RATS! Or CAN'T YOU SPELL? Or HUH? SYNTAX ERROR-- Should be renamed DOS ERROR or anything not resembling Applesoft's ?SYNTAX ERROR or Integer's *** SYNTAX ERR. When a DOS error is encountered, you should instantly be able to recognize it as such. COMMAND/MESSAGE COMBOS! This is fun! I'll give you some examples, and you take it from there. These changes may all be appended to any program (more later in the "SAVING DOS CHANGES" section, page 10). 1. Change the SAVE command to KEEP. 2. Change the VERIFY command to CATAL. 3. Change the FILE NOT FOUND message to *** TYPE "CAT"!. Here, the Apple thinks CATALOG means VERIFY file OG, can't find file OG, and prints the instructions for your new CATALOG command! Handy if a stranger is using your DOS BOSSed Apple and wants to catalog. or... 1. Change the READ command to LIST. 2. Change the NOT DIRECT COMMAND message to NOT LISTABLE! Another in a long series of ways to Non-listify your programs to frustrate beaky people! SELF TEST You can quickly print all DOS error messages in their current form without entering the Error Message Change mode-- 1. Quit DOS BOSS with a Q. 2. Type RUN 22333 ("return"). (X) CATALOG FORMATTER It can be frustrating when all of your file names won't show on the screen at one time. 23 is the normal maximum. DOS BOSS's Catalog Formatter can increase this to 88! Enter this mode from the MENU with an X. You can re-layout your catalogs as indicated by the chart on the screen. Try all of the options. Each selection will instantly show you your new catalog format, so BE SURE YOU HAVE A DISK IN YOUR DRIVE. Options 3 & 4 will eliminate your language codes (A,I,B & T) and sector numbers for added horizontal space. These codes are usually not necessary anyway. One drawback to the two and four-column catalogs is that file names longer than the maximums shown on the right of the screen will be chopped off when presented. You must either shorten these file names (the best solution) or REMEMBER them so you can access them by their real titles. DOS BOSS creates these multi-columned catalogs by simply removing the carriage returns after each file name. Three-columned catalogs are not possible using this procedure, since an odd number of characters would be required on each line, and it takes 40 characters horizontally to fill the screen. See "Making Changes Without DOS BOSS" a few pages from here for more. Don't use file names with hidden control characters with the split catalogs; the columns will get out of alignment. Two and four-column catalogs will sometimes look better if you make the LOCK and UNLOCK codes INVERSE with DOS BOSS. See FILE CODE CHANGE. (V) VOLUME HEADING CHANGES To me, Apple's "DISK VOLUME 254" message is clunky, and takes up too much screen space. DOS BOSS will permit you to replace the heading with anything you want, UP TO 16 CHARACTERS IN LENGTH. You can also eliminate OR include the Volume Number itself. Select V from the MENU for a test run. A sample of the current heading will be displayed on the screen. To remove or include the Volume Number, press #. To change the message, press C, and type in a new heading followed by "return". "Return" alone will restore the standard (even if it IS clunky!) DISK VOLUME heading. You may also select N, I, or F for a Normal, Inverse, or Flashing heading. The Volume Number, when visible, must always be Normal. Special characters may be used to create trick titles. The @ will print as a carriage return for multi-line titles. The ^ will do a line feed. And the > will let you indent a title, nice in Inverse (normally, the Apple ignores a leading space on an INPUT; the > remedies the problem!) The < acts as a backspace. Fool around with these special characters, and you'll see the results. ALL CATALOGS WILL HAVE THIS TITLE under another disk is booted, or until a new title has been injected into DOS. DISKVOLTRIX 1. Make your heading GEORGE'S DISK@V- and you will get a nice two-line heading with a V-254 (or whatever Volume Number the disk was INITed with) on the second line. 2. Try A^B^C^BEAGLE@>BROS.> in Inverse. 3. Or *A 002 HELLO with no Volume Number. A phony program! See "Making Changes Without DOS BOSS" later on regarding removing the carriage return and blank line after the heading. 4. Omit the Volume Number, and make the heading >>>>> (blank). Who needs it, anyhow? (F) FILE CODE CHANGES Your A, I, B and T file codes as well as your * and " " lock & unlock codes may be any ASCII screen character you want, Inverse, Flashing, or Normal. change them as indicated on the screen in the File Code Change mode. SUGGESTIONS: 1. Alter your file codes or make them ALL INVISIBLE (spaces) to disguise your files from unauthorized users. 2. Make Applesoft's A, a ], Integer's I, a >, Binary's B, a *, and Text File's T, a ". The Key-Cat Program on the DOS BOSS disk uses this set. Make up your own. See Note 4 below. 3. Make the LOCK and UNLOCK codes Inverse to give your catalogs a left border. This helps visually separate columns if you are set up with DOS BOSS's multi-columned catalog. 4. If you are using Key-Cat (page 11), YOU MUST USE ALL STANDARD FILE CODES AND LOCK & UNLOCK CODES. (S) SAVING DOS CHANGES Press S from the menu for DOS BOSS's two Save Options. QUIT AND INIT The easiest way to save DOS changes is to create the set-up you like with DOS BOSS, load or create a new "Hello" program, and INIT A NEW DISK with your DOS change in memory. Booting that disk will format your new DOS for you. CREATING POKE FILES Another way to save your new DOS is to use DOS BOSS to create "Poke-Files" which may be appended to any BASIC program. When executed, these pokes will change the values necessary to structure your new DOS. a. Press P. you will be asked which TYPES OF CHANGES you want to save; Commands, Error Messages, and/or Catalog changes. The Catalog changes include fIle Code, Disk Volume Heading, and Column changes. b. Press Y for each Change Type you want to save, and press S. A text file will be created for each. This will take 30 seconds or so, and you can watch the action. c. Press Q to exit DOS BOSS and catalog your disk. You will see three text files in the catalog; ERR-POKES and COM-POKES. d. Type NEW, and LOAD or create any BASIC program. BE SURE LINES 30000-30999 ARE NOT USED. That is where data from the Poke Files will be appended. e. EXEC the appropriate files. EXEC COM-POKES if you are saving Command changes. EXEC ERR-POKES if you are saving Error Message changes. EXEC CAT-POKES if you are saving Catalog Format changes. Each file you EXEC will be appended to your program. f. Put a GOSUB 30000 in your program and an END before the pokes if necessary. Now this program will format DOS as you have designed it! It can be a "Hello" program if you want. Just delete an existing Hello program and SAVE this new program under the same name. Try the above procedure and save your results. There is a program on the DOS BOSS Disk called NORMALIZER, RUNning it will normalize DOS BOSS changes for you (if you don't want to re-boot). NOTE: Only NON-STANDARD error messages will be poked in by DOS BOSS's SAVE feature. All other error messages, including any existing non standard messages, will remain unchanged. Also on the DOS BOSS disk KEY-CAT and BAIT-CAT -------------------- STOP!! If you have altered certain DOS commands in memory with DOS BOSS, rename the strings in LINE 10 of Bait-Cat and Key-Cat or THESE PROGRAMS MIGHT NOT WORK! Your new RUN, BRUN and EXEC commands must be six characters or shorter for Key-Cat. Multi Columns, non-standard file codes and other DOS BOSS changes will also disable Key-Cat. KEY-CAT ------- KEY-CAT is a little BASIC program that will make programs easier to select from the catalog. It is especially handy for non-typers and people not familiar with computers. RUN it and you will see a catalog of your disks. To the left of each filename will be a letter. Press the letter next to the file you want, and Key Cat will RUN, BRUN or EXEC it for you! If you have more than 17 file names on your disk, the catalog will pause as usual when the screen is full. Press any key to continue, OR, if you see the file name you want on the screen, PRESS THE "RETURN" KEY, and the selection letters will appear. Type # as your selection and sectors used (SEC USED) and sectors free (SEC FRE) will appear on the screen. Z will let you escape Key-Cat. Key Cat makes long file names more practical, since you don't have to type the file name to use it. You can use a file name like STAR TREK #9 WITH NEW MONSTERS. The dots on the right of Key Cat catalog indicate Apple's maximum 30-character file name length. RENAME KEY-CAT, N and you will only have to type RUNN to change programs. Or RENAME KEY-CAT, DOWN and use RUNDOWN! (Also see NU below). BAIT CAT -------- RUN BAIT CAT to see your files separated by file types; B, A, I and T. If your want to rearrange the order of your files or eliminate certain types, CHANGE CO$ IN LINE 150 OF BAIT CAT. Only B, A, I and T are allowed, any order you want. LP -- LP is a jokey little program to demonstrate a possible use of DOS BOSS's Command Change feature. With DOS BOSS, change BRUN to HE. Then typing HELP will BRUN LP (LP runs a program called ASSISTANCE). You could provide user instructions of your own design this way. NU -- NU will RUN KEY CAT for you. Change EXEC to ME and the EXEC String in Key Cat (Line 50) to "ME". Now, simply typing MENU will EXEC NU which RUN's KEY CAT! Changing DOS without DOS BOSS ----------------------------- Your Apple's changeable memory (RAM) consists of approximately 48,000 changeable memory locations, (32,000 if 32k). Each location or address is assigned a value from 0 to 255. It is easy to PEEK or look at a value at any location (Example: PRINT PEEK(300) will produce a number, 0-255, and PIKE in a new one if you want (Example: POKE 300, 123 will change that number to 123). DOS BOSS re-arranges DOS according to your commands by poking or inserting new values into memory for you. Additional possibilities are endless-- Here are a few catalog customizations you can make on your own. Any of them may be entered directly or made part of a program. If you want to keep one of these features, INIT with it poked in, or add the pokes to THE END OF your appended poke-file (see "Saving DOS Changes"). BEWARE!! -------- Messing around in DOS can cause S-T-R-A-N-G-E things to happen, and before you finish this section, you (or I) may have a malfunctioning computer. Fear not! To fix things, simply turn off the power and re-boot. Remember, no permanent harm can ever be done to your Apple itself by just pressing keys. BEWARE AGAIN!-> There is also a slight chance that you COULD foul up a disk as well (if you typed other than the pokes given here), so use an expendable disk (a copy) to play around with. If the disk does get messed up, you can always erase and re-use it by INITing it. Before trying each new poke below, I advise you to poke back in the original values listed after each example. ATTENTION OUT THERE! The size of your Apple's memory determines where DOS resides. On the following DOS experiments, use the first set of pokes if you have 48k (doesn't everybody?) Use the second set if you have 32K. PRINT PEEK (44611) or PRINT PEEK (28227) (if 32k) Your Apple should answer with a 2. Let's change it to a 1-- POKE 44611, 1 or POKE 28227, 1 (if 32K) Now Peek again, and there's your 1! Now CATALOG a disk and notice the change you have made. This poke changes the number of digits in your catalog sector numbers to 2 instead of 3. Have you ever seen a file bigger than 99 sectors? Not very often, right? So why clutter up the catalog with extra 0's? (Note: If you REALLY like clutter, poke in a 4 or an 11!) A possible drawback to 2 digit sector numbers: You will scramble your VOLUME NUMBER (on the screen, not in memory). A solution: OMIT the number with DOS BOSS. Another drawback: If you are using DOS BOSS's multi-column catalog, this poke will really make a temporary mess of your columns! (Normal value: 2. Poke a 2 back in to 44611 or 28227, and continue.) POKE 44459,234: POKE 44460,234: POKE 44461,234 POKE 28075,234: POKE 28076,234: POKE 28077,234 (if 32K) These two pokes will eliminate the blank line after the word CATALOG. 234's mean "do nothing", and these pokes do nothing instead of printing a carriage return. (Normal values: 32, 47, 174, if 48K, or 32, 47, 110 if 32K) POKE 44486,234: POKE 44487,234: POKE 44488,234 POKE 28068,24: POKE 28103,234: POKE 29104,234 (if 32K) This will eliminate the blank line after the Disk Volume heading. (Normal values: 32,47,174 if 48K, or 32,47,110 if 32K) POKE 44452,24: POKE 44605,23 POKE 28068,24: Poke 28221,23 (if 32K) These pokes will let 20 file names appear before stopping for a keypress instead of the normal 18. Poke in any numbers. Always make the first poke value one number larger than the second. (Normal values: 22,21) POKE 44451,173: POKE 44559,186 POKE 28157,173: POKE 28175,186 (if 32K) The first poke replaces the space (value 160) after the file-type code with a hyphen. The second one puts a colon after the sector numbers. Experiment with other values from the ASCII Screen Chart in the Dos Boss Book Appendix. (Normal values: 160,160) POKE 44567,12 POKE 28183,12 (if 32K) Will shorten your maximum file name length to 13 characters (on the screen, NOT in memory). Normally this number is 29, for 30 maximum characters. The number of characters is always one less than the number poked in. Every file name shorter than the maximum fills the remaining space with spaces. (Normal value: 29) POKE 44578,234: POKE 44579,234: POKE 44580,234 POKE 28194,234: POKE 28195,234: POKE 28196;234 (if 32K) Cancels all carriage returns after file names. With these 234's poked in, play with poking some small numbers (like 2 or 12; only certain numbers will work) in at 44567 (28183 if 32K), and you can have your own version of the multi-columned catalog. (Normal values: 32,47,174 if 48K, or 32,47,110 if 32K) POKE 44505,234: POKE 44506,234 POKE 28121,234: POKE 28122,234 (if 32K) Shows deleted files in your catalog, and throws in a free bonus inverse character to the right of the each. (Normal values: 48,74) THE FOLLOWING CHANGES ARE PRETTY MUCH WORTHLESS, BUT FUN ANYWAY ------------------------------------------------------------ --- POKE 44596,234: POKE 44597,234: POKE 44598,234 POKE 28212,234: POKE 28213,234: POKE 28214,234 (if 32K) Will prevent your catalog from stopping when the screen is full. Normal values: 206,157,179 if 48K, or 206, 157,115 if 32K) POKE 44599,234: POKE 44600,234 POKE 28215,234: POKE 28216,234 (if 32K) Stops your catalog at each file name, waiting for a keypress on each one (Normal values: 208,8) POKE 50,128 Makes your catalog invisible (in case you're embarrassed by it). Lists are invisible too! (Normal value: 255) POKE 44617,234: POKE 44618,234: POKE 44619,234 POKE 29236,234: POKE 29237,234: POKE 28235,234 (if 32K) Makes all sector numbers and your volume number appear as 000's! (Normal values: 217,164,179 if 32K, or 217,164,115 if 32K) POKE 45620,234: POKE 45621,234 POKE 29236,234: POKE 29237,234 (if 32K) Repeats your first file name forever! (Normal values: 105,35) FOR X=43439 TO 43443: POKE X,7: NEXT X FOR X=27055 TO 27059: POKE X,7: NEXT X (if 32K) This obnoxious change replaces the word FILE (+space) with five ctrl-G beeps in the FILE NOT FOUND error messages. You can poke beeps (7), carriage returns (13), line feeds (10), or anything into any error message as well as the Volume Message and other unusual places. Each poke, of course, replaces whatever character was there. (Normal values: 70,73,76,69,32) POKE 43378,42 POKE 26994,42 (if 32K) Now you've replaced all DOS error message beeps (invisible, but audible ctrl-G's) with visible, but inaudible asterisks! (Normal value: 7) DOS & Non-DOS Tips and Tricks This section is for fun; a collection of unconnected Apple goodies from here and there, some useful, some useless, ALL kind of interesting. IF CITY! Applesoft sometimes limits you in your use of "IF" statements. That is, if an IF statement is not true, Applesoft jumps to the next line number. NOT TRUE if you're dealing with certain types of information! Instead of... 10 INPUT A 20 IF A=O THEN POKE 50,63: REM INVERSE 30 IF A>O THEN POKE 50,255: REM NORMAL 40 PRINT "BEAGLE" you could say... 10 INPUT A: POKE 50,63 + 192 * (A > O): PRINT "BEAGLE" The IF statement here is really inside the parentheses which takes on a value of 1 or O depending on the truth of A>O. If A>O then the POKE becomes POKE 50,(63+192) or POKE 50,255 (normal). IF not true, it's POKE 50,63 (inverse), AND THE REST OF THE LINE IS STILL READ! A very simple example, but some complex things can be accomplished (like speeding up programs and SAVING SPACE) using this trick. FLUSH RIGHT! Using the method above, flush right numbers are easy. Watch: 10 FOR X= 5 TO 1055 STEP 50 20 PRINT SPC(X>1000; SPC(X<100); SPC(X>10;X 30 NEXT X APPLE BUG DEPARTMENT -------------------- (We don't explain 'em, we just find 'em!) GET BUG ------- Turn off DOS by booting with no disk and hitting reset, and type: 10 GET G$: V=VAL(G$): PRINT V RUN and enter a digit, 1-9 for G$. Look at the answer! Inserting a "G$=G$" after "GET G$" seems to clear things up. The explanation for this is really boring. Re-boot to continue... SQUARE BUG ---------- PRINT 7 * 7 AND PRINT 7^2 will produce different answers!! Watch this... 10 TEXT: HOME 20 PRINT "NUMBER SQUARED CUBED" 30 PRINT "------ ------- -----" 40 POKE 34,2 50 FOR X=0 TO 255: PRINT X; 60 HTAB 9: PRINT X^2: 70 HTAB 21: PRINT X^3: NEXT X CONTROL BUG ----------- Add this line to the beginning of any Applesoft program: 10 IF N>99 THEN N=1: PRINT "CATALOG" (There is a control-D hidden between the first quote mark and the C of CATALOG.) Now try to LIST. You can't! Notice you are presented with a DOS ERROR (SYNTAX ERROR if you haven't used DOS BOSS) instead of a ?SYNTAX ERROR. Applesoft can't seem to stand having a ctrl-D at HTAB 1 without trying to EXECUTE the commands following it! To make it execute, REMOVE THE LAST QUOTE MARK (completely legal in Applesoft). Now the LIST command will CATALOG!! The IF N>99, etc., is just filler to get the ctrl-D on the left of the second line. Creative (or destructive) possibilities: Change CATALOG to FP, and a LIST command will murder the program! Suits that guy right for trying to list your prized SUPERDATABASE program, right? Of course, NO ONE would be ROTTEN enough to change the command to DELETE SUPERDATABASE. (...and INIT SUPERDATABASE? Never!!!) ONE MORE NO-LISTER: ------------------- A POKE 2049,1 in an Applesoft program will prevent a LIST if the program has been run. Try it in a boot program. CALL THIS NUMBER: ----------------- CALL-1184 will retrieve a message for you from the Autostart ROM. INVISI-CALC! ------------ As mentioned earlier, POKE 50,128 will make a listing or catalog (except for inverse file names) invisible. This program reveals all the POKE 50 possibilities--Anyone for secret codes? 10 FOR X=O TO 255 20 POKE 50,255: PRINT "POKE 50,";X;":"; 30 POKE 50, X: PRINT "TESTING 1,2,3,4,5..." 40 NEXT X: POKE 50,255: END APPLE'S HEX CONVERTER --------------------- You can convert a hex number to decimal in the monitor. Say you want to convert 056E to decimal. From Applesoft, enter the monitor with CALL -151, and type: *45: 05 6E N ED246 (return) Your decimal answer, 1390 in this case, will appear! Use the N ED246 for converting any number (from Applesoft only). You can ADD and SUBTRACT hex in the monitor too--Just type the equation, say "AF+3E" (don't type "PRINT") and hit return. Apple even throws in a free equal sign! SHIFTY PICTURES --------------- This little program does tricks with your hi-res screen by shifting memory. First, RUN B.B. LOGO from the DOS BOSS disk. Enter the monitor with a CALL -151, and type: *2000<2005.3FFFM (return) *2000<2010.3FFFM (return) *2000<2025.3FFFM (return) These commands tell the Apple to MOVE MEMORY from the address range on the right to the range starting with the address on the left. Substitute your own number after the "<". Fun, huh? FREEMEM ------- To find the amount of memory still available to you, PRINT FRE(O) or FRE(any number). If you get a negative answer, add 65536. Try printing FRE(O) before and after booting DOS. The program below will show you how many SECTORS a program in memory will occupy according to how such free memory you have left: 10 TEXT: HOME 20 PRINT "SEC MEM FRE(O)" 30 PRINT "--- --- ------------------------------" 40 POKE 34,2 50 MEM=35329: REM 18945 IF 32K 60 FOR SEC=O TO 137 70 MEM=1 + INT<<.5+SEC) *256/1000) 80 MHI=MEM-256*SEC 90 MLO=MHI-255 100 PRINT SPD (SEC<100); SPC(SEC<10); SPC(1) 110 PRINT SPC(MEM<10); MEM; "K"; SPC(2) 120 PRINT MLO;";";MHI; 130 IF MHI<32767 THEN PRINT " (";MLO-65536;";";MHI-65536;")"; 140 PRINT: NEXT SEC INVERSE TYPER! -------------- Here's an easy way to type directly to the screen in inverse (or flash): 10 INVERSE: REM OR FLASH 20 INPUT A$: PRINT A$;: GOTO 20 BUT you have to RUN the program and remain in the program for it to work. Run the program below and you will get inverse alphabetical characters after you are out of the program! 10 DATA 201,141,240,21 20 DATA 234,234,234,234 30 DATA 201,192,144,13,201,224,176,9,72,132,53,56,233 40 DATA 192: REM 128 FOR FLASH 50 DATA 76,249,253,76,240,253 60 FOR I=768 TO 795: REM $300 TO $31B 70 READ N: POKE I,N: NEXT 80 POKE 54,0: POKE 55,3 90 CALL 1002: REM RESET OR PR#O KILLS THIS PROGRAM. CONTROL-FIND ------------ Make the following changes to the above program to expose all control characters except U's (forward spaces) and M's (carriage returns): 30 DATA 201,128,144,13,201,160,176,9,72,132,53,56,233 40 DATA 128: REM 64=FLASH, O=NORMAL RUN it (nothing happens). Now type GARBAGE (return) or something misspelled. You will SEE, but NOT HEAR a "?SYNTAX ERROR" with an inverse "G" instead of the usual beep! You can type control characters as inverse directly to the screen (or flashing if you change line 40 to DATA 64 in the above program). Backspaces are a bit frustrating to use since they appear as inverse H's and don't usually backspace. Save control characters into your file names if you want, and reveal them by running this program followed by CATALOG. INVERSE REM STATEMENTS AT LAST! ------------------------------- After minutes of extensive research, my Uncle Louie finally came up with his finest achievement, INVERSE REM STATEMENTS (flashing if you want!)! Maybe not as practical as your normal kind of REM, but they sure do SHOW UP! Here's what you do: Type in the Inverse Typer program from above and make the CONTROL-FIND corrections. Be sure line 40 is 40 DATA 128. RUN it. Now type an inverse REM in any program. Say, 5000 REM A TEST. Now LIST and you've got it!! Oh, one thing.. the characters after "REM" are CONTROL CHARACTERS (ctrl-Z, space, ctrl-T, ctrl-E, ctrl-S, ctrl-T). The inverse REMs will only show if you have RUN the control-find program above. Hitting reset or Pr#O will kill the effect. Also, your REMs won't be able to contain any M's, U's, or X's (A's & S's too if you use the P.L.E.). This is a good way to hide your name or secret info in a program! Thanks, Uncle Louie! LEONARDO WOULD HAVE LOVED IT! ----------------------------- You never know when this might come in handy... 10 H$=CHR$(8)+CHR$(8) 20 VTAB 23: HTAB 40 30 GET P$: PRINT P$;H$; 40 GOTO 30 RESET TO THE MONITOR! --------------------- We know a guy who chucked his Autostart ROM in the disposal just because it makes RESET return him to BASIC instead of the monitor. He should have typed: ]CALL -151 *3F2: 69 FF 5A Make the 5A and 51 and RESET will RE-BOOT! (Normal is *3F2: 00 97 32) @DON'T ^BELIEVE ]IT. -------------------- File names, according to the DOS Three-Point-Whatever Manual must start with a LETTER. Not so! Shifted letters (N, P, and M) work too, as well as \ and [. Nice for differentiating types of files in your catalogs. BUT HOW DO YOU READ THE LABEL? ------------------------------ You will probably ignore this hint; I know I do--If you are going to leave disks all over your desk, you should place them face UP so that they aren't damaged by dirt, etc. on your desk. The disk drive head reads the BOTTOM of your disk through the oval hole. The hole on top is for the pressure pad. AND PEOPLE COMPLAIN ABOUT METRIC! --------------------------------- Have you noticed that to get into this computer stuff, you've got to be constantly CONVERTING things? Decimal to hex, hex to decimal, 3.2 to 3.3, Applesoft to Integer, machine code to BASIC, screen characters to ASCII code, negative memory addresses to positive, 32K to 48K...Good grief! Here are two rules-of-pinky that I'll pass along at no charge: 4 SECTORS used in a program = approximately 1K of memory (a 24 sector program is about 6K). Also, 4000 decimal = 1000 hex. 255 SECTOR HANGMAN? ------------------- You can purposely or accidentally have a file take up more space on a disk than it really occupies in memory. To prove it, SAVE LARGE PROGRAM (say 50 sectors). LOAD TEENY PROGRAM (say 2 sectors). SAVE LARGE PROGRAM. And finally, RENAME LARGE PROGRAM, TEENY PROGRAM. Now TEENY PROGRAM shows 50 sectors in the catalog! DELETE HELLO ------------ If you need more space on a disk, consider deleting your Hello Program to save the amount of space it occupies. you won't be able to boot the disk, but you can still use it! D$ FIX ------ This program WON'T catalog a disk: 10 D$=CHR$(4): REM CTRL-D 20 PRINT "WATCH..."; 30 PRINT D$;"CATALOG" The problem is that D$ (ctrl-D) in line 30 is at HTAB 9 because of the semi-colon in line 20. One remedy that always gets your D$'s at HTAB 1 where it will function is: 10 D$=CHR$(13) + CHR$(4): REM CARRIAGE RETURN + CTRL-D RIGHT PROTECTORS ---------------- Most of the write-protect tabs I have used come off or get messed up going in and out of my disk drives. A handy new product called SCOTCH TAPE works much better! Some computers other than Apple rely on a beam of light to check for write-protection, so their tabs would have to be opaque to work. TWO-SIDED DISKS --------------- SURE you can use both sides of your "single sided" disks. This can save you both money and storage space. Use a regular paper punch to make a half-circle notch on the edge of a disk jacket EXACTLY OPPOSITE the original write-protect notch. Then INIT the second side just like you did the first. Disk manufacturers don't usually test both sides of disks, so you do run the risk of a bad sector now and then and you COULD lose some data. If you make back-up copies anyhow, this shouldn't be a problem. By the way, the small off-center hole in the disk jacket isn't used by Apple's DOS. LO-RES MYSTERY -------------- You can't PLOT X, Y where X > 39, BUT you can PRINT SCRN(X,Y) with values of X up to 47! Check it out. It seems that there's an invisible lo-res screen to the right of the visible screen that's 48 plots high by 8 plots wide. Maybe Apple is tooling up for CinemaScope! ?=PRINT ------- Applesoft thinks ? means PRINT. Try ?2+2. If you use ? in a program and LIST, the ?'s will be converted to PRINTs! "QUOTE" ------- Applesoft doesn't require an end quote mark in most cases. Try PRINT "HELP. (Think of the time you'll save!) SAVE-PROTECTING YOUR PROGRAMS ----------------------------- There are four basic methods a person will use for copying your software: 1. LOAD and SAVE after booting your disks. 2. LOAD and SAVE after booting another disk. 3. use the FID program form the System Master disk. 4. Use a COPY program to copy your entire disk, DOS and all. Using DOS BOSS and the following trick, you can foil methods 1,2 and 3. And method 4 has its drawbacks. The trick involves forcing the user to BOOT WITH YOUR DOS. The effect is this--suppose Joe Blow wants to make an unauthorized copy of your fantastic new game. After trying method 1 above, he encounters a (beep!) "NOT COPYABLE" message. Joe then tries method 2 and 3, both of which seem to work, but when he tries to run any program on the copied disk, it won't work and crashes into the monitor. Joe is getting discouraged. Perhaps he gives up, or perhaps he goes on to method 4 and copies your entire disk. tHis works fine, bit every time he catalogs your disk, he gets your bold copyright message in the heading, reminding him of his dishonesty. Also, he has had to use up a whole disk, with your darn personalized DOS on it. Joe is sorry he ever messed with you! The procedure to make the above happen goes like this: a. Run DOS BOSS b. Change the READ command to SAVE and the SAVE command to KEEP. c. Replace the NOT DIRECT COMMAND error message with NOT COPYABLE. d. Personalize your Disk Volume Heading. Make it 15 characters or less. e. Quit DOS BOSS and type NEW (return) f. Type POKE 45995,96 (return). If you have 32K, make it 29611,96. g. Insert a new disk and type INIT HELLO (return). Your new personal DOS will be on this new disk. h. Copy your programs onto the new disk, using method 2 or 3 above. i. Somewhere in each program, several times if you want, insert a CALL 45995, either with a line number, like: 1000 CALL 45995 or tucked amidst your existing program statements, like: 1234 INPUT "O.K?";A$:CALL 45995: IF A$="Y" THEN GOTO 10 The CALL in Step 1 is like a "GOSUB" to a machine language routine at memory location 45995. The 96 you poked in in Step f is actually a machine language "RETURN". If the 96 is encountered at 45995, nothing happens and your program continues, which is what you want. If any other number is encountered (meaning your disk was not booted) the program crashes! An equally good command, instead of CALL 45995, would be IF PEEK (45995)<>96 THEN NEW. This will ERASE the program if your disk wasn't booted! Have fun! And let's hope that Joe Blow doesn't have DOS BOSS! FILE NAMES AS TITLES -------------------- You have probably noticed our catalog titles in our multi-game disks, where we separate Applesoft games from Integer: ]CATALOG DISK VOLUME 123 INTEGER *I 053 TEXTTRAIN *I 036 SUB SEARCH *I 033 PICK-A-PAIR APPLESOFT *A 053 TEXTTRAIN/A *A 036 SUB SEARCH/A *A 033 PICK-A-PAIR etc... The flush left underlined INTEGER & APPLESOFT headings help organize the catalog and separate one group of files from the other. Here's how we do it! 10 D$ = CHR$(4): H$ = CHR$(8) 20 H$ = H$ + H$ +H$ + H$ + H$ + H$ + H$ + H$ 30 FILE$ = "X" + H$ + "APPLESOFT" 40 PRINT D$; "SAVE ";FILE$ Substitute the word you want for your titles in line 30. You can also replace SAVE in line 40 with DELETE, LOAD or whatever. Access to these "title" is difficult without a program similar to the one above. Another effective way to make file headings in the catalog is to use inverse or flashing file names. See page 26 of the Winter 80-81 Beagle Bros. Tip Book. INPUT ?-REMOVER --------------- In an Applesoft program, an INPUT A$ or INPUT A will print a ? and a flashing cursor. If you don't want the ?, change your command to INPUT " ";A$ or INPUT " ";A. SPACE-CAT --------- Hey everybody! DOUBLE-SPACE YOUR CATALOGS with a POKE 33,37! Mail your reasons for doing this along with $1 to : BERT KERSEY c/o BEAGLE BROS. 4315 SIERRA VISTA SAN DIEGO, CA 92103 Cruising Through DOS -------------------- Let's take a cruise through DOS! The usual "trip" of this kind would be in the monitor, looking at a bunch of two-digit hex numbers; a real drag. Let's make things more interesting! First, boot a normal disk whose DOS hasn't been altered by DOS BOSS. Now write this little program: 10 FOR X=43380 TO 43401: REM FOR X=26996 TO 27017 IF 32K 20 PRINT PEEK (X);" "; 30 NEXT X RUN it, and you will see a string of numbers. Pretty exciting, huh? Now, CHANGE LINE 20 to: 20 PRINT CHR$(PEEK(X)); and RUN it again! "LANGUAGE NOT AVAILABLE" magically appears! What's this? You have just uncovered DOS's first error message in the monitor! CHR$(PEEK (X)) means the "character whose ASCII value is X". Now change line 10 to: 10 FOR X-43380 TO 43581: REM FOR X=26996 TO 27197 IF 32K and you'll see ALL FOURTEEN DOS ERROR MESSAGES strung together! To further examine these mysterious characters, let's add two more lines to our program: 15 NORMAL" IF PEEK(X)>127 THEN INVERSE 25 IF PEEK(X)>127 THEN PRINT RUN again, and you'll notice that the LAST CHARACTER of every error message is INVERSE. Actually, Line 15 TELLS it to be inverse IF it has an ASCII value higher than 127. Each Apple keyboard character and control-character has TWO ASCII values, sometimes called the "low-byte" value and the "high-byte" value. The high-byte character at the end of each error message tell the Apple where the end of the message is and when to quit printing letters to the screen. Now try these immediate mode commands-- LOAD ZZYZX You get a "FILE NOT FOUND", unless you have a program named "ZZYZX". Now... POKE 43452,68 (or POKE 27068,68 if 32K) LOAD ZZYZX You should get a DOUBLE error message, because you have POKed IN or CHANGED the high-byte "D" in "FOUND" to a low-byte "D" (value 68 at location 43452 or 27068). Now the Apple thinks that error message #5 is "FILE NOT FOUNDVOLUME MISMATCH". It prints until it finds a high-byte character, the "H" in "MISMATCH" instead of the "D" in "FOUND""! Repair the damage before continuing by poking the high-byte value for "D" (196) back in where it belongs: POKE 43452,196 (or POKE 27068,196 if 32K) There are other places to look, of course. If you want a really LONG trip through ALL parts of memory, change Line 10 to: 10 FOR X=O TO 65535 You will see ALL KINDS of stuff: beeps, backspaces, line feeds, carriage returns, little pictures of animals (just kidding), and the big feature every so often: REAL WORDS! If you've been running some programs, you'll probably see parts of old program listings. If you've just BRUN or BLOADed the 3.3 MASTER CREATE Program, you'll even find a funny message from the author somewhere between locations 2500 $ 3900, only meant to be seen by prying eyes. So go ahead and pry: SAVE your program: BLOAD MASTER CREATE. LOAD your program and RUN. Back to DOS, change the values in Line 10 to 43140 and 43338 (26756 and 26954 if 32K) and you'll find the 28 DOS commands followed by some garbage and "VDSLRBACIO". Those are the initials for VOLUME, DRIVE, SLOT, LENGTH, etc. the one-letter codes used in DOS! Poke in new letter values if you want. Change Line 10's numbers to 43700 and 43715 (27316 and 27331 if 32K). That's "APPLESOFT", the name of the program Apple tries to run if you type "FP" and don't have Applesoft in ROM! Now, change Line 10 to: 10 FOR X=46120 TO 45991 STEP-1" REM FOR X=29736 TO 29607 STEP-1 IF 32K RUN it and "DISK VOLUME BARSBAIT" appears! That's where Apple gets the message to print at the top of your catalogs! "BARS" seem to be throwaway characters, so we've used them in DOS BOSS to lengthen the "Disk Volume" message. have you guessed "BAIT" yet? How about Binary, Applesoft, Integer and Text, the codes for your catalog files! Look around some more; DOS goes clear up to 49151 in 48K; 32767 in 32K. Above 49151 is BASIC. You can look there too if you want! It's YOUR computer!