home *** CD-ROM | disk | FTP | other *** search
/ Hacker Chronicles 2 / HACKER2.BIN / 653.README < prev    next >
Text File  |  1989-03-25  |  7KB  |  144 lines

  1. ABOUT THE PROGRAMS
  2. ------------------
  3.  
  4. This is a small printed circuit board cad package. It consists of three
  5. programs: an autorouter, a board viewer, and a board printer. The following
  6. comment appears in each of the main programs (pcbroute.c, pcbview.c, and
  7. pcbprint.c):
  8.  
  9. ** you may give this software to anyone, make as many copies as you like, and
  10. ** post it on public computer bulletin boards and file servers. you may not
  11. ** sell it or charge any fee for distribution (except for media and postage),
  12. ** remove this comment or the copyright notice from the code, or claim that
  13. ** you wrote this code or anything derived from it. you may modify the code as
  14. ** much as you want (please document clearly with comments, and maintain the
  15. ** coding style), but programs which are derived from this one are subject to
  16. ** the conditions stated here. i am providing this code so that people can
  17. ** learn from it, so if you distribute it, please include source code, not
  18. ** just executables. contact me to report bugs or suggest enhancements; i do
  19. ** not guarantee support, but i will make an effort in good faith to help you,
  20. ** and i want to act as a central clearing house for future versions. you
  21. ** should contact me before undertaking a significant development effort, to
  22. ** avoid reinventing the wheel. if you come up with an enhancement you
  23. ** consider particularly useful, i would appreciate being informed so that it
  24. ** can be incorporated in future versions. my address is: Randy Nevin,
  25. ** 1731 211th PL NE, Redmond, WA 98053. this code is available directly from
  26. ** the author; just send a floppy and a self-addressed floppy mailer with
  27. ** sufficient postage.
  28.  
  29. What I intend this to say is that you can do anything you want with these
  30. programs with the following conditions: (1) you can't sell it or anything
  31. derived from it for profit, and (2) you must give me credit. I do not use the
  32. terms 'shareware', 'freeware', or 'public domain' to describe these programs,
  33. since currently accepted definitions for them do not match my intentions.
  34. These programs are absolutely free.
  35.  
  36. WHAT THEY DO
  37. ------------
  38.  
  39. The autorouter reads a circuit description, routes the traces, and outputs the
  40. routed printed circuit board to a file. The board viewer can read this file
  41. and display a picture of the 2-sided board on an EGA monitor. The board
  42. printer can also read this file, and produces board image files of various
  43. resolutions. The board image files can then be sent to a Hewlett-Packard
  44. laserjet II laser printer to get hard copy.
  45.  
  46. I support the EGA and the HP laserjet II because they are what I have access
  47. to. I expect the first comments I receive from users to involve support for
  48. different display adapters (VGA, Hercules..) and printers (QMS, Postscript
  49. printers..). If you have one of these and are ambitious enough to enhance the
  50. programs to work with it, I hope you'll contact me so your work can be shared
  51. with others.
  52.  
  53. COMPILING THE PROGRAMS
  54. ----------------------
  55.  
  56. A makefile is included which compiles and links the three programs. It is
  57. written for the Microsoft C 4.0 compiler and Microsoft MASM 4.0 macro
  58. assembler, but should be easily adaptable to whatever compiler/assembler you
  59. have. (This is an example of an enhancement that others would like to share.)
  60. The two rules:
  61.     .c.obj:
  62.         cl /G2s /Oat /W3 /Zp /c $*.c
  63.     .asm.obj:
  64.         masm /t /ml $*.asm;
  65. describe compiling and assembling. /G2s allows the compiler to emit 286
  66. instructions, and to omit stack-checking code; if you will be running on an
  67. 8088-based machine, you should use /Gs instead (omit the 2). /Oat is
  68. optimization, and is optional. /W3 is a warning level, and is optional. /Zp
  69. causes structures to be packed, and is optional (omitting it could cause the
  70. programs to use more memory). /c keeps the compiler from initiating a link for
  71. each module. /t causes MASM to use terse mode, and is optional. /ml causes
  72. MASM to maintain the case of names (don't automatically uppercase them), and
  73. is required.
  74.  
  75. RUNNING THE PROGRAMS
  76. --------------------
  77.  
  78. All three programs require command line arguments, and if you forget what they
  79. are, just execute the programs with no arguments. They will give a usage
  80. clause describing what arguments are needed.
  81.  
  82. For pcbroute.exe there are two arguments: the input (circuit description)
  83. filename, and the output (board description) filename. For pcbview.exe there
  84. is one argument: the input (board description) filename. For pcbprint.exe
  85. there is one required argument, the input (board description) filename, and
  86. four optional arguments: /P indicates portrait mode (the circuit board is
  87. printed right-side up), /L indicates landscape mode (the circuit board is
  88. printed sideways), /Rn indicates laser printer resolution (n is 75, 100, 150,
  89. or 300 dots per inch), and /Zm indicates the zoom factor (m is 0, 1, 2, or 3).
  90.  
  91. INPUT FORMAT
  92. ------------
  93.  
  94. The file called EXAMPLE is an example input file. It defines (a) the
  95. dimensions of the circuit board, which are 29 rows and 37 columns (think of
  96. this as a matrix of cells), (b) a chip type (the 7486, which has 4 XOR gates),
  97. (c) holes where power and ground will be applied, (d) holes where the input
  98. will be applied, (e) the hole where the output will appear, (f) four instances
  99. of the 7486 chip, and (g) the pairs of pins that must be connected to complete
  100. the circuit. For a complete description of the input format, read the large
  101. block comment at the beginning of file IO.C.
  102.  
  103. THE FILES
  104. ---------
  105.  
  106. MAKEFILE    -- describes how to compile, assemble, and link the programs
  107. BITMAP1.H    -- bitmaps for various cell types
  108. BITMAP2.H    -- more bitmaps
  109. BITMAP3.H    -- yet more bitmaps
  110. CELL.H        -- cell types and other global constants
  111. ALLOC.C        -- memory allocation routine
  112. BITMAP.C    -- bitmap data structure definitions
  113. BOARD.C        -- routines to initialize the board, and access cells
  114. DIST.C        -- distance calculation routine
  115. IO.C        -- input format processing routines
  116. PCBPRINT.C    -- main routine for board printer
  117. PCBROUTE.C    -- main routine for autorouter
  118. PCBVIEW.C    -- main routine for board viewer
  119. QUEUE.C        -- routines to manipulate the search queue
  120. SOLVE.C        -- main search routine (using the A* algorithm)
  121. WORK.C        -- routines to manipulate the work list
  122. PCBPRINT.EXE    -- compiled version of board printer
  123. PCBROUTE.EXE    -- compiled version of autorouter
  124. PCBVIEW.EXE    -- compiled version of board viewer
  125. UTIL.ASM    -- assembly language graphics helpers
  126. ARTICLE        -- text of magazine article submitted to Dr. Dobb's Journal.
  127.            when (if?) this is printed, it will be in the second half
  128.            of 1989, and some of the wording may be changed. Some
  129.            figures referred to in the article are not available, but
  130.            hopefully enough material is there to help you understand
  131.            what autorouting is and how it works.
  132. ASTAR        -- the A* search algorithm
  133. BFS        -- the Breadth-First search algorithm
  134. EXAMPLE        -- the example input file
  135. TTL.INC        -- include file which includes all of the TTL74*.INC files
  136. TTL74*.INC    -- ttl chip definition files. you may want to put all of them
  137.            in a subdirectory called TTL
  138. README        -- this file
  139.  
  140. THE AUTHOR
  141. ----------
  142.  
  143. Randy Nevin, 1731 211th pl ne, redmond, wa 98053
  144.