8L2C)pJJJJ IH(ȱH:=IH[H`@HcH  $ +   I/H`JLNGȄBȄF aK  haaFF  mJm# KKJ UJ )J ۈ) ;J3ȱJFȱJGJKaȄM  aaNNJFLGJL LL| Ly Lv Ӡֲ㮬f"f"C# "&i01h+# )#M8 % ) L"g# )L"@, )7(P0 ( @A p SҾ#!Բ-'DOCS.40J Բ6#! 'DOCS.80V JԲ#! COPYBLOCKSc.## COPY.TXTgW ## DSK2FILEʲ4' &PRODOS#Bb ! ,BASIC.SYSTEM*(0! 0STARTUP><IJ!ҾDSK2FILE.X?!Ѳ.(DSK2FILEA IJ#! VIEW.DOCSF >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(8R8 )# f" +#$#0 &$#0 %# )ȍX#f"P# )ɂH#*# ) %)0I0hx H( , %Щ ߜ)#j )f 8'  )ɀ  !"#$%&'(HLKL`BLL ޥޥޥޥޥޥޥޥޥޥޥޥޥޥޥ(C)APPLE xLLM Mh@8nЍLޭ 0J @,,L=#آ <B*IBGF08Lé'+8H <,``h(`@ڍL3HEVhEhH)IWHPHHHAHHHLaVEWLӿ``"M,Z(") \i ᘏi᫫8(`hhh8k-<ʆ>Q=?BC8 é&'112``+ H++ d+` w+ H+ d+`hh8`8`+++`}+`e`H)hJJ+0JJ)` (< ( < *? ( < (? ( < (? ( <*? * **? *? *? ( < *? ( <x0HH1HH rȱȱȱ0\aȱeek+ȱ+ȱ++ȱ++ȱ+ *+ + *`L@+ + * L) *Ș8e` ,$`ee` `&  LdDž )Pi)) () ))&-&),&͉&) ))&0)У` )ɥ`HZJ)  )zh %J)֭)n)}11J  2 (8`ɿ` (Xp< @ ( )m ( (. (( M (i  ``) '(j21 & &!` (&&(i)&)( CdBdDdFdGE ) ) ))) ))&$ >(,&& … >(ŅL 'JJJJ`Ϡ(8223 ')Д )18&"m11 2H22h2舌&&12H)M0 h1020I20h2 (`L%12 `\(#L  98" :ȱ)ɀ  ) ( 8 0 8  `0 / X   / &; Pb 8 )0`ddd1&… (n&Dž (\%T&Ln()8= (J 8(&(& >((ʎ1΋&΋&&3ʈ0 o 0堠خ YYZLYLY@뿭`d 8#@8` %MNЩUMߩ  L 5     m# m# J LB Qר)ɨ] оȱ ̀𩠙 i ȴ O Ѻ G \ ɟU ʿ V@$ A ɛL e '8 Jm ĠŠŠҠ`#{% F%Z]``e-.!0SB}/BiBB}/ gF/0k) y! ʿ  L##)4,- U JNT) )#L# ) f"` #K)D/ #3 &#'#(# ## iL X"0#"0P׽8H  ): e: y8鰕:Jjjj<)yאi8i;i(*=>hPם8`;Zx3Q`_^]ba`0h)ύh0HHHH " ׍hhhhhddhh .hh8`JIMJAYKERRY&MIKEhh@ihAiH(ؠȱ@JJJJq@)@ݔoȱ@Hȱ@Ah@@\e J) ހL JiB ހJ) @xNHHژHL(  ްʠx@BEOD  ް(`( C)CJJJlBJ,~`8@ؐʈI묤)8 La LةC8`؍)@ fi)8wJ ] ؅F LW) y+%J(^ FإGؐ,` JHIH I%FHGI ٰ:`JJJJ9 d묣͸ dٍ0 u  `H8` `ٍyٍiB0H0FGy h0`FG `ϩBxEdD0C ް(`(8`ؑ@`M8ٽJJJJ`Hͮhk)&NjNjNjN. 1Eͮ d8٭ u'Nۙ۰ڙک `Z8` 1# ` . . .8۰*J۩ ܝ`)َ 8ʈ` 0ٝ)i `8`O 鍮 dMمFمG ; ή0FG뮣0 ٭٭ٽ8`H8`  , 8`  ` < 0̩ 谾 }谹`12)1`0`Ȏi i ٞU`)8`` U _G *A)H ܝʈh٭0٭)ܝ٭*ܝ٥F٥G٭'ܝ٭(eHI dSBX0k }ٙiٙgFleʈ L`8m0`,0H hi MȽٍ0dGF8yאFG  }$0 *01 E8`100`n܍op L8D`F` EgH)HFȍlHGm %܍&܍ܢ8* J8` }L ܝ\)I 'ܝX`d8ipFnGo`d܅IH3H ( )ȱH`ά8c T)Ia)܍p*܍c'ܮ( 4 䭐 $H %HFFHGHG 됬`R8` )` cHq` _9܅IHHqqЍq  @`8 ` ͫ% ΫQ8`܅I lmq)5qI0ܢܽ n'c* 7FG (ef Ld܅Ip mcIH`  k0no cqHlFmG 밳lm 밨e%܈b"@ 0 $ LK8`X YI8`FHGH GF܌ עFܽܕF芝ܝ 밸XY Z܅I m[IHHyHȘI L`ܞ @@ @Ю׍q)mיqʈ@ȱ@ȱ@i 뎣`ةC8` @)0 e/N0 *ڽ0 ti` <; 뮣ٝ٘ 0 W,0 .H hȑNWȮّNW8`ٍّN0NN` G8`F뎰ڮЕ` } L ` r@>q)I38 kם`K8`@Nȱ@O@ eIiNȽבN)/ȩ/N`@Z VH:JjjjhA "'KI؍0JHl8` Q)T 22D) ɺi )?  }   ސ `@Hȱ@IױHXATȱH ɯȩ׍̰5H)/@a)_ .0 :A[8@`,@~@}J@` ߩ%S @ ~`E hhhߺ0 h߈ ߐ( ߐ ߐ   ޕ0 HϭߍLпlllJjHIH@=IؙJJ ?9 -4HIHI`JKJK`FHIG ( Ȣ؝؈JL)eKM`)` J Jͽ $0 άJFȱJL8`GBJ 6 FإG`BH 6FإG`,H hHB؅F  ؅GxDE؍00C ް(`(8` d뀧J  ! dH   9ؙ` r@ }P8`K8`B8` j؈qJJJJح) ) )Ю ЪVXXK تKo`V8`no` "on VI9XX`)&HJJJh`OeNeO࿰ V9XГO`@ȭ@` ON <NJKO`?>х=d<<>=? 밽܅F݅G ` \) S$ L`LHH hFhG܍ݍ 8 `FHGH  hGhF`ݹܙ݊`@Bɼ>K@J5 V9X(K   ܮ `J HH hh` 0@ tL)lL S_Xܝ ݝ0ȩFG  0` ܅F݅G ` \ Sͬ @ȅH@IL,0` rD }ﭩ: SH-)N 0 $q)@kP8` 2  dHqefe h`yٙ٭yٙ٩`H 1BFG 3%&N   i` ם0 B )( ȹ`8m8m@8` G8`F } r }P⭏)@N8`q)@J טyרםqq)׍q 밑 LȹL h(8H  h(8Hh(`ؑ@`@ȱ@ ` r@@8Wq ^鮣ٍٍٍHٍ8hqJJJJq2)q@` r%I -) 20@q)N8` @LL =@ ȹP8`ݼ@ʈL KIJHȢݼ ^魼)Jn 8  ؍ ؍ 2H8 ع)JJJJ Ȣ؝I؈)p )@ f ) yʩ ؝j0lm 밫 }nolmFG w嬤؍؍؝ ؝ q) q )حk͸ d`H@h`h``N8`  ) ⬤Ȣ؝@عiعi` )؍0CGHFHdBdFdGx ް(8hFhG`@4͔ L @Ai ׭2` . 0#ع؍0 <讣)`.@+ i 8` L )0 NLMO MІMEKݸP$MEK O,u PeNNO (` C  7 2JHIHI؊ aL-  ` ? H ع H ؙ؊IhHIhH a iع `  轘ؐ` Gؽ؝ G  G؝؈` ` H 1h)N@ ; L  $ )dJ S ) iH h8` ) )حJjIHIH؊ PLJʮ`QʱLN0MOMEKP.MEKӱL-M O,up莿eNNO(`JNKOL / P L8 a ?ؑJ`L@ȱ@ `@Nȱ@O`؝}ILL L e L  pJ )@NJOK iKK IJ v JФ̭JjHFIH HIGxKE ް((H vhH h8`8@ȭ@L쬤8NNO 8 ؍JLG.F $ ᭔ع+ؠ H  0h8` 䮣ٽ ٬ؠ@` ( j )8`)i п` H h)N$% ILBJ DքEdFCJJJJ֍nH}IC J֭֬։/)DI@+8`@Ae C!$|1OIIJK,-NOPQRSu' @   !"#$ Ԡͭ Эht X l)lhЏL2  9 X [ J  dgdshUj" !# wgjdg. wg'g%s wghg%s w h ɍ1Ɋɋɉɛ kʽ/`L2LY g Xح o âXoύX`1e0e21ʆe dk)i/ k Lkdha+ # nrdcddpqt$q0c)crorcc0enib ` r )pqn  Fby LҠؠӠ΢ϠԩҠŠƠԠԠŠӢɯϠҠůȠԠĠ  ɈL :Lɍ)ې)ɮ۰ɺH h 'L  ġLL ̹L)'L ȳL O'F ʻ ̹(((L $ʩ $$ $L `ީ % K@D E  / XʩXύX X %   % ɍRH hɛɘɉɈ $ Ld :Ldې)ɮ۰ɺ' Ld  : X ( % ɛ$ɘɉ 8V%֌&8V֌֠)HV)hH)hHIhդD?DRIDQD)҅; ?JDQD]ՎՎՎ`MY pӭY)p  ӭp`C)`BFGV 8``8LխӅ:HhHh Ո թ թ ՘VYҪҦ>:Y)Ң`;R?AJ;<ȰY)Ң`Y?)Ң`ȐҰ ;HhHh=Ң`Hh `Hh`DEiȍ0֌1֍ZԍsԍԍԍԥDEԌ8TԌ8WpԌqԠ 7I꽌ɪ꽌ɭ蠪:љVE:8`]ѾV]H)]ѾV]ҙ)]ѾT]ҙ)] >8hUD` ԝY`> Hh݌(`HCJJJJ)*h`0($ p,&"op8`kkV꽌ɪɖxlӽ*kӽ-kәmMlӈ 꽌ɪ`8` *L o % ԽYӍZӭoӝY 3Ѡ шNZ`rZLkӭZӍq8r7IZӐiZkӐk 8 ѹs ӭq ѹ| kн Z)*>>` @ $(,048<@DHLPTX\`dh 0ުlptx| ֽ ְ& .Vӈ  JJJJH 8h Ei 8EX`'8`jӍWӥC)p> pӥCYӍY 轊( ( ӈBV ( ӭp0 \BkJ ՠ@iӦ> Ӑi'j:ZH i@ioZZH h ѐȭnWǥBJ Ӱ8XӦ>` Ր+><>=?<>CAB@?A` 1 L  <>`ڢF]PL8i m L   6< L  BLRAM' hLDLHB-9F 3"aɿ LLB Nϰ H  @h( L Lj  @`eLJCAB@=?ȱl蝀igt 9 X   (L $ `dm &m &m &m &mlemmli`{g8s [t0{2H* Lh2  Xȱl i L `κºú` \GQ H ?h8 S / ?8 V []bj \ ^e_f a  i  \ 2EL 0 8`0)H ""H"h8 ek)E/8LJپھ pHJh` H!h߻g޻tػٻpứ `޻ٻtػp߻8nٻniػtpiٻٻtụs໅o8ễpڻiۻniݻi>j?kܻڻ߻>ٻ׻pڻ׻Ii׻׻߻߻ڻ l 1ڻۻ `>i3Lm8n933LҞAAJL ةޘг uv $ 8LʞeЌ>?@`>?@`Ba8` K  LK ֟ ֟  KK`JJJJ8`轶K)` #hhp@3 @LtJ)s@J f 򟰸 p`H? hth?,E30ɍФ3 E3HD F3 Ʉ%h3 fM E  pLthɍLL3`3,A0s0% Ipn HpnI:L ؅30پھ p WH־Ǿh۰8L־JjjjZ[ɾ)Ⱦ8 AOLӜ ҤLLX>(F`־ؾپھ׾` fɄ KDEF zLp z pL[ fKɍKL?`  zL$݅3`(l8L3LX>(Ƀ,`3,G0]ɾ g` H`پ_پ p _پ׾`>( p۾m׾) W)ʩ@`ɾ>(O puȾ ɾ-O ͱc־JjjjZ[ (`O>0O z PODEF޾ p  ޾ p($ذ z (0 k( L?ԦʚLeةީe s  pL f,FLk,DL,C0$3 >@ Ɉ 3ɾꩈL(3ɾ;Ƀ kB94 l% fʽ  ՚,S` H H06172839h` z97L75v^e ?/( ze?L[LLɍ$?`?e ɍɥAH93827160hH46576879h`,C fL ɍ f ,S0 @ pLޭBYL 8!9 詍` "  4"/pŠϠŠà͠ӠàԠŠ)+,-./0123456789:;<=JJH !h穖tp% ;"Z/݀>">"' 1" 7"5).莀/ ;" " 6" >" 1"6"$ "g"" !"""""IջLLG ASTARTUP$#   / XXύX?klmnÍoL) "6L'?"(0`6708" = ***)<`HZ; [:HZ"h+h`8h`/Ȁ򈘍` L   `H0H"hHHH HHH "hpHH"VHH; [*i)    +hhHH">?Ek?!>Q>>>ڻۻ `` `>ڻ ۻ `e>>?ܻ?ܻ>?Emn(>e>ܻȱ>e?>Q>ؠ> ie>>?`׻;ػ=:<ٻ:<=;`׻׻mػ;>:8o>oȑ>ppȑ>> :oݻp` HKpn͵ @p;=po:S ST$I2 U)VJ :T)`l8`a HbIJhjǾȾɾ p٭b=a<I/q)im@^ʈ0 L/S 51-m@ʈ0 L٨/` E չ5L/A2ʩJ -V HrTJ6LGSL )AJ E @V n k38`J" Hʩ V HЧ H HЖabT)!J B8`@U)9VJ T)h*I/W)󩭙L=id =`H) +hJJJJ ɺi` [  ` . 8  `O`S  )AI-LG B C VW>m⻑>` !im8i仍nj廍ki滥lj绥oi>?Ek?>Q>> L>ܻ `/ e>>?ܻ?ޱ>Ƀ B ,  W ` z])Y 񩢍`Ⱦɾ0Ǿ p) : z6 E= =& =8Hh =` 6Y׾ؾ+پھ p|پɾʾ`HV)jh츾$-#㻍Ͼ p о־޾Ǿ` 8` 8`ɾ)ɾ ɾɾ0miȾ p pY)`lP *,N!ǾȾɾʾ pǾ~H kh8`8`,C k  8` Ⱦ㻍ɾM$ mH ``@  `@ ` 0`PU @ `PG ` _L7P n` |`` ``` ```D MORE":: 7"---------------------------------------"  STARTUP FOR DSK2FILE1 RTK, 06-18-95 @(21)::^"DSK2FILE VERSION 2.0":d"RONALD T. KNEUSEL, JUNE 1995"#"EMAIL: RKNEUSEL@POST.ITS.MCW.EDU"(:-"TYPE '-DSK2FILE' TO RUN THE PROGRAM" 2"TYPE '-VIEW.DOCS' TO REALLLLL[^)o `\o8` ԠŬLL,~z @`$仫@v$⩔,C[B?I>孓`仫6VtCicQĿUKqtVt Nʮq$6,⨁ K6, VtI=v!gNVt Vt  lg~Tһ   LiLMTRӱüϠž(+@ABCDEFGHIKLMNPSV     T[fouu~ՠٯ* PWN*]ĿNTz @n6VC/+A>@I5gN Oz @n[Dz @nd0PENWRITEXECREATEFRESTORENAMEBRUNLOCKCHAIN#FLUSHREADPOSITIONOMONPR#PREFIXCLOSEAPPEND Hѫ5 FڬB :hQ|Q@@ -!S    !C- !ABELSDFRV@@ !$(19@E ۭ (8 mȾȾmɾɾʾiʾ` Lpl8l:/0sНsƬƀ#(ZZV4G_0=( A P FjL\5p-e9ABSAVERIFYBLOADELETEBYECATALOGOZ}ȾȾ󰹩 p` ־ǾҾ,G 8`׾ؾ ж p ධۥs׾tؾE` ( о(־Ǿ,G 8`_`W)H־JjjjhZ[ p̭ зLKǾ  . .8  ȾɾʾNfne }ȾȾI > Ie f`8` P־ǾҾ,G0C ж=W)_`ZV"׾پӾؾھ pD`Y׾ؾOW)Ⱦɾʾ pD`8`W)CB) 5W) )W)@! p:`V)R ޾,N0MHhHh p' P,N HCNh`M`M N `޾Lp h־Ҿ,G0^W)TP) ecfdپھ׾ؾӾ p$c d pccddީ 8` jЭW)`_ 㻍Ͼ pH Ph8`jGM㻝ﻭоM  GY):_Z`[蹀[:`V)8`MN; Ҵ;`;C Ҵ N8` YG)̀#:Z[蹀[Ǿ ph㻍Ͼ pH Ph8`Ͼо־ǾҾ_` [Ӿ pW) LC`C N `9V) ` V) ޾ p` (8` 8`8`(W)`_V)Ij!؍Í`_ e; DSK2FILE: 140K DISK TO FILE <--> FILE TO 140K DISKAv (C) RONALD T. KNEUSEL, AUGUST 1995. FREEWARE INTERNET: RKNEUSEL@POST.ITS.MCW.EDU VERSION 2.1# (D$(4) -D$;"BLOAD DSK2FILE.X":BLK768:WRT784:HI780:LO779 =TK B869: CLOSE FILE)G260L' LOAD DOS 3.3 -> PRODOS MAPb'MAP(16),HALF(16)' 0,64,7,64,6,65,6,64,5,65,5,64,4,65,4,64' 3,65,3,64,2,65,2,64,1,65,1,64,0,65,7,65$'I015)'MAP(I),HALF(I).'I: * FILL IN PATHNAME ";F$:D$;"READ ";F$ 7650 <A$:A$;:60F AD$;"CLOSE ";F$:Q F(21)  VIEW.DOCS '(21)::D$(4)E:"VIEW DSK2FILE DOCS":m:"(USE CTRL-S TO PAUSE/RESUME)":"40-COLUMNS OR 80-COLUMNS? (4,8): ";:V$#V$"4"V$"8"Ė1:30(V$:-F$"DOCS."V$"0"/V$"8"ĺD$;"PR#3"0 2D$;"OPEN015B8TKMAP(SK)N10:1:868:"WRITING TRACK ";TK;" SECTOR ";SKrH2,(B256):L2,B256(B256)$R512: READ THE BLOCK)BUFF,HALF(SK)32: ADD 32 TO GET $6000.R256: READ 256 BYTES FROM FILE3W512: WRITE THE BLOCK8SK869: CLOSE FILE|2557 DOS 3.3 IMAGE -> DISK]H2914:L2913: HI/LO BLOCK BYTESBUFF895: 512 BYTE I/O BUFFER HI ADDRR256883: READ 256 BYTES FROM FILER512900: READ THE BLOCKW512915: WRITE THE BLOCKTK034SK)".PO"330!@ DOS 3.3 ORDER+E1000>J PRODOS ORDER[OWRT3,202: SET TO READwTWTADDR2,2: 512 BYTESYBLK3,129: WRITE BLOCK^B0279c10:1:868:"WRITING BLOCK ";BhHI,(B256):LO,B256(HI)mWRT:BLKrBw FOR NOW, ASSUME EXTENSION IS CORRECTQ::"IMAGE FILE --> 140K DISK":::z""FULL PATHNAME OF SOURCE FILE:":F$'::"INSERT A FORMATTED DISK IN S6,D1",A$:A$(13)3001611000: FILL IN PATHNAME8806: OPEN FILE ;(F$,3 ORDER IMAGE* WTADDR2,2: 512 BYTES7 B0279T 10:1:868:"BLOCK ";Bu HI,(B256):LO,B256(HI) BLK:WRT B 869: CLOSE THE FILE 13:"COMPLETE, ANOTHER ? (Y/N) "; A$:A$"Y"Ĭ   IMAGE TO 140K DISK'3 ORDER IMAGE TK034) SK015R B8TKMAP(SK): FIND PRODOS BLOCK 10:1:868:"TRACK ";TK;", SECTOR ";SK HI,(B256):LO,B256(B256) WTADDR,HALF(SK): SET PROPER BUFFER HALF BLK:WRT SK,TK 255 PRODOSATHNAME OF OUTPUT (NO EXT.):":F$A B$"1"F$F$".DSK":145Q F$F$".PO"q 12000: CREATE & OPEN FILE ::"INSERT DISK IN S6,D1 & PRESS RETURN:"; A$:A$(13)155 :::"CREATING OUTPUT FILE, READING:" B$"2"220 DOS 3. Z"WHICH ?";* _A$:A$"1"A$"3"95A d(A$)105,275,270e i::"140K DISK --> FILE":::{ n:"IMAGE ORDER?" s" (1) DOS 3.3 (.DSK)" x" (2) PRODOS (.PO)" z:"WHICH ?"; }B$:B$"1"B$"2"125 B$:# :"FULL P@BCDEG 2WTADDR796:10000$ 4(21):; 7::"DSK2FILE";:_ <": VER. 2.1, AUGUST 1995, RTK" A"-------------------------------------" F: K"(1) 140K DISK --> IMAGE FILE": P"(2) IMAGE FILE --> 140K DISK": U"(3) BACK TO BASIC":: FOR MLI*BASE20480(+I1(F$)A+BASEI,((F$,I,1))T +I:BASE,(F$)Z+x. MAKE IMAGE FILE VIA MLI.11000: SET PATHNAME.823: CREATE THE FILE. THIS WILL DELETE IT IF IT EXISTS.806: NOW OPEN IT.L""8h/ ʎ S` ?8 r 0 88`  Can't run next application.ProDOS Error = $ Please insert the disk: Accept: M Cancel: EscER WHILE USING TRACK 0 TO 34 AND SECTOR 0 TO 15 FOR EACH TRACK WILL WRITE THE DATA IN A DIFFERENT ORDER. EITHER WAY, ALL THE DATA WILL BE WRITTEN, 143360 BYTES TOTAL. HOW DOES IT WORK? ----------------- GLAD YOU ASKED! :) DSK2FILE MUST RUN UNDER PRODOSS TO TWO SECTORS. HOWEVER, THESE ARE NOT NECESSARILY CONTIGUOUS SECTORS. PRODOS USES A DIFFERENT PHYSICAL SPACING OF WHAT DOS 3.3 WOULD CALL SECTORS SO THAT READING ALL THE BLOCKS FROM 0 TO 279 IN ORDER WRITES THE DATA ON THE DISK TO THE FILE IN ONE ORDBIT, I KNOW :) DOS 3.3 IS THE OLDER AND SLOWER OF THE TWO AND DEALS IN 256 BYTE SECTORS WITH 16 SECTORS PER TRACK AND 35 TRACKS PER 5.25" DISK. PRODOS IS FASTER AND DEALS WITH 512 BYTE BLOCKS, 280 PER 5.25" DISK. THEREFORE, EACH PRODOS BLOCK CORRESPOND IF IT DOESN'T WORK, CHANGE IT TO .PO AND TRY AGAIN. WHAT'S WITH THE DOS & PRODOS ORDERS? ------------------------------------ THE APPLE ][ HAS TWO DIFFERENT DISK OPERATING SYSTEMS: DOS 3.3 AND PRODOS. (YES, THERE ARE SEVERAL OTHERS, I'M SIMPLIFYING A RIVE 1 AND SPECIFY THE *COMPLETE* PATHNAME OF THE IMAGE FILE AS ABOVE. THE EXTENSION IS IMPORTANT, DSK2FILE USES IT TO DETERMINE WHAT ORDER THE IMAGE FILE WAS WRITTEN IN. IF THE IMAGE DIDN'T HAVE AN EXTENSION CHANGE ITS NAME TO HAVE .DSK AS THE EXTENSION.TO THE FILENAME. SPECIFY THE *COMPLETE* PATHNAME OF THE FILE, I.E. /RAM5/KARATEKA NOT JUST KARATEKA. INSERT THE DISK WHEN ASKED AND PRESS RETURN. THE IMAGE FILE WILL BE CREATED (2) IMAGE FILE -> 140K DISK INSERT A *FORMATTED* 5.25" DISK IN SLOT 6, D A DISK AND RUN IT ON A REAL APPLE ][. (1) 140K -> IMAGE FILE DSK2FILE READS ONLY 5.25" DISKS FROM SLOT 6, DRIVE 1. THE PROGRAM WILL ASK FOR AN IMAGE ORDER EITHER DOS 3.3 OR PRODOS AND THEN ASK FOR AN OUTPUT FILENAME. THE APPROPRIATE EXTENSION IS ADDED ILE ---------------- DSK2FILE'S MENU HAS TWO CHOICES: (1) 140K DISK -> IMAGE FILE (2) IMAGE FILE -> 140K DISK YOU WILL LIKELY USE (1) THE MOST OFTEN. THE SECOND OPTION IS FOR THOSE WHO MIGHT COME ACROSS AN IMAGE FILE AND WANT TO PUT THAT FILE BACK ONTONEED A 5.25" DRIVE, AND ONE OF THE FOLLOWING: (1) 3.5" DRIVE (2) A HARD DRIVE (3) A RAM CARD WITH 150K OR MORE DSK2FILE WILL CREATE THE FILE, IT IS UP TO YOU DO GET THE FILE TO THE PC OR MAC. SEE BELOW FOR SUGGESTIONS ON HOW TO DO THIS. RUNNING DSK2FIKLMNOPQRST DOS ORDER (.DSK) OR IN PRODOS ORDER (.PO) IT DOES NOT MATTER WHAT FORMAT THE DISK REALLY IS, YOU CAN USE EITHER ORDER. MOST EMULATORS WILL HANDLE DOS ORDER, SOME WILL ALSO HANDLE PRODOS ORDER. WHAT DO I NEED TO RUN IT? ------------------------- YOU DSK2FILE, VERSION 2.1 RONALD T. KNEUSEL, AUGUST 1995. FREEWARE (RKNEUSEL@POST.ITS.MCW.EDU) WHAT IS IT? ----------- DSK2FILE CREATES DISK IMAGES OF 5.25" DISKS (DOS 3.3 OR PRODOS) FOR USE WITH APPLE ][ EMULATOR PROGRAMS. DSK2FILE WILL CREATE IMAGES IN BECAUSE IT USES PRODOS MLI COMMANDS TO HANDLE THE DISK FILES. THIS RELIEVES THE USER FROM CARING ABOUT THE FILE TYPE OF THE IMAGE FILE. IT ALSO MAKES IT MUCH EASIER THAN USING OLD DOS 3.3 RWTS CALLS. THE DISK IS READ, BLOCK BY BLOCK AND WRITTEN TO THE OUTPUT FILE IN 512 BYTE SECTIONS. IF THE OUTPUT IS TO BE IN DOS 3.3 ORDER A MAP IS APPLIED TO THE BLOCK NUMBER TO TRANSLATE IT INTO A TRACK AND SECTOR WITH THE APPROPRIATE 256 BYTE SECTION OF THE BLOCK BEING WRITTEN. THIS IS THE EASY PART. WRITING AN IMAYou need a 5.25" drive and one of the following: (1) a 3.5" drive (2) a hard drive (3) a RAM card with 150K or more DSK2FILE will create the file, it is up to you to get the file to the PC or Mac. See below for suggestions on how to do this. Running DUWXYZ[\]^_`DOS 3.3 order (.DSK) or in ProDOS order (.PO) It does not matter what format the disk really is, you can use either order. Most emulators will handle DOS 3.3 order, some will also handle ProDOS order. What do I need to run it? ------------------------- DSK2FILE, version 2.1 Ronald T. Kneusel, August 1995. FREEWARE (rkneusel@post.its.mcw.edu) What is it? ----------- DSK2FILE creates disk images of 5.25" disks (DOS 3.3 or ProDOS) for use with Apple ][ emulator programs. DSK2FILE will create images in LWAUKEE, WI 53227 USA AMDG E DATA THAT WAS IN THE LAST BLOCK OR SECTOR SUCCESSFULLY READ) I'M IN THE DARK AGES AND DON'T HAVE EMAIL, HOW DO I CONTACT YOU? ----------------------------------- IF YOU FEEL A COMPELLING NEED YOU CAN TRY SNAIL MAIL: RON KNEUSEL 8725 W BURDICK AVE MIHEM DOWN TO HELP ME IN THE DEBUGING. THESE ARE PRODOS MLI ERROR CODES. DSK2FILE WILL NOT READ COPY PROTECTED DISKS. DISKS WITH BAD BLOCKS OR SECTORS WILL STILL BE WRITTEN TO AN IMAGE FILE WITH NONSENSE IN THE BAD BLOCK OR SECTOR. (ACTUALLY, IT WILL BE THA MAC TO READ THE FILE WITH APPLE FILE EXCHANGE. THEN YOU COULD WRITE THE FILE TO A PC DISK IF NEED BE. IT DOESN'T WORK, NOW WHAT? -------------------------- CONTACT ME AT THE EMAIL ADDRESS ABOVE. IF YOU START SEEING TWO DIGIT HEX NUMBERS PLEASE WRITE TNIX BOX AND THEN DOWNLOAD IT TO THE MAC OR PC. (REALLY, I FTP IT SINCE I HAVE INTERNET ACCESS) ANOTHER OPTION IS TO USE A NULL MODEM CABLE AND GO DIRECTLY TO A PC OR MAC WITH THE IMAGE FILE. LASTLY, YOU COULD WRITE THE FILE TO A 3.5" PRODOS DISK AND USE TO A DISK TAKES LONGER. WHAT DO I DO WITH THE IMAGE FILE? --------------------------------- THE END GOAL, OF COURSE, IS TO GET THE FILE TO A PC OR MACINTOSH (OR UNIX BOX) I USE A TERMINAL PROGRAM TO UPLOAD THE IMAGE FILE (WRITTEN TO MY RAM CARD) TO A UWITH HALF A BLOCK AT A TIME. THE SOLUTION IS TO READ THE EXISTING BLOCK, THEN READ THE 256 BYTES FROM THE IMAGE FILE AND PUT IT IN THE RIGHT HALF OF THE BLOCK BUFFER. THEN WRITE THE ENTIRE BLOCK BACK TO DISK. THIS IS WHY GOING FROM A DOS 3.3 IMAGE FILE GE TO A DISK IS JUST AS EASY IF THE IMAGE IS IN PRODOS ORDER. READ 512 BYTES FROM THE FILE AND WRITE IT TO BLOCK 0 AND SO ON. IF IT IS A DOS 3.3 ORDER IMAGE FILE LIFE GETS A BIT TRICKY SINCE WE CAN ONLY READ AND WRITE 512 BYTE BLOCKS BUT WE ARE WORKING SK2FILE ---------------- DSK2FILE's menu has two choices: (1) 140K DISK -> IMAGE FILE (2) IMAGE FILE -> 140K DISK You will likely use (1) the most often. The second option is for those who might come across an image file and want to put that file back onto a disk and run it on a real Apple ][. (1) 140K -> IMAGE FILE DSK2FILE reads only 5.25" disks from slot 6, drive 1. The program will ask for an image order, either DOS 3.3 or ProDOS and then ask for an output filename. The appropriate extension is s please write them down to help me in the debuging. These are ProDOS MLI error codes. DSK2FILE will not read copy protected disks. Disks with bad blocks or sectors will still be written to an image file with nonsense in the bad block or sector. (ActualS disk and use a Mac to read the file with Apple File Exchange. Then you could write the file to a PC disk if need be. It doesn't work, now what? -------------------------- Contact me at the email address above. If you start seeing two digit hex numberAM card) to a Unix box and then download it to the Mac or PC. (Really, I FTP it since I have Internet access) Another option is to use a null modem cable and go directly to a PC or Mac with the image file. Lastly, you could write the file to a 3.5" ProDO.3 image file to a disk takes longer. What do I do with the image file? --------------------------------- The end goal, of course, is to get the file to a PC or Macintosh (or Unix box) I use a terminal program to upload the image file (written to my R are working with half a block at a time. The solution is to read the existing block, then read the 256 bytes from the image file and put it in the right half of the block buffer. Then write the entire block back to disk. This is why going from a DOS 3 Writing an image to a disk is just as easy if the image is in ProDOS order. Read 512 bytes from the file and write it to block 0 and so on. If it is a DOS 3.3 order image file life gets a bit tricky since we can only read and write 512 byte blocks but weitten to the output file in 512 byte sections. If the output is to be in DOS 3.3 order a map is applied to the block number to translate it into a track and sector with the appropriate 256 byte section of the block being written. This is the easy part. under ProDOS because it uses ProDOS MLI commands to handle the disk files. This relieves the user from caring about the file type of the image file. It also makes it much easier than using old DOS 3.3 RWTS calls. The disk is read, block by block, and wr in one order while using track 0 to 34 and sector 0 to 15 for each track will write the data in a different order. Either way, all the data will be written, 143360 bytes total. How does it work? ----------------- Glad you asked! :) DSK2FILE must run corresponds to two sectors. However, these are not necessarily contiguous sectors. ProDOS uses a different physical spacing of what DOS 3.3 would call sectors so that reading all the blocks from 0 to 279 in order writes the data on the disk to the filemplifying a bit, I know :) DOS 3.3 is the older and slower of the two and deals in 256 byte sectors with 16 sectors per track and 35 tracks per 5.25" disk. ProDOS is faster and deals with 512 byte blocks, 280 per 5.25" disk. Therefore, each ProDOS blocktension. If it doesn't work, change it to .PO and try again. What's with the DOS and ProDOS orders? -------------------------------------- The Apple ][ has two different disk operating systems: DOS 3.3 and ProDOS. (Yes, there are several others, I'm sit 6, drive 1 and specify the *complete* pathname of the image file as above. The extension is important. DSK2FILE uses it to determine what order the image file was written in. If the image didn't have an extension change its name to have .DSK as the exadded to the filename. Specify the *complete* pathname of the file, i.e. /RAM5/KARATEKA not just KARATEKA. Insert the disk when asked and press return. The image file will be created. (2) IMAGE FILE -> 140K DISK Insert a *formatted* 5.25" disk in sloly, it will be the data that was in the last block or sector successfully read) I'm in the dark ages and don't have email, how to I contact you? ---------------------------------------------------------------- If you feel a compelling need you can try snail mail: Ron Kneusel 8725 W Burdick Ave Milwaukee, WI 53227 USA AMDG ---------------" 55 PRINT "- -" 60 PRINT "- CopyBlocks -- copies selected ProDOS blocks -" 65 PRINT "- 10 REM CopyBlocks -- copy selected blocks from disk to disk 15 REM 20 REM RTK, rkneusel@post.its.mcw.edu, July 1995 25 REM 45 PRINT CHR$ (21): HOME : PRINT CHR$ (4);"pr#3" 50 PRINT "-----------------------------------------------------fering block... ";B, 1000: read blockD 2000: write blockK Bk ::"Transfer complete.":q   Read a Block RH,(B256):RL,B256(RH) RD   Write a Block WH,(B256):WL,B256(WH) WT  Poke 0:EB279:FB$""FB(FB$)4 EB$""EB(EB$)C do it...^ I722:I:868:I:9 "Insert source in S";SS;",D";SD;" and target in S";TS;",D";TD;" and press return:";:"";LOST$ EBFBTFB:FBEB:EBT BFBEB 12:1:868:"TransD$""SD(SD$)) iTS$""TS(TS$)@ nTD$""TD(TD$)d sSB16SS128(SD1): unit code| xTB16TS128(TD1) }5000: setup MLI calls : "Beginning block... (0=default) ? ";FB$ "Ending block.....(279=default) ? ";EB$ FB-------------" K::E P"Source disk slot (default=6) ? ";SS$p S" drive (default=1) ? ";SD$v T U"Target disk slot (default=6) ? ";TS$ W" drive (default=2) ? ";TD$ ZSS6:SD1:TS6:TD2 _SS$""SS(SS$) dSbdej -"x <"- CopyBlocks -- copies selected ProDOS blocks -" A"- -" F"-------------------------------------------------------< CopyBlocks -- copy selected blocks from disk to diskBr RTK, rkneusel@post.its.mcw.edu, July 1995z -(21)::(4);"pr#3"2"--------------------------------------------------------------------", 7"- il mail: Ron Kneusel 8725 W Burdick Ave Milwaukee, WI 53227 USA AMDG fhikl -" 70 PRINT "--------------------------------------------------------------------" 75 PRINT : PRINT : PRINT 80 INPUT "Source disk slot (default=6) ? ";SS$ 83 INPUT " drive (default=1) ? ";SD$ 84 PRINT 85 INPUT "Target disk slot I = 768 TO 793: READ V: POKE I,V: NEXT I 5025 POKE RB,SB: POKE WB,TB 5030 RETURN 6 * PEEK (WH) 2010 CALL WT 2015 RETURN 5000 REM Poke MLI routines 5005 RD = 768:RB = 776:RL = 779:RH = 780:WT = 781:WB = 789:WL = 792:WH = 793 5010 DATA 32,0,191,128,7,3,96,3,0,0,96,0,0 5015 DATA 32,0,191,129,20,3,96,3,0,0,96,0,0 5020 FORB 205 PRINT : PRINT : PRINT "Transfer complete.": PRINT 999 END 1000 REM Read a Block 1005 POKE RH, INT (B / 256): POKE RL,B - 256 * PEEK (RH) 1010 CALL RD 1015 RETURN 2000 REM Write a Block 2005 POKE WH, INT (B / 256): POKE WL,B - 25TD;" and press return:";: INPUT "";LOST$ 170 IF EB < FB THEN T = FB:FB = EB:EB = T 175 FOR B = FB TO EB 180 VTAB 12: HTAB 1: CALL - 868: PRINT "Transfering block... ";B 185 GOSUB 1000: REM read block 195 GOSUB 2000: REM write block 200 NEXT MLI routinesJRD768:RB776:RL779:RH780:WT781:WB789:WL792:WH793q 32,0,191,128,7,3,96,3,0,0,96,0,0 32,0,191,129,20,3,96,3,0,0,96,0,0I768793:V:I,V:IRB,SB:WB,TB ";EB$ 145 FB = 0:EB = 279: IF FB$ < > "" THEN FB = VAL (FB$) 150 IF EB$ < > "" THEN EB = VAL (EB$) 155 REM do it... 160 FOR I = 7 TO 22: VTAB I: CALL - 868: NEXT I: VTAB 9 165 PRINT "Insert source in S";SS;",D";SD;" and target in S";TS;",D"; VAL (TD$) 115 SB = 16 * SS + 128 * (SD - 1): REM unit code 120 TB = 16 * TS + 128 * (TD - 1) 125 GOSUB 5000: REM setup MLI calls 130 PRINT : PRINT 135 INPUT "Beginning block... (0=default) ? ";FB$ 140 INPUT "Ending block.....(279=default) ? (default=6) ? ";TS$ 87 INPUT " drive (default=2) ? ";TD$ 90 SS = 6:SD = 1:TS = 6:TD = 2 95 IF SS$ < > "" THEN SS = VAL (SS$) 100 IF SD$ < > "" THEN SD = VAL (SD$) 105 IF TS$ < > "" THEN TS = VAL (TS$) 110 IF TD$ < > "" THEN TD =