8L2C)pJJJJ IH(ȱH:=IH[H`@HcH  $ +   I/H`JLNGȄBȄF aK  haaFF  mJm# KKJ UJ )J ۈ) ;J3ȱJFȱJGJKaȄM  aaNNJFLGJL LCe! H$q!r! c&L*!M8tl # ) y!s!(&s!t! c&E )?  @ e!l!0 $l!0u!v! c&-) &ύw!x! c&Эb)0I0 ( d!N)Gi/ h!4  N"!N"/MON.UTIL.SOURCE^ rN#!N#STARTUPlN#!N#PROZAP+&' &PRODOS<1(! !&PROZAP.SYSTEM' <6! +6,BASIC.SYSTEM2(<'! o,PROZAP.INTROG+5!9-BLOCK.CONVERTL N"!N"/MONITOR.UTILITYR >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#)!)? &PRODOS `DaElH$?EGvѶK+`L HHLy XP LM ŠϠĠӠS)*+,+`F)) (*=GJFjJJA QE'+ '== `@ STSP8QSS8 m P o R(8Rn!o!p! k! iL X%>!L;!ΠΠҠ`}!!!"!!!l4"# G$YO!-e(eR9B}PBiB  !"#$%@~@}J@` ߩ%S @ ~`EhhhѺ0 h ѐ# ѐ ѐ ѐ 0 HϭэLпllllhh8` QSTV'P،h@ihAiȱ@JJJJq@)@%vȱ@Hȱ@Ah@E@c%e J) LxL LxJiB LxJ) <ҩxNhHHHHL(  аƠx@BEOD  а(`( C)CJJJlBJ,~آ <B*IBGF08Lé'+8H <(h`@؍L3<>=?<>CAB@?A` / L  <>` ڢF]PL8i m L   4< L  BLRAM' hLDLHB-4F 1"aɿ LL@ Nϰ H  @h( L Lh  @`bLJCAB@=?,<ʆ>*=?BC8 é&'112` ( < *? ( < (? ( < (? ( <*? * **? *? *? ( < *? ( <Lg& 'L&8ei` ,$`ee` `<( '<( '` ' ' '`hh8`8`=(>(F(`}N(`e`H)hJJ'0JJ)` (<  )1& ` (Xp< @1& )m1&1&.1&4& M1&i  ``rȱȱȱȱ0]cȱeem<(ȱ=(ȱ>(=(ȱF(=(ȱN( '<( z' #'Lg&`L' 'L& ' 8f ZHH)hh8JhJJJJJ '&H(&8H) 12 (j21 h!hH h %)Ђ12H)M0 h10200I20h2 9&`L#`)&!2"L  :8! ȱɈ 5   8 0 8 `0 / x X$$ $&$0`ŠӠέԠŠҬîʎ1DžϠ)&ʈ0  0ŠϠĠ͢Š͠͠ϠŠŠϠĠخ͠ YYZLYLYLY뿩 8@  *$ MNЩUM  LPN!-RB}PBiB ,m# m# J Qڨ)̰n]e мȱ ; ̀𩠙< iO P F V >Z SY ɘL` X _ [ V7 c L '0%O '8O JmO * 0ōҍJJJJ ɺi) ɺiL9Ҏw s)?ef t Ұs Ӱ s  |Ґ `l@Hȱ@I|HXAT^^ȱH ɯ|ȩxz^5H)/@a)_xx .0 :A[8@`,xx^x}z}Б|` Ґ L` א@>)I3|8^_0`1a`K8`@Nȱ@O@ lIiNȽN)/ȩ/N`@[ WHJjjjRhA &'KI0JH) ) )Wв<J8` GR悔0FRZ $ ӭ+j ;ސHR  4Rh8` ߰Q R@`ZWSSZ (RS W )8`)i п`  H  RFG`BH TRFG`H RhHBF  GxDER0r0C а(`(8` L*J R :"L ݢH R : R9` א@ P8`RSB8` RJJJJ=HIH IL9߅FHGI ѭlJkjHIH;7IRJJ Zߐ3HIHIL|ߩJKJK`FHIG ߰( ߬RȢMjJLk)eKM`R)` J FJZk ߰$Z0 ߰ZJFJL8`JGBJ T(`(8`R@`M8`R8@hʈIR)Fk8FF lL|߹ LߠRC8`V)@ iR)Fl8FVzkJ l_ F Lr߹) +V&lJ(b .RFG/8` .lJFd eeQFG`QJJJJi LWݩH8`Qf ݰQfe0 ݰ Q c`e ݰe`fQiygihB0Hf0gFhG ݪh0`שB*xEDr0C [` FG `QJJJJ`\HQ\hn)[N\jN\jN\jbN\.d WݰHi\ ݰ;\Qf ݰ*bNd[ ee`Z8` Wݰ#ddc c 5ݐ`bcG .G .G .G8d*JFG'(`)P P8ʈ` ۰0)i `uv8`QR ܍\FG[ ݰNQFG ݰ< \0 FGLۮQ[0 GF8TU`H8` ܹ ,[F G 8\z Wڭ01 E8`1݊0 iڰ$Q0̩GF ݰ ڰ ڰ`12)1`0Q`ȎQi 0U`z)x8`x`Q ېW }װG =۰A)H Qʈh0)*xzȱHx`Z8eHI ٰSB0 ؠQFXʈ pٌz`z8mz0_`,|{0H {hi LٍxȽxhQ0GF{z8y`FaG ݰ ڰ`Q0{Q8`X*؅IFG ݐ`[[ p8D`F` ilH)HFȍHG ݰ$%X&Y!8* J8` Lע  )I '`8ZiFG`Z*؅IH3H [( [ )WG ݰ%" ݰX)Im'F(G)* ݰ4 ֭ $H ݰ%HFFHGHG ݐ`R8`ͮͯ)` װ H` /ٰR(*؅IHHЍ@`[8W ؐeXW Y* Y=ȱ@/ȱ@9;<2DE)7I0 '*5 ܰ701FG ݰ( ְLݩI mIH` @= t=0FG ݰ ֬HFG ݰFF@ 0 [ [LթK8` I8`FHGH ܪhGhF ݰբFF芝 ݰFG ݮI m IHHyHȘI ݰLԩ` ՠ @/@ 7@Юz)mzʈ@i Q`RC8` @ l3Nz@) Wڎ} ԭziz}`0 iڰ0GF ݰ#Q0 ڰW,u0 Q ۩.H hȑNWȮvNuW8`xzNxz0NN` װG8`h)N$%Rjmkn LL⭚ L l L ;ް  0pnJo )@rNJOK ;ްiKKnnkk llIJo m nJФ̭lJkjHFIH rHIGrxKE а((H hH h8`8m@ȭn@L;ެR8NjNO 8q pjJLm`nRnʱLN.MOklMEKP/nMEKnLCL-qMp Okl,jpmeNNO(`JNKORL ;ް/  0P L8 | ZߠRJ`L@mȱ@nR LL`BLLТТТТТТТТТТТТТТТCOPR. APPLE,1983LM Mh@8nЍLЭ 0J @L:LhhhhIL@Ae P o**ӂӹ]|wKIJK,-NOPQRSuHUSTON!' @   !"#$Ԡ͠ˠĠԠ ]XXKR Ko`V8`no` & on ]I9XX`)HJJJh`OeNeO࿰ ]9XАO`@ȭ@` ON CNJKO`HHHHхЅG ݐ ` ~ qͬ ݰFG ݐ` ~* q% L`FGLݮ 'ܰ8`FHGH] 'ܰ]hGhF`@Bɼ>K@J5 ]9X(KI0F1G ݰ:%&N  ݰ# 'ܰFG ݐ`J HHR hh` 0 @ LFL q[̄T 0̄ȩF𸽒G ݰ 0` ݰF0F1G ݰy &밀L֢ȹLݠ@ȅH@ILҠ,|0` װJ WP8`TU fېH8,=)N 0 [01)@L` b讀 'ܰݩ ݰ L֬Qyy`O Wݰ @LL א=@ 5ȹQP8` &iQ` C0 5B C)yz( ȹ`y8myz8mz@8` װG8`F  װ P=)@N8`)@J 5yy))ꭁJJJJR RȢjI ;ސh(8H Nh(`R@`@Rȱ@ ` אB@8ZTUQ qۮQUT?H>8T2hU3JJJJ)@` װ%I -=) t 0@)N8``N8`  ) NRȢJ@jJjR@ʈLP 簞KIJHRȢjRjjk)lJn 8 ΄R  bH8R Ri ~8`L Ӑ L~ Ӱ )ܹ0 )p )@ )  R0FG ݰ حFG ׬R234 / F) F ְR)f ݰ`H@h~`h`R IhHIhH  i ` ܰ ii` )0CGHFHBFG ЪhFhG`@5~R͔ M @BRi ׭~` .R 4#R0 iڮQ)`L@.~R 簪HIFHR  PLnEnʱNLMOklMEKP%nMEKnL2 Okl,jm PjeNNO P(` R  F .AlJFHIGHIR HIHI`  .` .AR HF HG`@Nȱ@OR`RjM}FIF` tJMF t 3 tJF` R` H  ^h)N@ N; L  ;ް$ )bJTU f۰ ) H BhL ) . )lJkjIGLLՐ`BLڑL COPYRIGHT APPLE, 1983 h@ 0J @L:HUSTONP8H  ): e: y8鰕:Jjjj<)yi8i;i(*=>hP8`;Zx3QTTSRWVUHEVhEhH)IWHPHHHAHHHLaVEWLӿ&()*+,-./0j=!8ȹL W  #&9]`MY pY)p  p`8L:HhHh VY>:Y)`;R?AJ;<ȰY)`Y?)`ȐҰ ;HhHh=`Hh `Hh`DEiȍ01ZsDE8T8Wpq 7I꽌ɪ꽌ɭ蠪:VE:8`]V]H)]V])]T])] >8hUD` Y`> Hh݌(`HCJJJJ)*h`0($ p,&"op8`kkV꽌ɪɖxl*k-kmMl 꽌ɪ`8` *L o % YZoY 3 NZ`rZLkZq8r7IZiZkk 8 s q | kн Z)*>>` @ $(,048<@DHLPTX\`dh 0ުlptx| FGV*& .V  JJJJH :h Ei :EX`'8`jWC)p> pCYY 轊( ( BV ( p0 \BiJ @i> i'j:ZH i@ioZZH h ȭnWǥBJ 8X` +>䠠Ӡӯ蠠ң렣Ҡ덫덭ף렣נ :y) $x) $L_, $$% " :0 $0 $L_,{$=|$6Lj2H2 h2Ɉ#ɘ  :%$ " 3 $ ɕ()ɍШ LHɫD)ɀ hHɻ5ɽ7 hHɽ)+ɭ')ɯ ɿhL1L.8L.80 ȹ,LN-ȹ1L.3L.1t$ s$)*( R +)L_,L)0t$x$${$|$L_,t$x$$${$|$ ($)$*$L_,t$ s$5)iȽ/ɍ L/)x$L/ $$% "$̀$|$́${$|$L- F.{$|$ ${$$|$8{${$|$|$L-{$+|$$hh $$% " :`$ $_$L_,`報򠲠 $%$ " :z. $y. $L_, $%$ " :. $̊. $L_,/L/$LN-; h=7_0-,W%M0A/S%?H /QLs- %L_,L-L.L-L-L.L72L3 $%$ " :N$ $M$ $L_,$!!!L 8ȹ̅$L $ **{$*|$ F. (L_, F.$ **{$*|$ F. )L_, F.{$i{$|$i|${L)iȽ/ L,)x${$|$ w$ )$*${$|$$3 9%$% "{$,|$% $ $$% "~+ $}+ $L, '"# N0"#𥎅$)`{8 $ )$L_,RX+QH)ɀ h;B=$΅$L)$0: AG880H8$* h **Lv+h **Lv+h **Lv+h **$О`é׮ X! $! 0% "~+ $}+ 0% "$$`x$$$ p$^t$ s$8)))0M:I)7)8) i=*)i>**(})*())L*)))ЬL|+hh $$% " :* $̦* $L_,$PhhLN-젣hh $$% "* $̗* : $L_,**$##$ L)'#}$~$'$` w$'$`'3D2E1F0H $$% " :A$ $@$h L$L)L)L)L) ɯϠ $%$ "L: )o) $n)L$ )y) $x)L$ $`Hi$΅$hL)'d $$'He}$L$?2?~$?2hH)JJJJ X'2hH) X'L`(2hH)JJJJ X'?2hH) X'L`(hH 2i$$L(h ɠi $'% "  0`e}$h ɠi  L}(8@L}(|$0́$ {$̀$'S $$% " :`$ $_$L$ w$)&(&0&&*L&&&&& &&&&&Ж&&&` iiL$ $#'#$%" "L' $#'#$%" X~$J}$jJJ8' *i ''#"L$!$ei8 $ i$%$$L& $~$)i $}$ $$M $ $$ $ $ $LW& $L$ ${$*|$* &8& $& $&L% $}$*~$)* &8& $& $&L!&&&&&& i&i)'8*($0"'#L${$ |$ $$% " $L' $%$ "! $! $% "x$)pJJJJi $$x$)JJJJJJJi $${$[|$T$$L% $ $ $ $ $ $$$L% $ $ $ $$ $p$$l $|$ {$ Ѡ蠠Ѡî͍ ɠ򠽠H2hHɀhi@)ɀ h LhL$$%$`$$$%L" $$%"#'# X" $# $$ ͣ͠ɬʬˬ͠󾠠򍰭ƠȠ򠿠ɠɠ0h %L0 L- L.h~$0 ~$L1)~$}$i}$~$i~$)}$) ''L1}$~$ :L1h~$)~$L18}$}$~$~$}$~$ :L1~$ ~$}$)''L1h''}$i}$~$i~$)}$}$~$~$ : 9% d'L2h''}$8}$~$~$)L1}$i}$~$i~$ :L1{$3|$, :%$ "e2 $d2L_, $$L2 **%$ ")2 $(2 :L_,*}$*~$$ '~$}$ɨ ~$J}$jJJ8*'L2}$PJJJ' d' 9%$% " ɍHəK`JJJJ8`轚K)` 7#hhL"Jپھ pHJh` {!hgt}~p  `~t}p8n~ni}tpi~~tsLo8pinii>j?k̈́>~|ppn + {pnI:L ؅30,3L]8^933LAAJL ةޘг uv $ 8LЌ Le p>?@`>?@`BQ8`e 矮K ⟩ 䟢 춼LK  z KɍKL"?`  L@3 @LtJ)s@J % `͘?s?,E30ɍФ3 +E3HD F3 Ʉ%h3 M +E  LthɍLL3`3,A0s0% I`O>0O  矢POپھ p AH־Ǿh۰8L"־Jjjjɾ)Ⱦ8 + OL L$L>(F`־ؾپھ׾` Ʉ +KDEF L LK K% ʽ  ٚ,S` w $݅3`(l8L"3L>(Ƀ,`3,G0]ɾ ` w`پ_پ p _پ׾`>( p۾m׾) W)ʩ@`ɾ>(O puȾ ɾ-O c־Jjjj 왻ɠ, XLޭBDEF޾ p 7 ޾ p($ذ (0 U( L?ԦʚLeةީ s +  L ,FL,DLE,C0!3 > Ɉ 3ɾL(3ɾ;Ƀ UB94 H06172839h` 97L75v^͘ ?/( ?LKLLɍ$?`? ɍɥAH93827160hH46576879h`,C Lޛ $0. ɍ  ,S0 ?@ L L ŠϠŠà͠ӠàԠŬ13456789:;<=>?@ABCDE! !5).莀/ ! !!!!! !!$ ! "<" !!뭳!!!!ILYL 8!9!詍` ! !ՠî򠠠!STARTUP/p$# {  { / XXύX?klmnÍoL) !6L'!(0`670! = ***)<JJH !h穖tp% !Z/݀!!' LɈKɋJɊIɯ.ɿ*&ɰɺ;ǐ0& :L2 %L2$L_,L1Lb1L1L18)h~$0 ~$)}$H~$0h)L3h)L3}$H~$0h)L3h)$HL1{$ |$LH2$$L&4 **L2*}$*~$$ '~$|Ii||̈́ ҡl 4 j `>i>?Ek?!>Q>>>̀ `` > ̀ `e>>?́?>?Emn(>e>ȱ>e?>Q>ؠ> ie>>?`|;}=:<~:<=;`||m};>:8o>oȑ>ppȑ>> :op` {KpnͶ @p;=po:S ?@$I0 U)VJ *T)`l8`a HbIJhjǾȾɾ p٭b=a 5L壥>  5e>>?́?`>ȥj>>m>` T`m8injkiljo풼i>?Ek?>Q> A ԟ ` ])Y 񩢍`Ⱦɾ0Ǿ p)莼 * 6 w= l& l8Hh l` 6Y׾ؾ+پھ p|پɾʾ`HV)jh츾$-#Ͼ p о־޾Ǿ` 8` 8`ɾ)ɾ̸ ɾɾ0miȾ p pY)ικ`lP y*,N!ǾȾɾʾ pǾ~H Uh8`8`,C U  8` 2ȾɾM$ mHݓǾ phϾFHIJl use it to follow your Apple's footsteps along the ProDOS Pathname until you find where it put your information. You can simply take a tour of a disk to see what's there, or you can actually change the data. Therefore be warned: IT IS POSSIBLE TOProZAP Introduction Welcome to ProZAP, one of the first software tools to be offered for Apple Computer's new ProDOS operating system. ProZAP is your key to unlock many of the mysteries of the Apple disk directories, files and programs. You wilL5LLL"L  KN)_ `@S8` ԠŬLL<[B?I>孓`仫6VtCicQĿUKqtVt Nʮq$6,⨁ K6, VtI=v!gNVt Vt  lg~TŠӠŠҠüϠž(+@ABCDEFGHIKLMNPSV     T[fouu~ՠٯ* PWN*]ĿNTz @n6VC/+A>@I5gN Oz @n[Dz @nd0,~z @`$仫@v$⩔,CTORENAMEBRUNLOCKCHAIN#FLUSHREADPOSITIONOMONPR#PREFIXCLOSEAPPENDx{[{0ǭ0hЫ}wA Xw­孶׭fl@@ -!S    !C- !ABELSDFRV@@ !$(19@E(8mȾȾmɾɾʾiʾ` Lpl8l:/[ҝƬƀ#(ZZV4D\-:% >M CgIY2m*b6>BSAVERIFYBLOADELETECATALOGOPENWRITEXECREATEFRES p` y־ǾҾ,G 8`׾ؾ  p жۥs׾tؾE` y ( о(־Ǿ,G 8`_`W)H־Jjjjh p̭ L;Ǿ ..8 ۭ }ȾȾI>Ie f`8` yP־ǾҾ,G0C =W)_``\"׾پӾؾھ pD`־ǾY׾ؾOW)ݩȾɾʾ pD`8`W)CB) ۵ 5W) )W)@! pZ}ȾȾ޾,N0MHhHh p' ,N HCNh`M`M N `޾Lp yh־Ҿ,G0^W)TP) ecfdپھ׾ؾӾ p$c d pccddީ 8`ȾɾʾNfne`_ 2Ͼ pH h8`jGMоM  G):_`蹀:`V)8`MN; ;`;C N8` G)̀#:蹀:`V)R y pH h8`Ͼо־ǾҾ_` EӾ pW) |LC`C N `9V) ß ` V) y޾ p` y (8` 8`8`(W)`_V)Ij!؍Í`_ jЭW) DESTROY VALUABLE DATA, AND EVEN TO MAKE PART OR ALL OF A DISK COMPELTELY UNREADABLE. COPY BEFOREHAND ANY DISK ON WHICH YOU PLAN TO USE THIS PROGRAM. NO EXCEPTIONS. NEITHER THE AUTHORS NOR APPLE PUGETSOUND PROGRAM LIBRARY EXCHANGE WILL BE RESPONSIBLE FORBLOCK TO TRACK/SEC WHEXBLOCK(BLOCK$):NBRBLOCK:0550:(37):22:"[$"NBR$"]"TRACK(BLOCK8):SECSTBL%(BLOCK(TRACK8)):S2SEC1:SEC0S214SEC1S215NBRTRACK:0550:TRACK$NBR$:NBRSEC:0550:SEC$NBR$:NBRS2:0550:S2$NBR$"OCK$;:22:"["BLOCK"]";:350E TBLOCK;:22:"[$";:0550:NBR$"]";m ^" ";HALF$(HALF);" HALF":0480: h GET BLOCK INPUT r" BLOCK: ";:HEXĺ"$"; |"";BLOCK$:HEX400 NBR$BLOCK$:0590:BLOCKNBR:(37):22:"["BLOCK"]":420:  K(TRACK$):SEC(SEC$):320: < , CONVERT HEX INPUT t 6NBR$TRACK$:0590:TRACKNBR:NBR$SEC$:0590:SECNBR @ TRK/SEC TO BLOCK  JBLOCKTRACK8BLKTBL%(SEC):HALFHALF%(SEC):NBR$(BLOCK):NBRBLOCK:HEX0550:BLOCK$NBR$:"BLOCK = ";:HEXĺ"$"BLRACK$:NBR$TRACK$:NBR(TRACK$):HEX0590:HEX0550:(37):22:"[";:HEXĺ"$"NBR$"]"j HEXĺNBR"]" "SECTOR: ";:HEXĺ"$0"; "";SEC$:NBR$SEC$:NBR(SEC$):HEX0590:HEX0550:(37):22:"[";:HEXĺ"$0"NBR$"]" HEXĺNBR"]":300# "TRACIN$"B"IN$"T"160 11:6:958:"INPUT MODE: [H] = HEX":18:"[D] = DECIMAL":9::" SELECT: ";::" ";:IN$:IN$::HEX(IN$"H") IN$"H"IN$"D"200 GET TRACK/SECTOR INPUTS 15:958:TS360:" TRACK: ";:HEXĺ"$";Y "";TKMNOPk:. "BLOCK AND TRACK/SECTOR CONVERSION";W :40:" ";:40:I141:" ";:::g 7:1:958 "CONVERSION MODE: [B] = BLOCK -> T/S":18:"[T] = T/S -> BLOCK":9::" SELECT: ";::" ";:IN$:IN$::TS(IN$"T") IN$(13)ĺ"GOODBYE.": ? BLOCK.CONVERT BY VAL J. GOLDING A.P.P.L.E. 2/14/84 Sd SELECT MODES ^n0640x:::I07:STBL%(I)::BLKTBL%(15):I015:BLKTBL%(I)::HALF%(15):I015:HALF%(I)::HALF$(1)"FIRST":HALF$(2)"LAST" :I141:" ";::40:" ";:4ficult, was it?And now you know just about everything you need in order to use ProZAP. Oh yes, the secret message is: *** ENJOY! *** computer screen. The documentation also includes a quick reference card, and a thorough reference section covering each command individually. But try the tutorial first. Copy this disk, and use the copy. Do it now. There! That wasn't so difnquiring mind. This document offers a brief tutorial, including a hunt through the directory for the "key block" to a text file containing these very words. You'll know a lot more about both ProZAP and ProDOS when you're reading this message on your ANY DAMAGES OR LOSS ARISING FROM THE USE OR MISUSE OF THIS PROGRAM. WE REPEAT: DON'T MUCK IT UP -- BACK IT UP! ProDOS handles many different types of files, including a number which are only used on the Apple III. ProZAP opens them all to your i" TRACK = $";:(TRACK$)1ĺ"0";`TRACK$;:22:"["TRACK"]":"SECTOR = $0"SEC$" AND $0"S2$;y" ["SEC" AND "S2"]" RERUN OR QUIT :10:"[S] SAME CONVERSION PARAMETERS":10:"[N] NEW CONVERSION PARAMETERS":10:"[Q] QUIT PROGRAM":" ";::" SELECT ";::" ";:IN$:IN$`:IN$"N"160:IN$"S"220:"GOODBYE.":(4)"RUNSTARTUP":  DATA FOR CONVERSION TABLES 0,13,11,9,7,5,3,10,7,6,6,5,5,4,4,3,3,2,2,1,1,0,71,1,2,1,2,1,2,1,2,1,2,1,2,1,2,2: & DEC TO HEX $0HXSTR DISASSEMBLER MODULE ZDISASSEMBLYA$:A$:(26)(27)256(28)(29)2561210p:OUT$"D"2000z1000DISASSEMBLYA$:D$;"WRITE";F2$:A$:D$:(26)(27)256(28)(29)2561240:2000:  ENTER MONITOR COMMANDS <RESSES INTO MEMORY PI1(H$):511I,((H$,I,1))128::72,0:144:: {L CONVERT ASCII CHRS INTO HEX BYTES VHEX$"0123456789ABCDEF":I12:ZZ$(I)(HEX$,(AS(I)16)1,1)(HEX$,AS(I)(AS(I)16)161,1):HF$HF$ZZ$(I)::D1:500: C THE FILE LATER2D$::2000: &EXITROUTINE H ADDRESS FIND FIND1,174(IN$"C")175(IN$"F"):FIND4,175(IN$"C")174(IN$"F")FIND:OUT$"D"20001000D$;"WRITE";F2$FIND:2000:  STUFF HEX ADDMP:OUT$"D"ĺ:2000I HAVE TO SET UP AGAIN TO WRITE TO DISKj1000: TO RESTORE ADDRESSESD$;"WRITE";F2$: ACTIVATE DISK(ASFLAG)ĺ"CALL-151";: TO EXEC THE FILE LATERHEXDUMP: A SECOND TIME (ASFLAG)ĺ:"3D0G": TO EXE000: -X INITIALIZE OUTPUT ROUTINES ObOUT$"D"3000:OUT$"P"2500el(AF$)ĺ"HEX= ";v SELECT OUTPUT MODULED0900: ADDRESS FIND FLAGD01200: DISASSEMBLY FLAG FALL THROUGH TO HEX/ASCII  HEX/ASCII HEXDUAS$"N"AS(2)AS(2)128:AS(1)AS(1)128:1110B AS$"A"1110m D1Ą"SEARCH BYTES, HOB 1ST : ";HF$ D1ĭ(HF$)4HF$"0"HF$:490 AS$"":H$H$(HX$,2)" "(HX$,2) D1H$H$" N 98AE:"(HF$,2)" "(HF$,2) H$H$" N D9C6G":1 H$("0000"H$,4); H$"1A:"(H$,2)" "(H$,2)" "` "HEX END ADDRESS? : ";HX$x HX$("0000"HX$,4)0 IN$"C"ĺ"ASCII/NEG ASCII (A/N) : ";:AS$:AS$:"ENTER 2 ASCII CHRS : ";AF$:(AF$)2130:AS(2)((AF$,1)):AS(1)((AF$,1)):0:IN$"Q"2050:IN$(13)210v :5:" OUTPUT [D] DISK":14:"[P] PRINTER":14:"[V] VIDEO":18::" SELECT ": (37):15:OUT$:OUT$(13)OUT$"V": OUT$:VT(37)::VT1  GET HEX ADDRESSES :"HEX START ADDRESS? : ";H$14:"[D] DISASSEMBLY":14:"[E] ENTER MONITOR" 14:"[F] FIND 2 HEX BYTES":14:"[C] CHARACTER SEARCH":14:"[Q] QUIT":18::" SELECT ": (37):15:IN$:IN$:IN$"D"D1 IN$"F"D1 ASFLAG,0:IN$"H"IN$"A":ASFLAG,1 IN$"E"150QSTUVWXYZ[\RD39050:::4000? :::I141:" ";::40:" ";:10:\ "MONITOR DUMP UTILITY"; :40:" ";:40:I141:" ";::::34,5 &INSTALLATION MODULE MENUS 0 HF$"":::5:"OPTIONS [A] ASCII/HEX DUMP":14:"[H] HEX DUMP ONLY":| MONITOR UTILITY BY VAL J GOLDING WITH GREG KIELIAN AND DAVID SPARKS * A.P.P.L.E. : FEB 14, 1984 * d INITIALIZE nB1(49002):B2(49003):D$(4) xASFLAG39084:BUF39086:HEXDUMP38656:DISASSEMBLY38794:FIND38957:SAFEGUAG$"0123456789ABCDEF":LN0:NBR$"":LNLN1:A(NBR16):TEMP$(LN)(HXSTRG$,NBR16A1,1):NBRA:NBR00570:ILN11:NBR$NBR$TEMP$(I):D: NHEX TO DEC XNBR$""NBR$"0"bNBR0:I1(NBR$):A((NBR$,I,1))48:A9AA7 lNBR16H$"":::"*";:64879:I1239:CHR(511I):CHR1411530SH$H$(CHR128):H$H$" ND9C6G":1000:::H$"":2030:  EXIT ROUTINES PRĺD$"PR#0"OUT$"D"ĺD$"CLOSE" "RETURN TO MENU (Y/N) ? ";:A$:A$::A$"N"2050:ASFLAG,0:D0130 5000: : PRINTER ROUTINES  PRĺ:"ENTER PRINTER SLOT":"OR DRIVER ADDRESS (DECIMAL):";:" ";PR$:PR(PR$):PRı PR82530:D$;"PR#,A";PR:: NEW PRODOS WAY TO ATTACH SPECIAL PRINTER DRIVERS  D$"PR#"PR:: ®UOS 1-2-84 * * by David Sparks. * * * * Original first appeared in: * * Call -A.P.P.L.E. : Oct. 1982 * * * REP 32 SKP 3 STADR EQU $1A NDADR EQU $1C CSWL EQU $36 PCL EQU $3A LINNUM E]_`abcdefghi * * with some subroutines * * Stolen from Apple's monitor * * * * Updated and with a search * * routine by Greg Kielian * * * * Disassembler module modified * * to run under ProD LST ON,NOASYM SBTL +David G. Sparks, Waterloo, Iowa+ REP 32 * * * Hex/ASCII Dump and * * Disassembler Utility by * * Val J Golding, David Sparks, * * Dave Lingwood, Wm. Steinberg * * 8,2,230,27,173,170,152,201,15,144,195,169,141,32,237,253,56,176,182,169,3,32,245,190,1441,0,169,1,13,106,191,141,106,191,169,192,13,107,191,141,107,191,96,0,0,0,0,0,0,0,0,0,0,0,27,166,26,169,160,32,237,253,32,64,64,249,169,186,32,237,253,169,141,32,237,253169,0,141,170,152,160,0,177,26,205,174,152,208,23,200,177,26,205,175,152,208,15,164,27,166,26,169,160,32,237,253,32,64,249,238,170,152,165,26,197Z28,165,27,229,29,144,6,169,141,32,237,253,96,230,26,20168,152,141,49,190,104,104,160,0,173,173,152,145,131,200,169,174,145,131,200,169,152,145,131,174,169,152,169,141,96,142,169,152,41,127,201,13,208/7,173,173,152,208,185,240,9,174,173,152,157,174,152,238,173,152,174,169,152,96,172,175,152,174,174,152,32152,169,16,141,48,190,169,152,141,49,190,165,26,133,58,165,27,133,59,169,0,141,173,15232,208,248,32,83,249,133,26,132,27,169,141,76,237,253,173,163,152,133,131,173,164,152,133,132,173,165,152,133,54,173,166,152,133,55,173,167,152,141,48190,173,,240,11,41,127,44,30,192,16,6,9,64,2082,169,174,32,237,253,202,16,224,173,171,152,208,3,76,0,151,96,169,228,32,192,222,32,227,223,32,108,221,141,163,152,140,164,152,165,54,141,165,152X165,55,141,166,152,173,48,190,141,167,152,173,49,190,141,168,6197,28,165,27,229,29,144,5,238,171,152,208,12,230,26,208,2,230,27,165,26,41,7,208,215,138,48,17,169,160,32,237,253,32,237,253,32,237,253,157(174,152,202,16,241,169,160,32,237,253,162,7,173,172,152,208,32,189,174,152,9,128,201,160,176,17,201,128D$;"CLOSE"5:22:958:D$"RUNSTARTUP": lp DATA STATEMENTS CONTAIN MACHINE CODE AT $9700 z164,27,166,26,169,141,32,237,253,32,64,249,160,0,140,171,152,162,7,169,186,32,237,253,169,160,32,237,253,177,26,157,174,152,202,32,218,253,165,2RY f7::10::" STAND BY... ":10:" INSTALLING MACHINE ":10:" CODE AT $9700 ":X0421:X1:HEXDUMPX,X1:SAFEGUARD:  DISCONNECT MACHINE CODE AND RETURN ALL MEMORY TO SYSTEM 49002,B1:49003,B2:48888LAR SLOT # OPEN DISK FILE ~ :"PATHNAME FOR OUTPUT FILE: ";F2$:F2$""OUT$"V":: GIVE USER A CHANCE TO GET OUT D$;"OPEN";F2$:&&EACH OUTPUT MODULE SETS THE FILE&TO WRITE AT THE RIGHT TIME.&  :  INSTALL MACHINE CODE IN MEMOQU $50 FRETOP EQU $6F VARPNT EQU $83 VECTOUT EQU $BE30 GETBUFR EQU $BEF5 PTRGET EQU $DFE3 CHKSTR EQU $DD6C SYNCHR EQU $DEC0 GETSPA EQU $E452 MOVSTR EQU $E5E2 INSTDSP EQU $F8D0 PRNTYX EQU $F940 PCADJ EQU $F953 PRBYTE EQU $FDDA COUT EQU $FDED * * * ORG $9700 * * * NEWLINE LDY STADR+1 ;Get start LDX STADR ;address LDA #$8D ;and c/r JSR COUT ;Print c/r JSR PRNTYX ;Print address LDY #0 ;Initialize STY FLAG ;Flag LDX #$07 ;and counter LDA #$BA ;":" CHAR JSR COUT ;Print colon DATAOUT LDA #$A0 JSR COUT ED NOTCR LDX LEN ;GET LENGTH BYTE STA BUF,X ;STORE IN BUFFER INC LEN ;MAKE LENGTH LONGER GETMORE LDX XSAVE ;RESTORE X-REG AND GO RTS ;BACK TO CALLER * * * * Here's Greg's FIND routine * FINDADD LDY BUF+1 ;BASIC enters here for find LDX BUF ;Print add A STRING * OUTSTRNG STX XSAVE ;SAVE X-REG FOR SYSTEM AND #$7F ;TURN OFF HIGH BIT CMP #$0D ;IS IT C/R? BNE NOTCR ;NO, PUT IN BUFFER LDA LEN ;TEST LENGTH BNE CLEANUP ;OK TO QUIT IF SOMETHING IN BUFFER BEQ GETMORE ;DON'T ALLOW NULL STRING TO BE RETURN PLA PLA * * POINT DESCRIPTOR TO BUF * LDY #$0 LDA LEN STA (VARPNT),Y INY LDA #>BUF STA (VARPNT),Y INY LDA #OUTSTRNG STA VECTOUT LDA #= result Bress searching for JSR PRNTYX LDA #$BA ;":" character JSR COUT LDA #$8D JSR COUT NEWLN LDA #$0 STA PRTCNT ;Reset print count NEWADD LDY #$0 LDA (STADR),Y CMP BUF ;First byte match? BNE NXTADR INY ;If it does, try next byte LDA (STADR),Y CMP BUF+1 ;Second byte match? BNE NXTADR LDY STADR+1 ;If both match, LDX STADR ;print address LDA #$A0 ;(ASCII space) JSR COUT JSR PRNTYX INC PRTCNT NXTADR LDA STADR ;Check to see if CMP NDADR ;start < end LDA STADR+1 SBC NDADR+1 BCC MORE EXIT LDA #$8TION [B] ";B$:11:"[M] ";M$:11:"[Z] ";Z$::15::" SELECT ":[ (37):12:F$:F$n F$"B"DA$B$ F$"M"DA$M$ F$"Z"DA$Z$ DA$""ĺ"GOODBYE.": D$"-";DA$  D$(4)P$"/PROZAP/"2D$"PREFIX";P$I(B$"BLOCK.CONVERT"b2M$"MONITOR.UTILITY"r<Z$"PROZAP"d:::I141:" ";::40:" ";:11:n"PROZAP DRIVER MENU";x:40:" ";:40:I141:" ";:::"PREFIX = ";P$:D "FUNCNBRA:v: 216,0:::8:"ERROR ";(222);" ENCOUNTERED IN LINE ";(218)(219)256::"PRESS ANY KEY TO PROCEED ";:IN$:100}$ɨ ~$J}$jJJ8*'L&4}$PJJJ' d' 9%$% " ɍLG3)H}$~$)hLW4h$~$)~$}$i}$~$i~$)}$)''L4}$~$ : 9% d'L)4TRPTR DS 2,0 CSAVE DS 2,0 VSAVE DS 2,0 XSAVE DS 1,0 PRTCNT DS 1,0 FLAG DS 1,0 ASCFLAG DS 1,0 LEN DS 1,0 BUF EQU * N THE MLI BITMAP * AND TO RESERVE ITS SPACE * ABOVE HIMEM IN BASIC.SYSTEM * PROTECT LDA #$03 JSR GETBUFR BCC OK BRK OK LDA #$01 ORA $BF6A STA $BF6A LDA #$C0 ORA $BF6B STA $BF6B ;PROTECT PAGES IN BIT MAP RTS * * ROUTINE SCRATCH STORAGE AREA * SD JSR COUT RTS MORE INC STADR ;Bump start BNE SAMEPG INC STADR+1 SAMEPG LDA PRTCNT ;Is current line full? CMP #15 ;Max. of 15 addresses per line BCC NEWADD LDA #$8D JSR COUT ;Next line SEC BCS NEWLN * * A LITTLE ROUTINE TO PROTECT * THIS CODE I