home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpmhelp / cpm2.hlp < prev    next >
Text File  |  1994-07-27  |  37KB  |  806 lines

  1. General Information on CP/M
  2. CP/M File References
  3. CP/M Line Editing and Output Control
  4. CP/M Built-In Commands
  5. CP/M Transient Commands
  6. Physical Device Assignments for ARIES-1
  7. CP/M STAT Command
  8. CP/M PIP Command
  9. CP/M ED Command
  10. CP/M ASM Command
  11. CP/M LOAD Command
  12. The UNLOAD Command
  13. CP/M DDT Command
  14. The ZDT Command
  15. CP/M SYSGEN Command
  16. CP/M SUBMIT and XSUB Commands
  17. CP/M BDOS -- Basic I/O Operations
  18. CP/M BDOS -- Basic Disk Operations
  19. CP/M File Types
  20. CP/M BIOS Jump Vector
  21. :General Information on CP/M
  22.      CP/M   is  a  monitor  control  program  for  microcomputer   software 
  23. development  which  uses IBM-compatible flexible disks (floppy  disks)  for 
  24. mass  storage.   Using a microcomputer mainframe based on Intel's  8080  or 
  25. Zilog's Z80 microprocessor, CP/M provides a general environment for program 
  26. construction,  storage,  and editing, along with assembly and program debug 
  27. facilities.   An important feature of CP/M is that it can be easily altered 
  28. to  execute  with  any computer configuration which uses an Intel  8080  or 
  29. Zilog Z80 Microprocessor and has at least 20K bytes of main memory with  up 
  30. to eight IBM-compatable diskette drives.
  31.      The  CP/M monitor provides access to programs through a  comprehensive 
  32. file  management  system.    The  file  subsystem  supports  a  named  file 
  33. structure,  allowing dynamic allocation of file space as well as sequential 
  34. and  random  file  access.   Using this file system,  up  to  128  distinct 
  35. programs can be stored in both source and machine-executable form.
  36.      Digital  Research,  the designer of CP/M,  has provided a set of  nine 
  37. manuals which describe the use and operation of CP/M in detail.
  38.  
  39.      These manuals are:
  40.           1.  An Introduction to CP/M Features and Facilities
  41.           2.  ED:  A Context Editor for the CP/M Disk System
  42.           3.  ASM:  CP/M Assembler User's Manual
  43.           4.  DDT:  CP/M Dynamic Debugging Tool User's Manual
  44.           5.  CP/M 1.4 Interface Guide
  45.           6.  CP/M 1.4 System Alteration Guide
  46.           7.  CP/M 2.0 User's Guide
  47.           8.  CP/M 2.0 Interface Guide
  48.           9.  CP/M 2.0 System Alteration Guide
  49.      As the reader can see,  CP/M supports a context editor,  an  assembler 
  50. (Intel-compatable),  and  a  debugger system.   These are available in  the 
  51. basic CP/M package.   There is a large variety of other software  available 
  52. which  can  run under CP/M with little or no modification.   Such  software 
  53. includes  several  assemblers (both 8080 and  Z80),  a  symbolic  debugger, 
  54. several  high-level  languages (including FORTRAN  IV  {compiler},  BASIC-E 
  55. {translator},  CBASIC {translator}, many interpretive BASICs, ALGOL, FOCAL, 
  56. and  C),  and  several special-purpose applications programs (such as  text 
  57. formatting systems and accounting systems).
  58.      This HELP File addresses itself specifically to the CP/M 2.x Operating 
  59. Systems.
  60. :CP/M File References
  61.  
  62.      A  file reference identifies a particular file or group of files on  a 
  63. particular  disk  attached to CP/M.   These file references can  be  either 
  64. unambiguous  (ufn)  or  ambiguous (afn).   An  unambiguous  file  reference 
  65. uniquely identifies a single file, while an ambiguous file reference may be 
  66. satisfied by a number of different files.
  67.  
  68.      An  unambiguous file reference is an exact name of the specified file.  
  69. It consists of up to eight characters in the file name and three characters 
  70. in the file type.  An unambiguous file reference is of the form --
  71.  
  72.                pppppppp.sss
  73.  
  74.      The  characters used in specifying an unambiguous file  reference  may 
  75. not contain any of --
  76.  
  77.                < > . , ; : = ? * [ ]
  78.  
  79.      An  ambiguous file reference is used for directory search and  pattern 
  80. matching.   The  form  of  an  ambiguous file reference is  similar  to  an 
  81. unambiguous reference, except the symbol '?' may be interspersed throughout 
  82. the file reference.   In various commands throughout CP/M,  the '?'  symbol 
  83. matches  any  character of a file name in the '?' position.   For  example, 
  84. X?Y.C?M  will match XZY.COM and X3Y.CEM.   The '*' symbol is used to  match 
  85. all characters of a file name or file type.   For example, *.COM will match 
  86. XZY.COM and HELP.COM, while HELP.* will match HELP.COM and HELP.HLP.
  87. :CP/M Line Editing and Output Control
  88.  
  89.      The following are the line editing functions supported by CP/M --
  90.  
  91.           rubout    Delete and echo the last character typed at the
  92.                     console.
  93.           Ctrl-H    Delete   the   last  character  typed;   Backspace  one 
  94.                     character; CRT-oriented
  95.           Ctrl-U    Delete the entire line typed at the console.
  96.           Ctrl-X    Delete the entire line typed at the console;  Backspace 
  97.                     to the beginning of the current line; CRT-oriented.
  98.           Ctrl-R    Retype current command line:  types a "clean line"
  99.                     following character deletion with rubouts.
  100.           Ctrl-E    Physical end of line:  carriage is returned, but
  101.                     line is not sent until the carriage return key is
  102.                     depressed.
  103.           Ctrl-M    Terminates input (carriage return).
  104.           Ctrl-J    Terminates current input (line feed); CRT-oriented
  105.           Ctrl-C    CP/M system reboot (warm start).
  106.           Ctrl-Z    End input from the console (used in PIP and ED).
  107.  
  108.      Other control functions affect console output --
  109.  
  110.           Ctrl-P    Copy all subsequent console output to the currently-
  111.                     assigned list device (LST:).  Output is sent to both
  112.                     the list device and the console device until the next
  113.                     Ctrl-P is typed.
  114.           Ctrl-S    Stop the console output temporarily.  Program execution
  115.                     and output continue when the next character is typed
  116.                     at the console.  Typing Ctrl-C returns control to CP/M.
  117.  
  118.      Input lines can generally be up to 255 characters in length.  They are 
  119. not acted upon until the carriage return key is typed.
  120. :CP/M Built-In Commands
  121.           ERA  afn  -- The  ERA  (erase) command  removes  files  from  the 
  122.                currently logged-in disk.
  123.           DIR  afn -- The DIR (directory) command causes the names  of  all 
  124.                files which satisfy the ambiguous file name afn to be listed 
  125.                on  the console device.   All files are listed if no afn  is 
  126.                given.
  127.           REN  ufn1=ufn2  -- The  REN (rename) command allows the  user  to 
  128.                change the names of files on disk.  The file satisfying ufn2 
  129.                is changed to ufn1.
  130.           SAVE  n ufn -- The SAVE command places n pages (256-byte  blocks) 
  131.                onto disk from the TPA and names this file ufn.
  132.           TYPE  ufn -- The TYPE command displays the contents of the  ASCII 
  133.                source  file  ufn  on the currently logged-in  disk  at  the 
  134.                console device.
  135.           USER n -- Upon cold boot,  the user is automatically logged in to 
  136.                User Area 0,  which is compatable with CP/M 1.4 directories.  
  137.                The USER command allows the user to move to another  logical 
  138.                area  within  the same directory;  areas are numbered  0-15.  
  139.                The ERA,  DIR,  REN,  SAVE,  and TYPE commands apply to  the 
  140.                current User Area.
  141. :CP/M Transient Commands
  142.  
  143.      The CP/M standard transient commands are --
  144.  
  145.           STAT      List the number of  bytes  of storage  and data on  the 
  146.                     currently    logged-in   disk,    provide   statistical 
  147.                     information  about  particular files,  and  display  or 
  148.                     alter device assignment.
  149.           PIP       Load the Peripheral Interchange Program for  subsequent 
  150.                     disk file and peripheral transfer operations.
  151.           ED        Load and execute the CP/M text editor program.
  152.           SUBMIT    Submit a file of commands for batch processing.
  153.           XSUB      Used in conjunction with SUBMIT, transfers all buffered 
  154.                     console input from CON: to the SUBMIT File.
  155.  
  156.           ASM       Load  the  CP/M assembler and  assemble  the  specified 
  157.                     program from disk.
  158.           LOAD      Load  the file in Intel "hex" machine code  format  and 
  159.                     produce  a file in machine executable form which can be 
  160.                     loaded into the TPA (this loaded program becomes a  new 
  161.                     command under the CCP).
  162.  
  163.           DDT       Load the CP/M debugger into the TPA and execute it.
  164.           DUMP      Dump the contents of a file in hex.
  165.  
  166.           SYSGEN    Create a new CP/M system diskette.
  167.           MOVCPM    Regenerate  the  CP/M system  for a  particular  memory 
  168.                     size.
  169. :Physical Device Assignments for ARIES-1
  170.  
  171.      Logical Device           Physical Device
  172.  
  173.           CON:                TTY: Model 43 Teletype
  174.                               CRT: Hazeltine 1500 CRT
  175.                               BAT: CRT and Modem
  176.                               UC1: In=CRT, Out=CRT and Modem
  177.           RDR:                TTY: Model 43 Teletype
  178.                               PTR: Modem
  179.                               UR1: CRT and Modem w/CRT Output
  180.                               UR2: CRT and Modem
  181.           PUN:                TTY: Model 43 Teletype
  182.                               PTP: Modem
  183.                               UP1: CRT and Modem
  184.                               UP2: CRT and Modem
  185.           LST:                TTY: Model 43 Teletype
  186.                               CRT: Hazeltine 1500 CRT
  187.                               LPT: Modem
  188.                               UL1: CRT and Modem
  189.  
  190. :CP/M STAT Command
  191.  
  192.      The STAT Command takes any of the following forms --
  193.  
  194. STAT      Calculate the storage remaining on all active drives and print  a 
  195.           message like
  196.                x: R/W, SPACE: nnnK  -- if disk is Read/Write
  197.                x: R/O, SPACE: nnnK  -- if disk is Read Only
  198. STAT x:   Calculate the storage remaining on the specified drive and print
  199.                BYTES REMAINING ON x: nnnK
  200.  
  201. STAT x:afn [$S]
  202.           Scan the specified files on the specified drive (x: is optional), 
  203.           and  list  all files which satisfy the unambiguous  reference  in 
  204.           alphabetical  order with storage requirements.   A table like the 
  205.           following is generated --
  206.  
  207.                Size Recs Bytes Ext Acc
  208.               sssss rrrr  nnnk  ee a/b d:pppppppp.sss
  209.  
  210.           where
  211.                sssss -- number of virtual 128-byte records in file
  212.                     This field is display if the optional $S is given
  213.                rrrr -- number of 128-byte records in each extent of the file
  214.                nnnK -- number of bytes (in K, K=1024) allocated to the file
  215.                ee -- number of 16K extensions
  216.                a/b -- access mode of file; R/O or R/W
  217.                d:pppppppp.sss -- drive name (d may be A, B, C, D) and file
  218.                          name
  219.  
  220. STAT x:=R/O
  221.           Set the specified drive to Read Only.   This is cleared by a warm 
  222.           boot.  When a disk is Read Only, the message
  223.                BDOS ERR ON x: READ ONLY
  224.           will appear if there is an attempt to write to it.
  225. STAT VAL:
  226.           Summarize the status commands.  STAT VAL: will print the list --
  227.  
  228.                Temp R/O Disk:  d:=R/O
  229.                Set Indicator:  d:filename.typ $R/O $R/W $SYS $DIR
  230.                Disk Status  :  DSK: d:DSK:
  231.                User Status  :  USR:
  232.                Iobyte Assign:
  233.                CON: = TTY:  CRT:  BAT:  UC1:
  234.                RDR: = TTY:  PTR:  UR1:  UR2:
  235.                PUN: = TTY:  PTP:  UP1:  UP2:
  236.                LST: = TTY:  CRT:  LPT:  UL1:
  237.  
  238. STAT DEV:
  239.           Display  the  current logical to physical  device  mapping.   For 
  240.           example, the list may appear as --
  241.  
  242.                CON: = CRT:         PUN: = PTP:
  243.                RDR: = UR1:         LST: = TTY:
  244.  
  245. STAT d:afn [$R/O or $R/W or $SYS or $DIR]
  246.           Set  the  various  permanent  file  indicators.    R/O=Read/Only, 
  247.           R/W=Read/Write, SYS=System, DIR=Non-System
  248.  
  249. STAT ld1=pd1, ld2=pd2, ...
  250.           Change  the  logical  to physical  device  assignments.   Logical 
  251.           device ld1 is assigned to physical device pd1,  etc.   The  valid 
  252.           logical device names are --
  253.  
  254.                CON:      The system console device
  255.                RDR:      The paper tape reader device
  256.                PUN:      The paper tape punch device
  257.                LST:      The output list device
  258.  
  259.           The valid physical device names are --
  260.  
  261.                TTY:      Slow speed output device (teletype)
  262.                CRT:      High speed output device (cathode ray tube)
  263.                BAT:      Batch processing (CON: input is RDR:,  CON: output 
  264.                          is LST:)
  265.                UC1:      User-defined console
  266.                PTR:      Paper tape reader
  267.                PTP:      Paper tape punch
  268.                UR1:      User-defined reader #1
  269.                UR2:      User-defined reader #2
  270.                UP1:      User-defined punch #1
  271.                UP2:      User-defined punch #2
  272.                LPT:      Line printer
  273.                UL1:      User-defined list device #1
  274.  
  275.  
  276. STAT d:DSK:
  277.           List  the characteristics of the disk named "d:";  if "d:" is not 
  278. specified, list the characteristics of all active disks.  A sample listing:
  279.  
  280.                d: Drive Characteristics
  281.            65536: 128 Byte Record Capacity
  282.             8192: Kilobyte Drive Capacity
  283.              128: 32  Byte Directory Entries
  284.                0: Checked  Directory Entries
  285.             1024: Records/ Extent
  286.              128: Records/ Block
  287.               58: Sectors/ Track
  288.                2: Reserved Tracks
  289.  
  290. STAT USR:
  291.           List  the  User  Number the user is currently  in  and  the  User 
  292. Numbers  which  have  files  on the currently  addressed  disk.   A  sample 
  293. listing:
  294.                Active User : 0
  295.                Active Files: 0 1 3
  296. :CP/M PIP Command
  297.  
  298.      PIP  (Peripheral  Interchange  Program) is the  CP/M  transient  which 
  299. implements the basic media conversion operations necessary to load,  print, 
  300. punch,  copy,  and  combine  disk files.   PIP is initiated by one  of  the 
  301. following forms --
  302.  
  303.           PIP            Engage  PIP,  prompt the user with '*',  and  read 
  304.                          command lines directly from the console.  PIP used 
  305.                          in  this  way is exited by either typing an  empty 
  306.                          command line (just a carriage return) or a  Ctrl-C 
  307.                          as the first character of the line.
  308.           PIP  cmnd      Engage PIP,  execute  the specified  command,  and 
  309.                          return to CP/M.
  310.  
  311.      The form of each command line in PIP is --
  312.  
  313.           destination = source#1, source#2, source#3, ..., source#n
  314.  
  315.  
  316.      The general forms of PIP command lines are --
  317.  
  318.           x:=y:afn       Copy  all  files  satisfying afn from drive  y  to 
  319.                          drive x.   'y' may be omitted,  and,  if  so,  the 
  320.                          currently logged-in drive is selected.
  321.           x:ufn=y:       Copy  the file given by ufn from y to x.   'x' may 
  322.                          be omitted,  and,  if so,  the currently logged-in 
  323.                          drive is selected.
  324.           x:afn=y:afn    Like the above, but x and/or y may be omitted; the 
  325.                          default   drive  is  selected  for   the   omitted 
  326.                          drive(s).
  327.           ld=pd          Copy  from  the specified physical device  to  the 
  328.                          specified  logical device.   Valid logical devices 
  329.                          are --
  330.                               CON:, RDR:, PUN:, LST:
  331.                          Valid physical devices are --
  332.                               TTY:, CRT:, UC1:, PTR:, PTP:, UR1:, UR2:,
  333.                               UP1:, UP2:, LPT:, UL1:
  334.  
  335.  
  336.      Additional device names which may be used in PIP commands are --
  337.  
  338.           NUL:      Send 40 Nulls (ASCII 0) to the device.
  339.           EOF:      Send a CP/M End of File character (ASCII Ctrl-Z).
  340.           INP:      Special PIP input source to be patched (see manual).
  341.           OUT:      Special  PIP  output  destination to  be  patched  (see 
  342.                     manual).
  343.           PRN:      Same as LST:,  but  tabs are expanded at  every  eighth 
  344.                     character position, lines are numbered, and page ejects 
  345.                     are inserted every 60 lines with an initial eject.
  346.  
  347.  
  348.      The  user  can  also specify one or more PIP  parameters  enclosed  in 
  349. square brackets separated by zero or more blanks.  These parameters are --
  350.  
  351.      B    Block mode  transfer.   Data is buffered by PIP until an ASCII X-
  352.           Off character (Ctrl-S) is received from the source device.
  353.      Dn   Delete characters  which extend past column n in the transfer  of 
  354.           data to the destination from the character source.
  355.      E    Echo all transfer operations to the console.
  356.      F    Filter (remove) form feeds from the file.
  357.      Gn   Get File from User Number n (n in the range 0 - 15)
  358.      H    Hex data transfer.  All data is checked for proper Intel hex file 
  359.           format.
  360.      I    Ignore ':00' records in the transfer of Intel hex format file.
  361.      L    Translate upper case to lower case alphabetics.
  362.      N    Add line numbers to each line transferred to the destination.
  363.      O    Object file (non-ASCII) transfer.  Ignore End of File.
  364.  
  365.      Pn   Include page ejects at every n lines.
  366.      Qs^Z Quit  copying  from the source device or file when the  string  s 
  367.           (terminated by Ctrl-Z) is encountered.
  368.      R    Read system files
  369.      Ss^Z Start copying from the source file when the string s is seen.
  370.      Tn   Expand tabs to every nth column.
  371.      U    Translate lower case to upper case alphabetics.
  372.      V    Verify that data has been copied correctly.
  373.      W    Write over R/O files without console interrogation
  374.      Z    Zero the parity bit on input for each ASCII character.
  375. :CP/M ED Command
  376.  
  377.      The  ED  Program  is the CP/M  system  context  editor,  which  allows 
  378. creation and alteration of ASCII files.   Complete details are given in the 
  379. user's manual.
  380.  
  381.      The following are the error indicators given by ED --
  382.  
  383.           ?    Unrecognized Command
  384.           >    Memory buffer full
  385.           #    Cannot apply command the number of times specified
  386.           O    Cannot open LIB file in R command
  387.  
  388.  
  389.      The following are the control characters recognized by ED --
  390.  
  391.           ^C        System reboot
  392.           ^E        Physical <CR> <LF> (not entered in command)
  393.           ^H        Character delete (backspace)
  394.           ^I        Logical tab
  395.           ^J        New line (line feed)
  396.           ^L        Logical <CR> <LF> in search and substitute strings
  397.           ^M        New line (carriage return)
  398.           ^U        Line delete
  399.           ^X        Line delete and backspace
  400.           ^Z        String terminator
  401.           Rubout    Character delete
  402.           Break     Discontinue command
  403.  
  404.  
  405.      The following are the commands recognized by ED --
  406.  
  407.           nA        Append lines
  408.           +/- B     Beginning/Bottom of buffer
  409.           +/- nC    Move character positions
  410.           +/- nD    Delete characters
  411.           E         Exit
  412.           nFs^Z     Find string
  413.           H         End edit, close and reopen files
  414.           Is^Z      Insert characters
  415.           nJ        Place strings in juxtaposition
  416.           +/- nK    Kill (delete) lines
  417.           +/- nL    Move down/up lines
  418.           nM        Macro definition
  419.           O         Return to original file
  420.           +/- nP    Move and print pages
  421.           Q         Quit with no file changes
  422.           R         Read library file
  423.  
  424.           nSs1^Zs2^Z
  425.                     Substitute s2 for s1
  426.           +/- nT    Type lines
  427.           +/- U     Translate lower to upper case if U; none if -U
  428.           +/- V     Engage/disengage line numbers (verify)
  429.           0V        Print memory buffer info (free/total usage)
  430.           nW        Write lines
  431.           nX        Transfer n lines to X$$$$$$$.LIB
  432.           0X        Empty X$$$$$$$.LIB
  433.           nZ        Sleep
  434.           +/- n     Move and type (+/- nLT)
  435.           n:        Move to absolute line (V engaged)
  436.           :n        Process from current line to specified line (V engaged)
  437. :CP/M ASM Command
  438.  
  439.      The ASM Command loads and executes the CP/M 8080 assembler.   It is of 
  440. the form --
  441.  
  442.           ASM filename.xyz
  443.  
  444. where
  445.  
  446.           filename  ... is the name of the file 'filename.ASM' to assemble
  447.           x         ... designates the disk name which contains the source
  448.           y         ... designates the disk name to contain the hex file
  449.                          (y=Z suppresses generation of the hex file)
  450.           z         ... designates the disk name to contain the print file
  451.                          (y=X lists on CON:, y=Z suppresses listing)
  452.  
  453.      Refer to the ASM Manual for further details.
  454. :CP/M LOAD Command
  455.  
  456.      The LOAD Command reads the file specified, which is assumed to contain 
  457. Intel hex format machine code and produces a memory image file which can be 
  458. subsequently executed (converts .HEX to .COM files).  It is of the form --
  459.  
  460.           LOAD filename
  461.  
  462. where filename is the name of the file 'filename.HEX'.
  463. :The UNLOAD Command
  464.  
  465.      The UNLOAD Command does the reverse of the LOAD Command -- it converts 
  466. COM files to HEX files.  It is of the form --
  467.  
  468.           UNLOAD filename
  469.  
  470. where filename is the name of the file 'filename.COM'.
  471. :CP/M DDT Command
  472.  
  473.      The  DDT  Program allows dynamic interactive testing and debugging  of 
  474. programs generated in the CP/M environment.  It is invoked by --
  475.  
  476.           DDT
  477.           DDT filename.HEX
  478.           DDT filename.COM
  479.  
  480. where 'filename' is the name of the program to be loaded or tested.
  481.  
  482.      DDT responds to the normal CP/M input line editing characters.
  483.  
  484.  
  485.    DDT responds to the following commands --
  486.  
  487.      As   Perform inline assembly starting at the specified address s.
  488.      D    Display memory from the current address for 16 display lines.
  489.      Ds   Display memory from address s for 16 display lines.
  490.      Ds,f Display memory from address s to address f.
  491.      Fs,f,c
  492.           Fill memory from start address s to final address f with byte c.
  493.  
  494.      G    Start execution at the current value of the PC.
  495.      Gs   Start execution at the specified address s.
  496.      Gs,b Start execution  at the specified address s and set a  breakpoint 
  497.           at the address b.
  498.      Gs,b,c
  499.           Same as above with breakpoints at b and c.
  500.      G,b  Start execution at the current value of the PC with breakpoint b.
  501.      G,b,c
  502.           Same as above with breakpoints at b and c.
  503.  
  504.  
  505.      If   Insert a file name f into the default FCB.
  506.  
  507.      L    List 12 lines of disassembled code from the current address.
  508.      Ls   List 12 lines from the specified address s.
  509.      Ls,f List lines of disassembled code from s to f.
  510.  
  511.      Ms,f,d
  512.           Move the block from address s to f to destination at address d.
  513.  
  514.      R    Read file in FCB into memory at 100H.
  515.      Rb   Read file in FCB into memory with offset b from 100H.
  516.  
  517.      Ss   Set (examine and alter) memory starting at address s.
  518.  
  519.  
  520.      T    Trace the next instruction.
  521.      Tn   Trace the next n instructions.
  522.  
  523.      U    Untrace -- like Trace, but intermediate steps are not displayed.
  524.  
  525.      X    Examine all registers and flags.
  526.      Xr   Examine specified registers or flag, where r may be --
  527.                C    Carry flag
  528.                Z    Zero flag
  529.                M    Minus (sign) flag
  530.                I    Interdigit Carry flag
  531.                A    Accumulator
  532.                B    BC Reg pair
  533.                D    DE Reg pair
  534.                H    HL Reg pair
  535.                S    Stack pointer
  536.                P    PC
  537. :The ZDT Command
  538.  
  539.      ZDT is a Z80 version of DDT.  It is invoked by typing --
  540.  
  541.           ZDT
  542.  
  543.      The  commands  recognized by ZDT are input in  single-character  input 
  544. mode.   No  input line editing is done,  and each command expects an  exact 
  545. input.   All byte values are exactly two characters,  and all addresses are 
  546. exactly four characters.
  547.  
  548.  
  549.      The commands recognized by ZDT are --
  550.  
  551.           A bbbb
  552.                Enter ASCII characters into memory from keyboard starting at 
  553.                address bbbb.
  554.           B
  555.                Warm Boot -- Return to CP/M.
  556.           C bbbb eeee nnnn
  557.                Compare  memory from address bbbb to address eeee  to  block 
  558.                starting at nnnn.
  559.           D bbbb eeee
  560.                Dump memory from bbbb to eeee.
  561.           E bbbb eeee <ASCII string>
  562.                Search  for  ASCII string from bbbb to eeee.   String is  at 
  563.                most 16 characters.  String is terminated by <CR>.
  564.           F bbbb eeee <hex string>
  565.                Search  for  hex  string  from  bbbb  to  eeee.   String  is 
  566.                terminated by <CR>.
  567.  
  568.           G
  569.                Go to next breakpoint.
  570.           H aaaa nnnn
  571.                Hex add and subtract.  Computes aaaa+nnnn and aaaa-nnnn.
  572.           I nn
  573.                Input.  Prints value at port nn.
  574.           J nnnn
  575.                Jump to and execute at location nnnn.
  576.           K
  577.                Keyboard echo.
  578.           L filename.typ nnnn
  579.                Loads specified disk file into location nnnn.
  580.           M bbbb eeee nnnn
  581.                Move block from bbbb to eeee-1 to nnnn.
  582.           N aaaa
  583.                Enter offset aaaa for loading.
  584.           O nn dd
  585.                Output byte dd to port nn.
  586.  
  587.           P bbbb
  588.                Input hex into memory from keyboard starting at bbbb.   <sp> 
  589.                advances pointer, <rub> or <del> backs pointer.
  590.           Q bbbb eeee
  591.                Dumps from bbbb to eeee in ASCII.
  592.           R n ll tt ss bbbb
  593.                Read block of data from disk n of length ll (256-byte pages) 
  594.                starting at track tt and sector ss placing the data at bbbb.
  595.           S bbbb eeee
  596.                Disassembly (symbolic dump) from bbbb to eeee.
  597.           T bbbb eeee
  598.                Destructive memory test from bbbb to eeee-1.
  599.           U bbbb
  600.                Set breakpoint at bbbb.
  601.           V
  602.                Display all currently-set breakpoints.
  603.  
  604.           W n ll tt ss bbbb
  605.                Write on disk n the data at bbbb for a length of ll starting 
  606.                at track tt, sector ss.  ll is in 256-byte pages.
  607.           X
  608.                Display registers.
  609.           Z bbbb eeee dd
  610.                Zero or set memory from bbbb to eeee-1 with byte dd.
  611. :CP/M SYSGEN Command
  612.  
  613.      The  SYSGEN transient command allows generation of an initialized disk 
  614. containing the CP/M Operating System.
  615.  
  616.      It is invoked by typing
  617.  
  618.           SYSGEN
  619.  
  620.      Once invoked,  the user is prompted through the session.  Refer to the 
  621. CP/M Manual for further details.
  622. :CP/M SUBMIT and XSUB Commands
  623.  
  624.      The  SUBMIT  command allows CP/M commands to be batched  together  for 
  625. automatic processing.  The form of this command is
  626.  
  627.           SUBMIT ufn parm1 parm2 ... parmn
  628.  
  629.      The ufn given in the SUBMIT command must be the filename (not type) of 
  630. a  file which exists on the currently logged-in disk with an  assumed  file 
  631. type of '.SUB'.  Refer to the CP/M Manual for further details.
  632.      The  XSUB  command extends the power of  the  SUBMIT  facility.   When 
  633. specified  as the first line of a SUBMIT File,  it self-relocates  directly 
  634. below the CCP.   All subsequent SUBMIT command lines are processed by XSUB, 
  635. so  that  programs  which read buffered console input  (BDOS  Function  10) 
  636. receive input directly from the SUBMIT File.   While XSUB is in memory,  it 
  637. prints  the message "(xsub active)" on each warm boot.   An example of  the 
  638. use of XSUB to display memory from 100H to 1FFH is --
  639.                     XSUB
  640.                     DDT
  641.                     D100,1FF
  642.                     G0
  643. :CP/M BDOS -- Basic I/O Operations
  644.      Function and Number      Input Parameters    Output Parameters
  645.  
  646.      System Reset      0      None                None
  647.      Read Console      1      None                ASCII Char in A
  648.      Write Console     2      ASCII Char in E     None
  649.      Read Reader       3      None                ASCII Char in A
  650.      Write Punch       4      ASCII Char in E     None
  651.      Write List        5      ASCII Char in E     None
  652.      Direct Con I/O    6      ASCII Char in E     I/O Status in A if E=0FFH
  653.      Get I/O Status    7      None                I/O Status in A
  654.      Put I/O Status    8      I/O Status in E     None
  655.      Print Buffer      9      Address of string   None
  656.                                terminated by $
  657.                                in DE
  658.      Read Buffer      10      Address of Read     Read Buffer is filled
  659.                                Buffer in DE
  660.      Console Ready    11      None                LSB of A is 1 if char
  661.                                                    ready
  662. *All function numbers are passed in Reg C.
  663.  
  664. I/O Status Byte --
  665.  
  666.      Value     Bits 6&7  Bits 4&5  Bits 2&3  Bits 0&1
  667.  
  668.        00      CON:=TTY: RDR:=TTY: PUN:=TTY: LST:=TTY:
  669.        01           CRT:      PTR:      PTP:      CRT:
  670.        10           BAT:      UR1:      UP1:      LPT:
  671.        11           UC1:      UR2:      UP2:      UL1:
  672.  
  673. Read Buffer --
  674.  
  675.      Byte      Function
  676.  
  677.        1       Maximum Buffer Length
  678.        2       Current Buffer Length (returned value)
  679.      3-n       Data (returned values)
  680.  
  681.  
  682. :CP/M BIOS -- Basic Disk Operations
  683.  
  684.      Function and Number      Input Parameters    Output Parameters
  685.  
  686.      Return Version # 12      None                Version Info in HL
  687.                                                   H=0 CP/M, H=1 MP/M
  688.                                                   L=00 CP/M 1.x, 2x 2.x
  689.      Init BDOS        13      None                None
  690.      Log-In Disk      14      Value in Reg E      None
  691.                                A=0, B=1, C=2,
  692.                                D=3
  693.      Open File        15      Address of FCB      Byte address of FCB
  694.                                in DE               if found or 0FFH if not
  695.      Close File       16      Address of FCB      Byte address of FCB
  696.                                in DE               if found or 0FFH if not
  697.      Search for File  17      Address of FCB      Byte address of FCB (0-3)
  698.                                in DE               if found or 0FFH if not
  699.      Search for Next  18      Address of FCB      Byte address of next FCB
  700.                                in DE               if found or 0FFH if not
  701.      Delete File      19      Address of FCB      Byte address of FCB (0-3)
  702.                                in DE               if found or 0FFH if not
  703.  
  704.      Function and Number      Input Parameters    Output Parameters
  705.  
  706.      Read Next Record 20      Address of FCB      0=successful read
  707.                                in DE              1=read past EOF
  708.                                                   2=reading random data
  709.      Write Next Rec   21      Address of FCB      0=successful write
  710.                                in DE              1=error in extending
  711.                                                   2=end of disk data
  712.                                                   255=no more dir space
  713.      Make File        22      Address of FCB      Byte address of FCB or
  714.                                in DE               255 if no more dir space
  715.      Rename FCB       23      Address of FCB      Byte Address of Dir entry
  716.                                in DE               or 255 if no match
  717.      Return Log Code  24      None                Login vector in HL
  718.      Read Drive No    25      None                Number of logged-in drive
  719.                                                    (A=0, B=1, C=2, D=3)
  720.      Set DMA Address  26      Address of 128      None
  721.                               byte buffer in DE
  722.  
  723.      Function and Number      Input Parameters    Output Parameters
  724.  
  725.      Get Alloc Vect   27      None                Allocation  Vect Addr  in 
  726.                                                    HL
  727.      Write Prot Disk  28      None                None
  728.      Get R/O Vect     29      None                HL=R/O Vect Val
  729.      Set File Attrib  30      Ptr to FCB in DE    Dir code in A
  730.      Get Disk Parms   31      None                HL=DPB Address
  731.      Set/Get Usr Code 32      E=0FFH (get)/Code   A=Current code (get)/no
  732.                                (set)               value (set)
  733.      Read Random      33      DE=FCB addr         A=return code
  734.                                                   1=reading unwritten data
  735.                                                   2=(not used)
  736.                                                   3=can't close curr ext
  737.                                                   4=seek to unwritten ext
  738.                                                   5=(not used)
  739.                                                   6=seek past end of disk
  740.  
  741.      Function and Number      Input Parameters    Output Parameters
  742.  
  743.      Write Random     34      DE=FCB addr         A=return code
  744.                                                   1=reading unwritten data
  745.                                                   2=(not used)
  746.                                                   3=can't close curr ext
  747.                                                   4=seek to unwritten ext
  748.                                                   5=dir overflow
  749.                                                   6=seek past end of disk
  750.      Compute File Siz 35      DE=FCB addr         Random Rec Field set
  751.                                                    to file size
  752.      Set Random Rec   36      DE=FCB addr         Random Rec Field set
  753.  
  754.  
  755. *All function numbers are passed in Reg C
  756.  
  757. :CP/M File Types
  758.      AIN   ALGOL 60 Intermediate   ALG   ALGOL 60 Source File
  759.      ASM   Assembler Source File   BAK   Backup File
  760.      BAS   BASIC Source File       C     C Source File
  761.      COB   COBOL Source File       COM   "Command" File
  762.      FOR   FORTRAN IV Source File  HEX   Intel "hex" code file
  763.      HLP   HELP File               INT   BASIC Intermediate File
  764.      LST   Listing File            MAC   MACRO-80 Source File
  765.      PAS   PASCAL Source File      PRN   Assembler Listing File
  766.      REL   Relocatable Module      SRC   PASCAL/MT Source File
  767.      SUB   SUBMIT File             SYM   Symbol File
  768.      TC    Tiny-C Source File      TFS   TFS Source File
  769.      TXT   Text File               $$$   Temporary File
  770. :CP/M BIOS Jump Vector
  771.  
  772.      The  following is a table representing the entry points into the  CP/M 
  773. BIOS of the major routines accessable to the user --
  774.  
  775.  
  776.      Routine   Relative Offset     Comment
  777.  
  778.      BOOT           00H            Cold Start
  779.      WBOOT          03H            Warm Start
  780.      CONST          06H            Console Status
  781.                                     Reg A = 00 if no char ready
  782.                                     Reg A = FF if char ready
  783.      CONIN          09H            Console char in (Reg A)
  784.      CONOUT         0CH            Console char out (Reg C)
  785.      LIST           0FH            List out (Reg C)
  786.      PUNCH          12H            Punch out (Reg C)
  787.      READER         15H            Reader in (Reg A)
  788.  
  789.      Routine   Relative Offset     Comment
  790.  
  791.      HOME           18H            Move to track 00
  792.      SELDSK         1BH            Select disk given by Reg C (A=0,B=1,...)
  793.      SETTRK         1EH            Set  track  address  given  by  Reg  C 
  794.                                       (0...76)
  795.      SETSEC         21H            Set  sector  address given  by  Reg  C 
  796.                                       (1...26)
  797.      SETDMA         24H            Set subsequent DMA address (RP B&C)
  798.      READ           27H            Read track/sector (block)
  799.      WRITE          2AH            Write track/sector (block)
  800.      LISTST         2DH            List Device Status
  801.                                     Reg A = 00 if no char ready
  802.                                     Reg A = FF if char ready
  803.      SECTRAN        30H            Translate  sector number in Reg C  using 
  804.                                     table pointed to by DE; physical sector 
  805.                                     number returned in Reg L
  806.