home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol030 / sigmlog.016 < prev    next >
Encoding:
Text File  |  1985-02-10  |  16.3 KB  |  428 lines

  1.  
  2. SIG/M     volume 16      miscellaneous CP/M utilities  
  3.  
  4.  
  5. number    name           size      description
  6.  
  7. 16.1      BYE67.ASM      39K       remote console program for PMMI
  8. 16.2      BYE67.DOC      12K       /
  9.  
  10. 16.3      MLIST42.ASM    12K       multiple file list utility
  11.  
  12. 16.4      DU-V75.OBJ      6K       disk utility system
  13. 16.5      DU-V75.DOC      5K        /
  14. 16.6      DU-V75.ASM     40K       /
  15.  
  16. 16.╖á     FINDBD42.AS═á  33╦       create≤ filσ oµ badspot≤
  17.      
  18. 16.8      APLMODEM.ASM   36K       CP/M file transfer for Apple 2
  19.                                    using DC Hayes Micromodem 2
  20.  
  21. 16.9      COMAND.LIB      7K       console string processor
  22.  
  23. 16.10     COMBINE.ASM     7K       merges multiple files
  24.  
  25. 16.11     FILE-XT2.ASM    8K       system disk utility display
  26.  
  27. 16.1▓     MNEMON21.AS═   28╦       multi-pas≤ CP/M memory tester
  28.  
  29.  
  30. NOTE:    The major enhancement of version 6.7 of BYE is that a single
  31.     source file now contains conditional assemblies to control
  32.     either PMMI or D C Hayes modem cards.  Otherwise, this doc-
  33.     umentation is essentially the same as that for version 6.3,
  34.     with the addition of some minor fixes and improvements.
  35.  
  36.  
  37.                 BYE67.ASM DOCUMENTATION
  38.  
  39.  
  40.  
  41.     The BYE program for PMMI and D C Hayes modems has undergone three
  42. significant revisions in recent months, and many features and options
  43. have been added.  This documentation is intended as a guide for sorting
  44. through the many additional items.
  45.     Most of the new features have been added via conditional assembly,
  46. thereby allowing the program to accomodate users with varying memory re-
  47. quirements.
  48.     Note that not all combinations of conditional assembly have been
  49. tested, so be careful!
  50.  
  51.  
  52.  
  53.  
  54.               DOCUMENTATION OF REVISION 6
  55.               ===========================
  56.  
  57. The following features have been added to revision 6:
  58.  
  59. 1) Timed logout-  This feature allows your system to disconnect
  60.    after a pre-specified time when there is no input from the remote
  61.    user.
  62.     ==> Set "TIMEOUT" to "true".
  63.     ==> Set "TOVALUE" to the number of minutes to wait before
  64.         disconnecting.
  65.  
  66.    This feature requires that timing now be done in software, instead of
  67.    using the PMMI timing circuitry, which is tied up with baud rate gen-
  68.    eration when the system is in use.  Therefore, you must set the equate
  69.    "FASTCLK" to true if you are running a 4mhz system, and to false if
  70.    you are using 2Mhz.    You must do this even if you don't use the timed
  71.    logout feature.
  72.  
  73. 2) Autoload- Setting "COMFILE" to true causes the bye program to auto-
  74.    matically load and execute a machine language program from the disk.
  75.    This is useful for remote bulletin-board systems, remote query and
  76.    data entry, etc.  If you are using cp/m 2.x (equate "CPM2" set true),
  77.    you must specify which user number to load this file from.  This is
  78.    done by setting the equate "COMUSR".  Note that this user number will
  79.    also be the one under which the autoload program is executed.
  80.  
  81.    The loaded program can prevent the remote user from re-booting the
  82.    system by changing the byte at 0 (jmp instruction) to a call.  When
  83.    this is done, the system will trap control-c from the remote user
  84.    (changing the character to a null), and a branch to location 0 (warm-
  85.    boot) will terminate the session, as if "bye" had been typed by the
  86.    user at cp/m command level.    This allows the autoload program to end
  87.    the session by merely branching to location 0.  
  88.  
  89.    If it is necessary to give the user full control of cp/m, the auto-
  90.    load program must replace the call at zero with a jump.  In this case,
  91.    control-c will no longer be trapped, and "jmp 0" will warm-boot the
  92.    system.
  93.  
  94.    NOTE:  The system operator can answer an incoming phone call in
  95.       either of two ways:
  96.  
  97.         A>BYE /C    ;this form causes the bye program to answer the
  98.              phone, prompt the user for nulls, then load
  99.              and run the autoload program.
  100.  
  101.         A>BYE /A    ;this form causes the program to answer the
  102.              phone, then boot to cp/m command level.
  103.  
  104.      Note that either method will, upon termination of the session,
  105.      re-load the autoload program before accepting another call.
  106.  
  107. 3)  User and drive number verification- The bye program will now
  108.     validate the logged-in drive, and, if it exceeds the value set
  109.     by the equate, "MAX$DRIVE", the system will reset the logged-in
  110.     drive to 0 and perform a warm-boot.
  111.  
  112.     If you are using cp/m 2.x ("CPM2" equate set to true), the same
  113.     verification will be done for the logged-in user number.  The
  114.     equate in this case is the variable "MAX$USER", which should be
  115.     set to 0 for cpm 1.x.
  116.  
  117. 4)  Special function keys- You can assign any three key-codes on the local 
  118.     keyboard for the following special functions (Note that you should also 
  119.     select the DUAL$IO mode along with these options):
  120.  
  121.     "TWITKEY"  - This key immediately logs out a user.  This can
  122.              be useful to remove system crashers, "explorers",
  123.              etc. from the system.
  124.  
  125.     "MSGKEY"   - This key prints the message: "MESSAGE FROM OPERATOR:",
  126.                      which can be used to announce operator presence, prior 
  127.                      to typing a message to the remote user.
  128.  
  129.     "SYSDKEY"  - This key prints the message: "SYSTEM DOWN IN 5 
  130.                      MINUTES", which is handy when you want to drop a hint 
  131.                      to a caller who has worn out his welcome.  (or just 
  132.                      when you want to politely get the system back for 
  133.                      yourself).
  134.  
  135.     Note that the conditional assembly for these keys is set by the
  136.     equate "FKEYS".  The key-codes can be individually changed.
  137.  
  138. 5)  Decimal user logs - If you use the USRLOG functions (see revision 5 
  139.     section of this documentation file), setting the "DECIMAL" equate to 
  140.     true provides a decimal printout of the user log values, instead of the 
  141.     default hexadecimal printout.
  142.  
  143. 6)  Lower case checking - By setting the "CK$LWC" equate to true, the user 
  144.     will be asked at sign-on if his terminal can display lower case.  If 
  145.     the user responds with "N", all output will be converted to upper case 
  146.     before transmission.
  147.  
  148. 7)  If you have an IMSAI (or any computer with an input port set by
  149.     switches), setting the "IMSAI" equate to true provides the following
  150.     capablities:
  151.  
  152.     switch       function
  153.       0        turns on the hardcopy log ... this echoes remote
  154.             input (not output!) onto the printer.  This provides
  155.             a hardcopy logging function with minimal amount
  156.             of printout..i.e., only the users' input is echoed.
  157.  
  158.       1        sets up "password mode"...when this switch is up, any-
  159.             one trying to log onto the system must provide a pass-
  160.             word.  This allows you to reserve the system at times
  161.             for special callers.  Note that the "PWRQD" equate
  162.             must be set to true for this key to have any affect.
  163.  
  164.       2        blacks out the remote user...this is useful when
  165.             you need to enter a password into the machine that
  166.             you'd rather the remote user not see. Characters
  167.             echo onto the local terminal, but are not sent to
  168.             the remote user. Note that the equate "DUAL$IO", which
  169.             allows the local terminal to be functional, must be
  170.             set to true for this key to have any effect.
  171.  
  172.       3        enables the FKEY's, when the "FKEY" equate is set to
  173.             true.  Using this switch, the special function keys
  174.             can be used normally when the switch is off, and
  175.             as function keys when the switch is up.
  176.  
  177.    Also: the user log (if USRLOG is set to true) will be displayed
  178.    on the front panel LED display.
  179.  
  180.    The port address of the front panel I/O port can be changed using the
  181.    "SENSE" equate.  It is initially set up for the IMSAI addressing, which
  182.    is port 0FFH.
  183.  
  184. 8) The console status routine now checks the overrun and framing error
  185.    bits of the PMMI modem chip, and if either of these bits is set, the
  186.    character in the modem is cleared.  Thanks to Bruce Ratoff who used
  187.    this idea in his DC Hayes version of the bye program.
  188.  
  189. 9) Since the WELCOME file may reside on a different user number than the
  190.    autoload program (if any), the WELUSR equate has been added to indicate
  191.    the user number under which WELCOME may be found.  Note that if the
  192.    COMFILE option is not also used, the caller will receive control of the
  193.    system under user number WELUSR.
  194.  
  195. Credits: (version 6.3)
  196.  
  197. Dave Hardy, who implemented the special function keys, and IMSAI functions
  198. for the Technical CBBS, Dearborn, Mich (313-846-6127 24Hr).
  199.  
  200. Bruce Ratoff, who provided a lot of this stuff in his DCHBYE54, which I
  201. lifted and added to the PMMI version.
  202.  
  203. Keith Petersen, who provided the ideas and suggestions.
  204.  
  205.                    ====>Ron Fowler
  206.                     Sept 24, 1980
  207.  
  208. Credits: (version 6.7)
  209.  
  210. Dave Kozinn, who had the time and patience to merge the D C Hayes code
  211. into PMMIBY63, creating (at long last) an "universal" BYE.
  212.  
  213.                    ====>Bruce Ratoff
  214.                     Feb 17, 1981
  215.  
  216.  
  217.            DOCUMENTATION OF REVISION 5
  218.            ===========================
  219.         PMMIBYE5.DOC    (as of 7/20/80)
  220.  
  221.     The PMMIBYE5.ASM program is out for distribution, but it has not been 
  222. thoroughly tested in all of the possible modes of operation.  
  223.     (Please note that version 5.4 is substantially longer than previous 
  224. PMMIBYE versions.  Because of the great number of conditional switches, the 
  225. program could require as many as 1060 bytes of RAM, or it could be smaller 
  226. than the 900 bytes used by the original PMMIBYE.  It all depends on the way 
  227. you set it up.)
  228.  
  229.    Basically, several new conditional assembly routines have been added to 
  230. allow user selection at time of assembly of the following:
  231.      1. Password access
  232.      2. User log (counts number of system callers)
  233.      3. Memory-mapped console I/O
  234.    Also added to V5.4:
  235.      1. 710 Baud option for PMMI modem
  236.      2. Modifications to AUTO-ANSWER routines
  237.      3. "/R" option to allow reset of user log counters
  238.  
  239.    Password access was made conditional to allow use with systems that offer 
  240. unrestricted access.
  241.    The user log was added to allow the system operators to keep track of the 
  242. number of people who called the system.  In addition, it can also count the 
  243. number of unsuccessful log-ons (i.e. didn't know password) and the number of 
  244. voice calls, and conditionally display both numbers on the system console 
  245. when the program is exited with a control-C from the system console.  The 
  246. counters can be initialized with the "/R" option to all zeroes, or preset by 
  247. using DDT, or SID.  The number of successful log-ons is also conditionally 
  248. output to port 255 (0FFH) for display on the computer's front panel.
  249.    The memory-mapped I/O conditionals have been added to allow use of the 
  250. serial I/O port on the Morrow's 2D controller board as the system console; 
  251. however, the routines can be used with any memory-mapped system.
  252.    The 710 Baud option was added for "short-haul" callers, and because 
  253. operation at 710 Baud with the PMMI modem is "iffy" at best, it will 
  254. probably be of very little use.
  255.    The AUTO-ANSWER routines were modified to allow more dependable ringback 
  256. operation.  Unfortunately, the ringing signal at the caller's end of the 
  257. phone line does not always correspond exactly with the ringing signal at the 
  258. system's end.  Although a system-end ring does occur sometime during the 
  259. caller's ring cycle (ring-no ring), it is possible for the system to receive 
  260. no or 2 rings in the time that the caller thinks just one ring has occurred 
  261. (The DIAL program is notorious for this).  The solution chosen for this 
  262. problem was to check for one or two rings before call-back.  This would 
  263. allow for the "phase" difference of the caller-system ring signals.  This 
  264. solution also means that the phone must ring at least three times before the 
  265. system will assume that the call is voice, and is not to be answered.  The 
  266. advantage of this arrangement is that it is virtually impossible for the 
  267. computer to "miss" a call that is intended for it.
  268.  
  269.             Dave Hardy
  270.  
  271.  
  272.             DU-V74.DOC
  273.            by Ward Christensen
  274.     with additional notes by Ron Fowler
  275.         (revised 1/15/81)
  276.  
  277.     HOW TO USE DU ver 7.4 DISK UTILITY
  278.  
  279. INSTALLATION:
  280.     The 7.0 and later versions of DU are designed to
  281.   be installed with a minimum of trouble.  In fact, in al-
  282.   most all cases, no changes to the source file should be
  283.   necessary to get DU up and running. This is because DU
  284.   uses the disk paramter block of CP/M to determine the
  285.   characteristics of the disk environment.  (see the dis-
  286.   claimer for certain non-standard versions of CP/M 1.4).
  287.     The only parameter that should need to be changed
  288.   will be the clock speed flag at 103H.  Leave this byte
  289.   zero if you have a 2 mhz clock.  Patch it non-zero for
  290.   4 mhz.  This is only needed for the "Z" (sleep) command.
  291.  
  292. USE:
  293.  
  294. Any valid command string may be placed as an
  295. operand of the original DU command, i.e.:
  296.  
  297.      A>DU G0;D;G2;=OK<D><A><1A>;D
  298.  
  299. Functions supported:
  300.  
  301.     Tnn    Seek to track nn (no read)
  302.     Snn    Position to sector nn, and read
  303.     Gnn    Position to group nn and read.
  304.     G    Shows current position
  305.     V    Views the current sector.
  306.         (assumes ASCII data)
  307.     Vnn    Views nn sectors
  308.     Fname    print directory for file "name",
  309.         then positions to it's directory 
  310.         sector. (Won't position under
  311.         CP/M 2.x, but see = command below.)
  312.  
  313.     =string    Ascii search, starting at current
  314.         sector. <xx> hex may be imbedded,
  315.         or used alone:  To find "IN 0FEH":
  316.         =<db><fe>
  317.         Ignores bit 7 unless <xx> is used.
  318.  
  319.     L    Re-logs in the current disk. You may pull
  320.         out a disk, put in a new, and "L" just
  321.         to log it in.
  322.  
  323.     Lx    Logs in disk 'x', such as: LB
  324.  
  325.     Ux    Logs user 'x' for next F command.  Gives
  326.         '?' error if not CP/M version 2.x.
  327.  
  328.     D    Dump sector, hex + ASCII
  329.     A    Dump sector, ASCII only
  330.     H    Dump sector, hex only
  331.  
  332. note all dump commands (D, A, H) may be optionally
  333.     followed by a starting and ending address:
  334.     D0,7F    is the same as just D
  335.     D3,5
  336.     A20,3F
  337.  
  338.     CHaddr,val,val,val... change hex in sector
  339.     CAaddr,char string... change ASCII in sector
  340.         NOTE that <xx> may be hex imbedded
  341.         in the Ascii:  ca0,OK<d><a><1a>
  342.  
  343.         ----> Use W to write changes to disk.
  344.         Note that the C command echoes
  345.         the overlaid data for verification.
  346.  
  347.     CHaddr-addr,byte
  348.  or    CAaddr-addr,byte    repeats a change
  349.  
  350.     +    advance 1 sector (if below track 2,
  351.         this advances to next numerical, if
  352.         2 or >, advances based on CP/M's normal
  353.         sector scrambling algorithm, i.e. so +
  354.         will get the next logical sector of the file
  355.  
  356.     -    backs up 1 logical sector
  357.  
  358.         Note + and - may take an amount:
  359.         for example, +F steps in 15 sectors.
  360.  
  361.         Note also that "-" issued at the first logical
  362.         sector of the disk will wrap back to the last.
  363.         Further, "+" issued at the last sector will
  364.         wrap forward to the first.
  365.  
  366.     ?    Gives command summary
  367.  
  368.     #    Prints the disk parameters
  369.  
  370.     M    Dumps a map of the group allocations
  371.         for files.
  372.     Mn    Shows which file is allocated to
  373.         group "n".
  374.  
  375.     N    Resets CP/M via the BDOS.  This may
  376.         make it possible under some implementations
  377.         of CP/M to change the disk format (e.g., density,
  378.         sides, etc)
  379.  
  380.     R    Reads the sector currently positioned to
  381.         into memory.  Note R (Read) is implicit in
  382.         the G, +, and - commands, but N-O-T in the
  383.         S and T commands (I did it because I was
  384.         tired of disk reading after T command before
  385.         I had a chance to issue the S command)
  386.  
  387.     W    Write back the current sector (N-O-T-E may
  388.         not be used after an F command, as CP/M was
  389.         used to find the file in the directory
  390.  
  391.     X    Exit back to CP/M (Must press return).  Ctl-c
  392.         was too easy to hit over modem lines, so I
  393.         decided on 2-byte (X, CR) to exit.
  394.  
  395.     P    Toggle printer switch on/off
  396.  
  397.     Z    Sleep - causes the program to pause, such
  398.         as to look at a dump.  Z is 1 sec.  Znn
  399.         is nn tenths of a second on a 2 MHz 8080.
  400.  
  401.     <    Saves current sector in a save buffer
  402.  
  403.     >    Gets saved buffer.  < and > may be used
  404.         to move a sector to another place.
  405.  
  406.     /    Repeats entire command.  Defaults
  407.  or    /nn    to "forever".  NN may be 2 to 65535
  408.  
  409. multiple commands may be separated by ";"
  410.  
  411. Example: the following commands will erase the
  412.      b disk directory to all E5's:
  413.  
  414.     lb        log in b drive
  415.     g0        position to dir.
  416.     ch0-7f,e5    fill with e5
  417.     <        save the sector
  418.     >;w;+;/16    restore, write, next,
  419.             repeat 16
  420.  
  421. ----This could be shortened to:
  422.  
  423.     lb;g0;ch0-7f,e5;<
  424.     >;w;+;/16
  425.  
  426. END
  427.  
  428.