A@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@W!( L(1   Y I`  d  Ld M * @  $ % CC$$)ǥ%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}NjL= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G}Ǡ C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK},.COMLu L1 L ;LHL1  T`  `8  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}ǢDEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D8:MEM.SAV J y08 B|DEHI$}G V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%}% VY8 B V  @  /DE `E:D8:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}ǔLLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}rI|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}"E J. DUPLICATE DISKC. COPY FILE) hK. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILEm M. RUN AT ADDRES+}SF. LOCK FILE 5N. CREATE MEM.SAVG. UNLOCK FILE: pO. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEuL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}ǍDEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ǝED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}ǝ  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}VCOPY--FROM, TO?OPTION NOT ALLOWED608 FREE SECTORS COPYING---D2:DOS25.DOCM[l# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}GLLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}ǿ0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}ǞC, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}ǫΞ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}Ǎ`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH}G,^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}I}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO}: TOO LONG B VL!` L1I H1EΝDL1?@D|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 170ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}rDECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8wuR}r ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8wu"8<< & B JKIHiDiELV`L8 8 BLV`LxT}d8t8l Lu8hihiHHȱȱL8c !#3`Lu8hJ`H 8h`HU}Ǣȩh Q8L8 Z8L8 8L8 8L8 8L8S:@9E:E9H '9 H9I9 8 '9h)0ICV}9D9L8 L :::: :Lr:::IEL[::i:iIIL[:`:i::iX}::L:`L{:w:w: C`L:L: D8:MEM.SAV: 8| 9 '9`L:L: D:DUP.SYS:̩ 8Y} x:ɀL: '9`88 |9Y:X: '9L); D8:DUP.SYS; 8::88 9 '98? :`;WL`; 9Z}CLn; ` :Y;Y;L;L;)}$P Setting Up ATARI 130XE Ram Disk; 9L;VVb ; -9  [}[P L;D8:; :9 :Y;Ls3>00x|73>00x`c6<9c` 33c366fffg~33>00xg{f< ]}1{!!\]_\ED!EOHI B V`}   ^} TURBO-BASIC XL 1.5 (c) 1985 Frank Ostrowski!  ӥL]""$$ (p _}%J[WܠjeC /D%Zub2gTSt$8®݊Ò2% 5R `}Ţtd.’$3@X7t5w5$?## $#L+D:*.*S:C:P:$#.#) `:#(6ENeU\l؏&/ؕ؄sأ$ a}ljLENeU\lأ$8آǔƐƉƐƇ4cY%٦rULۉCۄړp^gyض%iwܸJڅ*ܣ$ڭڞجئأأ b}$ &,(""(222,0...324M2Z**22*22(222(a2e222rrx ,(""( c}0 0--.>**2*(22(2B222 V`hh@,lHH$HHHHHHӍl" d}H$HHl $`GHFH\` ` 4ӭ l 4Lq ӠԪӅԆL} Ӡ L(  e}Ǒ) ` b% +L:#HH 0 HHLj%ӥHlL{ee 8eee f}ǤeӦee褢%ƚƜ`88夅奅8 g}夕奕Ӡȱȱȱ㦢`L+`8` .E)))8@8e0 h}*څۅ܅݅ޅ߄ԠF0y"ޥy"ݥy"ܥy"ۥy"ڥy"و0ǠF0y"ݥy"ܥy"ۥy"ڥy"٥y"؈ i}0ǠF0y"ܥy"ۥy"ڥy"٥y"إy"׈0ǠF0y"ۥy"ڥy"٥y"إy"ץy"ֈ0 j}ǠF0y"ڥy"٥y"إy"ץy"֥y"Ո0L-`8`E)))8i@0 *ڄԠ k}"("!""" "L**""""""&О"("!"" l}G" "L**""""""&О"("!""" "L** m}m""""""&О"("!""" "L**"""" n}ǥ""&О"("!""" "L**""""""&Оd o}Ǡ"("!""" "L**""""""&ОL-6"e" p}"e""e""e""e""i""}"""}"""}"""}"""}"""}""ǭ"m"""m" q}""m"""m"""m"""m"""}"""}"""}"""}"""}"""}""ǥՅօׅ؅مԅՅօ r}Dׅ؅`` ` ` `80 `ԥՅ +.HJ)iFiFi1FicFi'ȐȦoFiU s}ȐFiiFi#iFiGi Fii@F iiFiiciՊFigi'iՊօשBL-`I t}))83Ԥԥդե֤֥פץؤإ٤L,K6"ХL--L--L- u}-E0:e٥eإeץe֥eՐ؅٥ׅإօץՅ֩L-8٥إץ֥հ'I8 v}م٘؅ؘׅטօ֘ՅL-ؤm\G0Q@Ն֩م؅2եمֆשم"ե؅֥م׆ةեׅ֥ w}؅ץم؆لԘ)q +` . |. &7i |. ,%!L?.`刱䈱㈱∱ x}ሱ`ԅՅօׅ؅م`ԍՍ֍׍؍ٍ`ԍՍ֍׍؍ٍ`L.L. Խսֽ y}׽ؽ` L%/`ӽޕ &ԅ)@إ)JJJe)e - M z} 1. &Je0F 2 . /L(8`@ԠՈքׄ؄` . |. , . . |. , #/L(8`0 I@ԥ) {} 2f / . & r 1. #/ &?P , .Iiԩ +)ԅ ,ӽޕL(`8`$ |})Ԧ61718191:1;1 (ť)8@0$Յ)e)e -F . / , . &1 1. }}: #/ &F I`U9>`D'RFuCU?b9dYdg@W2@>?tS)%)@0)%ԅԢ / . &G  ~}G 1.Ӱ6 #/ &.ӽߕ ,ԅԥ B1 (`8``0?i? . . / , #/ &ԍՍ }ǥ֍׍؍ٍ . . ( / , O2 / ,0 .JeF 2`L+) .e٥eإeץe֥e }Պi؊؅٥ׅإօץՅֆե1ԥ'JffffJffffJffffJffffم`ԩ&&&&*&&&&*&&&&*& }&&&*`Pi`)JJJeԅԘ)Peԅ`եԆ8@EB)JJJeԅԥ)PeԅԘ)3eԅԽ3eՅ՘)JJJ}3 }ǥ}3`)JJJeԅԥ)PeԅԹ3eԅԹ3eՅդЧ` 0@P`'Nu pX@(#d,X L(  兢 }ǘ0襙 bɥ⥋㩀 50ɥ0DȱȱȄ   ik#ZMkVgğe拰ㅋ }⅊0 eee拰 L f5дƨħ 4LY4 f5К,樥ŧH 4h h5L4樤ܱ.* O %30 }  5Ԅ +(fԤԈ`ř嚰Ԥ`ڥۥड़0-԰eڅڐۈ0eeL+58` }O#`,#5  6`]5 6DE 68DHEIHI V0$ 6Sл B } V,# 6` $#LllBHI V0HH V0Ԩh``{a$%Ȏ$$xө$Ѝ$ ` } `@X a Ӆʢ ʎD  _ɠ %` ɩHH `өL: g% D }:?*.ARBөjJHH`ՠԢӱԙ!ӹ!`֝DEIHB V0Y|ڝDa۝E }օܥׅݥܝHݝI V0+Ӡڑڑ0`l `  䅠 _ɠԐ }DZe拢 &L &Lħ © ¥4 䥝ň剰' k ɀ8@4= LY ĩ`OJ ]J?L }ǘ KԪȱLRHHצ R, hhLRHHHHHH /0ȑȑޠhhhhh }Džh`HHHHHHHHHH $H bɐhȥLHhhhhLň剰) }si桰` )``L(兢ħ #$ x Hҩ h$襚ҥw ԝ` } UV #T` ` `,H ¥ȍ` JKhLŢ  #)I L ¤Ȣ`L¦ ¦ Lĩ }G ½J*K+ $LąLĩ …L~ …`H Ġh é`,H hH Ġ  ĭ 8}} }ǐ L n [h`LkL © 8倝偝 Ġ  ĥ󥃅  Lĩ LH }ǩ éLH#h ĩ`H hKJ L+ , H hHHħ s hKhJ  Lĩ# qL }ǩ ŘL ũ& QŽLM " ĽNL  ĥԝL՝M  ĥԝN%LV  ¤ħ` Ťħ` ƪ Ċ }!Ťħ` ¢`届 x݅% L ĽCӠɀ L]Ɉ L] Ln LŠI }ǘHEDBL$HH hh +L `ħ LĢl ¦`OBRUT ԅՅ֦ }DZ󅗄`L+ ¢p 0 Hp hɈL` ,#,$,!Lé ,H ĥDEԝH՝Ih L }©L $`L© , k ĩԅ  + ĥ 夨ħ`2ƪƪ ! A!Ƚa!Ƚ!Ƚ!Ƚ!Ƚ! }ǝ``氤hhL1@$ƪư 0 0 n$P`L+FҐ֥װ綾إٰو LǠFf }ؐ ee&ee* &eeeԪeըee$.ƪ@!Ƚ`!Ƚ!Ƚ!Ƚ!Ƚ!`檦 }!!!!`!@!^!` Ȅ 8 n奱 ٥Lǥ֤צưĘ=ŗ78֪א& } eԥe$`L: L ԅՅօׄ 1פ& ٤ţĢԅeՅe8包卅 ]& }ǥ 8Ԩժ%אְ`ֆL夨ħ` FҰg8&0ei֥i0Tׅiإi0BJe؅eم0&f }fff&0 &0 eeL+օפإ颎 %8包ԥ卅 L ɥ }ǨȱъŠe拰8``,ªȱȱI ѝ3ȥLɥHHO] }Ǚ  ȥe暰Х ȥL+ʅȱhh`Lħ OԪȱԨ``L :0 } `L(奷 bɥ󥋅ȱȱȱȄ#鈄0B8eeŶ }ɛ,@LBˤ,ɛ`L?± ˤ樱f Oƨ x݅ + ~ [ˠ O樥0# +  L˥` }GLL :ɛ,$PH h $P润䧰 ʐLʦ䧐 +` ʐL3LBˢ }ǥԝD՝E֝HםI L 兢L]& 兢L% ,L6 ,L6 &L6 (L6妪@!I@!` ؐb`P KW ؐRB ؐ }=;G ؐ4@ ;+ƪƪ@!=A! (ƪƪ@!A! ƪ@! ,@@檦@!`!!!!!!`ƪ@! ǩjҤ }ǩ /L.٤ƪƪ@!@!, 舽`!`!!ـ!!٠!!!!!`@!jI*` . ֪ ( }ϰ`(8` ֤ׅԄ +҅L: Lyƪ8吪周Ly sũ + ŐL Ly sŠԄ h L} }= L}٩    e쪽pLyL( + ڥHAJ h) 0:i`  ک; n +ȱ)ȥ% }ݓ Lh ԍՅԄׅ֩өL:ƪ?Ԣ )ɠ )  -L &Lڦ@!)@!` n)8@ } -L:` / n)8@I= n)8@/ѩ֔$ሄ ,L: + n 0L8 n } 0L8 n H1L8 n /L8 n /L8 n D/L8 n 1L8LLإL( &)ԥ)8@JjH@ }MC)JJJe)e .F / .P . &F . #/ &L.L(HHHHHH /hhhhhh & } Y/hԅL:,` L _ܘ%ᨥ%Ly _ܘᨥLy _ܘEᨥELyٚ<|'g 0L` }ǽ!!!!i ` &LإL٥LyɥLzvmZ ƨ!0 4 䦵 ¥ԝD՝E֝Heם }I Lܤį eį L` x݅ƨLLLܤ ©`#ۢ Lĩ_,ߤ }ǘ ڄ . eڅԥeۅհ"8څ֥ۅא8ܥݰL۠Q%0ԅإՅ٥ަ0%Q% }L-ե0LޥڤLyمօנ6&֐ eו`L( Hħ hբՅ `ޥԢ `ޥՅ֠ }&&֐eܥeېڈ 7 \ 7 j N \ N j$0!ee80å/8ܥ۰uڕ0 }ǞeUiV`TUV`8UV`eTi`8TȢ` $L„')Q ȱ8 e }Ǖ新`8`L齀).Q Ӱȱ8e新 O :L䅫# *$Ŭ }G Ʃ HL"䥫ș L` Ml/#樱0ZS'`ȱȱȱȱȱȱȄ`ȱօȘuԩׅu՘e֨҄` }DZI 屝Ҡȱȱȱȱȱ` n$҅J?eԨe` L 兙 兛 n %3 Ԥ` ҩ, } , , L檤 ٙ!ؙ!י!֙!ՙ`!ԙ@!ә !ҙ!` 䤪ƪ!ٹ!ع!׹!ֹ`!չ@!Թ !ӹ!`ƪ!! }ǹ!㹁!a!A!Lp ґȥӑȥԑȥՑȥ֑ȥבȥؑȥّ` ***j)e)e`ʭȅiȅ }LJiȅȩȩ Lfإ  4  \ +] ¥򄟄 }dz   넨ɛ$0L祔 Z f0#ڠ쩀 ߩ6ei$0 녖چ + !5 }ɛȑ @膔7 ɛ 襔!ɛL! _ɩ8$IȢ %e拢 } &!$P* &8孨客 "&$ 1L~ L~ &L _ɰe拢 &L~ +0 %30Ԅ }`L 9:枢0 O L :H9Hhh tLHH`dh }hLCL馩`ʀLC枢0ְşLC`A枢Ɣ!L!L }ǚ!T 򈩛LQLD ijq ߰,iŰD VD8` 覲`8` 넬 S( +饰 }0 S0:$$ p8`$p (ȩ@҅ҥ򄬤 ߰ A L8򨢄 %Ӥ򈦬ʽ ʽ % }+HH 屝EҨhh$P0Ƭ 襯I `_A[`8`80 &Ոԅ }EB` 넬$ +  + h갳 h) + , 褔ԙ!` "8` 襔 ɛ "ȱ" }ǔ嫤!`! `) ɛ%)a{)_0:A[_դ`RE͕DATINPUԑCOLOҝLISԖENTEҚLEԛIƜFO }ǗNEXԑGOTϑGO TϑGOSU½TRAАBYŐCONԞCO͟CLOSŐCLҐDEǞDI͐ENĐNEנOPEΖLOAĖSAVŢSTATUӣNOTPOINԡXIϤOΒPOKťPRINԐRAęREA }ĨRESTORŐRETURΩRUΐSTOАPOХGEԫPUԑGRAPHICӒPLOԒPOSITIOΐDOӒDRAWTϓSETCOLOҬLOCATŔSOUNĦLPRINԐCSAVŐCLOAĚERROR- }ǠDPOKœMOVœ-MOVŪ*ƐREPEAԑUNTȊWHILŐWENĐELSŐENDIBPUBGEԒFILLTϐDϐLOOШEXIDIҖLOC˖UNLOC˖RENAMŖDELETőPAUSŖTI }ME$PROøEXEÐENDPROÑFCOLOҪ*̕-RENU͒DEDUMЪTRACTEXԖBLOAĖBRUθGO*’PAINԟCLӔDSOUNCIRCLū%PUԘ%GEԚG }OTGOSUTSTETHEΣ<<>ުNOOANĨ<<>STRCHRUSASVALEADATCOPEESIRNFREXLOCLOSQSGABIN }PADDLSTICPTRISTRIDPEE˦INSTINKEYEXOHEXDEDIFRATIMETIMMOEXERNRANTRUN%%%%GOUINSTERER+,%5 }&6(+8,<Xk`fghilm^deDѳHc?,Ќ,е,Y_Ҳ+7,/0 }1 2!3"4Ɛ"-"."-؂ٿ֐ː }ǾĐאŐbj+9,+;,ʐͭ }njͭ@ABC\=>[<+:е<,&%rvnnxc<\ }-78s_XV+@D&0d*"'2GJh N }Rl~&2 +饰(+VWZ ]a8`L`  ¤ħ.H h L5 䄡 } 䅭 bɠ04Ů .ŭ%) e拰 ĩ L+Ư0 Le }`毤Hɛ) h`  L ȱ R @ʆ ȱȄ Iğ` :62T F : }7 8 Lbԩ- L 8 8,I ɨ 8L.UH `ƨh $ %3   + \L L 8󅯩" }G 8" ©" Ư" L8q :Z#]abj(=) W같  L樤ħ`hh`H YhZ }L<>EO ƹƹ0`H f5h`I&` =? FQA` L񄳱ȱI 䦐 }Ħ ąŅ T k /䧰 k ,Ǡ ĩJH ThĥȑĥȑĦʊȑ`HHąŅ }H h hhhh ȱIELZ L`ȱI Hȱȱȱȱȱ }, h @ $L+L.*ȱȱȱȱȱjEE `EjI `e`ħ ¥ }0 ` Lk 䦪`! 䧰L A@L `I&`L ©؅ L. }DZ0`STOPPED륺 bɠhhL :ʅ` k %3Hƹ h5h`hbjH h # }ԤLQ #LLei  `LԑȥՑȥ֑ȥבȥؑȥّ``䈥剰 }#)iiLɠL4űI&`048ץğ=ȱȄ  }`L  L0e拠0ȱȄL  䦪`!' >?L (<ж`!  $Л +`,LőŐ78Ƒ8 Ƒ`8` - PѠ }ǥ`,,L L PQ 8,L ȱI ѝߠȱ`ԩ },L E  $EL+L],,,؍ 0âLɀL ©7 F󦹩 RbL g  }NJ0g `Ո V fL{Ն + +􅕄L AT LINE?BLOAMEVALU>#VAR$LE?DAT>3276INPUDISTACOVERFLO?LIN? }FOTOO LON?DE?GOSUGARBAG?CHMEͣ?LOA?NES?WHIL?REPEA?D?EXIXPRO?EXE?PRO?IS OPE?DEWR ONLCMNOT OPEΣRD ONLEOT };RUNTIMEOUNA!FRAMCURSO!OVERRUCHKSUDONMODNOT IMPRAGD?>#FILEDSK FULFATAL I/FILENAMPOINLOCKEDCM>DI }?FILPOIN?APPNBAD SECTORӥHՄ +h & .hԩ + ,҅L: ƪn (@Մ$ 0` 0 })` 0LoH - . /h &@Յ՘-J X) 0:i`AVC@ sŠ 5  <)  < }G L L + e +e`e`&&&&&&eee` & }&eee&*`` 兙 䦪!0 4 ۄܱ **m ݤܱEۅڦڱ= }I ܥeƥiեLN@ ` **)]` 00``MX ( _((8 }8`W)ߥ & &e &߽řِ׼:A%, ##(, PRINTING INSTRUCTIONS(((( GO TO DOS OPTION C AND ENTER&&( THE FILE NA}EME OF THE DOC FILE(((( THAT YOU WANT TO PRINT WITH ,P:2((N aEXAMPLE:<((g README1.DOC,P:F)( }()( DOC FILES ON THE DISKP&(&( 1)README1.DOC 6)MENU.DOCZ''( 2)README2.DOC 7)MONSHELL.DOCd''( 3)CONF}IG.DOC -8)BATCHENH.DOCn$$( 4)EDITOR DOC1 i9)PLINK.DOCx%%( 5)ASSEMBL.DOC 10)MEMMAP.DOC''(y 11)E}-RORCODE.DOCD:PRINTDOC.ARBR DOC1 i9)PLINK.DOCx%%( 5)ASSEMBL.DOC 10)MEMMAP.DOC''(y 11)E($ 6TRANSLATOR NOTES< This document was translated from German by Ron Fetzer, 22 Monaco} Ave., WElmont, N.Y. 11003, U.S.A. member of the OL' HACKERS ATARI U.G. INC. The] author Torsten Karwoth granted p})ermission for this translation on Oct./ d1, 1998. The translation was checked by the author.j Any German term tha}5t I was not sure of I put in parenthesis in German.; The doc. files are 41 pages long. You are urged to print then al}Cl out. VThe left side has a margin for looseleaf holes so you can file them in a\ fbinder.} }& 130XE+ Makro-Assembler. Version 2.1? ?b=e} }%Copyright(c) 1992 by Torsten Karwoth= =a-ci This program runs o}5nly with a CPU of the Atari XL/XE series and needs a; RAMDisk of minimum 64KB. This version should only be used with } MyDOS 2(other DOS's were not hard tested).8 The Copyright for the 130XE+ Macro-Assembler resides by me, Tors}ten SKarwoth. Never the less I give permission to disseminate the programY with the exception of the installati}%on disk if the following conditions+ :are observed.@ 1) All files also text which are on the installation disk m} ay not be [changed or removed. This is especially true of the Copyright-Notice ina the program and in the intro}-duction. All authors, who have produced3 modules (for the monitor or the toolbox) and who wish to share them } Nshould put documentation as to use in a textfile called "D1:EXPANSIONS".T The only files that can be changed is th} e configuration file, SETUP.CFG& 8and PAGESEQ.DAT.> 2) This is not a Public Domain program but it is allowe} d to be Ydistributed as a Public Domain program (Free Ware). It is not permitted_ to be sold commercially. This }+is true for the printed as well as the1 Pdocumentation of the program.V 3) The Copyright that came with the 1}"30XE+ Assembler produced programs( qor the original source code resides with the authors. This is also truew for th}Ce Toolbox and for the Overlay-Command files which do not belong toI this assembler. The copyright of the authors is to b}e observed and you dmust obtain a written permission to duplicate any part of the program j tor text.z Bra}unschweig, January 1992.! ,README1.DOCB dpage 1 any part of the program j tor text.z BraJ PIf another DOS instead of Mydos 4.50 is used then the following pointsV khave to be watched.q - MEMLO has }Cto be less than $1FF0 I-The RAM under the OS-ROM may not be used.O -The Toolbox uses the SIO 39/40 of MyDOS  } to load BINARY files. This! Kfunction is not implemented in other DOS.Q -Additonally the "QUICKLOAD FUNCTION" to the } monitor can not be used# gbecause the file with the name of "D1:Name.Ext" will not be loaded.m -The bottom dire }8ction on the system disk most likely will not be used.> A workdisk (on which only the Assembler resides) can easily be } produced Y(have you already made a copy of the system disk?). All users who after_ configuring have no more d }+iskspace (for the RAMDisk) must produce a1 workdisk, because the RAMDisk of MyDOS of the systemdisk may not be }L accessed. Every one should nail the following directions on his wall andR aobserve them!g 1. Make a copy of }3 the system disk to boot with to start the9 Qconfiguration program.W 2. After the configuration files is lo}#aded then go to DUP.SYS("DOS").) rConfigure the DOS as a configuration program as described in thex confi}Dguration program. Write the changed DOS NOT on the systemdisk ifJ you do not have a RAMDisk available(130XE Us}ers). Otherwise the @installation program does not run.F 3.Format a blank disk and write DOS to it with Option "}H" ;4. Boot the system disk and load the "Workdisk"A l5. Continue with further program notices.r r}*}=*?b s1st SCREEN MENUy 130X}!E+ Makroassembler Sytemdiskette( LCopyright 1991 by Torsten Karwoth!R vA)--> 130XE+ Makro - Assembler V2.1| B})--> PLINK V2.3(Packer/Linker)% JC)--> Unpacker for PLINK (First Aid)P qD)--> Mydos 4.50 VTOC Fixer V1.1w E)--> }Configuring the Assembler Establish a WorkdiskJ ZSelect a letter!^^d oREADME2.DOC} } page 1> @b tIf you Press "F"z INS}9TALLATION - Prepare a workdisk for the Makro-Assembler.? You need a prepared disk wich contains the MyDOS system files.}C If you do Znot have such a disk - stop and prepare one now. Format a new disk with` MyDOS and write the DOS-Files} with option "H" to this disk.& TYou did not start the configuration program!Z qPlease do this first!w Contin} ue with "W"66< GREADME2.DOC] qpage 2his first!w Contine =Configuring the MakroassemblerX Xv=x} }J When you start you should make an insurance copy i.e. workcopy of theP double sided system disk. Put he original sys}temdisk in a safe place." kThis is not an idle direction! All changes should be made an theq workdisk.  } NThe program needs upon start up a RAM-disk. The MyDOS on the system diskT is a 130XE compatible 64KB RAM-Disk.!} When in the course of the& oinstallation you receive a prompt from MyDOS to turn of the RAM-disku then yo"}Au may NOT write that DOS back to the installation disk! ShouldG you have so little disk space that you cannot use a R#}AM-Disk then you bhave to prepare a system disk with MyDOS (with the turned off RAMDisk).h ONLY SAVE on this dis$}k! SFor the program to work correctly the on hand system disk has to matchY the program. This is especially %}%true of the RAMDisk usage. The BASIC+ tprogram CONFIG.BAS in the directory of SYSTEM on the system disk is usedz for&}F this. This has to be the first item to be started. Select upon bootL up of the menu the option "E - Konfiguriern". T'}hen the configuration 2program will load.8 PLEASE BE NOTE: THE PROGRAM RUNS ONLY ON A 130XE COMPATIBLE(g(}er. SSPEICHERER-WEITERUNG,D.H) RAM EXTENSIONS. IT HAS TO USE "PORT B"Y c($D301)!i First you are asked )}5what type of RAMDisk is built in your computer. If; you are not clear about the type of RAMDisk you have run the p*}rogram VPAGEFIND, also do this if you have a RAMDisk that is bigger than 256K-\ Byte! The program finds EVERY pos+}(sible combination of RAMDisk available.. wIn addition, the RAMDisk will be tested. More information is available} ,}C in the program "PAGEFIND.BAS"!& oIf you are the owner of an ABBUC expanded(192KB)computer, then pressu key<3> a-}-And RETURN. The program knows the page sequence for this RAMDiskG and begins the test. If your RAMDisk does not appear.} in the menu, then byou can yourself list the sequence(if you know it). Select for thish Option 0 - Manual/f/}4ile input. If you had previously run PAGEFIND, then: the PAGEFIND produced page sequence will be used. If you don't want0} this Uthen you have to remove the file "D1:PAGESSEQ.DAT"!. This happens[ automatically as soon as PAGEFIND1}' is started. End PAGEDIND without- msaving the page sequence. You can also with the BASIC command:} 2} +XIO 33,#1,0,0,"D1:PAGESEQ.DAT"1 Erase the files and run the program. If you select "manual/file input" 3}L then you have to enter the page sequence in 2 digit Hexadecimal format.R The program tests the complete RAMDisk and4} erases all files in the$ oRAMdisk. After the test the program displays the found RAM space andu CONFIG.D5}OC page 1))/ Oshows various configurations.h Explanation of the "H6}ashing Page:" ^This version of the Assembler uses a Hashing algorythem to produce thed symbol table and as a7}0 result it produces a fairly fast assembly. The6 X"normal" symbol table is under the\ OS-RAM. It has about 772 fre8}e Qentry spaces and the contents would be disturbed when the the menu isW loaded. If you select a "Hashing Page"9}# the symbol table has space for) r2048 (two thousand and forty eight) symbols and these symbols naturallyx remai:}Dn (until the next assembly). 772 symbols are enough for about 2 orJ 3 pages of source code(ger. Quelltext). If y;}ou have enough space eavailable for more than 3 pages for the source code or you configuredk more than 3 pages<}7 of source code, then you should put at least one page= Tfor the symbol table.Z The program question of how many pa=}&ges to reserve does not only include, uthe source code but the whole space requirement of the assembler. If you{ re>}CGquire 8 pages then the program on its own takes one page. If you takeM one page for the symbol table then you have 6 pa?}?ges for the source code. hThis is the standard configuration on a 192KB RAMDisk. You can alson reserve 7 pag@}:es for the source code but only with the small symbol@ table. This is not advisable because in the source code thA} ere are a [limited number of symbols. I have used in a 48K source code program morea than 700 symbols, and I thinB}k this is rather small. hIf you intend to use 4 pages(or less)for assembly then answer then question if yC}:ou want a page for the symbol table with a N(for no). If@ you have more pages (up to 8) to assemble then answer J(ja foD} r yes)! XFinally the program asks what drive number for the RAMDisk. For the user^ of MyDOS the value is 0(zeE}*ro for automatic configuration) (4m?The0 bfollowing paragraph is for non MyDOS users 24m?)h (1m?If you do not havF}4e a RAMDisk(because the extended RAM is used for: the program) then select "1" as the drive number for the RAG}MDisk Dotherwise give the drive number of the RAMDisk. (22m?)i vExplanation| TH}Hhe program under MyDOS can determine by itself which drive number theN RAMDisk is located. That is the reason for seleI}cting "0"(zero) automatic iconfiguration. Since under other DOS' this may not be true, it iso essential thaJ};t the RAMDisk drive number be specified. If you select aA value other than 0(zero) than the automatic configuratioK} n uses the \entered drive number. The "1"for (g. keine RAMDisk) "no RAMDisk"b corresponds with drive #1.L} PThe option for all owners of EPROM DISK by R.David. next are asked forV the EPROM DISK number. If you do notM}" have an EPROM disk or you do not( qwant the assembler being booted from the EPROM disk then please pressw only N}C otherwise give only the drive number which the EPROM diskI jshould have after you boot it.p CONFIG.DOC O} page 2$$* sThe EPROM Disk was a little expansion board with 8 EPROMS on it an a newy OS. P}CEIt was possible to show a menu wih all EPROMS and BOOT from an epromK as if it were a disk. Therefore it had a drive numQ}Qber, and after booting fyou can do all DOS function on it. (Load, dir) except DEL, FORMAT andl Write of course))R}8. I had Turbo-Basic, XE-ASM and some other stuff on the> EPROM's. There was a tool to scan a disk and create on(or two) S} 64k files Yto program an eprom with. You could use two EPROMS per disk if it dosn't_ tfit onto one EPROM.} T} )Explanation/ xAfter you boot the EPROMDisk drive #1 is blanked out. With this function} U}J after booting, the EPROMDisk will assume the selected drive number.P Thereby you save yourself the manual switchinV}g with the "@" sign. If you" kquit the assembler, then the EPROM disk will become the drive number itq had before tW}he assembler loaded. eFrom the EPROM-Disk you can boot a DOS. Then the EPROM-Disk would becomek drive #1 and you cX}7ould not access the floppy drive #1. There was a= keyboard function (I think CONT/SHIFT & KEY 1-8)to set the EPROMY} Disk to Xthe desired drive number, i.e. CNTL-SHIFT-4 and your Eprom Disk is D4:^ Now if you boot the assembler,Z}* it will set the EPROM Disk number to the0 yvalue that you typed in the configuration utility of the 130XE+ ASM i.e.} [}K if you type "9", then after booting the Assembler, the EPROM-Disk is D9,Q not D4 or D1. If you quit the Assembler, the\}n the Eprom-Disk will be# lswitched back to D4 or the number that it was set to before ther assembler l]}oads. VFor the next step please put in the systemdisk in drive #1 in order to\ write the configuration file ^}(to the disk. If you have an old. wconfiguration available then it will be updated,(g. d.H.?)only the RAM} _}Iconfiguration will be overwritten (the old information such as color andO other selections will remain as before). T`}his is shown by the prompt! ."Updating!"T ^Notices:d If the configuration doesa}0 not exist then after loading you will receive6 the assembler prompt "SetupI/O failure!". This is due to the fact thab}Ct Qin the configuration file there is no system information stored. Go toW the Setup-Menu and select "Save Setc}c#up" (after you have installed your) hfavorite parameters) to make sure your selections are secure.n In addition thed}: program shows you the new MyDOS configuration. THIS YOU@ SHOULD NOTE WITHOUT ERROR (The page sequence table). A littlee} error here 4can mean HOURS OF WORK later on.Y fExplanationl The changed RAMDif}8sk has to fit into yDOS. MyDOS will accept almost any> type of RAMDisk. The access of the RAMDisk is the result of tg} he "Page- YSequence-Table". This table is changeable and a change in it has to be_ considered with the utmost carq}b%DOS SYSb*)DUP SYSb SRAMDISK COMb\AUTORUN SYSbPRINTDOCARBbREADME1 DOCbREADME2 DOCbgCONFIG DOCC)bJEDITOR DOCbIASSEMBL DOCb MENU- DOC#`MONSHELLDOC#lBATCHENHDOC#HzPLINK DOC#MEMMAP DOC# ERORCODEDOCq+e or the files in the RAMDisk are lost and1 Pthe source code is disturbedV `CONFIG.DOCw page 3r}  YMake sure that the page sequence of MyDOS is only 64 Bytes long. If you_ are one of the people who has}+ve a very large RAMDisk then you still can1 lenter max. only 64 Bytes. The "0"(zero) closes the table!r After MyDOSt}C> is fully configured then it has to be written to the systemD disk with the option "H - Write DOS files". Now a test cau}un be done. Boot _the system again. Turn the computer off and in a few seconds turn it one again thereby erasing alv}l files in the RAMDisk.6 SNotice on the RAMDisk spaceY I falsely gave a configuration w}%parameter, in which I chose a Save-+ tRamdisk in page 2(32KB bytes). This was a mistake on my part since az 32Kx}FB RAMDisk cannot have a directory section. This section resides onL sector 360-368. A 32KB RAMDisk has only 256 sectoy}rs of 128 bytes each. gOnly an 48KB RAMDisk has room for the Directory(384 sectors of 128 bytesm veach).} z} *PAGEFIND.BASN NZ=\b The PAGEFIND program serves{}. to find the size of the RAMDisk, test the4 RAMDisk and produce a page sequence table for the configuration program.|} @After you start the program you will have a choice menu.S First choice - Selection #1 -Find Page Seq}}uence VThis program gives you first a info. text and then it begins the test\ of the RAMDisk. This section l~}(ast only a few seconds because it is in. wmachine language. In addition it will also test the timing sequence. In} }Ithis test (as with all others) there cannot be an error detected! ShouldO you find a problem with the timing sequence th}en you can write to me. In! jorder to help you please send a self addressed stamped envelope and ap description o} you save the page sequence table on D1: and } you start CONFIG.DOC5 ;page 4EEK the configuration program again. Select then }"<0>(zero)-manual/file [input". The program then reads the page sequence of the file.}} %CONFIG.DOC< [page 5e sequence of the file.}D BThe Editor of the 130XE+ Makro-AssemblerY Y}=!}=== UThe editor is not an ordinary text editor but a specially programmed[ very legible full screen editor to!}' produce an excellent source code. The- veditor because of its unique nature cannot be used to produce letters or| o!}Hther documents. The source code is saved in complete token form and aN syntax check is performed. If an error is detec!}ted then it must be first [corrected before the line is accepted in the source code.a The source code will be !}EC-partitioned into pages. These pages are 16 K3 bytes long because of the RAMDisk. Because I am not a magician I was !} Nunable to produce a single ram area (instead of 6 pages with 16 K bytesT to produce one page with 96 K bytes). Va!} rious schemes were abandoned& obecause of lack of speed. I think that partitioning it into 16 K bytesu instead !}%of one large page has an advantage.+ tIn the first screen display you will find the title line of thez ass!}Fembler and the version number and the copyright notice. When the menuL line is called then instead of the title a menu(I!}CON) appears. In the gsecond line the actual page as well as the free space on this page ism shown unless you!} have an error message. hThe cursor can be moved with the cursor keys(and control). If the cursorn is on top or!}: the bottom of the screen then the text will be scrolled.@ With the key combination of SHIFT/cursor up/cursor down you !} can scroll [16 lines at a time. An insert mode is not available. To insert aa character in a line you firs!}-t have to create a space with CNTL/INSERT.3 With ESC you can change back an unwanted entry. With SHIFT/DELETE you !} Ncan erase a line at a time. With SHIFT/INSERT you can insert lines intoT the source code. With SHIFT/CONTROL/- you!} go to the start of the current& opage only in the source code. With SHIFT/CONTROL/= you go to the end ofu the curr!}$ent page only in the source code.H VBlock Markingz ---!} -  [You can mark a text block with CNTL and "," or ( "[" and "]"). Thisa block can for example be era!}-sed, copied, saved or printed. If the text3 block is completly marked ( it has a beginning and an ending) then the !} Ntextblock will be shown in inverse. The marking will automatically beT erased if the editor is used or switched !}to another function.8 KCONTROL-functions m m}=!}C= Y $Start assembling* +P4 JJump to the monitorP ZEDITOR.DOCq wpage 1}!} [ +Start of block marking1 2]; PEnd of block markingV W?` Jump to the start of the bloc!}k CLEAR &Erase block marking, 2INSERT6 RPut a character in the lineX ^DELETEb Erase a character under the!} cursor TAB KSet a tab stop(See the special explanation below).Q TESC[ nActivate menu linet SHIFT/- !} Jump to the start of the text% NSHIFT/= Jump to the end of the text.i Source Code Leveling!} (g.Ebenen?& &D=FL With SHIFT/CNTL/NUMBER KEY you can select a co!}nfiguration of one of a gmax. of 7 pages. In the status line you will be shown the page's freem space and a poss!}ible error message. dFunctions like loading, saving or block erasure will be shown with thej wmenu line.} !} 2Setting of the TabulatorsP Pi=kq With the key!}= combination of CNTL/TAB you can set the internal tabulator.C This is the space where, wo mnemonics(expl: "LDA") or com!}ment start. If Vonly a comment is in the line then it is not executed. Example:f +- Tabulator 1 +- Tabu!}lator 2 61234567890|123456789123456|890123456789F G|V Y|` ; One comment line(no mnemoni!}cs) will not be executed.! 0symbol: LDA#1; X; comment after the mnemonich STA(zp-base+ offset),!} Y ; comment CLC- ;; All clear?A The cursor postition determines which tabulator is set. If t!} he cursor is \in the first 15 spaces then tabulator 1 will be set, otherwise tabulatorb 2 is set. You can orient yo!}.urself more accurately by noting the empty4 space(memory?). If the cursor is in the 100ed place or to the right of!} Oit then tabulator #2 is influenced. If the cursor is on the 1000nd placeU or left of it then tabulator #1 i!}!s used. You can for example go' pcompletely to the right (space 39) and set tabulator #2, then you negatev all co!}CBmments from the screen to "only comment lines". This solution hasH xthe advantage of a clean and orderly contents.} !} Memory Space Usage: eIn assembling a source code line due to tokenizing requires a littlek more space than !}9 in ASCII format. But in return due to tokenizing you? IEDITOR.DOC` fpage 2ppv increas!}Be the speed of assembly. Example of a constant and its use ofH dspace in the source code.j Space requirement o!}f the source code:+ 0Value8 U| Normal ASCII | Tokenformatl ly-+---!} - +-1 41-9> A| 1E [Byte(s) | 2 Byte(s)r w10-99} !} | 2 -"- | 2 -"-3 :100-255@ C| 3H K-"-O R| 2V Z-"-q x256-999} !} | 3 -"- | 3 -"-2 71000-;9;? B| 4G J-"-N Q| 3U Y-"-p q1u0-65535 !}| 5 -"- | 3 -"-1 6$0-$F> A| 2F I-"-M P| 2T X-"-o v$10-$FF| |!} 3 -"- | 2 -"-0 9$100-$FFF= @| 4E H-"-L O| 3S W-"-n u$1000-$yF | !}5 -"- | 3 -"-/ 0%8x8< G| 2-9 -"-K N| 2R ^-"- (8 bit} !} )binnary numbers)/ xA number in tokenform first uses a byte as a header and in addition one} !}J or two bytes for the number value. The header stores various informationP such as, is the constant negative, how !}the editor is to display it" k(hexadecimal, decimal or binary), if it is an 8 bit or 16 bit numberq (numbers fro!}=m 0-255 will be changed to 8 bit, above 255 the numbers willC be 16 bit) etc. A negative constant uses just as many!} bytes as a ^positive constant (in my assembler). With an ASCII oriented editor, ford example the ATMAS, you ca!}0n write "LDA #-1" and the accumulator will6 Pstore a value of (-1=$TF, the ATMAS does not react to the 16 bi!}t Qvalue). With the 130XE+ Makro Assembler this procedure does not saveW space. You should write $FF if you mea!}C#n $FF, in addition by my assembler) rif you write "LDA #-1" you get an error message because you tried tox load !}D a 8 bit register with a 16 bit value. This error message is not aJ "hard" error but only a warning. This warning can o!}nly be stopped in the cSetup so no warning appears during assembly to stop the the assembly.i Because of the ne!}5w tokenformat a new OLD-ROUTINE was implemented so a; that a source code could be rescued if there is a hard crash.!} With VSHIFT/CAPS is this routine accessed. It is effective only on the line in\ which the cursor is located. This!}( Old-Routine should only be used in an. wemergency if the line has control or graphic characters (after a crash).} !}IThis routine can destroy the actual line and the following lines. AfterO the use of this routine you have to use the !}"normal" Old-Function from! jthe menu to correct a few internal characters. Otherwise you cannotp scroll upward!}.* 3Notice9 The actual page will only be disturbed if a byte appears that has!} all Tits bits set. This is for example by the number "255", "$FFxx, $(xx)FFZ etc. the case. In this case the l!}&ine will on the spot be split and the, Nrest will appear as a new line.T ^EDITOR.DOCu page 3!} WExample: Put in the editor the line "LDA #255+255". This old function] will destroy the line since t!})he value of 255 is interpreted as a line/ xheader ( this has something to do with the internal construction of the} !} source code) ^When you use this function at the end of a source code it is possibled that an old source code i!}0s attached ( one previously created ). Then you6 dhave to block mark this section and delete it.}!} (EDITOR.DOC? dpage 4k this section and delete it.} G' 5The AssemblerY Yf=io The assembler %};is loaded with CONTROL/Y and after translating the sourceA code returns back to the editor. Should an error oc%}C cur then the \assembler will show the error in inverse. After the assembling isb finished you are shown the %}.end address, the number of symbols and makros4 oused and also the amount of free ram on the symbol table.} %} $Makro-AbilityH HU-W] You can use max. 7 numbered para%})meters in the makros. Makros cannot be/ Inested(g. verschachelt).O Makros have to be defined in the beginning! S%}hould a makro be used then! jthe editor has to be "notified" by putting a period in front of thep makro name. I%}?2 ; Write Accu%} with high byte =STA?1+1 ; Write the address +1K QENDW uLoop: MAC ; no parameters{ AS%} SEMBL.DOC %page 1//= ELDY #0K WMaclp@: DEYe BNE Macl@ ; @ is the cha%}racter for the local symbol* 0END6 Attention symbols can only be 8 digits long! With the local symbol ther%}e Qwill be attached a 2 byte integer(when possible). The "@" symbol willW not be translated because it is ne%}#eded later on to differentiate the) 8symbol table.> qMaclp@ is OK. It is 6 characters(+2 byte integer).w Testlp%}C3@ is also OK, but it can "only" be used up to 256.9 pTestsym@ is WRONG. There is no room for the integers.v You can%}B declare as a local symbol a macro(but you should not do it). AnH ferror will not be reported.} %}% Use of a makro in the source code? ?`-bh start: .POKE $D301,$%}FF ".DPOKE $60,DLIST0 C.LOOP(G.SCHLEIFE)I The number of used parameters must equal the number %}of parameters in the `definition, otherwise you will get an "Macro error" in assembling.} %} Mathematical Operations9 9P-RX An expression may max. have 7 parenth%}$esis. Math operations are possible* Din (order of operations)J ^# ... EXCLUSIVE-ORd v& ... Binary AND| !%} ... Binary OR ,* ... Multiplication2 B/ ... DivisionH W+ ... Additon] p- ... Subtractionv With ">%}B" or "H" you can select the high byte of a value. With "<" or "L"H you can select the low byte. The error in the old %} math routine was esolved. The selection will now also work with nested material. Fork vASSEMBL.DOC} %} page 2% 0instance:6 fAddress: DFB>(tab1+offset),H:(tab2+offset)...} %} Constants? ?H-KQ '.. ATASCII code constants(example: CMP #'A)%} 10...Decimal constants% A$F...Hexadecimal constantsG ^%1...Binary constantsd ^x...Bit constant. ^O equ%})als 1, ^7 equals 128, ^15 equals $8000J ]Negative Constants} %} - TConstants and symbols can also have a negative value.t Assembler%} Directions, ,@-CI W-ORG AL(,Ap)] This establishes the starting ad%}dress of the program. 3AL = logical address9 PAP = physcial addressV ORG $4000 assembles the program at addr%}"ess $4000. It also runs from that( 2address.8 ORG $4000,$6000 assembles the program at address $6000. It runs%}C at address $4000 +-EQU or "="1 kPointing to a constant or the result of a math. operationq Attention. T%}=he ATMAS-directive EPZ(which is the same as EQU) was notC Qimplemented!W hRtclock: EQU $14n "rtclock=$14" w%}ill be "rtclock: EQU $14"! +-DFB, DFW1 Ydefine a constant in the object code._ jASSEMBL.DOC} &} page 3 TBitab: DFB 1,2,4,8,16,32,64,128; data in bit form ( 8 bit)Z Address Tb: DFW $b800,$bc00,$9430..&}#.data in word length of (16 bits)) <-ASCTextB =string terminator("\/%$). Attention the STZ cannot &}appear in the text!! ?"= text entered in ASCII codeE k/= text entered in inverse ASCII codeq \= ASCII cod&}8e, but only on the last bit 7 is set (end notification)> W% = internal screen mode] $ = internal inverse screen mode&}. Example: AASC"ATASCII-code" or ASC %screen mode%G R-OPTX gOPT %x0010011m Option when asse&}mbling source code. c is an expression that would only be used in 8 bit work. Here Ii have introduced a &}5new procedure. Bit 7 determines if the other bits in; assembling should the Option-flag set or not. In the beginni&}ng of .assembling the flag is always 04 =Example:C x=1 -> bit 0,1 and 4 will be set, all other bits are unaff&}ected. Sx=0 -> bit 0,1 and 4 will be cleared, all other bits are unaffected.Y This procedure has the aim of settin& }%g bit flags at various parts during+ 8assembling.> eMeaning of the bits (if they are set)k 6 - Quick mode. Af& }7ter the assembling everything stops, no symbol table= and all other options are ignored including (GEN directive)! & } M5 -Non-Query. Normally when the symbol table is shown 16 lines areS always displayed and you have to press a k& }ey to get the next 16 lines on% nthe screen. If this bit is set then scrolling starts until a key ist pressed t& }8o stop it. To start scrolling again press a key again.> 4 -Send report. After an error free assembly you will be asked&} do you Ywant a report. This is normally under a printer device item. Then the_ symbol table will be printed, &}Csee the following bits. h3 - Head Line. If bit 4 (send report)is set then the title line will ben displayed. The&}: text must be in the comment line on the first page. This@ comment line must be the first line in the source code and a&} s a first (symbol must have ">". pExample: " ; >This is the title line! Here the program can reside.ttz ASS&}EMBL.DOC $page 4..4 a2 - List the makro names with their status.g 1 List all symbols. Al&}3l defined(global) symbols and their status will be9 Edisplayed.K 0 Mark labels. All symbols that are defined with t&}heir status will be fmarked in the symbol table. Their status in the symbol table is shown asl "marked". All suc&}8h marked symbols(global) can be used in the data and> can be exported to other programs. See also GEN and LIB.&} Here the Ysetting or not setting of the bit really makes sense. You can influence_ only this bit without affectin&}+g the other bits if the Option to erase is1 hset in the beginning. Yes OPT 0 turns the screen off!n -GEN"" (exmpl: "D8:LIBRARY>SYMBOL.LIB")4 GENerate is used to save the "marked" symbols. They then can be used in&} Oanother source code if you use the LIB directive. Attention MyDOSU differentiates between upper and lower c&}ase letters! <-LIB",<). The selected option will then appear. To activate^ the function press . Wi*$}'th ESC you can return to the editor.= fNotice on File selection in the File-Box| -*%}'-*0 yShould you select a disk operation then a file box will appear. In this} *&}K box is shown a part of the directory, the disk drive number and the freeQ espace of the disk.k In the first few l*'}7ines you will be shown the directory path. Sub= directories will be shown with the word "SUB" instead of sector *(} length. XTo load a file use the cursor keys and press . The file name^ appears in the bottom line of t*)}*he box. To load this file press 0 yor select another file. The file selection can be aborted with the ESC} **} key. WTo save a file select the name from the directory(to overwrite the file)] or select a new name for the fil*+})e. Then you press again. Should/ xa file to be saved already exist on the disk, then you will be asked} *,}5 whether to overwrite the file or abandon the save.; The drive number you can select with "SHIFT" and a number ke*-}y. For Vexample:"SHIFT/8" will be the RAMDisk. Not always will you see all file\ names in the file box. Source cod*.}(e files will have internal extenders of. w".ASM". For example:"D8:FASTLOAD.ASM". Source code in ASCII format will} */}Ihave an extender of ".SRC". Example "D1:IOLIB.SRC". In these boxes thereO will normally appear only files with appropria*0}te extenders. The files! jwith endings (exampl. ".SRC") will also be shown in the file box. Withp the TAB key y*1}page 1HHN u4. ASCII Text laden (Load ASCII text){ 5.*5}) ASCII Text speicheen (Save ASCII Text)/ N6. Text drucken ((Print text)T w7. Suche nach ... (Search for...)} *6}38. Sprung zum Disk Operating System (Jump to DOS)9 9. Tool box -> Assembler - Hilfsprogram laden und starten. (Toolbox*7} -> 4load and start assembler help programs): o10. Preferences/Voreinstellen (Install preferences)u 11. Bloc*8}4k marken("abfotografiern) (Block marking(copying)): i12. Block einfugen(ankleben) (Block pasteing)o 13. Block au*9};schneiden(loschen und zwischenspeichern) (Block cuttingA Y(erasing and saving ))_ 14. Block loschen(wegradieren)*:}(Block erasing - no save)." k15. Quelltext repariren/retten(old function) (Source code repair/q recovery) *;} 316. Quelltext loschen (Source code erasure)U gMENU EXPLANATIONS} *<} =C P1. Directoryt t}-*=}--- Self explanatory.= W2. Loading of Source Codeu u}-*>}- bThe file selection box will appear. Select the wanted file or leave thish function with ESC. Sh*?}4ould the loaded file not be a source code file then: an error code will appear and the text in memory will remain. Atten*@}tion! UThere is no warning if this option is accidentally selected and the[ source code in memory is not saved*A}'. This means, if you choose "load- vsource" then you will get no warning, if your current work is not saved.| Y*B}.ou're about to loose your source in memory.L f3. Saving the Source Code} *C}  - $$* 2MENU.DOCK Qpage 2[[a The file selection box will *D}-appear. Select a file or type in a name.3 jPress , the disk drive will start saving it.} *E}C !4. Load ASCII TextB BT-V\ Load the same way as in selec*F}F(tion #2(Source Code Loading). The ASCII. wtext will be incorporated at the cursor position line by line in the} *G}Ipresent source code. If the cursor is at the END of the current page andO you ASCII load a text, then it should switch a*H}utomatically to the next! cpage and continue with loading, when the current page is full. } *I} 5. Save ASCII Text; ;M-OU File selection is the same as in #3(S*J}!aving the Source Code). Here you' phave two possiblities. If with the block marking function a text isv marked *K}B (the marked text will appear in inverse) only the marked textH will be saved. Otherwise the text will be saved*L} from the cursor _position(the line the cursor is in) to the end of the actual page.} *M} 6. Print the Text8 8I-KQ Mark text as in #5.(Save ASCII text). *N}The text will be sent to the# lprinter or some other selected device. The most important point is thatr all symbol*O}>s will be shown where as in #5 only the the text in theD "short" ASCII form is shown. The printer is the default d*P}evice. This can _be also be an RS232 handler(expl. R:600,8N1 for the RS232 handler). Thee default of course can be*Q} changed.* AExamples of the Format` `v-x} *R}? Output on disk as per #5.("-" = empty symbol(g. Leerzeichen)E p_Symbol:LDA_(Pointer),Y ; load source codev _INY ; *S} next value IOutput as per #6 a selected device(formatted output)O W_Symbol:b_LDA(pointer),Y ; load sourc*T}e code _4INY ; next value.V g7. Search For...} *U} -$ mThe search order can be entered or changed. If you press thens the searc*V}Ah begins from the cursor on. If the cursor is at the end thenG OMENU.DOCh npage 3xx} *W}CJ the search will be ended, otherwise if a search item is found it will beP shown in inverse. Should you want to continu*X}Xe press again. You" kcan leave this option by pressing ESC. While it is searching you canq abort the *Y}=search with . The SEARCH function may need some timeC fdue to de-tokenizing every line.} *Z} 8. Jump to DOS> >L-NT The DUP.SYS menu will be loaded and dispa*[} lyed. Attention make sure the& Isource code is locked and saved.n y9. Toolbox} *\}! !+--3 Here you can load and run help programs (and own utilities) for *]} Nassembling. You can load also "normal" machine language programs. PleaseT read the special section in the "Toolbox"*^}. D10. The Set-Up Menu installation procedureZ Z}-*_}- 7You can do the following installations:= m1. Printer Device(default item when printing)s 2. Color s*`}+election. Select with "<",">","+" and "-"1 h3. Select the line that is to be shown after boot up.n 4. The mode sel*a}&ection for sorting of the directory., c5. Set the INVERSE-MENU-FLAG(dependent on the color).i 6. Turn the I/O soun*b}d on or off. >7. The expanded mode for binary numbers.D s8. The expanded mode for Hexadecimal numbers.y 9. T*c}/he format for the HIGH/LOW recognition symbol5 Z10. The LAYOUT-MODE for the editor.` 11. To suppress the error cod*d}e reporting. ]The changed installation selections can be saved with "SAVE SETUP",andc can only be used with "Exi*e}/t & use". You can load the installation with5 B"Load Setup".GGM UMENU.DOCn tpage 4}*f}# 51. Printer DeviceW Wh-jp If you do no*g}-@F Here you can select among 3 modes "Full","Name" a*t}nd "None". In the a"Full" mode the sorting is also done on all sub direcories of file. Ing the "Name" sorting it*u}3 uses only the name. In "None" there is no sorting9 Adone.b v5. Inverse Iconbar?} *v} --/5 Depending on the color selected it is necessary to set this flag. This*w} Phas only an optical meaning(experiment). The action of setting this flagV will only be observable on the next use*x} of the menu.1 E6. Serial IO-Sound?f fy- *y} MWith this flag the disk drive sound can be activated or not. A few fastS formats are not activated by this flag.*z} MENU.DOC' -page 577X l7. Expanded Binary?} *{} #-%+ tIn this selection you can use the extended binary number mode of thez edi*|}Ftor. If the flag is "Yes" then the binary number will be given in a 8L or 16 bit group, that is they will be filled u*}}p with zeroes. Example: (%1101 or %,031101V f8. Expanded Hex} *~} -# lIf this option is selected then you willget two or four digitr hexadecimal*}* numbers. Example: $1/$01 or $123/$0123J `9. Expanded High/Low?} *} - iExtension of the High and Low byte selection. The "normal" writing iso "<" for low *}C; byte and ">" for high byte. Example: "LDA#>Test" load theA accumulator with the high byte "Test". If this option is*} used then \instead of "<" an "L" will be used and instead of an ">" an "H" will beb used. Example: "LDA #H:Test*}&". The editor accepts both options.K W10. Layout?| -*} -  [If the layout mode is selected then the editor cursor can be moved ina any direction without limi*}-ts. In the normal mode the cursor at the end3 of a line will go to the end of the next line if the cursor position is *} Nto the right of this end position. Simply stated. If the new line theT cursor is on is shorter than the cursor l*} imit than the cursor will be& Lpositioned at the end of this line.p 11. Warnings?*}% %2-4: This is an expanded option for the assembler. Warnings are errors*} that Ucan be ignored. In programming often for example: "LDA#-1" instead of[ "LDA #$FF" to load the accumulato*}'r with $FF. This is especially used by- veditors, who save the source code and want to save space. The expression| "*}H-1" equals "$FFF". This will produce an "operand too big" error. MyN assembler recognizes this as an error( a 8 bit *}register is loaded with a i16 bit value). Other assemblers may not concern themselves at all witho this. In addit*};ion a "ZP-boundry" error will be reported if for instanceA a "Indirect-Y" address has a value greater than $FF. In *} this address \mode the programmer should know that a 16 bit address is not possible.b That is the reason that*}. an error is not reported when "Warnings" is4 Aturned off.G In points 3 - 11 the selection can be changed or not *} by pressing the #MENU.DOC< Bpage 6LLR . In the last line you can*} change between "Load Prefs",$ m"Save Prefs" or "Quit Prefs" with the . An option can bes skipped w*}?ith or ESC. By Load Prefs, Save Prefs or Quit PrefsE press to execute the function. For example:(Sa*}Cve Prefs press Z and to return to the editor or for option #1 press ESC.)` Notice on on the following bl*}ock functions: _Since there is no room in the accumulator memory (a block function cane be 16 K bytes long) it w*}1ill be saved as a file. This file is named7 "CLIP.BLK". If there is a RAMDisk available then it will be saved the*}re Iotherwise it will be saved on the main directory of drive #1.k 11. Block Marking*}" "3-5; The block marked in the editor will be saved. The text will n*}ot be changed.: L12. Block Pastingn n}-*}-- SA previously saved block will be pasted where the cursor(line) is.Y Should the memory be not sufficient *}then you will get a error.? Q13. Block Cuttings s}-*}-  SThe marked block will be cut only from the source code and saved.u 14. Bloc*} k Erasing, ,=-?E The marked block will(only) be erased out of the source *}code. J15. Source Code Repair/Recovery(Old Function)^ ^}-*} - ^This function can recover an erased source code after boot up if thed source code is still in m*}0emory. This function works only with the actual6 page (selected page) and has to be (g.ggf?) with additional pages used.*} <16. Erasing the Source CodeY Yt-v| T*}Hhe source code of the actual page will be erased. If this function isN called with a key press of the SHIFT key then A*}LL source code pages will Fbe erased and page 1 will be shown.L TMENU.DOCm spage 7}*}# 2General NoticeU Uc=ek There can be a lon*}7ger path then is shown by the Menu Graphic display of= the file selector in the PARENT function and the display can b*}C e messed Xup. This situation has no effect on the function. With a new display^ the graphic will appear nor*}*mal again. This error can be avoided if a0 ymemory space is reserved for the graphic buffer even if it was not} *}K expected. The graphic buffer will share memory space with the otherQ obuffers, expl:Filenames etc.u The jump*}A to DUP-Menu has to be done with "Y" since a return from DUP-G Menu to the assembler is not implemented (from MyDOS)*}. The back address bfor the assembler is $2800 for all MEM.SAV operations(g. fetischisten?).h A jump into the DU*}4P-Menu is actually not necessary(except for copying: and MEM-SAV is not used anyway). Practically all (DOS) options ca*}n be 4gotten with XIO commands on the monitor.\\b jMENU.DOC} *} 4page 8tten with XIO commands on the monitor.\\b jMENU.DOC} (! :The Monitor Shell v. 2.1X Xp=rx With .}Dthe creation of the monitor screen for this assembler I had to go aJ different path. Since the available monitor spa.}ce was only 2 K bytes ebig, it was not possible for me to program a comfortable memory residentk monitor screen. A.}7s a result the present monitor appears only in "SHELL"= form. This shell has only 4 resident commands: DIR, BYE, GO, an.} d CONT. XAll other commands are in the "Overlay-Command Modules". These are small^ programs that are loaded with t.}*he monitor screen. If for example you0 ytype the command "LIST" then the shell searches for file "LIST.OVL" in} .}K the directory of OVERLAY which is in the RAMDisk loads it and executesQ it. If the file is not present then the .}shell will give you an error# lmessage of "unknown command". Through this technique it is theoreticallyr possible t.}>o have up to 64 commands available.(in a directory you canD have 64 files). In addition the needed parameters would n.}ot be passed on _by the commands (expl. "SAVE $4000 $5FFF D1:TEST.COM") but in a dialoge action. The user types ".}C1SAVE" and the computer ask in a dialog action7 what is the address and the name. This I think is a real neat soluti.}on to the problem.B INoticep pv-y} .}K A command is first looked for on the RAMDisk(if available). If there isQ no RAMDisk then eventually it will loo.}k for it on the EPROM (if# lconfigured) and as a last resort it will look for it on disk drive #1.r Additonally.}> the directory "OVERLAY"is searched for on each drive. ShouldD it not be available then an attempt will be made to load.} it from the _main directory of each drive and eventually from the EPROMDisk. Shoulde the assembler have an.}1 installed EPROMDisk(was installed with the7 configuration program) then it would be memory wasteful if the overla.}y- Rcommands were installed in the RAMDisk. Then the commands would beX searched for on the EPROMDisk, not ot.}%herwise (if you boot from a disk).: eThe Resident Commands of the Monitor Shellz ===.}!=" '=)/ A-DIR (Directory)G If you select this command the prompt "Index of" appea.}rs. If you press b the the directory of "D:*.*" will be shown. This is by MyDOSh the default directory.}4. It also means that with a CIO call you can call: the actual directory and then if you type "D:"(without a drive numb.}er)it Uwill be loaded, see also PATH. Example:"PATH D3:DEMOS>XE_ONLY" [ sets the actual directory. All .}'file names with a "D:" without a drive- vnumber are referred to this directory. "LOAD D:PAGEFLIP.COM" would load| t.}Jhe program "PAGEFLIP.COM" from the disk in drive #3 to the directoryP \MONSHELL.DOCq wpage 1}.} S"XE_ONLY" which resides in the directory of "DEMOS" and this again is inY \thea emainj tdirectory.y You .} can also write %"LOAD+ UD3:DEMOS>XE_ONLY>PAGEFLIP.COM" .[ For the prompt of "Index of" you c.}'an give a complete path name. Here you- vhave to watch your character count because you have only space for 25| c.}C haracters. L-BYE (Leave the monitor shell and return to the editor)R With this command you can return to the edi.}tor. 8-GO (Start of a machine language program)> After this command you have to answer the prompt "Address:" w.} here the Ymachine language program is to begin. The CPU registers of Accu, X and Y_ will be initialized with the .}+system variables AY, XR and YR (also see1 command "REGS"), this means you can also pass the values to a program. .} 5-CONT (Continue, continue after a program stop); With CONT a program can be continued that was stopped (not ended)..} After Vthe selecting this option the computer asks for the address that the\ program is to be continued on. Ge.}C(nerally you have to press only . wfor the program to continue where it was broken off. The address prompt} .}Iis only of interest to the professional. Novice assembly programmersO should keep their fingers out of this prompt.} because an inadvertent! jreply can crash the system. With an interrupt the display list status isp saved and the.}< "normal" display list is utilized. With the CONT the oldB display list is again utilized before the program executio.}n is resumed. ]If a program is ended (with an RTS) then naturally a CONT does not work.c If used a prompt appears ".}Can't continue" `A program can be interrupted in 2 ways. With the machine languagef command "BRK" or when t.}2he interrupts are not blocked with the key press8 of "SHIFT/BREAK". A prompt appears "Stopped at . If .}the Sprogram was interrupted with the BRK command then the CONT command willY go to the next entry without an addr.}%ess (after the BRK entry). Otherwise+ tif the program was interrupted with SHIFT/BREAK it will jump to thez int.}errupt address./ KAdditional Overlay Commandsh h}=.}=  XHere is a listing of the additional overlay commands and a short^ tdescription of them.z Com.}Cmands: Description "=# .=17 CMONSHELL.DOCX ^page 2hhn rPATHx Set t.}:he default directorys "D:"(for MyDOS). PATH D8: and DIR:@ D:*.*. It produces the contents of D8: and the directory .} XIO LSelecting a favorite XIO command. After the command the 2R directive commands AUX1 and AUX2 as well a.}s the filename are asked.$ ZAfter a confirming question the command is executed.` dREGSk Shows you the regi.},ster and the status flags. All register and2 Pstatus flags can be changed.V ZLIST` It gives a listing of the sta.}"ted address(disassembler). For a( qstarting address press only, the computer takes the actual PCw (progr.}Cam counter) as a starting address. If at the end you press onlyI without any additional input the compu.}ter will give you 13 dlines on each key press. With ESC you can break it. If you give an endj address then the .}6listing will be from the beginning to the end. With a< key press you can break the listing. Another key press resum.}es the Wlisting. The computer then askes for a device name where the listing is] to be send. It can be a device o.})r a complete filename. If only / his pressed then naturally no additional prompts appear.n rSAVEx This .}:command saves a file as a binary file. The computer askes@ for the beginning and ending addresses. A file can also be sa.} ved to an [address. Here to the prompt "Into:" you have to give the line address ofa the binary file into which l.}-ater on this is to be loaded. If the3 filename is followed by an /A it will be attached to the existing file .} WRITE MSaves a file as a normal file, that is without saving it withS a binnary header. You have to give the sta.}rting and end address and the% nfilename. If the filename is followed by an "/A" the the file ist appended .}'to an existing file(append function).- 1LOAD7 vWith this command you can load a binary file. It results in a| f.}Hile trace that is the address of the file is shown. If you give onlyN the filename then the command asks if you want .}Cthe INIT or the AUTORUN ivectors to used. If after the filename you write "/L" then the file willo be loaded with.};out the INIT/AUTORUN vectors. If the filename is followedA by an "/R" the INIT vectors is ignored and the AUTOR.} UN vector is \implemented. As a penultimate choice you get "/I" which only implementsb the INIT vector and ign.}.ores all the rest. An "/A" stand here for4 automatic. This means INIT and AUTORUN vectors are automatically.} Oimplemented. If the name has no option following it then whenever such aU vector appears you are asked if you w.}!ant to implement this vector. To' Zactivate the option you have to press a .` dSCANj Search the used mem.},ory for a byte sequence or a string. As a2 wild card you can use $00 to search for a byte sequence. When searching .} Mfor a string you can use the "@"(SHIFT/8) as a wild card. When youS search a string you are asked whether you.} want to differentiate between% nlower case and upper case. If you do not want this option implementedt then ans.}@wer "N". If this function is active it will also find graphicF characters. For the starting address the actual PC(Prog.}ram Counter) will abe used as the starting address. For the end address the default isg $BC00. If the search i.}5s ended then you can search in another address; GMONSHELL.DOC\ bpage 3llr section wit.}9hout giving the search string (or byte sequence) again.? CEDITJ This is a real sweet ram editor. You can edit in He.} x or ASCII Zor in internal screen code. The editor shows on the left the address, in` the middle 8 Hex numbers .}, per line and on the right data(file) in2 internal screen or ASCII code. On top will be shown the actual mode .} M("Int" for internal screen code or ASC for ASCII code). The mode can beS change with a key press of CNTL/INVERSE fr.}om INT to ASC. With the TAB% nkey you can switch the field between HEX and INT and ASC. When you aret in the gr.}@aphic mode then no inverse graphic signs will be shown(so theF cursor is more legible). The cursor is moved with th.}Ce cursor keys and aCNTL. With CNTL-Cursor up/down you can scroll always $80 bytes. If theg cursor is in the HEX /}3field and you press then the cursor moves9 one byte( cursor - right). If in ASC/INT mode the cursor goes to /} the Tnext line. ATTENTION: The used text will be saved in the selected modeZ xor you can save it in ASCII.} /}J If no key is pressed and no entry is made automatically the screen getsP refershed about 5 times per second. This m/}eans the screen content(Hex" ksymbols and code symbols) will be refreshed. In addition the changes inq the interrup/}=t in the memory are visible. Otherwise a refresh occurs withC Uevery key press.[ _READe This command is used to /}'read files(not binary) at a selected- oaddress. You can give the address as well as the maximum length.u yFILL} /}A Fill a memory section with the selected byte. If isG used then the fill byte will be "0". If a value gre/}ater the 255 is _selected (a word (16 bit) then it will be filled with capital words.e iMOVEp It is used /}1 to copy a section of memory to a new section.7 oSource and destination addresses are naturally needed.u yINFO} / }A It gives an inventory of the usable commands and waits for aG command selection. If only is pressed then a/ } short description bis displayed with each command that are in the same directory as theh INFO command. Other/ }4wise a help text is shown in the selected mode.: Notice: INFO gives only those commands that are in the same directo/ }ry as INFO itself. $CALC* iIt gives you the value (of a stated formula) in HEX and BINARYo and DECIMAL/ }  MONSHELL.DOC3 ipage 4value (of a stated formula) in HEX and BINARYo and DECIMAL,; } 3#}CJ With EXEC another batchfile can be executed. A GOSUB is not possible.P With EXEC an ECHO ON is automatically used.3$}$ ECHO ON $BATCHENH.DOC9 ?page 1IIO This activates the list function. All com3%}mands of the batchfile are! *shown.0 :ECHO OFF@ Turns the command display off (only in the batchfile sense)3&} ECHO (Text) UThe selected text will be shown (including empty spaces)[ nMAKEDIRt Produces 3'}a new directory. [Example: MAKEDIR RD:SUBDIRMAKEDIR RD:SUBDIR>AGAINa ASK FOR Y/N(Ask for a (Y)es 3(}or (N)o) response. cWaits until a selected key is pressed (or ESC). ECHO Ja(yes) ori Nein(no). It3)}# asks for a J/N response) =IF EXISTC Checks to see if a file is present and then executes the3*} commands that Ofollow (until ENDIF) if the instructions were finished.U mIF NOT EXISTs Example: I3+}?F NOT EXIST D1:DUP.SYS ECHO cannot go into DOS, noneE present!STOPELSEEXITENDI3,} F %IF ANSWER = + tExecute the following commands if a previously ASK FOR key is pressed.z Exa3-}Fmple: ASK FOR JN IF ANSWER = J DELETEL D1:*.TEXTELSEECHO not erased!ENDIF *IF RAMDISK (-)0 yIF RAMDISK - checks that a RAMDisk is present! Without the option "(-)"} 3/}K a hardware test (130 XE compatibility) will be performed. This meansQ should there be a RAMDisk configured in the 30}DOS then the hardware must# lbe able to support it. IF RAMDISK - checks only if a RD is configured.r This is for31}> other than the 130 XE RAMDisks. If a RD is present theD gfollowing commands can be executed.kkq BATCHENH.DOC32} page 2%%+ ?IF NOT RAMDISK (-)E MExample:S UIF[ ^NOTd wRAMDISKECHO} 33}No RAMDISK Cpresent!STOPENDIFI PENDIFV Ends a certain command. IF-ENDIF constr34} uction can be nested 8 times.& ,ELSE2 Returns the conditional back to the stack (if possible). If there are 35}C Btwo ELSE than you return to the "normal condition". Example:H SASK FOR ABY gIF ANSWER = Ao ECHO you have 36}6pressed the A key! ELSE& FECHO you have pressed the B keyL PELSE[ w; only an example(nonsense)} 37}2 ECHO why not B? ;now it begins with "A" again8 ?ENDIFE When the A key is pressed the text says:"You pressed th38}e A key!" and &"Why not B?", NLOAD (Chan) (Q/L/R/I)T With LOAD the selected binary file is loa39}ded. The options are: &Q(uit)+ fA file is loaded and ended with RTS and will not bel returned to BFE b3:}8ut directed to DUP.SYS (or BASIC). The file will be> loaded with all INIT/AUTORUN vectors and they will be executed.3;} L(oad) QThe file will be loaded. Neither INIT or RUN will beW bexecuted.k pR(un)u The file3<}4 will be loaded and the AUTORUN will be executed: Ibut not INIT.R XI(nit)\ All initializing commands are exe3=}cuted but AUTORUN is not.% kWith (Chan) you can select an optional channel with which the LOADq function is 3>}=executed. Values from 0 to 7 are possible. Channel 0 is usedC by the editor. (Chan) has to be placed before the options 3?} (if used). ZThis is for example is useful if a program is to be loaded that has a` load option in the program it3@},self. This is for example the case with2 TURBO-BASIC, the COMPILER or the RUNTIME module. These assume that the 3A} Mprogram will be loaded with channel 1. In the batchfile enhancer we useS channels 5,6, and 7. With XCOPY we also us3B}e channel 4. Example: *BATCHENH.DOC? Epage 3OOU sLOAD D1:TURBOBAS.COM 1 Quity COPY3C} () iIs used to copy a single file. File designation in the usual MyDOS form.o See also TYPE.3D}ED; If the destination designation is missing then itA eautomatically goes to the editor.k SETDIR VYou can access the default directory of MyDOS. Example: SETDIR\ RD:TEXTS>PRIVATE TYPE 3F}( D:ELKE.TXT P: If you like. wsomething TYPE RD:TEXTS>PRIVATE>ELKE.TEXT P:. After the SETDIR} 3G}&the drive designation can be given., BFORMAT DISK H This is used to format a disk. Attention. It does n3H}ot provide a safety Fprompt. Example: FORMAT DISK D2: L jTYPE ()p This was only3I}< implemented for display reasons. It should be used toB ddisplay text etc. See also COPYj xGOTO