home *** CD-ROM | disk | FTP | other *** search
- General Information on CP/M
- CP/M File References
- CP/M Line Editing and Output Control
- CP/M Built-In Commands
- CP/M Transient Commands
- Physical Device Assignments for ARIES-1
- CP/M STAT Command
- CP/M PIP Command
- CP/M ED Command
- CP/M ASM Command
- CP/M LOAD Command
- The UNLOAD Command
- CP/M DDT Command
- The ZDT Command
- CP/M SYSGEN Command
- CP/M SUBMIT and XSUB Commands
- CP/M BDOS -- Basic I/O Operations
- CP/M BDOS -- Basic Disk Operations
- CP/M File Types
- CP/M BIOS Jump Vector
- :General Information on CP/M
- CP/M is a monitor control program for microcomputer software
- development which uses IBM-compatible flexible disks (floppy disks) for
- mass storage. Using a microcomputer mainframe based on Intel's 8080 or
- Zilog's Z80 microprocessor, CP/M provides a general environment for program
- construction, storage, and editing, along with assembly and program debug
- facilities. An important feature of CP/M is that it can be easily altered
- to execute with any computer configuration which uses an Intel 8080 or
- Zilog Z80 Microprocessor and has at least 20K bytes of main memory with up
- to eight IBM-compatable diskette drives.
- The CP/M monitor provides access to programs through a comprehensive
- file management system. The file subsystem supports a named file
- structure, allowing dynamic allocation of file space as well as sequential
- and random file access. Using this file system, up to 128 distinct
- programs can be stored in both source and machine-executable form.
- Digital Research, the designer of CP/M, has provided a set of nine
- manuals which describe the use and operation of CP/M in detail.
-
- These manuals are:
- 1. An Introduction to CP/M Features and Facilities
- 2. ED: A Context Editor for the CP/M Disk System
- 3. ASM: CP/M Assembler User's Manual
- 4. DDT: CP/M Dynamic Debugging Tool User's Manual
- 5. CP/M 1.4 Interface Guide
- 6. CP/M 1.4 System Alteration Guide
- 7. CP/M 2.0 User's Guide
- 8. CP/M 2.0 Interface Guide
- 9. CP/M 2.0 System Alteration Guide
- As the reader can see, CP/M supports a context editor, an assembler
- (Intel-compatable), and a debugger system. These are available in the
- basic CP/M package. There is a large variety of other software available
- which can run under CP/M with little or no modification. Such software
- includes several assemblers (both 8080 and Z80), a symbolic debugger,
- several high-level languages (including FORTRAN IV {compiler}, BASIC-E
- {translator}, CBASIC {translator}, many interpretive BASICs, ALGOL, FOCAL,
- and C), and several special-purpose applications programs (such as text
- formatting systems and accounting systems).
- This HELP File addresses itself specifically to the CP/M 2.x Operating
- Systems.
- :CP/M File References
-
- A file reference identifies a particular file or group of files on a
- particular disk attached to CP/M. These file references can be either
- unambiguous (ufn) or ambiguous (afn). An unambiguous file reference
- uniquely identifies a single file, while an ambiguous file reference may be
- satisfied by a number of different files.
-
- An unambiguous file reference is an exact name of the specified file.
- It consists of up to eight characters in the file name and three characters
- in the file type. An unambiguous file reference is of the form --
-
- pppppppp.sss
-
- The characters used in specifying an unambiguous file reference may
- not contain any of --
-
- < > . , ; : = ? * [ ]
-
- An ambiguous file reference is used for directory search and pattern
- matching. The form of an ambiguous file reference is similar to an
- unambiguous reference, except the symbol '?' may be interspersed throughout
- the file reference. In various commands throughout CP/M, the '?' symbol
- matches any character of a file name in the '?' position. For example,
- X?Y.C?M will match XZY.COM and X3Y.CEM. The '*' symbol is used to match
- all characters of a file name or file type. For example, *.COM will match
- XZY.COM and HELP.COM, while HELP.* will match HELP.COM and HELP.HLP.
- :CP/M Line Editing and Output Control
-
- The following are the line editing functions supported by CP/M --
-
- rubout Delete and echo the last character typed at the
- console.
- Ctrl-H Delete the last character typed; Backspace one
- character; CRT-oriented
- Ctrl-U Delete the entire line typed at the console.
- Ctrl-X Delete the entire line typed at the console; Backspace
- to the beginning of the current line; CRT-oriented.
- Ctrl-R Retype current command line: types a "clean line"
- following character deletion with rubouts.
- Ctrl-E Physical end of line: carriage is returned, but
- line is not sent until the carriage return key is
- depressed.
- Ctrl-M Terminates input (carriage return).
- Ctrl-J Terminates current input (line feed); CRT-oriented
- Ctrl-C CP/M system reboot (warm start).
- Ctrl-Z End input from the console (used in PIP and ED).
-
- Other control functions affect console output --
-
- Ctrl-P Copy all subsequent console output to the currently-
- assigned list device (LST:). Output is sent to both
- the list device and the console device until the next
- Ctrl-P is typed.
- Ctrl-S Stop the console output temporarily. Program execution
- and output continue when the next character is typed
- at the console. Typing Ctrl-C returns control to CP/M.
-
- Input lines can generally be up to 255 characters in length. They are
- not acted upon until the carriage return key is typed.
- :CP/M Built-In Commands
- ERA afn -- The ERA (erase) command removes files from the
- currently logged-in disk.
- DIR afn -- The DIR (directory) command causes the names of all
- files which satisfy the ambiguous file name afn to be listed
- on the console device. All files are listed if no afn is
- given.
- REN ufn1=ufn2 -- The REN (rename) command allows the user to
- change the names of files on disk. The file satisfying ufn2
- is changed to ufn1.
- SAVE n ufn -- The SAVE command places n pages (256-byte blocks)
- onto disk from the TPA and names this file ufn.
- TYPE ufn -- The TYPE command displays the contents of the ASCII
- source file ufn on the currently logged-in disk at the
- console device.
- USER n -- Upon cold boot, the user is automatically logged in to
- User Area 0, which is compatable with CP/M 1.4 directories.
- The USER command allows the user to move to another logical
- area within the same directory; areas are numbered 0-15.
- The ERA, DIR, REN, SAVE, and TYPE commands apply to the
- current User Area.
- :CP/M Transient Commands
-
- The CP/M standard transient commands are --
-
- STAT List the number of bytes of storage and data on the
- currently logged-in disk, provide statistical
- information about particular files, and display or
- alter device assignment.
- PIP Load the Peripheral Interchange Program for subsequent
- disk file and peripheral transfer operations.
- ED Load and execute the CP/M text editor program.
- SUBMIT Submit a file of commands for batch processing.
- XSUB Used in conjunction with SUBMIT, transfers all buffered
- console input from CON: to the SUBMIT File.
-
- ASM Load the CP/M assembler and assemble the specified
- program from disk.
- LOAD Load the file in Intel "hex" machine code format and
- produce a file in machine executable form which can be
- loaded into the TPA (this loaded program becomes a new
- command under the CCP).
-
- DDT Load the CP/M debugger into the TPA and execute it.
- DUMP Dump the contents of a file in hex.
-
- SYSGEN Create a new CP/M system diskette.
- MOVCPM Regenerate the CP/M system for a particular memory
- size.
- :Physical Device Assignments for ARIES-1
-
- Logical Device Physical Device
-
- CON: TTY: Model 43 Teletype
- CRT: Hazeltine 1500 CRT
- BAT: CRT and Modem
- UC1: In=CRT, Out=CRT and Modem
- RDR: TTY: Model 43 Teletype
- PTR: Modem
- UR1: CRT and Modem w/CRT Output
- UR2: CRT and Modem
- PUN: TTY: Model 43 Teletype
- PTP: Modem
- UP1: CRT and Modem
- UP2: CRT and Modem
- LST: TTY: Model 43 Teletype
- CRT: Hazeltine 1500 CRT
- LPT: Modem
- UL1: CRT and Modem
-
- :CP/M STAT Command
-
- The STAT Command takes any of the following forms --
-
- STAT Calculate the storage remaining on all active drives and print a
- message like
- x: R/W, SPACE: nnnK -- if disk is Read/Write
- x: R/O, SPACE: nnnK -- if disk is Read Only
- STAT x: Calculate the storage remaining on the specified drive and print
- BYTES REMAINING ON x: nnnK
-
- STAT x:afn [$S]
- Scan the specified files on the specified drive (x: is optional),
- and list all files which satisfy the unambiguous reference in
- alphabetical order with storage requirements. A table like the
- following is generated --
-
- Size Recs Bytes Ext Acc
- sssss rrrr nnnk ee a/b d:pppppppp.sss
-
- where
- sssss -- number of virtual 128-byte records in file
- This field is display if the optional $S is given
- rrrr -- number of 128-byte records in each extent of the file
- nnnK -- number of bytes (in K, K=1024) allocated to the file
- ee -- number of 16K extensions
- a/b -- access mode of file; R/O or R/W
- d:pppppppp.sss -- drive name (d may be A, B, C, D) and file
- name
-
- STAT x:=R/O
- Set the specified drive to Read Only. This is cleared by a warm
- boot. When a disk is Read Only, the message
- BDOS ERR ON x: READ ONLY
- will appear if there is an attempt to write to it.
- STAT VAL:
- Summarize the status commands. STAT VAL: will print the list --
-
- Temp R/O Disk: d:=R/O
- Set Indicator: d:filename.typ $R/O $R/W $SYS $DIR
- Disk Status : DSK: d:DSK:
- User Status : USR:
- Iobyte Assign:
- CON: = TTY: CRT: BAT: UC1:
- RDR: = TTY: PTR: UR1: UR2:
- PUN: = TTY: PTP: UP1: UP2:
- LST: = TTY: CRT: LPT: UL1:
-
- STAT DEV:
- Display the current logical to physical device mapping. For
- example, the list may appear as --
-
- CON: = CRT: PUN: = PTP:
- RDR: = UR1: LST: = TTY:
-
- STAT d:afn [$R/O or $R/W or $SYS or $DIR]
- Set the various permanent file indicators. R/O=Read/Only,
- R/W=Read/Write, SYS=System, DIR=Non-System
-
- STAT ld1=pd1, ld2=pd2, ...
- Change the logical to physical device assignments. Logical
- device ld1 is assigned to physical device pd1, etc. The valid
- logical device names are --
-
- CON: The system console device
- RDR: The paper tape reader device
- PUN: The paper tape punch device
- LST: The output list device
-
- The valid physical device names are --
-
- TTY: Slow speed output device (teletype)
- CRT: High speed output device (cathode ray tube)
- BAT: Batch processing (CON: input is RDR:, CON: output
- is LST:)
- UC1: User-defined console
- PTR: Paper tape reader
- PTP: Paper tape punch
- UR1: User-defined reader #1
- UR2: User-defined reader #2
- UP1: User-defined punch #1
- UP2: User-defined punch #2
- LPT: Line printer
- UL1: User-defined list device #1
-
-
- STAT d:DSK:
- List the characteristics of the disk named "d:"; if "d:" is not
- specified, list the characteristics of all active disks. A sample listing:
-
- d: Drive Characteristics
- 65536: 128 Byte Record Capacity
- 8192: Kilobyte Drive Capacity
- 128: 32 Byte Directory Entries
- 0: Checked Directory Entries
- 1024: Records/ Extent
- 128: Records/ Block
- 58: Sectors/ Track
- 2: Reserved Tracks
-
- STAT USR:
- List the User Number the user is currently in and the User
- Numbers which have files on the currently addressed disk. A sample
- listing:
- Active User : 0
- Active Files: 0 1 3
- :CP/M PIP Command
-
- PIP (Peripheral Interchange Program) is the CP/M transient which
- implements the basic media conversion operations necessary to load, print,
- punch, copy, and combine disk files. PIP is initiated by one of the
- following forms --
-
- PIP Engage PIP, prompt the user with '*', and read
- command lines directly from the console. PIP used
- in this way is exited by either typing an empty
- command line (just a carriage return) or a Ctrl-C
- as the first character of the line.
- PIP cmnd Engage PIP, execute the specified command, and
- return to CP/M.
-
- The form of each command line in PIP is --
-
- destination = source#1, source#2, source#3, ..., source#n
-
-
- The general forms of PIP command lines are --
-
- x:=y:afn Copy all files satisfying afn from drive y to
- drive x. 'y' may be omitted, and, if so, the
- currently logged-in drive is selected.
- x:ufn=y: Copy the file given by ufn from y to x. 'x' may
- be omitted, and, if so, the currently logged-in
- drive is selected.
- x:afn=y:afn Like the above, but x and/or y may be omitted; the
- default drive is selected for the omitted
- drive(s).
- ld=pd Copy from the specified physical device to the
- specified logical device. Valid logical devices
- are --
- CON:, RDR:, PUN:, LST:
- Valid physical devices are --
- TTY:, CRT:, UC1:, PTR:, PTP:, UR1:, UR2:,
- UP1:, UP2:, LPT:, UL1:
-
-
- Additional device names which may be used in PIP commands are --
-
- NUL: Send 40 Nulls (ASCII 0) to the device.
- EOF: Send a CP/M End of File character (ASCII Ctrl-Z).
- INP: Special PIP input source to be patched (see manual).
- OUT: Special PIP output destination to be patched (see
- manual).
- PRN: Same as LST:, but tabs are expanded at every eighth
- character position, lines are numbered, and page ejects
- are inserted every 60 lines with an initial eject.
-
-
- The user can also specify one or more PIP parameters enclosed in
- square brackets separated by zero or more blanks. These parameters are --
-
- B Block mode transfer. Data is buffered by PIP until an ASCII X-
- Off character (Ctrl-S) is received from the source device.
- Dn Delete characters which extend past column n in the transfer of
- data to the destination from the character source.
- E Echo all transfer operations to the console.
- F Filter (remove) form feeds from the file.
- Gn Get File from User Number n (n in the range 0 - 15)
- H Hex data transfer. All data is checked for proper Intel hex file
- format.
- I Ignore ':00' records in the transfer of Intel hex format file.
- L Translate upper case to lower case alphabetics.
- N Add line numbers to each line transferred to the destination.
- O Object file (non-ASCII) transfer. Ignore End of File.
-
- Pn Include page ejects at every n lines.
- Qs^Z Quit copying from the source device or file when the string s
- (terminated by Ctrl-Z) is encountered.
- R Read system files
- Ss^Z Start copying from the source file when the string s is seen.
- Tn Expand tabs to every nth column.
- U Translate lower case to upper case alphabetics.
- V Verify that data has been copied correctly.
- W Write over R/O files without console interrogation
- Z Zero the parity bit on input for each ASCII character.
- :CP/M ED Command
-
- The ED Program is the CP/M system context editor, which allows
- creation and alteration of ASCII files. Complete details are given in the
- user's manual.
-
- The following are the error indicators given by ED --
-
- ? Unrecognized Command
- > Memory buffer full
- # Cannot apply command the number of times specified
- O Cannot open LIB file in R command
-
-
- The following are the control characters recognized by ED --
-
- ^C System reboot
- ^E Physical <CR> <LF> (not entered in command)
- ^H Character delete (backspace)
- ^I Logical tab
- ^J New line (line feed)
- ^L Logical <CR> <LF> in search and substitute strings
- ^M New line (carriage return)
- ^U Line delete
- ^X Line delete and backspace
- ^Z String terminator
- Rubout Character delete
- Break Discontinue command
-
-
- The following are the commands recognized by ED --
-
- nA Append lines
- +/- B Beginning/Bottom of buffer
- +/- nC Move character positions
- +/- nD Delete characters
- E Exit
- nFs^Z Find string
- H End edit, close and reopen files
- Is^Z Insert characters
- nJ Place strings in juxtaposition
- +/- nK Kill (delete) lines
- +/- nL Move down/up lines
- nM Macro definition
- O Return to original file
- +/- nP Move and print pages
- Q Quit with no file changes
- R Read library file
-
- nSs1^Zs2^Z
- Substitute s2 for s1
- +/- nT Type lines
- +/- U Translate lower to upper case if U; none if -U
- +/- V Engage/disengage line numbers (verify)
- 0V Print memory buffer info (free/total usage)
- nW Write lines
- nX Transfer n lines to X$$$$$$$.LIB
- 0X Empty X$$$$$$$.LIB
- nZ Sleep
- +/- n Move and type (+/- nLT)
- n: Move to absolute line (V engaged)
- :n Process from current line to specified line (V engaged)
- :CP/M ASM Command
-
- The ASM Command loads and executes the CP/M 8080 assembler. It is of
- the form --
-
- ASM filename.xyz
-
- where
-
- filename ... is the name of the file 'filename.ASM' to assemble
- x ... designates the disk name which contains the source
- y ... designates the disk name to contain the hex file
- (y=Z suppresses generation of the hex file)
- z ... designates the disk name to contain the print file
- (y=X lists on CON:, y=Z suppresses listing)
-
- Refer to the ASM Manual for further details.
- :CP/M LOAD Command
-
- The LOAD Command reads the file specified, which is assumed to contain
- Intel hex format machine code and produces a memory image file which can be
- subsequently executed (converts .HEX to .COM files). It is of the form --
-
- LOAD filename
-
- where filename is the name of the file 'filename.HEX'.
- :The UNLOAD Command
-
- The UNLOAD Command does the reverse of the LOAD Command -- it converts
- COM files to HEX files. It is of the form --
-
- UNLOAD filename
-
- where filename is the name of the file 'filename.COM'.
- :CP/M DDT Command
-
- The DDT Program allows dynamic interactive testing and debugging of
- programs generated in the CP/M environment. It is invoked by --
-
- DDT
- DDT filename.HEX
- DDT filename.COM
-
- where 'filename' is the name of the program to be loaded or tested.
-
- DDT responds to the normal CP/M input line editing characters.
-
-
- DDT responds to the following commands --
-
- As Perform inline assembly starting at the specified address s.
- D Display memory from the current address for 16 display lines.
- Ds Display memory from address s for 16 display lines.
- Ds,f Display memory from address s to address f.
- Fs,f,c
- Fill memory from start address s to final address f with byte c.
-
- G Start execution at the current value of the PC.
- Gs Start execution at the specified address s.
- Gs,b Start execution at the specified address s and set a breakpoint
- at the address b.
- Gs,b,c
- Same as above with breakpoints at b and c.
- G,b Start execution at the current value of the PC with breakpoint b.
- G,b,c
- Same as above with breakpoints at b and c.
-
-
- If Insert a file name f into the default FCB.
-
- L List 12 lines of disassembled code from the current address.
- Ls List 12 lines from the specified address s.
- Ls,f List lines of disassembled code from s to f.
-
- Ms,f,d
- Move the block from address s to f to destination at address d.
-
- R Read file in FCB into memory at 100H.
- Rb Read file in FCB into memory with offset b from 100H.
-
- Ss Set (examine and alter) memory starting at address s.
-
-
- T Trace the next instruction.
- Tn Trace the next n instructions.
-
- U Untrace -- like Trace, but intermediate steps are not displayed.
-
- X Examine all registers and flags.
- Xr Examine specified registers or flag, where r may be --
- C Carry flag
- Z Zero flag
- M Minus (sign) flag
- I Interdigit Carry flag
- A Accumulator
- B BC Reg pair
- D DE Reg pair
- H HL Reg pair
- S Stack pointer
- P PC
- :The ZDT Command
-
- ZDT is a Z80 version of DDT. It is invoked by typing --
-
- ZDT
-
- The commands recognized by ZDT are input in single-character input
- mode. No input line editing is done, and each command expects an exact
- input. All byte values are exactly two characters, and all addresses are
- exactly four characters.
-
-
- The commands recognized by ZDT are --
-
- A bbbb
- Enter ASCII characters into memory from keyboard starting at
- address bbbb.
- B
- Warm Boot -- Return to CP/M.
- C bbbb eeee nnnn
- Compare memory from address bbbb to address eeee to block
- starting at nnnn.
- D bbbb eeee
- Dump memory from bbbb to eeee.
- E bbbb eeee <ASCII string>
- Search for ASCII string from bbbb to eeee. String is at
- most 16 characters. String is terminated by <CR>.
- F bbbb eeee <hex string>
- Search for hex string from bbbb to eeee. String is
- terminated by <CR>.
-
- G
- Go to next breakpoint.
- H aaaa nnnn
- Hex add and subtract. Computes aaaa+nnnn and aaaa-nnnn.
- I nn
- Input. Prints value at port nn.
- J nnnn
- Jump to and execute at location nnnn.
- K
- Keyboard echo.
- L filename.typ nnnn
- Loads specified disk file into location nnnn.
- M bbbb eeee nnnn
- Move block from bbbb to eeee-1 to nnnn.
- N aaaa
- Enter offset aaaa for loading.
- O nn dd
- Output byte dd to port nn.
-
- P bbbb
- Input hex into memory from keyboard starting at bbbb. <sp>
- advances pointer, <rub> or <del> backs pointer.
- Q bbbb eeee
- Dumps from bbbb to eeee in ASCII.
- R n ll tt ss bbbb
- Read block of data from disk n of length ll (256-byte pages)
- starting at track tt and sector ss placing the data at bbbb.
- S bbbb eeee
- Disassembly (symbolic dump) from bbbb to eeee.
- T bbbb eeee
- Destructive memory test from bbbb to eeee-1.
- U bbbb
- Set breakpoint at bbbb.
- V
- Display all currently-set breakpoints.
-
- W n ll tt ss bbbb
- Write on disk n the data at bbbb for a length of ll starting
- at track tt, sector ss. ll is in 256-byte pages.
- X
- Display registers.
- Z bbbb eeee dd
- Zero or set memory from bbbb to eeee-1 with byte dd.
- :CP/M SYSGEN Command
-
- The SYSGEN transient command allows generation of an initialized disk
- containing the CP/M Operating System.
-
- It is invoked by typing
-
- SYSGEN
-
- Once invoked, the user is prompted through the session. Refer to the
- CP/M Manual for further details.
- :CP/M SUBMIT and XSUB Commands
-
- The SUBMIT command allows CP/M commands to be batched together for
- automatic processing. The form of this command is
-
- SUBMIT ufn parm1 parm2 ... parmn
-
- The ufn given in the SUBMIT command must be the filename (not type) of
- a file which exists on the currently logged-in disk with an assumed file
- type of '.SUB'. Refer to the CP/M Manual for further details.
- The XSUB command extends the power of the SUBMIT facility. When
- specified as the first line of a SUBMIT File, it self-relocates directly
- below the CCP. All subsequent SUBMIT command lines are processed by XSUB,
- so that programs which read buffered console input (BDOS Function 10)
- receive input directly from the SUBMIT File. While XSUB is in memory, it
- prints the message "(xsub active)" on each warm boot. An example of the
- use of XSUB to display memory from 100H to 1FFH is --
- XSUB
- DDT
- D100,1FF
- G0
- :CP/M BDOS -- Basic I/O Operations
- Function and Number Input Parameters Output Parameters
-
- System Reset 0 None None
- Read Console 1 None ASCII Char in A
- Write Console 2 ASCII Char in E None
- Read Reader 3 None ASCII Char in A
- Write Punch 4 ASCII Char in E None
- Write List 5 ASCII Char in E None
- Direct Con I/O 6 ASCII Char in E I/O Status in A if E=0FFH
- Get I/O Status 7 None I/O Status in A
- Put I/O Status 8 I/O Status in E None
- Print Buffer 9 Address of string None
- terminated by $
- in DE
- Read Buffer 10 Address of Read Read Buffer is filled
- Buffer in DE
- Console Ready 11 None LSB of A is 1 if char
- ready
- *All function numbers are passed in Reg C.
-
- I/O Status Byte --
-
- Value Bits 6&7 Bits 4&5 Bits 2&3 Bits 0&1
-
- 00 CON:=TTY: RDR:=TTY: PUN:=TTY: LST:=TTY:
- 01 CRT: PTR: PTP: CRT:
- 10 BAT: UR1: UP1: LPT:
- 11 UC1: UR2: UP2: UL1:
-
- Read Buffer --
-
- Byte Function
-
- 1 Maximum Buffer Length
- 2 Current Buffer Length (returned value)
- 3-n Data (returned values)
-
-
- :CP/M BIOS -- Basic Disk Operations
-
- Function and Number Input Parameters Output Parameters
-
- Return Version # 12 None Version Info in HL
- H=0 CP/M, H=1 MP/M
- L=00 CP/M 1.x, 2x 2.x
- Init BDOS 13 None None
- Log-In Disk 14 Value in Reg E None
- A=0, B=1, C=2,
- D=3
- Open File 15 Address of FCB Byte address of FCB
- in DE if found or 0FFH if not
- Close File 16 Address of FCB Byte address of FCB
- in DE if found or 0FFH if not
- Search for File 17 Address of FCB Byte address of FCB (0-3)
- in DE if found or 0FFH if not
- Search for Next 18 Address of FCB Byte address of next FCB
- in DE if found or 0FFH if not
- Delete File 19 Address of FCB Byte address of FCB (0-3)
- in DE if found or 0FFH if not
-
- Function and Number Input Parameters Output Parameters
-
- Read Next Record 20 Address of FCB 0=successful read
- in DE 1=read past EOF
- 2=reading random data
- Write Next Rec 21 Address of FCB 0=successful write
- in DE 1=error in extending
- 2=end of disk data
- 255=no more dir space
- Make File 22 Address of FCB Byte address of FCB or
- in DE 255 if no more dir space
- Rename FCB 23 Address of FCB Byte Address of Dir entry
- in DE or 255 if no match
- Return Log Code 24 None Login vector in HL
- Read Drive No 25 None Number of logged-in drive
- (A=0, B=1, C=2, D=3)
- Set DMA Address 26 Address of 128 None
- byte buffer in DE
-
- Function and Number Input Parameters Output Parameters
-
- Get Alloc Vect 27 None Allocation Vect Addr in
- HL
- Write Prot Disk 28 None None
- Get R/O Vect 29 None HL=R/O Vect Val
- Set File Attrib 30 Ptr to FCB in DE Dir code in A
- Get Disk Parms 31 None HL=DPB Address
- Set/Get Usr Code 32 E=0FFH (get)/Code A=Current code (get)/no
- (set) value (set)
- Read Random 33 DE=FCB addr A=return code
- 1=reading unwritten data
- 2=(not used)
- 3=can't close curr ext
- 4=seek to unwritten ext
- 5=(not used)
- 6=seek past end of disk
-
- Function and Number Input Parameters Output Parameters
-
- Write Random 34 DE=FCB addr A=return code
- 1=reading unwritten data
- 2=(not used)
- 3=can't close curr ext
- 4=seek to unwritten ext
- 5=dir overflow
- 6=seek past end of disk
- Compute File Siz 35 DE=FCB addr Random Rec Field set
- to file size
- Set Random Rec 36 DE=FCB addr Random Rec Field set
-
-
- *All function numbers are passed in Reg C
-
- :CP/M File Types
- AIN ALGOL 60 Intermediate ALG ALGOL 60 Source File
- ASM Assembler Source File BAK Backup File
- BAS BASIC Source File C C Source File
- COB COBOL Source File COM "Command" File
- FOR FORTRAN IV Source File HEX Intel "hex" code file
- HLP HELP File INT BASIC Intermediate File
- LST Listing File MAC MACRO-80 Source File
- PAS PASCAL Source File PRN Assembler Listing File
- REL Relocatable Module SRC PASCAL/MT Source File
- SUB SUBMIT File SYM Symbol File
- TC Tiny-C Source File TFS TFS Source File
- TXT Text File $$$ Temporary File
- :CP/M BIOS Jump Vector
-
- The following is a table representing the entry points into the CP/M
- BIOS of the major routines accessable to the user --
-
-
- Routine Relative Offset Comment
-
- BOOT 00H Cold Start
- WBOOT 03H Warm Start
- CONST 06H Console Status
- Reg A = 00 if no char ready
- Reg A = FF if char ready
- CONIN 09H Console char in (Reg A)
- CONOUT 0CH Console char out (Reg C)
- LIST 0FH List out (Reg C)
- PUNCH 12H Punch out (Reg C)
- READER 15H Reader in (Reg A)
-
- Routine Relative Offset Comment
-
- HOME 18H Move to track 00
- SELDSK 1BH Select disk given by Reg C (A=0,B=1,...)
- SETTRK 1EH Set track address given by Reg C
- (0...76)
- SETSEC 21H Set sector address given by Reg C
- (1...26)
- SETDMA 24H Set subsequent DMA address (RP B&C)
- READ 27H Read track/sector (block)
- WRITE 2AH Write track/sector (block)
- LISTST 2DH List Device Status
- Reg A = 00 if no char ready
- Reg A = FF if char ready
- SECTRAN 30H Translate sector number in Reg C using
- table pointed to by DE; physical sector
- number returned in Reg L