,ML  X c0C)HCCH Mhhݩh `eCDiCD`  RyHW   * 1H0芢@) Y0.Ș`i#(PM#\ \b Pgi 0  % @ / ՠ`d   0DDԝLHN@  )?HI Y0`HIJH) * J j * hJJJ )HJ h i      YS S0 i`ϣ߳ϣ߳H J3xj2h 1 |9 ӭ45(420 *(0241өX.`  R *i)Lvw  ~*PE 5 LN(G E  r s k rsrL ( E LO(0d( L iE0O +)$IC  H S8 q p h   j 8no CDLQ CFl M  LO Ri)Llk2'")*F$F$F$F$F$ 5 )ШF/Șl]kpqС,LQ/A! Ti)Zlk@ ܬ/i)(")")k$F$F$F 5$/L /lF@jj(LNkle$$%8(k()` R 8 ELO Ri)^>jf | NrC s  ) vw5g   enfo Glvw LQ@iLm>j FL ~Jjjjii p qEhjlrs`LQ:$ȱ$@+[_#{ 8  Խut! ai 8   E I   ] C H h    ˰ 8  N   Lm E  ,  [ `LQ ,/ 8 ~/  Ơ? ѩ/  [ / Lj0?MoLn FjMqLp NklLOLQnLoMlNLO R"(+ըHH`Q R!!  % !   / .   FȑF! /GF \H"+0+* ! F t LQnm: J~nTF1F  *n+)5! n (, n)1JJJn(n*o I ,0  ci a oF? @ , 8,0 ʩ0H Eh   i  D ]D mmFLQvtu`*&!*@h ] 0 ^0` c 0l$$%()()%*&J%H,@hH hH@,h $% 8i8$(%)0hhH ]h`() c 0H c 0 h`hhh&JJ ]( ll  LQ0  /qnoHH 9 9 H H  I9  9  Nd EH  Q8 o n  FnoL HII/ Ih8`h`Lnon`no`u F E VEhLO/luF l0BF/lɜɛ׽hE N  b VFL FREE SECTORS C H) *Fh ):FȽ F FC IH' 0 d  i:Fȩ/F.l`CD/08HDICIHȰ/F`ȱ$>.+.i ȱ$:刄H !A \ Hȱ$*?ȝ 2. ? [_{ ,0-:) 0$:>WI  IТ,LQH  0hLd ~ t u`C ?( 0(C.` E  R =! .ti S0N EE D XC )0')AY  )ע ? 0E088FG \on  (HhLcL3 iJ i Lqp 0=rspnqopqlk`jZj0  j FL`HFhȑFȽlFi0 h FFLFpvqwgneofLF pq7  G0i 0 FJJh1FqȱFpȱFk`B!08`hEE D 8. =D}tui( TʩL`b!)    cȌaȌd b`aabH8 hdaHcd8 cH hHH  \h hc` =Hh I8ih( t  ( t(!` L\CJfCJfCJfCDfC` a  HII  INdh  `h  `n)8jHniPoijIjFIjFIjh` a I 38  8H0 I  ' H LQ8j Y  8j NdY  &I &I &IHeH.pIiq  `!.莿 2Jjj }.m Ȉ!m FG` ɩLQ z  e Hi04 \ Ȍ  8 i h !`I0 `C Y8.`DOS SYS I  ` ~ݩ.C/`ba.m۩mѤC9 `C L] H  ,- '0 l , BLVDE`D1:AUTORUN.SYS8hhJ ȱHȱIȱBȱDȱEeeHHLV)  1*  ,,p-  0 I &  '0   Lw)l, 0  I&LD1:MEM.SAVE:D1:DUP.SYSJ)1CD2:DOS.SYS n  * \*`آ R'S )ɀ@  U))% BError loading MEM.SAV or memory!  0* b*c*d*e* R Hd*JSDd*J-=e* 0c*ʈд =}MYDOS 4.50 -- Copyright 1988,˛Disks 1H 2D- 4D= 8R D: = D1: ~= =1-8.Dir of D1:-D8: *. Dir of D:A. Disk Directory K. Save MemoryB. Run Cartridge L. Load MemoryC. Copy File(s) M. Run at AddressD. Delete File(s) N. Load MEM.SAVE. Rename File(s) O. Change Config.F. Lock File(s) P. Set DensityG. Unlock File(s) Q. Make DirectoryH. Write DOS Files R. Pick DirectoryI. Initialize Disk S. Set RAMdisk #J. Duplicate Disk V. Set Verify Flag  ?莼( 0  =Select Item ( for menu):@  =ɛL)1L,*L,:W@ ,,L=No such item!L*, -L*, BNeed new file name! BNo drive or directories allowed in new name!Lock Unlock Delete Lock which file?â-#Unlock which file?ɢ-$((H @ AQ/wDelete what file?Ѣ-!((H @ ANJ =Answer 'Y' or 'N'h `B L?;(( ~=( ~= =? =Y ?Lj.H @ AhR ?R)L*,LM/L-Lz-File to rename, new name? @ A(9', ȱ:>0{ ПFull directory name?Z"L.Directory to be used as 'D:'? @ A(5)L.(I: ȱޝL*, BInvalid directory!L?( (0Li-File source, destination? '( @C۩2ڭ82ܭC B9'0 @(ߍeލd(DЍ( ? 9' A rBȱޙ':>Ȍ(C0J* .B :'ȱ/.* #,ɛȝ:' ߰ A L?,(0L*, 'ut(:'3?&' .'Ƚ:'?&'  .ى'Q?''(#( ~= =-->' ~=Q =YR_o (J(  0?B݌''BK)`''utz0( >(L0L*,L?nDisk to FORMAT: YA B(UTލ1 =(Press for Enhanced Dns)Type to Format Drive 2: =AIYZNj[R VL?L*,D2:DUP.SYSDrive to write DOS files to? YAH1:*K)2J) Z wB hpJ) 2<2UTC٩1ة۩کL;Source, Destination (Sectors)? YA)((9'( SA)((((( @(0% =Insert both disks, type =  A( A((/( B(( BDrives not compatible!J(j(9'Hi''h(ɛy BInvalid options! @-&& @)׍&&(&&&۩ک&&&&8* <4&&&& <48*8(ܭ(ݥ2C!, BNot enough memory! ک&&`(Mh  & =L?&i &&&&mm   =  &((&թԥԍ(Ս(((( ( ((C2((ՠԍ((,(0"( (( ="m(m( & &("L*,  ( AL4,(, =Insert DESTINATION disk, press =Nͼ J) b( 0K) ?((ԭ(խ( ( (((L4Drive, new density: YA9'ɛ BDrive unchanged.(ު#90٨Ȍ(SD  ABL)xԌҭHӭ@ @ ʎӆ@ӭ@@ :  $ӹ @hөԥX` Aˠ =RAM disk present? =NL#8 =xlon or E type RAMdisk? =Aό $  L   M A, A6: ' =No extra memory available!L#8L7 & & & =Use default config for 0)ȩ ~= =K? =NL7 =Size(K)? ? @FjFjFjFj: =Page sequence? ? @o* =RAM disk drive no? =% 09) `8 -8**H***) 9 Ȋ)h9 @@ʊ H'h(#''/'(ɛ ? @(@: 3 ʽ' L7 =Duplicated sequence number!L7 =Wrong number of entries!L7K&큅쀄 =Verify WRITEs? ; =Number of File Buffers? ? @  6 Lw),R( ';L*,Drive number or : =ɛLC99L60Ȍ( =Remove drive? =Y =Is drive configurable? =YЂ =H'igh capacity drive? =Yy =Is drive double sided? =Y ; =Tracks/side? ? @#0M P( ; =Step rate? =4/ ; ';L*, =Drive size (in sectors)? ? @H(h *;L*,RAM disk drive no? 8L*,Verify WRITEs? ;L*,( =WNPy`(`(  LABSAVE:filename,start,end(,init(,run)) @TUH @Cp` 2< @؆8օڊ BInvalid START-END range!۩ @  @ hԄՠAμȌZ wB04*  0$)ڍXۍY֍T׍U,0LBLB #CL?ֆ׌`Load MEM.SAV from what file? 0#L*,L?Load from what file?) @TU&̩Z wB &0&-&а&𨭼INIZ'RV0II BNO CARTRIDGE!Ԇ*  )L?Run from what address? ?ɛ @ BAddress must be 1-4 hex digits! BHILV n=`hh =HH` =0{a Hɛ n= n=h` n=L*, = = pHH =hh`K: p `(((+( i ɀ((L?(`(B'(0!HH''^>I^>(`^>DH(`(HI`(o5 ~= =( B( >@A (J wB0x((HHIIDDEE B ?(CɈK(٢A ~= =( BL>(B^>((ڤ, ܝHݝI VL_>L?(" B !B J)  B(L& R XY( ?&:0H&((& ( .( & ( .(ʩ(`ލD&ߍEBIʎH( V0`ԩ ؠ@ȱ@ȱ-@ BError -- 120&`$8f 3AԄձG/ $<68i/(Ԧ`H&եԦ&&eԅheԅԊe(iL*@&&&&ԅL*@B ? 3A?*(ɛ:./2SX(0ȱ/.ɛ(ލ9'ި.0#:Ȱ :ފ :ȱ: : CAD CAޥ`(eޅީe߅`(` @L\A @TUȪ: BFile name not allowed!: )  i( =0+L TUD BNot a disk file!(0` =Insert SOURCE disk, press / =,(pӮ(A(O  1B AB1B `9 % 1(L/ b(de BJKO L?O` B((*(((`ȱޙ((:>Ȍ(`D:`OS.SYS,DOS.SYShh =L*,  VLJ0 C C,pLiLF#Խ٩Յ׆  LB` % 1(L/ b(de BJKO L?O` B((*(((`ȱޙ((:>Ȍ(`D:`OS.SYS,DOS.SYShh =L*,  VLJ<(] 8冨凪`ʆ ee` (E…¥ (` 5(ʆ &e (L( Fj` &`hihiHHȱȱ` &$8녡ꅠee2``Ȋii`8ꅡꅠ`TL1)-),)(m,)((m-)(8(,)(-)`2 La)])\)])(\)(`07 $60]*))~)))"BYTE FUNC Strcmp(CHAR POTX}t)Y})eU`UT`eZUe[T` L)) ))U'UL)UTT3L)T`0)L*))))%*%*LE*)e)i )L*` `H )hɀ @ppi(`Ii(`Ȅ )摠i(e`Ȅ )i(e4`****))I`****))M``+ gL)+#+"+"+#+i .)%+$+$+%+"+#+Ȅ"+#+++L+W$+e%+iHH"+e#+i *hhL+%+$+`vL+ BD5EHI V+L+` BHIL+ JK`1 (, OD3, J,RETURN=,Q,J,c, PROC PLa,3,2,2,3,8],2,3,\,],,,\,L,i2,m\,3,i\,4,\,L,\,4,,4`n(0,1L, (,,, ^,,,6,,, !,,,, +`,- L- (--- ^,----- !,---- +`wL[-W- W- ,`Lm-i-i- +`D L---- - +`-L- (------ +` ODL- (--7---- +`+1-L. (--..- - +` &B +NLMȑ` %BNLML+ QRE||ZRCZ (`8Z`{Z`UT )k.8(堅ॠ..L.Il.8L.m.ॡ//L:/ein.eio.L/eip.ॠg/g/Lz/nq.L]/r.`ODy/L/ (/ s.j. (饠腮酯/ii/ii/i9i/ii/ . ){)L`0\i]i Y( (//// (]\// * (]\ L*{)L0]\[Z .Z[8\\8]] )`R,L0 )饠 .8j.j. ){)L0 )0:000 (]\00 * ( .`(19)=L 1 (111 F*>1>1ŠL11e1iEL111L~1118L1L1i1e1iEL1111L111iL1iL41L";1`,0)L1 (1 )UrUm1T )1qm1iIL&21兣12# 1pIpI~L21L28118qq1i1e1irm1T ) )L#3pIL2L#3pIL2qL#3pIL21q81 L*L#3pI 3i +484 L*`_tL555p55Lb6pLk5e3f3HH .)hhe3f3ȱf3e3L5 .)d3c3c3id3ic3d3HH .)hhc3d3ȱf3e3?pe3if3iHH55 &+hh55e3if3ii5e5i555q5ii5i5L5e3f3d3c3`|6%L6 (6d3c3 (66 5d3c3d3c3 3c3d3@ 3866 466L6+*666 16c3d36 j3L87g3666M6LO76 46 46I 6IL6d3c3 ^) )d3c36IL76g3e3if3i``L7t)i A(t)i(iL7((((((+j. )`sgfw_^b]ir88 08 ELSE #8K8 v``8 hLd8 (]8]8^8_8`8]8^8_8`8QL8]8^8I:L8`L8_8`8I:L8B`]8^8_8`8]8^8_8`8QL!9]8^8IL!9]8^8_8`8L8]8^8_8`8ѮLH9`LM9`a9 IFLW938JQ9Q9L:N9Q9M983899M9N9L:98M9Q9O9N9P9O9P9L:O9 m8P9*(m8CO9mQ9P9i m8*(m8ȱ a8L:L:O9 m8P9*(m8S9R9O9 m8P9*(m8O9mQ9P9i m8*(m8ȱO9mQ9P9i m8*(m8S9ȑR98O9Q9O9P9P9L9M9N9L|9DNQ9L^9` OL: )' L* ) )慮煯$ii 8i 8iiiii8i :8i:Ȍ: 8i 8ik;k;:L;:e:iIL;IL;:e:i)Lp;E:i ::i::L`;` w_dta.L;;;i38ŮL<38;L <;i; ) );i;;.<.<;L|ii|i$iL\>Z . ) )慮煯AHi iXiiXiiDZ[`L>>> ) L*8IiiI`["-1-" '1 "-2-" 82?[? "-3-" '3 "-4-" '4 @?p? "-8-" '8 nil82w?p??PROC delcancel=*()w?? ["Delete" L?,?,?4848IL??8=8? 8- 8 88 88L??8o8? 85 88888 8i 8i Y(8e8ii8e8i 8i 8i `8484848 ? 8i 8i38 8 8Z 8i 8i[`@L@J@@D!8:"88@@@@ LA@e@iLA@e@i + 8L@. 8i@ LwA@e@iLwA@e@i +@ 8@L,A8@ 8`,8,LA :LAD:*.*A ,48LAK 88 888A8ALA88888A8AAA -+ILBL9B m8*(m8AAAiAAiALA838 X- T9 =A38bBbB́ALD68A m8*(m8AAAiAiI LBAiLAiHHAA *hhLCAiAiHHAiAi *hhAA LpCAeAiHHAeAi *hhL'CAi AiHHAi Ai *hhMAi AiHHAi Ai *hhAi AiHHAi Ai *hhAi Ai|AiAi|LDAeAiHHAeAi *hhLGDALWB ; 8 8NZ 8i 8i[ 8i 8i38 8i 8i 8i 8i 8i 8i`(LE E8i8i ;8 8i 8i 8i 8i E E 88i8i8iȌi A`(" fLEEEEOEEEE͏ELE9EmEEi *EE )ELE`LEEEdL F8EdELEL F )E L8F8E EL FLNF )ELdF8EELNF )`FLvFpFȄ38FFLFe8 mP8*(m8rFqFqFrFLFpFLFpF`-1-F1-2-F2-3-F3-4-F4-8-F8DeleteFDCancel GCSingleGSMedium GMDouble+GD720kb6G7YeahAGYAbortJGALockUGLUnlock^GUYesjGYCancelrGC)=[3 ' /Q ) 8i 8iGGILGG8GF 6G 0GILG88LG8G0 Ehh`nLHGGL#H8G ; >L.H ;G >`HEN L6H/H sFGGM38LnHLYHD:*.*HS/H -LLIGLI0H38HH0HL I=80HR m8*(m82H1H1H2HLI80H G2H1H @8 /H - X-1H2H0HLHLLIG m8*(m8 @8 /H - X- A` sFGGLI /LIDelete Iy EG ELI fSiles ?I EL J /LIDelete this file ?I EG m8*(m8 @8 +8堅J )8 E[i[ )F 6G 0GIDLIJ! 3Hhh`[D1:LSJ# / )L}JSelect densityJn E )KJGT 6GGILKg3KJ 8i 8iGGJJGIMLJȌJJSGGIS GIDL KGGISL KGLK!G0 GNJ /L:K Format DK0 E G )LTK: ?KP E )GA 6GGIYLKJLJJ U- X- 0 0GIYLK Ahh` sFLK / )GU 6G 0L'LG m8*(m8GGGiGiI L"LUGL'LLGGILPLGIULCL$GLHL#GG 3Hhh` LVL8787808RL/8QLLL )RL(QLV2818 J8'RLQL * )'2818 *QLi(QLRLiRLLoL`G m8*(m8 @8  , s. SL58U68TG+ILEMG - j-GU58T68LMG -U58T68 X- F* . SL`  /LM Enter fullW dirnameMz E28G18GGiGiDGiGi: )LMD:M E )GG 1L#N2818" - X- 0 AhhL&N 0`  / )LPN Rename a fileNB E28G18GG m8*(m8X @ 8NNLN GeGi 8LNGeGi,GG 8i )2818 E )GGGG 1LBO2818  - X- 0 AhhLEO 0`g*()6LOOHOHOiKO38lOlOKOLO)8KO m8*Y(m8JOIOIOJOLO8KO`KOLaO`] ] Opos(0,2)OO Print("D:")LO 8i 8i 8i 8i 8i 8i 8i 8iO `@ 8i 8iO `@ sFLPG m8*(m8OOOZOOOOOMOLPOILPOILP / )LP Source disk !P E F* 0OGOOFOO8FOOGOOOL+QOi LOOO m8*(m8OOOO @O GOO X-8 [ ,OLQOOO J.OOOO -OOOO mO*(mOOOO mO*(mOYȑXOmXOOmYO8OXOOYOOOIL>R+IL>ROOI+IOi LOILQ+ILROOL\R ) )ԠOOTȌOO؅Oҩ &. X-OMOLSOILS / )LRDestination disk !R E F* 0:8O8O$S$SOLSSOO GOO m8*(m8 @ `@O8  ,O ]mO*(mOO mO*(mOȱ . X- `@OOLS:8OILS OOLSOi LOILP `@ A `@ : ;hh` /L1T Quit TN ?T# E )Gj 6G 0GIYLT SLIML^T   H HGHlLTLq`R LT 8i 8i 8i 8i8񬑮838TTLUT m8*(m8TTTT 8i 8iLT8GG ;G >` L6U /L\U Cassete upload !UJ E )LpUC:_Um E )28G18GGiGiCGiGi:2818 1LmVLU D:UPLOAD.CASU˩ ,2818 -8FO/UGO0U0U/UGOFO -<ӭYXGOFO .4ӭX/UY0ULV X- X- 0 AhhLpV` 0`LKTI&NOTsV.LV (}V}V~VVVLV)}Ve~ViMVLV`LV` rVHqVHG`LV 8i 8iG 8i 8iGG >GVL#W-=838GW 1VLKWVADRCSVWD V38LYLuW8a VLoYVI LWG m8*(m8GGGGGG8񬑮G ) )8LoYVILoYG m8*(m8GGGG @ X-GiGiIL,Y 8i 8ii 8i 8i Y(G m8b*(m8GG LXeᅮ8e8iGeᅮGi LX8 ) - 8i 8i Y(8e8ii8e8i AL=[LoY SL58U68T H 8 ^,UTHGH'RXYcZLVVGLYGLYG >GG >LY8G ; >LYGVLYGLYG >8GGG >LYG ; >VILY SL F* SLL:[VI VIL|ZG > 8i 8iG 8i 8iG `@ 8i 8iG 8i 8idG8GG ; :L=[L:[VILZ 8i 8i EL=[L:[VILZ 8i 8iLZ 8i 8i848 ? AL=[L:[VIMLZ fML:[VIFL [ PJL:[VINL[ GL:[VIQL-[ TL:[VIUL:[ 3ULW` VL>[` GLE[+ILk\U58T6e878Lj[ SL / )L[ I/O error [ E+ E X- X- F*88 E[88j.L[ 0L[8G0 E98L\98 ? IL[ EL[  E `@ ::8Lh\:8 `@ :838/\/\Lc\Q m8*(m8GGGGfL%\ ; >[`Lo\@7888Ȍ98U58T68[+K+ 7 (08/8( (2818 )'08/8 *L ](𩠱֢\ E )LD](] E X- X- g? E ?98 IL{] EL]  E `@ : >[`l\9ܗLLLL{LINITRUNCopy - EndL"   )Y yhhLW` Are you sure ? 򝥈ņ9 n@3 8 ƊƉ Ɠ `hhLņ0 8刪L* Ɠ Ɔ`eeŃłLNņ8喅嗅` ŕ Ŕ8喑ȱ嗑LuH vh o v+ ɛ  ߟ H ߟhuɛsSG~Q)0:4AG,a g8 L`н֟ A[a{春řƘ0Ƙ0 0L8`0 詛` H h` ` p80 ` :<>_/.*?IL<堡堡ءd  Press any key.../';8;H3h* ? LH h PLWH hJKD qEHB V0`This program needs min. 48kB RAM !!!j BϝDEH Vl  㙭ۅ { H h)œ ȡɡl8Ȣ I`-=DLFSPERIXCA rMQdlfsperixcamq£ţȣˣΣ)E£ţȣˣΣ)Eƈ iňƇLWņ戥iņňLWԠ4  B&DE2HI V l ̡z L Search spec.: D1:*.*  s Ҟ4 BDE(HI V  LWL  < `?  q  Y $i% < ɛ*1)Yy Nn8= 攥LW tL.LȥLܧL{LLޣLLLLԣԢ 嗥ņ"  )   L8iȘH ?h+)8HȥhqȊq`hhhLņ/ ) u  LLoad - Filename:D1:@hhLŅńɢ ڢ ݩL`eeʈe敥ƗƖ奋 ee`LBDELV LVB vHI`H h VLL ޤ8傝H僝I HI L򣥼`ņ 戥iň` 0. 0'`膼 ޤ 0 0'hh LL %  08崅 0(嵅淥X K wC= 0 0 2   LceeŅńLHI 0 I  Le 8`6oi2`&2R§ȱçƧȱǧ%m§mçʎħŧ x  ©8`L}Save - Filename:Lˢ ڢ   )H:  pLH  hi  H h L ȱȱȱȱ ) ņL L y eeƕƔ EDIH B VhhL`8包卅ȱ`eȱeiLxԎԭHӠwwwwHKhө@X`2PS)hihij G zȱHȱ8GWȱHEWEȱJȱK62 HH   h hL Run Length Lempel Ziv Huffman 箮硠1 ņ )  L {Ņ׭0ح1 ñeȱeΦý %3 uv 񗥟)1B  9Ґ ѐL8ǪS 9 d ߗLҐ ѐDžѥȅҥąŠeхȱe҅ʥŔŕ5ɥŔŕӅ˥ԅ |̥ˠˑ)LsLЪD8хȱ҅L1 ёȥґeхȱe҅  L˩̠ӆԠeхȱe҅ЩDž`  LQŕ Ŕ JJJ8 }`LLL `HȱL ֚8`h)` ש001ץ؍0ٍ1`ppppppppppB@A00acking(%,03creen/./&&LLLLLLL LLLyLLLϯL魥 ~ q nHܩ n ߅ޥ q q q qަ` G ڮ@ ڮ2f*f*ee н֚8` W q q q jjj nH h L ` q`&& q`i i" ")н҈` z8`8`ʊ& JJ J媥#FfУП`LK qА ϐ`8񉪥LаIIiee8ɨ@?ǠɅȱɅȱɅȱɅ0ȱ)ȱ"ȱ   кж1 q8jjj))? q q nLԯ nH qh qLԯ֚8` HҰ  t t I t *E' h `+",#-.Ұ-`++,`$"%#Ɗ$e**)M$%`&-"+#,* $ %!ߥ$%$$-ʝҰ-ަ+,++L. '? 'I0 'I1 6B 6B2 %*H %h*?? M010? % JJ߰Jװ2 '3ʆ23`? '?`. '? '? ? MLQ ')?3***)1 '0$800%1 102 M23򰹺. '? '? ML '2 '33 M2Ұ =DZαѱԱ *9iVi A"ȱ88``śꥵŜ䥈 )ΠȱнЬȱФ)  8ȑȑ 嗥ii©8``ܗ ` ʎ a Y0`1 q eJЭ!Lt ` >`` Tn` q`pppppppppBk`AY`(appy -aster1uad T6ersioncreatedonby"+loss3pecial4hanksto-,uedtkepushtocontinue >`0 Tn/ 7|' o j1h膞-h vi b-b bwb kb \@ &b ?b  >`./ j b b Ri %p b; D`kLb b q D`L b0>p0 RpHQpH R`@`0 gdABC`6CABCvЪ Тqb`0 H Ѕ&  Ѕ0Щh@ ЩMЅL_`b`0hxB&cBcB0BgABe(appy -aster1uad T6ersioncreatedonby"+losspush֨for-enu3ource$rive$estination$rive2ead3ector3tarting7rite3ector%nding7rite3ector3ectorin"ufferis$ouble%dit"ufferin(%8"yte"yteson3creen  &QRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRE|4he#ommandsof(appy -aster1uad |ARRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRD|$ecrease3ector)ncrease3ector||22ead3ector77rite3ector||%%dit3ector((alf3ector||33earch..ext3ector||"2ead3ame3ector,,ist$irectory||$#hange$rives!!.$||8%/2//2!||9!$#:3"#||##lear3ys 6ars11uit||-$isassembler|ARRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRD|󀥳倀|ZRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRCppBwpB7B?qAg$ouble3ingle婮  &  &&1S j SLk)   g{dxʈR  N SLkF-h id:dbdw1h id9dadw j d3d[dw`4j i:dbdj i9dad j3d[d`j ibdj iad j[d` ,hNO  j j hj j 9k0 O iȥ o0 O i o`)`i@```8 `) iJJJJ i`i0i`Մ8   NjLUjd Nj Yj` Nj Uj`` `)8 ʈ`0hdMxʈ`N``02zz` id@x jd`mgʈ`2ead3ectorfrom$rive&irst3ectorto7rite,ast3ectorto7rite q` nLk#n06n` 3502?:*84X !"#$%&4 `(g`%/2/2!!.$!$#3"#"ufferwithEnn%nnenn n8n >`_ngʈ mngg !lOEԝO i TnLk o RiLk1h-h0  8`-hi-h1h`1h-h-h8-h1h RiLk UiLaos ootorforexit TnSog mLw: LtLki(恥i(` Tnpg qn n 8 9k R`pg q n 8 9k R` TnLa3ource$rive$estination$riveNM` %p RiLa67(.*9>#:?+/%,onlls&k5zq0pJronznnnnLonovQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRE|덤|ARRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRD||ARRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRDARRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRD|Ԁ|ZRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRC` m`}O)~O Tn! rg q K`La-h1h RiLk%ndof&ilereachedTpress`@@@@@@@@@@@ %pi 4h >`0g1 j b ]s0r i {s o ]s ]s ls i {sȱ i {s i {s i {s i {s i {s iii o撦0Lr戦0 4hLrq# m ,h k bLa! 4hLr m!.7>`N`` >`B)JJJi i2B0 0`)eei`)@ `t Tn j#wg z#tH"tHLK`)t7t0tk jt nt ut`Ѕ K`Lk t澥L*tL1tL8t j `é vJu0 !uLu0 9OO u0 v LtI`8 1uH0uH`Ivuuuu2vvuuuuuuuv2350?:*84vwt ,~}}ĝOLv viLu8Lv uƤ)iLv u0椥)8Lv v OOxĝOLv vʎvOOLuOOĝOLvʎCvOOL+v u Ƥ yv=OLovƤ yvĦO s `i`)`iLv)` yv `i s` q ~t` ĩ x| v | iťguťO vLv  i !uLvK:%ditntexscfor%xit).4(%8!3#(appy -aster1uad 3earch 2outinecreatedonby"+lossQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRE|3ector,ast"yte9es.o||&oundin3ector"yte||3ectoris3ingle$ouble%ditin(%8||"yte3creen  &|ARRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRD|(%8||!3#).4|ZRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRC3earchexscntfor%xit)nternal!4 !3#))(exadezimal.o9es ont earch dit ead rite alf on %ndof3earchTpresstocontinue3tartsearchingat3ector3earchwithlast"yteeso presstoexitBEwBxBdB0BgA z >` 0z1=x)xw)wx)xwwww;xxAx xxxxhMx(xg zzHzHLK` ?9{{|z mz0 ` Tn k b Ri qLa Iyw`i`i` {νUy ixx {ŦνUyx ix`ΩUy {xx {Ωxx` jt  ut et nt# %ygʈ` v{膻 }{ `t }Ωg q x| |ɛL |Lz~֩g T{ʦ iUyg '{L{ Tnygg !l }mԍ-hՍ1h h'yg mLz+ z0 # zL@~ Tnyg` B VBDwEIJ V`BDEIH V` { t} }g m  L |4] LzJu0ʥĘ ig 濥Юʽg gk½g gk ¦ΝUy '{L|!gƗƗ T{Ɨƿ L|΅`ҎҠҎ`>+ +xIx` o -h1hL\~ b'yg q q 1h-hLz1h-h 1h-h ,hL,~-h1h h}i` i| DŽȄ ~Ƥǭ NTyȄL} ̭-h1h ȆƄн٩1h-h -h1h ~-h1hǥ̅ Ui9*%76(.5z&ksvn,oll}G ƥ i|-h1hǥL\~L}~ >` b &b=ACCr6BvSՆ(XdP  o01''01 `t ut㥤텤'5g j s hjQ ]ԂHӂHHHH i hOH:}\h:)hH ΁ h  O i] @])JJJJHi:dʈhʊ h`}H|H`h ΁ - 1h ΁  !hH ΁ h ΁ L LhH ΁ h ΁ ڠ hԥiO0e Ձ L Ձ i L88 i ڢ]`~]`O i` i `])襤e腤L e oLG o0 j텤 m ݵ0 HHLD` &b ?b b01ㅣ j j䅮 hj j TnLk0 02  o`67(#9K,onlq܂Ԃ&k݁iL肥8 j0 jL 8L80֥0iLi0BBgA'@`4!!8!"8!"9!$#!.$!22!3,!32!83"##"#3"%1")4"-)".%"0,"6#"63"2+#,##,$#,)#,6#-0#08#09$#0$%#$%8$%9$/0%/2).#).8).9)3#*-0*32+),,!2,!8,$!,$8,$9,32./0/2!0(!0(00,!0,02,!2/,2/222!24)2433"#3%#3%$3%)3,/32%34!3483494!84!94/043848!48349!6rZ̊-rZ9̊o r$ $ ' rZ ]rZ]]l]0]rZ]?]] rZ l 3 rZ ZýWZýrZýؽہ{~x{~x{ہ{~x{rx{~xB{u{~xKENKEQNfETKEQN*ErNZEQN$H8`HhHh j&L% BHI V䅠L% L& H$L%Ԇ ؠPIPP` &P 8$L% &L& &L& 'L&H- &8塪墨hL' *'L& 1'L& &ȹP`텠8堨塪 &芨Oȩ-`PP &P$ &&*i0:0i &Ʀ` &B V %NLMȑ` MLN%B VL%S:"(E:'(H W& *(+( & W&h)0I%(&(L &[\ZUVT` `(%(&(`ȱ`` (ȥ`HhƣĢ`ƥĤ``ťƤe8夰L) 5) 1L!`) 0Ξ 0 L1)qe)!BAD LOAD FILELOAD FROM W)FILE?) 0 0#qa)Š))($B 1L!WHAT FILE TO UNLOCK?DUP)(K-SOURCE,DEST DRIVES?TYPE "Y" IF OKpp RBA;*qY!64%8 4he4ext6iewing0rogram0ressfor(%,0"y ,arry2ichardson 3upport3hareware *L+HM) N) M)N)hLbI)I)I)hLbI)L)K)L)@K)K)L)J)PJ)M)N)hLb``Lm,j6)86)7)7)j ,(7) 1%ir*is*+h+s*r* (7) 1%ip*iq*_*#^*q*p* (p*iq*ir*i%s*i (p*iq*iYX (p*i#q*iq*p* (/ (?)W (7) 1%i0i1?)W (I)%L)K)M)N)PJ)+i0+ip*iq*i (+i5+ip*iq*i (s*r* f%?)+iS+i?) (+iN+i?) 1%8r*嬅 (+iP+ip*iq*i (+iU+ip*iq*i (++ f%+) \( 1%YX ((* ()V () ()) (}*|* (=)i*h*k*j*m*l*G)Li/D:*.*/c* ( (?)?))?)?) (?)ҩ (`L/@ &/aͣ/L//{L/8/ //`L/ (?)?) ?)?) (?)ҩ (`|*E-GIVE FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L0 % 0 00 000000L10LF1000000000i0EL10i0 0`1`10Lo1 000LU1 00L1<1} ]&0 ]&L1>1 ]&L11 ]&0 0L108 00110L18 000EL1L11 ]&0L100 0L2 0IL2@ &8)8)I}Lz20 0LU2L@22> ]&00M 0L;2 00800Lk2~2i ]&0LU28)I~L20L2 00800L2~2 ]&8)IL20 0L20L22 ]&8)IL20L2800L22 ]&8)L)38){L)30 0L)308)008) &8)I 8)IL28)IL3 00 000 0f3f30L3E00000000L300I L3000L[3 0 00] (8)IL3`L3`L3 `L3 (c*b*b*id*c*ie*b*i!f*c*ig*d*ie*i (?)3i3i?) (d*ie*i (?)3i3i?) ( 3g*f*)W (?)?)iV)IL4L4?)?)IL4?)V)`; L4444i4iI:Lt54i4iI:Lt5?)?)i4e4i4m?)4i8?)?)?)L54i4iD4i4i:`Lx5ISL5 3ISL5Z)I ISL5V)`L59)`L5( 1%XeYe( ( Z(`tmpL5 5$IL6L6Ģ6 ]&L6L66 ]& $IL66L,6ע6* ]&LB6L;669 ]& $IL[6LQ66O ]&Lg6L`66^ ]&)) ]&i*h* &=)IL6L6 Ơ6 ]&G)L6L6 堢6 ]&5( 1%Xe5Ye55555 5555I(L6`L7 5L87!Exit to DOS... are you sure (Y/N)7 ]& /8)8)IYLU7 5` W& W&A) (F) ( /6)j ,(b \l `!YPL777( 1%YX (E)Ȍ:);)7h*Mt* i*Mu*LB8:)MO)L8;)MP)P);)LB87LB87**** 'c*w*b*v*?)Q)h*Mx* i*My*L8:)MR)Lh8;)MS)S);)L87L87**** 'c*{*b*z*?)T)h*Mt* i*Mu*L8P)IL8;)I'h*Mx* i*My*L9S)IL9;)IL9**** ' &<)L9=)i*k*h*j*h*Mx* i*My*L97L9**** 'c*{*b*z*?)T)Xm:)Yi(;) 1%ee (L > $L9<)I $IL;<)I L;7L$:7IL97L97Xm:)Yi(;) 1%ee7 (h*Mt* i*Mu*L:;)IL:7L:c*w*b*v*?)Q)Xm:)Yi(;) 1%ee (h*Mx* i*My*L;;)IL;7L;c*{*b*z*?)T)Xm:)Yi(;) 1%ee (:);)L= $IL&;<)I L&;L=C)L{<<)7U)Lx;@<)L[;<)[L[;<)i 7`<)Lx;<){Lx;8<) 7D))M<)D))M7Lv)L<>)<))<)<) L<<)i@<)L<<)`L<8<) <)>)IL<<) <)$IL<:)L<<)LL >L7 5`C h_coL> %>?)8>6>6>?)L>(?) 1%>e>eii(?) 1%>e>eii% (?)L+>`Ҁ(elpmenu&orwardpage "ackwardpage3hift&orwardpages3hift "ackwardpages"'otobeginningoffile%'ototheendoffile&$isplaycurrentfilename74ogglewordwrap$4oggledeleteleftspaces!4oggle!4!3#))!3#)))33earchforastring,,oadanewfile#hangescreenintensity3hft#hangescreencolor#hangetextintensity#3avecurrentconfiguration2$iskdirectory>3>%>&3tart end savemark%3#%xitto$/3Ҁ䀈>L&BXi(Yi)) >Xi(Yi"B!B >LoBXi(Yi)) >`LBO)P)u*t*R)S)y*x*`dl+LBBBXmBYi(B 1%ee (BBIBXmBYi(B 1%eeB (`pLOCGCHCIC 5L{C to move, =set C` ]&GCLCLCstartC ]&LCLCendC ]&LC , =exitC ]&ICHC B@ &8)a8)LC8){LC88) 8)8)I=L(DICHC BICICILDICICHC B8)I-L\DICHC B8ICICICILSDICICHC B8)I+LDICHC B8HCHCHCILD'HCICHC B8)I*LDICHC BHCHCI(LDHCICHC B8)ILEICHC B(JC8JCJCXmJCYi(IC 1%ee (KCKCJCLDJCHCL9EJCHCGCL\EHCO)ICP)i*u*h*t*LtEHCR)ICS)i*y*h*x*h* m|*i**(m}*)mh*)mi* ( 78)I 8)ILC 58)ILEICHC B8)`LEt* u*L/F 5LFStart mark is not setE ]&LF 5`x* y*LtF 5LUFEnd mark is not setF@ ]&LaF 5`x*t*y*u*Dt*Mx* u*My*LFS)P))t*Mx* u*My*LGP)MS)LGO)R)LG 5LFStart mark is past end markF ]&LF 5`) ( 5L%G Savefile G ]&) 08)ILLG 8) 5`) 4$a*$`*5$5$9) W&) &9)ILG 5LG$Error opening savefile. Press a keyG ]&LGLH 5LGPlease wait, saving data...G ]&EEQ)w*v* (**** ' &EE &EEEE %LH Z(EE &LH charsH~ ]&?)MT)LHb*Mz* c*M{* ILHh* m|*i**(m}*)mh*)mi* ( 7 W&8)a*$`*$ 5`LI$a*$`*5$5$?)?)V)?)t)*LQI?)*?)V)LYI?)V)?)?)IL,IV)?)?)LI?)8?)?)?)V)I:&?)V)I\?)V)I>?)V)I<?)LyI?)V)9) 5LI Filename:I ]&)V 08)ILJ)V 4 W&)V &9)ILJLJJ ]&9) 8)ILIa*$`*$ W&8)ILqJ?)?)t)?)V)?)?)ILMJ 5 8)LJ W&)V &=)k*j*m*l*i*Ȍh*m*Ȍl***** 'h* m|*i**(m}*c*b*)mh*)mi*?) BG) 7`LK W&LKK:K  &)*?***b* j, (A) (F) $ ( $ ( u5V)L3L$a*$`*5$5$9) W&)V &9)ILKa*$`*$ 5L0La*$`*$i*Ȍh*m*Ȍl***** 'h* m|*i**(m}*c*b*)mh*)mi*?)ȌG) 5 7L6L 5 /8)8)I=LL=)LLG)ILLh*i***** 'h* m|*i**(m}*c*b*)mh*)mi*?) 7l*h*m*i*LLi*m*h*l*8)I-LHMh*i*LHMG)ILHM8h*h*i*i*=)h* m|*i**(m}*ȱ)mh*)mi* ( 78)IBLMh*i*LMG)ILMi*Ȍh*=)h* m|*i**(m}*ȱ)mh*)mi* ( 78)IELYNG)ILYNh*Mj* i*Mk*LYNh*Ml* i*Mm*LYNj* k*L Nm*i*l*h*LNk*i*j*h*h* m|*i**(m}*)mh*)mi* ( 78)IWLN $I $G)ILNk*j*=) Bm*Ȍl*i*Ȍh*h* m|*i**(m}*)mh*)mi* ( 7LN 58)IDLYO$I$G)ILVOk*j*=) Bm*Ȍl*i*Ȍh*h* m|*i**(m}*)mh*)mi* ( 7LYO 58)IALO $I $G)ILOk*j*=) Bm*Ȍl*i*Ȍh*h* m|*i**(m}*)mh*)mi* ( 7LO 58)ILLO I8)I|LPG)ILPi*o*h*n*h*i i*il*Ům*寐L3Pm*i*l*h*LDPh*i h*i*ii*n*Mh* o*Mi*LP=)h* m|*i**(m}*ȱ)mh*)mi* ( 78)I_LbQG)ILbQi*o*h*n*8h* i*PŮ寐8h* i*LPi*Ȍh*L Q8h* h*i*i*n*Mh* o*Mi*LbQ=)h* m|*i**(m}*ȱ)mh*)mi* ( 78)IFLQG)ILQE)LQ 5LQFile =Q ]&)V ]&E)LQ 5E)8)IS 8)IILR=)LRG)ILR8)IILQU)LQU) 5LQ Enter string Q ]&) 0B)ȌD))C)8)IL0R 8)C) 5C)LRh*i***** 'h* m|*i**(m}*c*b*)mh*)mi*?) 7l*h*m*i*LRi*m*h*l*=)IB)I IL:RC)8)I?LR #BIfLR &8)8)I0LS $i $ $LS $ $ (8)I9LJS8 $ $ $L@S $ $ (8)I}LgS8 $ $ $ (8)ILS $i $ $ (8)I<LS8 $ $ $)I $)ILS $i $ $ (8)I>LT $i $ $) $)ILS8 $ $ $ (8)ICL{V$a*$`*5$5$9))t (( 1%XeYe( ( Z(LT VTEXfile:Tv ]&)t 08)ILT)t 4 W& )t &9)ILTLTT ]&9) 8)IL*T8)ILT 5 8)L{V?)?)LU &@)?)LT?)?)L6U &?))?)LU)IVLV)ITLV)IELV)IXLV &@) &@) $ & $ & $ & $ &$ & W&( 1%XeYe( ( Z(LUVTEX config savedU ]&LULxV W&( 1%XeYe( ( Z(LbVNot the VTEX executable file!VC ]&LnV 58)IRLX$a*$`*5$5$( 1%XeYe( ( Z(LVPath - V ]&* 0?)8?)?)?)*LW?)*I ?)LV?)*8)ILpW W&9)*IDLIWȌ9)LZW* &9)ILpWLiWWg ]&9) 8)ILV8)ILXYX)) (H) Z(LW}W ]&LWPath = W ]&* J& &?)) &) J&?)?)I LWL$X!堪X ]&@ &@)a@)L\X@){L\X8@) @)@)ILL}X I@)8)I L}XH) @)ILWH)LX))YX ( 5 8)a*$`*$ W&8)ILXG)ILX LC8)ILXG)ILX LC8)ILYG)ILY E8)ILY 7L6L``K00$6HZl~h 0h!0 0!0 30L0!0H 0H`HI BLV 0Error reading partitionL$3 0Partition not in useL$30S$ 0Sparta or BW-DOS required!L$32& 0Needs version 3.2 or higher!L$3 i? ɛX֤01! 0Too many parameters ...L$3 ɛL$3/ȱ CLwR֩LtLY2 0erhard_puetz@w2.maus.de (c) 11/01/97Usage: [Dn:]BB_PLD [/2B1] [/C|R]2B1 would set partition 2B to D1:7E3 would set disk dr12ive 5 to D3:C = ColdstartR = Reload configurationL$3 0Wrong partition / drive no.L$318 ȱ AQ8Aeׅȱ 819֨0ԩօեp>эS֩H ,ةHѐLF0,VLg0ѹV֢ёԈ0#Ѧԩ ֩h ֥) L42 213 2L0ѩyHiY֪h֍֩`0l 0S Black Box Partition Loader V3.1 ------------------------------- BBPLD.COM by Erhard Puetz, (c) 12/01/97This program runs with Sparta DOS 3.2D or higher and BW-DOS. It uses thevectors provided at COMTAB and LBUF for command line input.The syntax is: BBPLD [/parm1 ... /parm9] [/C|R]Parm (parameter) 1 to 9 may be any BB partition number (use those numbersfrom the BB partition list -e.g. 4B-) followed by the destination drivenumber. 4B1 will activate partition 4B as drive 1. In addition, you caninstall disk drives as well. Numbers to set up a drive are 7A to 7I whichmean drive 1 to 9. Every parameter in the command line needs the slashimmediately before it.Use "C" to perform a coldstart (which will boot the system with the newconfiguration) or "R" to reboot the system with the configuration stored onthe hard drive.This utility provides the means to do the Black Box drive configuration viamanual or batch-file-processed command line input without the need to gointo the BB menu. Hence you can setup the system in the boot process, evenin case you boot from disk.Example:--------Set up a bootable disk with BW-DOS. Copy BBPLD.COM to this disk. Copyfollowing batch file to this disk:(STARTUP.BAT)BBPLD /1C1 /3A2 /7A3 /7B4 /CThis will result in rebooting the system with partition 1C as drive 1,partition 3A as drive 2, disk drive 1 as drive 3 and disk drive 2 as drive4.You may think that the syntax is a bit weird. But a different utility toset up the BB already exists. It did not properly use COMTAB and hence wascompatible only with a single Sparta DOS version. Neither did it allow toset up the BB for disk drives. That is why I wrote a new one. I kept theold syntax for those who are familiar with the old utility.This program may be freely distributed provided it is as well unchanged ascomplete. The complete set consists of following files:BBPLD.COM the actual version of the utilityBBPLD.SRC the actual Mac65 listed source codeBBPLD.DOC this text filePlease report any bugs or suggestions for improvements to:- my above e-mail address,- user Atreju in the 8-Bit-Atari net called IAN/USF (...) or- via snail mail --------------------| Erhard Puetz || Albertstrasse 13 || D-42897 Remscheid || GERMANY | --------------------EOF1000 .TAB 17,23,401010 .OPT NO EJECT1020 .TITLE "Partition loader for the BLACK BOX"1030 .SET 0,4 ;(1-4) ,0 .BYTE und .SBYTE listing format1040 .SET 1,0 ;(1-31) ,0 left margin1050 .SET 2,130 ;(40-132) ,80 maximum line length1060 .SET 3,12 ;(0-255) ,12 form feed character for ".PAGE"1070 .SET 4,88 ;(28-255) ,66 lines per page1080 .SET 5,0 ;(0-255) ,0 spaces between colon and text1090 .SET 6,0 ;($00 00-$FFFF),0 Offset:PC+Offset1100 ;1110 *********************************************************************1120 * *1130 * VERSION 3.1 *1140 * *1150 * *1160 * This program is designed for command line input. Hence it *1170 * runs under BW-DOS and Sparta DOS. It will set a Black Box entry * 1180 * to a certain partition or drive. *1190 * *1200 * Syntax: *1210 * [Dn:]BB_PLD [/2B1 /1A3] [/C|R] *1220 * *1230 * 2B1: loads partition 2B at D1: *1240 * 7D3: activates drive 4 at D3: *1250 * C|R: C= Coldstart R= Reload Config *1260 * *1270 ****************** ***************************************************1280 ;1290 ;System equates1300 ;1310 SLASH = '/1320 EOL = 1551330 SPDVS = $02481340 PDVS = $D1FF1350 WARMSV = $E4741360 COLDSV = $E4771370 ;1380 ;Zero page equates1390 ;1400 DOSVEC = $0A 1410 FR0 = $D41420 ZDRVL = FR0 use fp register FR0 for drive list pointer1430 POINTER = FR0+2 use fp register FR0 to hold actual position in LBUF1440 PART_NO = FR0+3 use fp register FR0 to hold calculated partition no.1450 ;1460 ;CIO and IOC B equates1470 ;1480 ICCOM = $03421490 ICSTAT = $03431500 ICBAL = $03441510 ICBAH = $03451520 ICBLL = $03481530 ICBLH = $03491540 ICAUX1 = $034A1550 ICAUX2 = $034B1560 CIOV = $E4561570 ;1580 OPEN = $031590 INPUT = $051600 BGET = $071610 PRINT = $091620 BPUT = $0B1630 CLOSE = $0C1640 STAT = $0D1650 ;1660 ; SPARTA DOS EQUATES1670 ;1680 COMTAB = $0A1690 BUFOFF = 101700 LBUF = 631710 DFLAG = $07001720 DVER = $07011730 ;1740 ; Black Box equates1750 ;1760 HDCODEB = $04 Page $04 - holds the hard disk driver code1770 CFG_PAGE = $F5 Page $F5 - holds the main system configuration1780 MISC_PAGE = $FE Page $FE - holds miscellaneous working variables1790 DUMMY_PAGE = $FF Page $FF - holds nothing (just to be save)1800 RA MPAGE = $D1BC R/W register to store desired page of BB RAM1810 BB_RAM = $D600 banked BB RAM goes from $D600 to $D6FF1820 BB_PIDX = $D653 Page $FE - partition index1830 BB_PDBF = $D656 Page $FE - partition data buffer (18 bytes)1840 BB_PSUM = $D6FE !Page $F5 - configuration check number1850 BB_RDPV = $D82C Read partition vector. Switch on BB ROM first!1860 ;1870 *= $30001880 ;1890 FPSAV .WORD $001900 .WORD $001910 .WORD $001920 ;1930 DRIVE_ADR .BYTE $00,$12,$24,$36,$48,$5A,$6C!,$7E,$901940 ;1950 ;1960 PRINTMSG PLA Pull return-adress from stack and store it1970 STA P3+11980 PLA 1990 STA P3+22000 P2 INC P3+1 Increment adress by one for each char2010 BNE P32020 INC P3+22030 P3 LDA $FFFF Ad!ress from stack is stored here2040 BEQ P4 EOL is marked by $002050 JSR OUTCHAR2060 JMP P2 Do loop until EOL2070 ;2080 P4 LDA P3+2 Adress now points to program after text2090 PHA 2100 LDA P3+12110 PHA 2120 ! RTS 2130 ;2140 OUTCHAR TAY Buffer character in Y2150 LDA #0 BPUT char through IOCB #02160 TAX 2170 STA ICBLL,X2180 STA ICBLH,X2190 LDA #BPUT2200 STA ICCOM,X2210 TYA 2220 JMP CIOV2230 ;2240 RD_ERR J!SR PRINTMSG2250 .BYTE $9B,"Error reading partition",$9B,$9B,$002260 JMP EXIT2270 ;2280 NU_ERR JSR PRINTMSG2290 .BYTE $9B,"Partition not in use",$9B,$9B,$002300 JMP EXIT2310 ;2320 START LDY #5 Save fp register contents2330 :30! LDA FR0,Y2340 STA FPSAV,Y2350 DEY 2360 BPL :302370 ;2380 LDA DFLAG2390 CMP #'S Sparta Dos im Speicher?2400 BEQ :332410 JSR PRINTMSG2420 .BYTE $9B,"Sparta or BW-DOS required!",$9B,$9B,$002430 JMP EXIT24!40 ;2450 :33 LDA DVER2460 CMP #$32 Version 3.2?2470 BCS :362480 JSR PRINTMSG2490 .BYTE $9B,"Needs version 3.2 or higher!",$9B,$9B,$002500 JMP EXIT2510 ;2520 :36 LDY #BUFOFF Pointer = PEEK(DPEEK($0A)+BUFOFF)+632530 LDA! (COMTAB),Y2540 CLC 2550 ADC #LBUF2560 TAY 2570 LDA (COMTAB),Y No parameters entered on command line?2580 CMP #EOL Support usage info2590 BEQ INFO2600 DEY 2610 STY POINTER Y-register is now actual offset into c!ommand line2620 ;2630 SEARCH INC POINTER2640 LDY POINTER2650 BPL :37 COMTAB + 63 (offset) + 64 (LBUF length)2660 JSR PRINTMSG2670 .BYTE $9B,"Too many parameters ...",$9B,$9B,$002680 JMP EXIT2690 ;2700 :37 LDA (COMTAB),Y! 2710 CMP #EOL end of DOS input line?2720 BNE :382730 JMP EXIT2740 ;2750 :38 CMP #'/ parm found?2760 BNE SEARCH2770 INY 2780 LDA (COMTAB),Y2790 CMP #'C No coldstart2800 BNE :392810 JMP COLDSV Do c! oldstart & reboot from HDD2820 ;2830 :39 CMP #'R Reload BB configuration?2840 BNE :422850 LDA #CFG_PAGE Select page in BB Ram2860 STA RAMPAGE2870 DEC BB_PSUM Store incorrect checksum2880 LDA #DUMMY_PAGE2890 STA RAMPAG! E2900 JMP WARMSV Warmstart reloads configuration2910 ;2920 :42 JMP LD_PART2930 ;2940 INFO JSR PRINTMSG2950 .BYTE $9B2960 .BYTE "",$9B2970 .BYTE "erhard_puetz@w2.maus.de (c) 11/01/97",$9B,$9B! 2980 .BYTE "Usage: [Dn:]BB_PLD [/2B1] [/C|R]",$9B,$9B2990 .BYTE "2B1 would set partition 2B to D1:",$9B3000 .BYTE "7E3 would set disk drive 5 to D3:",$9B3010 .BYTE "C = Coldstart",$9B3020 .BYTE "R = Reload configuration",$9B! ,$003030 JMP EXIT3040 ;3050 BAD_NO JSR PRINTMSG3060 .BYTE $9B,"Wrong partition / drive no.",$9B,$9B,$003070 JMP EXIT3080 ;3090 LD_PART CMP #'1 Is partition number from 1 to 6?3100 BCC BAD_NO3110 CMP #'8 No. 7 is to insta!ll a floppy3120 BCS BAD_NO3130 ASL A 1...7 * 16 = $10...$703140 ASL A3150 ASL A3160 ASL A3170 STA PART_NO3180 INY 3190 LDA (COMTAB),Y3200 CMP #'A3210 BCC BAD_NO3220 CMP #'Q3230 BCS BAD_NO!3240 SEC A...O => $00...$0F3250 SBC #653260 CLC 3270 ADC PART_NO3280 STA PART_NO Now holds value for BB partition number3290 INY 3300 LDA (COMTAB),Y3310 SEC 3320 SBC #'13330 CMP #'9 D1...9: =!> 0...83340 BCS BAD_NO3350 STY POINTER3360 TAY 3370 LDA DRIVE_ADR,Y3380 STA ZDRVL (ZDRVL) holds 16-bit adress3390 LDA #$D63400 STA ZDRVL+13410 ;3420 ;**** assign BB drive entry to partition or disk drive3430 ;344!0 LDA PART_NO Get calculated partition number3450 CMP #$70 Do we have to install a floppy?3460 BCS INST_FDD3470 ;3480 LDX #MISC_PAGE First, we select BB's page of RAM3490 STX RAMPAGE3500 STA BB_PIDX Store partition index!3510 LDA #HDCODEB Program to control HDD is in BB ROM bank 43520 STA SPDVS3530 STA PDVS3540 JSR BB_RDPV3550 LDA #$00 Restore Floating Point Maths ROM3560 STA SPDVS3570 STA PDVS3580 BCC :453590 JMP RD_ERR !Error reading partition3600 ;3610 :45 BIT BB_PDBF3620 BPL :483630 JMP NU_ERR Partition not in use3640 ;3650 :48 LDY #17 Copy 18 bytes entry3660 :51 LDX #MISC_PAGE3670 STX RAMPAGE3680 LDA BB_PDBF,Y from partition data buffer!3690 LDX #CFG_PAGE3700 STX RAMPAGE3710 STA (ZDRVL),Y to drive configuration3720 DEY 3730 BPL :513740 BMI :573750 ;3760 INST_FDD LDA #CFG_PAGE3770 STA RAMPAGE3780 LDX ZDRVL Get lo-byte of address3790 LDA #!$80 Bit 7=1 means floppy drive3800 STA $D60A,X3810 LDA #$68 Bit 5=1 means UltraSpeed, Bit 4=1 means DD (for HD only)3820 STA $D60B,X3830 LDA PART_NO $7A to $7O may be a disk drive3840 AND #$0F get desired number of driv!e3850 CMP #$09 BB disk drives count from 1 to 9 only3860 BCC :543870 JMP BAD_NO3880 ;3890 :54 ASL A3900 ASL A3910 ASL A3920 ASL A3930 STA $D611,X Bits 7-4 are the floppy number (-1)3940 ;3950 :57 JSR SET_CHKSUM !Calculate new config check number3960 JMP SEARCH Loop until all parameters have been executed3970 ;3980 .LOCAL 3990 SET_CHKSUM LDA #CFG_PAGE4000 STA RAMPAGE4010 LDA #04020 TAX 4030 TAY 4040 CLC 4050 :01 ADC BB_RAM,!Y4060 PHA 4070 TXA 4080 ADC #$0E4090 EOR BB_RAM,Y4100 TAX 4110 PLA 4120 INY 4130 CPY #$FE4140 BCC :014150 STX BB_PSUM4160 STA BB_PSUM+14170 LDA #DUMMY_PAGE4180 STA RAMPAGE4190 RTS 42!00 ;4210 .LOCAL 4220 EXIT LDY #5 restore fp register value(s)4230 :01 LDA FPSAV,Y4240 STA FR0,Y4250 DEY 4260 BPL :014270 JMP (DOSVEC)4280 ;4290 *= $02E04300 .WORD START U n D 0B OB nL ALl-_[ AB8`:0``7ȎҌ eM` ?i(j`&e&` N $ B խ)?ya{I H%ҭ ) eҎh`OVȩ O .VߩV`D ޅ V5 nɈ*HH  N & / lhh`HD  B V0ҩ҈h`HD1  hHJBD m DHIm EK ?h B)%`C`E FC`DD`B0 OOBLnBB` ޅl mEmF驀I``` 0XY V0 =>` i i0% i i` L,C0z 0ߩEF%DE8HI ?DЯHEIF E^-_IᩀC BЊI N BLQ 0QDL Bi1 DE8HI ?0 D O nL B I 08**(%i 0 & / 05 ǂ i0 0ԥ L   `HH c NE FiF  O NDiʆ B N%,C B N O hh`H /hJJJJ)`i(e`XY BLD  N#0}#) B` N`   7τ`H %  7h`ۂ .9GI^c+*~ .FMGVBGNFFMMMMMMMGFMMMMMMMGVBVBVBV*"7sBVBVBVBV.#opyBV|||||||BVBGNNNNNNNFGNNNNNNNFBVBVBVBFMMMGVBNNNNVverBNNNNVVBGNNNFHNNMMNNJMMGFYY%!NNNUUMMMIUUUOoNoYKLBMVBԀVBVE1:P1:C1:D1:IZ dT >l  D!ϩҩӭԍՍ8ԅХՅѠ8fϥd鉐`$pa0%ґ 1 %"@`) ӐA) :҈逐e҈鉰Цѐ$0ֆ8֑ 1L)ґ 1L`yM`lj;k+*d$02ppppB0pB60A002%3334!244/3!6%2/-/.$)3+3!6).'/32/- "!3)#2/- 0,%!3%7!)40016 00 0 1^ 00 0 1ҍԍԭӍ22 ө`2)$ӭ2)өPpX2ӭ2)ө𩠅@2өҍԢ 10FH@ID`E 10+ 1 10!H ID@E 10 1Lt 1LtD2E 1` D2E 1`JB V` B V` B V)%`  `D1:OS.ROMD1:BASIC.ROM0(*05L0 550 y5IMG2DISK V3 555T5 20^ @2 c25 2 W1SECTOR: OF 5 *45 *455 20 1RU #1OPERATION COMPLETED 35 1`5T U5 *45 *4` V0 `L0 Y0`H W1ERROR - hi5H$ 1h *4-' ii4i 1 #1OPERATION ABORTEDL05hiDhiEH B V5H}DEiHH`5hiDhiEрH B V5H}DEiHH`H5DEhH B 0`5 BH 0`558 5i 55i -(515)W 00(5505mm  05Р`5'B 05L5M5N5`5 .5.55)555 `5` #1NOT A CORRECT IMAGEFILEL 1 5JKBCD4E 0`5D8E5HIB-) 0`5D8EHIB 0`5 B 0`15)S@  Y`S2) #1NEED SPARTADOS 3.2 OR COMPATIBLEhhL08 0 0 i0 i0 0$ ɛ- W1Syntax: IMG2DISK [Dn:]filename Dn:hhL0! C4-*ɛ 0" 5C4` W1Cant extract to same disk !hhL0HJJJJ 54h)  0i6 1`D1: BREAK ABORT NO SUCH DEVICE DEVICE TIMEOUT DEVICE NAK SERIAL FRAME DATA OVERRUN DATA CHECKSUM DEVICE DONE DR-+IVE NUMBER FILENAME COMMAND INVALIDFILE NOT FOUND HS8U W1(c) 1996 by mscS8UV 1h 5RUL#1HJJJJJi0 1. 1(h)5iP *4` "%(037@CG-,0,!Hallo !This is an image extractor for Sparta-DOS and compatibles.It also can extract to the RAM-Disk (if installed).Usage:D1:IMG2DISK D1:>SOURCEP>FILE.ATR D2:note:- the source disk and the destination disk must be different- you have to check t1.hat the destination disk is large enough- it will still only extract images with 128 bytes / sector (single and enhanced density disks)- size must be exact 133.136/92.176 bytes for atr- size must be exact 133.120/92.160 bytes for xfdEnjoy itMat1/t0 Drive Tests!(08/16/89) Done by: Mark D. ElliottInnovative Concepts (I.C.) Contrary to rumors I heard on CompuServe, about the XF551 (and XF35 Kit), as being only half as fast as the Happy or Doubler equipped 1050, I decided to do a little 51bench testing myself, just to get an idea of just "how fast" these drives really are. Since I just "happened" to have all the drives below, just laying around, here's what I found: Test#1 Test#2 Test#3 Disk Drive (Re52ad) (Write) (Format)----------------- ------ ------- --------Atari 1050 (SD) 88 100 35 Atari 1050 (ED) 84 95 36 Doubler 1050 (SD) 50 64 22* 53Doubler 1050 (ED) 47 58 22* Doubler 1050 (DD) 37 44 22* Happy 1050 (SD) 42(50) 83(63) 23(22*) Happy 1050 (ED) 39(47) 73(58) 25(22*) Happy 1050 (DD) 35(5436) 54(43) 25(22*) Atari XF551 (SD) 70 75 26 Atari XF551 (ED) 80 85 26 Atari XF551 (DD) 45 50 50* Atari XF551 (DSDD) 45 50 50* 55 XF35-XF551 (SD) 85 90 67 XF35-XF551 (ED) 80 85 52 XF35-XF551 (DD) 45 50 67* XF35-XF551 (DSDD) 45 50 130* XF35-XF551 (DSQD) 4565 50 130* * = High Speed Skew was available and used for that set of tests.Density: SD = 90K, ED = 127K, DD = 180K, DSDD = 360K, and DSQD = 720K. Notes: All times above are given in seconds, and are accurate to within 1 second. Al57l disks used were foramatted in the SpartaDOS mode. The Happy 1050 cannot format disks in the U.S Sector Skew (Standard format time given). However, with the help of our Happy Doubler program, the Happy 1050 can be be programmed to fully emulate the U.S58. Doubler, including formatting in the U.S. Skew. The times for the Happy Doubler programmed 1050, are shown in parenthesis. For the normal read/write tests on the Happy 1050, a disk formatted under the Happy Doubler program was used. Skewing was used (59where applicable), to show the fastest times, under these test conditions. Test Equipment Used: A 576K-130XE with SpartaDOS X (4.20), the Happy Doubler program, standard 1050, Doubler 1050, Happy 1050, XF551, and XF35-XF551 drives. Test # 1: Read 5:a file that is 85,750 bytes, copied from the specific drive to a SpartaDOS X RAMdisk. Test # 2: Write a file that is 85,750 bytes, copied from the SpartaDOS X RAMdisk to the specified drive. Test # 3: Format a disk, in the specified density. 5;Obviously, the read and write times, for the XF551 or XF35'ed drive is NOT half thes speed of the Happy or Doubler! In fact, they are pretty darn close! (Don't want to mention any names, (like Bob Puff, or Tim Patrick! - ). I would have t5er have to worry about finding a disk sleeve. So, what do all these tests mean? Obviously, this is by NO MEANS as complete as possible! Other factors, such as; DOS used and the size of it'scopy buffer, sector copying, copying small files, and your ot5?her peripherals, will have an effect on the outcomes. However, these should at least give you an idea, of just how fast these drives are (especially when compared to a standard 1050, or even an old 810 drive, which is so sloooooow!) Other things to c5@onsider - Up until this year, the price of the 5.25" blank disks were much cheaper to buy than the newer 3.5" disks. Until this year, the 3.5" disks cost about $1 each. Currently, you can usually find decent bulk 5.25" disks, for about 40 cents or less 5Aeach. However, since more and more IBMs nowadays, are sold with the 3.5" drives (in addition to the Atari ST, Amiga, and Macintosh), the price has come down to reasonable levels. Careful shopping can get you the 3.5" disks, for as little as 70 cents (or5B less) each. As far as using this guide to purchase a new drive or add-on for your system, these are my personal recommendations: 1) For a casual user, a U.S. Doubler 1050 is fine. 2) For routine disk maintenance and sector copying, 2 - U.S. Doubl5Cer 1050s should fill the bill. 3) For a person who wants to back-up thier commercial software, a Happy 1050 will work. Our Happy Doubler is also highly recommended. 4) For a person that does alot of disk copies, a Happy 1050 (as D1:), and a U.S. D5Doubler 1050 will work great. 5) For someone that wants the ULTIMATE in disk copying, then 3 or 4 Happy 1050s cannot be beat!6) For someone that wants a low-cost add-on drive, that offers alot of storage, the XF551 is a great buy! 7) For someone 5Ethat wants the ULTIMATE in storage capability per drive, or for backing up a hard drive, then a XF35-XF551 will do well. 8) For someone that runs a BBS, a couple of XF35-XF551s should do just fine. 9) For a power-user that wants the most storage a5Fnd the fastest read/write times, then you should consider a hard drive, as well. Notes: The XF551 or XF35-XF551 is not recommended to be used as D1: with commercial software, especially protected ones. (because they spin at 300 RPM compared to 288 fo5Gr most other drives, among other things) Costs per Drive---------------Atari 1050 - $179.95 (hard to find these days!)U.S. Doubler 1050 - $39.95 + $179.95 for the 1050 = $219.90Happy 1050 - $149.95 + $179.95 = $329.90 (Happy board is no longer5H made!)Atari XF551 - $199.95 (great buy!)XF35-XF551 - $34.95 + $100 (3.5" w/cage) + $179.95 = $334.90 Note: The above are the suggested retail prices. Carefull shopping can get you an even better deal! So, upon closer look, the XF35-XF551 is not re5Ially as expensive (compared to the others), as one might think! And, it offers the MOST storage per dollar! Hmmmm, I started out just testing the speeds of the drives, and here I am, writing a review of them! It may seem I am a little biased towards 5Jour products, however, I am only human! Oh-well..... Features/Conclusions--------------------Atari 1050 - Single or Enhanced Density. Maximum storage = 127K. Well-built and very dependable. Uses industry standard ICs on it's circuit board5K (except for ROM), meaning replacement parts are easy to find. However, the drive mechanism is NOT a typical IBM type part, and can only be found at Atari-type stores. The 1050 is getting harder and harder to find these days! Atari 1050 w/U.S. Double5Lr - Single, Enhanced, or Double Density. Capable of formatting disks in U.S. Sector Skew, for added speed. Maximum storage = 180K. Easy to install. Excellent capabilities, at a low price. Atari 1050 w/Happy - Single, Enhanced, or Double Density. Capa5Mble of backing up commercially protected disks. Maximum storage = 180K. Easy to install. Getting harder and harder to find! Happy Computers stopped making them awhile back, and the ones they do have, were raised in price, back to $149.95! Atari XF5515N - Single, Enhanced, Double Density, or Double Sided Double Density. Capable of formatting disks in a special skew (similar to the U.S. Doubler). Maximum storage = 360K. Very easy to service (if required), since it's circuit board is small an easy to fo5Ollow. Uses industry standard ICs (except ROM). Also uses an industry standard drive mechanism (finally!). Atari XF551 w/XF35 Kit - Single, Enhanced, Double, Double Sided Double Density, or Double Sided Quad Density. Capable of formatting disks in the5P skew also. Maximum storage = 720K. Uses a industry standard 3.5" drive mechanism. Copyrights: Atari, 410, XM301, 130XE, 1050, and XF551 are trademarks of Atari Corp. ICD, P:R Connection, U.S. Doubler, and the U.S. Sector Skew are trademarks of IC5QD Inc. Happy is a trademark of Happy Computers. Super Archiver, and Bob Puff , are trademarks of Computer Software Services (C.S.S.). I.C., Happy Doubler, Immitator Controller, IC1050 Controller, SIO Port Box, SIO Switch Box, and XF35 Kit are trad5Remarks of Innovative Concepts. While I got your attention, I might as well plug some of products that are related to this article: XF35 Kit - Contains Upgrade ROM and adapting cables, for converting the Atari XF551 to the newer 3.5" - 720K format.5S (3.5" drive and mounting cage optional). Supports high speed skew, and works in 720K format with; MYDOS, SpartaDOS, and the SpartaDOS X cartridge. Also works with all other DOSes in lesser formats. Some soldering and desoldering required. Sale Price (u5Tntil 8/31/89): $29.95 (+ S&H). Happy Doubler - Allows you to program your Happy 1050 drives to fully emulate ICD's U.S. Doubler, including formatting disks in the U.S. sector skew (which is not normally possible!). Also allows you to re-program your 5Udrive numbers up to D8:, without touching the switches in back! This way, up to 8 - Happy 1050s can be used at once! (4 - programmed as Doublers 5-8 and another 4 - as normal). Completely software based, no installation required! Price: $19.95 (+ S&H).5V IC1050 Controller - Write protect module for the Atari 1050 drive (inluding those equipped with the U.S. Doubler, Happy clone, or Super Archiver). No more notching disks! Has a 3 - position switch for write protect mode; 1) As normal, 2) Do not write5W, and 3) Will write to any disk. Also has a two color LED, for monitoring the write protect status. Easy to install, no soldering required. Price: $29.95 (+ S&H). Immitator Controller - For Genuine Happy 1050 drives; All the features of our IC1050 Co5Xntroller, plus; An extra 2 position switch, for fast/slow modes. Price: $39.95 (+ S&H). SIO Port Box - Solves the problem of "dead end" peripherals, like the; 410 Recorder, XM301, and most printer interfaces. Also solves weak signal problems, by allo5Ywing you to distribute your system better. Easy to use, just plug-in! No power required. Price: $34.95 SIO Switch Box - Allows you to switch between either; two computers and one peripheral set-up, OR one computer between two peripheral setups (examp5Zle: two drives set to D1:). Also solves the problem of using two devices that draw thier power from the computer, like the; XM301, P:R Connection, and most printer interfaces. Easy to use, just plug-in! No power required. price: $49.95 (+ S&H).For mo5[re information on the XF35 Kit, please see the article by Matthew Ratcliff, in the September 1989 issue of Antic. Or, you can call or write (we have many other products):Innovative Concepts (I.C.)31172 Shawn DriveWarren, MI 48093 USAPhone: (313) 295\3-0730CompuServe: 76004,1764Final Note: This article on drives first appeared in the 8-bit section of CompuServe. It may be freely distributed to BBS's or other informational services, as long as it remains intact and unchanged.4As you are aware, ships have long been characterized as being female (e.g. "Steady as she goes", or "She's listing to starboard, Captain! "). Recenty, a group of computer scientist (all males) announced that computers should also be referred to as bei9^ng female. Their reasons for drawing this conclusion follow:5 reasons to believe computers are female: No one but the Creator understands their internal logic The native language they use to communicate with other computers is incomprehensible 9_to everyone else. The message "Bad command or file name" is about as informative as, "If you don't know why I'm mad at you, then I'm certainly not going to tell you". Even your smallest mistakes are stored in long-term memory for later retrieval.9` As soon as you make a commitment to one, you find yourself spending half your paycheck on accessories for it.However, another group of computer scientist (all female) think that computers should be referred to as if they were male.Their reasons f9aollow:5 reasons to believe computers are male: They have a lot of data, but are still clueless. They are supposed to help you solve problems, but half the time they are the problem. As soon as you commit to one you realize that, if you had wa9bited a little longer, you could have obtained a better model. In order to get their attention, you have to turn them on. Big power surges knock them out for the rest of the night.8From: CONRADUS@plearn.edu.pl (KMK)Newsgroups: comp.sys.atari.8bitSubject: A message to OS/DOSdevelopersDate: 28 Dec 1995 15:20:18 -0500A message to Operating Systems/Disk Operating Systems developers.Dear developer!We are pleased to pr=desent you a preliminary document about ourIDE hard drive interface for Atari 130XE (and compatible)computers. As existing Disk Operating Systems aren't able to useall the capabilities we provided, we are kindly asking you toupgrade t=ehe latest versions of your work and implement thespecific IDE features, those have been described below. The fourgeneral problems we found trying to use any of the existingDOSes, are as follows:1) All DOSes we tested, i.e. SpartaDOS =f3.2g, SpartaDOS X 4.20,MyDOS 4.53 and BWDOS 1.10, when they have been executed, seem toforce the DUNIT (0301) value to 01. Such action is notnecessary, because the DUNIT is already set by the XL OS's RESETroutines, and is obnoxious, =gbecause, as a result, the DOS isunable to read its config files, when the system has been startedfrom a partition other, than D1:.2) All the DOSes we tested are unable to read/write 512-bytesectors, so they are unable to work in the IDE nat=qbDOS SYSbDUP SYSb71AUTORUN SYSbhSUPERPCKCOMb)HAPPYMQPCOMb6VTEX COMbBBPLD31 COMb BBPLD31 DOCb'BBPLD31 SRCb NCOPY COMb#ROMSAVERCOMb&IMG2DISKCOMb-IMG2DISKTXTb-0DRIVETSTTXTb]MALE TXTbccIDE_INTFTXTb SPEAKER TXTbXEPIBM TXTb.XE_BANKSTXTbFREEZER TXT6SNAPHD ive mode (seebelow). The interface provides the emulation mode to handle 256-byte sector operations, but, as a result, the drive is unable toreach its full speed. Especially any writes to the hard drive arevery slow. The implementation of the 5=r12 byte allocation unitsmay also be profitable in the future, if we decide to add supportfor DMA transfers.3) All the DOSes we tested are unable to handle big partitions(i.e. over 16 MB limit). The implementation of the 512 byteallocation=s units may solve this problem in a part (the limitwould be 32 MB per partition then), but, if you decide toimplement big partitions handling, we advise you to considerabout using the 23-bit sector addressing in conjuntion with the=tlarger allocation units (see below for details).4) All the DOSes we tested are unable to handle disks D10-D15.Operating Systems developers please note, that there is nonecessity to set the DUNIT value in the OS BOOT routine, as theDUNIT i=us already set by previous RESET routines.We hope, that you will take these problems into consideration,decide to support the features described below and don't hesitateto send us your comments, if any. =v Regards Konrad Kokoszkiewicz E-mail: conradus@plearn.edu.pl S-mail: ul. Tomaszowska 95/37 =w PL-26-420 Nowe Miasto nad Pilica POLAND *** IDE Hard Drive Interface v.1.0 - a preliminary document Copyright (c) 1995-1996 by Jacek Zuk and Konrad Kok=xoszkiewicz Made in Poland ***The IDE package contains:1) the IDE interface2) a power supply3) a cable to connect the interface with a drive4) utilities disk with MyDOS 4.535) this documen=ytIndex rerumI. IntroductionII. Capabilities overviewIII. How to make it work (step by step)IV. KeystrokesV. Write-protection featureVI. Executing non-DOS softwareVII. Dual drive configurationVIII. =z Software development informationIX. Memory usageX. Error messagesI. IntroductionSeven years ago, when I first heard about hard drives for theAtari 8-bit, a 20 MB SCSI device's price was over 600 USD and, ofcourse, was out of ={reach for people in a country on the wrongside of the Iron Courtain, where wages were about 20 USD permonth. The 1050 floppy drive was a dream - what would I say aboutthe hard one...?Over the next six years many things have been changed.=| Amongothers, the Iron Courtain got rusty, we have started earning moremoney, got some new Atari computers and, simultaneously, theprices of hard drives have gone down dramatically... and one dayI realised, that it is possible to obtain an I=}DE hard drive forthe beloved 8-bit Atari with very reasonable price! But therestill was no documentation and the only one, that I knew, was atheory about writing 'new device' handlers for the XL operatingsystem...The most important thi=~ng on my "way to the hard drive" hashappened, when a friend of mine has found a "Technical ReferenceManual" for a Caviar WDAC2200. I read this paper very carefully,then went to Jack - a person, who looks to know everything aboutwires and othe=r strange gadgets, those have been fixed inside andseem to make it work. About a week later Jack said, that therewas no objections (contraindications, as we used to say) to buildan interface - so the project started.The last year we spent thinki=ng, talking, building the hardware(Jack), writing the software (me), testing, fixing bugs, catchingincompatibilities, and learning, learning, learning. We havediscovered a lot of strange things about Ataris and IDE harddrives (some of th=em have been mentioned below). Finally, we arepleased to present you our results - we tried to make them asprofessional, as it have been allowed by the limited (2k) ROMspace, not very "elastic" operating system and not very greatprocess=ing power of the Atari 8-bit computer. I hope you willagree, that we did a good job.II. Capabilities overviewThe Interface's internal software provides two modes: native andemulation. The native mode uses a 512 byte physical block as alog=ical data sector, the emulation mode uses the physical blockto store two 256 byte logical data sectors. ALL existing DOSesrequire the emulation mode to work properly.Maximum drive capacity: 8388607 physical blocks on each device.Maximum number= of partitions: 15Maximum capacity of a partition: 8388607 logical sectorsLogical sector length: 256 or 512 bytes (larger blocks will beimplemented in the future)Average speed: 58 kilobytes per second (native mode, R/W) 32 kilobyte=s per second (emulation mode, reading) 7 kilobytes per second (emulation mode, writing)Booting from any partitionWrite protection capability8 jumpers to set the device number for the operating systemNote, that ALL existing DOSes limi=t the partition size to 16 MB.III. How to make it work (step by step)1) Make sure, that the power on your computer is turned off.2) Insert the interface to the connector at the back side of thecomputer.3) Connect the interface and a 3,5" IDE d=rive with the cable.Caution: You may damage the drive if the interface cable is notconnected properly. Make sure, that pin 1 on the cable (red line)is connected to pin 1 on the drive and on the interface (reddot).4) Connect the power suppl=y and the drive.5) Insert the utilities disk into drive 1.6) Turn on the power on the hard drive and on the computerholding down the SHIFT key. Make sure, if the drive is spinningup properly. If not, turn the power off, check the connect=ionsand try again. Note, that some very old drives need A LOT ofpower, so our power supply may not be sufficient.7) Be patient - the Interface waits some seconds when the driveis spinning up.8) When the MyDOS is ready to use, execute the FDI=SK.COM file.9) A menu should appear. If you see a message like "Device notfound" instead, please turn the power off, check the connectionbetween the interface and the computer, then try again. Check thejumper position.10) Select the "Surface t=est" from the main menu. Your drive willbe tested for bad sectors. If the test finishes without anymessage, the drive is in good condition - no bad sectors havebeen found.11) Select the "Partitioning" from the main menu. "Total" willin=dicate you total amount of 512 byte sectors, that have beenfound on the drive, "Remain" - total amount of sectors, thathaven't been allocated yet, "Specs" will show a number ofcylinders, heads and sectors per track.12) Use arrows to= select a drive you want to be a partition.13) Press the RETURN key and type in a number of sectors, thatyou want to be allocated to the partition. Note, that it is anumber of real, 512 byte sectors, so if you specify 32767, theDOS partiti=on will have 65534 logical, 256-byte sectors.14) Press RETURN to confirm the number of sectors or press ESCkey to cancel.15) If you want to have more partitions, repeat the last threesteps as many as you want.16) Press the TAB key and select =a partition, that you want to bethe BOOT partition. If you are the SpartaDOS X user and you wantto have the CONFIG.SYS on the hard drive, the BOOT partition mustbe D1:, so you should change the physical number of your floppydrive to D2: or anothe=r.17) Press RETURN key to set the BOOT partition.18) Press the TAB key to move the cursor to the menu at thebottom right corner of the screen.19) Select the "Opts" option.20) Select the boot type according to your system configuration:- "con=trol", if you want to boot up MyDOS (or another DOS) fromother partition than D1: The interface will take full controlover the boot process.- "pass", if you want to boot up MyDOS (or another DOS) from D1:The interface will pass the control o=ver the boot process to theoperating system. Select this option, if you have any troubleswith the "controlled" boot up - the interface, taking the controlover the boot process, uses some hints that may not work withsome DOSes, cartridges = or upgraded (customized) operatingsystems. You MUST select this option, if you are the SpartaDOS Xuser.21) Press ESC to exit the "Options" menu22) Select the "Write" option to write the new partition table tothe drive.23) Press ESC to return= to the main menu24) Select the "Soft format" option from the menu. The FDISK willattempt to build new directories on the attached partitions.Note, that the SpartaDOS 3.2 does not provide such action - to doit, you must use a separated formatte=r, as the P_FORMAT.COM.25) Exit the FDISK.26) Write the DOS file(s) to the BOOT partition. If you are theMyDOS user, select the "H" option from the DUP menu. If you arethe SpartaDOS 3.2 user, copy the DOS to the BOOT partition anduse the BOO=T command to make the disk bootable.27) Press SELECT/RESET to cause the cold boot. The DOS will loaditself from the drive - the installation process is completed.Some IDE drives used to clear the BUSY and assert the READY bitsin their internal s=tatus registers *before* the spin-up processis finished - the drive looks to be ready, but isn't ready infact and cannot execute any commands (very strange, by theway...). To prevent such troubles during power up, the internalsoftware =waits about 5 seconds before taking any action with theIDE controller. This delay is not necessary during the cold boot,that has been caused by pressing SELECT/RESET or via OS entryRESETCD (E477). In such case the internal software uses a fas=tinitialization method. However, if you turn the power switch offand on very quickly, the initial routines may not recognize thisboot process as a real power up. As a result, the boot processwill crash. To prevent such problems, after turnin=g the poweroff, you should always wait 10-15 seconds before turning it onagain. This time should be sufficient to invalidate internalflags, that have been located in RAM.IV. KeystrokesSHIFT/RESET disables the drive. The drive will remai=n spinning,but the partitions will not respond to operating system requests(error 138). To enable it again just press the RESET key.SELECT/RESET forces the cold boot.V. Write-protection featureThe IDE hard drive interface provides the wr=ite-protectionfeature to minimize a risk of accidental data damage caused byviruses, damaged software or children. When a partition islocked, there's NO POSSIBILITY to write data to this partition orunlock it by asserting commands, causin=g a cold boot or turningthe power off and on. Damaging a write-protected partition bywriting accidental data to random memory locations is also*practically* impossible - the risk is very small.VI. Executing non-DOS software with the har=d driveSome software, especially games and demos, have their own diskformats and cannot be copied to a partition. However, the IDEsoftware provides limited capabilities to execute such programs.If you selected the "controlled" hard =drive boot whenpartitioning the drive and your BOOT partition is not the D1:,you may run the non-DOS disk from the floppy drive. To do it,insert the disk into the floppy disk drive then press SELECT andRESET keys holding down the SHIFT k=ey. The internal software ofthe IDE Interface will pass its initialization routines and yourcomputer will boot up from the floppy. The hard drive will be"invisible" for the system.If you want to execute such software from the hard drive, = youmust provide a small partition to use it in such manner. Thoughthe D10-D15 partitions are invisible for existing operatingsystems and cannot be accessed by DOS, they may be booted aswell. When you are partitioning your drive, create= a small (up to520 physical blocks) disk, for example D10:. When you completethe installation and make the drive work, execute the FHCOPY.COMfile from the utilities disk, then copy your floppy to the D10:.Now execute the FDISK, select the "Par=titioning" option from themain menu, then press the TAB key twice to move the cursor to themenu at the bottom right corner of the screen. Select the "Opts"option, then set the "Drive redirection" to D10:. If the"controlled" boot-up has bee=n selected, you must change it now tothe "pass" mode. Write new partition table, exit the FDISK andreboot the system - the non-DOS program will load itself from thehard drive. To return to the previous configuration, insert theutilities disk =to your floppy disk drive, reboot the systemholding down the SHIFT key, then execute the FDISK, reset the"Drive redirection" to D1: and "Boot type" to its previous state,write the new partition table, exit the FDISK and reboot thesystem=.VII. Dual drive configurationThe IDE drive interface is able to handle two IDE devicesconfigured as master and slave drives (please refer the drivemanual to connect it and set up properly). However, some drives,when they are config=ured to work as the slave device, used towait some seconds before they start spinning. For this reason,the Interface DOES NOT INITIALIZE the slave drive during power upor reset. It would make little sense, because the drive is notspinning (=i.e. is not ready) at that time. As a result, the slavedrive remains not initialized, even if the boot process has beenfinished and the system looks to be ready to use.If the slave drive have finished the spin-up process, there aretwo ways to ma=ke it work properly:1) assert the ALL RESET command (see next section), or2) force the system to read a sector from any partition, thathave been allocated to the slave drive - if the drive is ready,it will be recalibrated automatically.Plea=se DO NOT start the operating system from the slave drivepartitions.VIII. Software development informationThe IDE drive partitions operate as normal floppy drives orramdisks and can be accessed via OS DISKINT (E453) and SIOINT(E459=) routines. All the partitions recognize the followingcommands:1) Standard subsetR - read a sector - this command reads a specified logical sectorfrom a specified partition. It reads ALWAYS THE WHOLE LOGICALSECTOR, i.e. 256 or 512 bytes=, according to the current mode andregardless of the DBYT value. The sector number is a 24-bitvalue, the most significant byte (now called DAUX3) is located at0307 (this byte was unused by the XL OS). Sector numbers lessthan 000001 or =greater than maximum sector number for thespecified partition are invalid and will cause the error 144.P - put a sector - writes data to a specified logical sector on aspecified partition. There are the same restrictions, asmentioned =above. This command will return status 144 whenattempting to execute on a write-protected partition.W - write a sector - the same, as "P" command.S - read status block - transfers the 4-byte disk status to thememory. The bit of the first =byte are as follows: 7 - not used by the hard drive 6 - write protection enabled 5 - double density drive (always 1) 4 - master present (usually 1) 3 - slave present 2 - not used by the hard drive 1 - not used by the h=ard drive 0 - not used be the hard driveThe second byte provides reversed (eor'ed with FF) value of theIDE controller error register. The bits are as follows: 7 - BBD - Bad block detected 6 - ECC - Error correction code (uncorrectable= error) 5 - NUL - unused, always 1 4 - IDNF - ID not found (target sector could not be found) 3 - NUL - unused, always 1 2 - AC - Aborted command 1 - TK0 - Track 0 error (unable to find a valid track 0) 0 - DAMNF - Data add=ress mark not foundThe normal (default) value of this byte is FF. The next byte hasa dummy value E0. The last byte of the status block holds thenumber of retries for the software IDE handler in ROM.N - read configuration - reads the 12-byte P=ERCOM block to thememory. The values returned by a partition are as follows: 0 - number of tracks (always 1) 1 - revision number (10 = 1.0) 2 - total number of logical sectors, the middle byte 3 - total number of logical sectors,= the low byte 4 - total number of logical sectors, the high byte 5 - additional information: bit 3 - IDE hard drive partition (always 1) bit 2 - double density drive (always 1) bit 1 - 8 inch floppy disk drive (alway=s 0) 6 - number of bytes per logical sector, high byte 7 - number of bytes per logical sector, low byte 8 - unused, always FF 9 - value 49 10 - value 44 11 - value 45The last three bytes contain an identifier of the ha=rd drive type("IDE").2) Specific onesE6 - sleep drive - stops the drives and deactivates theirinternal controllers. See ALL RESET command for the DCB variablesdetails.E7 - all reset - resets, recalibrates and reinitializes bothhar=d drives. It is the only way to exit the Sleep mode. Thiscommand needs the number of any partition stored to the DUNIT(0301). The master drive must be present while asserting thiscommand, otherwise the timeout error will occur.EC - =identify drive - transfers the 512 bytes of data, thatspecify the drive's parameters. The fields are as follows (F =fixed value, V = variable, R = reserved, should be zero): 0 - vendor specific information, bits are as follows: 15= - 0, reserved for non-magnetic devices (F) 14 - vendor specific (F) 13 - vendor specific (F) 12 - vendor specific (F) 11 - vendor specific (F) 10 - vendor specific (F) 9 - vendor specific (F)= 8 - vendor specific (F) 7 - removable media device, if 1 (F) 6 - removable controller and/or device, if 1 (F) 5 - vendor specific (F) 4 - vendor specific (F) 3 - vendor specific (F) = 2 - vendor specific (F) 1 - vendor specific (F) 0 - reserved (R) 2 - number of cylinders (F) 4 - reserved (R) 6 - number of heads (F) 8 - vendor specific 10 - vendor specific 12 - number of sect=ors per track (F) 14 - vendor specific 16 - vendor specific 18 - vendor specific 20-39 - serial number, ASCII characters (F) 40 - vendor specific 42 - vendor specific 44 - number of ECC bytes transferred on LONG operat=ions (F) 46-53 - firmware revision, ASCII characters (F) 54-93 - controller model number, ASCII characters (F) 94 - numbers of sectors/interrupt R/W multiples, bits: 15-8 - vendor specific 7-0 - 00 = READ/WRITE MULTI=PLE not implemented (F) 01-FF = maximum number of sectors that can betransferred per interrupt on READ/WRITE MULTIPLE commands (F). 96 - reserved (R) 98 - capabilities, bits: 15 - reserved (R) 14 - rese=rved (R) 13 - 1 = standard standby timer values are supported 0 = standby timer values are vendor specific (F) 12 - reserved (R) 11 - 1 = IORDY supported (F) 0 = IORDY may be supported (F) = 10 - 1 = IORDY can be disabled (F) 9 - 1 = LBA supported (F) 8 - 1 = DMA supported (F) 7-0 - vendor specific (F) 100 - reserved (R) 102 - PIO data transfer cycle timing (F) 104 - DMA data transfer cyc=le timing (F) 106-511 - reservedAll values are in standard low/high convention. Some parametersare defined as a string of ASCII characters. For the string"Copyright", the character "C" is the first byte, "o" is thesecond byte etc. = When such fields are transferred, the order oftransmission is:- the 1st character ("C") is on bits 15 through 8 of the 1st word- the 2nd character ("o") is on bits 7 through 0 of the 1st word- the 3rd character ("p") is on bits 15 through 8 of the= 2nd word- the 4th character ("y") is on bits 7 through 0 of the 2nd word etc.Note, that the DMA transfers, although may be supported by thedrive itself, may not be supported by the current version of theinterface's hardware. Please also refe=r the SLEEP DRIVE commandto get an information about the DCB variables.EE - force media change - forces the interface to re-read thepartition table from the drive.All other commands will cause error 139 (negative acknowledge).Note, that t=he software does not provide a FORMAT DISK command -it hasn't been implemented to prevent an accidental data damage.The drive must be formatted using a separated program.Operating system developers should note, that the internalsoftware of= the IDE Interface changes the DUNIT (0301) to theBOOT partition number during boot up.IX. Memory usageThe Interface's internal software uses the following RAMlocations: 01 and 34-3C. The PDVMSK (0247), PDVRS (0248) andDCB varia=bles (especially DAUX3 0307) should be used only intheir proper functions (please DO NOT use them as temporary dataregisters!). The 0400-06FF area should also remain intactduring the cold boot.X. Error messagesYou can get the followi=ng error reports from the IDE drive:138 - Timeout error - attempting to read or write data to apartition, that is physically allocated to the slave drive, whilethe slave drive is busy, not ready or does not exist at all; orattempting to a=ssert the ALL RESET command, while the masterdrive is not present. It may occur, if you accidentallydisconnect the master drive or disconnect the slave drive withoutreconfiguring your system. It may also indicate a damagedpartit=ion table - please reboot your system. If this actiondoesn't cause any effect, you must use the FDISK to repair thepartition table. See also section VII. - "Dual driveconfiguration".139 - Invalid command144 - Device done err=or:1) the software attempted to write data to a write-protectedpartition.2) the software attempted to read or write data outside of thelimits, those are valid for the partition.3) there is a bad sector on the partition. Please assert the "=S"command to get the value of the internal IDE error register.4) the interface's software is unable to handle your drive.Please run the FDISK and select the "Surface test" from the mainmenu. If the test fails and you know, that your drive is= in goodcondition (no bad blocks) for sure, please assert the IDENTIFYDRIVE command (from a BASIC, for example), copy the buffer to afile and send the file to us.Konrad M.Kokoszkiewicz (KMK)E-mail: conradus@plearn.edu.pl-----------------=-------------------------------------------------------Craig Lisowski (clisowsk@mcs.kent.edu) <`Subject: Internal Speaker for 800XL------------------------------------------------------------------------For anyone who'd like to put the clicker speaker back into the XL/XE, here'show I did it on an 800XL. It shouldn't be too hard to apAply this to an XE.1st open the machine. If it's an 800XL, you can follow these directions. Ifyu have an XE, you'll have to ignore the component designations and track itdown yourself (post your findings for others) and come up with a place to putAthe speaker where it sounds nice & loud.The click sound comes from pin 15 of GTIA and is fed to C23 (to the right ofelectrolytic C24). To remove the click from the TV signal, remove thiscapacitor. For the internal speaker, pick the signal off the Afront pad of C23with a 1K resistor (I lifted the front leg of C23 and wired aninternal/external SPDT switch). Next, you will need a small (2.5") 8ohmspeaker. Solder a small signal diode across the terminals (RS 276-1122 or276-1123). To the terminaAl on the side of the diode with the black band,attach a 10ohm resistor and a wire fron the other side of this resistor to +5v(I picked 5v from the left side of decoupling capacitor C26). Next get a2N2222 or 3904 transistor (RS 276-2009 or 276-2016) aAnd a .001uF capacitor(RS 272-126). Looking at the transistor with the pins down and the flat sidefacing you, solder one leg of the capacitor on the leftmost pin of thetransistor (emitter), and the other to the middle (base). Now also solder awire fArom the leftmost pin to ground (I used the right side of C26), and a wire from the middle pin to the 1K resistor at C23). Connect the rightmost pin(collector) to the terminal of the speaker that faces away from the band on thediode. Making sure you Ahave no shorts, power up the computer and see if youhave speaker clicks from the speaker (I reccommend heatshrink tubing aroundconenctions to keep everything isolated).Assuming everything works, continue with mounting the speaker. I placed thespeakAer to the right of the cartridge slot (next to U5, the OS ROM) and stuckit down with a couple squares of double sided foam tape (stuck to the back ofthe magnet) to raise it until it just slightly pushes against the back of thetop RF shield when it's Areplaced. The speaker will be noticably louder oncethe shield is in place against it (8-bit acoustics).Here's a quick diagram. bottom half of speaker: | | 8ohm | | |A \____/ | \ / \ o-|<-o / diode between terminals / \ wire to 5v ___/ ___ | | | | A transistor |ebc| | to gnd ______________/ | \_| collector to speaker terminal | | = .001 | 1K | | <--------/\/\/\--------/A to signal (C23 or GTIA pin 15)------------------------------------------------------------------------Craig Lisowski (clisowsk@mcs.kent.edu) @p0TP If you read my earlier article in DL7 about the XEP80, you might remember that the XEP80 uses all of the display field of the monitor and the two cheap composite monitors that I had tried did not gEive a very satisfactory display. I have been using a high quality video unit from a NorthStar Horizon that works very well, but a monitor like that would be very difficult for the average user to find (not to mentEion, expensive). I spent some time at the West Coast Computer Faire looking for some reasonable candidates, but none of the vendors had composite monochrome monitors on display! There were lots of monochrome displays with sEeven zillion lines of resolution, a built in swivel base, non-glare screens - the works. Good prices, too! But every one was TTL, IBM. Wellll......... Never being one to shy away from a little soldering, I E decided to investigate the possibility of adapting the XEP80 to an IBM monochrome monitor. The IBM TTL monitors have a separate input for the sync and video signals, whereas the XEP80 generates a composite signal cEontaining all three components. I figured that a little circuit to strip the Horizontal and Vertical sync from the Video couldn't be that hard, but it turns out that the XEP80 has all the signals you need inside tEhe box! The whole project didn't amount to anything more than soldering one end of a 10" piece of four conductor ribbon cable onto the XEP80 board and connecting a 9 pin joystick socket to the other end. I tried the XEP80 oEn a standard IBM monochrome monitor and it worked fine! I also tried it on some OEM TTL monitors made for an IBM PC (an AMDEK 310A and a SAMSUNG MD1254G) and that also worked well - after a little pot tweaking (a ELOT of tweaking on the SAMSUNG). The XEP80 uses a lower Horizontal frequency than the IBM PC, so some OEM monitors may require adjustment, but not so much that you need to re-adjust it between a PC and your Atari.E The display field on the TTL units does not overscan the face of the tube so there is no adjustment required for that problem. Also, the linearity is very good on these guys, so all the characters look great! The major E disadvantage to a TTL monitor is the absence of audio on them, although I prefer a separate audio amplifier anyway. [Enough babbling, I waannnt one! How do I do the mod, dummy??] The wiring required is: (Efrom the bottom of the XEP80 board) Pin 1 and 2 of 9 pin socket to pin 7 of U6. Pin 7 of 9 pin socket to the pad 1/4 inch to the left of pin 8 of U6. (This pad is the same distance to the LEFT of pin 8 as pin 7 Eis to the RIGHT of pin 8.) Pin 8 of 9 pin socket to pin 9 of U6. Pin 9 of 9 pin socket to pin 10 of U6. I ran the flat cable out where the power switch is mounted. The bottom cover will clamp the caEble between the board and the bottom cover at this point and provide some strain relief. I would imagine that you could use a much longer cable, but at some point you will begin to lose character resolution. E Now, you can take advantage of any good deals you might see on a quality IBM monitor. I saw many different TTL units for less than $100 at the WCCF. Most of them looked like much better devices than any compositeE monitor I have seen and( they are everywhere. If you are reasonably adept at soldering, or know someone who is, think about using one of these TTL monitors on your XEP80. The normal composite output is not affecteEd by the modification at all. Now, if I can hack an IBM keyboard onto this thing..... Bob Woolley [75126,3446]DConverted to ATASCII with HTML Converter v1.1, Marco/GMG.Re-formated with Panther 1.0a, JBW.Sysop Fox-1, Thunderdome, ATARI 8-Bit BBS, the Netherlands__________________________________________________________ HeAvEn's Demo-Homepage-IndexIWitajcie polish coders! Try using extended memory in thisway...(special message to Coders of VENT and JOURNEY)Let me give Tamas Bene of HARD the keyboard..."...It depends on what we call "standard". My expansion is 130XE-compatible(without Antic-Iswitching), so all programs which is written for XE shouldrun as well on my Atari. Actually it is a 192K expansion, so the wholememory is 256K.The problem is that demo-coders (and others) use $d301 in a non-standardway. I mean they change bits in $dI301 which work differently on differentexpansions, or even they store values in $d301 other than $fc-$ff, insteadof masking only those bits which are intended to be changed. (Fortunatelythe Atari OS was written much more carefully, they even use bit Imaskingfor setting values like $ff. Otherwise even the OS might not work withextended machines. :^)For example, I found the following instructions in the Journey demoat several places:lda #$b3 sta $d301This has some meaning on a particular expansiIon, but I have no ideawhat it should do. For me, it just switches OS in and BASIC out.BTW, my 192K expansion works as follows:bits 0,1 and 7 work as for normal Atari (switching OS/Basic/Selftest).bit 4 switches the expansion on/off, just like for 13I0XE. here is a tablefor bits 2,3,5,6:bit6 bit5 bit3 bit2 action------------------------------ 0 0 0 0 maps base memory $0000-$3fff to $4000-$7fff 0 0 0 1 maps base memory $4000-$7fff to $4000-$7fff 0 0 1 0 mapIs base memory $8000-$bfff to $4000-$7fff 0 0 1 1 maps base memory $c000-$ffff to $4000-$7fff 0 1 0 0 extended bank #01 at $4000-$7fff 0 1 0 1 extended bank #02 at $4000-$7fff 0 1 1 0 extended bank #03 at $I4000-$7fff 0 1 1 1 extended bank #04 at $4000-$7fff 1 0 0 0 extended bank #05 at $4000-$7fff 1 0 0 1 extended bank #06 at $4000-$7fff 1 0 1 0 extended bank #07 at $4000-$7fff 1 0 1 1 extended bIank #08 at $4000-$7fff 1 1 0 0 extended bank #09 at $4000-$7fff 1 1 0 1 extended bank #10 at $4000-$7fff 1 1 1 0 extended bank #11 at $4000-$7fff 1 1 1 1 extended bank #12 at $4000-$7fffThis expansion is Iquite a standard, it was published in the german AtariMagazin a couple of years ago. Also, it needs the simplest hardware amongall the extensions I know of, so it's the cheapest one too. I'm sure alot of people built it for this reason.Most programIs using extended memory do some sort of memory check (atleast the self-respecting ones ;-) But they usually fail on my expansionbecause they detect expanded banks in the first 4 cases (bit5=bit6=0) eventhough in these cases the base memory is mapped Ito the bankswitched $4000-$7fffarea. I wonder why they don't do a check for this case. It would be simple- just treat the 4 16K "banks" of the base memory in the same way as expandedbanks, and check if writing to any bank causes any changes in any otIherbank. The check could look like this:1. Set all possible values in bits 2,3,5,6, and store a different numberfor each of them at $4000. (numbers 1-16)2. Store numbers 17-20 at addresses $0000, $4000, $8000, and $c000in the base memory.3. Set alIl possible values in bits 2,3,5,6 again, and check if thevalue stored at $4000 in each bank is still there, or it is overwritten.If overwritten with a different value, then it is not a real, separatebank, so remove from the list of available banks.IIt's so simple.An even simpler way would be to let the user configure the number ofmemory banks and the actual $d301 values he want to use. For example, theramdisk in DOSes like TurboDOS and MyDOS work in that way. Other exampleis the excellent game IThe Brundles by KE-Soft./Tamas"______________________________________ /__ __ __ _\/ / /_|_ | |__\ Software, Hungary______________________________________Here is another Description by Dracon...XL/XE RAM expansionsThere are some types of RAMI expansions designed for XL and XEcomputers. The most popular in Europe are based on the generalconcept used by the Atari Corp. in the 130XE computer: a port,formerly responsible for controlling joysticks #2 and #3, is now usedas a memory controllerI port. This port is mapped at $D301 andtraditionally labelled as PORTB.The general purpose of the PORTB is to control all on-board memoryresources, i.e. the system RAM as well as the OS and BASIC ROMs.I. ROM controllerBits #0, #1 and #7 control Jthe system ROM. This function is commonfor all XL and XE computers:Bit Meaning (if set)--- ----------------#0 OS ROM enable#1 Atari BASIC ROM disable..#7 SELF TEST ROM disableBit #0 changes affect the XL OS area at $C000-$CFFF andJ $D800-$FFFF,if the bit is set, there is the XL OS ROM there, otherwise the shadowRAM is enabled. NOTE: the PDVREG $D1FF has higher priority than PORTB!Bit #1 affects the area $A000-$BFFF. If this bit is cleared, there'sAtari BASIC ROM there, RAM oJtherwise.Bit #7 affects the area $5000-$57FF. If it is cleared, the SELF TESTROM, located normally at $D000-$D7FF and masked out by hardware I/Oregisters, is switched to $5000-$57FF; otherwise, there's normal RAMthere.II. RAM controller1) AtariJ 130XEStock 800XL and 65XE computers lack additional RAM, so the remainingPORTB bits do nothing. 130XE however and expanded XL/XE use them tocontrol RAM extensions.Generally, considering the 16-bit address bus, it is impossible toenlarge the physJical address space past the existing 64k. In the130XE, the total amount of system RAM is split into two large parts:64k base RAM and 64k bank select RAM. That last is accessible as four16k portions to be exchanged with a 16k block belonging to the baJseRAM area.This area is located from $4000 up to $7FFF. Both 6502 and Antic aregranted an *independent* access to this memory. PORTB bits meaning isas follows:bits #2, #3 - bank selectbits #4, #5 - access controlbit #6 - unusedThe first pair J(bits 2 & 3) selects one of four additional 16k banksyou want to access to. The other pair decides, which processor willuse the bank selected by the first two bits:#4 - CPU access: 0 - additional RAM 1 - base RAM#5 - Antic access: 0 - additional RJAM 1 - base RAMThis gives four possible combinations:76543210--------xx00xxxx - both processors use the additional bankxx01xxxx - only Antic uses the additional RAMxx10xxxx - only CPU uses the additional bankxx11xxxx - both processors use the Jbase RAMThat's all for 130XE.2) 192k RAM expansionThe computer's behaviour is exactly the same as in 130XE besides ofthat bit #6 is used together with the bits #2 and #3 to select anadditional banks. This gives eight combinations, i.e. eight banJ ks maybe accessed, 16k each.3) 320k Compy Shop expansionAlso known as "German 320k". This type of RAM extension is quitepopular in Europe, so that several American programs get confusedconsidering this to be 192k.Since all free bits have been uJ sed for bank selection, the Compy Shopexpansion uses bit #7 for bank selection. This gives 16 possiblecombinations, hence the additional RAM area can be enlarged to 256k(256 + 64 = 320).To get rid of possible conflicts with the SELF TEST ROM (normaJ llycontrolled by the bit #7), this bit is used to control SELF TEST onlywhen bits #4 & #5 are both set to 1. Otherwise it controls the bankselect RAM.4) 256k Newell Industries expansionThis expansion is NOT fully 130XE compatible. It is similar tJ o the192k with except that the bit #5 is used for bank selection, not forAntic access control. It means, that you have four bits for bankselection, but both CPU and Antic must use the same memory at a time.Furthermore, only 12 of 16 possible combinaJ tions are used so that youhave 192k additional RAM instead of 256k. This is the most stupidexpansion I have ever seen (my computer has it installed).4) 320k Newell Industries expansionAlso known as "American 320k". This expansion is NOT fully compJatiblewith the 130XE standard, but it was apparently quite popular in theUSA since some software (f.e. ICD's SpartaDOS X 4.x) seems to base onit. Nevertheless, some software, like "Envision" for example, mayfail on such computers.Only bit #4 is usJed to control the memory access here, which impliesthat there's no separated access for the CPU and Antic. In fact, bothprocessors must use the same type of RAM at the same time; if bit #4is set, CPU and Antic use the base RAM, otherwise both use addJitionalbank.Bits #2, #3, #5 and #6 are used for bank selection.5) 576k expansion.This is similar to the American 320k with except that bit #7 is usedthe same way as in Compy Shop 320k expansion. So bits #2, #3, #5, #6and #7 are used for bank seJlection if the bit #4 is set to zero(CPU & Antic additional RAM access). This expansion is not fullycompatible with the 130XE.6) 1 MB (1088k) expansion.The same as 576k with except that the bit #1 (normally controllingAtari BASIC ROM) is used forJ bank selection if bit #4 is set to zero.This gives six bits (64 banks, 16k each) for bank selection, so thatthe additional bank area may be enlarged to 1024k. This type ofexpansion isn't fully 130XE compatible either.III. RAM detection routineSiJnce it is quite difficult to determine what expansion a particularcomputer has and what amount of memory is currently available, themost simple solution is to use the following routine. It is anon-destructive test, any data previously stored in the aJdditionalRAM will remain intact.The routine returns the number of found additional RAM in theaccumulator. You must multiply it by 16 then add 64 to get the totalamount of the system RAM in kilobytes as a result.; Bank select RAM detection; StoleJn from the SysInfo;; Must NOT be located within the $4000-$7FFF !!!;portb = $d301extra = $4000; lda portb pha lda #$00 sta counter ldx #$7f ;Save the ramdisk contents before the testloop1 txa asl ora #$01 sta portb lda extra sJta buffer,x dex bpl loop1 ldx #$7f ;Clear tested RAM.loop2 txa asl ora #$01 sta portb lda #$00 sta extra dex bpl loop2 lda #$ff ;Reset PORTB sta portb lda #'K ;Mark base RAM as tested. sta extra ldx #$7f ;Count banks.loopJ3 txa asl ora #$01 sta portb lda extra bne skip inc counter lda #'K sta extraskip dex bpl loop3 ldx #$7f ;Restore the ramdisk contentsloop4 txa asl ora #$01 sta portb lda buffer,x sta extra dex bpl loop4 pla sta pJortb lda counter rts;counter .dc ;number of banksbuffer .ds ;64-byte bufferKonrad M.Kokoszkiewicz mail:draco@mi.com.plhttp://www.orient.uw.edu.pl/~conradus/IRC:[Draco] *** Ea natura multitudinis est, *** aut servit humiliter, autsuperbe domiJnatur. ************************************************* ***U pospolstwa normalne jest, ze albo sluzy ono *** unizenie, albo bezczelniesie panoszy. (Liv. XXIV, 25)Last changes: 19 Jun 1997Feel free to contact me for any legal reason!HeAvEnJ, Member of TaquarTHSubject: UPGRADE: The Freezer--cold-boot & protect RAMdisk------------------------------------------------------------------------ Reprinted from the A.C.E.C. BBS (614)-471-8559 THE FREEZER There isN one upgrade that can be applied to an Atari XL/XE which is near and dear to my heart.... extra memory (256K). Many programs that are only OK when run from a disk drive, come alive if you execute them from memory. The PaperClip spelling checker is a Ngood example of this. If you have a 256K machine, the dictionary will load completely into memory and will search a list of words instantly. There are also programs whose capacity is increased tremendously by the 256K upgrade. (PaperClip, a word procNessor, will hold 112,000 characters vs. AtariWriter's 20,000 or so). Great stuff, but..... a few complaints. How do you use a ramdisk with a program or DOS that is not written for them?? Also, when you turn off the power to a 256K memory chip, Nthe data that is stored in it does not disappear in a few hundredths of a second as it did with the older and less efficient 16K and 64K devices. The operating system, which controls the power on and reset sequences, only checks a few bytes of memoryN to determine if the power was just turned on (the locations would be garbage), or if you had hit the RESET key (the locations would equal specific values). If, after powering off and then on (in order to re-boot your system), those bytes have retainN!ed their data, the system may branch through a warm (RESET key) start, instead of taking the proper path through cold (power on) start. This forces you to allow enough time to elapse after power down for those key addresses to lose their data. A repeN"at of power off/power on isn't going to help unless you wait the required interval (like 10 to 15 seconds...). This waiting around is very annoying - didn't you get this extra ram to save time?? So?? This is nothing new to those of you that havN#e expanded systems. How do we fix it?? Relief arrives as a small hardware modification that allows you to force a cold start and boot the system with the RESET key (which will normally produce a warm start and no boot). With this circuit instalN$led, you can re-boot your computer without turning off the power and losing the data in the extended memory banks. This means that you can install a ramdisk, load it with data and then re-boot the system from the ramdisk. Using a menu created for thiN%s purpose, programs that do not support a ramdisk - even a game, can be run - if you can force a coldstart without turning off the power (anyone want to write the menu for this??) Also, you could be operating with a ramdisk, boot a different programN&, run for a while, and then re-boot the original program with the ramdisk memory intact. And, of course, you don't have to wait for the memory to blank out after you power off. (a warm start is cooled down to a cold start any time you wish..... henceN', the FREEZER.) This is accomplished by making the computer think that you have changed the status of the cartridge, either removed one that you were using, or plugged one in where you had not had one before. During reset, the operating system N(checks the cartridge status since the last power on. If it sees that the status has changed, it executes a cold start and re-boots the computer. This upgrade allows you to change that status when you press the FREEZER switch (the one you will add). TN)his means that if you hold the FREEZER switch down, push RESET (and OPTION, if you don't want BASIC), and wait until the screen goes black(off), you will get a cold start. If you hold the FREEZER switch down too long and the screen restarts before yoN*u release it, you can just push RESET alone to cold start. Accidently hitting the FREEZER switch while you are running will lock your computer, but as long as it is not active when you RESET, it will not FORCE a cold start. You may get one anyway if N+your program is designed to produce one, so mount the switch in a protected spot. A little practice will get you a cold start every time. Installation requires some soldering and cutting, so don't try this if you haven't had experience. You wilN,l need a 74HC86 IC, a small push button switch and a 1/4 watt resistor between 1K and 30K. Take your 1200XL, 800XL or 130XE apart and locate the GTIA chip. (1200XL=U19:800XL=U17:130XE=U17) You need to isolate pin 11 of the GTIA from the rest of the cN-ircuit by cutting the wiring on the printed circuit board. The 130XE requires two cuts and an added wire since the pin is between two points that you would like to keep connected. The normal circuit is: pin 14 (RD5) of cartridge - pin 8 of MMU - resiN.stor to ground - pin 11 of GTIA. In that example, you could cut the wiring to pin 11 and not remove any of the connection points from the circuit except pin 11. In the 130XE, pin 11 is between the cartridge and the MMU, so you have to restore the wiN/ring from cart. to MMU after cutting out the pin. 1200XL: cut the trace on top of the board just to the left of Q4. MMU is U14. 800XL: cut the trace just below pin 11 on the GTIA chip (U17). MMU is U3 130XE: cut the trace on top of the board just N0below pin 11 of the GTIA chip (U17). Also cut the trace on the bottom of the board right next to pin 20 of U17. Add a wire from the pad near the last cut you made (near pin 20 of the GTIA chip) to pin 8 of the MMU chip (U3). This added wire restores N1the circuit between the cartridge and the MMU. All machines: the added circuit is 1/4 of a 74HC86, which is an exclusive-or circuit. Wire pins 4,5,7,9,10,12, and 13 to ground. Connect pin 14 to +5v. Pin 1 goes to pin 8 of the MMU and pin 3 to pin 1N21 of GTIA. Connect a 1/4 watt resistor (1K-30K) from pin 2 to ground. Finally, mount the push button (normally open) switch on a clear area of your case and wire one side to +5v and the other to pin 2 of the '86. That is all that's needed. If you waN3nt to restore your machine to normal, solder a wire between pin 11 of GTIA and pin 8 of the MMU and remove the added IC and switch. Well, it looks like it will take you longer to read this whole thing than it will take to build it. Just take yN4our time and ASK FOR HELP if you aren't sure!! Yep!! May be a good idea to install MORRAM and FREEZER at the same time and on the same board. (takes two ICs - maybe you should leave a little extra space for.......?) Bob Woolley N5 75126,3446------------------------------------------------------------------------Craig Lisowski (clisowsk@mcs.kent.edu) L>ADDEND TXTAREADME 1STDREHACKHDCOMUFSNAPHD DOC6SNAPHD PRTDO NOT LEAVE ANY FILES OPEN FOR WRITE AND THEN SWITCH TO A DIFFERENT SNAPSHOT. CLOSE THE FILE FIRST.BATCH FILES WILL CARRY OVER TO ANOTHER SNAPSHOT IF THE OTHER SNAPSHOT'S VIRTUALx FILES DO NOT EXIST. IF THEY DO, THEN THEFIRST SNAPSHOT'S BATCH FILE W?ILL HAVE NO EFFECT ON THEM. IF THE FIRST SNAPSHOT'S BATCH FILE HAS MORE COMMANDS AFTER WHERE THE SWITCH OCCURS, THE BATCH FILE WILL CONTINUE TO BE PROCESSED WHEN YOU SWITCH BACK TO THAT SNAPSHOT.DO NOT RUN A BBS FROM WITHIN A DIRECTORY. IT'S VIRTUALx @FILE WILL ONLY GET SAVED TO THAT DIRECTORY.CERTAIN CONDITIONS WILL RESET A CWD.FTER WHERE THE SWITCH OCCURS, THE BATCH FILE WILL CONTINUE TO BE PROCESSED WHEN YOU SWITCH BACK TO THAT SNAPSHOT.DO NOT RUN A BBS FROM WITHIN A DIRECTORY. IT'S VIRTUALx R Included in this ARC file are the following files.README.1ST = This fileSNHDLOW.COM\SNHDMED.COM > = Snapshot HD filesSNHDHI.COM /REHACKHD.COM = Utility for Snapshot HD.TBASSNAP.COM = Special version of B TURBO BASIC for use with Snapshot HD.SNAPHD.DOC = The Snapshot HD user's manual, formatted for 80 columns.SNAPHD.PRT = The Snapshot HD user's manual, C ready to be sent to an Epson-compatable printer.Create date 07/04/90's manual, formatted for 80 columns.SNAPHD.PRT = The Snapshot HD user's manual, o@@Lˮ͠򮲮䠰죠${%|`$~%$%`ΈLLlz=${%|()L} ˠ䛷DE BHIK E Vl pp@ "v \+e̥̅i͠mȱm \̑ϥpZ[L̩@ͭέϩЩp`()L} ˠ䛷DE BHIK SNAPSHOT HD (C) USER'S MANUAL SNAPSHOT HD (C) COPYRIGHT 1990 BY TOM HUNT INTRODUCTION...1 G GETTING STARTED...1 ALLOCATION OF DISK SPACE...2 YOUR FIRST SESSION WITH SNAPSHOT HD...2 WHY THREE VERSIONS OF SNAPSHOT HD...3 PROGRAMS THAT KNOCK OUT SNAPSHOT HD...3H USING MORE THAN ONE DOS...3 USING SNAPSHOT HD WITH TURBO BASIC...5 USING A RAMDISK...5 CHANGING TO A DIFFERENT SNAPSHOT FROM UNDER PROGRAM CONTROL...5 I CUSTOMIZING SNAPSHOT HD...5 CHANGING THE DRIVE THAT THE VIRTUALx FILES WILL BE STORED/RETRIEVED...5 CHANGING WHICH KEYPRESSES WILL BE THE HOT KEYS...6 THINGS TO BE VEJRY CAREFUL OF...6 NOTICE...7 KEYPRESS to KEYCODE CONVERSION TABLE....8 SNAPSHOT HD (C) 1990 K BY TOM HUNT INTRODUCTION TO SNAPSHOT HD Snapshot HD is a utility that will allow the haLrd drive owner to easily switch between up to ten different snapshots. A snapshot is like taking a photograph of your computer's memory. Just like the photograph metaphor, Snapshot HD allows the hard drive user to easily flip M between different snapshots, with each one having different applications loaded in. You can even have a different dos in one or more of those snapshots. More on this later on. GETTING STARTEDN WHAT YOU WILL NEED HARDWARE- Either an 800XL or 130XE with at least 128k of memory. Strongly recommended- The Black Box SCSI/SASI host adapter, from CSS, and a hard drive. InO lieu of a hard drive, you could use a large ramdisk. You would need a XL/XE computer upgraded to more than 256k to follow this approach. It is possible to use Snapshot HD on a floppy based system, but keep in mind P that each snapshot uses 260 double density sectors of disk space. SOFTWARE- You will need either Sparta Dos 3.2 or MyDos 4.50, or both (depending on what you want to do). Snapshot HQD may or may not work with other hardware/software configurations other than those described above. Every effort has been made by the author to test out the reliability of Snapshot HD. But I do not own every possible hardware deviceR, or every program. If you attempt to use Snapshot HD with any other configuration than those described above, you do so at your own risk. Page #2 ALLOCATION OF DISK SPACE S Snapshot HD comes configured to use D1: for the storage and retrieval of it's snapshots of your computer system. Each snapshot requires 260 double density sectors. If you have over 520 free double density sectors available on TD1: you can safely store two snapshots to disk. If you have over 780 double density sectors free, you can safely store three snapshots to disk, etc. If you want to be able to use ten different snapshots, you should have at least 2,U600 double density sectors of free disk space. If you are satisfied with the amount of free sectors available on D1:, then you are ready to get started. If you desire that Snapshot HD use a different drive for it's files, Vthen skip down to the section about customizing Snapshot HD. If you are a multi-dos user, make sure that you boot up using the same dos that is used on your D1: drive. YOUR FIRST SESSION WITH SNAPSHOT HD W It is assumed that you are at this point if you have followed the previous instructions. If not, STOP RIGHT AWAY and go back and please read it. If you are not sure that everything is set up correctly, plXease reread-read the previous instructions. Snapshot HD is a very reliable and easy to uses utility, but you could do some real damage to the data on your hard drive if you do not follow these directions. You shYould now load in SNHDLOW.COM if you are using Sparta dos 3.2, or load in SNHDMED.COM if you are using MyDos 4.50. After Snapshot HD initializes it will print a little message to let you know that it has initialized. Now press sZhift-control-2, and Snapshot HD will blank out your screen, take a snapshot of your computer's memory and cpu image, then save it out to disk. You will then have your screen turned back on, and it will look as though nothing has[ happened. However, something HAS happened! Snapshot HD has effectively cloned an exact copy of what was in your computer. You have just saved snapshot #1 to disk, and are now in snapshot #2. Now simply press shift-c\ontrol-1, and in a few seconds you will be back in snapshot #1. It is that simple. If you now get a directory listing from the disk drive that Snapshot HD has used to store/retrieve it's files, you will see two ] additional files that weren't there before. You should now see VIRTUAL1 and VIRTUAL2. You are now ready to load in a program into snapshot #1. A good choice at this point would be TextPro, Super Arc, Super UnArc, or Megabug. A^ny well behaved program can be used, if you don't have any of the ones mentioned. Simply load that program in as you normally would. After it loads press shift-control-2. In a few seconds you will back in snapshot #2, and it will be _just as you had left it. Press shift-control-1, and when you are back into the Page #3 program you loaded into snapshot #1, it will be restored just as you had left it. It's almost as easy as turning the channel selec`tor on your TV. At this point, you are on your way to exploring what programs you can use with Snapshot HD, and how to build your Snapshot HD environment to your liking. But before doing so, please read the arest of this manual. Especially the section covering "things to be very careful of". WHY THREE VERSIONS OF SNAPSHOT HD There are three Snapshot HD files. They are named SNHDLOW.COMb, SNHDMED.COM, and SNHDHI.COM. Each one was assembled to load in to a different address in memory. And each one will print out a message- "Assembled at address $xxxx" when loaded. This message is useful for a couple of reasoncs. The first being if you ever suspect that you have somehow mixed mixed up the three Snapshot HD files. SNHDLOW.COM will report an assembled address of $1C20, SNHDMED.COM reports $1F00, and SNHDHI.COM reports $3629. These reported addrdesses will also help you decide which Snapshot HD program you need to use for some applications. Such decisions are easily made by a person experienced with the operating system of the XL/XE. These threee Snapshot HD program files assure the greatest flexibility on the part of the user. A "Snapshot HD construction set", if you will. We will discuss more about specific uses for each of these three binary Snapsfhot HD program files in later sections of this manual. ADVANCED USES OF SNAPSHOT HD PROGRAMS THAT KNOCK OUT SNAPSHOT HD Occasionally you may find a program that seems to kgnock out Snapshot HD. This is where the REHACKHD.COM utility comes in. Simply load this file AFTER loading Snapshot HD. If this doesn't work, and you are loading in other programs such as an rs232 handler, then try loading REHAhCKHD.COM immediately before loading the offending application program. In any case, Snapshot HD should always BE THE FIRST PROGRAM LOADED RIGHT AFTER DOS INITIALIZES. Two programs that benefit from REHACKHD.COM iare 850 BBS EXPRESS from Orion Micro Systems, and MOE from Carina Software Systems. USING MORE THAN ONE DOS Page #4 You can have both Sparta dos 3.2 AND MyDos 4.50 integrated into your Snapshjot HD environment at the same time. This would allow you to effortlessly snapshot between them with a simple hot-key. You should use Sparta's "KEY OFF" command before going into multidos mode. It is assumed at this point that ykou have a Sparta 3.2 bootable partition, a MyDos 4.50 bootable partition, and a third partition formatted by MyDos on your hard drive. The third partition will hold the VIRTUAL files. This particular partition will be referred to als the MyDos data partition to differentiate it from the bootable MyDos partition. You must use the SNHDMED.COM file. The SNHDLO.COM file will not work with MyDos because it resides too low in memory and interferes with it.m SNHDMED.COM can be used with both Sparta 3.2 and/or MyDos 4.50. You must now edit the SNHDMED.COM file so that the "D1:VIRTUAL1" filename is changed to use the drive that Snapshot HD will save it's VIRTUALx filnes to. Please refer to the "Customizing Snapshot HD" section if you are unfamiliar with this operation. Once again, this partition MUST BE MYDOS compatible and large enough to hold as many VIRTUAL files as you intend to use. Ifo the MyDos data partition is drive 4 (D4:), then you would edit the filename to say "D4:VIRTUAL". The point in doing this is that both Sparta 3.2 and MyDos 4.50 can read and write to a MyDos disk, but MyDos cannot read and write to ap Sparta disk. Well, it can, but it would hopelessly SCRAMBLE THE DATA on your Sparta 3.2 disk! If you are a new Black Box/hard drive user, or are unfamiliar with either one of these dos', then you should stop right now and take q the time to familiarize yourself with your hardware and software. If you do not, you can probably look forward to scrambling your Sparta 3.2 disk(s). If you are an experienced user with all of this, then you are ready to continue.r Using Sparta 3.2, save a copy of your recently edited SNHDMED.COM file in BOTH your bootable Sparta partition and your bootable MyDos partition. You are now ready to go to your Black Box "Drive Consfiguration Page" and swap your bootable MyDos partition into the entry at the top of the screen (the one the system boots off of). After this, boot your system into MyDos and run your recently edited SNHDMED.COM file. Press shiftt-control-#, where "#" is the snapshot number that you want the MyDos snapshot to be assigned to. For this example let's say that you used #8. Then press shift-control-1. For the sake of simplicuity, let's say that you normally use Sparta 3.2 for most of what you do, and you want to have MyDos as an accessory to your Snapshot HD/Sparta 3.2 environment. You would now delete the VIRTUAL1 file, and go to the Black Box'sv "Drive Configuration Page" menu, and swap your bootable Sparta 3.2 partition into the first entry (the one the system boots off of). You now boot Sparta 3.2, type in "KEY OFF", and load the recently edited SNHDMED.COM fwile, and press shift-control-8. In a few seconds you will be in the MyDos snapshot. Shift-control-1 takes you back to Sparta 3.2! Please refer to the "things to be very careful of" section. Page #5x USING SNAPSHOT HD WITH TURBO BASIC The SNHDHI.COM program was especially made for use with the Turbo basic interpreter. Please note that you can use SNHDHI.COM in a multi-dos envyironment. Just follow the directions described in that section. A special version of the Turbo Basic interpreter is supplied with Snapshot HD. TURBO BASIC must be loaded in before loading Snapshot HD. After TURBO BASIC is loadzed, type BRUN "Dx:SNHDHI.COM". USING A RAMDISK You may use a ramdisk on a machine with more than 128k, as long as the ramdisk does NOT use any of the lowest 64k of the extended ram. These are the same {ram banks that Basic XE uses. These are also the same ram banks that the /E parameter of RD.COM preserves. On a 256k machine, this does not leave you enough ramdisk space for even two VIRTUALx files. You need more than 256k in order |to use a ramdisk for your VIRTUALx files. MyDos is easily configured for such a set up. Please refer to your MyDos manual for directions on how to do this. CHANGING TO A DIFFERENT SNAPSHOT FROM UNDER PROGRAM CONTROL } This one is easy. Just poke 764 with the hot key code that can be found in the table at the end of this manual. This makes it easy for a program to call up another program running in a different snapshot. ~ CUSTOMIZING SNAPSHOT HD All customization of Snapshot HD can be accomplished with a text editor like Textpro. Other popular word processors can be used for this as long as you save the file in "ASCII" OR "LISTED" format. This is done to save the binary Snapshot HD program file without adding any special word processor formatting codes to it. If you are unfamiliar with this function of your word processor, please stop right now and read the manual. If you don't, you could not only corrupt the binary Snapshot HD program file, but you could also eventually corrupt the data on your disks! You must be very, very careful not to add or delete any bytes (characters) in the binary Snapshot HD program file. Before attempting any editing you should make at least one backup of your Snapshot HD files. Put them in a safe place. Like on a couple of different floppy disks. CHANGING THE DRIVE THAT THE VIRTUALx FILES WILL BE STORED/RETRIEVED Page #6 After loading Snapshot HD into your word processor you will see "D1:VIRTUAL1" near the top of the file. Simply replace the one in the "D1:" with the drive number of your choice. CHANGING WHICH KEYPRESSES WILL BE THE HOT KEYS At the end of this manual is a table called KEYPRESS to KEYCODE CONVERSION TABLE. You will find this table useful if you should ever need to change the hot keys that Snapshot HD responds to. This is what you do after deciding which keypress, or combination of key presses, you want Snapshot HD responds to. You load the Snapshot HD binary program file into your text/word processor, and in the very beginning of the file, immediately after the "D1:VIRTAUL1" string you will see an inverse ">" character. This is followed by 10 bytes that  are the atascii representation of the 10 hot key codes. These 10 bytes are ended by an inverse "<" character. Simply type in the replacement key presses over the old ones, and save the file to disk. If your word processor refuses to allow you type in the characters you want, then get a copy of Textpro. Textpro will do the job for you. THINGS TO BE VERY CAREFUL OF CHANGING THE WORKING DIRECTORY (CWD)  Before starting multidos mode be sure that the binary Snapshot HD program file has been edited to store/retrieve it's VIRTUALx files on to the MyDos formatted drive. Do not change the working directory on the drive that the VIRTUALx files reside on. This is because when you go to a different snapshot, it's virtual file will be saved in the directory that you CWD'd to. MIXING FILES FROM SNHDLOW, SNHDMED, AND SNHDHI Do not try to use VIRTUALx files with any other version of Snapshot HD, except for the version that generated them. This means, for example, if you have 10 VIRTUALx files that were generated with SNHDLOW.COM, and later decide that you need to use SNHDMED.COM, you must either delete the old VIRTUALx files, or store them out of the way. USING SNAPSHOT HD WITH A MODEM PROGRAM You may use Snapshot HD with a modem program. If you are using a terminal program, it is best to use your hot keys while the terminal program is displaying the disk directory, or whenever the rs232 Page #7 "whine" isn't present.  A better solution to this constriction is if you are using a Black Box, go into it's "Port Statuses" menu, and set the noisy i/o to off. This should allow to to snap back and forth between snapshots with no restrictions at all, unless you access a floppy disk drive. The noisy i/o that is produced when accessing that device resets the POKEY chip, and you risk a lock up of your terminal program when you return to it.  NOTICE You are using this product at your own risk. It is provided AS IS, with no promise to the suitability for what you expect or want it to do. Snapshot HD may not be sold, or included in any other product in which money is exchanged. The only exception to this is to provide for the cost of a floppy disk. It may be FREELY distributed. If you need help in using Snapshot HD, you are welcome to call  the Closer To Home bbs at 419-368-4413. Leave the sysop (me) email describing your problem, the hardware you are using, and the dos and software you are trying to get Snapshot HD to work with. I can usually respond to such messages within 24 hours. Please do not try and contact me through the mail, or through my personal voice line. Page #8 KEYPRESS to KEYCODE CONVERSION TABLE. WARNING: The atascii characters in this table may make your printer behave strangely. If that happens, just read this section of the manual with a text/word processor. KEYCODE SHIFT-CONTROL-KEY ATASCII 200  O H 202 P J 203 U K 204 RETURN L 205 I M 206 - N 207 = O 216 4 X 218 3 Z 219 6 [ 220 ESC / 221 5 ] 222 2  ^ 223 1 _ 224 , ` 225 SPACE a 227 N c 229 M e 230 /  f 231 INV g 232 R h 234 E j 235 Y k 236 TAB l 237 T m  238 W n 239 Q o 240 9 p 242 0 r 243 7 s 244 DEL t 245  8 u 246 < v 247 > w 248 F x 249 H y 250 D z 252  CAP | 253 G } 255 A  Page #9 x 249 H y 250 D z 252 SSNNAAPPSSHHOOTT  HHDD  ((CC))  UUSSEERR''SS  MMAANNUUAALL                SSNNAAPPSSHHOOTT  HHDD  ((CC))  CCOOPPYYRRIIGGHHTT  11999900                          BBYY  TTOOMM  HHUUNNTT INTRODUCTION...1 GETTING STARTED...1  ALLOCATION OF DISK SPACE...2 YOUR FIRST SESSION WITH SNAPSHOT HD...2 WHY THREE VERSIONS OF SNAPSHOT HD...3 PROGRAMS THAT KNOCK OUT SNAPSHOT HD...3 USING MORE THAN ONE DOS...3 USING SNAPSHOT HD WITH TURBO BASIC...5 USING A RAMDISK...5 CHANGING TO A DIFFERENT SNAPSHOT FROM UNDER PROGRAM CONTROL...5 CUSTOMIZING SNAPSHOT HD...5 CHANGING THE DRIVE THAT THE VIRTUALx FILES WILL BE STORED/RETRIEVED...5 CHANGING WHICH KEYPRESSES WILL BE THE HOT KEYS...6 THINGS TO BE VERY CAREFUL OF...6  NOTICE...7 KEYPRESS to KEYCODE CONVERSION TABLE....8                             SSNNAAPPSSHHOOTT  HHDD  ((CC))                                  11999900                               BBYY  TTOOMM  HHUUNNTT                               IINNTTRROODDUUCCTTIIOONN                                   TTOO                               SSNNAAPPSSHHOOTT  HHDD Snapshot HD is a utility that will allow the hard drive owner to easily switch between up to ten different snapshots. A snapshot is like taking a photograph of your computer's memory. Just like the photograph metaphor, Snapshot HD allows the hard drive user to easily flip between different snapshots, with each one having different applications loaded in. You can even have a different dos in one or more of those snapshots. More on this later on.                             GGEETTTTIINNGG  SSTTAARRTTEEDD WWHHAATT  YYOOUU  WWIILLLL  NNEEEEDD HHAARRDDWWAARREE-- Either an 800XL or 130XE with at least 128k of memory. Strongly recommended- The Black Box SCSI/SASI host adapter, from CSS, and a hard drive. In lieu of a hard drive, you could use a large ramdisk. You would need a XL/XE computer upgraded to more than 256k to follow this approach. It is possible to use Snapshot HD on a floppy based system, but keep in mind that each snapshot uses 260 double density sectors of disk space. SSOOFFTTWWAARREE-- You will need either Sparta Dos 3.2 or MyDos 4.50, or both (depending on what you want to do). Snapshot HD may or may not work with other hardware/software configurations other than those described above. Every effort has been made by the author to test out the reliability of Snapshot HD. But I do not own every possible hardware device, or every program. If you attempt to use Snapshot HD with any other configuration than those described above, you do so at your own risk.  Page #2 AALLLLOOCCAATTIIOONN  OOFF  DDIISSKK  SSPPAACCEE Snapshot HD comes configured to use D1: for the storage and retrieval of it's snapshots of your computer system. Each snapshot requires 260 double density sectors. If you have over 520 free double density sectors available on D1: you can safely store two snapshots to disk. If you have over 780 double density sectors free, you can safely store three snapshots to disk, etc. If you want to be able to use ten different snapshots, you should have at least 2,600 double density sectors of free disk space. If you are satisfied with the amount of free  sectors available on D1:, then you are ready to get started. If you desire that Snapshot HD use a different drive for it's files, then skip down to the section about customizing Snapshot HD. If you are a multi-dos user, make sure that you boot up using the same dos that is used on your D1: drive.                   YYOOUURR  FFIIRRSSTT  SSEESSSSIIOONN  WWIITTHH  SSNNAAPPSSHHOOTT  HHDD  It is assumed that you are at this point if you have followed the previous instructions. If not, STOP RIGHT AWAY and go back and please read it. If you are not sure that everything is set up correctly, please reread-read the previous instructions. Snapshot HD is a very reliable and easy to uses utility, but you could do some real damage to the data on your hard drive if you do not follow these directions. You should now load in SNHDLOW.COM if you are using Sparta dos 3.2, or load in SNHDMED.COM if you are using MyDos 4.50. After Snapshot HD initializes it will print a little message to let you know that it has initialized. Now press shift-control-2, and Snapshot HD will blank out your screen, take a snapshot of your computer's memory and cpu image, then save it out to disk. You will then have your screen turned back on, and it will look as though nothing has  happened. However, something HAS happened! Snapshot HD has effectively cloned an exact copy of what was in your computer. You have just saved snapshot #1 to disk, and are now in snapshot #2. Now simply press shift-control-1, and in a few seconds you will be back in snapshot #1. It is that simple. If you now get a directory listing from the disk drive that Snapshot HD has used to store/retrieve it's files, you will see two additional files that weren't there before. You should now see VIRTUAL1 and VIRTUAL2. You are now ready to load in a program into snapshot #1. A good choice at this point would be TextPro, Super Arc, Super UnArc, or Megabug. Any well behaved program can be used, if you don't have any of the ones mentioned. Simply load that program in as you normally would. After it loads press shift-control-2. In a few seconds you will back in snapshot #2, and it will be just as you had left it. Press shift-control-1, and when you are back into the Page #3 program you loaded into snapshot #1, it will be restored just as you had left it. It's almost as easy as turning the channel selector on your TV. At this point, you are on your way to exploring what programs you can use with Snapshot HD, and how to build your Snapshot HD environment to your liking. But before doing so, please read the rest of this manual. Especially the section covering "things to be very careful of".                    WWHHYY  TTHHRREEEE  VVEERRSSIIOONNSS  OOFF  SSNNAAPPSSHHOOTT  HHDD There are three Snapshot HD files. They are named SNHDLOW.COM, SNHDMED.COM, and SNHDHI.COM. Each one was assembled to load in to a different address in memory. And each one will print out a message- "Assembled at address $xxxx" when loaded. This message is useful for a couple of reasons. The first being if you ever suspect that you have somehow mixed mixed up the three Snapshot HD files. SNHDLOW.COM will report an assembled address of $1C20, SNHDMED.COM reports $1F00, and SNHDHI.COM reports $3629. These reported addresses will also help you decide which Snapshot HD program you need to use for some applications. Such decisions are easily made by a person experienced with the operating system of the XL/XE. These three Snapshot HD program files assure the greatest flexibility on the part of the user. A "Snapshot HD construction set", if you will.  We will discuss more about specific uses for each of these three binary Snapshot HD program files in later sections of this manual.                      AADDVVAANNCCEEDD  UUSSEESS  OOFF  SSNNAAPPSSHHOOTT  HHDD PPRROOGGRRAAMMSS  TTHHAATT  KKNNOOCCKK  OOUUTT  SSNNAAPPSSHHOOTT  HHDD Occasionally you may find a program that seems to knock out Snapshot HD. This is where the REHACKHD.COM utility comes in. Simply load this file AFTER loading Snapshot HD. If this doesn't work, and you are loading in other programs such as an rs232 handler, then try  loading REHACKHD.COM immediately before loading the offending application program. In any case, Snapshot HD should always BE THE FIRST PROGRAM LOADED RIGHT AFTER DOS INITIALIZES. Two programs that benefit from REHACKHD.COM are 850 BBS EXPRESS from Orion Micro Systems, and MOE from Carina Software Systems. UUSSIINNGG  MMOORREE  TTHHAANN  OONNEE  DDOOSS Page #4 You can have both Sparta dos 3.2 AND MyDos 4.50 integrated into your Snapshot HD environment at the same time. This would allow you to effortlessly snapshot between them with a simple hot-key. You should use Sparta's "KEY OFF" command before going into multidos mode. It is assumed at this point that you have a Sparta 3.2 bootable partition, a MyDos 4.50 bootable partition, and a third partition formatted by MyDos on your hard drive. The third partition will hold the VIRTUAL files. This particular partition will be referred to as the MyDos data partition to differentiate it from the bootable MyDos partition. You must use the SNHDMED.COM file. The SNHDLO.COM file will not work with MyDos because it resides too low in memory and interferes with it. SNHDMED.COM can be used with both Sparta 3.2 and/or MyDos 4.50. You must now edit the SNHDMED.COM file so that the "D1:VIRTUAL1" filename is changed to use the drive that Snapshot HD will save it's VIRTUALx files to. Please refer to the "Customizing Snapshot HD" section if you are unfamiliar with this operation. Once again, this partition MUST BE MYDOS compatible and large enough to hold as many VIRTUAL files as you intend to use. If the MyDos data partition is drive 4 (D4:), then you would edit the filename to say "D4:VIRTUAL". The point in doing this is that both Sparta 3.2 and MyDos 4.50 can read and write to a MyDos disk, but MyDos cannot read and write to a Sparta disk. Well, it can, but it would hopelessly SCRAMBLE THE DATA on your Sparta 3.2 disk! If you are a new Black Box/hard drive user, or are unfamiliar with either one of these dos', then you should stop right now and take the time to familiarize yourself with your hardware and software. If you do not, you can probably look forward to scrambling your Sparta 3.2 disk(s). If you are an experienced user with all of this, then you are ready to continue. Using Sparta 3.2, save a copy of your recently edited SNHDMED.COM file in BOTH your bootable Sparta partition and your bootable MyDos partition. You are now ready to go to your Black Box "Drive Configuration Page" and swap your bootable MyDos partition into the entry at the top of the screen (the one the system boots off of). After this, boot your system into MyDos and run your recently edited SNHDMED.COM file. Press shift-control-#, where "#" is the snapshot number that you want the MyDos snapshot to be assigned to. For this example let's say that you used #8. Then press shift-control-1. For the sake of simplicity, let's say that you normally use Sparta 3.2 for most of what you do, and you want to have MyDos as an accessory to your Snapshot HD/Sparta 3.2 environment. You would now  delete the VIRTUAL1 file, and go to the Black Box's "Drive Configuration Page" menu, and swap your bootable Sparta 3.2 partition into the first entry (the one the system boots off of). You now boot Sparta 3.2, type in "K