home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume44 / rocat / part03 < prev    next >
Internet Message Format  |  1994-08-01  |  97KB

  1. From: shaw@stortek.stortek.com (Greg Shaw)
  2. Newsgroups: comp.sources.misc
  3. Subject: v44i003:  rocat - Roman Catacombs BBS System v.0.75, Part03/09
  4. Date: 1 Aug 1994 12:08:37 -0500
  5. Organization: Sterling Software
  6. Sender: kent@sparky.sterling.com
  7. Approved: kent@sparky.sterling.com
  8. Message-ID: <31ja6l$avv@sparky.sterling.com>
  9. X-Md4-Signature: 7d728ca6d90ab899cd87c83d40f6abc0
  10.  
  11. Submitted-by: shaw@stortek.stortek.com (Greg Shaw)
  12. Posting-number: Volume 44, Issue 3
  13. Archive-name: rocat/part03
  14. Environment: Linux, GNU C++/libg++
  15.  
  16. #! /bin/sh
  17. # This is a shell archive.  Remove anything before this line, then feed it
  18. # into a shell via "sh file" or similar.  To overwrite existing files,
  19. # type "sh file -c".
  20. # Contents:  rocat-0.75/doc/bbsinstl.ps.A rocat-0.75/src/bbsint.C
  21. # Wrapped by kent@sparky on Mon Jul 11 22:22:50 1994
  22. PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin:$PATH ; export PATH
  23. echo If this archive is complete, you will see the following message:
  24. echo '          "shar: End of archive 3 (of 9)."'
  25. if test -f 'rocat-0.75/doc/bbsinstl.ps.A' -a "${1}" != "-c" ; then 
  26.   echo shar: Will not clobber existing file \"'rocat-0.75/doc/bbsinstl.ps.A'\"
  27. else
  28.   echo shar: Extracting \"'rocat-0.75/doc/bbsinstl.ps.A'\" \(83289 characters\)
  29.   sed "s/^X//" >'rocat-0.75/doc/bbsinstl.ps.A' <<'END_OF_FILE'
  30. X%!PS-Adobe-3.0
  31. X%%Creator: Windows PSCRIPT
  32. X%%Title: Microsoft Word - BBSINSTL.DOC
  33. X%%BoundingBox: 18 19 593 774
  34. X%%DocumentNeededResources: (atend)
  35. X%%DocumentSuppliedResources: (atend)
  36. X%%Pages: (atend)
  37. X%%BeginResource: procset Win35Dict 3 1
  38. X/Win35Dict 290 dict def Win35Dict begin/bd{bind def}bind def/in{72
  39. Xmul}bd/ed{exch def}bd/ld{load def}bd/tr/translate ld/gs/gsave ld/gr
  40. X/grestore ld/M/moveto ld/L/lineto ld/rmt/rmoveto ld/rlt/rlineto ld
  41. X/rct/rcurveto ld/st/stroke ld/n/newpath ld/sm/setmatrix ld/cm/currentmatrix
  42. Xld/cp/closepath ld/ARC/arcn ld/TR{65536 div}bd/lj/setlinejoin ld/lc
  43. X/setlinecap ld/ml/setmiterlimit ld/sl/setlinewidth ld/scignore false
  44. Xdef/sc{scignore{pop pop pop}{0 index 2 index eq 2 index 4 index eq
  45. Xand{pop pop 255 div setgray}{3{255 div 3 1 roll}repeat setrgbcolor}ifelse}ifelse}bd
  46. X/FC{bR bG bB sc}bd/fC{/bB ed/bG ed/bR ed}bd/HC{hR hG hB sc}bd/hC{
  47. X/hB ed/hG ed/hR ed}bd/PC{pR pG pB sc}bd/pC{/pB ed/pG ed/pR ed}bd/sM
  48. Xmatrix def/PenW 1 def/iPen 5 def/mxF matrix def/mxE matrix def/mxUE
  49. Xmatrix def/mxUF matrix def/fBE false def/iDevRes 72 0 matrix defaultmatrix
  50. Xdtransform dup mul exch dup mul add sqrt def/fPP false def/SS{fPP{
  51. X/SV save def}{gs}ifelse}bd/RS{fPP{SV restore}{gr}ifelse}bd/EJ{gsave
  52. Xshowpage grestore}bd/#C{userdict begin/#copies ed end}bd/FEbuf 2 string
  53. Xdef/FEglyph(G  )def/FE{1 exch{dup 16 FEbuf cvrs FEglyph exch 1 exch
  54. Xputinterval 1 index exch FEglyph cvn put}for}bd/SM{/iRes ed/cyP ed
  55. X/cxPg ed/cyM ed/cxM ed 72 100 div dup scale dup 0 ne{90 eq{cyM exch
  56. X0 eq{cxM exch tr -90 rotate -1 1 scale}{cxM cxPg add exch tr +90 rotate}ifelse}{cyP
  57. XcyM sub exch 0 ne{cxM exch tr -90 rotate}{cxM cxPg add exch tr -90
  58. Xrotate 1 -1 scale}ifelse}ifelse}{pop cyP cyM sub exch 0 ne{cxM cxPg
  59. Xadd exch tr 180 rotate}{cxM exch tr 1 -1 scale}ifelse}ifelse 100 iRes
  60. Xdiv dup scale 0 0 transform .25 add round .25 sub exch .25 add round
  61. X.25 sub exch itransform translate}bd/SJ{1 index 0 eq{pop pop/fBE false
  62. Xdef}{1 index/Break ed div/dxBreak ed/fBE true def}ifelse}bd/ANSIVec[
  63. X16#0/grave 16#1/acute 16#2/circumflex 16#3/tilde 16#4/macron 16#5/breve
  64. X16#6/dotaccent 16#7/dieresis 16#8/ring 16#9/cedilla 16#A/hungarumlaut
  65. X16#B/ogonek 16#C/caron 16#D/dotlessi 16#27/quotesingle 16#60/grave
  66. X16#7C/bar 16#82/quotesinglbase 16#83/florin 16#84/quotedblbase 16#85
  67. X/ellipsis 16#86/dagger 16#87/daggerdbl 16#89/perthousand 16#8A/Scaron
  68. X16#8B/guilsinglleft 16#8C/OE 16#91/quoteleft 16#92/quoteright 16#93
  69. X/quotedblleft 16#94/quotedblright 16#95/bullet 16#96/endash 16#97
  70. X/emdash 16#99/trademark 16#9A/scaron 16#9B/guilsinglright 16#9C/oe
  71. X16#9F/Ydieresis 16#A0/space 16#A4/currency 16#A6/brokenbar 16#A7/section
  72. X16#A8/dieresis 16#A9/copyright 16#AA/ordfeminine 16#AB/guillemotleft
  73. X16#AC/logicalnot 16#AD/hyphen 16#AE/registered 16#AF/macron 16#B0/degree
  74. X16#B1/plusminus 16#B2/twosuperior 16#B3/threesuperior 16#B4/acute 16#B5
  75. X/mu 16#B6/paragraph 16#B7/periodcentered 16#B8/cedilla 16#B9/onesuperior
  76. X16#BA/ordmasculine 16#BB/guillemotright 16#BC/onequarter 16#BD/onehalf
  77. X16#BE/threequarters 16#BF/questiondown 16#C0/Agrave 16#C1/Aacute 16#C2
  78. X/Acircumflex 16#C3/Atilde 16#C4/Adieresis 16#C5/Aring 16#C6/AE 16#C7
  79. X/Ccedilla 16#C8/Egrave 16#C9/Eacute 16#CA/Ecircumflex 16#CB/Edieresis
  80. X16#CC/Igrave 16#CD/Iacute 16#CE/Icircumflex 16#CF/Idieresis 16#D0/Eth
  81. X16#D1/Ntilde 16#D2/Ograve 16#D3/Oacute 16#D4/Ocircumflex 16#D5/Otilde
  82. X16#D6/Odieresis 16#D7/multiply 16#D8/Oslash 16#D9/Ugrave 16#DA/Uacute
  83. X16#DB/Ucircumflex 16#DC/Udieresis 16#DD/Yacute 16#DE/Thorn 16#DF/germandbls
  84. X16#E0/agrave 16#E1/aacute 16#E2/acircumflex 16#E3/atilde 16#E4/adieresis
  85. X16#E5/aring 16#E6/ae 16#E7/ccedilla 16#E8/egrave 16#E9/eacute 16#EA
  86. X/ecircumflex 16#EB/edieresis 16#EC/igrave 16#ED/iacute 16#EE/icircumflex
  87. X16#EF/idieresis 16#F0/eth 16#F1/ntilde 16#F2/ograve 16#F3/oacute 16#F4
  88. X/ocircumflex 16#F5/otilde 16#F6/odieresis 16#F7/divide 16#F8/oslash
  89. X16#F9/ugrave 16#FA/uacute 16#FB/ucircumflex 16#FC/udieresis 16#FD/yacute
  90. X16#FE/thorn 16#FF/ydieresis ] def/reencdict 12 dict def/IsChar{basefontdict
  91. X/CharStrings get exch known}bd/MapCh{dup IsChar not{pop/bullet}if
  92. Xnewfont/Encoding get 3 1 roll put}bd/MapDegree{16#b0/degree IsChar{
  93. X/degree}{/ring}ifelse MapCh}bd/MapBB{16#a6/brokenbar IsChar{/brokenbar}{
  94. X/bar}ifelse MapCh}bd/ANSIFont{reencdict begin/newfontname ed/basefontname
  95. Xed FontDirectory newfontname known not{/basefontdict basefontname findfont
  96. Xdef/newfont basefontdict maxlength dict def basefontdict{exch dup/FID
  97. Xne{dup/Encoding eq{exch dup length array copy newfont 3 1 roll put}{exch
  98. Xnewfont 3 1 roll put}ifelse}{pop pop}ifelse}forall newfont/FontName
  99. Xnewfontname put 127 1 159{newfont/Encoding get exch/bullet put}for
  100. XANSIVec aload pop ANSIVec length 2 idiv{MapCh}repeat MapDegree MapBB
  101. Xnewfontname newfont definefont pop}if newfontname end}bd/SB{FC/ULlen
  102. Xed/str ed str length fBE not{dup 1 gt{1 sub}if}if/cbStr ed/dxGdi ed
  103. X/y0 ed/x0 ed str stringwidth dup 0 ne{/y1 ed/x1 ed y1 y1 mul x1 x1
  104. Xmul add sqrt dxGdi exch div 1 sub dup x1 mul cbStr div exch y1 mul
  105. XcbStr div}{exch abs neg dxGdi add cbStr div exch}ifelse/dyExtra ed
  106. X/dxExtra ed x0 y0 M fBE{dxBreak 0 BCh dxExtra dyExtra str awidthshow}{dxExtra
  107. XdyExtra str ashow}ifelse fUL{x0 y0 M dxUL dyUL rmt ULlen fBE{Break
  108. Xadd}if 0 mxUE transform gs rlt cyUL sl [] 0 setdash st gr}if fSO{x0
  109. Xy0 M dxSO dySO rmt ULlen fBE{Break add}if 0 mxUE transform gs rlt cyUL
  110. Xsl [] 0 setdash st gr}if n/fBE false def}bd/font{/name ed/Ascent ed
  111. X0 ne/fT3 ed 0 ne/fSO ed 0 ne/fUL ed/Sy ed/Sx ed 10.0 div/ori ed -10.0
  112. Xdiv/esc ed/BCh ed name findfont/xAscent 0 def/yAscent Ascent def/ULesc
  113. Xesc def ULesc mxUE rotate pop fT3{/esc 0 def xAscent yAscent mxUE transform
  114. X/yAscent ed/xAscent ed}if [Sx 0 0 Sy neg xAscent yAscent] esc mxE
  115. Xrotate mxF concatmatrix makefont setfont [Sx 0 0 Sy neg 0 Ascent] mxUE
  116. XmxUF concatmatrix pop fUL{currentfont dup/FontInfo get/UnderlinePosition
  117. Xknown not{pop/Courier findfont}if/FontInfo get/UnderlinePosition get
  118. X1000 div 0 exch mxUF transform/dyUL ed/dxUL ed}if fSO{0 .3 mxUF transform
  119. X/dySO ed/dxSO ed}if fUL fSO or{currentfont dup/FontInfo get/UnderlineThickness
  120. Xknown not{pop/Courier findfont}if/FontInfo get/UnderlineThickness get
  121. X1000 div Sy mul/cyUL ed}if}bd/min{2 copy gt{exch}if pop}bd/max{2 copy
  122. Xlt{exch}if pop}bd/CP{/ft ed{{ft 0 eq{clip}{eoclip}ifelse}stopped{currentflat
  123. X1 add setflat}{exit}ifelse}loop}bd/patfont 10 dict def patfont begin
  124. X/FontType 3 def/FontMatrix [1 0 0 -1 0 0] def/FontBBox [0 0 16 16]
  125. Xdef/Encoding StandardEncoding def/BuildChar{pop pop 16 0 0 0 16 16
  126. Xsetcachedevice 16 16 false [1 0 0 1 .25 .25]{pat}imagemask}bd end/p{
  127. X/pat 32 string def{}forall 0 1 7{dup 2 mul pat exch 3 index put dup
  128. X2 mul 1 add pat exch 3 index put dup 2 mul 16 add pat exch 3 index
  129. Xput 2 mul 17 add pat exch 2 index put pop}for}bd/pfill{/PatFont patfont
  130. Xdefinefont setfont/ch(AAAA)def X0 64 X1{Y1 -16 Y0{1 index exch M ch
  131. Xshow}for pop}for}bd/vert{X0 w X1{dup Y0 M Y1 L st}for}bd/horz{Y0 w
  132. XY1{dup X0 exch M X1 exch L st}for}bd/fdiag{X0 w X1{Y0 M X1 X0 sub dup
  133. Xrlt st}for Y0 w Y1{X0 exch M Y1 Y0 sub dup rlt st}for}bd/bdiag{X0 w
  134. XX1{Y1 M X1 X0 sub dup neg rlt st}for Y0 w Y1{X0 exch M Y1 Y0 sub dup
  135. Xneg rlt st}for}bd/AU{1 add cvi 15 or}bd/AD{1 sub cvi -16 and}bd/SHR{pathbbox
  136. XAU/Y1 ed AU/X1 ed AD/Y0 ed AD/X0 ed}bd/hfill{/w iRes 37.5 div round
  137. Xdef 0.1 sl [] 0 setdash n dup 0 eq{horz}if dup 1 eq{vert}if dup 2 eq{fdiag}if
  138. Xdup 3 eq{bdiag}if dup 4 eq{horz vert}if 5 eq{fdiag bdiag}if}bd/F{/ft
  139. Xed fm 256 and 0 ne{gs FC ft 0 eq{fill}{eofill}ifelse gr}if fm 1536
  140. Xand 0 ne{SHR gs HC ft CP fm 1024 and 0 ne{/Tmp save def pfill Tmp restore}{fm
  141. X15 and hfill}ifelse gr}if}bd/S{PenW sl PC st}bd/m matrix def/GW{iRes
  142. X12 div PenW add cvi}bd/DoW{iRes 50 div PenW add cvi}bd/DW{iRes 8 div
  143. XPenW add cvi}bd/SP{/PenW ed/iPen ed iPen 0 eq iPen 6 eq or{[] 0 setdash}if
  144. XiPen 1 eq{[DW GW] 0 setdash}if iPen 2 eq{[DoW GW] 0 setdash}if iPen
  145. X3 eq{[DW GW DoW GW] 0 setdash}if iPen 4 eq{[DW GW DoW GW DoW GW] 0
  146. Xsetdash}if}bd/E{m cm pop tr scale 1 0 moveto 0 0 1 0 360 arc cp m sm}bd
  147. X/AG{/sy ed/sx ed sx div 4 1 roll sy div 4 1 roll sx div 4 1 roll sy
  148. Xdiv 4 1 roll atan/a2 ed atan/a1 ed sx sy scale a1 a2 ARC}def/A{m cm
  149. Xpop tr AG m sm}def/P{m cm pop tr 0 0 M AG cp m sm}def/RRect{n 4 copy
  150. XM 3 1 roll exch L 4 2 roll L L cp}bd/RRCC{/r ed/y1 ed/x1 ed/y0 ed/x0
  151. Xed x0 x1 add 2 div y0 M x1 y0 x1 y1 r arcto 4{pop}repeat x1 y1 x0 y1
  152. Xr arcto 4{pop}repeat x0 y1 x0 y0 r arcto 4{pop}repeat x0 y0 x1 y0 r
  153. Xarcto 4{pop}repeat cp}bd/RR{2 copy 0 eq exch 0 eq or{pop pop RRect}{2
  154. Xcopy eq{pop RRCC}{m cm pop/y2 ed/x2 ed/ys y2 x2 div 1 max def/xs x2
  155. Xy2 div 1 max def/y1 exch ys div def/x1 exch xs div def/y0 exch ys div
  156. Xdef/x0 exch xs div def/r2 x2 y2 min def xs ys scale x0 x1 add 2 div
  157. Xy0 M x1 y0 x1 y1 r2 arcto 4{pop}repeat x1 y1 x0 y1 r2 arcto 4{pop}repeat
  158. Xx0 y1 x0 y0 r2 arcto 4{pop}repeat x0 y0 x1 y0 r2 arcto 4{pop}repeat
  159. Xm sm cp}ifelse}ifelse}bd/PP{{rlt}repeat}bd/OB{gs 0 ne{7 3 roll/y ed
  160. X/x ed x y translate ULesc rotate x neg y neg translate x y 7 -3 roll}if
  161. Xsc B fill gr}bd/B{M/dy ed/dx ed dx 0 rlt 0 dy rlt dx neg 0 rlt cp}bd
  162. X/CB{B clip n}bd/ErrHandler{errordict dup maxlength exch length gt
  163. Xdup{errordict begin}if/errhelpdict 12 dict def errhelpdict begin/stackunderflow(operand stack underflow)def
  164. X/undefined(this name is not defined in a dictionary)def/VMerror(you have used up all the printer's memory)def
  165. X/typecheck(operator was expecting a different type of operand)def
  166. X/ioerror(input/output error occured)def end{end}if errordict begin
  167. X/handleerror{$error begin newerror{/newerror false def showpage 72
  168. X72 scale/x .25 def/y 9.6 def/Helvetica findfont .2 scalefont setfont
  169. Xx y moveto(Offending Command = )show/command load{dup type/stringtype
  170. Xne{(max err string)cvs}if show}exec/y y .2 sub def x y moveto(Error = )show
  171. Xerrorname{dup type dup( max err string )cvs show( : )show/stringtype
  172. Xne{( max err string )cvs}if show}exec errordict begin errhelpdict errorname
  173. Xknown{x 1 add y .2 sub moveto errhelpdict errorname get show}if end
  174. X/y y .4 sub def x y moveto(Stack =)show ostack{/y y .2 sub def x 1
  175. Xadd y moveto dup type/stringtype ne{( max err string )cvs}if show}forall
  176. Xshowpage}if end}def end}bd end
  177. X%%EndResource
  178. X/SVDoc save def
  179. X%%EndProlog
  180. X%%BeginSetup
  181. XWin35Dict begin
  182. XErrHandler
  183. Xstatusdict begin 0 setjobtimeout end
  184. Xstatusdict begin statusdict /jobname (Microsoft Word - BBSINSTL.DOC) put end
  185. X/oldDictCnt countdictstack def {statusdict begin 0 setpapertray end
  186. X}stopped 
  187. X{ countdictstack oldDictCnt lt { Win35Dict begin } 
  188. X{1 1 countdictstack oldDictCnt sub {pop end } for } ifelse } if 
  189. X/oldDictCnt countdictstack def {letter
  190. X}stopped 
  191. X{ countdictstack oldDictCnt lt { Win35Dict begin } 
  192. X{1 1 countdictstack oldDictCnt sub {pop end } for } ifelse } if 
  193. X[{}
  194. X/exec load currenttransfer /exec load] cvx settransfer
  195. X/setresolution where { pop 300 300 setresolution } if
  196. X%%EndSetup
  197. X%%Page: 1 1
  198. X%%PageResources: (atend)
  199. XSS
  200. X0 0 25 25 798 1100 300 SM
  201. X32 0 0 83 83 0 0 0 77 /Helvetica-Bold /font13 ANSIFont font
  202. X0 0 0 fC
  203. X812 1332 925 (The Roman Catacombs) 925 SB
  204. X32 0 0 58 58 0 0 0 53 /Helvetica-Bold /font13 ANSIFont font
  205. X972 1430 605 (BBS System for Linux) 605 SB
  206. X32 0 0 38 38 0 0 0 36 /Helvetica-Bold /font13 ANSIFont font
  207. X1118 1498 314 (By Gregory Shaw) 314 SB
  208. X32 0 0 29 29 0 0 0 27 /Helvetica /font12 ANSIFont font
  209. X1103 1544 343 (shaw@manwe.fmsoft.com) 343 SB
  210. X1 #C
  211. Xstatusdict begin /manualfeed false store end
  212. XEJ RS
  213. X%%PageTrailer
  214. X%%PageResources: font Helvetica
  215. X%%+ font Helvetica-Bold
  216. X%%Page: 2 2
  217. X%%PageResources: (atend)
  218. XSS
  219. X0 0 25 25 798 1100 300 SM
  220. X32 0 0 58 58 0 0 0 53 /Helvetica-Bold /font13 ANSIFont font
  221. X0 0 0 fC
  222. X1032 227 485 (Table of Contents) 485 SB
  223. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  224. X300 296 209 (Introduction) 209 SB
  225. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  226. X517 296 352 (................................) 352 SB
  227. X869 296 352 (................................) 352 SB
  228. X1221 296 352 (................................) 352 SB
  229. X1573 296 352 (................................) 352 SB
  230. X1925 296 99 (.........) 99 SB
  231. X2025 296 21 (3) 21 SB
  232. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  233. X450 346 205 (Background) 205 SB
  234. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  235. X660 346 352 (................................) 352 SB
  236. X1012 346 352 (................................) 352 SB
  237. X1364 346 352 (................................) 352 SB
  238. X1716 346 308 (............................) 308 SB
  239. X2025 346 21 (3) 21 SB
  240. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  241. X450 396 233 (Requirements) 233 SB
  242. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  243. X693 396 352 (................................) 352 SB
  244. X1045 396 352 (................................) 352 SB
  245. X1397 396 352 (................................) 352 SB
  246. X1749 396 275 (.........................) 275 SB
  247. X2025 396 21 (3) 21 SB
  248. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  249. X450 446 360 (Multiline capabilities) 360 SB
  250. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  251. X814 446 352 (................................) 352 SB
  252. X1166 446 352 (................................) 352 SB
  253. X1518 446 352 (................................) 352 SB
  254. X1870 446 154 (..............) 154 SB
  255. X2025 446 21 (4) 21 SB
  256. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  257. X450 496 377 (External requirements) 377 SB
  258. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  259. X836 496 352 (................................) 352 SB
  260. X1188 496 352 (................................) 352 SB
  261. X1540 496 352 (................................) 352 SB
  262. X1892 496 132 (............) 132 SB
  263. X2025 496 21 (4) 21 SB
  264. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  265. X450 546 285 (Design decisions) 285 SB
  266. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  267. X737 546 352 (................................) 352 SB
  268. X1089 546 352 (................................) 352 SB
  269. X1441 546 352 (................................) 352 SB
  270. X1793 546 231 (.....................) 231 SB
  271. X2025 546 21 (4) 21 SB
  272. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  273. X300 596 532 (Compilation and Configuration) 532 SB
  274. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  275. X836 596 352 (................................) 352 SB
  276. X1188 596 352 (................................) 352 SB
  277. X1540 596 352 (................................) 352 SB
  278. X1892 596 132 (............) 132 SB
  279. X2025 596 21 (4) 21 SB
  280. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  281. X450 646 158 (Pre-setup) 158 SB
  282. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  283. X616 646 352 (................................) 352 SB
  284. X968 646 352 (................................) 352 SB
  285. X1320 646 352 (................................) 352 SB
  286. X1672 646 352 (................................) 352 SB
  287. X2025 646 21 (4) 21 SB
  288. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  289. X600 696 646 (Adding the BBS User and BBS Group) 646 SB
  290. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  291. X1254 696 352 (................................) 352 SB
  292. X1606 696 352 (................................) 352 SB
  293. X1958 696 66 (......) 66 SB
  294. X2025 696 21 (4) 21 SB
  295. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  296. X450 746 289 (Where to install?) 289 SB
  297. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  298. X748 746 352 (................................) 352 SB
  299. X1100 746 352 (................................) 352 SB
  300. X1452 746 352 (................................) 352 SB
  301. X1804 746 220 (....................) 220 SB
  302. X2025 746 21 (5) 21 SB
  303. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  304. X450 796 383 (Unpacking the archive) 383 SB
  305. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  306. X836 796 352 (................................) 352 SB
  307. X1188 796 352 (................................) 352 SB
  308. X1540 796 352 (................................) 352 SB
  309. X1892 796 132 (............) 132 SB
  310. X2025 796 21 (6) 21 SB
  311. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  312. X450 846 376 (Compiling the System) 376 SB
  313. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  314. X836 846 352 (................................) 352 SB
  315. X1188 846 352 (................................) 352 SB
  316. X1540 846 352 (................................) 352 SB
  317. X1892 846 132 (............) 132 SB
  318. X2025 846 21 (6) 21 SB
  319. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  320. X450 896 473 (Adding the 'new' user logon) 473 SB
  321. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  322. X924 896 352 (................................) 352 SB
  323. X1276 896 352 (................................) 352 SB
  324. X1628 896 352 (................................) 352 SB
  325. X1980 896 44 (....) 44 SB
  326. X2025 896 21 (6) 21 SB
  327. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  328. X450 946 237 (Configuration) 237 SB
  329. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  330. X693 946 352 (................................) 352 SB
  331. X1045 946 352 (................................) 352 SB
  332. X1397 946 352 (................................) 352 SB
  333. X1749 946 275 (.........................) 275 SB
  334. X2025 946 21 (7) 21 SB
  335. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  336. X600 996 211 (Linux FAQs) 211 SB
  337. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  338. X814 996 352 (................................) 352 SB
  339. X1166 996 352 (................................) 352 SB
  340. X1518 996 352 (................................) 352 SB
  341. X1870 996 154 (..............) 154 SB
  342. X2025 996 21 (7) 21 SB
  343. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  344. X600 1046 367 (Modem configuration) 367 SB
  345. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  346. X968 1046 352 (................................) 352 SB
  347. X1320 1046 352 (................................) 352 SB
  348. X1672 1046 352 (................................) 352 SB
  349. X2025 1046 21 (7) 21 SB
  350. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  351. X600 1096 337 (Serial configuration) 337 SB
  352. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  353. X946 1096 352 (................................) 352 SB
  354. X1298 1096 352 (................................) 352 SB
  355. X1650 1096 352 (................................) 352 SB
  356. X2002 1096 22 (..) 22 SB
  357. X2025 1096 21 (8) 21 SB
  358. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  359. X600 1146 222 (Initial Logon) 222 SB
  360. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  361. X825 1146 352 (................................) 352 SB
  362. X1177 1146 352 (................................) 352 SB
  363. X1529 1146 352 (................................) 352 SB
  364. X1881 1146 143 (.............) 143 SB
  365. X2025 1146 21 (9) 21 SB
  366. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  367. X600 1196 236 (Logon Scripts) 236 SB
  368. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  369. X836 1196 352 (................................) 352 SB
  370. X1188 1196 352 (................................) 352 SB
  371. X1540 1196 352 (................................) 352 SB
  372. X1892 1196 132 (............) 132 SB
  373. X2025 1196 42 (10) 42 SB
  374. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  375. X600 1246 289 (System messages) 289 SB
  376. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  377. X891 1246 352 (................................) 352 SB
  378. X1243 1246 352 (................................) 352 SB
  379. X1595 1246 352 (................................) 352 SB
  380. X1947 1246 77 (.......) 77 SB
  381. X2025 1246 42 (10) 42 SB
  382. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  383. X600 1296 114 (Menus) 114 SB
  384. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  385. X715 1296 352 (................................) 352 SB
  386. X1067 1296 352 (................................) 352 SB
  387. X1419 1296 352 (................................) 352 SB
  388. X1771 1296 253 (.......................) 253 SB
  389. X2025 1296 42 (10) 42 SB
  390. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  391. X600 1346 190 (Files Areas) 190 SB
  392. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  393. X792 1346 352 (................................) 352 SB
  394. X1144 1346 352 (................................) 352 SB
  395. X1496 1346 352 (................................) 352 SB
  396. X1848 1346 176 (................) 176 SB
  397. X2025 1346 42 (14) 42 SB
  398. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  399. X600 1396 94 (Users) 94 SB
  400. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  401. X704 1396 352 (................................) 352 SB
  402. X1056 1396 352 (................................) 352 SB
  403. X1408 1396 352 (................................) 352 SB
  404. X1760 1396 264 (........................) 264 SB
  405. X2025 1396 42 (15) 42 SB
  406. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  407. X600 1446 448 (The Options \(bbsinfo\) File) 448 SB
  408. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  409. X1056 1446 352 (................................) 352 SB
  410. X1408 1446 352 (................................) 352 SB
  411. X1760 1446 264 (........................) 264 SB
  412. X2025 1446 42 (16) 42 SB
  413. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  414. X600 1496 601 (Interfacing with External Programs) 601 SB
  415. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  416. X1210 1496 352 (................................) 352 SB
  417. X1562 1496 352 (................................) 352 SB
  418. X1914 1496 110 (..........) 110 SB
  419. X2025 1496 42 (18) 42 SB
  420. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  421. X600 1546 489 (Uploading and Downloading) 489 SB
  422. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  423. X1089 1546 352 (................................) 352 SB
  424. X1441 1546 352 (................................) 352 SB
  425. X1793 1546 231 (.....................) 231 SB
  426. X2025 1546 42 (18) 42 SB
  427. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  428. X300 1596 454 (Testing and Normal Usage) 454 SB
  429. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  430. X759 1596 352 (................................) 352 SB
  431. X1111 1596 352 (................................) 352 SB
  432. X1463 1596 352 (................................) 352 SB
  433. X1815 1596 209 (...................) 209 SB
  434. X2025 1596 42 (19) 42 SB
  435. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  436. X450 1646 295 (Using the System) 295 SB
  437. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  438. X748 1646 352 (................................) 352 SB
  439. X1100 1646 352 (................................) 352 SB
  440. X1452 1646 352 (................................) 352 SB
  441. X1804 1646 220 (....................) 220 SB
  442. X2025 1646 42 (19) 42 SB
  443. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  444. X300 1696 138 (Security) 138 SB
  445. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  446. X440 1696 352 (................................) 352 SB
  447. X792 1696 352 (................................) 352 SB
  448. X1144 1696 352 (................................) 352 SB
  449. X1496 1696 352 (................................) 352 SB
  450. X1848 1696 176 (................) 176 SB
  451. X2025 1696 42 (20) 42 SB
  452. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  453. X450 1746 548 (How the BBS uses Unix security) 548 SB
  454. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  455. X1001 1746 352 (................................) 352 SB
  456. X1353 1746 352 (................................) 352 SB
  457. X1705 1746 319 (.............................) 319 SB
  458. X2025 1746 42 (20) 42 SB
  459. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  460. X450 1796 588 (Security Holes - external programs) 588 SB
  461. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  462. X1045 1796 352 (................................) 352 SB
  463. X1397 1796 352 (................................) 352 SB
  464. X1749 1796 275 (.........................) 275 SB
  465. X2025 1796 42 (20) 42 SB
  466. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  467. X300 1846 571 (Being a System Operator \(SysOp\)) 571 SB
  468. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  469. X880 1846 352 (................................) 352 SB
  470. X1232 1846 352 (................................) 352 SB
  471. X1584 1846 352 (................................) 352 SB
  472. X1936 1846 88 (........) 88 SB
  473. X2025 1846 42 (20) 42 SB
  474. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  475. X450 1896 255 (SysOp Utilities) 255 SB
  476. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  477. X715 1896 352 (................................) 352 SB
  478. X1067 1896 352 (................................) 352 SB
  479. X1419 1896 352 (................................) 352 SB
  480. X1771 1896 253 (.......................) 253 SB
  481. X2025 1896 42 (20) 42 SB
  482. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  483. X450 1946 392 (Watching for Problems) 392 SB
  484. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  485. X847 1946 352 (................................) 352 SB
  486. X1199 1946 352 (................................) 352 SB
  487. X1551 1946 352 (................................) 352 SB
  488. X1903 1946 121 (...........) 121 SB
  489. X2025 1946 42 (22) 42 SB
  490. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  491. X300 1996 277 (Troubleshooting) 277 SB
  492. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  493. X583 1996 352 (................................) 352 SB
  494. X935 1996 352 (................................) 352 SB
  495. X1287 1996 352 (................................) 352 SB
  496. X1639 1996 352 (................................) 352 SB
  497. X1991 1996 33 (...) 33 SB
  498. X2025 1996 42 (23) 42 SB
  499. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  500. X450 2046 318 (Potential Problems) 318 SB
  501. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  502. X770 2046 352 (................................) 352 SB
  503. X1122 2046 352 (................................) 352 SB
  504. X1474 2046 352 (................................) 352 SB
  505. X1826 2046 198 (..................) 198 SB
  506. X2025 2046 42 (23) 42 SB
  507. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  508. X300 2096 394 (Additional Information) 394 SB
  509. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  510. X704 2096 352 (................................) 352 SB
  511. X1056 2096 352 (................................) 352 SB
  512. X1408 2096 352 (................................) 352 SB
  513. X1760 2096 264 (........................) 264 SB
  514. X2025 2096 42 (23) 42 SB
  515. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  516. X450 2146 214 (File Formats) 214 SB
  517. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  518. X671 2146 352 (................................) 352 SB
  519. X1023 2146 352 (................................) 352 SB
  520. X1375 2146 352 (................................) 352 SB
  521. X1727 2146 297 (...........................) 297 SB
  522. X2025 2146 42 (23) 42 SB
  523. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  524. X450 2196 473 (How to connect to FIDONet) 473 SB
  525. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  526. X924 2196 352 (................................) 352 SB
  527. X1276 2196 352 (................................) 352 SB
  528. X1628 2196 352 (................................) 352 SB
  529. X1980 2196 44 (....) 44 SB
  530. X2025 2196 42 (25) 42 SB
  531. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  532. X450 2246 388 (UUCP, Mail and News) 388 SB
  533. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  534. X847 2246 352 (................................) 352 SB
  535. X1199 2246 352 (................................) 352 SB
  536. X1551 2246 352 (................................) 352 SB
  537. X1903 2246 121 (...........) 121 SB
  538. X2025 2246 42 (25) 42 SB
  539. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  540. X450 2296 380 (Other useful programs) 380 SB
  541. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  542. X836 2296 352 (................................) 352 SB
  543. X1188 2296 352 (................................) 352 SB
  544. X1540 2296 352 (................................) 352 SB
  545. X1892 2296 132 (............) 132 SB
  546. X2025 2296 42 (25) 42 SB
  547. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  548. X450 2346 107 (To Do) 107 SB
  549. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  550. X561 2346 352 (................................) 352 SB
  551. X913 2346 352 (................................) 352 SB
  552. X1265 2346 352 (................................) 352 SB
  553. X1617 2346 352 (................................) 352 SB
  554. X1969 2346 55 (.....) 55 SB
  555. X2025 2346 42 (25) 42 SB
  556. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  557. X450 2396 442 (More than two serial lines) 442 SB
  558. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  559. X902 2396 352 (................................) 352 SB
  560. X1254 2396 352 (................................) 352 SB
  561. X1606 2396 352 (................................) 352 SB
  562. X1958 2396 66 (......) 66 SB
  563. X2025 2396 42 (25) 42 SB
  564. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  565. X450 2446 624 (Multiple Machines and Large Setups) 624 SB
  566. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  567. X1078 2446 352 (................................) 352 SB
  568. X1430 2446 352 (................................) 352 SB
  569. X1782 2446 242 (......................) 242 SB
  570. X2025 2446 42 (26) 42 SB
  571. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  572. X600 2496 517 (Monitoring through IP sockets) 517 SB
  573. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  574. X1122 2496 352 (................................) 352 SB
  575. X1474 2496 352 (................................) 352 SB
  576. X1826 2496 198 (..................) 198 SB
  577. X2025 2496 42 (26) 42 SB
  578. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  579. X600 2546 293 (Terminal Servers) 293 SB
  580. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  581. X902 2546 352 (................................) 352 SB
  582. X1254 2546 352 (................................) 352 SB
  583. X1606 2546 352 (................................) 352 SB
  584. X1958 2546 66 (......) 66 SB
  585. X2025 2546 42 (26) 42 SB
  586. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  587. X450 2596 500 (The Roman Catacombs Setup) 500 SB
  588. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  589. X957 2596 352 (................................) 352 SB
  590. X1309 2596 352 (................................) 352 SB
  591. X1661 2596 352 (................................) 352 SB
  592. X2013 2596 11 (.) 11 SB
  593. X2025 2596 42 (27) 42 SB
  594. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  595. X300 2646 191 (Conclusion) 191 SB
  596. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  597. X495 2646 352 (................................) 352 SB
  598. X847 2646 352 (................................) 352 SB
  599. X1199 2646 352 (................................) 352 SB
  600. X1551 2646 352 (................................) 352 SB
  601. X1903 2646 121 (...........) 121 SB
  602. X2025 2646 42 (28) 42 SB
  603. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  604. X300 2696 254 (To Contact Me) 254 SB
  605. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  606. X561 2696 352 (................................) 352 SB
  607. X913 2696 352 (................................) 352 SB
  608. X1265 2696 352 (................................) 352 SB
  609. X1617 2696 352 (................................) 352 SB
  610. X1969 2696 55 (.....) 55 SB
  611. X2025 2696 42 (28) 42 SB
  612. X32 0 0 33 33 0 0 0 31 /Helvetica /font12 ANSIFont font
  613. X300 3034 484 (The rocat BBS System, copyright ) 484 SB
  614. X32 0 0 33 33 0 0 0 33 /Symbol font
  615. Xgs 810 3144 0 0 CB
  616. X784 3032 26 (\323) 26 SB
  617. Xgr
  618. X32 0 0 33 33 0 0 0 31 /Helvetica /font12 ANSIFont font
  619. X810 3034 883 ( 1994 by Gregory Shaw and fmSoft, Inc.  All Rights Reserved ) 883 SB
  620. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  621. X2079 3027 21 (2) 21 SB
  622. X1 #C
  623. Xstatusdict begin /manualfeed false store end
  624. XEJ RS
  625. X%%PageTrailer
  626. X%%PageResources: font Helvetica
  627. X%%+ font Helvetica-Bold
  628. X%%+ font Symbol
  629. X%%+ font Times-Roman
  630. X%%Page: 3 3
  631. X%%PageResources: (atend)
  632. XSS
  633. X0 0 25 25 798 1100 300 SM
  634. X32 0 0 50 50 1 0 0 47 /Helvetica-Bold /font13 ANSIFont font
  635. X0 0 0 fC
  636. X300 336 291 (Introduction) 291 SB
  637. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  638. X450 396 1622 (Welcome to the newest \(working\) BBS package available for Linux \(Unix\)!  The Roman) 1622 SB
  639. X300 444 846 (Catacombs BBS offers the following features:) 846 SB
  640. X32 0 0 42 42 0 0 0 42 /Symbol font
  641. Xgs 319 3144 0 0 CB
  642. X300 536 19 (\267) 19 SB
  643. Xgr
  644. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  645. X375 540 1167 (A familiar BBS interface for those who do not understand Unix.) 1167 SB
  646. X32 0 0 42 42 0 0 0 42 /Symbol font
  647. Xgs 319 3144 0 0 CB
  648. X300 584 19 (\267) 19 SB
  649. Xgr
  650. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  651. X375 588 1218 (Batch upload and download through the use of external protocols.) 1218 SB
  652. X32 0 0 42 42 0 0 0 42 /Symbol font
  653. Xgs 319 3144 0 0 CB
  654. X300 632 19 (\267) 19 SB
  655. Xgr
  656. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  657. X375 636 652 (Automatic user addition to the BBS) 652 SB
  658. X32 0 0 42 42 0 0 0 42 /Symbol font
  659. Xgs 319 3144 0 0 CB
  660. X300 680 19 (\267) 19 SB
  661. Xgr
  662. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  663. X375 684 1217 (A very configurable BBS with many levels of security and access.) 1217 SB
  664. X32 0 0 42 42 0 0 0 42 /Symbol font
  665. Xgs 319 3144 0 0 CB
  666. X300 728 19 (\267) 19 SB
  667. Xgr
  668. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  669. X375 732 376 (Multiline capabilities) 376 SB
  670. X32 0 0 42 42 0 0 0 42 /Symbol font
  671. Xgs 319 3144 0 0 CB
  672. X300 776 19 (\267) 19 SB
  673. Xgr
  674. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  675. X375 780 1073 (Professional code quality with future maintenance in mind) 1073 SB
  676. X32 0 0 42 42 0 0 0 42 /Symbol font
  677. Xgs 319 3144 0 0 CB
  678. X300 824 19 (\267) 19 SB
  679. Xgr
  680. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  681. X375 828 1854 (An elegant design that allows many additional features to be added without requiring a major rewrite) 1854 SB
  682. X375 876 220 (of the code.) 220 SB
  683. X300 972 587 (And many many more features.) 587 SB
  684. X32 0 0 50 50 0 0 0 47 /Helvetica-Bold /font13 ANSIFont font
  685. X300 1094 292 (Background) 292 SB
  686. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  687. X450 1154 1747 (I've been running a BBS since late 1987.  I started on Macintosh computers, and proceeded to) 1747 SB
  688. X300 1202 1894 (write some externals for the BBS package that I was using.  I wrote one game and a couple of utilities,) 1894 SB
  689. X300 1250 1589 (most of which were shareware, and brought in enough money to keep the habit going.) 1589 SB
  690. X450 1298 1040 (In 1993, I got fed up with the Macintosh for two reasons:) 1040 SB
  691. X600 1346 1340 (1.  The BBS was down if any sort of error occurred \(e.g. a system crash\)) 1340 SB
  692. X600 1394 1465 (2.  The software was very limited and didn't do what I wanted to do with a BBS.) 1465 SB
  693. X450 1490 1777 (At that point, I was doing serious software development under Unix \(Interactive SysVr3.2 for the) 1777 SB
  694. X300 1538 1848 (curious\).  I was using C++, and thought that an object oriented design for a BBS would allow a lot of) 1848 SB
  695. X300 1586 785 (flexibility.  So, I started developing a BBS.) 785 SB
  696. X450 1634 1796 (I cut over to the BBS package late in 1993.  It was a bit bare, and full of bugs, but it was a usable) 1796 SB
  697. X300 1682 1901 (BBS system.  I loved how any error in the BBS \(e.g. a crash\) logged out the user, and reset the line for) 1901 SB
  698. X300 1730 1074 (the 'next' caller rather than crashing the operating system.) 1074 SB
  699. X450 1778 1730 (Late in the year, I got caught up in Linux.  One of the major problems with writing the BBS for) 1730 SB
  700. X300 1826 1880 (Interactive Unix was the number of users using the OS.  I didn't want to create a BBS for a very small) 1880 SB
  701. X300 1874 973 (market.  So, I cut over to Linux, and started the port.) 973 SB
  702. X450 1922 1747 (After a few months of pulling my hair out because POSIX is different than BSD and SVID \(and) 1747 SB
  703. X300 1970 1884 (there are a few gaps in POSIX\), I believe I've worked around most of the problems caused by POSIX.) 1884 SB
  704. X450 2018 1683 (That brings me to the present.  The BBS is reliable, and I run a 3 line BBS on the software.) 1683 SB
  705. X450 2066 1759 (Of course, I don't claim that the BBS is bug free.  FAR FROM IT!  I do claim, however, that the) 1759 SB
  706. X300 2114 1588 (BBS is a good solution, and really offers many options to a person wanting to setup a ) 1588 SB
  707. X32 0 0 42 42 0 0 0 38 /Helvetica-Oblique /font19 ANSIFont font
  708. X1888 2114 145 (reliable ) 145 SB
  709. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  710. X2033 2114 96 (BBS.) 96 SB
  711. X32 0 0 50 50 0 0 0 47 /Helvetica-Bold /font13 ANSIFont font
  712. X300 2189 333 (Requirements) 333 SB
  713. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  714. X450 2249 1722 (The BBS has very few requirements, machine wise.  Most of this has to do with Linux.  If you) 1722 SB
  715. X300 2297 1936 (can get Linux to run on your machine, and you've got a modem, you can generally use the rocat system.) 1936 SB
  716. X300 2345 521 (The basic requirements are:) 521 SB
  717. X450 2393 237 (386 or better) 237 SB
  718. X450 2441 141 (modem) 141 SB
  719. X450 2489 1407 (development system installed \(GNU c and c++\) \(for compiling from scratch\)) 1407 SB
  720. X450 2537 580 (5 megabytes of free disk space) 580 SB
  721. X450 2585 572 (familiar with basic Linux \(Unix\)) 572 SB
  722. X450 2633 521 (TCP/IP installed \(minimally\)) 521 SB
  723. X450 2681 263 (root privileges) 263 SB
  724. X450 2729 372 (man pages installed) 372 SB
  725. X300 2777 413 (Not required, but nice:) 413 SB
  726. X450 2825 828 (8 megabytes RAM or better \(for compilation\)) 828 SB
  727. X32 0 0 33 33 0 0 0 31 /Helvetica /font12 ANSIFont font
  728. X300 3034 484 (The rocat BBS System, copyright ) 484 SB
  729. X32 0 0 33 33 0 0 0 33 /Symbol font
  730. Xgs 810 3144 0 0 CB
  731. X784 3032 26 (\323) 26 SB
  732. Xgr
  733. X32 0 0 33 33 0 0 0 31 /Helvetica /font12 ANSIFont font
  734. X810 3034 883 ( 1994 by Gregory Shaw and fmSoft, Inc.  All Rights Reserved ) 883 SB
  735. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  736. X2079 3027 21 (3) 21 SB
  737. X1 #C
  738. Xstatusdict begin /manualfeed false store end
  739. XEJ RS
  740. X%%PageTrailer
  741. X%%PageResources: font Helvetica
  742. X%%+ font Helvetica-Bold
  743. X%%+ font Helvetica-Oblique
  744. X%%+ font Symbol
  745. X%%+ font Times-Roman
  746. X%%Page: 4 4
  747. X%%PageResources: (atend)
  748. XSS
  749. X0 0 25 25 798 1100 300 SM
  750. X32 0 0 50 50 0 0 0 47 /Helvetica-Bold /font13 ANSIFont font
  751. X0 0 0 fC
  752. X300 227 491 (Multiline capabilities) 491 SB
  753. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  754. X450 287 1771 (Due to the inherent multi-user capabilities of Linux \(Unix\), it should be possible to have multiple) 1771 SB
  755. X300 335 1828 (persons using your BBS at the same time.  rocat was designed with this in mind.  It takes very little) 1828 SB
  756. X300 383 856 (system resources to run rocat on your system.) 856 SB
  757. X32 0 0 50 50 0 0 0 47 /Helvetica-Bold /font13 ANSIFont font
  758. X300 505 527 (External requirements) 527 SB
  759. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  760. X450 565 1752 (External programs are a major part of the BBS.  Due to the flexibility available in editors, news) 1752 SB
  761. X300 613 1867 (readers and mail systems, all of this capability has been left out of the BBS, so that you can pick and) 1867 SB
  762. X300 661 1331 (choose your own 'flavor' of BBS.   The externals that are necessary are:) 1331 SB
  763. X450 709 792 (editors \(vi, emacs, pico ... pick your flavor\)) 792 SB
  764. X450 757 596 (mail readers \(elm, mailx, mh ...\)) 596 SB
  765. X32 0 0 50 50 0 0 0 47 /Helvetica-Bold /font13 ANSIFont font
  766. X300 879 413 (Design decisions) 413 SB
  767. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  768. X450 939 1797 (I made some design decisions regarding this BBS.  In other words, I wanted the BBS to be what I) 1797 SB
  769. X300 987 1777 (envisioned to be the 'perfect' BBS for myself.  Some of the more esoteric features of some BBS) 1777 SB
  770. X300 1035 1850 (packages haven't been built into rocat simply because I didn't feel they were necessary for my BBS.) 1850 SB
  771. X300 1083 793 (Some of the critical design decisions were:) 793 SB
  772. X32 0 0 42 42 0 0 0 42 /Symbol font
  773. Xgs 469 3144 0 0 CB
  774. X450 1178 19 (\267) 19 SB
  775. Xgr
  776. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  777. X469 1182 1716 (  The Linux \(Unix\) system is used whenever possible.  This is due to the sophistication of the) 1716 SB
  778. X300 1234 1835 (system \(and those features\) as a whole.  The following subsystems are not part of the BBS, but are) 1835 SB
  779. X300 1282 610 (expected to be used by the BBS:) 610 SB
  780. X32 0 0 42 42 0 0 0 42 /Symbol font
  781. Xgs 619 3144 0 0 CB
  782. X600 1329 19 (\267) 19 SB
  783. Xgr
  784. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  785. X619 1333 743 (  Mail \(sendmail, smail, elm, mailx, etc.\)) 743 SB
  786. X32 0 0 42 42 0 0 0 42 /Symbol font
  787. Xgs 619 3144 0 0 CB
  788. X600 1384 19 (\267) 19 SB
  789. Xgr
  790. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  791. X619 1388 508 (  News \(fido, Internet news\)) 508 SB
  792. X32 0 0 42 42 0 0 0 42 /Symbol font
  793. Xgs 619 3144 0 0 CB
  794. X600 1439 19 (\267) 19 SB
  795. Xgr
  796. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  797. X619 1443 702 (  Chatting \(talk, irc, etc.\) \(at this point\)) 702 SB
  798. X32 0 0 42 42 0 0 0 42 /Symbol font
  799. Xgs 619 3144 0 0 CB
  800. X600 1494 19 (\267) 19 SB
  801. Xgr
  802. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  803. X619 1498 948 (  Download protocols \(rz, sz, kermit, xmodem, etc.\)) 948 SB
  804. X32 0 0 42 42 0 0 0 42 /Symbol font
  805. Xgs 619 3144 0 0 CB
  806. X600 1549 19 (\267) 19 SB
  807. Xgr
  808. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  809. X619 1553 638 (  Background processing \(at, cron\)) 638 SB
  810. X32 0 0 42 42 0 0 0 42 /Symbol font
  811. Xgs 619 3144 0 0 CB
  812. X600 1604 19 (\267) 19 SB
  813. Xgr
  814. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  815. X619 1608 626 (  Login facilities \(getty, login, etc.\)) 626 SB
  816. X32 0 0 42 42 0 0 0 42 /Symbol font
  817. Xgs 619 3144 0 0 CB
  818. X600 1659 19 (\267) 19 SB
  819. Xgr
  820. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  821. X619 1663 555 (  Modem control \(flow control\)) 555 SB
  822. X32 0 0 42 42 0 0 0 42 /Symbol font
  823. Xgs 619 3144 0 0 CB
  824. X600 1714 19 (\267) 19 SB
  825. Xgr
  826. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  827. X619 1718 224 (  Passwords) 224 SB
  828. X32 0 0 42 42 0 0 0 42 /Symbol font
  829. Xgs 469 3144 0 0 CB
  830. X450 1769 19 (\267) 19 SB
  831. Xgr
  832. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  833. X469 1773 1711 (  The BBS uses a modified 'system\(\)' function.  This assumes that the command executed is) 1711 SB
  834. X300 1825 1787 (available and will behave properly.  This has been done to allow interfacing with external system) 1787 SB
  835. X300 1873 1467 (commands \(see above\).  This is also a HUGE security hole, if used improperly.) 1467 SB
  836. X32 0 0 50 50 1 0 0 47 /Helvetica-Bold /font13 ANSIFont font
  837. X300 2068 735 (Compilation and Configuration) 735 SB
  838. X32 0 0 50 50 0 0 0 47 /Helvetica-Bold /font13 ANSIFont font
  839. X300 2154 231 (Pre-setup) 231 SB
  840. X375 2215 891 (Adding the BBS User and BBS Group) 891 SB
  841. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  842. X450 2275 1771 (A BBS administrator login and BBS administrator group is necessary for the BBS to be installed) 1771 SB
  843. X300 2323 1201 (correctly.  Do the following steps to add the BBS user and group:) 1201 SB
  844. X450 2371 233 (1.  su to root) 233 SB
  845. X600 2419 43 (su) 43 SB
  846. X600 2467 440 (< enter root password >) 440 SB
  847. X450 2515 850 (2.  Execute the groupadd program in /usr/sbin) 850 SB
  848. X600 2563 422 (/usr/sbin/groupadd bbs) 422 SB
  849. X450 2611 1742 (3.  Look at the file /etc/group.  There is a number in the third field that is the GID \(group id\) for) 1742 SB
  850. X300 2659 1601 (group BBS.  Remember this number, you'll need it for adding the BBS Admin account.) 1601 SB
  851. X600 2707 254 (cat /etc/group) 254 SB
  852. X450 2755 767 (4.  Execute the adduser program in /sbin.) 767 SB
  853. X600 2803 249 (/sbin/adduser) 249 SB
  854. X450 2851 756 (5.  The name of the user should be 'bbs'.) 756 SB
  855. X32 0 0 33 33 0 0 0 31 /Helvetica /font12 ANSIFont font
  856. X300 3034 484 (The rocat BBS System, copyright ) 484 SB
  857. X32 0 0 33 33 0 0 0 33 /Symbol font
  858. Xgs 810 3144 0 0 CB
  859. X784 3032 26 (\323) 26 SB
  860. Xgr
  861. X32 0 0 33 33 0 0 0 31 /Helvetica /font12 ANSIFont font
  862. X810 3034 883 ( 1994 by Gregory Shaw and fmSoft, Inc.  All Rights Reserved ) 883 SB
  863. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  864. X2079 3027 21 (4) 21 SB
  865. X1 #C
  866. Xstatusdict begin /manualfeed false store end
  867. XEJ RS
  868. X%%PageTrailer
  869. X%%PageResources: font Helvetica
  870. X%%+ font Helvetica-Bold
  871. X%%+ font Symbol
  872. X%%+ font Times-Roman
  873. X%%Page: 5 5
  874. X%%PageResources: (atend)
  875. XSS
  876. X0 0 25 25 798 1100 300 SM
  877. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  878. X0 0 0 fC
  879. X450 226 1772 (6.  The full name should be 'BBS Administrator', but can be anything you like \(BBS Admin, etc.\)) 1772 SB
  880. X450 274 1332 (7.  The GID should be the same as you saw in the /etc/group file above.) 1332 SB
  881. X450 322 1565 (8.  The UID \(user id\) can be anything, but I set mine up to start at 1000.  Enter 1000.) 1565 SB
  882. X450 370 842 (9.  The home directory should be /bbs/admin.) 842 SB
  883. X450 418 1732 (10.  The shell can be your favorite shell \(I prefer /bin/tcsh\).  You'll be using this account in the) 1732 SB
  884. X300 466 913 (future, so use something that you're familiar with.) 913 SB
  885. X450 514 1735 (11.  Enter a password you can remember.  Please don't make it simple; crackers LOVE to eat) 1735 SB
  886. X300 562 531 (BBSs for breakfast \(at 3am\).) 531 SB
  887. X450 610 1714 (12.  In the unpacking step, the .cshrc and .profile for the BBS Administrator will be unpacked) 1714 SB
  888. X300 658 317 (from the archive.) 317 SB
  889. X300 754 1922 (NOTE: All further steps \(unless otherwise noted\) should be done by the BBS Administrator account.  He) 1922 SB
  890. X300 802 1921 (will 'own' all of the files involved with the BBS, so you should get used to being 'him' \(or 'her'\).  You may) 1921 SB
  891. X300 850 790 (get to that user by the following command:) 790 SB
  892. X450 898 147 (su - bbs) 147 SB
  893. X450 946 712 (< enter BBS Administrator password >) 712 SB
  894. X450 1042 743 (Or, alternatively, you may login as 'bbs'.) 743 SB
  895. X450 1138 1799 (\(sub-note: don't do it until the BBS Administrator's account is available.  It won't be available until) 1799 SB
  896. X300 1186 502 (the next step is completed\)) 502 SB
  897. X32 0 0 50 50 0 0 0 47 /Helvetica-Bold /font13 ANSIFont font
  898. X300 1260 404 (Where to install?) 404 SB
  899. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  900. X450 1320 1748 (Installation of the BBS should be done on a separate disk partition, if possible.  This allows the) 1748 SB
  901. X300 1368 1847 (BBS to exist in it's own 'area'.  The following is the setup of The Roman Catacombs BBS \(my BBS\):) 1847 SB
  902. X450 1416 12 (/) 12 SB
  903. X600 1416 167 (boot disk) 167 SB
  904. X450 1464 69 (/usr) 69 SB
  905. X600 1464 227 (another disk) 227 SB
  906. X450 1512 78 (/bbs) 78 SB
  907. X600 1512 252 (the BBS disk.) 252 SB
  908. X450 1608 1603 (The BBS disk contains everything relating to the BBS, executables, headers, files, etc.) 1603 SB
  909. X450 1704 1725 (I'd recommend using a separate partition, if at all possible.  This will allow the BBS to use the) 1725 SB
  910. X300 1752 495 (disk caching of the device.) 495 SB
  911. X450 1800 1561 (If that isn't possible, pick a place to install the bbs, and make a symbolic link to /bbs.) 1561 SB
  912. X450 1848 813 (This is accomplished by the following steps:) 813 SB
  913. X600 1896 391 (1.  mkdir my_bbs_dir) 391 SB
  914. X600 1944 127 (2.  cd /) 127 SB
  915. X600 1992 1233 (3.  su \(you need root privileges to make a link in the root directory\)) 1233 SB
  916. X600 2040 846 (4.  ln -s path_to_my_bbs_dir/my_bbs_dir /bbs) 846 SB
  917. X450 2136 1786 (You'll also want to make sure that the BBS Administrator and the BBS group own the BBS home) 1786 SB
  918. X300 2184 173 (directory:) 173 SB
  919. X600 2232 893 (chown bbs.bbs path_to_my_bbs_dir/my_bbs_dir) 893 SB
  920. X450 2328 1631 (Note:  At this point, you'll want to make the directory /bbs/admin.  This is where the BBS) 1631 SB
  921. X300 2376 1917 (Administrator's home directory is found.  You won't be able to login as 'bbs' without a home directory.  It) 1917 SB
  922. X300 2424 1094 (should also be owned by the BBS Administrator and group.) 1094 SB
  923. X32 0 0 50 50 0 0 0 47 /Helvetica-Bold /font13 ANSIFont font
  924. X300 2498 533 (Unpacking the archive) 533 SB
  925. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  926. X450 2558 1647 (The archive will come in a file named 'rocat.tar.gz' or 'rocat.tgz'.  Both of these filenames) 1647 SB
  927. X300 2606 1010 (represent the same file compression.  To uncompress:) 1010 SB
  928. X450 2654 1464 (1.  su to the BBS Administrator \(all files should be owned by the administrator\):) 1464 SB
  929. X600 2702 121 (su bbs) 121 SB
  930. X600 2750 758 (<enter the BBS Administrator password>) 758 SB
  931. X450 2798 692 (2.  Copy the file to the BBS directory.) 692 SB
  932. X600 2846 586 (cp /some_path/rocat.tar.gz /bbs) 586 SB
  933. X32 0 0 33 33 0 0 0 31 /Helvetica /font12 ANSIFont font
  934. X300 3034 484 (The rocat BBS System, copyright ) 484 SB
  935. X32 0 0 33 33 0 0 0 33 /Symbol font
  936. Xgs 810 3144 0 0 CB
  937. X784 3032 26 (\323) 26 SB
  938. Xgr
  939. X32 0 0 33 33 0 0 0 31 /Helvetica /font12 ANSIFont font
  940. X810 3034 883 ( 1994 by Gregory Shaw and fmSoft, Inc.  All Rights Reserved ) 883 SB
  941. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  942. X2079 3027 21 (5) 21 SB
  943. X1 #C
  944. Xstatusdict begin /manualfeed false store end
  945. XEJ RS
  946. X%%PageTrailer
  947. X%%PageResources: font Helvetica
  948. X%%+ font Helvetica-Bold
  949. X%%+ font Symbol
  950. X%%+ font Times-Roman
  951. X%%Page: 6 6
  952. X%%PageResources: (atend)
  953. XSS
  954. X0 0 25 25 798 1100 300 SM
  955. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  956. X0 0 0 fC
  957. X450 226 514 (3.  Change directory to /bbs) 514 SB
  958. X600 274 134 (cd /bbs) 134 SB
  959. X450 322 339 (4.  Untar the BBS.) 339 SB
  960. X600 370 385 (tar xvfoz rocat.tar.gz) 385 SB
  961. X600 418 1537 (Note:  If tar complains about 'unknown option z', you need to gunzip the file prior to) 1537 SB
  962. X300 466 315 (untarring the file:) 315 SB
  963. X600 514 289 (gunzip rocat.tar) 289 SB
  964. X450 610 1733 (At this point, much of the BBS structure will be created.  Additionally, the BBS Administrator's) 1733 SB
  965. X300 658 1950 (setup information \(.cshrc, .profile, etc\) will be copied to /bbs/admin.  You'll want to log out and log back in) 1950 SB
  966. X300 706 1041 (as the BBS Administrator before continuing the process.) 1041 SB
  967. X32 0 0 50 50 0 0 0 47 /Helvetica-Bold /font13 ANSIFont font
  968. X300 830 525 (Compiling the System) 525 SB
  969. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  970. X450 890 1624 (Compiling the system is the easy part.  There is very little that needs to be done prior to) 1624 SB
  971. X300 938 1950 (compiling the code.  There are some limits setup in the main header file and spread out here and there in) 1950 SB
  972. X300 986 1894 (the code.  For the most part, you won't need to mess with these settings.  If you really feel you need to) 1894 SB
  973. X300 1034 1879 (muck around with the code, feel free.  Be warned, however, that the rocat system is a complex beast,) 1879 SB
  974. X300 1082 1930 (and a very fickle one, if changed indiscriminately.  Save an original copy of the BBS prior to making any) 1930 SB
  975. X300 1130 168 (changes.) 168 SB
  976. X450 1178 1144 (The following steps should result in a set of BBS executables:) 1144 SB
  977. X450 1226 488 (1.  CD to the src directory.) 488 SB
  978. X600 1274 216 (cd src/rocat) 216 SB
  979. X450 1322 424 (2.  Do a make depend.) 424 SB
  980. X600 1370 253 (make depend) 253 SB
  981. X450 1418 931 (3.  Do a make. This should start the build process.) 931 SB
  982. X600 1466 103 (make) 103 SB
  983. X450 1514 1686 (Come back in a couple minutes \(on a 486/66 with 20 megabytes of memory\) or a couple of) 1686 SB
  984. X300 1562 1732 (hours \(386SX-16 with 2 megabytes of memory\).  If you get errors, make sure of the following:) 1732 SB
  985. X450 1658 1729 (1.  The development system is installed.  This includes GNU C, GNU C++ and GNU LIBG++.) 1729 SB
  986. X300 1706 1308 (rocat is written in C++, and requires all of the C++ facilities to compile.) 1308 SB
  987. X450 1754 1791 (2.  Your path has the compilers in it.  'make' depends on your path to execute commands.  If you) 1791 SB
  988. X300 1802 1926 (can't execute the command, make won't be able to execute it either.  Your path should contain \(at least\)) 1926 SB
  989. X300 1850 582 (/bin, /usr/bin, and /usr/local/bin.) 582 SB
  990. X450 1898 1772 (3.  bbs owns the entire rocat directory structure.  If bbs doesn't own the directories, you won't be) 1772 SB
  991. X300 1946 1947 (able to make any changes to the files and/or directories.  \(and generally, things will be pretty broken from) 1947 SB
  992. X300 1994 155 (here on\)) 155 SB
  993. X32 0 0 50 50 0 0 0 47 /Helvetica-Bold /font13 ANSIFont font
  994. X300 2116 666 (Adding the 'new' user logon) 666 SB
  995. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  996. X450 2176 1791 (The 'new' user logon must be added to allow users to log into your BBS for the first time.  To add) 1791 SB
  997. X300 2224 805 (the 'new' user logon, do the following steps.) 805 SB
  998. X450 2272 233 (1.  su to root) 233 SB
  999. X600 2320 43 (su) 43 SB
  1000. X600 2368 440 (< enter root password >) 440 SB
  1001. X450 2416 1742 (2.  Look at the file /etc/group.  There is a number in the third field that is the GID \(group id\) for) 1742 SB
  1002. X300 2464 1476 (group BBS.  Remember this number, you'll need it for adding the 'new' account.) 1476 SB
  1003. X600 2512 254 (cat /etc/group) 254 SB
  1004. X450 2560 767 (3.  Execute the adduser program in /sbin.) 767 SB
  1005. X600 2608 249 (/sbin/adduser) 249 SB
  1006. X450 2656 765 (4.  The name of the user should be 'new'.) 765 SB
  1007. X450 2704 1658 (5.  The full name should be 'New BBS User', but can be anything you like \(New User, etc\)) 1658 SB
  1008. X450 2752 1332 (6.  The GID should be the same as you saw in the /etc/group file above.) 1332 SB
  1009. X450 2800 1764 (7.  The UID \(user id\) can be anything.  You'll be changing the UID, so enter something that isn't) 1764 SB
  1010. X300 2848 507 (already in use.  Say 10000.) 507 SB
  1011. X32 0 0 33 33 0 0 0 31 /Helvetica /font12 ANSIFont font
  1012. X300 3034 484 (The rocat BBS System, copyright ) 484 SB
  1013. X32 0 0 33 33 0 0 0 33 /Symbol font
  1014. Xgs 810 3144 0 0 CB
  1015. X784 3032 26 (\323) 26 SB
  1016. Xgr
  1017. X32 0 0 33 33 0 0 0 31 /Helvetica /font12 ANSIFont font
  1018. X810 3034 883 ( 1994 by Gregory Shaw and fmSoft, Inc.  All Rights Reserved ) 883 SB
  1019. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  1020. X2079 3027 21 (6) 21 SB
  1021. X1 #C
  1022. Xstatusdict begin /manualfeed false store end
  1023. XEJ RS
  1024. X%%PageTrailer
  1025. X%%PageResources: font Helvetica
  1026. X%%+ font Helvetica-Bold
  1027. X%%+ font Symbol
  1028. X%%+ font Times-Roman
  1029. X%%Page: 7 7
  1030. X%%PageResources: (atend)
  1031. XSS
  1032. X0 0 25 25 798 1100 300 SM
  1033. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1034. X0 0 0 fC
  1035. X450 226 715 (8.  The home directory should be /bbs.) 715 SB
  1036. X450 274 1168 (9.  The shell should be /bbs/scripts/login.scr.  This is important.) 1168 SB
  1037. X450 322 938 (10.  Enter a simple password to setup the account.) 938 SB
  1038. X450 370 686 (11.  Now comes the tricks.  cd to /etc) 686 SB
  1039. X450 418 455 (12.  Edit the passwd file.) 455 SB
  1040. X600 466 183 (vi passwd) 183 SB
  1041. X450 514 545 (13.  search for the 'new' user.) 545 SB
  1042. X600 562 87 (/new) 87 SB
  1043. X450 610 1763 (14.  You need to change the 10000 in the 'new' user's ID line to 0.  The third field is the number) 1763 SB
  1044. X300 658 803 (to change \(the file is delimited with colons\).) 803 SB
  1045. X450 706 1620 (15.  Delete the password found in the second field.  The final entry should look like this:) 1620 SB
  1046. X32 0 0 42 42 0 0 0 33 /Courier /font0 ANSIFont font
  1047. X300 801 1375 (new::0:104:New User Account:/bbs:/bbs/scripts/login.scr) 1375 SB
  1048. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1049. X450 892 1773 (The new user is now installed.  However, if you have shadow passwords installed, you'll need to) 1773 SB
  1050. X300 940 1030 (edit the file /etc/shadow to delete the password for new.) 1030 SB
  1051. X450 1036 1716 (If you do not delete the 'new' user's password, nobody will be able to log in as 'new', because) 1716 SB
  1052. X300 1084 1570 (they won't know the password.  If there is no password, it skips the password prompt.) 1570 SB
  1053. X32 0 0 50 50 0 0 0 47 /Helvetica-Bold /font13 ANSIFont font
  1054. X300 1158 328 (Configuration) 328 SB
  1055. X375 1219 280 (Linux FAQs) 280 SB
  1056. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1057. X600 1279 1588 (Note:  In the below configuration and examples, I'm assuming that you're familiar with) 1588 SB
  1058. X450 1327 732 (adding modems and configuring gettys.) 732 SB
  1059. X600 1375 1631 (If you're not familiar with these items, I recommend the Linux FAQs.  They're invaluable) 1631 SB
  1060. X450 1423 1718 (information for those starting from scratch.  The FAQs are available as part of the Slackware) 1718 SB
  1061. X450 1471 1759 (distribution, and, should you install them, are found in /usr/doc/faq.  If you don't use Slackware,) 1759 SB
  1062. X450 1519 1722 (and have access to news, please look in the comp.news.answers newsgroup for Linux FAQs.) 1722 SB
  1063. X32 0 0 50 50 0 0 0 47 /Helvetica-Bold /font13 ANSIFont font
  1064. X375 1568 509 (Modem configuration) 509 SB
  1065. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1066. X600 1628 1446 (Configuration of the modems is very important to the BBS.  If the modem isn't) 1446 SB
  1067. X450 1676 1486 (configured correctly, the BBS will never know that there is a user on the system!) 1486 SB
  1068. X600 1724 1531 (At this point, I'm using a ZyXEL U-1496+ on my BBS.  However, I won't go into the) 1531 SB
  1069. X450 1772 1754 (configuration of the modem in detail; all you really need to know is the generic parameters that) 1754 SB
  1070. X450 1820 1770 (are necessary for the modem to work.  I've included the items that are generic to most modems) 1770 SB
  1071. X450 1868 1720 (in parenthesis at the end of the description.  The following are the key configuration items for) 1720 SB
  1072. X450 1916 246 (your modem:) 246 SB
  1073. X32 0 0 42 42 0 0 0 39 /Helvetica-Bold /font13 ANSIFont font
  1074. X600 1964 498 (A GOOD MODEM CABLE) 498 SB
  1075. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1076. X1098 1965 928 (  \(one that has all pins straight through is the best\)) 928 SB
  1077. X600 2014 1443 (Serial speed \(DTE-DCE\) speed should be locked at 19.2Kbps or faster speed.) 1443 SB
  1078. X600 2062 666 (Hardware flow control should be on.) 666 SB
  1079. X600 2110 985 (The modem should reset upon loss of DTR. \(AT&D3\)) 985 SB
  1080. X600 2158 1113 (The modem should respond to carrier-detect \(CD\). \(AT&C1\)) 1113 SB
  1081. X600 2206 1196 (The modem should answer the phone on the first ring. \(ATS0=1\)) 1196 SB
  1082. X600 2254 1174 (If possible, error-free and data compression should be enabled.) 1174 SB
  1083. X600 2350 1525 (It's possible \(and sadly, probable\) that some of the above items will go by different) 1525 SB
  1084. X450 2398 137 (names.) 137 SB
  1085. X600 2446 1458 (Remember the speed you've locked the modem at.  You'll need it for the serial) 1458 SB
  1086. X450 2494 253 (configuration.) 253 SB
  1087. X32 0 0 50 50 0 0 0 47 /Helvetica-Bold /font13 ANSIFont font
  1088. X375 2591 470 (Serial configuration) 470 SB
  1089. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1090. X600 2651 1574 (Serial configuration involves telling the computer where your modems are, and, what) 1574 SB
  1091. X450 2699 1770 (speed they're running at.  At this point, I'm assuming you've got your modem\(s\) configured, and) 1770 SB
  1092. X450 2747 1030 (are ready to test the logon capabilities of your machine.) 1030 SB
  1093. X600 2795 896 (Serial configuration involves the following steps:) 896 SB
  1094. X600 2843 686 (1.  Configuring the /etc/gettydefs file.) 686 SB
  1095. X32 0 0 33 33 0 0 0 31 /Helvetica /font12 ANSIFont font
  1096. X300 3034 484 (The rocat BBS System, copyright ) 484 SB
  1097. X32 0 0 33 33 0 0 0 33 /Symbol font
  1098. Xgs 810 3144 0 0 CB
  1099. X784 3032 26 (\323) 26 SB
  1100. Xgr
  1101. X32 0 0 33 33 0 0 0 31 /Helvetica /font12 ANSIFont font
  1102. X810 3034 883 ( 1994 by Gregory Shaw and fmSoft, Inc.  All Rights Reserved ) 883 SB
  1103. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  1104. X2079 3027 21 (7) 21 SB
  1105. X1 #C
  1106. Xstatusdict begin /manualfeed false store end
  1107. XEJ RS
  1108. X%%PageTrailer
  1109. X%%PageResources: font Courier
  1110. X%%+ font Helvetica
  1111. X%%+ font Helvetica-Bold
  1112. X%%+ font Symbol
  1113. X%%+ font Times-Roman
  1114. X%%Page: 8 8
  1115. X%%PageResources: (atend)
  1116. XSS
  1117. X0 0 25 25 798 1100 300 SM
  1118. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1119. X0 0 0 fC
  1120. X600 226 897 (2.  Turning on 'getty' processes for your modem.) 897 SB
  1121. X600 274 563 (3.  Changing the /etc/issue file) 563 SB
  1122. X600 322 423 (4.  Testing \(if possible\)) 423 SB
  1123. X600 418 1548 (Configuration of the /etc/gettydefs file is easy.  Simply add the following line to your) 1548 SB
  1124. X450 466 250 (gettydefs file:) 250 SB
  1125. X32 0 0 42 42 0 0 0 33 /Courier /font0 ANSIFont font
  1126. X450 561 625 (#  Modem locked at 38400:) 625 SB
  1127. X450 603 25 (#) 25 SB
  1128. X450 645 1650 (38400# B38400 CS8 CRTSCTS # B38400 SANE -ISTRIP CRTSCTS #@S login:) 1650 SB
  1129. X450 687 150 (#38400) 150 SB
  1130. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1131. X600 778 1435 (Of course, if you are running at a different baud rate, you'll want to change all) 1435 SB
  1132. X450 826 1151 (occurrences in the above file to the baud rate you wish to use.) 1151 SB
  1133. X600 922 1544 (To turn on a 'getty' process for your modem, edit the /etc/inittab file.  In that file you) 1544 SB
  1134. X450 970 552 (should see something similar:) 552 SB
  1135. X32 0 0 42 42 0 0 0 33 /Courier /font0 ANSIFont font
  1136. X450 1065 350 (# Serial lines) 350 SB
  1137. X450 1107 1100 (s1:45:respawn:/etc/uugetty -t 90 ttyS0 38400) 1100 SB
  1138. X450 1149 1100 (s2:45:respawn:/etc/uugetty -t 90 ttyS1 38400) 1100 SB
  1139. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1140. X600 1234 1522 (The above two lines are for COM1 and COM2 ports \(DOS-style\).  The above lines) 1522 SB
  1141. X450 1282 117 (mean:) 117 SB
  1142. X600 1330 1618 (1.  Spawn a 'getty' for the port ttyS0 running from the '38400' gettytab entry when in run) 1618 SB
  1143. X450 1378 220 (level 4 or 5.) 220 SB
  1144. X600 1426 1625 (2.  If you get a carrier detect on the line, and nothing happens for 90 seconds, go ahead) 1625 SB
  1145. X450 1474 440 (and hang up the phone.) 440 SB
  1146. X600 1570 1289 (Note:  The system goes into mode 4 or 5 by default on most systems.) 1289 SB
  1147. X600 1618 1568 (Note:  Make sure that the files /dev/ttyS0 and /dev/ttyS1 exist.  They should look like) 1568 SB
  1148. X450 1666 77 (this:) 77 SB
  1149. X32 0 0 42 42 0 0 0 33 /Courier /font0 ANSIFont font
  1150. X450 1761 1625 (crw-rw-rw-   1 root     root       4,  64 May 21 19:43 /dev/ttyS0) 1625 SB
  1151. X450 1803 1625 (crw-rw-rw-   1 root     root       4,  65 May 21 19:43 /dev/ttyS1) 1625 SB
  1152. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1153. X600 1894 1553 (If these files don't exist, the 'getty' program will error off, and you'll see errors on the) 1553 SB
  1154. X450 1942 1772 (console regarding the problem entry.  If they don't exist, see the Linux FAQs for creating device) 1772 SB
  1155. X450 1990 88 (files.) 88 SB
  1156. X600 2038 1576 (If you make any changes in the /etc/inittab file, be sure to issue a 'init q' command so) 1576 SB
  1157. X450 2086 1016 (that init will re-read the file and recognize the changes.) 1016 SB
  1158. X600 2134 1632 (Note:  For new users to log on \(via the 'new' account\), the tty line must be entered in the) 1632 SB
  1159. X450 2182 1783 (/etc/securetty file.  The 'new' user runs as root, and without the securetty entry, root logon will be) 1783 SB
  1160. X450 2230 1061 (denied on that tty.  Do a 'man login' for more information.) 1061 SB
  1161. X600 2326 1625 (A default issue file can be found in /bbs/text/issue.  Edit this file and copy it to /etc/issue) 1625 SB
  1162. X450 2374 713 (to activate the message prior to logon.) 713 SB
  1163. X600 2470 1538 (If possible, you should have a friend log into your BBS.  If you have trouble, please) 1538 SB
  1164. X450 2518 982 (reference the FAQs about turning on dialup services.) 982 SB
  1165. X32 0 0 50 50 0 0 0 47 /Helvetica-Bold /font13 ANSIFont font
  1166. X375 2609 298 (Initial Logon) 298 SB
  1167. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1168. X600 2669 868 (The initial logon process is documented below:) 868 SB
  1169. X600 2717 526 (1.  The user logs in as 'new'.) 526 SB
  1170. X600 2765 1012 (2.  The user is given a 'welcome to the BBS' message.) 1012 SB
  1171. X600 2813 1257 (3.  He is asked if he already has an account, and is unable to logon.) 1257 SB
  1172. X32 0 0 33 33 0 0 0 31 /Helvetica /font12 ANSIFont font
  1173. X300 3034 484 (The rocat BBS System, copyright ) 484 SB
  1174. X32 0 0 33 33 0 0 0 33 /Symbol font
  1175. Xgs 810 3144 0 0 CB
  1176. X784 3032 26 (\323) 26 SB
  1177. Xgr
  1178. X32 0 0 33 33 0 0 0 31 /Helvetica /font12 ANSIFont font
  1179. X810 3034 883 ( 1994 by Gregory Shaw and fmSoft, Inc.  All Rights Reserved ) 883 SB
  1180. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  1181. X2079 3027 21 (8) 21 SB
  1182. X1 #C
  1183. Xstatusdict begin /manualfeed false store end
  1184. XEJ RS
  1185. X%%PageTrailer
  1186. X%%PageResources: font Courier
  1187. X%%+ font Helvetica
  1188. X%%+ font Helvetica-Bold
  1189. X%%+ font Symbol
  1190. X%%+ font Times-Roman
  1191. X%%Page: 9 9
  1192. X%%PageResources: (atend)
  1193. XSS
  1194. X0 0 25 25 798 1100 300 SM
  1195. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1196. X0 0 0 fC
  1197. X600 226 1572 (4.  If this is the case, he's asked for some information, and is able to send mail to the) 1572 SB
  1198. X450 274 782 (SysOp of the BBS.  He is then logged out.) 782 SB
  1199. X600 322 1649 (5.  If the above was not the case, he's shown a file \(/bbs/text/bbswelcome\) describing the) 1649 SB
  1200. X450 370 326 (focus of the BBS.) 326 SB
  1201. X600 418 1135 (6.  He is asked "Would you like to become part of the BBS?".) 1135 SB
  1202. X600 466 1645 (7.  If anything other than 'Yes' \(or something starting with 'y'\) is entered, he is logged out.) 1645 SB
  1203. X600 514 1499 (8.  He is then asked his first name and last name.  Checking is done from the file) 1499 SB
  1204. X450 562 1793 (/bbs/text/badwords to make sure that there isn't an illegal word in his name.  This prevents logins) 1793 SB
  1205. X450 610 1342 (of the form 'Doctor Death' and 'Joe Mama' from becoming usable logins.) 1342 SB
  1206. X600 658 1616 (9.  His first name and last name are place together to form a unique login ID for him.  It) 1616 SB
  1207. X450 706 1794 (generally takes the form first inital and last name, but if you should have a logon of that nature, it) 1794 SB
  1208. X450 754 1719 (will attempt to put additional first name characters along with the last name.  Note that only 8) 1719 SB
  1209. X450 802 590 (characters are used.  A sample:) 590 SB
  1210. X32 0 0 42 42 1 0 0 38 /Helvetica /font12 ANSIFont font
  1211. X600 850 112 (Name) 112 SB
  1212. X1200 850 115 (Logon) 115 SB
  1213. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1214. X600 898 211 (John Smith) 211 SB
  1215. X1200 898 111 (jsmith) 111 SB
  1216. X600 946 469 (John Smith \(number two\)) 469 SB
  1217. X1200 946 134 (josmith) 134 SB
  1218. X600 994 304 (Alfred Neumann) 304 SB
  1219. X1200 994 197 (aneumann) 197 SB
  1220. X600 1042 408 (Alfred Neumann \(two\)) 408 SB
  1221. X1200 1042 184 (alneuman) 184 SB
  1222. X450 1138 1713 (Note:  It is possible to get in a loop.  If you have a short name, and all possible combinations) 1713 SB
  1223. X450 1186 1755 (have been used, it will cycle endlessly, trying for a combination.  Since this is very improbable,) 1755 SB
  1224. X450 1234 581 (I've left this 'bug' in the system.) 581 SB
  1225. X600 1282 634 (10.  The user is given his login ID.) 634 SB
  1226. X600 1330 1615 (11.  The user is prompted for a password.  It will loop until a valid password \(as defined) 1615 SB
  1227. X450 1378 690 (by the password program\) is entered.) 690 SB
  1228. X600 1426 1312 (12.  The user account is added \(via the /bbs/scripts/addbbsuser script\).) 1312 SB
  1229. X600 1474 1650 (13.  The user is given a "please log in again with your new account" message and logged) 1650 SB
  1230. X450 1522 61 (off.) 61 SB
  1231. X450 1618 1238 (When he logs back in with his new account, the following happens:) 1238 SB
  1232. X600 1666 1598 (1.  Since he is not found in the userlog \(/bbs/admin/userlog\), the BBS asks whether he) 1598 SB
  1233. X450 1714 522 (wants to be part of the BBS.) 522 SB
  1234. X600 1762 462 (2.  If not, he's logged off.) 462 SB
  1235. X600 1810 826 (3.  He is asked for the city he is calling from.) 826 SB
  1236. X600 1858 852 (4.  He is asked for the state he is calling from.) 852 SB
  1237. X600 1906 1493 (5.  He is shown a message describing what terminal types are, and asked for the) 1493 SB
  1238. X450 1954 658 (terminal type his software supports.) 658 SB
  1239. X600 2002 1474 (6.  He is asked whether his software supports color.  \(this isn't used at this time\)) 1474 SB
  1240. X600 2050 1584 (7.  He is shown a file describing the editors available on the system \(/bbs/text/editors\)) 1584 SB
  1241. X450 2098 692 (and asked which one he'd like to use.) 692 SB
  1242. X600 2146 506 (8.  He is asked for an alias.) 506 SB
  1243. X600 2194 1099 (9.  He is asked how many lines are available on his screen.) 1099 SB
  1244. X600 2242 1192 (10.  He is asked how many columns are available on his screen.) 1192 SB
  1245. X600 2290 1638 (11.  He is prompted with the above information, and asked whether it is correct.  If not, it) 1638 SB
  1246. X450 2338 283 (goes back to 3.) 283 SB
  1247. X600 2386 724 (12.  He is logged into the BBS \(saved\).) 724 SB
  1248. X600 2434 1150 (13.  He is shown the 'welcome' message.  \(/bbs/text/welcome\)) 1150 SB
  1249. X600 2482 777 (14.  His personal information is displayed.) 777 SB
  1250. X600 2530 1152 (15.  He is walked through system1.msg through system3.msg.) 1152 SB
  1251. X750 2578 961 (\(Note:  this can be turned off through the config file\)) 961 SB
  1252. X600 2626 679 (15.  He is given an optional 'fortune'.) 679 SB
  1253. X600 2674 1495 (16.  At this point, the BBS runs the menu 'main', and the BBS operates normally.) 1495 SB
  1254. X32 0 0 50 50 0 0 0 47 /Helvetica-Bold /font13 ANSIFont font
  1255. X375 2723 338 (Logon Scripts) 338 SB
  1256. X32 0 0 33 33 0 0 0 31 /Helvetica /font12 ANSIFont font
  1257. X300 3034 484 (The rocat BBS System, copyright ) 484 SB
  1258. X32 0 0 33 33 0 0 0 33 /Symbol font
  1259. Xgs 810 3144 0 0 CB
  1260. X784 3032 26 (\323) 26 SB
  1261. Xgr
  1262. X32 0 0 33 33 0 0 0 31 /Helvetica /font12 ANSIFont font
  1263. X810 3034 883 ( 1994 by Gregory Shaw and fmSoft, Inc.  All Rights Reserved ) 883 SB
  1264. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  1265. X2079 3027 21 (9) 21 SB
  1266. X1 #C
  1267. Xstatusdict begin /manualfeed false store end
  1268. XEJ RS
  1269. X%%PageTrailer
  1270. X%%PageResources: font Helvetica
  1271. X%%+ font Helvetica-Bold
  1272. X%%+ font Symbol
  1273. X%%+ font Times-Roman
  1274. X%%Page: 10 10
  1275. X%%PageResources: (atend)
  1276. XSS
  1277. X0 0 25 25 798 1100 300 SM
  1278. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1279. X0 0 0 fC
  1280. X600 226 1535 (You'll want to edit your logon script to represent 'your' BBS.  The script I am talking) 1535 SB
  1281. X450 274 1641 (about is found in /bbs/scripts/login.scr.  There is a 'Welcome to The Roman Catacombs!') 1641 SB
  1282. X450 322 1285 (message found in there that you'll want to change to your BBS name.) 1285 SB
  1283. X600 370 1640 (You'll also want to edit the '/bbs/bbs' file.  This file is the pipe that allows users to use the) 1640 SB
  1284. X450 418 713 (BBS effectively.  The file is as follows:) 713 SB
  1285. X32 0 0 42 42 0 0 0 33 /Courier /font0 ANSIFont font
  1286. X450 513 1300 (# file to execute prior to starting main bbs program) 1300 SB
  1287. X450 555 25 (#) 25 SB
  1288. X450 681 150 (IFS="") 150 SB
  1289. X450 723 1325 (PATH=/bin:/usr/bin:/usr/games:/usr/local/bin:/usr/ucb) 1325 SB
  1290. X450 765 275 (export PATH) 275 SB
  1291. X450 807 275 (BBSDIR=/bbs) 275 SB
  1292. X450 849 250 (SYSOP=shaw) 250 SB
  1293. X450 891 275 (VISUAL=pico) 275 SB
  1294. X450 933 275 (EDITOR=pico) 275 SB
  1295. X450 975 925 (export BBSDIR SYSOP VISUAL EDITOR IFS) 925 SB
  1296. X450 1017 475 (SHELL=$BBSDIR/rocat) 475 SB
  1297. X450 1059 300 (export SHELL) 300 SB
  1298. X450 1143 1625 (# hack to get around the getty's problem with not setting CRTSCTS) 1625 SB
  1299. X450 1185 825 (# setup default terminal settings) 825 SB
  1300. X450 1269 1100 (stty erase "^H" kill "^U" intr "^C" eof "^D") 1100 SB
  1301. X450 1311 725 (stty hupcl ixon ixoff crtscts) 725 SB
  1302. X450 1395 275 (exec $SHELL) 275 SB
  1303. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1304. X600 1486 1646 (In the above file, you should change the SYSOP variable, and any other options you feel) 1646 SB
  1305. X450 1534 1689 (it is necessary to change.  I've got the editor set to 'pico' at this point, as it is an easy to use) 1689 SB
  1306. X450 1582 473 (editor with excellent help.) 473 SB
  1307. X32 0 0 50 50 0 0 0 47 /Helvetica-Bold /font13 ANSIFont font
  1308. X375 1681 434 (System messages) 434 SB
  1309. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1310. X600 1741 758 (Note:  All text files are found in /bbs/text.) 758 SB
  1311. X600 1789 1417 (There are quite a few text files that are used regularly in the BBS.  They are:) 1417 SB
  1312. X32 0 0 42 42 1 0 0 38 /Helvetica /font12 ANSIFont font
  1313. X600 1885 174 (Filename) 174 SB
  1314. X900 1885 166 (Contents) 166 SB
  1315. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1316. X600 1933 178 (badwords) 178 SB
  1317. X900 1933 954 (those words deemed inappropriate for logon names) 954 SB
  1318. X600 1981 135 (bbsinfo) 135 SB
  1319. X900 1981 926 (a short description of the BBS hardware \(optional\)) 926 SB
  1320. X600 2029 231 (bbswelcome) 231 SB
  1321. X900 2029 1136 (a short blurb on the BBS used prior to logging in the first time) 1136 SB
  1322. X600 2077 125 (editors) 125 SB
  1323. X900 2077 724 (a list of editors available on the system) 724 SB
  1324. X600 2125 105 (logoff) 105 SB
  1325. X900 2125 861 (the logoff message given to the user upon exit) 861 SB
  1326. X600 2173 246 (newuser.msg) 246 SB
  1327. X900 2173 609 (shown to the user on initial logon) 609 SB
  1328. X600 2221 283 (system1-3.msg) 283 SB
  1329. X900 2221 779 (status messages about the BBS \(optional\)) 779 SB
  1330. X600 2269 165 (welcome) 165 SB
  1331. X900 2269 880 (a mood-setting intro blurb shown on each logon) 880 SB
  1332. X600 2365 1197 (All of the above files are customizable in any fashion you see fit.) 1197 SB
  1333. X600 2461 792 (You'll end up modifying almost all of them.) 792 SB
  1334. X32 0 0 50 50 0 0 0 47 /Helvetica-Bold /font13 ANSIFont font
  1335. X375 2560 157 (Menus) 157 SB
  1336. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1337. X600 2620 1606 (The menus are how a user interacts with the BBS program.  Because of this, the entire) 1606 SB
  1338. X450 2668 1719 ('feel' of your BBS is how you setup the menus.  This is the place where you differentiate your) 1719 SB
  1339. X450 2716 1214 (BBS from other BBSs.  Well, enough soap-box.  Let's get started.) 1214 SB
  1340. X600 2764 1588 (When the BBS program starts, it displays the user information, the system messages,) 1588 SB
  1341. X450 2812 1768 (and then calls the mandatory 'main' menu.  This menu serves as the keystone menu; a place to) 1768 SB
  1342. X450 2860 93 (start.) 93 SB
  1343. X32 0 0 33 33 0 0 0 31 /Helvetica /font12 ANSIFont font
  1344. X300 3034 484 (The rocat BBS System, copyright ) 484 SB
  1345. X32 0 0 33 33 0 0 0 33 /Symbol font
  1346. Xgs 810 3144 0 0 CB
  1347. X784 3032 26 (\323) 26 SB
  1348. Xgr
  1349. X32 0 0 33 33 0 0 0 31 /Helvetica /font12 ANSIFont font
  1350. X810 3034 883 ( 1994 by Gregory Shaw and fmSoft, Inc.  All Rights Reserved ) 883 SB
  1351. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  1352. X2058 3027 42 (10) 42 SB
  1353. X1 #C
  1354. Xstatusdict begin /manualfeed false store end
  1355. XEJ RS
  1356. X%%PageTrailer
  1357. X%%PageResources: font Courier
  1358. X%%+ font Helvetica
  1359. X%%+ font Helvetica-Bold
  1360. X%%+ font Symbol
  1361. X%%+ font Times-Roman
  1362. X%%Page: 11 11
  1363. X%%PageResources: (atend)
  1364. XSS
  1365. X0 0 25 25 798 1100 300 SM
  1366. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1367. X0 0 0 fC
  1368. X600 226 1558 (Let me start with what a menu does.  Basically, a BBS menu shows the user a list of) 1558 SB
  1369. X450 274 1779 (options, and, when an option is selected, tells the BBS to do something.  That something can be) 1779 SB
  1370. X450 322 1719 (as simple as 'transfer to another menu', or as complex as 'call the external mailer program to) 1719 SB
  1371. X450 370 1742 (send a message to the SysOp'.  It is all up to you on how complex you wish your menus to be.) 1742 SB
  1372. X600 418 1574 (A menu, as described above, is made up of 'options'.  These options take the form of) 1574 SB
  1373. X450 466 1662 (individual items, each found on an individual line.  A typical menu looks like the following:) 1662 SB
  1374. X32 0 0 42 42 0 0 0 33 /Courier /font0 ANSIFont font
  1375. X450 561 600 (0||||||| Roman Catacombs) 600 SB
  1376. X450 603 275 (Entry Vault) 275 SB
  1377. X450 645 1800 (0||||||| ---------------------------------------------------------------) 1800 SB
  1378. X450 687 300 (------------) 300 SB
  1379. X450 729 200 (0|||||||) 200 SB
  1380. X450 771 1175 (0|||||||                                   Exit) 1175 SB
  1381. X450 813 200 (0|||||||) 200 SB
  1382. X450 855 1225 (0|||||||                                      <G>) 1225 SB
  1383. X450 897 1500 (0|||||||                        ----------------------------) 1500 SB
  1384. X450 939 925 (0|||||||                        H>elp) 925 SB
  1385. X450 981 1550 (0|||||||                    <W> P>rivate Mail              <E>) 1550 SB
  1386. X450 1023 1750 (0|||||||          Art Studio -- R>egistration Instructions -- Computer) 1750 SB
  1387. X450 1065 125 (Files) 125 SB
  1388. X450 1107 1050 (0|||||||                        U>tilities) 1050 SB
  1389. X450 1149 1250 (0||400|>||||                        S<Y>sop's Area) 1250 SB
  1390. X450 1191 1200 (0|||||||                        C>hat with SysOp) 1200 SB
  1391. X450 1233 1500 (0|||||||                        ----------------------------) 1500 SB
  1392. X450 1275 1225 (0|||||||                                      <S>) 1225 SB
  1393. X450 1317 200 (0|||||||) 200 SB
  1394. X450 1359 1325 (0|||||||                               News and Games) 1325 SB
  1395. X450 1401 200 (0|||||||) 200 SB
  1396. X450 1443 1800 (0||||||| ---------------------------------------------------------------) 1800 SB
  1397. X450 1485 300 (------------) 300 SB
  1398. X450 1527 1775 (0||||||| <-> Previous Menu     <F> Feedback to SysOp   <G> Quick Logout) 1775 SB
  1399. X450 1569 225 (1|g||||||) 225 SB
  1400. X450 1611 225 (3|-||||||) 225 SB
  1401. X450 1653 225 (8|c||||||) 225 SB
  1402. X450 1695 450 (2|y|400|>|||sysop|) 450 SB
  1403. X450 1737 550 (2|e|||||computerfiles|) 550 SB
  1404. X450 1779 475 (2|w|||||art_studio|) 475 SB
  1405. X450 1821 475 (2|s|||||newsngames|) 475 SB
  1406. X450 1863 450 (2|u|||||utilities|) 450 SB
  1407. X450 1905 750 (21|f|||||elm -s feedback shaw|) 750 SB
  1408. X450 1947 325 (2|p|||||mail|) 325 SB
  1409. X450 1989 475 (10|r|||||reg.instr|) 475 SB
  1410. X450 2031 400 (2|h|||||helptop|) 400 SB
  1411. X450 2073 400 (2|h|||||helptop|) 400 SB
  1412. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1413. X600 2164 1060 (The above is the main menu for The Roman Catacombs.) 1060 SB
  1414. X600 2212 537 (Let's dissect a particular line:) 537 SB
  1415. X32 0 0 42 42 0 0 0 33 /Courier /font0 ANSIFont font
  1416. X450 2307 600 (0||||||| Roman Catacombs) 600 SB
  1417. X450 2349 275 (Entry Vault) 275 SB
  1418. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1419. X600 2440 1635 (In the above line, there is a number, followed by a number of pipe-letters \(|\), followed by) 1635 SB
  1420. X450 2488 1757 (some text.  In the above line, you find eight fields separated by the pipe letters.  The fields are:) 1757 SB
  1421. X600 2536 414 (1.  Command Number) 414 SB
  1422. X600 2584 493 (2.  Key used to select item) 493 SB
  1423. X600 2632 511 (3.  Access level to see item) 511 SB
  1424. X600 2680 457 (4.  Access level modifier) 457 SB
  1425. X600 2728 544 (5.  Flags required to see item) 544 SB
  1426. X600 2776 325 (6.  Flags modifier) 325 SB
  1427. X600 2824 309 (7.  Optional data) 309 SB
  1428. X600 2872 449 (8.  The text for the item.) 449 SB
  1429. X32 0 0 33 33 0 0 0 31 /Helvetica /font12 ANSIFont font
  1430. X300 3034 484 (The rocat BBS System, copyright ) 484 SB
  1431. X32 0 0 33 33 0 0 0 33 /Symbol font
  1432. Xgs 810 3144 0 0 CB
  1433. X784 3032 26 (\323) 26 SB
  1434. Xgr
  1435. X32 0 0 33 33 0 0 0 31 /Helvetica /font12 ANSIFont font
  1436. X810 3034 883 ( 1994 by Gregory Shaw and fmSoft, Inc.  All Rights Reserved ) 883 SB
  1437. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  1438. X2058 3027 42 (11) 42 SB
  1439. X1 #C
  1440. Xstatusdict begin /manualfeed false store end
  1441. XEJ RS
  1442. X%%PageTrailer
  1443. X%%PageResources: font Courier
  1444. X%%+ font Helvetica
  1445. X%%+ font Symbol
  1446. X%%+ font Times-Roman
  1447. X%%Page: 12 12
  1448. X%%PageResources: (atend)
  1449. XSS
  1450. X0 0 25 25 798 1100 300 SM
  1451. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1452. X0 0 0 fC
  1453. X600 274 1616 (In the above line, 0 is the command number \(which is a text-only command\), and fields) 1616 SB
  1454. X450 322 1114 (2-7 are blank \(e.g. unused\), and field 8 is the text to display.) 1114 SB
  1455. X600 370 1437 (The user doesn't see anything but field 8.  If field 8 is empty, he sees nothing.) 1437 SB
  1456. X600 418 1649 (When a field is blank, it's assumed that everything is available.  For example, field 2 was) 1649 SB
  1457. X450 466 1700 (the key to select the item.  Since it's an output only item, having a key there would be pretty) 1700 SB
  1458. X450 514 477 (useless, hence it's empty.) 477 SB
  1459. X600 562 751 (Let me define the fields in human terms:) 751 SB
  1460. X32 0 0 42 42 1 0 0 38 /Helvetica /font12 ANSIFont font
  1461. X450 658 92 (Field) 92 SB
  1462. X600 658 353 (Formal Description) 353 SB
  1463. X1200 658 73 (Use) 73 SB
  1464. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1465. X450 706 35 (1.) 35 SB
  1466. X600 706 355 (Command Number) 355 SB
  1467. X1200 706 725 (Tell the BBS what operation to perform) 725 SB
  1468. X450 754 35 (2.) 35 SB
  1469. X600 754 257 (Selection Key) 257 SB
  1470. X1200 754 563 (Key used to select menu item.) 563 SB
  1471. X450 802 35 (3.) 35 SB
  1472. X600 802 247 (Access Level) 247 SB
  1473. X1200 802 707 (Access level required to see/use item.) 707 SB
  1474. X450 850 35 (4.) 35 SB
  1475. X600 850 247 (Access Flags) 247 SB
  1476. X1200 850 593 (Define how to use Access Level) 593 SB
  1477. X450 898 35 (5.) 35 SB
  1478. X600 898 102 (Flags) 102 SB
  1479. X1200 898 610 (Flags necessary to see/use item.) 610 SB
  1480. X450 946 35 (6.) 35 SB
  1481. X600 946 265 (Flags Modifier) 265 SB
  1482. X1200 946 460 (Define how to use Flags.) 460 SB
  1483. X450 994 35 (7.) 35 SB
  1484. X600 994 257 (Optional Data) 257 SB
  1485. X1200 994 490 (\(command specific usage\)) 490 SB
  1486. X450 1042 35 (8.) 35 SB
  1487. X600 1042 83 (Text) 83 SB
  1488. X1200 1042 341 (Text to show user.) 341 SB
  1489. X600 1138 611 (Let me do a few more examples:) 611 SB
  1490. X32 0 0 42 42 0 0 0 33 /Courier /font0 ANSIFont font
  1491. X450 1233 550 (2|e|||||computerfiles|) 550 SB
  1492. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1493. X600 1318 1589 (In the above line, 2 is the command \(which means change to another menu\), 'e' is the) 1589 SB
  1494. X450 1366 1732 (key used to activate the item, and all the rest of the fields are null.  Note how the 'e' goes with) 1732 SB
  1495. X450 1414 441 (the item found above it:) 441 SB
  1496. X32 0 0 42 42 0 0 0 33 /Courier /font0 ANSIFont font
  1497. X450 1509 1550 (0|||||||                    <W> P>rivate Mail              <E>) 1550 SB
  1498. X450 1551 1750 (0|||||||          Art Studio -- R>egistration Instructions -- Computer) 1750 SB
  1499. X450 1593 125 (Files) 125 SB
  1500. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1501. X600 1684 1499 (The user would select 'e' to go to the 'Computer Files' area \(a menu in this case\).) 1499 SB
  1502. X600 1732 1489 (This is how menus work.  They define the text that a user sees, and, define what) 1489 SB
  1503. X450 1780 878 (happens when a user activates that menu item.) 878 SB
  1504. X600 1876 1589 (Of course, there are times when you want certain users to be able to use a command,) 1589 SB
  1505. X450 1924 1731 (and, times when only you should be able to use a command.  Generally, these are defined by) 1731 SB
  1506. X450 1972 1759 (the security of the BBS.  There are commands that should only be executed only by the SysOp) 1759 SB
  1507. X450 2020 1764 (\(or someone very trustworthy\).  For this reason, there are fields 3 through 6.  These fields allow) 1764 SB
  1508. X450 2068 1800 (you to define who gets to see and use what commands, based on access level and flags.  Let me) 1800 SB
  1509. X450 2116 704 (define fields 3 through 6 a little better:) 704 SB
  1510. X600 2212 1614 (Field 3 sets the access level for the command.  This and field 4 define the access level) 1614 SB
  1511. X450 2260 894 (required to see/use the command.  An example:) 894 SB
  1512. X32 0 0 42 42 0 0 0 33 /Courier /font0 ANSIFont font
  1513. X450 2355 450 (2|y|400|>|||sysop|) 450 SB
  1514. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1515. X600 2446 1579 (The above item defines a switch to another menu, the 'SysOp' menu.  Of course, you) 1579 SB
  1516. X450 2494 1762 (don't want just anybody accessing this menu.  That is why the 400 and the '>' symbol are there.) 1762 SB
  1517. X450 2542 1798 (The 400 is the access level \(ACL\), and the '>' means that the user's access level must be greater) 1798 SB
  1518. X450 2590 1017 (than or equal to 400 to see and access this menu item.) 1017 SB
  1519. X600 2638 1569 (By the same token, the flags required to see/use an item are selected the same way:) 1569 SB
  1520. X32 0 0 42 42 0 0 0 33 /Courier /font0 ANSIFont font
  1521. X450 2733 400 (2|y|||1|=|sysop|) 400 SB
  1522. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1523. X600 2824 1634 (The above item has flag 1 in the flags area and '=' in the modifiers.  This means that the) 1634 SB
  1524. X450 2872 1082 (user must have flag 1 set before he may see/use the item.) 1082 SB
  1525. X32 0 0 33 33 0 0 0 31 /Helvetica /font12 ANSIFont font
  1526. X300 3034 484 (The rocat BBS System, copyright ) 484 SB
  1527. X32 0 0 33 33 0 0 0 33 /Symbol font
  1528. Xgs 810 3144 0 0 CB
  1529. X784 3032 26 (\323) 26 SB
  1530. Xgr
  1531. X32 0 0 33 33 0 0 0 31 /Helvetica /font12 ANSIFont font
  1532. X810 3034 883 ( 1994 by Gregory Shaw and fmSoft, Inc.  All Rights Reserved ) 883 SB
  1533. X32 0 0 42 42 0 0 0 38 /Times-Roman /font32 ANSIFont font
  1534. X2058 3027 42 (12) 42 SB
  1535. X1 #C
  1536. Xstatusdict begin /manualfeed false store end
  1537. XEJ RS
  1538. X%%PageTrailer
  1539. X%%PageResources: font Courier
  1540. X%%+ font Helvetica
  1541. X%%+ font Symbol
  1542. X%%+ font Times-Roman
  1543. X%%Page: 13 13
  1544. X%%PageResources: (atend)
  1545. XSS
  1546. X0 0 25 25 798 1100 300 SM
  1547. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1548. X0 0 0 fC
  1549. X600 274 647 (The fields will accept the following:) 647 SB
  1550. X32 0 0 42 42 1 0 0 38 /Helvetica /font12 ANSIFont font
  1551. X450 370 92 (Field) 92 SB
  1552. X750 370 272 (Valid Contents) 272 SB
  1553. X1200 370 160 (Meaning) 160 SB
  1554. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1555. X450 418 81 (ACL) 81 SB
  1556. X750 418 152 (0-32767) 152 SB
  1557. X450 466 244 (ACL Modifier) 244 SB
  1558. X750 466 25 (>) 25 SB
  1559. X1200 466 834 (User must have ACL greater or equal to ACL) 834 SB
  1560. X750 514 25 (<) 25 SB
  1561. X1200 514 658 (User must have ACL less than ACL) 658 SB
  1562. X750 562 25 (=) 25 SB
  1563. X1200 562 641 (User must have ACL equal to ACL) 641 SB
  1564. X450 610 102 (Flags) 102 SB
  1565. X750 610 83 (1-32) 83 SB
  1566. X450 658 265 (Flags Modifier) 265 SB
  1567. X750 658 25 (=) 25 SB
  1568. X1200 658 442 (User must have flag set) 442 SB
  1569. X750 706 14 (!) 14 SB
  1570. X1200 706 512 (User must not have flag set) 512 SB
  1571. X600 802 1476 (Based on the above, you can have all sorts of permutations based on the user's) 1476 SB
  1572. X450 850 220 (capabilities.) 220 SB
  1573. X600 946 1334 (The official definitions for the command numbers \(the first field\) follows:) 1334 SB
  1574. X32 0 0 42 42 1 0 0 38 /Helvetica /font12 ANSIFont font
  1575. X450 1042 194 (Command) 194 SB
  1576. X750 1042 209 (Description) 209 SB
  1577. X1650 1042 257 (Optional Data) 257 SB
  1578. X32 0 0 42 42 0 0 0 38 /Helvetica /font12 ANSIFont font
  1579. X450 1090 23 (0) 23 SB
  1580. END_OF_FILE
  1581.   if test 83289 -ne `wc -c <'rocat-0.75/doc/bbsinstl.ps.A'`; then
  1582.     echo shar: \"'rocat-0.75/doc/bbsinstl.ps.A'\" unpacked with wrong size!
  1583.   elif test -f 'rocat-0.75/doc/bbsinstl.ps.B'; then
  1584.     echo shar: Combining  \"'rocat-0.75/doc/bbsinstl.ps'\" \(173724 characters\)
  1585.     cat 'rocat-0.75/doc/bbsinstl.ps.A' 'rocat-0.75/doc/bbsinstl.ps.B' > 'rocat-0.75/doc/bbsinstl.ps'
  1586.     if test 173724 -ne `wc -c <'rocat-0.75/doc/bbsinstl.ps'`; then
  1587.       echo shar: \"'rocat-0.75/doc/bbsinstl.ps'\" combined with wrong size!
  1588.     else
  1589.       rm rocat-0.75/doc/bbsinstl.ps.A rocat-0.75/doc/bbsinstl.ps.B
  1590.     fi
  1591.   fi
  1592.   # end of 'rocat-0.75/doc/bbsinstl.ps.A'
  1593. fi
  1594. if test -f 'rocat-0.75/src/bbsint.C' -a "${1}" != "-c" ; then 
  1595.   echo shar: Will not clobber existing file \"'rocat-0.75/src/bbsint.C'\"
  1596. else
  1597.   echo shar: Extracting \"'rocat-0.75/src/bbsint.C'\" \(9141 characters\)
  1598.   sed "s/^X//" >'rocat-0.75/src/bbsint.C' <<'END_OF_FILE'
  1599. X// Filename:    bbsint.C
  1600. X// Contents:    the bbs interface object methods
  1601. X// Author:        Greg Shaw
  1602. X// Created:        7/12/93
  1603. X
  1604. X/*
  1605. XThis file is free software; you can redistribute it and/or modify it
  1606. Xunder the terms of the GNU General Public License as published by the
  1607. XFree Software Foundation; either version 2, or (at your option) any
  1608. Xlater version.
  1609. X
  1610. XIn addition to the permissions in the GNU General Public License, the
  1611. XFree Software Foundation gives you unlimited permission to link the
  1612. Xcompiled version of this file with other programs, and to distribute
  1613. Xthose programs without any restriction coming from the use of this
  1614. Xfile.  (The General Public License restrictions do apply in other
  1615. Xrespects; for example, they cover modification of the file, and
  1616. Xdistribution when not linked into another program.)
  1617. X
  1618. XThis file is distributed in the hope that it will be useful, but
  1619. XWITHOUT ANY WARRANTY; without even the implied warranty of
  1620. XMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  1621. XGeneral Public License for more details.
  1622. X
  1623. XYou should have received a copy of the GNU General Public License
  1624. Xalong with this program; see the file COPYING.  If not, write to
  1625. Xthe Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  1626. X
  1627. X#ifndef _BBSINT_C_
  1628. X#define _BBSINT_C_
  1629. X
  1630. X#include "bbshdr.h"
  1631. X
  1632. X#undef DEBUG
  1633. X// monitor connection object
  1634. X
  1635. Xextern moncon mon_obj;
  1636. X
  1637. X// Method:    constructor
  1638. X// Purpose:    initialize all variables and attempt to connect to sysop process
  1639. X// Input:    none
  1640. X// Output:    none
  1641. X// Author:    Greg Shaw
  1642. X// Created:    7/12/93
  1643. X
  1644. Xbbsint::bbsint()
  1645. X{
  1646. X
  1647. X    cur_colors[0] = cur_colors[1] = 0;        // no color .. yet
  1648. X    cur_pos[0] = cur_pos[1] = 0;        // current position 0,0
  1649. X    if (!mon_obj.connected())
  1650. X        mon_obj.connect_mon();        // try to connect to monitor
  1651. X    tcgetattr(0, &rbuf);    // get regular mode termio stuff
  1652. X    term_mode(1);        // turn on nonblocking i/o
  1653. X};
  1654. X
  1655. X// Method:    char_avail
  1656. X// Purpose:    return true if a character is available (depending on port)
  1657. X// Input:    who - 0 for IPC (from monitor) 1 for from user
  1658. X// Output:    1 for character available, 0 for no char available
  1659. X// Author:    Greg Shaw
  1660. X// Created:    7/12/93
  1661. X
  1662. Xint bbsint::char_avail(int who, int timeout)
  1663. X{
  1664. X    struct fd_set fds[2];
  1665. X    struct timeval waittime;
  1666. X
  1667. X    waittime.tv_sec = 0;
  1668. X    waittime.tv_usec = 100;
  1669. X    if (!who)        // ipc.
  1670. X    {
  1671. X#ifdef DEBUG
  1672. Xprintf("ipc check\r\n");
  1673. Xfflush(stdout);
  1674. X#endif
  1675. X        if (mon_obj.connected())
  1676. X            if (mon_obj.msg_avail(0))
  1677. X                return(1);
  1678. X    }
  1679. X    else    // normal user
  1680. X    {
  1681. X#ifdef DEBUG
  1682. Xprintf("serial check\r\n");
  1683. Xfflush(stdout);
  1684. X#endif
  1685. X        FD_SET(fileno(stdin), fds);
  1686. X        if (select(1,fds,NULL,NULL,&waittime)) 
  1687. X            return(1);
  1688. X    }
  1689. X    return(0);
  1690. X}
  1691. X
  1692. X// Method:    clear
  1693. X// Purpose:    attempt to clear the user's screen
  1694. X// Input:    none
  1695. X// Output:    a ctrl-l is sent to user.  This should be changed to do
  1696. X//             curses/text screen clearing when full screen possible
  1697. X// Author:    Greg Shaw
  1698. X// Created:    7/25/93
  1699. X
  1700. Xint bbsint::clear(void)
  1701. X{
  1702. X    char    clrstr[] = {0xc,0};    // ctrl-l (new page)
  1703. X
  1704. X    sstr(clrstr);
  1705. X    return(0);
  1706. X};
  1707. X
  1708. X// Method:    cr
  1709. X// Purpose:    send a carriage return to the user (and sysop if applicable)
  1710. X// Input:    none
  1711. X// Output:    see purpose.
  1712. X// Author:    Greg Shaw
  1713. X// Created:    7/12/93
  1714. X
  1715. Xvoid bbsint::cr(void)
  1716. X{
  1717. X    char crmsg[] = "\r\n";
  1718. X
  1719. X    mon_obj.send_monitor(crmsg);
  1720. X    printf(crmsg);
  1721. X};
  1722. X
  1723. X// Method:    display_file
  1724. X// Purpose:    display a file to the user using the system pager
  1725. X// Input:    path - path and file name (absolute path only)
  1726. X//            page - use paging 
  1727. X// Output:    file is displayed or error returned.
  1728. X// Author:    Greg Shaw
  1729. X// Created:    7/25/93
  1730. X
  1731. Xint bbsint::display_file(char *path, char page)
  1732. X{
  1733. X    char    pagername[30];
  1734. X    char    tmpstr[255];
  1735. X    char    c;
  1736. X    int    clen;
  1737. X    FILE    *infile;
  1738. X
  1739. X
  1740. X    clear();
  1741. X    if (page)
  1742. X    {
  1743. X        sprintf(tmpstr,"Viewing %s\n",path);        // add file name
  1744. X        mon_obj.send_monitor(tmpstr);
  1745. X        sstrcr("Press 'q' to quit, space bar to page");
  1746. X        if (strcpy(pagername,sys_pager()), pagername == NULL)
  1747. X            return(-1);
  1748. X        strcpy(tmpstr,pagername);    // get command name
  1749. X        strcat(tmpstr," ");            // add space
  1750. X        strcat(tmpstr,path);        // add file name
  1751. X        if (sysint(tmpstr) < 0)
  1752. X        {
  1753. X            ap_log("display_file: unable to execute sysint() call.");
  1754. X            return(-1);
  1755. X        }
  1756. X        waitcr();
  1757. X    }
  1758. X    else
  1759. X    {
  1760. X        if (infile = bopen(path,"r"), infile == NULL)
  1761. X            return(-1);
  1762. X        else
  1763. X            clen = 0;
  1764. X            while (!feof(infile))
  1765. X            {
  1766. X                c = fgetc(infile);    
  1767. X                if (clen % 50 == 0 && clen > 0)
  1768. X                {
  1769. X                    tmpstr[clen] = 0;
  1770. X                    sstr(tmpstr);
  1771. X                    clen = 0;
  1772. X                }
  1773. X                if (!feof(infile))
  1774. X                    tmpstr[clen++] = c;
  1775. X            }
  1776. X            if (clen > 0)
  1777. X            {
  1778. X                tmpstr[clen] = 0;
  1779. X                sstr(tmpstr);
  1780. X            }
  1781. X        bclose(infile);
  1782. X        waitcr();
  1783. X    }
  1784. X    return(0);
  1785. X};
  1786. X
  1787. X// Method:    gstr 
  1788. X// Purpose:    get a string from the user
  1789. X// Input:    maxlen - the maximum length of a string to enter
  1790. X// Output:    str - the string (as entered by user)
  1791. X// Author:    Greg Shaw
  1792. X// Created:    7/12/93
  1793. X
  1794. Xint bbsint::gstr(char *str, int maxlen)
  1795. X{
  1796. X    char tstr[255];
  1797. X    char    c;
  1798. X    int    offset;        // offset into string
  1799. X    char    bsstr[] = {0x8,0x20,0x8};    // backspace
  1800. X    char    bestr[] = {0x7,0};    // beep 
  1801. X
  1802. X    offset = 0;
  1803. X    while (c = gch(1), c != '\r' && c != '\n')
  1804. X    {
  1805. X        if (c != 0)
  1806. X        {
  1807. X            if (c == '\b' || c == 0x7f)
  1808. X            {
  1809. X                offset--;
  1810. X                sstr(bsstr);
  1811. X                sstr(bsstr);
  1812. X                sstr(bsstr);
  1813. X            }
  1814. X            else if (offset < maxlen)
  1815. X                tstr[offset++] = c;
  1816. X            else
  1817. X            {
  1818. X                sstr(bsstr);
  1819. X                sstr(bestr);
  1820. X            }
  1821. X        }
  1822. X    }
  1823. X    tstr[offset] = 0;
  1824. X    strcpy(str,tstr);
  1825. X    return(0);
  1826. X};
  1827. X
  1828. X// Method:    gch
  1829. X// Purpose:    get a character from the user/sysop (if available)
  1830. X// Input:    none
  1831. X// Output:    a character, if available, or 0 if one not available
  1832. X// Author:    Greg Shaw
  1833. X// Created:    7/12/93
  1834. X
  1835. Xchar bbsint::gch(int wait)
  1836. X{
  1837. X    struct fd_set fds[2];
  1838. X    char     msg[255];        // room for message
  1839. X    char     c;            // room for message
  1840. X    struct timeval waittime;
  1841. X
  1842. X    waittime.tv_sec = 0;
  1843. X    waittime.tv_usec = 100;
  1844. X    if (char_avail(0,1))    // has monitor sent something to me?
  1845. X    {
  1846. X#ifdef DEBUG
  1847. Xprintf("monitor avail\r\n");
  1848. Xfflush(stdout);
  1849. X#endif
  1850. X        if (c = mon_obj.get_char(), c != -1)    // get message
  1851. X            return(c);
  1852. X    } else 
  1853. X    if (char_avail(1,1))    // something available at serial port?
  1854. X    {
  1855. X#ifdef DEBUG
  1856. Xprintf("serial avail\r\n");
  1857. Xfflush(stdout);
  1858. X#endif
  1859. X        c = fgetc(stdin);
  1860. X        if (c > 0)
  1861. X        {
  1862. X            msg[0] = c;
  1863. X            msg[1] = 0;
  1864. X            mon_obj.send_monitor(msg);
  1865. X            return(c);
  1866. X        }
  1867. X    }
  1868. X//    fds[0].fd = fileno(stdin);
  1869. X//    poll(fds,0,50*wait);    // poll (wait 50msec)
  1870. X    FD_SET(fileno(stdin), fds);
  1871. X    select(1,fds,NULL,NULL,&waittime);
  1872. X    return(0);
  1873. X};
  1874. X
  1875. X
  1876. X// Method:    sch
  1877. X// Purpose:    send a char to the user
  1878. X// Input:    ch - character to send to user
  1879. X// Output:    (to user)
  1880. X// Author:    Greg Shaw
  1881. X// Created:    7/12/93
  1882. X
  1883. Xvoid bbsint::sch(char ch)
  1884. X{
  1885. X    char newstr[2] = {ch,0};
  1886. X
  1887. X    mon_obj.send_monitor(newstr);
  1888. X    fwrite(newstr,2,1,stdout);
  1889. X};
  1890. X
  1891. X// Method:    sstr
  1892. X// Purpose:    send a string to the user
  1893. X// Input:    str - the string to send
  1894. X// Output:    (to user)
  1895. X// Author:    Greg Shaw
  1896. X// Created:    7/12/93
  1897. X
  1898. Xint bbsint::sstr(char *msg)
  1899. X{
  1900. X    if (!mon_obj.connected())
  1901. X        mon_obj.connect_mon();    // try to connect (if not already connected)
  1902. X    mon_obj.send_monitor(msg);
  1903. X    fwrite(msg,strlen(msg),1,stdout);
  1904. X    fflush(stdout);
  1905. X    return(0);
  1906. X};
  1907. X
  1908. X// Method:    sstr
  1909. X// Purpose:    send a string to the user
  1910. X// Input:    str - the string to send
  1911. X// Output:    (to user)
  1912. X// Author:    Greg Shaw
  1913. X// Created:    7/12/93
  1914. X
  1915. Xint bbsint::sstrcr(char *msg)
  1916. X{
  1917. X
  1918. X    if (!mon_obj.connected())
  1919. X        mon_obj.connect_mon();    // try to connect (if not already connected)
  1920. X    mon_obj.send_monitor(msg);
  1921. X    fwrite(msg,strlen(msg),1,stdout);
  1922. X    cr();
  1923. X    fflush(stdout);
  1924. X    return(0);
  1925. X};
  1926. X
  1927. X// Method:    sstr
  1928. X// Purpose:    send a string to the user
  1929. X// Input:    str - the string to send
  1930. X// Output:    (to user)
  1931. X// Author:    Greg Shaw
  1932. X// Created:    7/12/93
  1933. X
  1934. Xint bbsint::sysopstrcr(char *msg)
  1935. X{
  1936. X    char crmsg[] = {'\r','\n', 0};
  1937. X
  1938. X    mon_obj.send_monitor(msg);
  1939. X    mon_obj.send_monitor(crmsg);
  1940. X    return(0);
  1941. X};
  1942. X
  1943. X// Function:    term_mode
  1944. X// Purpose:    set the terminal mode to timeout on a read
  1945. X// Input:    none
  1946. X// Output:    none (terminal mode is changed)
  1947. X// Author:    Greg Shaw
  1948. X// Created:    7/19/93
  1949. X
  1950. Xvoid bbsint::term_mode(int type)
  1951. X{
  1952. X    struct termios tbuf;
  1953. X
  1954. X    if (!type)    // go to regular mode
  1955. X    {
  1956. X        if (tstate != 0)
  1957. X            tcsetattr(0, TCSANOW, &rbuf);
  1958. X        tstate = 0;    
  1959. X    }
  1960. X    else
  1961. X    {
  1962. X        if (tstate != 1)    // regular mode
  1963. X        {
  1964. X            tcgetattr(0, &tbuf);
  1965. X
  1966. X            tbuf.c_cc[4] = 1;        /* VMIN */
  1967. X            tbuf.c_cc[5] = 0;        /* VTIME */
  1968. X            tbuf.c_lflag &= ~(ICANON);
  1969. X
  1970. X            tcsetattr(0, TCSANOW, &tbuf);
  1971. X        }
  1972. X        tstate = 1;    
  1973. X    }
  1974. X    return;
  1975. X}
  1976. X
  1977. X// Method:    wait
  1978. X// Purpose:    prompt the user to hit 'return' to continue
  1979. X// Input:    none
  1980. X// Output:    none
  1981. X// Author:    Greg Shaw
  1982. X// Created:    7/25/93
  1983. X
  1984. Xvoid bbsint::waitcr(void)
  1985. X{
  1986. X    time_t    now,then;
  1987. X    int    inactivity;
  1988. X    char     c;
  1989. X
  1990. X    time(&then);
  1991. X    inactivity = inactivity_timeout();
  1992. X    sstr("       <continue>");
  1993. X    while (c = gch(1), c != '\r' && c != '\n')
  1994. X    {
  1995. X        time(&now);
  1996. X        if ((now -then)/60 > inactivity)
  1997. X            return;
  1998. X    }
  1999. X    cr();
  2000. X};
  2001. X
  2002. X// Method:    yesno
  2003. X// Purpose:    get 'y' or 'n' from user.  
  2004. X// Input:    none
  2005. X// Output:    true for yes, false for no
  2006. X// Author:    Greg Shaw
  2007. X// Created:    7/13/93
  2008. X
  2009. Xint bbsint::yesno(void)
  2010. X{
  2011. X    struct fd_set fds[2];
  2012. X    char     found=0;
  2013. X    char    c;
  2014. X    struct timeval waittime;
  2015. X
  2016. X    waittime.tv_sec = 0;
  2017. X    waittime.tv_usec = 100;
  2018. X    FD_SET(fileno(stdin), fds);
  2019. X    while (!found)
  2020. X    {
  2021. X        c = toupper(gch(1));
  2022. X        if (c != 0)
  2023. X        {
  2024. X            if (c == 'Y')
  2025. X                found = 1;
  2026. X            if (c == 'N')
  2027. X                found = 2;
  2028. X        }
  2029. X        select(1,fds,NULL,NULL,&waittime);
  2030. X    }
  2031. X    fflush(stdin);
  2032. X    cr();
  2033. X    return(found==1);
  2034. X};
  2035. X
  2036. X#endif // _BBSINT_C_
  2037. X
  2038. END_OF_FILE
  2039.   if test 9141 -ne `wc -c <'rocat-0.75/src/bbsint.C'`; then
  2040.     echo shar: \"'rocat-0.75/src/bbsint.C'\" unpacked with wrong size!
  2041.   fi
  2042.   chmod +x 'rocat-0.75/src/bbsint.C'
  2043.   # end of 'rocat-0.75/src/bbsint.C'
  2044. fi
  2045. echo shar: End of archive 3 \(of 9\).
  2046. cp /dev/null ark3isdone
  2047. MISSING=""
  2048. for I in 1 2 3 4 5 6 7 8 9 ; do
  2049.     if test ! -f ark${I}isdone ; then
  2050.     MISSING="${MISSING} ${I}"
  2051.     fi
  2052. done
  2053. if test "${MISSING}" = "" ; then
  2054.     echo You have unpacked all 9 archives.
  2055.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  2056. else
  2057.     echo You still must unpack the following archives:
  2058.     echo "        " ${MISSING}
  2059. fi
  2060. exit 0
  2061. exit 0 # Just in case...
  2062.