LnSOS BOOT 1.1 SOS.KERNEL SOS KRNLI/O ERRORFILE 'SOS.KERNEL' NOT FOUND%INVALID KERNEL FILE: xةw,@  ȱlmi8#)!)*gto.tables%(440):"GTO.RUNTIME":INIT&#9,"SERIALNO.DAT":#9;BBA$:#9BBD$="1.30"BBG$="NO " + Source Window /// - Intro Program  & D A DataSystems (c) 1984   Version 1.30-SOURCE.WINDOW  9,SRCWIND.MAIN 498+TTTSORT.INVK ::+USER.MANUAL;xr; DISKNAME.DAT ++9:+REQUEST.INV; 99*SOS.DRIVER 7,77SERIALNO.DAT ; %SEG.T jŸ/ *SOS.INTERP 4ke! *SOS.KERNEL T,V;- z) III.DAD.061426Bu' +GTO.RUNTIME 0 7 HELLO 3/ *HELLO.TEXT-.*MENU.MAKER }>,OPENRDCL.INVB99,PEEKPOKE.INVG >dLԡm#i㰼m#iЕOLԡȱfg hi !dLԡ憦  Ljmkm l y`2 Lԡ8(Je稽)ʈ@L œ40000;BBJ$="SOURCE WINDOW ":BBM$="S O U R C E W I N D O W" "BBP$=#BCC$="REQUEST.INV"(BCF$="OPENRDCL.INV"-BCI$="PEEKPOKE.INV"/BCL$="tttsort.inv" 2BCO$= 7=BBP$<d n61000: x300: }BDB$;"SRCWIND.MAIN" 000仺900h:PBFB$=12)BFE$=01):BFH$=04)BFK$=07)BDB$=28):BFN$=29)yBGA$=" "BDL$=BGA$,1,7*G=7BEJS=:BENS=BENS+1:BENS<5: O:BDB$\T=25=32=37"VERIFY THAT DISKETTE IS INSERTED AND DRIVE DOOR IS CLOSED":30100: 7:BDB$A<:"Unexpected System ERROR number ";;" at line number ";;%Z:"Program Terminating"::4800,00,00,00,00,00,00,00 2,3,2,1,1,2,2,2,3,3,2,3,21 "#"," "," ","","","(","(","","","","","",""C  " "," "," "," A"," ",",X)","),Y",",X",",X",",Y"," "," ",",Y"/,u:"Press Any key to continue ";:BEG$:@!E=255BBG$="YES"48050:05,05,00,05,005 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,005 00,00,02,00,02,00,12,00,02,00,02,09,02,00,02,005 02,09,02,09,02,09,02,09,02,09,02,09,02,09,02,095 02,09,02,09,02,09,02,09,02,00,02,10,02,09,02,095 00,00,00,00,00,00,00,00,03,085 03,08,03,08,03,08,03,08,03,13,03,13,03,08,03,085  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,005  05,05,05,05,05,05,05,05,05,05,05,05,05,05,05,055 01,10,01,10,01,10,01,10,00,10,01,10,01,10,01,105 04,00,04,00,04,00,04,00,05,05,05, 06,07,06,07,06,07,06,07,06,07,06,07,06,07,06,075 00,00,00,00,00,00,00,00,00,00,01,00,00,00,00,005 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,005 00,00,03,00,00,00,00,00,03,08,03,08,03,00,03,005 03,08,03,08,03,08,03,08,03,08,03,08,03,08,,AND,AND,EOR,EOR,ADC,ADC,STA,STA,LDA,LDA,CMP,CMP,SBC,SBCE ASL,ASL,ROL,ROL,LSR,LSR,ROR,ROR,STX,XXX,LDX,LDX,DEC,DEC,INC,INCE XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX5 05,11,02,11,05,11,05,11,00,11,01,11,01,11,01,115,ADC,XXX,STA,LDA,LDA,CMP,CMP,SBC,SBCE ASL,XXX,ROL,XXX,LSR,XXX,ROR,XXX,TXA,TXS,TAX,TSX,DEX,XXX,NOP,XXXE XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXXE XXX,XXX,BIT,XXX,JMP,XXX,JMP,XXX,STY,XXX,LDY,LDY,CPY,XXX,CPX,XXXE ORA,ORA,CMP,CMP,SBC,SBCE ASL,ASL,ROL,ROL,LSR,LSR,ROR,ROR,STX,STX,LDX,LDX,DEC,DEC,INC,INCE XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXXE PHP,CLC,PLP,SEC,PHA,CLI,PLA,SEI,DEY,TYA,TAY,CLV,INY,CLD,INX,SEDE ORA,ORA,AND,AND,EOR,EOR,ADC XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,LDX,XXX,XXX,XXX,XXX,XXXE XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXXE XXX,XXX,BIT,XXX,XXX,XXX,XXX,XXX,STY,STY,LDY,LDY,CPY,XXX,CPX,XXXE ORA,ORA,AND,AND,EOR,EOR,ADC,ADC,STA,STA,LDA,LDAtY(BECS*16+BDOS):BECS,BDOSBDOS=113:lN(BDOS):BDOS=113:pRE$(BDOS):BDOS=113:pOST$(BDOS):E BRK,BPL,JSR,BMI,RTI,BVC,RTS,BVS,XXX,BCC,LDY,BCS,CPY,BNE,CPX,BEQE ORA,ORA,AND,AND,EOR,EOR,ADC,ADC,STA,STA,LDA,LDA,CMP,CMP,SBC,SBCE-"+BBD$6r"72C";BDI$;::wW(3,1),wW(3,2)wW(3,3),wW(3,4)BBJ$;" - terminated":"gto.runtime":fini/oP$(256),tY(256),lN(13),pRE$(13),pOST$(13)9BDOS=015:BECS=015:oP$(BECS*16+BDOS):BECS,BDOS8BDOS=015:BECS=015:: BCC$ 2000 50000: 60000:BCF$,BCI$,BCL$BBG$="YES"270 BDES=3:',@::60086:/^wW(1,1),wW(1,2)wW(1,3),wW(1,4):BDI$=BDL$cBDI$,1)="sn-"+BBA$hBDI$,22)=BBM$mBDI$,67)="v0)BGD$=18):BGG$=17)|ĆBGJS:ww(BGJS,4)āBGNS=1BGJSāBHBS=14Ćww(BGNS,BHBS) ĂBHBS ĂBGNS 6 03,02,77,02 03,04,77,04 03,06,77,19 03,21,77,21 03,23,14,23 18,23,77,23?ſ`dBECS=12dfBHFS:BHJ$=BHFS):BDOS=09*BHFS-1:BHMS:BHJ$=BHJ$+BHMS):BDOS:CONTROL(%17,@BHJ$)".CONSOLE" hBECSj 8lBIA$=128))n 128,000,000,126,002,002,098,034,034pBID$=129))r 129,000,000,063,032,032,035,034,034tBIG$=130))v 130,034,03ȩ ȩtHsH`*** G ***qoShBhC 5 5 CHBH`Hʊe9he: Hm:hJ`潠`*** GS ***NLKIHGEdhh 89H:iɂ8H:HLHMHH HH`9=i>i> ȥii8 LȩȩY98  HH``n#" B?L*** fini ***hsht9=i>i> ȱii8 L*** var *** ` a ɅL8A 8A 8Ae ) J Ɇ>e=e>ɂ`L*** init ***hhȱiȱi45GA3/1.06REMO, VAR DOS80-BDOS*1,23-BDOS$^BMFS=0BDOS/2=BDOS/2):۵$`BMFS=1BDOS/2=BDOS/2):۴b:BECS=10002::dBECS=12000::z:'034,034 4TOPBRK$=136)) 136,000,000,127,000,000,099,034,034BOTBRK$=137)) 137,034,035C";"D A Datasystems"::"45C";"Tools Times Three"::"45C";"(c) Copyright 1983,1984";:61028P!RBMFS=0:BDOS=200-1:61020CTBDOS=14:::"49C";"PLEASE WAIT FOR INITIALIZATION";:200VXBDOS/2=BDOS/2):۵Z'\1+BDOS*1,1+BLJ$ =0:=0:BKH$:=24:=0:BKK$=20:=0:BKN$=3:=0:BKN$=5:=0:BKN$=22:=0:BKN$=22:=16:BLP$21);13);:H: JBMFS=1:BDOS=0201:61020%LBDOS=10:"56C";BBM$;:61028|NBDOS=17::::"4BLJ$=BLJ$+BLG$:=BLM$=BKE$:BDOS=15:BLM$=BLM$+BLM$::BLM$=" "+BLM$,50)3BLP$=BLG$+BLG$+BLG$:BLP$,1)=BJI$:BLP$,9)=BJL$2BMC$=BLJ$,1,54):BMC$,1)=BJI$:BMC$,54)=BJL$1,180,2421);01);: =0:=0:BLJ$:=79:=0:B 139,003,012,016,032,033,018,012,0039BKH$=BIA$:BDOS=177:BKH$=BKH$+BIP$::BKH$=BKH$+BID$*BKK$=BKH$:BKK$,1)=BIG$:BKK$,79)=BIJ$*BKN$=BKH$:BKN$,1)=BJC$:BKN$,79)=BJF$BLA$=08):BLD$=10)4BLG$=BIM$+BLA$+BLD$:BDOS=124:$=135)) 135,034,034,035,032,032,035,034,034 4BJI$=136)) 136,000,000,127,000,000,099,034,034BJL$=137)) 137,034,034,099,000,000,127,000,000BJO$=138)) 138,112,076,066,065,001,002,012,112BKB$=139):BKE$=BJO$+BKB$)4,098,002,002,126,000,000xBIJ$=131))z 131,034,034,035,032,032,063,000,000|BIM$=132))~ 132,034,034,034,034,034,034,034,034BIP$=133)) 133,000,000,127,000,000,127,000,000BJC$=134)) 134,034,034,098,002,002,098,034,034BJFZXWVUTS#"!  xt) Source Window /// (main program) ' D A DataSystems (c) 1984   version 1.30 Zœ40000 11000: 11100:6600:6300 2000:BMJS<2600 3000: BMJS=2600 4000 0";CIL$,2,4)8 +9 CHP$:#2;CHP$:CHP$=" ":CHHS=1:< > #2:#3:CJBS=0:CJFS=0:CJJS=0EBPP$="Merging LST and XRF files to produce ASM file":CACS=2:6000#1,CFE$:#2,CIC$:#3,CJN$,#3;" .PROC ASMTEMP,1":  CEMS=CEMS+1:CEMS>CGL%33904 CII$=sort$(CEMS):CIL$=CII$,1,5):CIO$=CII$,5) CIL$<>CHE$3380 " CHE$=CIL$!% CHHS=CHHS+1:CHHS>CHLS3385* CHP$=CHP$+CIO$+" ":3355)4 CHP$:#2;CHP$:CHP$=CIL$+" ":CHHS=026 CIL$>=BOG$#3;CIL$;" .EQU%=BDOS-1)6X sORT$(0)="ZZZZZ":CHAS=:QWKSORTA(@sORT$(0),%CGL%) Z 3300l CGN$:#1,CGN$' BDOS=1CGL%:#1;sORT$(BDOS)::#1 6 BPP$="Building XRF File and EQU File":CACS=2:6000" CHE$="":CHHS=0:CHLS=11:CHP$="" #2,CIC$:#3,CIF$:CEMS=0:DS=block.type(1):CGHS=1 CFLS=0CCDS=1 8200# T h BMJS>0#1:CEISCEIS=0m   6600 ( BPP$="Sorting LBL Data":CACS=2:6000! CGL%=CEMS-1:3160:& #1,CGN$:ž#13140'0 BDOS=13600:#1;sORT$(BDOS):BDOSD #1:CGL$="Label hold area full... quitting disassembly stage":CACS=2:6000:RBMJS>0#1;CCH$: WCCH$ a2010f 6600 10190:10000 BMJS>0#1,CFE$ BMJS>1CEIS=1:CEMS=1T CBPS=1CFHS=1:CFLS=block.start(1):CFPS=block.fini(1):CG+" ".>CEBS=02116:۰CCH$,25)=";":CCH$=CCH$+" "S@CDBS=1CCH$=CCH$+CAM$:ۻCDBS=2CCH$=CCH$+CAM$+CAP$:CCH$=CCH$+CAM$+CAP$+CBC$ D(CBF$="")(CDF$="#")2130FCEF$=CBF$+" "+CBM$'HCEISsort$(CEMS)=CEF$:CEMS=CEMS+1cJCEMS>=CFASBNKS=BOCS:BPPCDNS=02110:۰CCH$,25)=";"<;(CAK%<32)(CAK%>127)CCH$=CCH$+".":CCH$=CCH$+CAK%)V<CAP$<>""(CAG%<32)(CAG%>127)CCH$=CCH$+".":CCH$=CCH$+CAG%):CCH$=CCH$+" "V=CBC$<>""(CAI%<32)(CAI%>127)CCH$=CCH$+".":CCH$=CCH$+CAI%):CCH$=CCH$CK$ CDBS2065,2070,2095 CCH$,11)=CDI$:CBF$="":2105ZCCNS=11CDL%=CAG%-(256*(CAG%>127)):CBF$="L"+BOJS+2+CDL%):CCH$,13)=CBF$+CDI$:2105& CCH$,13)=CDF$+"0"+CAP$+CDI$:2105/CCH$,12)=CDF$*4CBF$="L"+CBC$+CAP$:CCH$,13)=CBF$+CDI$9 :2012 CCH$=CBM$OCCK$=oP$(CAK%):CCNS=tY(CAK%):CDBS=lN(CCNS):CDF$=pRE$(CCNS):CDI$=pOST$(CCNS)0CCK$="XXX"CCH$,08)=".BYTE 0"+CAM$:2105.CDBS>11000:CAG%=BNO%:CAP$=CAG%),2).CDBS>21000:CAI%=BNO%:CBC$=CAI%),2)CCH$,08)=CJS)::2900 2500:BNES=2BNKS=0:BONS=0)BPP$="DisAssembling Now":CACS=2:6000:CAG%=0:CAI%=0:CAK%=0:CAM$="":CAP$="":CBC$="":CBF$="":BOJS=BNKS+CBIS:CBM$=BOJS)%1000:CAK%=BNO%:CAM$=CAK%),2)CBPS=18200:CCDSNI%,%BOA%):BNKS=BNKS+1(BNKS>BOCSBOG$="L"+BOJS)::2900GL,`BNO%=buff%(BONS):BONS=BONS+1:BNKS=BNKS+1eBNKS>BPBS1300jBONS=BPFS1200~BPFS<5121300BPJS1300BPN%=512:30200BONS=0:BPFS=BPN%BOG$="L"+BO !"#$%&'()*+,-./0123:X 8000:c::BBJ$;" completed ... do you wish to run the program again ? ":6400:BMN$="NO"950:250,"gto.runtime":fini::".D1/MENU.MAKER":BNAS=BNAS+1:BNES=21100BNI%=BNKS)))'BNO%=peek(%B#3" "$" .PROC ASMTEMP,1": ž#14600 ž#24500"#2;CKA$:CKA$,1)<>"L"4050CKD$=CKA$,2,4)'#1;CKG$:CKJ$=CKG$:CKM$=CKG$,4):&"CKD$>=CKM$CJJS=0CJJS=1:47007$CKD$=CKM$CKJ$,1)="L"+CKD$:#3;CKJ$:;CKJ$:40506,CKD$>CKM$CKJ$,1)=" ":#3;CKJ$:CKJ$:4110i6CKP$=CKA$,5)+" .EQU ":CJJS=0CKP$=CKP$+"0"+CKA$,2,4):CKP$=CKP$+"*-"+(CKM$)-CKD$)))+"."@#3;CKP$:CKP$"|#2;CKA$:CKA$,1)<>"L"4220CKD$=CKA$,2,4) 4130CJJS=04en ":CLN$="2":CACS=6:6200dCN(CME$<"1")(CME$>"2")BPP$="Not a vaild selection...must be 1 or 2":COPS=4:6000:6100:20010HNCPD$=CME$:BNES=CPD$)MNBDB$:6600$RN=5:=2:"Select Level of output-TN=8:=4:" 0. Console Output Only'W ":CCH$=COM$ p+20000 z+23000: +24000:+ .#1,CJN$.#1;CII$:CII$:12010. N*NBDB$:6600*/N=5:=5:"Select Source of disassembly$4N=8:=7:" 1. Ram memory9N=8:=8:" 2. File 9>NBPP$="Select 1 or 2 th6000 'CLK$;'BPP$="Press SPACE BAR to pause, Q to quit":CACS=4:6000'**buff%(512)"*BEJS=:BEJS>65536BEJS=65536+CFAS=(BEJS-5000)/16) +sORT$(CFAS)+COJ$=".D2"W+\+ a+BNAS=-1Df+BNKS=0:COM$=" S=1CCH$=CBM$+" .BYTE "+" 0"+CAM$:8425 CCH$=CCH$+",0"+CAM$ CGHS=CGHS+1 CGHS>08CGHS=1:COBS=1/!'$'=32101008'=81=113:2900B'=3BBG$="YES": j'10000o't'~'/'BPP$="Press ANY KEY to RESUME":CACS=4:*v CGHS=1CCH$=CBM$+" .ASCII "+34) x (CAK%>31)(CAK%<128)83201{ CGHS>1CCH$=CCH$+34)+13)+10):CCH$=""4} CCH$=CCH$+BOJS)+" .BYTE "+" 0"+CAM$:8260: CCH$=CCH$+CAK%) CGHS=CGHS+1 CGHS>30CGHS=1:COBS=1  3 CGH250+ CFHS>COFSCBPS=0:8245f0 CFLS=block.start(CFHS):CFPS=block.fini(CFHS):CGDS=block.type(CFHS):CGHS=1:BNAS=CFLSCCDS=1:82205 : < CCH$=""8270> CGDS=1CCH$=CCH$+34)D BMJS>0#1;CCH$: F CCH$N CCH$="":COBS=0:CGHS=1g l :CMOS=1CNK$)'CNNS="0123456789",CNK$,CMOS,1))CNNS=07195 CMOS CNGS=1@J T30265  3 CCDS=0(BNAS>=CFLS)(BNAS<=CFPS)CCDS=1:ۿ/ BNAS<=CFPSCGDS8300,8400:COBS8250:ۿ& CCDS=0:CFHS=CFHS+1:8$=" ====>":CACS=5:6000:%CACS=46:BPP$=" ":6000:CACS:Xb gCMHS=0lCML$=""CMHS=1:CMOS=1CML$)3CNCS="0123456789ABCDEFabcdef",CML$,CMOS,1))CNCS=07095 CMOS CMHS=1 CNGS=0CNK$=""CNGS=1=120:: œ40000BEJS=:900B BPP$="Enter YES or NO ":CACS=6:CLN$="YES":6200?2BMN$=CME$:BMN$="no"BMN$="NO"BMN$="No"BMN$="NO":6470?<BMN$="YES"BMN$="yes"BMN$="Yes"BMN$="YES":6470:6410F_ dBPPww(BDES,3),ww(BDES,4)=CLCS:=CLGSUBPP$="Type GO to continue or END to quit now ":CACS=6:CLN$=" ":6200)"GOgoGo",CME$)<>0CME$="GO":6395-"ENDendEnd",CME$)<>0CME$="END":63756600:6310 œ6380BDOS38 9BFK$;:CLCS=:CLGS=3<:ww(CACS,1),ww(CACS,2)ww(CACS,3),ww(CACS,4)B21);01); LBDB$;QBPP$;" ";CLN$;*SCLN$<>""CMAS=1CLN$)+1:8);: V" ";CME$`CME$=""CME$=CLN$21);13);3:ww(BDES,1),ww(BDES,2)01); BDB$; BPP$21);13);3:ww(BDES,1),ww(BDES,2)ww(BDES,3),ww(BDES,4)=CLCS:=CLGS$CACS=5:BPP$=7)+" ====> ":60002CACS=6:BPP$=" Press ANY KEY to CONTINUE":6000 CLK$*CACS=5:BPP$=" ":6000,4) *4620\ f#4,CIF$ pž#44790 z#4;CKP$#3;CKP$:CKP$ 4730#4 $#1:#2.#3;" ":#3;" .END"0" ":" .END"8#3prCLCS=:CLGS=3t:ww(CACS,1),ww(CACS,2)ww(CACS,3),ww(CACS,4)z21);130:4110CJFS=1:CJBS=14900#1;CKG$:CKG$,1)=" "#3;CKG$,20) CKG$ 4500CJBS=1:CJFS=14900 4500:" #2;CKA$:CKA$,1)<>"L"4620*#3;CKA$,5);" .EQU 0";CKA$,2,4)'CKA$,5);" .EQU 0";CKA$,2N=8:=5:" 1. Just LST file.\N=8:=6:" 2. Both LST & XRF files4aN=8:=7:" 3. All- LST & XRF & ASM files@fNBPP$="Select 0, 1, 2, or 3 then ":CLN$="3":CACS=6:6200akN(CME$<"0")(CME$>"3")BPP$="Not a vaild selection...must be 0-3":COPS=4:6000:6100:20045pNCPG$=CME$:BMJS=CPG$)NBDB$:6600NBMJS=020200ONBPP$="Specify a Device name or Subdirectory for DisAsm files ":CACS=4:6000 N65003NBPP$="Your selection : ":CLN$=COJ$:CACS=6:6200 Nœ20160NCPJ = byte data A = ascii string data.^=12:=4:"Enter Q to terminate list^;^BPP$="Enter range definition : ":CLN$=DDC$:CACS=6:6200 _DDJ$=CME$_DDJ$="Q"DDJ$="q"24900/ _DDM$=DDJ$,2):"A,a,B,b,",DDM$)=024500% _DDPS=D ten ranges"&^=4:=4:"Ranges must NOT overlap"?^=6:=4:"Ranges must be ordered in ASCENDING offset order"6^=08:=4:"Format is B,ssss,ffff or A,ssss,ffff"A^=09:=4:" ssss=start offset/HEX ffff=fini offset/HEXD^=10:=4:" B 0:CMHSCBIS=CME$):23500 [6600]] ]6600]CCDS=0:CBPS=0L$^BPP$="Do you wish to define .BYTE or .ASCII ranges ?":CACS=4:6000:64008^BMN$="NO"24995^BDB$;:6600$^CBPS=1:DDC$="B,0000,0001":DDFS=1.^=2:=4:"You may define up toCACS=4:6000:6400PZBMN$="YES"CDNS=1:CDNS=0KZBPP$="Do you want HEX values included as comments ?":CACS=4:6000:6400ZBMN$="YES"CEBS=1:CEBS=0[ [6600s[BNES=2BPP$="Enter file ORG address (hex) :":CLN$="0":CACS=6:6200:DCP$=CME$:700nal ASM file will be : ";CJN$ Y Yœ22810 YCFE$YYBMJS=122850 $Yœ22830 &YCIF$ .Yœ22840 0YCIC$ 8Yœ22850:YBMJS=222850 =YCJN$ BYœ40000YY Y6600RX=2:=5:"Raw listing file will be : ";CFE$:BMJS=122795X/X=4:=5:"Temp equate file will be : ";CIF$/X=5:=5:"Final xref file will be : ";CIC$XBMJS=222795/X=6:=5:"FiDBH$)):DCD%>=0DCFS=DCD%):DCFS=65536+DCD%;TDCJ%=DBK$)):DCJ%>=0DCLS=DCJ%):DCLS=65536+DCJ%TBNKS=DCFS:BOCS=DCLSTDBN%=15CBIS=0:CBIS=8192TDAF$=CPJ$+"/MEM"+DCFS) U22700UXXBMJS=0XCFE$=DAF$+".LST"XXCIC$=TDBH$)>440400:216406TBPP$="Select ENDING ADDRESS in hex (0000-FFFF) : "TCLN$="FFFF"TCACS=4:6200 TDBK$=CME$TCML$=DBK$:7000TCMHS=040200:21675TDBK$)>440400:21675.TDBN%=DBE$)):DBPS=DBN%):BOA%=128+DBN%;TDCD%=$="0"oTCACS=4:6200 tTDBE$=CME$yTCML$=DBE$:7000~TCMHS=040200:21605TDBE$)>140400:216058TBPP$="Select STARTING ADDRESS in hex (0000-FFFF) : "TCLN$="0000"TCACS=4:6200 TDBH$=CME$TCML$=DBH$:7000TCMHS=040200:21640EQDAIS<512BPN%=DAIS):30200:20850.JQCMAS=1DAIS/512):BPN%=512:30200:CMAS!TQBPN%=DAIS-(CMAS-1)*512:30200^QrQBPN%=512:30200|QDAMS=DBAS:BPFS=DAMSQBNKS=0:CBIS=0:BONS=0RS`T-eTBPP$="Select MEMORY BANK in hex (0-F) : " jTCLNsassemble or 0 for entire file":CACS=4:6000:CACS=6:CLN$="0":BPP$="Your selection (HEX number) : ":6200`PCML$=CME$:7000:CMHSBPBS=CME$):CACS=4:BPP$="Not a valid HEX number":6000:6100:20670PBPBS=0BPBS=99999 Q22700@QDAIS=020850) bytes to skip in file before beginning disassembly":CACS=4:6000:CACS=6:CLN$="0":BPP$="Your selection (HEX number) : ":6200`PCML$=CME$:7000:CMHSDAIS=CME$):CACS=4:BPP$="Not a valid HEX number":6000:6100:20650PBPP$="Enter Maximum bytes to dir Filename to be DISASSEMBLED : ":CACS=4:CLN$=" ":6200 (PCPM$=CME$ -P3010062PCPPS=CPM$,"/"):CPPSCPM$=CPM$,CPPS+1):20530FPDAD%<>040300:20510+PCPM$)>11DAF$=CPM$,11):DAF$=CPM$PDAF$=CPJ$+"/"+DAF$PBPP$="Enter Number of header$=CME$+"/DISASM.STUFF"NCPJ$,,2048:20180N=3320180:NMN6600:BPP$="Error creating "+CPJ$+" ... verify availability":CACS=4:6000N6300:20100 Nœ40000 N20100 Nœ40000 NCOJ$=CME$NBNES=121600OPPE#PBPP$="EnteDJ$,",",3):DDPS=0245008_DED$=DDJ$,3,DDPS-3):DCP$=DED$:7000:CMHS=0245006_DEG$=DDJ$,DDPS+1):DCP$=DEG$:7000:CMHS=024500C_"A,a,",DDM$)range.type$(DDFS)=".ASCII ":block.type(DDFS)=1C_"B,b,",DDM$)range.type$(DDFS)=".BYTE ":block.type(DDFS)=2]_block.start(DDFS)=DED$):block.start(DDFS)<0block.start(DDFS)=block.start(DDFS)+65536Y_block.fini(DDFS)=DEG$):block.fini(DDFS)<0block.fini(DDFS)=block.fini(DDFS)+65536(_DDFS=DDFS+1 -_DDC$=DDJ$ 2_24300_ _6600;_BPP$=689GA7  3  5  >>< (&20 *, **>> "2*&" " >>  ">> "8""> """"""< SOS DRVR"CUSTOM.3 )((8*,;((*,((+)((9/(p((>3  =9 :9 .(~|L|LNqooGoDDDcc0ccpc]]c"QM"|@@pAATT**|1 TEMP2 2  GETCH 5RETURN BG G DOJMP TEMP1 @TEMP2 AGETCH  RETURN GS GS DOJMP JMP TEMP1 RELOCST VAR VAR JMPADDR .RELOCST ]XCST JMPADDR DDR MOVE254 INIT INIT FINI FINI JMPADDR MOVE254 VE254 EVEL=122850 $Yœ22830 &YEQUFILE$ .Yœ22840 0YXRFFILE$ 8Yœ22850:YOLEVEL=222850 =YASMFILE$ BYœ40000YDY ------- toggle options... ascii equiv and hex data *** 1.2 *** Y6600Q040300:30510@(B=7BEJS=:DFBS=DFBS+1:DFBS<50E=255BBG$="YES":۷ JBDB$;rL(=25)(=32)(=37)"VERIFY THAT DISKETTE IS INSERTED & DRIVE DOOR CLOSED and/or VOLUME ON-LINE":6100:OvDAD%=0DBAS=BPN%:-vDAD%<>030245:DBAS=0:DAD%<>7640400 v%v*vclosfi(%DEJ%) /vBPJS=14v9v>vDEP%=19:closfi(%DEP%): @vBEJS=CvHv$w=wDAD%=0:DEJ%=0Gwopenfi(@CPM$,@DEJ%,@DAD%) LwBPJS=07QwDAD%=8030265:DELS=D$="YES"24990:24010 aBDB$;auuDAD%=0:DEJ%=0uopenfi(@CPM$,@DEJ%,@DAD%) uBPJS=08uDAD%=8030265:DELS=DELS+1:DELS<1030125:۾40300uDAD%<>040300uu uDAD%=0(vREADFI(%DEJ%,@bUFF%(0),@BPN%,@DAD%) vEXPBL(@bUFF%(0))"Range spec in error...":CACS=4:6000:6100:24300DaCOFS=DDFS-1NaCOFS=0CBPS=0:249959Xa6600:BPP$="ARE THESE RANGES CORRECT ??":CACS=4:6000^]aBDB$;:BDOS=1COFS:range.type$(BDOS);" ";block.start(BDOS));" ";block.fini(BDOS)):#ba6400:BMN>> ""*:<"">""""""""""""">>><2"<""">""" ""  ">"6**"""""&*2""""""""""""*,"" "" ">""""""""""""""**6"""""""> >>>xrREQNUM BUF "CONTROL CONTROL RETURN RETADR GETPARMS TPARMSERROR ROR STATUS STATUS BLDSTRN ,BUF |F GETPARMSca` hhh5h66HH :5HHH) @  hhh g5ȱg6ȱg@ ɀL g eegghI8e556l6m `  hUhVh8 ㅊ eh֭VHUHk`HFB>;:9853/&" NL64Ch5h6h3lh4m 0/L6H5H`g8640'%76,V^dKA;6hWhXhhhQlhRm e Nb YMH YhLSꈭTXHWH`gca` hhh5h66HH :5HHH) @  hhh g5ȱg6ȱg@ ɀL g eegghI8e556l6m `  hUhVh8 ㅊ eh֭VHUHk`HFBhhHHHH l5m6m6  ЙW5X6X6 ` 5`MD32KA;6hWhXhhhQlhRm e Nb YMH YhLSꈭTXHWH`g##6 >?Bi{Ci|) |=! "LL{@?>8(O\ F9 >{i 5|i6) 6|8 L5{ hhhh0 hWhXXL `L5:<=>?@GA3/1.01:7SY CONTROL DL8H\0`(d  $,($  ,JATTACH.7A1 - Apple v1.3,1.31 - Quark v1.2,1.3,1.31 - rem Cue, exp Nor|CompLJ.ATTACH `e" .PPRINTER NQ12{y SCREEN DUMP ACTIVE >88  >!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>0# #0~$ <"<"""<< <"""<"><$""< """"  "" 6***""""""""""<""< :< $"""2,"""""**6"""""< >>>=TPARMSERROR uROR BUFPNT BMOVESTR REQNUM UUM BLDSTRN DSTRN BUF pia RETURN RETADR  GETPARMSFERROR ?BUFPNT NT DEVINFO DEVINFO MOVESTR FILREAD FILREAD BUF :4 GETRFNM BUFPNT OJNT ERROR ROR DOARRAY eFHIGA3/1.01:7SY PEEK OPENFI OPENFI READFI READFI CLOSFI CLOSFI EXPBL EXPBL  " 8L hhhh)i ꊈ눌 حHH`{rpnlIFEB?32-*&$(DhhhihhhhhhhjhkL!jȱ ȭꈘȑiHhH`수iHhH`ljb`_VUPLJEA75*(hhh h!HH`hhhhhhh5h665556666 5̑ Ȇ수쭎HH`ꈘȑ쭎HH`ACDEGA3/1.0 OPENFI FILWRITE FILWRITEGETRFNM RTRFNM ERROR ^ROR DOARRAY OARRAY  L0---------- START OF PEEK ----------h&h'hhhhh*h+h(h),-.()*HH,-.'H&H`---------- END OF PEEK ----------zxvtqnjifcUROKIL2---------- START OF POKE ----  9  `}~ `st}~0  e e     8= ȥ> 8((Ц`1`Q`&$"    `8ȭ L> )`͑ n(̓!J ͏` . `}~ ` `    ̘` LXwx `͎͍ `}~  }~   ?` *mmee wx yz  N8qqrr((С`uveeqr 4R0Lmymz a/(0L( Lwx a/0(0$L(Q`IJJ0 ʎ  `}~ `sqtrtJvsjiuuvwx  N8uuvv((˭yuzvsqtr8qqrr((qmyrmz********* BEGINNING OF SORT PGM **********h{h|hshthhh}h~./ |H{H` l `   D`1`hhhhhh HH`0.,*(&#  Lhhhhhh HH`0.,*(&#  Lhhhhhhhh HH`86420.,*'$#" XL*JLMNOPQRGA3/1.0 QWKSORTA PEEK PEEK POKE POKE  ------h&h'h,h-h*h+h(h)./0()*,./0'H&H`---------- END OF POKE ----------~|zxvsplkhea\YVRPzyxwvutsqnli`_^]\[ZWTQNMJGDA@>;96+( ytrolidcb_PMJGDC@1/'#"v_IEDCB@=:4.+$!|4vwx  N8uuvv((˭yuzvsqtr8qqrr((qmyrmz(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 % <SUVWXYZ[\]^_`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`$eRETURN {N sAFLAG /PTRAINT TAGFLAG . TAGSORTD TAGSORTDRETURN N  AFLAG LAG PTRAINT INT TAGFLAG GFLAG PTRADOL }TAGSORTA TAGSORTAMAINSORTMAINSORTsINSORTQWKSORTD QWKSORTDRETURN zvVRN ^Z AFLAG pLAG TAGFLAG kGFLAG PTRADOL DOL MAINSORTINSORTPTRADOL DOL MAINSORT#INSORTQWKSORTA QWKSORTARETURN *&N  AFLAG  LAG TAGFLAG GFLAG PTRADOL fbDOL wx yz  N8qqrr((С`uveeqr 4R0Lmymz a/(0L( Lwx a/0(0$L(%%%h}%%`8 ȥ!8 !)"qȥ#q#e$ȱe%L)%`@(((( % %`((((࠰$(ɠH(@(h((((@(`%z %% %~(A{(L%`.8(.Je.&ʈ.s@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 ɩ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٠ŠҠî!((ͽϠРРSOS NTRPSOS DRVR(.D1(YYYYMMDDWHHMMSSMMM̱忠ΠͽŠ堠Р͠Ю̠Ɔx߭J ʈc(()o/ e/''ʈ((''()(1i / e/''ʈ((''((''((''' ('`ŠDAY, DD-MON-YY HH:MMSUNMONTUEWEDTHUFRISATJANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECé I8`  S`ۈۥۥ۩Íۭۍۭۍ հL¢H8`Jj Ȅ ۍۆeۅiۅ Lɰ ʰWۅۄ ¦J> nʰ0 ̰+泱Ƴ m° x̰ ̐8` m° x̰8 ۢ8 ˰y ` ¥ nʰ泱Ƴ T̰#泪 Ѳ *Ƴ ` L:Ϡ`泑Ƴ` LaĥH8`JȘN8`) ))У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ƍťǍŠ)͠ Wٍۭۅ5ۅƭۅ X̰ ìۈۑ T̰ۅƭۅ X̰ۙ%ۍ" T`K8`)` İ ۱ۈ` ưW/ۈęۈЍ۩@` 8 MƐ  5 Q8`LŅ ۅ ۩ۍۅ Lɰ ʰۅۄÍÍۙ'Ù ۍ*ۨ  Ѝ۹ۙ8v- ðJ ¥ ð, ðLO ʰƥLT`'  mې浰``8 8ة  )LBѠٳ )8`i (` )N8`*eȱ+eȱ,i۠Ѻ*ȱ+L - ť.Lkҥ. ՅL ͐Ld ~ pа.J/)@߅4 ͰU..++,,IJ/ ӥ-.?Цե,J+jѲ4Ƴǥ4聠 H hH kh8`8-ȥ.L 8*Ʊ )8 0*-`.G.ʱ*+,EP'.E.LұE0+,,ӄ*p-e󠠩à٠΀ƉŠŠӠҠȠ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 ֤FHۑۑh8`P) հ Wհҥ,J+j泭۪ƳۑȊ ) ~ fPL ͊.>.ʱ+,EP!.E.Lw+,,ӄ*- P*e (` հB հ5 Wհ0,J۪泭ۑƳ sϰ(` L Ͱ2 ~ P kҐ#L8 T 2ΠHHȑhhȑ`Ld )N8` xհ*eȱ+eȱ,i۠Ѻ۹ۑ񥤅- ť.Lcԥ.La Ͱ$)rJ Lɰ )# Ԑ)0\-JM-, J3,e$,d,,  * *l߅߅H ߅ \xi ߅LHHH *ح)0 D) HHHH,, ߩ0  xLߍ߭lߩ * xLx @h hhh ,0)ߨ)Ah&'0HHHH xhhhh ,0)ߍLLhhh@)&&&(&('+*H)H(h)H@x )HH30.Ѥ  БĈ` 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ȥɭ }`` ? }``  }`X0i 8~XX0H }h襯` ©Wéĭ }0W`F X0A */5BL. zF`LLz Lz`Y `Ơ堧 B k L( LO  %   }` ` ?!©UéĩU󥣍V }`` ?)ŭ᭭򭭪𭭠򠭠頭퀠Šӳ頠𠠀𠠠堠젭ӠΠ $ 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 DISCONNECONV&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 MISMATNDEELSCONLISCLEAGENETABTSPCUSINTHEAMOSTEANOEXTENSIODIAFNOAAAAAAAAAAAAAASGNINTABSATYPRECAAAAAAAAAAPDLBUTTONSQRRNDLOGEXPCOSSINTANATNAAAAAAAAAAAASTR$HEX$CHR$LENVALASCTENAACONVOERRLIERKBEOTIMEDATEPREFIXEXFNEXFN%OUTREINDENAAAAAAAPOHOMA SUB$OFTRACNOTRACNORMAINVERSSCALERESUMALEGOTIRESTORSWAGOSURETURRESTOOALOASAVDELETRURENAMLOCUNLOCCREATEXECHAIAAACATALOAADATIMAGCADEAPRIssssssssss\3!z~IssssssssssssIG%ӓ,ssևwn7}|tttUUZ{fzxxˆU膅[L<^ENFONEXINPUOUTPUDIREAWRITOPECLOSATEXABYAAAAAWINDOINVOKPERFORAAFRHPOVP̠Ώ h:gpOn[n٧s]ds3issssssss0b>&dsjs|T}|s[ji!S)Lt`SSS`L` z :0.`9::hhgg.%g& $gegަhH逪hhʰ` ҥ [ aLT ҥIJJABB=>>;<<?@@T ě hhhHH  `89:: 悅 lc!)` +b` +b` sL :b#`L,H s h ऊL(,L8f` A KL jLdjOPPKLL h AKL` Ѽ   (`H shLs AL<^ȱ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ȢЅ iLOPP$pX0S&ȱhȱKȱLe潥ɂ逅$L# $mKL x~ m khLgLsLc h5逢)&a TH THLgL6k8:9: STT`)ɀLK$Lb8gLOPPKLMNhhm 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ֺh$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% mXm tL qXXW zzEn{i x }H$ ]kh8 )KLe9e:: }Lgi , p s$8$0p`PL<^Յ H s r ɀ ȱX Hih0 & ?<I?iE W Lq s )?TUJ)TU  ' Lsi imLqLsh E0`H ty ))ELyq  8 $0!PizEn{dUeUi hLqLs `wLr !L2 {}$ 0`QɀX zLs.+"2ZuL.y +|z% T}uH }h{ ~|H !z az ~hJ inIn`L~8;)q4X>Vt~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`L656 wh H5Gh`lmm566 Lx5Hȱ5ȱ5 F665 w56h(` x("LH)&h`( '&'`lmm566LxĠLx znInEz{iLx y? zL||uu`8i$iznIii0ĨV y${Wiuu8Iem_B_B`)&N> ȱI8gJJ hhge ghh f feLH>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$oȘ戅 aziȅ xdo`Abi$nFn) i  j g g ^ ܇.Laz͠Lć ^ ׄ& ć ׄ ć ͠L- x |z K{ | T}{ x xnH yxn0 I B xh B Lр |  +|] {n LU{HLʁIڢIڢ-(h#5ᆥ](IڢʥnH BiHɁy U{y рhɁ xhLB` vy{| g|S}dpL}Qz}c0~~D:~L̑56gh6hegehh `iɥ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/5H6H6Ht $mlmkljkij8ihn`L,$0DpA q enHi80 @Lyu \ % @u ćh `&m&l&k&j`2L0 և yxLT}$0pLI oբRLi `u LLi u Lui0 ܆ چ,,% п 擩lm0u 1eL5665`iɀ*iH i  @8 ei $ tutt tj ȡhn` t` 0RN0R 0R$n-RRR`i` p`5665i`$0BP?iH i hLbe55f5f6e}Lme6u5u }`6ʈ`v`jip` ? #  ue }~ %u $ چ 0 u}` L uu  ) }Li <i@L{i$i0 p $ 1`ui` LL Lbb `}i~ei^~0] e e^`}`566i5`_cf_cfi^eub` ?^qbep`L<^ ?8b^e` rp`I` ? ㄩp^|be #^b ebbu|beiee^^iL56^f" ऩ थ (! ( ऩ थ (" ( द!LGb8Lऩ@iu +-ELj) e | ^ .' "5 1 p) iIii i)Lm` ?i $0 ׄ $0 $0 ^`Hhth`^Qb ^^ 8` `H Jh(L悈`H逨h` Hh8 Hɀjhji` HihJi(`  ~q$L ɺ b$P i pi$ȱLdjɻƟ dj 柰ީ Lihh sLg  s ! b   s "!!!IjJkJk )lmm'&`UR{R||L̐: / cRRȹRRȥ Rл s `Lsh sh5lh6mh6mhxhyhy x x Qȱx7ȱx88 Ƃ 7e7888ł75 78ߠȘH yxy hL3 j kqHHHH s H , ,H s s ~qhh 1 lhhXhXhWWȱW7ȱW8 eLNLXZWX ` GGH HlHmHmH khmhmhlh hk8j7k8Lޒ e7788vvyLj L ʟ,-uukv kv@vvyL5Lj ʟA80멀uukeqqtt$uA)*t L; $uЫkЦuuj ysLq,kl$uhuuj XkkNuuj k 4%v. #  1$u tAvʘtDթ q(~th`pvquts~y fp$pp8j/;XAx=|8ez{{ ghh "o `L x  wwghhoؠKkqvj L`$uZuukvN kGv@  pJ LUL-LG -$p0`pog $mkڥrok8o,koLdjAaCcoJ mko 5 $mkk mLw L L HG56H6LExh  (`|||}z,A[ :808Ш`,ޞ@`y Gy`LHq,;' L Pu  pLLwl`|H}HzH{HHH ɶ# xhH s  ~q s,; Ls  ~q$ hxrL iLpnH ~hɀ8(*iR.-:/ RRhhh{hzh}h| Pu p 0|8cJcm J_mm嚍J_AgBhBh \^A_B_B` ^"( zM jF566 x}z{6{LҜ #z{{"} GLsL<^ jHHH i dj ٥z{{ j}hhh ;в| |膆  RRRRH uhA?B@7B@87F8f7877878L:^7 8*JA5gB6B68 悅h圍h?H@H@HI?J@J@ "]h@h@h?gAhBhBJJ8 悅J圍J7ߚ8BܚLs`䚌B L:^`Ib^J sL͙ɚʚ `pAƚЙϚŚњ˚ ̚8 悅DDF͚ Κ8 DiFEC CD)ӚDmӚDԚCBКLěŚAݚ⚠IȌ 8 ꂍ  8 ꂅJJ` !7Ri88 pi UŦLUUU HHHHL 2hh LW iL 2hlhkhn jhimhHɗ8 Ls`LIŚ1CUDVDVU Lŧ 0 7U L`L:^֩ ŚEĚ L| Qp QeeRee8 1 V` 痠U` hh R LsL  z (L[ Rީ  @Y%(&:$LU s և ^|iHn %jHkHlHK s n ZlHmH5 s iH jHH楩e ) ,LsLR eՅ7V8U #   785U6VLΔU7e778ҥU^V_bcF_hcCgDhebbc \^__`U8傅UV` |UȱU` L<^ |UUƜ0ƛ ӗWqeWȱWqei W` |8UUWȥVUX`UeUUVUO / +'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 xLCxl5Ym6Z`u vphh` Ljk ,hh`Sj9-k L9j ekekk|z)ekk |j[ ٢  L`j 9kkj"j"kеAX"+-&$.ECR/#Z*! DBA0 k$JJJJ) ݙRթR`yiɀjjn*8miɝ d L .q$uL$)JJ8偅8傪 u Tf$i0Ł!y0GLqL~䁰< 0$H ,GhGթ $u$n 0GЫ-Gv)' $G uJ-$n0+G $G0)R?eR>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`dyo ɃɄ b`" lJJJJYe s ˰L8Ls LԫN l@u=ekPe tMe )llNesOet NeOetMeCOeNeȌ=e>e;eehi?e ueL5e qrL,op ɩ`et?ek;e`hZ L<^hZL<^L=ee>e ?e`opqrst !- JD)3E)X,qȑ ;?L x0LC L '5դԦ kˍ12/ *̍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 3 "'*CFMRZ_ '058FV[fjsuw;Profile Driver -- Copyright (C) 1983 by Apple Computer Inc.`.PROFILE&%1  % &$0) `/0) `,.0L tHsH`! (xy```,.0L HH`Ln,/023x #) "# (```'+.`% (.L,/0x ('( `,.0L& (,.0L7 Đ`ʥ逅8n134nʐ3x1eʍ1,/p/H h(eʅ8ʅİLa )`Y)D00L:1?24n2")Copyright (C) 1983 by Apple Computer Inc. HH` (# (KXT .")"#)  #`,.$ ()-'( / GMRU[`chnqt{ "/258:GTWZ]`cfi "%(.:?BSerial Printer Driver -- Copyright (C) 1983 by Apple Computer Inc..PRINTER AШ١ވH)Ih*#ЭУލLȱLȱӌLLȱѭ)I yJн%yK8 ѮIЬI,LIЍ/5ȱЍ069Ј8Ј Щ`JP (` $'*169B˷L H)H2Pʈ2˷LGDB ЭC-íHέ''G 6`,HH)Ʉ ) hHhh`. 4`.04:A`xLIB <BAC <C>н8 Ѡ .CONSOLE"NRP)  P`'G'Ȫhh`̽G` )D$6E%7F# D 5 (˱E$i$%6i67Fи$i($6EИ P Q PASCODPASTXTTEXT PASDTABINARYFONT FOTO BASIC DATA WPTEXTSYSTEMRESERVRESERVCAT RPSDATRPSIDXAFDISCASMOD AFRPT SCNLIBk;eo $'>ed?e)AE)H ;LLW x0Lx:9,<0 `Ld L)(I bL)8 ʪi)I8R & h:1ߠ*x (,< K 1x ` (`98  bLH8 xʍ6ʍ7hh)ɄJJRH88,< ʠʠ &,<0,80ʬ8ʠ6ʠ+È`&È` & IMk`4`5`6`7`8`9`<ȭ=` & @jI`:ȭpȭqé,i0L È`,g HH`LL! l      5  Hdcefh&+si  M0    x) `(,  LuL-upp<`uqq=L: vuL L L <Le Le ,g0L HH`! ( 9EKQWbmz`(" ((è%È`2ȭ3`1`d`c` C9L8 ; ;k`;);k`,@`<,m p<L<`<p<`,ms<L=q=L: ,lXL ==L: ,lCL <=L: <,n)LL8 L8 u:L8 ;)ߍ;j`; ;j`uBL8 uCL8 u)u;) u;L8st HH` MjH,: <J h̰ <rh,oL`%CYgu #1:CY` 9C<m><=m@=>@?AL8 >m<>@m=@<=L8 <m>?=m@AL8¥Ӆé҅L,5,6  & @jIH,5 p  He҅Ґhe…å逅h,23Lhґȥӑ,10 h0  `,g0L  ҅ӥĥŰ+,0p 4 Ls  Ls i )"|tȌs|ԥ f0)ĭ9)9҅xh(ĥŐL i,1HȊ©L,52,9-P" a{)9 Ln90$0%,7 ҥ L$0T,8OK50P;ҥ,8 L%\   8҅df`cnx  (,4h`dd,9P"<:J H) +̰ H) +ʭcP h̰ʩd8,h)ec efeede`,5 H  h 4  `5!    4(P 4 4  `,g0L,10kH0 WL)6La5 I`6 cef`7 I`8 iIi`9A)I@`a{ ~I)_ bJ) b) )ab)a a,h0& &+%a0 +hcefd(c,@cfabOO&+- ((((PPPPBTVSPLH   5"ʘ HH` (# (=  0`)aIAHOTW\_bx{'69@IPW]`cfjmpsx}(̠`x (̠` [   `L `` ``I FF x (̠%L#fowz*13579;=?ACFNWaehmpx "'+@\mrv{( 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(`x   h) `(" (  (È& 8  `)2ȱÍ3`)1`Ɂ" (cefd`Hcefh) `xÙ+(`xÙ&(`)4`)5`)6`)7`)8`)9`,i0!M:0p ȱq L `" (~)y ~JJ* I `x|x|,,}P-X~ F }~L } `,}0 x) `(`hh% ( ΍ ύ逅Ñ}`` " ( ĩ~Í(J)=A$(I),1,31)!J/2<>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), VOLUME 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$0 WAP /// SIG MENU.MAKER PROGRAM (v. 6.2) =".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 I P S V \ a h m p s x |     ' + < ? D G N U f k p x (+@EIR[ty} NQ              . 3 6 9 < ? B E H N S V \ _ b w      ! ( 0 7 I N S _  . G R Y f {    ! $ 4 9 F ORUX]`finsw| !%*/369<?BEJMRUX]`h  2;AGMS[fot|;?DGLTot <?BGLQgjox',/25:BGKORY\aelpu !$(+.147<?BFIL̑бʑΈ0 Б̱ΑʈeمΐeمАA萿 :  `ʝ"`t  !#%')+;CNU\eh "*-036<BLORX_fj &+388,:Jک@ׅפ؈۩MjL,:08*Ȅ B ,:J}΅н(I I $0;P̑бʑΈ,:JՐ̑ʈ0 Ցʭr̈A萠L: ֦ڱΑ0Б֤ h L  p,:0 JfiΥiώJe΅Хiю@ B $pI I `<Mj,:0pJՐ̑ʈ`pJհ0`ՑʭrpȐ`=m@< B h AL: 8p,:Jf׮@$PA B $P@/A'ʤ˅΄ϥ̤ͅЄ B $̑бʑΈ0Ƞ h L: $)טɀIim>ٮ@8pذ `$0";O,:0'???>>8?>p<<AAA@@8A@q==C)CB)B Crx 0, )ߍ:) J)*PR,T,V( : `,k<,: JI`I`<,:J̰`=m@>,:J}ʅ̽(ĩϭ & &υΠÑΈ~ F ~ҰةeÅÐн},,P,`,g$ ( $g " x) (,`% (gL,}0, `gé ĩ `:) j:;jN;~j16,B) THEN 240 #1, d$="":=10:"80C";d$ ž#1300I=0"I=I+1:#1;A$(I):290,#1 6L=I-1@j=1:same=0 J:SEG=0 Tœ2030^CT<1CT=1cCT>13000Zha$="{,|,~,}; selects; to new disk; 11540bA-7640,660,690,720l:=THPOS:ٺ1600 =Q:WW=0A=:A=21A=9&oldprefix$=40A=31410: Control C "aborts" program to Basic(:A=13770: Return Selects a file *DA=27:50: Escape to change disks/FA=324000: back out one directory level 3GA=(80+UCA)A=(80+L"BASIC 0":150A$="TEXT 0":150A$="CAT 0":150A$="FONT 0":150A$="FOTO 0":150A$(L),"BLOCKS")510*=27:=19:"FREE MEMORY AVAILABLE: ";=7:=20:"80C";A$(L);$:=5:THPOS=4:I=1:IBOTM=J-1:620Q=:=26:=21:been put together on this disk. Source Window /// is provided in an FULLY COPYABLE format. Please be sure to make a back up copy before using the program. Although every effort has been made to ascertain correct performance e code SOS uses to give you the dreaded SYSTEM FAILURE xx message... which you'll probably see if you proceed with this reckless endeavor !! And you thought we were kidding when we said you could use Source Window /// to disaMP vectors pointing to SOS fatal and non fatal error handlers. Now disassemble Bank F from the address JMPed to in 1925 to that address plus approximately x'B0 bytes (for SOS 1.1 this is EE14-EEC2). The result will be a listing of thect certain listing format options WHAT TO DO FIRST Familiarize yourself with the contents of this guide. Do a short test disassembly to LST only of bank 'F' locations x'1925 to x'192B. These contain Jo either RAM or FILE disassembly modes. To execute a disassembly you must do three things : 1. specify the type & location of INPUT to be disassembled 2. specify the destination for the OUTPUT disassembly 3. selng Basic, you run the program by inserting the Source Window /// diskette and RUNning either the HELLO program or the SOURCE.WINDOW program. This preliminary program performs system initialization and proceeds, at your request, tataSystems RUNNING THE PROGRAM(s) Source Window /// runs under Apple Business Basic and is supplied as a boot disk. The program(s) run automatically at the prompt. If you are already runni special function, then re-assemble a working, custom tailored driver. * * * -1- Source Window /// D A D of the Reverse Assembler, 'patching' and modifying existing executable machine language programs. Using Source Window /// you can, for instance, disassemble your PRINTER DRIVER, edit the listing and alter the logic to perform someing instructions and LABEL CROSS-REFERENCE listings and FORMAT the output in a manner which is compatible with an existing Assembler. These later three functions especially, assist the user in what is the most typical applicationstructions and produces as output a text file containing the equivalent Assembler Language SOURCE CODE instructions. More powerful reverse assemblers, such as Source Window ///, supply SYMBOLIC LABELLING for memory referencsembler language programs which function together as a full-featured Reverse Assembler for your Apple ///. A Reverse Assembler, or Dis-assembler as it is sometimes termed, is a program which accepts as input raw machine language in 716-648-2462 Source Window /// D A DataSystems Description Source Window /// is a collection of Basic and Asinvited to show that appreciation (financial or otherwise) to Mr. Anderson at the address below: D A DataSystems 3792 Windover Drive Hamburg, NY 14075 of Source Window ///, we cannot guarantee that it is bug free. Since Mr. Anderson no longer supports this program, he is unable to answer questions about it or provide any other support. However, if you enjoy this program, you are ssemble SOS. After this you are on your own but we suggest a disassembly of your Printer.Driver to ASM file then modify the I/O routines to some simple translation (e.g. make all x's print as o's) then re-assemble and test. Recognize that Source Window /// is only a tool, designed to be used in conjunction with creative intelligence and a bit of sweat now and then. Expect to spend a fair amount of time on your editor or word processor at some stage f the program. ppppp.EQU is a temporary file which contains needed assembler .EQU pseudo ops for later inclusion at the head of the ASM file. ppppp.XRF is a file which con names is formed by the string "MEMnnnn" where nnnn represents the starting disassembly address. Briefly, these output files are : ppppp.LST which contains the primary disassembly listing of the first pass oin the specified subdirectory. ALL OUTPUT FILES AND TEMPORARIES WILL RESIDE HERE. Output files are named with distinctive suffixes appended to the input file name or part of it. If the input is from memory the beginning of the filetemporary files. These output files will be stored on a device or device file subdirectory which the user must specify. SOURCE WINDOW /// WILL CREATE A SUBDIRECTORY CALLED "DISASM.STUFF" on the specified device or withWindow /// D A DataSystems Source Window /// Output Based upon user specifications, Source Window /// will produce a variety of output files and additionally, some ow /// will proceed as if each byte of the text represented an executable instruction... producing a fully re-assembleable but quite meaningless output file. -3- Source thout offsets. Important Note Source Window /// DOES NOT IN ANY WAY CHECK THAT THE INPUT THAT YOU SPECIFY CONTAINS VALID EXECUTABLE CODE. If you request 'disassembly' of a text file Source Winding instructions, not the relative bank offset. Source Window /// accounts for this by adding an offset of x'2000 to all memory references except those in bank 15 which access the system bank directly in 0000-1FFF and A000-FFFF wi 2000-9FFF. Thus the code in locations 5A00-6C00 in bank 2 will be actually running in locations 7A00-8C00. The code, if it is valid executable code will address the actual execution addresses in JMP, JSR and memory referencelected (see the reference note at the end of this document regarding Apple /// bank switched addressing). Note re Memory Disassemblies The Apple /// actually 'maps' user banks into memory locations sed (which may allow you to avoid disassembly of additional unneeded modules). INPUT FROM MEMORY This form requires specification of starting and ending addresses in hex and of the bank pair to be ss to disassemble the entire file starting from byte one, but you may specify a certain number of bytes to skip (which may represent non-executable 'header' information) and you may specify a certain number of total bytes to be procese program can be directed to disassemble either a FILE of your choosing OR a specified RANGE OF MEMORY locations anywhere within Apple /// bank-switched memory. INPUT FROM A FILE Default iof any significant re-assembly project. -2- Source Window /// D A DataSystems Source Window /// Input Thtains the final label Cross Reference listing ppppp.ASM is the final Symbolic dis-assembly containing stripped of all unreferenced address labels and containing .EQU pseudo ops for all externally referenced addresses. More detailed descriptions of these files follow. -4- Source Window /// w /// Format Options Prior to any disassembly you will be asked to specify three types of formatting options. a. You may optionally include the RAW HEX equivalents of the disassembled code within the final .ASM file lis EOR (052,X) .BYTE 054 ;etc ... -6- Source Window /// D A DataSystems Source Windo100 . . . L0026 .EQU * L0027 .EQU * PLA STA L0026 PLA STA L0027 JMP L0100 AND L5320 .BYTE 054 ause the A /// Pascal/Assembler Editor can not handle particularly large files on 128K systems. Format of this file is : .PROC ASMTEMP,1 LC080 .EQU 0C080 LFFEF .EQU 0FFEF L0000 JMP L0r all externally referenced addresses. This file also terminates with an .END assembler pseudo op and begins with a dummy .PROC specification. The comments containing actual byte data and ASCII equivalents are stripped off bece line is the label and the following items are addresses of references to the label. ppppp.ASM is the final Symbolic dis-assembly containing stripped of all unreferenced address labels and containing .EQU pseudo ops fo ppppp.XRF This is a file which contains the final label Cross Reference listing in the following format : L00C0 0002 L2A00 01FA 0227 2A02 L3033 0101 0202 07FF where the first item on that the head of the ASM file. This format is required by the standard Apple /// assembler. -5- Source Window /// D A DataSystems tion of string data as meaningless code and the generation of an unnecessary label (L5320) in the code at location 003B. ppppp.EQU This is a temporary file which contains needed assembler .EQU pseudo ops for later inclusion ;4C0001 L.. 003B AND L5320 ;2D2053 - S 003E .BYTE 054 ;54 T 003F EOR (052,X) ;4152 AR 0041 .BYTE 054 ;54 T ... Note also the interpretais structured as follows : 0030 PLA ;68 h 0031 STA L0026 ;8D2600 .&. 0034 PLA ;68 H 0035 STA L0027 ;8D2700 .'. 0038 JMP L0100 and/or ascii equivalents included in a comment field (following the ";" character). These are NOT included in the final ASM file because they increase file size to an extent which is unacceptable. The data in this file d off in the next stage of disassembly unless it is explicitly or implicitly referenced by other code. This is followed by the disassembled code listing OpCodes and Operands in standard format and, optionally, the raw hex values D A DataSystems ppppp.LST This file contains the primary disassembly listing of the first pass of the program. Each line of the file carries an offset/label referent which will be strippeting as a comment field. Response is Yes/No. b. You may optionally include the ASCII character equivalents of the disassembled code within the final .ASM file listing as a comment field. Response is Yes/No. c. You may elect to specify ranges of code as BLOCKS of .BYTE or .ASCII data to be listed in the more compact format of the Apple /// assembler. All three options, if selected will increase readability of the output .ASM file at the explated into a symbolic operand. - Input values which do not represent valid 6502 instructions are translated to the Assembler pseudo op ".BYTE nn". - Branch addresses are also calculated in this pass. - The ongoing g lengths. - If a Range Spec is not active, valid 6502 instructions are translated to their appropriate assembler Opcodes and the number of bytes required to produce any needed operand are read in and transfied input byte-stream in one pass. - Whenever a .BYTE or .ASCII range is entered, output processing loops through logic which builds the .BYTE nn nn... or .ASCII "abcd" output lines up to certain valid listin -8- Source Window /// D A DataSystems Source Window /// Processing - Source Window /// reads through the speci bytes from 2F0-3F0 to disassemble in .BYTE nn nn nn... format and all data in locs 1000-13D0 to .ASCII "aaa bbbb cc" format. If a byte within a specified ASCII range is not a valid ascii value, it will be inserted as a .BYTE op. ssss specifies starting memory or file offset in hex ffff specifies finish of range. Specifying Q with no parameters terminates the list. Thus specifying ranges B,02F0,03F0 and A,1000,13D0 will force 256blocks of data. Up to TEN RANGES may be specified in a repeating input prompt loop The format of a RANGE SPEC is : B,ssss,ffff or A,ssss,ffff where B selects a .BYTE range A selects an .ASCII range rs are 'executable, e.g. "F" = x'46 = LSR zero page.), instead of the more readable and space efficient .ASCII "any text here nnnnn" format. The SPECIFY RANGE option is designed to allow you to force the program to recognize such or somesuch... thats right 512 lines of Lxxxx BRK instructions. Similarly a string of text error messages imbedded in the raw code will pop out as mixed .BYTE nn and meaningless OPs in the disassembly (since many ascii characterces the program to avoid the space efficient .BYTE NN NN NN... format which the assembler allows. Thus, you can imagine what happens when Source Window /// encounters a block of 512 bytes initiallized to x'00 as a data buffer byte data. Even the x'00 BRK instruction might be 'executable' code since SOS uses it as its function call initiator. If the next byte is a valid 6502 OpCode it may or may not be intended as data or code... this ambiguity fode it is disassembled as such and the byte-stream is read for any needed operands. If the byte is not a valid OpCode, it is disassembled into the .BYTE NN format which the Apple /// assembler allows for specifying D A DataSystems Specifying .BYTE or .ASCII blocks of data Normally Source Window /// makes no assumptions about executability of code. If a byte disassembles to a valid 6502 opcoense of increasing the size of the final text file and some processing overhead. Option (C) requires a bit of discussion... -7- Source Window /// output of this pass is written to the LST file and additionally to the CONSOLE device. - If only LST file has been requested the remaining steps are bypassed. - Label/referent pairs are written to a LBL data array in memory. - The raw LBL data is sorted then read through to build the XRF file with multiple referents keyed to single label entries. - If only LST and XRF files have been requested, the final step is sk Source Window /// is not exactly lightning fast. Usually you can "pre-process' the output listing to the console since it proceeds at a leisurely pace. The current implementation of the Label sort is optimized for speed stew, pick up a copy of the SOS Reference Manual. -10- Source Window /// D A DataSystems System Limitations -0 and the system bank switched in together. Much of this is further implemented by fooling around with actual and 'nominal' zero-pages and stack pages...not for the faint-hearted. If you really want to bury your hands in this two 32K banks allowing direct data access to 64K chunks and stepping through all of RAM by simple manipulations of the x-bytes. If you request bank pair x'F (i.e. number 15) the system treats this as the special case of bank effectively specifies the bank-pair to be accessed. This value is hex'80 plus the bank-pair number, we've stripped off the x'80 part in Source Window ///, you simply specify the Bank Number. The 'bank-pair' is a consecutive set of e /// implements a few software-hardware cuties which allow a specific type of machine language instruction (zero-page indexed) to access any bank of system memory based on a value stored in ram called an x-byte which bank and 3 32K user banks numbered 0,1,2. Various software functions will swap a different banks into the user bank. This allows easy access to the current bank but what about the 64 or 192 or 384 K of remaining memory? Well threter or application at addresses 0000-1FFF and A000-FFFF, total 32K. The remaining 32K between 2000-9FFF is the 'user bank' and is physically mapped to one particular 32K bank of user memory. On a 128K system you've got 32K system even though it runs an 8 bit CPU (the 6502B). It accomplishes this by breaking available memory up logically into 32K byte 'banks'. At any given time 32K is permanently dedicated to SOS and 'resident' parts of your Interp /// memory management and terminology. If you plan to start probing around machine internals as your purchase of Source Window /// suggests, you should purchase this document. Basically, the /// can manage up to 512K bytes of RAM D A DataSystems NOTES ON APPLE /// "BANK SWITCHED' MEMORY ADDRESSING The Apple /// SOS Reference manual, available from your dealer, is the definitive source for details of Apple XRF listing. - Additional equates are added to the ASM file up front for any references to addresses before the beginning of disassembly. -9- Source Window /// bler, being itself a one-pass creature, doesn't accept. - Finally the LST file and XRF files are read in and addresses are stripped off, in producing the ASM file for output, for any address which does not occur in the ipped. - At this point appropriate EQUs are written out to the temp EQU file for all Equates to memory past the end of disassembly. This prevents these equates from being appended to the ASM file which the assem and thus strictly ram based limiting to approximately 3000 label refs in a 128K system and 4000 on larger systems. This translates to roughly 6000 to 10000 lines of source code. By way of reference, SOS 1.1 disassembles from memory A000-FFFF into 120 odd pages or 7500 odd lines. We think you will find the trade off for speed worthwhile. When disassembling from disk files you should keep in mind that many times these files store non executable data around the ac symbolic offsets. Two procs may start with JMPs forward over 32 bytes of data with the relocatable JMP L0020 instruction. If you disassemble these together, both refs to L0020 will either merge or clash. The separate procs must brything in relocatable format. If your invokables file contains multiple .PROCs or .FUNCs, BE CAREFUL. Each proc is separately relocated by the loader so each proc can access relative locations internally with the sameskipping substantial relocation data which follows the code. Remember, by disassembling to Symbolic Code as Source Window /// allows you don't need to ever worry about absolute addressing, your assembler will rebuilt evetems Notes on DISASSEMBLING BASIC INVokable modules First 512 bytes of the file are header... but get a look at word #3 (bytes 6,7 in lo,hi format) which contains length of code. This can be used to allow to be "Get_Char" or whatever. Then back up through mainstream routines and data areas. -12- Source Window /// D A DataSysroutines in the code to determine their function, then use your Editor or Word Processor 'mass change' or 'replace' command to change all refs to that symbolic to a more meaningful label of your choosing. I.e change all refs to L30BF ldn't expect to go glibly into the raw disassembly anyways; the time you spend rebuilding the listing into a more readable format adds to the chances of relatively bug-free patches. Plan to dig through the more isolatable subile. Normally we suggest that you approach the reverse assembly in stages, starting with a LST file only run. Scan the LST file on your first pass to isolate ASCII text and get a sense of data area locations. In general you shouolate .BYTE and .ASCII ranges that you can input to later disassemblies. We strongly suggest that you break up larger disassemblies into more manageable pieces and 'massage' the pieces; then merge them into a final assembly fachine code from the listing. But still you'll find the Pascal Editor leaves only 28K or so on a 128K system for the text. This can get chewed up quickly by stray data blocks. Run preliminaries to LST or Console only to is/ D A DataSystems Suggestions for Use We have tried to keep ASM files tight especially by allowing the optional removal of the commented ascii equivalents and m LST file was 84200 bytes !!! ASM file was 48522 bytes XRF file was 10030 bytes EQU file was 560 bytes. -11- Source Window // imbedded data blocks and frequency of memory addressing in code; but the following approximations will help you to avoid volume full errors if you use .D2 for storing output files. For a disassembly of 4K bytes of memory ... tual code for use by the loaders and relocation. Source Window /// does not manage this for you... you'll find long lists of useless BRKs and BYTEs up front. File sizes for output files will vary depending upon factors such as e broken out by separate partial disassemblies or the proc label refs must be carefully reviewed. Notes on DISASSEMBLING DEVICE DRIVERS Pick up a copy of the Device Driver Writers Guide from your dealer. If you are going to transport a device driver to run directly under an interpreter (as a basic invokable module for instance), keep in main that Device Drivers run under different execution environment assumptions... zero page is x'1400Apple is a registered trademark of Apple Computer. * * * APPLE COMPUTER, INC. MAKES NO WARRANTIES, EITHER EXPRESS OR IMPLIED, REGARDING THE ENCLOSED COMPUTER SOFTWARE PACKAGE, ITS MERCHANTABILITY ORconsequential damages, so the above limitation or exclusion may not apply to you. D A DATASYSTEMS reserves the right to make improvements in the product described in this manual at any time and without notice. The word lting from any defect in the software, even if D A DATASYSTEMS has been advised of the possibility of such damages. Some states do not allow the exclusion or limitation of implied warranties or liability for incidental or ailers) assumes the entire cost of all necessary servicing, repair, or correction and any incidental or consequential damages. In no event will D A DATASYSTEMS be liable for direct, indirect, incidental, or consequential damages resuis sold or licensed "as is". The entire risk as to its quality and performance is with the buyer. Should the programs prove defective following their purchase, the buyer (and not D A DATASYSTEMS, its distributors or reto warranties, either express or implied, with respect to this manual or with respect to the software described in this manual, its quality, performance, merchantability, or fitness for any particular purpose. D A DATASYSTEMS software -14- Source Window /// D A DataSystems DISCLAIMER OF ALL WARRANTIES AND LIABILITIES D A DATASYSTEMS makes nme Not Found 70 File Not Found 71 Duplicate file Name 73 Directory Full 82 Not a SOS formated volume 16 Device not found 39 I/O error on device 43 Write Protected ling around with this kind of heady stuff. But if you're still waiting for yours, here are the mappings for the potential File Open & Read Errors. 64 Invalid Pathname Syntax 68 Path Not Found 69 Volu Error Messages Pardon our cryptocity on some of the file call errors. The numbers are just the SOS call errors from the SOS Ref Manual pg 125... you should have this manual if you're footo (A)scii (F)alse then save the file. This will leave it in a form which the assembler is happy with. -13- Source Window /// D A DataSystemsEditor for cleaning up Source Window /// output files prior to re-assembly. Keep in mind that the SW/// output files are straight ASCII format which the assembler will not accept. Before you assemble the file (S)et the (E)nvironment obtained from bytes 6,7 of file as with invokable modules. EDITING SW/// OUTPUT with the Pascal Editor Since you will by doing your assemblies under the Pascal Umbrella you probably default to using the Pascal s so change all L14nn equates to x'1600s for interpreter environment. Bypass header data in file and relocation information, or, better yet, get the driver into ram via boot then disassemble from memory. Driver code size can be ITS FITNESS FOR ANY PARTICULAR PURPOSE. THE EXCLUSION OF IMPLIED WARRANTIES IS NOT PERMITTED IN SOME STATES. THE ABOVE EXCLUSION MAY NOT APPLY TO YOU. THIS WARRANTY PROVIDES YOU WITH SPECIFIC LEGAL RIGHTS. THERE MAY BE OTHER RIGHTS THAT YOU MAY HAVE WHICH VARY FROM STATE TO STATE. -15- is as a more convenient 'boot disk' we ask that you note the following as well. APPLE SOS and APPLE BUSINESS BASIC are cop78C";"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 lev 1600 &:WW=1:0 :SEG=1;".D1/S EG.F" SEG=1".D1/SEG.G"diskname$=3802  CATCH PASCAL TEXT FILES 202 :F*=08:"78C";"SORRY BUT MENU.MAKER CAN'T READ PASCAL TEXT FILES."04=10:"M$="NOVEMBER":1750M$="DECEMBER":1750826);"-";M$;" ";Ѡ,2));", ";"19";Р,2);" ";/П,2))=>13П,2))-12;џ,6);:1780$П,2))=0"12";џ,6);:ٟ;$П,2))=>12" PM-":" AM-" 1830WW=1530 =26:=211660,1670,1680,1690,1700,1710,1720,1730,1740^M$="JANUARY":1750hM$="FEBRUARY":1750rM$="MARCH":1750|M$="APRIL":1750M$="MAY":1750M$="JUNE":1750M$="JULY":1750M$="AUGUST":1750M$="SEPTEMBER":1750M$="OCTOBER":1750T 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,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 B$(I),"CAT 0")1140*B$(I),"FONT 0")18504B$(I),"FOTO 0")1930>B$(I),"PASTXB$(I);v:520: 500THPOS=4:I/2=I/2)I=I-1I=IBOTM THPOS=44:I/2<>I/2)I=I+1I2=-1:I=I-2:IBOTM<30THPOS=44I=IBOTM/2)*2:=+IBOTM/2)-1:WAP /// SIG SOURCE WINDOW /// h`L)i   HH `TH..TH..TH..THATS ALL, FOLKS!R`RT RT`#RT RRRRR`0R`RR 㵩:RRL㵆  ~ RR`BLOCKS FREE: BLOCKS USED: TOTAL BLOCKS: sj]"]\AjiGa@aI[5x<^sě xCxEx5eҥV{}g}gkj̐kIk~^hT}27uejewsHH st\hh Hyrighted programs of Apple Computer, Inc. licensed to D A Datasystems to distribute for use only in combination with Source Window ///. Apple Software shall not be copied onto another diskette (except for archive purposes) or into el; .>/?/?d0hp13П,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/downloaEAD 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::"