Title: PB-GNU Overview
Author: Branislav L. Slantchev
Company: Silicon Creations
Date: May 09, 1995
Revision: 1.0

							PB-GNU OVERVIEW

CONTENTS
	1. What is PB-GNU?
	2. What is PBLIB?
	3. What software has been released so far?
	4. How do I get it?
	5. How do I join?
	6. PB-GNU Program Guidelines


WHAT IS PB-GNU
	PB-GNU is a project started by Silicon Creations. It is modelled
	after the prestigious GNUs of the Free Software Foundation. It is
	in no way affiliated with FSF or its GNU, it just uses the same
	General Public License.

	As with most people running ProBoard BBS, one of the reasons I
	chose it, was because of its SDK. It is by far the most powerful
	extension-writing kit that I have seen for BBS programs. It is
	fast, neat, mean and in C (the latter is a personal preference).

	The extendibility prompted a lot of people to write software (or,
	the so-called PEXes) for it. Some are good, some are lame, yet
	some are state-of-the-art programs. Even though most of them are
	free, some are not. PB-GNU is the counteraction: it was, is, and
	will be free while retaining all the features of the mentioned
	shareware stuff. I have nothing against shareware authors except
	maybe, as the author of TheMin remarked, some of them spend more
	time coding their registration validation routines than the actual
	programs. This is not good. What is worse, is the fact that some
	of us don't have money... Yep, Sysops are poor everywhere (well,
	except if they are running WildCat!). I do not like running shareware
	unregistered programs. The few that I use are all paid for. So,
	what's the alternative? Answer: free software. Ok, this is what
	PB-GNU is all about. The other is: all source code is released
	with the programs (as per GNU's GPL) and can be freely used and
	incorporated in other GNU programs. People can use it, learn from
	it or point bugs and improvements for it. Also, this ensures that
	if the program is good, there will always be someone that supports
	it, no matter what the original author does. Consider that in the
	light of the here-today-gone-tomorrow programs that cost mega-bucks!


WHAT IS PBLIB?
	Anyway, a lot of nice stuff, but some things notably missing. Some
	standard C functions that Philippe chose not to implement as well
	as some means of accessing ProBoard's external files.

	PBLIB is an attempt to remedy this situation. It documents some
	undocumented features, provides for the missing functions and
	even fixes some bugs in the SDK itself.

	All of it is given in source code, so you can modify it to suit your
	needs. Refer to the file COPYING for more information.

	Here's a list of the functions and variables as of May 07, 1995:

	The following mimic the standard C library:
		errno, sys_errlist, sys_nerr,
		chdir, mkdir, rmdir, perror, tell

	The following are for manipulating the file index:
		openIDX, closeIDX, readIDX,
		findfirstIDX, findnextIDX
		firstareaIDX, nextareaIDX

	The following are general useful stuff:
		makePath, ReadFileGroup, NumFileGroups, center, isAccess

	The following are special effects (see MINESWEEPER for both)
		flash, fade

	Timer functions (used in MINESWEEPER)
		timer_start, timer_stop, timer_diff,
		timer_sleep, timer_stat

	USERDOES-compatible dropfile functions (used in MINESWEEPER):
		userd_creat, userd_unlink

	Off-line versions of the SDK:
		ReadFileArea, NumFileAreas

	Utilities:
		std2ext

	The function list is growing every day. Note that all of the functions
	here (except isAccess) work both in online (PB_SDK) mode and in offline
	(standard libraries) mode. This is very useful for writing your code
	and debugging it with the Turbo Debugger or from within the IDE.
	Enough of that Code->Compile->Run ProBoard->Test->Debug cycle! Now
	you code a normal program, debug it thoroughly and then just specify
	#define PB_SDK and recompile it. Voila! You've got a PEX! (Well, almost
	always...) As an example, the whole MINESWEEPER was developed this
	way. The only modification was some mapping of functions and colors
	via #defines (refer to the file MINES.H) and that was it! Note that
	this mapping is done for you in PBLIB.


WHAT SOFTWARE HAS BEEN RELEASED SO FAR?
	Here's a list of all programs by Branislav L. Slantchev (Silicon
	Creations), as of May 09, 1995:

		Bulletin Manager....................BUL114AX.ZIP	 36,332
		Fortune Cookie......................COOK10AX.ZIP	280,901
		File List Generator.................FLS101AX.ZIP     xxxxxx
		File Navigator......................FNV125AX.ZIP	 29,005
		Key Navigator.......................KEYN10AX.ZIP	 17,033
		Minesweeper.........................MINE10AX.ZIP	 62,598
		Password Enforcer...................PASS10AX.ZIP	 24,036
		Physical Graffiti...................GRAF10AX.ZIP	 67,164

	The Bulletin Manager was written to implement features that a lot
	of Sysops are looking for. In fact, it was developed while writing
	and reading messages with requests. Very nice and configurable.

	Fortune Cookie uses an ASCII database (BSD UNIX-compatible) to
	display a quote with an optional logoff after that. Simple and nice.

	The File List Generator creates listings of your file areas. You
	can create your own header/footers - general and for the areas.
	Supports multiple directories per file area. Speedy processing of
	CD-ROM areas. Single-line listings available, can filter out
	ProBoard's line characters (recognizes them as descriptions too).
	Many options, controlled fully via UNIX-like command-line interface.

	The File Navigator lets you view/search/tag/scroll/etc. etc. file
	groups and areas. A lot of functions. Once users see it, they just
	love it. As with all Silicon Creations programs, visual appeal is
	so important that this will be the first thing you'll notice.

	The Key Navigator lets you implement keys from changing immediately
	to the next or previous file/message area with or without regard
	to the current group. Very nice, users like it.

	Minesweeper is an implementation of the highly addictive Windows(tm)
	game. Three levels as well as one user-configurable. Beautiful.

	Password Enforcer is modelled after AIX passwd, it will enforce change
	of password on expiration, write warning messages, etc. Lets you
	define the minimum number of alphanumerics and special symbols. The
	maximum number of duplicates from old password or repeats. You can
	become a real Cerberus if you want to.

	Physical Graffiti is a graffiti wall (oneliner) for ProBoard. Users
	can enter lines and choose from 18 color definitions which are sysop-
	configurable. Name is optionally shown, as well as time and date the
	line was written.


