home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug084.arc / SUPERZAP.DOC < prev    next >
Text File  |  1979-12-31  |  11KB  |  267 lines

  1.                                     SPZ.COM
  2.              SPZ  is  a  full  screen interactive  disk  update  utility, 
  3.        providing  many of the features found in DU.COM.  The program  is 
  4.        menu driven, and little additional documentation is required. The 
  5.        following notes consist of a functional overview,  plus notes  on 
  6.        features not documented in the menus.
  7.  
  8.  
  9.        SYSTEM REQUIREMENTS.
  10.  
  11.  
  12.             SPZ requires a Z80 - it may be possible to update the source 
  13.        for 8080 but extensive use is made of Z80 opcodes, and this would 
  14.        be  a large exercise.  Subroutines would be required to  simulate 
  15.        LDIR,  LDDR,  and  CPIR,  to  say nothing of varieties of  shift, 
  16.        rotate and load instructions.
  17.  
  18.             CPM 2.x is required.
  19.  
  20.             One or more disks may be used - SPZ determines if a selected 
  21.        disk is defined in the BIOS before attempting to access it.
  22.  
  23.             The  terminal  used must support  cursor  addressing,  clear 
  24.        screen, and erase to end of line. At least an 80 by 24 display is 
  25.        required.
  26.  
  27.                                   FACILITIES.
  28.  
  29.             SPZ enables disk sector editing in HEX or ASCII,  using File 
  30.        Relative  or  Track/Sector addressing.  In File Relative  mode  a 
  31.        sorted  directory  listing is used to select the  file.  In  both 
  32.        modes  forward  and backward browse is provided,  in addition  to 
  33.        random record selection.  The displayed sector may be copied to a 
  34.        scratchpad  buffer,   or  exchanged  with  the  scratchpad.   The 
  35.        directory  list may be full (*.*) or selective,  eg *.ASM and the 
  36.        selection may be changed at any time.
  37.  
  38.             A file TYPE facility gives a paged, formatted display of any 
  39.        file.  Control characters are displayed as "." except for TAB and 
  40.        Carriage return/Line feed which are processed normally. COM files 
  41.        are not formatted.
  42.  
  43.             The  SPZ  command  format may  enter  any  operational  mode 
  44.        directly -
  45.  
  46.             SPZ                    enters SPZ with a *.* directory list.
  47.             SPZ d:                 as above with d:*.* directory list.
  48.             SPZ [d:]afn            as above with d:afn directory list.
  49.             SPZ [d:]ufn            enters SPZ in file relative mode, 
  50.                                    using the specified file.
  51.             SPZ [d:]DSK:           enters SPZ in Track Sector addressing
  52.                                    mode on the specified drive.
  53.  
  54.  
  55.        DIRECTORY LIST MODE.
  56.  
  57.             In directory list mode the cursor is positioned on the first 
  58.        filename displayed.  The cursor can be moved LEFT,  RIGHT,  UP or 
  59.        DOWN using Control keys.  A file is selected by typing a  command 
  60.        character  against the required file name - "E" for file relative 
  61.        editting, or "T" for the TYPE function.
  62.  
  63.             Up to 32 file names are listed. If there are more files, the 
  64.        directory list may be paged forward and back.
  65.  
  66.             Other  drives may be selected or the current disk changed  - 
  67.        NOTE  - if the disk in the current drive is changed,  the "change 
  68.        disk"  function  should be used to select the same  drive  again. 
  69.        This  provides a new directory list,  and avoids CP/M making  the 
  70.        disk Read Only.
  71.  
  72.             Track/Sector addressing is selected from the directory  list 
  73.        display.
  74.  
  75.             The directory list selection may be changed - the default is 
  76.        *.* unless set by the SPZ command.
  77.  
  78.        FILE RELATIVE MODE.
  79.  
  80.             In this mode the selected file is displayed in HEX and ASCII 
  81.        format  with  record number and file offset displayed.  For  .COM 
  82.        files the address when loaded at 0100H is diplayed.
  83.  
  84.             The record displayed may be selected by browsing forward and 
  85.        back,  locating the first or last record,  or by setting a record 
  86.        number  (in HEX).  When setting a record number,  Hex digits  are 
  87.        entered  in  "calculator style" - new digits are entered  on  the 
  88.        right  while the number moves left.  Backspace deletes  the  last 
  89.        digit  entered,  and Escape restores the original  number.  These 
  90.        features  are common to all number entries in SPZ.  The  selected 
  91.        record  is read when RETURN is pressed.  If it is not found,  the 
  92.        previous record number will be restored.
  93.              
  94.  
  95.             The  displayed  record may be changed  by  typing  "C".  The 
  96.        cursor  is positioned on the first hex digit,  and is moved using 
  97.        the same control keys as are used in the directory list mode. Any 
  98.        valid  hex digit may be typed to alter the record.  The  TAB  key 
  99.        moves  the  cursor  to  it corrosponding location  in  the  ASCII 
  100.        display, allowing character strings to be easily changed. Another 
  101.        TAB returns the cursor to the HEX display area.
  102.  
  103.             Two control codes are available to stop editing the record - 
  104.        one saves the changes and rewrites the record to disk,  the other 
  105.        restores the record to its original contents.
  106.  
  107.             Return to directory list mode is made by typing "L".
  108.  
  109.  
  110.        TYPE FILE 
  111.  
  112.            Files are TYPEd with up to 72 characters per line,  18 lines 
  113.        per page.  Except for .COM files, Carriage return/Line feed codes 
  114.        are honoured, and Tabs are expanded. All other control characters 
  115.        are  displayed  as  "."  to  prevent  unwanted  terminal  control 
  116.        functions.
  117.  
  118.             Forward   and  backward  paging  operations  are   provided, 
  119.        including return to top of file.  Following paging,  the  highest 
  120.        page displayed can be restored.
  121.  
  122.           
  123.        DIRECTORY LIST SELECTION.
  124.  
  125.             The  ambiguous file name used for the directory list may  be 
  126.        edited  by  typing "M" in the directory list  mode  display.  The 
  127.        existing  file NAME and TYPE may be overwritten or  edited  using 
  128.        INSERT and DELETE control keys.  Only those characters defined as 
  129.        legal in the CPM documentation are permitted.
  130.  
  131.             If  "*"  is  typed at any point in the  NAME  or  TYPE,  the 
  132.        remainder  of the field will be filled with "?".  If a  SPACE  is 
  133.        typed the remainder of the field will be blanked out. Period also 
  134.        has  this  effect if used in the NAME field - an  ambiguous  file 
  135.        name may thus be entered in the normal fashion.
  136.  
  137.             The TAB key switches between editing the NAME and TYPE.
  138.  
  139.             The  ESCAPE  key  restores the  original  selection,  RETURN 
  140.        produces a new directory list.
  141.  
  142.             NOTE  - insert  and  delete  affect  only  the  field  being 
  143.        editted, - characters do not wrap between name and type.
  144.  
  145.        TRACK/SECTOR ADDRESSING.
  146.  
  147.             This  mode is entered by typing "S" in directory list  mode. 
  148.        The  facilities provided here are similar to File Relative  mode, 
  149.        but  sectors  are  selected  by setting  (or  browsing  back  and 
  150.        forward) track and sector numbers. The allocation block number is 
  151.        also displayed and may be set.  When a block number is  set,  the 
  152.        first sector of that block is displayed.  The record diplayed may 
  153.        be  altered  in  the  same manner  as  File  Relative  mode.  The 
  154.        scratchpad  facility  is also available in this mode.  Note  that 
  155.        sectors saved in one mode are available for exchange in the other 
  156.        mode. 
  157.  
  158.  
  159.                                  INSTALLATION
  160.  
  161.             SPZ uses the following terminal facilities -
  162.  
  163.                  Cursor Addressing
  164.                  Clear Screen
  165.                  Erase to end of line.
  166.  
  167.             SPZ assumes that the cursor is positioned by a prefix string 
  168.        followed  by ROW+020H,  COLUMN+020H.  If this is not the case for 
  169.        your  terminal  you must update routine CURS and  reassemble  and 
  170.        link SPZ. 
  171.  
  172.             The  cursor positioning prefix,  and other functions may  be 
  173.        altered  using  DDT,  or preferably a  Z80  debugger. 
  174.  
  175.             Three 4 byte strings are reserved at 180H,  for VDU  control 
  176.        strings, each of which MUST end in 00H.
  177.  
  178.             180H - Clear Screen
  179.             184H - Erase to end of line
  180.             188H - Cursor position prefix
  181.  
  182.             The  byte  at  18CH  is used as a "flag"  character  in  the 
  183.        directory list - the cursor is positioned over it.
  184.  
  185.             The  control  keys used for cursor movement are  defined  by 
  186.        equates  in  the assembler source and may be altered if  desired. 
  187.        The menus will reflect any changes made to these equates.
  188.  
  189.  
  190.  
  191.                            SPZ.MAC
  192.  
  193.             Several  Macros  are used in the  SPZ  assembly.  These  are 
  194.        provided inline.
  195.  
  196.             $RTN       is used to head each subroutine.  It generates  a 
  197.        label  (using DS 0 because Microsoft seem to think EQU statements 
  198.        do  not need to be listed in the Macro expansion [  Ah  well,  it 
  199.        takes  all kinds ...]).  An entry statement is also generated  so 
  200.        that the L80 /Y otption will provide symbols for ZSID.
  201.  
  202.             $PANEL     Generates a call to the panel display subroutine, 
  203.                        passing a panel name as a parammeter. 
  204.             $NPANEL    Does the same, but first clears the screen.
  205.             $FLD       Generates a call to the field display subroutine.
  206.             $IFLD      Same  as $FLD,  but  also inputs a character  and 
  207.                        converts to upper case.
  208.             $STRO      Prints the specified string.
  209.             $HEXW      Prints a 4 byte HEX number.
  210.             $MTCH      Calls the string search function.
  211.             $EXVA      Calls the vectored call function.
  212.  
  213.  
  214.        Control Code Equates.
  215.  
  216.             A  set of EQU statements is provided to change  the  control 
  217.        codes  used  throughout SPZ.  These EQUates are also used in  the 
  218.        menus,  hence  changes to these will correctly  update  displayed 
  219.        messages.  Take  care  not to use 00H - CPM function 6  does  not 
  220.        return  the ^@ key!  also codes realy must be control codes - 01H 
  221.        to 1FH otherwise the panels get funny,  and results might not  be 
  222.        what you expect when editting a sector.
  223.  
  224.  
  225.                                  Thats it Folks - 
  226.  
  227.                             Willie Davidson.
  228.                     8 Comely Bank Street
  229.                     Edinburgh
  230.                     Scotland.
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.                      converts to upper case.
  266.             $STRO      Prints the specified string.
  267.