IMD 1.18: 17/11/2012 22:03:33 xerox 820 cp/m 130s22100 (ds) cp/m-rev 3.000 1281  !! ! =! ! ! $! ! $ $ !~ ~#  LOAD ABORTEDBS0066226\X COPYRIGHT (C) 1979, DIGITAL RESEARCH _͌> ͒> Ò> Ò͘~#͌ì _2<ԯ2 Շ!۶2:2a{_:۷ʖ:۷>Ľʖ:=2–!B!6#5ʖ:Ľ!ͬʧ )!F#xʺ~0wëw!" !~6ͽ:ý(!#͘*~ "ַ"͌#>?͌͘ =_.:;<> Oօo$>!Y2*O"ʉ@G:ʐ:wÖx2p0ʹ#*©6?ëw˜0ï#6 ¹.0#*6?w0#6 #6" #~?  xDIR ERA TYPESAVEREN USER!yO#< Ty#O 3ׯ21y_͸2y2ͽ:Է1͘A͌>>͌92^ :۷¥.!_~#fow]٭ڎڥ!v"!çREAD ERRORçNO FILE^:۷ ! ~ 3#0 Wx x ր ւ G ~ # 3x~#B!Y~ɯ2:۷=!۾ý:۷=!۾:ý^T!~  6?#ˆ:`O> K{͘A͒>:͒͢>:͒͢xK > K > ͒x  ͢ØÆ^ BRͧ9!5‚#~Y‚#"T<ÆALL (Y/N)?^ Tʧ͘!6!~ڇ ٯw4!Y~ʆ͌†t=ʆf ^ T ٯ2o&)|+!<ͧÆNO SPACE^ :Ty!B*O=?_s#"^sG!~Yڸpsp2mÆÆf ͧFILE EXISTS _: É: :۷ʉ=2)ͽÉ T!@k!}|q=qf^!~2>`~2ۯ2\!!B!~> >#0~O#Cx2͘1)ͽÂf zͧÆBAD LOADCOMf^: !۶ Â$$$ SUBܙܥܫܱ"C{2!"E9"1A߯22!ty)K!G_^#V*Cސ~E , &-AGMSߛ!!ô!ô!Bdos Err On : $Bad Sector$Select$File R/O$:BA2!~6 O͐  :߷E B 2>: ߷b# : ߷y! 4 5~yy5 6yҐ^H@Oy H H: –ͬ  #H: ! ߾ Hù H H $O͐: 2 *CN# x: 2 p&x~+é7ݯ2 H! >w_: ! ߾5ͤNkͱ¦ͱxʊ#Nx: ߷! ߖ2 ͤ! 5™#wO~x½p Hy<< ʑ :!qMD#2E>! ^#V w#P:BO|^#V#"##"##"##"!O*!O*|!6ʝ6>*w#w*w#w'û*! J*""!N#F*^#V*~#foyx*{_zW+*yx#*DM*s#r*s#ryOxG*0MD!!N: EG>O: \S*C :qn& ^#V>O^"*}:*)=":O:页o"*C *C!ͮ~2~2ͦ:2ͮ:O:w:w |g}o*鯆#  ):BO!yoxg*:BO}!N#F "*#*s#r^ ~!J! J*:o$*C~i6iw**{#zr+s{ozg**͕** ,w͜͸Ͳ!!N#F$**O!~#:A߾#~$=2Ek͌::/GyO>2!q*C"͡ʔ*JҔ^:Oyʃ?|x | s-|N-# S:2E!~Яw>T D^6k-äPYy 5*{zBK5ڋ>*Cw~#+w#w+ɯ2E22i^ *C :~w~͔͔# #  w ~>2!E5T*C!"C"C!w# F! w͌x2͢*C ~<wʃG:!ʎ ì 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#{s+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:ʑw:2E**E}DQ>22!"2!"28!"9Ͳ> !M8~#:EO P"Iy2HH $ !ͮ cannot boot CP/M $ y Z0M8yW M8>WZ877     fkx fkx;y2H n&CI!y2Co)))):CO:D(!( ͈ :CO:CO:D( :C2Dɯ2C͈(y2F(8 (O:C:C2Cy2G!:FO͈:FO*I:HO$͈(*I:HO'_0!ͮ!ͮͥ({͈(!ͮ8 !ͮ >!ͮ (~$#O  disk $error $drive not ready -$write protected$ COPYRIGHT (C) 1981, XEROX CORPORATION CP/M REG. TM 2.2 SY 3.00 2-294 $t{ STAT OM*DDT OM( XSUB OM CBIOS MAC $%'GPQecords/ BlockSectors/ TrackReserved Tracks is Temp R/O Disk: d:=R/OSet Indicator: d:filename.typ $R/O $R/W $SYS $DIRDisk SDECOUT LIBI͇ /ҋͺ *2!"q*"&L ͐ ͐ ͐!$p+q*#~*#N͐*##"#÷!&p+q͠*%DMͱ O O!(q*(&3 Copyright (c) 1979, Digital Research????????????CON:RDR:PUN:LST:DEV:VAL:USR:DSK:TTY:CRT:BAT:UC1:TTY:PTR:UR1:UR2:TTY:PTPM80 OM !"#*+,-./0INIT OM DUMP OM&COPY OM 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 Characteristics6SUBMIT OM ()M80 OM123L80 OMJ45HIJKLMNOSYSGEN OM 67R/, Space: Invalid File Indicator** Too Many Files **File Not Found Size Recs Bytes Ext Acc65536 set to R/O InvalidR" 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/ ExtentRPIP OM<89:;<=>?ED OM6@ABCDEFCBIOS MACINIT $$$ 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> !ڤ Å :2TZs#r*lڶ*l+s#r*jN#F+q#pÌ!nq!"o"q}2uo&"s* s:n*sDM2u:uqos͠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 )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)*)) *)) N#Fq#p*)) *)s#r*)#")!)6 J:)!)J!)6 :)<2)*)")҈q:tw͠ͱ! w *) >*) w.*)DM\ -+!\6uͱ:)O! DMͱ*)#")Ù*))))))"):m w>.Yn  *) ~e *) * ~o&͞ *)%) q#p!)6* >!)6!)6>!)=:)!)w=*)&*)~2):"))ҍ*)) ^#V")]͠.*)DM\ -°!\6:\ͣ:ͱ*}DM'ͫ*)%) N#F'ͫ*)-:YS:Z Hҧ!6> 2)½>!)6> !)*)&*)>2) :) .͐*)M͐:)<2))*)& *):)2):):*)!) *)) s, >X\:)“>!d!")>!)d!"AAAAAAAAAAAAAAAAAAAAAA!) 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"͐*)#")Ã& \!"))\Ұ*)")]͠*)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!EC–EQyQxQRQ** {zҷ*~#" <AOGƐ'@'OxƐ'@'ON# =COPYRIGHT (C) 1980, DIGITAL RESEARCH DDT VERS 2.2$10 !~=W!xe ~#Xbxʇ {z~#o}o҃;,!Ù!;qz8O! !;,z;qyO! ͣͣW_͕qyO! ͣ͒qy y=!z{w# % w!P͠ y͓}*w#"͌ @.@<!Eͷ~P âê ö  - Ð f  "J*"!"!"2O!" "]""!1!++""M>28!"9:] !í 1z8O!B N#N ¾SP.* |} !9":q!"- Ͷ Aګ ҫ _!7^#V~  \p Z z ů2[\͓͢q 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#~XZ*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"_  *]"! _^! ^#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 a. ~ #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͐ =« :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  !  # D$HD$$ H B!$D$"$B$DA!ABI$H B$I $HI$H$! $I 2*ʭ :*ʗ ͯ *N"P*6:2)÷ *N"N!) $@BA$! A "!$"")))))"):m w>.Yn  -- ; DOUBLE SIDED SINGLE DENSITY (DSSD) DISK VERSION ; SEPTEMBER 1981 ; CBIOS FOR XEROX CP/M DISK ; CO ]xsub*"-!/"*"+!""1 M*!"́!"* (xsub active)$|*y ʥ*"*7*$I$$A !A@$I$"!$H$I$I "! $A$  HHAA"I @BB $A"AAAAAAAAAAAAAA-: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"!IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW Extended Submit Vers 2.0Xsub Already Present$Requires CP/M Version 2.0 or later$:y*###ƒ# yk E OF SYSTEM MONITOR EXTRA EQU MSIZE-20 BASE EQU EXTRA*1024 CCP EQU 3400H+BASE ;CONSOLE COMMAND PROCESSOR BDOS EQU 3C062% ͋*-"*$$$ SUBq:(=2(N *$*& w*$#"$*&#"&' !"N*M^7 !)6:!)ھ *N*DM͆ $I$I$UUU$$A$  .Z80 TITLE XEROX CUSTOM BIOS SUBTTL FOR DOUBLE SIDED SINGLE DENSITY CP/M SYSTEMS ; ; -- CUSTOM BIOS FOR CP/M VERSION 2.2  җ 4!~=ŐW!xʵ ~#èbx {~#o}où.xsubb!np+q*m2_!pp+q*o  H+BASE ;OPERATING SYSTEM ENTRY POINT CBIOS EQU 4A00H+BASE ;BASE OF CUSTOM BIOS ; ; EQUATES TO SELECT THE CONDITIONAL ASSEMBLY FLOPPY DISK INITIALIZATION UTILITY VER 3.00 TO EXIT TOUCH CTRL-C $ ENTER DISK DRIVE TO BE INITIALIZED (A OR B)1Z>2[*>28M "(!s"i!v"k!{"m!"o!"qx29y2:   [:\ :]˯Y >2 ;,!Ù!;qz8O! !;,z;qyO! ͣͣW_͕qyO! ͣ͒qy[ͻ!6N:7&!74>+{*mw>*ow*iV:9G*kV*o~=¿G7:9($7?>2f>>= !vvvEMBLY 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 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(. $PERMANENT DESTINATION DISK ERROR EXIT $ DISK COPY UTILITY VER 2.41 INSERT SOURCE DISK IN DRIVE A INSERT DESTINATION DISKvv vvvv!v'v-v3v981vCvIvOvUv[vavgvmG _ INCH DISK TYPE FLAG ; ORG CBIOS ; JP BOOT ;STANDARD JUMP TABLE TO BVECTR: JP WBOOT ;THE SUBROUTINES OF CBIOS SVECTR: 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>   IN DRIVE B TOUCH RETURN WHEN READY$ TOUCH RETURN TO CONTINUE OR SPACE TO EXIT $ $ DESTINATION DISK IS WRITE PROTECTED $ @* ͡. ;ͣW!E# ¡ # ¬# ·@ʴʥzʖ=ʐ=|zJz?4)z z*(#"(MD;!" !h"D 58>(* #" *D"D :. !""!h"D 58A(*"#""*D"D : ;LIST DEVICE STATUS JP POSEND ;LIST DEVICE OUTPUT JP POINP ;LIST DEVICESK SINGLE SIDED (Y/N)? $ INSERT SOURCE DISK IN DRIVE A INSERT DESTINATION DISK IN DRIVE B TOUCH RETURN WHEN READY$ TOUCHSOURCE DISK ERRORS $ DESTINATION DISK ERRORS $ TRACK DATA COMPARE ERRORS $EXIT $ $ DESTINATION DISK IS WRITE PROTECTED $ LE SIDED DISK(S) (Y/N)? $ZING DISK $ FLAWED SECTORS $ INSERT DISK AND TOUCH ANY KEY TO CONTINUE $ ARE YOU INITIALIZING SING. */1g ˯Y >2w.&  &P :w(<", z2.C*   INPUT ; ; ; BOOT: XOR A LD (0003H),A ;RESET IOBYTE TO ZEROS ; ; MOVE XEROX ID TO THE SIGN ON MESSAGE ;  RETURN TO CONTINUE OR SPACE TO EXIT $ $ DESTINATION DISK IS WRITE PROTECTED $ SOURCE DISK ERRORS $ DESTINATION DISK ERRORS Ç|}Ɛ'@'1Gx_> zO2:,2yO5>O2:,O5@(  l:,O52xNCH DEVICE VECTOR JP CONIN ;READER DEVICE VECTOR JP HOME JP SELECT JP SEEK JP SETSEC JP SETPTR JP READ JP WRITE!"$"&"x"(@ *$ *& *( w  (2/2  COPYLD HL,00F7H ;ADRS OF XEROX ID AFTER BOOT LD DE,XEROXID ;ADRS OF XEROX ID IN BIOS LD  $ TRACK DATA COMPARE ERRORS $ EXIT $ $ DESTINATION DISK IS WRITE PROTECTED $ SOURCE DISK ERRORS $ DESTINATION DISK ERRORS >O2:yO*$[ "$>O2:yOL*&[""&:yO :y<2y!- !" !h* [&"&!hhK* #  :x<2x JP CONST ;LIST DEVICE STATUS VECTOR JP TRANS ; ; JUMP VECTORS TO DIRECT PRINTER DRIVERS ; JP POBUSYING DISK ... PLEASE WAIT $ COPY COMPLETE $PERMANENT DESTINATION DISK ERROR EXIT $ DISK COPY UTILITY VER 3.00 IS SOURCE DI  JP CONST IVECTR: JP CONIN OVECTR: JP CONOUT JP LSTOUT ;LIST DEVICE VECTOR JP CONOUT ;PUNCH DEVICE VECTOR JP CONIN ;REJP 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 RH),A ;RESET IOBYTE TO ZEROS ; ; MOVE XEROX ID TO THE SIGN ON MESSAGE ; LD HL,00F7H ;ADRS OF XEROX  LD BC,0402H CALL RDLOOP ;READ EVEN SECTORS ON TRK 2 GOCPM: LD A,0C3H ;STORE JUMP VECTORS IN RAM LD (00H),A LD HL,CBIOS ; DIFFERENT THAN UNIT ON POWER-UP ; (SEE DEFINITIONS AT END OF LISTING) ; LD C,0 ;DEFAULT DRIVE CALL SELECT CALL HADER DEVICE VECTOR JP HOME JP SELECT JP SEEK JP SETSEC JP SETPTR JP READ JP WRITE JP CONST ;LIST DEVICE STATUS DLOOP ;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 RID AFTER BOOT LD DE,XEROXID ;ADRS OF XEROX ID IN BIOS LD BC,09D ;NUMBER OF BYTES TO MOS+3 ;JUMP TO CBIOS WARM BOOT AT 00H LD (01H),HL LD (05H),A LD HL,BDOS ;JUMP TO BDOS GOES AT 05H LD (06H),HL LD (38H),OME ENDIF JR GOCPM ; IF DSKTY5 ;5.25 INCH DISK WBOOT: LD SP,STACK LD A,(UNIT) ;SAVE LOGGED DRIVE FOR AND 01VECTOR 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 SEVE IN DECIMAL LDIR ;MOVE THEM LD HL,SIGNON CALL PMSG ;PRINT SIGNON MESSAGE ; IF DSKTY8 ;VALA LD HL,MONITR ;JUMP TO MONTR GOES AT 38H LD (39H),HL LD BC,0080H CALL SETPTR ;MAKE DISK BUFFER=0080H ENDIF ;END OF ;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  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 ID ONLY FOR 8" SOFTWARE ; ; CAUSE INITIALIZATION OF DISK PARAMETERS ; TO MATCH MEDIA TYPE ; NOTE: IT IS ASSUMED THAT PUNIT I   5.25 INCH SECTION IF DSKTY8 ;8 INCH DISK WBOOT: LD SP,STACK LD A,(UNIT) ;SAVE LOGGED DRIVE FOR AND 01 ;ONLY DRIV ;SEND IT INC HL ;POINT TO NEXT BYTE DJNZ INPR1 ;REPEAT TILL DONE ; LD A,(S ON TRK 1 LD HL,4100H+BASE LD BC,0902H CALL RDLOOP ;READ EVEN SECTORS ON TRK 1 GOCPM: LD A,0C3H ;STORE JUMP VECTORS IND ;READ THE SPECIFIED SECTOR POP BC POP HL JR NZ,BOMB INC H ;BUMP LOAD ADDRESS BY 256 INC C INC C ;BUMP SECTOR#H),A ;SEND TO SIO CH. B ; ; SEND A 'RESET' SEQUENCE TO THE PRINTER ; LD B,03D ;NUMBER OE 0 OR 1 IS VALID LD (WUNIT),A ;LATER USE LD C,0 CALL SELECT ;SELECT UNIT 0 CALL HOME ;SEEK TRACK ZERO LD HL,3400H+WUNIT) ;SELECT SAVED DRIVE LD C,A JP CCP ;JUMP TO COMMAND CONSOLE PROCESSOR ; ; 'RESET' SEQUENCE TABLE FOR PRINTER  RAM LD (00H),A LD HL,CBIOS+3 ;JUMP TO CBIOS WARM BOOT AT 00H LD (01H),HL LD (05H),A LD HL,BDOS ;JUMP TO BDOS GOES AT BY 2 DJNZ RDLOOP RET ; BOMB: LD HL,DEAD CALL PMSG LOOP: JP LOOP DEAD: DEFB CR,LF DEFM 'cannot boot CP/M $' ; COF BYTES IN SEQUENCE LD HL,INPR2 ;ADRS OF 'RESET' TABLE INPR1: CALL POBUSY ;IS PRINTER READY? BASE LD BC,0D02H CALL RDLOOP ;READ EVEN SECTORS ON TRK 0 LD HL,3480H+BASE LD BC,0C03H CALL RDLOOP ;READ ODD SECTORS  ; INPR2: DEFB 1BH ; 'ESC' DEFB 0DH ; 'CR' DEFB 50H ; 'P' ; R 05H LD (06H),HL LD (38H),A LD HL,MONITR ;JUMP TO MONTR GOES AT 38H LD (39H),HL LD BC,0080H CALL SETPTR ;MAKE DISK NST: JP MONITR+6 ;MONITOR CONSOLE STATUS RTN. ; CONIN: JP MONITR+9 ;MONITOR CONSOLE INPUT RTN. ; CONOUT: LD A,C JP MONITR+ 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 REABUFFER=0080H ENDIF ; ; INITIALIZE THE PRINTER ; LD A,07 ;LOAD BAUD RATE OUT (0C  12 ;MONITOR CONSOLE OUTPUT RTN. ; ; LIST OUTPUT DEVICE DRIVER ; LSTOUT: CALL POINP ;CHECK IF PRINTER HASSTATUS ROUTINE ; POINP: IN A,(07) ;READ SIO PORT CH. B AND 01 ;CHECK FOR RECEIVE Y2: CALL POBUSY ;IF SO GET PRINTER READY JR C,CPBSY2 LD A,03 ;LOAD A 'ETX' 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,1ER STATUS SCF ;SET CARRY RET NZ ;RET WITH PRINTER NOT READY OR  DATA JR NC,LSTOUT ;REPEAT TILL CLEAR CPBSY: CALL POBUSY ;CHECK IF PRINTER BUSY JR XOR 01 ;CHARACTER AVAILABLE SCF ;SET CARRY RET NZ ; CALL POSEND ;AND PRINT IT WAIT: CALL POINP ;LOOP TILL RECEIVE JR C,WAIT 2,17,4 DEFB 9,14 ; ; DISK PARAMETER BLOCK FOR DSSD 5.25" MINI FLOPPY ; DPBLK: DEFW 18 ;SECTORS PER TRACK DEFB 3 ;BLOCK A ;ELSE RESET CARRY RET ;AND RET WITH PRINTER READY ; ; PRINTER OUTPUT RO C,CPBSY ;REPEAT TILL READY LD A,C ;GET CHAR FROM C CALL POSEND ;PRET WITH NO CHARA AVAIL. IN A,(05) ;ELSE GET CHARACTER OR A ;RESET CARRY  ;AN 'ACT' RET ;THEN RETURN ; ; PRINTER BUSY ROUTINE ; POBUSY: IN A,(07) ; SHIFT CONST. DEFB 7 ;BLOCK MASK CONST. DEFB 0 ;EXTENT MASK CONST. DEFW 172 ;MAX BLOCK# DEFW 31 ;MAX DIRECTORY ENTRYUTINE ; POSEND: OUT (05),A ;SEND THE BYTE RET ;AND RETURN ; ; PRINTER INPUT RINT THE CHARACTER CP 0AH ;WAS IT A LINE FEED? RET NZ ;RETURN IF NOT CPBS RET ;AND RETURN ; ; DISK I/O SUBROUTINES FOR CP/M CBIOS ; IF DSKTY5 ;5.25 INCH DISK ; ; SECTOR READ SIO PORT CH. B AND 04 ;MASK OUT BITS OF INTEREST XOR 04 ;TO CHECK PRINT # DEFB 10000000B ;ALLOCATION MASK MSB DEFB 00000000B ;' ' 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 TRANSLATIOLOCK MASK CONST. DEFB 1 ;EXTENT MASK CONST. DEFW 245 ;MAX BLOCK# DEFW 127 ;MAX DIRECTORY ENTRY# DEFB 11000000B ;ALLOCE UNIT# LD L,A ; ADD HL,HL ADD HL,HL ADD HL,HL ADD HL,HL ;MULTIPLY UNIT# BY 16 LD DE,DPHTAB ADD HL,DE00000B ;' ' 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 N TABLE ADDRESS ADD HL,BC ; PASSED IN DE TO SECTOR# IN BC LD L,(HL) LD H,0 ;LOOKUP PHYSICAL SECTOR NUMBER RET ; AND ATION MASK MSB DEFB 00000000B ;' ' LSB DEFW 32 ;CHECK SIZE DEFW 2 ;RESERVED TRACKS ; ; DISK PARAMETER BLOC ;ADD START ADDRESS OF DHP BLOCK IF DSKTY8 PUSH HL ;SAVE START ADDRESS LD DE,10 ;OFFSET TO DISK PARAMETER BLOCK ADDRESSTER HEADERS FOR A 2 DISK SYSTEM ; (DRIVES 3 AND 4 ARE LOGICAL DRIVES) ; DPHTAB: DEFW SECTAB,0000H ;DPH FOR UNIT 0 DEFW 0000 ; 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 MK FOR SSSD 8" FLOPPY ; SSDPBLK: DEFW 26 ;SECTORS PER TRACK DEFB 3 ;BLOCK SHIFT CONST. DEFB 7 ;BLOCK MASK CONST. DEFB  ADD HL,DE ;ADDRESS OF THIS FIELD LD (SELADR),HL ;SAVE ADDRESS OF DISSK PARAMETER ;BLOCK FIELD IN SELECTED UNIT'S 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 ;BAX 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 DRIV0 ;EXTENT MASK CONST. DEFW 242 ;MAX BLOCK# DEFW 63 ;MAX DIRECTORY ENTRY# DEFB 11000000B ;ALLOCATION MASK MSB DEFB 000 ! ÏCMAC"<2:2<2;2\:2YR CXR ECEFB"EFLEFMEFSEFWIiISJNZSSEGWIiILSE ND NDC NDIF NDM NTRY QUQXjXXXITMXTXTERNALXT;=T !;~4#>$Nwy#*u:+~# ʴ T y~y#~"MM y*u:+"u::W:` k "*4Ö*"u: MY*LjLALCZ,LCkLCAroLDMNCNZPPEPOY.RjRARCZ0RCkRCArgRD"STR2STZBB*BIR4BCj7CFZ6ET"ET3"HLD0IMZ8LAPHLZ:RCOUNTERED IN INPUT FILEö:;.ʐ$ʘ[ 2 :: =2:>;2b:<2a:!"c:+"<+"e:*UB#UBTTL*UI$ITLECHGR@ORRA*RITHL680807Z80%COMMENT&CREF'DEPHASE(LALL;LFCOND)LIST~_C! Ók 2VW& - . / 0 G H *CIDCRDCDDRDD*DINARND*NISEG"SET~# G*c:#"c:!"e::a:=2b:!h:>2<2<͑ >>g >>0>w#>!w: ʉ yw# ‰w:RPRPC1C1M2MP2NC2NZ1PQP2PE2POQR1ZQD2:DA DAXrDDsDDRrDIsDIR3*HLDOCALJXI8ACLIBACRO:@OVBVIAMErDEGO; !w:"u:*r:|T :W:a5%!;; Nwy#(!4;"(;!*; q#@5 J a;a::Œ:*;VʀMʀDʀX*PASS2+PHASE,PRINTX-RADIX5REQUEST.SALL 2w:NG> NG7+ !"r:2_:=2~<* ;" ;:w:*>$2w:$2t:T :ʃ:t::PjOPQRRARG*RIsTDRsTIR*UTR UTsUTDsUTIAGECHLOPR"OP UBLICUSHS$USHALARC!EPTZ&ESETR(ETsMETIsEETN I2;ͷ ACDEMNOPQRUVX!*;~ pNO END STATEMENT EN rni$*$5%%0&$u&&+&q2'(W2S*S*'%'%''2'<'F'G'33q2)&$5)'(1Y(P(4(6((64 )((((''(a)())''( ^#VOԒx){?)O8Ē)Zܒo::à:;L::0::à>):: )>  G!<:;& ! 2;~!=<  ";^#V!; w#9 !;~J 6!;N z ^#V#^#V#~=z ;G #o #~=::Òwg::ʻĒ?>){)ZԒ::Ēo::=ĒZԒo>)ozAàZԒoz g:: Ē>)# ~V~V#^#V#͂ G* ;x9{V#zV:*; *n:# :_:V*n:~*n:#~wxGê>)y)? O+((@  F"  (8AGh,*u:~#"u: oA 02:’::<=’<2:ů2: 5 (12:Ϳ*y,L::07a::8OͿ*y)Ëڏ:: ?a(g:º "n:#~+?;!;w#¡ w#s#rO O +>Ò <*p:~*<####~7_"<:;$.?=O# "n:Ē?{)::=Ē>)@àZܒ^::rĒgZܒoL::(::Ē>)oZܒĒ>)oZܒ:: )O5)OG)OG)yOO)y)yͿ*)ËOGOOGv̒)OGOO) : 7}ɷ[ a { } 5 iͶ*u:+"u:*u:#"u: aR 5 !; q#` !;6#Ͱ  2:a~ w#:ĒL>)Oү::Ԓ OͿ*ͻyH)y):;G¤xG * ;* ;͂  ##͞6zC<’xx *;z :;O s#rw#  "n:;2 >wG#w#w#w###w#? "p:####p*<͂ >8*n:|>!n OCSymbol table full Ē::Ē>)OԒOw7::(>){)::̒ ::)oĒ>)gi;w::̒y)O5Ϳ*)Ë5 ,ĶɷÒ@C͒ÒͿ*z^<^͒:;Ē{Y! ^#N! yʞ Ͱ w Җ w Gy2;xͰ Җ Ö $.@?_// // &i:~< Ͱ & 5 Ͱ 7Ϳ*ïů2: 5 (#2:Ϳ*::0̒o::}L(LzQ>H!;F#~H¸ *; G~8 #~ +~w#~w#s#r#* ;s#r~w:: .(::::6oy & ::à::à>1{)::ul(g::Ē>);::)>F)?{!b:4:a::;Ÿ:=ʟ>H!*; ~#¤:Z::}<=:~<!h:~#0>:g:> !w:~#  > o::Ē>)2:O*y@>*)Ë>)yK͠Ëo::҃ ::d::?͠{):: y::񇇇@O###Fͮ#ƒW>ʞ_x˜GxGžɯxG ±7xx!;~w#4=I>2;T   'D"D(Bͮx*;++*;#:;G~w#s#r#* ;s#rCͪBͪi:;2;:;ix"Uz H2;*;#~2;*(;<;͂ *(;)Zo:: Ē::Ē>)yBOZĒ̒o&::ĒAZo::(::Ē î::Zܒ> O:;yHNG>2b::^:/> H!J;w!w*c:#|+:^:Fó*e:#"e::^:|`>-H́!;w>SHF~#Hwè #::Ē>)Gà:: o`Ɲ)p::ͨ@{)Ē>:)ËgĒ:: à?o>6)K@{)y)-)0+3-6*9/<;+,+ Ķ>>>> > > >!G( Z" z( o2;( p" xu( eo( ;:=ʪ)0) “0"(;DͶEͶáxͿx0:ͷ:Y::X::W::^::*; :*; o::̒GxĒ> à::Ē::g:::::ʟԒo#::Ēàg:;:; o::̒PX چ|Ą>: MACRO-80 3.4 01-Dec-80 PAGE :*; Q*:#":*:#": ::i:,; i!,;"(;kO! ~*(;w!::O::Ē>)yWà::G::>*;#";ª%*(;@;͂ *(;:=ʅ`))0) m0j#"(;=xu*u:+G 2;*u:++"u:G "u:|Gg: :|o|DB|} ||BDHOQĶ=OQĶ ?!G B:7=<2; 2;<2Z:4:}+2D;a>+2D;:*; a:]:a:,; :`::[:m>C2C;:;Ÿ:^::*;  ڷ::Oʧ>)yC͠2;2;Ë::(>")Û::Ē>2)Û:: :: Ē::`Ɲ)͠ËĒ4;"(; '"!*;:;*;ѯ:;xE* ;* ;͂ "n:" ;HͽA>͎yo>͎CͮBͮy*n:~GW>͎###Ͷ{::k*;##";:;G5:;G"*(;¿#"(;CͪBêxx6!6**;##~#fo6"6'##"(;"x*ͽCͮ 0԰)#&DVH!G 0)T]))_)!G 0԰)))_@!G Gv0 k))))_YHð:!:zW{_s"zW{_:;*; |/W}/_*;:;Ĥ|/W}/_:;Os"z!)!s"#+}zW{_!*;:;y!y"~8$::Ķ2:##~2:+~+â#~+â#^xOB!V ~PJ2; A ?:;X|" '@ V'$@;> O2;*;\W> O2;*;]Ws"}G_s"}G_s"}5_s"}+_s"}Go{G_s"}?_* ;* ͶůG|2;͙ y2;: '#:;O ? 2;:;G2;*u:+N{*;2;z̶̶V|=VyWx=zʐ zʐ &ʐ µ!G 0 ڙܰO: :=ܰ<_PV" Çþ&þ=5 5 :;2;@=`# @! @#;#:;""yO2;̓"!:;y5"2;5"yO:;L"yO# {_zWs"DM!>=o"))]"]" :; *  O?XOR AND NOT MOD SHL SHR OR EQ NE LT LE GT GE LOW HIGHNUL TYPE :: ::::Aa" ' ɯ;͂ :;_ :*; O $> 2*;J*x 2;xGY$:;Y$* ;* ;͂ :;G* ;" ;::""; :;‡$::Hʐ ʐ Ķ>GG&";z¬  !";";y2;  2;     !:;*;!9!o>g~#fo:;O! ~ 2:A ;: :1 &  15 ?*u: #n #n7 ̈́*#~G Īxw+â"u:# ::ʅ;:; ʛ"y :;O*;" ;*;s"z̶zB"|G|"|"""|/G}/O!>" "7>{_zW}o|g="|g}oɯOG og2;2;2;2:2:2:9";*<͂ ]1L ?O2;=yf ^ ^ ͙ y2;ʭx:;­̶í:;:;$:;ȯ2;T $>G2;<2;2;*;]$$>2;G2;*;]$$>2;G2;*;]$:;J*:;;%o& ^#V*;͂ *;Ķ!y" ;  s!}!!!!"S""#!!2#=#I#V#\#e###!###### $s"zW{_s"*::ʞ7͈ # ʢ*~8x##^#VO#^#V" ;y y??7͈ "n:_yWs"z$#|$#|͢"">O0 Gt#͂ P#t#͂ ?P#t#͂ W_ t#i#t#͂ P#t#͂ 7P#?P#:;#*OG:;?5 ,©:;ʩ2;>? :;O:;f xG:;O&_y{* ;YG&!!_~x   ;DPHTAB POP HL ;RESTORE START ADDRESS ENDIF RET ;DO NOT ACTUALLY SELECT THE DRIVE SELEX: PUN HOME DRIVE JR Z,SELEX1 CALL HOME+3 SELEX1: LD A,(UNIT) ;LOAD DRIVE JUST SELECTED LD (PUNIT),A ;RIVE CALL MONITR+27 ;CALL SELECT ROUTINE IN MONITOR JR Z,SELEX4 CALL REPORT ;CALL EOME ;RE-TRY HOME IF ERROR INDICATED RET ; SEEK: LD A,C ;GET TRACK # IN REGISTER C LD (OTRACK),A ;SAVE TRACK IF DSKTY8S AND 20H ;ISOLATE MEDIA TYPE JR Z,DOUBLE ;NO MORE SET UP TO DO LD DE,SSDPBLK ;ELSE POINT TO SINGLE SIDED DISK PARAMETERSSH BC ;SAVE REGISTERS VALUES PUSH HL LD A,(UNIT) LD C,A ;LOAD C WITH DISK DRIVE NUMBESTORE IT AS A PREVIOUS DRIVE POP HL POP BC ;RESTORE REGISTERS RET ;EXIT IF SELECTED SUCCERROR ROUTINE JR NZ,SELEX3 LD A,(UNIT) ;SAVE AS NEXT DRIVE LD C,A !9"1W͜Q>2!͢QG}DrYQ|͏}͏#> ex͏#r* _> e> e DOUBLE: LD (HL),E ;STORE ADDRESS OF APPROPRIATE INC HL ;PARAMETER BLOCK INTO LD (HL),D ;DISK PARAMETER TABLE ENDIF R 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  ;LOAD DRIVE TO BE SELECTED IN C JR SELEX2 ; SELEX4: IF DSKTY8 LD DE,DPBLK ;POINT TO DOUBLE SI ҉0Ë7e}} :³ʳ7_<2!~ɯ2|\\FILE DUMP VERSION 1.4$ NO INPUT FILD A,(UNIT) ;COMPARE REQUESTED UNIT LD C,A LD A,(PUNIT) ;WITH CURRENTLY SELECTED UNIT XOR C AND 02 ;IF NOT THE SAME THE JR Z,SELEX1 ;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,HDED DISK PARAMETERS LD HL,(SELADR) ;POINT TO PREVIOUSLY CALCULATED DPBLK ;ADDRESS FIELD IN A,(1CH) ;REQUEST DISK STATU LE PRESENT ON DISK$!Y , <    *$A!6 # T!w $r# *`: 0 C,A ;RESTORE TRACK# RET Z ;EXIT IF NO ERRORS INDICATED CALL REPORT ;REPORT SEEK ERROR TO CONSOLE RET NZ ;RETURN PERMANand Too Long$Parameter Error$Invalid Control Character$Directory Full$Cannot Close, Read/Only?$!9"!͇͊!p+q*40 ; 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 SEE*A*! ~ ʰxkb))))_y‘BK{ͅ*!66!"80*{#z+++ #ENT ERROR UNLESS LD A,(OTRACK) ; RE-TRY REQUEST IS INDICATED LD C,A JR SEEK ; READ: CALL SELEX ;FIND OUT IF DRIVE IS  ͊!p+q*͍2!p+q*͍2!p+q*͊!p+q*͍!p+q*͍!p+q*͍2!s+p+q+p+q:K2 ; SEEK1: LD A,(UNIT) ;SELECT SIDE-1 OF EITHER DRIVE AND 01 ; SEEK2: LD (UNIT),A ;STORE NEW DRIVE CALL SELEX ;GO AND SELECTED LD HL,(POINTR) LD A,(SECTOR) LD C,A CALL MONITR+36 ;CALL READ ROUTINE IN MONITOR RET Z ;RETURN IF NO ERRORS  ;FOR SA850 CP 77 ;CHECK FOR SECOND SIDE ENDIF IF DSKTY5 ;FOR SA450 CP 40 ;CHECK FOR SECOND SIDE ENDIF JR =2ʦ** w*#"*#"!p+q(+*DM*p*& 6:ep\:=SELECT DRIVE LD A,C ;GET TRACK # FROM C LD (TRACK),A CALL MONITR+33 ;CALL SEEK ROUTINE IN MONITOR LD A,(OTRACK) ; LD HEX copyright(c) 1977, digital research $Error On Line $SUBNo 'SUB' File Present$Disk Write Error$Command Buffer Overflow$CommC,SEEK1 ;SELECT SIDE-1 IF DSKTY8 ;ADJUST TRACK# FOR SECOND SIDE SUB 77 ; ENDIF IF DSKTY5 ;ADJUST FOR SA450 SUB  ͧ!t6>!t%\= >!t6:t<2t=O! ~2u b:<2O>9b!60+~9b!60+4:uat:u_2u:uM-!6]:ͧz2~e:~2O! 6*~& 6$>!~_z*~& w!~5Bx:yͧ*v+"vy,u&:":=&G2"::#:=ž&2#::#:<2W:&2$:? ͘:$:Ę:":̘!#:&=? 4=2W:<2$:? 5&:":_2>W!%:7~&$:&w!":4ʉSͧ!v6!"v!|6:|Ҁ!x6 2}:} Hk:} h:}$6 2}$*}M3:}02}O> ͧ3!zs#r2;* ;##$::/%:;/%*; H2; 5 "H%'%G( ( *u:++h% ( o%[% [%5 ,ʅ%;ʅ%v ~_{ozg001 $$$$ SUB:W:i2W:!#:'4:":=2X:o'z&o'z/&&::? =&::? &7:W:v'T # ^'i' i'&?&:W:b&! "u:6ͭ:}"!}5́ͭ́3*yM"h:}^a a2}O>Vͧ^:}(T]*z& ~2y :yHڪ!z4>>*z& ~ !z4í!{q*v#"v͙dͧ*vv :{w:x<2xO>}|ͧ &x)%? " %&x) ,%x)y? %b&%:=W&z*;#";::Ī@&*;:;G]$%:::*;U<2*;%͋ , (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ͪ/+<=ʌ/+Ä/~>.!1!1?*0%0,0 0: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+~zn*~8~w#w#w#w"r:Ϳ*:*;2`:Ux¤x 2_:*r:"n: x:;"r:~w|2`:Ϳ*x¤*r:̈́*#~ª~@ w#s#r#* ;s#r 0;0!( 1w+ /"00b&:*; 0: :w0W0PX D0|B0>:ï0)0͛0>)d00͛0=`00D͇0E͇0 =ʋ,>H;H{HNo Fatal error(s) Warning(s):;GHk+-!,-,REPT/IRP/IRPC/MACROUnterminated -!&--> ? 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#~@´,~ >0ï0x͐0x0:ڛ0 ¯00O:گ0>0ͯ0y*0w+"05 *00Ow+ 0 10w+ 0/0w+00000{> :7=<> NG> NG!,w:7=;!;G~ªw#8. 7 /88 / /+8"<7 7> y77:8:b:8!b:44!2-w!=<>8,*:|,́ =*u:+~ 5 5 00!:͂ 41#6 +͇.&̇.:ʇ.! Y1iÇ.!c1h ?Stack overflow, try more P s!1 u6*<*<62*<#2<2}_|W:;¼b&:*; 2;*;͞6";:;2;? !ʐ3$3" <2< 3 ʆ3:€3ʐ3À3À3v8"<͍8 7*p:*<͞6e ze W{_*<͞6BK*<*p:"< " 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"<^#V{8}#9+V+^{9w#w+++8 ~"n:@w#~:+F#~#^#V###~#HE9ƒ9ͩ99_®9{´9{@Ŀ9{ʷ9{_!~:<<2<;2<"<͂ V4: H>*>M>C>UHÃ9*n:#{G#^#V#^#V" ;""n:#~ H>IH!*;"(;k*(;6!*;;6,5x 5 5##^#V74646466+ &66+w-7*&!ɷG-"<Ͳ/O:*; 2*<-y6+,q#p*<{8*<"<~{_6{_{78̟7*<*{<:} NG> NG:*; ? ʒ2=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!-J:>J@PKw#2=.K!Kw=:=G{G>*NG B> NG:B!B"Co>g6 #> w~# 7G 7G uG#"C_*C+~ #F#"C+~7ȷ> NGuC"=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 #=#J2=.K!KK6 #K:=.+Kw#+KpQJ-JPK2MJ2NJ:NJ={KQJ-JڐK!QJ"OJ>2NJ*O> 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†FJ~‹K7ÐK#"OJG 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 = _!!JOC@@J> NG!'JOC{GDISK FULL2 =:FX“F>2=:FZŸF2 =:FP7: =<2 =:F7G[F0FAF:FðFO!~6GF#~ FFBx+#F~F2=G2 2:’::<=’<2:ů2: 5 (12:Ϳ*y,L::07a::8OͿ*y)Ëڏ:: ?a(g:^ s#r! ڛs#rҮͻy͑!Z ~#fo!8õͻѵ!@͵Ͳͻ}_|W>2,*Z*\C>2ʹhMG@RSUXYES Ϳ Â!O^2H)2G:2ʹ:>`ʼ<;>2:6_<26!e~eª! w#! wͿ |!jʿ !ͪd*DMÂ![Begin ed>** > *:!o>g6 7ff ¼ʹ S:+S#ʹP¼22!  wʹ:¼6GO:-:ĒL>)Oү::Ԓ OͿ*ͻyH)y):;G¤xG * ;* ;͂  ##͞6zC<’xx*8*D:- **8*DW{_*8#"B":":GʹO0q Rq)))pfp)o>g>y +%OverlayixʼҼʹ‘ʹ" _2:n2-!~w:@ ~w:2 2*|xecution]:ʶ:ʓ*>*F ʓ~`~x@w+++?>GO4 ~+D>Z6 #=S*>!3  2@ *>~O_ͿͲ"\"`"Z"^*8*@"8"*@*B͌BK*@*B͂"2,G<2-ëz6#z:-OͿ*+"">"F"<"Dgo""222222!%"@"8"B":""!"\"Z"`"^2-2 !"X?No Start Address?Loang areaDataProgram͡d!wͪ! ~#foͪ!ͪåͲ   }<=ě yy7yȷ͜~@!"F *|*~ ::VA G@x CA G Link-80 3.4 01-Dec-80 Copyrig+++y++:d:2@ *>[*͒ (! >G~#͜~@+^+V*D % s#r͒ (*<ͻ UͲh!ͻy͑yBK͂O! s#r!Z s#r!^ s#r ԛچ!ding Error?Nothing Loaded?Out of memory!|ó!ÿ!ÿ!ͪ2*!h~4!^ͪ>2+22iڼ ʡ,ʡ/¼ʹyM7,Ͳ# !ͻ> _!>?*~#*!SE!Yó Not Found> *> *>26eht 1979,80 (C) Microsoft ?Command Error~*#ê~# ʴ ʴ`{ +!~G#~ x+#~:+  xCOPYRIGHT (C) 1978, DIGITAL RESEARCH  o&)))))))a{͚u c͊2!?͚!͕u cA7nA2Aͦ!͕u c͊!6!?͚>ͦ͊!Q͕SYSGEN VER W}_*"}o|g":ʑ*C6__> ̓> ̓͊~̓#ÚO****!*$*'! ">2!4:(wNͯ>22.0SOURCE DRIVE NAME (OR RETURN TO SKIP)SOURCE ON , THEN TYPE RETURNDESTINATION DRIVE NAME (OR RETURN TO REBOOT)DESTINATION(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)×* " x20 º*   DM":0 Ad*   6!" Ç!" : !"6 "8 ": }2< !"4 "= ! :)!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(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE):] \<œ!x͕c2|\ ¢! DMͿ\õ!͕c!͕u AnA2Aͦ͊!E FILE ON DISKSOURCE FILE INCOMPLETE  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*2ZED DESTINATION$CANNOT WRITE$INVALID PIP FORMAT$CANNOT READ$INVALID SEPARATOR$1 :2L> ̈́M9 ͔: :ͳ.!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 *HHͯ :^!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 FILE!p+q* !q*& *M *M !p+q*!!p+q*"!p+q*$!6 ::=2K  :ʤ\:ҷ\x'Ͳ:!\͢  :͈'!   "}*}DM͆ ' ͯ *"!z4 :e !"͆ !z6:|!z '? 2*H#"H!{6:{ր!Ң *{&!6*ME:2::Ҳ:<22ý: 2:} >ͯ :i:2:d*M:[  :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>/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: :* ͇gͯ 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:?† !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 :020:121'ͳ':²ͯ !G6!"!"7 *M^n/ :a/:H!6:ͯ !&6÷:S:QHI:N<22: H@"2Í202O> c!6Í202O> ڍ*&O*:X!Wғä:ڤ*MEÓ:ұ@@:O2Mc;!6#6>!)*&P ~"::H:H-:>>!p+q:,!6*DM9:<!6:z 2W!6D*&L :w:<2Ov*:>=!4Q>!қ:=2á:2:Ҭ\>!ҿ:=2K:2K!:!:K\: \!p+q͈*2*">!b!ͯ >!`0ͯ !q:E:24J!46*}a!44EJ *KM^'́:‚& !sc*&P :w:·>!ұͯ :22:_!6=!6>'!E!4!p+q*0 !:H:H"!6!4:_jYO jM*"S*" 3@bl*M1͓!""20O> ڒ: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_{o2d‘ 2dÝ:d=2d!\6:l2e±:d2eø:e=2eEU !M6 !""*o"$!h61m!6#1m!6?1m!6>1m!f6! 6F!f6:h2k!iҠ:i2k:j2h:k!hҶ9 æ:h2j!!6:j2he:! >"Ͳ*"M ~2!O :! *+" COPYRIGHT (C) 1979, DIGITAL RESEARCH DISK OR DIRECTORY FULL$FILE EXISTS, ERASE IT$NEW FILE$** FILE IS READ/ONLY **$"SYSTEM" zgO{ozgi`N#Fogo&og H ©=¨ *M  *!M 1m! 6!6! 6: 2Ebͽ!e:d\::eH2 H҆ͽ:e2!:d2e:!2d!!6e*!M͛ /$^L:!@OL:! 2͑e:b:! L:h<2hb:! b:hO>!hw:! pX:! …!!6  FILE NOT ACCESSIBLE$BAK$$$BAK$$$-(Y/N)?$NO MEMORY$BREAK "$" AT $1mM"m +!8s~!!!6 :2.t 9m++s#r!9+s#r9";9;"^*mM 6*m+"o!o#s#r!6!f6!6:] :m H}- :\ZgO{ozgi`N#Fogo&og H ©=¨)ͷX:! X):i!h)9 e:!:h2jO>F L>!":i!jHҼ*"+M ~ ʼͲ!f6!h6!"  -? >!!6!6s, !6:xB!6OU2!SB!G6:҃!6:G҃*G& ~2!:G<2G6:n!oښ *mM !o4‚ !pq:p ڪ >:p :p H:p H!qq*qM͛  ^W :q@2q*qMW   !sp+q (::H%^bF : ͎H :!Ay! 6*""&*o"(R͎an͢na! 6R :!F”!e:dʥ *eM \R :xʥ @ *dM \, :x \͕ :x - V :e _ :f w : +s#r!:* *& ~2!:<2 :!W> v :!X³ Z͎\ Ee ð :7/҃ E!76e ͕ :xƒ _ Qқ=e  b:!-®! 6:!#¿͇;J:!:!!6Lv:!:Jv: *#"͎*r !up+q *tDM !wp+q*v !zp+q*y2x!|p+q*{2x!~p+q*}2x!p+q*!p+q*͢ґ Ä :!J $:2$͢ :=2:<2!*& ~2!ü*""I*M*o/!:"=e !e:d*eM =e : =e =͕ !]6:x>- !"!76!6!6!66*dM  *dM !6:8!- ͷ*&"K(Kڰ *KM N͔*K"KҌ :!Z ͎  ͢ : :!  'v!gq! 6:!B)! >w!"&*o"(R :!C:eR :!DKeX :!K\ͷX :!Lj^ :!Pš͎҇! 6!p+q*!p+q*2x!p+q*!6   >>! q* &!p+q*"&! 6R*I""ë :!M:H| ! 6>F ͛e: <2 O! Hqy d F : 2! 6*#s#r :!*`*;DM \u 2xʻ>!xҨ- *`*;6:82*`"`:<2w!"`9`h*`*;~2*`#"`:f *g&!lq:l $ !h4:l 1 !h6*lM :hB     !h55!mq:m :hO>H2ny} !m6 !oF×͢җ:Ç :!T¨F :!U¾: 2 :!V͎"$DMͩ/ *oDMͩ : 2 :!:7 e !p+q*DM  =? ) !p+q.*DMF -L *9"`!"b!h6!j6!|6.!=\ -x N ͢ *o/ Ҧ Ͷn! 6!"&R! 6o$ Î Ç :!S0 $͢- :2"! :*eM !b+!s{!f!6:!b*b*^DM =ͅ N- *b"b:<2)f!"b!q9bڀ"&Ô""&*""&$mڸ*o"(**$"($"O26͛*"M :6w͢:6 6:0O  ú!p+q:/(*DMͩ:  : I N* *DM:aO>!Һ x!: :>/;oH*;#"(";:92=*=& *(M !::=2>/H:=<2=*(#"(æÀ:>*(+"(R:>!6*22*,**"0M ~ H3*0"**+"*+">23:2/k!36,*+s#rx:3x*0"*: *b*^:w*b#"b!q:6ڶZͅ ʱ- !66*6& :w:6<26!J6*b}:J<2Jm=? :x- !7q:*7M͒:7o$+͛ͪ*$M ~28Om:8 I͇͢u$oqo͛rP! 6!"&> ʡ* +" >¡! 6: <2 =O! N͒:  O͒: ! 6:h!o$O$:2*o/*!My:<2=O!s Hq**DMͷ! 6: e!"*""?k*&"?*?+M ~2A :h“**"&*"+"(á*$#"&**#"(*"#""*$#"$*"+""*$+"$*#"!4qM*"*$: *(y"$DM}|C#~: ;*dM .=\ -=ͨ ;: *eM =ͨ .M= -C!q:Y*M !q:a/>z!/H!q**$"(R͎ҔM͢ҡÔ($ҵ! 6R͇vͶ2!*!Mm$"*"M :!w͢:! * ͸ ! 6 !h6!: 2 3* & 6 : <2 =O! N͒*dM  :sGsu n>!6:<2=O!Hҏ *&"?(?:A ½8*#" ҽ*?M ~2AO *?"?ҕ!"*"*"^: 2B!  *#"*&DMyxC 1*+":4?w+"$""ͷR: —*$"("҈!MaҎ:_:!q:ҥ*My:!p+q!'"!6>**ͪ{2**ͪ"*! ͪ":!!e2!:! : /HH/Q:! @!!6 R!!6 :!KR$*& :!w:<2dn!:s+q*$";!>6 N͒!">!"͎/Ҵ*+">>!": *#"*""*!".+",*$"**o".!",!36:3{." 6F:B2 o(>&H6͛9!C6>!Ca R>:C<2C?! 6!"͇͢Ґq"RIVE IS SELECTED LD HL,(POINTR) LD A,(SECTOR) LD C,A CALL MONITR+39 ;CALL WRITE ROUTINE IN MONITOR RET Z ;RETURN IF Ng_{_z#W H = LIBDISK ERROR TO CONSOLE JR Z,WRITE ;RE-TRY WRITE IF INDICATED RET ;ELSE RETURN PERMANENT ERROR ; ; ON ENTRY (A) = 1771 Iڊ͛Íq!!6 !!6 !6*!Ma2D*!M͒2!:D/!+w!6e2!͢!Eq!E:!:H:H!FqO ERRORS LD E,A ;SAVE 1771 I/O STATUS FLAG RLA RLA ;CRY CONTAINS WRITE PROTECT STATUS JR NC,WRIT1 ;CONTINUE IF NOT X$$$$$$$LIB/O STATUS FLAG ; REPORT: PUSH AF ;SAVE 1771 I/O STATUS LD HL,DSKMSG CALL PMSG ;PRINT 'disk ' POP AF ;RETRIEVE SAVED S*FM8 *FM   Oy2F :FY5>>:!02HO> /!";u*)))*) *H& "PWRITE PROTECTED LD HL,DSKMSG CALL PMSG ;PRINT 'disk' LD HL,WRTERR CALL PMSG ;PRINT 'write protected' CALL REP3 ;WAI!"<**"͓n "Dn"":!Q2҂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 D! 6+s#ré! 6"DM!>))덑o|g =±^#V) ^#V|g}o _{ozgi`N#Fogo&oT FOR CONSOLE INPUT JR Z,WRITE ;RETRY IF INDICATED RET WRIT1: LD A,E ;RETRIEVE SAVED 1771 STATUS CALL REPORT ;REPORT :X!Wғä:ڤ*MEÓ:ұ@@:O2Mc;!6#6>!)*&P ~"::H:H# *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 :0=ʉ>G:/=ʓ>@w>*dRQUEST  *>:.k *F k ~_~@` +++~#` *FBK͕"F& +++& 2,2.21:-go"͚ d͚  ͚ >0Gô /}o|gҜ x0´ ´  > x*$MEMRY*!w# ͜ ~@ +^+V"! ͪ2! óA :[ ] @ \ ^ _ O͔:,`:02/͠BK|ʮ ~_q#VpOî :/=q͠>@w+r~++GOŸږ H+ڴ « – yڵ >t t *> 7~ ~~ <</_*F |}!6S:-*8*@ *\"Z*\e*8͏*B*:BK*B"B Ԃw":"8""`"^ u*\*B2"b"d2"f<20:-*8*B*:*D*Ҿ ò .ò ! ~#foBK#:0= :f*8|  }#?Start symbol - - undefined ~## n REL7*}2:`X i  :- dz  @ d` +s+@:02/͠r+sî >͜ڲ/o/g î ~@w:2+++~ 2q+p:O!͵>2/͠}|! s#rͻ#6Y#6M͔>*>*F ` ~O~@M +^+Vl > Ͱ +~Ͱ 3 > Ͱ =L ͈ >~T <</O  Ĉ z!r |q }͂ ͂ *: қ!*:͌*@*8BK*\*Z*B*@͂*\"Z*B*:BK*B*@"Bw"8":"X ~w#~wPY͔>BK͜p#:g*:| %}#͌:/=Z:,ZOw+p+q+p+q#͠B ++s:7>€ʹ[?@  *> ʜ >w Ì f :ʯ t ! ͪ*Xw ! ê Undefined Global(s) Bytes Free 2 f r ~O~>- >  > yԑî !0ͪ>/*dî ~W+++~*+&%2nd COMMON Larger /*"b |2f*8 ԏHî > ͜~@wî 7:,>ʔG ð > Ͱ > ð :ʷ )0*) ¦ 0*£ |ͼ } *0:d! ~#foͪ(Ͳ͒ (͒ (><*$ ]~@8:,~@w+~_q+S:/=*>Cw+p+q+r+sî !Iͪdî %Mult. Def. Global ~@*+"PY͔>BKů͜~+ڞ:~s#_~rW}ʬ:1ʪ# Ԃw{_!V6)`i{&!V# *N*>"F*H*@">2g*: Ԍî *>͜ڪ+^+V"î ͔:/=U<20=® :,ʮ * î PY7*\}"\!*"*Bw +xʹ~+ Èxw+ Õ:/7=Oʿ:,7Ͳ?Intersecting ͿOͲ*8{r#s^#V{ r+sg~O@wy@+Ns+Fr{~2g*4:w+r+s+p+q+"4~+V+^+F+N+*\N+F@·:,zʮ î |ʮ :,r#sî :,|ʮ Jzʮ #:/=>Bw+r+s+r+sî *#"!~#48*X "X!8y-!@ ^#V < F#fhG!8^#V ^#VVy!8 !"2}2g<20î :ð*>*F|G}~OA++++~ y/O áOx_ <2͠:/?O$:,Ͳ  !ͻ>,**&M^#Vͪyà!F#~#*f>(*̀>)*@ DM>>>>Ҝ<2=O!Bڬ!6 ^#Vڸyy? ?y!8!@ s#r^#V͐6+wxG ɯ2/* 78͋Qz͋z!wg4#6 _y w#k!^#V^#V™!H s#r Gyx|!Ps#r#²x|W}_x21*D ͉21yoxg*2͆Ow#2.+w+w+w+ 2w+w+"F7"CC":,2,*8*BDM*2 "2* "*:BK":/Ò Start = External Public = %ڰʰ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*"2*"*PY ":0:=0*2!"2*2*B 00c*{OzG*@*ZDM7xw# Bw":"\"`*<"4͟"*D|©}~_!:^#V*4"D"gq#pg^q#Vp{g#~@+^+V% < ͲسȯͰ z ͻz~#Ͱ ä !e:6_w{< 26  ! ó?Can't save object fileͲ !9!3!?ͪͪ!Gͪ2+ʹYPbelowaboveOrigin loader memory, move anyway(Y or N)?Ͳ w# |"~#fo"q#p:+#*D ~""g#:2*#*"82f6+:*#wî gz#2*# #:+##*wmPY*8"8*B"B*B*>BK*B*8w"8*\*Z"\"Z*"B*"@ !~R#~E#~L:ʁ{ͻ}O|G{Oz'!>*!y1!O>:Ͱ yq l Yq ~#q L!q ͈ !>:Ͱ Gq *l >q q ͈ > ܜ r! ܜy«:-ʯ*ڹOͲ y*!\͵ !9;;;;;;  "8:*#2+#*r#s+:*#R#*͋#"82*#2+#!% p# 9#!N#%~# G#î r#s$${n#{ƀ_n#zʇ#Ͱ$w+COMHEXe  < 26:-*\*Z !~ ~ : :- *z2! !"͇"!"͇"!"͇"!""͇"##›!##͇"##¨!#͇"!c"͇"!n"͇"*@"r"*8"p"*Z"t"*B"x"*:"v"*\"z""m"z!"7$$! [ [FzU7*8"*:"*@*!n#͌$$$!%͝$!%V#^###!##͝$ì#z#!%͝$#͌$z{7%z w##0:ww"@"Z yO:- `!r *|Q Q Ͳ Q >Ͱ *}Ͱ |Ͱ ͆ ͚ :-r yOr ͆ ͚ :6  :ʗͲ y…*Z*\ a*@lͻ ͻ * lyºͻ* lð *|""?"0"?"U"e"?"U"e"?"U"e"!p" N#F#^#V#~#fo|} +x~+ Z"xw# e"xKP*"!ew*8BK*w*B*O*8*Bw"8*B*BK*Bw*"e& :%!$$#+#!$ê?Segment , file not foundcan't create fileread errorDisk is full$!)$ó$!8$ó$͌$!J$óA ;RETURN PERM ERROR INDICATION IN A RET ; REP2: LD HL,RDYMSG CALL PMSG ;PRINT DISK-NOT-READY MESSAGE REP3: CALL IVECTR;6,5x 5 5##^#V74646466+ &66+w-7*w#w6c7s#rh7"<*<6s#r{_*<{, XEROX CORPORATION' DEFB CR,LF DEFB CR,LF DEFM 'CP/M REG. TM 2.2 SY 3.00 2-294 ' XEROXID: DEFM ' 'OR SO --- CALL PMSG ;PRINT 'error ' JR REP3 ;GET CONSOLE INPUT REP1: LD A,1 ;SET UP A NZERO CONDITION FOR RETURN OR  V  ; PMSG: LD A,(HL) ;HL POINTS TO ASCII STRING CP '$' INC HL RET Z LD C,A ;PRINT CHARACTER IF NOT DOLLAR SIGN CALL 6*<w{ʕ7̟7"<{_6z6*<}7}o~Ͱ7{7̟7{_6{ȯw#w*<s#r6*<6'  CRLF: DEFB CR,LF DEFB '$' ; UNIT: DEFS 1 PUNIT: DEFB 2 ;DEFAULT TO BACK OF UNIT 0 WUNIT: DEFB 0 ;DEFAULT TO UNIT 0 OT(*#" x  8 |’{0_!6N( @(  ::6( ( > ͻ27::G>HK0: DEFS 32 ;UNIT 0 CHECK VECTOR ALL1: DEFS 32 ;UNIT 1 ALLOCATION VECTOR CHK1: DEFS 32 ;UNIT 1 CHECK VECTOR ENDIF ; I FLOPPY DISK INITIALIZATION UTILITY VER 2.43 TO EXIT TOUCH CTRL-C $ ENTER DISK DRIVE TO BE INITIALIZED (A OR B)1Z>2[*>28M "(!s"i!v"k!{"m!"o!"qx29y2:   [:\ :]˯Y >2 RACK: DEFS 1 TRACK: DEFS 1 SECTOR: DEFS 1 IF DSKTY8 SELADR: DEFS 2 ;ADDRESS OF DISK PARAMETER BLOCK FIELD ;IN CURRENT[ͻ!6N:7&!74>+{*mw>*ow*iV:9G*kV*o~=¿G7:9($7?>2f>>= !vvvR CHK1: DEFS 16 ;UNIT 1 CHECK VECTOR ENDIF END  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(.OR BDOS FILE HANDLER ; DIRBUF: DEFS 128 ;SCRATCH DIRECTORY BUFFER ; IF DSKTY8 ALL0: DEFS 32 ;UNIT 0 ALLOCATION BUFFER Cvv vvvv!v'v-v3v981vCvIvOvUv[vavgvmG _K: DEFW 26 ;SECTORS PER TRACK DEFB 4 ;BLOCK SHIFT CONST. DEFB 15 ;BLOCK MASK CONST. DEFB 1 ;EXTENT MASK CONST. DEFW