home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 1 / APDL_PD1A.iso / comms / m_z / vhost / VHDoc < prev   
Encoding:
Text File  |  1993-02-07  |  36.9 KB  |  879 lines

  1. Viewdata Host (VHost)
  2.  
  3.  Host  version: 1.01
  4.  Draft version: 0.03
  5.  
  6.         VHost is a comprehensive Viewdata Host system for the Archimedes
  7. and similar machines. It really needs a hard disc to work properly, but can
  8. be satifactory run on a floppy machine, if ADFSBuffers is set to quite a
  9. high value, and only a small system is required !
  10.  
  11.         Aswell as providing Viewdata, it also caters for Wizzo, a new
  12. system which uses a 8-bit version of Viewdata, to allow proper 8-bit file
  13. transfers, a rudimentry form of compression and some special screen
  14. functions. Wizzo is automatically negotiated at logon with the remote
  15. terminal (if it supports Wizzo).
  16.  
  17.  
  18.  Setup
  19.  
  20.         The directory VHbase contains default System files, which are:
  21.  
  22.         Config                          - System configuration
  23.         KWordFILE                       - Keywords
  24.         MessFILE, MessFIND, MessBOARDS  - Messaging
  25.         PagesFILE, PagesNUMB            - Pages
  26.         UserFILE                        - Users
  27.  
  28.         These files are also in !VHost.System to begin with. If you want to
  29. reset the system, or parts of it, copy the appropiate files into
  30. !VHost.System.
  31.  
  32.         The default user file has an entry for the default user and for the
  33. user "The Sysop" (password "123456"). To begin with you can log on as this
  34. user to set the system up, but you should change the password as soon as
  35. possible.
  36.         The default pages file has a default size of 50 frames.
  37.         The default keywords file has entries for the default system
  38. commands (more on that later).
  39.  
  40.  
  41.  Running
  42.  
  43.         Once you have run !VHost, a icon (if running in wimp mode) will
  44. appear on the icon bar, clicking Select on this icon will open the local
  45. terminal.
  46.         Closing this window will NOT log the user off which is logged onto
  47. the local terminal.
  48.         Clicking Menu on the icon will give you the options of closing the
  49. system down (quit) and displaying a window (Who) of the currently logged on
  50. users.
  51.  
  52.  
  53.  Logging on
  54.  
  55.         As there is no logon frame you will be presented with a frame
  56. telling you the system is closed and Sysop access only is available. So
  57. type in "The Sysop" (followed by return) and then the password "123456".
  58. You will then be told "Not Found", don't worry about this, as the system
  59. contains NO frames whatsoever.
  60.  
  61.  
  62.  Getting started
  63.  
  64.         To begin with enter "*eduser the sysop<ret><ret><ret>" and enter a
  65. new password, they press "<esc>J". Remember this password.
  66.  
  67.         The next thing to do is enter the main system details. Type
  68. "*edsys<ret>" and enter the name of your system (you can include Viewdata
  69. colour codes by pressing <esc> and the colour code letter (see later for
  70. full list)), then press "<esc>J" to save.
  71.  
  72.         Then key "*edsys 1<ret><ret><ret>" and enter the page number which
  73. you want for your logon frame and key "<esc>J". It is best to have laid out
  74. your system on a piece of paper first, so you can decide where you want to
  75. keep system frames like this and how you want your various "sections" laid
  76. out.
  77.  
  78.  
  79.  Closed user groups
  80.  
  81.         In VHost the frames which make up a system are all part of a Closed
  82. User Group, or CUG. A users CUG membership enables him to "access" only
  83. frames in the CUG he has membership of. The system decides what CUG a frame
  84. (or rather page) is in by a node system. If you set a CUG to have a node of
  85. 600, then all frames which are on node 600 are considered part of that CUG,
  86. unless of course a CUG has a "larger" node, eg. 60096, in which case they
  87. fall into the longer noded CUG. A frame falls in the CUG which has the
  88. biggest common node.
  89.  
  90.         When checking nodes a leading 0 is applied to all page numbers,
  91. meaning that a CUG with a node of 0 owns all pages which do not belong to
  92. any other CUG.
  93.  
  94.         The system should not be set up so that a page is not a member of a
  95. single CUG, though all that will mean is that no-one will be able to
  96. access/edit it until a CUG "covers" the particular page.
  97.  
  98.         Each CUG has a name (the name which is printed in the top left of a
  99. frame), a node, a main menu (used when a user types *0#), a post-logon page
  100. (if not 0 this will be displayed after logon) and a CUG link option.
  101.  
  102.         Each CUG can be linked to another CUG. If linked any read access
  103. (but not edit) flags which the linked CUG (or indeed any CUG that the
  104. linked CUG may be linked to !) is automatically inherited for the CUG in
  105. question. This means that only a few users CUG access flags may be changed,
  106. but the access for any related CUGs is automatic. eg. All standard CUGs can
  107. be linked to CUG 2 (the general one), but all "extra" CUGs can be linked
  108. to, say, CUG 3, and any user which you want to give extra access to just
  109. needs to be made a member of CUG 3 to "open up" the rest of the CUGs linked
  110. to 3.
  111.  
  112.         To edit a CUGs details use "*edcug <cug name/number>". While in the
  113. editor <ctrlA> will go forward one CUG and <ctrlB> will go back one CUG.
  114.  
  115.         CUGs 1 and 2 are special, CUG 1 is the new user CUG, you should set
  116. up a registration frame in CUG 1, normal users should not be a member of
  117. this CUG. CUG 2 is the general CUG, when you give a frame No User CUG, then
  118. it automatically checks CUG 2 access for the user.
  119.  
  120.         Another CUG should be reserved for system frames, these include the
  121. logon frame(s) and any frames which are for Sysops only.
  122.  
  123.         You edit a CUG's details by "*edcug (cug number or name)<ret>", you
  124. should work out what CUGs you want and on what frames and set them up now,
  125. before you edit any frames.
  126.  
  127. eg.
  128. cug             name            node            logon           menu
  129.  
  130. 1               Guest User      999             9999            999
  131. 2               The Board       0               9999            1
  132. 3               Sysop           9999            9999            9999
  133. etc.
  134.  
  135.         With this, you would put your logon frame on 9999a, your logoff
  136. frame on 90a, your main menu on 1a and your guest user registration "bit"
  137. on 999.
  138.  
  139.  
  140.  First frames
  141.  
  142.         Key "*ed (your logon frame)<ret>" and design your logon frame (see
  143. later for using the Editor) and place a tab sequence (<esc>[T) at the place
  144. where the user enters his name and another tab where the password is
  145. entered. Use <esc>J to save. The logon frame should be placed in your
  146. "Sysop" CUG.
  147.  
  148.         Now enter "*ed 90<ret>", design a logoff frame and save it. Then
  149. type "*red 90<ret>" and change the Frame Type to "b".
  150.  
  151.         This then gives you the two basic frames for a system, the logon
  152. and logoff frames.
  153.  
  154.  
  155.  From here
  156.  
  157.         You can then go on and start building up your whole system.
  158.  
  159.  
  160.  Editor
  161.  
  162.         The editor is used by a number of parts of the system, mainly the
  163. frame editor and the message editor. It is a very comprehensive editor and
  164. has a number of features.
  165.  
  166.         Once the editor is entered you will be displayed with the frame to
  167. edit, the cursor keys move the cursor around the screen and you can type
  168. into the frame. Viewdata attributes can be entered by pressing <esc> (or @
  169. if configured) and the Escape character, all upper case escape characters
  170. and some puncuation characters enter Viewdata screen attribute characters
  171. into the frame, others perform editor functions.
  172.  
  173.         If word/character wrap is enabled and you type over the line, the
  174. word and colour (including background colour) will be wrapped onto the next
  175. line.
  176.  
  177.         To exit the editor either use "<esc>J" to go to the save option,
  178. "<esc>K" to go to the Quit option, "<esc>8save<ret>" to save or
  179. "<esc>8quit<ret>" to quit.
  180.  
  181.         Trying to go off the bottom of the screen will also go to the save
  182. options and if the edit flags are not altered, keying <ret> at the begining
  183. of a blank line will do the same.
  184.  
  185.         "<esc>8" allows you to enter a editor command, these include: save,
  186. quit, convert, lower, upper, pixed, fill <char>, change <char><char>, swap
  187. <char><char> and special commands specific to where you are (ie. message or
  188. frame editor).
  189.  
  190.         The command convert is quite useful in that it will change
  191. characters #_£ to one of the others. This can be useful in that the
  192. Viewdata character set is slightly different from the ASCII character set,
  193. and this means that these three characters are different, if you upload a
  194. frame and the graphics appear with #s and some of the graphics characters
  195. are wrong, this could be the reason, using convert could solve the problem,
  196. if it doesn't try it again. After that the convert command will just put
  197. you will be back to where you were to begin with, as it cycles after 2
  198. times.
  199.  
  200.         The commands upper and lower convert the marked area (see below)
  201. into upper or lower case.
  202.  
  203.         You can also have markers in the editor, these define a block of
  204. the screen to act on, they can be set by:
  205.  
  206.         <ctrlA>         set marker 1
  207.         <ctrlB>         set marker 1 or 2
  208.         <esc>6          set marker 1
  209.         <esc>7          set marker 2
  210.  
  211.         Both markers can be unset by <ctrlZ>.
  212.  
  213.         Markers are shown on screen by "persistant" *s (ie. they can't be
  214. deleted or typed over), they can be hard to spot if they are on a line with
  215. a graphics attribute as they turn into a graphics character, if you "lose"
  216. them, press <ctrlZ> to unset them and replace them where you want them.
  217.  
  218.         Once markers have been set (else the full screen is used), then you
  219. can use:
  220.  
  221.         <ctrlD>         delete the marked area
  222.         <ctrlC>         copy the marked area to the current cursor position
  223.         <ctrlV>         move the marked area to the current cursor position.
  224.  
  225.         The editor commands upper, lower, convert, fill, change, swap also
  226. take into account the marked area.
  227.  
  228.         Other useful ctrl commands are:
  229.  
  230.         <ctrlR>         redisplay
  231.         <ctrlX>         clear line
  232.         <ctrlL>         clear frame
  233.         <ctrlP>         enter pixel editor
  234.         <ctrlS>         swap case of character at cursor
  235.         <ctrl6>         home cursor
  236.  
  237.         Other Escape codes which perform editor functions are:
  238.  
  239.         <esc>1          insert space
  240.         <esc>2          delete character
  241.         <esc>3          insert line
  242.         <esc>4          delete line
  243.         <esc>5          delete to end of line
  244.         <esc>0          display help page
  245.         <esc>@          '@'
  246.         <esc>d          delete character
  247.         <esc>e          goto end of frame
  248.         <esc>h          '#'
  249.         <esc>i          insert space
  250.         <esc>o          word/colour wrap off
  251.         <esc>p          '£'
  252.         <esc>r          CRLF
  253.         <esc>s          '*'
  254.         <esc>u          '_'
  255.         <esc>v          'freshen' frame, similar to redisplay
  256.         <esc>w          word/colour wrap on
  257.  
  258.         The pixel editor is fairly simple, once the pixel editor is entered
  259. the prompt at the bottom of the screen will change and the keys "qwaszx"
  260. will change the pixels of the current cursor character, <space> or C will
  261. clear the character, F will fill all pixels and I will inverse all pixels.
  262. The cursor keys and Escape/Ctrl functions are still valid, <ctrlP> or
  263. <esc>8pixed<ret> will toggle back to normal mode.
  264.  
  265.         For completeness here is a list of Viewdata attribute Escape codes:
  266.  
  267.         <esc>A          Alpha Red
  268.         <esc>B          Alpha Green
  269.         <esc>C          Alpha Yellow
  270.         <esc>D          Alpha Blue
  271.         <esc>E          Alpha Magenta
  272.         <esc>F          Alpha Cyan
  273.         <esc>G          Alpha White
  274.         <esc>H          Flash
  275.         <esc>I          Steady
  276.         <esc>L          Normal Height
  277.         <esc>M          Double Height
  278.         <esc>Q          Graphics Red
  279.         <esc>R          Graphics Green
  280.         <esc>S          Graphics Yellow
  281.         <esc>T          Graphics Blue
  282.         <esc>U          Graphics Magenta
  283.         <esc>V          Nothing
  284.         <esc>W          Graphics White
  285.         <esc>X          Conceal
  286.         <esc>Y          Contigyous Graphics
  287.         <esc>Z          Seperated Graphics
  288.         <esc>\          Black Background
  289.         <esc>[          Normally unused - used for frame commands
  290.         <esc>]          New Background
  291.         <esc>           Hold Graphics
  292.         <esc>           Release Graphics
  293.  
  294.  
  295.  Frames
  296.  
  297.         The host system comprises of pages numbered in the range 0 to
  298. 16777214 and each can have frames a to z.
  299.  
  300.         Page 0 is special in that normally a user by typing *0<ret> will go
  301. to the main menu of his main CUG, but even so the frame can still exist,
  302. and it can be still accessed if a CUG menu is set to 0, though this is not
  303. advised, as it will be totally unaccessable to other users set to a
  304. different main CUG menu.
  305.  
  306.         Each frame consists of a data area (usually the displayed part of
  307. the frame), a route table and various flags and options.
  308.  
  309.         You edit the data part by *ed (<frame>)<ret>, if you leave the
  310. <frame> out, it edits the current frame. Note: You can't edit frame c if
  311. there isn't a a and b frame etc.
  312.  
  313.         The editor has already been covered. Editor commands (<esc>8)
  314. specific to the frame editor are IMPORT and GET.
  315.         IMPORT (<frame>) loads the data part of the specified frame into
  316. the editor, replacing the data part of the actual frame you are editing.
  317. GET is similar, but it also loads the route table and the other flags into
  318. the current frame. Note: both IMPORT and GET first check the frame is
  319. readble by the user editing.
  320.  
  321.         To edit the other frame attributes you use *red (<frame>)<ret>. To
  322. save the attrbutes use <esc>J, else use <esc>K to quit.
  323.  
  324.         The route table holds ten entries and means where the system will
  325. go when a user choose a specific (0 to 9) route, entering * means "no
  326. route", else you enter the page nunber.
  327.  
  328.         The CUG access type means whether the frame is open to all ('O'),
  329. everyone with access to CUG 2 ('N') or only people with access to the CUG
  330. the frame is in ('Y')
  331.  
  332.         The user access type means whether the frame is open to all
  333. eligible users ('Y') or only editors of the frame CUG ('N'), this is used
  334. to setup new areas and not allow normal users to access it while you finish
  335. the frames.
  336.  
  337.         The frame type means what the frame actually does, normally this
  338. would be 'i', which means information and just displays the data area.
  339.         Type 'd' means download, the first line of the data area is the
  340. file to download, the second line means the file name to give to the user
  341. in the header. If a route 0 is set, after the download it will go to that
  342. page.
  343.         Type 'b' means bye, and displays the data area and logs the user
  344. off the system.
  345.         Type 'v' means vote, this will be discusssed later.
  346.         Type 'm' means message, this will be discussed later.
  347.         Type 'c' means chatline, this will be discussed later.
  348.         Type 'r' means register, this will be discuessed later.
  349.         Type 's' means shell, this will be discussed later.
  350.         Type 'j' means jump, this cause the system to jump to another
  351. frame, as defined by route 0.
  352.         Type 't' means textfile, this will be discussed later.
  353.  
  354.         Note that for the logon frame it is taken to be a 'i' frame when a
  355. user logs on, the type and any of the access (CUG and NUA) flags are
  356. ignored.
  357.  
  358.         Force display if set to "Y" will cause the frame to be displayed
  359. fully before any user key presses are checked.
  360.  
  361.         Auto-hash will cause the system to automatically go to the next
  362. frame in the page once it has been displayed.
  363.  
  364.         Overlay will stop a clear screen code being generated before the
  365. frame is displayed.
  366.  
  367.         Headless will stop the frame header being displayed at the top of
  368. the frame.
  369.  
  370.         You can delete frames by *del (<frame>)<ret>, note: you can not
  371. delete frame c if there it is a parent (ie. there is a frame d etc.). Any
  372. keywords which point to the frame will also be deleted.
  373.  
  374.         You can lock/unlock a frame by *lock/unlock (<frame>)<ret> which
  375. means only a sysop can edit/delete a frame.
  376.  
  377.         You can lock/unlock frame routes by *rlock/runlock (<frame>)<ret>
  378. which means only a sysop can edit the routes/delete the frame. Note: lock
  379. will stop both frame routes and data being edited, whereas rlock will still
  380. allow the frame data to be edited by a normal editor.
  381.  
  382.         You can move a frame to another frame by *move <to frame> (<from
  383. frame>), note that you can't move a parent frame. The destination frame
  384. cannot exist already. If the frame is "a" then any keyword which points to
  385. the <from frame> will be changed to point to the <to frame>.
  386.  
  387.         You can move a whole page by *movepage <to page> (<from page>). No
  388. frames in the destination page can exist already. Any keywords which point
  389. to the <from page> will be changed to point to the <to frame>.
  390.  
  391.         A 'i' frame can have special codes imbedded in it to print certain
  392. variables out or to mark a place.
  393.         To start a special code you use <esc>[ and then the next character
  394. is the code letter, T means tab, and marks a position of the screen for
  395. special use (eg. This is used to mark on the logon frame where a user
  396. enters his name/id and password).
  397.         Codes a to z display a variable as the frame is being displayed,
  398. they are such:
  399.  
  400.         a       Host name
  401.         b       User name
  402.         c       User ID
  403.         d       User password
  404.         e       User location
  405.         f       User calls
  406.         g       User first date
  407.         h       User sub expiry
  408.         i       User last date
  409.         j       User last time
  410.         k       User last message
  411.         l       User messages sent
  412.         m       User total time
  413.         n       User time limit
  414.         o       User downloads
  415.         p       User uploads
  416.         q       User up/down ratio
  417.         r       User downloads left
  418.         svxy!   Vote selection (x = vote number, y = selection number)
  419.         svxy%   Vote selection percentage of total vote users
  420.         svx!    Vote total
  421.         svx%    Vote total percentage of total users
  422.         svwx    Who (x = port number)
  423.         t       Time online
  424.         u       Time left
  425.         v       Date
  426.         w       Time
  427.         x       System total calls
  428.         y       Number of new messages
  429.         z       Last message
  430.  
  431.         The welcome frame must have two tabs (<esc>[T), the first one is
  432. the place the user enters his name/id and the second is where the user
  433. enters his password, if there aren't two then the welcome frame is deemed
  434. invalid and sysop only access is allowed. A space of 19 characters should
  435. be allowed for the name and 9 for the password.
  436.  
  437.  
  438.  Keywords
  439.  
  440.         The system has keywords which either takes the user to a particular
  441. page (not frame) or can be made to perform some system command.
  442.  
  443.         The keyword *addkword <keyword> (<page>) adds the keyword <keyword>
  444. to the keyword file, pointing to the page given or the current one if it is
  445. left out.
  446.  
  447.         The keyword *addcmd <keyword> <cmd number> adds a system command to
  448. the keyword file, initially there are a default set of these in the keyword
  449. file. The cmd number relates to:
  450.  
  451.         1       Page                    n/a
  452.         2       Pageoff                 n/a
  453.         3       Time                    Displays time
  454.         4       Date                    Displays date
  455.         5       Version/ver             Displays host version
  456.         6*      Quit                    Completely shuts system down
  457.         7       Log/relog               Relogs onto system
  458.         8*      Dropline <port>         Drops line on a particular port
  459.  
  460.         10      Ed/Edit/Editf (<frame>) Edit frame
  461.         11      Red/Editr (<frame>)     Edit routes
  462.  
  463.         14*     Resetvote <vote>        Reset particular vote
  464.         15      Del (<frame>)           Deletes a frame
  465.         16      Move <to> (<from>)      Moves a frame
  466.         17      Ins                     n/a
  467.         18*     Lock (<frame>)          Locks a frame for editing
  468.         19*     Eduser <user name/num>  Edits user details
  469.         20*     Edsys (<port>)          Edits system/port details
  470.         21*     Edmsg <board name/num>  Edits message board details
  471.         22*     Edcug <cug name/num>    Edits CUG details
  472.         23      Listusers               n/a
  473.         24      Addkword <kword> (<page>)       Adds a page keyword
  474.         25*     Addcmd <kword> <cmd>    Adds a system keyword
  475.         26      Delkword                Deletes a keyword
  476.         27      Listkwords              n/a
  477.         28      Listcmds                n/a
  478.         29      Delpage                 n/a
  479.         30      Movepage <to> (<from>)  Moves a whole page
  480.         31      Cugmenu                 n/a
  481.         32*     Unlock                  Unlocks a frame for editing
  482.         33*     Rlock (<frame>)         Locks a frames routes for editing
  483.         34*     Runlock (<frame>)       Unlocks a frames routes for editing
  484.         35*     Expandpages (+)<num>    Expand pages file
  485.         
  486.         * = Sysop only
  487.  
  488.         Giving a frame a type of "!" and placing the system command number
  489. in route 0 will also perform these commands, useful if you want to, say,
  490. restrict relog.
  491.  
  492.         Remember to add suitable keywords for 0 (eg. main, menu, index
  493. etc.) and 90 (eg. logoff, bye, go etc.), these are NOT included in the
  494. default file.
  495.         
  496.         NOTE: Internally only enough space for 3100 frames is reserved for
  497. the pages map file, do NOT expand the file above this level. Future
  498. versions will have this problem resolved.
  499.  
  500.  
  501.  Users
  502.  
  503.         To edit a user, you use *eduser <user number/name>, user 0 is the
  504. default user.
  505.  
  506.         In the editor <ctrlA> will go forward one user, <ctrlB> will go
  507. back a user and <ctrlN> will flip between the general user details and the
  508. CUG flags.
  509.  
  510.         While editing the CUG flags, the cursor keys will move around the
  511. CUGs. A CUG can have the options N (no access), Y (normal read access), E
  512. (editor, but cannot created frames), C (editor, and can create frames).
  513.  
  514.         For the general details the entries are:
  515.  
  516.         User name
  517.         ID
  518.         Password
  519.         Location
  520.         Calls
  521.         Menu                    Main CUG menu user goes to when they use *0#
  522.         ID only                 User can only logon using ID number
  523.         No password             Password not required for logon
  524.         Sysop
  525.         *First date
  526.         *Subscription end
  527.         *Last date
  528.         *Last time
  529.         Last message read
  530.         Number of messages sent
  531.         Total time              Time in seconds
  532.         Call time limit         Time in seconds
  533.         Number of downloads
  534.         Number of uploads
  535.         Upload/download ratio
  536.         Number of downloads left
  537.         Editor flags value      bit 0 DEL -> block (0)
  538.                                 bit 1 @ -> Esc (0)
  539.                                 bit 2 CR expands to CRLF (0)
  540.                                 bit 3 CR on blank line ends edit (0)
  541.                                 bit 5 word/colour wrap on (0)/off (1)
  542.         Respond colour          Use Esc <colour attr> to change
  543.  
  544.         * not editable
  545.  
  546.  
  547. Hector
  548.  
  549.         Hector is the resident user. Hector compiles all the top 50s at
  550. midnight and sends statistics messages. You can also make him send "quotes"
  551. to online users, a text file "HecQuotes" should be placed in the System
  552. directory and he will at random times take a random line out of this file
  553. and send it to a random user.
  554.  
  555.  
  556. Chatting
  557.  
  558.         99% of the time an online user has access to a simple chat system.
  559. This consists of a maximum 30 character message which is displayed on the
  560. bottom line, and can be sent from anyone logged on (including Hector). To
  561. send a message you use ":" ("<esc>:" in the editor), you then get a ":"
  562. prompt and can type in your message, this is then broadcast to anyone on
  563. the same page. If you start your message with a "@" then you can type a
  564. command:
  565.  
  566.         @to <port> <message>            Sends to a particular user
  567.         @shout <message>                Sends to everyone
  568.         @date                           Displays date
  569.         @time                           Displays time
  570.         @wizzo <max level>              Retrains Wizzo
  571.  
  572.         In all the editors, except the screen editor where you use
  573. "<esc>:", you cannot get access to the ":" prompt, but you are still able
  574. to receive messages, where-apon the message will be displayed and the
  575. original text replaced 3 seconds later, unless you press a key when it will
  576. be replaced immediatly.
  577.  
  578.  
  579.  Voting
  580.  
  581.         The system supports upto 32 votes (0 to 31), each with 8 options.
  582. The way users vote is that you setup a frame to have type 'v', with route 8
  583. set to the vote number and route 9 set to the vote option, then when
  584. accessed the vote selection is increased and the vote frame displayed as a
  585. info frame. If the user has already voted in that vote then he is displayed
  586. a line 23 message to the effect.
  587.  
  588.         To display the results of a vote you use the frame variable
  589. <esc>[sv, see the editor section for more information.
  590.  
  591.         To reset a vote you use the keyword *resetvote <vote number>, this
  592. resets every users vote flag (ie. whether they've voted in a particular
  593. vote or not) and the vote totals.
  594.  
  595.  
  596.  Chatlines
  597.  
  598.         Not available.
  599.  
  600.  
  601.  Texfiles
  602.  
  603.         Frames with type 't' display a textfile, automatically splitting
  604. the file into frames. The first tab (<esc>[T) should mark the top of the
  605. screen to insert the text. The second tab should mark the bottom of the
  606. screen to insert the text. Immediatly after the first tab you should place
  607. the file name of the textfile.
  608.  
  609.         At the moment the textfile in not specially formatted to 40
  610. characters, a line is read one at a time (any characters after the 40th
  611. characters are ignored) and placed in the frame template untill the frame
  612. is full or the end of the file has been reached, it is then displayed.
  613. Because of this you should make sure the textfile in question has been
  614. pre-formatted to 40 characters.
  615.  
  616.  
  617.  Register
  618.  
  619.         When a user types a unknown name on logon the system automatically
  620. gives him access to CUG 1 (only) and certain other temporary flags and logs
  621. him on as a new user. The system should be set up for CUG 1 so that a
  622. introduction frame is displayed and an option for the user to regiser.
  623.  
  624.         User 0 in the user file is special, this is the default user, it is
  625. the template the system uses for when it creates a new user, it should be
  626. set up with the desired CUG access and time limit and such like.
  627.  
  628.         To register a new user in the user file you set up a frame with
  629. type 'r' and place two tabs on the frame. The first one is where the user
  630. will be asked for his location and the second is where he will be asked for
  631. his password. Once entered a new user will be created and the current user
  632. set to the created one. Only new users can register, ie. you can't access a
  633. register frame if you are logged on as a real user.
  634.  
  635.         After registering, the system will go to the page in route 0,
  636. normally this would be 0, to reflect the status of the current user (which
  637. now has all the flags of the default user as opposed to a new user, ie.
  638. member of CUG 1 only).
  639.  
  640.  
  641.  Messages
  642.  
  643.         The message system is a seperate system to the main host,
  644. accessible via frames with frame type of 'm'. The frame data tells the
  645. message system what function is needed. The first character of the frame
  646. data can be 'r' (read), 'm' (read personal), 'l' (leave) or 's' (leave
  647. addressed - ie. pre-addressed to someone).
  648.  
  649.         From the second character of the first line of the frame data
  650. should be the board name. If blank then this means all boards (only
  651. applicable to read). If read personal is selected then this determines
  652. which board messages to "All" are searched for in.
  653.  
  654.         If the function is leave addressed then the second line should
  655. contain the name of the user to leave the message to.
  656.  
  657.         If one of the read functions is selected then the second line
  658. should contain "n" if new messages are to be read ("n" reads new messages
  659. since the last call, "N" reads new messages, taking into account any that
  660. have been read in the current call), else the start message is set to what
  661. was in route 1 of the frame which called the message system.
  662.  
  663. Examples:
  664.  
  665.  rGeneral                       ; Read General messages (start msg in route
  666. 1)
  667.  
  668.  ----------------------
  669.  mGeneral                       ; Read new user messages
  670.  n
  671.  ----------------------
  672.  r                              ; Read all new messages
  673.  n
  674.  ----------------------
  675.  sMsgSysop                      ; Leave message to The Sysop in MsgSysop
  676.  The Sysop
  677.  ----------------------
  678.  
  679.         If leaving messages then it will ask for a user name (if
  680. appropiate), whether the message is public or private and the subject of
  681. the message. It will then enter the editor and the user can enter his
  682. message, the editor has already been covered. As with the frame system,
  683. there are extra editor commands for the message system: IMPORT <message
  684. no.>, which imports a message into the editor, this is a priviledged
  685. command.
  686.  
  687.         As well as the extra editor command, you can also get access to the
  688. message commands (see below), via <esc>/, which will give the normal '/'
  689. prompt for message commands, and will act on the message in the editor.
  690.  
  691.         When reading messages it will search for the first message and
  692. display it and prompt the user for action. The user can key (n)ext (go to
  693. the next message - <ret> can also be used), (r)eply (see above), (d)elete
  694. (if the message is addressed to or from the user, or the user is
  695. editor/sysop), (m)utilate (which means delete and then reply), (a)gain
  696. (redisplay message), (t)oggle direction of message reading, (p)revious (go
  697. back a message), (q)uit, (h)elp (display help screen).
  698.  
  699.         Aswell as these, if the user is a sysop/editor then there are the
  700. options (all toggles): (s)wap (swaps public/private), (f)orce (force reads
  701. - a normal user can't (n)ext (or <ret>) onto the next message until the
  702. message has been fully displayed), (u)nable delete (a normal user will not
  703. be given the (d)elete (or (m)utilate) option, even if the message is
  704. addressed to or from him) and (l)imbo. When a message is deleted by a
  705. normal user (ie. not a sysop/editor), it is not deleted but limboed. This
  706. means that normal users won't be able to see that message, but
  707. editors/sysops will (it will appear as a green message) and can be
  708. de-limboed. When a editor/sysop uses (d)elete (or (m)utilate) then the
  709. message will be totally deleted. When compressing the messgage file you can
  710. specify to remove limboed messages, thus the space they take up freed.
  711.  
  712.         A sysop can also (e)dit the message and a sysop/editor can (1)
  713. respond to the message (which allows the user to put a comment at the
  714. bottom of the message).
  715.  
  716.         Another prived option is '/', which gives access to message system
  717. commands, you will be given a / prompt and can enter these commands: to
  718. <name> (change to field), from <name> (change from field), subj <subj>
  719. (change subject field), board <board> (change board message is in) and
  720. swap, force, unable, limbo (which are the same as above - but can also be
  721. used in the editor).
  722.  
  723.         For each message board a user can be unaccessable, a normal user or
  724. a editor, these are all taken it consideration when reading/leaving
  725. messages.
  726.  
  727.          To setup a message board's deatils use "*edmsg <board
  728. name/number>", then you can edit a board's name and linked CUG. If a user
  729. is a member of the linked CUG then he has read access to the message board.
  730. If a user is a editor of the linked CUG then he gets editor access, or
  731. sysop access if he is a sysop.
  732.  
  733.  
  734.  Shell
  735.  
  736.         There is a way of getting at the operating system from a logged on
  737. user via a TaskWindow using frame type 's'. The TaskWindow module 0.29 or
  738. later must be loaded for this to work.
  739.  
  740.         You cannot use a TaskWindow if the system isn't in the wimp, you
  741. will not be allowed to try if this is the case. If the system cannot start
  742. the TaskWindow up for any reason then a line 23 message will be displayed.
  743.  
  744.         Once started Wizzo level 0 will be negoiated (80 col tty) and you
  745. should get a OS * prompt, from here you can type any normal OS command, eg.
  746. BASIC.
  747.  
  748.         Initially you are given a wimp slot of 64k (or lower if 64k isn't
  749. available), to increase or decrease the wimpslot size for the TaskWindow
  750. use the command WimpSlot from the OS prompt, DO NOT change the wimpslot
  751. size in a language, except by using END= in BASIC.
  752.  
  753.         To quit the TaskWindow either use *Quit or *ShellCLI_TaskQuit from
  754. the OS prompt or press <ctrlX> three times. <ctrlX> should close the window
  755. even if the program running in the TaskWindow has crashed.
  756.  
  757.         As you have direct access to the OS, you should be VERY careful
  758. what you are doing, apart from the obvious things like not trying to run a
  759. game or somesuch, you should not close files that you did not open, this
  760. includes using *Close, CLOSE#0, *Shut, *Shutdown or *Dismount; You should
  761. try and not drop line with files open, they will NOT be closed.
  762.  
  763.         You will not have access to the system files as they are all kept
  764. open. The one exception to this is the activity log which is opened when
  765. used and closed 30 seconds latter, so you can get access to it, though if
  766. it is open, try again 30 seconds latter ! Note: As the activity log could
  767. be needed anytime, you should copy the activity log straight away to
  768. view/download it, do not work on the real activity log.
  769.  
  770.  
  771.  Ports And Modems
  772.  
  773.         Inside the !VHost application is the file "Ports", this textfile
  774. contains a list of ports in the form:
  775.  
  776. <vhost logical port> <serial driver name> <serial driver port> <modem>
  777.  
  778. <vhost logical port> is the port number vhost refers users to, start at 3
  779. and work your way up. (nb. ports 1 and 2 are the local ports).
  780.  
  781. <serial driver name> is the driver name as supplied in !SerialDev.
  782.  
  783. <serial driver port> is the physical port number to use for the driver.
  784.  
  785. <modem> is the file name of the modem description file which can be found
  786. in the "Modems" directory.
  787.  
  788.         Each "Modems" file contains a list of commands which build up a
  789. description on how the modem is to be used. the commands are:
  790.  
  791. baud    <number>                Sets both rx and tx baud rates to "talk" to
  792. the
  793.                                 modem at
  794. tx      <number>                Sets only the tx baud rate
  795. rx      <number>                Sets only the rx baud rate
  796. init    <string>                Sets the init string to be sent to the
  797. modem on
  798.                                 startup, including any terminating return.
  799.                                 Control codes (including returns) can be
  800.                                 included in the normal way (eg. |a, |m)
  801. finit   <string>                Sets the string sent to the modem on
  802. shutdown
  803. ring    <string>                Sets the string to be sent when the modem
  804.                                 signals someone is ringing
  805. useconnect                      Flags that the connect string the modem
  806. returns
  807.                                 should be read and the baud rate adjusted
  808.                                 accordingly
  809. readconnect                     Flags that the connect string the modem
  810. returns
  811.                                 should be read only. The point of this is to
  812.                                 get the baud rate the caller is really
  813. calling
  814.                                 at. Presently this is only used to put the
  815.                                 correct baud rate in the activity log
  816. connect <string> <tx baud> (<rx baud>)  Adds a new connect string to the
  817. list of
  818.                                 connect strings, to cater for non standard
  819.                                 connect strings
  820.  
  821. Note: ring doesn't work at the moment, you will have to set the init string
  822. to make the modem auto-answer
  823.  
  824. Note: when the connect string is read, the baud rate isn't evaluated from
  825. the string itself, but compared with a list of known strings. There is a
  826. default list of strings: connect50, connect75, connect110, connect150,
  827. connect300, connect, connect600, connect1200, connect2400, connect4800,
  828. connect9600, connect19200, connect38400. Any others the modem returns
  829. should be supplied with the "connect" command. When dealing with connect
  830. strings, all spaces are ignored (and should not be entered in the "connect"
  831. command) and the case is ignored.
  832.  
  833.         As well as details about the physical port, you can edit logical
  834. port details by "*Edsys <port number>" (if you leave out the port number
  835. general system details can be edited). The entries are:
  836.  
  837.         Port name               Not currently used
  838.         Calls                   Number of normal (not sysop) calls
  839.         Logon Page              Frame to use as the logon frame for this
  840. port
  841.         Open time               Not currently used
  842.         Close time              Not currently used
  843.         Ringback                Not currently used
  844.         Online                  Whether calls should be answered
  845.         CUG access              Not curretly used
  846.  
  847.  
  848.  Future enhancements
  849.  
  850.         Node movement/deletion
  851.         Page deletion
  852.         Bulk NUA utilities
  853.         Improved editors
  854.         Bulk user utilities
  855.         Chatlines
  856.         Full chat system
  857.         Pager
  858.         Sysop chat
  859.         TaskWindow file protection
  860.         Abiltiy to close parts of system down to enable system files to be
  861. worked on from a TaskWindow
  862.         Download management system
  863.         Spark compatibilty, to archive message packets
  864.         Full message management
  865.         Full system management
  866.         Proper colour viewdata local terminal
  867.         Multiple logons from a single port (like local does now)
  868.         CET (and maybe FCET)
  869.         Enhanched textfile reader
  870.  
  871.  
  872. WARNING
  873.  
  874.         Future file structures may change (some have already since the
  875. original "8-bit" structure) so anything you do *may* not be transportable,
  876. I will *probably* do file convertors though.
  877.  
  878. (c)1993 G.W.Babb
  879.