TDR(Gm60K CP/M V2.2 ! ! ! $! ! $ $ !~ ~#  LOAD ABORTED BS0054300;\X ©RIGHT (C) 1979, DIGITAL RESEARCH !x_͌> ͒> Ò> Ò͘~#͌ì _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$ܙܥܫܱ"C{2!"E9"1A߯22!ty)K!G_^#V*Cސ~E ,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~͔͔# #   w ~>2!E5T*C!"C"C!w# F! w͌x2͢*C ~<wʃG:!ʎ 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":ʑ*C6K92:ʑ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    $?UwCOPY OMVCBIOS BAKx M80 OM &'()*+,DDT OM&@@TOUCH RETURN WHEN READY$ TOUCH RETURN TO CONTINUE OR SPACE TO EXIT $ $ DESTINATION DISK IS WRITE PROTECTED $ SOURCE DISK ESc$$$ SUBhiCMPL BAKg2ND SUBh1ST BAKi"MD!"! "(*#"*": !"! "(*#"*":]XSUB OMINIT OM !%DUMP OM"SUBMIT OM #$@ @ pG@RRORS $ DESTINATION DISK ERRORS $ TRACK DATA COMPARE ERRORS $  17M SUBj$$$ SUBk  ΁ *1.&M  &( "z2C  G !"""B"@e *r * kM80 OM-./0CBIOS MACxPQRSTUVWXYZ[\]^SYSGEN OM1STAT OM)234567@@Q .Z80 ;**@ ;* * ;* -- CUSTOM BIOS FOR CP/M VERSION 2.2 -- * ;* @j *   ( þ COPYING DISK ... PLEASE WAIT $ COPY COMPLETE $PERMANENT }PIP OM:89:;<=>?ED OM4@ABCDEF?L80 OMJ0GHIJKLMNOCBIOS BAKxQRSTUVWXYZ[\]^_Ã|}Ɛ'@'1Gx_ D:2CO:O@( J 7:O2B@M 8-INCH DISK VERSION * ;* * ;* APRIL 1981  * ;@ DESTINATION DISK ERROR EXIT $ DISK COPY UTILITY VER 2.4 INSERT SOURCE DISK IN DRIVE A INSERT DESTINATION DISK IN DRIVE B uM80 COMab3M80 COMJKLMNOPQRSTUVXYZM80 COM[\]!L80 COMJ^_`abcdefg:CO *[":COH*[":CO :C<2C! !"! *["!  K #  :B<2B*#zC* * ;*  CBIOS FOR XEROX CP/M DISK * ;* COMBI\{OF XEROX ID AFTER BOOT  3LD DE,XEROXID ;ADRS OF XEROX ID IN BIOS  LD BC,09D ;NUMBER OF BY SEEK JP SETSEC JP SETPTR JP READ JP WRITE JP CONST ;LIST DEVICE STATUS VECTOR JP TRANS ; ; JUMP VECTORS TO (05H),A LD HL,BDOS ;JUMP TO BDOS GOES AT 05H LD (06H),HL LD (38H),A LD HL,MONITR ;JUMP TO MONTR GOES AT 38H LD (39H)сR DSKTY8 ARE USED FOR ; CONDITIONAL ASSEMBLY CONTROL ; ; ONE CONDITIONAL ASSEMBLY FLAG SHOULD BE ON ; AND THE OTHER SHOULD Br ;SEEK TO TRACK 1 JP NZ,BOMB LD HL,3C80H+BASE LD BC,0901H CALL RDLOOP ;READ ODD SECTORS ON TRK 1 LD HL,3D00H+BASE Q=NED VERSION FOR 5.25" AND 8" - JUNE 1981 * ;* * ;** ; ; ASEGsTES TO MOVE IN DECIMAL  LDIR H;MOVE THEM ; LD HL,SIGNON CALL PMSG ;PRINT SIGNON MESSAGE JR GOC w DIRECT PRINTER DRIVERS ;  JP POBUSY ;LIST DEVICE STATUS  JP POSEND ;LIST DEVICE OU ,HL LD BC,0080H CALL SETPTR ;MAKE DISK BUFFER=0080H ENDIF ;END OF 5.25 INCH SECTION IF DSKTY8 ;8 INCH DISK WBOOT:  7E OFF AT ALL TIMES. ; DSKTY5 EQU 0 ;5.25 INCH DISK TYPE FLAG DSKTY8 EQU 1 ;8 INCH DISK TYPE FLAG ; ; ; ORG CBIOS ; JP B L LD BC,0902H CALL RDLOOP ;READ EVEN SECTORS ON TRK 1 LD C,2 CALL SEEK ;SEEK TRACK #2 JR NZ,BOMB LD HL,4580H+BASE  , ; MSIZE EQU 60 ;MEMORY CAPACITY IN KBYTES MONITR EQU 0F000H ;BASE OF SYSTEM MONITOR EXTRA EQU MSIZE-20 BASE EQU EXTRA PM ; ; IF DSKTY5 ;5.25 INCH DISK WBOOT: LD SP,STACK LD A,(UNIT) ;SAVE LOGGED DRIVE FOR LD (WUNIT),A ;* LATER U+}TPUT  JP POINP [ ;LIST DEVICE INPUT ; ; ; BOOT: XOR A LD (0003H),A ;RESET IOBYTE TO ZEROS LD (WUNITLD SP,STACK LD A,(UNIT) ;SAVE LOGGED DRIVE FOR LD (WUNIT),A ;* LATER USE LD C,0 CALL SELECT ;SELECT UNIT 0 CALL 0OOT ;STANDARD JUMP TABLE TO BVECTR: JP WBOOT ;THE SUBROUTINES OF CBIOS SVECTR: JP CONST IVECTR: JP CONIN OVECTR: JP CONOUTӁ LD BC,0501H CALL RDLOOP ;READ ODD SECTORS ON TRK 2 LD HL,4600H+BASE LD BC,0402H CALL RDLOOP ;READ EVEN SECTORS ON TRK*1024 CCP EQU 3400H+BASE ;CONSOLE COMMAND PROCESSOR BDOS EQU 3C06H+BASE ;OPERATING SYSTEM ENTRY POINT CBIOS EQU 4A00H+BASESE LD C,0 CALL SELECT ;SELECT UNIT 0 CALL HOME ;SEEK TRACK ZERO JP NZ,BOMB LD HL,3480H+BASE LD BC,0803H CALL RDLZ),A ;ZERO SAVE AREA FOR LOGGED DRIVE ; ; MOVE XEROX ID TO THE SIGN ON MESSAGE ;  LD HL,00F7H ;ADRS GHOME ;SEEK TRACK ZERO LD HL,3400H+BASE LD BC,0D02H CALL RDLOOP ;READ EVEN SECTORS ON TRK 0 LD HL,3480H+BASE LD BC,0Ct JP LSTOUT ;LIST DEVICE VECTOR JP CONOUT ;PUNCH DEVICE VECTOR JP CONIN ;READER DEVICE VECTOR JP HOME JP SELECT JP 2 GOCPM: LD A,0C3H ;STORE JUMP VECTORS IN RAM LD (00H),A LD HL,CBIOS+3 ;JUMP TO CBIOS WARM BOOT AT 00H LD (01H),HL LD ;BASE OF CUSTOM BIOS ; ; ; EQUATES TO SELECT THE CONDITIONAL ASSEMBLY ; FOR 5.25 OR 8 INCH DISKS ; ; THE EQUATES DSKTY5 OkOOP ;READ EVEN SECTORS ON TRK 0 LD HL,3400H+BASE LD BC,0902H CALL RDLOOP ;READ ODD SECTORS ON TRK 0 LD C,1 CALL SEEKc03H CALL RDLOOP ;READ ODD SECTORS ON TRK 0 LD C,1 CALL SEEK ;SEEK TO TRACK 1 JP NZ,BOMB LD HL,4080H+BASE LD BC,0> LOAD ADDRESS BY 256 INC C INC C ;BUMP SECTOR# BY 2 DJNZ RDLOOP RET ; ; BOMB: LD HL,DEAD CALL PMSG LOOP: JP LOOl} v;REPEAT TILL DONE ; ; LD A,(WUNIT) ;SELECT SAVED DRIVE LD C,A ;* JP CCP ;* JUMP TO COMMAND CONSOLE PROCESSORw ;LOAD A 'ETX'  CALL POSEND $;AND PRINT IT WAIT: CALL POINP  ;LOOP TILL RECEIVE  JR v ;LOAD BAUD RATE  OUT (0CH),A O ;SEND TO SIO CH. B ; ; SEND A 'RESET' SEQUENCE TO THE PRINTER ; }INTER HAS DATA  D JR NC,LSTOUT ;REPEAT TILL CLEAR CPBSY: CALL POBUSY ;CHECK IF PRINTER BUSY jA01H CALL RDLOOP ;READ ODD SECTORS ON TRK 1 LD HL,4100H+BASE LD BC,0902H CALL RDLOOP ;READ EVEN SECTORS ON TRK 1 GOCGP DEAD: DEFB CR,LF DEFM 'cannot boot CP/M $' ; ; ; CONST: JP MONITR+6 ;MONITOR CONSOLE STATUS RTN. ; CONIN: JP MONITR uG ; ; 'RESET' SEQUENCE TABLE FOR PRINTER ; INPR2: DEFB 1BH ; 'ESC'  DEFB 0DH  ; ' o C,WAIT ;* AN 'ACT'  RET ? ;THEN RETURN ; ; ; PRINTER BUSY ROUTINE ; POBUSY: I N{ LD B,03D  ;NUMBER OF BYTES IN SEQUENCE  LD HL,INPR2 &;ADRS OF 'RESET' TABLE INPR1: CALL  w JR C,CPBSY  ;REPEAT TILL READY  LD A,C  ;GET CHAR FROM C   CALL POSEND  ǁPM: LD A,0C3H ;STORE JUMP VECTORS IN RAM LD (00H),A LD HL,CBIOS+3 ;JUMP TO CBIOS WARM BOOT AT 00H LD (01H),HL LD (05H),umf+9 ;MONITOR CONSOLE INPUT RTN. ; CONOUT: LD A,C JP MONITR+12 ;MONITOR CONSOLE OUTPUT RTN. ; ; ; **{CR'  DEFB 50H \ ; 'P' ; ; RDLOOP: LD (POINTR),HL ;STORE ADDR. PASSED IN HL LD A,C LD (SECTOR),A ;STOJs N A,(07) ;READ SIO PORT CH. B  AND 04 ;MASK OUT BITS OF INTEREST  XOR 04 ?u POBUSY ;IS PRINTER READY?  JR C,INPR1  ;* REPEAT TILL READY  LD A,(HL) ;GETq ;PRINT THE CHARACTER  CP 0AH  ;WAS IT A LINE FEED?  RET NZ ;RETURN IF 7A LD HL,BDOS ;JUMP TO BDOS GOES AT 05H LD (06H),HL LD (38H),A LD HL,MONITR ;JUMP TO MONTR GOES AT 38H LD (39H),HL LE ** ;* $* ;* LIST OUTPUT DEVICE DRIVER  * ;* RE SECT# PASSED IN C PUSH HL PUSH BC CALL READ ;READ THE SPECIFIED SECTOR POP BC POP HL JR NZ,BOMB INC H ;BUMP[e  ;* TO CHECK PRINTER STATUS  SCF ;SET CARRY  RET NZ ;RET WITH PRINTks THE BYTE  OUT (05H),A ;SEND IT  INC HL ;POINT TO NEXT BYTE  DJNZ INPR1 PwNOT CPBSY2: CALL POBUSY ;IF SO GET PRINTER READY  JR C,CPBSY2 ;*  LD A,03  }aD BC,0080H CALL SETPTR ;MAKE DISK BUFFER=0080H ENDIF ; ; INITIALIZE THE PRINTER ;  LD A,07  ? * ;** ; LSTOUT: CALL POINP ;CHECK IF PRiER NOT READY  OR A  ;* ELSE RESET CARRY  RET  ;* AND RET WITH PRINTER READYJ0H ;DPH FOR UNIT 1 DEFW 0000H,0000H DEFW DIRBUF,DPBLK DEFW CHK1,ALL1 DEFW SECTAB,0000H ;DPH FOR UNIT 2 DEFW 0000H,00 STANDARD 5.25" MINI FLOPPY ; DPBLK: DEFW 18 ;SECTORS PER TRACK DEFB 3 ;BLOCK SHIFT CONST. DEFB 7 ;BLOCK MASK CONST. IRBUF,DPBLK DEFW CHK1,ALL1 ENDIF ;END OF 8 INCH SECTION ; ; ; ; SETSEC: LD A,C LD (SECTOR),A ;STORE SECTOR NUMBER P7Q OR A  ;* RESET CARRY  RET  ;* AND RETURN ; ; ; ;**T CONST. DEFB 7 ;BLOCK MASK CONST. DEFB 0 ;EXTENT MASK CONST. DEFW 242 ;MAX BLOCK# DEFW 63 ;MAX DIRECTORY ENTRY# DoA ; ; ; PRINTER OUTPUT ROUTINE ; POSEND: OUT (05),A ;SEND THE BYTE  RET  ;* ANW00H DEFW DIRBUF,DPBLK DEFW CHK2,ALL2 DEFW SECTAB,0000H ;DPH FOR UNIT 3 DEFW 0000H,0000H DEFW DIRBUF,DPBLK DEFW CH DEFB 0 ;EXTENT MASK CONST. DEFW 81 ;MAX BLOCK# DEFW 31 ;MAX DIRECTORY ENTRY# DEFB 10000000B ;ALLOCATION MASK MSB DEFB ށASSED RET ; VIA BC ; ; TRANS: EX DE,HL ;ADD TRANSLATION TABLE ADDRESS ADD HL,BC ; PASSED IN DE TO SECTOR# IN BC LD  VQ **F ;* * ;* DISK I/O SUBROUTINES FOR CP/M CBIOS * ;* * ;** K{*EFB 11000000B ;ALLOCATION MASK MSB DEFB 00B ;' > ' LSB DEFW 16 ;CHECK SIZE DEFW 2 ;RESERVED TRACKS ; ; }OD RETURN ; ; ; PRINTER INPUT STATUS ROUTINE ; POINP: IN A,(07) ;READ SIO PORT CH. B  AND 0ցK3,ALL3 ENDIF ;END OF 5.25 INCH SECTION IF DSKTY8 ;8 INCH DISK ; ; ; SECTOR TRANSLATE TABLE FOR STANDARD ; 1 IN 6 INT*{ 00B ;' g ' LSB DEFW 16 ;CHECK SIZE DEFW 3 ;RESERVED TRACKS ; ; ; DISK PARAMETER HEADERS FOR A 4 DISK SفL,(HL) LD H,0 ;LOOKUP PHYSICAL SECTOR NUMBER RET ; AND RETURN IT IN HL ; ; SETPTR: LD (POINTR),BC ;STORE DATA POINTER o **h ; ; IF DSKTY5 ;5.25 INCH DISK ; ; ; SECTOR TRANSLATE TABLE FOR STANDARD ; 1 IN 5 INTERLEAVE FAG ; DISK PARAMETER HEADERS FOR A 2 DISK SYSTEM ; THE LAST TWO REMOVED FOR SPACE. ; DPHTAB: DEFW SECTAB,0000H ;DPH FOR U a1 ;CHECK FOR RECEIVE  XOR 01 ;* CHARACTER AVAILABLE  SCF  ;SET ERLEAVE FACTOR ; 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,1qYSTEM ; DPHTAB: DEFW SECTAB,0000H ;DPH FOR UNIT 0 DEFW 0000H,0000H DEFW DIRBUF,DPBLK DEFW CHK0,ALL0 DEFW SECTAB,000`PASSED RET ; VIA BC ; ; ; SELECT: LD HL,0 ;PREP TO CHECK FOR MAX UNIT# LD A,C ; ; IF DSKTY5 ;5.25" SYSTEM CP 4<CTOR ; SECTAB: DEFB 1,6,11,16 DEFB 3,8,13,18 DEFB 5,10,15,2 DEFB 7,12,17,4 DEFB 9,14 ; ; ; DISK PARAMETER BLOCK FORԁNIT 0 DEFW 0000H,0000H DEFW DIRBUF,DPBLK DEFW CHK0,ALL0 DEFW SECTAB,0000H ;DPH FOR UNIT 1 DEFW 0000H,0000H DEFW D+sCARRY  RET NZ ;RET WITH NO CHARA AVAIL.  IN A,(05) ;* ELSE GET CHARACTER 0 DEFB 16,22 ; ; ; DISK PARAMETER BLOCK FOR STANDARD 8" FLOPPY ; DPBLK: DEFW 26 ;SECTORS PER TRACK DEFB 3 ;BLOCK SHIFqT ;IS ALLOWED TO HAVE 4 DRIVES ENDIF ; ; IF DSKTY8 ;8" SYSTEM CP 2 ;IS ALLOWED TO HAVE 2 DRIVES ENDIF ; ; RET NCOME ;RE-TRY HOME IF ERROR INDICATED RET ; ; SEEK: CALL SELEX ;FIND OUT IF DRIVE IS SELECTED LD A,C ;GET TRACK # FROM C} LD A,(UNIT) ;LOAD DRIVE JUST SELECTED  0LD (PUNIT),A ;STOR IT AS A PREVIOUS DRIVE  POP HL ׁ ;RETRIEVE SAVED 1771 STATUS CALL REPORT ;REPORT DISK ERROR TO CONSOLE JR Z,WRITE ;RE-TRY WRITE IF INDICATED RET ;EL2/ ;COMPARE WITH CURRENTLY SELECTED DRIVE  JR Z,SELEX1 1;DO NOT SELECT IF SAME DRIVE SELEX2: LD B,0TED RET ; ; ; WRITE: CALL SELEX ;FIND OUT IF DRIVE IS SELECTED LD HL,(POINTR) LD A,(SECTOR) LD C,A CALL MONITR+39o}O ;RETURN WITH HL=0 IF C > 3 LD (UNIT),A ;STORE C AS NEW DRIVE UNIT# LD L,A % ; ADD HL,HL ADD HL,HL ADD HL,H LD (TRACK),A CALL MONITR+33 ;CALL SEEK ROUTINE IN MONITOR RET Z ;EXIT IF NO ERRORS INDICATED CALL REPORT ;REPORT SEEK y POP BC N;RESTORE REGISTERS RET ;EXIT IF SELECTED SUCCESSFULY SELEX3: XOR A  LD (UNIT) SE RETURN PERMANENT ERROR ; ; ; ON ENTRY (A) = 1771 I/O STATUS FLAG ; ; REPORT: PUSH AF ;SAVE 1771 I/O STATUS LD HL,DSK y Z ;LOAD B WITH SEEK SPEED FOR THIS DRIVE CALL MONITR+27 ;CALL SELECT ROUTINE IN MONITOR  JR Z,SELEX1  J ;CALL WRITE ROUTINE IN MONITOR RET Z ;RETURN IF NO ERRORS LD E,A ;SAVE 1771 I/O STATUS FLAG RLA RLA ;CRY CONTAINS W JubL ADD HL,HL ;MULTIPLY UNIT# BY 16 LD DE,DPHTAB ADD HL,DE ;ADD START ADDRESS OF DHP BLOCK  RET  ԁ ERROR TO CONSOLE RET NZ ;RETURN PERMANENT ERROR UNLESS LD A,(TRACK) ; RE-TRY REQUEST IS INDICATED LD C,A JR SEEK ; L,A JP 0H ;DISABLE FURTHER BIOS CALLS BY ; RET ; INDICATING SELECT ERROR TO BDOS ; ; ; HOME: CALL SELEX ;FIND O@MSG CALL PMSG ;PRINT 'disk ' POP AF ;RETRIEVE SAVED STATUS RLA ;TEST FIRST FOR DRIVE-NOT-READY ERROR JR C,REP2 ;JU7w  CALL REPORT ;CALL ERROR ROUTINE  JR NZ,SELEX3  LD A,(UNIT) ;ƁRITE PROTECT STATUS JR NC,WRIT1 ;CONTINUE IF NOT WRITE PROTECTED LD HL,DSKMSG CALL PMSG ;PRINT 'disk' LD HL,WRTERR y7 ;DO NOT ACTUALLY SELECT THE DRIVE SELEX: PUSH BC .;SAVE REGISTERS VALUES PUSH HL LD A,(UNIT)  4 ; ; READ: CALL SELEX ;FIND OUT IF DRIVE IS SELECTED LD HL,(POINTR) LD A,(SECTOR) LD C,A CALL MONITR+36 ;CALL READ ROyUT IF DRIVE IS SELECTED CALL MONITR+30 ;CALL HOME ROUTINE IN MONITOR RET Z ;RETURN IF ALL WENT WELL CALL REPORT JR Z,HOMP IF THAT IS THE PROBLEM LD HL,ERRMSG ;OTHER TYPE OF ERROR SO --- CALL PMSG ;PRINT 'error ' JR REP3 ;GET CONSOLE INPUuSAVE AS NEXT DRIVE  LD C,A # ;LOAD DRIVE TO BE SELECTED IN C  JR SELEX2 ; SELEX1:ICALL PMSG ;PRINT 'write protected' CALL REP3 ;WAIT FOR CONSOLE INPUT JR Z,WRITE ;RETRY IF INDICATED RET WRIT1: LD A,E LD C,A ;LOAD C WITH DISK DRIVE NUMBER LD A,(PUNIT) ;LOAD PREVIOUSLY SELECTED DRIVE CP C UTINE IN MONITOR RET Z ;RETURN IF NO ERRORS CALL REPORT ;REPORT DISK ERROR TO CONSOLE JR Z,READ ;RE-TRY READ IF INDICAT REP1: LD A,1 ;SET UP A NZERO CONDITION FOR RETURN OR A ;RETURN PERM ERROR INDICATION IN A RET ; REP2: LD HL,RDYMSG {tVECTOR ALL3: DEFS 32 ;UNIT 3 ALLOCATION VECTOR CHK3: DEFS 16 ;UNIT 3 CHECK VECTOR ENDIF ; ; ; ; ; END UQ;**G ;* * ;* DISK I/O BUFFERS FOR BDOS FILE HANDLER * ;* * COUNTERED IN INPUT FILEö:;.ʐ$ʘ[$Nwy#*u:+~# ʴ T y~y#~"MM y*u:+"u::W:` k "*4Ö*"u: |CALL PMSG ;PRINT DISK-NOT-READY MESSAGE REP3: CALL IVECTR ;AND WAIT FOR CONSOLE INPUT CP 'C'-64 JR Z,REP1 XOR A ;RETS! ÏCMAC"<2:2<2;2\:2Y Q ;**F ; ; ; DIRBUF: DEFS 128 ;SCRATCH DIRECTORY BUFFER ; ALL0: DEFS  ~_C! Ók 2VW& - . / 0 G H *CIDCRDCDDRDD*DINARND*NISEG"SET (R: DEFM 'write protected$' SIGNON: DEFB CR,LF DEFM 'COPYRIGHT (C) 1981, XEROX CORPORATION' DEFB CR,LF DEFB CR,LF  ô:W:ʮ "r:  " :ª@ T 5 :W: 5:W:a``#~! _^#V#N!  URN A=0 IF SOMETHING OTHER THAN RET ;CONTROL-C WAS TYPED AT THE CONSOLE ; ; ; ; CHARACTER STRING OUTPUT ROUTINE. PRINTS :2":2#:2;2$:2}<2;!; w#˜<2W:2]:2^:2;> 2 :: =2:>;2b:<2a:!"c:+"<+"e:*2<2<͑ >>g >>0>w#>!w: ʉ yw# ‰w:cIT 1 CHECK VECTOR IF DSKTY5 ;ONLY FOR 5.25 INCH DISK ALL2: DEFS 32 ;UNIT 2 ALLOCATION VECTOR CHK2: DEFS 16 ;UNIT 2 CHECK R CXR ECEFB"EFLEFMEFSEFWIiISJNZSSEGWIiILSE ND NDC NDIF NDM NTRY QUQXjXXXITMXTXTERNALXT{: DEFS 1 WUNIT: DEFS 1 TRACK: DEFS 1 SECTOR: DEFS 1 POINTR: DEFS 1 DEFS 32 STACK: DEFS 1 ;LOCAL STACK FOR WARM BOOT ; Ł2;ͷ ACDEMNOPQRUVX!*;~ pNO END STATEMENT ENHL RET Z LD C,A ;PRINT CHARACTER IF NOT DOLLAR SIGN CALL OVECTR JR PMSG ; ; ; ; LF EQU 0AH ;LINE FEED CR EQU h:=2g:͑l:[:ʣTKЯ2[:͔KdIڪ!OC> 2w:NG> NG7+ !"r:2_:=2~<* ;" ;:w:*>$2w:$2t:T :ʃ:t::RN LOBALkvALTvLTF2FB9FDIFFEFF:FIDN3FNBFTaM)NQNRNC8NCLUDErNDsNDRrNIsNIR"NRNXF1F2FDEFFNDEF@* ͡. ;ͣW!E# ¡ # ¬# ·@ʴʥzʖ=ʐ=|zJz?4)z zā!ͷ’P͌Q!ͷªP}QxQ!ͷ͓G@Q! ͷ y͓Gþ!ͷ ͓Q!ͷZa. ~ #E }"]*a 6 *]}#|#*]E ͐ « f f f {zA|« W}d ͐ f f f΁i.2_!fp+q*e2_2_!hp+q*g!jp+q*i!lp+q*k!np+q*m2_!pp+q*oA 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!EVRPRPC1C1M2MP2NC2NZ1PQP2PE2POQR1ZQD2:DA DAXrDDsDDRrDIsDIR3*HLDOCALJXI8ACLIBACRO:@OVBVIAMErDEGOO=!9 Ÿ!6q!2qC J R q!z z=naO $q$,! ͓Q͌Q!.ͷ6y#G͙Qà!2ͷQ͓͌Q!>ͷq eg͙Q:zJEË DMʡڏ"=ʡͲ=ʡYPͲ1**!O~4#~#F#x~#s#r#w>͐ « f f  . ᯕo>g. =ÃO$*sy͏ , $  ͌ 9!z6 # L!zw͌j# X:z 0 ͘ âê ö  - Ð f  "J*"!"!"2O!" "]""!1!++""M>28!"9:] !í 1 PjOPQRRARG*RIsTDRsTIR*UTR UTsUTDsUTIAGECHLOPR"OP UBLICUSHS$USHALARC!EPTZ&ESETR(ETsMETIsEETN IL;,!Ù!;qz8O! !;,z;qyO! ͣͣW_͕qyO! ͣ͒qy.C–EQyQxQRQ** {zҷ*~#" <AOGƐ'@'OxƐ'@'ON# | 2|2\  !]w# ʫ .&  0 6 #& .K !e K w# ʫ : U 6 #K 6AW w#] !e~H#~E#~X%=N#Fy}80*z{¯#z+++ ¥ z#½# · 9!`͠ y9!rͷk͓ !" >- Ͷ Aګ ҫ _!7^#V~  \p Z z ů2[\͓͢`MY*LjLALCZ,LCkLCAroLDMNCNZPPEPOY.RjRARCZ0RCkRCArgRD"STR2STZBB*BIR4BCj7CFZ6ET"ET3"HLD0IMZ8LAPHLZ:R&O!b q!vz͒q.?*!9"8"͉Z*" +*'/7?v"*2:EI SPHLDI XCHGPCHLXTHLRE/z8O!B N#N ¾SP.* |} !9":q!" 2͐ f "]=f =« *]}o"_  *]"=COPYRIGHT (C) 1980, DIGITAL RESEARCH DDT VERS 2.2$10 !~=W!xe ~#Xbxʇ {z~#o}o҃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 ԁ `i"F & & w# & ͋ « t Y t Y GтWx ͢!o ~Z #N  *. *.  NEXT PC͐ =« {t$I$$A !A@$I$"!$H$I$I "! $A$  HHAA"I @BB $A" vZ*F#n!Is!^#V&&##&))::^#V#*^#V>+)x-8_ 2% ͋*-"*$$$ SUBq:(=2(N *$*& w*$#"$*&#"&' !"N*M^7 !)6:!)ھ *N*DM͆  8q s#r#!V4 !V6# ,® >2Vñ m ͅ m ͅ m ͅ « Vʫ ! XN!~   W Extended Submit Vers 2.0Xsub Already Present$Requires CP/M Version 2.0 or later$:y*###ƒ# yk  , f  . ~ Ͷ ʻ .͓ =« f |« }w#Ä >2L͐ ! =« f }ʫ +"MD Å D  !  # ?$$$I$$H!!! BH" !I B  $$!BD! $!BI D@"!$I$$H"!I )*)þ))>+><7"9.Yͯ * M^2U i_2*ʭ :*ʗ ͯ *N"P*6:2)÷ *N"N!) $@BA$! A "!$"" g! _^! ^#V~ x+ >= = !~  . !   #x f L L ͓ͅ ҆ *" !6 g  җ 4!~=ŐW!xʵ ~#èbx {~#o}où.xsubb!np+q*m2_!pp+q*o  ë «   Ͷ ͐ =« f xY |« }ҫ gA>S Ag}S S i |« }!w s#r:[ʔ  +!$I$I$UUU$$A$ / 3 :2:2ͳ:_³ͯ !6! @!!BH @@ABH B! "BHI$$BI$BI $ HI @ ï +"_*~ #E گ ʫ ^#V. ï ~ CZMEIABDHSP!"M"+"!91*~!O~6=G#^#V#~ e ]xsub*"-!/"*"+!""1 M*!"́!"* (xsub active)$|*y ʥ*"*7* _!~ʦ ![4ç \͢¦ 2[ 7 >?  e͢!g"c> _͢a_!f~> 5*c~#"c 0 @ XoeD$HD$$ H B!$D$"$B$DA!ABI$H B$I $HI$H$! $I   @ x (#"!N#FW( *J>7Å*M|N+"M N:LHͅÅD Å >* *͓ b" . *"] !/~##ʁt **x*́͋<͛ :%*=26͋!7^#6 #6 #6$ 8*7~O #w# !6:6= 7   > >  ͢| } @ >. *_}o| , 0 ë ^#V#!Y ))))o P @   AZUB#UBTTL*UI$ITLECHGR@ORRA*RITHL680807Z80%COMMENT&CREF'DEPHASE(LALL;LFCOND)LIST  ^#VOԒx){?)O8Ē)Zܒo::à:;L::0::à>):: )>  |}:=i:\:i::i*n:~@iڮ >>H!;F#~H¸ *; G~8 #~ +~w#~w#s#r#* ;s#r~w:: o::̒GxĒ> à::Ē::g:::::ʟԒo#::Ēàg:;:; o::̒  yʞ Ͱ w Җ w Gy2;xͰ Җ Ö $.@?_// // &i:~< Ͱ & 5 Ͱ 7 tĒ?{)::=Ē>)@àZܒ^::rĒgZܒoL::(::Ē>)oZܒĒ>)oZܒ:: *PASS2+PHASE,PRINTX-RADIX5REQUEST.SALL)y)? O+ ڷ::Oʧ>)yC͠2;2;Ë::(>")Û::Ē>2)Û:: :: Ē::`Ɲ)͠ËĒ @  G!<:;& ! 2;~!=<  ";^#V!; w#9 !;~J 6!;N z ^#V#^#V#~=z ;G #o #~= NĒ::Ē>)OԒOw7::(>){)::̒ ::)oĒ>)gi;w::̒ rni$*$5%%0&$u&&+&q2'(W2S*S*'%'%''2'<'F'G'33q2)&$5)'(1Y(P(4(6((64 )((((''(a)())''( :ĒL>)Oү::Ԓ OͿ*ͻyH)y):;G¤xG * ;* ;͂  ##͞6zC<’xx )O5)OG)OG)yOO)y)yͿ*)ËOGOOGv̒)OGOO) Zo::Ē>)2:O*y@>*)Ë>)yK͠Ëo::҃ ::d::?͠{):: y::񇇇@O º "n:#~+?;!;w#¡ w#s#rO O +>Ò <*p:~*<####~7_"<:;$.?=O# "n: .(::::6oy & ::à::à>1{)::ul(g::Ē>);::)>F)?{ ((@  F"  (8AGh,*u:~#"u: oA 0 IͿ*ïů2: 5 (#2:Ϳ*::0̒o::}L(LzQ)Gà:: o`Ɲ)p::ͨ@{)Ē>:)ËgĒ:: à?o>6)K@{)y)  *;z :;O s#rw#  "n:;2 >wG#w#w#w###w#? "p:####p*<͂ >8*n:|>!n OCSymbol table full F)Zo:: Ē::Ē>)yBOZĒ̒o&::ĒAZo::(::Ē î::Zܒ  : 7}ɷ[ a { } 5 iͶ*u:+"u:*u:#"u: aR 5 !; q#` !;6#Ͱ  2:a~ w# O::Òwg::ʻĒ?>){)ZԒ::Ēo::=ĒZԒo>)ozAàZԒoz g:: Ē>) с::O::Ē>)yWà::G::>*;#";ª%*(;@;͂ *(;:=ʅ`))0) m0j#"(; µ!G 0 ڙܰO: :=ܰ<_PV" Çþ&þ=5 5 :;2;@=`# @! @#;# ###Fͮ#ƒW>ʞ_x˜GxGžɯxG ±7xx!;~w#4=I>2;T   'D"D( *;Ķ!y" ;  s!}!!!!"S""#!!2#=#I#V#\#e###!###### $s"zW{_s" !b:4:a::;Ÿ:=ʟ>H!*; ~#¤:Z::}<=:~<!h:~#0>:g:> !w:~#  >  G og2;2;2;2:2:2:9";*<͂ ]1L ?O2;=yf ^ ^ ͙ y2;ʭx:;­̶í:; kͶ{::k*;##";:;G5:;G"*(;¿#"(;CͪBêxx6!6**;##~#fo6"6'##"(;"x*ͽCͮ ! ~ 2:A ;: :1 &  15 ?*u: #n #n7 ̈́*#~G Īxw+â"u:# ::ʅ -)0+3-6*9/<;+,+ Ķ>>>> > > >!G( Z" z( o2;( p" xu( eo( ; `zW{_s"zW{_:;*; |/W}/_*;:;Ĥ|/W}/_:;Os"z!)!s"#+}zW{_!*;:;y!y" > O:;yHNG>2b::^:/> H!J;w!w*c:#|+:^:Fó*e:#"e::^:|`>-H́!;w>SHF~#Hw OG:;?5 ,©:;ʩ2;>? :;O:;f xG:;O&_y{* ;YG&!!_~x sBͮx*;++*;#:;G~w#s#r#* ;s#rCͪBͪi:;2;:;ix"Uz H2;*;#~2;*(;<;͂ *(;  *::ʞ7͈ # ʢ*~8x##^#VO#^#V" ;y y??7͈ "n: ==xu*u:+G 2;*u:++"u:G "u:|Gg: :|o|DB|} ||BDHOQĶ=OQĶ ?!G B :;""yO2;̓"!:;y5"2;5"yO:;L"yO# {_zWs"DM!>=o"))]"]" :; * nPX چ|Ą>: MACRO-80 3.4 01-Dec-80 PAGE :*; Q*:#":*:#": ::i:,; i!,;"(;kO! ~*(;w! ā ͶůG|2;͙ y2;: '#:;O ? 2;:;G2;*u:+N{*;2;z̶̶V|=VyWx=zʐ zʐ &ʐ Ձ:=ʪ)0) “0"(;DͶEͶáxͿx0:ͷ:Y::X::W::^::*; :*;  ԁ~8$::Ķ2:##~2:+~+â#~+â#^xOB!V ~PJ2; A ?:;X|" '@ V'$@ i0԰)#&DVH!G 0)T]))_)!G 0԰)))_@!G Gv0 k))))_YHð:!: ;:; ʛ"y :;O*;" ;*;s"z̶zB"|G|"|"""|/G}/O!>" "7>{_zW}o|g="|g}oɯO 4;"(; '"!*;:;*;ѯ:;xE* ;* ;͂ "n:" ;HͽA>͎yo>͎CͮBͮy*n:~GW>͎### ׁʐ ʐ Ķ>GG&";z¬  !";";y2;  2;     !:;*;!9!o>g~#fo:;O ́:7=<2; 2;<2Z:4:}+2D;a>+2D;:*; a:]:a:,; :`::[:m>C2C;:;Ÿ:^::*; ́  O?XOR AND NOT MOD SHL SHR OR EQ NE LT LE GT GE LOW HIGHNUL TYPE :: ::::Aa" ' ɯ + _yWs"z$#|$#|͢"">O0 Gt#͂ P#t#͂ ?P#t#͂ W_ t#i#t#͂ P#t#͂ 7P#?P#:;#*  ҉0Ë7e}} :³ʳ7_<2!~ɯ2|\\FILE DUMP VERSION 1.4$ NO INPUT FI v‚vˆvŽv”všv v¦v¬v²v¸v¾vv81vvvvvvvv ˁ ͊!p+q*͍2!p+q*͍2!p+q*͊!p+q*͍!p+q*͍!p+q*͍2!s+p+q+p+q:  2    L  :O{  *u.5   X{:G!"u~ @  ;> O2;*;\W> O2;*;]Ws"}G_s"}G_s"}5_s"}+_s"}Go{G_s"}?_* ;* BLE PRESENT ON DISK$!Y , <    *$A!6 # T!w $r# *`: 0 [G _ FLOPPY DISK INITIALIZATION UTILITY VER 2.4 TO EXIT TOUCH CTRL-C $ ENTER DISK DRIVE TO BE INITIAL ҁ=2ʦ** w*#"*#"!p+q(+*DM*p*& 6:ep\:=  ẍ́!F͇́(*u#"u x  8 |.{0_!N(G @(    @ i;͂ :;_ :*; O $> 2*;J*x 2;xGY$:;Y$* ;* ;͂ :;G* ;" ;::""; :;‡$::H *A*! ~ ʰxkb))))_y‘BK{ͅ*!66!"80*{#z+++ # IZED (A OR B) $ DISK IS WRITE PROTECTED $ TOUCH RETURN TO CONTINUE OR SPACE TO EXIT $ ILLEGAL DISK DRIVE$ TOUCH RETURN WHE /ͧ!t6>!t%\= >!t6:t<2t=O! ~2u b:<2O>9b!60+~9b!60+4:uat:u_2u:uM x> L2:G>[L!N:ͷ\!4>+ x*w>*w*:G**~G2;<2;2;*;]$$>2;G2;*;]$$>2;G2;*;]$:;J*:;;%o& ^#V*;͂ @ !9"1W͜Q>2!͢QG}DrYQ|͏}͏#> ex͏#r* _> e> e hʉSͧ!v6!"v!|6:|Ҁ!x6 2}:} Hk:} h:}$6 2}$*}M3:}02}O> ͧ3!z  7I eF >=PGT7:($7?>2f>>= ! Band Too Long$Parameter Error$Invalid Control Character$Directory Full$Cannot Close, Read/Only?$!9"!͇͊!p+q* 1>2*x>2M "(!"!"! "!"!""x2y2  ` : :Ga8xA8 @ 6ͭ:}"!}5́ͭ́3*yM"h:}^a a2}O>Vͧ^:}>*z& ~ !z4í!{q*v#"v͙dͧ*vv :{w:x<2xO>}|ͧ H:}<,:":,!:4~=«+!;~4+!J;~4+!X=#;~# V+ V+V+ V+ :+!;p"n:H$!K"< ڒ+"n:~w#~@´,~ p{tN READY $ $ VERIFYING DISK $ INITIALIZING DISK $ FLAWED SECTORS $ INSERT DISK AND TOUCH ANY KEY TO CONTINUE $ Ё&7'v'"u:xi'd'7'v'~,'#"u:''"u:yd'd'# º'i'Ͷv' <Ē" ' " &' '*u:+#~>(T] @ Xʅ% "u:%y%" G( ( ç%)( ȸŸ%" ʾ% ,5%)5%O:;i)y,5%x "%'ĒO( G" 0-!6]:ͧz2~e:~2O! 6*~& 6$>!~_z*~& w!~5Bx:yͧ*v+"v k+#^#VHk+*; H *;{Hl*u:!"c:"e:!=-w!<>8:b:8!b:44!2-w!=<>8,*:|,́ @* ͡. ;ͣW!E# ¡ # ¬# ·@ʴʥzʖ=ʐ=|zJz?4)z z , (z( '#*u:z̒}O|G:*; T OĒ7 #~@w ~Īwy,'(J;O`(;; *u:+~# }(}(g(g(# @  &x)%? " %&x) ,%x)y? %b&%:=W&z*;#";::Ī@&*;:;G]$%:::*;U<2*;%͋ wA v ~_{ozg 001 $$$$ SUB ݁:7=<2;ā2;,!,-!,-*:|N,>,H:7=<>,NǴ:7=<2;ā2;!,-,\,"H*;|t,d,Hͮ: &)pJ* /’T B*/’? #~ª~$w$+" ;>2;!";Y$>2;:;üT u* ̈́*#~d{*~w,S*͒o*wͪ "u: (’( '’O[(5 ( )Ē? >2^:? 2^:? 2\:? >2\:? >2]:? 2]:? >2]:? (>(:=/o::? }2=2Y:? >2: @ y,u&:":=&G2"::#:=ž&2#::#:<2W:&2$:? ͘:$:Ę:":̘!#:&=? 4=2W:<2$:? 5&:":_2>W!%:7~&$:&w!":4 @ =ʋ,>H;H{HNo Fatal error(s) Warning(s):;GHk+-!,-,REPT/IRP/IRPC/MACROUnterminated -!&--> 9A? 2:? >2!:b&2!:z’:*; {=ʒҒ<2 :gkb&z’::{X) ܒ:*; X){2a:4T ’:;u)>!;w::"n:i/+<=ʌ/+Ä/~>.!1!1?*0%0,0 0^-"{<%͍8w-~<=ʻ-:<<2<:<:<=2<<#~§-:<§-:<§-7"{<:}<=2}< &.*u:~ . .T &."uy77!*<*<*2<"<͂ V4:8:b:8!b:44!2-w!=<>8,*:|,́ہ2x2*{<6-2<*<Ͱ7Q2w:7!1 )2*<*<*<"<"<"< bk1:}<2<t2ů2;!;G~ªw# 0;0!( 1w+ /"00b&:*; 0: :w0W0PX D0|B0>:ï0)0͛0>)d00͛0=`00D͇0E͇0  :.>&2<Ç.&.:<.>&y72<*<~T.;I.O+I. 9.x+~I.+.:<*<~ʅ.;z.O+z. l.x+~z :4 ʒONG( ʟ4NG4> NG> NG:*; ? ʒ2,H:7=<>,NǴ:7=<2;ā2;!,-,\,"H*;|t,d,Hͮ: T :T O§2y¯2y ·2y@2:<=2<:<<2<:<:":È&:<#~>&!ɷG-"<Ͳ/O:*; 2*<-y6+, &)pJ* /’T B*/’? #~ª~$w$+" ;>2;!";Y$>2;:;üT u* ̈́*#~d{*~w,S*͒o*wͪ >0ï0x͐0x0:ڛ0 ¯00O:گ0>0ͯ0y*0w+"05 *00Ow+ 0 10w+ 0/0w+00000{ʁ.^.<*u:T &..G~# ʥ. ­..Ù.x.G .& .5 "u: . .5 ...Ͱ ´..Ͱ ... ;// ##^#V6#"y<~(wG-"<Ͳ/ ,5w+2<2<H;H{HNo Fatal error(s) Warning(s):;GHk+-!,-,REPT/IRP/IRPC/MACROUnterminated -!&--> 53( <Ēw+:*; 3GC3/ ʍ3>ʐ3$3" <2< 3 ʆ3:€3ʐ3À3À3n*~8~w#w#w#w"r:Ϳ*:*;2`:Ux¤x 2_:*r:"n: x:;"r:~w|2`:Ϳ*x¤*r:̈́*#~ª~@ w#s#r#* ;s#r=*u:+~ 5 5 00!:͂ 41#6 +͇.&̇.:ʇ.! Y1iÇ.!c1h ?Stack overflow, try more P s8. 7 /88 / /+8"<7 7> y77: :7=<> NG> NG!,w:7=21*<>2<91͑-3 .;.'3"3͇.3G- .33"<H:}<,:":,!:4~=«+!;~4+!J;~4+!X=#;~# V+ V+V+ V+ :+!;p"n:H$!K"< ڒ+"n:~w#~@´,~Iwitches b&:*; ʘ1" Q1T :T ͑-1w:y7 1ɯy77!*<* @ @ ^#V{8}#9+V+^{9w#w+++8 ~"n:@w#~:+F#~#^#V###~#HE9ƒ9ͩ99_®9{´9{@Ŀ9{ʷ9{_!~ @ ]6"<97*< "<*<͂ ڇ8*{<%:}<͂ ڇ8*<͞66*<{_{M7s#r#>w#w6c7s#rh7"<*<6s#r{_*<{ RELCRFPRN@@eH!;5ž9:;w!b:4:a:ĩ9*n:~@w> H>*>M>C>UHÃ9*n:#{G#^#V#^#V" ;""n:#~ H>IH!*;"(;k*(;6!*;@16*<w{ʕ7̟7"<{_6z6*<}7}o~Ͱ7{7̟7{_6{ȯw#w*<s#r6*<6@@%P|w~G#^#VH5@Cq#p*<{8*<"<~{_6{_{78̟7*<*{<:}X==ʮI!=ŠI!>êI_!= I I H~II7ȷց> NG>!">!7=: =îG=!"=!=:=G~GH2ʹhMG@RSUXYES Ϳ Â!O^2H)2G:2ʹ:>`ʼ[A@2=ԭFx ږE =E7GÝETE7GT77GY7ÈELE7GS77GT7>ÈER77GD7R7>ÈE> F6 #=`xecution]:ʶ:ʓ*>*F ʓ~`~x@w+++?>GO4 ~+D>Z6 #=S*>!3  2@ *>~O_:{tuC"=uCʿC:CG:CO*.µC# §CÿC µCÞC2uC*+++"=*=:=2=*=F:B C2=2 =2=2=2=2=2=3,!!JOC@@J> NG!'JOC{GDISK FULL* G w# HwX=8H@: =3E:7=<8HH> H> H>H*>>7=ͮH>7=/H:= xʼҼʹ‘ʹ" _2:n2-!~w:@ ~w:2 2*| Ey.2=̭F=xF(F7GFy/y7GLAF2 =7GO)FNLF2=:FOWF2=:FRbF2=:FCpF2=2 =:FM{F2=:FI†F ԁ+++y++:d:2@ *>[*͒ (! >G~#͜~@+^+V*D % s#r͒ (*< 2=<2 =2 =ZCů2=dE=GE= *D>2=!=;E> 2=2=2=y,2=TD:=2=dE=:=aD=GE=:=2 = 2 =~D:=@2=!7(0!-J:>J@PKw#2=.K!Kwԁ3E:=8H>=I*===ͮH==/H|}ʹHƀ)`i I> H> H> H: =3E:7=|I#">>Kyȷ͜~@!"F *|*~ ::VA G@x CA G Link-80 3.4 01-Dec-80 Copyrig2 =:FX“F>2=:FZŸF2 =:FP7: =<2 =:F7G[F0FAF:FðFO!~6GF#~ FFBx+#F~F2=G2#*+"">"F"<"Dgo""222222!%"@"8"B":""!"\"Z"`"^2-2 !"X?No Start Address?Loa7=;Ey=7dE 7GE=D 7!X=;E:=!=E!7=:=D@==> =DE: =D: =D: =2 = _ #J2=.K!KK6 #K:=.+Kw#+KpQJ-JPK2MJ2NJ:NJ={KQJ-JڐK!QJ"OJ>2NJ*Ow>!7=>J = I!=>!= I:=3E:=MG*=|=2I#"==w:X=<`GI*@|̅I#"@@Cht 1979,80 (C) Microsoft ?Command Error~*#ê~# ʴ ʴ`{ +!~G#~ x+#~:+ =:=G{G>*NG B> NG:B!B"Co>g6 #> w~# 7G 7G uG#"C_*C+~ #F#"C+~7ȷ> NGzding Error?Nothing Loaded?Out of memory!|ó!ÿ!ÿ!ͪ2*!h~4!^ͪ>2+22iڼ ʡ,ʡ/¼ʹ2GͅG͛G*=##: =2=G= ~5E5Ew# +E #+E w#>E:=!=~ bEw#XEͭF:7>ˆExdE7GOx=y©EAJ~‹K7ÐK#"OJ5d>** > *:!o>g6 7ff ¼ʹ S:+S#ʹP¼22!  wʹ:¼6GO:-ecords/ BlockSectors/ TrackReserved Tracks is Temp R/O Disk: d:=R/OSet Indicator: d:filename.typ $R/O $R/W $SYS $DIRDisk S/%E FILE ON DISKSOURCE FILE INCOMPLETE-!gr+s+p+q!h6>fr*d*f!is*d́"dPY! "f>!h#~Haͫo!h6:i0O͐!mr+s+p+q*l`:] \<œ!x͕c2|\ ¢! DMͿ\õ!͕c!͕u AnA2Aͦ͊!ŁL!*p+q*)O2'!,p+q*+O2'O2'O!.p+q*-LRRLR\LہͿͲ"\"`"Z"^*8*@"8"*@*B͌BK*@*B͂"2,G<2-ëz6#z:-OͿ[tatus : DSK: d:DSK:User Status : USR:Iobyte Assign: =Bad DelimiterInvalid AssignmentBad Delimiter: Bytes Remaining On  }*3 Copyright (c) 1979, Digital Research??JCON:RDR:PUN:LST:DEV:VAL:USR:DSK:TTY:CRT:BAT:UC1:TTY:PTR:UR1:UR2:TTY:PTP kTZs#r*lڶ*l+s#r*jN#F+q#pÌ!nq!"o"q}2uo&"s* s:n*sDM2u:uqos ?͚u c͊2!?͚!͕u cA7nA2Aͦ!͕u c͊!6!?͚>ͦ͊!Q͕SYSGEN VER  R" O!/q*/& L!1p+q*0#L~*##N!ͽ͞"T!Vq*VMͳ!Xp+q!W* >Wr#MͲ!_ cDxCOPYRIGHT (C) 1978, DIGITAL RESEARCH  o&)))))))a{R/, Space: Invalid File Indicator** Too Many Files **File Not Found Size Recs Bytes Ext Acc65536 set to R/O Invalid:UP1:UP2:TTY:CRT:LPT:UL1:R/OR/WSYSDIRR/O R/W SYS DIR ** Aborted **Active User :Active Files: Drive Characteristics6*s"s*o͊O !v6>!vQ*v&w 6`i+46)A*:'ʓ:'O!) ~2vʍ:^2.0SOURCE DRIVE NAME (OR RETURN TO SKIP)SOURCE ON , THEN TYPE RETURNDESTINATION DRIVE NAME (OR RETURN TO REBOOT)DESTINATION-p+q!`6>!`6*`&*^*`&Y />!`4 >*]& ~ O!]49!a6:a*]& ~2bO>z*bM >__> ̓> ̓͊~̓#ÚO****!*$*'! ">2!4:(wNͯ>2 Disk AssignmentWrong CP/M Version (Requires 2.0)!9"2!T OË!]6:\:] Hr3 Ë:\ʀË5536: 128 Byte Record CapacityKilobyte Drive Capacity32 Byte Directory EntriesChecked Directory EntriesRecords/ ExtentRvO!w 6,]!v6>!v*v&w ~һ*vM !v4˜8AO͐:͐ͱ*##N!ͽ"* N#F*͠"ҁ ON , THEN TYPE RETURNPERMANENT ERROR, TYPE RETURN TO IGNOREFUNCTION COMPLETEINVALID DRIVE NAME (USE A, B, C, OR D)NO SOURC!b/~,H~:H~*H~.H~>H~<H~=H*]& 6!]4T!]4!cq*a&Y :cw!a4:)!4f!^!*FNͷyj*DMͿ2: K!͚u c͊<2:\_/:)j*"1!u͚b͇ /ҋͺ *2!"q*"&L ͐ ͐ ͐!$p+q*#~*#N͐*##"#÷!&p+q͠*%DMͱ O O!(q*(&R(>!H% - *DM ͱͷDM  ͱ* N#F 9ͱ * ^#V))DM Tͱ* ~!)6!)6>!)=:)!)w=*)&*)~2):ͱ !+s#r!+s#r#4D ͠:\ʹ :\=Oͳͩ !6!)6l :) :)=2) :] & !"}2\!h6?!;99:Y=/9&ͩ c,Hͩ 9 EHͺ i`N#Fog_og_ogDk ä  ͐:!O!Y DMi w !4C F :¿ >F : F :=229:Y= ;>9*&Y DMg!) N#F'k͐ͫ*)) N#FͫR͐/͐ *) ~IO͐NW͐ͫ8AO͐:͐ *) ~2)t(͐:)҃)DM oͱ*DM ͱ*N#F ͱ * N#F ͱ͠!p+q͠*DM':͐ͫZ"!6> *} *M)*)& *):)2):):*)!) *)) s, >X\:)“>!d!")>!)d!" j6?\:'C:'ƀo&")!)6!"):)/)HҘ]!)6> !)ڎ*)&*)*)&*) y!)6 Ä:)  M!>))덑o|gҘ =†DM!>))ҭ =¥~ ³^#V) ½^#V|g}o _{ozgi`N#Fogo&og_{_z#W ؁ =2 I>!6:=28 :2:2 :!!29:Y T >:Y,e \>Ì !p+q*~:ʉ *N͐* s͐*)#")Ã& \!"))\Ұ*)")]͠*)M! ^#V *) >*) w *) >*) w *) >*) !+s#r#4 !s+p+q!6!66:!ڄ !6!6>!r *&**&Y i !6!4+4A :} :!)!")*++!)a*)) ^#V")]*)")*)) ^#V")]!)6> !)T*)&*)~2)*)&*)~2)O;*)) ^#V"2):)<2)M*)#")/:)ҩ*)+")`*")#"]!*)!/H!")!"]*)) *)s#r! ?#"o :͐!p+q!'"!6> **{2*́"PY! ">!+~H !6:0O͐à k͐ w *) >*) w.*)DM\ -+!\6uͱ:)O! DMͱ*)#")Ù*))))))"):m w>.Yn 4- >!699 2¨ :!4: :2!6+6>! :O!9 DMi ͱ:!O!Y DMi :2c)*)) *)) N#Fq#p*)) *)s#r*)#")!)6 J:)!)J!)6 :)<2)*)")҈q:tw͠ͱ!o)6> !).*)&*)*)&*) w:)<2)*)) >w#6*)) w#6*)!) w#6*)%) w#6*)) N#F*)) q#p*)%)@b͠Q" 8AO͐jͱͷDM͏ m  Z"l"!6>ʥ *}҆ *M ͱ*}x O͐} W͐q-:YS:Z Hҧ!6> 2)½>!)6> !)*)&*)>2) :) .͐*)M͐:)<2):2͠!4 F :® )!6>!ګ ͠:O!9 DMi 8ͱ!6> !ڤ Å :2"))ҍ*)) ^#V")]͠.*)DM\ -°!\6:\ͣ:ͱ*}DM'ͫ*)%) N#F'ͫ*)@^ZED DESTINATION$CANNOT WRITE$INVALID PIP FORMAT$CANNOT READ$INVALID SEPARATOR$1 :2L> ̈́M9 NTTYCRTUC1CONNULEOFDISK READ ERROR$DISK WRITE ERROR$VERIFY ERROR$NOT A CHARACTER SINK$READER STOPPING $NOT A CHARACTER SOURCE$D!p+q* !q*& *M *M !p+q*!!p+q*"!p+q*$!6 @gHHͯ :^!w:<2:0}:@E}:!S!W6: z!]6:cm!c6:_z!_6l@221@:2!o6+6+6!6#6!6#6:G*o .!N6:^*M^!K6!6!6+6' :$ ABORTED$BAD PARAMETER$INVALID USER NUMBER$RECORD TOO LONG$INVALID DIGIT$END OF FILE, CTL-Z?$CHECKSUM ERROR$CORRECT ERROR, TYPE R  !kp+q*j> >ڪ Þ !qp+q/ *pDM9: :M2r:N!r !:r *r& N!r4 !6: (INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE) ؁ ::,: HHҰͯ : 2ó:E:1:2v!q!*8!*6: > @::=2K  :ʤ\:ҷ\x'Ͳ:!\͢  :͈'! ETURN OR CTL-Z$INVALID FORMAT$HEX$$$$NO DIRECTORY SPACE$NO FILE$COM$START NOT FOUND$QUIT NOT FOUND$CANNOT CLOSE DESTINATION FILEy͔: :ͳ.!ws+p+q+p+q:w=2wN *s*u w*s#"s*u#"u' !"*M^7 !x6:!xھ **DM͆ (INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)ͦ>ͦ!q:_  !p+q.*   !q*&!p+q*2@:$: $͈Ͳ!N6' :!Cwͯ !6:^͢c!6{:/>!/H{ͯ :<2ԁ$DESTINATION IS R/O, DELETE (Y/N)?$**NOT DELETED**$$$$$$$NOT FOUND$COPYING -$REQUIRES CP/M 2.0 OR NEWER FOR OPERATION.$UNRECOGNI&2yʭ :yʗ ͯ *"*6:2x÷ *"!x4d !"/ !j}=2| !"*KM^'_ !z6:|!z1 *ށ COPYRIGHT (C) 1979, DIGITAL RESEARCH, PIP VERS 1.5$$$ SUB =.:,<> _[]INPIRDPTRUR1UR2RDROUTLPTUL1PRNLSTPTPUP1UP2PU!p+q*2!p+q*22!p+q*!p+q*!p+q*!p+q*2!p+q*@Š ::=HҮͯ !6:Ҿ:2 !6::/H͈;!6:> !/>d "}*}DM͆ ' ͯ *"!z4 :e !"͆ !z6:|!z '? 2*H#"H!{6:{ր!Ң *{&Ɂ`ҥ*`MͭҞ!`6!6> :é:(!q:!wO! ~2*& :w>!:!4!6>:N<2N! ^#V͎ڗO **~2*#"m2m͖ 2m!6m!6m!6 m2mr+s+p+q*~$7*>*>H&>*#"*#"> 2:R͎:!6!6=2:ʙ!6:“H:!lwҙ  â :0O !q:O| :O| !6:]2l:o'2o:n'2n:m'2m*mMͣ *nMͣ *oMͣ :]:[ ͱ!N5!6:%:<2*6 * 6å!q!6> !d*&I :]>!4A>:<2O* :w:?† :{4 2!{4m *":ڹ ͯ !z4I '2!"!q: !4>!S :S! :2*M> *N& N2 !p+q!6!6+6 !6: S: M!6g8:N2M*M8p!6!6!6>! cͯ m!62m!62m!62m!62m'2:2:TҒ:2 ~9Ž>!6-e!6ͻ2=2ʺ-é:>>"ͻ2:!!5ͻ2ͬ!\ ́:   *}2D" * * *&"!q:UY: Y:ҩ: ʩ:_2ʘ:€!6< !6!q!6?!:ҠgÐ!q*&*~!6:22: :]Hں:A2O>: 2ͯ  :! ^#V͎ * :w*#" = = = = = ͯ  *M !6q  !6q  !6q  *& !ρڕ*&P 6!4z!6!6#6#6!6*M8:ھ:*͇g2ê::¿::,͡A<2O>!6*ME:2::Ҳ:<22ý: 2:} >ͯ :i:2:d*M:[ N-:>>!p+q:,!6*DM9:<!6:z 2W!6D*&L :w:<2Ov*:>=:<2!ژ!6 >!]Ҥ; !6:Q::H: !6*M : !6!q:a/>z!÷:S:QHI:N<22: H@"2Í202O> c!6Í202O> ڍ*&O*6à  !6 à  !60à  *& !6  !6  !6  *& . 1 4 7 : = F P [ f q  @*M8):[ͱ!N5!6ñ:5!6#6>!ڰ!6:<2O>/:!O!T *M͡H~K:Ё*M:>!(:=2%> >>!F!5+N! ~2!4<2T>>!b}*bMͭz:b2!b6:<2é>!k20O> ڒ:0:AO>Ҥ::A }}Hͬ!wͻO`idͻV[2O>2:!X!6:!x/H:_2:!q:A/>Z!/H8: 2::=O>m:W!Q} Hmd>9>!6:2*M!E4& !sc*&P :w:·>!ұͯ :22:_!6=!6>'!E!4!p+q*0 !T :2!q: " *M n :c4 *M n :2!c:Q !c:2: !:cw>!n !5 Y : { !6!q|¡!6[–ͱ!N5:2:2!4=:[¼ͱ4:!6:.2O8: :* ͇g:=O!L NE!4 E E:/.*&L 6$L9k9.Xͯ *KM^020@!4Q>!қ:=2á:2:Ҭ\>!ҿ:=2K:2K!:!:K\: \!p+q͈* *M  *!M 1m! 6!6! 6: 2Ebͽ!e:d\::eH2 H҆ͽ:e2!:d2e:!2d5:X!Wғä:ڤ*MEÓ:ұ@@:O2Mc;!6#6>!)*&P ~"::H:HB COPYRIGHT (C) 1979, DIGITAL RESEARCH DISK OR DIRECTORY FULL$FILE EXISTS, ERASE IT$NEW FILE$** FILE IS READ/ONLY **$"SYSTEM" s :020:121'ͳ':²ͯ !G6!"!"7 *M^n/ :a/:H!6:ͯ !&6@ DM!  ::=H-\:N2O_og_{ozg^#V))) _{ozg^#V) d^#V|g}o n_{o hû :!I¬!: :H2 ҮX:h2iҐ:!ʍ:!:!H:!H,!"! 6#~ F G:H:H"!6!4:_jYO jM*"S*" 3@bl*M1͓!"" 0FILE NOT ACCESSIBLE$BAK$$$BAK$$$-(Y/N)?$NO MEMORY$BREAK "$" AT $1mM"m +!8s~!b!ͯ >!`0ͯ !q:E:24J!46*}a!44EJ *KM^'́:‚@092zgO{ozgi`N#Fogo&og H ©=¨')ͷX:! X):i!h)9 e:!:h2jO>F L>!":i!jHҼ*"+M ~ ʼͲ!f6!h6!"7 *M^͆ \͔!":͎H*#"ͧÝ/ :>͛9ͯ .*#":_!9m++s#r!9+s#r9";9;"^*mM 6*m+"o!o#s#r!6!f6!6:] :m H}- :\k !36'n::0:f9OY#9.3'ͳ.:020' 'ͳ'7 6'@@́! 6F!f6:h2k!iҠ:i2k:j2h:k!hҶ9 æ:h2j!!6:j2he:! >"Ͳ*"M ~2!O :! *+""' !'6!36' :1/!aE*#">z?C9IͲÁ.!6> !ڇ*&' ~2 ʀ: y.*M2d‘ 2dÝ:d=2d!\6:l2e±:d2eø:e=2eEU !M6 !""*o"$!h61m!6#1m!6?1m!6>1m!f6!j>A+!s!"@͓1!"<**"͓n "Dn"":!Q2҂@v!!6e*!M͛ /$^L:!@OL:! 2͑e:b:! L:h<2hb:! b:hO>!hw:! pX:! …!!6  6:n!oښ *mM !o4‚ !pq:p ڪ >:p :p H:p H!qq*qM͛  ^W :q@2q*qMW   !sp+qN ͢ *o/ Ҧ Ͷn! 6!"&R! 6o$ Î Ç :!S0 $͢- :2"+: ;*dM .=\ -=ͨ ;: *eM =ͨ .M= -C!q:Y*M !q:a/>z!/H!q*F×͢җ:Ç :!T¨F :!U¾: 2 :!V͎"$DMͩ/ *oDMͩ : 2 :!=e !e:d*eM =e : =e =͕ !]6:x>- !"!76!6!6!66*dM  *dM !6:8!3LÊ!!6ûô:!ʛ͑:! ҩ OҸû:!R†!6G>!!!6 :2.t *r !up+q *tDM !wp+q*v !zp+q*y2x!|p+q*{2x!~p+q*}2x!p+q*!p+q* &+s#r!:* *& ~2!:<2 :!W> v :!X³ Z͎\ Ee ð :7/҃ E!76e ͕ :xƒ  MaҎ:_:!q:ҥ*My:!p+q!'"!6>**ͪ{2**ͪ"*! ͪ":!! E (::H%^bF : ͎H :!Ay! 6*""&*o"(R͎an͢na! 6R :!F” *`*;DM \u 2xʻ>!xҨ- *`*;6:82*`"`:<2w!"`9`h*`*;~2*`#"` R-? >!!6!6s, !6:xB!6OU2!SB!G6:҃!6:G҃*G& ~2!:G<2G8!p+q*!p+q*2x!p+q*!6   >>! q* &!p+q*=- ͷ*&"K(Kڰ *KM N͔*K"KҌ :!Z ͎  ͢ : :!  'v!gq>6:0O  ú!p+q:/(*DMͩ:  : I N* *DM:aO>!Һ x!: ߁͢ґ Ä :!J $:2$͢ :=2:<2!*& ~2!ü*""I*M*o/!:"8:*eM !b+!s{!f!6:!b*b*^DM =ͅ N- *b"b:<2)f!"b!q9bڀ8_ Qқ=e  b:!-®! 6:!#¿͇;J:!:!!6Lv:!:Jv: *#"͎:7 e !p+q*DM  =? ) !p+q.*DMF -L *9"`!"b!h6!j6!|6.!=\ -x :f *g&!lq:l $ !h4:l 1 !h6*lM :hB     !h55!mq:m :hO>H2ny} !m6 !o> ʡ* +" >¡! 6: <2 =O! N͒:  O͒: ! 6:h!o$OL"&! 6R*I""ë :!M:H| ! 6>F ͛e: <2 O! Hqy d F : 2! 6*#s#r :!с*b*^:w*b#"b!q:6ڶZͅ ʱ- !66*6& :w:6<26!J6*b}:J<2Jm=? :x- ! 6:!B)! >w!"&*o"(R :!C:eR :!DKeX :!K\ͷX :!Lj^ :!Pš͎҇! 6Q!e:dʥ *eM \R :xʥ @ *dM \, :x \͕ :x - V :e _ :f w : j* ͸ ! 6 !h6!: 2 3* & 6 : <2 =O! N͒*dM  :sGsu n>!6:<2=O!ڊ͛Íq!!6 !!6 !6*!Ma2D*!M͒2!:D/!+w!6e2!͢!Eq!E:!:H:H!Fq:>/;oH*;#"(";:92=*=& *(M !::=2>/H:=<2=*(#"(æÀ:>*(+"(R:>!6wͻ UͲh!ͻy͑yBK͂O! s#r!Z s#r!^ s#r ԛچ!"&Ô""&*""&$mڸ*o"(**$"($"O26͛*"M :6w͢:6 @ǁ N͒!">!"͎/Ҵ*+">>!": *#"*""*!".+",*$"**o".!",!36:3{.*FM8 *FM   Oy2F :FY5>>:!02HO> /!";u*)))*) *H& "P $:2*o/*!My:<2=O!s Hq**DMͷ! 6: e!"*""?k*&"?*?+M ~2A :h #^ s#r! ڛs#rҮͻy͑!Z ~#fo!8õͻѵ!@͵Ͳͻ}_|W>2,*Z*\ L!7q:*7M͒:7o$+͛ͪ*$M ~28Om:8 I͇͢u$oqo͛rP! 6!"& @ *22*,**"0M ~ H3*0"**+"*+">23:2/k!36,*+s#rx:3x*0"*: ! 6+s#ré! 6"DM!>))덑o|g =±^#V) ^#V|g}o _{ozgi`N#Fogo&oAHҏ *&"?(?:A ½8*#" ҽ*?M ~2AO *?"?ҕ!"*"*"^: 2B! *8*D:- **8*DW{_*8#"B":":GʹO0q Rq)))pfp)o>g>y +%Overlayi*$"(R͎ҔM͢ҡÔ($ҵ! 6R͇vͶ2!*!Mm$"*"M :!w͢:! @"“**"&*"+"(á*$#"&**#"(*"#""*$#"$*"+""*$+"$*#"!4qM*"*$: *(y"$DM}|C#~1g_{_z#W H =+ LIB6F:B2 o(>&H6͛9!C6>!Ca R>:C<2C?! 6!"͇͢Ґq"ng areaDataProgram͡d!wͪ! ~#foͪ!ͪåͲ   }<=ě yy7e2!:! : /HH/Q:! @!!6 R!!6 :!KR$*& :!w:<2dn!:s+q*$";!>6@ *#"*&DMyxC 1*+":4?w+"$""ͷR: —*$"("҈! X$$$$$$$LIB.yM7,Ͳ# !ͻ> _!>?*~#*!SE!Yó Not Found> *> *>26eU2"b"d2"f<20:-*8*B*:*D*Ҿ ò .ò ! ~#foBK#:0= :f*8|  }#L~++GOŸږ H+ڴ « – yڵ >t t *> 7~ ~~ <</_*F |}!6S]~@8:,~@w+~_q+S:/=*>Cw+p+q+r+sî !Iͪdî %Mult. Def. Global ~@*+"PY͔>BKů͜~+ڞa͚ d͚  ͚ >0Gô /}o|gҜ x0´ ´  > x*$MEMRY*!w# ͜ ~@ +^+V"! ͪ2! ó yԑî !0ͪ>/*dî ~W+++~*+&%2nd COMMON Larger /*"b |2f*8 ԏHî > ͜~@wî 7:,>ʔc<;>2:6_<26!e~eª! w#! wͿ |!jʿ !ͪd*DMÂ![Begin edp#:g*:| %}#͌:/=Z:,ZOw+p+q+p+q#͠B ++s:7>€ʹ[?@ ?#6Y#6M͔>*>*F ` ~O~@M +^+Vl > Ͱ +~Ͱ 3 > Ͱ =L ͈ >~T <</O  Ĉ z!r |q }͂ ͂  dN+F@·:,zʮ î |ʮ :,r#sî :,|ʮ Jzʮ #:/=>Bw+r+s+r+sî *#"!~#4 C?Start symbol - - undefined ~## n REL7*}2:`X i  :- dz  @ d`  Ձ:0=ʉ>G:/=ʓ>@w*F ʓ~`~x@w+++?>GO4 ~+D>Z6 #=S*>!3  2@ *>~O_2x ڎ ʡʹÕ> ڲ6 #=x2y.xʹ!~ 6R#6E#6Lyʹ[0G ð > Ͱ > ð :ʷ )0*) ¦ 0*£ |ͼ } *0:d! ~#foͪ(Ͳ͒ (͒ (><*"͐6+wxG ɯ2/* 78͋Qz͋z!wg4#6 _y w#k!  *> ʜ >w Ì f :ʯ t ! ͪ*Xw ! ê Undefined Global(s) Bytes Free 2 f r ~O~>- >  >i:-*8*@ *\"Z*\e*8͏*B*:BK*B"B Ԃw":"8""`"^ u*\*Bԁ+++y++:d:2@ *>[*͒ (! >G~#͜~@+^+V*D % s#r͒ (*<SA :[ ] @ \ ^ _ O͔:,`:02/͠BK|ʮ ~_q#VpOî :/=q͠>@w+rԁw >>*dRQUEST  *>:.k *F k ~_~@` +++~#` *FBK͕"F& +++& 2,2.21:-go" †"O<2/ X P̼ʩҩO! N#F 2:,2ɮ ,#e"kqrE22:,H"d* /*+^+V+~* /*(~ , ! ͪ/ ͒ ~K (+^+V><*w >>*(:?2d>w :ȯ2d ڽ w }*: қ!*:͌*@*8BK*\*Z*B*@͂*\"Z*B*:BK*B*@"Bw"8":"X ~w#~wPY͔>BK͜j*D 0 2/g:/% x/Gy/O~w#~w :-K  K |t >]*d: Y>2*"io&'͚ +s+@:02/͠r+sî >͜ڲ/o/g î ~@w:2+++~ 2q+p:O!͵>2/͠}|! s#rͻ>2g*: Ԍî *>͜ڪ+^+V"î ͔:/=U<20=® :,ʮ * î PY7*\}"\!*"*BM7:/Ò Start = External Public = %Á^#V^#V™!H s#r Gyx|!Ps#r#²x|W}_x21*D ͉21yoxg*2wmPY*8"8*B"B*B*>BK*B*8w"8*\*Z"\"Z*"B*"@ !~R#~E#~L:ʁ܁@ DM>>>>Ҝ<2=O!Bڬ!6 ^#Vڸyy? ?y!8!@ s#r^#V[ !9!3!?ͪͪ!Gͪ2+ʹYPbelowaboveOrigin loader memory, move anyway(Y or N)?Ͳ !"2}2g<20î :ð*>*F|G}~OA++++~ y/O áOx_@ "2*"*PY ":0:=0*2!"2*2*B 00c*{OzG*@*ZDM7xw#  3w+COMHEXe  < 26:-*\*Z !~ ~ : :- * Xڰʰv!Vp#*@!HN#F#~#fo!P^#V  !D~#fo !V{_{_~!B^q#Vp!  ܜ r! ܜy«:-ʯ*ڹOͲ y*!\͵ !9;;;;;;   ͆Ow#2.+w+w+w+ 2w+w+"F7"CC":,2,*8*BDM*2 "2* "*:BK"@w +xʹ~+ Èxw+ Õ:/7=Oʿ:,7Ͳ?Intersecting ͿOͲ*8"@"Z yO:- `!r *|Q Q Ͳ Q >Ͱ *}Ͱ |Ͱ ͆ ͚ :-r yOr ͆ ͚ :6  N:~s#_~rW}ʬ:1ʪ# Ԃw{_!V6)`i{&!V# *N*>"F*H*@"z!"7$$! [ [FzU7*8"*:"*@*!Bw":"\"`*<"4͟"*D|©}~_!:^#V*4"D"gq#pg^q#Vp{g#~@+^+V4z2! <2͠:/?O$:,Ͳ  !ͻ>,**&M^#Vͪyà!F#~#*f>(*̀>)*< ͲسȯͰ z ͻz~#Ͱ ä !e:6_w{< 26  ! ó?Can't save object fileͲE8*X "X!8y-!@ ^#V < F#fhG!8^#V ^#VVy!8 KP*"!ew*8BK*w*B*O*8*Bw"8*B*BK*Bw*"eq{r#s^#V{ r+sg~O@wy@+Ns+Fr{~2g*4:w+r+s+p+q+"4~+V+^+F+N+*\:ʗͲ y…*Z*\ a*@lͻ ͻ * lyºͻ* lð *K{ͻ}O|G{Oz'!>*!y1!O>:Ͱ yq l Yq ~#q L!q ͈ !>:Ͱ Gq *l >q q ͈ >Ձ:=ʪ)0) “0"(;DͶEͶáxͿx0:ͷ:Y::X::W::^::*; :*; b V  # ;BASE OF CUSTOM BIOS ; ; ; EQUATES TO SELECT THE CONDITIONAL ASSEMBLY ; FOR 5.25 OR 8 INCH DISKS ; ; THE EQUATES DSKTY5 On#͌$$$!%͝$!%V#^###!##͝$ì#z#!%͝$#͌$z{7%z w##0:wwzC* * ;*  CBIOS FOR XEROX CP/M DISK * ;* COMBIs !"͇"!"͇"!"͇"!""͇"##›!##͇"##¨!#͇"!c"͇"!n"͇"*@"r"*8"p"*Z"t"*B"x"*:"v"*\"z""m"́:7=<2; 2;<2Z:4:}+2D;a>+2D;:*; a:]:a:,; :`::[:m>C2C;:;Ÿ:^::*;  с::O::Ē>)yWà::G::>*;#";ª%*(;@;͂ *(;:=ʅ`))0) m0j#"(; сR DSKTY8 ARE USED FOR ; CONDITIONAL ASSEMBLY CONTROL ; ; ONE CONDITIONAL ASSEMBLY FLAG SHOULD BE ON ; AND THE OTHER SHOULD B N:%!$$#+#!$ê?Segment , file not foundcan't create fileread errorDisk is full$!)$ó$!8$ó$͌$!J$ó Q=NED VERSION FOR 5.25" AND 8" - JUNE 1981 * ;* * ;** ; ; ASEG >sb|""?"0"?"U"e"?"U"e"?"U"e"!p" N#F#^#V#~#fo|} +x~+ Z"xw# e"x!b:4:a::;Ÿ:=ʟ>H!*; ~#¤:Z::}<=:~<!h:~#0>:g:> !w:~#  > kͶ{::k*;##";:;G5:;G"*(;¿#"(;CͪBêxx6!6**;##~#fo6"6'##"(;"x*ͽCͮ7E OFF AT ALL TIMES. ; DSKTY5 EQU 0 ;5.25 INCH DISK TYPE FLAG DSKTY8 EQU 1 ;8 INCH DISK TYPE FLAG ; ; ; ORG CBIOS ; JP B$͌$!U$ó%%%t$%€$%% LOAD ADDRESS BY 256 INC C INC C ;BUMP SECTOR# BY 2 DJNZ RDLOOP RET ; ; BOMB: LD HL,DEAD CALL PMSG LOOP: JP LOOiER NOT READY  OR A  ;* ELSE RESET CARRY  RET  ;* AND RET WITH PRINTER READYl} v;REPEAT TILL DONE ; ; LD A,(WUNIT) ;SELECT SAVED DRIVE LD C,A ;* JP CCP ;* JUMP TO COMMAND CONSOLE PROCESSORw ;LOAD A 'ETX'  CALL POSEND $;AND PRINT IT WAIT: CALL POINP  ;LOOP TILL RECEIVE  JR  }INTER HAS DATA  D JR NC,LSTOUT ;REPEAT TILL CLEAR CPBSY: CALL POBUSY ;CHECK IF PRINTER BUSY  7Q OR A  ;* RESET CARRY  RET  ;* AND RETURN ; ; ; ;** GP DEAD: DEFB CR,LF DEFM 'cannot boot CP/M $' ; ; ; CONST: JP MONITR+6 ;MONITOR CONSOLE STATUS RTN. ; CONIN: JP MONITR oA ; ; ; PRINTER OUTPUT ROUTINE ; POSEND: OUT (05),A ;SEND THE BYTE  RET  ;* AN uG ; ; 'RESET' SEQUENCE TABLE FOR PRINTER ; INPR2: DEFB 1BH ; 'ESC'  DEFB 0DH  ; 'o C,WAIT ;* AN 'ACT'  RET ? ;THEN RETURN ; ; ; PRINTER BUSY ROUTINE ; POBUSY: Iw JR C,CPBSY  ;REPEAT TILL READY  LD A,C  ;GET CHAR FROM C   CALL POSEND VQ **F ;* * ;* DISK I/O SUBROUTINES FOR CP/M CBIOS * ;* * ;**umf+9 ;MONITOR CONSOLE INPUT RTN. ; CONOUT: LD A,C JP MONITR+12 ;MONITOR CONSOLE OUTPUT RTN. ; ; ; **}OD RETURN ; ; ; PRINTER INPUT STATUS ROUTINE ; POINP: IN A,(07) ;READ SIO PORT CH. B  AND 0{CR'  DEFB 50H \ ; 'P' ; ; RDLOOP: LD (POINTR),HL ;STORE ADDR. PASSED IN HL LD A,C LD (SECTOR),A ;STOJs N A,(07) ;READ SIO PORT CH. B  AND 04 ;MASK OUT BITS OF INTEREST  XOR 04 q ;PRINT THE CHARACTER  CP 0AH  ;WAS IT A LINE FEED?  RET NZ ;RETURN IF o **h ; ; IF DSKTY5 ;5.25 INCH DISK ; ; ; SECTOR TRANSLATE TABLE FOR STANDARD ; 1 IN 5 INTERLEAVE FAE ** ;* $* ;* LIST OUTPUT DEVICE DRIVER  * ;*  a1 ;CHECK FOR RECEIVE  XOR 01 ;* CHARACTER AVAILABLE  SCF  ;SET RE SECT# PASSED IN C PUSH HL PUSH BC CALL READ ;READ THE SPECIFIED SECTOR POP BC POP HL JR NZ,BOMB INC H ;BUMP[e  ;* TO CHECK PRINTER STATUS  SCF ;SET CARRY  RET NZ ;RET WITH PRINT<CTOR ; SECTAB: DEFB 1,6,11,16 DEFB 3,8,13,18 DEFB 5,10,15,2 DEFB 7,12,17,4 DEFB 9,14 ; ; ; DISK PARAMETER BLOCK FORԁNIT 0 DEFW 0000H,0000H DEFW DIRBUF,DPBLK DEFW CHK0,ALL0 DEFW SECTAB,0000H ;DPH FOR UNIT 1 DEFW 0000H,0000H DEFW D0 DEFB 16,22 ; ; ; DISK PARAMETER BLOCK FOR STANDARD 8" FLOPPY ; DPBLK: DEFW 26 ;SECTORS PER TRACK DEFB 3 ;BLOCK SHIF LD C,A ;LOAD C WITH DISK DRIVE NUMBER LD A,(PUNIT) ;LOAD PREVIOUSLY SELECTED DRIVE CP C J0H ;DPH FOR UNIT 1 DEFW 0000H,0000H DEFW DIRBUF,DPBLK DEFW CHK1,ALL1 DEFW SECTAB,0000H ;DPH FOR UNIT 2 DEFW 0000H,00T ;IS ALLOWED TO HAVE 4 DRIVES ENDIF ; ; IF DSKTY8 ;8" SYSTEM CP 2 ;IS ALLOWED TO HAVE 2 DRIVES ENDIF ; ; RET NC STANDARD 5.25" MINI FLOPPY ; DPBLK: DEFW 18 ;SECTORS PER TRACK DEFB 3 ;BLOCK SHIFT CONST. DEFB 7 ;BLOCK MASK CONST. IRBUF,DPBLK DEFW CHK1,ALL1 ENDIF ;END OF 8 INCH SECTION ; ; ; ; SETSEC: LD A,C LD (SECTOR),A ;STORE SECTOR NUMBER P T CONST. DEFB 7 ;BLOCK MASK CONST. DEFB 0 ;EXTENT MASK CONST. DEFW 242 ;MAX BLOCK# DEFW 63 ;MAX DIRECTORY ENTRY# D 2/ ;COMPARE WITH CURRENTLY SELECTED DRIVE  JR Z,SELEX1 1;DO NOT SELECT IF SAME DRIVE SELEX2: LD B,0 W00H DEFW DIRBUF,DPBLK DEFW CHK2,ALL2 DEFW SECTAB,0000H ;DPH FOR UNIT 3 DEFW 0000H,0000H DEFW DIRBUF,DPBLK DEFW CH o}O ;RETURN WITH HL=0 IF C > 3 LD (UNIT),A ;STORE C AS NEW DRIVE UNIT# LD L,A % ; ADD HL,HL ADD HL,HL ADD HL,H DEFB 0 ;EXTENT MASK CONST. DEFW 81 ;MAX BLOCK# DEFW 31 ;MAX DIRECTORY ENTRY# DEFB 10000000B ;ALLOCATION MASK MSB DEFBށASSED RET ; VIA BC ; ; TRANS: EX DE,HL ;ADD TRANSLATION TABLE ADDRESS ADD HL,BC ; PASSED IN DE TO SECTOR# IN BC LD K{*EFB 11000000B ;ALLOCATION MASK MSB DEFB 00B ;' > ' LSB DEFW 16 ;CHECK SIZE DEFW 2 ;RESERVED TRACKS ; ;y Z ;LOAD B WITH SEEK SPEED FOR THIS DRIVE CALL MONITR+27 ;CALL SELECT ROUTINE IN MONITOR  JR Z,SELEX1 ցK3,ALL3 ENDIF ;END OF 5.25 INCH SECTION IF DSKTY8 ;8 INCH DISK ; ; ; SECTOR TRANSLATE TABLE FOR STANDARD ; 1 IN 6 INTJubL ADD HL,HL ;MULTIPLY UNIT# BY 16 LD DE,DPHTAB ADD HL,DE ;ADD START ADDRESS OF DHP BLOCK  RET  *{ 00B ;' g ' LSB DEFW 16 ;CHECK SIZE DEFW 3 ;RESERVED TRACKS ; ; ; DISK PARAMETER HEADERS FOR A 4 DISK SفL,(HL) LD H,0 ;LOOKUP PHYSICAL SECTOR NUMBER RET ; AND RETURN IT IN HL ; ; SETPTR: LD (POINTR),BC ;STORE DATA POINTER G ; DISK PARAMETER HEADERS FOR A 2 DISK SYSTEM ; THE LAST TWO REMOVED FOR SPACE. ; DPHTAB: DEFW SECTAB,0000H ;DPH FOR U7w  CALL REPORT ;CALL ERROR ROUTINE  JR NZ,SELEX3  LD A,(UNIT) ;ERLEAVE FACTOR ; 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,1y7 ;DO NOT ACTUALLY SELECT THE DRIVE SELEX: PUSH BC .;SAVE REGISTERS VALUES PUSH HL LD A,(UNIT)  qYSTEM ; DPHTAB: DEFW SECTAB,0000H ;DPH FOR UNIT 0 DEFW 0000H,0000H DEFW DIRBUF,DPBLK DEFW CHK0,ALL0 DEFW SECTAB,000`PASSED RET ; VIA BC ; ; ; SELECT: LD HL,0 ;PREP TO CHECK FOR MAX UNIT# LD A,C ; ; IF DSKTY5 ;5.25" SYSTEM CP 4>uSAVE AS NEXT DRIVE  LD C,A # ;LOAD DRIVE TO BE SELECTED IN C  JR SELEX2 ; SELEX1:ICALL PMSG ;PRINT 'write protected' CALL REP3 ;WAIT FOR CONSOLE INPUT JR Z,WRITE ;RETRY IF INDICATED RET WRIT1: LD A,EUTINE IN MONITOR RET Z ;RETURN IF NO ERRORS CALL REPORT ;REPORT DISK ERROR TO CONSOLE JR Z,READ ;RE-TRY READ IF INDICAHL RET Z LD C,A ;PRINT CHARACTER IF NOT DOLLAR SIGN CALL OVECTR JR PMSG ; ; ; ; LF EQU 0AH ;LINE FEED CR EQU OME ;RE-TRY HOME IF ERROR INDICATED RET ; ; SEEK: CALL SELEX ;FIND OUT IF DRIVE IS SELECTED LD A,C ;GET TRACK # FROM CT REP1: LD A,1 ;SET UP A NZERO CONDITION FOR RETURN OR A ;RETURN PERM ERROR INDICATION IN A RET ; REP2: LD HL,RDYMSG } LD A,(UNIT) ;LOAD DRIVE JUST SELECTED  0LD (PUNIT),A ;STOR IT AS A PREVIOUS DRIVE  POP HL ׁ ;RETRIEVE SAVED 1771 STATUS CALL REPORT ;REPORT DISK ERROR TO CONSOLE JR Z,WRITE ;RE-TRY WRITE IF INDICATED RET ;EL TED RET ; ; ; WRITE: CALL SELEX ;FIND OUT IF DRIVE IS SELECTED LD HL,(POINTR) LD A,(SECTOR) LD C,A CALL MONITR+39 S0DH ;CARRIAGE RETURN ; DSKMSG: DEFB CR,LF DEFM 'disk $' ERRMSG: DEFM 'error $' RDYMSG: DEFM 'drive not ready -$' WRTER  LD (TRACK),A CALL MONITR+33 ;CALL SEEK ROUTINE IN MONITOR RET Z ;EXIT IF NO ERRORS INDICATED CALL REPORT ;REPORT SEEK |CALL PMSG ;PRINT DISK-NOT-READY MESSAGE REP3: CALL IVECTR ;AND WAIT FOR CONSOLE INPUT CP 'C'-64 JR Z,REP1 XOR A ;RET y POP BC N;RESTORE REGISTERS RET ;EXIT IF SELECTED SUCCESSFULY SELEX3: XOR A  LD (UNIT)SE RETURN PERMANENT ERROR ; ; ; ON ENTRY (A) = 1771 I/O STATUS FLAG ; ; REPORT: PUSH AF ;SAVE 1771 I/O STATUS LD HL,DSKJ ;CALL WRITE ROUTINE IN MONITOR RET Z ;RETURN IF NO ERRORS LD E,A ;SAVE 1771 I/O STATUS FLAG RLA RLA ;CRY CONTAINS W(R: DEFM 'write protected$' SIGNON: DEFB CR,LF DEFM 'COPYRIGHT (C) 1981, XEROX CORPORATION' DEFB CR,LF DEFB CR,LF ԁ ERROR TO CONSOLE RET NZ ;RETURN PERMANENT ERROR UNLESS LD A,(TRACK) ; RE-TRY REQUEST IS INDICATED LD C,A JR SEEK ; URN A=0 IF SOMETHING OTHER THAN RET ;CONTROL-C WAS TYPED AT THE CONSOLE ; ; ; ; CHARACTER STRING OUTPUT ROUTINE. PRINTS L,A JP 0H ;DISABLE FURTHER BIOS CALLS BY ; RET ; INDICATING SELECT ERROR TO BDOS ; ; ; HOME: CALL SELEX ;FIND O@MSG CALL PMSG ;PRINT 'disk ' POP AF ;RETRIEVE SAVED STATUS RLA ;TEST FIRST FOR DRIVE-NOT-READY ERROR JR C,REP2 ;JUƁRITE PROTECT STATUS JR NC,WRIT1 ;CONTINUE IF NOT WRITE PROTECTED LD HL,DSKMSG CALL PMSG ;PRINT 'disk' LD HL,WRTERR T DEFM 'CP/M REG. TM 2.2 SY 2.0 2-294 ' XEROXID: DEFM ' ' CRLF: DEFB CR,LF DEFB '$' ; ; UNIT: DEFS 1 PUNIT4 ; ; READ: CALL SELEX ;FIND OUT IF DRIVE IS SELECTED LD HL,(POINTR) LD A,(SECTOR) LD C,A CALL MONITR+36 ;CALL READ ROASCII DATA ; POINTED TO BY HL UNTIL A DOLLAR SIGN IS ENCOUNTERED PMSG: LD A,(HL) ;HL POINTS TO ASCII STRING CP '$' INC yUT IF DRIVE IS SELECTED CALL MONITR+30 ;CALL HOME ROUTINE IN MONITOR RET Z ;RETURN IF ALL WENT WELL CALL REPORT JR Z,HOMP IF THAT IS THE PROBLEM LD HL,ERRMSG ;OTHER TYPE OF ERROR SO --- CALL PMSG ;PRINT 'error ' JR REP3 ;GET CONSOLE INPU{: DEFS 1 WUNIT: DEFS 1 TRACK: DEFS 1 SECTOR: DEFS 1 POINTR: DEFS 1 DEFS 32 STACK: DEFS 1 ;LOCAL STACK FOR WARM BOOT ; 2M:!^:B> 2:2;2:y,2W:HA:M:2W:BB ;:X:UA;%B:::2S: 2R:rA:M:@2M:!:By=7{tVECTOR ALL3: DEFS 32 ;UNIT 3 ALLOCATION VECTOR CHK3: DEFS 16 ;UNIT 3 CHECK VECTOR ENDIF ; ; ; ; ; END @UQ;**G ;* * ;* DISK I/O BUFFERS FOR BDOS FILE HANDLER * ;* * @ W**P* ; ; ; DIRBUF: DEFS 128 ;SCRATCH DIRECTORY BUFFER ; ALL0: DEFS 32 ;UNIT ΁BB 7%B:A 7!:B:M:!^:A!::X:A:;> =AA:U:A:R:A:S:2U:͵DVDlD*N:##:V:2Q:G: ~ write protected$' SIGNON: DEFB CR,LF DEFM 'COPYRIGHT (C) 1981, XEROX CORPORATION' DEFB CR,LF DEFB CR,LF DEFM  @ Q ;**F ; ; ; DIRBUF: DEFS 128 ;SCRATCH DIRECTORY BUFFER ; ALL0: DEFS @ 0 ALLOCATION BUFFER CHK0: DEFS 16 ;UNIT 0 CHECK VECTOR ALL1: DEFS 32 ;UNIT 1 ALLOCATION VECTOR CHK1: DEFS 16 ;UNIT 1 CHEC[BBw# B # B w#B:P:!;~ @Bw#6B~C:7>fBxBBDOx=y‡B[A@2:~Cx tB :B 'CP/M REG. TM 2.2 SY 1.6 2-294 ' XEROXID: DEFM ' ' CRLF: DEFB CR,LF DEFB '$' ; ; UNIT: DEFS 1 PUNIT: DEFS 1 s) P)?Command error?File not f}32 ;UNIT 0 ALLOCATION BUFFER CHK0: DEFS 16 ;UNIT 0 CHECK VECTOR ALL1: DEFS 32 ;UNIT 1 ALLOCATION VECTOR CHK1: DEFS 16 ;UN@K VECTOR IF DSKTY5 ;ONLY FOR 5.25 INCH DISK ALL2: DEFS 32 ;UNIT 2 ALLOCATION VECTOR CHK2: DEFS 16 ;UNIT 2 CHECK VECTOR AXD{BT BDT7DY7fBLºBDS7DT7>fBR7DD7R7>fB> B6 #=By.2P:~C;xBĆ WUNIT: DEFS 1 TRACK: DEFS 1 SECTOR: DEFS 1 POINTR: DEFS 1 DEFS 32 STACK: DEFS 1 ;LOCAL STACK FOR WARM BOOT ; ;********ound?Can't enter file~D#×@!f@ñ@!u@ñ@!@͗@@":*+++"N:*::Y:2Q:*N:͟C:@ @2]:2U:2[:2Z:2X:2W:2\:<2V:2T:cIT 1 CHECK VECTOR IF DSKTY5 ;ONLY FOR 5.25 INCH DISK ALL2: DEFS 32 ;UNIT 2 ALLOCATION VECTOR CHK2: DEFS 16 ;UNIT 2 CHECK @ DBy/yDLC2U:DOCN*C2[:CO5C2Z:CR@C2W:CCNC2X:2U:CMYC2\:CIdC2T:CZpC2T:CP7:V:<2V:C Bw":"\"`*<"4͟"*D|©}~_!:^#V*4"D"gq#pg^q#Vp{g#~@+^+V e^!F:>½G@!Hw#2P:.G!Gw#G2P:.G!GG6 #G:P:.Gw#  <2͠:/?O$:,Ͳ  !ͻ>,**&M^#Vͪyà!F#~#*f>(*̀>)*  }ʊEƀ)`iE> ͧE> ͧE> ͧE:U:B::<DF*<|E#"<<wF =E! E8*X "X!8y-!@ ^#V < F#fhG!8^#V ^#VVy!8 KD[ҜC0ڜCAҘC:ҜCÁCO!~6GC#~ ·CéC@x+#C~ýC2Y:C2Y::Q:CLD>*D @> D:@!@"d@o>g q{r#s^#V{ r+sg~O@wy@+Ns+Fr{~2g*4:w+r+s+p+q+"4~+V+^+F+N+*\ mfGp"GF!H2G2G:G=LH"GFaH!"G" G>2G* G~\H7aH#" G M7:/Ò Start = External Public = % l;>!^:E:W:B:^:D* ;|=F#" ; ;w::<1DF*>|VF#">>DD>>:=F!=[F! Á^#V^#V™!H s#r Gyx|!Ps#r#²x|W}_x21*D ͉21yoxg*2 *6 #> w~# D D FD#"d@_*d@+~ #̟C#"d@+~7ȷ> D> D>>>Ҝ<2=O!Bڬ!6 ^#Vڸyy? ?y!8!@ s#r^#V !"2}2g<20î :ð*>*F|G}~OA++++~ y/O áOx_ @ :>{F_!]: ҤF ʢF<ʢF~=w4{ ¹F> ͧE~«FüF7ȷ!F͗@@@F> D!F͗@LDDISK FULL "2*"*PY ":0:=0*2!"2*2*B 00c*{OzG*@*ZDM7xw# qʰD~DD<ʮ@D<ʨ@!">>!:~DäD w#Dw: E> Xڰʰv!Vp#*@!HN#F#~#fo!P^#V  !D~#fo !V{_{_~!B^q#Vp!  ͆Ow#2.+w+w+w+ 2w+w+"F7"CC":,2,*8*BDM*2 "2* "*:BK" @ @ w +xʹ~+ Èxw+ Õ:/7=Oʿ:,7Ͳ?Intersecting ͿOͲ*8 :U:B::< EE> ͧE> ͧE>ͧE*<<:E<:E:W:B:^: E>F* ;;^:E;^:E| N:~s#_~rW}ʬ:1ʪ# Ԃw{_!V6)`i{&!V# *N*>"F*H*@"!W!4z2!!nw# |"~#fo"q#p:+#*D ~""g#:2*#*"82f6+:*#wî gz#2*# #:+##*!< ͲسȯͰ z ͻz~#Ͱ ä !e:6_w{< 26  ! ó?Can't save object fileͲ!A7 A:DDT SYS.COM$SYS.COM I$1.HEX R3580 G0 A:SYSGEN $!KP*"!ew*8BK*w*B*O*8*Bw"8*B*BK*Bw*"e!n!+###2%w# %4!:ʗͲ y…*Z*\ a*@lͻ ͻ * lyºͻ* lð *!"8:*#2+#*r#s+:*#R#*͋#"82*#2+#!% p# 9#!N#%~# G#î r#s$${n#{ƀ_n#zʇ#Ͱ$! K{ͻ}O|G{Oz'!>*!y1!O>:Ͱ yq l Yq ~#q L!q ͈ !>:Ͱ Gq *l >q q ͈ >! 7A7B:$T SYS.COM$SYS.COM I$1.HEX R3580 G0 A:SYSGEN $! wmPY*8"8*B"B*B*>BK*B*8w"8*\*Z"\"Z*"B*"@ !~R#~E#~L:ʁ! b V  #! [ !9!3!?ͪͪ!Gͪ2+ʹYPbelowaboveOrigin loader memory, move anyway(Y or N)?Ͳ !n#͌$$$!%͝$!%V#^###!##͝$ì#z#!%͝$#͌$z{7%z w##0:ww!s !"͇"!"͇"!"͇"!""͇"##›!##͇"##¨!#͇"!c"͇"!n"͇"*@"r"*8"p"*Z"t"*B"x"*:"v"*\"z""m"!`A7XSUB$SYS.COM$SYS.COM I$1.HEX R3580 G0 A:SYSGEN $!3w+COMHEXe  < 26:-*\*Z !~ ~ : :- *!A7R3580$N$:DDT SYS.COM I$1.HEX R3580 G0 A:SYSGEN $! ܜ r! ܜy«:-ʯ*ڹOͲ y*!\͵ !9;;;;;;  !N:%!$$#+#!$ê?Segment , file not foundcan't create fileread errorDisk is full$!)$ó$!8$ó$͌$!J$ó!>sb|""?"0"?"U"e"?"U"e"?"U"e"!p" N#F#^#V#~#fo|} +x~+ Z"xw# e"x!@!"@"Z yO:- `!r *|Q Q Ͳ Q >Ͱ *}Ͱ |Ͱ ͆ ͚ :-r yOr ͆ ͚ :6  !A7 ICBIOS16.HEX$ SYS.COM I$1.HEX R3580 G0 A:SYSGEN $!z!"7$$! [ [FzU7*8"*:"*@*!!$͌$!U$ó%%%t$%€$%%>@>@>@>@>@>@>@>@> @> @> @> @> @>@>@>@>@>@>@>@>@>@>@>@>@>@?.?@?@?@?@?@?@?@?@? @? @? @? @? @?@?@?@?@?@?@?@?@?@?@?@?@?@@@@@@@@@@@@@@@@@@@ @@ @@ @@ @@ @@@@@@@@@@@@@@@@@@@@@@@@@@@AkA@A@A@A@A@A@A@A@A @A @A @A @A @A@A@A@A@A@A@A@A@A@A@A@A@A@BB@B@B@B@B@B@B@B@B @B @B @B @B @B@B@B@B@B@B@B@B@B@B@B@B@B@CyC@C@C@C@C@C@C@C@C @C @C @C @C @C@C@C@C@C@C@C@C@C@C@C@C@C@DD@D@D@D@D@D@D@D@D @D @D @D @D @D@D@D@D@D@D@D@D@D@D@D@D@D@,EE@E@E@E@E@E@E@E@E @E @E @E @E @E@E@E@E@E@E@E@E@E@E@E@E@E@E@E @E @E @E @E@E@E@E@E@E@E@E@E@E@E@E@E@FF@F@F@F@F@F@F@F@F @F @F @F @F @F@F@F@F@F@F@F@F@F@F@F@F@F@G]G@G@G@G@G@G@G@G@G @G @G @G @G @G@G@G@G@G@G@G@G@G@G@G@G@G@HH@H@H@H@H@H@H@H@H @H @H @H @H @H@H@H@H@H@H@H@H@H@H@H@H@H@I#I@I@I@I@I@I@I@I@I @I @I @I @I @I@I@I@I@I@I@I@I@I@I@I@I@I@*JxJ@J@J@J@J@J@J@J@J @J @J @J @J @J@J@J@J@J@J@J@J@J@J@J@J@J@J@J@J@J @J@J@J@J@J@J@J@J@J@J@J@J@K1K@K@K@K@K@K@K@K@K @K @K @K @K @K@K@K@K@K@K@K@K@K@K@K@K@K@LL@L@L@L@L@L@L@L@L @L @L @L @L @L@L@L@L@L@L@L@L@L@L@L@L@L@L