home *** CD-ROM | disk | FTP | other *** search
/ Dream 49 / Amiga_Dream_49.iso / atari / texte / oribin.zoo / readme.st < prev    next >
Text File  |  1991-07-26  |  37KB  |  754 lines

  1. {{{  Introduction
  2. -----------------
  3. This file contains additional information  about  the  ATARI  ST  version  of
  4. ORIGAMI.  It  contains  both  ST   specific   features/problems  as  well  as
  5. information  necessary  to  compile  ORIGAMI yourself.  Please refer  to  the
  6. ORIGAMI manuals for a general introduction to ORIGAMI and to the  ORIGAMI man
  7. page for a description of advanced command line options.
  8.  
  9. This file was created using ORIGAMI. The lines starting  with  3  braces  are
  10. fold-comments created by ORIGAMI - just ignore the braces. They make sense if
  11. the file is read into ORIGAMI (which I do for editing).
  12.  
  13. Origami is a folding editor similar to the TDS editor. (Some PC users call it
  14. an outline editor.) ORIGAMI enables you to fold parts of your texts in  order
  15. to increase readability. The additional folding information is written to the
  16. file, but it is hidden by embedding it in comments - the  comment  syntax can
  17. be defined to meet nearly  every  existing  language  (C,Pascal,shell script,
  18. Assembler, miranda, ...). Some of the highlights of ORIGAMI include:
  19.  - keyboard macros - record keyboard events and replay them when needed
  20.  - argument repeat - simply say 'repeat that command 17 times' ...
  21.  - a powerful macro language (OCL = Origami Command Language).  OCL  includes
  22.    if, while, ... structures, local variables, ..., and allows to write  very
  23.    powerful macros (take a look at the towers-of-hanoi and the fill-paragraph
  24.    macros).
  25.  - freely definable keyboard layout - use the command syntax YOU like
  26.  - some powerful shell & pipe commands - send your text to/from  an  external
  27.    command, pipe your text through an external filter, ...
  28.  - TDS compatibility - ORIGAMI is able to read,  write  &  edit  the  strange
  29.    binary file format used by the INMOS Transputer Development  System  -  so
  30.    you do not need a transputer to edit these files anymore
  31.  - filed folds: you can enter and exit these folds just like other  folds  in
  32.    your text, but in fact they are in different files  ...  these  files  are
  33.    loaded / saved automatically if you enter/exit such folds.
  34.  - autosave: the current text  is  saved  automatically  after  a  selectable
  35.    period of time
  36.  
  37.   If you fix bugs, please send  a  description  or  (even  better)  uuencoded
  38.   contexts diffs to:
  39.            mhaardt@ftp.thp.uni-koeln.de
  40.  
  41. You can get the beta-versions from the MINIX ftp archive in Cologne, Germany:
  42.  
  43.      Server: ftp.thp.uni-koeln.de [134.95.64.1]
  44.      Path: minix/beta-test  (this might change)
  45.      Files: origami.tar.Z
  46.  
  47. All files are 13-bit compressed tape archives.
  48.  
  49.  
  50. Future versions of ORIGAMI are likely to  appear  on  that  FTP  server,  too
  51. (sources). ST binaries will show up in the appropriate newsgroups,  including
  52. pre-compiled keybindings.
  53. }}}
  54.  
  55. {{{  Installing ORIGAMI
  56. -----------------------
  57. To install ORIGAMI, simply copy the file ORIGAMI.PRG to your hard disk or  to
  58. your working disk. Origami then needs a keybinding-file called ORIGAMI.RC and
  59. - optional -  the  files  ORIGAMI.BIN  (key  binding  description,  displayed
  60. through  the   'describe-bindings'  function)  and  ORIGAMI.HEL  (help  file,
  61. displayed  through the HELP function). If you are using  the  desktop,  these
  62. files can simply be copied to the same folder which contains ORIGAMI.
  63.  
  64. If you are using a shell like gulam,  mupfel  etc.,  you  should  set  up  an
  65. environment  variable  HOME  (the   mupfel  default  installation  does  this
  66. automatically). Then copy  the  above mentioned files to the folder which the
  67. environment variable HOME points to. example:
  68.  
  69.   SETENV HOME d:\gdist1_2\gemini
  70.   (this command should be placed in your shell startup file, eg the file
  71.   MUPFEL.MUP if you are using MUPFEL. Refer to your shell documentation for
  72.   details)
  73.   In this case, you should copy the files ORIGAMI.RC, ORIGAMI.BIN and
  74.   ORIGAMI.HEL to the folder d:\gdist1_2\gemini
  75.  
  76. Copy the file ORIGAMI.PRG to any place you wish to - but take care that  your
  77. shell can find ORIGAMI - see your shell manual for details about  PATHs  etc.
  78. Although ORIGAMI is a GEM-based program, it WILL take command  line arguments
  79. as described in the docs. As far as I know, there is  no  possibility to pass
  80. parameters to a GEM program when using the  Desktop  (who is really using the
  81. Desktop ?)
  82.  
  83. If you do not set the environment variable  HOME,  ORIGAMI  looks  for  these
  84. files in the current working directory.
  85.  
  86. If you  do  not  have  a  hard  disk,  simply  copy  the  files  ORIGAMI.PRG,
  87. ORIGAMI.RC, ORIGAMI.BIN and ORIGAMI.HEL to a folder (or, maybe better, to the
  88. root directory) of your working disk.
  89.  
  90. The files ORIGAMI.RC and ORIGAMI.BIN are created automatically by the KEYBIND
  91. compiler which offers a complete redefinition of the keyboard as  well  as  a
  92. powerful macro programming language. For a start, you  can  simply copy these
  93. files from your distribution disk (if they came with  the binaries) and learn
  94. about KEYBIND later.  Note  that  KEYBIND  overwrites  these files when it is
  95. executed,  so  be  sure to have a copy of them - ORIGAMI will refuse to start
  96. without  a proper keybinding. If you have only the sources, you will have  to
  97. create these files using keybind as follows:
  98.    keybind -sv st.key
  99. (when using a shell). If the 's' option is given, the 'sort.ttp' program must
  100. be available in the shell's path. The current working directory must  be  set
  101. to be the BINDINGS directory from the distribution, as KEYBIND will  look for
  102. include files.
  103. If you are using the Desktop, copy  the  file  KEYBIND.TTP  to  the  BINDINGS
  104. directory. Double-click on KEYBIND.TTP and enter '-v st.key' in the parameter
  105. box. Keybind will then create the  files ORIGAMI.RC and ORIGAMI.BIN which can
  106. then be used as described above.
  107. }}}
  108.  
  109. {{{  Starting ORIGAMI
  110. ---------------------
  111. To start ORIGAMI, double-click  on  ORIGAMI.PRG  from  the  desktop  or  type
  112. 'origami' from  your  shell.  Origami then prompts for a file to edit. Simply
  113. enter  the  name of a not-existing file, ORIGAMI will then come  up  with  an
  114. empty editing buffer.
  115.  
  116. You should now take the ORIGAMI manual (perhaps it would be a  good  idea  to
  117. print it out first) and try some functions. When using the default ORIGAMI.RC
  118. and ORIGAMI.BIN from the ST folder of  your  ORIGAMI  distribution, most keys
  119. will behave like they do in many other ST programs. By pressing the HELP key,
  120. a keybind-description is  displayed  which can be used to find out which keys
  121. activate which  functions. The functions not listed in the ORIGAMI manual (eg
  122. towers-of-hanoi) are OCL macros. Refer  to  the  ST  keybinding  source  file
  123. ST.KEY for details about using these macros. For a start, you might  try  the
  124. following:
  125. enter a blank line
  126. type 6-10 characters
  127. type ESC h a n o i
  128. watch ...
  129.  
  130. load a text file (eg this file)
  131. enter a paragraph with normal text
  132. type ESC f p
  133. watch ...
  134. repeat this, but change the fill-paragraph mode by pressing ESC f m
  135.  
  136. }}}
  137.  
  138. {{{  Arguments
  139. --------------
  140. As mentioned above, ORIGAMI will take command line arguments. As  it  is  not
  141. possible to pass such arguments from  the  standard  desktop,  I  implemented
  142. another possibility:
  143. When ORIGAMI is started without any arguments, the file ORIGAMI.OPT  is  read
  144. and the first line of this file is used as the arguments to  ORIGAMI, just as
  145. if they had been  typed  that  way.  If  the  file  ORIGAMI.OPT  contains the
  146. following:
  147.   -A ..\tos\readme.st
  148. then  ORIGAMI  will  load  the  file  "..\tos\readme.st"  and   execute   the
  149. auto-macro. Of course it is  not  necessary  to  give  a  filename.  The file
  150. ORIGAMI.OPT  is  first  searched in the current directory. If this fails, the
  151. file is  searched in the directory which is given by the environment variable
  152. HOME.  If this fails, too, then nothing is done. This means that you can have
  153. several ORIGAMI.OPT files for different purposes if you invoke  ORIGAMI  from
  154. within different current directories (on the desktop this  means that ORIGAMI
  155. is  not  in  the  current  (=active)  window,  so  you  have  to  start it by
  156. double-clicking ORIGAMI.PRG while pressing the right mouse button).
  157. }}}
  158.  
  159. {{{  The ST keyboard and GEM menu bar
  160. -------------------------------------
  161. When generating own keybindings using the KEYBIND  compiler,  you  will  need
  162. some additional knowledge about  the  ST  specific  keyboard routines used in
  163. ORIGAMI. Nearly every ST  key  can be defined differently in combination with
  164. the Shift,  CTRL  and  ALT  keys. Combinations of SHIFT, CTRL and ALT are not
  165. allowed,  the keys are checked in the order first ALT, then CTRL, then SHIFT.
  166. Pressing CTRL-ALT-'A' achieves the same result as ALT-'A' as ALT  is  checked
  167. first.
  168.  
  169. The ST keys generate two types of keyboard codes:
  170.  - normal ASCII and Control-Codes , e.g. the letters a..z  and  most  of  the
  171.    combinations of SHIFT / CTRL and a letter.
  172.  
  173.  - some keys generate 'meta'-codesequences. These consist of a meta-code  and
  174.    a keycode. There are  four  meta-codes  depending  on  the  state  of  the
  175.    Shift/CTRL/ALT  keys. These meta codes are called 'meta' (none of the keys
  176.    Shift/CTRL/ALT pressed), 'smeta' (Shift pressed) ,'cmeta'  (CTRL  pressed)
  177.    and 'ameta' (ALT pressed). They can be accessed  under  these names in the
  178.    keybinding (see the ST sample keybinding  file  ST.KEY for examples). This
  179.    method  is  a  bit  unusual,  but  it  enables  you to define nearly every
  180.    keyboard layout you might want. The GEM  menu  bar  creates  sequences  of
  181.    'mmeta'  and  a  character.  Although  the  menu bar itself is fixed, this
  182.    method  enables it to redefine the menu function if  desired.  Keybindings
  183.    which contain 'mmeta'-codes are not listed in the  describe-bindings list.
  184.    The GEM screen redraw message creates the  sequence 'mmeta','@' and should
  185.    be bound to some  function.  This  function  does not have to do something
  186.    useful, it is  just necessary to leave the inner line-editor loop in order
  187.    to  recognize  the redraw. In my keybinding, I  use  a  macro  which  does
  188.    nothing but moving the  cursor  one  position  to  the right and then back
  189.    left. The sequence  should not be bound to the redraw-display function, as
  190.    this will yield a double screen redraw.
  191.  
  192. On the ST, the 'GENERAL ABORT KEY' can not be freely defined as described  in
  193. the ORIGAMI manuals. GENERAL ABORT is activated by pressing both  SHIFT  keys
  194. together (you may have to press them for about 0.5 seconds).
  195.  
  196. The following aliases are pre-defined on the ST (this are all  aliases  which
  197. MAY be available on UN*X via the termcap  library  if  the  terminal supports
  198. them):
  199.  
  200. "backspace"
  201. "rubout"    (DEL key)
  202. "home"
  203. "left"
  204. "right"
  205. "up"
  206. "down"
  207. "next_page" (CTRL-down)
  208. "prev_page" (CTRL-up)
  209. "f1" - "f10"  (function keys)
  210.  
  211. A list of ST keys which generate CTRL-codes or meta-sequences  can  be  found
  212. near the end of this file. Listed are the name of the ST key  (on a german ST
  213. keyboard)  and  the  codesequence  which  is  generated  by  this   key.  The
  214. codesequences are given in keybind-syntax  -  look  at  the  file  ST.KEY for
  215. examples on using these special ST keys.
  216.  
  217. WARNING: Since ORIGAMI 1.5, there have been some changes in the  CTRL-TAB  in
  218. order to support the O_QUOTE function for CTRL-codes and in the MENU code tab
  219. in order to implement the new functions.
  220.  
  221. After O_QUOTE, the next meta sequence is returned without the meta character.
  222. This can be used to enter CTRL-characters into the text (except  C-J)  or  to
  223. check which character is returned after a META code (if the tables at the end
  224. of this file should be wrong ...).
  225.  
  226. After O_QUOTE, it is also  possible  to  enter  the  decimal  number  of  the
  227. character you  want  to  get by typing the number on the numeric keypad while
  228. pressing  the  ALT key. Pressing any other key ends this mode and enters  the
  229. choosen character into the text. code below 252 may be entered. For  example,
  230. by pressing O_QUOTE, ALT-1, ALT-8, ALT-9, ALT-ENTER, you  get  the  copyright
  231. sign (╜).
  232.  
  233. If something in the translation tables is wrong, changes can be made  in  the
  234. file ST_KEYB.C. If you have problems because of a non-german keyboard layout,
  235. please try to remap the keys by changing the keybinding before making changes
  236. to the ORIGAMI C-code - I want to avoid several versions of  ORIGAMI.  I know
  237. that some of the meta-sequences are not very logical -  but  please keep them
  238. as they are in order to avoid confuzion  with  different ORIGAMI versions. It
  239. should not bother too much as you  get  to see these sequences only once when
  240. defining aliases for your the special keys used in your keybinding.
  241. }}}
  242.  
  243. {{{  ST-specific extensions
  244. {{{  GEM Fileselector
  245. ---------------------
  246. You can invoke the GEM fileselector by pressing RETURN when ORIGAMI asks  for
  247. a filename. This enables macros to enter a fixed filename which would  not be
  248. possible if the fileselector would appear automatically.
  249. }}}
  250.  
  251. {{{  backup files
  252. -----------------
  253. When saving a file, the ST version of  ORIGAMI  will  preserve  the  previous
  254. contents of that file in a file with the extension '.BAK'. This behaviour can
  255. be  disabled  by  using  the  additional  '-B'  option  (via  commandline  or
  256. ORIGAMI.OPT).
  257. }}}
  258.  
  259. {{{  shell commands / sub shells
  260. When calling a shell on the ST via the standard system() call, the  shell  in
  261. memory which has started ORIGAMI is invoked. As a  result  of  this,  ORIGAMI
  262. cannot simply set the environment variables  ORIWORD, ORILINE and ORIFILE. As
  263. a replacement, the shell is called with something like 'setenv "var=value"' -
  264. this will set the shell's environment.  The  only problem is that the command
  265. may not contain  some  special  characters - eg '"' - and that the syntax for
  266. the  setenv  command depends on the used shell.  In order to make  this  work
  267. with  every  shell  without  recompilation,  this  part  of  ORIGAMI  can  be
  268. configures by setting two  environment  variables  before  starting  ORIGAMI:
  269. SHELL_SETENV and  SHELL_SETCONV. If these are not set, a default will be used
  270. which works with MUPFEL.
  271.  
  272. SHELL_SETENV contains the string which is passed to sprintf(). It may contain
  273. 2 ocurrences of %s - the first is the environment variable  to  set  and  the
  274. second is the new value. "%s=%s"  will  produce  something  like "var=value",
  275. which is the right command for SH/KSH and similar shells.  "setenv %s=\"%s\""
  276. will  produce  something  like  "setenv var=\"val\"" etc.  which  works  with
  277. MUPFEL.
  278.  
  279. SHELL_SETCONV controlls character substitution in 'val'. It may contain pairs
  280. of characters - every ocurrence of the first character in a set  is  replaced
  281. by the second one. If SHELL_SETCONV is "a_", then every 'a'  in  the value to
  282. be set is replaced by a '_'. This can be used to avoid characters which would
  283. otherwise confuse the shell, eg. '"', by replacing them with spaces.
  284.  
  285. If anyone has got an idea how this putenv/system stuff can  be  rewritten  to
  286. avoid this problems, please tell me !
  287. }}}
  288. }}}
  289.  
  290. {{{  The ST Screen implementation
  291. ---------------------------------
  292. All output of ORIGAMI is printed via the VDI.  This  should  work  on  nearly
  293. every type of monitor. The VDI output is  not  as fast as TEMPUS etc., but it
  294. should be compatible to  the  TT  and  some  special ST graphic cards. It was
  295. tested on a normal 1040ST and it also works well with Autoswitch-Overscan.
  296.  
  297. For speed reasons, the mouse and text cursor are only displayed when in  edit
  298. mode, not during the execution of a command. This is not ideal, but it  was a
  299. major speedup against the previous version which turned the mouse off  before
  300. every text output and on afterwards. If someone has a better method,  tell me
  301. (no Line-A or similar things please!)
  302.  
  303. The screen routines always do a full-screen redraw, no matter  what  the  GEM
  304. screen manager requests. ORIGAMI will suspend output while the ORIGAMI window
  305. is not the top window on  the  screen,  in  order  not  to  overwrite the top
  306. window. At the  moment  when the ORIGAMI window becomes the top window again,
  307. ORIGAMI will  do a full-window redraw. Redraw is also held back while ORIGAMI
  308. is in  the  read-prompt routine (eg. when 'set-language' was selected or when
  309. ORIGAMI prompts for a filename). If ORIGAMI receives  a  redraw-message,  the
  310. part of the screen which should  be  redrawn  is  marked with a line pattern.
  311. This avoids ugly effects when moving the window of an accessory.
  312.  
  313. (The ORIGAMI window is not vivible as a window. It is the white area covering
  314. the whole screen except the menu bar. Maybe it will become  a  real,  movable
  315. window in a future version).
  316. }}}
  317.  
  318. {{{  The ST version of KEYBIND
  319. ------------------------------
  320. The ST version behaves much  like  the  SUN/UN*X  version  described  in  the
  321. ORIGAMI docs. However,  as  the ST OS (can we really call this thing an OS ?)
  322. does  not  support  pipes, a  separate  program  called  SORT.TTP  is  called
  323. automatically  if  you  start  keybind with the '-s' option (which is  highly
  324. recommended). SORT is executed via a system()-call - this means it only works
  325. if a shell like MUPFEL or GULAM is available.
  326.  
  327. If the environment variable HOME is not set, KEYBIND.TTP  creates  the  files
  328. ORIGAMI.BIN and ORIGAMI.RC in the current working directory.
  329.  
  330. Keybindings containing 'mmeta'-codes are not listed in the  ORIGAMI.BIN-file,
  331. as they only contain internal codes which would not be of any use.
  332. }}}
  333.  
  334. {{{  Temporary files
  335. --------------------
  336. Temporary files are needed mainly to implement the  pipe  functions.  ORIGAMI
  337. first looks if an environment variable TMP  exists. If it does, the temporary
  338. files are put there. If this fails, the environment variable TEMP is used. If
  339. this fails, too, the files are created in the current working directory.
  340.  
  341. The files are named  XXXXXXXX.tmp,  where  XXXXXXXX  is  an  8-digit  decimal
  342. number,  starting  with  0.  Existing  files  with  that  name  will  not  be
  343. overwritten, instead the next free number is used.
  344. }}}
  345.  
  346. {{{  Known bugs
  347. ---------------
  348. When you start TurboC from GEMINI, then  use  the  'TOS  SHELL'  function  to
  349. create a MUPFEL sub shell and  then  start ORIGAMI from that shell, the mouse
  350. will  not  appear.  This  seems  to be a bug in TurboC or in Mupfel, as other
  351. programs have the same problems when started that way.
  352.  
  353. I was not able to test ORIGAMI on a color monitor (I do not have one) - so  I
  354. cannot tell if it works. Any comments are welcome.
  355.  
  356. I am quite sure that ORIGAMI will crash if it runs out of memory. Keep enough
  357. memory free and save your file frequently (or use auto-save).
  358. }}}
  359.  
  360. {{{  Compiling Origami/Keybind
  361. ------------------------------
  362. If you want to compile ORIGAMI yourself, you will need TURBO-C 2.0. In  order
  363. to compile ORIGAMI you have to do the following:
  364.  - unpack the source archive
  365.  - convert LF at end of line to CR/LF (using UNX2ST or  some  other  utility,
  366.    some text editors will work too - simply load and save the  files).  Maybe
  367.    you do not have to convert anything because it was  done  when downloading
  368.    the files in ASCII mode ...
  369.  - create a LOCAL subdirectory inside your TC 'include'  directory  and  copy
  370.    the files from ORIGAMI\SRC\LOCAL there.
  371.  - copy the file SRC\TOS\ORIGAMI.PRJ to  SRC\ORIGAMI\
  372.  - start the program UNIXNAME.PRG. This does a translation of  unix-line  '/'
  373.    to a tos-line '\' in filenames. If you haven't got UNIXNAME, you will have
  374.    to change all #include statements manually. UNIXNAME is a resident utility
  375.    that only needs to be executed once after booting your computer (maybe  in
  376.    the AUTO folder). UNIXNAME should come with the ST specific parts  of  the
  377.    ORIGAMI sources.
  378.  - start TC, select the project  file  SRC\ORIGAMI\ORIGAMI.PRJ.  Disable  ALL
  379.    compiler and linker options (except debug info if required) - they are set
  380.    in the project file.
  381.  - select 'MAKE'. If TC complains about non-existent include files - that  is
  382.    OK. Simply create an empty file with the required  name.  I  remember  the
  383.    files UNISTD.H, TERMCAP.H, SGTTY.H,  PWD.H  and  SYS\TYPES.H  (create  SYS
  384.    subdirectory in INCLUDE directory). Maybe there are  more  files  which  I
  385.    forgot. TC should now  compile  ORIGAMI  -  this  takes  some  time.  Some
  386.    warnings are OK, but there should be no errors.
  387.  - The GEM ressource data is  compiled  directly  into  the  program  (module
  388.    ORI_RSC.C) in order to avoid loading extra RSC-files (bad when ORIGAMI  is
  389.    called from a shell). This C-file is created by a special utility which  I
  390.    will post soon (called RSH2RSI or RSCCONV).
  391.  
  392. WARNING: in the file SRC\ORIGAMI\OS.H,  there  is  a  recursive  #define  for
  393. strlen(). If you want to use  a  different compiler than TC, this might cause
  394. problems.
  395.  
  396. Now, you have to compile KEYBIND:
  397.  - again, make sure UNIXNAME is activated
  398.  - convert CR/LF as mentioned above
  399.  - copy the file SRC\TOS\KEYBIND.PRJ to SRC\KEYBIND\
  400.  - select project file SRC\KEYBIND\KEYBIND.PRJ
  401.  - disable all compiler and linker options
  402.  - select MAKE. There may be warnings, but no errors.
  403.  
  404. Now you are ready to compile the sample ST.KEY keybinding (or simply use  the
  405. provided, pre-compiled ORIGAMI.RC and  ORIGAMI.BIN  if  they  came  with  the
  406. program) and make changes to the code.
  407.  
  408. AS MICHAEL HAARDT WHO MAINTAINS THE UN*X VERSION OF  ORIGAMI  DOES  NOT  LIKE
  409. NON-POSIX STUFF IN THE SOURCES (EVEN IF  I  USE  #IFDEF), YOU SHOULD RESTRICT
  410. CHANGES TO THE ST-SPECIFIC FILES  IN  THE TOS FOLDER IF IT IS POSSIBLE - THIS
  411. INCREASES THE CHANCE THAT THESE  CHANGES CAN BE SUPPORTED IN THE NEXT VERSION
  412. OF ORIGAMI. I do  not  want  to  apply the ST-specific changes in the ORIGAMI
  413. main code every  time a new ORIGAMI/UNIX version comes out (most improvements
  414. are first made in the UN*X version and then ported to other systems).
  415. }}}
  416.  
  417. {{{  Bugfixes
  418. -------------
  419. If you have discovered new bugs  in  ORIGAMI,  please  send  me  a  note,  if
  420. possible  with  a  clear  description of a method by which the problem can be
  421. reproduced. If you have a fix for that bug - even better, use  'diff  -c'  to
  422. create a file that contains the differences between the original ORIGAMI code
  423. and your code, then send me this file. DO NOT SEND THE  COMPLETE SOURCE, ONLY
  424. DIFFS!
  425. }}}
  426.  
  427. {{{  Folder
  428. -----------
  429. In the ORIGAMI distribution, there is a little utility  called  FOLDER.  This
  430. utility takes a directory path or a list of files and creates a list of filed
  431. folds for all given files. This list is written to standard output and should
  432. be re-directed to a file. If a directory is passed as  an argument to folder,
  433. all sub-directories are folded recursively.  For  example, if E:\TC\SOURCE is
  434. your C-source directory, you might type
  435.  
  436.    folder e:\tc\source >c-source
  437.  
  438. at your shell prompt. FOLDER will then create a file  called  c-source  which
  439. contains filed folds for the whole source directory and everything within it.
  440. If you start ORIGAMI and load this file, you  can  edit all your source files
  441. by simply 'entering' the appropriate file  folds in the list. FOLDER also has
  442. some extra  command  line  options,  which  are listed in the FOLDER man page
  443. file.
  444. }}}
  445.  
  446. If I forgot to document some special  ST  feature  (which  is  not  unlikely,
  447. because I wrote this text after  finishing the first ORIGAMI release and some
  448. things do rapidly  change)  -  please tell me so that I can incorporate these
  449. thing into this file.
  450.  
  451. (email: send any comments to Michael Haardt, he will forward them to me.
  452.         Send mail to mhaardt@ftp.thp.uni-koeln.de. )
  453. Michael Schwingen
  454. Ahornstr. 36
  455. W-5100 Aachen
  456. Germany
  457.  
  458. {{{  ST Keyboard / menu code table
  459. ----------------------------------
  460. {{{  normal:
  461. ------------
  462. ESC ( = M-xxx in keybind)               $esc
  463. Backspace                               C-H
  464. Delete                                  $meta C-G
  465. Return                                  C-M
  466. TAB                                     C-I
  467. HELP                                    $meta C-V
  468. UNDO                                    $meta C-U
  469. INSERT                                  $meta C-F
  470. Up                                      $meta C-B
  471. Clr/Home                                $meta C-A
  472. arrow left                              $meta C-C
  473. arrow down                              $meta C-E
  474. arrow right                             $meta C-D
  475. num. keypad (                           $meta  "(
  476. num. keypad )                           $meta  ")
  477. num. keypad /                           $meta  "/
  478. num. keypad *                           $meta  "*
  479. num. keypad 0                           $meta  "0
  480. num. keypad 1                           $meta  "1
  481. (...)
  482. num. keypad 9                           $meta  "9
  483. num. keypad -                           $meta  "-
  484. num. keypad +                           $meta  "+
  485. num. keypad ENTER                       $meta C-M
  486. num. keypad .                           $meta  ".
  487. F1                                      $meta C-J
  488. F2                                      $meta C-K
  489. F3                                      $meta C-L
  490. F4                                      $meta C-N
  491. F5                                      $meta C-O
  492. F6                                      $meta C-P
  493. F7                                      $meta C-Q
  494. F8                                      $meta C-R
  495. F9                                      $meta C-S
  496. F10                                     $meta C-T
  497. }}}
  498.  
  499. {{{  with SHIFT pressed:
  500. ------------------------
  501. ESC                                     $smeta $esc
  502. Backspace                               $smeta C-H
  503. TAB                                     $smeta C-I
  504. Delete                                  $smeta C-G
  505. Return                                  C-M
  506. (same as RETURN without Shift)
  507. HELP                                    $smeta C-V
  508. UNDO                                    $smeta C-U
  509. INSERT                                  $smeta C-F
  510. arrow up                                $smeta C-B
  511. Clr/Home                                $smeta C-A
  512. arrow left                              $smeta C-C
  513. arrow down                              $smeta C-E
  514. arrow right                             $smeta C-D
  515. num. keypad (                           $smeta "(
  516. num. keypad )                           $smeta ")
  517. num. keypad /                           $smeta "/
  518. num. keypad *                           $smeta "*
  519. num. keypad 0                           $smeta "0
  520. (...)
  521. num. keypad 9                           $smeta "9
  522. num. keypad -                           $smeta "-
  523. num. keypad +                           $smeta "+
  524. num. keypad ENTER                       $smeta C-M
  525. num. keypad .                           $smeta ".
  526. F1                                      $smeta C-J
  527. F2                                      $smeta C-K
  528. F3                                      $smeta C-L
  529. F4                                      $smeta C-N
  530. F5                                      $smeta C-O
  531. F6                                      $smeta C-P
  532. F7                                      $smeta C-Q
  533. F8                                      $smeta C-R
  534. F9                                      $smeta C-S
  535. F10                                     $smeta C-T
  536. }}}
  537.  
  538. {{{  with CTRL pressed:
  539. -----------------------
  540. ESC                                     $cmeta $esc
  541. 1                                       $cmeta "1
  542. 2                                       $cmeta "2
  543. (...)
  544. 9                                       $cmeta "9
  545. 0                                       $cmeta "0
  546. ₧                                       $cmeta "?
  547. '                                       $cmeta "`
  548. #                                       $cmeta "#
  549. Backspace                               $cmeta "U
  550. TAB                                     $cmeta "T
  551. Q                                       C-Q
  552. W                                       C-W
  553. E                                       C-E
  554. R                                       C-R
  555. T                                       C-T
  556. Z                                       C-Z
  557. U                                       C-U
  558. I                                       $cmeta C-I
  559. O                                       C-O
  560. P                                       C-P
  561. Ü                                       $cmeta "@
  562. +                                       $cmeta "+
  563. RETURN                                  $cmeta "M
  564. DELETE                                  $cmeta "q
  565. A                                       C-A
  566. S                                       C-S
  567. D                                       C-D
  568. F                                       C-F
  569. G                                       C-G
  570. H                                       $cmeta C-H
  571. J                                       $cmeta C-J
  572. K                                       C-K
  573. L                                       C-L
  574. Ö                                       $cmeta "[
  575. Ä                                       $cmeta "]
  576. ~                                       $cmeta "~
  577. <                                       $cmeta "<
  578. Y                                       C-Y
  579. X                                       C-X
  580. C                                       C-C
  581. V                                       C-V
  582. B                                       C-B
  583. N                                       C-N
  584. M                                       $cmeta C-M
  585. ,                                       $cmeta ",
  586. .                                       $cmeta ".
  587. -                                       $cmeta "-
  588. HELP                                    $cmeta "s
  589. UNDO                                    $cmeta "r
  590. INSERT                                  $cmeta "p
  591. arrow up                                $cmeta "l
  592. Clr/Home                                $cmeta "k
  593. arrow left                              $cmeta "m
  594. arrow down                              $cmeta "o
  595. arrow right                             $cmeta "n
  596. num. keypad (                           $cmeta "(
  597. num. keypad )                           $cmeta ")
  598. num. keypad /                           $cmeta "/
  599. num. keypad *                           $cmeta "*
  600. num. keypad 0                           $cmeta "A
  601. num. keypad 1                           $cmeta "B
  602. num. keypad 2                           $cmeta "C
  603. num. keypad 3                           $cmeta "D
  604. num. keypad 4                           $cmeta "E
  605. num. keypad 5                           $cmeta "F
  606. num. keypad 6                           $cmeta "G
  607. num. keypad 7                           $cmeta "H
  608. num. keypad 8                           $cmeta "I
  609. num. keypad 9                           $cmeta "J
  610. num. keypad -                           $cmeta "_
  611. num. keypad +                           $cmeta "=
  612. num. keypad ENTER                       $cmeta ";
  613. num. keypad .                           $cmeta ":
  614. F1                                      $cmeta "a
  615. F2                                      $cmeta "b
  616. F3                                      $cmeta "c
  617. F4                                      $cmeta "d
  618. F5                                      $cmeta "e
  619. F6                                      $cmeta "f
  620. F7                                      $cmeta "g
  621. F8                                      $cmeta "h
  622. F9                                      $cmeta "i
  623. F10                                     $cmeta "j
  624. }}}
  625.  
  626. {{{  with ALT pressed:
  627. ----------------------
  628. ESC                                     $ameta $esc
  629. 1                                       $ameta "1
  630. 2                                       $ameta "2
  631. (...)
  632. 9                                       $ameta "9
  633. 0                                       $ameta "0
  634. ₧                                       $ameta "?
  635. '                                       $ameta "`
  636. #                                       $ameta "#
  637. Backspace                               $ameta C-H
  638. TAB                                     $ameta C-I
  639. A                                       $ameta "A
  640. B                                       $ameta "B
  641. C                                       $ameta "C
  642. (...)
  643. Z                                       $ameta "Z
  644. +                                       $ameta "+
  645. RETURN                                  $ameta C-M
  646. DELETE                                  $ameta "q
  647. ~                                       $ameta "~
  648. <                                       $ameta "<
  649. ,                                       $ameta ",
  650. .                                       $ameta ".
  651. -                                       $ameta "-
  652. HELP/Undo/cursor/Insert/ClrHome cannot be used together with ALT
  653. num. keypad (                           $ameta "(
  654. num. keypad )                           $ameta ")
  655. num. keypad /                           $ameta "/
  656. num. keypad *                           $ameta "*
  657. num. keypad -                           $ameta "_
  658. num. keypad +                           $ameta "=
  659. num. keypad ENTER                       $ameta ";
  660. num. keypad 0                           $ameta C-A
  661. num. keypad 1                           $ameta C-B
  662. num. keypad 2                           $ameta C-C
  663. num. keypad 3                           $ameta C-D
  664. num. keypad 4                           $ameta C-E
  665. num. keypad 5                           $ameta C-F
  666. num. keypad 6                           $ameta C-G
  667. num. keypad 7                           $ameta C-J
  668. num. keypad 8                           $ameta C-K
  669. num. keypad 9                           $ameta C-L
  670. F1                                      $ameta "a
  671. F2                                      $ameta "b
  672. F3                                      $ameta "c
  673. F4                                      $ameta "d
  674. F5                                      $ameta "e
  675. F6                                      $ameta "f
  676. F7                                      $ameta "g
  677. F8                                      $ameta "h
  678. F9                                      $ameta "i
  679. F10                                     $ameta "j
  680. }}}
  681.  
  682. {{{  GEM menu codes:
  683. --------------------
  684. FILE:
  685.   quit                         $mmeta,'b'
  686.   fast exit                    $mmeta,'c'
  687.   read file                    $mmeta,'d'
  688.   write file                   $mmeta,'e'
  689.   save current file            $mmeta,'f'
  690.   insert file                  $mmeta,'g'
  691.   next file                    $mmeta,'h'
  692.   previous file                $mmeta,'i'
  693.  
  694. SPECIAL:
  695.   help                         $mmeta,'j'
  696.   describe bindings            $mmeta,'k'
  697.   set language                 $mmeta,'l'
  698.   TOS shell                    $mmeta,'m'
  699.   shell command                $mmeta,'n'
  700.   PIPE from                    $mmeta,'o'
  701.   PIPE to                      $mmeta,'p'
  702.   Filter-Buffer                $mmeta,'q'
  703.   PIPE KBD from                $mmeta,'r'
  704.  
  705. MODES:
  706.   Insert-Mode                  $mmeta,'s'
  707.   Overwrite-Mode               $mmeta,'t'
  708.   View-Only-Mode               $mmeta,'u'
  709.   Read-Write-Mode              $mmeta,'v'
  710.   Autosave                     $mmeta,'w'
  711.   no Autosave                  $mmeta,'x'
  712.  
  713. MACROS:
  714.   define macro                 $mmeta,'y'
  715.   execute macro                $mmeta,'z'
  716.   define fix macro             $mmeta,'A'
  717.   execute fix macro 1          $mmeta,'B'
  718.   execute fix macro 2          $mmeta,'C'
  719.   execute fix macro 3          $mmeta,'D'
  720.   execute fix macro 4          $mmeta,'E'
  721.   execute fix macro 5          $mmeta,'F'
  722.  
  723. GOTO:
  724.   goto line                    $mmeta,'G'
  725.   goto top of fold             $mmeta,'H'
  726.   goto bottom of fold          $mmeta,'I'
  727.   search                       $mmeta,'J'
  728.   search reverse               $mmeta,'K'
  729.   replace string               $mmeta,'L'
  730.   query-replace string         $mmeta,'M'
  731.  
  732. FOLDING:
  733.   open fold                    $mmeta,'N'
  734.   close fold                   $mmeta,'O'
  735.   enter fold                   $mmeta,'P'
  736.   exit fold                    $mmeta,'Q'
  737.   unfold fold                  $mmeta,'R'
  738.   create fold                  $mmeta,'S'
  739.   auto-create fold             $mmeta,'T'
  740.   auto-header                  $mmeta,'U'
  741.   toggle create file-fold      $mmeta,'V'
  742.   toggle attach file to fold   $mmeta,'W'
  743.   describe fold                $mmeta,'X'
  744.   double line                  $mmeta,'Y'
  745.   move line                    $mmeta,'0'
  746.   pick line                    $mmeta,'1'
  747.   copy-pick line               $mmeta,'2'
  748.   paste pick buffer            $mmeta,'3'
  749.  
  750.   GEM-Redraw-message: (not a menu function, created by screen manager)
  751.                       $mmeta,'@'
  752. }}}
  753. }}}
  754.