TD6y*{#zr+s{ozg**͕** ,w͜͸Ͳ!!N#F$**O!~# ͒> Ò> Ò͘~#͌ì _2<ԯ2Ձ Շ!۶2:2a{_:۷ʖ:۷>Ľʖ:=2–!B!6#5ʖ:Ľ!ͬʧ )!F#xʺ~0wëw!" !~6ͽ:ý(!i#͘*~ "ַ"͌#>?͌͘ =_.:;<> 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ͽ:Է i1͘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 s ͢ØÆ^ 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!}|qK=qf^!~2>`~2ۯ2\!!B!~> >#0~O#Cx2͘1)ͽÂf zͧÆBAD LO3ADCOMf^: !۶  $$$ SUB$n@F&-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#M 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*鯆#  D ):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~͔͔# # @5ì 4~ʶ¬:<ʶ$ʶïZͻx>2>2ͻ:!Z2:E߷ẅ́͊Ͳ>2>2T*CGͻ:ẅ́n>2;O ^DM;}H>"*C ::ddslO s#r:E߷͊:==»+y==»*Ww#*"͸*:G#š"͸:!w4 iw:Z!E~=262*C!!~~#~O~G#n,-.‹! w! yG!x͢.:E<ʄ! q!pQ:E<. ʄ$.:E<ʄi6}2ExN! ~态O>G~G!~G} *C!r#r#r ^ͥ_y#x#{Bs+p+q-*C ͥ!!q#p#w*:BOYG}*MD "ã:!B߾w!>2*C~=2u:B2~2wE:A*C߶w>"!""2B!"!rQQQâ~?ͦ~?rQ*"CQ-Q͜QüQrQ$Q* >):B"*)*)Q;*"E:;:A2AQÓQÜQ*C}/_|/*W}_*"}o|g":ʑ*C6 K92:ʑw:2E**E}DQ>2' n2!"2!"28!"9͟> !28~#:O P"y2 $ !n cannot boot  CP/M $ y ?028y< 28>!n (~$#O  disk Tu$error $drive not ready -$write protected$ COPYRIGHT (C) 1981, XEROX CORPORATION CP/M REG. TM 2.2 SY 2.0 2-294    $?}G"]!G"n"G"G","!Ϳ!Ϳ:!O!o!Z#qN#SsT# $TRSDOS/LDOS ---> CP/M file copyyaliz|oCPM820 SYSD STAT COM* DDT COM(XSUB COM`:] \<œ!x͕c2|\ ¢! DMͿ\õ!͕c!͕u AnA2Aͦ͊!@I-E FILE ON DISKSOURCE FILE INCOMPLETE# kcDxCOPYRIGHT (C) 1978, DIGITAL RESEARCH  o&)))))))a{Nq8CBIOS MAC !"#$%PIP COM<&'()*+,-INIT COM 9:DUMP COM;?͚u c͊2!?͚!͕u cA7nA2Aͦ!͕u c͊!6!?͚>ͦ͊!Q͕SYSGEN VER @ * & ) * s#r* " ì!" "   Ϳ8* " * #" )* * #" )* N#Fq#p  Ϳ* )* * ) * ^#V __> ̓> ̓͊~̓#ÚO****!*$*'! ">2!4:(wNͯ>2 cCOPY COM <=SUBMIT COM >?SYSGEN COM JKKSYSGEN COM. 2.0SOURCE DRIVE NAME (OR RETURN TO SKIP)SOURCE ON B, THEN TYPE RETURNDESTINATION DRIVE NAME (OR RETURN TO REBOOT)DESTINATION @UN#F&H%* #" )* ^#V"  * ^#V" * )* ^#V"  ̈́ * q#p[! 6:! - : /09 !:)!4f!^!*FNͷyj*DMͿ2: K!͚u c͊<2:\_/:)j*"1!u͚@ҁ ON , THEN TYPE RETURNPERMANENT ERROR, TYPE RETURN TO IGNOREFUNCTION COMPLETEINVALID DRIVE NAME (USE A, B, C, OR D)NO SOURC@: 0@ : <2 !" ͱC  Ϳ: <2 O:0ͱ! 6M-D * )* ^#V" ! 6> ! 8* &* >Oi#͘*~ "ַ"͌#>?͌͘ =_.:;<> Oօo$>!Y2*O"ʉ@ * ͏DM  AO:. g  - >>!  ~?(W >#C /!:  (#  W (# ! ~ 3#0 Wx x ր ւ G ~ # 3x~#B!Y~ɯ2:۷=!۾ý:۷=!۾:ý^T!x_͌> ͒> Ò> Ò͘~#͌ì _2<ԯ2: <2 j: /0 * ^#V* ͏DM K* " !* #"& "( "* * "$ >$ (:$ 0*& +"& !$ ͦ+s#r!, 6G:ʐ:wÖx2p0ʹ#*©6?ëw˜0ï#6 ¹.0#*6?w0#6 #6"  N#FogDM!>))0 = ) ^#V|g}o _{ozgi`N#Fogo&og_{_z#W OY -  '~  6?#ˆ:`O> K{͘A͒>:͒͢>:͒͢xK > K > ͒x  Ձ Շ!۶2:2a{_:۷ʖ:۷>Ľʖ:=2–!B!6#5ʖ: "" ~2- ** #" * +" >͵S:- 2- 0*( +"( :, <2, O>0!, 6*" #"" ~2- a [ User $V : o&Ø { #~?  xDIR ERA TYPESAVEREN USER!yO#< Ty#O 3ׯ21y_͸2y2ͽ:Է m60K CP/M V2.2 ! ! ! $! ! $ $ !~ ~#  LOAD ABORTED BS0054300s ͢ØÆ^ BRͧ9!5‚#~Y‚#"T<ÆALL (Y/N)?^ Tʧ͘!6!~ڇĽ!ͬʧ )!F#xʺ~0wëw!" !~6ͽ:ý(!m |r{0__râ ] $ * DM H * * ͏DM V *& * ͏DM d * DM t ͌ (*(i1͘A͌>>͌92^ :۷¥.!_~#fow]٭ڎڥ!v"!çREAD ERRORçNO FILE^:۷;\X ©RIGHT (C) 1979, DIGITAL RESEARCH !J ٯw4!Y~ʆ͌†t=ʆf ^ T ٯ2o&)|+!<ͧM 2E>:! ^#V w#P:BO|^#V#"##"##"##"!3ADCOMf^: !۶  $$$ SUB$D ):BO!yoxg*:BO}!N#F "*#*s#r^ ~!J! J*:o$*C~i6iw*Ґ^H@Oy H H: –ͬ  #H: ! ߾ Hù H H $O͐: 2 *CN# ÆNO SPACE^ :Ty!B*O=?_s#"^sG!~Yڸpsp2mÆÆf ͧO*!O*|!6ʝ6>*w#w*w#w'û*! J*""!N#F*^#V*~#foyx*{_zW+*ܙܥܫܱ"C{2!"E9"1A߯22!ty)K!G_^#V*Cސ~E , *{#zr+s{ozg**͕** ,w͜͸Ͳ!!N#F$**O!~#w_: ! ߾5ͤNkͱ¦ͱxʊ#N FILE EXISTS _: É: :۷ʉ=2)ͽÉ T!@k!}|q ˁyx#*DM*s#r*s#ryOxG*0MD!!N: EG>O: \S*C :qn& ^#V>O^ F&-AGMSߛ!!ô!ô!Bdos Err On : $Bad Sector$Select$File R/O$:BA2!~6ہ"**#"͕: 2Þy<_WyOxOxG* ~V5dw^ :ʈx: ߷! ߖ2 ͤ! 5™#wO~x½p Hy<< ʑ :!qMD#K=qf^!~2>`~2ۯ2\!!B!~> >#0~O#Cx2͘1)ͽÂf zͧÆBAD LO"*}:*)=":O:页o"*C *C!ͮ~2~2ͦ:2ͮ:O:w:w |g}o*鯆#  O͐  :߷E B 2>: ߷b# : ߷y! 4 5~yy5 6y NÎ N#Fyʝ*}|\#u*#DM*6# x±**s#r͡*6#6^>:A߾#~$=2Ek͌Bs+p+q-*C ͥ!!q#p#w*:BOYG}*MD "ã:!B߾w!>2*C~=2u:B2~2wE:A*C߶w>" xʋ>ڋ>*Cw~#+w#w+ɯ2E22i^ *C :~w~͔͔# # n2!q*C"͡ʔ*JҔ^:Oyʃ?|x | s-|N-# !""2B!"!rQQQâ~?ͦ~?rQ*"CQ-Q͜QüQrQ$Q*  w ~>2!E5T*C!"C"C!w# F! w͌x2͢*C ~<wʃG:!ʎ ! ! >2!"2!"28!"9͟> !28~#:O P"y2 $ !n cannot boot 2*C!!~~#~O~G#n,-.‹! w! yG!x͢.:E<ʄ! q!pQ:E<. ʄ$.:E<ʄ ʁS:2E!~Яw>T D^6k-äPYy 5*{zBK5):B"*)*)Q;*"E:;:A2AQÓQÜQ*C}/_|/*W}_*"}o|g":ʑ*C6 5ì 4~ʶ¬:<ʶ$ʶïZͻx>2>2ͻ:!Z2:E߷ẅ́͊Ͳ> CP/M $ y ?028y< 28>G~G!~G} *C!r#r#r ^ͥ_y#x#{Ձ *C ^OT *C~wD -'  -@ͦ~^*C Ox! N!FwyK92:ʑw:2E**E}DQ>2'2>2T*CGͻ:ẅ́n>2;O ^DM;}H>"*C ::ddslO s#r:E߷͊:==»XK)ey2 n&C!y2o))))t:O:(( H :O:2ɯ2͸H(͸y2!Hecords/ BlockSectors/ TrackReserved Tracks is Temp R/O Disk: d:=R/OSet Indicator: d:filename.typ $R/O $R/W $SYS $DIRDisk S@b͇ /ҋͺ *2!"q*"&L ͐ ͐ ͐!$p+q*#~*#N͐*##"#÷!&p+q͠*%DMͱ O O!(q*(&}*3 Copyright (c) 1979, Digital Research??JCON:RDR:PUN:LST:DEV:VAL:USR:DSK:TTY:CRT:BAT:UC1:TTY:PTR:UR1:UR2:TTY:PTP:O͸*:O$H(͸*:O'_0!yn!ne({H(!yn8 !n >!n (~$#O  disk [tatus : DSK: d:DSK:User Status : USR:Iobyte Assign: =Bad DelimiterInvalid AssignmentBad Delimiter: Bytes Remaining On @ ŁL!*p+q*)O2'!,p+q*+O2'O2'O!.p+q*-LRRLR\L :UP1:UP2:TTY:CRT:LPT:UL1:R/OR/WSYSDIRR/O R/W SYS DIR ** Aborted **Active User :Active Files: Drive Characteristics6 Tu$error $drive not ready -$write protected$ COPYRIGHT (C) 1981, XEROX CORPORATION CP/M REG. TM 2.2 SY 2.0 2-294   R/, Space: Invalid File Indicator** Too Many Files **File Not Found Size Recs Bytes Ext Acc65536 set to R/O Invalid @R" O!/q*/& L!1p+q*0#L~*##N!ͽ͞"T!Vq*VMͳ!Xp+q!W* >Wr#MͲ!_5536: 128 Byte Record CapacityKilobyte Drive Capacity32 Byte Directory EntriesChecked Directory EntriesRecords/ ExtentR  $? Disk AssignmentWrong CP/M Version (Requires 2.0)!9"2!T OË!]6:\:] Hr3 Ë:\ʀË@-p+q!`6>!`6*`&*^*`&Y />!`4 >*]& ~ O!]49!a6:a*]& ~2bO>z*bM >k ä  ͐:!O!Y DMi w !4C F :¿ >F : F :=229:Y= ;>9*&Y DM*s"s*o͊O !v6>!vQ*v&w 6`i+46)A*:'ʓ:'O!) ~2vʍ:ͱ !+s#r!+s#r#4D ͠:\ʹ :\=Oͳͩ !6!)6l :) :)=2) :] & !"}2\!h6?!!+s#r#4 !s+p+q!6!66:!ڄ !6!6>!r *&**&Y i !6!4+4A :} :!!b/~,H~:H~*H~.H~>H~<H~=H*]& 6!]4T!]4!cq*a&Y :cw!a4؁ =2 I>!6:=28 :2:2 :!!29:Y T >:Y,e \>Ì !p+q*~:ʉ *N͐*vO!w 6,]!v6>!v*v&w ~һ*vM !v4˜8AO͐:͐ͱ*##N!ͽ"* N#F*͠" j6?\:'C:'ƀo&")!)6!"):)/)HҘ]!)6> !)ڎ*)&*)*)&*) y!)6 Ä:)  4- >!699 2¨ :!4: :2!6+6>! :O!9 DMi ͱ:!O!Y DMi :2 !gr+s+p+q!h6>fr*d*f!is*d́"dPY! "f>!h#~Haͫo!h6:i0O͐!mr+s+p+q*l #"o :͐!p+q!'"!6> **{2*́"PY! ">!+~H !6:0O͐à k͐ (>!H% - *DM ͱͷDM  ͱ* N#F 9ͱ * ^#V))DM Tͱ* ~!ګ ͠:O!9 DMi 8ͱ!6> !ڤ Å :2kTZs#r*lڶ*l+s#r*jN#F+q#pÌ!nq!"o"q}2uo&"s* s:n*sDM2u:uqosb͠Q" 8AO͐jͱͷDM͏ m  Z"l"!6>ʥ *}҆ *M ͱ*}x O͐} W͐DM oͱ*DM ͱ*N#F ͱ * N#F ͱ͠!p+q͠*DM':͐ͫZ"!6> *} *M & o)6> !).*)&*)*)&*) w:)<2)*)) >w#6*)) w#6*)!) w#6*)%) w#6*)) N#F*)) q#p*)%) M!>))덑o|gҘ =†DM!>))ҭ =¥~ ³^#V) ½^#V|g}o _{ozgi`N#Fogo&og_{_z#W c)*)) *)) N#Fq#p*)) *)s#r*)#")!)6 J:)!)J!)6 :)<2)*)")҈q:tw͠ͱ! @  w *) >*) w.*)DM\ -+!\6uͱ:)O! DMͱ*)#")Ù*))))))"):m w>.Yn 9 *) ~e *) * ~o&͞ *)%) q#p!)6* >!)6!)6>!)=:)!)w=*)&*)~2):  ? "))ҍ*)) ^#V")]͠.*)DM\ -°!\6:\ͣ:ͱ*}DM'ͫ*)%) N#F'ͫ*) @ q-:YS:Z Hҧ!6> 2)½>!)6> !)*)&*)>2) :) .͐*)M͐:)<2) )*)& *):)2):):*)!) *)) s, >X\:)“>!d!")>!)d!"  *A g!) N#F'k͐ͫ*)) N#FͫR͐/͐ *) ~IO͐NW͐ͫ8AO͐:͐ *) ~2)t(͐:)҃) @ ;99:Y=/9&ͩ c,Hͩ 9 EHͺ i`N#Fog_og_ogD )!")*++!)a*)) ^#V")]*)")*)) ^#V")]!)6> !)T*)&*)~2)*)&*)~2)O;*)) ^#V" @ s͐*)#")Ã& \!"))\Ұ*)")]͠*)M! ^#V *) >*) w *) >*) w *) >*) @ @* ͡. ;ͣW!E# ¡ # ¬# ·@ʴʥzʖ=ʐ=|zJz?4)z z =ÃO$*sy͏ , $  ͌ 9!z6 # L!zw͌j# X:z 0 ͘ T 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Ë @ O=!9 Ÿ!6q!2qC J R q!z z=naO $q$,! %=N#Fy}80*z{¯#z+++ ¥ z#½# · 9!`͠ y9!rͷ 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 ??= M!E .C–EQyQxQRQ** {zҷ*~#" <AOGƐ'@'OxƐ'@'ON# =COPYRIGHT (C) 1980, DIGITAL RESEARCH DDT VERS 2.2$10 !~=W!xe ~#Xbxʇ {z~#o}o҃ L;,!Ù!;qz8O! !;,z;qyO! ͣͣW_͕qyO! ͣ͒qy W y=!z{w# % w!P͠ y͓}*w#"͌ @.@<!Eͷ~P  âê ö  - Ð f  "J*"!"!"2O!" "]""!1!++""M>28!"9:] !í 1 /z8O!B N#N ¾SP.* |} !9":q!"- Ͷ Aګ ҫ _!7^#V~  \p Z z ů2[\͓͢ 8q s#r#!V4 !V6# ,® >2Vñ m ͅ m ͅ m ͅ « Vʫ ! XN!~   | 2|2\  !]w# ʫ .&  0 6 #& .K !e K w# ʫ : U 6 #K 6AW w#] !e~H#~E#~X vZ*F#n!Is!^#V&&##&))::^#V#*^#V>+)x-8_  ë «   Ͷ ͐ =« f xY |« }ҫ gA>S Ag}S S i |« }!w s#r:[ʔ   ҫ ͐ =« f " ͓ ҫ ͐ ʻf " =ʻf "=« ý> 2͐ f "]=f =« *]}o"_  *]" g! _^! ^#V~ x+ >= = !~  . !   #x f L L ͓ͅ ҆ *" !6 +*}|́ "!́ ͐ !ʬ =« f kʫ j \͢F w# ͋ t ʫ : W& _& & O { )*)þ))>+><7"9.Yͯ * M^2U _!~ʦ ![4ç \͢¦ 2[ 7 >?  e͢!g"c> _͢a_!f~> 5*c~#"c 0 Za. ~ #E }"]*a 6 *]}#|#*]E ͐ « f f f {zA|« W}d ͐ f f f ï +"_*~ #E گ ʫ ^#V. ï ~ CZMEIABDHSP!"M"+"!91*~!O~6=G#^#V#~ ԁ `i"F & & w# & ͋ « t Y t Y GтWx ͢!o ~Z #N  *. *.  NEXT PC͐ =« 3 :2:2ͳ:_³ͯ !6! @!!BH @@ABH B! "BHI$$BI$BI $ HI 7   > >  ͢| } @ >. *_}o| , 0 ë ^#V#!Y ))))o P  DMʡڏ"=ʡͲ=ʡYPͲ1**!O~4#~#F#x~#s#r#w>͐ « f f  . ᯕo>g. x (#"!N#FW( *J>7Å*M|N+"M N:LHͅÅD Å >* *͓ b" . *"] !/~##ʁt , f  . ~ Ͷ ʻ .͓ =« f |« }w#Ä >2L͐ ! =« f }ʫ +"MD Å D  !  # XoeD$HD$$ H B!$D$"$B$DA!ABI$H B$I $HI$H$! $I   i_2*ʭ :*ʗ ͯ *N"P*6:2)÷ *N"N!) $@BA$! A "!$"" '0 )))))"):m w>.Yn ;u: -- ; DOUBLE SIDED SINGLE DENSITY (DSSD) DISK VERSION ; 2SEPTEMBER 1981 ; CBIOS FOR XEROX CP/M DISK ; CO e ]xsub*"-!/"*"+!""1 M*!"́!"* (xsub active)$|*y ʥ*"*7* {t$I$$A !A@$I$"!$H$I$I "! $A$  HHAA"I @BB $A"  2A q-:YS:Z Hҧ!6> 2)½>!)6> !)*)&*)>2) :) .͐*)M͐:)<2) MBINED VERSION FOR 5.25" AND 8" - SEPTEMBER 1981 ; ASEG ; MSIZE EQU 60 ;MEMORY CAPACITY IN KBYTES MONITR EQU 0F000H ;BAS **x*́͋<͛ :%*=26͋!7^#6 #6 #6$ 8*7~O #w# !6:6= ?$$$I$$H!!! BH" !I B  $$!BD! $!BI D@"!$I$$H"!I @A W Extended Submit Vers 2.0Xsub Already Present$Requires CP/M Version 2.0 or later$:y*###ƒ# yk  0E OF SYSTEM MONITOR EXTRA EQU MSIZE-20 BASE EQU EXTRA*1024 CCP EQU 3400H+BASE ;CONSOLE COMMAND PROCESSOR BDOS EQU 3C06 2% ͋*-"*$$$ SUBq:(=2(N *$*& w*$#"$*&#"&' !"N*M^7 !)6:!)ھ *N*DM͆  +!$I$I$UUU$$A$ / k .Z80 TITLE XEROX CUSTOM BIOS SUBTTL FOR DOUBLE SIDED SINGLE DENSITY CP/M SYSTEMS ; ; -- CUSTOM BIOS FOR CP/M VERSION 2.2 g  җ 4!~=ŐW!xʵ ~#èbx {~#o}où.xsubb!np+q*m2_!pp+q*o  BH+BASE ;OPERATING SYSTEM ENTRY POINT CBIOS EQU 4A00H+BASE ;BASE OF CUSTOM BIOS ; ; EQUATES TO SELECT THE CONDITIONAL ASSEMBLY QID ONLY FOR 8" SOFTWARE ; ; CAUSE INITIALIZATION OF DISK PARAMETERS ; TO MATCH MEDIA TYPE ; NOTE: IT IS ASSUMED THAT PUNIT I JP CONST IVECTR: JP CONIN OVECTR: JP CONOUT JP LSTOUT ;LIST DEVICE VECTOR JP CONOUT ;PUNCH DEVICE VECTOR JP CONIN ;RE 6JP NZ,BOMB LD HL,3480H+BASE LD BC,0803H CALL RDLOOP ;READ EVEN SECTORS ON TRK 0 LD HL,3400H+BASE LD BC,0902H CALL R QH),A ;RESET IOBYTE TO ZEROS ; ; MOVE XEROX ID TO THE SIGN ON MESSAGE ;  LD HL,00F7H ;ADRS OF XEROX 0 ; FOR 5.25 OR 8 INCH DISKS ; THE EQUATES DSKTY5 OR DSKTY8 ARE USED FOR ; CONDITIONAL ASSEMBLY CONTROL ; ONE CONDITIONAL ASS ߁S ; DIFFERENT THAN UNIT ON POWER-UP ; (SEE DEFINITIONS AT END OF LISTING) ; LD C,0 ;DEFAULT DRIVE CALL SELECT CALL H ADER DEVICE VECTOR JP HOME JP SELECT JP SEEK JP SETSEC JP SETPTR JP READ JP WRITE JP CONST ;LIST DEVICE STATUS FDLOOP ;READ ODD SECTORS ON TRK 0 LD C,1 CALL SEEK ;SEEK TO TRACK 1 JP NZ,BOMB LD HL,3C80H+BASE LD BC,0901H CALL R {ID AFTER BOOT  3LD DE,XEROXID ;ADRS OF XEROX ID IN BIOS  LD BC,09D ;NUMBER OF BYTES TO MO EMBLY FLAG SHOULD BE ON ; AND THE OTHER SHOULD BE OFF AT ALL TIMES. ; DSKTY5 EQU 1 ;5.25 INCH DISK TYPE FLAG DSKTY8 EQU 0 ;8 :OME ENDIF JR GOCPM ; IF DSKTY5 ;5.25 INCH DISK WBOOT: LD SP,STACK LD A,(UNIT) ;SAVE LOGGED DRIVE FOR AND 01 }IVECTOR JP TRANS ; ; JUMP VECTORS TO DIRECT PRINTER DRIVERS ;  JP POBUSY ;LIST DEVICE STATUS DLOOP ;READ ODD SECTORS ON TRK 1 LD HL,3D00H+BASE LD BC,0902H CALL RDLOOP ;READ EVEN SECTORS ON TRK 1 LD C,2 CALL SE AsVE IN DECIMAL  LDIR Q;MOVE THEM LD HL,SIGNON CALL PMSG ;PRINT SIGNON MESSAGE ; IF DSKTY8 ;VAL  INCH DISK TYPE FLAG ; ORG CBIOS ; JP BOOT ;STANDARD JUMP TABLE TO BVECTR: JP WBOOT ;THE SUBROUTINES OF CBIOS SVECTR:  ;ONLY DRIVE 0 OR 1 IS VALID LD (WUNIT),A ;LATER USE LD C,0 CALL SELECT ;SELECT UNIT 0 CALL HOME ;SEEK TRACK ZERO y JP POSEND ;LIST DEVICE OUTPUT  JP POINP . ;LIST DEVICE INPUT ; BOOT: XOR A LD (0003EK ;SEEK TRACK #2 JR NZ,BOMB LD HL,4580H+BASE LD BC,0501H CALL RDLOOP ;READ ODD SECTORS ON TRK 2 LD HL,4600H+BASE yA LD HL,MONITR ;JUMP TO MONTR GOES AT 38H LD (39H),HL LD BC,0080H CALL SETPTR ;MAKE DISK BUFFER=0080H ENDIF ;END OFMw  JR C,INPR1  ;REPEAT TILL READY  LD A,(HL) ;GET THE BYTE  OUT (05H),A ON TRK 0 LD C,1 CALL SEEK ;SEEK TO TRACK 1 JP NZ,BOMB LD HL,4080H+BASE LD BC,0A01H CALL RDLOOP ;READ ODD SECTORDLOOP: LD (POINTR),HL ;STORE ADDR. PASSED IN HL LD A,C LD (SECTOR),A ;STORE SECT# PASSED IN C PUSH HL PUSH BC CALL REA!oREAD SIO PORT CH. B  AND 04 ;MASK OUT BITS OF INTEREST  XOR 04 ;TO CHECK PRINT`12 ;MONITOR CONSOLE OUTPUT RTN. ; ; LIST OUTPUT DEVICE DRIVER ; LSTOUT: CALL POINP  ;CHECK IF PRINTER HASu)STATUS ROUTINE ; POINP: IN A,(07) ;READ SIO PORT CH. B  AND 01 ;CHECK FOR RECEIVE 8uY2: CALL POBUSY ;IF SO GET PRINTER READY  JR C,CPBSY2  LD A,03 ;LOAD A 'ETX' D ;READ THE SPECIFIED SECTOR POP BC POP HL JR NZ,BOMB INC H ;BUMP LOAD ADDRESS BY 256 INC C INC C ;BUMP SECTOR#g ER STATUS  SCF ;SET CARRY  RET NZ ;RET WITH PRINTER NOT READY  OR  { DATA  D JR NC,LSTOUT ;REPEAT TILL CLEAR CPBSY: CALL POBUSY ;CHECK IF PRINTER BUSY   JR a XOR 01 ;CHARACTER AVAILABLE  SCF ;SET CARRY  RET NZ ; y CALL POSEND $;AND PRINT IT WAIT: CALL POINP  ;LOOP TILL RECEIVE  JR C,WAIT  ^ BY 2 DJNZ RDLOOP RET ; BOMB: LD HL,DEAD CALL PMSG LOOP: JP LOOP DEAD: DEFB CR,LF DEFM 'cannot boot CP/M $' ; CO k A  ;ELSE RESET CARRY  RET : ;AND RET WITH PRINTER READY ; ; PRINTER OUTPUT RO s C,CPBSY  ;REPEAT TILL READY  LD A,C  ;GET CHAR FROM C   CALL POSEND ;PsRET WITH NO CHARA AVAIL.  IN A,(05) ;ELSE GET CHARACTER  OR A  ;RESET CARRY Vo ;AN 'ACT'  RET I ;THEN RETURN ; ; PRINTER BUSY ROUTINE ; POBUSY: IN A,(07) ;NST: JP MONITR+6 ;MONITOR CONSOLE STATUS RTN. ; CONIN: JP MONITR+9 ;MONITOR CONSOLE INPUT RTN. ; CONOUT: LD A,C JP MONITR+o UTINE ; POSEND: OUT (05),A ;SEND THE BYTE  RET ' ;AND RETURN ; ; PRINTER INPUT qRINT THE CHARACTER  CP 0AH  ;WAS IT A LINE FEED?  RET NZ ;RETURN IF NOT CPBSDu RET d ;AND RETURN ; ; DISK I/O SUBROUTINES FOR CP/M CBIOS ; IF DSKTY5 ;5.25 INCH DISK ; ; SECTOR @0 ;EXTENT MASK CONST. DEFW 242 ;MAX BLOCK# DEFW 63 ;MAX DIRECTORY ENTRY# DEFB 11000000B ;ALLOCATION MASK MSB DEFB 000{/# DEFB 10000000B ;ALLOCATION MASK MSB DEFB 00B ;' 9 ' LSB DEFW 16 ;CHECK SIZE DEFW 3 ;RESERVED TRACKS ƁW CHK1,ALL1 ; SETSEC: LD A,C LD (SECTOR),A ;STORE SECTOR NUMBER PASSED RET ; VIA BC ; TRANS: EX DE,HL ;ADD TRANSLATIOWLOCK MASK CONST. DEFB 1 ;EXTENT MASK CONST. DEFW 245 ;MAX BLOCK# DEFW 127 ;MAX DIRECTORY ENTRY# DEFB 11000000B ;ALLOC.TRANSLATE TABLE FOR STANDARD ; 1 IN 5 INTERLEAVE FACTOR ; SECTAB: DEFB 1,6,11,16 DEFB 3,8,13,18 DEFB 5,10,15,2 DEFB 7,1} 00000B ;' k ' LSB DEFW 16 ;CHECK SIZE DEFW 2 ;RESERVED TRACKS ENDIF ;END OF 8 INCH SECTION ; ; DISK PARAME ENDIF ;END OF 5.25" SECTION IF DSKTY8 ;8 INCH DISK ; ; SECTOR TRANSLATE TABLE FOR STANDARD ; 1 IN 6 INTERLEAVE FACTOR  vN TABLE ADDRESS ADD HL,BC ; PASSED IN DE TO SECTOR# IN BC LD L,(HL) LD H,0 ;LOOKUP PHYSICAL SECTOR NUMBER RET ; AND  q{ATION MASK MSB DEFB 00B ;' R ' LSB DEFW 32 ;CHECK SIZE DEFW 2 ;RESERVED TRACKS ; ; DISK PARAMETER BLOC y2,17,4 DEFB 9,14 ; ; DISK PARAMETER BLOCK FOR DSSD 5.25" MINI FLOPPY ; DPBLK: DEFW 18 ;SECTORS PER TRACK DEFB 3 ;BLOCK gTER HEADERS FOR A 2 DISK SYSTEM ; (DRIVES 3 AND 4 ARE LOGICAL DRIVES) ; DPHTAB: DEFW SECTAB,0000H ;DPH FOR UNIT 0 DEFW 0000 e ; SECTAB: DEFB 1,7,13,19 DEFB 25,5,11,17 DEFB 23,3,9,15 DEFB 21,2,8,14 DEFB 20,26,6,12 DEFB 18,24,4,10 DEFB 16,22 RETURN IT IN HL ; SETPTR: LD (POINTR),BC ;STORE DATA POINTER PASSED RET ; VIA BC ; SELECT: LD HL,0 ;PREP TO CHECK FOR M[K FOR SSSD 8" FLOPPY ; SSDPBLK: DEFW 26 ;SECTORS PER TRACK DEFB 3 ;BLOCK SHIFT CONST. DEFB 7 ;BLOCK MASK CONST. DEFB  SHIFT CONST. DEFB 7 ;BLOCK MASK CONST. DEFB 0 ;EXTENT MASK CONST. DEFW 172 ;MAX BLOCK# DEFW 31 ;MAX DIRECTORY ENTRÝH,0000H DEFW DIRBUF,DPBLK DEFW CHK0,ALL0 DEFW SECTAB,0000H ;DPH FOR UNIT 1 DEFW 0000H,0000H DEFW DIRBUF,DPBLK DEF ; ; DISK PARAMETER BLOCK FOR DSSD 8" FLOPPY ; DPBLK: DEFW 26 ;SECTORS PER TRACK DEFB 4 ;BLOCK SHIFT CONST. DEFB 15 ;BiԁAX UNIT# LD A,C CP 2 ;ALLOWED TO HAVE ONLY 2 DRIVES RET NC ;RETURN WITH HL=0 IF C > 3 LD (UNIT),A ;STORE C AS NEW DRIVׁDED DISK PARAMETERS LD HL,(SELADR) ;POINT TO PREVIOUSLY CALCULATED DPBLK ;ADDRESS FIELD IN A,(1CH) ;REQUEST DISK STATUvs3 ;DPHTAB POP HL ;RESTORE START ADDRESS ENDIF  RET . ;DO NOT ACTUALLY SELECT THE DRIVE SELEX: PU5BN HOME DRIVE JR Z,SELEX1 CALL HOME+3 SELEX1: LD A,(UNIT) ;LOAD DRIVE JUST SELECTED  LD (PUNIT),A ;Uy7RIVE CALL MONITR+27 ;CALL SELECT ROUTINE IN MONITOR  JR Z,SELEX4   CALL REPORT ;CALL E}E UNIT# LD L,A d ; ADD HL,HL ADD HL,HL ADD HL,HL ADD HL,HL ;MULTIPLY UNIT# BY 16 LD DE,DPHTAB ADD HL,DES AND 20H ;ISOLATE MEDIA TYPE JR Z,DOUBLE ;NO MORE SET UP TO DO LD DE,SSDPBLK ;ELSE POINT TO SINGLE SIDED DISK PARAMETERSwSH BC .;SAVE REGISTERS VALUES PUSH HL LD A,(UNIT)   *LD C,A ;LOAD C WITH DISK DRIVE NUMBE wSTORE IT AS A PREVIOUS DRIVE  POP HL  POP BC 2;RESTORE REGISTERS RET ;EXIT IF SELECTED SUCCE {RROR ROUTINE  JR NZ,SELEX3  LD A,(UNIT) ;SAVE AS NEXT DRIVE  LD C,A  ;ADD START ADDRESS OF DHP BLOCK IF DSKTY8 PUSH HL ;SAVE START ADDRESS LD DE,10 ;OFFSET TO DISK PARAMETER BLOCK ADDRESS ܁ DOUBLE: LD (HL),E ;STORE ADDRESS OF APPROPRIATE INC HL ;PARAMETER BLOCK INTO LD (HL),D ;DISK PARAMETER TABLE ENDIF  y8R LD A,(PUNIT) ;LOAD PREVIOUSLY SELECTED DRIVE  CP C ) ;COMPARE WITH CURRENTLY SELECTED DRIVE ÁSSFULY SELEX3: XOR A LD (UNIT),A JP 0H ;DISABLE FURTHER BIOS CALLS BY ; HOME: CALL SELEX ;FIND z}' ;LOAD DRIVE TO BE SELECTED IN C  JR SELEX2 9; SELEX4: IF DSKTY8 LD DE,DPBLK ;POINT TO DOUBLE SI4 ADD HL,DE ;ADDRESS OF THIS FIELD LD (SELADR),HL ;SAVE ADDRESS OF DISSK PARAMETER ;BLOCK FIELD IN SELECTED UNIT'S `LD A,(UNIT) ;COMPARE REQUESTED UNIT LD C,A LD A,(PUNIT) ;WITH CURRENTLY SELECTED UNIT XOR C AND 02 ;IF NOT THE SAME THEw JR Z,SELEX1 1;DO NOT SELECT IF SAME DRIVE SELEX2: LD B,0 # ;LOAD B WITH SEEK SPEED FOR THIS DOUT IF DRIVE IS SELECTED CALL MONITR+30 ;CALL HOME ROUTINE IN MONITOR RET Z ;RETURN IF ALL WENT WELL CALL REPORT JR Z,HeRIVE IS SELECTED LD HL,(POINTR) LD A,(SECTOR) LD C,A CALL MONITR+39 ;CALL WRITE ROUTINE IN MONITOR RET Z ;RETURN IF N40 ; ENDIF ; LD C,A ;NEW TRACK# IN C REG. LD A,(UNIT) ;SELECT SECOND SIDE OR 02 ;REPLACE 0 BY 2 AND 1 BY 3 JR SEEDISK ERROR TO CONSOLE JR Z,WRITE ;RE-TRY WRITE IF INDICATED RET ;ELSE RETURN PERMANENT ERROR ; ; ON ENTRY (A) = 1771 IENT ERROR UNLESS LD A,(OTRACK) ; RE-TRY REQUEST IS INDICATED LD C,A JR SEEK ; READ: CALL SELEX ;FIND OUT IF DRIVE IS ؁OME ;RE-TRY HOME IF ERROR INDICATED RET ; SEEK: LD A,C ;GET TRACK # IN REGISTER C LD (OTRACK),A ;SAVE TRACK IF DSKTY8O ERRORS LD E,A ;SAVE 1771 I/O STATUS FLAG RLA RLA ;CRY CONTAINS WRITE PROTECT STATUS JR NC,WRIT1 ;CONTINUE IF NOT K2 ; SEEK1: LD A,(UNIT) ;SELECT SIDE-1 OF EITHER DRIVE AND 01 ; SEEK2: LD (UNIT),A ;STORE NEW DRIVE CALL SELEX ;GO AND  /O STATUS FLAG ; REPORT: PUSH AF ;SAVE 1771 I/O STATUS LD HL,DSKMSG CALL PMSG ;PRINT 'disk ' POP AF ;RETRIEVE SAVED S SELECTED LD HL,(POINTR) LD A,(SECTOR) LD C,A CALL MONITR+36 ;CALL READ ROUTINE IN MONITOR RET Z ;RETURN IF NO ERRORS  E ;FOR SA850 CP 77 ;CHECK FOR SECOND SIDE ENDIF IF DSKTY5 ;FOR SA450 CP 40 ;CHECK FOR SECOND SIDE ENDIF JR  :WRITE PROTECTED LD HL,DSKMSG CALL PMSG ;PRINT 'disk' LD HL,WRTERR CALL PMSG ;PRINT 'write protected' CALL REP3 ;WAI SELECT DRIVE LD A,C ;GET TRACK # FROM C LD (TRACK),A CALL MONITR+33 ;CALL SEEK ROUTINE IN MONITOR LD A,(OTRACK) ; LD TATUS RLA ;TEST FIRST FOR DRIVE-NOT-READY ERROR JR C,REP2 ;JUMP IF THAT IS THE PROBLEM LD HL,ERRMSG ;OTHER TYPE OF ERR% CALL REPORT ;REPORT DISK ERROR TO CONSOLE JR Z,READ ;RE-TRY READ IF INDICATED RET ; WRITE: CALL SELEX ;FIND OUT IF DC,SEEK1 ;SELECT SIDE-1 IF DSKTY8 ;ADJUST TRACK# FOR SECOND SIDE SUB 77 ; ENDIF IF DSKTY5 ;ADJUST FOR SA450 SUB UT FOR CONSOLE INPUT JR Z,WRITE ;RETRY IF INDICATED RET WRIT1: LD A,E ;RETRIEVE SAVED 1771 STATUS CALL REPORT ;REPORT C,A ;RESTORE TRACK# RET Z ;EXIT IF NO ERRORS INDICATED CALL REPORT ;REPORT SEEK ERROR TO CONSOLE RET NZ ;RETURN PERMAN{OR SO --- CALL PMSG ;PRINT 'error ' JR REP3 ;GET CONSOLE INPUT REP1: LD A,1 ;SET UP A NZERO CONDITION FOR RETURN OR -OR BDOS FILE HANDLER ; DIRBUF: DEFS 128 ;SCRATCH DIRECTORY BUFFER ; IF DSKTY8 ALL0: DEFS 32 ;UNIT 0 ALLOCATION BUFFER C ; PMSG: LD A,(HL) ;HL POINTS TO ASCII STRING CP '$' INC HL RET Z LD C,A ;PRINT CHARACTER IF NOT DOLLAR SIGN CALL K: DEFW 26 ;SECTORS PER TRACK DEFB 4 ;BLOCK SHIFT CONST. DEFB 15 ;BLOCK MASK CONST. DEFB 1 ;EXTENT MASK CONST. DEFW b CRLF: DEFB CR,LF DEFB '$' ; UNIT: DEFS 1 PUNIT: DEFB 2 ;DEFAULT TO BACK OF UNIT 0 WUNIT: DEFB 0 ;DEFAULT TO UNIT 0 OTA ;RETURN PERM ERROR INDICATION IN A RET ; REP2: LD HL,RDYMSG CALL PMSG ;PRINT DISK-NOT-READY MESSAGE REP3: CALL IVECTRʁHK0: DEFS 32 ;UNIT 0 CHECK VECTOR ALL1: DEFS 32 ;UNIT 1 ALLOCATION VECTOR CHK1: DEFS 32 ;UNIT 1 CHECK VECTOR ENDIF ; IOVECTR JR PMSG ; LF EQU 0AH ;LINE FEED CR EQU 0DH ;CARRIAGE RETURN ; DSKMSG: DEFB CR,LF DEFM 'disk $' ERRMSG: DE (INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE) JRACK: DEFS 1 TRACK: DEFS 1 SECTOR: DEFS 1 IF DSKTY8 SELADR: DEFS 2 ;ADDRESS OF DISK PARAMETER BLOCK FIELD ;IN CURRENT k ;AND WAIT FOR CONSOLE INPUT CP 'C'-64 JR Z,REP1 XOR A ;RETURN A=0 IF SOMETHING OTHER THAN RET ;CONTROL-C WAS TYPE F DSKTY5 ALL0: DEFS 32 ;UNIT 0 ALLOCATION BUFFER CHK0: DEFS 16 ;UNIT 0 CHECK VECTOR ALL1: DEFS 32 ;UNIT 1 ALLOCATION VECTO 6FM 'error $' RDYMSG: DEFM 'drive not ready -$' WRTERR: DEFM 'write protected$' SIGNON: DEFB CR,LF DEFM 'COPYRIGHT (C) 1981(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)LY SELECTED DPHTAB SEGMENT ENDIF POINTR: DEFS 1 DEFS 32 STACK: DEFS 1 ;LOCAL STACK FOR WARM BOOT ; ; DISK I/O BUFFERS F8D AT THE CONSOLE ; ; CHARACTER STRING OUTPUT ROUTINE. PRINTS ASCII DATA ; POINTED TO BY HL UNTIL A DOLLAR SIGN IS ENCOUNTERED=6R CHK1: DEFS 16 ;UNIT 1 CHECK VECTOR ENDIF END %.0, XEROX CORPORATION' DEFB CR,LF DEFB CR,LF  >DEFM 'CP/M REG. TM 2.2 SY 3.00 2-294 ' XEROXID: DEFM '  'ށ COPYRIGHT (C) 1979, DIGITAL RESEARCH, PIP VERS 1.5$$$ SUB =.:,<> _[]INPIRDPTRUR1UR2RDROUTLPTUL1PRNLSTPTPUP1UP2PU؁ ::,: HHҰͯ : 2ó:E:1:2v!q!*8!*6: >ԁ$DESTINATION IS R/O, DELETE (Y/N)?$**NOT DELETED**$$$$$$$NOT FOUND$COPYING -$REQUIRES CP/M 2.0 OR NEWER FOR OPERATION.$UNRECOGNI !kp+q*j> >ڪ Þ !qp+q/ *pDM9: :M2r:N!r !:r *r& N!r4 !6::$: $͈Ͳ!N6' :!Cwͯ !6:^͢c!6{:/>!/H{ͯ :<2NTTYCRTUC1CONNULEOFDISK READ ERROR$DISK WRITE ERROR$VERIFY ERROR$NOT A CHARACTER SINK$READER STOPPING $NOT A CHARACTER SOURCE$ͦ>ͦ!q:_  !p+q.*   !q*&!p+q*2^ZED DESTINATION$CANNOT WRITE$INVALID PIP FORMAT$CANNOT READ$INVALID SEPARATOR$1 :2L> ̈́M9  y͔: :ͳ.!ws+p+q+p+q:w=2wN *s*u w*s#"s*u#"u' !"*M^7 !x6:!xھ **DM͆  Š ::=HҮͯ !6:Ҿ:2 !6::/H͈;!6:> !/> ABORTED$BAD PARAMETER$INVALID USER NUMBER$RECORD TOO LONG$INVALID DIGIT$END OF FILE, CTL-Z?$CHECKSUM ERROR$CORRECT ERROR, TYPE R !p+q*2!p+q*22!p+q*!p+q*!p+q*!p+q*2!p+q* 221@:2!o6+6+6!6#6!6#6:G*o .!N6:^*M^!K6!6!6+6' :$&2yʭ :yʗ ͯ *"*6:2x÷ *"!x4d !"/ !j}=2| !"*KM^'_ !z6:|!z1 *gHHͯ :^!w:<2:0}:@E}:!S!W6: z!]6:cm!c6:_z!_6lETURN OR CTL-Z$INVALID FORMAT$HEX$$$$NO DIRECTORY SPACE$NO FILE$COM$START NOT FOUND$QUIT NOT FOUND$CANNOT CLOSE DESTINATION FILED!p+q* !q*& *M *M !p+q*!!p+q*"!p+q*$!6 ::=2K  :ʤ\:ҷ\x'Ͳ:!\͢  :͈'! M "}*}DM͆ ' ͯ *"!z4 :e !"͆ !z6:|!z '? 2*H#"H!{6:{ր!Ң *{&!6*ME:2::Ҳ:<22ý: 2:} >ͯ :i:2:d*M:[ T :2!q: " *M n :c4 *M n :2!c:Q !c:2: !:cw>!n !5 Y : { !6!qρڕ*&P 6!4z!6!6#6#6!6*M8:ھ:*͇g2ê::¿::,͡A<2O>x/H:_2:!q:A/>Z!/H8: 2::=O>m:W!Q} Hmd>9>!6:2*M!E :{4 2!{4m *":ڹ ͯ !z4I '2!"!q: !4>!S :S! :2*MЁ*M:>!(:=2%> >>!F!5+N! ~2!4<2T>>!b}*bMͭz:b2!b6:<2é>!:!lwҙ  â :0O !q:O| :O| !6:]2l:o'2o:n'2n:m'2m*mMͣ *nMͣ *oMͣ :] @*M8):[ͱ!N5!6ñ:5!6#6>!ڰ!6:<2O>/:!O!T *M͡H~K:  ^#V͎ڗO **~2*#"m2m͖ 2m!6m!6m!6 m2m :! ^#V͎ * :w*#" = = = = = ͯ  *M !6q  !6q  !6q  *& ! Ɂ`ҥ*`MͭҞ!`6!6> :é:(!q:!wO! ~2*& :w>!:!4!6>:N<2N! ́:   *}2D" * * *&"!q:UY: Y:ҩ: ʩ:_2ʘ:€!6<|¡!6[–ͱ!N5:2:2!4=:[¼ͱ4:!6:.2O8: :* ͇gcͯ m!62m!62m!62m!62m'2:2:TҒ:26à  !6 à  !60à  *& !6  !6  !6  *& . 1 4 7 : = F P [ f q  > *N& N2 !p+q!6!6+6 !6: S: M!6g8:N2M*M8p!6!6!6>!:<2!ژ!6 >!]Ҥ; !6:Q::H: !6*M : !6!q:a/>z!:[ ͱ!N5!6:%:<2*6 * 6å!q!6> !d*&I :]>!4A>:<2O* :w:?†k !36'n::0:f9OY#9.3'ͳ.:020' 'ͳ'7 6'r+s+p+q*~$7*>*>H&>*#"*#"> 2:R͎:!6!6=2:ʙ!6:“H7 *M^͆ \͔!":͎H*#"ͧÝ/ :>͛9ͯ .*#":_!:=O!L NE!4 E E:/.*&L 6$L9k9.Xͯ *KM^020!6!q!6?!:ҠgÐ!q*&*~!6:22: :]Hں:A2O>: 2ͯ !j>A+!s!"@͓1!"<**"͓n "Dn"":!Q2҂~9Ž>!6-e!6ͻ2=2ʺ-é:>>"ͻ2:!!5ͻ2ͬ!\ "' !'6!36' :1/!aE*#">z?C9IͲÁ.!6> !ڇ*&' ~2 ʀ: y.*M s :020:121'ͳ':²ͯ !G6!"!"7 *M^n/ :a/:H!6:ͯ !&6 ÷:S:QHI:N<22: H@"2Í202O> c!6Í202O> ڍ*&O* 5:X!Wғä:ڤ*MEÓ:ұ@@:O2Mc;!6#6>!)*&P ~"::H:H N-:>>!p+q:,!6*DM9:<!6:z 2W!6D*&L :w:<2Ov*:>=!4Q>!қ:=2á:2:Ҭ\>!ҿ:=2K:2K!:!:K\: \!p+q͈*p2*">!b!ͯ >!`0ͯ !q:E:24J!46*}a!44EJ *KM^'́:‚4& !sc*&P :w:·>!ұͯ :22:_!6=!6>'!E!4!p+q*0 !G:H:H"!6!4:_jYO jM*"S*" 3@bl*M1͓!""k20O> ڒ:0:AO>Ҥ::A }}Hͬ!wͻO`idͻV[2O>2:!X!6:!_DM!  ::=H-\:N2O_og_{ozg^#V))) _{ozg^#V) d^#V|g}o n_{o\ͫ{!\i)!QiI Aڷ4ÜA2Az^!wnI )^2x͵! n!iI )A4A2G og2;2;2;2:2:2:9";*<͂ ]1L ?O2;=yf ^ ^ ͙ y2;ʭx:;­̶í:;@>COPYRIGHT (C) 1978, DIGITAL RESEARCH Portions (C) 1982, NLSo&)))))))a{__> W> W^~W#nO*092zgO{ozgi`N#Fogo&og H ©=¨'JAz!iI )^!x6͵! n>z^!iKAYPRO SYSGEN VER 2.2SOURCE DRIVE NAME (OR RETURN TO SKIP)SOURCE ONOG:;?5 ,©:;ʩ2;>? :;O:;f xG:;O&_y{* ;YG&!!_~x  s#r2;* ;##$::/%:;/%*; H2; 5 "H%'%G( ( *u:++h% ( o%[% [%5 ,ʅ%;ʅ% X***!*$*'! "y2s2t>(2u>2s>2t>2u:sO̓:tO<2t͋*y"y͓2 -wp ::=H-\:N2O_og_{ozg^#V))) _{ozg^#V) d^#V|g}o n_{o ԁ , THEN TYPE RETURNDESTINATION DRIVE NAME (OR RETURN TO REBOOT)DESTINATION ON , THEN TYPE RETURNPERMANENT ERROR, TYPE RETUR ā ͶůG|2;͙ y2;: '#:;O ? 2;:;G2;*u:+N{*;2;z̶̶V|=VyWx=zʐ zʐ &ʐ Xʅ% "u:%y%" G( ( ç%)( ȸŸ%" ʾ% ,5%)5%O:;i)y,5%x "%'ĒO( G"́{:{!nI )^6<2{:x/ͣ2͛!u51!;n:] ʜ\ͰGG&";z¬  !";";y2;  2;     !:;*;!9!o>g~#fo:;O &x)%? " %&x) ,%x)y? %b&%:=W&z*;#";::Ī@&*;:;G]$%:::*;U<2*;%͋k+#^#VHk+*; H *;{Hl*u:!"c:"e:!=-w!<>8:b:8!b:44!2-w!=<>8,*:|,́, (z( '#*u:z̒}O|G:*; T OĒ7 #~@w ~Īwy,'(J;O`(;; *u:+~# }(}(g(g(#^-"{<%͍8w-~<=ʻ-:<<2<:<:<=2<<#~§-:<§-:<§-7"{<:}<=2}< &.*u:~ . .T &."u&)pJ* /’T B*/’? #~ª~$w$+" ;>2;!";Y$>2;:;üT u* ̈́*#~d{*~w,S*͒o*wͪy,u&:":=&G2"::#:=ž&2#::#:<2W:&2$:? ͘:$:Ę:":̘!#:&=? 4=2W:<2$:? 5&:":_2>W!%:7~&$:&w!":4݁:7=<2;ā2;,!,-!,-*:|N,>,H:7=<>,NǴ:7=<2;ā2;!,-,\,"H*;|t,d,Hͮ:"u: (’( '’O[(5 ( )Ē? >2^:? 2^:? 2\:? >2\:? >2]:? 2]:? >2]:? (>(:=/o::? }2=2Y:? >2: :.>&2<Ç.&.:<.>&y72<*<~T.;I.O+I. 9.x+~I.+.:<*<~ʅ.;z.O+z. l.x+~z n*~8~w#w#w#w"r:Ϳ*:*;2`:Ux¤x 2_:*r:"n: x:;"r:~w|2`:Ϳ*x¤*r:̈́*#~ª~@ w#s#r#* ;s#r :W:i2W:!#:'4:":=2X:o'z&o'z/&&::? =&::? &7:W:v'T # ^'i' i'&?&:W:b&! "u: =ʋ,>H;H{HNo Fatal error(s) Warning(s):;GHk+-!,-,REPT/IRP/IRPC/MACROUnterminated -!&-->  A? 2:? >2!:b&2!:z’:*; {=ʒҒ<2 :gkb&z’::{X) ܒ:*; X){2a:4T ’:;u)>!;w::"n:ʁ.^.<*u:T &..G~# ʥ. ­..Ù.x.G .& .5 "u: . .5 ...Ͱ ´..Ͱ ... ;//H:}<,:":,!:4~=«+!;~4+!J;~4+!X=#;~# V+ V+V+ V+ :+!;p"n:H$!K"< ڒ+"n:~w#~@´,~Ё&7'v'"u:xi'd'7'v'~,'#"u:''"u:yd'd'# º'i'Ͷv' <Ē" ' " &' '*u:+#~>(T]߁> :7=<> NG> NG!,w:7=;!;G~ªw#!8. 7 /88 / /+8"<7 7> y77: NG> NG:*; ? ʒ2ʐ3$3" <2< 3 ʆ3:€3ʐ3À3À3i/+<=ʌ/+Ä/~>.!1!1?*0%0,0 0 ##^#V6#"y<~(wG-"<Ͳ/ ,5w+2<2< Q1T :T ͑-1w:y7 1ɯy77!*<*w#w6c7s#rh7"<*<6s#r{_*<{  w+C3:<36+w-xĒ"<&i"<3å1>21*<>2<91͑-3 .;.'3"3͇.3G- .33"< 0;0!( 1w+ /"00b&:*; 0: :w0W0PX D0|B0>:ï0)0͛0>)d00͛0=`00D͇0E͇0  :<<2<;2<"<͂ V4:0ï0x͐0x0:ڛ0 ¯00O:گ0>0ͯ0y*0w+"05 *00Ow+ 0 10w+ 0/0w+00000{;6,5x 5 5##^#V74646466+ &66+w-7*&!ɷG-"<Ͳ/O:*; 2*<-y6+,Cq#p*<{8*<"<~{_6{_{78̟7*<*{<:}eH!;5ž9:;w!b:4:a:ĩ9*n:~@w> H>*>M>C>UHÃ9*n:#{G#^#V#^#V" ;""n:#~ H>IH!*;"(;k*(;6!*;@@3@2 =:FX“F>2=:FZŸF2 =:FP7: =<2 =:F7G[F0FAF:FðFO!~6GF#~ FFBx+#F~F2=G2eW?Command error?File not found?Can't enter file~NG#OC!CiC!-CiC!=COCCCOMSCNԁ3E:=8H>=I*===ͮH==/H|}ʹHƀ)`i I> H> H> H: =3E:7=|I#">>2GͅG͛G*=##: =2=G= ~5E5Ew# +E #+E w#>E:=!=~ bEw#XEͭF:7>ˆExdE7GOx=y©E@=:=G{G>*NG B> NG:B!B"Co>g6 #> w~# 7G 7G uG#"C_*C+~ #F#"C+~7ȷ> NG:{tuC"=uCʿC:CG:CO*.µC# §CÿC µCÞC2uC*+++"=*=:=2=*=F:B C2=2 =2=2=2=2=2= w>!7=>J = I!=>!= I:=3E:=MG*=|=2I#"==w:X=<`GI*@|̅I#"@@ [A@2=ԭFx ږE =E7GÝETE7GT77GY7ÈELE7GS77GT7>ÈER77GD7R7>ÈE> F6 #= @ ց> NG>!">!7=: =îG=!"=!=:=G~GH2=!=;E> 2=2=2=y,2=TD:=2=dE=:=aD=GE=:=2 = 2 =~D:=@2=!sG@>X==ʮI!=ŠI!>êI_!= I I H~II7ȷEy.2=̭F=xF(F7GFy/y7GLAF2 =7GO)FNLF2=:FOWF2=:FRbF2=:FCpF2=2 =:FM{F2=:FI†F%PG w# HwX=8H@: =3E:7=<8HH> H> H>H*>>7=ͮH>7=/H:=7=;Ey=7dE 7GE=D 7!X=;E:=!=E!7=:=D@==> =DE: =D: =D: =2 = _3,!!JOC@@J> NG!'JOC{GDISK FULL*u e >=¿G7:9($7?>2f>>= !vvv@ VERIFYING DISK $ INITIALIZING DISK $ FLAWED SECTORS $ INSERT DISK AND TOUCH ANY KEY TO CONTINUE $ ARE YOU INITIALIZING SIZ: :626O"Z:626| *͒   }"::G%n x+!9F(.7(0!-J:>J@PKw#2=.K!KwTvv vvvv!v'v-v3v981vCvIvOvUv[vavgvmG _@ NGLE SIDED DISK(S) (Y/N)? $IZING DISK $ FLAWED SECTORS $ INSERT DISK AND TOUCH ANY KEY TO CONTINUE $ ARE YOU INITIALIZING SI (*#" x  8 |’{0_!6N( @(  ::6( ( > ͻ27::G> #J2=.K!KK6 #K:=.+Kw#+KpQJ-JPK2MJ2NJ:NJ={KQJ-JڐK!QJ"OJ>2NJ*O s FLOPPY DISK INITIALIZATION UTILITY VER 3.00 TO EXIT TOUCH CTRL-C $ ENTER DISK DRIVE TO BE INITIALIZED (A OR B) i1Z>2[*>28M "(!s"i!v"k!{"m!"o!"qx29y2:   [:\ :]˯Y >2 L;,!Ù!;qz8O! !;,z;qyO! ͣͣW_͕qyO! ͣ͒qy[ͻ!6N:7&!74>+{*mw>*ow*iV:9G*kV*o~2!͢QG}DrYQ|͏}͏#> ex͏#r* _> e> e. */1g ˯Y >2w.&  &P :w(<", z2.C*  @@Ç|}Ɛ'@'1Gx_> zO2:,2yO5>O2:,O5@(  l:,O52x ҉0Ë7e}} :³ʳ7_<2!~ɯ2|\\FILE DUMP VERSION 1.4$ NO INPUT FI ȁ!"$"&"x"(@ *$ *& *( w  (2/2  COPY 1HEX 1 @ >O2:yO*$[ "$>O2:yOL*&[""&:yO :y<2y!- !" !h* [&"&!hhK* #  :x<2x BLE PRESENT ON DISK$!Y , <    *$A!6 # T!w $r# *`: 0 ING DISK ... PLEASE WAIT $ COPY COMPLETE $PERMANENT DESTINATION DISK ERROR EXIT $ DISK COPY UTILITY VER 3.00 IS SOURCE DI@@ׁ*(#"(MD;!" !h"D 58>(* #" *D"D :. !""!h"D 58A(*"#""*D"D :*A*! ~ ʰxkb))))_y‘BK{ͅ*!66!"80*{#z+++ #&SK SINGLE SIDED (Y/N)? $ INSERT SOURCE DISK IN DRIVE A INSERT DESTINATION DISK IN DRIVE B TOUCH RETURN WHEN READY$ TOUCHBand Too Long$Parameter Error$Invalid Control Character$Directory Full$Cannot Close, Read/Only?$!9"!͇͊!p+q*@hʉSͧ!v6!"v!|6:|Ҁ!x6 2}:} Hk:} h:}$6 2}$*}M3:}02}O> ͧ3!z@3 RETURN TO CONTINUE OR SPACE TO EXIT $ $ DESTINATION DISK IS WRITE PROTECTED $ SOURCE DISK ERRORS $ DESTINATION DISK ERRORS ˁ ͊!p+q*͍2!p+q*͍2!p+q*͊!p+q*͍!p+q*͍!p+q*͍2!s+p+q+p+q:@ 6ͭ:}"!}5́ͭ́3*yM"h:}^a a2}O>Vͧ^:}>*z& ~ !z4í!{q*v#"v͙dͧ*vv :{w:x<2xO>}|ͧw copyright(c) 1977, digital research $Error On Line $SUBNo 'SUB' File Present$Disk Write Error$Command Buffer Overflow$Comm@* ͡. ;ͣW!E# ¡ # ¬# ·@ʴʥzʖ=ʐ=|zJz?4)z z/ͧ!t6>!t%\= >!t6:t<2t=O! ~2u b:<2O>9b!60+~9b!60+4:uat:u_2u:uM@0-!6]:ͧz2~e:~2O! 6*~& 6$>!~_z*~& w!~5Bx:yͧ*v+"vxʼҼʹ‘ʹ" _2:n2-!~w:@ ~w:2 2*|@ہͿͲ"\"`"Z"^*8*@"8"*@*B͌BK*@*B͂"2,G<2-ëz6#z:-OͿ#*+"">"F"<"Dgo""222222!%"@"8"B":""!"\"Z"`"^2-2 !"X?No Start Address?LoawA v ~_{ozg 001 $$$$ SUBKyȷ͜~@!"F *|*~ ::VA G@x CA G Link-80 3.4 01-Dec-80 Copyrig@ wͻ UͲh!ͻy͑yBK͂O! s#r!Z s#r!^ s#r ԛچ! zding Error?Nothing Loaded?Out of memory!|ó!ÿ!ÿ!ͪ2*!h~4!^ͪ>2+22iڼ ʡ,ʡ/¼ʹ 0 Cht 1979,80 (C) Microsoft ?Command Error~*#ê~# ʴ ʴ`{ +!~G#~ x+#~:+  @#^ s#r! ڛs#rҮͻy͑!Z ~#fo!8õͻѵ!@͵Ͳͻ}_|W>2,*Z*\$C>2ʹhMG@RSUXYES Ϳ Â!O^2H)2G:2ʹ:>`ʼ6d>** > *:!o>g6 7ff ¼ʹ S:+S#ʹP¼22!  wʹ:¼6GO:-@ ~ *8*D:- **8*DW{_*8#"B":":GʹO0q Rq)))pfp)o>g>y +%Overlayi L~++GOŸږ H+ڴ « – yڵ >t t *> 7~ ~~ <</_*F |}!6S `xecution]:ʶ:ʓ*>*F ʓ~`~x@w+++?>GO4 ~+D>Z6 #=S*>!3  2@ *>~O_ U2"b"d2"f<20:-*8*B*:*D*Ҿ ò .ò ! ~#foBK#:0= :f*8|  }# C?Start symbol - - undefined ~## n REL7*}2:`X i  :- dz  @ d`  ng areaDataProgram͡d!wͪ! ~#foͪ!ͪåͲ   }<=ě yy7 ?#6Y#6M͔>*>*F ` ~O~@M +^+Vl > Ͱ +~Ͱ 3 > Ͱ =L ͈ >~T <</O  Ĉ z!r |q }͂ ͂ ԁ+++y++:d:2@ *>[*͒ (! >G~#͜~@+^+V*D % s#r͒ (*< dp#:g*:| %}#͌:/=Z:,ZOw+p+q+p+q#͠B ++s:7>€ʹ[?@  *> ʜ >w Ì f :ʯ t ! ͪ*Xw ! ê Undefined Global(s) Bytes Free 2 f r ~O~>- >  > yM7,Ͳ# !ͻ> _!>?*~#*!SE!Yó Not Found> *> *>26e G ð > Ͱ > ð :ʷ )0*) ¦ 0*£ |ͼ } *0:d! ~#foͪ(Ͳ͒ (͒ (><* j*D 0 2/g:/% x/Gy/O~w#~w :-K  K |t >]*d: Y>2*"io&'͚ 2x ڎ ʡʹÕ> ڲ6 #=x2y.xʹ!~ 6R#6E#6Lyʹ[0  /*+^+V+~* /*(~ , ! ͪ/ ͒ ~K (+^+V><*w >>*(:?2d>w :ȯ2d ڽ w c<;>2:6_<26!e~eª! w#! wͿ |!jʿ !ͪd*DMÂ![Begin e ԁw >>*dRQUEST  *>:.k *F k ~_~@` +++~#` *FBK͕"F& +++& 2,2.21:-go" a͚ d͚  ͚ >0Gô /}o|gҜ x0´ ´  > x*$MEMRY*!w# ͜ ~@ +^+V"! ͪ2! ó!!SA :[ ] @ \ ^ _ O͔:,`:02/͠BK|ʮ ~_q#VpOî :/=q͠>@w+r!!"2}2g<20î :ð*>*F|G}~OA++++~ y/O áOx_!i:-*8*@ *\"Z*\e*8͏*B*:BK*B"B Ԃw":"8""`"^ u*\*B!܁@ DM>>>>Ҝ<2=O!Bڬ!6 ^#Vڸyy? ?y!8!@ s#r^#V!"͐6+wxG ɯ2/* 78͋Qz͋z!wg4#6 _y w#k!!+s+@:02/͠r+sî >͜ڲ/o/g î ~@w:2+++~ 2q+p:O!͵>2/͠}|! s#rͻ! ͆Ow#2.+w+w+w+ 2w+w+"F7"CC":,2,*8*BDM*2 "2* "*:BK"!}*: қ!*:͌*@*8BK*\*Z*B*@͂*\"Z*B*:BK*B*@"Bw"8":"X ~w#~wPY͔>BK͜! Xڰʰv!Vp#*@!HN#F#~#fo!P^#V  !D~#fo !V{_{_~!B^q#Vp!! †"O<2/ X P̼ʩҩO! N#F 2:,2ɮ ,#e"kqrE22:,H"d*! yԑî !0ͪ>/*dî ~W+++~*+&%2nd COMMON Larger /*"b |2f*8 ԏHî > ͜~@wî 7:,>ʔ! Bw":"\"`*<"4͟"*D|©}~_!:^#V*4"D"gq#pg^q#Vp{g#~@+^+V! ]~@8:,~@w+~_q+S:/=*>Cw+p+q+r+sî !Iͪdî %Mult. Def. Global ~@*+"PY͔>BKů͜~+ڞ!N:~s#_~rW}ʬ:1ʪ# Ԃw{_!V6)`i{&!V# *N*>"F*H*@"!>2g*: Ԍî *>͜ڪ+^+V"î ͔:/=U<20=® :,ʮ * î PY7*\}"\!*"*B!Ձ:0=ʉ>G:/=ʓ>@wBw+r+s+r+sî *#"!~#4"l"E8*X "X!8y-!@ ^#V < F#fhG!8^#V ^#VVy!8 " ܜ r! ܜy«:-ʯ*ڹOͲ y*!\͵ !9;;;;;;  " <2͠:/?O$:,Ͳ  !ͻ>,**&M^#Vͪyà!F#~#*f>(*̀>)*"3w+COMHEXe  < 26:-*\*Z !~ ~ : :- *"4z2!"Á^#V^#V™!H s#r Gyx|!Ps#r#²x|W}_x21*D ͉21yoxg*2"z!"7$$! [ [FzU7*8"*:"*@*!"M7:/Ò Start = External Public = %" "@"Z yO:- `!r *|Q Q Ͳ Q >Ͱ *}Ͱ |Ͱ ͆ ͚ :-r yOr ͆ ͚ :6  " :ʗͲ y…*Z*\ a*@lͻ ͻ * lyºͻ* lð *" "2*"*PY ":0:=0*2!"2*2*B 00c*{OzG*@*ZDM7xw# " KP*"!ew*8BK*w*B*O*8*Bw"8*B*BK*Bw*"e" @"< ͲسȯͰ z ͻz~#Ͱ ä !e:6_w{< 26  ! ó?Can't save object fileͲ"[ !9!3!?ͪͪ!Gͪ2+ʹYPbelowaboveOrigin loader memory, move anyway(Y or N)?Ͳ "w +xʹ~+ Èxw+ Õ:/7=Oʿ:,7Ͳ?Intersecting ͿOͲ*8"wmPY*8"8*B"B*B*>BK*B*8w"8*\*Z"\"Z*"B*"@ !~R#~E#~L:ʁ"@##K{ͻ}O|G{Oz'!>*!y1!O>:Ͱ yq l Yq ~#q L!q ͈ !>:Ͱ Gq *l >q q ͈ >#@#"8:*#2+#*r#s+:*#R#*͋#"82*#2+#!% p# 9#!N#%~# G#î r#s$${n#{ƀ_n#zʇ#Ͱ$#@#n!+###2%w# %4#s !"͇"!"͇"!"͇"!""͇"##›!##͇"##¨!#͇"!c"͇"!n"͇"*@"r"*8"p"*Z"t"*B"x"*:"v"*\"z""m"#@#n#͌$$$!%͝$!%V#^###!##͝$ì#z#!%͝$#͌$z{7%z w##0:ww# cDxCOPYRIGHT (C) 1978, DIGITAL RESEARCH  o&)))))))a{# b V  ## >sb|""?"0"?"U"e"?"U"e"?"U"e"!p" N#F#^#V#~#fo|} +x~+ Z"xw# e"x# @# N:%!$$#+#!$ê?Segment , file not foundcan't create fileread errorDisk is full$!)$ó$!8$ó$͌$!J$ó#__> ̓> ̓͊~̓#ÚO****!*$*'! ">2!4:(wNͯ>2#@#nw# |"~#fo"q#p:+#*D ~""g#:2*#*"82f6+:*#wî gz#2*# #:+##*#@#$͌$!U$ó%%%t$%€$%%ͦ͊!Q͕SYSGEN VER $ @$ +.$W}_*"}o|g":ʑ*C6$@$@$^2.0SOURCE DRIVE NAME (OR RETURN TO SKIP)SOURCE ON , THEN TYPE RETURNDESTINATION DRIVE NAME (OR RETURN TO REBOOT)DESTINATION$@$×* " x20 º*   DM":0 Ad*   6!" Ç!" : !"6 "8 ": }2< !"4 "= ! %%@%@%@%@%@%@%@%@% @% @% @% @% @%@%@%@%@%@&H&@&@&@&@&@&@&@&@& @& @& @& @& @&@&@&@&@&@''@'@'@'@'@'@'@'@' @' @' @' @' @'@'@'@'@'@'