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 Command
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 system 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 16K bytes of main memory with up
to four 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,  a up  to  64  distinct
programs can be stored in both source and machine-executable form.
     Digital  Research,  the  designer of CP/M,  has provided a set of  six
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 Interface Guide
          6.  CP/M 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).
: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-U    Delete the entire line typed at the console.
          Ctrl-X    Same as Ctrl-U.
          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-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

     CP/M supports five 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.
:CP/M Transient Commands

     The CP/M standard transient commands are --

          STAT      List the number of bytes of storage  remaining  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.
ERRROR IN TRANSFER*************************************************************
          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
          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 --

               RECS BYTS EX D:FILENAME.TYP
               rrrr nnnK ee d:pppppppp.sss

          where
               rrrr -- number of 128-byte records allocated to the file
               nnnK -- number of bytes (in K, K=1024) allocated to the file
                         nnn = rrrr * 128 / 1024
               ee -- number of 16K extensions
                         ee = nnn / 16
               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:
          Display  the  possible logical to  physical  device  assignments.
          STAT will print the list --

               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 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

: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.
     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.
     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.
     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)
          ^I        Logical tab
          ^L        Logical <CR> <LF> in search and substitute strings
          ^U        Line delete
          ^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 Command

     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.
:CP/M BDOS -- Basic I/O Operations

     Function and Number      Input Parameters    Output Parameters

     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
     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

     Lift Head        12      None                None
     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 first FCB
                               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      None
                               in DE

     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
     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

*All function numbers are passed in Reg C

:CP/M File Types

     ALG       ALGOL 60 Source File
     ASM       Assembler Source File
     BAK       Backup File
     BAS       BASIC Source File (CBASIC)
     C         C Source File
     COM       "Command" File (Binary ORGed to 100H)
     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
     PRN       Assembler Listing File
     SRC       PASCAL/MT Source File
     SUB       SUBMIT 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)

