home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C!T ROM 2
/
ctrom_ii_b.zip
/
ctrom_ii_b
/
PROGRAM
/
FOXPRO
/
FCO24MOD
/
LIB.MOD
< prev
Wrap
Text File
|
1992-10-15
|
87KB
|
2,045 lines
FCO Library Modification Log - In Module Name Order
The title line of each modification reads as follows:
┌─────────────Version number
│
│ Type of modification
│
│ ┌────────Bug fix
│ │┌───────Enhancement of existing function
│ ││┌──────New Function
│ │││┌─────German language specific
│ ││││┌────Modification of existing function
│ │││││┌───Routine no longer needed
│ ││││││
-Ver---BENGMX----------------------------------------------------------------
-2.3-------M-----------------------------------------------------------------
A_APPBLK.ASM - Built in an assembler switch 'light' to build a non-LAN
version of FCO/FORCE
-2.4-------M-----------------------------------------------------------------
B_CMPSTR.ASM - __$flag_exact: set the default to OFF instead of ON, to
be compatible to Clipper, dBase, and FoxBase.
BE CAREFUL!!! Now string compares (by default) work as
crazy as they do in Clipper, dBase, etc., i.e. the
compare returns .T. if the string to the right of the '='
operator matches the characters to the left.
This means
"blabla" = ""
will return .T. !!!
See function IsEmpty() later in this document !
Users of Jeff Davis' library pay attention - Jeff some-
times relies on the internal string compare routine, and
he expects that EXACT is ON - otherwise his functions
won't work correctly. To be sure, include a SET EXACT ON
command in the startup code of your program, and SET
EXACT OFF only if you want to do an "unexact" SEEK into
a database file.
-2.4-----N-------------------------------------------------------------------
BITS.HDR - New header file, containing prototypes for bit functions,
and logical functions (moved them from MATH.HDR to here).
-2.4-----N-------------------------------------------------------------------
BITS.HDR - Renamed BitSet, BitTest, BitReset, and BitMask to
SetBit, TestBit, ResetBit, and MaskBit to avoid conflicts
with Jeff Davis' functions.
-2.3-----N-------------------------------------------------------------------
BROWSE.HDR - New header file, containing the prototype for browse()
-2.3-----N-------------------------------------------------------------------
BROWSE.PRG - Added a browse() function, similar to Clipper's dbedit(),
but with mouse support, and other extended features.
-2.4-----NG------------------------------------------------------------------
C_DBLFRM.ASM - Added call to _$transform_str to create European numeric
format if requested (according to status of
__$trans_flag).
-2.4---B---------------------------------------------------------------------
C_DBLFRM.ASM - Fixed a bug which did not format numbers with a lot of
zeroes after the decimal point, e.g.
1.000000001 was formatted as 1.
-2.3-----NG------------------------------------------------------------------
CNVUMLT.PRG - Added cnvumlt() to allow indexing based upon German DIN
standard, i.e. Umlauts will be converted into their
"extanded" equivalents, e.g. "ÄGY" --> "AEG", "Ägy" -->
"Aeg", "weißer" --> "weisse", etc.
-2.4-----N-------------------------------------------------------------------
CTFILE.PRG - Added a new library function to create a unique DOS file
name (DOS 3.0, and above)
function logical CreateTempFilename prototype
parameters char cPathName
cPathName must be declared long enough to store the full
Drive, Path Name, plus 12 characters for the file name.
-2.4-----NG------------------------------------------------------------------
DATA.HDR - added declaration for __lib_lang
-2.4-----N-------------------------------------------------------------------
DATABASE.HDR - Added prototypes for ind_order(), and a_ind_order()
-2.4-----N-------------------------------------------------------------------
DATABASE.HDR - Added prototype for a_dbf(), which was in the library, but
not yet prototyped
-2.4-----N-------------------------------------------------------------------
DATABASE.HDR - Added prototypes for fldcnt(), which was in the library,
but not yet prototyped, and for the new function
a_fldcnt():
function uint fldcnt prototype
function uint a_fldcnt prototype
parameters alias AliasName
-2.4-----NG------------------------------------------------------------------
DATE.HDR - Added prototype for ddow()
-2.3-----NG------------------------------------------------------------------
DUDEN.PRG - Added duden() to allow indexing based upon German dictio-
nary standard, i.e. Umlauts will be converted into their
"plain" equivalents, e.g. "Ä" --> "A", "ß" --> "s", etc.
-2.4---B---------------------------------------------------------------------
E_DATA.ASM - Moved declarations of __filed_eof, and __exit_status from
J_PTREC.ASM resp. H_RUN.ASM to here to avoid linking these
modules when DATA.HDR is #included, where nothing else is
needed from the modules.
-2.4---B---------------------------------------------------------------------
E_DATA.ASM - Moved declaration of __flag_exact from B_CMPSTR.ASM to
to avoid linking this module when DATA.HDR is #included,
where nothing else is needed from the module.
Defined the default to OFF, according to all other known
xBase dialects.
CAUTION: take care of the crazy string compare rules, set
up by dBase - FORCE/FCO uses them as well !
-2.4------G------------------------------------------------------------------
E_DATA.ASM - added variable __lib_lang which contains 'German', or
'English' depending on the language version of the library
-2.4-----N-------------------------------------------------------------------
E_DATA.ASM - Added __color_score to define the attribute of the
scoreboard indicators.
-2.4-----N-------------------------------------------------------------------
E_DATA.ASM - Added __max_row, and __max_col to define different screen
sizes.
-2.4-----N-------------------------------------------------------------------
E_DATA.ASM - Added __color_deact for future use with the GET system
to save attribute of non-active GET fields.
-2.4-----N-------------------------------------------------------------------
E_DATA.ASM - Added __$scrn_driver to be used as a flag, indicating
which screen driver system is currently active:
0 = scrn_direct
1 = scrn_bios
2 = scrn_dos
255 = no driver installed
-2.4-------M-----------------------------------------------------------------
E_DATA.ASM - Moved define for __edit_browse from M_KERNEL to here to
avoid linkage of M_KERNEL when DATA.HDR is #included in a
program.
-2.4-------M-----------------------------------------------------------------
E_DATA.ASM - Moved define for __tops_ from L_PICK.PRG to here to
avoid linkage of unneeded modules.
-2.4-----N-------------------------------------------------------------------
E_FCOST.ASM - New module - dummy startup procedure FCO_START (see
E_SETUP.ASM). FCO_START calls FORCE_START which is in
E_FORST.ASM, thus allowing the user to either use the
name FCO_START, or FORCE_START for his own version of
the startup routine.
-2.4--------X----------------------------------------------------------------
E_DEFSCR.ASM - Removed this module from the library because the defined
variable __$default_scrn is no longer needed. All save
screen stuff uses dynamic memory allocation instead which
makes it easy to handle different screen sizes.
-2.4-----N-------------------------------------------------------------------
E_FORST.ASM - New module - dummy startup procedure FORCE_START (see
E_FCOST.ASM).
-2.4-----N-------------------------------------------------------------------
E_SETUP.ASM - Added call to _fco_start at the end of _$setup_world to
allow programmers to run an automatic startup-procedure.
This procedure MUST be named fco_start. If the programmer
does not supply fco_start, an empty dummy procedure will
be linked in (see E_FCOST.ASM).
Example:
procedure fco_main
? "Hello"
endpro
procedure fco_start
? "I will be automatically called before FCO_MAIN"
endpro
Output:
I will be automatically called before FCO_MAIN
Hello
WARNING:
The screen driver system will be initialized after the
call to fco_start, i.e. if the user wants to do any
screen output in fco_start, there must be an explicite
call to scrn_direct, scrn_bios, or scrn_dos in fco_start
BEFORE any screen output.
If there is a screen initialization contained in
fco_start, the default initiylization to scrn_direct will
be skipped, thus allowing to initialize to a different
screen driver system inside fco_start.
-2.4-----NG------------------------------------------------------------------
E_SETUP.ASM - After calling _fco_start, we now look if any screen driver
system has been installed (maybe by a user supplied ver-
sion of _fco_start). If not, we will install _scrn_direct.
-2.4---B---------------------------------------------------------------------
E_SETUP.ASM - Added a cld instruction in _$setup_world (just to be sure).
-2.4-----N-------------------------------------------------------------------
E_SETUP.ASM - Added a call to _$set_fco (see W_KRS.ASM below).
-2.3---B--G------------------------------------------------------------------
E_SWAP.ASM - Changed the basic name of the swap file into FCO00000.TMP,
which allows nested calls of the RUN SAVE command.
NOTE: this was a bug in the German adaptation, David
made.
-2.4---B---------------------------------------------------------------------
F_BUILD.ASM - Fixed a bug in the creation of a dBase File header, i.e.
avoided creation of a dummy field, which caused compatibi-
lity problems with other xBase products, i.e. trying to
read a FORCE/FCO DBF file with Clipper, etc.
-2.3------GM-----------------------------------------------------------------
F_CLDBF.ASM - Built in an assembler switch 'light' to build a non-LAN
version of FCO/FORCE
-2.4------G------------------------------------------------------------------
F_SAFETY.ASM - Translated messages into German
-2.4---B---------------------------------------------------------------------
F_SETREL.ASM - Added code into _$del_relation to correctly handle re-
lease of existing relations, i.e. to make SET RELATION TO
work correctly. The original code only contained a RET
instruction which does not what it's supposed to do.
-2.3------GM-----------------------------------------------------------------
F_USE.ASM - Built in an assembler switch 'light' to build a non-LAN
version of FCO/FORCE
-2.4------G------------------------------------------------------------------
G_DISSTR.ASM - Translated messages into German
-2.3------G------------------------------------------------------------------
G_ERRORS.INC - Translated error messages into German.
NOTE: PERROR.EXE needs to be re-linked
-2.4-----N-------------------------------------------------------------------
G_GETALT.ASM - New module containing
function logical GetSetAlternate prototype
parameters value logical NewValue
This function returns the current state of SET ALTERNATE,
and sets the ALTERNATE flag according to NewValue
(.t. = ON, .f. = OFF)
-2.4-----N-------------------------------------------------------------------
G_GETBEL.ASM - New module containing
function logical GetSetBell prototype
parameters value logical NewValue
This function returns the current state of SET BELL,
and sets the BELL flag according to NewValue (.t. = ON,
.f. = OFF)
-2.4-----N-------------------------------------------------------------------
G_GETCEN.ASM - New module containing
function logical GetSetCentury prototype
parameters value logical NewValue
This function returns the current state of SET CENTURY,
and sets the CENTURY flag according to NewValue (.t. = ON,
.f. = OFF)
-2.4-----N-------------------------------------------------------------------
G_GETCNS.ASM - New module containing
function logical GetSetConsole prototype
parameters value logical NewValue
This function returns the current state of SET CONSOLE,
and sets the CONSOLE flag according to NewValue (.t. = ON,
.f. = OFF)
-2.4-----N-------------------------------------------------------------------
G_GETCON.ASM - New module containing
function logical GetSetConfirm prototype
parameters value logical NewValue
This function returns the current state of SET CONFIRM,
and sets the CONFIRM flag according to NewValue (.t. = ON,
.f. = OFF)
-2.4-----N-------------------------------------------------------------------
G_GETDAT.ASM - New module containing
function uint GetSetDate prototype
parameters value uint NewValue
This function returns the current state of SET DATE,
and sets the DATE according to NewValue; defines for
the various DATE types can be found in GETSET.HDR.
-2.4-----N-------------------------------------------------------------------
G_GETDEC.ASM - New module containing
function uint GetSetDecimals prototype
parameters value uint NewValue
This function returns the current state of SET DECIMALS,
and sets the DECIMALS according to NewValue.
The maximum for NewVal is 15; any values greater than this
force DECIMALS to 0.
-2.4-----N-------------------------------------------------------------------
G_GETDEL.ASM - New module containing
function logical GetSetDeleted prototype
parameters value logical NewValue
This function returns the current state of SET DELETE,
and sets the DELETE flag according to NewValue (.t. = ON,
.f. = OFF).
-2.4-----N-------------------------------------------------------------------
G_GETDLM.ASM - New module containing
function logical GetSetDelim prototype
parameters value logical NewValue
This function returns the current state of SET DELIMITERS,
and sets the DELIMITERS flag according to NewValue
(.t. = ON, .f. = OFF).
-2.4-----N-------------------------------------------------------------------
G_GETDPR.ASM - New module containing
function logical GetSetDevPrt prototype
parameters value logical NewValue
This function returns the current state of SET DEVICE,
and sets the DEVICE flag according to NewValue
(.t. = PRINTER, .f. = SCREEN).
-2.4-----N-------------------------------------------------------------------
G_GETEXA.ASM - New module containing
function logical GetSetExact prototype
parameters value logical NewValue
This function returns the current state of SET EXACT,
and sets the EXACT flag according to NewValue (.t. = ON,
.f. = OFF).
-2.4-----N-------------------------------------------------------------------
G_GETEXL.ASM - New module containing
function logical GetSetExclusive prototype
parameters value logical NewValue
This function returns the current state of SET EXCLUSIVE,
and sets the EXCLUSIVE flag according to NewValue
(.t. = ON, .f. = OFF).
-2.4-----N-------------------------------------------------------------------
G_GETFIX.ASM - New module containing
function logical GetSetFixed prototype
parameters value logical NewValue
This function returns the current state of SET FIXED,
and sets the FIXED flag according to NewValue (.t. = ON,
.f. = OFF).
-2.4-----N-------------------------------------------------------------------
G_GETINT.ASM - New module containing
function logical GetSetIntensity prototype
parameters value logical NewValue
This function returns the current state of SET INTENSITY,
and sets the INTENSITY flag according to NewValue
(.t. = ON, .f. = OFF).
-2.4-----N-------------------------------------------------------------------
G_GETMAR.ASM - New module containing
function uint GetSetMargin prototype
parameters value uint NewValue
This function returns the current value of SET MARGIN,
and sets the MARGIN according to NewValue.
-2.4-----N-------------------------------------------------------------------
G_GETMSG.ASM - New module containing
function uint GetSetMessage prototype
parameters value uint NewValue
This function returns the current value of SET MESSAGE,
and sets the MESSAGE line according to NewValue.
-2.4-----N-------------------------------------------------------------------
G_GETPRT.ASM - New module containing
function logical GetSetPrint prototype
parameters value logical NewValue
This function returns the current state of SET PRINT,
and sets the PRINT flag according to NewValue (.t. = ON,
.f. = OFF).
-2.4-----N-------------------------------------------------------------------
G_GETSCO.ASM - New module containing
function logical GetSetScoreboard prototype
parameters value logical NewValue
This function returns the current state of SET SCOREBOARD,
and sets the SCOREBOARD flag according to NewValue
(.t. = ON, .f. = OFF).
-2.4-----N-------------------------------------------------------------------
G_GETSTA.ASM - New module containing
function logical GetSetStatus prototype
parameters value logical NewValue
This function returns the current state of SET STATUS,
and sets the STATUS flag according to NewValue (.t. = ON,
.f. = OFF).
-2.4------G------------------------------------------------------------------
G_STKCHK.ASM - Translated error message into German (Stack checking
routine)
-2.4------G------------------------------------------------------------------
G_WAIT.ASM - Translated message into German
-2.4-----N-------------------------------------------------------------------
GETSET.HDR - New header file containing definitions for the new
GetSet<Status> functions (see G_GET???.ASM above).
-2.4-------M-----------------------------------------------------------------
H_BITMSK.ASM - Renamed function BitMask into MaskBit to avoid conflicts
with Jeff Davis' functions.
-2.4-------M-----------------------------------------------------------------
H_BITS.ASM - Renamed functions BitSet, BitTest, and BitReset into
SetBit, TestBit, and ResetBit to avoid conflicts with
Jeff Davis' functions.
-2.4------G------------------------------------------------------------------
H_DIR.ASM - Translated messages into German
-2.4----E--------------------------------------------------------------------
H_DIR.ASM - Exchanged hard-coded screen size to use the new variable
screen size values.
-2.4-------M-----------------------------------------------------------------
H_INT.ASM - Removed module from library because it only contains an
interrupt function (INT86) similar to the ones in
H_INTS.ASM.
-2.4---B---------------------------------------------------------------------
H_RUN.ASM - Moved declaration of __exit_status from here to E_DATA.ASM
to avoid linking this module when DATA.HDR ist #included,
and nothing else is needed from H_RUN.ASM
-2.3------G------------------------------------------------------------------
I_ERROR.ASM - Translated error message into German
-2.3------G------------------------------------------------------------------
I_MESAGE.ASM - Translated general error message into German.
-2.4---B---------------------------------------------------------------------
INDEX.INC - Added new defines according to the modified index
structure to get rid of serveral index bugs (check for an
empty leave here). (W.M.)
-2.4-----N-------------------------------------------------------------------
ISEMPTY.PRG - Added a new library function to test if a string is empty
function logical IsEmpty prototype
parameters txt
returns .T. if txt = "", else .F.
This function is to avoid strange results which happen
at string comparisons while EXACT OFF (compatible to
dBase):
? "hello" = "" returns .T.
? "" = "hello" returns .F.
-2.4-----N-------------------------------------------------------------------
IO.HDR - added prototype for npready()
-2.4-----N-------------------------------------------------------------------
IO.HDR - added prototype for prstatus()
added #defines for return values of prstatus()
-2.4-----N-------------------------------------------------------------------
IO.HDR - Added prototype for swap_colors
-2.4-----N-------------------------------------------------------------------
IO.HDR - Added prototypes for Set_Scroll_Pos, Set_Ins_Pos,
Set_Caps_Pos, Set_Num_Pos, and SetColor.
-2.4-----N-------------------------------------------------------------------
IO.HDR - Added prototype for cursor_type
procedure cursor_type prototype
parameters const uint StartLine, const uint EndLine
-2.4-----N-------------------------------------------------------------------
IO.HDR - Changed prototype of key_int according to the change in
O_KEYBRD.ASM, i.e. made it a function instead of a
procedure.
function key_int prototype
parameters value uint key_value
-2.4---B---------------------------------------------------------------------
J_PTREC.ASM - Moved declaration of __field_eof from here to E_DATA.ASM
to avoid linking this module when DATA.HDR ist #included,
and nothing else is needed from J_PTREC.ASM
-2.3-----N-------------------------------------------------------------------
JUMP.ASM - New module containing routines for program jumps:
DefineJump, and DoJump
-2.3-----N-------------------------------------------------------------------
JUMP.HDR - New header file, containing prototypes for jump routines
-2.4------G------------------------------------------------------------------
K_BESAFE.ASM - Translated messages into German
-2.4-----N-------------------------------------------------------------------
K_FCOEND.ASM - New module - dummy end procedure FCO_END (see K_QUIT.ASM).
This procedure calls FORCE_END in K_FOREND.ASM to allow
the use of any of the two names the a user supplied end
procedure.
-2.4-----N-------------------------------------------------------------------
K_FOREND.ASM - New module - dummy end procedure FORCE_END (see
K_FCOEND.ASM).
-2.4---B---------------------------------------------------------------------
K_OPEN.ASM - Changed code to avoid a run-time error when a process
tries to open a file in exclusive, or shared mode, when
this file has already been opened by another process in
exclusive mode. Instead, net_err() will return the correct
error code. Like in Clipper, it is the programmer's
responsibility to test net_err() after an OPEN before pro-
ceeding.
-2.4-----N-------------------------------------------------------------------
K_QUIT.ASM - Added call to _fco_end in _$QUIT, and _$_QUIT before ter-
mination to DOS to allow programmers to run an automatic
end procedure.
This procedure MUST be named fco_end. If the programmer
does not supply fco_end, an empty dummy procedure will
be linked in (see K_FCOEND.ASM).
Example:
procedure fco_main
? "Hello"
endpro
procedure fco_end
? "I will be automatically called before " + ;
"returning to DOS"
endpro
Output:
Hello
I will be automatically called before returning to DOS
-2.4-----NG------------------------------------------------------------------
K_QUIT.ASM - A procedure _fco_end will be called immediately before
returning to DOS. The built-in dummy simly calls
_force_end.
This allows for user supplied versions of _fco_end, or
_force_end to de-install any own interrupt stuff, etc.
This routine will even be called after a run-time
error occured, before bailing out to DOS.
-2.3------GM-----------------------------------------------------------------
K_SHARE.ASM - Built in an assembler switch 'light' to build a non-LAN
version of FCO/FORCE
-2.4---B---------------------------------------------------------------------
K_VIRT.ASM: - Added correct assume directive.
-2.4----E--------------------------------------------------------------------
L_BOX.ASM - Replaced all direct writes into screen memory by calls
through vector __$sg_output. This allows to draw boxes
when _scrn_bios is active.
-2.4----E--------------------------------------------------------------------
L_BOX.ASM - Replaced all hard-coded screen size values by calls into
the routines for variable screen size.
-2.4-------M-----------------------------------------------------------------
L_BOX.ASM - Exchanged calls via __$sg_output against calls to
sg_output (see L_SGDISP.ASM above).
-2.4------G------------------------------------------------------------------
L_CHANGE.ASM - Translated help messages into German
-2.4----E--------------------------------------------------------------------
L_CHANGE.ASM - Replaced all hard-coded screen size values by calls into
the routines for variable screen size.
-2.4---B---------------------------------------------------------------------
L_CMENU.PRG - Fixed a bug in the recent version which caused the acti-
vation of the first prompt whenever the user typed a
letter which was not the initial letter of any promt.
-2.3----E-G------------------------------------------------------------------
L_GETCHR.ASM - Enhanced PICTURE clause "!", and format "@!" to support
German Umlauts
* Enhanced PICTURE clause "L" to allow entry of "J" (German
* "JA" = "YES" (requires additional debugging)
-2.4----E-G------------------------------------------------------------------
L_GETCHR.ASM - Enhanced PICTURE format "@A" to support Umlauts
* Enhanced PICTURE clause "L" to allow entry of "J" (German
* "JA" = "YES" (requires additional debugging)
-2.4-----NG------------------------------------------------------------------
L_GETDIS.ASM - Added call to _$transform_char in _$get_display to do a
conversion of the numerical format (according to the
status of __$trans_flag).
-2.4----E--------------------------------------------------------------------
L_GETDIS.ASM - Replaced all hard-coded screen size values by calls into
the routines for variable screen size.
-2.4-------M-----------------------------------------------------------------
L_GETDIS.ASM - Exchanged calls via __$sg_output against calls to
sg_output (see L_SGDISP.ASM above).
-2.4---B---------------------------------------------------------------------
L_GETLGC.ASM - Fixed length calculation of internal table.
-2.4-----NG------------------------------------------------------------------
L_GETNUM.ASM - Added a call to _$set_trans in _$get_number to activate
conversion of numerical formats if necessary.
-2.4-----N-------------------------------------------------------------------
L_MAXCOL.ASM - New module containing the function _GetMaxCol() to de-
termine the current maximum screen column value.
-2.4-----N-------------------------------------------------------------------
L_MAXROW.ASM - New module containing the function _GetMaxRow() to de-
termine the current maximum screen row value.
-2.4---B---------------------------------------------------------------------
L_MENU.ASM - Fixed a bug which made the menu system crash when some
masochistic programmer decided to create a menu with
only ONE promt.
-2.4----E-G------------------------------------------------------------------
L_MENU.ASM - Enhanced menu selection via first letters to support
Umlauts.
-2.4-------M-----------------------------------------------------------------
L_MENU.ASM - Used inkey() instead of get_key() in menu_to to allow
timer interrupts of any kind while waiting fo a key
-2.4-------M-----------------------------------------------------------------
L_MENU.ASM - Removed procedure SWAP_COLORS, and changed calls of this
routine into calls to _swap_colors
-2.4----E--------------------------------------------------------------------
L_MENU.ASM - Replaced all hard-coded screen size values by calls into
the routines for variable screen size.
-2.4-------M-----------------------------------------------------------------
L_PICK.PRG - Made declaration of __tops_ external, and moved it into
E_DATA.ASM to avoid linkage of unneeded modules.
-2.4------G------------------------------------------------------------------
L_PRMUP.ASM - Enhanced routines to handle Umlauts in prompts correctly.
-2.3------G------------------------------------------------------------------
L_READKY.ASM - Status displays 'Ins', 'Caps' and 'Num' translated into
German ('Einfg', Groß' and 'Num').
-2.4----E--------------------------------------------------------------------
L_READKY.ASM - Totally re-written routine _$caps_insert to display the
scoreboard information, and included the following modi-
fications/enhancements:
- Language of messages German/English, depening upon the
assembler switch 'germans'.
- No hard-coded lenghts for the status messages, instead
we use ASCIIZ strings.
- Added status display for scroll lock
- Removed hard-coded positions for the various status
indicators, using variables insert_loc, caps_loc,
scroll_loc, and num_loc instead. This allows modifi-
cation of the positions (see following modules L_SETINS,
etc.); a position value of -1 means that the according
status indicator will be suppressed (even when SET
SCOREBOARD is ON).
- The display attribute for the scoreboard indicators is
now defined in a new system variable __color_score
(see E_DATA.ASM below).
Modified _$rg_del_rest to delete commas in the raw string
buffer to fix formatting problems with numerig GET fields.
-2.4----E--------------------------------------------------------------------
L_READKY.ASM - Replaced all hard-coded screen size values, now using
the routines to determine the current screen size instead.
-2.4-------M-----------------------------------------------------------------
L_READKY.ASM - Exchanged calls via __$sg_output against calls to
sg_output (see L_SGDISP.ASM above).
-2.4---B---------------------------------------------------------------------
L_READRC.ASM - Fixed length calculation of three internal tables. This
bug crashed the READ when the user pressed an illegal
key like Ctrl-PgDn
-2.4----E-G------------------------------------------------------------------
L_READRC.ASM - Added code in _$read_record to activate the numerical
format conversion, and to accept a comma as well as the
dot as a decimal stop.
-2.4----E--------------------------------------------------------------------
L_SAY.ASM - Replaced all hard-coded screen size values, now using
the routines to determine the current screen size instead.
-2.4---B---------------------------------------------------------------------
L_SAYCHR.ASM - Fixed length calculation of internal table.
-2.4---B---------------------------------------------------------------------
L_SAYGET.ASM - Fixed a bug in _$sg_num_tmp which caused bad formatting
of numerical values during READ.
-2.4----E--------------------------------------------------------------------
L_SAYNUM.ASM - Changed names of symbols cr_string and db_string into
__cr_string, or __db_string, and declared them public,
and increased the lenghts to 6 (+ \0).
Modified code to display these strings as ASCIIZ instead
of using hard-coded lengths.
This allows the modification of the text which gets dis-
played when using PICTURE functions @C, and @X, i.e. some-
thing else but " CR", or " DB" (see also Z_DBCR.PRG
below).
-2.4-------M-----------------------------------------------------------------
L_SAYNUM.ASM - Added call to _$set_trans in _$say_number to switch number
format conversion on or off.
-2.4-----N-------------------------------------------------------------------
L_SETCAP.ASM - New module containing _set_caps_pos which allows to de-
fine the position of the CapsLock status indicator.
procedure Set_Caps_Pos prototype
parameters value uint r, value uint c
If parameter r is -1, the status indicator will be hidden.
Caution: The routine does not check if coordinates exceed
the legal screen boundaries.
-2.4-----N-------------------------------------------------------------------
L_SETCLR.ASM - Added code to define the default attribute for the status
indicators in the scoreboard according to __attr_std.
-2.4-----N-------------------------------------------------------------------
L_SETINS.ASM - New module containing _set_ins_pos which allows to de-
fine the position of the Insert status indicator.
procedure Set_Ins_Pos prototype
parameters value uint r, value uint c
If parameter r is -1, the status indicator will be hidden.
Caution: The routine does not check if coordinates exceed
the legal screen boundaries.
-2.4-----N-------------------------------------------------------------------
L_SETNUM.ASM - New module containing _set_num_pos which allows to de-
fine the position of the NumLock status indicator.
procedure Set_Num_Pos prototype
parameters value uint r, value uint c
If parameter r is -1, the status indicator will be hidden.
Caution: The routine does not check if coordinates exceed
the legal screen boundaries.
-2.4-----N-------------------------------------------------------------------
L_SETSCR.ASM - New module containing _set_scroll_pos which allows to de-
fine the position of the ScrollLock status indicator.
procedure Set_Scroll_Pos prototype
parameters value uint r, value uint c
If parameter r is -1, the status indicator will be hidden.
Caution: The routine does not check if coordinates exceed
the legal screen boundaries.
-2.4-----N-------------------------------------------------------------------
L_SGBIO.ASM - New module containing _$sg_outbio for BIOS output for SAY/
GET as alternative to _$sg_output (which does it direct).
-2.4----E-G------------------------------------------------------------------
L_SGCHR.ASM - Enhanced to support Umlauts (utility routine for GET)
-2.4----E--M-----------------------------------------------------------------
L_SGDISP.ASM - Vector __$sg_output will no longer be initialized to point
to _$sg_output (this is now performed by _scrn_dircet,
_scrn_bios, or _scrn_dos accordingly).
-2.4----E-G------------------------------------------------------------------
L_SGDISP.ASM - Added call to _$transform_char in _$sg_disp_char to do a
conversion of the numerical format (according to the
status of __$trans_flag).
-2.4-------M-----------------------------------------------------------------
L_SGDISP.ASM - Added procedure sg_output in $s_common_seg to allow re-
direction through vector __$sg_output (which is also in
$s_common_seg).
-2.4-------M-----------------------------------------------------------------
L_SGOUT.ASM - New module containing _$sg_output which was previously
located in L_SGDISP.ASM.
-2.4------G------------------------------------------------------------------
L_SLINE.ASM - Translated messages into German
-2.4-----N-------------------------------------------------------------------
L_ZOOMBX.PRG New module containing
PROCEDURE ZoomBox prototype
PARAMETERS VALUE UINT r, ;
VALUE UINT c, ;
VALUE UINT r1, ;
VALUE UINT c1, ;
value logical grow, ;
const char(9) FrameFillChar,;
value byte BorderAttr, ;
value byte FillAttr, ;
value byte ShadowAttr, ;
value uint speed
This procedure draws a zooming box (if grow = .t.) with
shadows to the left, and bottom line.
The "tricky" thing is that the speed of the zoom is al-
most independant of the current CPU speed.
See Z_BOX.ASM for a description of string FrameFillChar.
If FrameFillChar contains less than 9 characters, spaces
will be padded to the right.
-2.3-----N-------------------------------------------------------------------
M_BUTT.PRG, - Added mouse functions MouseCheck, MouseOn, MouseOff,
M_MODUL.PRG, MouseCursorType, MouseSaveState, MouseRestoreState,
M_MODUL.PRG MouseActCol, MouseActRow, MouseSetCol, MouseSetRow,
MouseSetRowCol, MouseDefineArea, MouseButtonCheck,
MouseButtonValue, MouseAnyButtonPressed,
MouseButtonPressed, MouseButtonWait,
MouseButtonWaitPressed, MouseButtonWaitReleased,
MouseButtonPressedRow, MouseButtonPressedCol,
MouseButtonReleasedRow, MouseButtonReleasedCol
-2.3------G------------------------------------------------------------------
M_KERNEL.ASM - * M_EDIT() translated messages into German, and enhanced
* internal routine UPHER to support Umlauts.
*
* The function in general is quite a crap, and needs some
* enhancements.
-2.4---B---------------------------------------------------------------------
M_KERNEL.ASM - Fixed length calculation of internal tables.
-2.4-------M-----------------------------------------------------------------
M_KERNEL.ASM - Moved define for __edit_browse to E_DATA.ASM to avoid
linkage of this module when DATA.HDR is #included in a
program.
-2.3-----N-------------------------------------------------------------------
MACROS.ASM - New module containing routines for indirect function
calls: FunctionAddress(), and IndCall
-2.3-----N-------------------------------------------------------------------
MACROS.HDR - New header file, containing prototypes for MACROS.ASM
-2.4----E--------------------------------------------------------------------
MATH.HDR - Added prototypes for BITRESET, AND(), OR() und XOR() -
these functions are in the library but are not docu-
mented.
-2.4----E--------------------------------------------------------------------
MATH.HDR - Added prototype for dbl_power()
-2.4----E--------------------------------------------------------------------
MATH.HDR - Extended the definition of PI to the full amount of
possible dbl decimals.
-2.4----E--------------------------------------------------------------------
MATH.HDR - Added prototype for BitTest() which was in the library,
but not yet prototyped.
-2.4----E--------------------------------------------------------------------
MATH.HDR - Added prototype for procedure factorial which was in the
library, but not yet prototyped.
-2.4-------M-----------------------------------------------------------------
MATH.HDR - Removed prototypes for bit functions, and logical func-
tions, and moved them into BITS.HDR.
-2.3-----N-------------------------------------------------------------------
MOUSE.HDR - New header file, containing prototypes of mouse functions
-2.4---B---------------------------------------------------------------------
N_INDCOM.ASM - Enhanced/changed code according to the modified index
structure to get rid of serveral index bugs (check for an
empty leave here). (W.M.)
-2.3-------M-----------------------------------------------------------------
N_INDNET.ASM - Built in an assembler switch 'light' to build a non-LAN
version of FCO/FORCE
-2.4---B---------------------------------------------------------------------
N_INDMAK.ASM - Modified write_root to use some area in memory instead
of using stack space for the temporary buffer. Up to
now, it could really kill the system, when there was
not enough free stack space available.
-2.4---B---------------------------------------------------------------------
N_INDMAK.ASM - Enhanced/changed code according to the modified index
structure to get rid of serveral index bugs (check for an
empty leave here). (W.M.)
-2.4---B---------------------------------------------------------------------
N_NODE.ASM - Enhanced/changed code according to the modified index
structure to get rid of serveral index bugs (check for an
empty leave here). (W.M.)
-2.4---B---------------------------------------------------------------------
N_SEEK.ASM - Enhanced/changed code according to the modified index
structure to get rid of serveral index bugs (check for an
empty leave here). (W.M.)
-2.3-----N-------------------------------------------------------------------
OFFVAL.PRG - New module containing function OffsetValue which returns
the offset address of its parameter
-2.4----E--------------------------------------------------------------------
O_CURCLR.ASM - Modified function curcolor to use current screen size
values instead of hard-coded screen size (80 * 25).
-2.4---B---M-----------------------------------------------------------------
O_KEYBRD.ASM - Fixed a bug in key_int which caused a system crash if
somebody tried to stuff more characters into the key-
board buffer as there was empty space.
Made a function to return .T. if the character could be
stuffed into the keyboard buffer, i.e. if there was empty
space available.
function logical key_int prototype
parameters value uint key_value
-2.4---B---------------------------------------------------------------------
P_DBLPOW.PRG - Changed order of parameters, first parameter is mantissa,
second parameter is exponent now.
-2.4----E-G------------------------------------------------------------------
P_STRDBL.ASM - Enhanced val() to accept "." as well as "," as decimal
stop (necessary for the European numeric format).
-2.4---B---------------------------------------------------------------------
P_TRUNC.PRG - Added code to trap the special case of trunc(0) (which
caused the program to bomb).
-2.4---B---M-----------------------------------------------------------------
Q_CCALL.ASM - Fully re-worked this module to archieve the following:
- more efficient code
- bug fixes:
- incorrect stack adjustment in _realloc which caused
a program crash when called from C
- wrong test in _calloc which caused a program to over-
write low memory - this was really fatal !
- wrong test in _stackavail which caused the function
to return false values if the stack size exceeded
32887 bytes.
Thanks to Michael Kalkhoff, who did the fixes !!!
-2.4-------M-----------------------------------------------------------------
Q_MEMORY.ASM - Re-positioned segment declaration to make TLINK happy.
Some versions of TLINK constantly reported fixup over-
flow errors when linking FCO programs, which now
seems to be ok.
-2.4-------M-----------------------------------------------------------------
Q_MEMORY.ASM - Added some enhancements for a future EMS/XMS memory
handler.
Thanks to Michael Kalkhoff, who did the enhancements !!!
-2.4------G------------------------------------------------------------------
R_LABEL.ASM - Translated messages into German
-2.4------G------------------------------------------------------------------
R_REPORT.ASM - Translated messages into German (Report routine)
-2.4---B---M-----------------------------------------------------------------
R_REPORT.ASM - Called _$deallocate at the end of the report to release
memory.
Increased length of today_date from 9 to 11 to allow
correct disply with SET CENTURY ON.
Suppressed the Output of date, and page number on page 1
when PLAIN output is selected.
-2.4-----N-------------------------------------------------------------------
S_CLEAR.ASM - Defined new vector __$clr_scrn which points to the current
routine for clearing the screen.
_$clear now calls the clear screen routine through this
vector instead of calling the routine to clear the screen
by directly writing into screen memory (this is required
for REAL output through BIOS.
Removed direct clear screen routine from here, and placed
in the new module S_CLRDIR.ASM
-2.4-------M-----------------------------------------------------------------
S_CLEAR.ASM - Removed definition of __$clear_scrn, and put this into
S_DATA.ASM (see above).
-2.4-----N-------------------------------------------------------------------
S_CLRBIO.ASM - New module contining _$clear_bio which clears the screen
through BIOS (required for full BIOS output).
-2.4-----N-------------------------------------------------------------------
S_CLRDIR.ASM - New module containing __$clear_dir to clear the screen by
directly filling the screen memory (this code was con-
tained in S_CLEAR.ASM before.
-2.4-------M-----------------------------------------------------------------
S_DATA.ASM - Moved all vectors which can be modified to re-direct out-
puts through different drivers to here.
-2.4-------M-----------------------------------------------------------------
S_DSTR.ASM - Removed call into _scrn_direct (this is now performed by
_fco_start).
-2.4-------M-----------------------------------------------------------------
S_DSTR.ASM - Defined __$get_row_col, and __$set_row_col as far pointers
to allow for redirection of the associated routines by
external libraries, like the KRS graphics library.
-2.4-------M-----------------------------------------------------------------
S_DSTR.ASM - Moved re-directable vectors from here to S_DATA.ASM (see
above).
-2.4---B---------------------------------------------------------------------
S_EDIT.ASM - Fixed length calculation of internal tables.
-2.4----E--------------------------------------------------------------------
S_EDIT.ASM - Replaced all hard-coded screen size values by calling
the appropriate routines to report the current screen
size.
-2.4-------M-----------------------------------------------------------------
S_OC_BIO.ASM - _scrn_bios now defines vector __$sg_output to conatain
the address of _$sg_outbio to make this re-directable.
-2.4-------M-----------------------------------------------------------------
S_OC_BIO.ASM - _scrn_bios now defines vector __$sg_clear_scrn to conatain
the address of _$clear_bio to make this re-directable.
-2.4----E--------------------------------------------------------------------
S_OC_BIO.ASM - Replaced all hard-coded screen size values by calling
the appropriate routines to report the current screen
size.
-2.4-------M-----------------------------------------------------------------
S_OC_BIO.ASM - Changed the initialization of __$get_row_col, and
__$set_row_col to a full FAR initialization (see above).
-2.4-------M-----------------------------------------------------------------
S_OC_BIO.ASM - Added commands to set up vectors to screen read/write
routines through BIOS.
-2.4-------M-----------------------------------------------------------------
S_OC_BIO.ASM - Added code to initialize __$screen_driver to 1 (see
E_DATA.ASM).
-2.4----E--------------------------------------------------------------------
S_OC_CAL.ASM - New module containing routines to calculate the current
bytes per display row, and the curretn bytes per screen
according to the current screen size set.
-2.4-------M-----------------------------------------------------------------
S_OC_DIR.ASM - _scrn_direct now defines vector __$sg_output to contain
the address of _$sg_output to make this re-directable.
-2.4-------M-----------------------------------------------------------------
S_OC_DIR.ASM - _scrn_direct now defines vector __$clear_scrn to contain
the address of _$clear_dir to make this re-directable.
-2.4----E--------------------------------------------------------------------
S_OC_DIR.ASM - Replaced all hard-coded screen size values by calling
the appropriate routines to report the current screen
size.
-2.4-------M-----------------------------------------------------------------
S_OC_DIR.ASM - Changed the initialization of __$get_row_col, and
__$set_row_col to a full FAR initialization (see above).
-2.4-------M-----------------------------------------------------------------
S_OC_DIR.ASM - Added commands to set up vectors to direct screen read/
write routines.
-2.4-------M-----------------------------------------------------------------
S_OC_DIR.ASM - Added code to initialize __$screen_driver to 0 (see
E_DATA.ASM).
-2.4-------M-----------------------------------------------------------------
S_OC_DOS.ASM - _scrn_dos now defines vector __$sg_output to conatain
the address of _$sg_outbio to make this re-directable.
Remark: There is no special driver for SAY/GET output
under DOS because it does not make sense to re-
direct SAY/GET into a file.
-2.4-------M-----------------------------------------------------------------
S_OC_DOS.ASM - _scrn_dos now defines vector __$sg_clear_scrn to conatain
the address of _$clear_bio to make this re-directable.
Remark: There is no special driver for the CLEAR command
under DOS because it does not make sense to re-
direct this into a file.
-2.4-------M-----------------------------------------------------------------
S_OC_DOS.ASM - Changed the initialization of __$get_row_col, and
__$set_row_col to a full FAR initialization (see above).
-2.4-------M-----------------------------------------------------------------
S_OC_DOS.ASM - Added commands to set up vectors to screen read/write
routines through BIOS.
-2.4-------M-----------------------------------------------------------------
S_OC_DOS.ASM - Added code to initialize __$screen_driver to 2 (see
E_DATA.ASM).
-2.4---B---------------------------------------------------------------------
S_RC.ASM - Added correct assume directive.
-2.4-------M-----------------------------------------------------------------
S_ROWCOL.ASM - Changed _$get_row_col to do a far call through
__$get_row_col now (see above).
-2.4-------M-----------------------------------------------------------------
S_RSTNEW.ASM - Replaced all hard-coded screen size values by calling
the appropriate routines to report the current screen
size.
-2.4-------M-----------------------------------------------------------------
S_RSTSCR.ASM - Replaced all hard-coded screen size values by calling
the appropriate routines to report the current screen
size.
-2.4-------M-----------------------------------------------------------------
S_RSTSCR.ASM - _restorescrn calls buff_to_scrn instead of directly
writing to the screen memory to allow for re-direction
through BIOS.
-2.4-------M-----------------------------------------------------------------
S_SAVSCR.ASM - Replaced all hard-coded screen size values by calling
the appropriate routines to report the current screen
size.
-2.4-------M-----------------------------------------------------------------
S_SAVSCR.ASM - _savescrn calls scrn_to_buff instead of directly reading
the screen memory to allow for re-direction through BIOS.
-2.4-------M-----------------------------------------------------------------
S_SCBIOS.ASM - Replaced all hard-coded screen size values by calling
the appropriate routines to report the current screen
size.
-2.4-------M-----------------------------------------------------------------
S_SCRSAV.ASM - Replaced all hard-coded screen size values by calling
the appropriate routines to report the current screen
size.
-2.4-------M-----------------------------------------------------------------
S_WINSAV.ASM - Replaced all hard-coded screen size values by calling
the appropriate routines to report the current screen
size.
-2.4-------M-----------------------------------------------------------------
S_WINSAV.ASM - Modified routines save_data, and restore_data to allow
screen saves, and restores to be re-directed via a vector
to allow direct screen read/writes, or read/writes through
BIOS (see below).
-2.4-------M-----------------------------------------------------------------
S_WINSAV.ASM - Added procedure scrn_to_buff, and buff_to_scrn in
$s_common_seg to allow redirection through vectors
__$scrn_to_buff, and __$buff_to_scrn (which are also in
$s_common_seg).
-2.4-------M-----------------------------------------------------------------
S_WINSAV.ASM - Modified routines save_data, and restore_data to allow
screen saves, and restores by calling scrn_to_buff, and
buff_to_scrn instead of calling the routines directly
via vectors. This avoids linking of unneeded code.
-2.4-----N-------------------------------------------------------------------
SCREEN.HDR - New header file contining prototypes for the following
routines (some of the prototypes have been moved to here
from other modules):
function uint col
function uint GetMaxCol
function uint GetMaxRow
function uint GetScrAttr
function uint GetScrChar
function uint GetScrCharAttr
function logical iscolor
function logical Is_Cursor
function logical RestoreAreaFromFile
function uint row
function logical SaveAreaToFile
function uint savescrn
function uint ScrnDriver
function uint scrseg
function logical SetBlink
function ulong VidAddr
function uint VideoType
procedure cursor_off
procedure cursor_on
procedure curcolor
procedure cursor_type
procedure fill
procedure grow_box
procedure PutScrAttr
procedure PutScrChar
procedure PutScrCharAttr
procedure repaint_area
procedure restore_area
procedure restore_new
procedure restorescrn
procedure save_area
procedure save_screen
procedure scroll
procedure Set_Caps_Pos
procedure Set_Ins_Pos
procedure Set_Num_Pos
procedure Set_Scroll_Pos
procedure SetColor
procedure swap_colors
procedure SetMaxRowCol
-2.4-------M-----------------------------------------------------------------
SCREEN.HDR - Added prototypes for Box, and ZoomBox
-2.3-----N-------------------------------------------------------------------
SEGVAL.PRG - New module containing function SegmentValue which returns
the segment address of its parameter
-2.3-----N-------------------------------------------------------------------
STRING.HDR - Added prototypes for the above functions
-2.4-----N-------------------------------------------------------------------
STRING.HDR - added prototype for IsEmpty
-2.3-----N-------------------------------------------------------------------
SYSTEM.HDR - Added prototypes for SegmentValue(), and OffsetValue()
-2.4-----N-------------------------------------------------------------------
SYSTEM.HDR - Added prototype for CreateTempFilename()
-2.4----E--------------------------------------------------------------------
SYSTEM.HDR - Added prototypes for existing functions Interrupt, and
Int_W_Flags.
-2.4-----N-------------------------------------------------------------------
SYSTEM.HDR - Added prototypes for Poke(), Peek, and ScrSeg()
-2.4-----N-------------------------------------------------------------------
SYSTEM.HDR - Added prototypes for PortIn(), and PortOut
-2.4-----N-------------------------------------------------------------------
SYSTEM.HDR - Added prototype for function Is_Dir() which was in the
library, but not yet prototyped (see X_ISDIR.ASM).
function logical Is_Dir prototype
parameters const char DirName
-2.4-----N-------------------------------------------------------------------
SYSTEM.HDR - Added prototype for function Addr() which was in the
library, but not yet prototyped
function ulong addr prototype
parameters untyped item
-2.4-----N-------------------------------------------------------------------
SYSTEM.HDR - Added prototype for function CpuSpeed()
function uint CpuSpeed prototype
(see Z_SPEED.ASM)
-2.4-----N-------------------------------------------------------------------
SYSTEM.HDR - Added prototype for procedure Ticks
procedure Ticks prototype
parameters value uint n
(see Z_TICKS.ASM)
-2.3----E-G------------------------------------------------------------------
T_CAP1ST.ASM - CAPFIRST() enhanced to support Umlauts
-2.4----E--------------------------------------------------------------------
T_FILL.ASM - Replaced all hard-coded screen size values by calling
the appropriate routines to report the current screen
size.
-2.4----E--------------------------------------------------------------------
T_FILL.ASM - Added code to check __$scrn_driver; if this flag con-
tains values greater than 0, i.e. not scrn_direct, the
fill() will simply return without drawing something on
the screen (see E_DATA for definition of __$scrn_driver).
-2.4----E-G------------------------------------------------------------------
T_ISALP.ASM - Enhanced to support Umlauts (function isalpha())
-2.3----E-G------------------------------------------------------------------
T_ISLOW.ASM - ISLOWER() enhanced to support Umlauts
-2.4---B---------------------------------------------------------------------
T_ISLOW.ASM - Fixed a bug which made the whole machine hang (because
of one missing POP command), and changed code similar to
T_ISUP.ASM to avoid usage of ES register.
-2.3----E-G------------------------------------------------------------------
T_ISUP.ASM - ISUPPER() enhanced to support Umlauts
-2.4---B---------------------------------------------------------------------
T_LEN.ASM - Added the correct assume directive
-2.3----E-G------------------------------------------------------------------
T_LOWER.ASM - LOWER() enhanced to support Umlauts
-2.4----E-G------------------------------------------------------------------
T_SQUISH.ASM - Enhanced to support Umlauts (function squish())
-2.3----E-G------------------------------------------------------------------
T_UPPER.ASM - UPPER() enhanced to support Umlauts
-2.3-----NG--------not to be used in fututre releases------------------------
UISLOWER.PRG - Modules containing German-language versions of islower(),
UISUPPER.PRG isupper(), upper(), lower(), and capfirst(). These
UUPPER.PRG have been built in to be compatible to older versions of
ULOWER.PRG FCO, because the "regular" functions now support Umlauts
UCAPFIRST.PRG as well (and even faster), so this stuff is no longer
needed.
-2.3------GM-----------------------------------------------------------------
V_CDOW.ASM - CDOW() returns German day names
-2.3------GM-----------------------------------------------------------------
V_CMONTH.ASM - CMONTH() returns German month names
-2.4---B---------------------------------------------------------------------
V_ITOD.ASM - Changed order of parameters in itod, i.e. day-month-year,
according to the documentation, and to the header file.
-2.4-------M-----------------------------------------------------------------
W_DBF.ASM - Modified code of dbf(), and a_dbf() to really return an
empty string instead of generating a run-time error when
the functions are called without an open database.
It seems, as if it was already SOPHCO's intension to make
the functions behave like this, but it did not work be-
cause the functions call _$alias_header which never re-
turns with the CY flag set to indicate an error, but
calls the error handler instead.
To make things work, I replaced calls to _$alias_header
by calls to a local routine.
-2.4-----N-------------------------------------------------------------------
W_FLDCNT.ASM - Added code for function a_fldcnt()
function uint a_fldcnt prototype
parameters alias AliasName
-2.4-----N-------------------------------------------------------------------
W_KRS.ASM - New module containing the functions
_$set_fco, and _$is_fco
_$set_fco will be called from the setup module in FCO.LIB,
and it will set the static variable __$is_fco to TRUE.
_$is_fco returns the status of __$is_fco, and may be used
by 3rd party libraries to determine if they are linked with
FCO.LIB.
The specific reason to include this function was to make the
Jeff Davis Library compatible to FCO.LIB which uses far
addresses for some screen-I/O functions.
ATTENTION: never call _$set_fco in your programs because
this may mess up things.
-2.3-------M-----------------------------------------------------------------
W_LOCK.ASM - Built in an assembler switch 'light' to build a non-LAN
version of FCO/FORCE
-2.4---B---------------------------------------------------------------------
W_LOCK.ASM - Fixed several bugs in the locking, and unlocking routines
to allow real Clipper-compatibility, and to make the func-
tions work properly, e.g. in the original code, after doing
an flock(), the file could never be unlocked again.
In addition even when a file was locked, a run-time error
was issued when somebody tried to REPLACE something in a
record, telling the frustrated user that there would be an
rlock required.
Changed _$hlock to really lock the header only if a
file is opened in shared mode.
-2.4---B---------------------------------------------------------------------
W_LOCK.ASM - Fixed another bug which never showed up before the previous
bug-fix.
The original code did not change contents in a record after
REPLACE ... WITH, but the bug did never show up because
before that, the above mentioned run-time error was issued.
-2.3----E--------------------------------------------------------------------
X_ISCURS.ASM - This module contains an undocumented funktion is_cursor(),
added its prototype to IO.HDR
-2.4---B---------------------------------------------------------------------
Y_DELAY.ASM - Fixed a bug in biasing the right value.
-2.4-------M-----------------------------------------------------------------
Y_PRN_RC.ASM - Removed hard-coded checks for maximum print sizes to allow
any format the programmer wants - it is now the program-
mer's responsibility not to print out of bounds.
-2.4-----N-------------------------------------------------------------------
Z_BLINK.ASM - New function which allows switching the video adapter
between display modes blink, or highlighted background
colors.
function logical SetBlink prototype
parameters value logical NewMode
Return value: .T. if blink mode was on before calling the
function, else .F.
-2.4-----N-------------------------------------------------------------------
Z_BOX.ASM - New function to draw a box similar to Clipper's BOX
command.
procedure box prototype
parameters value int upper_row, ;
value int upper_col, ;
value int lower_row, ;
value int lower_col, ;
const char(9) border_fill_chars, ;
value uint fill_attr
Border_fill_chars contains the eight border characters
plus an (optinal) ninth character to fill the box.
If this character is missing, the box will not be filled,
and the old contents remains unchanged.
Fill_attr defines the attribute of the fill characters,
__color_std will be used for the border attribute.
-2.4-----N-------------------------------------------------------------------
Z_DBCR.PRG - New module containing
procedure SetDbCrString prototype
parameters const char(6) dbString, ;
const char(6) crString
to modify the texts for " DB", and " CR" (see L_SAYNUM.ASM
above). This, for example, allows to display the German
" Soll", and " Haben", or a trailing " +", or " -", etc.
-2.4-----NG------------------------------------------------------------------
Z_DDOW.PRG - New module containing function ddow() which is similar to
dow(), but it considers Monday to be the first day of a
week, and Sunday to be the last (7th) day of a week. This
is according to the German DIN standard.
-2.4-----N-------------------------------------------------------------------
Z_NPRDY.ASM - new module to test the status of printer no n
function logical npready prototype
parameters value uint PrinterNumber
-2.4-----N-------------------------------------------------------------------
Z_ORDER.ASM - New module containing the following functions:
function uint ind_order prototype
function uint a_ind_order prototype
parameters alias aliasname
The functions return the current index order which either
has been set by default (1), or bei SET ORDER TO.
The functions are equivalents to Clipper's order() func-
tions. Different names are necessary because ORDER is a
reserved keyword in FCO/FORCE.
-2.4-----N-------------------------------------------------------------------
Z_PEEK.ASM - New module containing
function uint Peek prototype
parameters value uint segment, value uint offset
Returns contents of address segment:offset
-2.4-----N-------------------------------------------------------------------
Z_POKE.ASM - New module containing
procedure Poke prototype
parameters value uint segment, ;
value uint offset ;
value uint PokeVal
Writes PokeVal into address segment:offset
-2.4-----N-------------------------------------------------------------------
Z_PORTIB.ASM - New module containing
function uint PortInB prototype
parameters value uint PortAddress
Reads the specified port address, and returns
an 8 bit value
-2.4-----N-------------------------------------------------------------------
Z_PORTIW.ASM - New module containing
function uint PortInW prototype
parameters value uint PortAddress
Reads the specified port address, and returns
a 16 bit value
-2.4-----N-------------------------------------------------------------------
Z_PORTOB.ASM - New module containing
procedure PortOutB prototype
parameters value uint PortAddress, ;
value uint PortData
Writes an 8 bit value to the specified port address.
-2.4-----N-------------------------------------------------------------------
Z_PORTOW.ASM - New module containing
procedure PortOutW prototype
parameters value uint PortAddress, ;
value uint PortData
Writes a 16 bit value to the specified port address.
-2.4-----N-------------------------------------------------------------------
Z_PRSTAT.ASM - new module to return status of printer no n
function uint prstatus prototype
parameters value uint PrinterNumber
return values:
0 - no error
1 - out of paper
2 - general error
3 - unselect
4 - busy
-2.4-----N-------------------------------------------------------------------
Z_SCRSEG.ASM - New module containing
function uint ScrSeg prototype
Returns the segment address of the current screen
memory
-2.4-----N-------------------------------------------------------------------
Z_SETCLR.PRG - New module containing
procedure SetColor prototype
parameters value uint std, ;
value uint enhcd, ;
value uint score
to define the color attributes, including the color of
the scoreboard indicators.
-2.4-----N-------------------------------------------------------------------
Z_SETNF.ASM - New module containing
procedure SetNumFormat prototype
parameters value logical WhatFormat
to set __$trans_flag to .T. (European format), or to
.F. (American format).
-2.4-----N-------------------------------------------------------------------
Z_SWPCOL.ASM - New module containing public procedure _swap_colors to
exchange normal and enhanced color attributes.
-2.4-----N-------------------------------------------------------------------
Z_TRANS.ASM - New module containing the routines _$transform_str,
_$transform_char, and _$set_trans, and the variable
__$trans_flag.
This all is needed to allow numerical outputs using the
European numeric format, like "123.456,78".
-2.4-----N-------------------------------------------------------------------
Z_VIDTYP.ASM - New function which returns the type of the current video
adapter.
function VideoType prototype
Return values: 0 - MGA, Hercules
1 - CGA
2 - EGA/VGA
-2.4-----N-------------------------------------------------------------------
Z_SAVDIR.ASM - New module containing the routines save_data_dir, and
rest_data_dir to do direct screen read/writes for the
above routines.
-2.4-----N-------------------------------------------------------------------
Z_SAVBIO.ASM - New module containing the routines save_data_bio, and
rest_data_bio to do screen read/writes for the above
routines through BIOS.
-2.4-----N-------------------------------------------------------------------
Z_SCREEN.ASM - New module containing the following routines to read/write
screen data direct:
procedure PutScreenWord prototype
parameters const uint row, ;
const uint col, ;
const uint CharAttr
function uint GetScreenWord prototype
parameters const uint row, ;
const uint col
procedure PutScreenChar prototype
parameters const uint row, ;
const uint col, ;
const uint Char
function uint GetScreenChar prototype
parameters const uint row, ;
const uint col
procedure PutScreenAttr prototype
parameters const uint row, ;
const uint col, ;
const uint Attr
function uint GetScreenAttr prototype
parameters const uint row, ;
const uint col
-2.4-----N-------------------------------------------------------------------
Z_SCRNDR.ASM - New module containing a function to check for the
current screen driver mode:
function uint ScrnDriver prototype
Return values:
0 - &DIRECT
1 - &BIOS
2 - &DOS
(see #defines in SCREEN.HDR)
-2.4-----N-------------------------------------------------------------------
Z_SPEED.ASM - New module containing a function to determine the rela-
tive CPU speed:
function uint CpuSpeed prototype
The return value is relative to the CPU speed, i.e. the
higher the speed, the higher the value.
This function is helpful for programming delay loops which
produce similar delays on machines with different CPU
speeds.
This function determines the speed based upon CPU cycles
within one timer tick.
-2.4-----N-------------------------------------------------------------------
Z_TICKS.ASM - New module containing a procedure to delay the program
execution:
procedure Ticks prototype
parameters value uint n
This procedure causes a delay of n timer ticks (18.2 ms).
-----------------------------------------------------------------------------