IMD 1.17: 24/12/2010 12:04:16 vsysgen x3.094 4/4/83 \X COPYRIGHT (C) 1979, DIGITAL RESEARCH _͌> ͒> Ò> Ò͘~#͌ì _2<˯2 ̇!Ҷ2:2a{_:ҷʖ:ҷ>Ľʖ:=2–!B!6#5ʖ:ҷĽ!ͬʧ )!F#xʺ~0wëw!" !~6ͽ:ý(!#͘*~ "ͷ"͌#>?͌͘ =_.:;<> Oͅo$>!Y2*O"ʉ@G:ʐ:wÖx2p0ʹ#*©6?ëw˜0ï#6 ¹.0#*6?w0#6 #6" #~?  xDIR ERA TYPESAVEREN USER!yO#< Ty#O 3ί21y_͸2y2ͽ:˷˜1͘A͌>>͌92^ :ҷ¥.!_~#fow]Эюѥ!v"!çREAD ERRORçNO FILE^:ҷ ! ~ 3#0 Wx x ̀ ͂ G ~ # 3x~#B!Y~ɯ2:ҷ=!Ҿý:ҷ=!Ҿ:ý^T!~  6?#ˆ:`O> K{͘A͒>:͒͢>:͒͢xK > K > ͒x  ͢ØÆ^ BRͧ9!5‚#~Y‚#"T<ÆALL (Y/N)?^ Tʧ͘!6!~ڇ Яw4!Y~ʆ͌†t=ʆf ^ T Я2o&)|+!<ͧÆNO SPACE^ :Ty!B*O=?_s#"^sG!~YѸpsp2mÆÆf ͧÆFILE EXISTS _: É: :ҷʉ=2)ͽÉ T!@k!}|q=qf^!~2>`~2ү2\!!B!~> >#0~O#Cx2͘1)ͽÂf zͧÆBAD LOADCOMf^: !Ҷ Â$$$ SUBәӥӫӱ"C{2!"E9"1A֯22!ty)K!G_^#V*CՐ~߃Eߜߥ߫ ,&-AGMS֛!!ô!ô!Bdos Err On : $Bad Sector$Select$File R/O$:BA2!~6 O͐  :ַE B 2>: ַb# : ַy! 4 5~yy5 6yҐ^H@Oy H H: –ͬ  #H: ! ־ Hù H H $O͐: 2 *CN# x: 2 p&x~+é7ԯ2 H! >w_: ! ־5ͤNkͱ¦ͱxʊ#Nx: ַ! ֖2 ͤ! 5™#wO~x½p Hy<< ʑ :!qMD#2E>! ^#V w#P:BO|^#V#"##"##"##"!O*!O*|!6ʝ6>*w#w*w#w'û*! J*""!N#F*^#V*~#foyx*{_zW+*yx#*DM*s#r*s#ryOxG*0MD!!N: EG>O: \׷S׀*C :qn& ^#V>O^"*}:*)=":O:ࡵo"*C *C!ͮ~2~2ͦ:2ͮ:ׯO:w:w |g}o*ெ# ):BO!yoxg*:BO}!N#F "*#*s#r^ ~!J! J*:o$*C~i6iw**{#zr+s{ozg**͕** ؾ,w͜͸Ͳ!!N#F$**O!~#:A־#~$=2Ek͌::/GyO>2!q*C"͡ʔ*JҔ^:Oyʃ?|x | sږ-|N-# S:2E!~Яw>T D^6k-äPYy 5*{zBK5ڋ>*Cw~#+w#w+ɯ2E22i^ *C :~w~͔͔# #  w ~>2!E5T*C!"C"C!w# F! w͌xد2͢*C ~<wʃG:!ʎì 4~ʶ¬:<ʶ$ʶïZͻׯx>2>2ͻ:!Zܯ2:Eַẅ́͊Ͳ>2>2T*CGͻ:ẅ́n>2;O ^DM;}H>"*C ::ddslO s#r:Eַ͊:==»y==»*Ww#*"͸*:G#š"͸:!w4!iw:Z!E~=26ׯ2*C!!~~#~O~G#n,-.‹! w! yG!x͢.:E<ʄ! q!pQ:E<. ʄ$.:E<ʄi6}2ExN! ~态O>G~G!~G} *C!r#r#r ^ͥ_y#x#{s+p+q-*C ͥ!!q#p#w*:BOYG}*MD "ã:!B־w!>2*C~=2:B2~2wE:A*Cֶw>"!""2B!"!rQQQâ~?ͦ~?rQ*"CQ-Q͜QüQrQ$Q*):B"*)*)Q;*"E:;:A2AQÓQÜQ*C}/_|/*W}_*"}o|g":ʑ*C6:ʑw:2E**E}DQ>2!u ÷ÿ M[`e~ xyz{|}~AUTOST 0123456789 [9 [I!,@Rv         !"#  (?-?R ?$?1:922< 1>͛!6>2`!">22!"!"!p:o(~( O>(͚!:ONENCORE 59k CP/M vers 2.2 Rev X3.094 gG 1983 OSBORNE SOFTWARE TEST ONLY 222yF2!!"͞.* ^#V22*ut| V:A2{2͚!:2% Can't recognize diskette on drive ! Unformatted diskette on drive !y(##NF*BC(|0}0- XxQ('Y(''!! ( ##2"+y(#*~w#~w !~w#~w>K:G:2:Oz2{2y2:ȯ2y2Cɯ2[ȯ2yŸ:>(>2:2:<!~ʾ5:G:<¹!42*<2y(:ȯ2:2:2:2:2!42:G:!( 0)2:(! #ѯ>2:22:22:22:22 :(ѯ!4:(2y2i`{n&!!GO!): !1: :b!!:_^#fk!]~ 5#͟!A!1!)!9I lISoS q [ %q :b!b~( *Y~480#'_!>nf^VSYR}2b:<_!^#~@W>!{(>!z(!>(>!>(1111>@1:;1>'1Ɉ CA}hE4# 11 (0(y0:: >   >!>(/ɯ[(>!y(>!>(>( IS IN ERROR RESET DEFAULT TO DRV A STO A,CDISK ;SET DEFAULT TO A RET DENERR: DB DENL DB CR,LF,'Can''t recognize diskette on drive ' DRV: DS 1 DENL: = *-DENERR-1 FORERR: DB FORL DB CR,LF,'Unformatted diskette on drive ' DRV1: DS 1 FORL: = *-FORERR-1 PAGE CHKSEL: ;Determines if new DPB should be established ;ENTRY ;C = disk selection value (0..15) ;E = BIT0 = 0 IF first call for this disk ;EXIT ;IX = address of drive sequence number ;Z status bit set, good return ;ZACT COMt LOAD COMVSYSGEN ASMt !VSYSGEN COM"$VSYSGENGDOC#ACT I 808x Copyright SORCIM Corp. 1981 S/N- 007,Version 3.5EEV SorcALL ASMFilenameHEXFilenamePRNτ?1;͟4199!42 ͣ'6 #6 #6͎ 4!:f'*:;'*:;'F<*99>T29>2a$o*9|LH&*9*9*9(%b;'*9*9(%! ͩ"e:U&*:;'!HHF*|ʧ&!"F*e:|:9!B6 29!l$ Last error occurred on Page 123 Total LOST references were !?="9*9"929go"9*9&"9>s2K2:2:͎ 2929292929292929292Q:go"9!e:"^:"9*9":"9:92:5:9=29>2929>T29> 2K*9196:94H*:"9*9"9*9X!.X:9͓*9 "9:9:9*9}eG:9=__ͻ$#D> 24d"`:~G&vG!.#%fh"c:2e:*9"nx(:9¶ x= :9:9x(=:c:G 6)!K="9! B629>22>22J! :9ĭ!$:9ĭFUnterminated IF nest. IUnterminated MACRO definition. !.~O#%~wy<#%J*9*9 ~w# œ~?ʜp ^#V#N#F r+s 9'n!ͭ~24#W$OToo many PROCs in program. *9?9' "9*9 "9yx  !e: f':d:_ :9¶!"f:":>(=*9"n!%4:c:#%^#V>SE>E24\*^:}!e:"^:2d::9 e::d: !9>wd:G::ʁ!4 W † :9 ͓!9~wÁn>-24>O>Y>S>E>A24*n|c~c=ͅ"::s2:ͨ :9ʽ:9>Y:9>F24292929͗!T.:9>P?*9~24 ͒ | >P24 R::9pͬ% ͬ/ƒͺ:9Ҿp %ҭ!f'!9~G?2:>N*nͻ,#!94:9ʤ>Ov ͼ ðv":"9:s2:2:> 2:Dv"9:s2:G::’*:9'> ʔ>#2:!4wðv:rG:e:N:9*:°>L24ð!e:~"^:*92~c!e:~"^:2*92ͬc!e:"^:v | } >W24>2[:\> ͒"\:, ::*^:w\>S24\*9e:':9 b *9?9'>O "9 *n~*!99ʽ f'ͬ-™ ͬ+ ͭ>UN!9{_~wͬ,ʋ N'*n#~T L@ C D F G M R͒:9@S ͒U͍f:9@͍^!9F6:96 I :9@I ͍!9~w*9~>S## C>E>S~29*9#N# f'! f'! W$Unknown CPU: '' ͓!46'#*9ͩ Of' ;' !) ͍'!4>!O$͓' 2929v}29| :9ͤ=D !94:e:- *9?>L͇ "9< ####>*9##"9'!:͡':92:*9:*9 f'"9x #"95%*9~w##s#r*9##h'%0+  3 Ƃ~ G >@w!:͆>w :9ē*9#"9 *c3 ~ ʪ(~w##^#V*9ʠ w#Ò ͤO:9= y*9#%N#Fx w# Ò *9"9|~ : # !"96!"9*9"9!9"9*9;'*9!9f'*9zV  6 s#r#Z ,;  >P ) s#r#"9x29O:9Gʃ ˆ =29} :9¶29>F:9ʴ ¶} :e:b !94:9¶vz°n:9ē:929*9"9*:":Y*9"9*9"9>L >S24!::9w:9 {: :9Ox~ :92*:*:":":͙ x (::2:>*9G:92:":!"9*9|? *n~}:} 1"9F::O@°yw*:#::w#s#rx ʴx@´>w:9x>D :9>:9:[:O::G!d:yO4Q Jx2::[:*\: lMW͛%O::_G͆%!:w{=@~6*^:w#"^:!d:4 ::W{2:[: !46^#þ':9M*9##(%"f:!46=##þ' ͩʝV=ʝ#^=ʝ>V24*^:s#r+y *^:>A+w¬ͩOGx!46V*n+6:d:2d:*^::9y#% Aw# "^:*n+~#:9(=*9"n*94;'::;>~;7ʧ*7ʧ 7ʧ:9¡ ڧ'.!_ʚ;Œ:9¯> #„òaژ{Ҙ #V#Ҟ#:9ʲ*9"9 ʵ>!;?~   7ȷy#:9ʲ*9ͤõ#N f'V>#"'#~'"# x)+pV9 B#0+> !"9"9"9!9!;~ p ~# f}| fO!~ʌ#7y,+-*/()><=^&[] : \(%*9*99'+~ y¹*99'"929*9.:9g"9"9:9 *9*99' "9>a*<<4:9W~#29  F  Rf> z > : "<<> `i"9!429z29 >=9'ҁͪ> !\#!7\\\ END Statement Missing !><\#6y  !W$ACT stopped by user. *99'"9"9\ f'ͻ#$!Ve%!VC f'>2a$!C͂$f$!>="<<6 Pass 1 - Reading D:FILENAME.EXT ;}; ͒:r >Uá*9"n|’7*nͩڤ?>E247go!"t."r!9"jz>Sͼ2l K*h};9'+~ffbMb*h};9' *f;9';A:@2s"tb*h9'+~H"h> 2l!z#%9'F#N   de~# ʼ+"n>2l!;"f!};"h6>2q>E*j24!"tt>2s7ͬ0 :Q:zzB~G#4V#^6Z6T]#%>2rxß*n+ͭ"n#~G:l x+~!9Oʃ!:Pʃ!9Lʃ>2r^#V#F>ßG> x,\]/*$+^^^&()=<> <= >= < > ~-ANDDEFEQGT GE HIGHLE LOWLT MODNE NOTORREVSHLSHRXOR+%>N>2r>#ß:px2p%x2pU+ͭڒ{ڒ#~"n*n+:s*n2s"n,> *n|ͻ#"n#~ ʺ*n+~ȷ+"n*f;9'>O+~2r+~+^+V"f:r2r2s=#%~+fo>>2s&:s*f<;9'>Sr#s#w#:rw#"fG*h;9'>Sp#"h>2q*h};9'+"h~!#%9nu d)0<D {ozg) {oz {oz#!)#!)##?##? 9'l3>2q}l:rG>2rx x> 24 ) ) 5%)5%) ͭ%) E=%) ͩ)z|5%ڻ PY ͩ)):*9 f':9="9$"9 !W$  Memory OVERFLOW Stopped ACT!/q#p# *9(%:9"9:~%"n::::`:97͆`i?ځ'ځ!d3r+s+7!`3Fx!.H!d0R!2Ͱ2b:!?GN#xy_y_ѯ°#7# y÷y?>E2:2:1>w##^#VO:9#y2r>U724*9*98*9*9:9'b! =# cSh= :|:9 ^= :~ w “9'ʺ# µ¥þÐ7!6> oD# 9'7ȷ0 :?[$b#b.b~J%# ~#,4J%~#o$4f'HO$:9@Õ!9~w*9z^:4 |.> 24.5:9 :4!?怰G:9W:9O@:9ʺyzz>@GzGG&z>+24*94~# !4> #6 #6#2*9#"9!4O$H> 245!4:G~=> w# 56 #6:9@!4\!94:9l$*9:9Gʅw#xl͜lx29"9*9:9q<•!z8$Ҹ:9@29!W$G29!"9List file write error. *9}J%: !f'*&*9"2<29*9#"9&!\! \4>2$:9>B>20:0294:OJ%>$!4".%~*.>  ʄ>sw#UҚDښڛnpf'*99'ڼA6m#6a#6c#6 ###".6:9o:9=29bH:9!0*.6 #C*9!?~: ~ ~w 9'*9DM !?~Ex1}1Fd] d#KT]f 6 ^#VogʉNs#FrYP+y>!4".29|^#V#~/#oy&&".:9=29•5>Ë:9H#^*.&O:9:9:9:::?:92@/7N#F:@+w:9+w+p+qr+s*9#"9~#foþ' no ERRORs, 1234 Labels, h bytes not used. Program LWA = h. *Error page 999SYMBOL TABLE *Error page 999 SORCIM 808x Assembler ver 3.5E mm/dd/yy hh:mm Page 999 ~':9*:9'":Oi`) ))6 2:2:͎ *:"9p : f'::p : f'*:^ ͙ ~ *: ^ "::9:9w"*O::Q:#%9'!!*:"O:G_ :9:9<"#"" >!y2Q:&!!y2Q::Q: Q:G!!:"""#"z P!:N:'6 #6  :r!*O::Q:#%"O:2Q:2N:!):*@5w#}B!|6!!!B5u!"@5:9:9·"!!>12':*:"O: (!*@5B5!!B5V$!:929!!W$Hex file write error.  9'!p#9' "O:N:2N:yW :Q:O!):#%:9:9—"*O:x#%"O:!:~#f" #Oog5#o"_j#I"::O*O:9'Š":M:y2M:> "O:">\#!]#> *6"> *6"::O>*:":Y:"X:r!*@5B5!!"\#5#>>?:Z:y2Z:>\#yp ~ ###t#^#r# &#y?H#"N#_Pt#r#\r#@_t#\j#t#zK͛%O:Y:_G͆%!X:w{=#r!2X::Y:W{2Y:bzWu# Y w# ##7! wD$ѷ$ #7D$ѷ$ $D$7:k$`$l$f$>2k$>b$:k$O$2a$2k$O ͻ$~# ¡$Ù$ ͻ$x“$> _xUү$ͻ$Ä$|ͻ$ ͻ$ ~Oʹ#!$`$$ ?? OPEN error - l$!;6#e%!;l$:9%V:9͍zɅo$MDy_xW{z/W{/_xzW{_=%>  L%~ J%J%# S% As%@O:q#p#f'>.f'xy%%ɷ”%!%#%~?BK!xʾ% ô%BJ~0%:%A%[% #%+FyR&:p &x &Bʯ&N&Ql&Hʆ& :pBʯ&Ql&Hʆ&yG&A&;&5&'V&V&dV& V&V&7N&~0Q& Q&# =e&~0R&R&_ #M&)))l&~0R&:&AR&GR&_# M&))))Æ&~0R&R&)o# ²&M&&'&'&'&'}0>02'>0]T< &=kbG:''> x>2'0~0~0#y'z{x7# A'9'h' +~ x['x~# h'x~aڅ'{҅'# u'~#Í'7#Ö'zq#ã'O:'=@I±' ®'V|'}'Ɛ'@'ɯ2(#~:+:\'~@8(##(ͬ#<~>:7:(.$(~.#$(y^(!S:( ^(:(7x7~i(#.^(*V(>?a(~# :(G>  a(x!8(|8(;8(=8(:8(@ʖ(#ʖ(*ʖ(?›(2(a({ w!d:6͹-2e:>I24\..(>.c3]-Cͥ-M..c-3͓-c>d.cle3͓-cm( (me3͓-(-3͓-͒"f:cme3͓-g-à,..͒Xx.c>I*͹-..e3M-M.>!.c3-ڰ)ͥ-*-3>)O- M."-.c3-ڰ)͹-3-- M.>!.cs-e3l- *n+~)͹-M.cs-3@-C*n"9e3\-)ͥ-M..cs-͹-g-3-*ͥ-3-(s-e3\-)ͥ-M..J,3-j*:-ʉ**3 *--"-ڰ*ͥ-.cs-3 -*3-a* \s-s-3-ڃ*:-ƒ*3-a*Ã*s-s-3-ڃ*3-ڃ*:-ƒ*a*s-s-3@-ڃ*͹-..c>H2+3@-++3 *n-+͹-M.cs-~[.+"nÝ,s-s-3-M+3-M+͹-(s-3-^+,s-3)-ڀ+͹-M.>!.͒"g:cs-e3:+O-ڧ+M.e3-Cͥ-.c:+>s-͒"f:́.Ó+H͹->!.c3-+:- ͹-(s-+>d.,Ce3\-Cͥ-M.>!..c3=-*,ͥ-M.͒"f:G,s-e3I-Cͥ-M.͒"f:́..>c3=-l,ͥ-M..cs-e3]-Cͥ-M..c3-ښ,ͥ-.cs-͹-͒"f:c3@-,3-,͹-M.>!.cs-3-,͹-M.>!.3@-Ccs-3 --3-Cͥ-.cs-e3m-;-M.e3l-;-͹-M.cs-3->:->3%->͹-M.>.8,͒"f:́.c!b:55>*9"n*`:##"`:~2d:#~2e:-CM.ͥ-.-ʹ-!d:4-4:9 *nͭ"ny_b#V"-|-͒x.}2-]Cͬ,=-@!.!g:Fw#p*f:"g:*d:o"e::9>C >$24:9>C >#:.*-}o|-^.!e:w͒د†.z†.[.}|†.|<:4 >V24ASMHEX080808085Z80 =+CADD ADICADCJACIANA#ANDANIASEG.ASSERT6BIT@CALLCBITCCCLCCMA/CMC?#CMPCMCNZCNCCPECPOCPDRCPDCPIRCPI#CPICPU3CPCSEG.CZDAA'DAD DA&DBE%DB%DCE%DCRDCX DC%@#DEC DIDJNZDSEG.DS!DW&ECHO5EIEJECT:ELSE=ENDM<endm<ENDIF=END(ENTRY,EQU+ERR;EXT-EXXBEXHLTvIDENT0IF=IM0FIM1VIM2^#INCINDRINDINIRINIINRINXIN,C@IN#JMPJNZJMJCJNCJPEJPOJPJZJRC8JRNC0JRNZ JRZ(JRLDAX LDA:LDDRLDDLDIRLDI#LDKrLD :*KFLHLD*LINK2LIST8"LKLOC#LXIMACRO5MVISMOVWG@(MSG9NEGDNOPORG"ORAORI"OROTDROTIROT,CAOUTDOUTIOUTPAGE:PCHLPOPPROC$PUSHRALRARRCREPT5RETIMRETNERETRIM RLC#RLCRLDo"RLRMRNCRNZRPERPORPRRC#RRCRRDgRRRSTRZSBBCSBCBSBITSBISET+@SHLD"SIM0SLA SPACE7SPHLSRA(SRL8STAXSTA2STC7sSTO2"Cp63SUBSUITITLE1USE/VFD)XCHG#XORXRAXRIXTHL'*M%6[HL]6[IX[IYB C D E H $L -AA?IR AFA6PSWA6SP!6IX$IYdBC B DE D HL$H$AFA6SP!6IX$IYdBC DE HL$[SP]!6[IX]$[IY]d[BC] [DE] [HL]$(((() )%)-))0)3)+G)(((+++*B),U,(,`))*!*8*,6Kl#([ uX" F a T E w  2ͮ8>2k$!"R:ͬ#<@27a5:2$:29͈8*9!\ f'"9"9:94!Vͪ5:95!zͪ5!Af'!~6!l$2!T l$!.7:9f$6!=5$h'*ABS *CODE *DATA !"5!~ 8#O 65͹8!?="9l9 8}6:929l96ͭ8^#VPY##$!\ ?'\!5$ ?? Hex or Prn file name same as Input = 5@R6H=06H=6LO7L=06L=CON:6L=LP:6L=6L6O7PS(7SLA7S=_7S\7R=07R=S7R=F7R7!.7\'8\V!.7z! 77:929Ô5!.V7Ô5>29!RE".>L2.P!:͡'Ô5Í5:9ï6>`2i$:9ï6! 7z7:9ï6PRN;729Ô5;7"9Ô5:;7d!x8872Ô5P;72`i+~=7#%8{7':!d8$YPf'7Sf'!8l$!288!R88!d88Command input errorNO source file specified, ABORTMal-formed numberIll-formed filenamePS > 99SL < 60/!'> :!'!8f' Page *%"9"9OD9T9 .9}|:k99~ 9 9, 9; 9|.9 .9.9a 9{ 9 w#86#8:k9(9~ .9.9#96#86go~<9ѯx~ O9 S9#D9~'d9"d92k96#2k95~#ʇ9<+w#_^#Vѯ7TTTTTTTTTTTTTTTTT=99hhhh?=???99?=?9 :9999990099 ?\:e:`: prompt/command response JMP X30D2 ; end  ',*7:9ï6PRN;729Ô5;7"9Ô5:;7d!x8872Ô5P;72`i+~=7#%8{7':!d8$YPf'7Sf'!8l$!288!R88!d88Command input errorNO source file specified, ABORTMal-formed numberIll-formed filenamePS > 99SL < 60/!'> :!'!8f' Page *%"9"9OD9T9 .9}|:k99~ 9 9, 9; 9|.9 .9.9a @ COPYRIGHT (C) 1978, DIGITAL RESEARCH ERROR: $, LOAD ADDRESS $DISK READ$INVERTED LOAD ADDRESS$DISK WRITE$LOAD ADDRESS $ERROR ADDRESS $BYTES READ:$INVALID HEX DIGIT$CHECK SUM ERROR $FIRST ADDRESS $LAST ADDRESS $BYTES READ $RECORDS WRITTEN $HEXCANNOT OPEN SOURCE$COMNO MORE DIRECTORY SPACE$CANNOT CLOSE FILE$*!9"!e !" !" \!""͊: ƒde"\\\͊: ²d\͝: )d;! q* &f  ! q> ! : A O: 0O! q: O: O! p+q* |O* }O! p+q*  f! p+q* DMB! p+q)R* DMB1B* DM+;! p+q* i2 ! p+q* i2 ! p+q* i2 i2 !" p+q*! f!$ p+q*# i!& p+q*% i!( p+q*' i2 !* p+q*) f!/ s+p+q+p+q:/ =2/ X*+ *- w*+ #"+ *- #"- 1* #" ͖r*   ~!" ! ͸×* " x20 º*   DM":0 Ad*   6!" Ç!" : !"6 "8 ": }2< !"4 "= ! 6Y: !2 6=21 á:1 : r+s#r==_HL"4 " >6 ͪS* "6 =23 :1 =21 v=O* #" Y8  ͝҉* +"8 .!2 ʞR̀* "4 4 = ͝* #" çR*6 DM+R*8 DM+R*: DM+R*< M!? q=  ͝Kd*= ! ͸p!@ 6>!@ X*= }O!< *@ & w*= #"= !@ 4)!< 4\mad* }O!< :? wlR*4 DM+{R* DM+R 4 ͝*4 }¿= 4 ͝< N*4 #"4  å;*4 DM+: Y2A 0O> :A 0:A AO>&R̀:A A H.2B !2 w:B !D s+q*C &͍:D _og_{ozg^#V) _{ozgi`N#Fogo&og_{_z#WA XRA ORA CMP INR DCR MVI LXI STAXINX DAD LDAXDCX RST PSW POP PUSHNZZ NCC POPEP M B C D E H L M A B D H SP PSW ??= M!Eâê ö  - Ð f  "J*"!"!"2O!" "]""!1!++""M>28!"9:] !í 1;.Date : 4/4/83 ;.Author : DEB & YMK & WSJ ;.Title : ENCORE SYSGEN : Rev X3.094 ;.Comments: ALPHA TEST ; +---------------+ ; | | ; | ENCORE SYSGEN | ; | | ; +---------------+ ;X.0 Changed menu's : deb ;X.1 Change neme vixen to express : ykm ; Add write protected on destination diskette message : ykm ; Put write proteced error detect routine : ykm ; Change message (get from drive a to get system from drive a) : ymk ; Display error message in line 20 : ymk ; Delete ^c function key to return to CP/M. : ymk ; Eliminate screen flashing when change menu : ymk ; Add file name in the error message when CP/M load from file. : ymk ; Add file size is too big error message when file size is too big : ymk ; Change error message from Premature end of file encountered to file size is too small. : ymk ;X.2 Cleaned code : deb ;X.3 Changed interface to rom : deb ; Remove selection message when display writing(reading) system : ymk ; Display copywrite message : ymk ; Change ESC sequence for reverse video ; ESC ) -> ESC j, ESC ( -> ESC k : ymk ; (1)Change message "Press ESC to exit..." to "Press ESC to exit to CP/M..." : ymk ; (2)Change message "...Return to exit." to "... Return for Previous menu" : ymk ; (3)Beep on error message : ymk ; (4)Reverse video for error message ( read, write) : ymk ; (5)Change message "try again." to "retry" : ymk ; (6)Change message "No system on this file" to " No SYSTEM in the file" : ymk ; Chnaged name to ENCORE : deb ; Final before ALPHA : deb ;X3.094 Changed rev : deb DSK_STS = 00H ;Floppy disk status register IBMTYP = 8 ;IBM SAVTYP SINGTYP = 5 ;SINGLE DENSITY OSBORNE SAVTYP DOUBTYP = 0CH ;DOUBLE DENSITY OSBORNE SAVTYP IBMSEC = 8 ;# OF SECTORS/TRACK FOR IBM SINGSEC = 10 ;# OF SECTORS/TRACK FOR OSBORNE SINGLE DENSITY DOUBSEC = 5 ;# OF SECTORS/TRACK FOR OSBORNE DOUBLE DENSITY CCP = 0BF00H ;CCP START ADDRESS N128BS = 60 ;NUMBER OF 128 BYTE BLOCK IN THE SYSTEM WBSEC = 44 ;NUMBER OF 128 BYTE SECTORS IN WARM BOOT SECSIZ = 128 ;SIZE OF CP/M LOGICAL SECTOR LDBUF = 980h ;Disk xfer buffer CONO = 2 ;CONSOLE OUTPUT FUNCTION BEL = 07H ;BELL CR = 0DH ESC = 01BH FCB = 05CH ORGP = 0100H SYS = 05 SYSR = 0 BUFF = 04000H ;BUFFER FOR DRIVE TRANSFERS ;TRANSFER RAM MEMORY LOCATIONS DMADR: = 0EFF7H ;(2) DISK DMA ADDRESS SAVTYP = 0EFF9H ;(1) DISK TYPE SDISK: = 0EFFAH ;(1) DISK IN USE SAVTRK: = 0EFFBH ;(2) TRACK SAVSEC: = 0EFFDH ;(1) SECTOR ;ROM JUMP VECTORS RSEC: = 0F10FH ;READ A SECTOR WSEC: = 0F112H ;WRITE A SECTOR SENDEN: = 0F115H ;SENCE DENSITY ROUTINE PAGE ORG ORGP PROC LDK SP,STK ;set local stk LDK HL,IMSG CALL PRINT ;initial sign on ;CHECK IF A DEFAULT FILE NAME IS PROVIDED LD A,FCB+1 CMP ' ' JZ GETSYS ;NO FILE SO GET SYSTEM LDK HL,RDSYS CALL PRINT ;READING SYSTEM MESSAGE ;OPEN FILE LDK DE,FCB CALL OPENF INC A JNZ :1 ;IF FILE COULD BE OPENED ;OUPUT ERROR MSG AND RETURN TO SYSTEM LDK HL,OPNERR JMP :6 ;ERROR ;READ SYSTEM FROM THE FILE (SKIP SECTORS FROM FILE EQUAL TO LDBUF-ORGP) :1: LDK HL,BUFF CALL SETDMA ;SET DMA ADDRESS LDK B,(LDBUF-ORGP)/SECSIZ ;NUMBER OF SECTORS TO THROW AWAY :2: PUSH BC LDK DE,FCB CALL READSK POP BC OR A JZ :3 ;IF NO ERRORS ;IF ERROR IN READ LDK HL,EOFERR JMP :6 ;ERROR :3: DJNZ :2 ;READ THE REMAINING FILE INTO LDBUF LDK HL,LDBUF :4: PUSH HL CALL SETDMA ;SET DMA LDK DE,FCB CALL READSK ;READ SECTOR POP HL ;CHECK FOR EOF OR A JNZ :5 ;jump WHEN EOF ENCOUNTERED ;INC DMA LDK DE,SECSIZ ;ADVANCE DMA ADRS TO NEXT SECTOR ADD HL,DE PUSH HL ;SAVE LDK DE,-CCP ;IS PASSED CCP AREA ? ADD HL,DE POP HL JC :7 ;YES-OH! PROBLEM. JMP :4 ;LOOP :7: LDK HL,EOFER1 ;FILE SIZE IS TOO BIG JMP :6 ;CHECK CPM :5: LD A,LDBUF ;GET FIRST BYTE CMP 0C3H JZ PUTSYS ;IF GOOD ;PRINT ERROR AND QUIT OR TRY AGAIN LDK HL,BSYSF :6: CALL PRINT CALL DISPFN CALL CKQUI1 JZ RESYSR CALL GETSYS ;ERROR RET PAGE DISPFN: ;DISPLAY FILE NAME ;ENTRY ;NONE ;EXIT ;NONE PROC LDK HL,FLNAM1 CALL PRINT ;OUTPUT ESC LDK HL,FCB+1 ;FROM, MOVE FILE NAME LDK B,8 :1: LD A,[HL] CPI ' ' ;IS END OF FILE NAME ? JZ :2 ;YES- CALL OCHR INC HL DJNZ :1 :2: LDK HL,FCB+9 ;CHECK EXTENTION LD A,[HL] CPI ' ' JZ :3 LDK A,'.' CALL OCHR LD A,[HL] CALL OCHR INC HL LD A,[HL] ;CHECK NEXT FILE EXTENTION CPI ' ' JZ :3 CALL OCHR INC HL LD A,[HL] CPI ' ' JZ :3 CALL OCHR :3: LDK HL,FLNAM2 ;OUTPUT ESC CALL PRINT RET PAGE CIN: ;GET A CHARACTER ;ENTRY ;NONE ;EXIT ;A = CHARACTER PROC LDK E,0FFH LDK C,6 CALL SYS ORA A JZ CIN ;loop till character RET OCHR: ;Output character to console ;ENTRY ;A = char ;EXIT ;NONE PROC PUSH HL PUSH BC MOV E,A LDK C,CONO CALL SYS POP BC POP HL RET PRINT: ;Output string LD A,[hl] OR A  RZ ;if end PUSH HL CALL OCHR POP HL INC HL JMP PRINT ;LOOP PAGE READSK: ;BDOS FUNCTIONS TO READ FILE LDK C,14H CALL SYS RET OPENF: ;BDOS FUNCTION TO OPEN FILE LDK C,0FH CALL SYS RET SETDMA: ;BDOS FUNCTION TO SET THE DMA ADDRESS ;ENTRY ;HL = DMA ADDRESS EX DE,HL LDK C,1AH CALL SYS RET PAGE GETSYS: ;GET SYSTEM FROM DISK DRIVE PROC LDK HL,ASKGET ;PRINT MESSAGE CALL PRINT ;GET RESPONCE :1: CALL CIN CMP CR JZ RESYSR ;if request to quit ANI 5FH CMP 'A' JZ :2 ;IF A CMP 'B' JZ :2 ;IF B CMP 'M' JNZ :1 ;LOOP IF NOT 'M' ;CHECK CPM IN MEMORY LD A,LDBUF ;GET FIRST BYTE CMP 0C3H JZ PUTSYS ;IF GOOD ;PRINT ERROR AND QUIT OR TRY AGAIN LDK HL,BSYSM CALL CKQUIT JZ RESYSR ;QUIT JMP GTRYAG ;GET SYSTEM ;SELECT DISK GIVEN BY REGISTER A :2: STO A,GDISK ;PUT IN MESSAGE SUI 'A' STO A,SDISK ;SET DRIVE ;OUTPUT MESSAGE LDK HL,GETMSG CALL PRINT ;GET RESPONCE :3: CALL CIN CMP CR JNZ :3 ;LOOP IF NOT CR ;OUTPUT MESSAGE LDK HL,RDSYS CALL PRINT ;READING SYSTEM MESSAGE ;SET RW TO READ AND GET THE SYSTEM XRA A STO A,RW ;set flag for READ CALL GETPUT ;Get system into memory JZ :4 ;IF NO ERRORS ;PRINT ERROR AND QUIT OR TRY AGAIN LDK HL,READERR CALL CKQUIT JZ RESYSR ;QUIT GTRYAG: LDK HL,CLEP20 CALL PRINT LDK HL,ASKGE1 CALL PRINT JMP :1 ;Try again ;CHECK SYSTEM :4: LD A,BUFF CMP 0C3h JZ :5 ;if 1st byte is JMP ;PRINT ERROR AND QUIT OR TRY AGAIN LDK HL,BSYSD CALL CKQUIT JZ RESYSR ;QUIT JMP GTRYAG ;Try again ;MOVE BUFFER FROM 4000 TO LDBUF :5: LDK HL,BUFF ;where CP/M is left after movcpm LDK DE,LDBUF ;DESTINATION LDK BC,128*N128BS ;NUMBER OF BYTES IN THE SYSTEM LDIR ;MOVE SYSTEM ABOVE 04000H CALL PUTSYS ;FALLS THROUGH TO PUTSYS RET PAGE PUTSYS: ;Now put the system on user requested disk PROC ;OUTPUT MESSAGE LDK HL,ASKPUT CALL PRINT ;GET RESPONCE :1: CALL CIN CMP CR JZ RESYSR ;if request to quit ANI 5FH CMP 'A' JZ :2 ;IF A CMP 'B' JNZ :1 ;LOOP IF NOT B ;SELECT DISK GIVEN BY REGISTER A :2: STO A,PDISK ;PUT IN MESSAGE SUI 'A' STO A,SDISK ;SET DRIVE ;OUTPUT MESSAGE LDK HL,PUTMSG CALL PRINT ;GET RESPONCE :3: CALL CIN CMP CR JNZ :3 ;LOOP IF NOT CR ;OUTPUT MESSAGE LDK HL,WRTSYS CALL PRINT ;WRITTING SYSTEM MESSAGE ;MOVE BUFFER FROM LDBUF TO BUFF LDK HL,LDBUF ;where CP/M is left after movcpm LDK DE,BUFF ;DESTINATION LDK BC,128*N128BS ;NUMBER OF BYTES IN THE SYSTEM LDIR ;MOVE SYSTEM ABOVE 04000H ;SET RW TO WRITE LDK HL,RW STO 1,[HL] CALL GETPUT ;TO PUT SYSTEM BACK ON DISKETTE JZ PTRYAG ;IF NO ERRORS ;PRINT ERROR AND QUIT OR TRY AGAIN IN DSK_STS ;READ FDC STATUS ANI 40H ;IS WRITE PROTECTED ? LDK HL,WRERR JZ :4 ;NO- HARD ERROR LDK HL,WRER1 ;WRITE PROTECTED ERROR :4: CALL CKQUIT JZ RESYSR ;QUIT PTRYAG: LDK HL,CLEP20 CALL PRINT LDK HL,ASKPU1 CALL PRINT JMP :1 ;Try again PAGE RESYSR: ;RETURN TO SYSTEM LDK A,'Z'-40H CALL OCHR XRA A STO A,SDISK ;SET DRIVE CALL SYSR RET PAGE GETPUT: ;Get or PUT cpm onto disk requested ;ENTRY ;RW = 0 if read, 1 if WRITE ;EXIT ;ZBIT = RESET IF ERROR PROC LDK HL,BUFF STO HL,DMADR ;SET DMA ADDR ;Main loop for reading or writing next Track LDK A,1 STO A,SAVSEC ;set sector *SET "SAVTYP" AND GET NUMBER OF SECTORS PER TRACK CALL SENDEN ;SENCE DENSITY AND SET SAVTYP RNZ ;RETURN IF ERROR PUSH BC ;SAVE NUMBER OF SECTORS IN ONE TRACK ;CHECK FOR VALID FORMAT AND SET D=NUMBER OF 128 BYTE SECTORS TO READ CALL CHKTYP RNZ ;RETURN IF ERROR *SET NUMBER OF SECTORS TO READ LD A,SAVTYP SRL A SRL A ANI 0000_0011B ;A=NUMBER OF BYTES IN ONE SECTOR(0-3) JZ :2 ;IF 128 BYTES SECTORS ;GET NUMBER TO DIVIDE BY MOV B,A ;B=NUMBER OF BYTES IN ONE SECTOR(1-3) LDK A,1 :1LOOP: SLA A ;TIMES TWO DJNZ :1LOOP MOV B,A ;NUMBER TO DIVIDE BY MOV A,D ;A=NUMBER OF 128 BYTE BLOCKS LDK D,0 :2LOOP: SUB B ;SUBTRACK WITH DIVISOR EX AF ;SAVE FLAGS INC D ;COUNT EX AF ;RESTORE FLAGS JZ :2 ;IF REZULT IS ZERO (NO PARTIAL SECTORS) JNC :2LOOP ;LOOP :2: POP BC ;B=NUMBER OF SECTORS IN ONE TRACK MOV C,D ;C=NUMBER OF SECTORS TO READ *READ SYSTEM XRA A ;A=0 :TLOOP: STO A,SAVTRK ;SET TRACK ;CHECK FOR ALL SECTORS READ MOV A,C ;SECTORS TO READ ORA A RZ ;RETURN IF DONE ;UPDATE NUMBER OF SECTORS LEFT TO READ SUB B ;SUBTRACK SECTORS IN ONE TRACK JNC :3 ;A>B MORE THAN ONE TRACK LEFT TO READ ;IF THIS IS LAST TRACK ZERO NUMBER OF SECTORS LEFT TO READ MOV B,C ;READ ALL THE REMAINING SECTORS XRA A ;STOP AFTER THIS READ ;R/W ONE TRACK :3: MOV C,A ;SAVE REMAINING SECTORS TO READ LD A,RW ORA A JZ :4 ;IF READ CALL WSEC ;WRITE RNZ ;RETURN IF ERROR JMP :5 ;SKIP READ IF WRITE :4: CALL RSEC ;READ RNZ ;RETURN IF ERROR ;UPDATE DMA :5: STO HL,DMADR ;SET DMA ;UPDATE TRACK LD A,SAVTRK INC A JMP :TLOOP ;TRACK LOOP PAGE CHKTYP: ;CHECK FOR VALID FORMAT FOR SYSGEN ;ENTRY ;SAVTYP SET ;B = NUMBER OF SECTORS ;EXIT ;ZBIT = RESET IF NOT VALID ;D = NUMBER OF 128 BYTE BLOCKS IN SYSTEM PROC LDK HL,SAVTYP LD A,[HL] ;GET TYPE ;CHECK FOR OSBORNE SINGLE DENSITY CPI SINGTYP JNZ :C10 ;IF NOT OSBORNE SINGLE MOV A,B CPI SINGSEC JNZ :C30 ;IF NOT OSBORNE LDK D,N128BS RET ;RETURN NUMBER OF SECTORS FOR OSBORNE ;CHECK FOR OSBORNE DOUBLE DENSITY :C10: CPI DOUBTYP JNZ :C20 ;IF NOT OSBORNE DOUBLE MOV A,B CPI DOUBSEC JNZ :C30 ;IF NOT OSBORNE LDK D,N128BS RET ;RETURN NUMBER OF SECTORS FOR OSBORNE :C20: LD A,RW ;CHECK FOR READ OR WRITE ORA A JNZ :C30 ;CAN WRITE TO NON-OSBORNE LDK HL,NONOSB CALL PRINT CALL BEEP ORI 0FFH RET ;IF NOT OSBORNE ON READ ;CHECK FOR IBM FORMAT : C30: CPI IBMTYP JNZ :C40 ;IF NOT IBM MOV A,B CPI IBMSEC JNZ :C40 ;IF NOT IBM LDK HL,IBMERR CALL PRINT ;ERROR IF IBM CALL BEEP ORI 0FFH RET ;RETURN ERROR ;OTHER FORMAT :C40: LDK HL,WBMES CALL PRINT ;ASK IF WANTS TO PUT WARM BOOT ON DISK CALL BEEP CALL CIN ANI 5FH ;UPPER CASE CPI 'Y' RNZ ;RETURN IF NOT 'Y' LDK D,WBSEC ;NUMBER OF SECTORS FOR WARM BOOT XRA A RET ;RETURN NO ERROR PAGE CKQUIT: ;FIND OUT IF USER WANTS TO QUIT ;ENTRY ;HL = MESSAGE ADDRESS ;EXIT ;Z = SET IF QUIT REQUESTED PROC CALL PRINT ;PRINT MESSAGE CKQUI1: CALL BEEP LDK HL,QUITMES CALL PRINT ;ASK CONTINUE OR QUIT CALL CIN CMP ESC RET ;RETURN PAGE BEEP: ;BEEP ;ENTRY ;NONE ;EXIT ;NONE PROC LDK A,BEL CALL OCHR RET ;RETURN PAGE IMSG: DB 'Z'-40H DB ESC,'=',0+32,22+32,ESC,'j ENCORE System Generation Program ',ESC,'k' DB ESC,'=',1+32,16+32,'Rev X3.094 ' DB ESC,'g' ;ON GRAPHIC MODE DB 'S'-40H ;COPYWRITE SYMBOL DB ESC,'G' ;OFF GRAPHIC MODE DB ' 1983 OSBORNE SOFTWARE TEST ONLY' DB 0 CLEP20: DB ESC,'=',20+32,01+32,ESC,'Y',0 FLNAM1: DB ' ',ESC,'j ',0 FLNAM2: D ' ',ESC,'k',0 RDSYS: DB ESC,'=',20+32,4+32,'READING SYSTEM',ESC,'Y',0 WRTSYS: DB ESC,'=',20+32,4+32,'WRITTING SYSTEM',ESC,'Y',0 ASKGET: DB ESC,'=',8+32,4+32,ESC,'Y' DB 'A ',ESC,'j GET SYSTEM FROM DRIVE A ',ESC,'k' DB ESC,'=',10+32,4+32,'B ',ESC,'j GET SYSTEM FROM DRIVE B ',ESC,'k' DB ESC,'=',12+32,4+32,'M ',ESC,'j GET SYSTEM FROM MEMORY ',ESC,'k' ASKGE1: DB ESC,'=',23+32,4+32,'Press A, B, M, or RETURN to exit to CP/M.',0 ASKPUT: DB ESC,'=',8+32,4+32,ESC,'Y' DB 'A ',ESC,'j SAVE SYSTEM ON DRIVE A ',ESC,'k' DB ESC,'=',10+32,4+32,'B ',ESC,'j SAVE SYSTEM ON DRIVE B ',ESC,'k' ASKPU1: DB ESC,'=',23+32,4+32,'Press A, B, or RETURN to exit to CP/M.',0 GETMSG: DB ESC,'=',23+32,4+32,'Put SOURCE diskette in drive ' DB ESC,'j ' GDISK: DB ' ' DB ESC,'k' DB ' then press RETURN.',0 PUTMSG: DB ESC,'=',23+32,4+32,'Put DESTINATION diskette in drive ' DB ESC,'j ' PDISK: DB ' ' DB ESC,'k' DB ' then press RETURN.',0 NONOSB: DB ESC,'=',20+32,4+32,'Can only read the system off of an OSBORNE diskette.' DB ESC,'=',23+32,4+32,'Insert an Osborne disk and retry.',0 READERR: DB ESC,'=',20+32,4+32,ESC,'j READ ERROR ',ESC,'k on source diskette.',0 WRERR: DB ESC,'=',20+32,4+32,ESC,'j WRITE ERROR ',ESC,'k on destination diskette.',0 WRER1: DB ESC,'=',20+32,4+32,ESC,'j WRITE PROTECTED ',ESC,'k on destination diskette.',0 BSYSD: DB ESC,'=',20+32,4+32,'No SYSTEM in the diskette.',0 BSYSM: DB ESC,'=',20+32,4+32,'No SYSTEM in memory.',0 BSYSF: DB ESC,'=',20+32,4+32,'No SYSTEM in the file',0 IBMERR: DB ESC,'=',20+32,4+32,'Can''t sysgen IBM diskettes',0 WBMES: DB ESC,'=',20+32,4+32,'Osborne warm boot capability can be placed on this diskette, but this will' DB ESC,'=',21+32,4+32,'destroy any other booting capabilities already on this diskette.' DB ESC,'=',23+32,4+32,'Do you wish to do this (Y/N)?',0 OPNERR: DB ESC,'=',20+32,4+32,'ERROR cannot open source file',0 EOFERR: DB ESC,'=',20+32,4+32,'ERROR File size is too small',0 EOFER1: DB ESC,'=',20+32,4+32,'ERROR File size is too big',0 QUITMES: DB ESC,'=',23+32,4+32,ESC,'Y','Press ESC to exit to CP/M or any other key to retry.',0 RW: DS 1 ;READ IF 0, WRITE IF 1 DS 30*2 STK: DS 0 IF * > LDBUF .err MSG 'ERROR SYSGEN too large ', * ENDIF destination diskette.',0 BSYSD: DB ESC,'=',20+32,4+32,'No SYSTEM in the diskette.',0 BSYSM: DB ESC,'=',20+32,4+32,'No SYSTEM in memory.',0 BSYSF: DB ESC,'=',20+32,4+32,'No SYSTEM in the file',0 IBMERR: DB ESC,'=',20+32,4+32,'Can''t sysgen IBM diskettes',0 WBMES: DB ESC,'=',20+32,4+32,'Osborne warm boot capability can be placed on this diskette, but this will' DB ESC,'=',21+32,4+32,'destroy any other booting capabilities already on this diskette.' DB ESC,'=',23+32,4+32,'Do you wish to do t1!:] !W\<'!v!@\A!8v! \kAeF!Yv: ʔ!)͆!N!]~ ʝ#!e~ >.~#~ #~ !S_~#! _A3B3M: ʔ!b2A2! A!W2q!f!G!:@ʅ!b!@ ͔! _AʮBš2A2! ¼!l! @!6@!!!G!`Ú>2!@">2p:??DG>'GzD:J2yȐSAO:bf":= 6j ENCORE System Generation Program k=!0Rev X3.094 gG 1983 OSBORNE SOFTWARE TEST ONLY=4!Y j k=4$READING SYSTEMY=4$WRITTING SYSTEMY=($YA j GET SYSTEM FROM DRIVE A k=*$B j GET SYSTEM FROM DRIVE B k=,$M j GET SYSTEM FROM MEMORY k=7$Press A, B, M, o  Generation Procedure for ENCORE Sysgen(VSYSGEN) ------------------------------------------------- 4/4/83 A. The following three files are needed on the current drive: 1. ACT.COM - Assembler file 2. LOAD.COM - Link file 3. VSYSGEN.ASM - Source file B. Type "ACT VSYSGEN ". This command will generate following file: VSYSGEN.HEX - Hex formmat file C. Type "LOAD VSYSGEN". This command will generate following file: VSYSGEN.COM - CP/M executable file r RETURN to exit to CP/M.=($YA j SAVE SYSTEM ON DRIVE A k=*$B j SAVE SYSTEM ON DRIVE B k=7$Press A, B, or RETURN to exit to CP/M.=7$Put SOURCE diskette in drive j k then press RETURN.=7$Put DESTINATION diskette in drive j k then press RETURN.=4$Can only read the system off of an OSBORNE diskette.=7$Insert an Osborne disk and retry.=4$j READ ERROR k on source diskette.=4$j WRITE ERROR k on destination diskette.=4$j WRITE PROTECTED k on destination diskette.=4$No SYSTEM in the diskette.=4$No SYSTEM in memory.=4$No SYSTEM in the file=4$Can't sysgen IBM diskettes=4$Osborne warm boot capability can be placed on this diskette, but this will=5$destroy any other booting capabilities already on this diskette.=7$Do you wish to do this (Y/N)?=4$ERROR cannot open source file=4$ERROR File size is too small=4$ERROR File size is too big=7$YPress ESC to exit to CP/M or any other key to retry.    !"#$%&'