home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / pubpatch / pubnotes.txt < prev    next >
Text File  |  1994-07-13  |  5KB  |  135 lines

  1.             PUBLIC PATCH TO CP/M 2.2
  2.  
  3. This file contains the header to the assembly language file
  4. PUBPATCH.ASM which is contained in the Library.  The files in the
  5. library are intended to support the article which appeared in 
  6. Dr. Dobbs Journal, Nov 1984.   The files are available for non
  7. commercial distribution as stated in the article.
  8.  
  9. For a full explanation please read the article, Plu*Perfect
  10. Systems can not provide tutorial assistance for this material.
  11.                ----------
  12.  
  13. ;11/18/84 minor change to published DDJ version to produce
  14. ;relocatable object file, to be relocated using HXRLOAD
  15.  
  16.  
  17.              -- PUBPATCH --
  18.  
  19. A CP/M 2.2 BDOS modification to support the PUBlic filetype. 
  20.  
  21.       --------------------------------------------
  22.        Copyright (c) 1984 -- All rights reserved.
  23.  
  24.                Plu*Perfect Systems
  25.              P. O. Box 1494
  26.                Idyllwild CA 92349
  27.       --------------------------------------------
  28.  
  29. Attribute bit 2 of a filename signifies a PUBlic file,
  30. accessible by its unambiguous filename from all user
  31. numbers.
  32.  
  33. PUBlic files are not accessible via the usual ambiguous
  34. filenames (e.g. *.* or ABC.D?F), to prevent unintentional
  35. erasure    and avoid directory clutter.
  36.  
  37. Directory entries for PUBlic files are, however, accessible
  38. via ambiguous filenames by using the BDOS search-for-first,
  39. search-for-next functions with a '?' in the drive-byte of the
  40. fcb.  Extended versions of SD and DISK7 displays PUBlic files.
  41.  
  42. To erase a PUBlic file, use "ERA unambiguous-filename". Or use
  43. DISK7.  Or change it to a private file and then erase with a
  44. wildcard erase command.
  45.  
  46. The PUBLIC.COM utility is available to make files either
  47. PUBlic or private and to list the current PUBlic files.
  48.  
  49. If another utility is used to set the PUBlic attribute bit,
  50. avoid creating multiple files with the same name on the same
  51. drive, unless all of them are private. (PUBLIC.COM checks
  52. for this situation and prevents a conflict.)
  53.     
  54. The REName command removes all attributes, so RENaming a
  55. PUBlic file will make it private, R/W, DIR in its original
  56. user number.
  57.  
  58.  
  59.  
  60.                --- TO INSTALL ---
  61.  
  62. 1a. Determine the BIOSBASE address of your system in memory
  63.     by subtracting 3 from the warm-boot address in memory:
  64.     DDT
  65.     L0
  66.     subtract 3 ==> BIOSBASE address
  67. 1b. Subtract 1600H to determine the CCPBASE_MEMORY address.
  68. 1c. Assemble PUBPATCH for these addresses.
  69.  
  70.     Either: use CDL's MACROIII assembler:
  71.  
  72.     MACROIII PUBPATCH A:DHK
  73.  
  74.     Or:    convert the pseudo-opcodes to your assembler's 
  75.     pseudo-ops and assemble into a HEX file.
  76.     e.g.     .loc    ==>    org
  77.         =        ==>    set
  78.         =\    ==>    ????,     etc.
  79.  
  80. 2. Create a system image for the SYSGEN operation.
  81.    There are two ways to get the image:
  82.  
  83.    a. Either use SYSGEN to extract a system image from a disk
  84.       in the usual manner --
  85.      SYSGEN
  86.     source drive? A
  87.     destination drive? <CR>
  88.          SAVE pp ORIG.SYS.    Use pp=50 pages or so to get
  89.                 the entire BIOS.
  90.  
  91.    b. Or generate a new system --
  92.     MOVCPM ss *        where ss=64 for a 64K system,
  93.     SAVE pp ORIG.SYS    or whatever you are running.
  94.  
  95. 3. Find the base address of the Command Processor in the image
  96.     DDT ORIG.SYS
  97.    Look for the command processor at 980H:
  98.    You recognize it by two JMP instructions, followed by
  99.    the command buffer (containing a Digital Research
  100.    copyright notice, in the case of the original CCP):
  101.     L980
  102.     D980
  103.    Call that address CCPBASE_IMAGE (normally 980H).
  104.    (If you don't find it, you have a non-standard system, and
  105.    your user's manual should have a memory map.  See, e.g.,
  106.    the Compupro Disk 1 Controller manual, sec. 6.4).
  107.  
  108. 4. Calculate the offset needed to cause the PUBPATCH.HEX file to
  109.    load on top of the BDOS image.  'offset' will satisfy:
  110.  
  111.     CCPBASE_IMAGE = CCPBASE_MEMORY + offset
  112.  
  113. 5. Create a new system image containing the patch:
  114.  
  115.     DDT ORIG.SYS
  116.     IPUBPATCH.HEX
  117.     Roffset
  118.     G0
  119.     SAVE pp NEWSYS.SYS
  120.  
  121. 6. Finally, put the new system on a FLOPPY disk for testing:
  122.     
  123.     SYSGEN NEWSYS.SYS
  124.     <CR>
  125.     destination_drive
  126.  
  127.  
  128.     ------------------------------------------------
  129.     Code also corrects a CP/M 2.2 bug that caused
  130.     Rename, Set Attribute, and Delete File functions
  131.     to return 0 status on success instead of 0,1,2,3 
  132.     per CP/M 2.2 Installation Guide.
  133.     ------------------------------------------------
  134. g a Digital Research
  135.    copyr