LBSOS KRNLI/O ERRORFILE 'SOS.KERNEL' NOT FOUNDINVALID KERNEL FILExةw,@  4  J  ȱ⩤i8#) ) 8Le /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// SIG, Washington Apple Pi 12022 Parklawn Drive Rockville, MD. 20852 (301)-984-0300DISKNAME.DAT#k5k5FLASHNAME.DATGk6')PRINT.ALL KR -READ.ME.FIRST kO(ARTICLESkk*SOS.DRIVER &J'(*SOS.INTERP 4keR! *SOS.KERNEL [,VR!a%SEG.T jKŸ/ III.BSB.03IC.01u' ARTICLE1R3<ARTICLE27R4<*HELLO.TEXTkOHELLO k6/ *MENU.MAKER K;*QUICK.NOTEm#im#iЛ#Lȱ  6L憦  Lsmm l y` @8(Je稽 ʈ0 WELCOME! WAP /// SIG PUBLIC DOMAIN LIBRARY DISK Category/Number : Business Basic/3BSB-03 Disk Format: Self-booting Business Basic (SIDE 1 ONLY) This is the first of six/ WAP /// SIG MENU.MAKER PROGRAM (v. 6.1) =".D1"210: Coldstart (320: Warmstart &*X=11000: TEXT SLOW-DOWN LOOP ,X.1 CHANGE DISK SUBROUTINE23œ202:2200<RFa$=" YOU MAY SELECT YOUR DISK BY V,2))=0"12";џ,6);:ٟ;$П,2))=>12" PM-":" AM-" 1830WW=1530 =26:=21 1600 &:WW=1:0 :SEG=1;".D1/S EG.F" SEG=1".D1/SEG.G"diskname$=3802  CATCH PASCAL TEXT FILES "JUNE":1750M$="JULY":1750M$="AUGUST":1750M$="SEPTEMBER":1750M$="OCTOBER":1750M$="NOVEMBER":1750M$="DECEMBER":1750826);"-";M$;" ";Ѡ,2));", ";"19";Р,2);" ";/П,2))=>13П,2))-12;џ,6);:1780$~240:=24:=0:"@ ..... "DATE.TIME.LINE" ....JM=Ҡ,4,2))BTM1630,1640,1650,1660,1670,1680,1690,1700,1710,1720,1730,1740^M$="JANUARY":1750hM$="FEBRUARY":1750rM$="MARCH":1750|M$="APRIL":1750M$="MAY":1750M$=B$(I),"CAT 0")1140*B$(I),"FONT 0")18504B$(I),"FOTO 0")1930>B$(I),"PASTXT 0")2070H540R\A$="RUNNING "+B$(I),16,B)f"79C";A$;:=0pB$(I),16,B) z::SEG=1".D1/SEG.T"t=+B$(I),16,B) yCT=CT+1I=1:I=2I>2=-1:I=I-2:IBOTM<30THPOS=44I=IBOTM/2)*2:=+IBOTM/2)-1:0=+IBOTM/2-.5):I=IBOTM:I/2=I/2)I=I-1 œ2120B=B$(I),16)," ")-1 B$(I),"BASIC 0")850B$(I),"TEXT 0")890 81+LCA):::: RebootN=THPOS:B$(I);XA<8A>11540bA-7640,660,690,720l:=THPOS:B$(I);v:520: 500THPOS=4:I/2=I/2)I=I-1I=IBOTM THPOS=44:I/2<>I/2)I=I+1I13000Zha$="{,|,~,}; selects; to new disk; J/2)=4:=+1:ۙ=44B$(J);:J=J+1I:1,180,22:2,280,21:2,2380,23:8A$(1000),B$(1000),C%(511),C$(20),name$(20):=10:=0UCA=128:LCA=UCA+32CT=15 IF PREFIX$= PREFIX$+MID$(B$(I),1 OLUME NAME (/DISKNAME) OR DEVICE NAME (.Dx)"P12);::"80C";a$;:Zb$="CHANGING DISKS"$d=23:=0::"80C";b$;::12).n=12:=20:"MAKE A NEW MENU FOR DISK: ";N$xN$)<2110=N$ :210 I=1L(A$(I),A$))200B$( 202 :F*=08:"78C";"SORRY BUT MENU.MAKER CAN'T READ PASCAL TEXT FILES."04=10:"78C";"ANY KEY RETURNS TO THE MENU.">G$:::320H: Error Routine 202:U=11:"79C";"BAD PATH ERROR (NO DISK IN DISK DRIVE OR DESIRED FILE NOT FOUND.)"X=11000:X:::210Z a$="{,|,~,}; selects; back 1 level; ?@ABCDEFGHIJKLMNOPQRSTUVWXYh-taking or cliff-hanging. However, taking the Apple III out for a spin does excite a lot of people, and I hope that includes you. If you haven't read last month's column, I recommend you get a copy. This series is progressive in that each article buildsat the conclusion of the program. Failure to properly close files can leave some data still in memory (since files aren't automatically closed at the end of the program). This can have some interesting consequences if the file in question is a disk file and you switch to another diskette which does not have that file created on it. Now is the time to form the habit of closing all files at the end of a program. Running this program can be instructive. Obviously, if you reply ".SILENTYPE" to the promptclosely at the directories of various files, you will note that all of them have one more block than the EOF column would indicate, except for the one block files, which have no need of an index block. In this case, the EOF (End Of File) is after 1863 byts an extra block as an "index" block, to store information about where the rest of the blocks in the file are physically located. This insures that a large file can be created, even if the disk is fragmented into small areas of unused space. If you look nd was used to write to it. Notice also that the Blocks Used column shows four. That disagrees with what we had predicted, since the screen data should have been able to fit into 4 blocks (2048 bytes). The reason for the extra block is that SOS allocate After running the program, the CATALOG listing of the file should look something like this: TEXT 00005 MYFILE.SCREEN 00/00/00 00:00 00/00/00 00:00 1863 Notice that BASIC identified the file as a TEXT file automatically, because the PRINT# comma. Thats when the previous comment about being sure to close files comes in handy. The CLOSE command in line 210 forces the current buffer to be written to disk, even if its not full, and the directory entry is updated to reflect the new file information.es later the same process is repeated until all the screen is read by the program and written into the last buffer. Some arithmetic would convince you that BASIC is in the middle of its fourth buffer when the program finishes reading line 23 of the screen6 bytes of line 7 to be exact) the 512 byte buffer is full and must be written to disk. That's the first spin of the disk which writes block 1 of the file. Next, the block number is incremented, and more writing starts from line 7 of the screen. 512 byts happening is this: line 170 prints one character at a time into the buffer. After 80 characters, line 190 prints a carriage return into the buffer and then starts the next line. After a little over 6 lines of the screen (480 bytes plus 6 RETURNs plus 2ADCRT module, and execution begins. Notice that although the printer in our previous example started almost immediately, there is a noticeable pause before the disk spins into action, and it appears to spin only four times before the program stops. What'tter what record size you specify. Later on in this article we'll look at techniques which use that piece of information to insure maximum efficiency and performance in disk-based application programs. Once the file is opened, BASIC then INVOKES the REg initial space for the file, and setting up a "buffer" area in memory for communication of data to and from the file. Since Apple III divides the disk up into "Blocks" of 512 characters, this internal buffer is 512 bytes. This buffer size if fixed no marules). The disk will whir as before. This time it has two jobs to do. First, it must OPEN the disk file using the name you gave it (let's assume you typed MYFILE.SCREEN). This means creating an entry in the directory of the current disk volume, findinracter and then copying it back on top of itself! The Apple III is working its little heart out and the result is as exciting as watching bread mold. Now try replying with a disk file name (you can just make up a name, as long as it follows the filename , it will work like the first example. Now try replying ".CONSOLE". After the usual initial whirring of the disk to load the Invokable Module, the program appears to go to sleep for 40 seconds or so. What's happening is that the program is reading a chaes. That works out to 23 lines of 80 characters (1840 bytes) plus 23 carriage returns for a total of 1863 bytes. "Close enough for folk music", as they used to say at my high school! One last subject before we move on to further explore files. The Silentype gave us a permanent record of what was on the screen, but since this time we wrote the results to a disk file, we need a way to dump the contents of MYFILE.SCREEN to the printer. The following program easily accomplishes the task and serves as a genize. The notation of "TEXT" is extra baggage, since the PRINT statements in the program will automatically define it as a text file, but it is good practice to be specific. I have also added a new wrinkle in lines 115, 170, 190 and 195. Instead of printRM readc(@value%) 170 cum$=cum$+CHR$(value%) 180 NEXT horizontal 190 PRINT#1,vertical;cum$ 195 cum$="" 200 NEXT vertical 210 CLOSE 300 VPOS=23:HPOS=1 310 END Note that we have added line 70 to create the filename with the proper record sS=1 60 INPUT"Name of file to dump screen to: ";filename$ 70 CREATE filename$,TEXT,81 100 OPEN#1,filename$ 110 INVOKE"readcrt.inv" 115 cum$="" 120 FOR vertical=1 to 23 130 VPOS=vertical 140 FOR horizontal = 1 to 80 150 HPOS=Horizontal 160 PERFO a random access file with record size 81 bytes. Since each record will correspond with one line of the screen, we have an easy way to address the data in question. Compare the examples below with the previous sequential access examples: 50 VPOS=23:HPOto print the twenty first line of the screen in the previous example, it would be necessary to input the first twenty lines, discarding the data, and then finally read and print the line we wanted. A much more efficient way would be to create the file as we did with the contents of the screen). The real power of creating files of various record sizes is to be able to randomly read data on a particular item in the file without having to deal with the other data in the file. For example, if we had wanted nt which assigns a default of 512 bytes, we could have used the CREATE statement which allows up to 32767 byte records to be used. Of course, the record size of a particular file is of no consequence if we are merely going to read each string in order (aslater touch on "Data" files, a quasi-unique file type on the Apple III. We have already discussed the fact that the disk is organized into 512 byte blocks. In fact, BASIC text file records can be of any reasonable size. Instead of using the OPEN statemehe type of disk files which are referred to as "Text" files. These are files which contain ASCII characters which are representative of what would be printed out if we wrote data to the screen instead of disk. For now we'll stick with this file type and ls, which by now would have gotten to the mysteries of FOR-NEXT loops, I have remained true to the promise of the first article and assumed that you have some skill in BASIC. Bear with me as things get more interesting... So far we have considered only tf the screen so that the prompt will not cause the top line to scroll out of view. More on Files The subtle and nefarious purpose of this lesson, if you haven't realized by now, is to provide more insight into Business BASIC disk files. Unlike tutoriaork fine! Note also that we have checked in line 35 to see if the device being written to is .CONSOLE. If so, line 40 clears the screen to reproduce exactly what was there when the original program was run. Line 65 repositions the cursor to the bottom ok$=".Co" THEN console=1 40 IF console then HOME 45 ON EOF#1 GOTO 65 50 INPUT#1, a$ 55 PRINT#2, a$ 60 GOTO 50 65 IF console THEN HPOS=1:VPOS=23 70 CLOSE 75 END There. As long as you don't try to read from the printer and print to the keyboard, it should weral file to file transfer program: 5 INPUT "Name of file to dump: ";inputfile$ 10 OPEN #1,Inputfile$ 15 console=0 20 INPUT "FIle to dump to: ";outputfile$ 25 OPEN #2, outputfile$ 30 check$=MID$(outputfile$,1,3) 35 IF check$=".co" OR check$=".CO" OR checing each character as it is read, the variable "cum$" is used to accumulate characters as they are read from the screen. Line 190 prints the entire line of the screen using the vertical position as the record number. The result when running this program seems the same as when running the sequential version, except for one thing. If you CATALOG the resulting filename, it should look something like this (assuming a name of SCR.DUMP.RND) TEXT 00005 SCR.DUMP.RND 00/00/00 00:00 00/00/00 00:00 1944 Everint we have been using "record number" files (called "random access" by most people) with record numbers which span a rather narrow range. SOS permits random files to have record numbers in the range of 0 to 32767. However, SOS does not demand that a fileill take place. A Final Challenge I just reviewed the last five or six paragraphs and discovered that my usual humorous style has been replaced by long detailed discourses of unrelieved tedium. There is, unfortunately, no let up in sight. To this po in this same situation. The moral is simple: if possible, make your record sizes such that they evenly divide into 512 or are a multiple of 512. That may waste a little space, but may be more than made up for in the ability to predict when disk access ws left in that first block for record number 6. The remaining 55 bytes are in block 2. Thus a read to record 6 actually triggers two disk reads, one for the complete block 1 and one for block 2. A little more arithmetic will show which other records areut more is going on here than meets the eye. Simple calculation will prove that record 6 actually occupies space in both block 1 and block 2 of the file. The first six records, 0 through 5 occupy 6*81 or 486 bytes of the first block, leaving only 26 bytee current buffer. One interesting postscript before we proceed: If you ask for record 6 you will typically trigger a disk read as we have said. If you immediately request record 5, another disk read will be performed. This is what you might expect, b was no need to re-read the disk since the data was already in memory. Careful planning of your record sizes and reading sequences can have the effect of substantially increasing the performance of your program if as many reads as possible occur within thst record you read will probably cause a disk access, but the others should occur virtually instantaneously without causing disk activity. This is because SOS is still buffering files in 512 byte blocks, and all those records fall within one block. Thereprogram will produce interesting results. Try reading record 1, 6, 12 and 18. In each case you will cause a disk access (the whirring sound is a clue) to read the particular record. Now try reading record 6,7,8,9 and 10 in any order you choose. The firrevious dump program except that line 47 asks for the specific record to dump, line 48 gives us a way out by checking for 0 and line 50 has been modified to read directly to the record number which was previously entered. Some experimentation with this o" THEN console=1 40 IF console then HOME 45 ON EOF#1 GOTO 65 47 INPUT"record number to dump: ";rec 48 IF rec=0 THEN 65 50 INPUT#1,rec;a$ 55 PRINT#2,rec;a$ 60 GOTO 47 65 IF console THEN HPOS=1:VPOS=23 70 CLOSE 75 END This program is very similar to the p modified read program below: 5 INPUT "Name of file to dump: ";inputfile$ 10 OPEN #1,Inputfile$ 15 console=0 20 INPUT "FIle to dump to: ";outputfile$ 25 OPEN #2, outputfile$ 30 check$=MID$(outputfile$,1,3) 35 IF check$=".co" OR check$=".CO" OR check$=".C bytes each for a total of 1944 bytes. Now that we have associated a record number with every line on the original screen, we can locate a given line by just giving its number, instead of having to read through all the other lines to find it. Witness theything is the same except the length! It turns out that when a file is created that the first record is record 0, not record 1. This is consistant with the first element of an array being element 0. Therefore BASIC has reserved 24 (not 23) records of 81 actually have all the records present on disk. Records are allocated as written, with only a little space taken up to keep track of where everything is. To illustrate the power this gives, consider the following problem: A distribution company wants to keep track of their part numbers and descriptions. The part numbers are four digit numbers. Listed below is a simple program to create the part number file. Between now and next time, you could try writing a program to retrieve part number information @L&I/O ERRORINTERPRETER FILE NOT FOUNDINVALID INTERPRETER FILEINCOMPATIBLE INTERPRETERDRIVER FILE NOT FOUNDINVALID DRIVER FILEDRIVER FILE TOO LARGEROM ERROR: PLEASE NOTIFY YOUR DEALERTOO MANY DEVICESTOO MANY BLOCK DEVICESEMPTY DRIVER FILE '(i%%%h}%%`8 ȥ!8 !)"qȥ#q#e$ȱe%L)%`@(((( % %`((((࠰$(ɠH(@(h((((@(`%z %% %~(A{(L%`.8(.Je.&ʈ.s(1 6$P8"ȥ#L1$8"ȥ#(ϸ`"##L]$"qȥ#q0,$p)@"q"ȩq"8`*$% $% 8% $L$* $8%8 $`8 &'$% 8&$'% 8$%%`H   q ȥ q Hi hi 1  % H H ȱ h h % $$ 0 e e H i hi âz %` 1 8`    # &ȱ ' # i" i# # #`8 ȥ H h `8 6$P`8"#%#%"$w"$#%"`荚ٍ荺 荚`荺``` D ( )  * ) 4* * h* ))` L% q ȥ q Hi hi  i" i# #% $ȱ %ȱ &ȱ '`<!((g %(r(z(q( %y(i(0z %"#$ %&' $"#$%&'   `%$%ɠ%* " ~#C #p $ %*0"#)#)i $"% * %*  L! {" j% %ƌ(X#"$% "$ #%%& '   ` {" & ɠ% %)  !( (" %(r(z(q( %y(a(0: %   "$%&e$'e% R % <Z\]^_`abcdefghijklmnopqrstuvwxyz{|}~%e,ȥ,*,- y,,,-,,,ȱ,,- yL+,ȑ,` 2"p-,-L(Ġ %>,i-i8, ȱ,%,W,pp ڠ %p`l  " ) i SOS KRNLb.D1/SOS.INTERPŠ̠Š.D1/SOS.DRIVERР頞 0 ) (lH'&3&'&#e'#%e'%'&"$"$#%'#%h`$eisting parts file: ";a$ 410 IF a$="" THEN 5 420 OPEN #1,a$ 430 HOME 500 PRINT:INPUT"Part number to add: ";a$ 510 IF a$="" THEN 5 520 a=VAL(a$) 530 IF a<1 OR a>32767 OR INT9a)<>a THEN 500 535 rec=a 540 rec$=a$+"\" 545 PRINT:INPUT"Description: ";a$election: ";a$ 60 IF a$="" THEN 1000 70 a=VAL(a$) 80 ON a GOTO 100,400 90 GOTO 5 100 PRINT:INPUT"name of new parts file: ";a$ 110 IF a$="" THEN 5 120 CREATE a$,TEXT,64 130 PRINT"Parts file ";a$;"created." 140 GOTO 5 400 PRINT:INPUT"Name of exrandomly, and make changes as required. Without further ado... 5 HOME 10 PRINT"Parts file Create and Add program" 20 PRINT 30 PRINT"Type 1 to Create a parts file":PRINT 40 PRINT"Type 2 to add to an existing parts file." 50 PRINT:INPUT"Your sJ ʈc(()o/ e/''ʈ((''()(1i / e/''ʈ((''((''((''' ('`ŠDAY, DD-MON-YY HH:MMSUNMONTUEWEDTHUFRISATJANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECԠŠРǠĠӠ!((ͽϠРРSOS NTRPSOS DRVR(.D1(YYYYMMDDWHHMMSSMMM̱忠ΠͽŠ堠Р͠Ю̠Ɔx߭ nʰ0 ̰+泱Ƴ m° x̰ ̐8` m° x̰8 ۢ8 ˰y ` ¥ nʰ泱Ƴ T̰#泪 Ѳ *Ƴ ` L:Ϡ`泑Ƴ` LaĥH8`JȘ I8`  S`ۈۥۥ۩Íۭۍۭۍ հL¢H8`Jj Ȅ ۍۆeۅiۅ Lɰ ʰWۅۄ ¦J> ɩE` eĐL Ȑ 15WL QL5WW{5 ې'`,55 ې'` ݠ B1 ȩȑ Lɦ8`5  @ R㥶i ` İG8`F`X8``éۅĩ >` T֩xxMH]@ Kۅ5H ɐE$ eİ Ȱ h`h`8`W h8`hR`hLҿ i x +ۅ5ۅ6 ǰ `E8<W`­ `0XLۅ5` ռ``ߤeI`IiţO`Ȯʆ/ )󘑡`()0zq 滅ѺY Ueۅ5Ѻ Ѻ  Qܐ'`i ҩ *C8/y.i/ ȑ  © $ E7<3W`ȽLֽȄ @8`R ) [)_[AͰ")[)_[A:0/.ЩȑΘ8e * ȩ`Loü 7)?۽۩ W٠Յ<ōōř ռV7 uM78 V榠=ü#)@5 ɐ /ݐE ) .) @L `lqhٯ޿=ϓTXIֲ̛̐~ؠIJK,-NOPQ0vt `` LLɠ8`ΛLL渠`0 `8`HiHiH ihhȱh`86)IH)heuQɸ` ` W` ] %饚0` W` ߰4`)|E8LLLRLLLLL*LLLLLhh`LLL`SOS 1.3 01-NOV-82(C) 1980, 1982 BY APPLE COMPUTER INC. ) `G`î** }*`o^`on 8 JJAj@` *?($`ΠņɠŠ堠РѠ͠஠әƆH v?c,,,,h߈ߢ~))`3PLLP*%(i&`Ѕ񩏍E H pph`Xۅ ۩ۍۅ Lɰ ʰۅۄÍÍۙ'Ù ۍ*ۨ  Ѝ۹ۙ8v- ðJ ¥ ð, ðLO ʰƥLT`'  mې浰``8 8 Wٍۭۅ5ۅƭۅ X̰ ìۈۑ T̰ۅƭۅ X̰ۙ%ۍ" T`K8`)` İ ۱ۈ` ưW/ۈęۈЍ۩@` 8 MƐ  5 Q8`LŅ ͱ ͰU..++,,IJ/ ӥ-.?Цե,J+jѲ4Ƴǥ4聠 H hH kh8`8-ȥ.L 8*Ʊ )8 0*-`.G.ʱ*+,EP'.E.LұE0+,,ӄ*p-e  )LBѠٳ )8`i (` )N8`*eȱ+eȱ,i۠Ѻ*ȱ+L - ť.Lkҥ. ՅL ͐Ld ~ pа.J/)@߅4N8`) ))УJ8` ۑȭۑǠۑۑȭۑ($S8`O8` "` / 򑺠+* ͐H h8` ΰi `()  *ǵ յý5Ņ4gȩυɩč5 iψ }.8` iϙLIѠ ˢ L΢ ΰ LϠ ˢ ΰ1` Đ@ АP8`B8`ۑJJJJ -ѥ +jѲ84ƳJJ 2ΐ3泑ƳLTΩ潑ƽ`ƱƳ ΰ( {Π۵*+)e`8`)` J J + ΰ" 0 ΰ 🱼ѼL8`ǩ Ϡ` ϰ ƑȥǑ` Ѻе*`)ȥ+8ۍې  ,ѺLTΠ"LΠ5 խ ɐ /ݐE`C8`)@ ϰa)ۥ,8ېu+J,\ ȱLJΠ) ϰ'#,J(] { ΰ ƑȥǑ.8` { ΰ,JѲ ƳL΅ƱƳ ΰҥ,J0`#$"0#`!qȱi 5H5Ƶ ǽ jh5`L2̩ƍv̥Ǎw̩ÎL%ϠƄǥLj̩۬L~̠HHh` ̐`*ѺG0?M`)J"u-- M8`۬` # ː`  = O̰)= I`JJJJѶQi Lˢ  0 ̐ `"L˦ `H8`8$$"$= O̰=`$0`#$"0`$` H hQ)fʅ F jF jF jF &!  eװ*  ̰F湥 ƹ`Z8`@  ʰ泭ۑƳ ʐ` ʐ` ˰ ƹ Wː`ۘ . . .۪8*JۦȱѶ"` ɰ Ȑ`E`Ɔ X̐8`>>5Ѷ Qܩ<`>`\ʊJJJJ ۍ۩  ˰Fȱ X̰6 0 Lɠ 0ۑۑ8ȱ`H8` ɹ $  8JJJJ8 ` ۠ǽi `< Ȱ+<#5 ې'` ɐ /ݐE`W8`R` 5&i ` Ȱ 0i `<8> ȐT eİF cȰB)Hh5 ˭)*ȑƑȥǑ'(ȑ`L)ɭ)Ѷ*e`M) `ۅH)Ѱ%}ʈh Qܐ'``hi ` p6۽ʹZ5 HȐ/i i `гW8`0( ɐ Ȱ ʮ6E`5 խ ɐ ޢ ȰLȍ۱Ǎ X̰% & !J8` *LĢ `8 iۥƍۥǍ`ۅ %  6 )Ѱ Ѱ` 𝭧e ǐ bǰL*ۈ5ȱ۠ƍȱǍ X̐ H h1  /ݐE`ۈۅ ۅ 8ƭ X̐`LLŠǠ  ݭv̅w̅ ðzv̍ŭw̍ŭƭ ­ōō T̰]ŅƮņ X̠8iȱiiȱi ṰŅǭŅ XLōۭ۩ۅ ȱ8D`F`8eYƍťǍŠ)͠(` L Ͱ2 ~ P kҐ#L8 T 2ΠHHȑhhȑ`Ld )N8` xհ*eȱ+eȱ,i۠Ѻ۹ۑ񥤅- ť.Lcԥ.La Ͱ$)rJ Lɰ )# Ԑ)Hۑۑh8`P) հ Wհҥ,J+j泭۪ƳۑȊ ) ~ fPL ͊.>.ʱ+,EP!.E.Lw+,,ӄ*- P*e (` հB հ5 Wհ0,J۪泭ۑƳ s߭lߩ * xLx @h hhh ,0)ߨ)Ah&'0HHHH xhhhh ,0)ߍLLhhh@)&&&(&('+*H)H(h)H@x )HH30.0\-JM-, J3,e$,d,,  * *l߅߅H ߅ \xi ߅LHHH *ح)0 D) HHHH,, ߩ0  xLߍ󠠩à٠΀ƉŠŠӠҠȠHHH *ح)0 D) HHHH,, ߘ)@ *)X  xI)}h)L, L )ڠ) w߭)Ů􅮈 ߠ'x)) J,QJ,SJ,U,P,W(`)(()  8)j`J j߅`0X ٠͠堘ӠȠŠ=`Insert volume: Τ in device: 蠠ɠ then press the ALPHA LOCK key twicex)_ @,P,R,T,V) )) `)8( ߠ',@ ߠ0  '葺 ݰL`5`i 祻(8`2ޝ51©ޅéąŅƍ >ϩ 1ޠ== f ɰ`ޭ`5=(5= i Х(`=H hDC5 L3ܵ ɐ /ݐ 8`5 ˥JJJJ8 H h ` ܠ825H h5 ɐ /ݐ 8`Hh ܥ5 `ɥܥܥܥܥ5`܅܅܅܅܅5`( ݰ)Ѻ ݰL ݰ泱Ƴ ʰȭۮ ʰͩΪΩۦ eװqȭqLJ  ˰Aۅƭۅ X̰2%&N  ʰƭ X̐`Ӏ堁ӠҠՈ՘̠ƠŠӠ̠ɤӮȪŅ͠Ϊ ܆5 HȰۈ)ۅƭۅ X̰ 3ڰLÍLT̥L㼠  ʰ` İK ХP8` LɐH80)N  հ)@LO ˰)0 ̐` M ­۠泭ۑƳѲƱƳ X̰ RڰäJۑĥ` İo!)N8`WپX0 ĥLä X0 ĥLà !"#$ Đ2@H AڰCŰrP` 3ڰ(` AڰѶ? İG8`Fە1 ռ İ ЩP߭)@N8`1@8` Aڰ񈱴 ˦,+* ʈJj =ؠ yiȩ`y4泱ƳHhz ʠiȱizLA`L;ؠ"  `1` Đ7@8V۩ Lɠ۪8ۊ۠X)JJJƄ X Ġȱ۠ ȍ۱۠ ۭ) ۍ ð*)#  O̰``)(`N8` ) xհۈ ̰آ*գ  Ͱ ݢգ LvL{ؠ;i ڥ(8` ְ( ȱ5 HȦ)`Lxץ: ש ְ⥺i ꥻ(8`Lx Lxש u )۠0)p խ.8`)@ ϰ) ϰۈۅƭۅǭۅ5 X̰ *ƭ۬͵̶L  ΐ` Wհ> H۪ȱHۑhƳh sϰq ` ʰiȱi `)5©éՅĩ5 }JJ+`.`8`ɂ )`@ ש ְO ֤Fȑȱȱȱ008 8hhh H(`x )HH'Ƚ!88x , ,,(`," , *)` `   `x )HH8(=&(+ʈ&ਹ''&&hh(` * @ HH` 2``ӠР    0) ) $p10LYeieLVȱ d0L`Hȱ hh` WɸSI I.ȩ8A 8ɸ4ɠ(H)h h8   `    i Ȣ d` $,)?P^ GL㢮 5L}P.)(Ơ L`ޠ LR  稱 I)0JJJJѤ  БĈ` H`)à`֩ нѽ>`]PU]]UPPX0 0 PPXPP  į󠠩ҙ̙ɠΠɊՐӠӢ̢ՠҠŠԠҚРĠ鱃ԠȠࠠLQ  * WHHH>%H H @`)h8`  HШБˆeЅА SYSTEM FAILURE = $hh8`hhhxآY_Z@tPRVT,p S JJJJ ) ʍL@ i0i6`îӉ͠堧ǥӥ``HhHy)(h`H` 0L?i `h` `` `x)( 8 `jjJJԥ)եӬɂ )Ӆ҅`  `H0Xh`Π'à̠ȈL` 8`څ  Lk%  Lk8Lu텚8嚅 L L Ld V ``  h` ک V `ۅץ  VLFx) ( :` H ) L  .P'pб0 &L:L5'8+8`0Fܢ` ř,Ř 0 8f)J ӭƅХDžѥL1LUȑ  i ߩLL )  札)  ҩLL` **éL0;` H ) 4 )ߍ) hjjjjۥ0CF = -$(L !LLL&L L-LJ٥eƦ ,L  # ` (L.L…ҥÅ,] Xx,f (I0јIFjFjFji```x@gŽPy+wLwԠ͠ŠԹ.D1 .D2 .D3 .D`HJJJJh)y` (2P Q,PQ"PɀQ@PAQ`8`nɀ<)nopoLpp` 0h8蘠fȊf` ab 1abo)abaݰb L9c`` a N0Ioa0H ha`pLopna n`  3ɠ/8 L %iLɠ8逨J Hh $`b >_-%^%p_^^_ab"08^c_L8^c_L8^c_L8^c_ȑcc\] ab^_ ``aV R0M bba dda `Q8STRQ ST`c\ȱc]a  b 5DU e\^e]_ ^_ ^_LH8\^]_?Je\^e]_,78\^]_ ^ݰ_ ^_LH^_ $bL@A^_aoQ*@A RQL@A `T8`RLSJTKQHIQiHiIKNJ)M8逅OPOPHMIN'a MHNILHOIPaOHPI8JHFKIGFGaHMINNMʆSTL8HSITQQSTde0f`   cCȱcD C Ea  UV 1 ELUFVG FUUCVDեYCWZDXWXCUDV[ v`b0WXYZiUcȥVcWX eeYZ ggE` @SATRDžŠƠŚ̮ÎȠ Ӡ̠Ӡ` LL#L/LL'Lgab `abBcd cdBrcadbho:ab.cݰdDcݰd8abҊ v+abcabRcdTefVghXijSdfhj RR`^0U ` 0 ʠ0 8 `ůàՠԠàࠝӢӠ ȠDž̖͌͊頀ϐωŠŠӠҠȠγ`%!^0 ^)@`a R =` *^)ـooL]^)?i |TU QTU]qUoqTITsUsprRprqs]ToUXa` RL=Xa` R` *R`X`U T  *\AX[ @F\B9ɏ5\o*Ɂo)[[ @^`U V  *C?^0: ݳ ٢ ^)?i` *)@o `p^ XiH 1h `)X0 8~X 1`C X`)X0`C РǠ𠠐ŠŠӠҠȠƠŮƠҢâӠUAQY @?ZY 9ZYY^TU QZo disks that will contain all the articles written by Apple's Taylor Pohlman about Business Basis as found in Softalk Magazine. This will be the only self-booting disk of the series. All subsequent disks, however, will include the Menu.Maker p user interfaces for application software, and published four products for Macintosh, including FileMaker. After leaving Forethought in 1985, Mr. Pohlman was co-founder and president of Regent Systems. With his partner, he designed and developed MAn for two years in Softalk magazine. Mr. Pohlman left Apple in late 1982 to found Forethought, Inc. and served as its first President, subsequently becoming Chairman of the Board. The company was started to focus on the "next generation" of graphic. Pohlman then became Apple /// Product marketing Manager in 1981, to manage the "Reintroduction" of the Apple /// computer. It was at this time that he began the series "The Third Basic", a column of programming tips on Apple /// Business Basic, which raancement program (][e). He then created Apple's product support group, which had the charter for product training and third party development support. During this time, he developed Apple's third-party software licensing and technical support program. Mr subsequent positions in product marketing & product support, leaving in 1979 to join Apple Computer as Education Major Accounts Manager. Soon after, he became Apple ][ Product Marketing Manager, where he was responsible for definition of the Apple ][ enhuting, both on the administrative side and the instructional side, culminating in managing the Instructional Computer Network, a service to public schools in northeast Texas. In 1977 he joined Hewlett-Packard Company in education marketing and held and other new applications of technology. He began his career with computers as a high school teacher of math and computer science in Texas, after graduating from the University of Texas. He subsequently held several positions in educational compff within the Business Development department. His group supports technical requirements of programs which will help Apple get into new markets. Activities of the group include Strategic Alliances, joint development of special products for Apple's markets's /// SIG, with the permission of the author. NOTES ON: Taylor Pohlman Taylor has worked at Apple Computer at least twice. In his last job (in 1987 or so), he managed a group of systems engineers, product managers and technical development stac domain: The Third Basic By Taylor Pohlman A total of 23 articles about Apple /// Business Basic originally published in Softalk Magazine. The articles and their accompanying programs are being presented in a series of five disks by Washington Apple Pi WAP /// SIG PUBLIC DOMAIN LIBRARY 12022 Parklawn Drive Rockville, MD. 20852 (301)-984-0300 Washington Apple Pi /// SIG is proud to release into the publirogram. Please read "READ.ME.FIRST" on Side One of this disk for more information. We are excited and pleased to bring you these excellent series of articles and their accompanying programs. We hope you enjoy them!! ! P, the Macintosh-based system currently used world-wide by Bank of America for internal auditing. He also managed the development of GS-BASIC, the new BASIC language interpreter for the Apple //GS (based on the Apple ///'s Business Basic). Additionally, he developed a Macintosh program for automation of medical laboratory test instruments. In 1986, Pohlman sold his interest in Regent Systems and rejoined Apple. The last we heard, Taylor Pohlman lived in Sunnyvale, California with a teenage Daughter sing the PERFORM command. Isn't this easier that a bunch of pokes and a call? Line 170 prints the character equivalent to file 1, our output file, and then takes a look at the next position. Line 190 makes sure we print a carriage return at the end of eaxing techniques; Data files; Parts distribution program. ARTICLE 4: Parts program continues; Business Basic 1.1; New Invokables. ARTICLE 5: Mixed bag: Programming style and philosophy; Get statement; Hex to decimal dump program. ARTICLE 6: RTHE THIRD BASIC by Taylor Pohlman ARTICLES BY SUBJECT: ARTICLE 1: Introduction; Business Basic and SOS; Program to read text files. ARTICLE 2: SOS file system revisited; File-to-file transfer program; Screen print program. ARTICLE 3: Indech more powerful and was designed to take advantage of the GS Toolkit and other features of that machine (which are not in the ///). /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// in learning the new GS-BASIC, which was developed from BUSINESS BASIC. Many of the programs written with the /// version should, with few changes, work on the GS version. GS-BASIC programs, however will not work on the /// in many cases because it is muSK AND SET THEM UP TO RUN PROPERLY FROM THERE. FINALLY These articles on BUSINESS BASIC are excellent and are, perhaps, the best series ever published about the language. They will also serve as an excellent beginning point for anyone interestedany disk placed in .D1, all you have to do is boot this disk (or any other Bootable /// SIG PD BUSINESS BASIC disk) and then place the proper disk in .D1 to get your menu. AGAIN: WE WOULD RECOMMEND YOU COPY ANY APPROPRIATE BASIC PROGRAMS TO A SEPARATE DIsave space, we have made 3BSB-01 a self-booting disk. The rest of the Third Basic disks will include Menu.Maker but not the SOS.Kernal, SOS.Driver and SOS.Interp files needed for your Apple /// to boot up. Since Menu.Maker will read and run programs from module in order to properly run these programs. Where space permits, we will include these on the disk at the directory level. But you will have to use System Utilities to transfer them to the appropriate disk. Please also note that in order to disk and run them from that disk. Since many of these programs are basically examples to show certain things that BUSINESS BASIC can do, the original program could be damaged. Further, you may need to include other files, like BGRAF.INV or other invokablel files that include the BUSINESS BASIC programs as described in the article. The Menu.Maker program will allow you to read each article and to run the programs should you so desire. BUT PLEASE NOTE: We would recommend you copy the programs to a separateu will find on side one subdirectories for the first two articles. They are "Article1" and "Article2." Within those subdirectories, you'll find the articles themselves, in this case named "Article.1" and Article.2." and where appropriate additiona disks you will find all 23 articles as written by Mr. Pohlman, as well as every BUSINESS BASIC program written for use with those articles. We have placed these articles within subdirectories on each disk. For example, on this disk, the first of five, yoand a cocker spaniel puppy. (Originally published by TAU in its 1987 Phase /// Conference Program/Seminar Guide) NOTES ABOUT THIS DISK AND SUCCEEDING THIRD BASIC DISKS On thesech output line (since that character isn't physically on the screen). After that, line 200 starts scanning the next line. Line 1000 through 1020 set the cursor to the bottom of the screen, close the output file and end. Now for the fun. Run this program and you will get an exact copy of the first 23 lines of the screen on your output file. By putting in an INPUT statement to ask for the filename and then OPENing the resultant string variable as the filename in line 100, you can decide at the time you d#1,".silentype"n"readcrt.inv"xvertical=123=verticalhorizontal=180=horizontalreadc(@value%)#1;value%);horizontal#1 vertical =23:=1t of memory in the Apple III for some really fast indexing schemes. Before this is over you should be able to write some pretty hot database programs. 'Till then ponder the following: Is it true that disk-based programs are written by BLOCKheads? s for that matter) would require that all the blocks be all allocated before any could be written. Well, have fun until next time. Then I'll try to lighten it up a little as we talk about the mysterious DATA file type and start using the massive amoune file until you notice that the Blocks Used column is still pretty small. What SOS has done is report the EOF at the end of the highest record number you used, while allocating only those blocks which it actually needed. Some micros (and some mainframe the file. Assuming you used the name MY.PARTS as a file name when you used the create option, the entry will look something like this: TEXT 00007 MY.PARTS 00/00/00 00:00 00/00/00 00:00 85735 Look at that EOF value! It seems that you have a hugcords which are sequential, each one will probably trigger a disk access as the appropriate block is written to disk. After adding several, get out of the program by typing RETURN to the part number and selection prompts and check out the catalog entry onieve the record. Look up the function INSTR, it'll make it easy. Once you've typed this program in, trying it out can be interesting. Try several values for part number, including some larger ones (greater than a thousand at least). Unless you add reents. One or two things are worth pointing out to help you with your inquiry program. Since each field could be of variable length within certain maximums, I used the backslash character to delimit each item. You'll want to strip these out when you retroes not presume to be a model program in terms of its error checking, efficiency or even logic design (note all the GOTO's, patently offensive to the initiated). I tried to keep the program simple and straight-forward, allowing plenty of room for improvem+"\" 630 PRINT:PRINT"Record is: ";rec$;" OK?" 640 INPUT"";a$ 650 a$=MID$(a$,1,1):IF a$<>"y" and a$<>"Y" THEN 430 660 PRINT#1,rec;rec$ 670 PRINT:PRINT"Record added." 680 GOTO 430 1000 PRINT:PRINT"End of parts file program." 1010 CLOSE 1020 END This d 550 IF LEN(a$)>30 THEN a$=MID$(a$1,30) 560 rec$=rec$+a$+"\" 570 PRINT:INPUT"Location: ";a$ 580 IN LEN(a$)>10 THEN a$=MID$(a$,1,10) 590 rec$=rec$+a$+"\" 600 PRINT: INPUT"Quantity on hand ";a$ 610 a=0:a=VAL(a$):IF INT(a)<>a THEN 600 620 rec$=rec$+a$t for now. Until next time, happy coding with the most powerful BASIC around! run where you want the copy to go. Use this program to document all the strange and wonderful things you find in Business BASIC as you begin to really explore the language. But first, be sure to SAVE the program to an initialized diskette Well, that's i #1,".Console"a$a$ (#1;a$ 2#1;a$<a$ F#1;a$Peen to your printer. Use Control-1 to request screen text printout. Control-2 will toggle from normal to condensed size print. (if you have an Apple DMP) of the programs. 2) Included with your SOS.Driver file is the Attach.Driver. An explanation of how to use it follows: The "ATTACH" Driver will let you send a copy of what you see on the scr A QUICK NOTE: 1) The Readcrt.Inv Invokable module needed for the programs on this disk are on side 2. Remember to copy these programs to another disk, along with the Readcrt.Inv module before running any s can be used for data access. ARTICLE 17: High Res character set and shape/font editor. ARTICLE 18: Character set animation; Bug Mania. ARTICLE 19: More on character set animation. ARTICLE 20: More on Apple /// graphics: Bit mapped displays (1 More on the Console: Data entry screens. ARTICLE 13: General purpose keyboard read program. ARTICLE 14: Sorting techniques in Basic. ARTICLE 15: More sorting techniques in Basic. ARTICLE 16: Data base manager program showing how binary tree data structureroducing a random record number from an arbitrary collection of characters called a key value). ARTICLE 10: The Apple /// Console Driver; Request.Inv Invokable. ARTICLE 11: More on the Console: Four way scrolling through text files. ARTICLE 12:andom record files; Get# statement; Request Invokable and programs to illustrate. ARTICLE 7: Graphics introduction and programs to illustrate. ARTICLE 8: More on Graphics; Flashing cursor; Writing on the screen. ARTICLE 9: Hashing records (pd#1,".silentype"n"readcrt.inv"xvertical=123=verticalhorizontal=180=horizontalreadc(@value%)#1;value%);horizontal#1 vertical =23:=1 Use the KEYPAD NUMBERS for this command. You will see a letter at the upper right screen position indicating your selection. Except for programs which have redefined the use of the keypaSOS DRVR"CHARSET )((8*,;((*,((+)((9/(p((>3  =9 :9 .(+( 8#8# %3(8 ((,+)(%.4$)?((,(103 ҥ L$0T,8OK50P;ҥ,8 L%\   8҅¥Ӆé҅L,5,6  & @jIH,5 p  He҅Ґhe…å逅h,23Lhґȥӑ,10 h0  `,g0L  ҅ӥҍe`,5 H  h 4  `5!    4(P 4 4  `,g0L,10kH0 ԥ f0)ĭ9)9҅xh(ĥŐL i,1HȊ©L,52,9-P" a{)9 Ln90$0%,7 & &+%a0 +hcefd(c,@cfabdf`cnx  (,4h`dd,9P"<:J H) +̰ H) +ʭcP h̰ʩd8,h)ec efeedʘ HH` (# (=  0`)aI!SHOLES 1!1!2@23#3#4$4$5%5%6^67&7&8*8*9(9(0)0)-_-=+=+\|QWERTYUI OP[{]}`~`~ASDFGHJ K L ;:;:'"'"ZXCVBNM ,<,<.>.>/?/?d0hp00000>" <"<"""<< <"""<"><$""< """"  "" 6***""""""""""<""< :< $"""2,"""""**6"""""< >>8  8>> ""*:<"">""""""""""""">>><2"<""">""" ""  ">"6**"""""&*2""""""""""""*,"" "" ">""""""""""""""**6"""""""> >>> 7  3  5  >>< (&20 *, **>> "2*&" " >>  ">> "8""> """"""< ĥŰ+,0p 4 Ls  Ls i )"|tȌs|st HH` MjH,: <J h̰ <rh,oL`%CYgu #1:CY` 9C<m><=m@=>@?AL8 >m<>@m=@<=L8 <m>?=m@AL8 C9L8 ; ;k`;);k`,@`<,m p<L<`<p<`,ms<L=q=L: ,lXL ==L: ,lCL <=L: <,n)L NQBSerial Printer Driver -- Copyright (C) 1983 by Apple Computer Inc..PRINTER A")Copyright (C) 1983 by Apple Computer Inc._  . G R Y f {    ! $ 4 9 F I P S V \ a h m p s x |     ' + < ? D G N U f k p x (+@EIR[ty}  2;AGMS[fot|              . 3 6 9 < ? B E H N S V \ _ b w      ! ( 0 7 I N S  !$(+.147<?BFILORUX]`finsw| !%*/369<?BEJMRUX]`h "*-036<BLORX_fj &+38;?DGLTot <?BGLQgjox',/25:BGKORY\aelpu֤ h L  p,:0 JfiΥiώJe΅Хiю@ B $p̑бʑΈ0 Б̱ΑʈeمΐeمАA萿 :  `ʝ"`t  !#%')+;CNU\eh'ʤ˅΄ϥ̤ͅЄ B $̑бʑΈ0Ƞ h L: $)טɀIim>ٮ@8pذ `$0"8,:Jک@ׅפ؈۩MjL,:08*Ȅ B ,:J}΅н(I I $0;P̑бʑΈ,:JՐ̑ʈ0 Ցʭr̈A萠L: ֦ڱΑ0Б,T,V( : `,k<,: JI`I`<,:J̰`=m@>,:J}ʅ̽(I I `<Mj,:0pJՐ̑ʈ`pJհ0`ՑʭrpȐ`=m@< B h AL: 8p,:Jf׮@$PA B $P@/AL,}0, `gé ĩ `:) j:;jN;~j;O,:0'???>>8?>p<<AAA@@8A@q==C)CB)B Crx 0, )ߍ:) J)*PR΍ ύ逅Ñ}`` " ( ĩ~Íĩϭ & &υΠÑΈ~ F ~ҰةeÅÐн},,P,`,g$ ( $g " x) (,`% (g`)5`)6`)7`)8`)9`,i0!M:0p ȱq L `" (~)y ~JJ* I `x|x|,,}P-X~ F }~L } `,}0 x) `(`hh% ( ! l      5  Hdcefh&+si  M0   h) `(" (  (È& 8  `)2ȱÍ3`)1`Ɂ" (cefd`Hcefh) `xÙ+(`xÙ&(`)4 9EKQWbmz`(" ((è%È`2ȭ3`1`d`c`+È`&È` & IMk`4`5`6`7`8`9`<ȭ=` & @jI`:ȭpȭqé,i0L È`,g HH`LLL8 L8 u:L8 ;)ߍ;j`; ;j`uBL8 uCL8 u)u;) u;L8    x) `(,  LuL-upp<`uqq=L: vuL L L <Le Le ,g0L HH`! ( HH` (# (KXT .")"#)  #`,.$ ()-'( / .`% (.L,/0x ('( `,.0L& (,.0L7 Đ`ʥ逅8n134nʐ3x1eʍ1,/p/H h(eʅ8ʅİLa )`Y)D00L:1?24n21  % &$0) `/0) `,.0L tHsH`! (xy```,.0L H`  )`%)8`)    H   ʥ)Ģ    H Ģ L E% %) L 8`ۅ&ۥeepɀjff&ݥeepɀjffݠ %)  %)`%  0.)  V Εm٭mڭ))njnjnjfjfjfj+mӥmԐ8L( Ӣ ,$0F y բӅLx  mӥmԐL] h ٍڍ0Z$eٍeڍm٥m8٥08ٍڍ`8٥058ٍڍ0ԭeٍeڍ808٥8٥ 8مڅ H ,80 J8}L y L 0yʽz0 y L7  Lh `*f*&*)` ` m j`Hآ Hӭԭ h h`8٭028 `L` H , 8 V ТΕLϦI ] +)J* g I V 8fxL@ ] I)!) g Lթ`~L8L)  =H 'HH N M))Mhh0 ϭPh0 йPL)`)L` L`` ɠɀ)ӮԮmwӥmxԐ mi` HHGH`  &`LL) @L) L8``,P<0 )ߍL- J,P,QJ,R,SJ,T,U,W`,t0L40 ( dȅɥŐ ĐL  }LO}~~Șݻ~`}}~L< L }ީ~` z|ֆ׆ح)JfJf$PIJfש ʈ8 @ש wx LVخ ʊJJJ莟mwwxix 0ޤՐڢν!  `ɖ" ( dÈ  ``,t0L4 d0Cս30. , V  @„ȄL5`ʝ`))ժuvЭ H ʊJyjhШ(PPPP @``` @@@@`xp<@ @ :H9H` (# ( -l..PcJt`,t$ ( t`tL4`,t0L4 HH`! (`ɖ" (èÈ``,t0L4 HH`L  d""""""""33333333DDDDDDDDUUUUUUUUffffffffwwwwwwww(C) 1980 Apple Computer/(((le Computer, Inc. Graphics Driver..GRAFIX b """"""""33333333DDDDDDDDUUUUUUUUffffffffwwwwwwww H`Ln,/023x #) "# (```'+"'*CFMRZ_ '058FV[fjsuw9Copyright (C) 1983 App     0  ` ` @ ``8٨JJJ ) u˘ vͽʅ̆`8Hi #iϤҐ мφi`Jf`<,&ʰ,i8i#Hiihifʦʆi) v`i,ʐi,iPIIʥ)ifʦʆ̐pLj/Fϐ&Ȅ`'@τ`Fϐ@ E҅F8ئȢΆѽϽ`/(L%τ`ϩE҅0Ȅ(fL% ('Άѽн`8Hٰ hIiH ( 3  +J FF tѤ `U t`*8`AB*0 B8` L=?՝ԝϝН ` 1`*x (DEHG 1h H J IFD`* H FFLxʠ7( hL8 989::m8ʥi,;Ɂ)˭5i ɠ)54`x* ,< ʝ88 (`…ʍ0Åˍ142;)5I)5i 4`)5;`xH)$ 45R8 h(`x9,<0 `Ld L)(I bL)8 ʪi)I8R & h:1ߠ*x (,< K 1x ` (`98  bLH8 xʍ6ʍ7hh)ɄJJRH88,< ʠʠ &,<0,80ʬ8ʠ62/` N=    `H Wh (0­1í2L-. * <өхυ L"= N8 =i N% JL@ҭ"A N! xLC L 'Lp- >)AE)H ;LLW x0Lx:ԥi ՄԐhh, (MIPLIOKN`ȑȥ.- * ө<ѩ ϩ - (A= NL% AҩA N= ,>- JD)3E)X,qȑ ;?L x0LC L '5դԦ kˍ1 *̍m%%#$  " ` L ``(%, ( *x (I  ) (j` DÈ` ȑ`! (`.-LLL$?`?` hh- (*J%/hh`դ8e `)ߍQI "L), (3C> SHJI̍ƅԥDžծ*x (3'͝ )X@ @ ' (  L "x) Q(`x)(` 2H1H` (& ( ( (##D0C 3s `e|&+.QVYcjuy~':{;Profile Driver -- Copyright (C) 1983 by Apple Computer Inc.`.PROFILE&%   % * > A H K Z v z }      % , 1 5 : = B K R Z _ b g n s x ~    ) . 6 = J P S X [    $ 3 : = F d  > B H M +.149?CGIKMOQSUWY[]_acegikmoqsuwy{}%(-47=FMUX\_jmz  .169DWfy  #&).369<ADGJMP^g $*-06=HLORWcfloruz/47=G\x{~'&*`JJ` **&*&ߥ`J` ***`` ` Jjjߊ` ߊ`JfJfFߪ߆` `JfJfJfF`ߩ`$011̰JJJJ) ܭL FܪJJJJ)`'+9;=?ACEGINR\aejns~- k, ϥ- kϱϮEϑʩ`P z  HH` k(h`$0#$E$0p Q%Qʑ`pPIE1p$E$0p Q%Q̑`pPIE1pΦ#$01ʐ1`JJJJ)`%υߥ`1(ȦJJJ`&مh8Iif٤Φݰ>Jj8ۅe݅eޅ $  m`!J8݅ eۅ$  m` , V $צ! LP \LD$7߭$PH8 nߩ nh ߍϭ (̠`x (̠` [   `L `` ``I FF x (̠%L#fowz*13579;=?ACFNWaehmpx "'+@\mrv{#&+25FKQT\adgjmry~$/6;>AHOTW\_bx{'69@IPW]`cfjmpsx}JOIN OTHER WAP /// SIG MEMBERS ON THE TCS! COSTS ONLY $6.00 PER YEAR. The Third Basic by Taylor Pohlman  "/258:GTWZ]`cfi "%(.:?ȱѭ)I yJн%yK8 ѮIЬI,LIЍ/5ȱЍ069Ј8Ј Щ`JP (` $'*169BGMRU[`chnqt{ЭC-íHέ''G 6`,HH)Ʉ ) hHhh`. 4`.04:A`xLIB <BAC <C>н8 ѠШ١ވH)Ih*#ЭУލLȱLȱӌLLG'Ȫhh`̽G` )D$6E%7F# D 5 (˱E$i$%6i67Fи$i($6EИ P Q˷L H)H2Pʈ2˷LGDB 31 - Quark v1.2,1.3,1.31 - rem Cue, exp Nor|CompLJ.ATTACH `e" .PPRINTER NQ12{y SCREEN DUMP ACTIVE .CONSOLE"NRP)  P`'./(,$)x*%)/+(```04@DRTVXZ\^`belv{!$'*-049?BIUcfkw &+8;@CJMPSV]bejJATTACH.7A1 - Apple v1.3,1.)(,,p` *+)+X,,PM#-" I82-A/0M)-/M#-" &0x,) ++`x,`,'0LM ! (```*M#ȩ ȭ-ȩ`,'0LM @>L,, 3,,0-# ($GGjc`,'$ ( 2 *)601 % (, :'`'LM :01 `,'0LM& (,'0LMIĥIC ,$P( n(.0- .-L 3L 3`,,P*M#-"x ZComputer Inc.2Z SHRH` ( #4:=Z_bpsv{ "%(+.2ADGJx{~DParallel Printer Driver -- Copyright (C) 1983 by Apple Computer Inc.v7 .PARALLEL A`@dCopyright (C) 1983 by Apple 40x192 color). ARTICLE 21: Proportional spacing and text font appearance. ARTICLE 22: Insert mode editing in Basic. ARTICLE 23: More on insert mode editing: Making the underline "wink" and shifting up the five lower-case characters. I>X200300S=1:D=1:B=1570D$=""500 Y=X:S=ED$(D)=D$:640 X=Y440D=D+1:S=E:440D=D-1:X=0F$(X):X=0 J=1D D$=D$(J)790&J0 :œ6303DE=S+1:N$,S,1)=" "N$,S,1)=","S=S+1:580%Nž#2390 ^1000c: h#2;a$ma$rY=1150:Y0wB=B+1: Count the number of lines printed xB=15B=30355yB=60#3;12)zB=60B=1 {#3;a$|360B<=20#3;13)::410#3;12):Z=11000:ZI I=3d: PRINTER V. 1.0 ::=2::"PRINT.ALL v. 1.0":3=4:"Directory Name(s) or return to quit: ";n$N$)=0::"MENU.MAKER"430 X>0260I=11000:I:200: ,I=1X 14000 6#2,F$(I)@#3,".PRINTER" JEAD PASCAL TEXT FILES."04=10:"78C";"ANY KEY RETURNS TO THE MENU."!>G$:::".D1/MENU.MAKER",320R",220(204::"79A";""; 2D=1:F=1 <#4;a$ FD=D+1 P#5;a$ZD=60#5;12)dD=60D=1nF=F+1::d$;::Y=1100:Y x13402  CATCH PASCAL TEXT FILES 202 :F*=08:"78C";"SORRY BUT MENU.MAKER CAN'T R".D1/MENU.MAKER",220 d$="" A$="PRINTING "+B$(I),16,B)=01:=0::"80C";A$;:#3,B$(I),16,B)Z=1#3;b$:"78A";b$Z=Z+1:Z=18:1290 1260 #4,B$(I),16,B)#5,".PRINTER"+ž#4#5;12):::".D1/MENU.MAKE30C$="N"C$="n"1160;:=23:=0::"79C";"PRESS ANY KEY TO HALT LISTING": $1020.202 8::Z=1B::=23:=0::"79C";"WOULD YOU LIKE A PRINTED COPY?":1C$:C$<>"Y"C$<>"y"C$<>"N"C$<>"n"1170*C$="N"C$="n"79C";"PRESS ANY KEY TO HALT LISTING"::202 1020#2,B$(I),16,B)ž#242:::1160Z=1#2;A$:"78A";A$Z=Z+1:Z>1842:::Z=1980*:=23:=0::"79C";"CONTINUE...?":1C$:C$<>"Y"C$<>"y"C$<>"N"C$<>"n"10 MENU.MAKER TEXT MODULESEG=0"MENU.MAKER"890&*X=11000: TEXT SLOW-DOWN LOOP ,X.1,180,22:2,280,21:2,2380,23:z:A$="LISTING "+B$(I),16,B)$=01:=0::"80C";A$;::12)>=23:=0::"T$=N$,E,1):T$=" "T$=","610XE=E+1:E>N$)610:590bD$=N$,S,E-S)l:v:E>S+1600:D$="": œ770P=3:"Looking for ";34);D$;34);" directory." #1,D$=P3:"Reading from ";34);D$;34);" directory." ž#1740#1;A$:A$)<4710A$,3,4)="TEXT"X=X+1710 :X>YN=P::7);"There are no text files in the ";34);D$;34);" directory." ::I=P::7);"Unable to locate and open ";34);D$;34);" directory." ::IOERRLIERKBEOTIMEDATEPREFIXEXFNEXFN%OUTREINDENAAAAAAAPOHOMA SUB$OFTRACNOTRACNORMAINVERSSCALERESUMALEGOTIRESTORSWAGOSURETURRESTOOALOASAVDELETRURENAMLOCUNLOCCREATEXECHAIAAACATALOAADATIMAGCADEAPRIssssssssss\3!z~IssssssssssssIG%ӓ,ssևwn7}|tttUUZ{fzxxˆU膅[L<^ENFONEXINPUOUTPUDIREAWRITOPECLOSATEXABYAAAAAWINDOINVOKPERFORAAFRHPOVP̠Ώ h:gpOn[n٧s]ds3issssssss0b>&dsjs|T}|s[ ŭ᭭򭭪𭭠򠭠頭퀠Šӳ頠𠠀𠠠堠젭ӠΠSOS NTRPRHeLZĠР쁭堠堠ՠP򠭠έ魭58:GTWZ]`cfi "%(.:?I yJн%yK8 ѮIЬI,LIЍ/5ȱЍ069Ј8Ј Щ`JP (` $'*169BGMRU[`chnqt{ "/2έ''G 6`,HH)Ʉ ) hHhh`. 4`.04:A`xLIB <BAC <C>н8 ѠШ١ވH)Ih*#ЭУލLȱLȱӌLLȱѭ)2010C$="N"C$="n"200;:=23:=0::"79C";"PRESS ANY KEY TO HALT LISTING": 20002,280,21 DF$(I)=D$+"/DISKNAME.DAT"F$(I)=D$+"/FLASHNAME.DAT"410:ۺ310 PRINTER v 1.0 p$ 900A$="PRINTING"+F$(I):$=01:=0::"80C";A$;::12)F=23:=0::"79C";"PRESS ANY KEY TO HALT PRINTING"::2,280,21 2000*:=23:=0::"79C";"CONTINUE...?":1C$:C$<>"Y"C$<>"y"C$<>"N"C$<>"n"#1,D$::"Processing directory ";34);D$;34);", please wait."; ž#1880*#1;A$:A$)<48104A$,3,4)<>"TEXT"810>X=X+1:".";HE=15:F$=A$,16,15)RF$,E,1)=" "E=E-1:850\F$(X)=D$+"/"+F$,E)f810p:  PauseNDEELSCONLISCLEAGENETABTSPCUSINTHEAMOSTEANOEXTENSIODIAFNOAAAAAAAAAAAAAASGNINTABSATYPRECAAAAAAAAAAPDLBUTTONSQRRNDLOGEXPCOSSINTANATNAAAAAAAAAAAASTR$HEX$CHR$LENVALASCTENAACONVCONV&CONV$CONV%LEFT$RIGHT$MID$INSTR>=<^/*-+NEXT WITHOUT FOSYNTARETURN WITHOUT GOSUOUT OF DATILLEGAL QUANTITOVERFLOOUT OF MEMORUNDEF'D STATEMENBAD SUBSCRIPRANGINVOKSTACK OVERFLOREDIM'D ARRADIVISION BY ZERILLEGAL DIRECTYPE MISMATh$PLh wlȱȱ%$LWH mh x~  m#W", mȱ28eLeji`Lwl mȱ"Ɂɂ ȱ :, iTjj ȱiVjj8逪XW0 Vf0WHW$ 0X: h ,@dd )e dʙdH &eh(dL ddک,ddLd:e``eLeHELLO ue 5eLse6e:7ee8ee:e`EAd j @a(% -, bLs j {ghhL<^gHhHhH , - b j$% @ag5h6h6hhhhh8g5h6h 悅`6 "]La ud `L  d.CONSOLE[[ TdSdddddd0 ddddd`dd A 6 s e 9c()' 9cKHLI jLdj89弅:彬: 悅`H hɝɞɜ)`dd  6芅 e ()'` e'()HKIL 9cL>hL<^) i!Ls j @aLK$L% :: 悅 lc!)` +b` +b` sL :b#`L,H s h ऊL(,L8f` A KL jLdjOPPKLL h AKL` Ѽ   (`H shLs Aji!S)Lt`SSS`L` z :0.`9::hhgg.%g& $gegަhH逪hhʰ` ҥ [ aLT ҥIJJABB=>>;<<?@@T ě hhhHH  `89$ 0~!L`!sm?iٰcL`S )!a{)Qi ڐ߽S) -ai) -aɢ ɣɍж$HS -ahʥ0SSȩ5%"/װ&hԐɈf0ɔĐ 8,f 8f L_ʅSS=ȄL`ȱi8eiidHddhd) _ ƢLh _L>h jhP _S @a-Qggeg5hih 6i6 "]S" ]$%SSSg a aL^ S S`La8 SiUjjS):,$f 0$ p fHhH_HcH uhch_hhhfhi0hhhB B A` ֥'( )&񦕤LNKM$Lb ě $m wl "m6X6+5 56ɀ56H $mhɀ(Z)& mL k~ wlL ͝dL Nsd# wl^_ ꂅ__hg^`8 悕`gHhHhH5?6@6@*5g5666gҦhhhhhhhhg:e:;e; ;m;`@c@c?be^@e@ _m__^ \Lx] i6g55``BY BSAMHH H] LPL(\)&P ěj9ȑ9ȑ99i=:i: >i>`Ɂ7XWWXjnXWi` ]?@@bgchch )^ ]b ]b^b^L\b8g+H__^8_ABB 9::)ѭ [ I[ aυ婶ZeLLL^$%Lae LGidFddddddd.ddddddddd ɕdˏd`Ls  Apple Business BASIC v1.23 - Copyright Apple Computer, 1980-83 CTERESOURCE UNAVAILABLDIRECTORY FULDUPLICATE VOLUM ERROR Please Press SPACE BAR IN PROGRAM INTERRUPTED%&'(%+.@C$DE FG!H"I'MN#PQRTW(X潭`: 808`:dd@՚H Z#IJJCSTRING TOO LONFORMULA TOO COMPLECAN'T CONTINUUNDEF'D FUNCTIOVARIABLSOS CALFILES BUSNOT SOI/FILE TOO LARGWRITE PROTECDISK SWITCHEBAD PATFILE NOT FOUNPATH NOT FOUNVOLUME NOT FOUNDUPLICATE FILDISK FULFILE LOCKEFILE NOT OPEDEVICE DISCONNEm Vf0 mLf) mWA 0 -a mL8fW;8<< 悕` 6kLU*i kXX 4XLy \\'_ch_chbi^g \ihh ] Qp aj ih `p b iq bqn %jjg56Ly { b bq | XHWHHHֺ iLOPP$pX0S&ȱhȱKȱLe潥ɂ逅$L# $mKL x~ m khLgLsLc h5逢)&a TH THLgL6k8:9: STT`)ɀLK$Lb8gLOPPKLMNhhXE )s LvɁ >H>H= x\L|F )XHABB8 __^hHI8e^ @1 @+?%GHHHIJJih BABGHh`$  ě u Дs IJJ^__Lveȱeȱe `LćHƽ Ƽh`$ lȱlLL{ɝɍLɎСL s HI s shmHmHlHHɦ# shmHmHlHH , hHLt  ,, shTTLui ui,L3$0 |Lu xijk6kxyy xxy6i L[ s r$PLsi,L3-hLs L*tɘcɭ_ TTLdd`jk8L|L3L3TL3,L3i LL r$PLLBLsș Ȅ ( qƚƚ` s s),;,=,#,(,,ѼLL<^L<^ llmm$P$?TUJ)TU  ' Lsi imLqLsh E0`H ty ))ELyq  8 $0!PizEn{dUeUi hLqLs `wLr !L2 {}$ 0`QɀX zLs.+"2mXm tL qXXW zzEn{i x }H$ ]kh8 )KLe9e:: }Lgi , p s$8$0p`PL<^Յ H s r ɀ ȱX Hih0 & ?<I?iE W Lq s )L<^ȱQȱȅR dj sLHoUVV$ LhU Lp$ LL<^opL^```?EXTRA IGNORED?REENTER $0pL,`LgXW ׫ k*iXX 4X \\L<^Xii7 { n k$ |WlXVVE$ P% eT{||Hd ̐h p IkLo00$0 L>o "m nV dj$D$ P 膼Lo$0",i [ kLoHSHhp< {}$ p0H 07h ]k ,LmUVV `p F sLn 2 ukLoF вLm jȪЖ LL<^~p l nhhLgOPP` Add# 6d s S SS@Ln A " r ,; s lLn#f  ;П ⭩,SLn "mʆ,S _S% nLh "mL_T ST#L(, U VV ׫$ 0  QpU= d hkddhe##5ddˏdd?Ll ,?#$04dHHd = d hkddˡddhhd`LsL#&F  ; s b 0` L+l$ Nsd#Lzm566ȱ5Ll H# wl m#͉LchL$m QRKLLsh$0LU$^`=8WW>X> 悅XXXL:^ g`L<^ l Jj bx bp,_;Ll  ~q$0P oՅ5R66R l ~ L%l $m0 =k $m#`$L#i)8#Ll  s s( L7bʊ# L-l m hxd5d$0H h`L^bLb$%/%5$ &5 &5e$$5e%%$&%$e$% Lk ׫ sHH ~qLPkHHh$0'ph | ZlWȥmW`L$|hXWXL-hm lmmLkl VYZZ{|| w ᐥlmmYZZ LxWXX ox ExYW# kXX 4=^W^0A, 9:: Ga.ghh 悅` A` \\ɾ,L<^hhZkKhLhhhe9e:: mLg jei `Ls j:,"hhhhLgɜEɝDɞLb Hɾɺдmhɾ Qp aj pi `p j` jLi j,d wlOZL^L^-L(dPL<^OPMNKLhhLg` Ls ҥ?ieCiLa,  aFL s a iLg ]hhh5h689H: H:HLHKHH6H5HHH` ui` pi` Qp j pi `p i` j jK$L%8eȢ_B_B`)&N> ȱI8gJJ hhge ghh f feLVt~w/z*|cYX ~uƀ1rP aziP | |iɈ { T}i8Huiiu x BU 瀩{h z` |] az 뀩]Laz | i8fe.șR0șRmymlylkykjyj00ڊIi i/ȄȪ)Re.șRI)ЪR0.ȩ+f.8f-RER/8 i:RRRRRR`y`'d |Ģ { &{f o0`LB ` H$ge &{h 80 '~L}H |h |zEn{iLxf d$h0Ly ef q80fL}COt#t$JZ mLKjk8 | ~Lm ^|-$nșRnȩ0iL f~ azea~ } \~ } &{e B{e yx %}ei0nihoi8傐IL|`7 z!L|iD8$n yiLyn)FjjjLyiɠ %}nnI*imLyjklm` s e-o+ smo..IE)2s S -+fh r$h8fL}fg s$gPf8ef B{f65m5l5k5n j5i`d,]WXX566 |m5 ^|l5k5n %j5i5` |m l)m |m`znth` |ht`i  y my`i n*` |jkjI*mlinLyFn`nEz0ʢiH xv5ui`uei0,iiL0y{n`nI0hhL,yLy |i{ xi` |={{ {LZ{ zL{ |8ii zivjwk xlym* 蕁24(y&x&w&v0⨥ymyxlxwkwvjvL{@jjj)(L{L<^~jklmL y56y^Vy dv88; 54541r |LiHi z xz U{y xy рz xh '~z zLz z~ zm zl zk zj zL{LyJ eyexew~ev~f~ffffJ`5665y5x5w5zEn{z lkj |yjJkjlkmlmi in`emeymlexlkewkjevjLkyi&m&l&k&j8iIiii9fjfkflfmf`nIngjIjgIm lkj`L<^}i0vvvvvj`Lu 1eL5665`iɀ*iH i  @8 ei $ tutt tj ȡhn` t` 0RN0R 0R$n-RRR`i` p`5665i`$0BP?iH i hLt $mlmkljkij8ihn`L,$0DpA q enHi80 @Lyu \ % @u ćh `&m&l&k&j`2L0 և yxLT}$0pLI oբRLi `u LLi u Lui0 ܆ چ,,% п 擩lm0UVUO / +'L U)łiV VL LI 8U 7ȱ7 UU ЯUVULU7V8 p L LZ U qUU qUH85h688V77U U 5qUWȥ6qUX7qWWȥ8qWW ٥IiV) V LVU?e8V je?e>e8U>e5V?e665e=e@eee8 hx57 xLCx8I77JJ8 88` H dhjL YYHH dYZZ oxhhe5566ɂ逅66 wZZY L YIL=m ) s  ʊHYImm shhhhYhZhZHHE` 3YZZ xLCxl5Ym6Z78ߠȘH yxy hL3 j kqHHHH s H , ,H s s ~qhh 1 lhhXhXhWWȱW7ȱW8 eLNLXZWX ` GGH HlHmHmH khmhmhlh hk8j7k8Lޒ e7788IjJkJk )lmm'&`UR{R||L̐: / cRRȹRRȥ Rл s `Lsh sh5lh6mh6mhxhyhy x x Qȱx7ȱx88 Ƃ 7e7888ł75 楽HHȱȱ6H6H5H s =к bqhhh Lshhhh` ~R/mZlmYZ PujHkki^^`H"h{||kjkȱ{ "ie{||  V{|56|6 w&5L<^i8e` ě u8A?pB@B@ )onL܇jkL| Nsdȩ8 NsdL2Lа,L<^ A s ׫ g iq s= sXHXHWHHHH ajL? b rLiq HHH s iqhhh5ȱ6ȱLI65 g5H6 2|Hgȑgʆ5a g5ȑgȥg <^^^__ɂ逅____<;إy6 hlhm^Ȋ^LL:^ȥ5^H^h ͎el5emȆ6п  ͎e^e__ iLZe *& eegggegȱgehh Ľ ,L<^  8` ^LQ ŠhhL6 $P 訽5 ͎56ۥ 8ee L:^?be^@ce@c __^_ \__^;<<6  $Phihi^Ȋ^6h656H |mHlHkHjHiHl5 8eeghh^__` HHH H bqh hhhn0iɐ1 }L yxL%}\i FHHHHH 6hhhHHlm ,҄ shh)>=>hgh<<;[a{p ;<<ccb? @c@ube.a{bb,\(eb cc`ebcA[8饰 a{8`8\e@@He? ]@@?hbbb0 ea ȑbc8L@ @@h5H ?5^6_6_hhXhXhWLk ? % ?Џ`5566` xe5566ɂ66` s p `  zLseff z.!'$ iߪ$ 0 H8eAi\h$ P8 (Lt$ 0}5}} ,kk} , kklm Lٓ[ 80@ 6 2`  dkH) ojhJJJJ ojL 0:i`L<^ jHHHHHH s jhLyqhhh6h6h555_ȱ5VHHHH %L/5H6H6H7V8U #   785U6VLΔU7e778ҥU^V_bcF_hcCgDhebbc \^__`U8傅UV` |UȱU` L<^ |UUƜ0ƛ ӗWqeWȱWqei W` |8UUWȥVUX`UeUV` 痠U` hh R LsL  z (L[ Rީ  @Y%(&:$LU s և ^|iHn %jHkHlHK s n ZlHmH5 s iH jHH楩e ) ,LsLR e  kLv;e je vk;ek Lje s ʊ0  ek;e`L HIJh*;e) H jehe;eed?eehi?e ueL5e qrL,op ɩ`et?ek;e`hZ L<^hZL<^L=ee>e ?e`opqrst !e5ehe?eLje LjeR=89R>:>:iR:RiRRiRL`8(RR(`EeFe  s bq Vml0L dMeL` bՍe :RRRiRȐȰRe9Re: J 2IHJh*=>> 95:6:6R L1 1Lԫ`L:^  aFL^R, ue 5eLڭR7>e?e5e?eJeKeLje֩ u>e?eՍ "] a a$% iLg֢   sLj$%`8f  a e ; ` s ɩ` YLILcopL7 z0xH ׫$0_ ;h8fH`aai shH2 h zJJJJf Ik ɩ` ̬ t os YLA ևLLק jWXX` ׫$`pd8isŠt`dyoopd8ip`J uv`&&&8孪孪宐橈`! @ uA?B@B 悅@=g>h>h ]=i>j>k a=g8i>hj>h 悅ki=5j>6k6k;el)@7Me0u(> ƬƫHH ,hohp` ɩCe0R`ȹR`ee?e@e ue 5e T L=e;e`Lso`n}pm aa`dyoh`L)i   HH `TH..TH..TH..THATS ALL, FOLKS!R`RT RT`#RT ( "Parts file Create and Add program"&"Type 1 to Create a parts file":/("Type 2 to add to an existing parts file."2:"Your selection: ";a$<a$=""1000 Fa=a$)Pa100,400Z5$d:"name of new parts file: ";a$ na$="("Name of file to dump: ";inputfile$ #1,Inputfile$ console=0$"FIle to dump to: ";outputfile$#2,outputfile$check$=outputfile$,1,3)8#check$=".co"check$=".CO"check$=".Co"console=1(console -ž#165 2#1;a$ 7#2;6 2=23:=11<"Name of file to dump screen to: ";filename$d#1,filename$n"readcrt.inv"xvertical=123=verticalhorizontal=180=horizontalreadc(@value%)#1;value%);horizontal#1 vertical ,=23:=1d numbers, this program will permit a screen text printout whenever a keyboard input is allowed.r to dump: ";rec0rec=0652#1,rec;a$7#2,rec;a$<47Aconsole=1:=23FK("Name of file to dump: ";inputfile$ #1,Inputfile$ console=0$"FIle to dump to: ";outputfile$#2,outputfile$check$=outputfile$,1,3)8#check$=".co"check$=".CO"check$=".Co"console=1(console -ž#165"/"record numbe#1,vertical;cum$ cum$="" vertical ,=23:=16console=1:=23FK 2=23:=11<"Name of file to dump screen to: ";filename$Ffilename$,,81d#1,filename$n"readcrt.inv" scum$=""xvertical=123=verticalhorizontal=180=Horizontalreadc(@value%)cum$=cum$+value%)horizontal:a$<>"y"a$<>"Y"430#1,rec;rec$:"Record added."430#:"End of parts file program.";a$&a$)>30a$=a$1,30)0rec$=rec$+a$+"\"::"Location: ";a$Da$)>10a$=a$,1,10)Nrec$=rec$+a$+"\"X:"Quantity on hand ";a$ba=0:a=a$):a)<>a600lrec$=rec$+a$+"\" v:"Record is: ";rec$;" OK?" "";a$'a$=a$,1,1)"5 xa$,,64 "Parts file ";a$;"created."5):"Name of existing parts file: ";a$ a$=""5 #1,a$ :"Part number to add: ";a$ a$=""5 a=a$)a<1a>32767a)<>a500 rec=arec$=a$+"\"!:"Description: "a$;<50Aconsole=1:=23FK