LnSOS BOOT 1.1 SOS.KERNEL SOS KRNLI/O ERRORFILE 'SOS.KERNEL' NOT FOUND%INVALID KERNEL FILE: xةw,@  ȱlmi8#)!)BEST OF ON THREE BASIC PROGRAMS &'.PATTERNS.PART1 Q7!R )RONS.DEMO \JQ*!R .SPREADSHEETING ,Q)!R 'TIMESET tQ,!R +TIMESET.INVQ,!+%SEG.T jLŸ/ WALKER  Q*!R ,KEYPRESS.DOC -Q5!R,KEYPRESS.INVQ5!/ KEYPRESS.TEST Q5!R *MENU.MAKER  L;-MISC.DOC.TEST Q0!R& (MISC.INVQ/!! &DEMO.2 Q/!Q&DEMO.3 Q/!QDISKNAME.DAT R!R*FORMAT.INV: Q!+FORMAT.TEXTA%HQ!-GRAPHING.DEMO `Q*!R*)HEADFIRST J(Q)!L+-BRIANS.COLORS Q6!S- .BRIANS.THREEME Q6!S6 -BYTE.TWO.TEST Q5!R -CIRCLING.DEMO qQ,!R,CNTL.C.MAYBEQ6!('&DEMO.1 Q/!QIII.BSB.08u' +AIRPLANE.SSj Q+!R(BAS.BOOT Q0!S -BASIC.FOR.D.T Q)!R' /BASIC.T.E.W.PRG eQ6!R BENS.SUPER.SLOT d GQ+)BGRAF.INV >dLԡm#i㰼m#iЕOLԡȱfg hi !dLԡ憦  Ljmkm l y`2 Lԡ8(Je稽)ʈ@Lr GRAFIXMO hhhh  HH`420.,*)&#"! Rhhhhhh    HH`DB@><:983.+('&$h J)` `!0 nljhfdcbQNMLJFEDCBA<;6hhhhhh  HH`420.,*)&#"! Rhhhhhh    HH`DB@><:983.+('&$hhh-&#  P  `"hhhhhh  HH`420.,*)&#"! Rhhhhhh  B B HH`yyP`GB HH`)r` @A>~|zxvtslgbWTSRPMED=hhhh   HH`420.-&#  Phhhh   HH`420.h   HH`420.-&#  Phhhhhhhhhh  HH`DB@><:86421.+*)'jhhhhhhhh    X XLJFE>987410/-   `+(%" Bhhh h h h hh hhhhhh  HH`ZXVTRPNLJHFDB@<;85431hhh    `OLIHEDCB?<;8541.+*x  `"hhhhhhhh    HH`XVTRPN.GRAFIX jj# \\JHFD=;9210-,+*)!   v Q )``.`5`=`C`E` `BGRAF (C) APPLE 1980j @@@@ @``` kLK``9(89:9g:h:h L89:mm95:6:6hg gh h 99 O S   L `ee m`iɂ`0`hIhJh\h] wh]h^ w\\ ]] ]L ]L\A \A JHIH`i8\i]i\`\]`K`M %b&*L+ 16>:)    kL GA3/1.01/LIN 詏 )x `a^]NMJGF>=<10/.+* )) y xHHHJJiH 詏 鮀 `}wqnkjba_\[ZYXWVURQ$hhhhhh HH H)HHH`20+*)Hhhhhhh HHHH`&$<SWRITERWBUF  RETADDR c _ < 8 INITCHK O ITCHK WBUFLEN Y UFLEN SOSWRITE\ SWRITERWBUF T L H D @ DOTAT DOTAT RWBUF ZRNJFCALCABS BRETADDR SOSDSTATSDSTATGSCB  MOVEREL MOVEREL INITCHK ITCHK WBUFLEN UFLEN SOSWRITEWBUFLEN !UFLEN SOSWRITE$SWRITERWBUF BUF RETADDR ieB>INITCHK UITCHK MOVETO MOVETO  WBUFLEN _UFLEN SOSWRITEbSWRITERETADDR INITCHK ITCHK RANGECHKNGECHKWBUFLEN UFLEN SOSWRITESWRITERWBUF  INITCHK ITCHK FILLPORT FILLPORT RETADDR tpINITCHK ITCHK PENCOLOR PENCOLOR RANGECHKNGECHKWBUFLEN UFLEN SOSWRITESWRITERWBUF |x FILLCOLO FILLCOLO TRETADDR  SETCTAB SETCTAB  INITCHK ITCHK RANGECHKHKWBUFLEN UFLEN SOSWRITESWRITERWBUF  'SOSWRITESWRITERWBUF  RETADDR PLINITCHK sITCHK VIEWPORT VIEWPORTWBUFLEN }UFLEN SOSWRITESWRITERWBUF  xplhd`\XUFLEN SOSWRITESWRITERWBUF ~zvrRETADDR $ INITCHK ITCHK XFROPTIO XFROPTIORANGECHKNGECHKWBUFLEN UFLEN #ITCHK WBUFLEN DUFLEN SOSWRITEGSWRITERWBUF ?:72-(SYSFONT SYSFONT RETADDR njDRAWIMAG DRAWIMAGINITCHK ITCHK WBUFLEN RETADDR INITCHK ITCHK RANGECHKECHKWBUFLEN UFLEN SOSWRITESWRITERWBUF  NEWFONT NEWFONT INITCHK =+SOSWRITE@.!RWBUF  83& INITCHK uITCHK GRAFIXON GRAFIXONWBUFLEN UFLEN SOSWRITESWRITERWBUF zBUF GPGSREQDLGRAFIXMO GRAFIXMORBUFLEN 9RANGECHKwWBUFLEN ASOSWRITERWBUF \SOSREAD GBASADR TSOSSMARK$INITCHK ITCHK INITGRAF INITGRAFWBUFLEN RETADDR ISOSDSTATGSCB kSOSOPEN INITCHK READPARM5CREFNUM DWBUFADR ?BMOVCHK RBUFADR 7WRITEPAR=SREFNUM FRREFNUM 6WREFNUM >INITFLG KSOSCLOSEhhhhhh HHHH`&$<D^Z FpHx  )) y xHHHJJiH 詏 鮀CALCABS  ABS RETADDR  SOSDSTAT SDSTATGSCB INITCHK  ITCHK DOTREL DOTREL WBUFLEN  UFLEN SOSWRITE SWRITERWBUF  RETADDR % ! INITCHK  ITCHK LINETO LINETO WBUFLEN  UFLEN SOSWRITE SWRITERWBUF     CALCABS x q ABS RETADDR AT' *JP * invokable module from Business Basic. *JZ * *Id * Your Basic programs can now format disks whenever needed and *In * thus will not force !"#$%&'()*sic Version) | O N T H R E E | *J2 * ------------------------------------- | June-July, 1983 | *J< * ------------------- *JF * This program demonstrates how easy it is to use the 'FORMJ *******************************************************************J * Formatting Utility: Documentation and ------------------- *J * Test Program | Copyright 1983 by | *J( * by Martin Nichols (BaYLOC  SDSTATGSCB  INITCHK  ITCHK XLOC XLOC RETADDR     SOSDSTAT SDSTATGSCB   INITCHK  ITCHK YLOC  ASADR SOSSMARK SSMARKRETADDR  z v INITCHK  ITCHK XYCOLOR XYCOLOR RWBUF  F SOSREAD  SREAD RETADDR  SOSDSTATGPGSREQD GSREQDSOSCLOSE SCLOSEGRAFIXMO AFIXMOGLOAD GLOAD RBUFLEN  N RWBUF    SOSREAD  EAD GBASADR GBASADR ( ASADR SOSDSTAT~ SDSTATGSCB  INITCHK { ITCHK CREFNUM  EFNUM RBUFADR  ADR SREFNUM  EFNUM RREFNUM  M WBUFADR   ADR GSAVE GSAVE WREFNUM F  M GPGSREQD5 GSREQDSOSCLOSE> SCLOSEWBUFLEN 8  LEN SOSWRITE; SWRITERWBUF C F INITCHK  ITCHK BMOVCHK  OVCHK INITFLG  ITFLG RWBUF  F SOSDSTAT" SDSTATGSCB % CB INITCHK  ITCHK CREFNUM  EFNUM  T P SOSDSTATj SDSTATGSCB LINEREL LINEREL INITCHK g ITCHK WBUFLEN  UFLEN SOSWRITE SWRITERWBUF } d ` \ X RELEASE RELEASE  the user to boot the System Utilities *Ix * diskette to perform this function. *I *******************************************************************Ba.to.z$="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"-a.to.z.and.special$=a.to.z$+"1234567890."Avalid.disks$=".D1.D2.D3.D4.d1.d2.d3.d4.U1.u1.PROFILE.Profile" œ1801900:"FORMAT.INV": Load the Invokable ModuleFormatDisk(%0,%0,@er%)':Screen.Off$=14):Clear.Screen=29ETitle$=Scroutine."C:"Error #16: This means that either the disk (.D2 - .D4) or";B" the formatting device";12);"driver (.FMTD1 - .FMTD4) is";?" not configured into the SOS.DRIVER file";13);"on the";13);" boot disk.":B"Error #39: This mea the number of any";8R" error that occurs during the formatting process.".500: Get keypress to go to the next page1Title$=Screen.Off$+"-- Documentation --":510>=4:"There are only a few error codes that will ever be"; " returned by the .D4).":E*"The variable 'volume.num%' is the volume number that you want";A4" on the disk you are formatting. It will appear on the";F>" directory listings from Business Basic and Apple Writer ///."@H:"The variable 'er%' is used to returnform this";" function"1:"To use, enter the following statement:":; ")PERFORM FORMATDISK (%disk.num%,%volume.num%,@er%)":C"The variable 'disk.num%' refers to the number of the floppy";> " disk that you want to format (1 - 4 for .D1 - cumentation ---1Title$=Screen.Off$+"-- Documentation --":510A=4:"The FORMAT invokable module allows all Basic programs";E" to format a disk. You will never again have to force the";E" user to boot the System Utilities Diskette to per Go back to the Main Menux:7);"Bad volume name!"A:"It must begin with a letter (A-Z), then the rest can be";D" any combination of letters and periods ('.'). It must";2" also be less than 16 characters in length." --- Dor%#500:290: Go back to the Menu&=16:=11:" successful":500:290-:7);"This disk is already formatted!"8:"Do you really want to format it (Y/N) ";:a$:a$("Yy",a$)*2:500:290: Go back to the Main Menu.w1400:500:290:er%=16"device ";disk$;" or .FMTD";disk.num%;" not configured into your system."0er%=39"no diskette in the device ";disk$=er%=43"diskette in device ";disk$;" write protected."Aer%<>16er%<>39er%<>43"unspecified type - error #";especial$,char$):ۺ13997:"Enter the volume number (0-255) ";:volume.num%disk.num%=disk$,1))=16:"Formatting..."-FormatDisk(%disk.num%,%volume.num%,@er%)"er%=0disk$,"/"+name$:1299*=16:7);"Error while formatting, ";Wsk$)=0=8:7);"Cannot format ";disk$:500:290 $œ1100 .#1,disk$ 81300L:0V:"Enter the new name of the disk ";:name$`name$)>151399'ja.to.z$,name$,1))1140:ۺ1399%ta=1name$):char$=name$,a,1)+~a.to.z.and.a$::"79c";Title$:: --- Format a disk ---1Title$=Screen.Off$+"-- Format a Disk --":510:=4:"Enter the device whose disk you want to format:"-"(.D1 - .D4) or RETURN to exit ";:disk$disk$)=0500:290Hvalid.disks$,di0);"3. Catalog a disk"^10);"4. Quit":+h8);"Which option ";:a$:x=a$,2)) rx<0x=0x1000,2000,3000,42008);"Please enter 1, 2, 3 or 4":=-2:360!:"Bye!"::".D1/MENU.MAKER"4=24:"79c";"Press any key to Continue";:the name of this or any other Invokable Module."::500E"Title$=Screen.Off$+"FORMAT INVOKABLE MODULE Documentation & Test" ,510:=446:8);"Select one of the following options:":@10);"1. Format a disk"J10);"2. Documentation"T1reen.Off$+"FORMAT INVOKABLE MODULE Documentation & Test" 510:=4B"Before any Invokable Module can be used, it must be loaded";:" into the system by the following Command Format:"9:")INVOKE FORMAT.INV"::"where FORMAT.INV can be";>" ns that an I/O error has occured during";:" the formatting":12);"process. Possible causes";2" include a bad diskette, no diskette in the"<12);"disk drive, or the door of the drive is open.":G "Error #43: This means that the disk in the disk drive is write-";2 "protected and can";11);"not be formatted."C :"As soon as you call the routine, formatting begins. Thus";?$ " check to see if the disk is already formatted BEFORE";D. " performing the routine. Otherwise you could ***************"V"* AN EXAMPLE OF SPREADSHEET TYPE ENTRY USING BUSINESS BASIC ON THE APPLE /// *"V"*******************************************************************************"interval=5:400%"79c";"SETTING UP PLEASE WAIT"intervalmns,rows))xcontrol$=8)+21)+10)+11)+27)C Screen setup, has nothing to do with working part of program,; sets up screen title and decribes workings of program :=24V"**************************************************************** * PHONE 316-583/5512 *K# *********************************************************************Cd Set array size variables, dimension array, set control string$i for cursor keys and escape keyncolumns=20:rows=15sdemoarray%(coluAn example of spreadsheet type input for * BY: DEAN E. RUSSELL *K * Apple /// Business Basic using the screen * P. 0. BOX 535 *K * control codes and window commands that are * EUREKA, KS. 67045 *K * available in the system. pts Spreadsheet *L * type commands and processes them. It isn't anywhere near *L * complete, but it is a good start. *K *********************************************************************K * +-./012345678-------- | O N T H R E E | *L * by Dean E. Russell | June-July, 1983 | *L * ------------------- *L * This is a good outline of a program that acceL *********************************************************************L * ------------------- *L * SpreadSheeting From Basic | Copyright 1983 by | *L * -----------------h$ ž#13200 #1;line$ line$$ =23500:=5:Clear.Screen)  3060< :7);"Error in cataloging ";path$;" - bad pathname."% :500:290: Go back to the Menuuding the A73 and A143 high density"; " disk drives."# 500:290: Go back to the Menu --- Catalog a disk ---2 Title$=Screen.Off$+"-- Catalog a Disk --":510; =4:"Enter the directory you want to catalog ";:path$ :œ3199 #1,pat you want to rename, and '/NEW.DISK.NAME' is";C " the new name. Remember to add the '/' before the name or";+ " the RENAME command will not work.":D "This routine will also correctly format all of the Micro-Sci";C " disk drives, incl 'BLANK.DISK'. Since you";D~ " may want it to have a different name, usethe RENAME command";& " of Business Basic like this:":$ ")RENAME .Dx, /NEW.DISK.NAME":B "Where '.Dx' is the name of the disk drive (.D1 - .D4) that";E " holds the disk erase a disk";"8 " with important data on it."._ 500: Get keypress to go to the next page1` Title$=Screen.Off$+"-- Documentation --":510Dj =4:"If the formatting process encounters no errors, the disk";Ft " that was formatted willhave the name=8:400t"Example has a ";columns;" column by ";rows;" row array. The array is loaded to show operation":interval=1:400e"The last two digits in the number are the column and the first two are the row":interval=1:400?"You can: 1. Move around in the array with the arrow keys"S" 2. change the highlighted number to any positive integer up to 9999"4 " 3. Exit program with the escape key";, Fill demonstration arrayM1column=1columns:row=1rows:demoarray%(column,row)=r"79c";"HORIZONTAL ARRAY NO."19,619,16::"VERTICAL"21,621,16::"ARRAY NO.",::=5:m=110:=23:=+1:"##";m;:&=5:=25:n=16:"3#,xx";n;::N25,654,16::row=110:column=16:"5#";demoarray%(column,row);::I *$:enter$)<48enter$)>57: change or enter variable:7);:D Main program control subroutine. Lines 2010 to 2040 set up theC spread sheet type display and loads the first display section! of the demonstration array.+=0:=4:2  Subroutine to stop main loop and end program%repeat=1::F Change demonstration array variable up to four digits subroutineenterlength=14:work$=work$+enter$:demoarray%(column,row)=work$):"5#";demoarray%(column,row);:=hhold:enterroll to produce blank row. Print new row.vvshift);:row=row+rcounter:=1::"2#";row;::columnpr=leftcolleftcol+5:"5#";demoarray%(columnpr,row);:+  Return to working cell and highlight.7=hhold::"5#";demoarray%(column,row);:=hhold:olumn,row);:row=row+rcounter:=hhold:=+rcounter::"5#";demoarray%(column,row);:=hhold:< Select left column window variable and erase highlight_presentcol=(+5)/5):leftcol=column-presentcol+1::"5#";demoarray%(column,row);:=hhold1 Sciables2direction=4vboundry=1:vshift=11:rcounter=-1E Checks for top or bottom array row if true rings bell & returnsrow=vboundry7);:B If not top or bottom row of window then move cell up or down<10>1:"5#";demoarray%(c is reset for vertical control.Jflag1=0vhold=-1:hhold=hhold+2:flag1=1:23,655,15:=vhold:=hhold3 Direction 3 sets down arrow control variables4direction=3vboundry=rows:vshift=10:rcounter=11 Direction 4 sets up arrow control varolumn,rowpr);:5:"5#";demoarray%(column,row);:=-2*(-hhold):hhold=::column=column+ccounter:"5#";demoarray%(column,row);:=hhold:80 If not right column of window thention=1hboundry=1:w1=25:w2=29:hshift=5:ccounter=-14 Direction 2 sets right arrow control variablesDdirection=2hboundry=columns:w1=50:w2=54:hshift=251:ccounter=1F Checks for right or left array column if true rings bell returns!column=hbone. If flag 1 is 1 thenB current window is for vertical control. Window and cursor is" reset for horizontal controlHflag1vhold=+1:hhold=hhold-2:flag1=0:25,555,16:=vhold:=hhold3 Direction 1 sets left arrow control variables= direcow*100+column:: 6 Go to main program control ;2000@ Clean up and exit programE:::".D1/MENU.MAKER"; Vertical scroll and delay subroutine for screen setup(i=1interval:10);:j=15:::@ Horizontal shift & control subrouti Lines 2510 & 2515 set starting values for variables and the *I * vertical control window. * row=1:column=1:flag1=1! 23,655,15:=1:=3:work$=""I * Highlight cell for row one, column one. *5 hhold=::"5#";demoarray%(column,row);:=hholdI * Key input loop. Takes key input and sends it to the proper *I * subroutine for processing. *" repeat=01:repeat=-1:enter$' key=FORMATDI FORMATDI id`]ZYSOMIHA>;:92/,+*#    ~zf_[XTRPLKJIGCBA@>:987510/.,('&%U!.[\U`a`+c=8+0+ [`- @ m@m.@/ A mAm0A1 B mBm2B4 C mCm5"6 D mDm7!A***** B* @ m  `|wvrqnkj`.`,-L!.,-`6*9Q>AVJ`P`a`]W^X[\U_W`X*[\ E*UФ*[\UЀ[\U;[\BLANK.DISKu' .FMTD/.D::Bhbhchhh#hhi05=ha "aL  >aL VaȑcHbH`IG".,-L!G0E.0,-L!G) >dLԡm#i㰼m#iЕOLԡȱfg hi !dLԡ憦  Ljmkm l y`2 Lԡ8(Je稽)ʈ@LLnSOS BOOT 1.1 SOS.KERNEL SOS KRNLI/O ERRORFILE 'SOS.KERNEL' NOT FOUND%INVALID KERNEL FILE: xةw,@  ȱlmi8#)!Ld9;<=>?GA3/1.0N> to FORMATDI enter$):key>47key<58900E direction=control$,enter$):work$="":findsub1=(direction+1)/2)% directionfindsub1500,700,800 :1 2 8$O^; * * ; *********************************************************************** 0.MACRO POP ; Pull a word from the stack 0PLA 0STA %1 0PLA 0STA %1+1 0.ENDM 0you want to use it from Pascal set the label * ; * 'Pseudo' to 0E0. The listing below is set up to assemble a Basic * ; * version of the routine. * * ; * use this routine. * ; * * ; * To create a routine that can be used from Basic, set the label * ; * 'Pseudo' to 0E8. If VER' file. Without them, the routine * ; * will not work and will return an appropriate error message. * ; * * ; * See the Pascal and Basic test programs for examples of how to; * *  ; * Just invoke (or Link) this routine and your programs can easily * ; * format diskettes. A note of caution: The drivers 'FMTDx' must be * ; * in your boot disks 'SOS.DRI * ; * This routine will work equally well with Apple 140K disk drives * ; * and any of the Micro-Sci drives. * * ; * This assembly language routine will enable your Basic or Pascal * ; * programs to format a diskette. You will never again have to force * ; * the user to boot the System Utilities Disk to format a disk. * ; * | O N T H R E E | * ; * by Martin Nichols | June-July, 1983 | * ; * ------------------- * ; * ; *********************************************************************** ; * ------------------- * ; * Formatting Utility | Copyright 1983 by | * ; * ------------------ @BCDEFGH.MACRO PUSH ; Push it back on 0LDA %1+1 0PHA 0LDA %1 0PHA 0.ENDM 0.MACRO SOS ; Macro def for SOS call block 0BRK ; Begin SOS call block 0.BYTE %1 ; call_num 0.WORD %2 ; parameter_list pointer 0.ENDM ; end of macro definition Get_Time .EQU 63 ; call_num for GET_TIME D_Write .EQU 81 ; call_num for D_WRITE D_Control .EQU 83 ; call_6" @@@@ "," @@@@ @"," @@@@@ "," @@@@@@","@ ","@ @"@@"@ @ ","@ @@","@ @ ","@ @ @","@ @@ ","@ @@@"@J"@ @ ","@ @ @","@ @ @ ","@ @ @@","@ @@ ","@ @@ @"6T"@ @@@ ","@ @@@@","@ @ ","@ @ @","@ @ @ "@^"@ @ @" @ @ "," @ @ @"," @ @@ "," @ @@@"," @ @ "," @ @ @"@" @ @ @ "," @ @ @@"," @ @@ "," @ @@ @"," @ @@@ "," @ @@@@"@"" @@ "," @@ @"," @@ @ "," @@ @@"," @@ @ "," @@ @ @"@," @@ @@ "," @@ @@@"," @@@ "," @@@ @"," @@@ @ "," @@@ @@"@" @@ "," @@ @"," @@@ "," @@@@"," @ "," @ @"@" @ @ "," @ @@"," @ @ "," @ @ @"," @ @@ "," @ @@@"@" @@ "," @@ @"," @@ @ "," @@ @@"," @@@ "," @@@ @"@" @@@@ "," @@@@@"," @ "," @ @"," @ @ "," @ @@"@**> * DATA USED TO PRINT LETTERS ONE SLICE AT A TIME. *> ********************************************************@" "," @"," @ "," @@"," @ "," @ @"@" @@ "," @@@"," @ "," @ @"," @ @ "," @ @@"@ *H * PROGRAM BEGINS BY DIMENSIONING ARRAYS... *H ******************************************************************&SLICE$(127),RECIPE$(127),TDPA$(9)> ******************************************************AME TO BE PRINTED *Hd * NUM-ASCII VALUE OF A CHARACTER IN NAME$ *Hn * TEMP$-A TEMPORARY STORAGE VARIABLE *Hx * STRL-A NUMERIC VALUE EQUAL TO THE LENGTH OF NAME$ *I< * SLICE$(I)-ARRAY FOR DATA USED TO PRINT CHARACTER SLICES. *IF * RECIPE$(I)-ARRAY FOR RECIPES USED TO PRINT CHARACTERS. *IP * TDPA$(I)-ARRAY USED TO PRINT OUTPUT *IZ * NAME$-USER INPUTTED Ne /// and Epson MX-100. *I * March 1, 1982 -- Michael Gardner *I( * *I2 * VARIABLE DICTIONARY *J * HeadFirst is a program that prints headings for '.Printer' *J * output etc... *I * *I * Writen for the ApplIKLMNOPQRSTUVWXYZ | O N T H R E E | *J * by Michael Gardner | June-July 1983 | *J * ------------------- *J * J *******************************************************************J * ------------------- *J * HEADFIRST | Copyright 1983 by | *J * --------- num for D_CONTROL Get_Dev_Num .EQU 84 ; call_num for GET_DEV_NUM D_Info .EQU 85 ; call_num for D_INFO Pseudo .EQU 0E8 ; Set for Basic. Change to 0E0 for @","@ @ @ ","@ @ @ @","@ @ @@ ","@ @ @@@","@ @@ "@h"@ @@ @","@ @@ @ ","@ @@ @@","@ @@@ ","@ @@@ @","@ @@@@ "@r"@ @@@@@","@@ ","@@ @","@@ @ ","@@ @@","@@ @ "@|"@@ @ @","@@ @@ ","@@ @@@","@@ @ ","@@ @ @","@@ @ @ "6"@@ @ @@","@@ @@ ","@@ @@ @","@@ @@@ ","@@ @@@@"@"@@@ ","@@@ @","@@@ @ ","@@@ @@","@@@ @ ","@@@ @ @"@"@@@ @@ ","@@@ @@@","@@@@ ","@@@@ @","@@@@ @ ",@@@@@ @@","@@@@@ ","@@@@@ @","@@@@@@ ","@@@@@@@"G *******************************ETTER OR NUMBER, IF NOT ERROR.*E ***************************************************************NUM<48NUM>1221680NUM<97NUM>9016800 ******************************************0 * CONVERT ALL CHARACTERS TO UPPERCASE. *0 ***************************************************jNUM<>321210 tK=199~TDPA$(K)=TDPA$(K)+" ": 8 Spaces between quotesK 1380E ***************************************************************E * CHECK TO SEE IF CHARACTER IS L***** NAME$STRL=NAME$)$STRL>131000.I=1STRL8TMP$=NAME$,I,1)BNUM=TMP$)DL **************************************************************DV * IF THIS CHARACTER IS BLANK ADD A SPACE TO THE PRINT ARRAY. *D` **************R" :=12?" PLEASE ENTER NAME FOR HEADING, LESS THAN 13 CHARACTERS."> ********************************************************> * INPUT NAME$ AND VALIDATE LENGTH AND STORE CHARACTERS.*> ************************************************************ :=12C"THIS PROGRAM IS CALLED HEADFIRST. IT PRINTS A HEADING UP TO"5" 13 CHARACTERS LONG ON A PRINTER(MX-100)."8"ENTER A 1 TO END, PRESS ANY OTHER KEY TO CONTINUE" ANS$ANS$=""960 ANS$="1"".D1/MENU.MAKE$(I+64)HI RI=110\RECIPE$(I+47)fIHp ******************************************************************Hz * PRINT USER INSTRUCTIONS ETC... *H *********************************************************92; A TO Z, *G  * (A=ASCII 65, Z=ASCII 90) AND 48 TO 57; 1 TO 0.(1=ASCII 48, *G * 0=ASCII 57) *G  ****************************************************************** 4I=126>RECIPE"015029048032126099099035031","127063002006012012024048048"@"030051051051030051051051030","060098099099063002006014124"G *****************************************************************G * READ IN LETTER/NUMBER RECIPES STARTING AT 64 TO "065099054028008008008008008","127062004008024048032126127"@"028062099099099099099062028","012044076012012012012012127"@"062099099003006012024024063","127006008016030003003031062"@"012028052100127063004004004","031030032032062031067035030"@"060034033097097097111034029","062033033097126100098097097"@"031063065064125001065126124","127072008024024024024024024"@"033033033097097097097063031","033033033033097097099118028"@"065065065065073073085099065","067035050030012028054099065"@"127028008008008008008028127","126002003003003003099098062"@l"034036040104120104104100098","032032032096096096097097127"@v"065099085073073065065065065","033049049105105101101099097"@"031033033097097097097097062","062033033097126096096096096"@"031017017049127097097097097","062033033126097097097097126"@D"031063096096096096096063031","060062035099099099099126124"@N"060032032096124096096096127","060032032096124096096096096"@X"031035032096103103101049031","033033033097127097097097097"@b**********************************G * RECIPES USED TO DESIGNATE WHICH SLICES ARE USED TO CONSTRUCT *G * A GIVEN CHARACTER LISTED---A TO Z, AND 0 TO 9. *G& *****************************************************************0@:**********************************G * READ IN DATA USED TO PRINT CHARACTER SLICES. *G ***************************************************************** I=0127SLICE$(I)IG **********************************************************************NUM>96NUM=NUM-32D **************************************************************D * READ INSTRUCTION LIST, GET CHARACTER SLICE, AND FILL PRIN- *D  * TING ARRAY. *D **************************************************************N=0(J=12532TEMP$=RECIPE$(NUM),J,3)<NVAL=TEMP$) FN=N+15PTDPA$(N)=TDPA$(N)+SLICE$(NVAL)+" ": 6 spacesZJdICn ******************************- ***************************************- * Graphing Demo -- by Brenda Shaw *- * ------------- *- * This program graphs functions of *- * your choice on the GRAPHICS screen. *- * See the program for de6,00e7'a=1670-26#'moveto(%0,%a):lineto(%279,%a)$'a.'c0,38c0,70c0,30c0,10e0x 00c0,01e0,01e0,01e0,00c0,01c0,07e0,0ff0,1ff8,1bcc,1bc6,19c3,1bc1,1bc0,03e0,01e0,00e0,01c0,03c0,0fc0,0cc0,0cc0,00e0x 0060,00f0,00f0,00f0,0060,00e0,01f0,01f0,01f0,01f0,01f8,00fc,00f6,00f2,00f0,00f8,00c8,00cc,00cc,00ce,00c6,00c@source%(46),%2,%0,%0,%16,%23)x+drawimage(@blank%(0),%2,%0,%0,%16,%23)yy=yy-26:yy=9yy=191"220=27:".D1/MENU.MAKER" 500x 0180,03c0,03c0,03c0,0180,0380,07c0,0fc0,1fe0,1fe0,0ff0,07b0,07d8,07cc,07c4,06c0,06c0,0ec0,1cgrafixmode(%1,%1)initgrafix fillport grafixon!10000: Draw Backround lines 500 yy=191x=02695moveto(%x,%yy),drawimage(@source%(0),%2,%0,%0,%16,%23)-drawimage(@source%(23),%2,%0,%0,%16,%23)-drawimage([]^d the TEN() *- * function of BASIC. *- *************************************** œ20100:"BGRAF.INV"dinitgrafix:nsource%(68),blank%(22) xx=068a$source%(x)=a$)xx=022:blank%(x)=0:- ***************************************- * Ron's Walking Man -- by Ron Puckett *- * ----------------- *- * This program shows how to do simple *- * animation using the DRAWIMAGE pro- *- * cedure of BGRAF.INV anANS$^ANS$="1"1000h".D1/MENU.MAKER"r ***********************| * PRINT ERROR MESSAGE * *********************** :=12E"YOU'VE ENTERED A CHARACTER THAT THIS PROGRAM DOESN'T RECOGNIZE"" USE ONLY A-Z AND 0 TO 9" 1000******************** I=19.TDPA$(I)="": No spaces between the quotesI(" **********************************(, * OFFER USER OPTION TO RUN AGAIN *(6 ********************************** @:=12&J"TO PRINT ANOTHER NAME ENTER A 1" T**************************C * PRINT 2 LINE FEEDS TO PREPARE FOR NEXT LINE. *C ************************************************************* #1;10) #1;10) ************************ * CLEAR PRINTING ARRAY * ***********************************Cx * OPEN PRINTER FILE FOR EPSON MX-100. *C *************************************************************#1,".PRINTER" I=19#1TDPA$(I)IC ***********************************tails. *- *************************************** œ20100:"BGRAF.INV"dinitgrafix:+n * Initialize Graphics Parameters *x#1,".GRAFIX"Grafixmode(%2,%1)Fillcolor(%15)Pencolor(%0)- * Draw the x and y_abB$(I),"BASIC 0")700B$(I),"TEXT 0")740B$(I),"CAT 0")960B$(I),"FONT 0")1660B$(I),"FOTO 0")1730400A$="RUNNING "+B$(I),16,B)"79C";A$;:=0B$(I),16,B):A$="LISTING "+BOS=44:I/2<>I/2)I=I+1&I2=-1:I=I-2:NIBOTM<30XTHPOS=44I=IBOTM/2)*2:=+IBOTM/2)-1:0b=+IBOTM/2-.5):I=IBOTM:I/2=I/2)I=I-1lvB=B$(I),16)," ")-10 =Q:WW=0A=:A=21A=9oldprefix$=A=31110A=27:=".D1":980A=13630=THPOS:B$(I);A<8A>11400A-7500,520,550,580:=THPOS:B$(I);:380: 500THPOS=4:I/2=I/2)I=I-1I=IBOTM THP="BASIC 0":40,A$="TEXT 0":406A$="CAT 0":40@A$="FONT 0":40JA$="FOTO 0":40TA$(L),"BLOCKS")370*^=27:=19:"FREE MEMORY AVAILABLE: ";h=7:=20:"80C";A$(L);$r:=5:THPOS=4:I=1:IBOTM=J-1:480|Q=:=26:=21:140> selects; sets Prefix to .D1; aborts."12);::"80C";a$;:d$=DISKNAME$$=23:=0::"80C";d$;::12)1,180,22F=3:=14:"This /// SIG Disk is \^ 1990, Washington Apple `, Ltd."=4:B$(1)="":B$(2)="""A$cefgh %(511),C$(20),name$(20):=10:=0n: GOSUB 1120 x=+B$(I),16,B)140 PREFIX$=.D1 #1, ž#1180I=0I=I+1:#1;A$(I):170#1 L=I-1j=1:same=0:/#9,".D1/DISKNAME.DAT":#9;DISKNAME$:#9Ta$="{,|,~,}; J/2)=4:=+1:ۙ=44PB$(J);:J=J+1ZI:8dA$(1000),B$(1000),CT(x):z=280+32*x:q=96+16*y+f=0f=1:Dotat(%z,%q):ەLineto(%z,%q) GrafixonxMoveto(%0,%191)+#1;"{ ANY KEY RETURNS TO MENU.MAKER }"a$::".D1/MENU.MAKER" the function ";+r"you wish":"to graph, enter 'RUN', ";|"and press 'RETURN'.":-"If it is the function you wish, then ";(" enter 'CONT' and press 'RETURN'." 420:T(A)=A)$ * Graph the current function *x=-99.1!y=:z=284:q=99+16*y,Moveto(%z,%q) 1#1;y6y3@ * Define the current function to be graphed *+J=10:"FN T(A) as shown below is the ";)T"function currently in the program.")^:"To change the function, retype ";.h"the - ENTIRE - line with axis for the graph *:FillportMoveto(%280,%0)Lineto(%280,%192)Moveto(%0,%96)Lineto(%560,%96)1 * Put the x and y coordinates on the axis * x=-88y=94:z=277+32*xMoveto(%z,%y) #1;xx y=-55"y=0310$(I),16,B)$=01:=0::"80C";A$;::12)E=23:=0::"79C";"PRESS ANY KEY TO HALT LISTING"::2,280,21 840#2,B$(I),16,B) ž#2910*#2;A$:A$:12304810 >:120*H:=23:=0::"79C";"CONTINUE...?":0RC$:C$<>"Y"C$<>"y"C$<>"N"C$<>"n"850\C$="N"C$="n"1000;f:=23:=0::"79C";"PRESS ANY KEY TO HALT LISTING": p840z2,280,21K:=23:=0::"79C";"TO PRINT OR RETURN TO MENU, HIT THE SPACE BAR":C$:C$<>" "930:ۺ1000 >C8:"Owner's P >B8:/FL1+B7 >E7:/FR"--0-- >D7:"ntal fee >C7:"Hourly re >B7:/FL1+B6 >E6:/FR"--0-- >D6:"rs / week >C6:"Owner Hou >B6:/FL1+B5 >F5:/FL" % >E5:/FR"--0-- >D5:" bracket >C5:"Owner Tax >B5:/FL1+B4 >G4:" % APR >F4:/FR"--0-- >E4:(E3*((F4/100)*F3))/2--0-- >D12:"eck >C12:"50 hr. ch >B12:/FL1+B11 >E11:/FR"--0-- >D11:" per hr >C11:"Avg. Fuel >B11:/FL1+B10 >E10:/FR"--0-- >D10:" per gal >C10:"Fuel cost >B10:/FL1+B9 >E9:/FR"--0-- >D9:"ee hrs/mo >C9:"Average f >B9:/FL1+B8 >F8:" % >E8:/FR"--0-- >D8:"ercentage:/FR"/day >D19:/FR"/hour >E16:/FR"--0-- >D16:"o >C16:"Misc. / m >B16:/FL1+B15 >E15:/FR"--0-- >D15:" / mo >C15:"Insurance >B15:/FL1+B14 >E14:/FR"--0-- >D14:"check >C14:"1800 hr. >B14:/FL1+B13 >E13:/FR"--0-- >D13:"heck >C13:"100 hr. c >B13:/FL1+B12 >E12:/FR"4/F3)/12)/30 >D22:((E4/F3)/12)/(((E6*4.34)/30)+E9) >C22:"Payment >B22:"Interest >H21:12*F21 >G21:3*F21 >F21:30*E21 >E21:((E3/F3)/12)/30 >D21:((E3/F3)/12)/(((E6*4.34)/30)+E9) >C21:"nvestment >B21:"Capital I >H19:/FR"/year >G19:/FR"/qtr. >F19:/FR"/month >E19>B25:"Fuel Cost >H24:12*F24 >G24:3*F24 >F24:30*E24 >E24:/FG((E6*4.34)/30) >D24:/FG+E7/7 >C24:"wner hrs >B24:"Average O >H23:12*F23 >G23:3*F23 >F23:30*E23 >E23:/FG+E9/30 >D23:/FG+E9/30 >C23:"ee hrs >B23:"Average f >H22:12*F22 >G22:3*F22 >F22:30*E22 >E22:((E*F27 >F27:30*E27 >E27:+D27*(E23+E24) >D27:(((E13/100)/18)*17) >C27:"heck >B27:"100 hr. c >H26:12*F26 >G26:3*F26 >F26:30*E26 >E26:+D26*(E23+E24) >D26:.5*(E12/50) >C26:"eck >B26:"50 hr. ch >H25:12*F25 >G25:3*F25 >F25:30*E25 >E25:+D25*(E23+E24) >D25:+E11*E10 30 >F30:30*E30 >E30:+E16/30 >D30:+E16/E9 >B30:"Misc. >H29:12*F29 >G29:3*F29 >F29:30*E29 >E29:+E15/30 >D29:+E15/E9+(E6*4.34) >B29:"Insurance >H28:12*F28 >G28:3*F28 >F28:30*E28 >E28:+D28*(E23+E24) >D28:(E14/1800) >C28:"check >B28:"1800 hr. >H27:12*F27 >G27:33*F33 >F33:30*E33 >E33:(E24*E7)-(D32*E24) >D33:(D24*E7)-(D32*D24) >C33:" savings >B33:"Owner Hrs >H32:12*F32 >G32:3*F32 >F32:30*E32 >E32:+D32*(E23+E24) >D32:(38/100)*E7 >C32:"ntal fees >B32:"Hourly re >H31:12*F31 >G31:3*F31 >F31:30*E31 >H30:12*F30 >G30:3*F25...H30)+(.2*H21)*E5/100)) >G34:((G32-@SUM(G25...G30)+(.2*G21)*E5/100)) >F34:((F32-@SUM(F25...F30)+(.2*F21)*E5/100)) >E34:((E32-@SUM(E25...E30)+(.2*E21)*E5/100)) >D34:((D32-@SUM(D25...D30)+(.2*D21)*E5/100)) >C34:"tive Avg >B34:"Tax Incen >H33:12*F33 >G33:iklmnoUM(F21...F30)-F23-F24 >E37:@SUM(E21...E30)-E23-E24 >D37:@SUM(D21...D30)-D23-D24 >C37:"enses >B37:"Total Exp >H36:@SUM(H32...H34) >G36:@SUM(G32...G34) >F36:@SUM(F32...F34) >E36:@SUM(E32...E34) >D36:@SUM(D32...D34) >C36:"ome >B36:"Total Inc >H34:((H32-@SUM(H>H41:/FI@IF(H39<0,F3*@ABS(H39),F3*(-1*H39)) >G41:"hip ---- >F41:"of owners >E41:" Yr cost >D41:/FG0 >H39:(H36-H37) >G39:(G36-G37) >F39:(F36-F37) >E39:(E36-E37) >D39:(D36-D37) >B39:"Cash Flow >H37:@SUM(H21...H30)-H23-H24 >G37:@SUM(G21...G30)-G23-G24 >F37:@S:=".d1":=12:=0:120=+B$(I),16,B)1408A$(1000),B$(1000),C%(511),C$(20),name$(20):=10:=0 :120;::=23:=0::"79C";"WOULD YOU LIKE A HARD COPY?":1C$:C$<>"Y"C$<>"y"C$<>"N"C$<>"n"1010C$="N"C$="n"12 >C4:"Interest >B4:/FL1+B3 >G3:" Yrs >F3:/FR"--0-- >E3:/FR"--0-- >D3:"nvestmenty >C3:"Capital I >B3:/FL1 >G1:"t >F1:"Investmen >E1:"e A Good >D1:"n Airplan >C1:"When Is A /W1 /GOC /GRM /GF$ /GC9 /X>A1:>A1: ; *****************************************************; * Circling Demo -- by Dennis Cohen *; * ------------- *; * This programs draws a single circle and rapidly *; * changes colI),wkday$(I):^ 1,Sunday` 2,Mondayb 3,Tuesdayd 4,Wednesdayf 5,Thursdayh 6,Fridayj 7,Saturdayblack=0:magenta=1lavender=3 ltblue=7 white=15maxwindo$=1)clr40mode$=16)+1)/fieldcolors$=20)+ltblue)+2)5>month=112:length(month),months$(month):monthH 31,JanuaryI 29,FebruaryJ 31,MarchK 30,April L 31,May M 30,June N 31,JulyO 31,AugustP 30,SeptemberQ 31,OctoberR 30,NovemberS 31,December!\I=17:wkday(r is installed".:"in your Apple. Please see your Apple"+:"dealer for assistance. Thank you." =16:=2."-- Press ESCAPE to exit the program --"; key$ key$)=27:::ۺ260  --- Initialize --- 4months$(12),length(1ŝ)=" "22000 s100x4 ---- Determine if this Apple has a clock. --- :waste=1550:wastetim1$<>2,639,23:':"Your clock is not operational."-:"Either your batteries have run down,"*:"or no clock/calenda *K< * *KF *********************************************************************P Z100c800 d --- On KBD routine. --- i=27::".D1/MENU.MAKER"nsuvwxyz{|}~t the Clock/Calendar V 1.0 *K2 * *K8 * (c) 1980 Apple Computer Inc. *K: * Minor modifications by Robert Consorti K *********************************************************************K * *K * Apple /// System Demonstrations *K( * CLOCK: Read and Sexloops%angle%=03602pc%=16*1):pencolor(%pc%)moveto(%70,%96)/x%=30*angle%))+70:y%=30*angle%))+96lineto(%x%,%y%) angle% loopnum%::".D1/MENU.MAKER""=27:::".D1/MENU.MAKER" 1000prors of parts of the circle. *; ***************************************************** œ"BGRAF.INV"initgrafix:grafixmode(%1,%1) (grafixon-fillcolor(%0) 2fillportxmaxloops%=2)*5)+4 }1000loopnum%=1ma19)+white)blackfore$=19)+black).boxcolors$=20)+magenta)+19)+white)cursorON$=5)cursorOff$=6) tim1$=! --- Main program loop. --- " --- Set up the screen. --- clr40mode$;maxwindo$;3fieldcolors$;:: clear screen to lavender. boxcolors$;2,239,4: =2:=5& "Read or Set the Clock/Calendar";200maxwindo$;:=23:=1fieldcolors$;blackfore$;6 "39c";"Press to set the time and date."3*"39c";"Press to!W"34c";"You have entered: ">W" TIME= "hdigit1%hdigit2%":"mindigit1%mindigit2%BW" DATE= "wkday$(day%)", "months$(month%)" "daynum%",19"year%W4,1239,22W:*W"You now have the following options:"W:$W" On the m,min$+Wmin$=""=-1:=22:+dflt$:min$=dflt$W" "Wmin%=min$)/Wmin%<0min%>59"Invalid minute.":224107Wmindigit1%=min%/10):mindigit2%=min%-mindigit1%*10'Wminparam%=mindigit1%*256+mindigit2%W:WW4,639,10::Invalid hour.":223603vWhdigit1%=hour%/10):hdigit2%=hour%-hdigit1%*10${Whourparam%=hdigit1%*256+hdigit2%W:W --- Get the Minute ---2Wdflt$=ҟ,4,2))+1):dflt$="60"dflt$="59"W::"(Default= "+dflt$+")"'W=-2:"What is the minute? >"IWdayparam%=day%NW:VW --- Get the Hour ---WWdflt$=П,2)%XW::"(0-23; Default= "+dflt$+")"&ZW=-2:"What is the hour? >",hour$-]Whour$=""=-1:=20:+dflt$:hour$=dflt$^W" "_Whour%=hour$)/lWhour%<0hour%>23""Sun Mon Tue Wed Thu Fri Sat""&W" 1 2 3 4 5 6 7 "0W1W:::=-32W2,+1239,+135W"(No default)"*:W"What is the day of the Week? >",day%?W2,1239,227DWday%<1day%>7"Invalid day of the Week.":22330FW" " "Vdaynum%=daynum$)KVdaynum%<1daynum%>length(month%)"Invalid day of the Month.":222507Vddigit1%=daynum%/10):ddigit2%=daynum%-ddigit1%*10&Wdaynumparam%=ddigit1%*256+ddigit2%W:% W --- Get the Day of the Week ---W"Way of the Month --- Vdflt$=Ѡ,2)5Vlength(month%)";daynum$0Vdaynum$=""=-1:=32:dflt$:daynum$=dflt$V" .Vmonth$=""=-1:=21:dflt$:month$=dflt$V" "Vmonth%=month$)2Vmonth%<1month%>12"Invalid Month.":222105Vmdigit1%=month%/10):mdigit2%=month%-mdigit1%*10%Vmonthparam%=mdigit1%*256+mdigit2%V:)V --- Get the D<80year%>99"Invalid year.":221603Vydigit1%=year%/10):ydigit2%=year%-ydigit1%*10$Vyearparam%=ydigit1%*256+ydigit2%V:V --- Get the Month --- Vdflt$=Ҡ,4,2)%V::"(1-12; Default= "+dflt$+")"(V=-2:"What is the Month? >",month$t.inv"V:V --- Get the Year ---Vdflt$=Р,2)!V::"(Default= 19"+dflt$+")"&V=-2:"What is the year? >",year$1Vyear$=""=-1:=20:"19"+dflt$:year$=dflt$V" "Vyear%=year$)!Vyear%>1900year%=year%-19000Vyear%:=5:fieldcolors$;'V"Set the Apple/// Clock/Calendar";"Vboxcolors$;4,V Clear off the prompts, and set another window.6V2,639,23 @V:::JVfieldcolors$;TV1,1140,24^VhVboxcolors$;rV2,1239,23|VV2,1239,22V"timesehe date is "+month$+" "5& now$,16,1)="0"line$=line$+now$,17,1):31300 line$=line$+now$,16,2)#: line$=line$+", 19"+now$,10,2)D "37c";line$ 3000':::".d1/menu.maker"'U --- Set the Clock/Calendar --- U:&Vmaxwindo$;:=3 hour=now$,2)): Get the numerical hour. ampm$="a.m."' hour>11hour=hour-12:ampm$="p.m." hour=0hour=126 line$="The time is "+hour)+now$,3,6)+" "+ampm$ =6:"37c";line$:/ month=now$,13,2)):month$=months$(month)# line$="T exit the program.";8 Clear the "space to set clock" prompt from screen. 2,639,22( boxcolors$;:1 --- This is the timing loop, which ---2 --- displays the current date and time. --- - now$=+" "+: Get the time and date NOW./inute, press"*W" to set the clock as above;"$X" to reset the minute;"% X" to correct a mistake;"#*X" to exit the program"*4X" without setting the clock." >Xkey$HXkey$)=27::!RXkey$="c"key$="C":22159\Xkey$=" ":22410fXkey$)<>1322590+pX --- PERFORM the actual clock set. ---UXtimset(%yearparam%,%monthparam%,%daynumparam%,%dayparam%,%hourparam%,%minparam%) X100 X2000 100 X2000 LsL-` ` `-`2JbGA3/1.01:7SY REBOOT TIMSET TIMSET  hxhyhi0rhi0qhi0phi0ohi0nhhi0mhi0lhi0khi0jhi0ihi0hyHxHbc`f1900000COPYRIGHT (C) APPLE COMPUTER 1980{vqlgba_\Z'II.0 [d.3]( TIMSET REBOOT REBOOT RESETLOC RESETLOCRESETUNL RESETUNLSLOW SLOW FAST FAST  1 *******************************************1 * Random Triangles *1 * ---------------- *1 * This program will display a number of *1 * tringles of random size, in a variety *1 * od%,%e%)lineto(%i%,%j%)lineto(%a%,%c%)'g%=g%-z%:h%=h%-z%:d%=d%+z%:e%=e%+z%'i%=i%+z%:j%=j%+z%:a%=a%-z%:c%=c%-z%k%,:".D1/MENU.MAKER""=27:::".D1/MENU.MAKER" 1000initgrafix:grafixmode(%1,%1) (grafixon2fillcolor(%0) <fillport c1000#dz%=1:g%=280:h%=96:a%=140:c%=236nd%=140:e%=-44:i%=0:j%=96xk%=23697-1f%=16*1):pencolor(%f%)moveto(%a%,%c%)lineto(%g%,%h%)lineto(%olors constantly changing within it. *1 * To use, type in the program and then *1 * 'RUN'. Make sure that you have the *1 * file 'BGRAF.INV' on-line. *1 ******************************************* œ"BGRAF.INV"1 *******************************************1 * Moving Color In A Diamond *1 * ------------------------- *1 * This program will display a pattern *1 * consisting of a colorful diamond with *1 * clineto(%x%,%q%)lineto(%x%,%y%)'x%=x%+i%:y%=y%-i%:z%=z%-i%:q%=q%+i%r%:".D1/MENU.MAKER""=27:::".D1/MENU.MAKER" 1000initgrafix:grafixmode(%1,%1) (grafixon 2fillport <i%=3:x%=0:z%=279:q%=0:y%=191Fviewport(%x%,%z%,%q%,%y%) c1000 dr%=199npc%=pc%+1:pc%=16pc%=1xpencolor(%pc%)moveto(%x%,%y%)lineto(%z%,%y%)lineto(%z%,%q%)olor. To use, type in the program *1 * and then 'RUN'. Make sure you have *1 * the 'BGRAF.INV' on-line. If not, *1 * enter the correct pathname. *1 ******************************************* œ"BGRAF.INV"1 *******************************************1 * Dazzling Rectangles *1 * ------------------- *1 * This short program displays a neat *1 * pattern of dazzling rectangles in full *1 * cf colors. To use, enter the program *1 * and then 'RUN'. Make sure that the *1 * file 'BGRAF.INV' is on-line. If not, *1 * enter the correct pathname. *1 ******************************************* œ"BGRAF.INV" x<0x=0#x1000,2000,3000,4000,5000,42068);"Please enter 1, 2, 3, 4, 5 or 6":=-2:380!:"Bye!"::".D1/MENU.MAKER"4=24:"76c";"Press any key to Continue";:a$::"79c";Title$:: --- Reboot the system ---*Title$=Sc10);"1. Rebooting the system"&J10);"2. Locking the RESET key"(T10);"3. Unlocking the RESET key"*^10);"4. Slowing down the computer")h10);"5. Speeding up the computer"r10);"6. End":+|8);"Which option ";:a$:x=a$,2))t:"9:")INVOKE MISC.INV"::"where MISC.INV can be the";:" name of this or any other Invokable Module."::500C"Title$=Screen.Off$+"MISC INVOKABLE MODULE Documentation & Test" ,510:=446:8);"Select one of the following options:":%@.INV": Load the Invokable ModuleScreen.Off$=14):CTitle$=Screen.Off$+"MISC INVOKABLE MODULE Documentation & Test" 510:=4B"Before and Invokable Module can be used, it must be loaded";:" into the system by the following Command FormaSC.INV"' and then use the routines *F * as they are outlined below. *F * *F ****************************************************************+"Miscocessor *Fx * from Basic using simple commands. *F * *F * To use in your Basic programs, invoke it into memory with *F * the statement 'INVOKE "MIle from Business Basic. *GZ * *Fd * You can now have the computer Re-Boot, Lock and Unlock the *Fn * RESET key, and slow down and speed up the micropr | O N T H R E E | *G2 * ---------------------------------- | April-May, 1983 | *G< * ------------------- *GF * This program demonstrates how to use the "MISC" invokable *GP * moduG ****************************************************************G * Misc. Utilities: Documentation and ------------------- *G * Test Program | Copyright 1983 by | *G( * by Martin Nichols eto(%x2%,%y2%)lineto(%x3%,%y3%)lineto(%x1%,%y1%)x1%=139*1):y1%=191*1)x2%=139*1):y2%=191*1)"viewport(%x1%,%y1%,%x2%,%y2%) fillportviewport(%0,%139,%0,%191)100:".D1/MENU.MAKER" =27::".D1/MENU.Minitgrafix:grafixmode(%3,%1) (grafixon 2fillport<viewport(%0,%139,%0,%191) c1000 dr=120nx1%=139*1):y1%=191*1)xx2%=139*1):y2%=191*1)x3%=139*1):y3%=191*1)pencolor(%1)*16)moveto(%x1%,%y1%)linreen.Off$+"-- Reboot --":510@=4:"This procedure causes the system to reboot. Before ";C"rebooting, it first closes all open files. To use, insert";B" a boot disk (Pascal, Apple Writer ///, etc.) into the ";?"internal disk drive and issue the following statement:":$")PERFORM Reboot":$."and the system will reboot.":?8"To actually use, exit this program and enter the above ";B"statement to reboot." K500:290  --- Lock the RESET key ---9Title$=Screen.Off$+"-- L T H R E E | *D * ------------------- *D * This program demonstrates how to use the 'MISC' invokable *D * module from Basic. Any time you want to re-boot your *D * system without pressing COD **************************************************************D * Re-Boot (Basic version) ------------------- *D * ----------------------- | Copyright 1983 by | *D * by Martin Nichols | O N"ALONE DISK.": Fast@"We have just speeded up the microprocessor. Everything ";>"should appear faster now. All operations should be at";" normal speed." 500:290 procedure included in this invokable module.":/"To use, enter the following statement:":")PERFORM Fast":D"WAP /// SIG WARNING - IF YOU ARE USING SELECTOR/CATALYST THIS"B"PROCEDURE COULD CAUSE REBOOT PROBLEMS. USE ONLY AS A STAND-"le$=Screen.Off$+"-- Speeding up the Apple /// --":510==4:"This procedure sets the speed of the Apple ///'s ";D"6502 CPU to a maximum of 2MhZ from 1MhZ. This change lasts";?" until the next time you reboot, or until you use the ";:"Slowement:":")PERFORM Slow": SlowA"We have just slowed down the microprocessor. Everything ";C"should appear slower now. All operations will take about";"" 50% more time to complete." 500:290 --- Speed up the /// ---=Tits the speed of the Apple ///'s ";B"6502 CPU from a maximum of 2MhZto 1MhZ. This change lasts";B" until the next time you reboot, or until you use theFast ";5"procedure included in this invokable module.":/"To use, enter the following statRESET key. Take my word for it, ";@ "if you try to test itby pressing CONTROL-RESET you will ";& "reboot the system." 0 500:290 --- Slow up the /// --->Title$=Screen.Off$+"-- Slowing down the Apple /// --":510==4:"This procedure cut-RESETYou can add this to";= " your programs as a means of reversing the protection";, " given by the ResetLock statement.":/ "To use, enter the following statement:": ")PERFORM ResetUnLock": ResetUnLockC "We have just unlocked the an't reboot..."H500:=16:R"See, I told you so..." \500:290" --- UnLock the RESET key ---; Title$=Screen.Off$+"-- UnLocking the RESET key --":510< =4:"This procedure unlocks the RESET key so you can ";; "reboot by pressing CONTROL/ "To use, enter the following statement:":")PERFORM ResetLock": ResetLock@*"We have just locked out the RESET key. To test it out, ";@4"try to reboot the system by pressing CONTROL-RESET."8>:"When you are convinced that you cocking the RESET key --":510@=4:"This procedure locks out the RESET key so you can't ";D"reboot by pressing CONTROL-RESET. You can add this";?" to your programs as a method of protection against";" accidental rebooting.":NTROL-RESET, you can! *D * *D ************************************************************** ::=126œ"Can't find the invokable!!!":".D1/MENU.MAKER""Misc.INV":(e the last key pressed (RETURN) was not on the"X"numeric keypad. Now try this! Enter the above line again but instead of pressing";W"RETURN, hit the ENTER key on the numeric keypad. You should now be greeted with:" ")13":S"because the lastode of BASIC".V"by entering the following statements:":'`")key%=EXFN%.Keypad: PRINT key%":Qj5)"I'll bet you entered the above line by pressing RETURN. If you did the"*t"screen will respond with:"::")0":R~5)"It returned a zero becausy pressed"Q"on the numeric keypad. If the last key pressed was not a key on the keypad"-"the function will return a value of 0."funcname$="Keypad":400$200:300: Page 2TL5)"You can also use this function from the Immediate Execution mger type variable with out converting it first. From Pascal you must also";"remember to L)ink before you can eXecute the file.": --- Keypad'title$="-- Keypad --":300: Page 1N5)"The KEYPAD Function returns the ASCII value of the last kehe following statement.":2"FUNCTION ";funcname$;":INTEGER; EXTERNAL;":T"After being defined in your Pascal program it can be called just as any other"V"function. Remember it returns an INTEGER value so you can't assign it to a non-"T"inte:5)"The Command Format is:":")key%=EXFN%.";funcname$:P5)"This command should normally be used right after a keyboard read such"S"as a GET or INPUT from BASIC or a READ or READLN from Pascal. It can also be"7"used from Pascal with t20);"4 Quit":38);"Which option ";:a$:x=a$)-48:x<0x=0x1000,2000,3000,18018);"Please enter 1, 2, 3, or 4":=-2:150:".D1/MENU.MAKER"5=24:"76c";"Press any key to Continue.";:a$: ,14)::"76c";title$::%he name of this or another Invokable Module."::200=ntitle$=15)+"---- KEYPRESS INVOKABLE MODULE ----":300)x:8);"Select documentation on: ":F20);"1 Reading the keypad":20);"2 Reading the ENTER key"320);"3 Two byte reads":********?P:title$=15)+"---- KEYPRESS INVOKABLE MODULE ----":300|Z:" Before any Invokable Module can be used, it must be loaded into the":"system by the following Command Format:"qd:")INVOKE KEYPRESS.INV"::"where KEYPRESS.INV can be t *J2 * (C) Copyright 1982 by ON THREE *K< * * JF ************************************************************J ********************************************************************J * *J * Keypress Invokable Module Documentation *J( * Esc.Ret$=27)+13):2"80c";"Press 'RETURN' to re-boot, 'ESCAPE' to exit"<Response$FEsc.Ret$,Response$)60PResponse$=13)ReBootZAd DO *NOT* USE IF YOU ARE RUNNING UNDER SELECTOR OR CATALYST! key pressed (ENTER) was on the numeric keypad and its ASCII""value is 13."200:110: Go back to menu --- Enter&title$="-- Enter --":300: Page 1R5)"The ENTER Function returns a value of 1 if the last key pressed was the"U"ENTER key on the numeric keypad. If the last key pressed was not the ENTER key"-"the function will return a value of 0."funcname$="Enter":400 200:110: Go back to menu --- Bytetwo( title$="-- Bytetwo --":300: Page 1T 5)"The BYTETWO L -.0123456789hhhhhhxsɀL_ LFL_(HHHH`ydbXPH?>=5432-+)'Lhhhhhhxs(HHHH`A:8.%$ GA3/1.01:7SY KEYPAD know!)."! 200:110: Go back to menu Awhat the manual shows on page 135 that the RETURN key is"U "a 'Special' key, this function will not return a value with the 'Spcl Key' bit"S "set if RETURN is pressed. I believe that they meant that the RETURN key is a"' "special key (as you well 5)"Bit 0 adds a 1 to the value returned if it is 'on', bit 1 adds a 2 to"Q "the value if it is 'on', bit 2 adds a 4, bit 3 adds a 8..., and bit 7 adds"1 "128 to the value returned if it is 'on'.": 200:300: Page 3 V 4);"NOTE: Contrary to Sl "* Second * Special | Kybd | Closed | Open | Alpha | Control | Shift | Any |"Sv "* Byte * key | on | Apple | Apple | Lock | key | key | key |"U "**********---------+------+--------+-------+-------+---------+-------+-----+":P he following table will give"?N "you an idea of how the various modifier keys are used.":PX " Bit 7 6 5 4 3 2 1 0"Sb "**********---------+------+--------+-------+-------+---------+-------+-----+"n how to do this, see the BASIC program KEYPRESS. It"?0 "will show you how to read all the modifier key values.":S: 5)"The value returned by the function Bytetwo will be a two byte integer in"VD "the range of 0-255. (Only the lower byte is used) T135-137 and pages 47-49. Still a little more info. is on" "the next screen display." funcname$="Bytetwo":400 200:300: Page 2 U 5)"With a little programming expertise you can determine the state of all the"U& "modifier keys. For hints oFunction returns the second byte of keyboard data of the last"S "key pressed. The format of this byte is given in the Standard Device Drivers"T "Manual, in Appendix G on page 165. Additional information can be found in the"T "same manual on pages \L hhhhhhxsɀLI LILI(HHHH`c[YOG?830/.)'%#KEYPAD KEYPAD BYTETWO BYTETWO ENTER ENTER  alue)x=loop.1:=1Neg.SQR(value) loop.1loop.2=101-1=loop.2:=15Neg.SQR(value)value=Decrement(value) loop.2 =12:=24%"- They are the same both ways!"Column=180 "-"; Column =16:=9" Increment(num)=num+1Decrement(num)=num-1Neg.SQR(num)=num)*-1#(Rnd.100(seed)=seed)*100)2: <=6:=28)F"Negative square roots from 1 to 10"P=12Z"Going down....Going up"dloop.1=110nvalue=Increment(vste=0200:waste:1000 œ".d1/keypress.inv"int=keypad: 1000dint=keypadnint=13good=1:good=0x0=20:"Press 'ENTER' to continue ";29):A$100.good"That's right!!":".D1/MENU.MAKER"H(good)"That's wrong!!":"Try again":wa":200=b2%-128:۾20 b2%>6330:b2%=b2%-64:۾20 b2%>3120:b2%=b2%-32:۾30 b2%>1520:b2%=b2%-16:۾30b2%>720:b2%=b2%-8:۾30b2%>320:b2%=b2%-4:۾30b2%>130:b2%=b2%-2:۾20b2%30:۾20110(=17::".D1/MENU.MAKER)"3<key$(2)="Keyboard is on":key$(3)="Closed Apple"-Fkey$(4)="Open Apple":key$(5)="Alpha lock"7Pkey$(6)="Control":key$(7)="Shift":key$(8)="Any key"Z::200-d=10:"56C";"PRESS 'CONTROL Q' TO EXIT"nb2%=bytetwo:num%=1"xb2%>12730:b2% The program knows it! *< ****************************************************** "KEYPRESS.INV":50&=num%::key$(num%):num%=num%+1:&=num%::key$(num%):num%=num%+1:F2key$(1)="Special key (Keypad, Arrows, Space, Escape and Tab keystin Nichols ---------------------- *< * This program will read the state of all of the *< * 'Special' keys. Make sure the invokable module *< * is available and RUN it. Try pressing the Apple *< * keys, Alpha Lock, etc.< ******************************************************< * ---------------------- *< * Byte-two Test | Copyright 1982, 1983 | *< * ------------- | O N T H R E E | *< * by MarSome Random numbers""=14,loop.3=127712 660000 @loop.3 J=16:=48^"Some more Random numbers"=14loop.4=127712 61000=40 temp loop.4=21"What's going on?"&"The second column isn't random!"or(%s%*15)@moveto(%560,%y%+s%)Jlineto(%a%,%b%)Tlineto(%0,%192-y%-s%) ^s%,y%: =27::".D1/MENU.MAKER" 1000(%pen%) 1000!a%=1)*xhigh%:b%=1)*yhigh%i%=1)*3+1x%=0xhigh%i% s%=01pencolor(%s%*pen%)moveto(%x%+s%,%fill%)lineto(%a%,%b%)"lineto(%xhigh%-x%-s%,%yhigh%) s%,x%"y%=0yhigh%i% ,s%=016pencol, sit back and enjoy! *< ****************************************************** œ".D1/BGRAF.INV"initgrafix:dxhigh%=559:yhigh%=191nmode%=2:buf%=1xgrafixmode(%mode%,%buf%)grafixon:fillportfill%=0:pen%=15pencolorm "Brian's Theme". It will produce a neat *< * "moire" type pattern on your Apple ///'s high *< * resolution graphics screen. To use it, type in *< * the program, and make sure that "BGRAF.INV" is *< * available. Type "RUN"< ******************************************************< * Brian's THREEme *< * --------------- *< * This is the Apple /// version of the Apple ][ *< * prograC /GRA /GC9 /X>A1:>D8: 8:"Enter you >F6:+D9-E9 >D6:"n >C6:"ubtractio >B6:"4 - for s >F5:+D9+E9 >C5:"ddition >B5:"3 - for a >F4:+D9/E9 >C4:"ivision >B4:"2 - for d >F3:+D9*E9 >D3:"tion >C3:"ultiplica >B3:"1 - for m >D1:"esired ? >C1:"tion is d >B1:" of opera >A1:"What type /W1 /GO>F11:/FL >E11:/FL@CHOOSE(D8,F3,F4,F5,F6) >D11:/FR" is ---- >C11:"on number >B11:"t operati >A11:"The resul >H10:/-- >G10:/-- >F10:/-- >E10:/-- >D10:/-- >C10:/-- >B10:/-- >A10:/-- >C9:"ers --> >B9:" two numb >A9:"Enter the >C8:/FL"( 1 - 4 ) >B8:"r choice >A:G$:".D1/MENU.MAKER"`loop.3*Rnd.100(-loop.3)"Htemp=loop.4*Rnd.100(-loop.4)< ******************************************************< * Brian's Colors *< * -------------- *< * This is a color version of "Brian's THREEme". *< * Since o(%a%,%yhigh%):lineto(%xhigh%/2-a%,%yhigh%/2+1)Amoveto(%xhigh%-a%,%yhigh%):lineto(%xhigh%/2+a%,%yhigh%/2+1)a%,b%=0yhigh%/2x%+236moveto(%0,%yhigh%/2-b%):lineto(%xhigh%/2,%b%)8@moveto(%xhigh%/2,%b%):lineto(%xhigh%,%yhigh%/2-b%)222צ Disk Drive2ʄ̄ʄˡ3Ƅ2ƃ2(2 2 R024 ##ȡؤ  "*-|:--><^ v - = ڪ@٦תצ/á /צ/%%á&š1&&&P&2%š1&&&ƀ%ƀP&/áY22File 9Eצ-must first be renamed٢N٢z2 2 2 2צ For Editing Help, use CONTROL-?.2 2 2 P٪P٦׷)ȡھaھzȄھ $ @ :+צ.CONSOLE::*ئׯ áצ áئׯ!> Rȡ222%٢b٢٢٢٢٢٢٢٢O٢Pilitiesתآآ)/PROGRAMS/SYS.UTILITIESת@آ)SYSTEM.MISCINFOתآ)/PROGRAMS/SYS.UTILITIESת@آ)SYSTEM.STARTUPתצ/SELECTOR.STARTآ Selector /// Startupתآآ)SOS.MENUתآ)צ@PROGRAMS/APPLE2ת@آ)צINSTALL.APPLE2آ)/PROGRAMS/APPLE2ת@آ)צ APPLE2.DATAآ )צ/PROGRAMS/GRAPH.N.CALC@آ )VOLNAMEתآ )/PROGRAMS/GRAPH.N.CALCת@آ )צVOLNAMESئ /UTILITIESתآ System Utآ)צ/PROGRAMS/MENU.EDITOR@آ)צSYSTEM.STAR.SMآ)/PROGRAMS/MENU.EDITORת@آ)SYSTEM.MISCINFOתآ)/PROGRAMS/SCRIPT3ת@آ)SYSTEM.MISCINFOתآ)/PROGRAMS/APPLE2ת@آ)צ SOS.INTERPآ)/YSTEM.MISCINFOآ )צ /BPI/INSTALL@آ )SYSTEM.MISCINFOתئ/SELECTOR.PROGתآ Selector /// Programsתآ آ)צ/PROGRAMS/APPLEWRITER3@آ) HELPMOVERתآ)/PROGRAMS/MENU.EDITORת@آ)SYSTEM.STARTUPآ)צBASIC.RTINTERPآ)/LANGUAGES/PASCALת@آ)Q.CODEתآ)צ/LANGUAGES/BASIC@آ)Qآ)צ/LANGUAGES/BASIC@آ)Q.INVOKEתآ)צ /LANGUAGES@آ)BPIPAS.RTINTERPתآ)/BPIת@آ)צSelector ///תK2/SELECTOR.LANGת@S.D1ת  ئ/SELECTOR.LANGתآ Selector /// Languagesתآ آ) /LANGUAGESת@آ)צPASCAL.RTINTERPآ)צ /LANGUAGES@آ)SYSTEM.RTPASCALתآ) /LANGUAGESת@.REPORTת@!/PROGRAMS/QUICKFILE3ת@!/PROGRAMS/SCRIPT3ת@!צ/PROGRAMS/SPELLER3@!צ/PROGRAMS/SYS.UTILITIES@!/PROGRAMS/VISICALCת@ !/SA3ת@!!/COBOLת@"! /THREE.EPת@#!צ/DATA@ SRAMS/GRAPH.N.CALCת@!/PROGRAMS/HABBA.MERGEת@!צ/PROGRAMS/LAZARUS@!/PROGRAMS/MENU.EDITORת@!צ/PROGRAMS/MULTIPLAN@!/PROGRAMS/NEXUSת@!צ/PROGRAMS/PFS.FILE@!צ/PROGRAMS/PFS.GRAPH@!/PROGRAMS/PFSPPLE2ת@ !/PROGRAMS/APPLEFILEת@ !צ/PROGRAMS/APPLEWRITER3/HS@ !/PROGRAMS/APPLEWRITER3/DEMOLIBת@!/PROGRAMS/BACKUP3ת@!צ/PROGRAMS/BUS.GRAPHICS@!צ/PROGRAMS/DRAW.ON.3@!/PROGRAMS/EASYTERMת@!/PROGALת@!צ/LANGUAGES/BASIC@!צ/BPI/BPI.TRAPOFF@!צ /BPI/INSTALL@!צ/CHARACTER.SETS@!/KEYBOARD.LAYOUTת@!/PROGRAMS/ACCESS3ת@!צ/PROGRAMS/ACCESS.3270@ !/PROGRAMS/ADV.VISICALCת@ !/PROGRAMS/A= ->-\-/-/+-.__2&F ?/S  n#!/LANGUAGES/PASC using System Utilities.2 ؚFr٪2{{ Creating { T{צ subdirectories...f{2222 {{ȡ9@Z!@Z׷ZˡZ9||9@|ǀ|@9G˄Gá89:/á"   ˄/t./áa22 Subdirectory  Xצ-must first be renamed using System Utilities.2 ؚZz 10 ccȡ file.צ2 (23::32#&`jvd p $ HbJtl!~! r" "6##0$# P(./ˡ222#22ZiƀSƁm% ˡ222#22á222Ɓ22!h(:22$2.2 SYSTEM.STARKšIצ=The subdirectory containing an Installation file is too long.צ2 \\2@\צ /SYSTEM.STARL\ 2 ˡ1%Unable to open the Installation22ǁ2צ Sabre Software Inc., 19842PƁv2Ɓv22 22Ɓ2222Ɓm $ Ɓmˡ./ˡ222#22ZiƀSƁm% ˡ222#22áá+ 2צDisks transferred: 222 2 BUAe%Ɓ́Ɓ KƁצ? NƁPƁ́Ɓ KƁ; installation successful. Press CONTROL-RESET to re-start.džƁPƁv Version 1.0תP ƀ)Cƀ/Dƀ)SƀKOƀ̀ƀƀ)Pƀצ/Qƀ)`ƀK]̀ƀƀ)Pƀצ/Qƀ)`ƀKƀ]ˡ&'   ̀ʀȡˡ'ۥ #٥ %'2צTransferring...2222 ̀ʀȡ)צ/PROGRAMS/SYS.UTILITIES8ƀ̀ƀƀצ/ƀ) ƀKáVƀ̀ƀ.D1  )P/Q  )`K]:]:,˶F˄D˄ %  d &2# 2   # %D'2 ̀ʀȡ &2".áp22>>צThere is not enough room for > h> on the specified volume.ǁ>P2 /ˡ222# 2ܓ 2٢٢٢ܡ٢,?$   ȡ]>>;Do you really want to leave the program without installing ;> dž>Pצ2"$& !}|ˡ 2# 2á٢ ٢  !á\ۡT>>'Do you want to destroy the old copy of '> r>Pצ*́Ɓ/Ɓ*Ɓ%ˡ%2#$2e*ZƁ́Ɓ$You do not have the correct disk in $Ɓ4Ɓצ.5ƁPƁצ2 ##2Transferring...2222jl #22 2)> ٢uƁP2Ɓ2221press ESCAPE to leave the Installation program. 2'&22#'&23$2)$ 6$$á`Ɓ́Ɓצ.Do you really want to quit without installing .Ɓ yƁPƁ2"#$á*צ*)(%:0ˡۓ6" F˄"ォ ɡ."⚭ b!۪ڪ٪5́3664̀̀́̀́2Ɓ́ƁצPut ƁƁ into Ɓ0Ɓצ# and press SPACE bar to continue orS)0"2:/Eá2" ˡ" ).á4) :0AAצ/AAˡ") :: áv ;@@@  :0áEAA/AAˡ4" ˡ5" ddȡ eee)Pe/Qe)`eK 2:/á621202 10 Í/ FD˄   ؚ!")ˡ"222Ɓ22!h(:22$2.2 SYSTEM.STARKšIצ=The subdirectory containing an Installation file is too long.צ2 \\2@\צ /SYSTEM.STARL\ 2 ˡ1%Unable to open the InstallationتPRš+R+PP4تPRšG+R+PGP4GRšزGRPزGPR0ȡپ á*š*۾١:/˄ /P /áJ(צ.CONSOLE33:3á3 3: aˡ33ˡ(3333 3: 3 aÍ' vJ33:33:,3ȡM3&33ǀTn'ب#3%3&%&ȡ{%ǀġ*3%3%3%:3%3%%3%%%%2ʄI 3.Hl39Cɝ3ɍ;/3ڧ3٧3;Zá:C $ب%ب!3e!B&3ȡ,333٣3٣ȡ'٢3٢7 ;HPǜ PPP&IHá2ʄI 32HáF.G7E6/ɡ6E%?F@F1AF123393:93,39۝3 ō:Báړ3٣3٣ȡ3٢٣3šG3ٚ-K ~Dɡؚؑ3:92&Eˡ8EFڨǜǜÄǜÄÄÄĄLG٪P35Ƃ2̂\Ƃ\PƂ\3SƂ\SƂ233:3ˡ 2P.=آ:ˡ8.BڦתP3:5á=ɡ0š#3:6áɡۿ`C3 <ˡ<V>á@ȡڢ)צPÄڢ)PCˡ8H?3 3]<á%33 3 ::á3 >ˡ8H@3a<á á ٢9á8BA3<ˡ:e>áOڢ>áB>á7ڢܚڢ9á#ڣÄڑ3:5á ɡL;ڨ8á";áÄ8<<3:5á ɡ$=3:5áɡ (>3 3_<á%33 3::á3 >ˡ8n7ڨá 3:<*ܚۚ:3:< H83:5á ɡ$9٢٢3:5á0ɡ#ǀɡ٢٢X:٢3٢:5á)ɡ 2  3ɡ4š5ȡAپپZȄ پAa& 66ˡaLAppleFile's screen library is not usable. ESCAPE from AppleFile and restartצ the program. < 0ݪPܪP0š YY0PYǠYPF D ۮ   ڪPXPšEצ:š  >#צ*צ:á >š{-NVWf-N@ȡQ-Pצ:-á:ײPN? XP ??زP>پ/ˡ צ/P?8زPtV,j8n :/˄ /P /á< 0ݪPܪP0š YY0PYǠYPF D ۮ   ڪPXPšEצ:š  >#צ*צ:á >š{-NVWf-N  3ا3:K33:L33:š ǀ,M33:l33:"3ا3: 3ا3: 23ا3: 3ا3: 3ا3:3ا3:  ت 53, 2E, 4B, 45, 52, 4E, 45, 4C, 20, 20, 20, 20 .BYTE 20, 53, 4F, 53, 20, 4B, 52, 4E, 4C, 49, 2F, 4F, 20, 45, 52, 52 .BYTE 4F, 52, 08, 00, 46, 49, 4C, 45, 20, 27, 53, 4F, 53, 2E, 4B, 45 .BYTE 52, 4E, 45, 4C, 27, 20, 4E, 4F, 54, 20, 46, 4F, 55, 4E, 44ree Parameters for this routine Begin JMP Start ; Go around all the buffers Block_Buf .BLOCK 200, 00 BootBuf .EQU * .BYTE 4C, 6E,0A0, 53, 4F, 53, 20, 42, 4F, 4F, 54, 20, 20, 31, 2E, 31 .BYTE 20, 0A, 53, 4F,H; a Pascal assembly language routine. ; ; Use the following notation to call this routine: ; ; From Basic use: PERFORM FormatDisk (%disk.num, %vol.num, @er%) ; ; From Pascal use: Format_Disk (disk_num, vol_num, error); ; 0.PROC Format_Disk, 3 ; ThRS<h0RSTWá ݸgܡU"f3 ǀLcfdݚTD$SڨȡjܶáT+UÄ[ ÄÄÄ h^ÄÄ h_kKÄ h`UÄ h\@Ä h]+۳a ReN2f+RSȡ  ǞخUX%Bg ghReáPÄ1 ȡ  ǞNX3?/Í3Q3N2fáEÄZ OU3ٕ 3&ȡ ǞdڨȡjܶáT+2e2eq eXXHaUš ǚTUSX8b   3ɸ öO Rb[xc yŶAU8[Yá X \Yá X&]YáX,^Yá X(_YX `ö*Z ׶W O  333Oض3ض3ؕ 3ؕXXYתXZPńVXZV Q VáɡáضV3á. ƀDAMAGEDתƀƀ4ƀ ˡښTš ǙT0V۪VƀLj ڄáV Uƀ L áȄ آAazȄ آAaآ   R 32ST  #U33QVQ P'̄^ʄ^ȡ0/O/(OP:7P:7PšƄ 1ƃ :9v NƄ  ƃ'ˡ&Edit Help Screen not found.צ צ ƃ( Ƅ N`QMآت  šǀڳá3 3eڤFOˡ:93 1 2N,P343Ƅ :3ˡ 22N  ƃ / Ƅ 0ا33:7PP, 25 .BYTE 00, 49, 4E, 56, 41, 4C, 49, 44, 20, 4B, 45, 52, 4E, 45, 4C, 20 .BYTE 46, 49, 4C, 45, 3A, 00, 00, 0C, 00, 1E, 0E, 1E, 04,0A4, 78,0D8 .BYTE 0A9,77, 8D,0DF,0FF,0A2,0FB, 9A, 2C, 10,0C0,0A9, 40, 8D,0CA,0FF .BYTE 0A9,07, 8D,0EF,0FF,0A2, 00,0CE,0EF,0FF, 8E, 00, 20,0AD, 00, 20 .BYTE 0D0,0F5,0A9,01, 85,0E0,0A9, 00, 85,0E1,0A9, 00, 85, 85,0A9,0A2 .BYTE 85, 86, 20,0BE,0A1,0E6,0E0,0A9, 00, 85,0E6,0E6, 86,0E6, 86,0E6 .BYTE 0E6,20,0BE,0A1,0A0, 02,0B1, 85, 85,ocation to store H; any SOS errors. Return .WORD 00 ; Put the return address here Start 0POP Return ; Save return address 0PLA ; Get the address of the 0STA Pseudo ; error variable. .WORD 0000 0.WORD 0200 ; 1 block (512 bytes) Block_num .WORD 0000 ; The block number will go here Boot_Ptr .WORD BootBuf Block_Ptr .WORD Block_Buf Error_Code .BYTE 00 ; Use this l .WORD Block_Buf ; Pointer to page that will be H; repeated on all the blocks Write_List .BYTE 04 ; Here is the list to write one D_num .BYTE 00 ; block of data to the disk Buf_Ptr number here 0.WORD D_Ptr 0.WORD Info_Options 0.BYTE 07  Ctrl_List .BYTE 03 Ctrl_ref .BYTE 00 ; Here will be the Ref_Num .BYTE 0FE ; code to format the disk num .BYTE 00 Info_Options .BYTE 00, 00, 00, 00, 00 Total_Blocks .WORD 00 ; Here is the number of blocks H; that the disk drive can hold. Info_List .BYTE 04 Info_num .BYTE 00 ; Put the device 02 0.WORD Formatter Dev_ref .BYTE 00 ; device number goes here D_Ptr .BYTE 03 0.ASCII ".D" D_Suffix .BYTE 00 ; suffix of the disk drive (1-4) D_List .BYTE 02 0.WORD D_Ptr Dev_0.BYTE 00, 0C3, 27, 0D, 00, 00, 06, 00 Blocks .WORD 00 Bytes_To_Write .BYTE 00 Formatter .BYTE 06 0.ASCII ".FMTD" ; disk formatter Suffix .BYTE 00 ; suffix of the formatter GD_List .BYTErectory info NameLen .BYTE 0FA Name .ASCII "BLANK.DISK" 0.BYTE 00, 00, 00, 00, 00 0.BYTE 75, 00, 00, 00, 00, 00, 00, 00 TimeType .BYTE 00, 00, 00, 00 Volume .BYTE 00 0D4,0A1, 84,0E7, 38,0A9, 28,0E5,0E7, 4A, 18, 65,0E7,0A8 .BYTE 0BD, 29,0A0,99,0A7, 05,0CA, 88,0C6,0E7,0D0,0F4,0AD, 40,0C0, 4C .BYTE 0EF,0A1,00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 Directory .BYTE 00, 00, 03, 00 ; The di 0D, 85,0E1,0A5,0E0,0D0, 04 .BYTE 0A5,0E1,0F0,06, 20,0BE,0A1, 4C, 8A,0A1, 18,0AD, 6A,0A0, 6D, 08 .BYTE 1E, 85,0E8,0AD, 6B,0A0, 6D, 09, 1E, 85,0E9, 6C,0E8, 00,0A9, 01 .BYTE 85, 87,0A5,0E0,0A6,0E1, 20, 79,0F4,0B0, 01, 60,0AE, 32,0A0,0A0 .BYTE 09, 4C,.BYTE 69,0A0, 85, 86,0AD, 00, 0C, 85,0E0,0AD, 00, 0D, 85,0E1, 20,0BE .BYTE 0A1,0A2, 07,0BD, 00, 1E,0DD, 21,0A0,0F0,08,0AE, 64,0A0,0A0, 13 .BYTE 4C,0D4,0A1,0CA, 10,0ED,0A9, 00, 85,0E7,0E6,0E7,0E6, 86,0E6, 86 .BYTE 0A6,0E7,0BD,00, 0C, 85,0E0,0BD, 00,,0A4, 85,0E2 .BYTE 0A5,0E5, 69, 00, 85,0E3,0C6,0E6,0D0,95,0AE, 4F,0A0,0A0, 1B, 4C .BYTE 0D4,0A1,0A0, 11,0B1,0E2, 85,0E0,0C8,0B1,0E2,85,0E1,0AD, 66,0A0 .BYTE 85, 85,0AD, 67,0A0, 85, 86, 20,0BE,0A1,0AD, 68,0A0, 85, 85,0AD ,0D9, 11,0A0,0D0,19, 88,0D0,0F6,0A0, 00,0B1,0E2, 29,0F0 .BYTE 0C9, 20,0F0, 3E,0C9,0F0,0F0,08,0AE, 64,0A0,0A0, 13, 4C,0D4,0A1 .BYTE 18, 0A5,0E2, 6D, 23,0A4, 85,0E2,0A5,0E3,69, 00, 85,0E3,0A5,0E4 .BYTE 0C5,0E2,0A5,0E5,0E5,0E3,0B0,0BC,18,0A5,0E4, 6D, 230E0,0C8,0B1, 85, 85,0E1,0D0 .BYTE 0EA,0A5,0E0,0D0,0E6,0AD,6C,0A0, 85,0E2,0AD, 6D,0A0, 85,0E3, 18 .BYTE 0A5,0E3, 69,02, 85,0E5, 38,0A5,0E2,0ED, 23,0A4, 85,0E4,0A5,0E5 .BYTE 0E9, 00, 85,0E5,0A0, 00,0B1,0E2,29, 0F,0CD, 11,0A0,0D0, 21,0A8 .BYTE 0B1,0E2 Use this 0PLA ; to store any error that is 0STA Pseudo+1 ; generated by the routine. 0PLA ; Get the volume number and 0STA Volume ; store it in the right place. 0PLA ; Discard the MSB 0PLA ; Get the disk number to format 0ADC #30 ; Convert to ascii 0STA Suffix ; Put it in the proper places 0STA D_Suffix 0PLA ; Removeup new buffer 0LDX #2A 0LDA #00 Next STA Block_Buf,X 0DEX 0BNE Next ; Zero the directory info 0LDA #02 0STA Block_num 0LDA #00 0STA Block_num+1 ; Setup to write block 2 0 Boot_Ptr+1 0STA Buf_Ptr+1 0LDA #00 0STA Block_num 0STA Block_num+1 0SOS D_Write, Write_List ; Write Block 0 0BNE Err1 0LDA Block_Ptr 0STA Buf_Ptr 0LDA Block_Ptr+1 0STA Buf_Ptr+1 ; Set0BNE Err1 0RTS Err1 ; If there is an error, 0STA Error_Code ; store the error code 0RTS ; and return. Write_Blocks 0LDA Boot_Ptr 0STA Buf_Ptr 0LDA 0FF ; Set up the page that 0LDA #0EE ; will be repeated on Again STA Block_Buf,X ; all blocks of the disk. 0DEX 0BNE Again 0STA Block_Buf 0SOS D_Control, Ctrl_List Get_Dev_Num, GD_List 0BNE Err1 0LDA Dev_ref 0STA Ctrl_ref 0SOS Get_Dev_Num, D_List 0BNE Err1 0LDA Dev_num 0STA D_num 0STA Info_num 0RTS Format ; Format the disk 0LDX #set-up 0STA Bytes_To_Write ; for a disk of zero blocks 0STA Blocks ; and adjust everything 0STA Blocks+1 ; accordingly. $4 RTS Do_Dev_Nums ; Find the device numbers 0SOS 0BNE $3 0LDA #8B ; This is for a Micro-Sci 0STA Bytes_To_Write ; 1120 block disk. 0LDA #60 0STA Blocks 0LDA #04 0STA Blocks+1 0JMP $4 $3 LDA #00 ; If we ever get here, #30 0BNE $2 0LDA #45 ; This is for a Micro-Sci 0STA Bytes_To_Write ; 560 block disk. 0LDA #30 0STA Blocks 0LDA #02 0STA Blocks+1 0JMP $4 $2 LDA Total_Blocks 0CMP #60 ; bit_map type. 0BNE $1 0LDA #22 ; This is for a standard 0STA Bytes_To_Write ; 280 block disk. 0LDA #18 0STA Blocks 0LDA #01 0STA Blocks+1 0JMP $4 $1 LDA Total_Blocks 0CMP rn address 0RTS ; and come back Do_D_Info ; Find the number of blocks 0SOS D_Info, Info_List ; blocks that this device 0LDA Total_Blocks ; has and compute the right 0CMP #18 $2 JSR Write_Blocks ; Write out the neccessary blocks S_Finish 0LDA #00 0TAY 0STA @Pseudo,Y ; Save the error code 0LDA Error_Code ; (If any!) 0INY 0STA @Pseudo,Y 0PUSH Return ; Restore retu ; the page that was used as the 0BNE Clear ; repeating buffer for the format. 0STA Block_Buf LDA #00 0CMP Error_Code 0BEQ $2 0JMP S_Finish rs $1 JSR Do_D_Info ; Get the device info (# of blocks) JSR Format ; Try and format the disk 0LDX #0FF 0LDA #00 Clear STA Block_Buf,X ; After formatting, clear off 0DEX the MSB and discard it 0LDA #00 ; Zero the error code 0STA Error_Code JSR Do_Dev_Nums ; Get the device numbers 0LDA #00 0CMP Error_Code 0BEQ $1 0JMP S_Finish ; Leave if an error occuLDA #00 0STA Block_Buf 0LDA #03 0STA Block_Buf+2 0JSR Find_Time ; Insert the time info 0LDX #2A Next2 LDA Directory,X 0STA Block_Buf,X 0DEX 0BNE Next2 ; Insert directory info 0SOS D_Write, Write_List ; Write Block 2 0BNE Err1 0LDX #2A 0LDA #00 Next3 STA Block_Buf4,X 0DEX 0BNE Next3 ; Zero the directory info Hour10 0ASL A 0STA TempHour 0ASL A 0ASL A 0CLC 0ADC TempHour 0ADC Hour1 0STA TimeType+3  LDA Minute10 0ASL A 0STA TempMinute 0ASL A 0ASL A 0CLC 0ADC TempMinute 0ADC s. 0ASL A 0ASL A 0CLC 0ADC TempMonth 0ADC Month1 0STA TempMonth  LDA Day10 0ASL A 0STA TempDay 0ASL A 0ASL A 0CLC 0ADC TempDay 0ADC Day1 0STA TempDay  LDA0STA TempYear ; the number, and store it.  LDA Month10 ; Repeat for the month, day 0ASL A ; hour and minute as they 0STA TempMonth ; all contain 2 digit 0ASL A ; by 2 so by doing it a few 0CLC ; times we get the result. 0ADC TempYear 0ADC Year1 ; Add the 1s position to get mes 0RTS Do_Times 0LDA Year10 ; Multiply the 10s position 0ASL A ; by 10 using the formula - 0STA TempYear ; 10x = 2x + 8x 0ASL A ; The ASL command multiplies Get_Time, Time_List 0SEC 0LDX #17. ; Convert from ASCII to Loop LDA Pointer,X ; decimal by subtracting 0SBC #30 ; $30. 0STA Pointer,X 0DEX 0BPL Loop 0JSR Do_TiTempYear .BYTE 00 ; Temporary locations used TempMonth .BYTE 00 ; in the routine 'Do_Times'. TempDay .BYTE 00 TempHour .BYTE 00 TempMinute .BYTE 00 Find_Time SOS .BYTE 00 Ignored1 .BYTE 00 Hour10 .BYTE 00 Hour1 .BYTE 00 Minute10 .BYTE 00 Minute1 .BYTE 00 Ignored2 .BYTE 00, 00, 00, 00, 00 Time_List .BYTE 01 0.WORD Pointer er .BYTE 00, 00 ; Paramter list for the Year10 .BYTE 00 ; SOS GET_TIME call below. Year1 .BYTE 00 Month10 .BYTE 00 Month1 .BYTE 00 Day10 .BYTE 00 Day1 0SOS D_Write, Write_List ; Write Block 6 0BNE Err2 0RTS Err2 ; Again, if there is an 0STA Error_Code ; error, store the code 0RTS ; and return. Point0LDX Bytes_To_Write 0LDA #0FF Next4 STA Block_Buf,X 0DEX 0BNE Next4 ; Setup the bitmap  LDA #01 0STA Block_Buf 0LDA #06 0STA Block_num 0LDA #00 0STA Block_num+1 05 0STA Block_num 0LDA #00 0STA Block_num+1 0LDA #04 0STA Block_Buf 0LDA #00 0STA Block_Buf+2 ; Setup to write block 5 0SOS D_Write, Write_List ; Write Block 5 0BNE Err2 LDA #04 0STA Block_num 0LDA #00 0STA Block_num+1 0LDA #03 0STA Block_Buf 0LDA #05 0STA Block_Buf+2 ; Setup to write block 4 0SOS D_Write, Write_List ; Write Block 4 0BNE Err2 0LDA # 0LDA #03 0STA Block_num 0LDA #00 0STA Block_num+1 0LDA #02 0STA Block_Buf 0LDA #04 0STA Block_Buf+2 ; Setup to write block 3 0SOS D_Write, Write_List ; Write Block 3 0BNE Err1 Minute1 0STA TimeType+2  LDA TempMonth ; Convert the 3 byte Day, 0ROL A ; Month, and Year information 0ROL A ; into 2 bytes and store it. 0ROL A 0ROL A 0ROL A 0ORA TempDay 0STA TimeType+0 0LDA #00 0ROL A 0STA TimeType+1 0LDA TempYear 0ASL A 0ADC TimeType+1 0STA TimeType+1 0RTS 0.END ; Of Assembly I=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$(/ 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 VB$(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+1~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$=);", ";"19";Р,2);" ";/П,2))=>13П,2))-12;џ,6);:1580$"П,2))=0"12";џ,6);:ٟ;$,П,2))=>12" PM-":" AM-" 61630@WW=1390J=26:=21:1400 T1400 ^:WW=1:h |: CHANGE THE FONT".D1/downloa="FEBRUARY":1550M$="MARCH":1550M$="APRIL":1550M$="MAY":1550M$="JUNE":1550M$="JULY":1550M$="AUGUST":1550M$="SEPTEMBER":1550M$="OCTOBER":1550M$="NOVEMBER":1550M$="DECEMBER":1550826);"-";M$;" ";Ѡ,2)8=11010<9F=23:=0::"79C";"PRESS ANY KEY TO HALT LISTING":P2,280,2 Z1310dn"x ..... "DATE.TIME.LINE" ....M=Ҡ,4,2))BM1430,1440,1450,1460,1470,1480,1490,1500,1510,1520,1530,1540M$="JANUARY":1550M$SH$ SLOW FLASH :120#w=w+.5*(w=0):I=1(w*1000):: Halt Subroutine::=23:=0::"79C";"PRESS ANY KEY TO HALT LISTING.": 1300(=23:=0::"79C";"CONTINUE...?":'(<>89<>121<>78<>11013202=70#4,B$(I),16,B)#5,".PRINTER" $ž#4120 .#4;a$ 8#5;a$ B1070LV:=24:=0::-`#8,".D1/FLASHNAME.DAT":#9;FLASH$:#8%jFLASH=110: FLASHER SUBROUTINEtSLOW=110~FLASH/2=FLASH/2):۴ =11:=07 FLAAKER" 100079C";"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::"12405l=ơ):: Routine to back up one directory level.a$=С,l-1) s=a$)a$=a$,s-1)a$,1)="/"5060:s=s-1 5030=a$240( MENU.MAKER 6.10 * Thanks to C.M.Davidson for his help!NOT FOUND.)"X=11000:X:::210Z a$="{,|,~,}; selects; back 1 level; G$:::320H: Error Routine 202:U=11:"79C";"BAD PATH ERROR (NO DISK IN DISK DRIVE OR DESIRED FILE ,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$d.inv"C$=B$(I),16,B)array$="C%"name$=34)+C$+34)getfont(@name$,@array$)loadfont(@array$)30#5,".GRAFIX"".D1/BGRAF.INV"D$=B$(I),16,B)name$=34)+D$+34) GLOAD.D$16);1) GRAFIXONX=12000:X::RELEASE:#530%& Menu.Maker v. 4.55.1 (side two)drawimage(@blank%(0),%2,%0,%0,%16,%23)yy=yy-26:yy=9yy=191 "FILLPORT'20000:220=27:".D1/MENU.MAKER" 500x 0180,03c0,03c0,03c0,0180,0380,07c0,0fc0,1fe0,1fe0,0ff0,07b0,07d8,07cc,07c4,06c0,06c0,0ec0,1cc0,38c0,70c0,30c0,10167:b=0- GOTO 20000:REM Draw Backround lines 500yy=191:295x=02705moveto(%x,%yy),drawimage(@source%(0),%2,%0,%0,%16,%23)-drawimage(@source%(23),%2,%0,%0,%16,%23)-drawimage(@source%(46),%2,%0,%0,%16,%23)x+5 WALKING MAN MODULE 12/25/92 DGO".D1/BGRAF.INV"dinitgrafixnsource%(68),blank%(22) xx=068a$source%(x)=a$)xx=022:blank%(x)=0:grafixmode(%1,%1)initgrafix fillport grafixon a=EAD 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" e0x 00c0,01e0,01e0,01e0,00c0,01c0,07e0,0ff0,1ff8,1bcc,1bc6,19c3,1bc1,1bc0,03e0,01e0,00e0,01c0,03c0,0fc0,0cc0,0cc0,00e0x 0060,00f0,00f0,00f0,0060,00e0,01f0,01f0,01f0,01f0,01f8,00fc,00f6,00f2,00f0,00f8,00c8,00cc,00cc,00ce,00c6,00c6,00e7'a=1670