home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
OSBORNE
/
DIRPATCH.AZM
< prev
next >
Wrap
Text File
|
2000-06-30
|
10KB
|
285 lines
; 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