HOW DO I GET IT?
	Wow, now with all those nice goodies, if there only was a way to
	lay my hands on them... Well, you can. There are a couple of ways.

	Look in the file SUPPORT for a list of support sites. The most current
	one if We The People. (Its Sysop is the only poor WildCat! Sysop that
	I know! Thanks, Wes.) Leave messages to Ad Avis.

	Warp Factor 3 does not carry the files, but I can be reached if you
	leave messages there.

	My own BBS, Silicon Creations, will be probably up and running mid
	May, so if you're reading this after May 20, 1995, chances are, that
	it will be up. Look in the nodelist.

	Also, if I make it, the files will appear in the PB-Net ftp site:

		worldlinks.iglou.com  in the /members/pbftp directory.

	This is courtesy of John Maddox. Good effort, hope that it will grow.


HOW DO I JOIN?
	If you are a programmer or a Sysop who wants to support PB-GNU, you
	can join. No, there's no need to send money or mail (although both
	would be nice, I prefer mail to notify me if you join, so I can
	include you in all the documentation). However, you can join by
	writing a program and releasing it as PB-GNU. To do that, read the
	section on PB-GNU PROGRAMS that follows. If you are a Sysop, then
	just use the programs if you like them, send cards to the programmers,
	and say: PB-GNU Support Site on your BBS. Keep the files for down-
	load, this makes them live. If you wish, you can contact the author
	and see if you can make arrangements to get the latest versions of
	their software.


PB-GNU PROGRAM GUIDELINES
	What makes a program PB-GNU? Ostensibly, it is the GNU General Public
	License Version 2, under which all PB-GNU programs should be released.
	The full text must be included with the program. Refer to the file
	COPYING for more information.

	Even though this is the single requirement, here are some suggestions
	that all Silicon Creations releases follow:

	Archive naming - packages are named in the form:

		NAMExxAS.ZIP	if it contains source code
		NAMExxAX.ZIP	if it contains the executables

		Name is a four-character abbreviation of the program name. Care
		should be taken to avoid duplicates. Note that NAME can go down
		to three characters, in which case the version number will be
		restricted to 3 (2 otherwise): these are the 'xx'. PKWare's
		PKZIP (tm) is the preferred format. It is widely available and
		PKZIP is very very fast. You can use whichever archiver you wish,
		though. I used ARJ, but it's a lot slower (saves bytes though).

		The ??????AX.ZIP file may contain the ??????AS.ZIP, if you will.
		This is the standard way of distributing unless your source
		code package is too big for that.

	Documentation and User's Manuals:

		No high-ASCII characters should be used in any of the text
		files. Use tabs, set at 4 spaces.

		The user manuals should have the same name as the executable
		save for the extension, which should be MAN. The format is
		closely related to the UNIX manpages. Look at the ones that
		come with the Silicon Creations programs or call me and I will
		send you the template that I use to make them.

		A file called COPYING should be included. It will contain the
		full unaltered text of the GNU General Public License Version 2.
		Note that while the name is not important, the full License
		MUST be included with your program to qualify as PB-GNU.

		A file called README should be included. It will outline a quick
		installation procedure and, if necessary, other quick notes. It
		should not be long and the format must be unobtrusive. Refer to
		the README files in Silicon Creations distribution packages.

		A file called MANIFEST should be included. It will contain a
		list of all the files in the archive, their sizes and modification
		dates as well as brief descriptions for each. It should also
		contain the 32-bit CRC and RSA Data Security, Inc. MD5 Message-
		Digest for all executables. The latter can be calculated using
		a utility called MDX which is available on Silicon Creations in
		the Telecommunications Area.

		A FILE_ID.DIZ should be included with a brief description of the
		package. Please, don't use elaborate and wasteful pictures. High
		ASCII codes tend to upset a lot of programs.

		A file called SUPPORT should be included. It should list how
		to contact the author, any support sites, etc. E-Mail address
		is necessary because it is a good means of contact. Optionally,
		you can provide voice/data/fax phone numbers, snail mail address,
		Support Sites, or whatever you think is necessary.

		If you are updating a program, you may optionally include a file
		called NOTES which will outline the updates and new features.

		Additional files, as necessary.

	Dating of files:

		All files in the archive should be stamped with the release
		date and the time must encode the version. For example, for
		program version 3.47, the time would be 03:47a. This makes
		it really easy to identify program updates.

	Source code:

		All source code files should bear the appropriate banners as
		per GNU General Public License Version 2. Refer to Silicon
		Creations packages for examples.

