home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol029 / sigmlog.008 < prev    next >
Text File  |  1984-04-29  |  12KB  |  298 lines

  1. SIG/M volume 8        PASCAL and Communications related programs
  2.         
  3.             PASCAL related programs
  4.  
  5. 8.01    BOOT.ASM     1K    Sample BOOT for PASCAL
  6. 8.02    BOOTER.DOC     3K    PASCAL documentation for CP/M
  7. 8.03    TEST.ASM     7K    Scan and load 8080/Z80 Pascal
  8.                 interpreter
  9. 8.04    PAS2CPM.ASM     8K    Format conversion 
  10. 8.05    PASCAL.ASM     7K    Initialization of PASCAL system
  11. 8.06    PASCAL.COM    17K
  12. 8.07    PASCAL.DOC     1K
  13. 8.08    PASTOCPM    12K    Format conversion
  14. 8.09    PBOOT.ASM     1K    Utilities to initialize PASCAL system
  15. 8.10    PGEN.ASM     4K
  16. 8.11    PGEN.COM     1K
  17. 8.12    PINIT.ASM     6K
  18. 8.13    READ.ME         2K    PASCAL startup documentation
  19.  
  20.             Communications related programs
  21.  
  22. 8.14    CHAT13.ASM     5K    2-way communications with remote caller
  23. 8.15    DCHBYE57.ASM    24K    Upgrade of remote console DCHBYE55
  24.                 on SIG/M 7.01
  25. 8.16    MODEM5A.ASM    46K    Auto-dial and auto re-dial capability
  26.                 on DC Hayes and PMMI modem boards
  27. 8.17    PLNK1018.ASM    21K    Upgrade of PLNK925 on SIG/M 7.6 and
  28.                 CP/M UG 19.4 with more modem types
  29. 8.18    NEWBAUD.ASM     4K    Switch BAUD rate on a remote PMMI
  30.                 to readjust modem speed
  31. 8.19    RBBS22.ASC    20K    Update of RBBS in SIG/M volume 7
  32. 8.20    RBBS22.DOC     6K
  33. 8.21    RBSUTL22.ASC     9K
  34. 8.22    MBOOT3.ASM     8K    Compacted version of MODEM for RECV
  35.                 only usage
  36. 8.23    XMODEM38.ASM    24K    Update of SIG/M 7.8 - remote CP/M to
  37.                 CP/M transfer
  38. AFTER THE DOCUMENTATION WAS PRINTED WE DISCOVERED THAT A FARLY LARGE NUMBER
  39. OF PEOPLE HAVE BIOS'S LARGER THAN THE STANDARD 512 BYTES.  IF YOU DO...
  40.  
  41. MSIZE = SIZE OF MEMORY IN KBYTES AS USUAL.
  42. BIOSSZ = SIZE OF BIOS IN BYTES.  BIOSSZ MUST BE A MULTIPLE OF 256.
  43.  
  44.     THE ONLY THING AFFECTED IS IS PUTTING A BOOTER ONTO A PASCAL DISK.
  45. THE STEPS TO BE FOLLOWED ARE:
  46.  
  47. 1.  COMPUTE LOADP := MSIZE*1024-BIOSSZ-1024;
  48.     BIOSORG := MSIZE*1024-BIOSSZ
  49.  
  50. 2.  WRITE THE PROGRAM PBOOT AND ASSEMBLE IT.
  51.     PBOOT MUST LOAD SECTORS 2 THRU  9 + BIOSSZ/128 
  52.     IT MUST LOAD THEM STARTING AT LOCATION
  53.     LOADP, AND THEN JUMP TO LOADP.
  54.  
  55. 3.  CHANGE MSIZE AND BIOSSZ IN  PINIT AND ASSEMBLE.
  56.  
  57. 4.  CHANGE BIOSSZ IN PGEN AND REASSEMBLE, THEN LOAD.
  58.     (THEREBY CREATING PGEN.COM)
  59.  
  60. 5.  STITCH TOGETHER THE PIECES
  61.     A) TO FIND THE OFFSET PINIT.HEX SHOULD BE READ IN WITH, USE
  62.        LOADP RATHER THAN BA00.
  63.     B) TO FIND THE OFFSET BIOS.HEX SHOULD BE READ IN WITH, USE
  64.        BIOSORG RATHER THAN BE00.
  65.     C) SAVE  14 + BIOSSZ/256 RATHER THAN 16 WHEN SAVING
  66.        PGEN.COM
  67. Forming a Pascal System Booter
  68. ------------------------------
  69.  
  70.  
  71.  
  72.     To create an UCSD Pascal system booter you must have the following:
  73.  
  74.         1)  A short boot loader that will read in track 0 sectors 2 - 13
  75.  
  76.         2)  A copy of PINIT.ASM
  77.  
  78.         3)  A hex version of your current BIOS
  79.  
  80.         4)  A copy of PGEN.COM
  81.  
  82.  
  83.     The short boot loader of 1) can be generated from your current system
  84. boot loader if either a source or listing of it is available.  This trans-
  85. formation process is simply the reduction of a two track bootstrap into a
  86. single track one.  Two programs BOOT.ASM and PBOOT.ASM are provided as inspir-
  87. ation for this proceedure.
  88.  
  89.  
  90.     NOTE:  PBOOT loads its sectors to location (MSIZE-48)*1024+0BA00H
  91.            and then jumps to that same point.
  92.  
  93.  
  94.     If you have no inkling of how your current system boot either loads or
  95. works, you will have to prevail on your system supplier for that information.
  96.  
  97.  
  98.     PINIT.ASM is the source for the code that boots in and starts
  99. SYSTEM.MICRO, the P-Machine interpreter.  A quick edit of PINIT.ASM is needed
  100. to modify the MSIZE equate to match the memory size (in kilobytes) of the
  101. current system BIOS.  Once this has been done each of the modules PBOOT, PINIT
  102. and BIOS must be assembled to produce the .HEX files which will be overlayed
  103. into PGEN's data area as follows:
  104.  
  105.     NOTE:  In the following we assume a 48k system
  106.  
  107.  
  108.  
  109. A>DDT PGEN.COM            ;Read PGEN code into memory
  110.  
  111. DDT VERS 1.3            ;We will be overlaying PBOOT,
  112. NEXT  PC            ;  PINIT, and BIOS into PGEN's
  113. 0300 0100            ;  data area, and finally saving
  114.                 ;  the memory image.
  115. -IPBOOT.HEX            ;Set 'PBOOT.HEX' as the input file
  116. -H900 0                ;PBOOT starts at location 0,  we want
  117. 0900 0900            ;  to compute a bias to read it to loc 900
  118. -R900                ;Using this bias we read PBOOT to PGEN's
  119. NEXT  PC            ;  data area
  120. 0980 0000
  121. -IPINIT.HEX            ;We will now do the same proceedure with
  122. -H980 BA00            ;PINIT.  This object code will go to
  123. C380 4F80            ;  location 980, notice PINIT starts at
  124. -R4F80                ;  BA00 (HEX) in a 48k system.
  125. NEXT  PC
  126. 0A7D BA00            ;The value below NEXT will vary with the release
  127. -IBIOS.HEX            ;Last we read BIOS to location D80
  128. -HD80 BE00
  129. C380 4F80            ;This should be the same bias value as last time
  130. -R4F80
  131. NEXT  PC
  132. 0F76 0000            ;The value below NEXT is dependant on BIOS
  133. -^C                ;We now leave ddt to save our work
  134.  
  135. A>SAVE 16 PGEN48.COM        ;Our boot writer will be called PGEN48
  136. A>PGEN48            ;The booter may now be put out to Pascal
  137.  
  138. PGEN VERSION 1.0        ;  system disks by executing PGEN48
  139.  
  140. GET BOOTER?(Y/N)N        ;  as shown
  141.  
  142. PUT BOOTER?(Y/N)Y
  143. WRITING BOOTER TO DRIVE A, TYPE RETURN
  144. AGAIN?(Y/N)N
  145.  
  146. REBOOTING CP/M, TYPE RETURN
  147.  
  148.  
  149. Bringing UCSD Pascal up for the first time
  150. ------------------------------------------
  151.  
  152.  
  153.  
  154.     To bring up Pascal first assure yourself that you have a standard
  155. BIOS area (i.e.  all i/o vectors are in order) and that the warm boot
  156. vector is in place.  Next if you have a single drive system, make sure that
  157. your BIOS ignors all requests to drive B.  Two drive systems will require
  158. diskettes in both drives until you modify your disk drivers to return a
  159. not ready condition (i.e. a 1 in the A register) when the drive has no diskettee.
  160. Now bring up your standard system, and run the program PASCAL.COM supplied
  161. on the 8080/Z80 support diskette.  This program will prompt you with a request
  162. for a Pascal system diskette in dirve A.  At that time insert the UCSD
  163. distribution Pascal diskette and if you have a second dirve place
  164. any initialized diskette in that drive as well.  Type return and enter the
  165. world of pascal.
  166.  
  167.  
  168.  
  169.     This is a preliminary documentation file for the 2.0
  170. version of RBBS (Remote Bulletin Board System).  More com-
  171. plete documentation, to include a complete overview as well
  172. as more detailed implementation notes, is planned.
  173.  
  174. ============================================================
  175.  
  176. RBBS PROGRAM
  177.  
  178.     The RBBS software has four new features with the 2.0
  179. implementation:
  180.     
  181.     1) Personal messages:  A caller can leave a personal
  182.        message to anyone else by entering the password
  183.        "*".  This causes the message to be invisible in
  184.        summary commands, and retrieve and kill, for any-
  185.        one but the sender and receiver.  An attempt to
  186.        Kill a personal message by anyone other than the
  187.        sender or receiver (and, of course, the SYSOP),
  188.        will result in a "message not found".
  189.  
  190.     2) Re-entry:  when a user has exited to the operating
  191.        system, RBBS will retain his name in a file called
  192.        "LASTCALR".    If RBBS is subsequently re-entered
  193.        with RBBS P (the "P" was arbitrarily chosen), the
  194.        system will retrieve his name from the "LASTCALR"
  195.        file, and skip the sign-on printing.  Note that if
  196.        you are using a loader program to load RBBS from
  197.        another user area (under cp/m 2.x), you can make
  198.        this function automatic, by having the loader fill
  199.        in the "P" immediately before it transfers control
  200.        to RBBS.  In this case, your BYE program should
  201.        store a non-"P" character at location 5DH (default
  202.        cp/m file control block).
  203.  
  204.     3) Killed messages will now have additional information
  205.        in the record used to store the message number:
  206.             0:<#>:<user name>
  207.        where 0 indicates a killed message to RBBS, <#> is
  208.        the original message number, and <user name> is the
  209.        name of the user who killed the message.  This should
  210.        be helpful in restoring messages improperly killed
  211.        by inept/malicious individuals.  Note that after
  212.        using an editor to restore the message (be careful
  213.        here - the editor must not choke on blank-filled
  214.        lines), the "BUILDSUM" function of the RBBSUTIL pro-
  215.        gram can be used to generate a new summary file.
  216.  
  217.     4) Message passwords, previously only stored in the sum-
  218.        mary file, are now duplicated in the message file.  
  219.        This was necessary to allow the BUILDSUM function of
  220.        RBBSUTIL to generate a complete summary file.
  221.  
  222. ==============================================================
  223.  
  224. RBBS UTILITY PROGRAM (RBBSUTIL)
  225.  
  226.     The utility program has the following changes with the
  227. 2.0 upgrade:
  228.  
  229.     1) When transferring a disk file to the message file,
  230.        the files must have already been purged.  This in-
  231.        sures that the files will have been backed up prior
  232.        to any messages being added.  Note also that the
  233.        file "COUNTERS" will also be backed up by purge.
  234.  
  235.     2) The purge function writes deleted messages to an ar-
  236.        chive file called <DATE>.ARC, where the date is sup-
  237.        plied by the operator when purge is invoked.  The
  238.        archive file is written sequentially, and lines are
  239.        unpacked before writing to conserve space.
  240.  
  241.     3) The purge function allows renumbering of the messages
  242.        starting at any number specified when purge is in-
  243.        voked.  You may choose not to use this option if you
  244.        maintain archives, because duplicate message numbers
  245.        can be left in the archive files.
  246.  
  247.     4) A new function, "B", will build a summary file from
  248.        the message file.  This can be useful after editing
  249.        the message file.  It also allows only the message
  250.        file to be saved when doing back-up operations, as
  251.        the summary file can now be derived from the message
  252.        file.  Note that releases of RBBS previous to 2.0 did
  253.        not save the passwords in the message file, there-
  254.        fore, a summary file, rebuilt from such a message
  255.        file will not have password protection.
  256.  
  257.                     Ron Fowler
  258.                     Nov 18, 1980
  259.                     Westland, Mich.
  260.  
  261.  
  262.       PREVIOUS DOCUMENTATION OF THE RBBS SYSTEM
  263.       =========================================
  264.  
  265.  
  266.             RBBS.DOC as of 10/23/80
  267.  
  268.    RBBS is short for "Remote Bulletin Board System".
  269.    RBBS.ASC is a file that was created with MBASIC 5.2.  Do
  270. not try to edit it with a CP/M text editor because some  of
  271. the multiple line statements may have special end-of-line
  272. sequences which may mess up a video-oriented editor, making it
  273. impossible to see some of the lines.  Use MBASIC 5.2 to edit the
  274. file.  This is public-domain software, feel free to use it on
  275. your own system.  The  best  way to run this program is to com-
  276. pile it with the MBASIC compiler, making a COM file out of it.
  277. It will run much faster  that way.  This is what Bruce Ratoff
  278. did, and it works great on his system. 
  279.    The POKES to address 0000h change the C3 to a CD during
  280. execution  of this program.  Bruce Ratoff tests for this in
  281. his DCHBYE55  remote  console program. This testing is also done
  282. in the PMMIBY63 remote console program. In the input from modem
  283. port routine a test is made to see if address 0000h is a CD, if
  284. so it causes the input routine to ignore control-C, changing it
  285. to to a null character instead.  This makes it impossible for
  286. the user to control-C  out of RBBS.   When the program is done,
  287. if you are exiting to CP/M for file transfers, it changes the CD
  288. back to a C3 and then jumps to 0000h (warm boot).
  289.    RBBSPURG.ASC is a program for purging dead messages out of
  290. the RBBS message files.  This should be done periodically to
  291. compactthe message files, since  the "Kill" function simply
  292. deletes  the pointer to the message, not the message itself.
  293.  
  294. -------
  295.  NOTE: The above RBBSPURG.ASC has been superceded by
  296.      RBBSUTIL.ASC      rgf
  297. -------
  298.