home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / RCPM / LUX80.ARK / ZAP33.DOC < prev   
Text File  |  1987-03-04  |  7KB  |  187 lines

  1. V3.3 notes
  2. ----------
  3.  
  4. I recently received an updated 2.5 source from Willie Davidson
  5. and 3.3 is simply the result of incorporating those changes into
  6. 3.2.  The most significant differences seem to be to do with the
  7. "type file" function where the display width has been increased
  8. from 72 to 76 characters and the handling of non-display
  9. characters has been improved.
  10.  
  11. V3.2 notes
  12. ----------
  13.  
  14. SUPERZAP v 3.1 allowed operation under CP/M 3.1 provided that
  15. certain implementation considerations were met, namely:
  16.  
  17. 1.   CP/M 3 is non-banked, OR,
  18. 2.   Disk parameter headers reside in common memory, OR,
  19. 3.   XMOVE routine is implemented.
  20.  
  21. Version 3.2 removes all restrictions.  It will now run on any
  22. CP/M 2.2 or 3.1 system with a Z80 processor.
  23.  
  24. John Hastwell-Batten,
  25. 24th February, 1986
  26.  
  27.  
  28.  
  29. V3.1 enhancements and other changes to SUPERZAP
  30. -----------------------------------------------
  31.  
  32. 1.   Upgraded to operate under CP/M 3.1 as well as CP/M 2.2,
  33. 2.   Added ability to select user number,
  34. 3.   Generalised screen control functions,
  35. 4.   Other minor (cosmetic) changes.
  36.  
  37.  
  38. CP/M 3.1 compatibility:
  39. ----------------------
  40.  
  41. SUPERZAP  now tests for CP/M version at startup.   If not running
  42. under 2.2 or 3.1 then it complains and stops.
  43.  
  44. Since any sensible CP/M 3.1 BIOS deals with physical disk sectors
  45. rather  than  128-byte "logical" sectors,  several  changes  were
  46. needed  to map the physical disk I/O into a much  larger  buffer.
  47. The  code size has not increased significantly because the buffer
  48. is set up in free memory past the end of the program.
  49.  
  50.  
  51. User number selection:
  52. ---------------------
  53.  
  54. A very crude method of changing user number has been added.  Upon
  55. selecting the (new) U option from the directory display panel,  a
  56. prompt  is displayed which calls for a single keystroke.   If you
  57. respond  with a numeric key (0-9) or a letter (in the range  A-F)
  58. then the keystroke is interpreted as a hexadecimal digit and  the
  59. current user number is changed.  The user number is not displayed
  60. so you have to remember it.  (I did say it was crude, didn't I?)
  61.  
  62.  
  63. Screen control functions:
  64. ------------------------
  65.  
  66. To  facilitate patching the object file for your terminal  rather
  67. than  re-assembling  the  source code,  I  have  generalised  the
  68. routines which do screen control functions.
  69.  
  70. The  strings which relate to screen functions have been increased
  71. from 4 to 7 bytes and are now prefixed by a "length"  byte.   For
  72. example,  to  home the cursor and clear the screen on my terminal
  73. requires  that I send it a  two-byte  sequence:  15h,  17h.   The
  74. string is declared as:
  75.  
  76.           2,15h,17h,0,0,0,0,0
  77.  
  78. The  five zeros are just fill and could be anything.   The "2" at
  79. the beginning says that only the next two bytes are significant.
  80.  
  81. The  screen control strings start at 150h and each is eight bytes
  82. long including the length prefix:
  83.  
  84. 150-157   Clear screen and home cursor
  85. 158-15F   Clear to end of line
  86. 160-167   Set inverse video
  87. 168-16F   Set normal video
  88. 170-177   Cursor-positioning prefix
  89. 178-17F   String sent to screen BETWEEN cursor coordinates
  90. 180-187   String sent to screen at end of cursor-positioning
  91.  
  92. The  next  few  bytes relate to  cursor  positioning.   Rows  are
  93. numbered  0 to 23 from top down,  columns are numbered 0-79  from
  94. left to right.
  95.  
  96. 188       1  if  row  coordinate sent  before  column  coordinate
  97.           (usual case) or 0 if row before  column.   WARNING:  Do
  98.           not set this location to any value except 0 or 1!
  99. 189       "Offset" to add to row (usually 20h)
  100. 18A       "Offset" to add to column (usually 20h)
  101. 18B       Non-zero if coordinates are sent as single-byte  binary
  102.           values  (usual case) or zero if coordinates are sent as
  103.           multi-byte decimal numbers (e.g. ANSI terminals).
  104.  
  105. Finally, if you are using a Hazeltine terminal which doesn't like
  106. the tilde character:
  107.  
  108. 18C       Set to 7Dh for Hazeltine terminals, 7Eh for others.
  109.  
  110. If you are using Z8E to configure the object file then the symbol
  111. names for the above locations can be loaded from the .PRN file:
  112.  
  113.           z8e zap.com zap.prn
  114.  
  115. You can the use the following names with the E command:
  116.  
  117. clsstr    Clear screen and home cursor
  118. cllstr    Clear to end of current line
  119. vinv      Set inverse video
  120. vnorm     Set normal video
  121. cppref    Cursor positioning prefix
  122. cpmid     Cursor positioning infix
  123. cpend     Cursor positioning suffix
  124. row1st    Row-before-column flag (remember, set to 0 or 1 ONLY)
  125. rowoff    Offset to add to row
  126. coloff    Offset to add to column
  127. cpbin     Binary/ASCII coordinate flag
  128. maxasc    Higest displayable character
  129.  
  130. Cursor  control  keys now WordStar-compatible but to change  them
  131. you  need to re-assemble the source code.   Didn't have  time  to
  132. make them object-code configurable.
  133.  
  134. When you select track/sector mode,  the default track number used
  135. to be 0 but I changed it so that the default is now the directory
  136. track.   It  is  not  very often you want to look at  the  system
  137. tracks with a disk editor.   More frequently you want to  recover
  138. files by fiddling the directory.  Besides, on a "split" hard disk
  139. where the splitting is done by cylinder rather than by platter or
  140. surface, there may not even be a track 0 on the selected disk.
  141.  
  142. In  sector  displays,  characters with the high bit set  are  now
  143. displayed in inverse video rather than as dots.   This simplifies
  144. reading directory sectors where files have attribute bits set.
  145.  
  146. I  added  ASEG and ORG directives and put an .XLIST directive  at
  147. the start and a .LIST directive at the end of the source file  to
  148. generate  a  .PRN file suitable for use with the Z8E  debug  tool
  149. (SIG/M vol 239).
  150.  
  151.  
  152. Wish list:
  153. ---------
  154.  
  155. 1.   Extend  random-record processing to handle VERY large  files
  156.      under CP/M 3.1,
  157.  
  158. 2.   Display current user number on the screen somewhere,
  159.  
  160. 3.   Extend  file  name  selection to  incorporate  user  numbers
  161.      (perhaps like NSWP207).
  162.  
  163. 4.   Allow multiple sectors in the scratchpad.
  164.  
  165. 5.   Under  CP/M  3.1 display physical sector numbers  as  XXXX:Y
  166.      where XXXX is the actual sector number and Y is the 128-byte
  167.      sub-sector number,
  168.  
  169. 6.   When  in  track/sector  mode,  allow the ability  to  select
  170.      whether  to  use  BIOS skewing or  to  use  0- or  1- origin
  171.      sequential sector numbering (i.e. no skew).
  172.  
  173. 7.   Use the full width of the screen when displaying text files.
  174.  
  175. 8.   Add some sort of string search facility.
  176.  
  177.  
  178.  
  179. John Hastwell-Batten,
  180. SYSOP,
  181. Tesseract RCPM+,
  182. P.O. Box 242,
  183. Dural, NSW 2158,
  184. AUSTRALIA
  185.  
  186. 14th January, 1986
  187.