IMD 1.18: 14/02/2020 13:58:38  ͢>$,> (((*+#:(Nx*>(+((Pr 8>%,+#w>$,(G  !x  y( >[(*%(W _ g  ! !!!~$(# LOST DATA$ CRC ERROR$ RECORD NOT FOUND$ DISK NOT READY$(`UcQc COPYRIGHT (C) 1978, DIGITAL RESEARCH `_͌`> ͌`> Ì`͘`~#͌`ç` _2g<ɯ2ggþ`2g<2g<2g<g`g`2ga{_:gwa:g>ĸ`:g=2gg`wa`!'d!g5g`wa:gĸ`!`ͧ`͝aʂaaqca `!`F#xʕa~awÆaw!`"`  w# µa!g~6͸`g`:gø` c!h¼c#a͘`*`~ bb͌`#a>?͌`͘`aqc a=_.:;<> 5bo$>!g?b2g*`5b"`ob@G:vb:gw|bx2gpbʟb#*b6?Ñbw~bbʦbÕb#6 Ÿb.bbb#*¿b6?bw®bbbb#6 b#6b"` #~?b bxDIR ERA TYPESAVEREN !byg1c#c 6cy#1c cLcg;`Lc>Mc2gɯ2`1gͳ`y͸`<:c:`‡c1g͘`ͰaA͌`>>͌`&a;aͰa2gDba:gtfc!c_~#fo\dd+e{eetf!v"`!`câ`READ ERRORcâ`NOT FOUND!g ~ d#0 aWxaxaaaG c~ a# dx~#'d!?b~ɯ2g:g=!gø`:g=!g:gø`Db9d!g~ td 6?#md`cd͘`ͰaA͌`>:͌`> ͌`:g`Ox0d ±d> 0d> d͒`x d d> ͒`Ýd͝ad`zd`gDb ee͢`&a!`5qc#~Yqc#"`!g6?=dg`ͳ``g9dg``gALL FILES (Y/N)?Dba9d`ue͘`!g6!g~Ueanew4!?b~`g͌`͝a`gBe=`gcKdaDb:gacDba9dg`a`eo&)|e+!;agaeëee͢`g`ee͢``gNO SPACECANNOT CLOSEDba:g9d`_f!gg'd*`5b=%f_Yf#"`DbYfG!g~?fpYfp2g`Sfga`gc`gKdahf͢``gFILE EXISTSa:g “f:gcg=2g2͸`cgg a9d!]g%d`Cg!;ag`f`}|Igðf=IgKdDb!g~2g>Fb~2g2g\!g!'d!`~ g g#f~g#gx2͘`:g2ͫa;a1g:g͸`qcKdaRg͢``gLOAD ERRORCOMKdDb:g !gaqc$$$ SUBAh`hlhrh!h N!u    K" j! jq!9"j1@jq*j* j}D!h{h!huh!h{hSi:jA2hh]i]iúhBDOS ERR ON : $BAD SECTOR$SELECT$R/O$!j~6 uͺhhO:i :jiu uh u2j>h u:juy!j4 5 6yh:i^i@Oy i i:j@i#i i i $O:i]i* jN#ͺh i‘ixsi~+ižiSiui¯i!j>wsiʹiiNikiiNixi#N)iisi#wO)i~xisip iu*@hMu*t>w#6*tw*tts{j*t::hs+s#r*t5Yj*t::h͕s"ttsڣj*t*ts#r*t4{j*t:@hOu*ttsMh!tq:tj'u2tj*u2t:tj!j* hͼjͼj*!tږk*t&*s:t2t!t4uk:t!tq:j͹s!t:j+!tm*t&*zt6!t4lAj!s6l:s(m*s&*s~Vm*s& *s~$!sw͢lm*t" jl:s2sqm!t6!t:t*t&* j~2t:t!sO*s :t?HHҼm!t4vm!t:tm`m!tq:t2t* j"t!s6AjZmk m:sm͢l*s&*s6lZmm!tq:t2t!>h:t>!tHrn>!t~Hw#~!>h!tw*tMTl`n:t*tMTlon:tn>!ts+q:t=2tʪn:t!tO* j :s!tO*s w{nWkl unk m* j* j w:sn unZmn m:s#o!t6 >!t#o :t!sO*s *t&* j w!t4n!s6ͮk1o m:sAoͱnk* j"t!@j" jm:s*t" jʈo!t6 >!tڅo*t&* j6!t4ioͱn!tq$o:s™o * j 4 m:s¼o:tҶoBoÿon:so!s6(k!s6:so*sDM$u:so*sDM$u(k:t!t#p!s6:tp͉o!t6:s#pj*t}7p!s6IpkYjojo?kk(k>!tap!s6qj*t}p!t6jy!t#wO>Ҕp:t=O* j ~2t*tMn2t«p!s6p*tMrl*t&"t*t&* j:tw:sqkYjojo:t!tp:t<2t:tq?ko:sq!t6!s6?k>!j)q!)q* h:jO!s "zt:jO!}t "t*j&t "t*j&t) "t*jMu:t:j=2sq:j2t* j~2t* j>w͌q* j"sDM$u* j}2s!" j}2s2t* jM!/s ^#Vumsh2sms*sM:imsu2sms*sMums*sMums*" jms*&" jms:s2ms* jDM]imskimsh2smsms!j6!t6!s6!" jqqms͌qms͠qnms͠q$oms͠q mms*t" j͠qZmms͠qmms͠qoms͠qJpms͠qBoms͠q͹nms:t2sms:j2sms:ss* j"s sqms*zt" jmsͻkms:|t2sms!s6qmsqqrrr#r-r6rArJrUr[rdrgrrrrrrrrrrrrrr sss$s:tʅs* j:tw:t2s͌q:s jͫs+s#r_og_{ozg_og~ ¹s~ s^#V) s~ si`N#Fogo&og+é{f|æ|ë|Ü|}zxwxxçuv ~(^q#Vpi`s#rkuzvKBkuz YPw#w^#V++++kuzv##y #x +++kuzvx y kus#r>qvͤv ~uG:6u>(> /w A vw vF:6u>(>wv !*Au>qvͤv(v>ẅ́v:6u:v~w w w!uG:5u |w29u!9"Au*Cu :6uv [7u:9u(K5uxG!!:uPu(+!~(~(/w w(>ͬyé{wK5uqxw!>2w!w^#V}>w>w(zw|z>w>w:2uwy25u>ͬyyx26uC7u|wyO(!uVZxR( y! yy(!y"yN# 4~!`x! ^#Vfxxxʛx>(y(( +!2u0 O*zy)*y>wNx*y4Nx(zFG :2u(x(x+>(*z *y^ww+(~+>(*zxz>ͬy yx y!y! yw#y!oy( !}y(!byͺ!yͺ~!yͺ~!yͺ!yͺ READ ERR: WRITE ERR: RDAFTWR VERIFY ERR: TRK=H,SCTR=H: STAT=HA2y!y:4uAwͺɅ0$o DRV: ERR CODE=:3u0 >ͬy2z)wy24uGz2zz~)*4u&z:z,> (*z (zw((G (G((:4u$(( x:z,~+~*>(*z zzyZz>(*z:z_+((Pr {,+#w+#wz(G G)x(:z,:z,fn"z zyyZz(@(>ͬy*z>(zV+(O G(A{Q#V 6Q#Vz(G (G)x(:uG>a{G)xzzzZz>(*z:z_+((P {,+# z*zz (G >>(1xw| 1x>2uC2hC:@h2>u:82O`!{ͺé{ WARM BOOT ERR >2_|>2a|2`|!_"d|xz!^|:a|<7|:`|<2`|>2a|*d| "d|+N+F|z*d|+q+p:_|=2_|`͢~EGxyx/‹|xv|y/(>!|: !|!|:'_^#V}||}||||||}|1 (y (: }<2 }y 2 } (: }@y×y:%}>2%}2}(}=HA2y͢!@}SCu!@}!}S?u*&}}0>ͬyv>2}zCww*&}x y! }ç}}/o|/0gy/0Ox0GT]M@(>ɷ1:2u 80gxo"s~ͱ!X~ͺ22*~"0u!{}CP/M on Exidy Sorcerer for Track Disk 32K CP/M VERS 1.42/3 Copyright (C) 1980 Exidy Inc.  MOVCPM COMXBASCNVRTCOMSYSGEN COM STAT COM DUMP COM SUBMIT COM PIP COM8ED COM2DDT COM(LOAD COMASM COMBDUMP ASM" !"CBIOS ASM8#$%&BIOS ASM\'()*+,DEVCNVRTCOM -MBASIC COM./012345MBASIC COM<6789RANTEST BAS:EXASM COM^;<=>?@EXCOPY COMABEXLINK COM,CDEDISKDRIVCOMF 9_!'*5=%_Y#"DYG!~?pYp2S``Kh͢`FILE EXISTS: “:c=22͸c 9!]%C!;}|Ið=IKD!~2>F~22\!!'!~PESAVEREN !y1# 6y#1 L;L>M2ɯ21ͳy͸<::‡1͘ͰA͌>>͌&;Ͱ2D:t!_~#fo\+{t!v"!âREAD ERRORâNOT FOUND! ~ #0 WxUQ COPYRIGHT (C) 1978, DIGITAL RESEARCH _͌> ͌> Ì͘~#͌ç _2<ɯ2þ2<2<2<,COPYRIGHT (C) DIGITAL RESEARCH, 1978 1͂] ʗ?ʗ! ee0 x))) O F|x}x.g))ë͂ INVALID MEMORY SIZE$!$ʧ~/w/wʚ|g*"|?¾>@G!>0w#w!4~:60+4͂!N#F! x2  # &xG ~ # x~#'!?~ɯ2:=!ø:=!:øD9!~ t 6?#m͘ͰA͌>:͌> ͌:`Ox0 ±> 0> ͒x  > ͒Ý͝z`D ͢&!5q#~Yq#"!6?2a{_:w:>ĸ:=2w!'!5w:ĸ!ͧ͝ʂq !F#xʕ~wÆw!"  w# µ!~6͸:ø !¼#͘*~  ͆2!p+q*̓!p+q*͆!p+q*͆!p+q*͆2!p+q*̓!6 ̓ ͆ ̓!p+q*̓> >ڦÚ!p+q*DM͞:̓ ̓:}2:~!!:*& N̓!4!6::=!v"!6!Â#+w+w >g%" }o|g"" ! :m p }!"x} ~#p*!:m ʒ xñ SYNCRONIZATION ERROR$ {½~#o}oÒ*g# :m z! ~#* =ͳ`9`ALL FILES (Y/N)?D9u͘!6!~Unw4!?~`͌͝`B=`KD:D9o&)|+!;ë͢͢`NO SPACECANNOT CLOSED:͌#>?͌͘q =_.:;<> 5o$>!?2*5"o@G:v:w|x2pʟ#*6?Ñw~ʦÕ#6 Ÿ.#*¿6?w®#6 #6" #~? xDIR ERA TY͢>$,> (((*+#:(Nx*>(+((Pr 8>%,+#w>$,(G  !x  y( >[(*%(W _ g  ! !!!~$(# LOST DATA$ CRC ERROR$ RECORD NOT FOUND$ DISK NOT READY$(]DM! x w#!N#F! D!l>0w#w>!m4~:)60+4)*"rM͂ READY FOR "SYSGEN" OR "SAVE 00 CPM00.COM"$*  CONSTRUCTING 00K CP/M VERS 1.4$ EXIDY MOVCPM PROGRAM VERSION 3 $ Ë́|>*A>qͤ(>ẅ́:6:~w  w!<͌!:E:>G:5 |29!9"A*C :6 [7:9(K5xG!<s<( !:s:MD͌!<E>!:P(+!<P >~(~(" m*z" mͻ m:|2m!6m#-6AJU[dg $:ʅ* :w:2͌: ͫ+s#r_og_{ozg_og~ ¹~ ^#V) ~ i`N#Fogo&og#!6:͉!6:# *}7!6I Y  ? ( >!a!6 *}!6 y!#wO>Ҕ:=O* ~2*M2«!6*Mr *&"*&* :w: Y  :!:<2:? &*z6!4 A !6 :( *&*~V *& *~$!w͢  *"  :2q !6!:*&* ~2:!O* :?HHҼ !4v !: ` !q:2* "!6A Z  : ͢ *  *@M*>w#6*w*{ *::+s#r*5Y *::͕"ڣ **s#r*4{ *:@O*M!q: '2 *2: ! * ͼ ͼ *<M!  #~#x2͘:2ͫ;1:͸qKR͢`LOAD ERRORCOMKD: !q$$$ SUB:!6!6? >! )!)* : O! "z: O!} "* & "* &) "* M:: =2: 2* ~2* >w͌* "DM$* }2!" }22* M!/ ^#Vm&*6 Z !q:2!>:>!Hr>!~Hw#~!>!w*MT `:*MT o:>!s+q:=2ʪ:!O* :!O* w{W   u  * * w: uZ  :#!6 >!#O* n&"*<M!:=!͡" * ~2* ~2:< * w* :w:2O`i"Y !6+6>!ږ *&*:2!4u :!q: ͹!: qͤ ~G:6>(> / A  F:6>(>w !<͌ !:2m*M: m2m*Mm*Mm*" m*&" m:2m* DM] mk m2mm! 6!6!6!" m͌m͠m͠$m͠ m*" ͠Z m͠ m͠m͠Jm͠Bm͠͹m:2m: 2m:* :!O* *&*  w!4!6ͮ 1 :Aͱ * "!@ "  :*" ʈ!6 >!څ*&* 6!4iͱ!q$:™ * 4 :¼:ҶBÿ:!6( !6:*DM$:*DM$( :!*m  ͻ  !q:<2O:;4 !6:2S W *M !q:O*z :+! * > : y! 4 5 6y: ^ @Oy    : @ #     $O: ] * N#ͺ ‘ xs ~+ ž S u ¯ ! >ws ʹ  N k  N x #N) s #wO) ~x s p  I$@$H@ $$IBH DD  !$ $"@B $I$I"$""I$D"$" @@D"DHDI$DDD" @"H! "! "AIB  !   DDI$$BB DI "$ABH I BHH(: @y×y:%>2%2(=HA2͢!@SC!@!S?*&0>ͬv>2C<*&"::G*&( " ut[*Sut>ww*&x y! ç}/o|/0~)*4&:,> (* (w((G (G((:4$(( x:,~+~*>(* Z>(*:_+((Pr {,+#w+#w(G G)(:,:,fn" Z(@(>ͬ*/ (>ͬéwK5qxw!<Ev~Gfnx( [?fn[?~( ~w>>2!<P 1~(~(:( /  w!:E|*:>w^#V}>>w(|>w>w:2y25>$A"$H !BA $! DBI$  $$$I$$HHHHB$! D"D BIHDAAI$$$H$HI$BI$I $I$I$I$$I$ "I$H$I! @ABA@HH"H $gy/0Ox0GT]M@(>ɷ1:2 80gxo"sͱ!Xͺ22*~"0!CP/M on Exidy Sorcerer for Track Disk 16K CP/M VERS 1.42/3 Copyright (C) 1980 Exidy Inc. >(V+(O G(AQ#V 6Q#V(G (G)(:G>aG)Z>(*:_+((P {,+# *z (G >>(1x 1>2C2C:@2>:82O!ͺé WARM BOOT ERͬy26C7|O(!VZR( ! y(!"N# 4~!`! ^#Vfʛ>((( +!20 O*y)*>wN*4N(FG :2(x(x+>(* *^ww+(~+>(*>ͬ x  !HH H@ $T $@ $@!  @$@@BH@@@  H AHUQT@@$ B@D@$@D $@D @@$ $$$BI$H"! $HD@B "B "   D  HB $$UPHH@ @DB  $H I!H ! $BI"HI$@I" I$I$H I $I$!IBI$IBDA$H $ $!R >2_>2a2`!"d!^:a<7:`<2`>2a*d "d+N+F|*d+q+p:_=2_͢~EGxyx/‹xv/(>!: !!:'_^#V1 (y (: <2 y 2   !! w#y!o( !}(!bͺ!ͺ~!ͺ~!ͺ!ͺ READ ERR: WRITE ERR: RDAFTWR VERIFY ERR: TRK=H,SCTR=H: STAT=HA2!:4AwͺɅ0$o DRV: ERR CODE=:30 >ͬ2)wy24G2 :)!4f!^!*FNͷyj*DMͿ2: K!<͚u ͊<2:\_/:)j*"1"!͚:] \<œ!͕2|\ ¢! DMͿ\ô!͕!͕u A͊A2Aͦ͊!+> #~   N(6 W*> BAS:03>3 !)NDOREXTATAYENPUTIMEADETOTOUNFESTOREOSUBETURNEMTOPUTNULLAITEFOKERINTONTISTLEARLOADSAVEEWAB(ONPC(HOR IN TAPE HEADER$CRC ERROR $NOT A BASIC FILE$MISSING FILE NAME$FOUND-$LOADING- $NAME FILE BLCK ADR GOADDRS $ $PRESS PLAY, THEN HIT ANY KEY TO CONTINUE$BASIC FILE IS TOO LARGE TO TRANSFER. SAVE AS MUCH AS POSSIBLE (Y/N) ?$NO SPACE ON DIRECTORY$FILE1}`:\2;!]=~ Q~ ͢!=~h:m ( 1(2,v($]~\(A;~GݾW#~]1HOv^^V_R0>26{ !S7ͩ(Ww#͞'S;^^V_:6*('%Wv^^V͚u ͊2!c͚!͕u A6͊A2(Aͦ!͕u ͊!͕* !͚* ͊!6!c͚>ͦ͊!u͕EXIDY SYSGEN VER 1.4/3SOURCE DRIVE NAME (OR RETURN TO SKIP)SOURCE ON , THEN TYPE RETURNDESTINATION DRIVE NAENOTTEPNDRGNNTBSSRRENPOSQRNDOGXPOSINANTNEEKENTR$ALSCHR$EFT$IGHT$ID$qͨ͆0|vj ʜ ?҉ 7É ?ҥ 7j~$7# s$ EXTENSION ERROR$DISK FULL$O!9sr:; =i_<6r!WrRNFxg^Vh> 7~" 7~"(((O} 7g*R( ͆_ͩ[W͓;61#͞͞/'vWwW#Ó W W pFFFFFR%>26"7#W^#r#^r##+t#P ME (OR RETURN TO REBOOT)DESTINATION ON , THEN TYPE RETURNPERMANENT ERROR, TYPE RETURN TO IGNOREFUNCTION COMPLETEINVALID DRIVE NAME (USE A, B, C, OR D)NO SOURCE FILE ON DISKSOURCE FILE INCOMPLETECP/M TO BE CREATED WILL RESIDE IN RAM FROM TO xCOPYRIGHT (C) 1978, DIGITAL RESEARCH    o&)))))))a{__> ̓> ̓͊~̓#ÚO****!*$*'! ">2!4:(wNͯ>2͞W#:6(*7+"7|+:6(*7#"7|_*s#6R ͆r!"> 7> 7><;F6<NO SUCH DISK$/x | x"k) ~"])( x"a) (^*~ ~29!9>o0:8_>(FY(N7 _a{!nfREXIDY STANDARD BASIC CASSETTE TO DISK CONVERSION PROGRAM VERSION 1.1 (C) COPYRIGHT EXIDY, INC. 1980 $NON ALPHA ENTRY$NAME TOO LONG$NO SUCH TAPE UNIT$CRC ERR  ¥   Ϳ Ͱ ͊ =¥ ` xS |¥ }ҥ gA>M Ag}M M c |¥ }!w s#r:[ʎ _!~ʠ ![4á \͢  2[y 7 >?  _͢!a"]> _͢a_!`~> 5*]~#"] 0 7  !,!6#6:* ==!-! *-!&, ~2*!͢ *(!"&!*-!&+ ~2*!͢ !+!6> !+!ں *+!&*&!~2.!*+!&*(!~2/!OҤ *-!&+ ~2+!*-!& *-!& w*-!& :+!w!,!4+6 ó :/!!.!ҳ !+!6 !+!4C !-!4 !,!6!* :,!҆ *,!&+ ~2*!͢ **!&() N#Fͳ  A* M:[ ," :!)^,}w * n&++! 4* !" p+q!'"% !$ 6>% ͩ ʲ*! *% N {2# *! P "! PY! N "% >͒ !$ +~Hү!$ 6:# 0OVK[" RAODMEͻd2' v2( !) 6:' K ~2 O>* M͊ ͊>! /~,H~:H~*H~.H~>H~<H~=H~* & 6Â! 4! 4! q* & : w! 4! 6*E2 : ! 4: 1:2 ! 6+6>! .: O!* DMͳ: $ COPYRIGHT (C) 1978, DIGITAL RESEARCHCON:RDR:PUN:LST:DEV:VAL:TTY:CRT:BAT:UC1:TTY:PTR:UR1:UR2:TTY:PTP:UP1:UP2:TTY:CRT:LPT:UL1: IS $ =$BAD DELIMITER$INVALID ASSIGNMENT$BAD DELIMITER$: $BYTES REMAINING ON $R/$, SPACE: $FILE NOT FOUND$RECS BYTS EX D:FILEN**!&) Ndͳ K**!&* N ͳ RAO:!+!6> !+! *+!&*(!~ x :+! j .*+!&*(!N!+!4D !,!4 :]?:e?Hҡ **!&))))+ "(!!4!r+s+p+q!5!6>3!ͩ $ *1!*3!N !6!s*1!P "1!PY! N "3!>͒ !5!#:' 4*) Mͻ:( &O+W:' 2' :( 2( !) 4:\\:\=OL:] l!* 6!\6!h6?\3: : ƀo&"&!!0!6!*!6:0!/!* :*!H ͢ !+!6> !+!*+!&*&!*+!&*(! !+!6 :+! 20!!+!4!! O!B DMͳ: 2 : 2 ! 4": ©! 6>! ڦ: O!* DMͳ! 6> ! ڟÀ: 2 fß : ! O!B DMͳr! 4>": =2 2 : =>* &B DME=2 >! 6: =2 AME.TYP$R/O INVALID DISK ASSIGNMENT$!9" ! !E <" !E >" ! 6:\:] Hr:\ʽ: =§͝ҞLmä ú:\ʷ:\=O]͠]* ! q* &(    ! p+q*  ( ~H ! !5!6:6!0O _og_ogDM!>))덑o|gg =U DM!>))| =t ~ ‚ ^#V) Œ _{ozgi`N#Fogo&og*!4å:0! !*!5Á :* 2*!!* 4͢ **!&+ :*!w!+!6> !+![ *+!&*&!*+!&*(! w!+!43 **!&* 6**!&) 6**!&() >w#6**!&* 4**!&() *&! ~4 +s#r!+!6>!+! *+!&*&!~ [*!!+!4¬ FÁ:* á >!* !,!6>!,!: 2 : 2 : !! 2: 0>: ,A>å! s+p+q! 6! 66: ! ڰ! 6! 6>! ڞ* &* * & ʕ! 6! 4+4m: ҩ: ! 4Y>! p+q* ~:* N* #" ù:!" " * N!͌ m " ! 6* ~! ! p+q*  ( ! q* &( ! p+q* + 2 ! p+q* + 2 + 2 + . + ( + ! q: O* : ! * &* * & >! 4¨>* & ~ ! 4! 6: ҅* & P:͚m2qX:q2O! 6*q& 6$>!qRm*q& w!q55k :l͚*i+"ii ~_{ozg001 $$$$ SUB*̀2!p+q*̀2!p+q*}!p+q*̀!p+q*̀!p+q*̀2!s+p+q+p+q:=2ʙ** w*#"*#"r!p+q(+*DM*c*& 6:ec\:=͚!g6>!g!9"1W͜Q>2!͢QG}DrYQ|͏}͏#> ex͏#r* _> e> e ҉0Ë7e}} :³ʳ7_<2!~ɯ2|\\FILE DUMP VERSION 1.4$ NO INPUT FIO=!9 Ÿ!6q!2qC J R q!z z=naO $q$,!;,!Ù!;qz8O! !;,z;qyO! ͣͣW_͕qyO! ͣ͒qy\0>!g6:g<2g=O! ~2h U:<2O>9U!60+~9U!60+4:hag:h_2h:h@|S͚!i6!"i!o6:os!k62p:p H^:p [:p$)2p$*pMͷ&:p02pO> ͚&!m6͠:pLE PRESENT ON DISK$!Y , <    *$A!6 # T!w $r# *`: 0 *A*! ~ ʰxkb))))_y‘BK{ͅ*!66!"80*{#z+++ #!p5t͠t&*lMͷ[:p^TA2pO>I͚Q:p>*m& ~ ¶!m4à!nq*i#"i͌d͚*ii :nw:k<2kO>}|͚ !6 COPYRIGHT(C) 1977, DIGITAL RESEARCH $ERROR ON LINE $SUBNO 'SUB' FILE PRESENT$DISK WRITE ERROR$COMMAND BUFFER OVERFLOW$COMMAND TOO LONG$PARAMETER ERROR$INVALID CONTROL CHARACTER$DIRECTORY FULL$CLOSE ERROR$!9"!Ϳ}z!p+q* }!p+q y=!z{w# % w!P͠ y͓}*w#"͌ @.@<!Eͷ~P !ͷ’P͌Q!ͷªP}QxQ!ͷ͓G@Q! ͷ y͓Gþ!ͷ ͓Q!ͷ  :B:<22%: 2:DpDz>>ͫ:S:2:b*MV:q*M}:>!8Ґ:8=28> >>!6Ү!65+N! ~2!54ͤ2¼>>!*M:25!6:7<26>! *M!6!8 :0Ot !q:O :O !6:2:'2:'2:'2*M *M *M :z :t  t   t *}2͟"ͻ * * *&"!q: : :: :2: !6<:2<22!!26 t : * !"!4*DM͂e/7 ͫ*"!4 :1 :<2!":ʚ ͂e!:q2q:2e:ր2O:2ä !:2͂!6:! e2!6:ր! *& :͏ 2!4: HHGͫ: 2%::ͭ :GF:2Äv!.q!^*8!g*6: >͆͆!q*&̓ ̓ ̓!p+q͓* ̓ ̓!q*&̓!p+q*͆2!p+q*͆2!p+q*͆2-$UNRECOGNIZED DESTINATION$CANNOT WRITE$INVALID PIP FORMAT$CANNOT READ$INVALID SEPARATOR$1. :2͆2:1.y!6+6+6!6#6!16#6:Ҵ*̓b͓!~6:*:Mͺ!*/!6!A6!6+6e͈:Ö:5:=2\(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)>! & !6:4::H4̀ : A!26*Mt : U!6!q:a/>z!/Hy:_2:!q:A/>Z!/HҠ: 2::=O>:!pHz>͞>!6:2*M! ^#V;H * *": ͫ!4¯ :1 !q4e!"!q: \ !14>!\ :!1\ :2*M!E ^#V=ځ ͻ * :w*#"m å å å å å ͫm *MRm !6 m !6 m !6 m *&̓m !6 m !6  m !͆2!p+q*̓!p+q*͆!p+q*͆!p+q*͆2!p+q*̓!6 ̓ ͆ ̓!p+q*̓> >ڦÚ!p+q*DM͞:̓ ̓:}2:~!!:*& N̓!4!6::XD͈:͜:3)\:2e:pG:!3H͜XD͈:we!D +pG:–y: ʍÖpG!~6e͈:!3ҵͫ!C6:ͣ!6:/>!/Hͫ:<2D COPYRIGHT (C) 1978, DIGITAL RESEARCH, PIP VERS 1.4$$$ SUB =.:,<> _[]INPIRDPTRUR1UR2RDROUTLPTUL1PRNLSTPTPUP1UP2PUNTTYCRTUC1CONNULEOFDISK READ ERROR$DISK WRITE ERROR$VERIFY ERROR$NOT A CHARACTER SINK$READER STOPPING $NOT A CHARACTER SOURCE$AB*?~2*#"_2͒2!6H!6H!6 H͆2ppppppppͫ!6Ú!6Ú!6Ú!6͆2'2=HX[^adgjmpy:2::2!6*Mͭ :2:D60 m *&̓m !67 m !67 m !67 m *&̓m r   ! , 7 :2!q: ʊ *M8 :œ *M8 :12!:ڹ !:2â !:w>! !5 8 : !16!q:!w  t  :͓~!s+p+q+p+q:=2G ** w*#"*#" !"*AMͺ!6:9!ڴ **?DM͂D2ʣ :ʍ ͫ*"*?6:92í *"!4Z !"!}=2 !6!"*Mͺ!6:!H * ": ::=H (ͫ!6:*D͈!B6::3/HY!6:> !/>HH;ͫ:!Bw:<2:œ:¬ͭ :!Cҿ!6: !6:!6:!6*'D͈::,ORTED$BAD PARAMETER$RECORD TOO LONG$INVALID DIGIT$END OF FILE, CTL-Z?$CHECKSUM ERROR$CORRECT ERROR, TYPE RETURN OR CTL-Z$INVALID FORMAT$HEX$$$$NO DIRECTORY SPACE$NO FILE$COM$START NOT FOUND$QUIT NOT FOUND$CANNOT CLOSE DESTINATION FILE$$$$NOT FOUND$COPYING   F!6#6*AMͺ͂\!:=-:W:S͓ͫ:<2:_!e eD :<2–͞͠p͓!6> !*&e ~2 : .̓*M̓!4¨>!:=2A::2A:4wO`iͿͱ͛2O>r:!\!6:!\:=O! Nͭ !4< ͭ  ͭ :o͓*& 6$͞U͓͞z˜yͫ*MͺnB2Cn /ee?:ͫ!6!"!"*AMͺD!q*&*~!46Z2: :]H:A2O>e: \Z2bͫ:S:QHҫ:~<2Z2: HڢÄZ2Z202O> !6Z202O> *&ͪ*& !s*& :w$6> ::Ð!q:7!wO! ~2A*& :w>!:R!74W!76>:~<2~!k> *~& NVZ2 ‡y!p+q!36!6+6 !6: һ: µ!6ày:~2}*M͠!6!6!6>!*& 6!4!4͜>!:=2::2!A:*͜y: 9͜!p+q+D*DM! D͈::=Hy͜:~2_og_{ozg^#V))) _{ozg^#V) ¿^#V|g}o i`N#Fog H =:ͫ!d6MB2B*;">!6ͫ>!Eͫ!q:Z:Q2r_!r6*}v!r4ͭ _'ͻ *Mͺe:—ͫ/eeu /eR!=>͜+!9s!"?@=!"=*;*="=ͼZ2:_!6=!6>'!.ͭ !4!p+q*n !r+s+p+q*~$v** e>*#"*#"L>u2:BҒ/:!6!6}2:!6:2͞z>!6må!62}2m:6!66#6#6!6*M͠B:&:*69Z2::':S:” A<2O>ny*M͠ґ:[‡!~5!6:ʝ!6#6>!!6:<2O>/:!O!R *M Hó: !6Z[!~m͌m͠m͠$m͠ m*" ͠Z m͠ m͠m͠Jm͠Bm͠͹m:2m: 2m:*  "?͟";"=ͼ:!2@:!Qbyb*Mͭ Q:ò :2}ͣ!6#6>!*& ~ʼ::Hڼ!6!4‡:H *"*="ͻ **M>>"2:!0!52!BFRm:O>>!p+q:l!6*DM͞:|!6̀ :Һu2—!6Ä*& :w:<2OڶR:>}20O> :0:AO>$R:A ͽͽH!5:2:2!4¥:[$Ü:0!6:.jZ2O͠j: T:*d g=:[u!~5!6:::<2*6 * 6 !q!6> !*&G :>!4©>:<2O* :w:?!36!q!6?!:   ͜ O:$X!$6:!-A;=;Z>͐F* , !%6  !6!:%2$t*%& 6 :%<2%=O! N*M[ k :ڴ͈ ʯ>!6:<2=O! N!"3>3J!"3/*3+"3>>!"+:7~"~:0<20¸  !"~W~=* ͩ *~*Y~21B *~#"~:1*M[ !#+!3s{b ͧ !26:3!2ڣ **|DMk [ ʏ ͌ *":2<22j ͧ !"!4qW= F **|:4w*#"!5q:T ͛  ͌ !T6*T& !6:! *M͵ !4 !q: [ : : H: H[ ^ :@2*M     !p+q* !p+qc *DMn !p+q* !p+q*2!p+q*2!p+q*2!p+q*!p+q*!p+q* ͯ !76͓Ñ :8F==:L-Ñ :8J=e:2eL:=2:<2!҆*& ~28e*9"`*M*Ͱ/ҟÜ!:9J"=!76͓*`"9TÑ :8M:H%! 6>3Jͦ: <2 O!6 :8 ͙:8 .!86  ͍3!86jc:8D:-!#Rc × O=aÀ:8R/!6͈DҊ>!҄Ü^q!86 :2ҷ. -¦ͳ >!^÷!6!6͠ !6:!6Oú͖28!^6Ê COPYRIGHT (C) 1978, DIGITAL RESEARCH DISK OR DIRECTORY FULL$FILE EXISTS, ERASE ITNEW FILE$BAK$$$BAK$$$-(Y/N)?$NO MEMORY$BREAK "$" AT $1dB" '+!Vs~z!(/H!)q*)M͢:)_:)!*q:&**Mͺ:*!,p+q!'"/!.6>/!p+q*2!p+q*!6͐  O >>!&q*&&!(p+q*':U҈  c )~ [ͳ c { !/p+q.*.DMd -´ *W"~!"!h6!|6.![\ - !: *M[ \ : Hqy : 2! 6*3#s#rÑ :8N†=҃*Ͱ/Ҁ8 Oú"ͯ!76!"=͓)!76;=}Ü70Ñ :8S=eL:29J+s#r!:*& ~28:<2ïÔÑ :8WͷÑ :8X\ ͛  ͆ :,!T:^,*^& ~28:^<2^× Q=D[ { × ͣ:8-W!76:8#hå|҅͋:8:‚!86Lͷå:8:¥͋ͷ:7¥*3#"3ұ!76:8B!7>w!"=*"?͓× :8C͓ͦ× :8D͙ͦ× :8K*d 6*+"!##s#r!'6!-6:] :m HB͌ :\2VR 2b:=2!\6:l2v:2}:=2͆ ͽ !d6 !"9*";!61!6#ú1!6?ú1!6>1|~ *M n *8M c 1!$6!6!#6:%2EJY*+*/{2-*+*/"+*/! "/:-!.Q!.6:-0O V  !2p+q:-/i*1DM:   :#Ҋ  Ï* *)DMZ:ʢ͐>!8 ҹÜ!: >!J*!+"!>3Ü! 6: <2 =O!6 N:# @~ { *M[ \͠ :: \ :1 ͌ U~ c ^͢ [ !:] *M[ [ a͢ [ [ !{6: ͌ !")!U6!6!6!T6*M[ k  *M[ !06:V!0 *~*YDMk \ 2 >! ͌ *~*Y6:V20 * Y :U/, ͆ !U6  :, ͌ *="b?b=Y *bd N *b"b5 Ñ :8Z† v ͜ v ú҃ {v Ñ :8ʑ ç× çv!q*&!q: !4: !6*Mͥ !q: :O>H2y !6 × :8L͟× :8PC0!76͇@@0{0× :8TQ͇× :8Ug:72'× :8V¥җ9;=DM/ *DMc â:72-× :8 ::H͇ͣ͟× :7HҔ :8A"!76*9"=*"?͓!::2{ × H;:28:2:82À× :8IU!:%:H2#c͙D9:86:8:8H:8Hҽc !"3!76#~±͇ú͙͙:8>9Jú*9d ~28O :8 *)+")!86:8  !'+w!&6ͦ28!\q!\:8:H:H!]q*]Myc *]Mͥ j ͜ Oͺ2]c :]Yv>>:802_O> /!"3|Ҷ*3)))*3) *_& "3Ñ)3=!76)3=+s#r!763)="3DM!> 28*8Mͮ  ;9=*ò*9d :8w:8 Cͦ28:8 :#/HH/DҒ:8 !86 ͓!86 :8Œç͓e*& :8w:<2dگò!Qs+q*;"R!U6:U/R=H(*R#"?"R:P2T*T& *?d !Q *3#"3*9"A!"E+"C2*;"A*"E!"C!J6:JҼEA=2I*C*A"Gd ~ Ht*G"A>*++"+*3+"3>32J:I/Ҭ!J6CA=+s#rù:Jҹ*G"A7:7*A"=*9+"?*;#"=*A#"?*9#"9*;#";*9+"9*;+"))덑o|g =^#V) ^#V|g}o '_{ozgi`N#Fogo&og H X=W LIBX$$$$$$$LIB:T2U/H%:T<2T*?#"?:U9*?+"?͓:U!6e:2*Ͱ/]Ü*8Mͺ:<2=O! Hq*+*)DMZ!#6:7¦!"+*9"Vì*="V*V+d ~2X :Hc *="V?V=:X y*+#"+8 Ü*V;*)#")!Kq:7T?;=Q:KN*;d ~2L @*9d :LwÒ=9=Ғ*9d ~2L z*)+"):Kҏ*;d :LwT  ͓:7*;"?93=!"=39="=*9"=;=3M*"?*3*;d ~2XO *V"V!"3*3"5*5"3"͟:72Y!76͇:Y27?=>=JHwz)!Z6>!Zڢ8 ғú>U:Z<2Z€!76!"39=ò!86 !86 !&6*8M͢2[*8M28:[/"?;9=ò OE2M'*9d :Mw:M A!Nq:'X*NM:N;=l*;d ~2OOͮ :O Š\Ҷ;=Mڰó\Ñ!76!"=*;"?͓͎\?;=!76͓ͷ  "#"!N#FW" *D>7Å*G|H+"G H:FBÅ> Å >* *͍ \" ( *"W !)~##{nZ*F#h!Cs!^#V   ##::^#V#þ*^#V>%#x'8_#* ¥   Ϳ Ͱ ͊ =¥ ` xS |¥ }ҥ gA>M Ag}M M c |¥ }!w s#r:[ʎ _!~ʠ ![4á \͢  2[y 7 >?  _͢!a"]> _͢a_!`~> 5*]~#"] 0 7 [( Ϳ ~ #? }"W*[Ϳ 0 *W}#|#*W? ͊ ¥ ` ` ` {zA|¥ W}d ͊ ` ` ` DMʡڏ"=ʡͲ=ʡYPͲ1**!I~4#~#F#x~#s#r#w>͊ ¥ ` `  ( Ϳ ᯕo>g(O!b q!vz͒q.?*!9"8"͉Z*" +*'/7?v"*2:EI SPHLDI XCHGPCHLXTHLRET HLT CMC STC CMA DAA RAR RAL RRC RLC NOP CPI ORI XRI ANI SBI IN SUI OUT ACI ADI CALLJMP LDA STA LHLDSHLDMOV ADD ADC SUB SBB AN͓Q͌Q!.ͷ6y#G͙Qà!2ͷQ͓͌Q!>ͷq eg͙Q:zJEËC–EQyQxQRQ** {zҷ*~#" <AOGƐ'@'OxƐ'@'ON# =COPYRIGHT (C) 1978, DIGITAL RESEARCH DDT VERS 1.4$10 !~=W!xe ~#Xbxʇ {z~#o}o҃i.*|g> >کÝ!p+q*DM͡:͆ ͆:_2:`!!:*& N͆!4!6  > >  ͢| } : >. *Y}o| , 0 å ^#V#!S ))))o J k s#r#!P4 !P6# ,¨ >2Pë g  g  g  ¥ Pʥ ! XN!~  !  2|2\  !]w# ʥ .&  0 6 #& .K !e K w# ʥ : U 6 #K 6AW w#] !e~H#~E#~X*}|{ "!{ ͊ !ʦ =¥ ` kʥ j \͢@ w# ͅ ú n ʥ : W _ O { `iA 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 ??= Öâê ð ' Ê `  "D*"!"!"2I!" "W""!1!++""G>28!"9:] !ç 1z8O!B N#N ¾SP.* |} !9":q!"= 7 !~ ( !   #x ` F Ϳ F Ϳ ͍ Ҁ *" !6é +"Y*~ #? ک Ϳ ʥ ^#V( é ~ CZMEIABDHSP!"G"+"!91*~!I~6 =G#^#V#~x "@ w# ͅ ¥ n S n S GтWx ͢!i ~T #H  *( Ϳ *(  NEXT PC͊ =¥ `  ( Ϳ ~ Ϳ Ͱ ʵ .͍ =¥ ` |¥ }w#~ ÿ >2F͊ ! =¥ ` }ʥ +"G> Å >  !  # ͍ !" >- Ͱ Aڥ ҥ _!7^#V~  \p Z t ů2[\͍͢ ҥ ͊ =¥ ` " ͍ ҥ ͊ ʻ` " =ʻ` "=¥ ý> 2͊ ` "W=` =¥ *W}o"Y  *W"O=!9 Ÿ!6q!2qC J R q!z z=naO $q$,!;,!Ù!;qz8O! !;,z;qyO! ͣͣW_͕qyO! ͣ͒qy y=!z{w# % w!P͠ y͓}*w#"͌ @.@<!Eͷ~P !ͷ’P͌Q!ͷªP}QxQ!ͷ͓G@Q! ͷ y͓Gþ!ͷ ͓Q!ͷ A 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 ??= Öâê ð ' Ê `  "D*"!"!"2I!" "W""!1!++""G>28!"9:] !ç 16Y: !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!? T OPEN SOURCE$COMNO MORE DIRECTORY SPACE$CANNOT CLOSE FILE$*!9"!e !" !" \!""͊: ƒde"\\\͊: ²d\͝: )d;! q* &f  ! q> ! : A O !!!!S!]!!*! "! ";"C" !!J"e![w#w#b!"!F#v2[G*##~w*##~<*}q!~ڬ6![^![^#fk"͎͘!G#*####*^#Vû!^*"*;#ø##>%><7"T6*}^!T42 G Ͱ *hMͽG:ͮ+GGW +GU!ͩ>̀+! @!!BH @@ABH B! "BHI$$BI$BI $ HI D$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+: Y2: 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!HD$$ H B!$D$"$B$DA!ABI$H B$I $HI$H$! $I $I$$A !A@$I$"!$H$I$I "! $A$  HHAA"I @$BH! $!D$H$ A 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#W( 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 "= ! @ 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 $HEXCANNOI$$DH@H"B$HDDH@$""A $@ D$BB H A$$BAB"DH I$I "D H@ @@" @D"II!$I A"UUUI$$ D$$  á 4êü /L9ASMPRNHEXu))덑o|g =^#V) ^#V|g}o '_{ozgi`N#Fogo&og H X=W LIBX$$$$$$$LIB1*" COPYRIGHT(C) 1978, DIGITAL RESEARCH  #  ɯ<:O=_Z!F!V#fjQ̓E!^#Vo&)~#FxGyѯ<àn8!~ڢͅ6~44O! s#r!~ ڿ6ͅ^4!mw!wp!~ͅ!55N! N#fio&)^#fk{zA"*![N![ N#Fr+sq#p/>G=#w#w3#w#w!JSYMBOL TABLE OVERFLOW G*##~w*##~͎*_###s#r^#V`à 4 Wm ()*+,-/ABCDEHLMDBDIDSDWEIIFINORSPACIADCADDADIANAANDANICMACM>9q>9: '!2 >9 7:! 6 >2>2: 2 Qͭ:Ğ! :lj<͖<j<|<: OʊQ>ÖH >2 2 û: B­>ôD> ¸!52 !"!N#~#A07O! ~*!) " :! G~#x=2> > ! >x6 #='G! ~ p( O*}O>4?:7w:#ĸ*"!͸* }w>ͪg( ʆ1 Y :7ʗ8 z !<ͼ CP/M ASSEMBLER - VER 1.4 NO SOURCE FILE PRESENT NO DIRECTORY SPACE SOURCE FILE NAME ERROR SOURCE!4w_#~ ʸ A:4~~# ¼ > \ ?ʻ w# !ͼ ? !ͼ CCMPCPIDAADADDCRDCXENDEQUHLTINRINXJMPLDALXIMODMOVMVINOPNOTORAORGORIOUTPOPPSWRALRARRETRLCRRCRSTSBBSBISETSHLSHRSTASTCSUBSUIXORXRAXRICALLENDMLDAXLHLDPCHLPUSHSHLDSPHLSTAXXCHGXTHLENDIFMACROTITLE  PF FP! ( 2/:  '<ͭ'<>V$>O$à\ÞØ`rÍÖ FILE READ ERROR OUTPUT FILE WRITE ERROR CANNOT CLOSE FILES END OF ASSEMBLY G:7xʘ!#~ʄl͸Ä**!O {zʊ͸*"!!#^4!$wͯͯWƐ'@'ê>:ͪ!#^Ww*!{͚|͚}͚͚{!$~#͚͚> ͪ> ͪ!)ͼ !ͼ :5͡ :6:6͡ :7͡ :\ ʻ 24!dͮ 25ͮ 27ͮ 26!8 ( ʃ !Y 1  :7ʞ !z 8  !"2D2X2#! 8 !ͼ z{* ! !"!8 w?'  v:P@< !  PP27 ( *"  NZZ NCC POPEP M x_BH!œ#¶ ¦{KÈCÈ<:JCR:  !6 s!![w#w#b!"!F#v2[G*##~w*##~<*}q!~ڬ6![^![^#fk"͎͘!G#*####*^#Vû!^*"*@2 0 0:x0_<2! wI2 2> 2 >2ɯ22 !~@_6^4#: w~$w: 0 q: A: A͋q: a{_2  2 ͞ !ɯ2I:  ;*:  ͭͷ ͭ͋#  +6# *#"~!ͼ G:6QxJQS*!w#"! 1 !"!Y~~# …¡z!ͼ wʹ* ! w#" ! 8 !" ! zz_O4:  :6y Ľ y0G G t :):,.>C :|: Jü;r :R: ʼʋ!ʼR!ʼʋ>SR{ozg!~4ʧͦ !6 ! **̈́**̈́\iͩ !w#H USE FACTOR !* "z{*"  R* } *" :¿::¿üX!C^#fk[@ :Œ:=ʌG!ʆF#H vÛc*| EH ͺ,^1 ͦ *""1 EH DH ͺ,1 ͦ :  1:  " > 2 z'{ͅ>ɯo>g"k!m6ů{_zW5>)D*kOxGd !m?FDM!xGyOڂÃ)sn55)=â|g}o=î--#zg{ozg{ozg{* "I !" :1 R O*UR X* G:xl :  *̩ : l x͖ *#"EH DH 0:~ ! ^4! w͆ Æ *! 6z͖ {͖ 4>R>V>D >P >L >N:|: |Ë  |*" ͩ !6="1 :  1}1:n:>BʋSSͦSSxS 1:  1"" ͦ 1 |R >O U!" 1 1!|_!^#fk $8AP`ixoÓ:: ;,!ɯ22=2l!"]!~H5_!m~0:ą:  *":  :‰:̅ԅ!^#=ʅVq”*qͦ1& O:lµ̅>2ly:_!w~!s!m~ùy !~=w_!m~ ͅH ñññ81Ľ y0îH ñGîG  ñH ñ(Ľ yîH ñîîĽ y0îîH ñG 1: :,; c*| } 8OͰ>2lyPLnR>UX:l̅2l͓*>E2C!" """ :ʼ:*1 |R|ͦ0FIL: R VI C,READF CALL BDOS POP B! POP D! POP H RET ; ; FIXED MESSAGE AREA SIGNON: DB 'FILE DUMP VERSION 1.4$' OPNMSG: DB CR,LF,'NO INPUT FILE PRESENT ON DISK$' ; VARIABLE AREA IBP: DS 2 ;INPUT BUFFER POINTER OLDSP: DS 2 ;ENTRY SP VALUE FROM CCP ; ; READ ANOTHER BUFFER ; ; CALL DISKR ORA A ;ZERO VALUE IF READ OK JZ G0 ;FOR ANOTHER BYTE ; END OF DATA, RETURN WITH CARRY SET FOR EOF STC RET ; G0: ;READ THE BYTE AT BUFF+REG A MOV E,A ;LS BYTE OF BUFFER INDEX MVI D,0 ;DOUBLE PRECISIONRKF CALL BDOS POP B! POP D! POP H; ENVIRONMENT RESTORED RET ; PCHAR: ;PRINT A CHARACTER PUSH H! PUSH D! PUSH B; SAVED MVI C,TYPEF MOV E,A CALL BDOS POP B! POP D! POP H; RESTORED RET ; CRLF: MVI A,CR CALL PCHAR MVI A,LF CALL PC LINE POSITION JC FINIS ;CARRY SET BY GNB IF END FILE MOV B,A ; PRINT HEX VALUES ; CHECK FOR LINE FOLD MOV A,L ANI 0FH ;CHECK LOW 4 BITS JNZ NONUM ; PRINT LINE NUMBER CALL CRLF ; ; CHECK FOR BREAK KEY CALL BREAK ; ACCUM LSB = 1 IF CHARABRC EQU FCB+15 ;FILE'S RECORD COUNT (0 TO 128) FCBCR EQU FCB+32 ;CURRENT (NEXT) RECORD NUMBER (0 TO 127) FCBLN EQU FCB+33 ;FCB LENGTH ; ; SET UP STACK LXI H,0 DAD SP ; ENTRY STACK POINTER IN HL FROM THE CCP SHLD OLDSP ; SET SP TO LOCAL STACK AR; FILE DUMP PROGRAM, READS AN INPUT FILE AND PRINTS IN HEX ; ; COPYRIGHT (C) 1975, 1976, 1977, 1978 ; DIGITAL RESEARCH ; BOX 579, PACIFIC GROVE ; CALIFORNIA, 93950 ; ORG 100H BDOS EQU 0005H ;DOS ENTRY POINT CONS EQU 1 ;READ CONSOLE TYPEF EQU 2 ; INDEX TO DE INR A ;INDEX=INDEX+1 STA IBP ;BACK TO MEMORY ; POINTER IS INCREMENTED ; SAVE THE CURRENT FILE ADDRESS LXI H,BUFF DAD D ; ABSOLUTE CHARACTER ADDRESS IS IN HL MOV A,M ; BYTE IS IN THE ACCUMULATOR ORA A ;RESET CARRY BIT RET ; HAR RET ; ; PNIB: ;PRINT NIBBLE IN REG A ANI 0FH ;LOW 4 BITS CPI 10 JNC P10 ; LESS THAN OR EQUAL TO 9 ADI '0' JMP PRN ; ; GREATER OR EQUAL TO 10 P10: ADI 'A' - 10 PRN: CALL PCHAR RET ; PHEX: ;PRINT HEX CHAR IN REG A PUSH PSW RRCCTER READY RRC ;INTO CARRY JC FINIS ;DON'T PRINT ANY MORE ; MOV A,H CALL PHEX MOV A,L CALL PHEX NONUM: INX H ;TO NEXT LINE NUMBER MVI A,' ' CALL PCHAR MOV A,B CALL PHEX JMP GLOOP ; FINIS: ; END OF DUMP, RETURN TO CCP ; (NOTE EA (RESTORED AT FINIS) LXI SP,STKTOP ; READ AND PRINT SUCCESSIVE BUFFERS CALL SETUP ;SET UP INPUT FILE CPI 255 ;255 IF FILE NOT PRESENT JNZ OPENOK ;SKIP IF OPEN IS OK ; ; FILE NOT THERE, GIVE ERROR MESSAGE AND RETURN LXI D,OPNMSG CALL ERR TYPE FUNCTION PRINTF EQU 9 ;BUFFER PRINT ENTRY BRKF EQU 11 ;BREAK KEY FUNCTION (TRUE IF CHAR READY) OPENF EQU 15 ;FILE OPEN READF EQU 20 ;READ FUNCTION ; FCB EQU 5CH ;FILE CONTROL BLOCK ADDRESS BUFF EQU 80H ;INPUT DISK BUFFER ADDRESS ; ; NON GRAPHSETUP: ;SET UP FILE ; OPEN THE FILE FOR INPUT XRA A ;ZERO TO ACCUM STA FCBCR ;CLEAR CURRENT RECORD ; LXI D,FCB MVI C,OPENF CALL BDOS ; 255 IN ACCUM IF OPEN ERROR RET ; DISKR: ;READ DISK FILE RECORD PUSH H! PUSH D! PUSH B LXI D,FCB M RRC RRC RRC CALL PNIB ;PRINT NIBBLE POP PSW CALL PNIB RET ; ERR: ;PRINT ERROR MESSAGE ; D,E ADDRESSES MESSAGE ENDING WITH "$" MVI C,PRINTF ;PRINT BUFFER FUNCTION CALL BDOS RET ; ; GNB: ;GET NEXT BYTE LDA IBP CPI 80H JNZ G0 THAT A JMP TO 0000H REBOOTS) CALL CRLF LHLD OLDSP SPHL ; STACK POINTER CONTAINS CCP'S STACK LOCATION RET ;TO THE CCP ; ; ; SUBROUTINES ; BREAK: ;CHECK BREAK KEY (ACTUALLY ANY KEY WILL DO) PUSH H! PUSH D! PUSH B; ENVIRONMENT SAVED MVI C,BJMP FINIS ;TO RETURN ; OPENOK: ;OPEN OPERATION OK, SET BUFFER INDEX TO END MVI A,80H STA IBP ;SET BUFFER POINTER TO 80H ; HL CONTAINS NEXT ADDRESS TO PRINT LXI H,0 ;START WITH 0000 ; GLOOP: PUSH H ;SAVE LINE POSITION CALL GNB POP H ;RECALLIC CHARACTERS CR EQU 0DH ;CARRIAGE RETURN LF EQU 0AH ;LINE FEED ; ; FILE CONTROL BLOCK DEFINITIONS FCBDN EQU FCB+0 ;DISK NAME FCBFN EQU FCB+1 ;FILE NAME FCBFT EQU FCB+9 ;DISK FILE TYPE (3 CHARACTERS) FCBRL EQU FCB+12 ;FILE'S CURRENT REEL NUMBER FC TER INITIALIZATION XRA A ;ZERO IN THE ACCUM STA IOBYTE ;CLEAR THE IOBYTE STA CDISK ;SELECT DISK ZERO JMP GOCPM ;INITIALIZE AND GO TO CP/M ; WBOOT: ;SIMPLEST CASE IS TO READ THE DISK UNTIL ALL SECTORS LOADED LXI SP,80H ;USE SPACE BELOW BUFFSE OF RESIDENT PORTION OF CP/M CPML EQU $-CPMB ;LENGTH OF THE CP/M SYSTEM IN BYTES NSECTS EQU CPML/128 ;NUMBER OF SECTORS TO LOAD ON WARM START ; ; JUMP VECTOR FOR INDIVIDUAL SUBROUTINES JMP BOOT ;COLD START WBOOTE: JMP WBOOT ;WARM START JMP SK EQU 0004H ;CURRENT DISK NUMBER (0=A, ..., 3=D) ; ; WE WILL USE THE AREA RESERVED STARTING AT LOCATION ; 40H IN PAGE 0 FOR HOLDING THE VALUES OF: ; TRACK = LAST SELECTED TRACK ; SECTOR = LAST SELECTED SECTOR ; DMAAD = LAST SELECTED DMA A ; STACK AREA DS 64 ;RESERVE 32 LEVEL STACK STKTOP: ; END +GGW +GU!ͩ>̀+! @!!BH @@ABH B! "BHI$$BI$BI $ HI D$CONST ;CONSOLE STATUS JMP CONIN ;CONSOLE CHARACTER IN JMP CONOUT ;CONSOLE CHARACTER OUT JMP LIST ;LIST CHARACTER OUT JMP PUNCH ;PUNCH CHARACTER OUT JMP READER ;READER CHARACTER OUT JMP HOME ;MOVE HEAD TO HOME POSITION JMP SELDSK ;SELEDDRESS ; DISKNO = LAST SELECTED DISK NUMBER ; (NOTE THAT ALL ARE BYTE VALUES EXCEPT FOR DMAAD) ; SCRAT EQU 40H ;BASE OF SCRATCH AREA (FROM 40H TO 4FH) TRACK EQU SCRAT ;CURRENTLY SELECTED TRACK SECTOR EQU SCRAT+1 ;CURRENTLY SELECTED SECTOR DMAACT DISK JMP SETTRK ;SET TRACK NUMBER JMP SETSEC ;SET SECTOR NUMBER JMP SETDMA ;SET DMA ADDRESS JMP READ ;READ DISK JMP WRITE ;WRITE DISK ; ; ; INDIVIDUAL SUBROUTINES TO PERFORM EACH FUNCTION BOOT: ;SIMPLEST CASE IS TO JUST PERFORM PARAMED EQU SCRAT+2 ;CURRENT DMA ADDRESS DISKNO EQU SCRAT+4 ;CURRENT DISK NUMBER ; ; ORG PATCH ;ORGIN OF THIS PROGRAM CBASE EQU (MSIZE-16)*1024 ;BIAS FOR SYSTEMS LARGER THAN 16K CPMB EQU CBASE+2900H ;BASE OF CP/M (= BASE OF CCP) BDOS EQU CBASE+3106H ;BA; SKELETAL CBIOS FOR FIRST LEVEL OF CP/M ALTERATION ; ; NOTE : MSIZE DETERMINES WHERE THIS CBIOS IS LOCATED MSIZE EQU 16 ;CP/M VERSION MEMORY SIZE IN KILOBYTES PATCH EQU MSIZE*1024-2*256 ;START OF THE CBIOS PATCH IOBYTE EQU 0003H ;INTEL I/O BYTE CDI RESS SHLD DMAAD ;SAVE THE ADDRESS DS 10H ;SPACE FOR SETTING THE DMA ADDRESS RET ; READ: ;PERFORM READ OPERATION (USUALLY THIS IS SIMILAR TO WRITE ; SO WE WILL ALLOW SPACE TO SET UP READ COMMAND, THEN USE ; COMMON CODE IN WRITE) DS 10H ;SET UP RRIVERS FOR THE DISK FOLLOW ; FOR NOW, WE WILL SIMPLY STORE THE PARAMETERS AWAY FOR USE ; IN THE READ AND WRITE SUBROUTINES ; HOME: ;MOVE TO THE TRACK 00 POSITION OF CURRENT DRIVE ; TRANSLATE THIS CALL INTO A SETTRK CALL WITH PARAMETER 00 MVI C,0 ;SERT YOUR OWN CODE ; CONST: ;CONSOLE STATUS, RETURN 0FFH IF CHARACTER READY, 00H IF NOT DS 10H ;SPACE FOR STATUS SUBROUTINE MVI A,00H RET ; CONIN: ;CONSOLE CHARACTER INTO REGISTER A DS 10H ;SPACE FOR INPUT ROUTINE ANI 7FH ;STRIP PARITY BIT REUSH D PUSH H CALL SETTRK ;TRACK ADDRESS SET FROM REGISTER C POP H POP D POP B JMP LOAD1 ;FOR ANOTHER SECTOR ; ; END OF LOAD OPERATION, SET PARAMETERS AND GO TO CP/M GOCPM: MVI A,0C3H ;C3 IS A JMP INSTRUCTION STA 0 ;FOR JMP TO WBOOT LXISET TO 0, TRACK SET, SECTOR SET, DMA ADDRESS SET CALL READ CPI 00H ;ANY ERRORS? JNZ WBOOT ;RETRY THE ENTIRE BOOT IF AN ERROR OCCURS ; ; NO ERROR, MOVE TO NEXT SECTOR POP H ;RECALL DMA ADDRESS LXI D,128 ;DMA=DMA+128 DAD D ;NEW DMA ADDRESS IS IER FOR STACK MVI C,0 ;SELECT DISK 0 CALL SELDSK CALL HOME ;GO TO TRACK 00 ; MVI B,NSECTS ;B COUNTS THE NUMBER OF SECTORS TO LOAD MVI C,0 ;C HAS THE CURRENT TRACK NUMBER MVI D,2 ;D HAS THE NEXT SECTOR TO READ ; NOTE THAT WE BEGIN BY READINLECT TRACK 0 CALL SETTRK RET ;WE WILL MOVE TO 00 ON FIRST READ/WRITE ; SELDSK: ;SELECT DISK GIVEN BY REGISTER C MOV A,C STA DISKNO DS 10H ;SPACE FOR DISK SELECTION ROUTINE RET ; SETTRK: ;SET TRACK GIVEN BY REGISTER C MOV A,C STA TRACK T ; CONOUT: ;CONSOLE CHARACTER OUTPUT FROM REGISTER C MOV A,C ;GET TO ACCUMULATOR DS 10H ;SPACE FOR OUTPUT ROUTINE RET ; LIST: ;LIST CHARACTER FROM REGISTER C MOV A,C ;CHARACTER TO REGISTER A RET ;NULL SUBROUTINE ; PUNCH: ;PUNCH CHARACTER  H,WBOOTE ;WBOOT ENTRY POINT SHLD 1 ;SET ADDRESS FIELD FOR JMP AT 0 ; STA 5 ;FOR JMP TO BDOS LXI H,BDOS ;BDOS ENTRY POINT SHLD 6 ;ADDRESS FIELD OF JUMP AT 5 TO BDOS ; LXI B,80H ;DEFAULT DMA ADDRESS IS 80H CALL SETDMA ; EI ;ENABLE THE INTEN H,L POP D ;RECALL SECTOR ADDRESS POP B ;RECALL NUMBER OF SECTORS REMAINING, AND CURRENT TRK DCR B ;SECTORS=SECTORS-1 JZ GOCPM ;TRANSFER TO CP/M IF ALL HAVE BEEN LOADED ; ; MORE SECTORS REMAIN TO LOAD, CHECK FOR TRACK CHANGE INR D MOV A,D ;SG TRACK 0, SECTOR 2 SINCE SECTOR 1 ; CONTAINS THE COLD START LOADER, WHICH IS SKIPPED IN A WARM START LXI H,CPMB ;BASE OF CP/M (INITIAL LOAD POINT) LOAD1: ;LOAD ONE MORE SECTOR PUSH B ;SAVE SECTOR COUNT, CURRENT TRACK PUSH D ;SAVE NEXT SECTOR TO R DS 10H ;SPACE FOR TRACK SELECT RET ; SETSEC: ;SET SECTOR GIVEN BY REGISTER C MOV A,C STA SECTOR DS 10H ;SPACE FOR SECTOR SELECT RET ; SETDMA: ;SET DMA ADDRESS GIVEN BY REGISTERS B AND C MOV L,C ;LOW ORDER ADDRESS MOV H,B ;HIGH ORDER ADDFROM REGISTER C MOV A,C ;CHARACTER TO REGISTER A RET ;NULL SUBROUTINE ; ; READER: ;READ CHARACTER INTO REGISTER A FROM READER DEVICE MVI A,1AH ;ENTER END OF FILE FOR NOW (REPLACE LATER) ANI 7FH ;REMEMBER TO STRIP PARITY BIT RET ; ; ; I/O DRRUPT SYSTEM LDA CDISK ;GET CURRENT DISK NUMBER MOV C,A ;SEND TO THE CCP JMP CPMB ;GO TO CP/M FOR FURTHER PROCESSING ; ; ; SIMPLE I/O HANDLERS (MUST BE FILLED IN BY USER) ; IN EACH CASE, THE ENTRY POINT IS PROVIDED, WITH SPACE RESERVED ; TO INSEECTOR=27?, IF SO, CHANGE TRACKS CPI 27 JC LOAD1 ;CARRY GENERATED IF SECTOR<27 ; ; END OF CURRENT TRACK, GO TO NEXT TRACK MVI D,1 ;BEGIN WITH FIRST SECTOR OF NEXT TRACK INR C ;TRACK=TRACK+1 ; ; SAVE REGISTER STATE, AND CHANGE TRACKS PUSH B PEAD PUSH H ;SAVE DMA ADDRESS MOV C,D ;GET SECTOR ADDRESS TO REGISTER C CALL SETSEC ;SET SECTOR ADDRESS FROM REGISTER C POP B ;RECALL DMA ADDRESS TO B,C PUSH B ;REPLACE ON STACK FOR LATER RECALL CALL SETDMA ;SET DMA ADDRESS FROM B,C ; ; DRIVE  AMETERS) ; READ READ TRACK/SECTOR TO PRESET DMA ADDRESS ; WRITE WRITE TRACK/SECTOR FROM PRESET DMA ADDRESS ; ; JUMP VECTOR FOR INDIVIUAL ROUTINES JMP BOOT WBOOTE: JMP WBOOT JMP CONST JMP CONIN JMP CONOUT JMP LIST JMP PUNCH JMP READER JAME FOR MDS) ; CONST CONSOLE STATUS ; REG-A = 00 IF NO CHARACTER READY ; REG-A = FF IF CHARACTER READY ; CONIN CONSOLE CHARACTER IN (RESULT IN REG-A) ; CONOUT CONSOLE CHARACTER OUT (CHAR IN REG-C) ; LIST LIST OUT (CHAR IN REG-C) ; PUNCH PUNCH OUT  FALSE EQU NOT TRUE ;"FALSE" SAMPLE EQU TRUE ;TRUE IF SAMPLE BIOS ; IF SAMPLE BIAS EQU 2900H ;SAMPLE PROGRAM IN 16K SYSTEM ENDIF IF NOT SAMPLE BIAS EQU 0000H ;GENERATE RELOCATABLE CP/M SYSTEM ENDIF ; PATCH EQU 1500H+BIAS ; ORG PATCH CPMB 3, BUT WE MAY HAVE ; A SMALLER MDS SYSTEM, SO CHECK AGAIN AND GIVE ERROR ; BY CALLING MON80 MOV A,C CPI NDISKS ;TOO LARGE? CNC RMON80 ;GIVES #ADDR MESSAGE AT CONSOLE ; ANI 10B ;00 00 FOR DRIVE 0,1 AND 10 10 FOR DRIVE 2,3 STA DBANK ;TO SELECT EAD COMMAND JMP WAITIO ;TO PERFORM THE ACTUAL I/O ; WRITE: ;PERFORM A WRITE OPERATION DS 10H ;SET UP WRITE COMMAND ; WAITIO: ;ENTER HERE FROM READ AND WRITE TO PERFORM THE ACTUAL I/O ; OPERATION. RETURN A 00H IN REGISTER A IF THE OPERATION COMPL(CHAR IN REG-C) ; READER PAPER TAPE READER IN (RESULT TO REG-A) ; HOME MOVE TO TRACK 00 ; ; (THE FOLLOWING CALLS SET-UP THE IO PARAMETER BLOCK FOR THE ; MDS, WHICH IS USED TO PERFORM SUBSEQUENT READS AND WRITES) ; SELDSK SELECT DISK GIVEN BY REG-C (0EQU 000H+BIAS ;BASE OF CPM CONSOLE PROCESSOR BDOS EQU 806H+BIAS ;BASIC DOS (RESIDENT PORTION) CPML EQU $-CPMB ;LENGTH (IN BYTES) OF CPM SYSTEM NSECTS EQU CPML/128 ;NUMBER OF SECTORS TO LOAD OFFSET EQU 2 ;NUMBER OF DISK TRACKS USED BY CP/M CDISK EQU 00ETES ; PROPERLY, AND 01H IF AN ERROR OCCURS DURING THE READ OR WRITE ; ; IN THIS CASE, WE HAVE SAVED THE DISK NUMBER IN 'DISKNO' (0,1) ; THE TRACK NUMBER IN 'TRACK' (0-76) ; THE SECTOR NUMBER IN 'SECTOR' (1-26) ; THE DMA ADDRESS IN 'DMAAD' (,1,2...) ; SETTRK SET TRACK ADDRESS (0,...76) FOR SUBSEQUENT READ/WRITE ; SETSEC SET SECTOR ADDRESS (1,...,26) FOR SUBSEQUENT READ/WRITE ; SETDMA SET SUBSEQUENT DMA ADDRESS (INITIALLY 80H) ; ; (READ AND WRITE ASSUME PREVIOUS CALLS TO SET UP THE IO PAR04H ;ADDRESS OF LAST LOGGED DISK ON WARM START BUFF EQU 0080H ;DEFAULT BUFFER ADDRESS RETRY EQU 10 ;MAX RETRIES ON DISK I/O BEFORE ERROR ; ; PERFORM FOLLOWING FUNCTIONS ; BOOT COLD START ; WBOOT WARM START (SAVE I/O BYTE) ; (BOOT AND WBOOT ARE THE S; MDS I/O DRIVERS FOR CP/M ; (FOUR DRIVE SINGLE DENSITY VERSION) ; VERSION 1.4 JANUARY, 1978 ; VERS EQU 14 ;VERSION 1.4 ; ; COPYRIGHT (C) 1978 ; DIGITAL RESEARCH ; BOX 579, PACIFIC GROVE ; CALIFORNIA, 93950 ; ; TRUE EQU 0FFFFH ;VALUE OF "TRUE" 0-65535) ; ALL REMAINING SPACE FROM $ THROUGH MSIZE*1024-1 IS AVAILABLE: LEFT EQU (MSIZE*1024-1)-$ ;SPACE REMAINING IN CBIOS ; MVI A,1 ;ERROR CONDITION RET ;REPLACED WHEN FILLED-IN END  K WAS B, SEND PARAMETER TO CPM LDA CDISK ;LAST LOGGED DISK NUMBER MOV C,A ;SEND TO CCP TO LOG IT IN EI JMP CPMB ; ; ERROR CONDITION OCCURRED, PRINT MESSAGE AND RETRY BOOTERR: POP B ;RECALL COUNTS DCR C JZ BOOTER0 ; TRY AGAIN PUSH B JM NUMBER RD1: INR A ;TO NEXT SECTOR MOV C,A ;READY FOR CALL CALL SETSEC POP B ;RECALL SECTOR COUNT DCR B ;DONE? JNZ RDSEC ; ; DONE WITH THE LOAD, RESET DEFAULT BUFFER ADDRESS GOCPM: ;(ENTER HERE FROM COLD START BOOT) ; ENABLE RST0 AND RST7  LXI B,CPMB ;SET DMA ADDRESS TO START OF DISK SYSTEM CALL SETDMA MVI C,0 ;BOOT FROM DRIVE 0 CALL SELDSK MVI C,0 CALL SETTRK ;START WITH TRACK 0 MVI C,2 ;START READING SECTOR 2 CALL SETSEC ; ; READ SECTORS, COUNT NSECTS TO ZERO POP B ;10-ENON MESSAGE: XXK CP/M VERS Y.Y DB CR,LF,LF IF SAMPLE DB '16' ;16K EXAMPLE BIOS ENDIF IF NOT SAMPLE DB '00' ;MEMORY SIZE FILLED BY RELOCATOR ENDIF DB 'K CP/M VERS ' DB VERS/10+'0','.',VERS MOD 10+'0' DB CR,LF,0 ; BOOT: ;PRINT SIGNON ME (BOOT ERROR) CI EQU 0F803H ;CONSOLE CHARACTER TO REG-A RI EQU 0F806H ;READER IN TO REG-A CO EQU 0F809H ;CONSOLE CHAR FROM C TO CONSOLE OUT PO EQU 0F80CH ;PUNCH CHAR FROM C TO PUNCH DEVICE LO EQU 0F80FH ;LIST FROM C TO LIST DEVICE CSTS EQU 0F812H ;COMP HOME JMP SELDSK JMP SETTRK JMP SETSEC JMP SETDMA JMP READ JMP WRITE ; ; ; END OF CONTROLLER - INDEPENDENT CODE, THE REMAINING SUBROUTINES ; ARE TAILORED TO THE PARTICULAR OPERATING ENVIRONMENT, AND MUST ; BE ALTERED FOR ANY SYSTEM WHICHDI MVI A,12H ;INITIALIZE COMMAND OUT REVRT XRA A OUT INTC ;CLEARED MVI A,INTE ;RST0 AND RST7 BITS ON OUT INTC XRA A OUT ICON ;INTERRUPT CONTROL ; ; SET DEFAULT BUFFER ADDRESS TO 80H LXI B,BUFF CALL SETDMA ; ; RESET MONITOR ENTRY POIRROR COUNT MVI B,NSECTS RDSEC: ;READ NEXT SECTOR PUSH B ;SAVE SECTOR COUNT CALL READ JNZ BOOTERR ;RETRY IF ERRORS OCCUR LHLD IOD ;INCREMENT DMA ADDRESS LXI D,128 ;SECTOR SIZE DAD D ;INCREMENTED DMA ADDRESS IN HL MOV B,H MOV C,L ;READY FOSSAGE AND GO TO CCP ; (NOTE: MDS BOOT INITIALIZED IOBYTE AT 0003H) LXI SP,BUFF+80H LXI H,SIGNON CALL PRMSG ;PRINT MESSAGE XRA A ;CLEAR ACCUMULATOR STA CDISK ;SET INITIALLY TO DISK A JMP GOCPM ;GO TO CP/M ; ; WBOOT:; LOADER ON TRACK 0, SECTONSOLE STATUS 00/FF TO REGISTER A ; ; DISK PORTS AND COMMANDS BASE EQU 78H ;BASE OF DISK COMMAND IO PORTS DSTAT EQU BASE ;DISK STATUS (INPUT) RTYPE EQU BASE+1 ;RESULT TYPE (INPUT) RBYTE EQU BASE+3 ;RESULT BYTE (INPUT) ; ILOW EQU BASE+1 ;IOPB LOW ADD DIFFERS FROM THE INTEL MDS. ; ; THE FOLLOWING CODE ASSUMES THE MDS MONITOR EXISTS AT 0F800H ; AND USES THE I/O SUBROUTINES WITHIN THE MONITOR ; ; WE ALSO ASSUME THE MDS SYSTEM HAS FOUR DISK DRIVES NDISKS EQU 4 ;NUMBER OF DRIVES AVAILABLE REVRT EQU NTS MVI A,JMP STA 0 LXI H,WBOOTE SHLD 1 ;JMP WBOOT AT LOCATION 00 STA 5 LXI H,BDOS SHLD 6 ;JMP BDOS AT LOCATION 5 STA 7*8 ;JMP TO MON80 (MAY HAVE BEEN CHANGED BY DDT) LXI H,MON80 SHLD 7*8+1 ; LEAVE IOBYTE SET ; PREVIOUSLY SELECTED DISR CALL TO SET DMA CALL SETDMA LDA IOS ;SECTOR NUMBER JUST READ CPI 26 ;READ LAST SECTOR? JC RD1 ; MUST BE SECTOR 26, ZERO AND GO TO NEXT TRACK LDA IOT ;GET TRACK TO REGISTER A INR A MOV C,A ;READY FOR CALL CALL SETTRK XRA A ;CLEAR SECTORR 1, WHICH WILL BE SKIPPED FOR WARM ; READ CP/M FROM DISK - ASSUMING THERE IS A 128 BYTE COLD START ; START. ; LXI SP,BUFF ;USING DMA - THUS 80 THRU FF AVAILABLE FOR STACK ; MVI C,RETRY ;MAX RETRIES PUSH B WBOOT0: ;ENTER HERE ON ERROR RETRIES RESS (OUTPUT) IHIGH EQU BASE+2 ;IOPB HIGH ADDRESS (OUTPUT) ; READF EQU 4H ;READ FUNCTION WRITF EQU 6H ;WRITE FUNCTION RECAL EQU 3H ;RECALIBRATE DRIVE IORDY EQU 4H ;I/O FINISHED MASK CR EQU 0DH ;CARRIAGE RETURN LF EQU 0AH ;LINE FEED ; SIGNON: ;SIG0FDH ;INTERRUPT REVERT PORT INTC EQU 0FCH ;INTERRUPT MASK PORT ICON EQU 0F3H ;INTERRUPT CONTROL PORT INTE EQU 0111$1110B ;ENABLE RST 0(WARM BOOT), RST 7 (MONITOR) ; ; MDS MONITOR EQUATES MON80 EQU 0F800H ;MDS MONITOR RMON80 EQU 0FF0FH ;RESTART MON80 ROR FOR NOW CALL INBYTE ;CLEAR RESULT BYTE JMP TRYCOUNT ; WERROR: ;RETURN HARDWARE MALFUNCTION (CRC, TRACK, SEEK, ETC.) ; THE MDS CONTROLLER HAS RETURNED A BIT IN EACH POSITION ; OF THE ACCUMULATOR, CORRESPONDING TO THE CONDITIONS: ; 0 - DELETED S JMP WAIT0 ;TO WAIT FOR COMPLETE ; IODR1: ;DRIVE BANK 1 OUT ILOW+10H ;88 FOR DRIVE BANK 10 MOV A,B OUT IHIGH+10H ; WAIT0: CALL INSTAT ;WAIT FOR COMPLETION ANI IORDY ;READY? JZ WAIT0 ; ; CHECK IO COMPLETION OK CALL INTYPE ;MUST BE I ORA C ;SET TO NEW COMMAND MOV M,A ;REPLACED IN IOPB ; THE MDS-800 CONTROLLER REQUIRES DISK BANK BIT IN SECTOR BYTE ; MASK THE BIT FROM THE CURRENT I/O FUNCTION ANI 00100000B ;MASK THE DISK SELECT BIT LXI H,IOS ;ADDRESS THE SECTOR SELECT BYTE ORTO IOPB RET ; SETDMA: ;SET DMA ADDRESS GIVEN BY REGS B,C MOV L,C MOV H,B SHLD IOD RET ; READ: ;READ NEXT DISK RECORD (ASSUMING DISK/TRK/SEC/DMA SET) MVI C,READF ;SET TO READ FUNCTION CALL SETFUNC CALL WAITIO ;PERFORM READ FUNCTION RET3, BUT WE MAY HAVE ; A SMALLER MDS SYSTEM, SO CHECK AGAIN AND GIVE ERROR ; BY CALLING MON80 MOV A,C CPI NDISKS ;TOO LARGE? CNC RMON80 ;GIVES #ADDR MESSAGE AT CONSOLE ; ANI 10B ;00 00 FOR DRIVE 0,1 AND 10 10 FOR DRIVE 2,3 STA DBANK ;TO SELECT P WBOOT0 ; BOOTER0: ; OTHERWISE TOO MANY RETRIES LXI H,BOOTMSG CALL PRMSG JMP RMON80 ;MDS HARDWARE MONITOR ; BOOTMSG: DB '?BOOT',0 ; ; CONST: ;CONSOLE STATUS TO REG-A ; (EXACTLY THE SAME AS MDS CALL) JMP CSTS ; CONIN: ;CONSOLE CHARACTEO COMPLETE (00) UNLINKED ; 00 UNLINKED I/O COMPLETE, 01 LINKED I/O COMPLETE (NOT USED) ; 10 DISK STATUS CHANGED 11 (NOT USED) CPI 10B ;READY STATUS CHANGE? JZ WREADY ; ; MUST BE 00 IN THE ACCUMULATOR ORA A JNZ WERROR ;SOME OTHER CONDA M ;SELECT PROPER DISK BANK MOV M,A ;SET DISK SELECT BIT ON/OFF RET ; WAITIO: MVI C,RETRY ;MAX RETRIES BEFORE PERM ERROR REWAIT: ; START THE I/O FUNCTION AND WAIT FOR COMPLETION CALL INTYPE ;IN RTYPE CALL INBYTE ;CLEARS THE CONTROLLER ;  ;MAY HAVE ERROR SET IN REG-A ; ; WRITE: ;DISK WRITE FUNCTION MVI C,WRITF CALL SETFUNC ;SET TO WRITE FUNCTION CALL WAITIO RET ;MAY HAVE ERROR SET ; ; ; UTILITY SUBROUTINES PRMSG: ;PRINT MESSAGE AT H,L TO 0 MOV A,M ORA A ;ZERO? RZ ; DRIVE BANK MOV A,C ;00, 01, 10, 11 ANI 1B ;MDS HAS 0,1 AT 78, 2,3 AT 88 ORA A ;RESULT 00? JZ SETDRIVE MVI A,00110000B ;SELECTS DRIVE 1 IN BANK SETDRIVE: MOV C,A ;SAVE THE FUNCTION LXI H,IOF ;IO FUNCTION MOV A,M ANI 11001111B ;MASK OUT DIR TO REG-A CALL CI ANI 7FH ;REMOVE PARITY BIT RET ; CONOUT: ;CONSOLE CHARACTER FROM C TO CONSOLE OUT JMP CO ; LIST: ;LIST DEVICE OUT ; (EXACTLY THE SAME AS MDS CALL) JMP LO ; PUNCH: ;PUNCH DEVICE OUT ; (EXACTLY THE SAME AS MDS CALL) JMPITION, RETRY ; ; CHECK I/O ERROR BITS CALL INBYTE RAL JC WREADY ;UNIT NOT READY RAR ANI 11111110B ;ANY OTHER ERRORS? (DELETED DATA OK) JNZ WERROR ; ; READ OR WRITE IS OK, ACCUMULATOR CONTAINS ZERO RET ; WREADY: ;NOT READY, TREAT AS ER LDA DBANK ;SET BANK FLAGS ORA A ;ZERO IF DRIVE 0,1 AND NZ IF 2,3 MVI A,IOPB AND 0FFH ;LOW ADDRESS FOR IOPB MVI B,IOPB SHR 8 ;HIGH ADDRESS FOR IOPB JNZ IODR1 ;DRIVE BANK 1? OUT ILOW ;LOW ADDRESS TO CONTROLLER MOV A,B OUT IHIGH ;HIGH ADDRESMORE TO PRINT PUSH H MOV C,A CALL CONOUT POP H INX H JMP PRMSG ; SETFUNC: ; SET FUNCTION FOR NEXT I/O (COMMAND IN REG-C) LXI H,IOF ;IO FUNCTION ADDRESS MOV A,M ;GET IT TO ACCUMULATOR FOR MASKING ANI 11111000B ;REMOVE PREVIOUS COMMAND SK NUMBER ORA C ;MASK IN NEW DISK NUMBER MOV M,A ;SAVE IT IN IOPB RET ; ; SETTRK: ;SET TRACK ADDRESS GIVEN BY C LXI H,IOT MOV M,C RET ; SETSEC: ;SET SECTOR NUMBER GIVEN BY C MOV A,C ;SECTOR NUMBER TO ACCUM STA IOS ;STORE SECTOR NUMBER  PO ; READER: ;READER CHARACTER IN TO REG-A ; (EXACTLY THE SAME AS MDS CALL) JMP RI ; HOME: ;MOVE TO HOME POSITION ; TREAT AS TRACK 00 SEEK MVI C,0 JMP SETTRK ; SELDSK: ;SELECT DISK GIVEN BY REGISTER C ; CP/M HAS CHECKED FOR DISK SELECT 0 -  V^x8($8NůGO͢!ͿT6Fw4#y6 x= FF "y   ( !ͺÙ PLAY TAPE.  *** STOP TAPE!!!! *** TAPE CRC ERROR :Y(!}ͺ6=@$:Y(!ͺ'o(( FILE TRANSFER PROGRAM FOR CASSETTES CREATED BY THE DEVELOPMENT-PAC. VER. 1.0 DO YOU HAVE CASSETTE MOTOR CONTROL (Y/N)? DISK IS FULL, WRITE INCOMPLETE SUCCESSFUL DISK WRITE ASMHEXOBJ L FILE NAME NOT GIVEN, OR FILE TYPE NOT "ASM", "HEX", OR "OBJ". YPE: LDA DBANK ORA A JNZ INTYP1 ;SKIP TO BANK 10 IN RTYPE RET INTYP1: IN RTYPE+10H ;78 FOR 0,1 88 FOR 2,3 RET ; INBYTE: LDA DBANK ORA A JNZ INBYT1 IN RBYTE RET INBYT1: IN RBYTE+10H RET ; INSTAT: LDA DBANK ORA A JNZ INSTA1 IDATA (ACCEPTED AS OK ABOVE) ; 1 - CRC ERROR ; 2 - SEEK ERROR ; 3 - ADDRESS ERROR (HARDWARE MALFUNCTION) ; 4 - DATA OVER/UNDER FLOW (HARDWARE MALFUNCTION) ; 5 - WRITE PROTECT (TREATED AS NOT READY) ; 6 - WRITE ERROR (HARDWARE MALFUNCTION) ; 7 - NOT R REWIND CASSETTE. WHEN READY TO PLAY TAPE, HIT ANY KEY. MANUAL MOTOR CONTROL MUST BE USED. STOP TAPE RECORDER (OR PAUSE) IMMEDIATELY WHEN THE "STOP TAPE!!!" MESSAGE IS DISPLAYED. TAPE MAY BE TURNED ON AT LEISURE WHEN "PLAY TAPE." MESSAGE APPEARS.N DSTAT RET INSTA1: IN DSTAT+10H RET ; ; ; ; DATA AREAS (MUST BE IN RAM) DBANK: DB 0 ;DISK BANK 00 IF DRIVE 0,1 ; 10 IF DRIVE 2,3 IOPB: ;IO PARAMETER BLOCK DB 80H ;NORMAL I/O OPERATION IOF: DB READF ;IO FUNCTION, INITIAL READ ION: DB EADY ; (ACCUMULATOR BITS ARE NUMBERED 7 6 5 4 3 2 1 0) ; ; IT MAY BE USEFUL TO FILTER OUT THE VARIOUS CONDITIONS, ; BUT WE WILL GET A PERMANENT ERROR MESSAGE IF IT IS NOT ; RECOVERABLE. IN ANY CASE, THE NOT READY CONDITION IS ; TREATED AS A SEPARATE6 q6 "g)! $#>Ğq "i)! $#>Ğq Y >( < # {(6++>) =(y#0O~*6,! $# ~I '#~X(Y  #~+(- <("i)"g):b #(z&  b& b * 2_ YY>[?~.c:0:_ ~ʏ.>[ͮ}[|[~.ͮ:] »* |>»}e. ҃È[! ! ~[#=cʐâ&H " * |< " " * |! * * 5wY2IA!{DF 2H K >(_#K * ~?e !F EͺBVA X|<0>v@2QIA!; :*ڸ > @I 2 } 2 *  ͺB " :X ʘ >Iژ <=ʘ exists??Disk fullInput past endBad record numberBad file name?Direct statement in fileToo many filespP8^M^I TRTRINGPACEYSTEͽROΣROFƤABHEA SINSAARPTIDTȡAIԗHILŴENĵRITŷO۾yy||PF<2(z{m)()A)t+m+,-($$S&&S(*s**+(NEXT without FORSyntax errorRETURN without GOSUBOut of DATAIllegal function caû[())BxD(8tFB\BaC& BM^CR"JC Y! gChCmCC<"" KCKK,O;L#$ X)WR6Y5YsR:QQjXV@XSS5R'XHKHUH')'-6=77 &67l88IrGgEvHGGH"G[EaEl(A)m))#P&P)P#TTͮ~ (" %R͖[" 1ʦ#4"}: R*l " * ͥA" t##s#r# w# ysͥ!6"*" (B*"* "Ø *bk~####~ ҭ ڭï#s#råB¿ *DM~#+##~#foͺ :llOverflowOut of memoryUndefined line numberSubscript out of rangeDuplicate DefinitionDivision by zeroIllegal directType mismatchOut of string spaceString too longString formula too complexCan't continueUndefined user functionNo RESUMERESUMET P PP;LMRk~3<F^bcNBTSUTϫLOSONԚLEAҒINSNDBV+V,V-O HRAL̶OMMOθHAIιATI͆EFSTҭEFINԮEFSNǯEFDB̰EƘELETŪNāLSŢRASŦDIԧRROҨRRX O/QO҂IELILERIOTωO TωOSUEEXB`i~#fo??2_ 2^ ;~"= F:^ ~?>dCSG#O# # #^SyTO>ÇU#B>!AO ^#V#Of#y(~.ft!>f>[2_ [á+ in Ok Break!9~#X  J N#F#i`zl ͺB J | *|<ʍ :  C=96543>7@?2C: * "   *" 2 2 |< "  * ÏB{K2*, without errorUnprintable errorMissing operandLine buffer overflow??FOR Without NEXT??WHILE without WENDWEND without WHILEFIELD overflowInternal errorBad file numberFile not foundBad file modeFile already open?Disk I/O errorFile already NPUԅƋNSTNNMILEԈINűOASEPRINԞLISԟPOISԓO O0EEFTO1ERGOKI2KS3KD4IDEXԃUL̖AMEהOUԝΕPEοCTPTIOκUOKřRINԑOEEEAćUΊESTORŌETURΎE͏ESUMũSEIGHTNENUͬESEANDOMIZŻTOАWAХAVPCTEGQ  22B, +{>2͖[!"N#F#x} *|̊AN#F#ͺB| " ͇0~ n > @͇ !X } VA. ~ >#} X 2 ͖[Ú #~ ک _ڽ _.ʽ t!ҽ : < > >2 { !Ö <~ #~# ̸) :] 7(z[+{*xF6{o|PA{o| @¡m2go"B#PPK48͈)IC͙E ?Redo from start #~ʿ  ~.* + *d +!ͺBڿ bk))0_%(BS 9Q,BsͶA*>3w:b *` *ͺB#Ҧ > 2 ͷ#`i F "  "!>:yHG+ȸ#"<֌W8B" > > [ Á#[:%J+>2^ 2_ U~|F~#[1!@}O|G!>: y +=2_ [#Cq:0q.q~ Ң ʢ ʢ> :_ <3=3+~ ʮ ʮ ʮ#>d2 8B" :] L! (" !9J  +V+^~#fo ~(¾" * B(>2 8:] " " LͶA!9D(:] * ~)kB,* B,!2D ʯ2] !9;(!9.,:] G:D Od}!F O`g* * B)>" : OͶAO/2>2 ͗E~,T2 XB;E: p>?@> @IC6,+>2 8~+(¯#ʿ "(ʕ)––ʺ,¿ ~,>2 : =xG+~,ʀ+6,* 2 LH(G* #^#V*ͺB;* ͺBC! ͺBC>͖GtE͖G(|BzjPYҦ" : :_  ~GʋB+K x,Ì  <2~ʺzw<þ* * "~#####   B,* ##* ͺB" ͶA* *B N(~'qA)(QZ~>rA)(͒'OG+¿ b$* "* 3zD3ĕA" !9" ~:¿ #~#{ #^#V": >[@͇0>]@ցL҂O! 2 * ͵+¿ ( * ͺB(tEE* T]##N#F! `* +" |2 !O w# x[*#| B>2 G8~¿ #~¿ #/I 2v+ʷB, ʸÿ  22 22/<(z{_&OOHN#~C9:p0p@Gp7))))o +p8ҿ  )))0O O))#~ցŠ(,7>OyұͼB,͈)*  } A)>2  N#fi-++<'Z(}/o|/g"B,8~,: ‘2 *|@PVWG"B: W?:,+͚EO: y!e E..+q, +: B*|ïª#~# #^#V" ‘BB(+ͶA:$" * ~Wڿ " z~" ¿ |" 2 " Ø ~,+B+'Ct tEE3>2f;O+VAʯ*>**,;ʨʡ͖0͖E6 * 4*|* ::G<:?:G<:[ ?=VAEf*|% ~!::N#F#~: x n!:b ,*` #2b SBR~#o&"d >2c e<2c d G("` !~ x 0?<=:b Ҡ ڠ*d š###^#VQ+&!d :c 2] ;(&C AOGCAGx2 *$2[ > $> $! w0=0{0(O0! {0(* |l0*ͺB!" !"!6 EE))1ó01ʡ06+'06-͸'#60: W:] D2<2(1'5! F : _ 0x*0{0Aq 1E 1D 10: A-,! (ò,: $-2 !'`- ! (`-t+ ! (>h-t-t+! ͅ-=A-`-`-`-! 5b%! >5=m->! N#F#=z->! p+q+=‹-: /@'44/-!- qA>?,?ڿ->?,: <=,! ͩ,!& ͧ,x­-! 5­-b%y2 +, ~q+-A(m) *O+~+ *!*))m)y(#(+6H*! >s,+,2 +! ~5#K*!xp*>);)l* ;=^*|G<+yÂ*|Gz()a)'V+Ä/|))0+DM!>)*)ҿ* *=±*|*x8+*a)'a)S&x))a)'| 0+':&x'> Å%{_zWyO)xG:&2&y&! 5&b%>.! N#G.xq'}! Gxp'ƀwʧ&#(w+͒'/b% b%(x/G$! 4/: : /<! Op#6J%'F+ ! ~w'og)) '* ||Ü'* * (" `i" ~$#$Î@$g"8$!@$EIC#~ $"7/7Random number seed (0-65529)d$*" ‰$#~#Y #^#V" y~ʢ$n$o$o$n$o$t$** "8+t$$B,+$": 2 2 !z5($('x:!:G@ #T]~!# !~!!!y_4!: >2 I![@!2 X!: >2 T!> 'F{[!~#_'FX!p!2 Ú C0:?+̀! 5 5*d Ö0:b O ʱ! H¼!>&{:c !!!#~ (~#!:c ! !.!D!E!!{+~/wt+4/b%̀)$>2 `h))~& -D.+D.+/..eV.Eu.ln.Ln.qn.Q>Ž.~%.#.!.dʎ.D¥..ډ/¥._{_./©.̸'!&2) ¥..D. #å...A)m){'-<+DM!>+ +7>{_zW}o|g=+*|G7+|))Ooyg))* <+|̓)æ'*g{o,)8+! ~w! ~G+N 8(Ҡ+/<#Fwx+ +F+N9#(! G>w2 ! s,: 2 x+H,,4/͟,,>J,! `,G: ,! Vwz# +x+b%! ^#V#N#F# (:] Gw#(! ~7w?##wy7O! (G(! (  xʒ'!'͒'y! ym(#x+y+z+{z|''}'! ( ʒ'!'͒'O! y#j(+³(͖(›'* (A(!v5;(t+K)($: 2 : ͏): '%/<''#(g%! <%ͣ%҄%#4/.%Ä%G~_#~W#~Oܯ%hcGyo%JTeoxP%2 )zWyOg%x\Eʄ%! wb%b%x! %F#~怩O' 4/~_#~W#~O! ~/woG}_}W}O%CZQ% o-yOzW{_xG%$cCu͍"*` Ú #&"T]ͺB!; E!}* ͺB8"`i" g"͍[~vg"͍[B, (: : $ PXʹ",ʛ"BKʹ"B,ʹ"B,¿ z`iͺB" !ͺB^{#V"~#+"#=&-!  2W,# V,~/w! Oyw#j,qڊ,NsY+,u, W~w+”,Í,! Ñ,~w# ©,͒': b%C'-q,GH,͟,x ,,+! {,,L}  )))|/g}/o))! : 2)͏)" >2] S(aj()^) (̓)x#(! FÄ%* ̓)|Uæ' ^)!" " >>.) GOW_(#(g)>%|ܖ%ܯ%z< ͒')')ø') )! ~: ~͏)6{yJ%! ~*(M r5͒' &1rS&(>2 '!%7''!%7͹&'͡'$͒'.M'y2&"&PX!M%!u&! ~#ʩ&Wyҍ&O|g}oxGʡ&x Gz&CZQO'!,'͒'/.M'44+~2&+~2&+~2&AOW_2&}o|gxG>?&2&7y<=^{#V##s#r "| 2 *+#~##^#V$#O: yʜ#^#0#0#zg#Ç#-# > ڰ#IA!#E͇00+-#Undefined line -####N#F>!#*` +p+q+w: #BBBABSBE: * * ͺB ~0ڿ ҿ 2 <2  >+@*|T:ʎ@.@=:=2i@ B@> @:3@ _@h@:<:_@!@h@<2Oɯ2:> i@> i@2:'F­@:[ ʿ@=2[ >@ @> @:[ ²@ @:G:[ @VA@<2[ O*|)A6Vҧ& >ܱ= =#~<<} VA9<~>\ >~8= >ͱ=)=>\@~*A `= `=`= `=>@A=w >#>=6H<*Aʡ= =ʣ= == = s=_=>_= >+s= ~7ʧ&#~+w#ó=y=>@s= o&DM#ͨAw >#s=x+~ >=} VA* ͺB:] -;#:~#:~>## ;^(S&'~#'=S&($7RO!%'=7Ã)͒'!77!7'!7Ȇw#O (S&:7<27!7O $({YOO6+F6!74~֫•7w M%!7 (w+w+wy75Jʙ9v" GSљ e͘w>ROhFhiuh!O8$: w"~S&')$4f5͐(4.3/414t#S(74n5͐(4=60#=4L4{460#=H4{ {4/>M,Ҹ4>M,p#=¯4! '4$>͏)'5?{4(/0,0.1+60{1+6${+p2 ! 6 '* * 2 1E~t1:T10T1 #~E1>DGC1" `i" #~+ʻ1-ʒ10OxGһ1#~y1`xE°1y d1>2 1|d1è1d1" `i" '#W3: 1111z @]A> z: N>2 F#N#fix>X~#\? n> ]>C>\?@_W?W~#!?#>&ʼ?ʚ?+>{>+~#.>_ʰ?\Y>r>$>*r>x#>~$> >#W)?~#.>#>, ?z@W>~#>.r># ^#V#::\ DMʧ&ʗ; ::;;w#_;q#p;#OͶA##" q#:\ y];: O_;q#p#S*=M;BKAA" +6ͺBz;W* ^) ++s#r#;GO~#^#V#ͺB;S*=DMœ;:] DM););); * 7~#O G#w;G# <S()8$$͒''$': 682 !W86: 2 "~Ie&X4#]I'7''7÷&͒'(6': ڞ8QY͹&!$!86!O8 J;xn{/|t1}=Z}~L~l+B,82\ FCڿ O#~:808C8.*9O{_#zW#yO++4ͣ%#'p#4>-55>{4N#F#* /}o|g@5" p#=-5{4w1_cƤ~@zZrN vH Tʚ;@B''d Gg" կ5)))) h460 (͏4+~0 2. (=2>"w#6+.26-/</ 02:#p#w#6! #zҾ2[3`4z<4'5{i'=<40s2p#6! #: ~ x2*x2+2-+$0¶2#Ҷ2++wʬ2y2ʶ26%b32~5͐(2͖0+6%S(2͒'3 3_x<4S4͏)?~##>'?T]^###xG#z+I?xI?~-D?I?>Wʥ?Cxz͗0E+7ʁ?2 ;~?,¿ ~#N#fi_xx>à??@;>VA{Gï?~#@Ò??>?ʥ?͈)* A!HE* h?@?z#;x=;=2* !@ć0> @!X  ~#Q=#<s=!=>==(n=<k=>@VA"<~ >#&2 ͒'xʊ6U6/c%y(r6)S(|" " (6' &S&8;S&: ҿ6h6')Ɓ6$!67JS&': 6b%/'|Yt&wz^Pc|u~r1'*4L4{4`2_y/3/3{_x63<4S4G3<4y4O<4GO͏4R3* =<4Pi2^)ѯh3͒'73y/OzWO/33/<>>L͈E* D(G>>>uG<#N#fi2] ;(E ,dPZdPͼO8͈)W_6Vڢ wPgP"ŒPG{,xŒPPX6VP!X Oz"yP P PO{,y)Q6VP P{ P,> PPPP)Q6VґP"P Q6V Q P, Q Q6V QL>2 8^MyO:>2 +M~(1MzM~(8zJMyO:] Wr9zBK!mM RM 2 ~(1M QM+L(„MB)LB,M* * ͺBMN#~w##; M;M* " ÒM* ͺBMy_xW `i" * ͺBN#~w##;N#F# M;MVA!:<:>\2JI@>+1J~@I+@I@VA!X 2O J:XJ>\@2yJ0C7 K J |JIJ0CIšJI@> @>*J¤J>#1J½J6VA!X } I IxJ!X "ayq#@ I2[ > @@J I}+F+N+n& PY+DM* ͨAq#pi`+9F* :͈)~*  ͈E|G{G* cGcG!E~#N#Fo,- lG͈)* ͖GPYN* ͺB”GG " *n +F+N+ͺB"n vuGW~vͪG#^#V>͈E * sEB( B,B)G GͶGH ,BB,,B*,Dg"+fDB,fD+¿ !NͺBA}_|WA*  ͺBA"l ",B**l {_zW7D2 " 8" F ^#V#* ͺB ~#~#D': D! '$ ((S( E####N#F#^#Vi`: D* D*:]  r+sQ: N:!(B!; E:.C/2.C:[ VA6!W > @> @*|lA:xA2ɯ2[ :=@A*A*A0CBAͺB~ +ëA*l  >>ƕo>Ag9*++"  A6FAA* ͺB:G!M* * ͺB,N~###;$NdN_N* ͺBʎN~###;N#F# +N" N #* ͺB,NUNů#^#V#* ͺB*ͺB+++tE(6F* DM* * }o|g" * " ͨA`i+" : N* DM* 4"͡>2 : R:2XQ2 2 * DM* " * #* * " BJ: QAw!W >2 ;2 " ]$͇K337K " ** gK¿ ͇K²K" *" ##^#V#~#fo"'{KA3à* "à!9~#›K ËKN#F`iͺB ËK >2 8;(("  ͶA!9 +" &LB(8s#r#~,L > {͈E_G* w#HG͐HO>~*Hx F#F#fh DM͋EokG|GE͐HH~͕HͩI"H=O~GCͪGv_#~#foFr~.pB)Cͼ>ʼH B,͈)B,* B)uG&v{GG=O>x~#F#fh GN#^^#V#̀((E"i`Ü" * ~, ͂DuG~#N#F|G^#N#F{zد< #CE?Ý'5jE5jE͖0͖ExGG~# FN#F͋EokG F! w#s#r+"P#~ ʬEʬEE"x,E E+~ ʹE#y͋E >*n " >2] ( ͺB"n ~ #͖ExG( ^#V#BͧR*hC2 2 2 w#w#" *+" 2 2 : IB! 6#BB(7!7(!7w#w#w2 og" " *l : tB" B* " " ͧR*++" ##!p "n $v@ͯgo" 2 "D " " 2 * |}~B##~: ÿ *B`iҦ+" ,@8O>"@E>"@^O*|ʵO~µOZ}o|gҵO> @+|ªOVAï#OѻO– B,`i"+# _:ڜ !N#F KB)" >!=&L=&L=&L!9DM!1L* * * à2 2 ~NL2 #+3Q!" +LB,,Lg"" +LB,ʢLBABLBLNB,¿ 2 #`i" LT]" ͺBN*+#~#ʋM#^#V"L:LL+L#V$I I#Iѯx<#IIB(8͈)#^#V* ͺBSItE(B, ~ͩI͵uGG!&y~<چIyH #^#fk GN#~#foyw# žI)ʷIB, B)* * cxG6F* * c>?@> @I@BJ6Jp2 @7J@ `AE* * /O #ͺB)F" #  F*l " !* !p *n ͺBGFF!B " * " * * ͺBʈF~###;FF_dF* ~#fo* ʫF" ##^#V#" dF* ͺBG~###;N#F# ªF" N #* ͺBʫFFů#^#V#DM* ͺB`iͺB`in !*}<C" * " 2v@IA!@ X | >^@@@VA* | * " <2>2 8! (* B,8 * ͺB( (>2 82 `i C * ͺBC `i" ~,ëC~A[?,B,D+  *  DM=\#""" {ozgA|g}o(]|<]!{ozgA"l "" " *A}o|g!]E͇0!]E!E" VA!u "å[ Owned by Microsoft Bytes freeBASIC Rev. 5.03 [CP/M Version] Copyright 1977, 78, 79 (C) by Microsoft Created: 21-AugB ZUZDM*[*[͌Z"[PYTZ}o|g*[#"[YUZDM*[*[͌Z"[PYZ2*[! ~#foͺBs#r{Z:ʈZ!Z!# /U~# xZDMZʮ Z! w!% V6 ZzwZʮ Z! ~!Z! ^#V! s#rDMZZͺABSQV:!<´ uG~ʖ #N#F OUWIUWR– B,# B,{ʜ _O¥ zQVY" ڡW{¡W!~ ¡W6B#6A#6S"# w# ¬Wqq%V~W<ʱ WO #~'PY!$ 6%Vʓ TѯÐ <ʱ !" ^#Vr+sOT PY¶T!T`i>U!$ ~ZT%V&TOʜ !#T! ~+nxOʜ ! ~v*~C Q*% 46!W { !QB͚E.ɷw#QmW3Q:2+]QB,BR¿ 22!6"B:2*""*#|<ˆQ"6Vژ ™Q2 ÝQ<R**  ͺBQͿUw#ҠQ" : S[͡##" !~26(B:2: N:} àͯ͐TöBBA3Q+-79 !.dʎ.D¥..ډ/¥._{_./©.̸'!&2) ¥..D. #å...A)m){'-B" #[>YRS[öB ** ͺB!8}o|g!W8}o|g J[  [ [ ** ͺB!W8}o|g!8}o|g „[ Z[ Z[*|<: A*+6*\~9Q} !L^"" * ^#V"A"##^#V".A##^#V"@##^#V"o@!"22ZX¶BU* & p# XöBͧRͧR _QV<ʙ zX!6# XQV2!X!Xʙ O!  ~#@yX~ X>.@ ·X:[ W:X> @@VA§X~*6?# ZDM$~WT4~O#V p(Uzw w+s#r#6#6DM! {zV|Uw*T]" N#F RQÿ 26Vژ <ʖ *% 4Ø *|B 5Q+QRB,P[BA& #͖[>T* *ͺBQ~#TcRT:–RR=}R~,~# RůsRѯOʜ – ! ~#fo" !"[| G~, BABS8͈)O*[ "[* 2 2 2!"!" !p "n ! "B *"l >2!\"\:\\<2\!~"\\F#~+w##K\+6"\!\/\+6""\#/\p\\6S\Mʔ\F¿ B:ʳ\z{2ø\"l +\B/Ä\B:" ø\+*l +"l +:!["2<s#r#X +Y* ͺB! s#r#w,Y2[O– ! ^#V~,+¿ {ʫ +s#r! w#w! ~#fo!ͺBŒYYBK>!)ҟY)#àY))ҮY ҭY#=•Y}_}la)Y#x"[! "[!& "[!}o|gͺBYbk:[8Zͺ+q#p###6 V%V=V>w+w!%ͿU7?*$ 6#67uG~ʨ #^#fk_tVN#~:xV++@ʨ y@ڨ Ҩ  #V~.¢VͰV7ÎV#V2z ʨ ڨ > ðVʩV> VéVQV<ʙ ! w# VB ͺBڮ q#s#rR78͈)͵uGF~O#^#VʘS*ͺBqS* ͺBqSY* * ͺBڬSy FuG#s#r#^#V#^#Vy҆SGOԢSʝS~#ÍSܢS> åS½Sx͈EEZSB$B( ~,SOʖ OB)}͈ET  STATEMENT  >( ͜ ɯ 0W:PW,(:P_ Qws ͜ N͕*F^{ :T_̓ ~  !7 [F{ր_zWS`!z b  [`z8 {8 ~ ݾ !͒z Z CRNF A Q(6E ~^*6"6:Qݶ F  ~ݾ :Q:PO Xi(~:P2P2:P˿2P,sx ]~8(Y(Na>͜ *>͵ <~03*,͵~ (#!X"D 6EXIDY Z80 Assembler - version 2.1  Copyright (C) 1980 by EXIDY INC  !͒PASS 2 >I "R",,"RFILEI #, AS N$I #,  AS I$I I I( N$(,)I2 I$(I) J< #,IJA I$JF I!JK)JL gyO0G,~#͝y ~~(,!͒~!V'|*8"8:PO:Q,!͒:Q!<)|*R"RA'o>g^#V͒:4G** WARNING CODE =  ** ***** ERROR CODE = *͜  (F '͜  ('V(*F(>*w6 >6 >!<"Lwwww2Q! ;:G^| sN(  ( ((1((r# (> w>T2Q| {0 >w7#͚ ͧ#͚ͧ ~ ,:~ ;! '()+-.*/<>=y (''( y/O6Q6Sw! ͒( ͜ >˾V#z G ͜ = ~͒!͒!͒!͒*.".A| } !͒Qw ~ Q>EXIDY Z80 ASSEMBLER V PAGE  ADDR OBJECT ST # SOURCE!V'| *****ABORT ERROR = }<'o>'gX(# X(# <> (͚()ͮ(!8$'808~(:8?8~G(~6LVz͜ #ͩéƐ'@'WÜ |͝}͝OÝ Ü  ͜  Ü 0 '(08:8@8[0ɯ<͚ͮ41!6*6b~2T ~ ,6 :w:P2P6 !<"J!<"N!7:*G6 #668 ͚͑e3>Z*0", f( ~ M&.*4"23c F(/^,Q,K8!:PO ,KR!'HK8!:PO    6I ~ #͚ "7>(:Pw(˷2P!7/%~ > F(6P~ RA6O V6~^ 6N*B>H%tu">~(  fKW_G͚O(x(4y08/:0+# }?oz {(## z͑W({͑_(6Iz ~ >(r { ~ >(s ~wy!, ~w?8 88pH*, ~"0!#(#0><( (~ɧ  +<,<::w*:G~ > 6Iɯ2/!;<ʉ>ʶ' ( 1#~#~# #m  !͒ !d>Y ~#/~!! ##~ݾ//W/m COMMAND LINE FORMAT ERROR INVALID OPTION! ;ͧ*'#ͧ( +~F#(#~( 6Q͚ ͏~:(͚(.#"B ~ >H% "ͅ *,">w#^!  ' ! 6 ! 6     ' |}f'n&V%^$ͅ :f#n"" * z b -* " f#n"u&t'f'n&~#u&t'* 6~$:2% w#^!  ' ! 6 ! 6     ' |}f'n&V%^$ͅ :f#n"" * z b -* " f#n"u&t'f'n&~#u&t'* 6~$ OSS REFERENCE OVERFLOW ͨ V͜ #} ~! ͒ f('͜ fn͵! ~W( ! (! ͒!"\"^f n "X"Z^ !"Z! ͒~((~ f n ͵ (! ͒͵}  9 ͵*X>   ͨ } ͨ } *Z>(wo~ qͮ kDMf(>R2Q x=(>V2Qywo~ͧ(ͅ :/(>Gw;}G~Hw#:/<(Q2/!:''o>gq#s#r .:/(&!:''o>g~=w :/=2/B#^#VB>Hw"~ >#͚ ͧ(!*( 6O6q ~(>I6 ͅ":!)>pq ~Wͅ"<!)>pq ͅ~CDFG6IY >( < ͚# {(6S++>) =( A#<(=(y#0O6,!) ~I '#~X(Y  #~+(- <:2P>2h F#( ####>#N#^#Vyp///!io>g^#VyG>G:hx\/wd%P DKLNOCGWESFTGWE>>*> 2*!~1<I'_!^^#V#;(a (,(Gy(6~: /V#^"z j ( ͋ 2 1 _gN#F!c##^#V#~ ~$( "ZV#^#~ SZW#^[^z { "^ѯ*X>  V#^SX#~X W#^[\z {( [^z { "\ѯ2,! ͒,! ͒,, ****   EXT  INT **** SYMBOL VALUE TYPE STMT STATEMENT  ( ~ K, U(G ~(,>H%~6J ~(>H%~6K>H% |   ~"0 "4E>:5G~ >(+~ >+> # +͏( >H2Q6I5>  ~ xG=  ~  #("<"::O #͚(z&  O& O * kp~ O!- N!/+ #~ >G^ V ~?g(5~n;xA11 w ;(0 (,(.( w#1x #~ (> w#+++;!//#> 1W/ m G>!//! p!!W/! p!!m! p!!|/p!!p!!//!mF(k!//!W/F(^:%W( !m!W/F(Jy#=#Gz/> >ݾ$ R  ͢| J//W/m|/ PRN $$$u6 :%W[(% V#^"z Z r  7 >w$ _' ɯ REFS------ ----- ---- ---- --------------' _' [( V#^"z 7 (f%n$u&t'͍ ͋ s 1  INPUT FILE NOT FOUND $ 1 :b _>W1 $SRC$OBJ$PRN$INC$XRF${ :%W[(% V#^"z Z r  7 >w$ _' ɯ! G, UNBALANCED REP ("<",">")H, REP ERRI, INVALID OPERANDJ, EXT LOCALLY DEFINEDK, INT NOT DEFINEDL, LABELM, MULTIPLE DEFN, LABEL REQUIREDO, OPCODEP, MULTIPLE PSECTSQ, BAD QUOTER, OUT OF RANGES, EXPR SYNTAXTU, UNDEF SYMBOLV, OVERFLOWWX, PAREN>(%|%z,%,%,%}o|gxG#Jx#y##(!*F ~(& ##FN W(ʹ&y(P S &Fv(ʹ&y @ /H +kG(ͫ&y @ʈ&Hʈ&6MÈ&ʹ&@ H( V^y(P(1V^h )(.RES..NOT.-+*/.AND..OR..XOR..SHR..SHL..EQ.<==<>==>.NE.<>><.LT..GT..LE..GE.=<>.MOD. ^#Vnf F~x(Z ^#V>  V ^~O(>EyoxG~'O'O!/ /w#:/G''Ox=2/!/ /گ2/[/!/s#r͢ͷ( (>C2Ͳ(͝"O:/=2/@*/nf ~!(>V2QG(O(֯:/'O!/ ^#V N#F>  ~ N#F:/<(2/'_!/q#p*/ ) +> w<=|( |6RR0~ V:^͜ s~G*2|}x(!<"JNp*2 "2< ~ v *,"4 ~0*Lw#"L4 V( V(~o.!<"N~# ~_#{'_z'WS.6S~0 6N!|/͚( .(#> ~#.(!b>:wASM~ ~F~( xȗ|~g( .*0"2x |(d(` g[:~/2Z>w!;"X!~ *Xs#r#"X{|z|~<F6U<v  ~(W G(*D "D *DR#*HR8pppW”%G%ͫ& ~(*,tuf'>'*6Ny EY ( t u -Y(f n #','*6#'!3# N#Fx!#wut >w>##w#!:R!o#y####d$######$$$$###% %$%#$$$˸կy/ox/g{ozg#>yoxg#yoxgyoxgyoxgyG|?g}oyG}'o|gyox#!y x(!$!_$!"/[/z8 {0:[/͚ :/>AM!Ͱ!§ S/! H :/G~2/ >SM!x :/ '>AM! (>CM!pqut !0R!:R!8!(H(!D( O(Q(B( : 2GFf V ~~ow*,N  *Nzw#{w#"N V(^!/>~͝>y>y*F~%^ (/$ & V(#~#~͝ $͜ sV͜ z#V#͜ zWO~==w!;~|#[:~ p"@[<~ p[@~^!-~{P_!.Fj_!%/N~ > Wb$$$~ > _k%%%FN F( (BDʈكقك{9}(6R|x|لExG%%%}ـ,'t u V ^  N ~>g:U_͜ U͜ T͜ U͜ {2U[V!"VɊ''''''(('(:(Q(d(m(}((((((((((( )%)A, UNBALANCED PARENSB, INVALID OPERATORC, EXPR TOO COMPLICATEDD, INVALID DIGITE, INVALID EXTF, SYMBOL TABLE FULL"_$"a$<$fnV^zW|怲W(|/g}/o#zŒ#N$V^tu!_$###E0$S$C$yʌ#!"$"$*$[$)j"$"$*$R?Ҥ$"$*$j"$*$*$(|/g}/o#xgx$/Gy/Oz$/W{/_|d$>>>>>y(jܣ!ŧjܣ!Zܣ!08'0$A8٧o>ܣ!g< >D2$ #͚(Ͱ! *,>OF!' !D!eoH%~ fF!l!>V2>EM! "#(( (? (!}" N>E0"}08:/ !"H NS/ 2[/S/*/}O|G> 2/>2/66"/!"/ x */[/Ϳ[/:/"/(>X2"/[/*/Ϳ~8S/^VͿS/*/>  sr s#r:/< 2/'Cxx}(<ـG{B~E Mx MxGELCJ}Oy|}OS76с{QO !%%%}فWM ՁMT̀z|<( (!b!<=w#( " D !qut:@2Y >2Z q͓ I4:Z=2Z:Y=2YD4:X=2X!=>(!VZ, R(R !> y(!: "8 N# 4~!! ^#V >(2 (( +!0 O\ y)*8 >wÀ*8 4À(7 FG :(x(x+>(\ *8 ^wdestination diskette as called for in drive then hit any key when ready. Tracks Tracks Source: Cannot format, try again. Do you have more than one drive configured in this system (Y/N)? Place diskette in drive for for!ͺ!Vͺ+ !|ͺJ:;Y/,!ͺ2?*B.!q .R|G:XGx2@:;Yp!rͺ̈́Aʓ!ͺ!ͺ!ͺ)o& p:;Yʪ!ͺ,̈́G!ͺ0!ͺ! ͺ!ͺ)o& ê:;Y,:?G:@O2?G:= \:Fp456!K[*{CS"sF&.> ASM15 OBJ5 ASM6: /16Q͚ ͏~:(͚(.#"B ~ >H% "ͅ *,">!*(_Q ?ooWZOPj*>[Y?ooaqvWZOO?O?O?O?oGG6_QWZOO?O?O??oo?oo ?PQRST@ABS TOO DEEPY, SRC/OBJ/PRN FILES SAMEZ, OPR REQUESTED ABORTp)r)t)v)x)z)|)~)))))))))))))))))))ABCDEFGH, TITLE TOO LONGIJKLMNOPQR, BAD RELOCATABLE USAGEST, TRUNCATED LINEUV, OVERFLOWWXYZ>}4GR~}#tAmatting then Put source diskette in drive A and destination diskette in drive B then Hit any key when ready. Exidy Disk Copy & Format Program For track diskettes. Ver 1.2 Copyright (C) 1980 Exidy Inc. Format only, Copy, or Exit (F/C/E)?... Place  2@\!rͺ!ͺY~N$!ͺ> *~`>!`H!ͺ͢6C:=鯽{>߼{~{G/wp{ɯ= J:?G:@O&h> ښ> !ͺy=o ұ> & !oͺ:o& !ͺo((a{ Recovering from errors,CDEUV !W"#$%X&YY'()*+,-./0FZ[\]1G2345^_`aa6HbcdefI789ghJijklmnopqrs:KtuLvvwxyz{|}~;O"'03:AFKW`gsvxyz{|}?/'v7@ MzfM4Znt=ν{=zDF{\?QX5A@Ԅ],zLt -zC ?OQ$@AD'Bx= -Ή}!CtHh5CQ,c8cF4GM!t:u'Rcө4j$IQ$ۨQXQj1)AIKjQ^@BCBC!YYh ^d@$[^zCfH 2ECg+@̑h-6destination diskette in drive A For initial formatting andN2>2!:(:=2:>O :?wvD !qut:@2 >2 q:( ͮ 4:=2:=24Å:(ɯ=>2X!:=O :?w Track # writereadverify I can't find your boot address!!!! Please enter it...F Select drive (A,B, or C)... Good copy. More (Y/N)? Place system diskette in drive A and Hit any key when ready to reboot.-- Destination: Place source or 8( E$>^ >C :&!ͺ͢:] 2<ͷ:<V>Y!ͺE CF\!TͺGAʔBʜCy >á >á >2=!ͺx !ͺ!Vͺ+  !ͺY(N 2;Y>2=! ͺ:;Y>2=#3 +; )9ǘ (08:2!1*"W_GO#+JZjz 9)@F@pDAMEogBRbr (8 k&OMZ%=4 &" z`f hd*CD {&'[&!&>AG6666&..>..ST:DzRW:J ƕƘƔƁO66666666?oo/o/oO66666666GG6_QGG6# *R0S*R8(SR8*R8 > ͋w#tu  o^(> !* fn F !6 fn"+  8e~(W FNfn^#V+q#p> >3 &fnFNB(^#V+> q#p>('w!@ 26,!Z)ͩ ~I '#~X(Y  #~+(- <("4"2: #͚(z&  &  * <& y  V^x8($8(8( 8 #####z8 AW~(M~ 0~ > kp O! - N!D  R"Y i! 6 !"M "O COMOBJR0Q/ > >2j  (=C U A  =rͲr"M "O "E "G y>,(!*S r?r@ ,! !!Z c!> :j S! ? 7 ? 7j~$#$ͬ :=OG> (2  D 2k :k !w6͌ !qB,: G>(~+#A((@ ~+#(ƒ : =,(. l :i =2i ʰ D Q !) ͺ)o&  :j =2j Q ! ͺ)o&  :G:k < 2k Z Q >2i >2j !w+(~+>(\ 0 D > R x : !: !> w#y! ( ! (! ͺ! ͺ~! ͺ~! ͺ! ͺ READ ERR: WRITE ERR: RDAFTWR VERIFY ERR: TRK=H,SCTR=H: STAT=HA2 ! :AwͺɅ0$o DR* #~ >G^ V ~?g(5~n}?oz {(## z!W({!_( W˛_:(n2:b_!NR  @>  :( *[R"!g ! > (# ~6! w Æ !R"R zdͺ ~# (A C U !F(!͎ͺ Ͳr"M "O "E "G ! (G0ͦ Ϳ))))o0$  (,( (> O,( A O G ͺ= Write error on track # Read back error on track # Destination is write protected,!:=O :k w„ D !ut >2 qͮ : =2 Õ !qP>N >>>w#2>N >Nw# y !"*N#"V: ERR CODE=:0 > 27 )wy2y 2 7 ~)*&A : ,> (\ (7 w((G (G((:$(( x: ,~+~*>(\ D  B ͌ >(* : _+((Pr {,+#w+#w (G G[(: Gmx~ > 6Iɯ2/!;<>F' (w~ q1D!6# ! 9 !"|!d"a! >2*:(!"6 B"> *"~w:( *[">2o$ʖ: ͉ G͉ g͉ o ͉ [V tu͉ > O,( A":>$ "ͅ *$"6!)ͩ( 6O6q6 ͅ"2!Z)ͩ> q ~Wͅ"4!Z)ͩ> q ͅ~CDFG6IY >( < ͚# {(6S++>) =( A#<(=(y#0OiK!~==W!SI*J~C#*IR?'͆2!p+q*̓!6 ̓ ͆ ̓!p+q*̓> >ڦÚ!p+q*DM͞:̓ ̓:}2:~!!:*& N̓!4!6::w# >>>w#w#>w#yw#>w#>w#>N >>>w#>>w#6>N!qr4#r#!P4 !P6# ,¨ >2Pë g  g  g  ¥ Pʥ ! XN!~  ! ,: ,fn" B G ͌ (@(> * >( V+(O G(AA Q#V 6Q#V (G (G[(:G>͓ G[   ͌ >(* : _+((P {,+#  * z (G >  * 0| j $ $I$!$I $ !$DB@B$D!B@ D$@HHBIII A @H !D @$@A@$$@$ $$I$ D> " *> " :b_-> -> !*R;-!6> +(#6!.!w :͢ >(. : > 2  !p ͺ ! VY B8B8jB8 7 ~W Wa{:c=2c*aV#"a=:~=2~*|V#"|=2c2~!"|2c!d"a>0ͬ > ͬ !~G##>/ ~Ͳ >L > ~,ʕ / #> > >L > Í > *aw#"a:c<ҧ 2c*|w#"|:~<2~> #TA >T > EA~,ͺ N[͉ @ ! ?=_! ~#fo_! ~#fo͓ 9͓ ? 8 0: ! ͓ 2~2"2c! ɿ   0 : N ` f X ` CHKSUMDBL DEFSYM TAB OVERWRITEPROTECT RAM LOADSYM TAB OVFLOD͢ 1D* * z (QETB L>" ! }6 # :c2b͝: ©! é!N4 !6 ( # >" !<˾!<ů2'(fͲ=_ : {A2b'(MͲ=_ ! 4 !.s.(8(*Ͳ=x=#r DHBI$@@B$ BHB  @H$ " !! HB $H A B!H@ B@I@ $@H@I@D@D I @HB#2!"""!goZ WͲz n ))))o0$므( ~w#~w~w#~wz+ -  (,( ( :>" :( <2(##z ({ :=2z 08:8A8[0ɷ! 6#! 6  #> AA#ʧ ~=§ #!d"a2c~,<ͬ #> ì ~Ͳ V~,Y#ɯ=#TA2)[ /!./s#r2G( a(>C2B(f-":)/=2)/* /nf ~!(>V2IG(O(֯:)/'O!./ ^#V N#F>  ~ISK WRITEBAD FILETYPESYNTAXBEG ADDR NOT 100HUNDEF SYM.OBJ FILE NOT FOUNDLOAD ABOVE EXLINKNOTHING TO SAVEADDR: .COM SAVED, RECS WRITTEN= SYM:  DO IT ANYWAY (Y/N)?  WARNING **** ERROR ****Exidy Relocating Linking Loader. Copyright (C) 1980 m=( ͈2 (,(7ɷ͈ 4 !<~>" ͈  !K   V+~(!  +~͢ +~͢  ow+́ ow+́ WOG͉ c R ͉ w+͉ w (4͇ (6~ 6F6f:<2|}*RR /!R"T*T *T"T!R"R*R~#"R @"@I H"  N#F:)/<(2)/'_!./q?*$/ "$/["/z8 {0:[&/͚ :)/>A! :"_<2"!#"6 :~( *|ͱ( :"( *ͱ( ~+-Ͳ=*| > " :~2:c2b͕. ! !9w#:Exidy Inc. Ver 2.1 Starting offset is  BEG ADDR END ADDR UNDEF SYM SYMBOL TABLE (UNDEF=****) FILE: 08 :8 A8G8=0 ó Oó Oͮ î Ɛ'@'W|͢ }͢    # z:"d*V#":"=2"zn tu@͇ (6&~(> ! V+6fn tu͉ ($8͉ g͉ o ^#V s#r  88 + *B> *R8B-KSB8 < BKB% !6-#q#p!6#q#p*+}(.%"B"D{(.[(#P"_7(!"[c(*_ K[J [_ < C[z{([(.#P"a(7(!c"]Kc((K]cJV8*acK]J  !c*]w#"]K` #~a8{0_w! 6xy{