home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol030 / sigmlog.013 < prev    next >
Text File  |  1985-02-09  |  15KB  |  355 lines

  1.  
  2. SIG/M volume 13        a) MITS to CP/M file conversion system
  3.             b) HELP file system
  4.             c) related system support programs
  5.                         d) FIG-FORTH 1.1 system
  6.  
  7. number    name        size    description
  8.  
  9. 13.1    MITSCNVT.ASM    28K    MITS to CP/M file conversion
  10. 13.2    MITSCNVT.COM     7K       /
  11. 13.3    MITSCNVT.CPM     3K      /
  12. 13.4    MITSCNVT.DOC     7K     /
  13. 13.5    MITSCNVT.HEX     8K    /
  14.  
  15. 13.6    ABORTSUB.COM     2K    HELP file system
  16. 13.7    HELP.ASM    13K           /
  17. 13.8    SYSLIB.HLP    37K          /
  18. 13.9    SYSLIB.REL     9K         /
  19. 13.10    HELP.COM     2K        /
  20. 13.11    MASM.SUB     1K       /
  21. 13.12    PHELP.COM     2K      /
  22. 13.13    PHELP.MAC     6K     /
  23. 13.14    HELP.DOC     4K    /
  24.  
  25. 13.15    SD-2/6.ASM    18K    updated SUPER DIRECTORY display
  26. 13.16    SD.COM         2K    /    
  27. 13.17    ENTAB.ASM     6K    space suppression program
  28. 13.18    ENTAB.COM     1K    /
  29. 13.19    UTIL.FOR     2K    FORTRAN array handling subroutine
  30. 13.20    LOOPBAK1.BAS     2K    PMMI loop back test
  31.  
  32. 13.21   FORTH11.ASM     40K     FIG-FORTH version 1.1
  33. 13.22   FORTH11.COM     23K      /
  34. 13.23   FORTH11.DOC      4K     /  
  35.  
  36. FORTH.DOC
  37.  
  38.  
  39. NOTE from CALAMITY CLIFFS COMPUTER CENTER  -  9/1/80
  40.  
  41. The FORTH11.ASM file as it stands is apparently set up to run on a
  42. HEATH system.  We have no information on the function of any of the
  43. labels in the source listing, and as there is no (or very little)
  44. useful commenting in the source listing regarding what code is hard-
  45. ware dependent and how it should be modified for use on other systems,
  46. we offer this program with the advice:
  47.  
  48.     ******  CAUTION  >>>>  CAVEAT EMPTOR  <<<<  CAUTION  ******
  49.  
  50. Before attempting to use or modify the program, it is advised that the
  51. complete documentation be procured from the FORTH INTEREST GROUP.  In
  52. addition it might be a good idea to contact Rick Schaeffer for clari-
  53. fication concerning the uncertain function of much of the code in the
  54. program.  The only thing that we can attest to at the present time is
  55. that we have successfully assembled the code, as you see it here, with
  56. the CP/M 2.2 Digital Research assembler without error.  We have not
  57. tried to run the program, as the hardware dependencies have not been
  58. identified with certainty.  In addition, we have no idea whether or not
  59. it will run successfully under CP/M 2.2.
  60.  
  61.                                  -Calamity Cliffs Computer Center
  62.  
  63.  
  64. THIS DOCUMENTATION SUPPLEMENTS THE ASSEMBLER SOURCE FOR FIG-FORTH WHICH
  65. RESIDES HERE AS FORTH11.ASM.  THIS SOURCE IS PROVIDED THROUGH THE COURTESY
  66. OF THE FORTH INTEREST GROUP, P.O. BOX 1105, SAN CARLOS, CA.  94070
  67. AND WAS ENTERED AND DEBUGGED BY RICK SCHAEFFER, 2011 AZTEC DR. BLACKFOOT #1
  68. NORTH LITTLE ROCK, AR. 72116.
  69.  
  70. THIS COPY OF FIG-FORTH HAS BEEN DE-BUGGED IN THAT IT IS RUNNING ON MY
  71. H8 SYSTEM UNDER CP/M VERSION 1.43.  AFTER SEVERAL ABORTIVE ATTEMPTS,
  72. I SUCCEEDED IN DOWN LOADING IT TO MICRONET BUT I HAVE NO WAY OF KNOWING
  73. IF THERE WERE ANY ERRORS IN TRANSMISSION SINCE I DO NOT HAVE ANY WAY
  74. OF HAND SHAKING WITH MNET.  ON THE VERSION THAT I HAVE RUNNING, I HAVE
  75. CHANGED SOME OF THE ADDRESSES TO MAKE ROOM FOR MORE DISK BUFFERS, HOWEVER,
  76. THIS COPY IS INTACT AS PRINTED IN THE FIG-FORTH ASSEMBLY LISTING.  THIS
  77. SHOULD MAKE IT RELATIVELY EASY FOR INTERESTED USERS TO GET THE SYSTEM RUNNING
  78. EVEN IF SOME OF THE DATA WAS LOST IN TRANSMISSION BECAUSE THE ASSEMBLED
  79. ADDRESSES SHOULD BE THE SAME AS THEY APPEAR IN THE FIG LISTINGS (THIS IS
  80. FOR FIG-FORTH VERSION 1.1....BY THE WAY).  YOU SHOULD HAVE THE FIG
  81. MODEL MANUAL AND THE FIG ASSEMBLY SOURCE LISTING BEFORE ATTEMPTING TO USE
  82. THIS.   HOPEFULLY, AT LEAST THIS SAVES A *LOT* OF TYPING FOR SOMEONE!
  83. GOOD LUCK!
  84. RICK SCHAEFFER (70120,174)
  85.  
  86.  
  87. OK
  88.  
  89.  
  90.  
  91.  
  92.           Program HELP
  93.  
  94.         SOURCE LANGUAGE CP/M ASSEMBLER..  HARDWARE REQUIRED   CRT 24x80..
  95.  
  96.         MEMORY REQUIRED   Depends on HELP File Loaded (56K Max)..........
  97.  
  98.         DESCRIPTION OF WHAT IT DOES:
  99.  
  100.           HEL╨á i≤á ß prograφ whicΦ provide≤ aε interactivσ onlinσá documenì
  101. tatioε system«á  WitΦ thσ supplieΣ HEL╨ Files¼á HEL╨ display≤ selecteΣá secì
  102. tion≤á oµá thσá HEL╨ File≤ t∩ thσ use≥ onσ screeε displa∙ a⌠á ßá time«á  Al∞ ì
  103. outpu⌠ i≤ orienteΣ fo≥ displa∙ oε ß 2┤ linσ ° 8░ columε CRT.
  104.           Tw∩ type≤ oµ HEL╨ File≤ arσ supporteΣ b∙ thσ HEL╨ program«á  Thesσ ì
  105. arσ indexeΣ anΣ non-indexed«á  WitΦ ß non-indexeΣ HEL╨ File¼á HEL╨á display≤ ì
  106. thσá entirσ filσ t∩ thσ use≥ onσ screen-displa∙ a⌠ ß time«á  WitΦ aε indexeΣ ì
  107. HEL╨á File¼á HEL╨ display≤ ß men⌡ oµ thσ section≤ oµ thi≤ HEL╨ Filσá t∩á thσ ì
  108. use≥ anΣ allow≤ hiφ t∩ selec⌠ aε item«á  Single-characte≥ inpu⌠ i≤ employed«  ì
  109. Oncσ selected¼ HEL╨ jump≤ t∩ tha⌠ sectioε anΣ display≤ i⌠ onσ screen-displa∙ ì
  110. a⌠ ß time.
  111.           Thσ use≥ ma∙ returε t∩ CP/═ a⌠ an∙ time¼á anΣ witΦ aε indexeΣ HEL╨ ì
  112. Filσá ma∙ returε t∩ thσ men⌡ a⌠ an∙ time«á  Thσ filσ HELP.HL╨ tell≤ thσ use≥ ì
  113. ho≈ t∩ writσ hi≤ owε HEL╨ Files.
  114.           Al∞ HEL╨ File≤ havσ ß namσ oµ thσ forφ 'filename.HLP'.
  115.  
  116.         HOW TO USE IT:
  117.           HELP is invoked by CP/M commands of the following forms --
  118.  
  119.                HELP
  120.                HELP d:filename
  121.  
  122.           Thσ forφ withou⌠ ß filσ namσ simpl∙ give≤ ß basiπ built-iεá introì
  123. ductioεá t∩ thσ HEL╨ prograφ iµ thσ filσ HELP.HL╨ i≤ no⌠ oε thi≤á disk«á  Iµ ì
  124. HELP.HL╨á i≤ oε thi≤ disk¼á i⌠ i≤ reaΣ anΣ displayed«á  Thσ seconΣ forφ disì
  125. play≤á thσá content≤ oµ thσ indicateΣ HEL╨ namσá 'filename.HLP'«á  Thσá disδ ì
  126. drivσ paramete≥ 'd:º i≤ optional.
  127.  
  128.  
  129.           SPECIA╠ NOTE║á  Thσ HEL╨ commanΣ anΣ somσ oµ thσ associateΣá *.HL╨ ì
  130. file≤á supplieΣá witΦá thi≤ submissioε arσ beinτ distributeΣá witΦá product≤ ì
  131. marketeΣ b∙ Supersof⌠ Associate≤ oµ Champaign¼á IL«á  ╔ aφ thσ autho≥ oµ thσ ì
  132. encloseΣ program≤ anΣ *.HL╨ files«á  ╔ aφ placinτ theφ iε thσ publiπ domain╗ ì
  133. thesσá program≤á anΣá *.HL╨á file≤ arσ simpl∙á beinτá includeΣá iεá marketeΣ ì
  134. package≤ anΣ no⌠ beinτ solΣ oµ anΣ b∙ themselves.
  135.  
  136.           Program HELP (Details on another disk)
  137.           Program PHELP
  138.           Library SYSLIB
  139.           Program ABORTSUB
  140.  
  141.         SOURCE LANGUAGE  M80 Assembler    HARDWARE REQUIRED  Hard Copy   
  142.  
  143.         MEMORY REQUIRED   Varies with HELP File (56K Max) ...............è
  144.         DESCRIPTION OF WHAT IT DOES:
  145.           PHEL╨á i≤á ßá companioε t∩ thσ HEL╨ prograφ (als∩á submitteΣá t∩ ì
  146. SIG/M)«  PHEL╨ print≤ thσ content≤ oµ ß HEL╨ filσ oε thσ CP/═ LST║ device«  ì
  147. Thσ outpu⌠ i≤ paged¼á eacΦ pagσ containinτ onσ screeε displa∙ a≤ i⌠á woulΣ ì
  148. be generated by the HELP program.
  149.  
  150.         HOW TO USE IT:
  151.           PHELP is invoked by the following CP/M command line --
  152.  
  153.                PHELP d:filename <header text>
  154.  
  155.           PHEL╨á wil∞ prin⌠ thσ indicateΣ HEL╨ Filσ nameΣá 'filename.HLP'«  ì
  156. Thσá disδá specificatioε 'd:º anΣ thσ <heade≥ text╛ arσá optiona∞á (heade≥ ì
  157. tex⌠á neeΣá no⌠á bσ encloseΣ iε anglσ brackets)«á  Interna∞ t∩á thσá PHEL╨ ì
  158. prograφ arσ thσ specification≤ oµ thσ user'≤ printer«  I⌠ i≤ se⌠ fo≥ ß TT┘ ì
  159. Mode∞á 4│á a≤ ╔ submitteΣ thσ program¼á anΣ PHEL╨ mus⌠ bσá reassembleΣá t∩ ì
  160. change these settings (51 physical lines/page, 40 text lines/page).
  161.  
  162.           SYSLI┬ i≤ thσ librar∙ ╔ designeΣ whicΦ mus⌠ bσ useΣ t∩á assemblσ ì
  163. PHELP with M80.  Use the indirect command file 'MASM.SUB' to do this:
  164.  
  165.                SUBMIT MASM PHELP
  166.  
  167.           Thσáá routine≤á iεá SYSLI┬á arσá describeΣá iεá thσá HEL╨áá filσ ì
  168. SYSLIB.HLP.
  169.  
  170.           ABORTSU┬ i≤ ß prograφ requireΣ b∙ MASM.SUB«  I⌠ permit≤ abnorma∞ ì
  171. terminatioεá oµá ß SUBMITteΣ file«á  Issuσ thσ followinτ commanΣ fo≥á morσ ì
  172. information:
  173.  
  174.                ABORTSUB /?
  175.  
  176.  
  177.  
  178.  
  179.                          SIGNED  Richard Conn .................
  180.  
  181.                          DATE 4 Feb 81  .......................
  182.  
  183.  
  184.  
  185.  
  186.  
  187.     Thi≤ elemen⌠ contain≤ thσ documentatioε fo≥ MITSCNVT.
  188.  
  189. MITSCNV╘á i≤ ß prograφ whicΦ operate≤ unde≥ CP/═ anΣ enable≤á thσ ì
  190. use≥á t∩á lis⌠ thσ director∙ anΣ conver⌠ MIT╙ ALTAI╥á (T═á Perteπ ì
  191. Compute≥á Corp⌐ disδ file≤ t∩ CP/═ files«á  Thσ reasoε conversioε ì
  192. i≤á requireΣ i≤ tha⌠ thσ disδ format≤ arσ differen⌠ anΣ tha⌠á thσ ì
  193. ALTAI╥ DIS╦ i≤ ß harΣ sectoreΣ disδ whicΦ contain≤ 3▓ sector≤á oµ ì
  194. 13╖ byte≤ eacΦ pe≥ track« ┴ CP/═ compatablσ disδ i≤ sof⌠ sectoreΣ ì
  195. anΣ i≤ composeΣ oµ 2╕ sector≤ oµ 12╕ o≥ 25╢ byte≤ eacΦ sector.
  196.  
  197. Thσ ALTAI╥ disδ i≤ capablσ oµ containinτ ß 25╡ entr∙ director∙ oε ì
  198. eacΦ disδ anΣ eacΦ director∙ entr∙ "pointsó t∩ ß threadeΣ lis⌠ oµ ì
  199. sectors«á  Iε orde≥ t∩ ensurσ thσ integrit∙ oµ thσ threadeΣ list¼ ì
  200. eacΦ secto≥ iε thσ lis⌠ contain≤ ß singlσ bytσ whicΦ i≤ thσ "filσ ì
  201. numberóá - aε intege≥ calculateΣ froφ thσ locu≤ oµ thσá director∙ ì
  202. entry«á  If¼á durinτá operation≤á oε thσ chain¼á thσ filσá numbe≥ ì
  203. change≤ ß 'filσ linδ errorº i≤ giveε anΣ thσ prograφ aborts«  Thσ ì
  204. calculatioε fo≥ thσ filσ numbe≥ i≤ giveε erroneousl∙ iε thσá MIT╙ ì
  205. documentatioε anΣ i≤ correcteΣ here:
  206.  
  207.     8*SECTOR+(SLOT+1)
  208.  
  209. Wherσá SECTO╥ i≤ thσ director∙ secto≥ numbe≥ (0-31⌐ iε whicΦá thσ ì
  210. filσá namσá i≤ founΣ anΣ SLO╘ i≤ thσ grou≡  numbe≥ oµ ßá 1╢á bytσ ì
  211. widσ director∙ entr∙ oµ thσ format:
  212.  
  213. Bytes    Description
  214. ------------------------------------------------------
  215. 00-07    ASCII File Name - if the first character is a
  216.     zero (binary zero) the entry is ignored.  If
  217.     it is 0ff (all one bits) this is the last entry
  218.     in the directory.  An ignored entry  is the
  219.     result of deleting a file in the MITS directory.
  220.  
  221.  08    Track address of the first sector in the file.
  222.     Track 0-5 are never used as they are 'system'
  223.     tracks.  Track 70 is the directory track.
  224.  
  225.  09    Sector number of the first sector of the file.
  226.     Sectors are always 0,8,16 or 24.  Sectors are
  227.     allocated in groups of eight.  There is no
  228.     pattern for it, but, because of latency consid-
  229.     erations odd numbered sectors are 16+sector number
  230.     AND 1Fh away from the even sector in a logical
  231.     sense. My calculations indicate this is a poor
  232.     choice and if you have ever heard ALTAIR Disk
  233.     Extended Basic or DOS run, you'll know its not
  234.     too good.
  235.  
  236.  10    Flag to indicate file organization - 4=random
  237.     2=sequential
  238.  
  239. 11-15    Wasted bytes  NOTE: at one time or another the
  240.     program MITSCNVT uses these bytes to store some
  241.     information about each file -not  on the diskè    but in memory.
  242.  
  243. ----------------------------------------------------------
  244.     A≤áá aεáá examplσá le⌠á mσá usσá thσá filσá &OCTBI╬áá fo≥ ì
  245. illustratioε purposes«á  I⌠ - quitσ arbitraril∙ - wil∞ bσ assumeΣ ì
  246. t∩ star⌠ iε tracδ 7▓ secto≥ 0«á Thi≤ woulΣ bσ it≤ director∙ entr∙ ì
  247. iµ i⌠ werσ ß sequentia∞ file:
  248. __________________________________________________________
  249. |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  |....
  250. ----------------------------------------------------------
  251.    &     O     C     T     B     I     N     b    72
  252.  
  253. ----------------------------------------------------------
  254. |  10 |  11 |  12 |  13 |  14 |  15 |  16 | byte number
  255. ----------------------------------------------------------
  256.    0     2     unused bytes------------>
  257.  
  258. Iµ thi≤ werσ thσ 5tΦ entr∙ iε director∙ secto≥ zer∩ i⌠ woulΣ filσ ì
  259. numbe≥ 5.
  260.  
  261.     Movinτ alonτ iε thσ examplσ eacΦ datß filσ begin≤ witΦá ß ì
  262. forma⌠ iε whicΦ thσ datß arσ embedded.
  263.  
  264. The format is as follows:
  265.  
  266. Byte    Description (For Sequential files)
  267. -----------------------------------------------------------
  268. 00    Track number +80h.  This high order bit must be set
  269.     for every track number.  The physical track is
  270.     identified in every sector on that track in this
  271.     manner.
  272.  
  273. 01    Physical sector number of each sector.  Every sector
  274.     is identified this way. Sectors are numbered 0-31.
  275.  
  276. 02    File number.  If =0 then this sector is NOT in use
  277.     at this time.  (When a file is deleted you have to
  278.     wait for each sector in the chain to be rewritten so
  279.     that the file number can be set to zero).
  280.  
  281. 03    Number of data bytes written in this sector
  282.  
  283. 04    Checksum of all data in the sector except bytes 0,1,4
  284.     and 136.  Byte 135 is also not used in the checksum
  285.     calculation.  The checksum is the sum of all of the
  286.     data without regard to overlow as done in an eight bit
  287.     register.
  288.  
  289. 05    Track number of the NEXT data sector in the chain.
  290.  
  291. 06    Sector number of the next data sector in the chain.
  292.     If track and sector number are both zero there is no
  293.     more file (EOF).
  294.  
  295. 07-134    128 words of data.  If the first byte is ffh then theè    file is binary.  If the first byte is other than ffh
  296.     then the file is ASCII.  The first byte is the
  297.     first byte of the first sector of the file - not the
  298.     first byte of any sector.
  299.  
  300. 135    Check byte - always ffH.  This is used to ensure that
  301.     everything else in the sector was in the right place.
  302.  
  303. --------------------------------------------------------------
  304.  
  305.     EacΦá oµá thσá byte≤ iε thesσ sector≤ arσ linkeΣá t∩á thσ ì
  306. othe≥ sector≤ iε ß "forwardó directioε unti∞ byte≤ 5+╢ arσá zero«  ì
  307. Thi≤ signal≤ tha⌠ thσ curren⌠ datß blocδ i≤ thσ las⌠ blocδ iε thσ ì
  308. file«á  Thσá director∙á sector≤ arσ locateΣ iεá tracδá 70«á  EacΦ ì
  309. director∙á secto≥á begin≤ iε thσ 8tΦ bytσ oµ thσ physica∞á secto≥ ì
  310. (thσ firs⌠ ╖ byte≤ arσ garbage).
  311.  
  312.  
  313. USE OF THE PROGRAM:
  314. __________________
  315.  
  316.     Thσ prograφ accept≤ tw∩ type≤ oµ input«á  Thσ firs⌠á typσ ì
  317. oµá inpu⌠ i≤ ß disδ numbe≥ prefixeΣ b∙ aε equal≤ sign«á Thi≤ wil∞ ì
  318. resul⌠á iεá recover∙ oµ thσ MIT╙ director∙ oε tha⌠ disδá anΣá thσ ì
  319. listinτ oµ tha⌠ directory«  A≤ aε example:
  320.  
  321.             =5
  322.  
  323. wil∞á resul⌠á iεá selectioε oµ disδ ╡ anΣá thσá recover∙á oµá thσ ì
  324. directorie≤ oε tha⌠ disδ whicΦ wil∞ bσ listed.
  325.  
  326.     Thσá seconΣ typσ oµ inpu⌠ i≤ ß CP/═ filσ namσ followeΣ b∙ ì
  327. ß filσ type¼á aε equa∞ sigε anΣ ß MIT╙ filσ namσ anΣ disδ number«  ì
  328. Thi≤ wil∞ searcΦ thσ director∙ oε thσ specifieΣ MIT╙ disk¼ locatσ ì
  329. thσ filσ anΣ writσ i⌠ oε thσ CP/═ disδ specified«  A≤ examples:
  330.  
  331.   (1) CPMFILE.MIT=ZCTABLE,0
  332.   (2) DIET.BAS=DIET,0
  333.   (3) OCTOCT.ASM=&OCTOCT,2
  334.  
  335. Iεá examplσ (1⌐ thσ filσ 'ZCTABLEº locateΣ oε MIT╙ disδá zer∩á i≤ ì
  336. copieΣá ont∩á thσá CP/═ disδ a≤ filσ CPMFILE.MIT«á  Iεá thσá nex⌠ ì
  337. example¼á (2)¼á filσá DIE╘á oε disδ zer∩ i≤ copieΣ t∩á CP/═á filσ ì
  338. DIET.BAS«á  Iε thσ las⌠ example¼á MIT╙ filσ &OCTOC╘ oε MIT╙á disδ ì
  339. tw∩á i≤ copieΣ t∩ CP/═ filσ OCTOCT.ASM«á  Thu≤ thσ MIT╙ file≤ arσ ì
  340. alway≤á oε thσ righ⌠ sidσ oµ thσ equal≤ sigε anΣ thσá CP/═á file≤ ì
  341. arσá oε thσ lef⌠ hanΣ side«á  Notσ tha⌠ aε ambiguou≤ filσ namσ i≤ ì
  342. no⌠ permitteΣ becausσ thσ CP/═ file≤ arσ opeε fo≥ writing.
  343.  
  344.     Becausσ thσ file≤ arσ accepteΣ iε lis⌠ form¼á thσ prograφ ì
  345. ma∙ bσ useΣ a≤ ß submi⌠ job«á  Problem≤ witΦ thi≤ prograφ ma∙á bσ ì
  346. submitteΣá iεá writinτ t∩ thσ author«á  Thσ prograφ i≤á copyrigh⌠ ì
  347. 198▒á b∙á thσá author«á Usσá i≤á permitteΣá iεá ßá non-commercia∞ ì
  348. environment«á  Commercia∞á usσ license≤ ma∙ bσ obtaineΣ froφá thσ ì
  349. autho≥á a⌠á ßá reasonablσ cost«á  Conversion≤á caεá bσá performeΣ ìèbetweeεá othe≥ harΣ secto≥ format≤ anΣ cp/φ format«á  Contac⌠á u≤ ì
  350. fo≥ details.
  351.  
  352. CP/═ I╙ ┴ TRADEMAR╦ O╞ DIGITA╠ RESEARCH¼á PACIFI├ GROV┼ CA« MITS¼ ì
  353. ALTAIR¼á PC├á MA┘á B┼ REGISTERE─ TRADEMARK╙á O╞á PERTE├á COMPUTE╥ ì
  354. CORP.¼ CHATSWORT╚ CA.
  355.