home *** CD-ROM | disk | FTP | other *** search
/ Shareware Supreme Volume 6 #1 / swsii.zip / swsii / 172 / CRUNCH24.ZIP / CRUNCH24.ARK / -SOURCE.NOT next >
Text File  |  1990-05-26  |  4KB  |  102 lines

  1.         Z80 source code for CRUNCH v2.4 and UNCRunch v2.4
  2.  
  3. Do I need this CRNCH24S.LBR?
  4.  
  5. Probably not. These files will assemble to the identical .COM files sup-
  6. plied  in CRUNCH24.LBR.  That LBR contains an overlay, which already al-
  7. lows one to customize CRUNCH/UNCR to suit requirements and  preferences.
  8. It also contains  usage documentation and other files NOT included here.
  9. This is a source code release only.  It may be of use to those    who have
  10. special  requirements or a special interest.
  11.  
  12. Please note that the same  conditions  apply to this program as previous
  13. releases - you can "distribute" it AS IS or modify  it for your OWN use,
  14. but public release of modified versions (source or object files) without
  15. permission is prohibited. [and you can't sell it!].
  16.  
  17.  
  18. Assembly and Linkage: SLR
  19.  
  20.   Z80ASM crunch/rm    <== assembles CRUNCH
  21.   Z80ASM uncr/rm      <== assembles UNCRunch
  22.  
  23.   SLRNK+ /A:100 /J CRUNCH/N CRUNCH PARSEFCB /E        <== links CRUNCH
  24.   SLRNK+ /A:100 /J UNCR/N UNCR PARSEFCB USQREL UNCRL /E <== links UNCR
  25.  
  26.  
  27. The /J switch guarantees  that all of the code segments will be "packed"
  28. end to end first  and all of the  data segments  will follow.  Since all
  29. data is  uninitialized i.e., initialized  at run time, the SLR linker is
  30. "smart" enough    to leave these extra sectors out of the .COM file.  This
  31. is how the distribution .COM files were created.
  32.  
  33.  
  34. If SLR Systems tools are not available:
  35.  
  36. Rename CRUNCH.Z80 to CRUNCH.MAC  and  UNCR.Z80 to UNCR.MAC.
  37. Do not rename the INCLUDE.LIB file.
  38.  
  39.   M80 =CRUNCH/N     <== assembles CRUNCH
  40.   M80 =CRUNCH/N     <== assembles UNCRunch
  41.  
  42. -----
  43. If you have DRI's LINK program,
  44.  
  45.   LINK CRUNCH,PARSEFCB            <== links CRUNCH
  46.   LINK UNCR,PARSEFCB,USQREL,UNCR1    <== links UNCR
  47.  
  48. LINK will also ORG the program properly at 100H and consolidate the data
  49. segments at the end.  It will append the data segment  to the .COM file,
  50. making it longer.  The programs were coded so the very large data tables
  51. were "EQU"'d rather than defined as data, so there should only be a lim-
  52. ited number of superfluous records.
  53.  
  54.  
  55. -----
  56. If you must use L80,
  57.  
  58.   L80 /P:100,/D:17D3,CRUNCH/N,CRUNCH,PARSERCB/E     <== links CRUNCH
  59.   L80 /P:100,/D:19E6,UNCR/N,UNCR,PARSERCB,USQREL,UNCR1/E<== links UNCR
  60.  
  61. will give similar results to LINK above.  Unfortunately, you must deter-
  62. mine the start of the data segment i.i., the "17D3" and "19E6" above) by
  63. making a  preliminary  link using a high number, eg. "D:2000"  and  then
  64. reading the  second number on  the "Program" line of  the  resulting L80
  65. display.  Put  that number after the "D:" and link a second  time  for a
  66. final result.  The numbers shown above ARE the actual  values for CRUNCH
  67. and UNCRunch v2.4 as distributed, but the numbers  will be  different if
  68. even a single line of code is changed.
  69.  
  70.  
  71. Please note that if substantial additions are made to either program, an
  72. address  value in an EQU near the beginning of the program  (well marked
  73. and explained in source) must be manually changed.  This process is nec-
  74. essary    because, to the best of my  knowledge, NONE of    the  linkers can
  75. resolve the "first page boundary  after the end  of the DSEG" automatic-
  76. ally (an easy problem  if the code is  absolute [non-relocatable]).  The
  77. value  is needed  in subsequent EQU's to  define the large  page aligned
  78. tables mentioned above.
  79.  
  80. ----
  81. P.S.  I am not a linker expert; all above information  is subject to er-
  82.       ror.  With any luck version 2.5 will be consolidated into a single
  83.       large absolute file...
  84.  
  85.  
  86. What they do: Virtually all the code of any interest is contained in the
  87. source    supplied.  UNCR1.REL is a module which is called up in    the very
  88. unlikely event an old "type 1" crunched file is encountered.  USQREL.REL
  89. is an unsqueezer since UNCR now also unsqueezes as a bonus.  And finally
  90. PARSEFCB.REL reduces  some of the tedious  work of getting all the file-
  91. names, user  numbers, drives, comments    and switches  extracted from the
  92. command line.  Anything else is  in the source    code  contained in three
  93. files in this LBR. COMMON.LIB is an "include" file necessary when assem-
  94. bling either CRUNCH.Z80 or UNCR.Z80. It contains file I/O and many other
  95. routines which    are common to both programs.  It must reside on the same
  96. drive/user as the program being assembled.
  97.  
  98.                 - Steven Greenberg
  99.                   15 February 1988
  100.  
  101.                   Data: (201) 447-6543 ( 24 hrs, 7 days)
  102.