home *** CD-ROM | disk | FTP | other *** search
- RADoor II, Quick and dirty beta docu:
-
-
- WHY?!
- =====
-
- Simple, the RADoor toolbox started it's live as a bunch of routines to write
- the votedoor program. My first door-program ever. It continued to grow as
- doors saw the light. At the point that it was mostly bugfree (as bugfree as
- a toolbox can get) I released it as RAdoor20.zip. Well, some improvements,
- suggestions etc. And I ended up with RADoor23.zip, a huge (168Kb) toolbox
- with lots of whisles and bells.
-
- BUT as it goes with this kind of development, RAdoor became a mess.. The
- basic RADOOR.PAS file became to big to maintain in a decent way.. Worse, I
- couldn't even add comments due to tp5.5's filesize limit..
- Further I found it almost impossible to change at a more fundamental level
- due to the side-effects.
-
- So it became time for ACTION.. This time I knew better what I wanted from
- a doorwriters toolbox, discovered the joys of objects (Note: I'm not talking
- about oops! But the Object way of keeping fields and methodes together is
- a real nice way to keep programs readable and maintainable!) and started to
- use userhooks in the form of procedural variables.
-
- So I started from scratch (almost..;) to write myself a new RADoor. But first
- of all I made up a plan.. Yep, specifications.. Analyzis.. and all that other
- stuff my programming teachers used to make writing a simple program into a
- full featured hell.. But this time it was good to at least set some priorities.
-
- Here's what I came up with:
-
- - Modular! No longer all the stuff in a single file (Radoor) but spread it
- over more TPU's this makes maintainance easier, (and upgrading
- to TP 6.0's ASM also..)
-
- - Less RA dependant
- Well, this needs some explenation I guess. Since I started to
- write doors I regularly get request from ppl who find it a
- pitty that my doors are only usable with RA. In RADoor the
- depandancy on RA was completly intergrated, so there wasn't
- a simple way to rewrite my doors for other BBS programs. (Maybe
- Qbbs and SBBS would be possible, but the first changes tomuch
- and for the second there was Richard Faasens utility.. )
- Anyhow, this problem is solved now in a way. It's easier to
- make RADoor work for other BBS programs too.
-
- - More sysop control
- In RAdoor there was only a very basic sysop control. only
- a statusline with some info, and an option to shell to dos or
- to toggle the local noise. Here again, due to the intergration
- things weren't that easy to change.
-
- - Compatability
- Well, this was a though one. Should the new RAdoor be compatible
- with the old RAdoor.... Of course it shouldn't have less
- possibilities, but in the same way? I decided that making it
- better was more important than making it 100% compatible.
- This means that the basics are all still there.. But f.e.
- WritelnF(Foss,'') has changed into Foss.WriteLnF('')
- This is simple search and replace, but other things have
- changed too. As long as your programs are well designed,
- updating shouldn't be tomuch troubles.. (I did Cookie and
- RA-pong in a few hours while debugging the new code)
- If not.. Oh well, maybe this is the right time to rewrite
- the program from scratch and MAKE it better to maintain. (as
- I have to do on trivia..;-) If not, stick with RAdoor2.3
- as it's almost bugfree (I only know a few small ones)
- And I intend to give a ZIP file with the source together with
- the source of the new RAdoor anyhow (for registered users..)
-
-
- Well. That were the major points.. Here are the new files with a
- short description:
-
-
- ANSIMUS.PAS |
- DRIVER.PAS | Nothing has changed here, only a few little bugs removed.
- DRVDEMO.PAS |
-
- DESQVIEW.PAS
- The desqview routines. This unit contains the headers for DESQVIEW.ASM
-
- DOORSYS.PAS
- The lowlevel door functions. Display a file, show a textfile etc.
- Usable for all kinds of BBS programs.
-
- FILEOBJ.PAS
- A very lowlevel unit for working with typed files. Makes it easy to
- work with buffered input, apply record and file locking etc.
-
- FILTER.PAS
- An demo/default output filter unit. In the new toolbox all output runs
- (optional) through a filter to translate codes into ANSI/AVATAR or to
- filter them out. Filter.pas defines a colortable for the door and a
- filter which translates codes in an output string to the correct
- ANSI/AVATAR codes It also handles ClrEol and brackets translations.
-
- FOSSIL.PAS
- This is the main unit of the toolbox. It handles all the I/O, timing
- and carrier checking and includes userhooks for the statusline, the
- output filter etc.
-
- FRAME.PAS
- A door framework. With this framework writing an door for RA is only a
- matter of writing application code. Of course only defaults are used.
- You can change everything you like as soon as you feel at ease with the
- toolbox.
-
- GLOBINFO.PAS
- This is an important file. To make the toolbox usable for other BBS
- systems, the GlobalInfo record defined in this unit is used by all the
- other units..
-
- LOWLEVEL.PAS
- LowLevel functions. These have nothing to do with doors especialy, but
- are used by the other units. Things like path handling, conversion
- etc.
-
- RA.PAS
- This is the only unit that directly works on the RA system files.
- It's intended to fill the global info record in the GlobInfo unit.
- It also includes the BBS dependent routines. For example, for reading
- and sending online messages and updating the exitinfo.bbs
-
-
- USERHOOK.PAS
- This unit contains code to use with the userhooks in the fossil unit.
- It implements my statusline and sysopkey handler. Of course, you can
- write your own. This one is only to get started. (although it's good
- enough for me..;-)
-
-
-
- The philosophy behind the new RADoor.
- =====================================
-
- Well, as seen by the many units modularity is ok. The SysopControls are
- up to you, but the UserHook unit already includes a very reasonal set
- of sysop tools. (LockOut, HangUp, Inc/Dec time, User and System info,
- WarnSysop when user leaves door and more)
- Leaves the idea to easily create doors for other BBSses...
-
- To make a door use more than one set of BBS configuration files is simple.
- Write a unit like the RA.PAS unit included in this package.
-
- This unit should include at least:
-
- - A way to read all the nessecary system files and extract info from them
- - provide sensible values for GlobalInfo fields which cannot be found in
- the BBS's system fields
- - A logging procedure for writing info to the logfile.
- - the types which are probably needed.
-
- you also want to provide global variables with the contents of the
- configuration files. In ra they are called RACOnfig and RAExitInfo
- Use a something alike naming convention to avoid confucion..
-
- Since the globalinfo record is the only record used by all the other units
- (They don't use RA.PAS!) this is the only place where you have to interface
- with the BBS environment. Simple as that...;)
-
-
- What Else:
- ==========
-
- Since I'm very busy these days, getting married in june (in greece. Imagine
- the paperwork for that!) I don't find as much time as I would like for
- RAdoor. That's why I decided to try an other way of support. I found
- Jos Bergman (the sysop of my support BBS) willing to provide me two
- area's, a file and a message area which will only be accesable for
- registered users. Here I put the finished products, units, docu etc.
- I decided to group things together, so there will be a basic unit with
- the basic stuff in RAdoor and seperate zippers for the add on modules
- like the messagebase stuff, the online editor etc. This way I can provide
- quick updates, bugfixes and additional units. Since I logon to RAccess Jaybee
- almost daily to look for mail, it's also the best place to report bugs, and
- discuss problems with me and the other registered users.
-
- Please don't spread the files found in this area. They are only intended for
- registered users.
-
- Gerhard Hoogterp
-
-
-
-
-