Files
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

89 lines
4.5 KiB
Plaintext

[READ.ME]
The Programmer's CP/M Handbook Source Code Examples
Version 1.0 August 18, 1983
(c) 1983 Johnson-Laird Inc.
We have tried to include as many of the examples from the CP/M
Programmer's Handbook as was possible to fit onto 2 single-sided
single-density diskettes (or alternately, 1 single-density
double-sided "flippy" diskette). Our original intention was to
include the source code for every figure in the book as well as all
the example listings in Chapter 5. Since this proved to be impossible
to fit onto two diskettes, we have chosen those figures and examples
which we felt would be the most useful. The only major omission is
Figure 9-4 which deals with bad sector management.
We have fixed one bug and added one line to Figure 8-10. This is
noted in the source code. The lines which were left out in the book
after page 261 are also included. You may notice some minor
differences in capitalization, indentation, etc. in the comments where
we have not included changes made in copyediting.
We would appreciate hearing from you, especially about any bugs,
typos, other horrible goofs, suggestions for improvements.
Contents of Diskette No 1
Filename Page No. Figure Title
FIG5-2.ASM 70 Equates for BDOS function code numbers
FIG5-3.ASM 74 Write console byte example, output null-byte
terminated message from specified address
FIG5-4.ASM 74 Write console byte example, output null-byte
terminated message following call to subroutine
FIG5-5.ASM 76 Read line from reader device
FIG5-6.ASM 78 Write line to punch device
FIG5-7.ASM 79 Write line to list device
FIG5-8.ASM 81 Read/Write string from/to console using raw I/O
FIG5-10.ASM 86 IOBYTE equates
FIG5-11.ASM 87 Simple terminal emulator
FIG5-12.ASM 89 Display $-terminated message on console
FIG5-13.ASM 92 Read console string for keyboard options
FIG5-14.ASM 95 Determine the CP/M version number
FIG5-15.ASM 96 Reset requested disk drive
FIG5-16.ASM 100 Open file request
FIG5-17.ASM 104 Search first/next calls for ambiguous filename
FIG5-18.ASM 110 Read next character from sequential disk file
FIG5-19.ASM 113 Write next character to sequential disk file
FIG5-20.ASM 115 Create file request
FIG5-21.ASM 117 Rename file request
FIG5-22.ASM 122 Set file attributes
FIG5-23.ASM 123 Get file attributes
FIG5-24.ASM 126 Accessing disk parameter block data
FUNCTN33.ASM 131 Example for function 33, read random
FIG5-25.ASM 135 Create random file
FIG5-26.ASM 136 Read/write variable length records randomly
FIG6-4.ASM 159 Simple BIOS listing
FIG7-5.ASM 191 Example PUTCP/M
FIG7-7.ASM 198 Example CP/M cold bootstrap loader
FIG8-6.ASM 226 Device table equates
FIG10-5.ASM 363 Testbed for real time clock driver in the BIOS
FIG10-6.ASM 365 Testbed for disk I/O drivers in the BIOS
ERASE.C 410 Figure 11-3, requests confirmation before erasing
UNERASE.C 412 Figure 11-4, "revives" erased files
FIND.C 417 Figure 11-5, locates specific files or groups of files
SPACE.C 420 Figure 11-6, displays how much disk storage is used
or available
MOVE.C 424 Figure 11-7, "moves" files from one user to another
MAKE.C 428 Figure 11-8, makes files "invisible" and protected
or makes them "visible," accessible and unprotected
SPEED.C 431 Figure 11-9, sets the baud rate for a specific device
PROTOCOL.C 435 Figure 11-10, sets the protocol governing input and output
of a specified serial device
ASSIGN.C 439 Figure 11-11, assigns a logical devices input and output
to two or more physical devices
DATE.C 443 Figure 11-12, makes the current date part of the system
TIME.C 444 Figure 11-13, makes the current time part of the system
FUNKEY.C 446 Figure 11-14, sets the character strings associated with
specific function keys
Contents of Diskette 2
FIG8-10.ASM 237 Enhanced BIOS listing
FIG9-5.ASM 312 User-friendly disk error processor
FIG10-2.ASM 331 Debug subroutines
FIG10-4.ASM 355 Testbed for character I/O drivers
LIBRARY.C 372 Figure 11-1, commonly used functions in C
LIBRARY.H 390 Figure 11-2, code to be included at the beginning of
any program that calls LIBRARY functions in Figure 11-1