home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPMINFO / CPM22APP.LBR / CPM22015.AQP / CPM22015.APP
Text File  |  2000-06-30  |  5KB  |  89 lines

  1.                                        CP/M  V2.2
  2.                               Aplication Note 15, 12/22/82
  3.                                Debugging a CP/M V2.2 BIOS
  4.  
  5.                       Copyright    1982, 1983 by Digital Research
  6.                   CP/M is a registered trademark of Digital Research.
  7.                  DDT, MAC, and SID are trademarks of Digital Research.
  8.                                  Compiled February 1983
  9.  
  10.  
  11.                You can easily customize the CP/M  V2.2 operating system for  a
  12.           particular  machine  if  you  use  the  following  steps  when it is
  13.           necessary to debug a BIOS.  You must have  a  system  running  under
  14.           CP/M  with  a minimum of 48K to implement this scheme.  CP/M V1.4 is
  15.           all right, and the system need work only well enough to load DDT  or
  16.           SID  .  (SID is preferable and should be used if available.)
  17.  
  18.                1) Carefully do a thorough code walk-through.  This should take
  19.                   about  eight  hours.  Pay  particular attention to the Disk
  20.                   Parameter Blocks and Disk Parameter Headers, especially  if
  21.                   you hand-coded these items to assemble your BIOS instead of
  22.                   using the DISKDEF.LIB and MAC  .  A  slight  miscalculation
  23.                   in  a DPB or DPH can cause a BIOS to perform most functions
  24.                   correctly but fails under obscure circumstances;  or,  BIOS
  25.                   performs  one  function  properly  and fails to perform all
  26.                   others.
  27.  
  28.                2) Using your old CP/M  system,  create  your  new  system  and
  29.                   configure  it  to 20K.  Ensure that the old system does not
  30.                   use location 38H, which is DDT's Restart7 location.
  31.  
  32.                3) Load the new 20K  system  underneath  DDT  in  the  old  48K
  33.                   system's  TPA  with  the command DDT CPM20.COM.  Figure 1-1
  34.                   illustrates this scheme.
  35.  
  36.  
  37.                                            48K BIOS
  38.                                            48K BDOS
  39.                                           DDT or SID
  40.                              4A00          20K BIOS
  41.                              3C06          20K BDOS
  42.                              3400          20K CCP
  43.                               980
  44.                               900            BOOT
  45.                                        SYSGEN or MOVCPM
  46.                               100         BASE PAGE
  47.  
  48.  
  49.                         Figure 1-1.  Loading Your New System
  50.  
  51.  
  52.                4) At location 980 (A00h in some systems), you should find  the
  53.                   base  of  the  CCP, recognized by two jumps followed by the
  54.                   copyright message.  Move the 20K system  into  its  correct
  55.                   memory  location  using  the  DDT M (move) command.  If DDTè                  lists  a  next  address  of  2300,  then  this  command  is
  56.                   M980,2300,3400.
  57.  
  58.                5) In the 20K BIOS jump vector  at  4A00h,  insert  breakpoints
  59.                   with   Restart7s,   or,   if  you  are  using  SID,  insert
  60.                   passpoints.  This should be restricted to  the  disk  entry
  61.                   points  unless you have a problem with console I/O.  If the
  62.                   problem occurs only under certain conditions, place a  RST7
  63.                   initially   only   at  the  write  entry  point.  When  the
  64.                   conditions  under  which  the  problem  occurs  have   been
  65.                   established, use a SAVE 1 xxx to return to the debugger you
  66.                   are using and to set additional breakpoints.
  67.  
  68.                6) Run the 20K CP/M under the 48K CP/M's DDT.   Issue  the  DDT
  69.                   command  G4A00, which executes the new BIOS cold boot entry
  70.                   point.  The cold boot initializes the base page for the 20K
  71.                   system and jumps to the CCP, which performs a BDOS Function
  72.                   13 disk reset.  The disk reset reads the directory  sectors
  73.                   until it encounters a sector containing 0E5h in every byte.
  74.  
  75.                7) If the problem you experienced fails to  reappear  when  you
  76.                   begin  single-cycling, it might have been a timing problem.
  77.                   If not timing then it is a logic or coding error,  and  you
  78.                   must  continue  to  single-cycle the machine, examining the
  79.                   contents of registers and memory locations as you go.   Pay
  80.                   particular  attention  to the following parameters:  Track,
  81.                   Sector, Dmaad, Diskno, and the contents of Dirbuf.  If  you
  82.                   are using blocking/deblocking, also observe the contents of
  83.                   Sekdsk, Hstdsk, Sektrk, Hsttrk,  Rsflag,  Erflag,  and  the
  84.                   contents of the host buffer(s).
  85.  
  86.  
  87.                Licensed users are granted the right to include  these  changes
  88.           in CP/M software.
  89.