home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 1 / APDL_PD1A.iso / utilities / lineedit / !LineEdit / !Help < prev    next >
Encoding:
Text File  |  1989-11-12  |  11.9 KB  |  249 lines

  1. OK folks, as was mentioned in my previous binary posting, here's a new (and
  2. very likely to be the last) version of my Line Editor (now V1.01). If anybody
  3. has any criticisms, bug reports, praise or general moaning about this program,
  4. then e-mail them to me QUICK, because this project is about to go on the
  5. shelf indefinitely (well, I've done as much to it as I can think of at the
  6. moment...).
  7.    What do people think about setting up a newsgroup specifically for the
  8. Archimedes ? I think eunet.micro.acorn doesn't really stand out as much as
  9. comp.sys.archimedes...If the Atari ST, Amiga, Mac and IBM PC can have
  10. newsgroups (and at least 2 of each) named after them, then why not allow the
  11. Archimedes the same privilege ?
  12.    One final note : I think I've worked out why Archimedes binaries never get
  13. posted to eunet.micro.acorn - the serial cable is a SWINE to get right AND you
  14. have to run the RS423 driver fix module AND Arthur Kermit DOESN'T set the
  15. data/stop bits when you change the parity...no wonder people have trouble...
  16.  
  17. Richard K. Lloyd,       ****** This is a VAX 11/780 running VAX/VMS V4.5 ******
  18. Computer Science Dept., * JANET     : SQRKL@UK.AC.LIV.CSVAX                   *
  19. Liverpool University,   * UUCP      : {backbone}!mcvax!ukc!mupsy!liv-cs!SQRKL *
  20. Merseyside, England,    * Internet  : SQRKL%csvax.liv.ac.uk@cunyvm.cuny.edu   *
  21. Great Britain.          *******************************************************
  22.  
  23. "My opinions and those of the University of Liverpool are completely unrelated,
  24. so I'M THE CULPRIT if you feel offended by the above message - I just can't
  25. help moaning about Atari STs, PCs or clones, U**X, C, IBM mainframes, the list
  26. is endless..."
  27.  
  28. -------------------------- Start of LineEdDoc file --------------------------
  29.  
  30. Documentation for Line Editor Module V1.01
  31. ------------------------------------------
  32.  
  33. *************************  Very boring Copyright Notice  **********************
  34. *                                                                             *
  35. *  All program code is the copyright of Richard K. Lloyd and the 'borrowing'  *
  36. *     any part of it without the permission of the author is prohibited.      *
  37. *                                                                             *
  38. *******************************************************************************
  39.  
  40. If you are passing on the Line Editor to your friends, please include this
  41. short text file (which I've called LineEdDoc).
  42.  
  43. The Line Editor is installed by typing *LineEditor. If there isn't enough RMA
  44. workspace available, then the installation will fail. To remedy this, you can :
  45.  
  46. 1) Type *GOS, which permits extra RMA space to be claimed because there is no
  47.    application (e.g. BASIC) active or
  48.  
  49. 2) *RMKILL or *RMCLEAR unwanted RAM-based modules or
  50.  
  51. 3) *UNPLUG unwanted ROM-based modules or
  52.  
  53. 4) Use *Configure RMASize to allocate more space to the RMA or
  54.  
  55. 5) Use *Configure EdSize to reduce the workspace needed by the Line Editor or
  56.  
  57. 6) Use *FX 162,37,<lines> and *FX 162,38,<pages> if you can't activate the
  58.    the Line Editor due to lack of space in the RMA (this is the 'last resort'
  59.    mechanism - only to be used if all else fails).
  60.  
  61. If you still can't install the Line Editor after all that, then either you
  62. have inordinately large *Configure SpriteSize/ScreenSize etc. settings or you
  63. only have a 512K RAM A305, though God knows why you have - there's only 100K
  64. free after booting !
  65.  
  66. All the help you need can be obtained by typing *Help LineEditor once the Line
  67. Editor has installed correctly. This short document just describes any unusal
  68. features of the Line Editor.
  69.  
  70. Because the Line Editor traps the OS_ReadLine vector, the following will be
  71. intercepted :
  72.  
  73. a) BASIC's immediate command mode (prompted by a ">").
  74. b) BASIC's INPUT and INPUT LINE statements.
  75. c) Arthur Supervisor's line input (default prompt is a "*").
  76. d) Any ARM code or 6502-emulated code that calls OSWORD 0.
  77. e) Any ARM code that calls OS_ReadLine (a bit obvious this one...).
  78.  
  79. There is a (now nice) piece of logic in the Line Editor code that will purge
  80. the oldest commands if the command history is almost full. If a line is typed
  81. in which already duplicates one in the command history, then the latter is
  82. removed and the duplicate line is put in the last command history slot.
  83.  
  84. The command history size (in pages = 256 bytes) and the number of lines
  85. remembered may be saved to battery-backed RAM by use of the *Configure EdSize
  86. and *Configure EdLines commands. If you are running the Line Editor for the
  87. first time then 4 pages and 20 lines are the default values. The two
  88. battery-backed RAM locations used are 37 and 38 (decimal) which are mid-way
  89. through the area designated 'User' battery-backed RAM in the Reference Manual.
  90.  
  91. Try this with RMASize 4 and default language 4 (BASIC) : Type *GOS,
  92. *RMLoad Clares Toolkit v1.01, enter BASIC, soft reset (just press RESET only)
  93. and then type *RMTIDY - you get an 'Address exception' !! Ho ho ho ho - my Line Editor re-activates correctly if you do the same thing...
  94.  
  95. Bad News : Serious Arthur (1.20) Supervisor input bug
  96. -----------------------------------------------------
  97.  
  98. During the development of this (hopefully useful) program, I stumbled across a
  99. rather amazing bug. Enter the Arthur Supervisor mode by typing *GOS. Fill the
  100. input buffer by, say, holding down a key until you get a beep. Press RETURN
  101. and - bingo - A FATAL SYSTEM CRASH ! The memory is filled with (I think) the
  102. string you typed, the screen goes blank and sometimes strange noises emanate
  103. from the speaker...a CTRL-BREAK or RESET rescues the situation, but bang goes
  104. any program you had in memory at the time.
  105.  
  106. Good News : The Line Editor fixes the above bug
  107. -----------------------------------------------
  108.  
  109. Further investigation has shown that if a full line is entered, then the
  110. terminating carriage return overflows onto command line parsing workspace -
  111. technofreaks might like to know that the error is a pretty clumsy one...
  112. a length of 240 bytes is specified, but the buffer at &9C8 is exactly 240 bytes
  113. long - wrong !! It should be 241 bytes long to allow for the carriage return.
  114. The bug is fixed by reducing the line length of the Arthur Supervisor input
  115. routine by 1 byte. This applies to Arthur 1.20 only.
  116.  
  117. Revision History of the Line Editor
  118. -----------------------------------
  119.  
  120. Pre-release Version V1.0
  121. ------------------------
  122.  
  123. * 'Normal' ARM code program that was *RUN and resided at &8E000 (I think -
  124.   it was 'hackable' because the code was relocatable even then).
  125.  
  126. * Very minor bug - if a line wrapped onto a second or later line, then moving
  127.   the cursor back onto the first line and pressing RETURN would result in just
  128.   a CR-LF being output at the cursor position - hence bringing up the next
  129.   prompt (e.g. BASIC's ">" or Arthur's "*") on the wrong line.
  130.  
  131. * The location of command history buffer (and the program itself) was suspect
  132.   in the extreme - just plonked straight after the Line Editor program itself.
  133.  
  134. Version 1.00
  135. ------------
  136.  
  137. * First version released into the Public Domain via the NEWS system and thus
  138.   set a precedent for being the first EVER Archimedes binary posted up to the
  139.   eunet.micro.acorn newsgroup. The big question is : will it be the ONLY ONE
  140.   EVER ? C'mon all you budding ARM (or even BASIC...) programmers out there
  141.   who are reading eunet.micro.acorn - post your stuff up NOW...
  142.  
  143. * Written, for the first time, as a relocatable module (much more useful !),
  144.   so now doesn't encroach on application workspace.
  145.  
  146. * Used two bytes of battery-backed RAM to store its configuration.
  147.  
  148. * *Help, *Configure and *Status now fully supported.
  149.  
  150. * New command *EdStatus added to display currently active configuration.
  151.  
  152. * Very minor bug in Pre-release Version fixed (cursor now goes to the end of
  153.   the input line before a CR-LF is output).
  154.  
  155. * Cleaned up some slight errors in the *Help LineEditor text.
  156.  
  157. * Fixed Arthur Supervisor bug (documented above).
  158.  
  159. Version 1.01
  160. ------------
  161.  
  162. * Command history buffer management much improved. You can now get down to
  163.   '0 bytes free' in the *EdStatus command - something you couldn't do in V1.00.
  164.   The bytes free has now been 'pluralised' i.e. it says 'There is 1 byte free'.
  165.  
  166. * Overtype mode added for people who like using it (who does ?). The default
  167.   mode for each line is insert mode and you have to press Insert to get into
  168.   overtype mode...which is the way it should be.
  169.  
  170. * Character read routine now uses INKEY(0) instead of GET because I needed to
  171.   scan (using INKEY(-62)) for the INSERT key, which NEVER returns an ASCII
  172.   code from GET...
  173.  
  174. * Line Editor now beeps (wow !) if the current line is at its maximum length
  175.   and further characters are typed.
  176.  
  177. * Ctrl-Cursor Up and Ctrl-Cursor Down commands added - they display the oldest
  178.   and newest command lines respectively. Yes, I confess, this is a poor
  179.   solution to the problem of *RECALL [<numbered history line>] (VAX/VMS has a
  180.   RECALL command which isn't put into the history buffer - I don't think this
  181.   can be done with my Line Editor).
  182.  
  183. Future Improvements to Line Editor V1.01
  184. ----------------------------------------
  185.  
  186. * Can't think of anything offhand - all known bugs have been ironed out (even
  187.   the new ones introduced when I added overtype mode !). I'm always open to
  188.   (polite) suggestions, though...see below.
  189.  
  190. A dozen Archimedes moans
  191. ------------------------
  192.  
  193. I reckon the Archimedes is the best machine I've ever used for programming,
  194. but I felt that it's a bit ropey in some areas :
  195.  
  196. 1) The BASIC Editor has some strange ideas about line splitting. Why can't it
  197.    just split or join at the cursor postion when RETURN or DELETE is pressed
  198.    instead of having to mess around with Shift-f1 or Ctrl-f1 ?
  199.  
  200. 2) It's tortuous to delete the whole of a single line in the BASIC Editor -
  201.    Ctrl-D f12 !!!! Yuck.
  202.  
  203. 3) The APPEND command (Shift-f2) in the BASIC Editor ALWAYS appends to the END
  204.    of the program - it would be more useful to insert the file at the current
  205.    line the cursor is on. I'd imagine you'd have to call it INCLUDE though.
  206.  
  207. 4) Acorn should rethink their WIMP environment from scratch - it's a disgusting
  208.    cross between horrible Microsoft Windows and the even worse DR GEM.
  209.  
  210. 5) Forget a 3-buttoned mouse (it's also far too light...I'm tempted to put some
  211.    lead weights in it) - you only need one (have Apple copyrighted the idea ?).
  212.  
  213. 6) Why do all RAM-based modules disappear on a hard reset ? Good old Sideways
  214.    RAM on the BBC Micro never had this problem and it was nowhere as clever as
  215.    the relocatable module system.
  216.  
  217. 7) Why can't the 6502 emulator run utility (i.e. non-language) ROMS ? It can't
  218.    be too difficult to emulate the BBC Micro paged ROM system...
  219.  
  220. 8) Why is floppy drive 0 on the RIGHT of the machine instead of the left ?
  221.    Yes, you CAN change this by fiddling around inside the case, but you
  222.    shouldn't have to.
  223.  
  224. 9) Why doesn't the BASIC V assembler understand floating-point opcodes ?
  225.  
  226. 10) Why is the shielding on an Archimedes so bad ? Any size of mains spike
  227.     causes an 'Unknown IRQ' error on the Archimedes, but not on any other of
  228.     my machines. A mains spike also occasionally sets the real-time clock to
  229.     the year 2151 !!! Anyone else had this problem ?
  230.  
  231. 11) When *RUNning files with no file type, R14 (or the stack for the matter)
  232.     is not setup ready for a MOV PC,R14 - why not ? Yes, I know about the
  233.     'Utility' type, but you have to a *SetType AND code must be relocatable.
  234.  
  235. 12) Why are the MS-DOS emulator and the Acorn Linker both (at least partly)
  236.     written in Modula-2 ? ArcWriter and Lisp are written in BCPL of all things
  237.     and ANSI C is written in...ANSI C !!
  238.  
  239. Where to find me to report bugs or improvements to the Line Editor
  240. ------------------------------------------------------------------  
  241.  
  242.                      JANET e-mail (from one yoghurt carton to the next
  243. Snail Mail           one in, oh, 25 retries over a 3-day period...)
  244. ----------           -------------------------------------------------
  245. Richard K. Lloyd,    Until October 1988 at the latest : sqrkl@uk.ac.liv.csvax
  246. 1, Banks Road,                            At any time : rkl@uk.ac.liv.cs.mva
  247. Lower Heswall,
  248. Wirral,
  249. Merseyside.