home *** CD-ROM | disk | FTP | other *** search
-
- FAFNIR, Version 1.0
- September 11, 1988, David C. Oshel
-
- Original release.
-
- FAFNIR, Version 3.0
- December 18, 1988, David C. Oshel
-
- Purpose: A general-purpose forms engine for data entry, with unlimited
- data types, but standard field types are predefined as macros;
- i.e., TEXT, DOLLAR, DATE, PHONE, SSN, DISPLAY, VIRTUAL, etc.
-
- This is a C programmer's tool, distributed as source code.
-
- The forms engine is a standard table-driven (C structure)
- general-purpose routine, with slots for pointers to field
- initialization, character validation, and field validation
- functions, plus default field contents. The macros defined
- in FAFNIR.H practically eliminate "essential details" micro-
- management, by providing the programmer with standard types
- and bullet-proof, automatic attention to structure syntax.
-
- The graininess of standard types varies from YESNO, which
- requires field name and x and y location of the field, to
- FIELD, which accepts/requires ALL parameters for total
- "free form" field type definition.
-
- The engine uses dynamic allocation, but there is a tradeoff
- in favor of programmer's peace of mind; the field names are
- declared as type char *, and take up external storage to the
- tune of number of fields times sizeof(char *). Fields must
- be allocated before use, and data must be transferred from
- fields to file before the allocation is released. You get
- the not-so-primitives, the rest is a breeze.
-
- Of course, the engine is still not as feature-loaded as most
- of the better commercial forms packages, but it covers 99% of
- the average end-user's data entry needs.
-
- Portability: Screen and keyboard i/o source code is provided;
- the engine runs all it's i/o through the CIAO library defined
- in the FAFNIR make script. On a decent operating system, the
- whole i/o package could be replaced by macros, but we will
- probably never see that ideal universe in our lifetimes. In
- the meantime, this is as close as you'll get to Elysian Fields
- and Forms Nirvana on plain ol' practical Earth.
-
- Do this: C>MAKEIT.BAT
-
- Produces: FAFNIR4L.LIB - all i/o and forms editing, in LARGE model
- FAFNIR.EXE - program to test and demonstrate a 2-page form
-
- Executables, header files and pre-compiled: FAFNIR4x.LIB (Large
- & Small) are included in the distribution, plus the magic macro
- header file, FAFNIR.H. The demonstrations, and ES.EXE, a
- primitive screen editor, are included as pre-compiled executables.
-
- Requires: Microsoft C version 5.00, plus the standard MSC utilities
- Microsoft Assembler (MASM) version 5.1 (two modules only)
- MS-DOS 2.0
- 100% IBM PC-XT compatible screen RAM and ROM BIOS (but see
- the Portability discussion, above)
-
- Assumes: Hard disk.
-
- You should have your compiler installed, and PATH and environment
- variables for MS C compilation established. MAKEIT.BAT assumes
- the total development environment is ready to go, including MAKE,
- LINK and LIB for use with MASM 5.1 and MS C 5.0 or better.
-
-
- Distributed:
-
- Filename Description
- -------- -----------------
- CIAO.H Header file for screen & keyboard i/o, utilities, macros
- CLAIROL.C Module lets users decide screen colors
- COUNTIES.C Scrollbar menu returns IOWA D.O.T county code from list
- CRYPT.C Hogg's Code encryption, decryption
- CVIDEO.C Low-level screen i/o, see MSJ 11/1988, p. 1
- DEMO.C FAFNIR.EXE source code, demonstrates a 2-page form
- DEMO4L.EXE Demonstrate Fafnir forms i/o, large model
- DEMO4S.EXE Demonstrate Fafnir forms i/o, small model
- DLRCVT.C Convert dollar long int to dollar formatted string
- ES.C Source code for a simple screen file editor (see KEYS.ASM)
- ES.EXE Executable screen file editor (MS-DOS 2.0, Small Model)
- FAF1.S Screen file for FAFNIR.EXE demo, page 1 of 2
- FAF2.S Screen file for FAFNIR.EXE demo, page 2 of 2
- FAFNIR Make script for compiling Fafnir libraries & programs
- FAFNIR.C Source code for Elysian Fields and page editors
- FAFNIR.DOC Reasonably accurate description of Fafnir, with history
- FAFNIR.H Magic macros for Forms Nirvana, plus globals, etc.
- FAFNIR4L.LIB Large model library, contains all object code listed here
- FAFNIR4L.XRF cross-reference listing for .LIB, above
- FAFNIR4S.LIB Small model library, contains all object code listed here
- FAFNIR4S.XRF cross-reference listing for .LIB, above
- FSTATS.C Source code, routine finds MS-DOS file size
- GOTOXY.C Direct screen RAM and/or hardware gotoxy function
- JDEMO4L.EXE Prove out MSJ direct video routines, large model
- JDEMO4S.EXE Prove out MSJ direct video routines, small model
- JULDAY.C Julian day number, day of week (after Carley Phillips)
- JULIAN.C Astronomical version, returns double float, not long
- KEYDEFS.C A menu routine, displays Fn keys w/descriptions, you pick
- KEYIN.C Wait for keypress with background function
- KEYS.ASM Assembler keyin routine for ES.EXE screen editor (Small)
- KEYS.H Header file describes IBM PC extended key codes
- LVIDEO.ASM Small Model, MASM 5.1 assembler direct video i/o
- MAKEIT.BAT *** BUILD FAFNIR4x.LIB *** Run this if MS C 5.0 installed.
- MSJDEMO.C Demo from MicroSoft Systems Journal, Nov. 88 (modified)
- OLDEDITS.C Some obsolete line editing fns, still useful sometimes
- README.DOC (you are!)
- SAVESCRN.C Save current text screen, window, cursor
- SCROLL.C Direct video, scroll region up or down one line
- SOUND.C Standard sound effects and IBM PC tone generation primitives
- SVIDEO.ASM Small Model, MASM 5.1 assembler direct video i/o
- SWAPSCRN.C Seldom used swap visible with hidden screen buffer
- TM.C Time and date routines
- TYPEAFIL.C Read text file from disk and display in window, w/ PgUp
- USSTATES.C Scrollbar menu returns 2-letter U.S. State abbrv. from list
- VIDEO.H Header file for LVIDEO and CVIDEO routines
- VIDINIT.C Minimum "must link" initialization for screen i/o
- VIDINIT.H Header file for all CIAO screen i/o routines
- WBOX.C Draws a box and establishes window inside it
- WINDOW.C Window dimension routines
- WINK.C Character out inside window routine
- WPRINTF.C printf inside a window, with video attribute escape codes
- WPUTS.C puts inside a window, interprets video attrib. escape codes
-
- End of descriptions.
-
-