home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Boston 2
/
boston-2.iso
/
DOS
/
PROGRAM
/
CLIPPER
/
NFTROFF
/
17.TR
< prev
next >
Wrap
Text File
|
1993-12-01
|
11KB
|
808 lines
.de }n
.bp
.sp .5i
..
.wh -.8i }n
.sp .5i
.po -.4i
.ll 7.5i
.ps 9
.vs 9
.in 0i
.sp 2
.ne 20
.ps +3
.vs +3
Submitting code for the Library
.br
.ps -3
.vs -3
.sp 2
.sp
.in 0.16i
When submitting code for the Nanforum Tooklit Library, please
observe the following rules and formatting:
.sp
.in 0.24i
1\. Please format your headers \fBexactly\fR as shown in the samples\.
.in 0.48i
A good deal of time went into the creation of a program to generate
this Norton Guide\. By submitting your headers in the requested
format, future versions of the library can be released much more
quickly then the first\.
.sp
.in 0.24i
2\. Include at least one example of your function, no matter how
.in 0.48i
trivial or obvious it may be\. An example is worth a thousand words\.
.sp
.in 0.24i
3\. Enclose all references to parameters within angle brackets, ie:
.in 0.48i
<nElements>\. The NG generator program will automatically
highlight parameter references in the "Arguments" section\.
.sp
.in 0.24i
4\. Do not put any blank lines between $sections$, the NG generator
.in 0.48i
will insert them as needed\. Blank lines are ok within sections\.
.sp
.in 0.24i
5\. The $ONELINER$ field must be no longer than 60 characters\. It is
.in 0.48i
intended for a brief description of the function only\.
.sp
.in 0.24i
6\. All fields except $FUNCNAME$, $CATEGORY$ and $ONELINER$ can
.in 0.48i
contain as many lines as necessary\.
.sp
.in 0.24i
7\. The $ARGUMENTS$ and $DESCRIPTION$ fields should contain blank lines
.in 0.48i
between paragraphs or argument descriptions\.
.sp
.in 0.24i
8\. The $RETURNS$ field is only necessary for functions\. If your
.in 0.48i
submission is a command, omit this entry\.
.sp
.in 0.24i
9\. The $INCLUDE$ field is for the name of the header file, if any,
.in 0.48i
that is required for the use of your function\. Generally this
will apply only to commands\.
.sp
.in 0.16i
10\. The $SEEALSO$ filed is for the names of related functions or
.in 0.48i
commands, and is used to generate the "See also:" references in
the Norton Guide\. This field is optional and may be filled in by
the librarian or documenter\.
.sp
If a $SEEALSO$ entry contains two or more words, enclose the
entry within quotes, ie:
.sp
.in 0.96i
$SEEALSO$
.in 1.2i
"MENU TO" FT_MENUTO()
.sp
.in 0.16i
11\. It is preferable to have only one function per file, except for
.in 0.48i
STATIC functions or internal support routines\. Do not document
STATIC or internal support functions with a standard header
(although they should be documented with comments)\.
.sp
If it is necessary to include more than one "PUBLIC" function in
a source code file, do not duplicate the initial file header (the
one with the "File\.\.\.\." and "Author\.\.\.\." fields)\.
.sp
.sp
Thank you\.
.in 0i
.sp
.in 1.5i
.ti -1.5i
.ta 1.5i
.ft B
See Also:
.ft R
Sample Clipper or C header
, Sample ASM header
.ta
.in 0i
.sp 2
.ne 20
.ps +3
.vs +3
Sample Clipper or C header
.br
.ps -3
.vs -3
.sp 2
.sp
.in 1.28i
\fBThis example shows how you would set up the
.in 1.2i
\fBheaders for either a Clipper or C source file\.
.sp
.in 0i
.br
/*
.in 0.08i
.br
* File\.\.\.\.\.\.: PRTSCR\.C
.br
* Author\.\.\.\.: Ted Means
.br
* CIS ID\.\.\.\.: 73067,3332
.br
* Date\.\.\.\.\.\.: $Date$
.br
* Revision\.\.: $Revision$
.br
* Log file\.\.: $Logfile$
.br
*
.br
* This is an original work by Ted Means and is placed in the
.br
* public domain\.
.br
*
.br
* Modification history:
.br
* ---------------------
.br
*
.br
* $Log$
.br
*
.br
*/
.sp
.in 0i
.ta 0.32i
.br
/* $DOC$
.br
.ta
.in 0.08i
.ta 0.24i
.br
* $FUNCNAME$
.br
.ta
.ta 0.48i
.br
* FT_PrtScr()
.br
.ta
.ta 0.24i
.br
* $ONELINER$
.br
.ta
.ta 0.48i
.br
* Enable or disable printscreens
.br
.ta
.ta 0.24i
.br
* $SYNTAX$
.br
.ta
.ta 0.48i
.br
* FT_PrtScr( <lSetStat> ) -> lCurStat
.br
.ta
.ta 0.24i
.br
* $ARGUMENTS$
.br
.ta
.ta 0.48i
.br
* <lSetStat> set to \.T\. will enable printscreens, \.F\. will
.br
.ta
.ta 0.48i
.br
* disable printscreens\.
.br
.ta
.ta 0.24i
.br
* $RETURNS$
.br
.ta
.ta 0.48i
.br
* The current state ( \.T\. for enabled, \.F\. for disabled)\.
.br
.ta
.ta 0.24i
.br
* $DESCRIPTION$
.br
.ta
.ta 0.48i
.br
* This function is valuable if you have a need to disable the
.br
.ta
.ta 0.48i
.br
* printscreen key\. It works by fooling the BIOS into thinking
.br
.ta
.ta 0.48i
.br
* that a printscreen is already in progress\. The BIOS will then
.br
.ta
.ta 0.48i
.br
* refuse to invoke the printscreen handler\.
.br
.ta
.ta 0.24i
.br
* $EXAMPLES$
.br
.ta
.ta 0.48i 2.32i
.br
* FT_PrtScr( \.F\. ) // Disable the printscreen key
.br
.ta
.ta 0.48i 2.32i
.br
* FT_PrtScr( \.T\. ) // Enable the printscreen key
.br
.ta
.ta 0.48i 2.32i
.br
* MemVar := FT_PrtScr() // Get the current status
.br
.ta
.ta 0.24i
.br
* $INCLUDE$
.br
.ta
.ta 0.48i
.br
* FTVIDEO\.CH
.br
.ta
.ta 0.24i
.br
* $SEEALSO$
.br
.ta
.ta 0.48i
.br
* ft_peek() ft_poke()
.br
.ta
.ta 0.24i
.br
* $END$
.br
.ta
.br
*/
.sp
.in 1.92i
\fBFormatting Guidelines
.in 0i
.br
/*
.in 0.08i
.br
* File\.\.\.\.\.\.: PRTSCR\.C
.br
* Author\.\.\.\.: Ted Means
.br
* CIS ID\.\.\.\.: 73067,3332
.ta 2.4i
.br
* Date\.\.\.\.\.\.: $Date$ \fB<- Leave blank, for librarian\'s use
.br
.ta
.ta 2.4i 2.88i
.br
* Revision\.\.: $Revision$ \fB<- "
.br
.ta
.ta 2.4i 2.88i
.br
* Log file\.\.: $Logfile$ \fB<- "
.br
.ta
.br
*
.br
* This is an original work by Ted Means and is placed in the
.br
* public domain\.
.br
*
.br
* Modification history:
.br
* ---------------------
.ta 2.48i
.br
* \fB\(sq
.br
.ta
.ta 2.48i
.br
* $Log$ \fB\(br Leave blank, for librarian\'s use
.br
.ta
.ta 2.48i
.br
* \fB\(sq
.br
.ta
.br
*/
.sp
.in 0i
.ta 0.32i
.br
/* $DOC$
.br
.ta
.in 0.08i
.ta 0.24i
.br
* $FUNCNAME$
.br
.ta
.in 0.16i
.br
\fB\(sq
.br
\l'1.2i'
.br
indent all items 6 spaces after asterisk
.in 0.08i
.ta 0.48i 3.52i
.br
* \fB\(sq\fR FT_PRTSCR() \fB<- 15 characters MAXIMUM
.br
.ta
.ta 0.16i
.br
* \fB \(br\fR$ONELINER$
.br
.ta
.ta 0.16i 0.48i 3.52i
.br
* \fB \(br\fR Enable or disable printscreens \fB<- 60 character MAXIMUM
.br
.ta
.ta 0.16i
.br
* \fB \(br\fR$SYNTAX$
.br
.ta
.ta 0.16i 0.48i
.br
* \fB \(br\fR FT_PRTSCR( <lSetStat> ) -> lCurStat
.br
.ta
.ta 0.16i
.br
* \fB \(br\fR$ARGUMENTS$ \(sq
.br
\l'1.52i'
.br
Parameters in angle brackets
.br
.ta
.ta 0.16i 0.48i
.br
* \fB \(br\fR <lSetStat> set to \.T\. will enable printscreens, \.F\. will
.br
.ta
.ta 0.16i 0.48i
.br
* \fB \(br\fR disable printscreens\.
.br
.ta
.ta 0.16i
.br
* \fB \(br\fR$RETURNS$
.br
.ta
.ta 0.16i 0.48i
.br
* \fB \(br\fR The current state ( \.T\. for enabled, \.F\. for disabled)\.
.br
.ta
.ta 0.16i
.br
* \fB \(br\fR$DESCRIPTION$
.br
.ta
.ta 0.16i 0.48i
.br
* \fB \(br\fR This function is valuable if you have a need to disable the
.br
.ta
.ta 0.16i 0.48i
.br
* \fB \(br\fR printscreen key\. It works by fooling the BIOS into thinking
.br
.ta
.ta 0.16i 0.48i
.br
* \fB \(br\fR that a printscreen is already in progress\. The BIOS will then
.br
.ta
.ta 0.16i 0.48i
.br
* \fB \(br\fR refuse to invoke the printscreen handler\.
.br
.ta
.in 0.24i
.ta 0i 0.32i
.br
\fB \(br\fR \fB\(sq
.br
\l'1.04i'
.br
Lines no longer than 65 characters
.br
\l'1.12i'
.br
\(sq
.br
.ta
.in 0.08i
.ta 0.16i
.br
* \fB \(br\fR$EXAMPLES$
.br
.ta
.ta 0.16i 0.48i 2.32i
.br
* \fB \(br\fR FT_PRTSCR( \.F\. ) // Disable the printscreen key
.br
.ta
.ta 0.16i 0.48i 2.32i
.br
* \fB \(br\fR FT_PRTSCR( \.T\. ) // Enable the printscreen key
.br
.ta
.ta 0.16i 0.48i 2.32i
.br
* \fB \(br\fR MemVar := FT_PRTSCR() // Get the current status
.br
.ta
.ta 0.16i
.br
* \fB \(br\fR$INCLUDE$
.br
.ta
.ta 0.16i 0.48i 3.52i
.br
* \fB \(br\fR FTVIDEO\.CH \fB<- optional
.br
.ta
.ta 0.16i
.br
* \fB \(br\fR$SEEALSO$
.br
.ta
.ta 0.16i 0.48i 3.52i
.br
* \fB \(br\fR FT_PEEK() FT_POKE() \fB<- optional
.br
.ta
.ta 0.16i
.br
* \fB \(br\fR$END$
.br
.ta
.ta 0.16i
.br
*/\fB \(br\fR
.br
.ta
.in 0.24i
.br
\fB\(sq
.br
\l'0.08i'
.br
Function names in all caps
.in 0i
.sp
.in 1.5i
.ti -1.5i
.ta 1.5i
.ft B
See Also:
.ft R
Sample ASM header
, Submitting code for the Library
.ta
.in 0i
.sp 2
.ne 20
.ps +3
.vs +3
Sample ASM header
.br
.ps -3
.vs -3
.sp 2
.sp
.in 1.2i
.br
\fBThis example shows how you would set up
.in 1.36i
.br
\fBthe headers for an ASM source file\.
.sp
.in 0i
.br
; File\.\.\.\.\.\.: ADAPTER\.ASM
.br
; Author\.\.\.\.: Ted Means
.br
; CIS ID\.\.\.\.: 73067,3332
.br
; Date\.\.\.\.\.\.: $Date$
.br
; Revision\.\.: $Revision$
.br
; Log file\.\.: $Logfile$
.br
;
.br
; This is an original work by Ted Means and is placed in the
.br
; public domain\.
.br
;
.br
; Modification history:
.br
; ---------------------
.br
;
.br
; $Log$
.br
;
.br
;
.ta 0.24i
.br
; $DOC$
.br
.ta
.ta 0.24i
.br
; $FUNCNAME$
.br
.ta
.ta 0.48i
.br
; FT_ADAPTER()
.br
.ta
.ta 0.24i
.br
; $CATEGORY$
.br
.ta
.ta 0.48i
.br
; Video
.br
.ta
.ta 0.24i
.br
; $ONELINER$
.br
.ta
.ta 0.48i
.br
; Report the type of video adapter installed
.br
.ta
.ta 0.24i
.br
; $SYNTAX$
.br
.ta
.ta 0.48i
.br
; FT_ADAPTER() -> nResult
.br
.ta
.ta 0.24i
.br
; $ARGUMENTS$
.br
.ta
.ta 0.48i
.br
; None
.br
.ta
.ta 0.24i
.br
; $RETURNS$
.br
.ta
.ta 0.48i 0.72i
.br
; 0 if monochrome
.br
.ta
.ta 0.48i 0.72i
.br
; 1 if CGA
.br
.ta
.ta 0.48i 0.72i
.br
; 2 if EGA
.br
.ta
.ta 0.48i 0.72i
.br
; 3 if VGA
.br
.ta
.ta 0.24i
.br
; $DESCRIPTION$
.br
.ta
.ta 0.48i
.br
; This function is valuable if you use a graphics library and need to
.br
.ta
.ta 0.48i
.br
; know what type of graphics adapter is installed\.
.br
.ta
.br
;
.ta 0.48i
.br
; The source code is written to adhere to Turbo Assembler\'s IDEAL mode\.
.br
.ta
.ta 0.48i
.br
; To use another assembler, you will need to rearrange the PROC and
.br
.ta
.ta 0.48i
.br
; SEGMENT directives, and also the ENDP and ENDS directives (a very
.br
.ta
.ta 0.48i
.br
; minor task)\.
.br
.ta
.ta 0.24i
.br
; $EXAMPLES$
.br
.ta
.ta 0.48i
.br
; iVideo := FT_ADAPTER()
.br
.ta
.br
;
.ta 0.48i
.br
; DO CASE
.br
.ta
.ta 0.72i
.br
; CASE iVideo == 0
.br
.ta
.ta 0.96i
.br
; Qout( "You have a monochrome adapter\." )
.br
.ta
.ta 0.72i
.br
; CASE iVideo == 1
.br
.ta
.ta 0.96i
.br
; Qout( "You have a CGA adapter\." )
.br
.ta
.ta 0.72i
.br
; CASE iVideo == 2
.br
.ta
.ta 0.96i
.br
; Qout( "You have an EGA adapter\." )
.br
.ta
.ta 0.72i
.br
; CASE iVideo == 3
.br
.ta
.ta 0.96i
.br
; Qout( "You have a VGA adapter\." )
.br
.ta
.ta 0.48i
.br
; ENDCASE
.br
.ta
.ta 0.24i
.br
; $INCLUDE$
.br
.ta
.ta 0.48i
.br
; FTVIDEO\.CH
.br
.ta
.ta 0.24i
.br
; $SEEALSO$
.br
.ta
.ta 0.48i 1.6i
.br
; FT_SETMODE() FT_GETMODE()
.br
.ta
.ta 0.24i
.br
; $END$
.br
.ta
.br
;
.sp
.in 1.5i
.ti -1.5i
.ta 1.5i
.ft B
See Also:
.ft R
Sample Clipper or C header
, Submitting code for the Library