home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-03-28 | 86.8 KB | 2,024 lines |
-
-
- ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ░░▒▒▒░▐▐▐▐▒░▐▐▐▐▒▒▒▒░▐▐▐▐▒▒░▐▐▐▐▐▐▒░▐▐▐▐▐▐▒░▐▐▐▐▐▐▒▒░▐▐▐▐▒▒▒
- ░░▒▒░▐▐░░▐▐▒░▐▐▒▒▒▒▒▒░▐▐▒▒▒▒░▐▐░░▐▐▒░▐▐░░▐▐▒░▐▐░░▐▐░▐▐░░▐▐▒▒
- ░░▒░▐▐▒▒░░▒▒░▐▐▒▒▒▒▒▒░▐▐▒▒▒▒░▐▐▒░▐▐▒░▐▐▒░▐▐▒░▐▐▒░▐▐░▐▐▐▒▒▒▒▒
- ░░▒░▐▐▒▒▒▒▒▒░▐▐▒▒▒▒▒▒░▐▐▒▒▒▒░▐▐▐▐▐▒▒░▐▐▐▐▐▒▒░▐▐▐▐▐▒▒░▐▐▐▒▒▒▒
- ░░▒░▐▐▒▒▒▒▒▒░▐▐▒▒░▐▒▒░▐▐▒▒▒▒░▐▐░░▒▒▒░▐▐░░▐▐▒░▐▐░░▐▐▒▒▒░▐▐▐▒▒
- ░░▒░░▐▐▒▒▐▐▒░▐▐▒░▐▐▒▒░▐▐▒▒▒▒░▐▐▒▒▒▒▒░▐▐▒░▐▐▒░▐▐▒░▐▐░▐▐░░▐▐▒▒
- ░░▒▒░░▐▐▐▐▒░▐▐▐▐▐▐▐▒░▐▐▐▐▒▒░▐▐▐▐▒▒▒░▐▐▐▐▐▐▒░▐▐▐▐▐▐▒▒░▐▐▐▐▒▒▒
- ░░▒▒▒░░░░▒▒░░░░░░░▒▒░░░░▒▒▒░░░░▒▒▒▒░░░░░░▒▒░░░░░░▒▒▒░░░░▒▒▒▒
- ░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
- ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
-
- Volume 2, Number 10 28 March 1992
-
- (c) Daniel Doçekal, All Rights Reserved
-
- The BBS Clipper magazine, published SEMIWEEKLY, every FRIDAY
-
- Some of the material used comes from scanning CLIPPER echoes
- which are carried in various BBS throughout the World.
- These Echoes are very often the source of the most often asked
- Questions and Answers about Clipper.
-
- Other material, which is fully signed or abbreviated is the
- copyright of the appropriate persons.
-
- The publisher is not responsible for other authors submissions....
- Published material is not necessarily the opinion of the publisher.
-
- Redaction:
- Publisher...................................Daniel Docekal
- Chief editor ...............................Daniel Docekal
- Language editor .................................Dave Wall
-
-
-
- Table of Contents
-
- 1. EDITORIAL ............................................................. 1
- Long time nothing ..................................................... 1
- 2. ARTICLES .............................................................. 2
- Nantucket Code Guidelines ............................................. 2
- Starters corner (part 4) .............................................. 6
- NOVLIB, as promised here it is ........................................ 11
- Hitch Hikers Guide To The Net (7) ..................................... 17
- @...GET MEMO .......................................................... 20
- Clipper file/record locking ........................................... 24
- Get exit code after RUN command ....................................... 25
- 3. SOFTWARE .............................................................. 26
- Novell FORUMS on Compuserve ........................................... 26
- What is what (1) ...................................................... 27
- Printing out memory file .............................................. 32
- 4. NEWS .................................................................. 35
- Clipper Interface Handbook ............................................ 35
- 5. ANOMALIES ............................................................. 36
- ANOMALIES reports and commets ......................................... 36
- 6. COMMENTS .............................................................. 37
- CLIPBBS 2-10 Table of Contents (...) 28 Mar 1992
-
-
- Funny set SET DATE .................................................... 37
- __DOS_HOLD problem .................................................... 38
- 7. CLIPPER NET ........................................................... 39
- Index of described files in Clipper BBS Magazine ...................... 39
- 8. CLIPBBS ............................................................... 41
- CLIPBBS distribution .................................................. 41
- CLIPBBS, how to write an article!!! ................................... 43
-
- - - - - -
- CLIPBBS 2-10 Page 1 28 Mar 1992
-
-
- ===============================================================================
- EDITORIAL
- ===============================================================================
-
-
- Long time nothing
-
- It's a long time i did write latest editorial and also there are many holes
- in making new versions of CLipper BBS. Problem as usual is called TIME.
- It's a nice hobby to make CLIPBBS, but it costs a lot of time. Thanx to all
- who are also contributing in magazine and i wish they will also continue,
- otherwise there will be more and more difficulties. Company in which i
- belongs has top priority over hobbies and we are now pretty busy with
- several networks. Therefore publishing of CLipper BBS magazine is slowed
- down and most probably will be slowed in future also. Also few things got
- lost during changes of servers in our company networks and i'm actually
- afraid i did skip one number which was never out, or maybe is out but i
- don't have it anymore (funny...).
-
- One important news - i have new membership on Compuserver, therefore
- Clipper BBS Magazine will come in this worldwide medium also. 100064,2343
- is Compuserver number of Daniel Docekal.....
-
- .DD.
-
- -------------------------------------------------------------------------------
- CLIPBBS 2-10 Page 2 28 Mar 1992
-
-
- ===============================================================================
- ARTICLES
- ===============================================================================
-
-
- Nantucket Code Guidelines
-
- 7. Preprocessor Directives
-
- 7.1 Preprocessor directives are lowercase and are preceded by a "#"
- sign:
-
- #include "Inkey.ch"
-
- COMMENTS: Absolutely agree about directive lowercasing. Prefixing
- of them with "#" is i guess must given by syntax of CLipper
- language and therefore can be left out of any guidelining...
-
- 7.2 Pseudo-function names follow the same conventions as
- user-defined function and procedure names (see section 6).
-
- COMMENTS: There is one disadvantage of this guideline. All pseudo
- functions are UNAVAILABLE in debugger and therefore i prefer
- making them in UPPERCASE because then one can see directly that
- function is PSEUDO (#define or #translate made)
-
- 7.3 Manifest constants are uppercase:
-
- #define ESCAPE 27
- IF LASTKEY() == ESCAPE
-
- COMMENTS: Agree, expansion a bit is. EVERYTHING defined by
- #define or #translate should be uppercase for better recognizing.
-
- 7.4 A blank line should be placed before and after #if...#endif
- directives:
-
- @ 2,10 SAY "ACME Stock Control System"
-
- #if PASSWORD
- <Ask user for password>
- #endif
-
- MainMenu()
-
- COMMENTS: Agree. It's very good and also is good to use on indent
- level to the right more INSIDE of #if..endif construction.
- SOmetime i'm dreaming about CLEVER editor which will be able to
- make some kind of outlining with Clipper constructions....
-
- 8. Standard Classes
-
- 8.1 Class names follow the same conventions as user-defined
- function and procedure names (see section 6).
-
- COMMENTS: It's logical and useful to follow the same naming
- CLIPBBS 2-10 Page 3 28 Mar 1992
-
-
- convention for classes. All clases are of course prefixed with
- "o" letter, immediately showing that 'this is a object'.
-
- 8.2 Instance variable names begin with a lowercase letter, and
- include uppercase letters wherever necessary to indicate new
- words:
-
- oError:canDefault := .T.
-
- COMMENTS: There is one important moment. Starting of instance
- variables with small letters is allowing to make difference
- of them and any other names. Only one weakness is here. There
- is no way how to present which kind of value is inside of class
- variable.
-
- 8.3 Method names follow the same convention as instance variable
- names (see above):
-
- oBrowse:pageUp()
-
- 8.4 When referring to a class method in text, you must also specify
- the class name:
-
- To reposition the data source to bottom-of-file, use the
- TBrowse:goBottom() method.
-
- COMMENTS: This paragraph is talking about case that one is writing
- documentation or book about Clipper. Because of nature, that class
- methods (variables) belongs to specific class, is needed to write
- down which CLASS is related to method.
-
- 9. Spaces
-
- 9.1 Whenever a list of two or more items is used, a space is placed
- after each comma separator:
-
- MyFunc(nChoice, 10, 20, .T.)
-
- COMMENTS: This is rule coming about readability of program.
- Sometime is better to not use it, because of some functions with
- very long argument list. Then it's too long to waste space with
- space characters between arguments.
-
- 9.2 NEVER use spaces to indent code; use tabs instead (see section
- 15).
-
- COMMENTS: GOLDEN rule for all programs (not only in Clipper).
- When program is formatted using SPACES, there is always problem
- with reformating of program. Also spaces formated program is
- BIGGER (and significantly) than TABS formatted program (TAB is
- one character and can be in some cases replacement for 2 to 7
- spaces).
-
- 9.3 When parameters are specified as part of a function
- declaration, a space is placed inside each parenthesis:
-
- CLIPBBS 2-10 Page 4 28 Mar 1992
-
-
- FUNCTION SayInBox( cMessage, cColor )
-
- COMMENTS: Again readability rule. It's giving better reading of
- parameters when definining function.
-
- 9.4 A space is placed on either side of each binary operator:
-
- nTotal := nSubTotal + nNewCost
-
- COMMENTS: It's good to follow this, but again. Long and complex
- expressions flowing among more lines, are difficult to keep in
- this way, because are coming longer and longer.
-
- 10 Declarations
-
- 10.1 Each variable is declared separately on its own line:
-
- LOCAL nSomeNum
- LOCAL cString := ""
-
- COMMENTS: I'm still prefering method to use ONE LOCAL statement
- and then multiple line declarations:
-
- LOCAL nSomeNum ,;
- cString := ""
-
- It's question what is better, because in Nantucket's guideline,
- there is possible to place comments after every LOCAL statement,
- in my case it's impossible (because of buggy implementation of /*
- and */ operators).
-
- 11 Logicals
-
- 11.1 Logical values are referred to in text as follows:
-
- true (.T.)
- false (.F.)
-
- The terms "true" and "false" are all lowercase unless they appear
- at the beginning of a sentence, and are followed by the code form
- of the logical value enclosed in parentheses.
-
- COMMENTS: Exactly opposite. TRUE and FALSE are upper case,
- always. That's because they are defined as #define constants and
- #define symbols are always uppercase in my programs (see
- somewhere on start of guidelines comments about #define).
-
- 12 Operators
-
- 12.1 The in-line assignment operator (:=) is used for assignments in
- all Clipper 5.0 code:
-
- lContinue := .T.
-
- COMMENTS: 100% agree. ":=" operator is only one used in Clipper.
- That's because of:
- CLIPBBS 2-10 Page 5 28 Mar 1992
-
-
- 1) REPLACE command can be replaced with this operator
- 2) there is possible to use this operator inside of expression
- and mostly in if () statements...
-
- 12.2 The == operator is used for exact equality tests in all Clipper
- 5.0 code:
-
- lDuplicate := (CustFile->CustName == cCustName)
-
- COMMENTS: 100% agree. "==" operator is better readable than combi-
- nation of SET EXACT and "=" operators....
-
- -------------------------------------------------------------------------------
- CLIPBBS 2-10 Page 6 28 Mar 1992
-
-
- Starters corner Paul Ket
- =============== ========
-
- Last time we left with a brand new way of storing the data in the files. We
- created the Thirdtry.dbf. It consisted of three files. Two containing the
- real data, one is used as a reference to look-up words. In this episode we
- look at the meganisms behind our program. Now the real fun starts!
-
- Last time i've made a nasty mistake: i've forgotten to include a full
- description of THIRDTRY.DBF. Sorry about that. Complains can be send to the
- editor :-> . It is contained in the addendum of this episode.
-
- I also promised to take a closer look at the files. That can wait till an
- other time. Now is the time for the creative part of programming!
-
- What do we want?
- ----------------
-
- First we have to ask ourselves what we actually want our program to do.
- Think about this at "grass-root" level. We want the program to start and
- present us the contents of de files. On the screen to be precise.
-
- Besides that we want to browse and to look up things. At the end we also want
- to make a hardcopy of the recipe. After that we sign off and go off to the
- kitchen.
-
- What does the intended user want?
- ----------------------------------
-
- What we want is important. But not as important as the wishes of the user.
- Remember episode 1, in which we stated that this project was also intended to
- pay in our debt to Mum. She agreed on buying a computer with the demand for a
- good program for her recipes(A). In jargon: a novice user. Somebody who
- doesn't want to learn about fields and records. Doesn't want to spent the
- leisuretime at the keyboard. So: simplicity, clarity and easy to use are
- major demands.
-
- These demands are important because by our design with all those files we've
- created a great opportunity for making things complex. Let's not do that!
-
- Basics
- ------
-
- To have something to show to anyone else, it's nice to start with the design
- of the screen. We've waited with that to make a good design for our
- datafiles, but now the time has come to do so (B)!
-
- Designing the screen
- --------------------
- We start desinging with a few questions.
-
- First: what has to be present on the screen?
- Three categories of information can be present:
-
- (1) Data
- The real data:
- CLIPBBS 2-10 Page 7 28 Mar 1992
-
-
- - the name of the recipe
- - the ingredients
- - the presription how to prepare it.
-
- (2) Extra info
- Things commonly seen, handy, but no complaints if you leave them out:
- - time
- - date
- - filepath
- - number of the recipe
- - number of ingredients
-
- ┌─■INTERMEZZO■───────────────────────────────────────────────────────┐
- │Altering the database structure │
- │------------------------------- │
- │At this point in the process i get the strong urge to add extra │
- │information, extending the amound of information to store. Think of:│
- │ - the last time the recepe was made │
- │ - date of data-entry │
- │ - names of visitors who have eaten it │
- │ - names of family who don't like it │
- │ - record-size │
- │ │
- │Why not? Go ahead! │
- │Some parts can be stored in THIRDTRY.DBF, others in LOOKUP (c). │
- └────────────────────────────────────────────────────────────────────┘
-
- (3) Directives.
- A user has a right to know where s/he is and what to do. So we have to tell
- where we are and where we can go to.
-
- These three types of information deserve a special place on the screen.
- In the pre-windows-era this was called window-ing. Each type of information
- has his own place on the screen. Now you talk about "view-ports". It means
- the same without refering to that product of Microsoft.
-
- Here's one of my favorite screen designs. It is 24 rows by 80 colums (D). You
- might have to adjust your pinter. But it shows beautifully on your screen!
-
- >---------- screen starts here --------------<
- Date: 10 jan 1992 Recepe: 1
- Time: 12:12 Total: 1123
- ────────────────────────────────────────────────────────────────────────────────
- Breek de eieren in een beslagkom.
- Fried eggs Extra Roer ze goed door. Doe de boter in de
- pan, smelt ze. Doe de geroerde eieren
- slices bread 3 in de pan. Zet het vuur zo laag
- eggs 5 mogelijk. Doe een deksel op de pan!
- mature cheddar 50 grames Laat het langzaam sudderen. Na 3
- butter little minuten de kaas op het ei doen.
- garlic little Kruiden naar smaak. Deksel weer op
- red pepper 1 de pan doen. Als de kaas grotendeels
- pepper little gesmolten is is het ei goed. Opdienen
- op de sneetjes brood.
-
-
- CLIPBBS 2-10 Page 8 28 Mar 1992
-
-
- ───────< Display >───────────────────────────────────────────────────────────
- F1= Help
- F5= Look-Up
- ───────< Esc = Exit >───────────────────────────────────────────────────────────
- >---------- screen ends here --------------<
-
- You can see three zones in this screen. At the top the Extra information. Two
- lines. Left and right filled out. As you can see i present there the number
- of this recepe and the total amount of recepe's i've got. In the middle the
- main information. Note the absence of captions like "Name", "Ingredients"
- etc. I think those are redundant. At the bottom the user-guide. It clearly
- shows only three options and gives us information about where we are
- (Display).
-
- Techniques
- ----------
-
- There is some programming necessary for getting this screen. I don't intent
- to give full listings but here's how i would do this.
-
- For a start: i have a MAIN procedure/function which contains the main
- program. In this function there's a loop.
-
- DO WHILE .not. <END>
- PresentScreen()
- GetUserKey()
- ProcessKey()
- ENDDO
-
- The biggest part of the screen is organised in PresentScreen(). Not all. The
- horizontal lines are not disturbed at all. So, i write them only once: at the
- start of the program.
-
- The time, presented in line 2, has to be updated -more ore less- continously.
- So, i make a small function TimeUpd() which i call in all three functions in
- the loop.
-
- The keys available to the user are dependent on the place of the user in the
- program. So, i present this information after i've processed the last
- keystroke, in the function ProcessKey().
-
- This leaves us with the thask to present the contents of THIRDTRY.DBF, the
- date, recepe number and the total number of recepes. Below you find a (buggy)
- source-listing of PresentScreen(). It depends on some unstated assumptions
- but it is only intended to give an idea of how this can be done(E).
-
- >------------------ part of PresentScreen() ----------------<
- USE THIRDTRY.DBF ALIAS Third
- USE INGRDNT.DBF ALIAS Ing
-
- @ 1,60 SAY "Recepe:" + STR(nRecepe),6)
- @ 2,60 SAY "Total: " + STR(LASTREC(),6)
- Select Third
- LOCATE FOR Third->Re_num=nRecepe
- IF found()
- @ 4,0 SAY third->Name
- CLIPBBS 2-10 Page 9 28 Mar 1992
-
-
- cDesc := third->Desc
- Select Ing
- LOCATE FOR ing->re_num = rRecepe
- DO WHILE found()
- @ A,B SAY LookUp(ing->ing_num)
- ENDDO
-
- ENDIF
-
- >------------------ End of PresentScreen() -----------------<
- - - - - -
-
- Notes:
-
- (A) complaints are received about the sexist approach. Author likes to state
- that no harm is or was intended. Wherever wanted he can be replaced by she or
- the other way around.
-
- (B) Handbooks and people who have studied programming will get sick at this
- time. Ok, it's wrong. But it works! Let's call it prototyping.
-
- (C) What the result will be will be discussed in a forthcoming episode.
-
- (D) Because i think you'll look at it with a Word-Perfect-alike. i haven't
- made it 25 * 80. A normal screen is of course 25 * 80 but in WordPerfect you
- "only" get 24 * 80.
-
- (E) If somebody knows an equal simplistic but better way for doing the same
- job: please let me know!
-
- ---------------------- ADDENDUM ------------------------------------
-
- Name: Lookup.dbf (3)
- ===========================
- NAME TYPE LENGTH
- 1 Ing_num N 3,0
- 2 Ing_nam C 30
- ---------------------------
- TOTAL 33
-
- Name: Ingrdnt.dbf (3)
- ======================
- NAME TYPE LENGTH
- 1 Re_num N 4,0
- 2 Ing_num N 3,0
- 3 Amount C 10,0
- ----------------------
- TOTAL 17
-
- Name: THIRDTRY.DBF (3)
- =====================
- NAME TYPE LENGTH
- 1 Re_num N 4,0
- 2 Name C 40
- 3 Desc M 10
- --------------------------
- CLIPBBS 2-10 Page 10 28 Mar 1992
-
-
- TOTAL 54
-
- -------------------------------------------------------------------------------
- CLIPBBS 2-10 Page 11 28 Mar 1992
-
-
- NOVLIB - one complex Novell library
-
-
- As promised, it's coming. NOVLIB, one from most complex Novell libraries.
- It has not ANY other use, than pure Novell networking. Written mostly in
- Turbo C (2.0) as is visible in .LIB files is convering almost everything
- avaialable from Novell Netware. Last time (in Clipper BBS Magazine number 9,
- Volume 2) was coming review of NETLIB. This article will cover complete
- review of NOVLIB. Next coming article will compare both libraries for easiest
- way to see what is in which library.
-
- NOVLIB covers ONLY Novell Netware, nothing else. That's very important
- information. Scale of functions in NOVLIB is well spread over complete
- services of Novell Netware, all configuration and also statistic information.
- NOVLIB is coming just as two .LIB files, one with generic 2.xx and 3.xx
- functions and second with functions related only to Novell 2.xx (3.xx is
- missing all statistical services - SYSCON command in those two versions of
- Novell is therefore also different).
-
- Bindery information and access
-
- AccBindRd() Returns the workstation's bindery read access security.
- AccBindWr() Returns the workstation's bindery write access security.
- Bindery() Opens & Closes the NetWare bindery.
- BindCurrOb() Returns current number of bindery objects. [286]
- BindMaxOb() Returns maximum number of bindery objects. [286]
- BindPeakOb() Returns peak number of bindery objects. [286]
- BindSearch() Searches the bindery for specified objects (users etc).
- UserAdd() Adds a new user to the bindery.
- UserAddGrp() Adds a specified user to a user group.
- UserDelete() Deletes a specified user.
- UserDelGrp() Deletes a specified user from a user group.
- UserFName() Returns or sets user's full name.
- UserFree() Returns amount of free space available to specified user.
-
- Printing and Redirecting
-
- BannerFlag() Enables & disables the printing of a Banner.
- BannerName() Returns or sets the banner user name for printing.
- CapBanner() Returns or sets the banner text for printing.
- CapCancel() Cancels capture of the specified LPT device.
- CapCopies() Returns or sets the number of copies for printing.
- CapEnd() End capture of the specified LPT device.
- CapFlush() Flushes capture of the specified LPT device.
- CapFrmFeed() Enables & disables the form feed after printing
- CapFrmName() Returns or sets the form name for printing.
- CapFrmNo() Returns or sets the form number for printing.
- CapKeep() Enables & disables printing of an interupted print
- CapMaxChar() Returns or sets maximum characters per line for printing.
- CapMaxLine() Returns or sets the maximum lines per page for printing.
- CapPrnNo() Returns or sets the destination printer for printing.
- CapQueue() Directs captured printing to a specified queue.
- CapSetup() Sets up print capturing for the specified LPT device.
- CapStart() Starts capture of the specified LPT device.
- CapTabSize() Returns or sets the tab size for printing.
- CapTimeout() Returns or sets the timeout count for printing.
- CLIPBBS 2-10 Page 12 28 Mar 1992
-
-
- PrnForm() Returns or sets the form type for specified LPT device.
- TabFlag() Enables & Disables conversion of tabs to spaces
-
- Print servers and printer
-
- PrnOffline() Checks whether the specified printer is Offline.
- PrnServer() Returns or sets the server printer for the LPT device.
- PrnStopped() Checks whether the specified LPT device is stopped.
- PServerVer() Returns the printer server version number.
-
- Print Queues manipulation
-
- QDelJob() Deletes the specified print queue job.
- QHalt() Enables/disables print queue servicing.
- QJobAdding() Checks whether the specified print queue job is adding.
- QJobDate() Return print jobs entry date
- QJobEDate() Set or Return defered printing execute date of a print job
- QJobDes() Returns or sets the specified print queue job description.
- QJobFile() Returns the name of the specified print job's spool file.
- QJobOpHold() Places the print queue job on operator hold.
- QJobPos() Returns or sets the print job's position in queue.
- QJobs() Returns a list of print queue jobs.
- QJobSize() Returns the size of the specified print queue job.
- QJobStn() Returns station number which placed print job in queue.
- QJobTime() Return print jobs entry time
- QJobETime() Set or Return defered printing execute time of a print job
- QJobUser() Returns user ID of user who placed job in queue.
- QJobUsHold() Places the specified print queue job on user hold.
- QNewJobs() Enables/disables new jobs being added to print queue.
- QNewServer() Enables/disables new servers servicing print queue.
- QueueID() Returns the ID number for a specified print queue.
- QVer() Returns the queuing version number.
-
- Accounting
-
- AccVer() Returns accounting system version number.
-
- Statistics
-
- BufferDirt() Returns the number of dirty disk cache buffers. [286]
- Buffers() Returns the total number of disk cache buffers. [286]
- BufferSize() Returns the size of each disk cache buffer. [286]
- CacheHits() Returns the number of fileserver cache hits. [286]
- CacheMiss() Returns the number of file server cache misses. [286]
- CurrOpen() Returns the current number of open files. [286]
- FatScanErr() Returns the number of disk fat scan errors. [286]
- FATCurrChg() Returns the current number of changed FAT sectors. [286]
- FATErr() Returns the number of FAT sector errors. [286]
- FATErrFat() Returns the number of fatal FAT sector errors. [286]
- FATTotChg() Returns the total number of changed FAT sectors. [286]
- FileOpens() Returns the number of file open requests. [286]
- FileReads() Returns the number of file read requests. [286]
- FileWrites() Returns the number of file write requests. [286]
- FSProcess() Returns the number of file server processes. [286]
- FSUtil() Returns file server utilisation (%). [286]
- INBVer() Returns Internet Bridge version.
- CLIPBBS 2-10 Page 13 28 Mar 1992
-
-
- IOPending() Returns number of disk I/Os pending. [286]
- LogDrives() Returns the number of logical disk drives. [286]
- MaxConn() Returns the maximum number of connections supported.
- MaxOpen() Returns the maximum number of open files. [286]
- MaxVol() Returns the maximum number of volumes supported.
- MemTotal() Returns the total amount of server memory. [286]
- MemWaste() Returns the amount of wasted server memory. [286]
- PeakConn() Returns the peak number of connections.
- PeakOpen() Returns the peak number of open files. [286]
-
- LAN/server configurations
-
- LANHostAdd() Returns the specified LAN host address. [286]
- LANName() Returns the specified LAN name. [286]
- LANNWAdd() Returns the specified LAN network address. [286]
- LANOption() Returns the specified LAN option. [286]
- LANSetting() Returns the specified LAN setting. [286]
- NWAppNo() Returns the Netware Applications Number
- NWError() Returns the last NetWare error code.
- NWNumber() Returns the default network number.
- NWSerNo() Returns the Netware Serial Number.
- NWVersion() Returns the NetWare version number.
- OSRev() Returns the operating system revision number.
- SecureVer() Returns the security version number.
- SFTLevel() Returns the file server SFT level.
- VAPVer() Returns the VAP version number.
- VConsVer() Returns the virtual console version number.
-
- Rights, users...
-
- AccConsole() Returns the workstation's Console Operator status.
- DirAddUser() Makes a user a trustee of a directory.
- DirDelUser() Deletes a user as trustee of a directory.
- DirEffRt() Returns workstation's effective rights to a directory.
- IsMember() Verifies that a user is a member of a specified group.
- PassChange() Changes the specified user's password.
- PassCheck() Checks the specified user's password.
- UserBlocks() Returns the number of blocks owned by specified user.
- UserDirs() Returns number of directories owned by a specified user.
- UserFiles() Returns the number of files owned by a specified user.
- UserID() Returns a specified user's ID number.
- UserName() Returns a specified user's login name.
- UserRename() Renames a specified user.
-
- Directories and mapping
-
- DirHandle() Returns the directory handle of the current directory
- DirMap() Maps a specified directory to a drive letter.
- DirMapDel() Deletes a drive mapping.
-
- Connections and stations
-
- ConnClear() Clears a specified connection number.
- ConnID() Returns the default connection ID number.
- ConnNo() Returns the current connection number.
- Conns() Returns connection numbers where a user is logged in.
- CLIPBBS 2-10 Page 14 28 Mar 1992
-
-
- ConnUsed() Returns if a fileserver table slot is used
- CurrConn() Returns the current number of active connections.
- FSAttach() Attaches to new fileserver.
- FSConnNo() Returns filserver Connection ID number.
- FSDetach() Detaches from a fileserver.
- FSLogin() Logs a specified user into the file server.
- FSLogout() Logs the current user out of the file server.
- LockConn() Returns connection number which has a record locked. [286]
- LoginDate() Returns the login date of current user(s).
- LoginID() Returns the ID number of current user(s).
- LoginName() Returns the login names of current user(s).
- LoginStat() Returns or sets the current file server login status.
- LoginTime() Returns the login times of current user(s).
- NodeNumber() Returns the workstation node number.
- ShellRev() Returns the workstation shell revision number.
- ShellVer() Returns the workstation shell version number.
- WSLHard() Returns the workstation long hardware type.
- WSLocalDrv() Returns number of logical local drives on workstation.
- WSOS() Returns the workstation operating system type.
- WSOSVer() Returns the workstation operating system version.
- WSSHard() Returns the workstation short hardware type.
-
- Other...
-
- ExclOn() Returns CLIPPER exclusive status. (NON working BTW)
- Strhex() Converts number to hexadecimal string.
-
- File server manipulation
-
- FSDate() Gets or Sets the file server date.
- FSTime() Gets or sets the file server time.
- FSDown() Downs the file server.
- FSName() Returns the file server name.
- FSPrefID() Returns or sets the prefered fileserver.
- FSPrimID() Returns or sets the primary fileserver.
- LoginEnab() Enables/disables file server login.
-
- Messaging services
-
- MsgConsole() Sends a message to the file server console.
- MsgGet() Returns a message from other users.
- MsgLogNet() Logs a network message.
- MsgMode() Returns or sets the workstation's message mode.
- MsgUser() Sends a message to a specified connection number.
-
- File Services
-
- Purge() Purges the workstation's erased files.
-
- Semaphores
-
- SemClose() Closes the specified semaphore.
- SemCount() Returns number of users with specified semaphore open.
- SemDec() Decrements the specified semaphore value by 1.
- SemInc() Increments the specified semaphore value by 1.
- SemOpen() Opens the specified semaphore.
- CLIPBBS 2-10 Page 15 28 Mar 1992
-
-
- SemValue() Returns the value of the specified semaphore.
-
- TTS
-
- TTSAbort() Aborts a TTS transaction.
- TTSAppThr() Returns or sets the TTS application thresholds.
- TTSAvail() Verifies that TTS is available. [286]
- TTSBegin() Begins a TTS transaction.
- TTSCurrTrn() Returns the number of current TTS transactions. [286]
- TTSEnable() Enables/disables TTS. [286]
- TTSEnd() Ends a TTS transaction.
- TTSLevel() Returns the file server TTS level.
- TTSMaxTrn() Returns the maximum number of TTS transactions. [286]
- TTSPeakTrn() Returns the peak number of TTS transactions. [286]
- TTSSpace() Returns the space currently used by TTS. [286]
- TtsTotBo1() Returns the number of TTS backouts by system [286]
- TtsTotBo2() Returns the number of TTS backouts by workstat. [286]
- TTSTotTrn() Returns the total number of TTS transactions. [286]
- TTSVolume() Returns the volume number used for TTS workfiles. [286]
- TTSWSThr() Returns the TTS workstation thresholds.
- TtsWTotTrn() Returns the number of TTS made by workstations [286]
-
- Volume and disks
-
- VolBlAvail() Returns number of blocks available on specified volume.
- VolBlkSize() Returns the size of each block on a specified volume.
- VolBlocks() Returns the total number of blocks on specified volume.
- VolName() Returns the name of the specified volume.
- VolNumber() Returns the volume number of a specified volume.
- VolRemove() Verifies that the specified volume is removable.
- PDChannel() Returns the physical disk channel number. [286]
- PDCont() Returns the physical disk controller number. [286]
- PDContDrv() Returns the physical disk controller drive number. [286]
- PDContType() Returns the physical disk controller type. [286]
- PDCyls() Returns the number of cylinders on a physical disk. [286]
- PDDrvSize() Returns the physical disk size. [286]
- PDDrvType() Returns the physical disk type. [286]
- PDHeads() Returns the number of heads on a physical drive. [286]
- PDHfxAvail() Returns No. of Hot Fix redirection blocks available. [286]
- PDHfxEnab() Verifies that Hot Fix redirection is enabled. [286]
- PDHfxSize() Returns the size of Hot Fix redirection table. [286]
- PDHfxStart() Returns Hot Fix redirection table starting block. [286]
- PDIOErrors() Returns the number of physical disk I/O Errors. [286]
- PDName() Returns the physical disk name. [286]
- PDRemove() Verifies that the physical disk is removable. [286]
- PDSectors() Returns the number of sectors on a physical disk. [286]
- PhyDrives() Returns number of physical drives in the fileserver. [286]
- PhyRDErrs() Returns the number of disk read errors. [286]
- PhyRDReqs() Returns the number of disk read requests. [286]
- PhyWtErrs() Returns the number of disk write errors. [286]
- PhyWtReqs() Returns the number of disk write requests [286]
- ReadReqs() Returns the number of dos disk read requests [286]
- WriteReqs() Returns the number of dos disk write requests [286]
-
- Quite long, isn't? I was quite impressed saw it first time. Functionality
- seems also very good. Documentation in .NG format is coming as common
- CLIPBBS 2-10 Page 16 28 Mar 1992
-
-
- standard, but is missing general comments (about linking), list of functions
- per library, overlaying of library functions.
-
- -------------------------------------------------------------------------------
- CLIPBBS 2-10 Page 17 28 Mar 1992
-
-
- Hitch Hikers Guide To The Net
- Episode 7
-
- (Xaphod, Gillian, Rod, Martin, and Arnold Lint continue their descent into
- the heart of Netrothea. Flarg Brittashik has vanished leaving only a tin
- of Putrina Rat Chow in his stead.)
-
- Xaphod: Wow, that was far out|
- Martin: If you say so.
-
- (All of a sudden, the 12" CRT on Xaphod's shoulder starts up . . . Star
- Wars type music kicks in . . . Once upon a time, in a Net far, far away,
- a band of steadfast hackers are fighting a gallant fight. Vast swarms of
- nauseatingly repetitious messages are swamping their news. They must
- retaliate. This is their story . . . This is Zar Wars. . . All the nodes
- beginning with the letter Z have banded together, they are tired of always
- being last because the Net does everything alphabetically. They decide to
- stage a bold attack and make their presence known| to this end they
- devised a cunning scheme to echo their news articles across the known Net
- several multiple times each posting. In this way, they would be assured
- the attention they feel they deserve. Net.landers are at this moment
- preparing for a counterattack. They are preparing massive Photocomplaint
- rays, Gargantugripe bombs, and the ever deadly Superplasmicautor-
- everberatingmegamoleculozapperdingledangledonglehyperintensified-
- newandimprovedtimewarping complaint field generators. The last device is
- one of the most feared (and hardest to pronounce) in the known Net. Its
- power is so incredible that grown men have been known to pull out their
- own livers rather than be subjected to its awesome force.)
-
- Rod : Turn that off
- Xaphod : (Doing so) Yah, what a drag.
- Arnold Lint: Well, what do we do now.
- Gillian : I guess we keep going.
- Martin : Do we have to?
- All : Yes
- Arnold Lint: Sure could go for a cup of tea.
- Xaphod : (Mumbling to himself) Stupid git
- Martin : Do you people really think this is necessary? Why can't you
- be satisfied with things as they are? Must you always try to
- change them - things can only get worse.
- Xaphod : Look you morose metal moron, we're going on so shut up. Look
- upon this as an adventure into a whole new life.
- Martin : Oh no, not another.
-
- (The stairwell they are on leads into a huge room. So huge that it defies
- commentary, only to say that it is, in fact, bloody huge. Off in the
- distance there is a faint light. Arnold Lint and company head for it. Two
- weeks later they arrive. the light is being emitted from a strange kind of
- TTY. There is a plaque nearby which reads: "For the answer to Life, the
- Net and Everything, type in 'Help'. For dirty books or leather goods, ring
- bell for service. The Inter-Net Megamind Exchange and Novelty Shoppe
- thanks you for your patronage of our establishment".)
-
- Arnold Lint: Wow, the answer to Life, the Net, and Everything
- Xaphod : Who cares, lets get at the dirty books
- Rod : Yah, I wonder if they have "Advanced Necrophilia for
- CLIPBBS 2-10 Page 18 28 Mar 1992
-
-
- Scientists and Engineers" or "Yes, you can be a Toad-Sexer"?
- Arnold Lint: Dirty books, way out here?
- Xaphod : Of course, depravity is the universal language. Pornographic
- material is generally considered legal tender anywhere in
- the Net. I once lived for a whole year on Carnolea, just on
- trading my old "Gland" magazines and lubricants for
- supplies.
- Gillian : (Disgusted by the antics of Rod and Xaphod)Lets see
- the answer already - boy what sicko's.
- Xaphod : OK, but then can we get some dirty books.
-
- (Xaphod types in 'HELP' to the keyboard. Strange hummings and buzzings
- start to emanate from the TTY. The cryptic characters "101010" appear on
- the screen.)
-
- ********************************************************************
- "The Hitch Hikers Guide To The Net" points out that the number 42, when
- viewed in it's binary representation is in fact, quite revealing. There
- are many theories for what it actually means. The adult magazine "Spurt"
- suggests that it is the perfect pattern for an orgy, three males and three
- females being the supposed ideal. The actual shape of the characters of
- '101010' seem to bear this out. Also the fact that it does go
- 'boy-girl-boy . . . ' also helps. The religious magazine 'Modern Moral
- Majority' (MMM) suggests that it is in fact a message from God. The
- pattern indicates that two of the same sex shall not have intercourse. The
- fact that there are equal numbers of both male and female indicates that
- monogamous relationships are the thing to do. Also the fact that, when
- read, left to right, the man always comes first, really gave them an edge
- on the ERA (who really didn't listen anyway). Most other people simply
- wondered why everyone thought the binary sequence had anything at all to
- do with sex.
- ******************************************************************]
-
- Rod : That's it?
- Xaphod : Apparently.
- Gillian : There must be more than just 42.
- Martin : I certainly hope not.
- Xaphod : Well, lets try to get some more info|
-
- (Xaphod once again starts typing at the TTY. Characters flash and buzzers
- buzz. The TTY finally gives up, it types out: "All right already, if you
- really want the answers, take the service elevator to the 127,366,247th
- floor, then follow the green line till it meets the blue line till it
- meets the orange line till it becomes the slightly off white line. Then
- climb out the window, jump off and ask for Ralph. He'll tell you the
- whole story. Now push off, I've had a bad day. (To itself now) Where did I
- put those Valliums. Crap, I need a drink . . . ")
-
- Xaphod : Oh well, what do we have to loose.
- Martin : Not much really, just our lives. Of course, my life means so
- little already, I doubt I'd mind if it were lost.
- Rod : Quiet.
-
- ******************** End Of Part 7 ********************
-
- What is the actual answer to Life, the Net, and Everything? Will Arnold
- CLIPBBS 2-10 Page 19 28 Mar 1992
-
-
- Lint get his tea? Will Xaphod get his dirty book? Will the net sponsor a
- Pot-Luck-Orgy? For the answers to these and many other pointless questions
- . . . Tune in next time . . . same Net-time . . . same Net-channel.
-
- -------------------------------------------------------------------------------
- CLIPBBS 2-10 Page 20 28 Mar 1992
-
-
- @...GET MEMO
- (by Stephen Forbes in original)
-
- In recent times there have been a number of messages on the Clipper Echo
- about the use of memo fields inside a GET/READ. As a result I thought I would
- try to emulate the dBASE style using a Get object. Whilst a true Get object
- is created for the memo, this is simply used to enable the memo to be handled
- as a member of the READ (in the order it is declared), the real work is done
- by the function MemoReader().
-
- ********************************* CUT HERE ********************************
-
- // GETMEMO.CH -------------------------------------------------------------
- //
- // Header file required for emulation of dBASE style memo gets in Clipper
- //
- // Written by Steve Forbes - Clipper User Group Melbourne - 1 Feb 92
- //
- // ------------------------------------------------------------------------
-
- #command @ <Top>, <Left> GET MEMO <var> [WINDOW <t>, <l>, <b>, <r>] ;
- [NAME <name> ] ;
- [VALID <valid>] [WHEN <when>] [SEND <msg>] ;
- => SetPos( <Top>, <Left> ) ;
- ; AAdd( GetList, ;
- GetMemo( {| Val| iif( Val == NIL, <var>, <var> := Val)}, ;
- <(var)>, <{valid}>, <{when}>, ;
- <Top>, <Left> - 1, <t>, <l>, <b>, <r>, <name> ) )
-
- // EOF - GETMEMO.CH -------------------------------------------------------
-
- // TEST.PRG ---------------------------------------------------------------
-
- #include "Inkey.ch"
- #include "Box.ch"
- #include "Getexit.ch"
- #include "Getmemo.ch"
-
- LOCAL cName := SPACE(20), ;
- mNotes := SPACE(100), ;
- mNotes2 := "This is some data in the memo field", ;
- dDOB := CTOD(""), ;
- cBackground := REPLICATE( "CUG Melbourne ", 8 ), i
-
- MEMVAR GetList
-
- SET DATE BRITISH
- SET SCOREBOARD OFF
-
- dDOB := CTOD("09/03/55")
-
- SETCOLOR( "W+/B" )
- CLS
-
- // Draw Background
-
- CLIPBBS 2-10 Page 21 28 Mar 1992
-
-
- FOR i := 0 TO 22
- @ i, 0 SAY SUBSTR( cBackground, i + 1, 80 )
- NEXT
-
- SETCOLOR( "N/G" )
- @ 4, 4, 11, 37 BOX B_SINGLE + " "
- @ 6, 7 SAY "Name: " GET cName
- @ 7, 7 SAY "Notes: " GET MEMO mNotes
- @ 8, 7 SAY "DOB: " GET dDOB
- @ 9, 7 SAY "Data: " GET MEMO mNotes2 WINDOW 10, 6, 20, 73 NAME "Data"
- READ
-
- SETCOLOR( "W+/B" )
-
- @ 24, 1 SAY "Press any key to see the value of GETS ..."
- INKEY(0)
- CLS
-
- ? "cName -> " + cName
- ? "mNotes -> " + MEMOTRAN( mNotes, " ", " " )
- ? "dDOB -> " + DTOC( dDOB )
- ? "mNotes2 -> " + MEMOTRAN( mNotes2, " ", " " )
-
- // EOF - GETMEMO.CH -------------------------------------------------------
-
- ******************************** CONTINUED ********************************
-
- ********************************* CUT HERE ********************************
-
- // GETMEMO.PRG ------------------------------------------------------------
- //
- // GetMemo() provides emulation of dBASE style memo gets in Clipper
- //
- // Written by Steve Forbes - Clipper User Group Melbourne - 1 Feb 92
- //
- // ------------------------------------------------------------------------
-
- FUNCTION GetMemo ( bValue, cVarName, bValid, bWhen,;
- nTop, nLeft, t, l, b, r,cName )
- LOCAL oGet
-
- //--- Create the get object!
- oGet := GetNew( nTop, nLeft, bValue, cVarName )
-
- IF t == NIL .OR. l == NIL .OR. b == NIL .OR. r == NIL
- t := l := 0
- b := MAXROW()
- r := MAXCOL()
- ENDIF
- //--- Assign the different instance variables!
- oGet:Reader := { | oGet | MemoReader( oGet ) }
-
- IF oGet:cargo == NIL
- oGet:cargo := DictNew()
- END
- DictPut( oGet:cargo, "MemoCoord", { t, l, b, r } )
- CLIPBBS 2-10 Page 22 28 Mar 1992
-
-
- DictPut( oGet:cargo, "MemoName", cName )
-
- @ oGet:row, oGet:col SAY "MEMO" COLOR ColorPair( oGet:colorSpec, 2 )
-
- return( oGet)
-
- // =======================================================================
-
- FUNCTION MemoReader( oGet )
- LOCAL nKey := 0, cBuffer, cScreen := SAVESCREEN( 0, 0, 24, 79 ), aCoords
- LOCAL cName, cColor
- DISPBEGIN()
- oGet:SetFocus()
- cBuffer := oGet:Buffer
- oGet:KillFocus()
- RESTSCREEN( 0, 0, 24, 79, cScreen )
- DISPEND()
- SETPOS( oGet:row, oGet:col )
- DO WHILE .T.
- IF LASTKEY() == K_ESC
- oGet:exitState := GE_ESCAPE
- EXIT
- ENDIF
- nKey := INKEY(0)
- DO CASE
- CASE nKey == K_ENTER
- oGet:exitState := GE_ENTER
- EXIT
- CASE nKey == K_UP
- oGet:exitState := GE_UP
- EXIT
- CASE nKey == K_DOWN
- oGet:exitState := GE_DOWN
- EXIT
- CASE nKey == K_F10
- aCoords := DictAt( oGet:cargo, "MemoCoord" )
- cName := IF( ( cName := DictAt( oGet:cargo, "MemoName" ) ) == NIL,;
- "", " " + cName + " " )
- cScreen := SAVESCREEN( aCoords[1], ;
- aCoords[2], ;
- aCoords[3], ;
- aCoords[4] )
- @ aCoords[1], aCoords[2], aCoords[3], aCoords[4] BOX B_DOUBLE_TOP
- @ aCoords[1], aCoords[2] + 2 SAY cName
- cColor := SETCOLOR( ColorPair( oGet:colorSpec, 2 ) )
- cBuffer := MEMOEDIT( cBuffer, ;
- aCoords[1] + 1, ;
- aCoords[2] + 1, ;
- aCoords[3] - 1, ;
- aCoords[4] - 1, ;
- .t. )
-
- oGet:varPut( cBuffer )
- SETCOLOR( cColor )
- RESTSCREEN( aCoords[1], aCoords[2], aCoords[3], aCoords[4], cScreen )
- SETPOS( oGet:row, oGet:col )
- CLIPBBS 2-10 Page 23 28 Mar 1992
-
-
- ENDCASE
- ENDDO
- RETURN ( NIL )
-
- //=======================================================================
-
- FUNCTION ColorPair( cColorSpec, nWhich)
- LOCAL n, cRetVal := "," + cColorSpec + ","
- FOR n := 1 TO nWhich
- cRetVal := SUBSTR( cRetVal, AT( ",", cRetVal) + 1, LEN( cRetVal))
- NEXT
- cRetVal := LEFT( cRetVal, AT( ",", cRetVal) - 1)
- RETURN ( cRetVal)
-
- // EOF - GETMEMO.PRG ------------------------------------------------------
-
- -------------------------------------------------------------------------------
- CLIPBBS 2-10 Page 24 28 Mar 1992
-
-
- Clipper file/record locking
-
- Clipper does not lock the physical record, but instead locks a 1-byte area
- offset (1000 000 000 + record number) bytes from the beginning of the file. I
- found this out by monitoring record locking on Novell 3.1.
-
- The following Borland C++ program is compatible with Clipper record locking. It
- locks the first record in the database. I works perfectly in tandem with a
- Clipper program on NW386. Locks are denied and permitted just as in a Clipper
- prog.
-
- #include <io.h>
- #include <fcntl.h>
- #include <sys\stat.h>
- #include <process.h>
- #include <share.h>
- #include <stdio.h>
- #include <conio.h>
-
- int main(void)
-
- int handle, status;
- long header=0x3B9ACA01,recsize=1;
-
- handle=sopen("test.dbf",O_RDWR,SH_DENYNO,S_IREAD);
- if (handle<0) {
- printf("sopen failed\n");
- exit(1);
- }
- status=lock(handle,header,recsize);
- if (status==0)
- printf("lock succeeded\n");
- else
- printf("lock failed\n");
- getch();
- status=unlock(handle,header,recsize);
- if (status==0)
- printf("unlock succeeded\n");
- else
- printf("unlock failed\n");
- close(handle);
- return 0;
-
- -------------------------------------------------------------------------------
- CLIPBBS 2-10 Page 25 28 Mar 1992
-
-
- Get exit code after RUN command
-
- ----------------------------------------
- (Asm routine to get exitcode to Clipper)
-
- .MODEL LARGE
-
- EXTRN __retni:FAR
-
- PUBLIC GETELVL
-
- .CODE
-
- GETELVL PROC FAR
-
- mov ah,4dh ; DOS function Get Return Code
- int 21h ; call DOS
- push ax ; push Exit code on stack
- call __retni ; make result available to Clipper
- add sp,2 ; reset stack pointer
- RET
-
- GETELVL ENDP ; End of routine
-
- END
-
- -----------------------------------------
- (Small program to test above asm routine)
-
- TEST.PRG
-
- RUN YOUR_PROGRAM
- exitcode := getelvl()
- ? exitcode
-
- -------------------------------------------------------------------------------
- CLIPBBS 2-10 Page 26 28 Mar 1992
-
-
- ===============================================================================
- SOFTWARE
- ===============================================================================
-
-
- Novell FORUMS on Compuserve
-
-
- ┌──────────────────────┬───────────────────────┬───────────────────────────┐
- │ NOVA │ NOVB │ NOVC │
- ├──────────────────────┼───────────────────────┼───────────────────────────┤
- │1) ELS NetWare │ 1) Servers & Workstn │ 1) General Info/Misc │
- │2) Async Communic'tns │ 2) Backups │ 2) Upgrades │
- │3) Mini/Mainfrme Links│ 3) Printing │ 3) Application/Utils │
- │4) LAN/LAN Links │ 4) Disk Drives/Cntr'lr│ 4) Btrieve/XQL/SQL │
- │5) NetWare Macintosh │ 5) K-12 Networking │ 5) E-Mail/MHS │
- │6) NetWare VMS │ 6) Closed - Go NOVA │ 6) P'gramming & N'Ware │
- │7) Portable NetWare │ 7) Closed - Go NOVA │ 7) NetworkManagement │
- │8) NW NFS - TCP/IP │ 8) Power Monitoring │ 8) ProductSuggestions │
- │9) NetWare Lite │ 9) Ethernet │ 9) UserGroups/Train'g │
- │10) NSE │ 10) Arcnet │ 10) OS/2 Requester │
- │11) LANalyzer/LANtern │ 11) Token-Ring │ 11) VAR/Dealertalk │
- │12) LANWrkPlaceDOS-OS2│ 12) Other LAN types │ 12) CNEs │
- │13) UK Topic │ 13) Cabling/Media │ 13) Developers │
- │14) │ 14) New Shells │ 14) On yourSoapbox! │
- │15) │ 15) Windows │ 15) The LighterSide │
- │16) │ 16) │ 16) │
- └──────────────────────┴───────────────────────┴───────────────────────────┘
-
- ┌──────────────────────┬───────────────────────┬───────────────────────────┐
- │ NETW2X │ NETW3X │ NOVLIB │
- ├──────────────────────┼───────────────────────┼───────────────────────────┤
- │1) Printing │ 1) Printing │ 1) Lib Questions Only │
- │2) Utilities │ 2) Utilities │ 2) │
- │3) Disk Drives/Cntrls │ 3) Disk Drives/Cntrls │ 3) │
- │4) Client/Shells │ 4) Client/Shells │ 4) │
- │5) LAN Driver/Cards │ 5) LAN Driver/Cards │ 5) │
- │6) Empty │ 6) Empty │ 6) │
- │7) Empty │ 7) Empty │ 7) │
- │8) Empty │ 8) Empty │ 8) │
- │9) Empty │ 9) Empty │ 9) │
- │10) Empty │ 10) Empty │ 10) │
- │11) Empty │ 11) Empty │ 11) │
- │12) Empty │ 12) Empty │ 12) │
- │13) Empty │ 13) Empty │ 13) │
- │14) 2.1x & Below/OS │ 14) 3.x OS Specific │ 14) │
- │15) 2.2 OS Specific │ 15) │ 15) │
- └──────────────────────┴───────────────────────┴───────────────────────────┘
-
- Novell NOVLIB Forum Libraries Menu
-
- 1 Novell NEW Uploads
- 2 General Information
- 3 NetWare 2.X Specifc
- 4 NetWare 3.X Specifc
- 5 Client/Shell Drivrs
- CLIPBBS 2-10 Page 27 28 Mar 1992
-
-
- 6 NetWare Utilities
- 7 Btrieve/XQL
- 8 Mac/UNIX/LANalyzer
- 9 Comunic'tns Product
- 10 NetWare Lite
- 11 Techinfo/IMSP's
- 12 CLOSED
- 13 Other Ptch's/Drvr's
- 14 Independent Devl'mt
- 15 ShareWare/Demo
- 16 Public Domain/Text
- 17 Other NEW Uploads
-
- -------------------------------------------------------------------------------
-
-
- What is what (1)
-
- ADDCOMM 99
-
- Advanced communications library for dBASE. Baud rates to 19200
- bps, Xmodem, Xmodem-CRC, Ascii text capture to .DBF files.
- COM1 to COM4 supports. Can operate unattended. Includes macro
- processing
-
- ARTFUL freshWin
-
- Database Warehouse, £129
-
- Windowing library, opening as many windows as you like, using
- popup, exploding or ventian-blind methods. Drag then, size
- them, float them, color them, say and get to them, hide them,
- write to them even when hidden. Coded in C and assembly where
- it counts, for insanely great speed. Complete source in 5.0 and
- C and assembly, nguide database and manual. Based on OOP
-
- ARTFUL TWO also as ARTFUL.LIB
-
- Database warehouse, £285 for 5.0, £185 for Summer 87
-
- Rapid Application Development (RAD) for Clipper programmers:
-
- menu designer, dictionary manager, fiel-level dynamic help
- system, autohelp system displays help on ENTRY INTO a field,
- report manager, user manager, relational query, relational
- search, scrolling detail regions, scoped browsers, pusbuttongs,
- radio buttons, check boxes, field and file selectors,
- intelligent file maintenance objects, csrolling lookup tables,
- enumerated fields, milti-tag list boxes, automatic multi user
- apps, automatic file and index handling, automatic relational
- protections, dynamically selectable menus, individual colors,
- all text in header files for easy translations, complete source
- code in 5.0 and C
-
- BAR CODE LIBRARY
-
- CLIPBBS 2-10 Page 28 28 Mar 1992
-
-
- Offers a bar code printing facility that can be called from
- Clipper application, it can print a variety of different
- formats and supports most major printers. bar code reading
- systems are available from various other manufacturers.
-
- BENCHTEST
-
- TST program which allow recording and playback of kestrokes in
- Clipper program. Also screen dumping, pausing with
- optional messages, sleeping, break points, choices of playback
- speed. Record to an easy to edit text files. Use for demos,
- debugging or unattended testing. Requires about 44KB of memory.
-
- BITON
-
- Allows a Clipper application use ORACLE as a data storage
- medium through function calls. Requires Oracle 5.1b and
- MicroSoft C alternate Math lib (LLIBCA.LIB). Basic knowledge of
- Oracle SQL Required.
-
- BLINKER
-
- Fast dynamic overlaylinker for Clipper. 6times faster than
- PLINK86 with automatic overlaying and compatible with existing
- .LNK files. also overlays well behaved C and ASM code and .LIB
- code Included profilling functions a free pool memory packer,
- burning in of SET CLIPPER variable and serial numbers plues
- creating of demonstration EXEs. Now supoprots incremental
- linking and comes with NG database.
-
- CALC(DB)
-
- Fully functional spreadsheet library for Clipper5, Powerfull
- spreasheet and calculation facilities. Consists of an API which
- provieds for formula creating, Lotus 123, macro supports. Cell
- access and control, and coversion between .DBF and .WK1
-
-
- CHYDALE DBF PROTECTOR
-
- With the addtion of a single line to your source code stops end
- users accessig DBF files with dBASE, DBU or other utilities,
- while allowing your application to accessthe files normally.
- The changes to the DBF can easily be reversed by you allowing
- YOU total control of access to DBF files.
-
- CHYDALE DBT REPLACER
-
- Replaces DBT file associated with DBF files. Requires very
- little modification to any existing application to use it.
- reduces the number of file handles required and saves loads of
- disk psace, the DBT Replacer can be used to store variable
- length text and Binary data
-
- CHYDALE MOUSE DRIVER
-
- CLIPBBS 2-10 Page 29 28 Mar 1992
-
-
- Integrate mouse with your Colipper application using the
- Chydale Mouse driver and avoid trouble of programming the
- mouse. One line of code added to your source code enables mouse
- support for MENU TO, MEMOEDIT, GETs, ACHOICE, DBEDIT and more.
- A unique new BUTTON facility allows to associate and action
- with a region on the screen.
-
- CHYDALE NETWORK LIBRARY
-
- Meets the requirements of network programmers. COnsists of thwo
- main parts, one for user entry protection and the other for
- user monitoring, Open a view of files in one function call with
- the view manageer,. System supervisor utility allows control of
- users by logging their activities and password protection.
-
- CHYDALTE TEST CASE GENERATOR
-
- Generator is designed for programmers wishing to perform
- realisting test on systems. It fully populates data file
- avoiding laborious typing. It produces random data which meets
- constraints set by the programmer - such as ranger or related
- fileds.
-
- CHYDALE PROFESSIONAL TOOLKIT
-
- DBF Protector, DBT REPLACER, MOUSE DRIVER, NETWORK LIBRARY and
- CASE GENERATOR
-
- CHYDALE SUPERCLASS
-
- TRUE objects to be defined and created which operate in the
- same manner as Clipper 5's fixed classes. Create and export
- instance variables, assign methods just like the predefined
- classes. Integrates fully with 5.01 debugger, some fully
- documented sample classes included - menu, stack, image objects
- and others.
-
- CL Professional
-
- Database Warehouse, £519
- (C) Dr.Huggle&Partner Gmbh
-
- CLTOOLS3.0 and CLREPORT 3.0 and CLTEXT 3.1 included in one
- package.
-
- CLARINET
-
- Transparent connectivity to Novell's Netware operating system
- from withing datbase applications. This function library
- provides direct interation with network without having use
- external NEtware utilities. Fully network aware applications,
- includes service for connectios, worskstations, directories,
- bindery, printing....
-
- CLASSY
-
- CLIPBBS 2-10 Page 30 28 Mar 1992
-
-
- Adding own real objects (classes) into Clipper. For 5.0 it was
- shareware, for 5.01 it's classic product for buy.
-
- CLEAR+
- Flowchars from source code, high resolution diagrams,
- multi-level system tree charts, formatted source listing,
- program flow simulation mode, multi-page charts with line
- indexing, PCX and PIC file output, zooming and rotation,
- portrait or landscape orientation. Supports dBASE II, III,
- III+, IV, Clipper, Focbase, QuickSilver and dBXL.
-
- CLIP2EB
-
- Advantage of POWER of EMERALD BAY without leaving the security
- of Clipper.
-
- CLIPFPCX
-
- Small and very fast function for displaying one .PCX file on
- screen. Nothing else, but SHAREWARE and really very fast.
-
- CLIPPER TOOLS, also called NANTUCKET TOOLS
-
- Supported, supplied and written by Nantucket porvides with 270+
- useful functions covering basic windowing, serial port,
- database functions, screen, system informations, printer...
-
- CLIPTOOLS
-
- More than 270 functions to help with problems. Store file/field
- details in text files and use intelligent functions to manage
- .DBT files, powerful browser and user interface functions,
- network, relation manipulation, menu system, virtual big screen
- made from physical screens, low level functions, stack system,
- full internatl network support, 500pages manual
-
- CLIPX
-
- set of function for windowing, look-ups and popus, implode,
- explode and slide, DBHANDLE is a powerful replacement for
- DBEDIT, dbgen generates databases, dbseek seeks
- first/last/next/prevous key occurence, barmenu handles 4
- directional bar option selection, completely documented with
- numerous examples and help for NG engine.
-
- CLIRMA
-
- Clipper and DCA's IRMA subroutines to allow PC programs to
- drive IBM 3270 mainframe screens via IRMA board. Requires
- Summer 87 and MS linker v3.61 or later
-
- CLREPORT 3.0
-
- list programming, menu driven report rafting with WYSIWYG user
- interface, complex evaluations included in reports. Directly
- linkable runtime modules, more than 300 pritner types, graphics
- CLIPBBS 2-10 Page 31 28 Mar 1992
-
-
- and text output, screen output with horizontal and vertical
- scrolling..
-
- CLTOOLS 3.0
-
- Over 250 functions in 20 groups, mouse, windowing, graphics,
- operating system, serial interface, string processing, direct
- access to DOS background printer spooler, 43 line EGA, 256
- windows, nested GETs
- windows like surface, graphics library including:
- - window processing on graphics screens
- - event management for running dialog boxes
- - mouse support, buttons, scrollbasrs, icon menues
- - about every graphics element you could thing of, image
- management, presentation graphics
- - PCS support, scan your pictures
- - unachieved results in printing
- - vector font, rubberbanding
- - printer spooler
- - serial interface functions
- - string management
-
- CLTEXT 3.1
-
- Object oriented text processing, 80 methosd of editing, MS word
- like in look and feel, 350 printer installations included,
- source included (probably).
-
- 123CONNECTION
-
- Transparent connectivity to Lotus compatible spreadsheet data
- from within database applications. Ability to access, read or
- write existin worksheets or create entirelyt new worksheets,
- compatible with Lotus 123 release 1.x and 2.x worksheets of
- unlimited size. Clipper Summer 87 and 5.0 compatible
-
- CODE BASE
-
- "C" library for datbase and screen managemet, Compatible with
- data, index and memo files of dBASE and CLipper. Allows you to
- buold a milti-user dBASE/Clipper compatible application with
- pulldown menus, popup window, data entry from picklists and
- more. Runs much faster than Clipper of FOX. Needs TurboC++,
- Microsoft C, Zortech C++ or similar environment.
-
- COMMTOOLS
-
- Give your application the power of communication, Commtols is
- development tool for CLipper 5.0 and Summer87 whcih extends the
- Clipper dialect to include comms facilities. Send Faxes, dial
- modems, importa data via your serial port, supports numernous
- communications protocols and variety of hardware.
-
- dANALYST GOLD
-
- Converts from ANY single to multi-user application. Also
- CLIPBBS 2-10 Page 32 28 Mar 1992
-
-
- provides blocking diagrams, cross references variables,
- performs data type analysis and lists data structures, Works
- with DV386 and allows creating of Windows applications. Works
- with Clipper, dBASE, Foxbase+, QuickSilver or C
-
- DB2SC4
-
- Utility to transcribe data from .DBF files to Supercals 4 and 5
- formats by specifying record and field ranges and scopes.
- Character blanks and zeros are automatically excluded. prompt
- file paramters can automate the program from DOS. Developed in
- Clipper, linkable object code version is available.
-
- DBDBAK
-
- Database Warehous, £129
- (c) Data Base Designs
-
- Comprehensive backup and restore library with
- compression/decompression up to 75% with DBF files, robust disk
- formatting routines, disk "branding", multiple directory backup
- and file tagging, large file splitting, error handling, arhive
- library maintenance, disc label printing, incremental file
- backup. Clipper source provided.
-
- DBDMOUSE
-
- Pull down menu generator with full mouse support.Written in
- Assembler.
-
- DBDSCRL
-
- Provides sophisticated method of presenting data on screen with
- light bar scrolling, mouse support and field pnning with freeze
- capability. Can be called recursively. Source provided.
-
- -------------------------------------------------------------------------------
-
-
- Printing out memory file
-
- Here's MEMDUMP program in Clipper 5.01 (converted from Rick Spence's
- ideas). It fills an array with the contents of a .MEM file. You would
- simply dump the contents instead of building the array.
-
- // #include "fileio.ch"
- #define MEM_SIZE 32
- #define CRLF chr(13)+chr(10)
- #define MNAME 1
- #define MTYPE 2
- #define MLEN 3
- #define MDEC 4
- FUNCTION memdump( fname )
- local mem_handle, mem_rec, _mem_rec := array(4)
- local csize, value, contents := {}
- if pcount() != 1 .or. ((mem_handle := fopen(fname)) == -1)
- CLIPBBS 2-10 Page 33 28 Mar 1992
-
-
- return contents
- endif
- mem_rec := space(32)
- do while (fread(mem_handle, @mem_rec, MEM_SIZE) == MEM_SIZE)
- Fill_Array(mem_rec, _mem_rec)
- do case
- case _mem_rec[MTYPE] == "C"
- csize := _mem_rec[MLEN] + _mem_rec[MDEC] * 256
- value := space(csize)
- fread(mem_handle, @value, csize)
- case _mem_rec[MTYPE] == "D"
- value := space(8)
- fread(mem_handle, @value, 8)
- value := IEEE2real( value )
- value := ctod('01/01/100') + value - 1757585
- case _mem_rec[MTYPE] == "L"
- value := space(1)
- fread(mem_handle, @value, 1)
- value := iif(asc(value)==0,".F.",".T.")
- case _mem_rec[MTYPE] == "N"
- value := space(8)
- fread(mem_handle, @value, 8)
- value := IEEE2real( value )
- endcase
- aadd(contents, { _mem_rec[MNAME], ;
- _mem_rec[MTYPE], ;
- _mem_rec[MLEN], ;
- _mem_rec[MDEC], ;
- value } )
- enddo
- fclose(mem_handle)
- RETURN contents
-
- PROCEDURE Fill_Array(mem_rec, _mem_rec)
- _mem_rec[MNAME] := substr(mem_rec, 1, 11)
- * Fix for Clipper's placement of non-null bytes after null terminator
- _mem_rec[MNAME] := left(_mem_rec[MNAME], at(chr(0),_mem_rec[MNAME])-1)
- _mem_rec[MTYPE] := chr( asc( substr(mem_rec, 12, 1)) - 128) // & 127
- _mem_rec[MLEN] := asc(substr(mem_rec, 17, 1))
- _mem_rec[MDEC] := asc(substr(mem_rec, 18, 1))
- RETURN
-
- ************************[ p. 1032, Lief's Book ]**************************
- FUNCTION IEEE2real(cIee)
- // note this function may have glitches on some numbers.
- local retval := 0, k, x1 := "", sign, exponent, fraction
- if cIee <> replicate(chr(0),8) // Are all bits set to zero?
- * x1 will be the 8 bytes converted to it's 64 bit binary equivalent
- * in text
- for k := len(cIee) to 1 step -1
- x1 += Dec2Bin(asc(substr(cIee,k,1)),8)
- next k
- sign := (substr(x1,1,1) == "1")
- exponent := Bin2dec(substr(x1,2,11)) - 1023
- fraction := Bin2dec("1"+substr(x1,13),.t.) / (2**52)
- retval := if(sign,-1,1) * ( fraction * (2**exponent))
- CLIPBBS 2-10 Page 34 28 Mar 1992
-
-
- endif
- RETURN retval
-
- -------------------------------------------------------------------------------
- CLIPBBS 2-10 Page 35 28 Mar 1992
-
-
- ===============================================================================
- NEWS
- ===============================================================================
-
-
- Clipper Interface Handbook
-
-
- There's a new book out called "The Clipper Interface Handbook" by John Mueller
- that describes all about interfacing Clipper with both C and Assembly language.
- It also includes references to DOS interrupts, tips on interfacing a mouse and
- a into a Clipper app and command/function reference for Clipper, C and ASM. The
- book covers all versions to 5.01 (but centers mainly on 5.01).
-
- Stats :
- Title : The Clipper Interface Handbook Version 5.x
- Author : Mueller, John
- ISBN : 0-8306-3532-7
- Publisher : Windcrest/McGraw Hill
- Price : $27.95 US Rec Retail
-
- -------------------------------------------------------------------------------
- CLIPBBS 2-10 Page 36 28 Mar 1992
-
-
- ===============================================================================
- ANOMALIES
- ===============================================================================
-
-
- ANOMALIES and their comments
-
- This part of Clipper BBS Magazine is dedicated to all discovered
- anomalies and comments about them in Clipper products. Because
- Nantucket is still unable to give own bug and anomalies reports (as
- actually did in past with Summer 87 version) is very handy to have
- results of many investigations done on many user places. I'm also
- doing my own investigatings, because i'm always very good when someting
- has hidden problems. Everything what i buy will first show all problems
- and then all normal things. This amazing part of my live is sometime
- making me crazy, but for testing of programs it's great <grin>.
-
- Daniel
-
-
-
- -------------------------------------------------------------------------------
- CLIPBBS 2-10 Page 37 28 Mar 1992
-
-
- ===============================================================================
- COMMENTS
- ===============================================================================
-
-
- Funny set SET DATE....
- ----------------------
-
- This is most probably of the topic, BUT
- did you know that you could :
- SET DATE FORMAT TO "CC-YY,MM:DD"
-
- and your dates would now display as 19-92,01:29
-
- -------------------------------------------------------------------------------
- CLIPBBS 2-10 Page 38 28 Mar 1992
-
-
- __DOS_HOLD problem
-
- The __dos-Hold problem arises also when you compile with the latest
- Blinker-releases. The problem can be solved when you put into your
- module somewhere a function :
-
- function __dos_hold
- return .t.
-
- -------------------------------------------------------------------------------
- CLIPBBS 2-10 Page 39 28 Mar 1992
-
-
- ===============================================================================
- CLIPPER NET
- ===============================================================================
-
-
-
- Following is COMPLETE list of all published file descriptions in Clipper
- BBS magazine in previous numbers. Purpose of this index list is to allow
- anybody find needed file descriptions in growing number of described files.
- Short description after name will give first possible close image about
- file. Number enclosed in "[]" will mean number of Clipper BBS magazine.
-
- ┌─────────────┬────┬────────────────────────────────────────────────┬──────┐
- │FileName │Src │Description │Where │
- ├─────────────┼────┼────────────────────────────────────────────────┼──────┤
- │ACCESS.ARJ │Cln │Source of speed testing program │[1-06]│
- │ACH2TB.ARJ │Cln │Convert ACHOICE to TBROWSE │[1-05]│
- │ACHOO2.ARJ │Cln │Replacement of ACHOICE with GET possibilites │[1-06]│
- │ADHOC302.ARJ │Cln │Summer 87 inteligent report program │[1-04]│
- │ASCPOS.ARJ │Cln │replacement of ASC(substr(cString,nPosition,1)) │[1-11]│
- │BARNTX.ARJ │Cln │Displaying bar indication during indexing │[1-13]│
- │BLOCK.ARJ │Cln │Tetris game written in Cliper │[1-19]│
- │BUTTON.ARJ │Cln │@GET in form of BUTTON │[1-14]│
- │CALC14.ARJ │Cln │PoPup Calculator │[1-08]│
- │CIVMIL.ARJ │Cln │Upgrade of Civil->Military time conversion │[1-19]│
- │CL5103.ARJ │Cln │Report of 5.01 anomaly number 3 │[1-04]│
- │CL5REP6.ARJ │Cln │5.01 replacement of REPORT command │[1-04]│
- │CLIP110.ARJ │Cln │Clipper Documentor program │[1-05]│
- │CLIPFPCX.ARJ │Cln │Fast .PCX displayer for CLipper │[1-15]│
- │CLIPLINK.ARJ │Cbs │Complete text of R.Donnay about linkers │[1-04]│
- │CLIPPLUS.ZIP │Cln │Object extension for CLIPPER 5.0 │[1-14]│
- │CLIPSQL.ARJ │Cln │Demo of complete SQL library for CLipper │[1-05]│
- │CLIPWARN.AJ │Cln │Semaphore for convert WARNING: into ERRORLEVEL │[1-11]│
- │CLPFON.ARJ │Cln │Set of fonts for EXPAND.LIB from author │[1-03]│
- │COMET.ARJ │Cln │Demo version of communication library │[1-19]│
- │COND.ARJ │Cln │Builder of conditional indexes like SUBNTX │[1-03]│
- │CWDEMO.ARJ │Cln │Classworks lib written in CLASS(Y) │[1-13]│
- │DBSCN2.ARJ │Cln │Screen designer generator │[1-05]│
- │DIAL.CLN │Cln │Dialer with using of FOPEN() │[1-07]│
- │DOC111.ARJ │Cln │Documentor, newer version │[1-08]│
- │DTF102.ARJ │Cln │.DBT files replacement, fully functional │[1-14]│
- │ENDADD.ARJ │Cln │replacement of incrementing last char of string │[1-11]│
- │GETKEY.ARJ │Cln │Input oriented library, wordprocessing │[1-12]│
- │GETPP.ARJ │Cln │Modified GETSYS.PRG well documented │[1-19]│
- │GSR151.ARJ │Cln │Global Search and replace for programmers │[1-07]│
- │HGLASS.ZIP │Cln │Hour glass for indication of index progression │[1-04]│
- │HILITO.ARJ │Cln │Highlighting of keywords on screen │[1-19]│
- │HOTKEY.ARJ │Cln │Makin unique hot key letter for every arrat el. │[1-14]│
- │INDXSL.ARJ │Cln │User Fields selection builder for index generate│[1-03]│
- │IOBASYS9.ARJ │Cln │Demo of S87 library and calling Clipper from C │[1-03]│
- │IS.ARJ │Cln │Several c sources of ISxxxx functions │[1-11]│
- │JG2.ARJ │Cln │Jumping between GET statements in READ │[1-08]│
- │KF_LOKUP.ARJ │Cln │Set of program for database relations │[1-07]│
- │LUTLIB.ARJ │Cln │Another Clipper library │[1-08]│
- │MK30.ARJ │Cln │Mouse library demo version │[1-03]│
- │MOVEGETS.ARJ │Cln │GETSYS change for moving between gets via VALID │[1-03]│
- CLIPBBS 2-10 Page 40 28 Mar 1992
-
-
- │MSWIN.ARJ │Cln │Detection of Windows mode when running Clipper │[1-14]│
- │NFDESC2.ARJ │Cln │NanForum library description list │[1-06]│
- │NFLIB2.ARJ │Cln │NanForum library main file │[1-06]│
- │NFSRC2.ARJ │Cln │NanForum library Source files │[1-06]│
- │NOTATION.ARJ │Cln │Complete text of article about hungarian notat. │[1-04]│
- │NTXBAR.ARJ │Cln │Bar of indexing via system interrupts │[1-19]│
- │OCLIP.ARJ │Cln │Object extension, real (not #define/command) │[1-12]│
- │OOPSCL5.ARJ │Cln │Another version of pseudo objects │[1-07]│
- │PACKUP.ARJ │Cln │ASM source of PACK/UNPACK replacement SCRSAVE.. │[1-04]│
- │PARTIDX3.ARJ │Cln │Partial indexing │[1-12]│
- │PAT1.ARJ │Cln │CIX NanForum Libraryy PATCH │[1-07]│
- │PAT2-2.ARJ │Cln │Fix for FLOPTST.ASM in Nanforum Library │[1-13]│
- │PAT2-3.ARJ │Cln │TBWHILE improvement for Nanforum libray │[1-14]│
- │PAT2-4.ARJ │Cln │FT_PEGS() patch for NFLIB │[1-15]│
- │PAT2-5.ARJ │Cln │FT_TEMPFIL() patch for NFLIB │[1-16]│
- │POPUPCAL.ARJ │Cln │Popup calender │[1-05]│
- │POSTPRNT.ARJ │Cln │Postscript printing from inside of Clipper │[1-14]│
- │POWER10.ARJ │Cln │French library │[1-07]│
- │PRINTSUP.AJR │Cln │Low level BIOS routines for printing │[1-11]│
- │QS20F.ARJ │Cln │Screen designer, demo, looks very good │[1-11]│
- │READPW.ARJ │Cln │GETSYS change for password invisible reader │[1-03]│
- │SCANCODE.ARJ │Cln │Database with scan codes │[1-07]│
- │SCRSAVE.ARJ │Cln │Screen AntiBurning utility (inactivity snake) │[1-05]│
- │SEGUE.ARJ │Cln │Novell library - demo │[1-15]│
- │SHADO.ARJ │Cln │Creating shadow on screen │[1-14]│
- │SHELP50A.ARJ │Cln │SuperHelp for Clipper │[1-07]│
- │SHOWANSI.ARJ │Cln │Displaying a ANSI from inside CLIPPER no ANSI.SY│[1-15]│
- │SNAP497.ARJ │Cln │Beta version of SNAP, partially compatible to 5 │[1-12]│
- │SNAP50.ARJ │Cln │dBASE/CLIPPER documentor supporting 5.01 little │[1-15]│
- │SOUND.ARJ │Cln │Multiple TONE() used as one SOUND function │[1-06]│
- │STATUS.ARJ │Cln │Timer interrupt hooked status indicator │[1-12]│
- │SUPER160.ARJ │Cln │SUPER.LIB for Summer87 │[1-13]│
- │SYMBOL.ARJ │Cln │Dumper of symbol tables of Summer87 .EXE │[1-03]│
- │TBUNIQUE.ARJ │Cln │Browsing unique without unique index │[1-12]│
- │TBWHL4.ARJ │Cln │WHILE browsing using TBROWSE, well commented │[1-06]│
- │TICKER.ARJ │Cln │Real Time Clock, interrupt driven on screen │[1-12]│
- │VOICE200.ARJ │Cln │VOICE synthetizing library for Clipper │[1-13]│
- │VSIX711.ARJ │Cln │Vernon Six Clipper utilities and library │[1-05]│
- │VSIX800.ARJ │Cln │Vernon's library, lot of functions │[1-12]│
- │WIPEV11.EXE │Cln │VERY good screen manipulation library │[1-11]│
- │ZIP2BAR.ARJ │Cln │Printing BAR (USPS) code on EPSON printer │[1-15]│
- └─────────────┴────┴────────────────────────────────────────────────┴──────┘
-
- Src can be:
- Cln File is accesible on ClipperNet
- Cbs File is accesible in HQ BBS of CLipper BBS Magazine
-
-
- -------------------------------------------------------------------------------
- CLIPBBS 2-10 Page 41 28 Mar 1992
-
-
- ===============================================================================
- CLIPBBS
- ===============================================================================
-
-
- CLIPBBS Distribution
-
- CLIPBBS is special magazine about CLIPPER and CLIPPERing (or about
- another related problems and xBASE languages). This magazine is for
- free and articles aren't honored. Nobody can make a profit from the
- distribution of this magazine.
-
- CLIPBBS can be freely downloaded and uploaded to any BBS or any other
- public system without changes of original contents or number of files
- in original archive (kind of archive can be changed, but we are sup-
- porting ARJ archive because is best and smallest).
-
- If you are interested in CLIPBBS and would like to become a DISTRIBUTION
- site, contact publisher on 2:285/608@fidonet or 27:1331/4412@signet
- or just call to 31-10-4157141 (BBS, working 18:00->08:00, top is V32b) or
- voice to 31-10-4843870 in both cases asking for DANIEL (Docekal).
-
- Distribution sites:
-
- Clipper BBS Home system │
- ─────────────────────────┘
- NETCONSULT BBS, SYSOP Daniel Docekal, phone 31-10-4157141
- Daily 18:00 till 08:00 (GMT+1), sat+sun whole day
- Modem speed 1200, 2400, 9600, 12000, 14400 (V32b)
- 2:285/608@fidonet.org
-
- United Kingdom │
- ─────────────────┘
- Welsh Wizard, SYSOP Dave Wall, phone 44-656-79477
- Daily whole day, modem speed HST
-
- Italy │
- ────────┘
- Lady Bright BBS, SYSOP Gianni Bragante, Phone: +39-15-8353153
- 20:00-08:00 monday to friday, from saturday 13:00 to 08:00 monday
- 24h/24h holydays, 300-9600 baud v21,v22,v32,v42bis
- 2:334/307@fidonet.org
-
- United States of America │
- ──────────────────────────┘
- The Southern Clipper, SYSOP Jerry Pults, phone 1-405-789-2078
- Daily whole day, modem speed HST
-
- The New Way BBS, SYSOP Tom Held, phone, 1-602-459-2412
- Daily 24hours, 1:309/1@Fidonet.org, 8:902/6@RBBS-Net
-
- Canada │
- ──────────┘
- SYSOP Gordon Kennet, phone 1-604-599-4451
- Daily 24houts, 2400bps V42b, 1:153/931@fidonet.org
-
- CLIPBBS 2-10 Page 42 28 Mar 1992
-
-
- WORLDWIDE │
- ────────────┘
-
- Clipper File Distrubution Network (ClipperNet, area CL-DOC)
- Various systems around whole world
-
-
-
- -------------------------------------------------------------------------------
- CLIPBBS 2-10 Page 43 28 Mar 1992
-
-
- How to write articles in CLIPBBS?
-
-
- Submission of articles to CLIPBBS is really easy:
- Maximum of 78 characters per line, as long or as short as you like
- ASCII text.
- Choose from the list of extension which most describes your text, or
- just name it .ART as ARTicle and send it to publisher or to any
- distribution site via modem to BBS or with mailer as file attach.
- Article will come automatically appear in the next free issue.
-
- Extensions are:
-
- Articles (anything) .ART
- Software .SOF
- News .NEW
- Question and Answers .Q&A
- ANOMALIES and their comments .ANO
- Letters to editors .LET
- Advertisement .ADV
- Wanted .WAN
- Comments .CMS
- DUMP from conferences .DMP
- Clipper Net .CLN
-
- That's all at the moment, there will probably be changes later, as the
- magazine evolves. If you have any ideas for a new section of CLIPBBS,
- please tell us, or just write an article about it.
-
- Daniel, publisher
-
- -------------------------------------------------------------------------------
-