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
/
ZSYS
/
SIMTEL20
/
ZCPR3
/
LLF11.LBR
/
LLF11.DOC
< prev
next >
Wrap
Text File
|
2000-06-30
|
2KB
|
49 lines
LLF Version 1.1
11/27/86
LLF Version 1.1 corrects a bug in Version 1.0 that caused
sporadic and unpredictable bomb-outs. The bug manifested itself
with a 'TPA Overflow' error-message, for which nobody had a
sensible explanation. Bruce Morgen finally tracked the bug down
during his recent exhaustive work with library files.
The bug results from an error in the LUDIR module of SYSLIB
Version 3.6. The source of the bug was traced to the file
SLUDIR.Z80. The line in SLUDIR.Z80,'ld a,(bdose+7)', should be
'ld a,(bdose+2)'.
The LUDIR module of SYSLIB, used in LLF, derives the top of
TPA from the most significant byte (msb) of the bdos entry
address, which is contained at memory address 7. Since 'bdose' is
equated to 5, the most significant byte of the bdos entry address
is at 'bdose+2', not 'bdose+7'. By loading 'bdose+7' into the A
register, the LUDIR module introduces a random number into the
top-of-TPA calculation. Neither CP/M nor ZCPR3 documentation sets
forth a value for 'bdose+7' and at any particular time this
address may contain any of 255 different values.
The source code for LLF has not been released. Nevertheless,
examination of the program with a debugger reveals the erroneous
code at 069DH. That byte should be changed from 0C to 07. That's
all there is to it.
For those unaccustomed to in-memory modification of COM
files, we have included a patched version of LLF in this library,
LLF Version 1.1.
In addition, we have included the modified source code for
the LUDIR module, SLUDIR11.Z80.
Bug Fix:
Bruce Morgen
Director, NAOG/ZSIG
Documentation:
Richard Jacobson
Sysop, Lillipute Z-Node
312-649-1730 System 1
312-664-1730 System 2