home *** CD-ROM | disk | FTP | other *** search
- ; Copyright 1984 by John M. Blalock
-
- ; ********************************
- ; * *
- ; * DIRPATCH.AZM *
- ; * *
- ; * An extension to the *
- ; * Osborne Executive's *
- ; * CP/M Plus extended *
- ; * directory program. *
- ; * *
- ; * Written by: *
- ; * John M. Blalock *
- ; * Dec 10, 1984 *
- ; * *
- ; ********************************
-
- ; The CP/M Plus operating system for the Osborne Executive
- ; computer has many nice features, including an extended
- ; directory function that gives useful information about the
- ; files on the disks. It's incomplete, however, since it
- ; does not tell you how much space is remaining on the disk.
- ; Normally, the program SHOW.COM must be used to get this
- ; information. Digital Research did leave a few bytes
- ; available in the beginning of DIR.COM for their copyright
- ; notice that can be overlaid with this patch. With it you
- ; will no longer have their copyright notice buried in the
- ; program, but the extended directory listing will tell
- ; you the space remaining on the disk.
-
- ; This patch was written in Z80 assembly language in order
- ; to take advantage of the Z80 op-codes that were used to
- ; keep the program short enough to fit in the available
- ; space. Unless you change to a non-Z80 machine they should
- ; cause no problems.
-
- ; To install this patch, assemble the source with ZASM.COM
- ; or extract and use the DIRPATCH.HEX file attached at the
- ; end of this source listing. A typical installation
- ; sequence follows:
-
- ; A>SID DIR.COM
- ; CP/M 3 SID - Version 3.0
- ; NEXT MSZE PC END
- ; 3A00 3A00 0100 D7FF
- ; #RDIRPATCH.HEX
- ; NEXT MSZE PC END
- ; 041B 3A00 0100 D7FF
- ; #WDIR.COM,100,39FF
- ; 0072h record(s) written.
- ; #^C
- ; A>
-
- ; Now type DIR A: [A to see how your new extended directory
- ; program works!
-
- ; This program can be copied and used for non-commercial
- ; purposes only. Any other use violates the copyright of
- ; the author who wouldn't mind receiving payment for
- ; commercial usages.
-
- ; John M. Blalock, W7AAY, PO Box 39356, Phoenix, AZ 85069
-
-
- BDOS EQU 0005
-
- ORG 0106H ;START OF PATCH AREA
-
- PATCH: LD C,25 ;RETURN CURRENT DISK
- CALL BDOS ; IN REG A
- LD E,A ;PASS CURRENT DISK IN REG E
- LD C,46 ;GET DISK FREE SECTOR COUNT
- CALL BDOS ; -NOT K BYTES-IN (80) & (81)
- LD B,3 ;3 PASSES = DIVIDE BY 8
- DIVLP: OR A ;CLEAR CARRY
- LD HL,0081H ;HIGH BYTE OF FREE SPACE
- RR (HL) ;DIVIDE BY TWO
- DEC HL ;LOW BYTE OF FREE SPACE
- RR (HL) ;DIVIDE BY TWO
- DEC B ;3 PASSES DONE ?
- JR NZ,DIVLP ;NO, THEN REPEAT
- LD B,'0' ;ASCII ZERO TO HUNDS
- LD C,B ; AND TENS REGISTERS
- LD A,(HL) ;GET FREE SPACE (<255K)
- HUND: SUB 100 ;ANY HUNDREDS?
- JR C,TENS ;NO, TRY TENS
- INC B ;YES, BUMP HUNDS DIGIT
- JR HUND ;AND LOOP
- TENS: ADD A,100 ;ADD BACK 100
- TENLP: SUB 10 ;ANY TENS ?
- JR C,ONES ;NO, DO ONES DIGITS
- INC C ;YES, BUMP TENS DIGIT
- JR TENLP ;AND LOOP
- ONES: ADD A,10+'0' ;ADD TEN PLUS ASCII BIAS
- LD D,A ;PUT IN ONES DIGIT
- LD HL,NUMS ;POINT TO NUMBERS
- LD A,'0' ;STILL ZERO IF NONE ADDED
- CP B ;ANY HUNDREDS ?
- JR Z,NOHUND ;NO, SKIP IT
- LD (HL),B ;SAVE HUNDS IN MESSAGE
- NOHUND: INC HL ;POINT TO TENS POSITION
- CP C ;ANY TENS ?
- JR Z,NOTENS ;NO, SKIP IT
- LD (HL),C ;SAVE TENS IN MESSAGE
- NOTENS: INC HL ;POINT TO ONES POSITION
- LD (HL),D ;SAVE ONES IN MESSAGE
- LD DE,MSG ;POINT TO MESSAGE
- LD C,9 ;PRINT STRING FUNCTION
- CALL BDOS ;OUTPUT MESSAGE TO CONSOLE
- JP 0475H ;JUMP TO ORIGINAL EXIT POINT
-
- MSG DB 'Space Remaining = '
- NUMS DB ' k',13,10,'$'
- LD C,D
- LD C,L
- LD B,D
- LAST EQU $ ;DON'T GO PAST 016FH
-
- ORG 0418H ;ORIGINAL JUMP TO EXIT
-
- JP PATCH ;JUMP TO OUR PATCH
-
- END
-
- ; DIRPATCH.HEX:
-
- :100106000E19CD05005F0E2ECD05000603B7218121
- :1001160000CB1E2BCB1E0520F40630487ED6643855
- :10012600030418F9C664D60A38030C18F9C63A57F8
- :100136002166013E30B828017023B9280171237267
- :100146001151010E09CD0500C37504537061636535
- :100156002052656D61696E696E67203D2020202002
- :0A0166002020206B0D0A244A4D42B0
- :03041800C3060117
- :0000000000
- 1, answered, recent,,
- Return-Path: <@seismo.ARPA:noao!terak!jb@seismo.ARPA>
- Received: from seismo.ARPA by SIMTEL20.ARPA with TCP; Fri 14 Dec 84 22:27:46-MST
- Return-Path: <noao!terak!jb@seismo.ARPA>
- Received: from noao.UUCP by seismo.ARPA with UUCP; Sat, 15 Dec 84 00:27:36 EST
- From: noao!terak!jb@seismo.ARPA
- Received: by noao.UUCP (4.12/4.7)
- id AA16599; Fri, 14 Dec 84 04:59:01 mst
- Date: Fri, 14 Dec 84 04:59:01 mst
- Message-Id: <8412141159.AA16599@noao.UUCP>
- To: noao!seismo!KPETERSEN@SIMTEL20.ARPA
- Subject: Bug in DIRPATCH.AZM
-
- *** EOOH ***
- Date: Friday, 14 December 1984 04:59-MST
- From: noao!terak!jb at seismo.ARPA
- To: noao!seismo!KPETERSEN at SIMTEL20.ARPA
- Re: Bug in DIRPATCH.AZM
-
- Keith, there was a minor bug in the version of DIRPATCH.AZM I sent you.
- Sorry...
-
- Here's the corrected version:
- ; Copyright 1984 by John M. Blalock
-
- ; ********************************
- ; * *
- ; * DIRPATCH.AZM *
- ; * *
- ; * An extension to the *
- ; * Osborne Executive's *
- ; * CP/M Plus extended *
- ; * directory program. *
- ; * *
- ; * Written by: *
- ; * John M. Blalock *
- ; * Dec 10, 1984 *
- ; * *
- ; ********************************
-
- ; The CP/M Plus operating system for the Osborne Executive
- ; computer has many nice features, including an extended
- ; directory function that gives useful information about the
- ; files on the disks. It's incomplete, however, since it
- ; does not tell you how much space is remaining on the disk.
- ; Normally, the program SHOW.COM must be used to get this
- ; information. Digital Research did leave a few bytes
- ; available in the beginning of DIR.COM for their copyright
- ; notice that can be overlaid with this patch. With it you
- ; will no longer have their copyright notice buried in the
- ; program, but the extended directory listing will tell
- ; you the space remaining on the disk.
-
- ; This patch was written in Z80 assembly language in order
- ; to take advantage of the Z80 op-codes that were used to
- ; keep the program short enough to fit in the available
- ; space. Unless you change to a non-Z80 machine they should
- ; cause no problems.
-
- ; To install this patch, assemble the source with ZASM.COM
- ; or extract and use the DIRPATCH.HEX file attached at the
- ; end of this source listing. A typical installation
- ; sequence follows:
-
- ; A>SID DIR.COM
- ; CP/M 3 SID - Version 3.0
- ; NEXT MSZE PC END
- ; 3A00 3A00 0100 D7FF
- ; #RDIRPATCH.HEX
- ; NEXT MSZE PC END
- ; 041B 3A00 0100 D7FF
- ; #WDIR.COM,100,39FF
- ; 0072h record(s) written.
- ; #^C
- ; A>
-
- ; Now type DIR A: [A to see how your new extended directory
- ; program works!
-
- ; This program can be copied and used for non-commercial
- ; purposes only. Any other use violates the copyright of
- ; the author who wouldn't mind receiving payment for
- ; commercial usages.
-
- ; John M. Blalock, W7AAY, PO Box 39356, Phoenix, AZ 85069
-
- ; Revised to fix bug that caused 100k Space Remaining to be
- ; displayed as 1 0k Space Remaining. JMB 12/15/84
-
- BDOS EQU 0005
-
- ORG 0106H ;START OF PATCH AREA
-
- PATCH: LD C,25 ;RETURN CURRENT DISK
- CALL BDOS ; IN REG A
- LD E,A ;PASS CURRENT DISK IN REG E
- LD C,46 ;GET DISK FREE SECTOR COUNT
- CALL BDOS ; -NOT K BYTES-IN (80) & (81)
- LD B,3 ;3 PASSES = DIVIDE BY 8
- DIVLP: OR A ;CLEAR CARRY
- LD HL,0081H ;HIGH BYTE OF FREE SPACE
- RR (HL) ;DIVIDE BY TWO
- DEC HL ;LOW BYTE OF FREE SPACE
- RR (HL) ;DIVIDE BY TWO
- DEC B ;3 PASSES DONE ?
- JR NZ,DIVLP ;NO, THEN REPEAT
- LD B,'0' ;ASCII ZERO TO HUNDS
- LD C,B ; AND TENS REGISTERS
- LD A,(HL) ;GET FREE SPACE (<255K)
- HUND: SUB 100 ;ANY HUNDREDS?
- JR C,TENS ;NO, TRY TENS
- INC B ;YES, BUMP HUNDS DIGIT
- JR HUND ;AND LOOP
- TENS: ADD A,100 ;ADD BACK 100
- TENLP: SUB 10 ;ANY TENS ?
- JR C,ONES ;NO, DO ONES DIGITS
- INC C ;YES, BUMP TENS DIGIT
- JR TENLP ;AND LOOP
- ONES: ADD A,10+'0' ;ADD TEN PLUS ASCII BIAS
- LD D,A ;PUT IN ONES DIGIT
- LD HL,NUMS ;POINT TO NUMBERS
- LD A,'0' ;STILL ZERO IF NONE ADDED
- CP B ;ANY HUNDREDS ?
- JR Z,NOHUND ;NO, SKIP IT
- LD (HL),B ;YES, SAVE HUNDS IN MESSAGE
- NOHUND: INC HL ;POINT TO TENS POSITION
- JR NZ,HUNDS ;SAVE TENS IF HAD HUNDS
- CP C ;ANY TENS ?
- JR Z,NOTENS ;NO, SKIP IT
- HUNDS: LD (HL),C ;SAVE TENS IN MESSAGE
- NOTENS: INC HL ;POINT TO ONES POSITION
- LD (HL),D ;SAVE ONES IN MESSAGE
- LD DE,MSG ;POINT TO MESSAGE
- LD C,9 ;PRINT STRING FUNCTION
- CALL BDOS ;OUTPUT MESSAGE TO CONSOLE
- JP 0475H ;JUMP TO ORIGINAL EXIT POINT
-
- MSG DB 'Space Remaining = '
- NUMS DB ' k',10,'$'
- LD C,D
- LD B,D
- LAST EQU $ ;DON'T GO PAST 016FH
-
- ORG 0418H ;ORIGINAL JUMP TO EXIT
-
- JP PATCH ;JUMP TO OUR PATCH
-
- END