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 / MBUG / MBUG066.ARC / REGEN.DOC < prev    next >
Text File  |  1979-12-31  |  3KB  |  55 lines

  1.  
  2. Notes on regenerating the compiler
  3. ==================================
  4.  
  5.  
  6. When reassembling the runtime package, do not use LOAD to create RTP.COM.
  7. Instead, you must use a debugger and do the following:
  8.  
  9. 1) Assemble RTP.ASM to produce RTP.HEX.  Make note of the final code
  10.    address printed by the assembler.  RTP.COM should go up to this
  11.    address minus 1.
  12.  
  13. 2) Fire up your favorite debugger (DDT will do).
  14.  
  15. 3) Fill memory with 0's.  100h - 1000h should do.
  16.  
  17. 4) Now you can read in RTP.HEX, starting at 100h.
  18.  
  19. 5) Boot back to the CCP.
  20.  
  21. 6) Save memory up to one byte below the final code address printed by
  22.    the assembler.  F'rinstance if 0600 was last address, type
  23.    "SAVE 5 RTP.COM".
  24.  
  25. This procedure must be followed so that PIP can be used to concatenate
  26. the runtime package and the object code produced by the compiler.
  27. It will also make your life a lot easier when using COMPARE.COM to
  28. compare parents and childern (should you ever try and extend the compiler).
  29.  
  30.  
  31. If you make changes to ppc.pas or pfet.pas, you'll want to be sure
  32. that the new compiler is capable of compiling itself.  In genetics,
  33. this would be like making sure that your children are not sterile.
  34. The file validate.sub should help make sure you don't have sterile
  35. children.  It uses a "know fertile" compiler (ppc.com, pfet.com) to
  36. compile the new ppc.pas and pfet.pas.  The resulting compiler is then
  37. used to compile ppc.pas and pfet.pas again.  The results of this
  38. second compilaton are compared to the results of the first.  If they
  39. match, it is safe to erase the "known fertile" compiler because you
  40. now know that you have a compiler which can reproduce itself.  If
  41. they miscompare, you'd better find out why and fix it before erasing
  42. the parents.  You should also note that this test only guarantees
  43. that you'll be able to continue to use the compiler to compile itself.
  44. It does N-O-T guarantee that you've got a fully functional compiler,
  45. because the compiling the compiler does not exercise all functions
  46. of the compiler.
  47.  
  48. After making any changes to the compiler, you'll probably want to
  49. make sure that you can still compile and execute tester.pas.  This
  50. test doesn't test all functions of the compiler either, but passing
  51. tester is good sign that you haven't broken anything major.  By the
  52. way, it is normal to get a few type missmatch errors while compiling
  53. tester.  A new version of the compiler which is smarter about type
  54. checking would prevent these messages.
  55.