@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@W!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr FUNCTIONS AND PROCEDURES IN PASCALby Ed Nelson IIIThe main difference between a function and a procedure is that a function m}ustreturn a value, whereas a procedure does not. Procedures can, however, returna value. This article discusses the use of }functions and procedures in Pascalprograms.A function will return the value in its name. For example, if a function isdeclar}ed as "Function Paint: char;", then the word Paint will contain thecharacter that has been returned by the function. This is} limited in itsusefulness; to retain the value returned by a function you must assign itsvalue to a variable. However, funct }ions are ideal for testing loopingconditions since they provide the necessary information with a minimum ofPascal commands.Th }ere are two types of procedures -- call by value and call by reference. Thecall by value procedure is declared like Demo3 in } the demonstration programlisted below. Although these procedures do not return values, they can affectglobal variables. Ca }ll by value procedures can be used to do anything thatdoes not require the return of information. For example, a call by val }ueprocedure can display information on the screen.The other kind of procedure is the call by reference. The call by referenc}eprocedure is declared like Demo4 in the demonstration program. This kind ofprocedure returns its values in variables declar}ed as VAR in the procedureheading. Once the procedure has completed execution, the variables containtheir new values, where }the information is retained until it is changed. Note: ISO Pascal does not allow certain data structures to be returned by a}Function (this is the 'Error 47' described elsewhere in this newsletter). Away around this is to use a procedure with variab}les passed by reference.Functions and procedures have similar abilities. As a general rule of thumb,anything a function can }do, a procedure can do, and vice versa. The largestdifference between functions and procedures does not lie in their respect}iveabilities and limitations, but in how they are used.Functions are generally used to find and return a value. Procedures a}re usedto do other things, such as displaying data, or opening and closing files. Themain difference is stylistic, not somet}hing enforced by the language.In the demonstration program below, functions and procedures are used fordifferent aspects of p}attern matching in strings. S2 will be the pattern thatis looked for, and S1 will be the string that is searched. S3 is not} useduntil it is passed into Demo4. Note: There was a misprint in some early editions of the manual regarding theIndex func}tion. The correct description of this function is: the first stringpassed (S1) is the string to be searched. The second st}ring passed (S2) is thepattern looked for in the first string.The two functions, Demo1 and Demo2, are used to find a value an}d return it.Demo1 returns a TRUE if S2 is in S1 and returns a FALSE if S2 is not in S1. Itis worth noting that a boolean fun}ction can be used wherever a booleanexpression is used, such as in IF-THEN, UNTIL, and WHILE statements. For anexample, look} at the IF-THEN statement in the main program. The secondfunction, Demo2, counts the number of occurrences of S2 in S1. The} mainprogram prints out the information received.Procedure Demo3 is a call by value procedure. It does not pass any informat}ionback to the main program. Instead, it displays its information on the screen.Procedure Demo4 is a call by reference proce }dure. This procedure breaks up S1and return parts of it in S1, S2, and S3. After this procedure is called, S1contains the p!}art of the string before the pattern, S2 contains the pattern,and S3 contains everything after the pattern. If you are going"} to pass large data types in a program, you may want to use acall by reference procedure rather than a function. The reason #}is that in acall by reference procedure, a point (that points to the data structure) ispassed rather than the whole data stru$}cture (which is what happens with afunction). Thus this technique saves time and stack space.Following is the Demonstration %}program:PROGRAM Demo (input, output); Const maxstring = 20; (* maximum string length is 20 *) empty = ' &} '; (* 20 spaces *) Type string = array [1..maxstring] of char; Var S1, S2, S3 : string; i : integer;{The follow'}ing function is an include file on the Kyan Pascal disk. String A1is searched to see if it contains string A2. If it is, th(}e location of thefirst character the string A2 is returned. If it isn't, a zero is returned.For example, if A1 is 'that theo)}ry is not viable at this time' and A2 is'viable', the function INDEX (A1, A2) will return the value 20 which is theposition o*}f the first letter of A2 in A1.} FUNCTION Index (VAR A1, A2: string): integer; VAR I, J, K, L: integer; BEGIN I := Maxs+}tring; WHILE ((A2[I] = ' ') AND (I <> 1)) DO I := I - 1; K := 0; REPEAT J := 1; L := 1; WHILE (J <= I) DO,} BEGIN IF (A1[J+K] <> A2[J]) THEN L := 0; J := J+1; END; K := K+1; UNTIL ((L = 1) OR ((I+K) > Maxstring)-}); IF (L = 1) THEN Index := K ELSE Index := 0; END;{The next function is an include file on the Kyan Pascal disk. .} It returns thelength of the string passed to it.} FUNCTION Length (VAR A1: String): Integer; VAR I: Integer; BEGIN I :/}= Maxstring; WHILE ((A1[I] = ' ') and (I <> 1)) DO I := I-1; LENGTH := I; END;{The next procedure is also an include fi0}le on the Kyan Pascal disk. It copiespart of A1 into A2, as specified by I (the position in A1 of the firstcharacter copied)1} and J (the number of characters copies to A2).} PROCEDURE Substring (VAR A1, A2: String; I,J: Integer); VAR K : Integer; 2} BEGIN FOR K := 1 TO Maxstring DO A2[K] := ' '; I := I - 1; FOR K := 1 TO J DO A2[K] := A1[I+K] END;{This next functi3}on return a value TRUE if S2 is in S1, otherwise it returns aFALSE.} FUNCTION Demo1 (S1, S2: String) : Boolean; VAR Result4} : integer; BEGIN Result := Index (S1, S2); IF Result = 0 THEN {If result = 0, then S2 is not in S1} Demo1 := FALSE5} ELSE Demo1 := TRUE {If result <> 0, then S2 is in S1} END;{The next function returns an integer equal to the number o6}f times S2 appearsin S1. It will not work if the first character in S2 is a space.} FUNCTION Demo2 (S1, S2: string): Intege7}r; VAR Result : integer; Dem : integer; BEGIN Result := Index (S1, S2); Dem := 0; WHILE Result <> 0 DO 8} BEGIN Dem := Dem +1; S1 [Result] := ' '; Result := Index (S1, S2); END; Demo2 := Dem; END;{This pr9}ocedure prints out the position and length of S2 in S1} PROCEDURE Demo3 (S1, S2: String); VAR Result : integer; BEGIN R:}esult := Index (S1, S2); Writeln (S1: length (S1)); Writeln ('position: ', result : 2); Writeln ('length: ', length (;}S2) : 2); END;{If S2 is in S1, this procedure will return everything before the firstoccurrence of S2 in S1 (in S1), everyth<}ing after the first occurrence of S2 inS1 (in S3), and S2 itself (in S2). If S2 is not in S1, then S1, S2, and S3 areunchang=}ed. For example, if S1 is 'Gumby and Pokey live' and S2 is 'and' (plus17 spaces), then Procedure Demo4 will change S1, S2, a>}nd S3 into the following:S1 will be 'Gumby', S2 will be 'and', and S3 will be 'Pokey live'. All threewill be padded with spa?}ces after the last letter.} PROCEDURE Demo4 (Var S1, S2, S3: string); VAR Position, len, p, l : integer; temp : string; @} BEGIN Position := Index (S1, S2); IF Position <> 0 THEN BEGIN len := length (S2); p := 1; l := Position -1; A} Substring (S1, temp, p, l); p := position + len; l := maxstring - p +1; Substring (S1, S3, p, l); Substring (B}S1, S2, position, len); S1 := temp END; END;BEGIN {Main program] S1 := empty; S2 := empty; S3 := empty; S1 := 'GC}umby and Pokey live'; S2 := 'and '; IF Demo1 (S1, S2) THEN (* Boolean function instead of BooD}lean expression*) Writeln ('Demo1: It's there!'); Writeln; EHIB V L1 ,} 1 70,L.  :%1VIRTUOSO DESKTOP PERFORMANCE STUDIO - introduction, concepts andapplicationsWelcome to the VIRTUOSO area of the Atari 8 bit fa}orum. Those of you who already have Desktop Performance Studio,congratulations, please feel free to upload and download pieceb}sto and from this forum. For those of you who have not gotten Virtuoso yet, download theVPLAY.OBJ file and the demo pieces. Vc}PLAY.OBJ is a play onlyshell program that allows you to see and hear any DesktopPerformance piece. You will not have any editd}ing capabilitywithout the full Desktop Performance Studio program, this is aplay only feature. To order Desktop Performance Se}tudio, please use the ElectronicMall (GO VC) or contact Virtusonics directly. Our phone number is212 316 6945.All of the grapf}hic, music and text images from demos were createdon an Atari 130XE using Desktop Performance Studio Software. Ourgraphic, mug}sic and text editors make animation easy, quick andexciting. What you are seeing is not frame by frame animation. Wehave deveh}loped a methodology for expressing graphic, music andtext data in a "dataflow" format that allows for the real timeanimation i}of multiple objects. Graphic objects are animated bypath and scale patterns (8 animated geometric objects, 3 spriteobjects, 1j}6 filled background objects). Music is animated byshift, volume, and envelope patterns (4 animated music objects).Text is anik}mated by scrolling (4 animated text objects). Eachanimator (path, scale, shift, volume, scroll) has its own loopand speed varl}iables. Speed is the concept. Virtuoso is a new perspective that controlsas many parallel, independent, variable speed paramem}ters as arerequired to execute ideas. Desktop Performance Studio is ourfirst application of this kind of thinking.If you haven} any comments, ideas, questions or suggestions pleaseleave me a message, I will respond. I would like to share our thinking ao}bout the design of VirtuosoSoftware in terms of its application to different hardware andsoftware concepts; its relationship p}to a conceptual manner ofthinking; its interaction with reality; and its presentapplication in Desktop Performance Studio. Weq} are interested indialogue about the Virtuoso Software concepts and the DesktopPerformance Studio applications.All Virtuoso Sr}oftware users are encouraged to share their workswith others. Please upload and download freely through DL13. Onceyou have dos}wnloaded and reviewed a piece from the DL, you can usethe NEW command to erase the time stream and use the libraries tomake yt}our own pieces. This is one of the exciting elements ofVirtuoso. We can all share each others pieces and performances,and theu}n use each others libraries to make our own new pieces.Joseph Lyons,President of Virtusonics Corporation[70007,1565] + >:t HOMETERM HELP AND MISCELLANY INFO So you have bought HomePak and are beginning to get addicted w} to HomeTerm, huh? Well the program is certainly an evolutionary program for the 8-bit Atari line. Especially conside x}ring that it comes on an unprotected disk with 2 other very competent programs for only $50. Anyway there are some ver y}y commonly asked question about HomeTerm's capabilities and problems. Here we go through some: ATASC z}II EOLN and CURSOR CONTROLS The problem that everyone first notices is that version 3.3.3 will NOT send the proper A {}TASCII carriage return code in macros. Unfortunately many bulletin boards ask for this code first when you log on. Temporar |}ily you must (if you want to automate your log-on sequence) log on in ASCII (just use a control M in the macro) and switch }}to ATASCII after you finish the log on procedure. I log on the boards with HomeTerm in ATASCII, but the macro still se ~}nds the ASCII EOLN character (with a control M), so the board thinks I'm in ASCII. The last thing in my log-on sequence is }to switch modes, and I just hit the return key. This is more convenient then actually logging on with HomeTerm in ASCII and }then having to go to the HomeTerm menu to switch to ATASCII. This way you'll already be in ATASCII at the end, all you have } to do is hit return. This will be fixed for the next update. Version 3.3.3 also does NOT support ATASCII cursor posit }ioning either - you know, when you log onto BBS's and the cursor is supposed to move backwards or forwards or even up and d }own, you will only get arrows and no movement. The next update will fix this problem at the expense of VIDTEX (CompuServe) }cursor positioning. The next VERSION (the update is due out soon, the version will be out in a few months) will have A }TASCII and VIDTEX, along with many more emulators (like VT-100). Also, HomeTerm is set to boot up in lower case letter }s. Most BBS systems that use passwords are looking for upper case letters. So you'll need to switch to upper case. If you }prefer, you can write your config file out now, and it'll boot now in upper case. If you're logging on with macros tho }ugh, it doesn't matter, as long as your password is correctly typed in the macro. 1030 MACRO DI }ALING HomeTerm version 3.3.3 will not autodial with the 1030s in the macros. The next update will fix this problem w }ith touch-tone dialing (!!) from within the macro on the 1030. It seems as though HomeTerm gets better and better and bette }r! Also, you'll notice that if you hit the select key in the middle of a dialing sequence (with M on the 1030), to abo }rt the dialing, the next time access the disk drive, HomeTerm will lock up. Be careful if you abort the dialing process! Th }e next time you access the disk might be to save an important buffer, but you'll lose it! I like to dial the number m }anually and then just tell HomeTerm to dial a 1 to put my 1030 in the originate mode. WHICH MPP } HANDLER? To use HomeTerm with the MPP modems you must get the HMDRVE.XMO handler out of DL2. This handler is anothe }r "R:" handler for the MPP and will work very well with HomeTerm although there still seems to be SOME difficulty with SOME } modems on detecting a carrier, but persistence seems to be providing very positive results. C }OMPUSERVE DOWNLOADS There is some difficulty in understanding correct HomeTerm/CIS Xmodem downloading procedure. Her }e goes MY best attempt: You must give both CompuServe AND HomeTerm the correct information for a proper Xmodem file }transfer (you can either download files using .XMO and use Xmodem or you can dumb capture .CRE files. But dumb-capturing is } used for the DOC files most often, and is unreliable for programs, since there isn't any error checking.) That's an }important concept in the procedure I'm about to describe: you are going to prepare BOTH HomeTerm AND CompuServe for an Xmod }em transfer. Here's the procedure. The first thing to know is that in ALL Xmodem transfers, whether Atari bulletin bo }ard or person to person or CompuServe, there seems to be a problem with printer interfaces interfering. If you are using an } 850 and have your modem attached to an 850 then do NOT worry. If you are using a 1030 or MPP and have a parallel interface } attached, you might have to unplug it. Personally I have severe trouble trying to download with my 1030 with my interface }attached. The problem even seems to occur to the 1030 when there's an 850 attached. I've heard that the problem might be the } 1030. In any case the problem is not pinned down so if you persistently have trouble, boot up HomeTerm with your inte }rface unplugged. In other words, take the interface OUT before you even turn the computer on! (Don't just take it out of th }e daisy chain before you download.) To use Xmodem you can only download files that have the .XMO extender on them. You } will type D after the file description (or "DOW filename.XMO" if you are at the DL prompt) and ask for 1 one in the next m }enu, or the "Xmodem or Xmodem7" prompt. Then CompuServe will ask for 7 bit Ascii or 8 bit binary transfers, be sure to hit 8 } bit! You should quickly see "starting Xmodem transfer, hit carriage return when transfer complete." Now go to YOUR m }enu with the select key and type "R" for receive. HomeTerm will ask for a filename, and give it. You can type the D: if you } want to but you don't need to, unless you want to download to drive number 2. Then you type D2: HomeTerm will access } your disk and see if there's a file with the same name on the disk. If there is, it will ask if you want to erase the alre }ady present file. If you say no, you have to start over from the "R" on your HomeTerm function menu and give a different fil }ename. If you say yes, then HomeTerm will go to your disk and erase the file (it's gone for good!). This yes/no stuff only }happens when you give a filename that already exists on the disk. Finally you will hit return to get back to the inter }active screen (what is actually happening between you and CIS). Hit your start key and away she goes! By the way } you have to do the above steps rather quickly because CompuServe will give up after about forty-five seconds. If you find }that this is not enough time for you to get your thoughts together and prepare HomeTerm for the download, you can go to the } HomeTerm menu BEFORE you tell CompuServe to download. Just don't hit the start key. In other words, go to your HomeTe }rm menu and type "R" and give the filename information. Then get back to the interactive screen and tell CompuServe you wan }t to download. When it says "Starting Xmodem transfer, hit a carriage return when transfer complete" THEN hit your start ke }y. Remember that either method will work but I've had more success with the first method. You just have to be quick. } Now the transfer will begin. This is important: if you see ONLY numbers and letters then CompuServe goofed up. You shou }ld see GRAPHICS CHARACTERS all through the file. Some numbers and letters are fine, but there should be plenty of inverse a }nd graphics characters. If you don't see ANY inverse or graphics characters, abort the transfer by holding down the select }key. Then get back to the first main menu you see when you first enter the Atari*SIG. Now go back to the download section ( }you have to reenter the download section like this to reset it) and type: DOW filename.XMO/PROTO:XMODEM/TYPE:BIN to } force the proper style download from a reluctant CIS. *NOTE* You only have to do this if you see a string of number }s, i.e. 345IEF849FI instead of numbers, letters and graphics characters. You can go to the HomeTerm menu to set up f }or the download (as described above) either before you give the commands or after-it really doesn't matter. If you g }et an "Unable to Receive File" anywhere in the transfer then CompuServe is too busy. Try again, or call back later during o }ff hours. OFF HOURS ARE: Weekdays 6-7 P.M. after 3 A.M. Weekends 8-11 A.M. When you } get the downloading procedure intact, go to DL2 and download HTCUST.XMO. This program will modify your HomeTerm (a copy onl }y, please) for many neat features as you specify. You'll be able to use the joystick with HomeTerm! } BBS XMODEM TRANSFER A BBS Xmodem transfer works exactly the same way on your end except: 1==>you will need }to be in ATASCII on the BBS and with HomeTerm. 2==>the bulletin board will give you different prompts than CompuServe g }ives you. Most bulletin boards ask if you are using Xmodem. Hit "Y" of course. If a transfer aborts with a bulletin boar }d then there's garbage in the phone line, but I have NEVER had any problem downloading from a bulletin board (except with m }y stupid Ape-Face attached.) Some people have reported aborts after sector 255. However, all commercial and legal vers }ions of HomeTerm support >255 file transfers. If you get an abort then the problem is in the BBS software, NOT HomeTerm or }you (unless you're a thief.) PERSON/PERSON XMODEM TRANSFERS Those familiar with Amodem will }appreciate person/person transfers also. With Amodem, if the person SENDING hits his start key before the person RECEIVING, } the computers lock up and you get disconnected. Not so with HomeTerm! The sender can hit his start key before OR afte }r the receiver does (within a minute at the longest.) No more silly timing games. DUMB UPLOAD }ING As for the "dumb" uploads that you will do, say, when you compose EasyPlex off line, or compose a message for t }he SIG off line, set your delay rate (control D) at about 10. If you are using CompuServe at peak hours, you'll have to set } the delay higher. I actually had to go up to 1500 one day during Christmas! It works much better with the Filge edito }r rather than the prompted line editor. Go to your option menu (type OP from the main prompt) and you'll be able to select }it. If you insist on using the awkward line prompted editor, remember that if you have a plain carriage return at the }beginning of a line, you will exit the editor and begin spraying text all around CompuServe and probably wind up on the Com }modore SIG or some other horrible location. When you do a dumb-upload, some of your text will be echoed back to you, }but toward the end you might not see the text. In fact, you will get the "Upload Completed" message from HomeTerm, but it'll } take up to fifteen extra seconds before it asks you if you want to clear the buffer. Just be patient, HomeTerm has NOT loc }ked up, as it might appear, at the end of that dumb upload. CAPTURING FLEXIBILITY One } of HomeTerm's most flexible capabilities is the unlimited buffer. In other words you can capture files of any length witho }ut having to worry about the buffer filling up. When the 7K (roughly) buffer fills up, HomeTerm will tell CompuServe o }r the BBS to stop sending data. It'll then dump the buffer to the device you specified. For instance, you could captur }e this wonderful file to your printer (that's P:) and you'd get an instant hardcopy. With the Customizer the stop and }start codes can be changed to whatever code the computer on the other end needs. The only code HomeTerm won't send (yet, I }mean 3.3.3) is the break code. But don't worry about this if you just deal with CompuServe and AMIS Atari bulletin boards, }it's all pre-set for you. There might be a problem with 1030 Unlimited Buffer on AMIS, please yell on what you find! } COMPUSERVE GRAPHICS Oh, you can't get any of the on-line graphics with HomeTerm, the prog }ram does not support them. PRINTER CONTROL CODES Finally, I'd like to mention sending con }trol codes to your printer with HomeTerm. Here how: 1-I use the "TYP" feature of DOSXL but I guess a word proc. } would work, clear out all the format info at the top of Atariwriter (you don't have to when using DOSXL of cou }rse). 2-Get out your printer manual and find the control codes you need for the features you want to activate. } 3-Type the Ascii values, for instance: Condensed on the Gemini is Ctrl O. So hit Ctrl O. 4-You ca }n type in any string of commands you want to give the printer: Escape key (twice) @ CtrlO will initia }lize the printer and set condensed print, for instance. 5-Now save this tiny file out to the disk. 6 }-Now when you are on line, hit Xoff to stop the computer right before you get to the text you want to capture. } 7-Go to function menu. 8-Then go to MiniDos menu. 9-Now use Copy, give the source filename as that tiny file } you saved, and give the destination file as P: Presto, you have sent the control codes to your printer that you } want. One word of caution:when there is a variable in the manual (it's "n" in the Gemini manual...) say for instance }when you can set the number of lines to skip at the bottom of the page...don't type in a number like 5 to skip 5 lines! The } printer is taking Ascii values, so a 5 will give you 53 lines!! You would type in the character for the Ascii value of 5. }That's a control E. Took me a while to figure that one out! Also, with Atariwriter many of the keys are different: a }Ctrl O is Ascii 27 or really the Escape key twice. It's all backwards for this I'm afraid, so try DOSXL or something else.. } TIMER PROBLEMS On some computer models you will notice your } timer will stop and lose time when it accesses the disk drive, whether on a simple directory or whether dumping the buffer } to the disk. I know it happens on an 800XL, but I don't know about the other models, but if you notice it there's not }hing much to do until the next update comes out (real soon!) THE END Well there you }have all the HomeTerm information you can handle. Be sure to send in your warranty cards to Batteries Included so that you }can get your updates and revisions! If you need any help don't hesitate to contact Russ Wetmore at 76703,2010. My PPN }is 74726,3216. Good Luck! Henry T. Colonna } The Progressive Thinker. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>IحJ e USING HOMETERM WITH THE AXLON RAMDISK AND MPP MODEM You must have the following to use HomeTerm with} the Axlon 128K board and the MPP 1000E or C modems: The file called HTMPPRD.XMO. This is the HomePak AUTORU}N.SYS file with the Ramdisk initialization program and the HomeTerm MPP handler already appended to it. Since you }will be using SMARTDOS, this program should be named HTMPPRD.AR1. The Axlon 128K board (of course). } The 8K bank-switching version of OMNIMON installed in your ATARI 800. The Ramdisk init program will make a call to th}e OMNIMON Ramdisk handler routines. SMARTDOS 8.2d. This is a single or double density DOS which is still } available from mail-order houses and such. The reason you need this DOS is that ATARI DOS 2.0 and 2.5 use up a little} too much memory, causing a conflict with the Hometerm MPP handler. SMARTDOS should be set (using the DEFAULT prog}ram supplied on the master disk) to 3 drives, 3 file I/O buffers, and one .AR? file. If you have a}ll of the above, then you're ready to proceed. First, format and write DOS files to a new disk with SMARTDOS (after } setting the options as described above). Then copy HTMPPRD to this disk and rename it to HTMPPRD.AR1. Then you can c}opy the HOMETERM program to this disk along with its .SET configuration file. If you want this disk to automatical}ly boot to HomeTerm, rename HomeTerm to HOMEMENU.OBJ. If you've done everything correctly you should now have }a self-booting Ramdisk version of HomeTerm for the MPP modem. When the Ramdisk init program is executed it will fo}rmat the Ramdisk as drive 3. Then it will copy DUP.SYS to the Ramdisk and alter SMARTDOS so that if you go to DOS,} DUP.SYS will load from the Ramdisk. What, you say? Go to DOS? From HomeTerm? Well, with OMNIMON many stra}nge and wonderful things are possible! Here's how to enter DOS from HomeTerm. First, go to the option menu s}creen of HomeTerm. Be sure you're finished using HomeTerm for the moment, and then enter OMNIMON by pressing SELEC}T/RESET. Execute the command "J 1780". In the 8K version of OMNIMON, you will need to switch to the upper bank when } this command is entered. Flip the switch and press RETURN. Then hold START and press RETURN to exit OMNIMON. You h}ave to switch back to the lower bank to execute this command. So when your screen turns upside down (OMNIMON's sig}nal to flip the switch) go ahead and flip it, then press START/RETURN again. DUP.SYS will load from the Ramdisk ve}ry quickly. I find that using SMARTDOS to copy files I've downloaded to the Ramdisk is much easier and faster than usin}g the HomeTerm copying option. Enjoy! -- Charles F. Johnson 75066,404 } >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>}>>>67@,.x67B:,%@,..G3D$zŠ{$ A!$( ϠԠ Y/N|( filespe PUT SYNCHROMESH IN HIGH GEAR by Richard Q. Fox  } Copyright 1985 Richard Q. Fox(Reproduction in newsletters permitted, provided the above header is maintained.)The INDUS } GT disk drive for the Atari is capable of reading disk data at 2 to 4 times the speed of other disk drives. However, the sof }tware supplied with it takes so long to load in, that any advantage is lost. This article describes a procedure for making a  }boot-load Synchromesh disk for the INDUS which loads in just a few seconds. With this disk, Synchromesh is more practical.T }he Synchromesh software is supplied as part of DOS XL 2.35I . In order to engage Synchromesh, you must boot load the DOS XL 2}.35I disk at power up time. This load takes about 50 seconds, enough time to raid the refrigerator and still be back before t}he beeps and chirps have stopped. Once loaded, Synchromesh reads disk files very quickly. For example, a 204 sector file re}ads in 17 seconds.By contrast, DOS 2.0 loads in 8 seconds. However, that same 204 sector file requires 56 seconds. Now it} might seem as if DOS 2.0 is incredibly slow, but if you compare the total boot plus load times of both approaches, you'll fi}nd them about the same...they're both slow!The ideal situation, of course, would be to speed up the boot time of Synchromes}h so that the boot plus load time is greatly reduced compared to DOS 2.0. The steps about to be described reduce the Synchro}mesh boot time from 50 to 19 seconds.Here are the tools you'll need to create your speedy Synchromesh disk: 1) Two b}lank disks 2) The DOS XL 2.35I System Master Diskette supplied with Synchromesh 3) A utility capable of modifying} single bytes on a disk sector. Examples are DISKSCAN, OMNIMON, and DISKEY. 4) To speed up the boot process a little m}ore, an optional step requires the use of the Archiver/Editor/Chip or Happy Enhancement and a sector copier utility. Ste}p 1 is to boot the DOS XL 2.35I diskette described in item 2. This is the 50 second refrigerator break boot. So go enjoy an} apple while you wait. Next, type I while the DOS XL disk is still in the drive. This is the "Initialize Disk" command.} Now insert the first blank disk. Type the number "1" to "Format Disk Only". When formatting is complete, type number }"4" to "Reformat Boot Tracks Only". This is followed by "3", "Write DOS.SYS Only". The last step in this sequence is "5", "R}eturn to DOS XL". While this disk is still in the drive, type "X" for the "Xtended Command". Type in the following when} prompted for Command: "TYPE E: STARTUP.EXC". This allows you to create the startup file. When you hit return, the screen g}oes blank. Type in the following:  NOSCREEN GTSYNC ON DO CARTRIDGE;RUN "D:MENU.BAS" SCREEN END contr}ol and lower case 3This takes you back to the main menu. Swap back to the DOS XL 2.35I diskette. You now need to copy  }two files from this disk. Press "C" for "Copy Files". The "From File" is GTSYNC.COM. The "To File" is also GTSYNC.COM. An!}swer the "Single Drive" question with a "Yes". Follow the screen directions to copy the file from DOS XL 2.35I to the disk o"}n which you wrote the "STARTUP.EXC" file. Repeat this same procedure to copy "DO.COM" to your disk. The next step reduc#}es the number of drives checked by Synchromesh. At this point, boot in your utility for modifying disk sectors. Use the uti$}lity to find the starting sector of the GTSYNC.COM file. The starting sector is probably 003A hex (58 decimal). Modify byte%} 3A of the second sector of GTSYNC.COM to be one more than the number of drives you want to check. For instance, if you want&} to check for two drives, plug in 03 at byte 3A. The location you just changed should have read 09 (one more than the 8 driv'}es Synchromesh checks) prior to the change. If the procedures to this point were followed exactly, the second sector wil(}l probably be 003B hex (59 decimal). The value 09 is in sector 003B at byte 3A.  Now write your modification to the di)}sk using the utility. At this point, Synchromesh will boot in 27 seconds. The next step is optional. Using it will cut ano*}ther 8 seconds off the boot time. This step involves reformatting tracks 0,1,2,3 and 4, but you will need the Archiver/Edito+}r/Chip or the Happy Enhancement to do the job. The first step is to use DOS XL 2.35I to format the second disk (which is,} now blank). Use the I function to Initialize the disk with DOS XL 2.35I still in the drive (same as before). On the menu, -}select Option 1 (Format Disk Only). Swap disks and insert the blank disk. Be very careful not to wipe out all your work to .}this point by inserting the wrong disk! You might want to label the first disk "Super Synchromesh" and the second disk "Scra/}tch" or "Temp". Finish formatting the "Temp" disk using Option 5. You do not have to use Options 3 and 4 as you did in crea0}ting "Super Synchromesh". Boot in your sector copier utility. Set it to copy tracks 0,1,2,3 and 4 from the "Super Synch1}romesh" disk to the "Temp" disk. Boot in your Archiver or Happy software and set it up to process only tracks 0,1,2,3 and 4.2} Insert the "Super Synchromesh" disk in the drive. Go to the formatter feature and set the formatter for the following sequ3}ence: 11 0F 0D 0B 09 07 03 01 12 10 0E 0C 0A 08 06 04 02Format tracks 0 through 4. Reboot your sector copier utilit4}y. Copy tracks 0 through 4 from the "Temp" disk to the "Super Synchromesh" disk. Your "Super Synchromesh" disk will now boo5}t in 19 seconds. The STARTUP.EXC file that you created transfers control to BASIC and runs a program called "D:MENU.BAS"6}. You may change this file to meet your needs. To use your new "Super Synchromesh" disk, your best bet would be to writ7}e protect this copy and use Archiver or Happy to make future copies. Adding your software to these copies gives you fast "bo8}ot and go" disks.  HAHhJLI@AAhhhh̅LAA˭A̅hBhݍAhhލA AA`L@LBˆ 1050 Drive Transport Into an INDUS GT Rich Mier, SPACE, St.Paul, Mn. My Indus Disk Drive has a lot of miles on:} it and, alas, wascomming up with some Strange Errors. After swapping all the socketedchips on the main board, I determined ;}that it must have a badRead/Write head. By now I had been using it with the case removed, the Deckresting on the top of t<}he front panel and a wooden pencil across therear beneath the deck. The TANDON Part No. is 211014-001 and checkingaround tow=}n, I could find no replacement deck, anywhere. Everyone Italked to said I'd have to send it back to Future Systems, or at le>}astgo to them for a new deck. I can't afford to lose my disk. I only have one as I have a 320KXE and a 256K MIO. All I ?}need is one when I have 2-192K RAMDISKSavailable. American Techna- Vision advertises a direct replacement Mechanismfor a @}1050 Drive so I called them to see if it would work in theIndus. They didn't know and couldn't even give me a Tandon PartNumA}ber. They did say that they have gotten orders from small companysthat repair Indus drives. Taking a chance, I ordered one B}on thecondition that I could return it if it wouldn't work. $47.50 plusshipping and UPS 2nd day Air. Total, $56.00. CheapeC}r than what itwas going to cost me if I had to take it to a Dealer or send it out tobe fixed. Monday evening I ordered itD} and Thrusday afternoon it showed up. I checked the Part Number first. Different! Part No. 216024-019. Digging out the wireE}s, I found a couple markings that were the same. Mechanicly, it was the same, but on closer examination there wereseveral difF}ferences. 1) There was no Timing hole sensors. 2) Theplug comming from the Stepper motor had 6 wires versus 5 on the olddecG}k (both have a 6 wire connector). Also, the colors were completelydifferent. 3) The wires comming from the drive motor wherH}e the samecolor, but about 3 inches shorter. (The Dirve motors whereidentical.) 4) The micro switch aganist the rod used toI} twist andengage the floppy had 3 wires on it and the old one, 2. 5) There was1 less connector plugs. Cutting some plastJ}ic tie-wraps on both decks, I traced out thewires. Here's what I found: The missing connector is J12 (4 pins) on the oldK} deck. It is thetimming hole sensor. Well, Atari doesn't use the timming hole. Ignoring it, I went on. The three wire cL}onnector marked '14' on the new drive is theMicro switch marked '5' on the old one and isn't used. The two wire connectorM} marked 'J12' on the new drive is also'J12' on the new one. It is the front LED and isn't used on theIndus. 'J11' on botN}h decks is the Write Protect Sensor. 'J10' on the new deck is the same as 'J09' on the old one. Thehead 'Track 00' sensoO}r. The wire from the R/W head is a 5 pin connector, same as the olddrive, and is long enough to work. There is a differeP}nce in colors ofthe wires to which pins, but the Ground is right. I assumed thedifference in wire colors is because of a difQ}ferent manufacture of thehead itself and that the plug was wired correctly to work. The last one was the Stepper Motor plR}ug, J3 on the old one and'15' on the new deck. A six wire connector. The stepper motors weremade by two different companys S}so maybe it would work as is. Also, onthe Indus motor control board, pin 6 was not used. No foil connectedto it. Here iT}s what must be done to make it work: 1. Remove the Motor Control board from the top of the old drive. Note that all the U}plugs are marked on their top side. 2. The two screws on the top right of the new drive must havethe lock washers removeV}d so the motor control board will fit. 3. Arrange and tape the wires comming from the R/W head the sameas the old drive.W} 4. Now the only tricky part of this. The wires comming from themotor are too short. On the Motor Control Board, removX}e the 4 wireconnector (marked J4 on the board) for the motor plug, J1. Use asmall soldering iron and a solder 'Sucker'. TurY}n it around so thepins are pointing to the left and re-solder it in place. 5. Install the Motor Control Board and cardboZ}ard insulators onthe new deck, taking care to position the R/W connector and that theboard and insulators clear the top flopp[}y idler hub. 6. Connect the R/W, 5 pin connector with the '0' up, the same asit was on the original. 7. You will ha\}ve to cut some plastic tie-wraps to free the drivemotor wires. Turn the connector UPSIDE-DOWN, so the 'J1' marking isdown an]}d the 4 pin retaining slots are up and plug it into theconnector pins that you turned around. Be sure they won't interferwit^}h the head movement. 8. Run the Stepper Motor connector up through the frame as wasdone on the old deck and plug into th_}e 6 pin connector, the marking'15' up. On mine, the 2 red wires were towards the front of thedrive, pin 5 and 6. 9. Loc`}ate and clean the two mount holes on the left side of thedrive where the lable is. 10. On the left side of the old drivea}, mark on the frame abovethe 3 plugs, the 'J' number found on each of the 3, 4 pin connectorsas you remove them. 11. Loob}se the two screws holding the front panel to the Indusframe. On older drives, you might have to remove it as the panelconnecc}tors on the bottom board where too high for the deck to clearthem. 12. Remove the old drive, 2 screws on each side of thd}e frame,and lift it out. Now is the time to fix that front door if you've hadproblems with it. 13. With a screwdriver, e}pry off the front lever on Both drivesand swap them. The lever on the new one is too long to fit throughthe front panel and f}work. 14. Keeping the wires clear, install the new deck, adjust it'sposition and snug the two screws holding the front pg}anel to the frame. Plug the rear Flat Cable into the Control board. 15. There should be four connectors at the left, reaq}BAFUNPRO TXTBEGETCHR DOCB`HELLO TXTBxvHTAID DOCBHTRD DOCB1IINDUS DOCB89INDUSR TXTBzINFORM TXTBKILLDO TXTBKPFILS TXTBCLC4 TXTB LODRUN DOCB'MACCOL TXTB-MACH37 DOCBMBOOT DOCr. The twowire (J12) and the three wire (14) won't be used. Tuck these away atthe rear so the are out of the way and won't r}short to anything. 16. Find the connector marked J10 and plug this into the frontmost pins where J09 was on the old decks}. 17. Find the connector marked J11 and plug this into the rearmost pins where the old J11 was. There, that's it. Tt}he now unused pins, J12, won't be used andisn't needed. They were for the Timing Hole sensor. If you REALLYwant to, you Couu}ld maybe pry out the LED and sensor from your olddrive and reinstall them, but WHY? They aren't needed. One thing I did v}learn from trouble shooting my problem. TheFloppy Controller Chip used is capable of controlling a Double Sideddrive. It's w}a Western Digital, 2797 type. Anyone need a challenge? How about a kit for a 5 1/4 inch Double Sided, Double Density drive ox}rhow about a 3 1/2 inch drive? 80 tracks, double sided is 720K. Richard Mier C-Serve 7y}3537,3573 GEnie RBMIER@0@6-&@ B @) PAGE 6 "THE INFORMER" BY MATT LOVELESS & MIKE EGGERS(From the May '86 Antic) (synopsis) The Informer put{}s a four-item status line into thescreen display of your BASIC programs. This finalinstallment of the Page 6 Grab-Bag is a B|}ASIC program thatworks on all 8-bit Atari computers of any memory size, withdisk drive. The third and final installment o}}f our Page 6 Grab-Bagseries is a single program, The Informer, that creates asingle-line "text window" in your 8-bit Atari an~}d lets yousee the current [SHIFT]-[CAPS] mode, the cursor row andcolumn, and the amount of free memory left for your BASICpro}gram. (Page 6 is 256 memory bytes from location 1536 to 1791-- $0600 $06FF in hexadecimal. "Protected" from theoperating} system and BASIC, Page 6 provides a safe homebasefor fast, powerful machine language routines which can becalled from your B}ASIC program. The Informer places a status line above your standardscreen display. The information there is updated sixt}y timesper second. From left to right, the line provides thefollowing information: MODE indicates the current [CAPS]-loc}k status. If youpress [SHIFT] and [CAPS], a letter "A" is displayed,indicating all input will be in upper-case. Similarly, }an"a" indicates lower case, while a heart character [ ] isshown when all key-presses are to be interpreted as [CONTROL]charac}ters. This occurs when you press [CONTROL]-[CAPS].MODE also indicates whether input is in inverse video ornormal mode. R}OW, COLUMN shows the current cursor position. Inaddition to the GRAPHICS 0 cursor, the position of theinvisible graphics cur}sor is displayed as well. Note that inGRAPHICS 7 or 8, garbage will appear here if a number isgreater than 40. FREE prov}ides a hexadecimal display of how many freebytes of memory are available to the BASIC programmer. Freememory is calculated b}y subtracting the value of MEMTOP (topof memory) from LOMEM (bottom of memory). MEMTOP is a two-byte pointer to the top o}f BASIC memory.To determine MEMTOP, take the value found in memory location145 ($91) and multiply it by 256. Add this number} to thevalue found in location 144 ($90). In other words: MEMTOP=PEEK(145)*256 + PEEK(144) LOMEM may be calculated s}imilarly using memory locations128 and 129 ($80, $81). LOMEM is maintained by BASICand must not be confused with the operati}ng system's MEMLO. Once invoked, The Informer stays at the top of thescreen until the computer is turned off, or the Defe}rredVertical Blank vector (VVBLKD, locations 548-549($0224-$0225)) is reset. If you switch screen modes, The Informer's s}tatus linewill redraw itself at the top of the new display. Evenpressing [RESET] will not disturb The Informer. And since i}tsits above the screen that Atari uses, The Informer will nothamper program operation. The Informer status line disappear}s during time-criticalperiods such as disk I/O. It reappears, updated and ready togo, when the critical period is over. Thi}s line replaces oneof the BLANK 8 LINES instructions in the ANTIC display list.You can disable The Informer by pressing[OPTIO}N] [SHIFT]-[RESET]. Reinstate it with [SHIFT]-[RESET].This routine will not work with the Atari Editor/Assemblercartridge be}cause the cartridge squelches all deferrredvertical blanks. Download INFORM.ARC. Use the ARC utilities in the8-bit secti}on of SIG*ATARI to extract INFORMER.EXE andINFORMER.M65, the MAC/65 source code. To use The Informer, copy INFORMER.EXE t}o another disk(make sure the disk has the DOS.SYS file on it!). Next,change the name of INFORMER.EXE to AUTORUN.SYS. Now, r}e-bootyour Atari with this disk, and The Informer will appear. (bio) Cousins Matt Loveless and Mike Eggers were both }in theirmid-teens when Page 6 was originally released on disk bySynapse Software in 1982.d pictureg)(!When viewing the Y Introducing... ŠҠ v2.1A File Utility for use with SpartaDOS.-------------!}-------------------------The Killer is a useful utility formultiple file deletions from yourSpartaDOS directories and sub!}-directories. The Killer will let youverify the deletes from a wild-carderase command. It is especially goodon Hard Dri!}ves with a lot of filesand sub-directories.After initially writing Killer 1.0, Idecided I wanted to try to processthe di!}rspec from the DOS CommandLine. Hence, version 2. Thanks tothe SpartaDOS Construction SetDocumentation, I was able to do!} this.Also, I would like to thank ChrisKing and Keith Ledbetter - withouttheir help, I probably would nothave even attemp!}ted to write aprogram, let alone actually finishone. Now if I could just learnAssembler.....Unleashing the Killer***!}******************Rename KILL21 to KILL.COM and typeKILL at the 'Dn:' prompt. The Killerwill load and display the followi!}ngprompt: - Kills - Aborts*****>D1:and then you will see the firstfilename from the default directorywhi!}ch you can either Kill (with a 'Y') or bypass (any other key).The Killer will search through thespecified path and displa!}y all filesin that path one at a time with the'?' prompt after each one. If youwish to kill that file, type a 'Y'at the !}'?' prompt. The file willbe killed. Any other charactertyped will allow that file to live.Hitting the key will abo!}rt youfrom that path and return you to the'Dn:' prompt.Some Examples*************Typing KILL D1: will search thedef!}ault directory on drive 1 andprompt you for a response.Typing KILL STUFF will look on thedefault drive for a sub-dir call!}edSTUFF prompt you for a response.KILL D2:STUFF will search all fileson drive 2 in the sub-dir STUFFetc... etc...I u!}sually put KILL.COM in my Ramdiskbefore a session and typeD8:KILL D1:mydir and go from there.WARNING!********!} is MERCILESS. He willkill any file you answer 'Y' to.He does not care if the file isprotected or not!!!!! The only!}thing that can stop him is a lockeddisk.**********I hope you find to be a useful utility. I have spent !}quitea few hours testing and debuggingthe code. If you find any bugs,PLEASE let me know via my BBS.This software is in !}the Public Domainand may be freely distributed aslong as this document accompanies itunchanged in any way.Cabell Clarke!}AKA AbdulBoot Factory BBS804-262-9289300/120024 hours (c) 1986 AbdulSpartaDOS is a trademark of ICD, I!}nc. is written in Atari Basicand compiled with the MMG Compiler.!}767@,.H67@,.Y67@,.6c# BCLOSING FILES IN KYAN PASCAL by Erik Warren, 18 March 1987_______________________________________To us Kyan Tech Support guy%}s, it seems as though everybody and their motherasks us a derivative of this question: "In Kyan Pascal, how do I close a fil%}eafter I am done with it?"The answer: You don't.The manner in which Kyan Pascal handlesthe closing of files is known as 'Goo%}dHousekeeping' or 'Lazy I/O.' Insteadof requiring the programmer to issue aClose command, the compiler closes thefile when t%}he program exits theprocedure or function in which the filewas declared and opened.So, if your program uses global files,they%} will not be closed until the final"END." of the program is encountered.If you are using a lot of files, youmay eventually en%}counter a DOS errorlike 'too many open files.' (That'llteach ya! You shouldn't be usingglobal files/variables, etc. anyway;%}you should think of modular coding withlocal files/variables.)With the following program...PROGRAM abc(Input,Output,Fyle); V%}AR Fyle : Text;BEGIN Reset(Fyle,'D:FILENAME.EXT'); . . .END....Fyle will NOT be closed until END.is reached. He%}re is how you shouldmake Fyle local...PROGRAM abc(Input,Output); PROCEDURE xyz; VAR Fyle : Text; BEGIN Reset(Fyle,'D:%}FILENAME.EXT'); . . . END; (* of procedure xyz *)BEGIN xyz; . . .END. (* of main program *)When xyz%} is called in the aboveprogram, Fyle will be opened and thenclosed when xyz is exited._______________________________________%}THE FURTHER ADVENTURES OF JOE PROGRAMMER_______________________________________Now let's suppose my good friend JoeProgrammer%} programs himself into ahopeless situation where he doesn'twant to exit a procedure to close afile. In addition to being the%} kind ofperson who paints himself into thecorner of a room, Joe also programshimself into corners. (For this reason and othe%}rs, Joe Programmer is theworld's most frequent user of Pascal's Label and Goto statements.)Lucky for him, just as a fighter p%}ilotcan eject from a burning plane, Joealso has a last-ditch 'Bail Button.'This unorthodox, back-door approach ofclosing file%}s is done via CIO...FUNCTION Close(IOCB_Num : Integer) : Integer;BEGIN IOCB_Num := IOCB_Num * 16; Close := 0;#A STX _t %} ;for safety's sake LDY #7 ;sp offset to IOCB_Num LDA (_sp),y ;pull user's IOCB # TAX ;accum. to X reg. LDA%} #12 ;close command STA $342,x ;store in ICCMD (ICCOM) LDA #$00 ;zero out aux. bytes... STA $034A,x ;one... STA $%}034B,x ;and two JSR $E456 ;jump via CIO vector TYA ;Y reg. to accum. LDY #5 ;sp offset to Close LSB STA (_%}sp),y ;store CIO's error code LDX _t ;safety#END;This function is called like this: Status := Close(1);The integer you%} pass to it is the IOCBnumber you wish to Close. Since youdon't usually know which IOCB# thecompiler has allocated for your %}file(s)you may want to make a loop to closemultiple IOCB's. Make sure not toclose #0 or #6. The integer returnedis the CIO %}status byte; a '1' wouldindicate everything is okay.Remember, this is the "Wimp's Way Out."The preferable way to close a file%} isto exit the block of code it was openedin.2s6-A $+",%@`$+",%@0$+"@,%@$+"@$-UNI.PIC 8 5K 11-Dec-87 Koala pic of a unicornUNICOR.XMO 8 1K 31-Jul-85 Printshop Unicorn iconUNIFY.XMO 8 3K 2)}8-Mar-86 ML program to speed loads of segmented filesUNITER.XMO 8 2K 20-Mar-86 Basic program to speed loads of segmented )}filesUNLOK2.BIN 8 3K 20-Jun-84 UnLock Basic programs to make them LISTableUPTOWN.XMO 8 17K 01-Aug-87 UPTOWN MANAGER - )}a money-making game/simulationURGENT.XMO 8 21K 11-Jan-87 AMS rendition of "Urgent"USCOPY.XMO 8 5K 23-May-87 Copy a DD )}disk in one pass on a 256k XL or XEUSHAPY.ASM 8 3K 06-Apr-88 Source and docs for USHAPY.OBJUSHAPY.OBJ 8 1K 06-Apr-88 )}Sets FAST-WRITE for SpartaDOS on all HAPPY drivesUSTODA.BIN 8 4K 20-May-84 Koala pic of a Familiar Front PageUTILDE.P )}8 3K 26-Jun-87 Kyan Pascal routines for Console Keys and Random V.XMO 8 2K 23-May-85 Creates a V: device to act a)}s a RamdiskVADER.BIN 8 4K 22-Jul-84 Koala pic of Darth VaderVALEN.XMO 8 10K 08-Feb-86 AMS rendition of three Valenti)}ne Day balladsVANADV.XMO 8 13K 14-Jan-85 ADVENTURE AT VANDENBERG A.F.B. - by Tom HudsonVCRLAB.DOC 8 2K 14-Jan-87 Docum)}entation for VCRLAB.XMOVCRLAB.XMO 8 25K 14-Jan-87 Video tape label maker for 1020 plotterVCWPLO.XMO 8 5K 03-Feb-85 Dum)}p TT pics to 1020 plotterVERIFY.ARC 8 1K 15-Jun-87 Turns on/off disk write with verifyVGARFE.BIN 8 8K 17-Jan-85 Fun W)}ith Art - Garfield goes sentimentalVHS.XMO 8 1K 17-Nov-85 Printshop graphic of a VHS videotapeVIDEO8.COM 8 2K 10-J)}an-88 Video80 modified to work with the XLVIEW16.BIN 8 8K 29-Aug-85 GR9 image of an apartment houseVIPER.BIN 8 3K 28)}-Aug-84 Battlestar Galactica 'Viper' - KoalaVISION.BIN 8 3K 29-Aug-84 Koala pic of The VisionVISION.DOC 8 5K 11-May-8)}6 Documentation for VISION.XMOVISION.XMO 8 8K 11-May-86 Computereyes gets smart!VISPLT.XMO 8 7K 18-Feb-86 Graphic plo)}tting of Visicalc data from AnalogVITALS.ALF 8 14K 11-Sep-88 VITAL SIGNS - a circulatory system simulation gamVITSGN.BAS )}8 13K 20-Jan-89 VITAL SIGNS - a circulatory system simulationVIVALD.XMO 8 4K 17-Dec-85 The theme from Kramer vs. Kramer)} in AMS formatVLYBAL.XMO 8 10K 29-Aug-85 A volleyball game in BASICVOCAB1.XMO 8 9K 22-Mar-86 Vocabulary file for WORDM)}AKER (WRDMAK.XMO)VOLARE.BIN 8 5K 03-May-84 "Volare" in AMS formatVOLCNO.XMO 8 21K 15-Dec-85 VOLCANO ISLAND - an advent)}ure game in BASICVOTING.BAS 8 5K 29-Oct-88 Vote program using joystickVPATH.ARC 8 3K 25-Jan-88 Shows the directory p)}ath in SpartaDOSVPLAY.HLP 8 1K 03-Dec-87 Instructions for using VPLAY.OBJVPLAY.OBJ 8 24K 26-Nov-87 A player-only pro)}gram for Virtuoso shows, DOS 2.xVTCOL.BAS 8 2K 04-Jul-86 Edits VT10SQ/VT10XL to set screen colorsVTOCER.XMO 8 6K 16-)}Nov-86 DOS 2.0 VTOC utilityVTOCFX.BIN 8 14K 31-Mar-84 Fix DOS 2.0 disks showing wrong free sector countVULTUR.BAS 8 10K)} 19-Oct-87 VULTURE - another Stan Ockers PMG arcade gameWALBAL.XMO 8 10K 19-Jan-87 WALL BALL-an air hockey gameWAR.BIN )} 8 4K 11-Aug-86 Basic Graphics Demo - warWARM.COM 8 1K 08-Aug-87 Set coldstart vector to cause warmstart on RESETWAT)}OR.OBJ 8 10K 01-Feb-88 Sharks and Fish biological simulationWC.COM 8 7K 22-Oct-87 Counts words in a SpartaDOS tex)}t fileWEDDIN.AMS 8 17K 06-Sep-87 Mendelssohn's "Wedding March" in AMS formatWEDGE.ATR 8 4K 28-Dec-82 Creates a Basic )}Wedge that is a mini-DOSWEFAX.DOC 8 4K 23-Mar-87 Docs for WEFAX.EXE from AnticWEFAX.EXE 8 3K 23-Mar-87 Receive weat)}her satellite photos on your AtariWEIRDB.BAS 8 14K 13-Jun-88 A MUSIC VIDEO from Weird City BBS!WERTHW.BIN 8 11K 07-May-)}85 AMS rendition of "We Are the World"WH64.BIN 8 8K 15-Jul-84 AMS rendition of "When I'm 64"WHALE.BIN 8 3K 22-Aug-)}86 Koala pic of a happy whaleWHATIN.ARC 8 7K 17-Oct-88 Reads the contents of an ARC or ALF fileWHATOS.XMO 8 4K 13-Apr)}-85 Displays the OS in computer up to the XL B OSWHEEL.BAS 8 15K 15-Apr-87 WHEEL OF FORTUNE - BasicWHEEL.BIN 8 1K 22)}-Jul-84 Basic graphics demo - AnticWHEEL.XMO 8 7K 25-Aug-86 Another version of WHEEL OF FORTUNEWIDORF.XMO 8 23K 10-No)}v-85 Toccata finale to Widor's 5th SymphonyWILTEL.XMO 8 6K 22-Feb-86 AMS rendition of the William Tell overtureWINNIE.XMO)} 8 2K 05-Oct-86 Winnie by Nicole HobbsWIZARD.XMO 8 24K 13-Dec-85 Wizard Sword Adventure Game (written in BASIC)WIZINT.)}XMO 8 3K 13-Dec-85 Introduction to Wizard Sword Adventure GameWOF.XMO 8 13K 17-Mar-85 Jay William's version of WHEE)}L OF FORTUNEWOFDOC.XMO 8 7K 17-Mar-85 Doco for Jay William's WHEEL OF FORTUNEWOLFMA.PZM 8 16K 26-May-90 Pryzm image of)} a werewolfWOLVER.BIN 8 4K 01-Aug-86 Koala pic - Wolverine from the X-MenWOMAN.BIN 8 3K 06-Jul-85 A pretty face from)} a TTWOMANB.XMO 8 4K 16-Oct-85 Koala pic of a female body builderWOMBEL.BAS 8 24K 17-Feb-89 WOMBEL - German import wit)}h deadly wallsWONDRS.XMO 8 3K 03-Apr-85 What is the most wondrous number? Find outWOOD.XMO 8 6K 20-Feb-85 AMS rend)}ition of "Norwegian Wood"WOOFER.XMO 8 4K 21-Oct-86 Turns your Atari into a sound generatorWORD.BAS 8 7K 23-Mar-87 W)}ord Search puzzle solver - AnticWORDHU.BAS 8 3K 27-Jan-90 Basic Wordhunt grid programWRDADV.XMO 8 10K 14-Jan-85 WORD A)}DVENTURE educational gameWRDHID.XMO 8 7K 21-Oct-86 Rassilon's Word Search Puzzle MakerWRDHLP.XMO 8 3K 22-Mar-86 List )}of allophones for WORDMAKER (WRDMAK.XMO)WRDMAK.XMO 8 18K 28-Mar-86 Wordmaker program for CHEEP TALK speech synth.WRDSCH.XM)}O 8 10K 21-Oct-86 Rassilon's Word Search Puzzle MakerWRWOLF.BIN 8 8K 06-Oct-84 WEREWOLF - BASIC Adventure GameWSHBNE.B)}AS 8 3K 16-Nov-90 Pull the Wishbone game from Family ComputingWTISIT.BIN 8 12K 23-Jul-84 What Is It from July '84 ANAL)}OG magazineWUMPHU.OBJ 8 20K 20-Oct-85 Classic Computer Game of WUMPUSWUMPUS.BIN 8 12K 18-May-84 Game of WUMPUS - Upload)}ed with "A" ProtocolWYSLE.XMO 8 11K 21-Oct-86 A Rassilon "Shoot 'em up" gameXANADU.BIN 8 8K 20-Aug-84 AMS rendition o)}f "Xanadu"XDEL.ARC 8 10K 25-Aug-87 XCOPY-like utility deletes SpartaDOS 2.x/3.x fileXDM121.CNF 8 1K 22-Dec-87 A .CNF)} file for PAPERCLIP and the XDM121 printerXECONF.XMO 8 5K 10-Apr-86 A permanent repair for the XE console keysXEDIS.ASM )} 8 5K 14-Dec-86 Source code for XEDIS.XMOXEDIS.XMO 8 8K 14-Dec-86 Disassembler in Basic and Machine LanguageXEGS.ARC )} 8 12K 12-Dec-88 XEGS utilities from AnticXEGS.DOC 8 15K 12-Dec-88 Documentation on XEGS from AnticXEVGS.PIC 8 )}8K 07-Mar-88 Easy Scan pic of the XEGSXFINIT.BAS 8 2K 06-Jul-88 Format a disk on a US 1050 for XF551 high speedXIO41.DOC )} 8 2K 13-Dec-84 Documentation for XIO41.BINXMAS.BIN 8 6K 22-Dec-85 Basic Christmas cardXMM801.XMO 8 1K 09-Jun-8*}6 Paperclip config file for XMM801 printerXMODEM.DOC 8 27K 19-Oct-84 Info on CIS implemantation of Xmodem protocolXMSCAN.B*}AS 8 1K 18-Sep-88 A Basic Candle in the Window for ChristmasXMSTRE.BAS 8 3K 24-Nov-90 Christmas Tree by Family Comput*}ingXMSTRE.BIN 8 11K 26-Nov-84 ML Christmas videoXMSTRE.XMO 8 2K 03-Dec-85 Koala pic of a living Christmas treeXMSVID.A*}RC 8 8K 25-Sep-88 Christmas VideoXMSWRP.BAS 8 2K 31-Dec-90 Wrapping Paper printer by Joey LatimerXSPLOA.DOC 8 3K *}21-Jun-87 Documentation for XPSLOA.DOSXSPLOA.DOS 8 2K 19-Jun-87 High speed binary loader for SpartaDOS disksXWING.XMO 8*} 3K 29-Nov-84 Data file for Solid StatesYAHTZE.BIN 8 13K 22-Oct-86 Yahtzee Game - Uploaded with "A" ProtocolYATZ.BAS *} 8 13K 28-Dec-87 YAHTZEE - up to 10 players, five-game tournamentYELSUB.XMO 8 31K 19-Sep-86 Parrot digitized file of Yel*}low SubmarineYHTZEE.BAS 8 9K 26-Sep-87 YAHTZEE dice game in BasicYOGI.XMO 8 4K 30-Aug-85 Hey, hey, hey - it's Yogi *}Bear!YOGIBE.BIN 8 2K 12-Jan-85 Yogi Bear - KoalaYOSONG.ARC 8 11K 20-Mar-88 Pokey Player file of "Your Song"ZARATH.AMS * } 8 3K 13-Mar-87 AMS rendition of 2001:A Space OdysseyZIGGY.XMO 8 3K 08-Jan-85 Koala pic of ZiggyZP1020.XMO 8 6K 0* }4-May-85 ZPLOTTER from Analog, modified for 1020 plotterZPLOTR.XMO 8 6K 21-Apr-85 ZPLOTTER 3 dimensional equation graphin* }g - AnalogZUNISU.BIN 8 2K 29-Nov-85 Rambrandt image of an Indian sand paintingZZTOP.XMO 8 2K 21-Mar-85 Koala pic - Z* }Z TOPPsBBy-6-$AV%A$%@256.D67AQ,.S67@,.s6-?:} it will boot as though the disk drive was not turned on. If you have double sided drives and have 6?} configured the drive as double sided, Mach will use both sides (1427 free sectors or 360K). J.6@} DUPLICATE DISK. Similar to DOS II with one major exception: after you have told Mach the source and dest6A}ination drives, it will ask you if it is a "File" or "Sector" copy. Atari DOS II's "J" function is 6B}the same as the "File" option (only those Page 2 6C} MACHDOS ver 3.7 sectors used by files are copied. The Sector option performs a sector by 6D}sector copy of your disk, regardless of the contents. K. BINARY SAVE. Same as DOS II. L. 6E}BINARY LOAD. Same as DOS II. M. RUN AT ADDRESS. Same as DOS II. N. CREATE MEM SAV FILE. Same as 6F} DOS II. O. DUPLICATE FILE(s). The Mach DUP FILE is really a full one drive copy function. If6G} you specify wild cards for more than one file, Mach will read as many files into memory as it can, then ask you6H} to switch disks, repeating the process as times as necessary to complete the request. The files wil6I}l be processed in alphabetical order. P. SET DENSITY. Asks you for the drive number to 6J}reverse the density (between single and double). The menu display will be updated to reflect the ne6K}w density. Q. CONVERT FILE(s). Similar to the "O" function with one important difference: th6L}e output will be at the opposite density as the input. In other words, a single drive density converter! 6M} R. SET DEFAULT DRIVE. Changes the drive which is to be assigned as D1:. In other words, if you say th6N}e default drive is 2, then all requests for D1: will be routed to drive 2, and all requests for D2: will 6O}be routed to drive 1. Sounds a little confusing, but it won't be after you try it a couple of times. V6P}. SET WRITE VERIFY. Reverses the current Write Verify status. X. FIX SYS. Fix the non-reside6Q}nt portion of Mach in memory. Transfers to the cartridge or XL BASIC will have approximately 7k less ram, 6R} but transfers between DOS and the cartridge will take less than a half second. 6S} Page 3 MACHDOS Utilities - ver 3.7 CONFIGUR. This pr6T}ogram is used to set Mach configuration options. Options: 6U} A-[set] Active Drives [On/Off] Define the drives you have active. After pressing "A" hit the digit 6V} key corresponding to the drive you want to toggle. Remember, if you use RamDisk, you must make drive 6W} 4 active. B-[set] File Buffers Sets the number of 256 byte file buffers. This is the 6X} maximum number of files you can have open at any one time (try 3 or 4). C-[set] Dire6Y}ctory Sort Cycles through directory sort options (none, Name-Ext, Ext-Name) D-[s6Z}et] System Lock Toggles the resident console processor switch. Eliminates need to access disk when re6[}turning to Mach from Basic, or other cartridge. Uses an additional 7k of memory though. E-[set6\}] Ram Disk Type Pressing this key cycles thru all supported Memory Expansion systems. List cu6]}rrently supports none, 130XE, AXLON, MOSAIC, INTEC boards as well as the 800+ and MACE modifications.6^} F-[set] Ram Disk Size Pressing this key cycles thru the supported Ram Disk Sizes in6_} 16k multiples. Note: this is the amount of memory available for the RamDisk. For example, the 130XE has 64k6`}; the 288k 800+ has 240k for the ram disk (Mach gives you 950 DD sectors!). G-Act6a}ivate [deactivate] RamDisk Toggles RamDisk switch. Note: this does not affect the running system, 6b} but will become effective the next time the system is booted. H-Configure Drives W6c}ill request drive number to configure. After entering it, will display current setting for number of sides a6d}nd density. Hitting the number next to sides or density will toggle that setting. Hitting RETURN wil6e}l return to Drive question. Hitting escape or return will go to main menu level. START-Apply C6f}hanges to Mach Mach is modified to conform to the Parameters shown in the menu, and return to the main 6g}Mach menu. Page 4 MACHDOS Utilities - ve6h}r 3.7 The changes are only applied to the running version. You must use Mach menu option "H" t6i}o make the changes permanent. SELECT-Quit, don't change Return to the main Mach m6j}enu without making any changes to the system. NOTE: Any drive configuration changes w6k}ill remain in effect on the running system. BACKUP. This program is used6l} to copy disk images into Mach Files. Several disks images can be stored on a single DS/DD diskette. Reall6m}y saves on disk storage since most disks don't use the whole disk space. Opti6n}ons A-Source Drive Define the drive that is to be copied. B-First Sector 6o} The starting sector to be copied. Default is 1. C-Last Sector The last sector to be c6p}opied. Default is 720 for single side, and 1990 for double sided diskettes. D-Read Source (sta6q}rt backup) Just what it says. Starts running the copy. Will not start if target file name and dri6r}ve are not set. E-[set] Copy Type Toggles between file and sector copy types (see Mach Main 6s} menu "J" function for definition of types). File copies are normally faster and produce smaller 6t}backup image files. F-Target Drive Set drive number to write backup image files onto6u}. G-Target File Set Backup image file name. Name only, "BKU" is standard extension6v}. H-Close Target [file] Dump remaining buffer and close image file. I-List F6w}iles (directory) List all "BKU" files on the target drive. J-Configure Drive Same as6x} defined in CONFIGUR program. Z-Quit [and return] to Mach. Says it all! 6y} Page 5 MACHDOS Utilities - ver 3.7 RESTORE. Opp6z}osite of BACKUP. Writes disk image files back to a disk. Options: 6{} A-Source Drive Drive that contains the backup image file. B-Source File Name6|} of backup image file (without extension). C-Configure Drive Same as CONFIGUR program. 6}} D-List Files (directory) List all backup image files on source drive. E-Target Drive6~} Drive with diskette to be reloaded I-Format Target Toggles format switch. If on, 6}will format diskette before reloading it. R-Restore data Start reloading disk. 6} If the target drive is reconfigurable (eg Percom, INDUS, RANA, etc) it will be set appropri6}ately for the backup image. Z-Quit [and return] to Dos CO6}MPARE. Sector by sector comparison of two disks (if you don't really believe that BACKUP/RESTORE work then try this6} one to verify, otherwise tells you any differences between disks). The program requires at least two disk6} drives to function. Options: A-[set] Drive A Defines 6}one of the drives to be used in the comparison. B-[set] Drive B Defines the other drive to be u6}sed in the comparison. C-Start Compare Run the comparison. Compares one track at a ti6}me (displays current track number) F-First Sector P6}age 6 MACHDOS Utilities - ver 3.7 Starting sector for comparison Default is 1 6} L-Last Sector Ending sector for comparison. Default is 720 or 1990 depending on SS o6}r DS sectors. J-Configure Drive Same as the CONFIGUR program. Z-Quit [and re6}turn] to Mach ATASPRT. A very fast print program to print real ATASCII charact6}ers on most printers (at least the ones that look like Epsons for graphics printing). It also has an intelligent li6}ne wrap routine, understands BASIC line numbers, and Remarks, generates line numbers for ACTION, prints titl6}es, page numbers. Very good for programmer documentation. The program initially asks for the current da6}te to be printed on the title line. It also asks for the file name and title on entry to the program. 6} Options: A-[set] File Name Enter full file specification with dr6}ive, name, extension. File must be list form of BASIC or MAC/115. B-[turn] Generate Line #s [o6}ff/on] Set on if file does not have line numbers (eg ACTION or AMAC files). Program will generate 6}line numbers for each line. Otherwise, it will use the line numbers in the file right aligned. 6} C-Set Title Enter a title up to 90 characters long. Q-Quit [and return] to Mach 6} START-start printing Print using the current parameter setting. 6} Page 7 MACHDOS Differences 6} Mach Differences. 1. MENU WINDOW The first thing you will notice is the new menu. The 6} Mach "pull down" menu window is unique among Atari operating systems. You can control the menu6} and display totally. Pressing the SELECT function key flips the menu up, 6} revealing the display contents which are behind it. The next press of SELECT pulls the menu window back dow6}n. There are several new bits of data on the menu. The top line shows the version (6}currently 3.7) and the cpu and ramdisk configuration that was set the last time CONFIGUR was run. Cu6}rrently, Mach supports 130XE, 800XL, and 800 with MOSAIC, INTEC, AXLON, MACE, and 800+ memory expansion systems. 6} The bottom line of the menu shows the status of each active drive. The dis6}play shows the current configuration of each drive (single or double sided, single or dou6}ble density, or not on). Drives can be activated or deactivated by the CONFIGUR utility. 6} 2. ONE KEYPRESS COMMANDS. The next thing you notice is that selecting a menu optio6}n does not require hitting the return key. You can now type non-stop when requesting menu functions. 6} 3. INTELLIGENT SYSTEM DISK HANDLER. Whenever Mach wants the system disk (to load the 6} non-resident part, or to load the Save Mach overlay), it will instruct you to insert it into drive 1 6}(real D1:). It will reset the density to the proper setting for the system disk. The system dis6}k is defined as the one you booted from. 4. SAVE SYSTEM TO ANY DISK. 6}Unlike some other Atari operating systems, you can generate Mach on ANY diskette which is in DOS II or Ma6}ch format. It does NOT have to be formatted by Mach, nor do you have to save space for Mach at forma6}t time. 6. INTELLIGENT CONSOLE PROCESSOR (DUP) HANDLING Even if you don't fix Mac6}h (menu option X), it will check if the console processor is intact. If it is, guess what, no 6} disk access. By the way, even if FIX is ON, Mach will reload the console processor if the copy in ram 6} is damaged. Page 8 MACHDOS Differ6}ences 7. INTELLIGENT SUPPORT OF DOUBLE DENSITY DRIVES If you have double density drives that 6}will automatically switch density to match your diskette, more good news. Mach will automaticall6}y "sense" the density of the disk when it opens a file. If the drive automatically senses the dens6}ity of the disk, the process is almost instant. If not, (eg Percom doesn't sense drives 2 thru 9) then 6} Mach will try to change density when it detects a read error during open file processing. 6} 8. INTELLIGENT SUPPORT OF DOUBLE SIDED DRIVES If you have double sided drives Mach will autom6}atically configure the drive to DS when you open a file from a two sided diskette. Conversely, it w6}ill configure to single sided when a one sided disk is installed. The only restriction is t6}hat the two sided must have been formatted by Mach. 9. FEWER SYSTEM FILES w6}ith DIFFERENT NAMES. The operating system file names are totally different. There are no DOS.SYS6} or DUP.SYS files. The only file is MACH.SYS. Also, MEM.SAV has been changed to MEMSAV.SYS. Even t6}hough there is only one file, Mach's console processor (equivalent to DUP.SYS) is non-resident and 6} will be reloaded when necessary. AUTORUN.SYS files are processed just like DOS 2.0. 6} 10. MACH.SYS is PROTECTED. You cannot open D:Mach.SYS from your program. You must us6}e the console processor to generate Mach files. FFFFFFFFFFFFFFFFFFFFFFFFFF6}FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4 MULTI-BOOT XL disk file system is in the public domain and was imported from England. MULTI BOOT will load many files that s:}tandard DOS or boot-menus won't. The file format isn't compatible with DOS, but it is good enough not to be a problem. The M:}ULTIBOOT MENU will load files as well as saving any _Single_Stage_ boot disk as a file. It will make any MULTIBOOT file into :}a single stage boot disk as well. I've included the following utilities on this disk as they are necessary for convenient op:}eration of system: MB POLYCOPY: copies multiple files between two MULTIBOOT disks. BINARY BUSTER: converts standard DOS:} files to MULTIBOOT format. ML TO MB: converts programs from the ROB C. menu format to MULTIBOOT format (more :}on ROB C. later) MB/ML TO DOS: converts MULTIBOOT and ROB C. menu programs to regular dos format. MB INDEX FIX: rep:}airs lost MULTIBOOT directories. MB FILE DELETE: deletes any MULTIBOOT file (the menu will only delete the las:}t one put on disk) MB/ML ANALYZE: reads out where the files are on disk and their load and run addresses. MANY MENU:}S TO DOS: there are 5 or 6 unusual menu systems in England and this converts files from a lot of them to regul:}ar DOS 2.0. What's a ROB C. MENU??? Similar to the MULTIBOOT but prettier and with the capability of putting 1 of 80 differ:}ent songs on the menu. Get the SCRUNCHED version of the ROB C. disk also available where you got this documentation and the S:}CRUNCHED MULTIBOOT disk. Another difference is that the ROB C. doesn't put the menu utilities on each disk, only the loade:}r. 8o