**************************************************************** * * * U n i S c r e e n * * * **************************************************************** Release 1.0 (C) 1989 J. Ebnet Software D - 8000 Munich, Passauer Strae 2, Tel. 089/7604179 (Western Germany) 1. Shareware ------------ This package contains release 1.0 of the utility UniScreen. All Rights are reserved. This software is being distributed as shareware. The release you have is free to use and to copy. Disclaimer of warranty. This software is provided without any express or implied war- ranties whatsoover. Becaus of the diversity of contitions and hardware under which this software may be used, no warranty for a particular purpose is offered. You are advised to test this software utility thoroughly before relying on it. The user must assume the entire risk of using this software. If you agree with the software tool UniScreen you should become a registered user for a charges of $ 49.--. If you do it you will get the following performances - the right to use UniScreen - an actual release of UniScreen (3 discs) with the following extension . formats without copyright note in line 24 . all the memory models for all C and ASM compilers . a lot of application examples in a source code format and in a file format for all supported compiler and interpreter - user support - update service for the following releases for a charges of only $ 15.--. - an extensive user manual Just when there are fair users it will be possible to do a further development of UniScreen. You have the chance to test the software tool UniScreen. If you will use it in future you are expected to become an registered user. A registration form you can find in the file REGIST.FOR. You can get it by the DOS command PRINT. The release you have isn't a cripple ware. You can use the comple- te functions of UniScreen. The documentation HELP.TXT (this file) is only a short extract of the user guide you get when you will be registered. In the sahreware release you have, there is a copyright node at line 24 of all screen formats. Further for all the C an ASM compilers there is only an interface for the memory model SMALL. 2. UniScreen - UniForm ---------------------- UniScreen (universal screen management system) in the following is called UniForm (Universel Formatting System). 3. Why UniForm ---------------- Its all the same. A comfortable user surface is absolutely necessary today. User programs as well as system programs needs as well with a monochrome display as a color monitor a good layout to get a professional image. But - to program windows, menus and so on is relatively difficult and takes a lot of time. Moreover such routines schould be implemented in a quick assembler coding. Indeed - a lot of reasons to integrate the screen layout into the program by a conform help. However, it is not so easy to find a conform tool. The software industry offers you at least some dozen special tool boxes for every compiler. Often the tool is hardly to handle, the function extent is not sufficent, the user guide is bad or there are other reasons to be unsatisfied. And you can be shure that you can use th tool just in one program language, sometimes just for one compiler or interpreter. UniForm as an universal formatting system will help you in the future. The implemantation of a professional screen layout into your program will take at best a moment of time. ALL the important compiler and interpreter are supported by UniForm. All the formats you have created you can use in all the compiler and interpreter languages BY A NORMED INTERFACE. UniForm supports in release 1.0: - MS C - MS Quick C - Turbo C - Lattice C - MS Pascal - Turbo Pascal - MS Basic Compiler - IBM Basic Compiler - MS Basic Interpreter - GW Basic - Basica - Turbo Basic - MS Quick Basic - MS Cobol - MF Level II Cobol - MF Personal Cobol - MF Professional Cobol - MS Fortran - MS Assembler - Turbo Assembler - Turbo Prolog - Clipper - dBASE III Plus UniForm is a complete solution for a screen management system an offers you the following highlights - interactive format generation - windows, menus, popups, pulldowns ... - alphanumeric numeric and selectable fields - variable field and text attributes - format application in all important program languages - format application with one subroutine call - mouse and printer support - monochrome and color display - format managemant options You can find a short demonstration on your disc. Please start it with DEMO (The format files on the disc (*.BLD) have to be in the same directory). 4. How to use UniForm ---------------------- You create the format(s) with UNIFORM.EXE in an interactive mode and define - the format name - the format size - the compiler or interpreter you want to work with - the directory for format files and directory files - the format layout with (without) variable fields - the field names and attributes for fields, text and frame You include into the source code - the standard include file - the variables definition file(s) - the subroutine call with parameters. You compile the source code (Not with an interpreter). You link the program with the appropriate interface module. You put the format file(s) into the run directory an call the program. In future in all your programs there will be a professional screen layout. A professional one like in the following exaple. exmple for screen layout ͻ compile program EXAMPLE ͻ 1 Datum 10 01 89 2ͻ questĺ files points 12ͻ field cataloge 4 I n f o !!!!!!! ĺ ͹ĺ ͹ͼ severe errors 22 ͻ 123 mber errors 1 000 warnings 0 ͼ ERRORS !!! ͼ ͼ 5. A simple example ------------------- Mr. Adam plans to administrate his goods received in a little data base. Mr. Adam visited a short training in the basic program language an intends to implement the program with the turbo basic compiler. As a proud owner of the universal formatting system UniForm Mr. Adam tries to integrate a screen format into the user program. Mr. Adam takes the following methodology: Format generation After invoking UNIFORM.EXE Mr. Adam comes into the main menu. He takes function key F8 an comes to the menu "options". Ther he defines - directory c:\adam - field spezification for input field alphanumeric ! - field spezification for input field numeric  - field spezification for output field alphanumeric $ - field spezification for output field numeric % - field spezification for selectable field & - program language Turbo Basic - text attributes white on blue - frame attributes red on blue After saving the options with F1 he returns to main menu by function key F8. The format name and format size he defines with PURCHASE, line 3 to 18 and column 5 to 70. After F1 Mr. Adam comes to menu "screen layout". There is an empty screen with the choosen attributes for text and frame. He forms the screen layout with the key input and key funktions like making vertical or horizontal lines, delete lines or columns or put on/off the frame around the picture. The variable fields he defines by the field spezifications. Because Mr. Adam is not an experienced operator of UniForm sometimes he takes function key F9 to see the functional overview. Finally Mr. Adam saves the screen layout with F1 and comes into menu "field names/ attributes". Here Mr. Adam can modify the automatically defined field names and attributes of the variable fields. The first field gets the field name "product" and the att- ributes green on reed. He saves field specific with F2. The remai- ning variable fields get the field names "date", "supplier", "quan- tity" and "price" and the color attributes white on red. After a check (F3 and F4) Mr. Adam is satisfied. He saves the screen format with function key F1. Mr. Adam comes into "main menu". Now he can define new formats or one of the format managemant functions like show formats, change formats, print formats, copy formats or look for a table of contents. Mr. Adam omits for further functions and finishes the dialog with the UniForm format generator. In the defines directory he can find the generated format file (PURCHASE.BLD) and the variables definition file (PURCHASE.INC) in the syntax of turbo basic. Format application Mr. Adam edits the program source with the turbo basic editor and is surprised because of just a view lines of code in the user program ... $INCLUDE "ufba03.inc" Std-Include for turbo basic $INCLUDE "purchase.inc" Variables definition file FKZ% = 1 Output a new format FMT$ = "PURCHASE " format name WHILE RET% <> 110 Program end when F10 CALL UNIF (FKZ%, FMT$, PRODUCT$, RET%) FKZ% = 3 Output just new variable fields CALL DB-PROCESSING WEND END Following he compiles the program with the include files UFBA03.INC and PURCHASE.INC. Program call Mr. Adam calls the program PURCHASE.EXE. The format file PURCHASE.BLD have to be copied into the run directory before. Layout for the program purchase ͻ P U R C H A S E ĺ product name PC TYP 123456-789 input date 10 02 89 supply number BST-3443344443 quantity 2 price 9123 38 ENTER SAVE ESC REJECT F10 PROGRAM END ͼ The first time Mr. Adam made a program within a screen format! 6. Installation --------------- System requirements IBM personal computer oder 100 % compatible 2 disc drives or 1 disc drive and hard disc MS-DOS or PC-DOS release 2.1 und higher UniForm supports all the screen modes and all usually printers. Disc contents UFPA01.OBJ interfacemodule for MS Pascal UFPA02.OBJ interfacemodule for Turbo Pascal UFFO01.OBJ interfacemodule for MS Fortran UFBA01.OBJ interfacemodule for MS Basic Compiler/ IBM Basic Compiler UFBA02.COM interfaceprogram for MS Basic Interpreter/ GW Basic/ Basica UFBA03.COM interfaceprogram for Turbo Basic UFBA04.COM interfaceprogram for MS Quick Basic UFCO01.OBJ interfacemodule for MS Cobol UFCO02.BIN interfaceprogram for MF LevelII Cobol/ Personal Cobol/ Professional Cobol UFAS01S.OBJ interfacemodule for MS Assembler/ Turbo Assembler - Small UFC01S.OBJ interfacemodule for MS C/ MS Quick C - Small UFC02S.OBJ interfacemodule for Turbo C - Small UFC03S.OBJ interfacemodule for Lattice C - Small UFPR01.OBJ interfacemodule for Turbo Prolog UFCL01.OBJ interfacemodule for Clipper UFDB01.BIN interfacemodule for dBASE UNIFORM.EXE formatgenerierungsprogram UNIFORM.CFG Konfigurationsdatei _UFC01.H standard Include for MS C/ MS Quick C _UFC02.H standard Include for Turbo C _UFC03.H standard Include for Lattice C UFPA01.INC standard Include for MS Pascal UFPA02.INC standard Include for Turbo Pascal UFBA01.INC standard include for MS Basic Compiler/ IBM Basic Compiler UFBA02.INC standard Include for MS Basic Interpreter/ GW Basic/ Basica UFBA03.INC standard Include for Turbo Basic UFBA04.INC standard Include for MS Quick Basic UFCO01.CPY standard Include for MS Cobol UFCO02.CBL standard Include for MF Level II Cobol/ Personal Cobol/ Professional Cobol UFFO01.INC standard Include for MS Fortran UFAS01.MAC standard Include for MS Assembler/ Turbo Assembler UFCL01.MAC standard Include for Clipper UFDB01.MAC standard Include for DBASE III Plus FM01AR.BLD format file FM01BS.BLD format file FM01DR.BLD format file FM01LI.BLD format file FM01EN.BLD format file DEMO.EXE program example HELP:TXT this filei REGIST.FOR registration form You can invoke the UniForm format generator from any directory of hard disc or floppy disc. We recommend to install the directory uniform (MD uniform). Copy the file UNIFORM.EXE and UNIFORM.CFG into that directory. The interface modules, programes and standard include files you copy into the compiler or interpreter directory. 5. Format generation -------------------- The format generation in UniForm runs in an interactive mode. In every processing step there is a functional overview you can see by function key F9. Run mode Invoke format generator Adapt options Define format name and format size Edit format layout Define field names and attributes for variables Optional take format management functions Invoke format generator UniForm always is to call from the installation directory. The confi- guration file UNIFORM.CFG has to be in the same directory. call: CD \installation directory uniform Adapt options With function key F8 you come from "main menu" to menu "options". In that processing step you modify the actual definitions and save them with F1. With F8 you return to "main menu". The configuration file UNIFORM.CFG will be updated with your change order. Options: Format directory Field spezification for alphanumeric input fields Field spezification for numeric input fields Field spezification for alphanumeric ounput fields Field spezification for numeric ounput fields Field spezification for selectable fields Program language for variables definition Text attributes Frame attributes Define format name and format size In the main menu you define the format name and save it with F1. If the format name is syntactical ok you have to define the format size. Save it with F1, too. Edit format layout In menu "edit layout" you form the layout of the format, inside the defined borders. The variable fields you define with the appropriate field spezifications. Define field names and attributes In menu "field names/ attributes" you modify the field names and attributes of the defined variables. If there is an empty format (no variable field) this program step is not necessary. Format management Besides the function "new format" (F1) in the main menu there are some more functions for format management. Take them whenever you want to. Format change Format show Format print Format copy Format delete Show contents Functional Overview Look in the interactive mode (F9) or in the user guide. 8. Format application --------------------- The display of a screen format you have created with UniForm is realized in just one subroutine call. The subroutine is written in a quick assembler coding. As a result the run time is extremely short. All the functions which are necessary for a complete formatting system are implemented in this subroutine. It is output formatting, display output, cursor adressing, mouse adressing, input formatting and the return of a code which informs about the pressed function key. Run mode - program source include standard include file include variables definition file supply parameters call assembler subroutine analyse return code - Compile the source (not with an interpreter) - Link the program with the appropriate interface module - Copy the format file(s) into the run directory - Call the program Standard include There is a standard include file for every compiler or interpreter. It contains of the definition of the subroutine parameters of the subroutine (if it is necessary). Variables definition The variables definition file contains the definitions of all varia- ble fields of a format in syntax of the appropriate compiler or inter- preter. UniForm creates this file whenever you define a format with the format generator (when there is at least on variable field). Parameters for subroutine Before you call the subroutine you have to supply the parameters in the following order. function identifier FKZ format name FMT field name 1. variable field return feld RET function identifier FKZ 2 byte binary field 0 Save the actual screen 1 Clear screen and display output of a new format 2 Display output of a new format (no clear screen) 3 Display output of the same format (just an update of the variable fields) 4 Display output of a new empty format (no clear screen) 5 Display output of a saved screen 11 Print output of a new format at LPT1 12 Print output of a new format at LPT2 13 Print output of a new format at LPT3 14 Print output of a new format at COM1 15 Print output of a new format at COM2 Formatname FMT 8 byte character field Lowercase and/or uppercase letters and valid special characters (see DOS conventions for file names), right justied paded by space. Field name of the first variable field If you take function 0, 4 or 5 you can take any variable field. Return field RET 2 byte binary field Shows you the pushed botton selection or an error information. Call subroutine You have to call the subroutine in the syntax of the compiler or interpreter you use. Analyse return field In the parameter RET there is the pushed botton selection after calling the subroutine. If there was an error there will be an error number. Botton key F1 101 ALT 1 141 F2 102 ALT 2 142 F3 103 ALT 3 143 F4 104 ALT 4 144 F5 105 ALT 5 145 F6 106 ALT 6 146 F7 107 ALT 7 147 F8 108 ALT 8 148 F9 109 ALT 9 149 F10 110 ALT 0 150 SHIFT F1 111 ALT A 151 SHIFT F2 112 ALT B 152 SHIFT F3 113 ALT C 153 SHIFT F4 114 ALT D 154 SHIFT F5 115 ALT E 155 SHIFT F6 116 ALT F 156 SHIFT F7 117 ALT G 157 SHIFT F8 118 ALT H 158 SHIFT F9 119 ALT I 159 SHIFT F10 120 ALT J 160 CTRL F1 121 ALT K 161 CTRL F3 123 ALT L 162 CTRL F4 124 ALT M 163 CTRL F5 125 ALT N 164 CTRL F6 126 ALT O 165 CTRL F7 127 ALT P 166 CTRL F8 128 ALT Q 167 CTRL F9 129 ALT R 168 CTRL F10 130 ALT S 169 ALT F1 131 ALT T 170 ALT F2 132 ALT U 171 ALT F3 133 ALT V 172 ALT F4 134 ALT W 173 ALT F5 135 ALT X 174 ALT F6 136 ALT Y 175 ALT F7 137 ALT Z 176 ALT F8 138 CTRL P-Scr 177 ALT F9 139 ENTER 100 ALT F10 140 ESC 99 If there was pressed ESC (99) all the modifications will be rejected. If there was a key input at a selectable field (cursor position on a selectable field) there will be the return number n+200 (n = number of the unprotected variable field of the actual format). Error return 1 wrong format name 2 format file not accessable 3 error in output formatting 4 wrong function identifier 6 printer not ready 7 transmission error to printer 8 paper end 9 printer busy 9. Run compiler and interpreterspezific --------------------------------------- Run in MS C/ MS Quick C ----------------------- Standard include (#include "_UFC01.H") int FKZ; int RET = 0; char FMT[] = " "; void UNIF(); Variables definition(s) (#include "format.H") STRUCT format { Alphanumeric unsigned char field[n]; max. 80 characters Integer long field; max. 9 characters Decimal number float field; max. 8 characters Decimal number double field; max. 17 characters END } format; Call subroutine UNIF(&FKZ,&FMT,&1.field,&RET); Compile like before Link within UFC01S.OBJ - small within UFC01M.OBJ - medium within UFC01C.OBJ - compact within UFC01L.OBJ - large within UFC01H.OBJ - huge Note The variables you have to define global. Model huge is not supported in MS Quick C. Structure compression is not allowed (compiler directive /Zp). Run in Turbo C -------------- Standard include (#include "_UFC02.H") int FKZ; int RET = 0; char FMT[] = " "; void UNIF(); Variables definition(s) (#include "format.H") STRUCT format { Alphanumeric unsigned char field[n]; max. 80 Characters Integer long field; max. 9 Characters Decimal number float field; max. 8 Characters Decimal number double field; max. 17 Characters END } format; Call subroutine UNIF(&FKZ,&FMT,&1.field,&RET); Compile like before Link within UFC02T.OBJ - tiny within UFC02S.OBJ - small within UFC02M.OBJ - medium within UFC02C.OBJ - compact within UFC02L.OBJ - large within UFC02H.OBJ - huge Note The variables you have to define global. Run in Lattice C ---------------- Standard include (#include "_UFC03.H") int FKZ; int RET = 0; char FMT[] = " "; void _UNIF(); Variables definition(s) (#include "format.H") STRUCT format { Alphanumeric unsigned char field[n]; max. 80 Characters Integer long field; max. 9 Characters Decimal number float field; max. 8 Characters Decimal number float field; max. 17 Characters END } format; Call subroutine _UNIF(&FKZ,&FMT,&1.field,&RET); Compile like before Link within UFC03C.OBJ - tiny within UFC03S.OBJ - small within UFC03P.OBJ - medium within UFC03D.OBJ - compact within UFC03L.OBJ - large Note The variables you have to define global. Run in MS Pascal ---------------- Standard include ({$INCLUDE:'UFPA01.INC'}) FKZ : integer; RET : integer; FMT : string(8); PROCEDURE UNIF ( VAR identifier : integer; VAR format: string; VAR fieldname: integer; VAR returncode : integer ); external ; Variables definition(s) ({$INCLUDE:'format.INC'}) format = RECORD INIT : integer; Alphanumeric field : STRING(n); max. 80 Characters Integer field : integer4; max. 9 Characters Decimal number field : real; max. 8 Characters Decimal number field : real8; max. 17 Characters END; Call subroutine UNIF (FKZ,FMT,1.field,RET); Compile like before Link within UFPA01.OBJ Note The variables you have to define global. You have to define the variables and the procedure definition separa- tely (instructions in UFPA01.INC) if there are more PROCEDURE state- ments in your program. Run in Turbo Pascal ------------------- Standard include ({$I UFPA02.INC}) FKZ : integer; RET : integer; FMT : format; {$L UFPA02.OBJ} PROCEDURE UNIF ( VAR identifier : integer; VAR formatname: format; VAR fieldname: integer; VAR returncode : integer ); external ; Variables definition(s) ({$I format.INC} {$I format.INI}) format = RECORD INIT : integer; Alphanumeric field : array [1..n] OF char; max. 80 Characters Integer field : longint; max. 9 Characters Decimal number field : real; max. 8 Characters Decimal number field : double; max. 17 Characters END; Call subroutine ini_format; UNIF (FKZ,FMT,F_format.INIT,RET); Compile /$F+ (make a far pointer) Link within UFPA02.OBJ Note Definition in TYPE-declaration: format = array [1..8] of char; Format.INI initializes all the variables (zero or space). It have to be the last include statement in VAR (variables definition). There have to be one call at the beginning of the processing part (ini_format;). You have to define the variables and the procedure definition separa- tely (instructions in UFPA02.INC) if there are more PROCEDURE state- ments in your program. The name for the structure generally is F_format. The variables you have to define global. Release 4 and 5 is supported. Run in MS Basic Compiler/ IBM Basic Compiler -------------------------------------------- Standard include (UFBA01.INC (Editor) 21 A%=10: N%=1: E%=&HFFFF 22 FMT$=" ": FKZ%=1: RET%=0 23 CALL UNIF(A%,A%,A%,A%): A%=0 Variables definition(s) (format.INC (mit Editor)) Alphanumeric field$= " " max. 80 Characters Integer field%= 0 max. 4 Characters Decimal number field!= 0.0 max. 8 Characters Decimal number field#= 0.0 max. 17 Characters Call subroutine CALL UNIF(FKZ%,FMT$,1.field,RET%) Compile like before Link within UFBA01.OBJ Note You have to adapt the row numbers of the variables definition. Run in MS Basic interpreter/ Basica/ GW Basic --------------------------------------------- Standard include (UFBA02.INC (Editor)) 21 DEF SEG=0: CS1=PEEK(&H19A)+PEEK(&H19B)*256 22 UNIF=PEEK(&H198)+PEEK(&H199)*256: UNIF=UNIF+256 23 DEF SEG: A%=10: N%=1: E%=&HFFFF 24 FMT$=" ": FKZ%=1: RET%=0 25 DEF SEG=CS1: CALL UNIF(A%,A%,A%,A%): A%=0 Variables definition(s) (format.INC (mit Editor)) Alphanumeric field$= " " max. 80 Characters Integer field%= 0 max. 4 Characters Decimal number field!= 0.0 max. 8 Characters Decimal number field#= 0.0 max. 17 Characters Call subroutine DEF SEG = CS1 CALL UNIF(FKZ%,FMT$,1.field,RET%) Compile - Link - Note Copy the subroutine program UFBA02.COM with the file name UNIF.COM into the run directory and start it (call unif). You have to adapt the row numbers of the variables definition. Run in MS Quick Basic --------------------- Standard include (REM $INCLUDE: 'UFBA04.INC') A%=10: N%=1: E%=&HFFFF FMT$=" ": FKZ%=1: RET%=0 CALLS UNIF(A%,A%,A%,A%): A%=0 Variables definition(s) (REM $INCLUDE: 'format.INC') Alphanumeric field$= " " max. 80 Characters Integer field&= 0 max. 9 Characters Decimal number field!= 0.0 max. 8 Characters Decimal number field#= 0.0 max. 17 Characters Call subroutine CALLS UNIF(FKZ%,FMT$,1.field,RET%) Compile like before Link within UFBA04.OBJ Note Release 4 and 4.5 and MS Basic V6 is supported. The variables you have to define global. Run in Turbo Basic ------------------- Standard include ($INCLUDE "UFBA03.INC") SUB UNIF INLINE $INLINE "ufba03.com" END SUB A%=10: N%=1: E%=&HFFFF FMT$=" ": FKZ%=1: RET%=0 CALL UNIF(A%,A%,A%,A%): A%=0 Variables definition(s) ($INCLUDE "format.INC") Alphanumeric field$= " " max. 80 Characters Integer field&= 0 max. 9 Characters Decimal number field!= 0.0 max. 8 Characters Decimal number field#= 0.0 max. 17 Characters Call subroutine CALL UNIF(FKZ%,FMT$,1.field,RET%) Compile/ Link within UFBA03.COM Note The variables you have to define global. Run in MS Cobol ---------------- Standard include (COPY UFCO01.CPY) 77 FKZ PIC S9(5) COMP-0 VALUE 0. 77 FMT PIC X(8) VALUE ALL SPACE. 77 RET PIC S9(5) COMP-0. Variables definition(s) (COPY format.CPY) Alphanumeric 77 field PIC X(n). (max. 80 Characters) 77 r-field redefines field PIC X(1) OCCURS n. Integer 77 field PIC S9(n) VALUE 0. (max. 9 Characters) Decimal number 77 field PIC S9(n)V9(n) VALUE 0.0. (max. 17 Characters) Call subroutine CALL "UNIF" USING FKZ FMT 1.field RET. Compile like before Link within UFCO01.OBJ Note Depending from the compiler release you have to link UFCO01.OBJ into the run time system or into the program. For more information see your program user guide. Run in MF Level II, Personal, Professional Cobol ------------------------------------------------ Standard include (COPY UFCO02) 77 FKZ PIC 9(4) COMP VALUE 0. 77 FMT PIC X(8) VALUE ALL SPACE. 77 RET PIC 9(4) COMP. Variables definition(s) (COPY format) Alphanumeric 77 field PIC X(n). (max. 80 Characters) 77 r-field redefines field PIC X(1) OCCURS n. Integer 77 field PIC S9(n) VALUE 0. (max. 9 Characters) Decimal number 77 field PIC S9(n)V9(n) VALUE 0.0. (max. 17 Characters) Call subroutine CALL "UNIF.BIN" USING FKZ FMT 1.field RET. Compile like before Link within UFCO02.BIN Note In Level II Cobol the include file names have to be without suffix, in Professional Cobol and Personal Cobol with Suffix CBL. Copy UFCO02.BIN with the file name UNIF.BIN into the run directory. Run in MS Fortran ----------------- Standard include ($INCLUDE : 'UFFO01.INC') INTEGER FKZ CHARACTER FMT*8 INTEGER RET EXTERNAL UNIF Variables definition(s) ($INCLUDE : 'format.INC' $INCLUDE : 'format.INI') Alphanumeric CHARACTER field*n max. 80 Characters Integer INTEGER field max. 9 Characters Decimal number REAL field max. 8 Characters Decimal number DOUBLE PRECISION field max. 17 Characters Call subroutine UNIF(FKZ,FMT,1.field,RET) Compile like before Link within UFFO01.OBJ Note Format.INI initializes all the variables of the format(s) (zero or space) and reserves the memory space. The variables you have to define global. Run in MS Assembler/ Turbo Assembler ------------------------------------ Standard include (INCLUDE UFAS01.MAC) FKZ DW (?) FMT DB 8 DUP (?) RET DW (0) Variables definition(s) (INCLUDE format.MAC) Alphanumeric DB n DUP (020H) max. 80 Characters Integer DD (?) max. 9 Characters Decimal number DD (?) max. 8 Characters Decimal number DQ (?) max. 17 Characters Call subroutine PUSH Offset FKZ - tiny, small, medium PUSH Offset FNAME PUSH Offset 1.field PUSH Offset RET CALL UNIF PUSH Segment FKZ - compact, large huge PUSH Offset FKZ PUSH Segment FNAME PUSH Offset FNAME PUSH Segment 1.field PUSH Offset 1.field PUSH Segment RET PUSH Offset RET CALL UNIF Compile like before Link within UFAS01T.OBJ - tiny within UFAS01S.OBJ - small within UFAS01M.OBJ - medium within UFAS01C.OBJ - compact within UFAS01L.OBJ - large within UFAS01H.OBJ - huge Note In the little models the subroutine parameters are expected in DS. In models with 1 data segment : EXTRN UNIF:NEAR In models with more data segments : EXTRN UNIF:FAR Run in Turbo Prolog ------------------- Standard include - Variables definition(s) (INCLUDE "format.DOM") format = format(symbol/integer/real...) Alphanumeric symbol max. 80 Characters Integer integer max. 4 Characters Decimal number real max. 17 Characters Call subroutine UNIFx(Fkz,Fmt,format(Field0,Field1,...),Ret), UNIFL(Fkz,Fmt,Fmt,Ret), Compile Compile to OBJ Link within UFPR01.OBJ Note format.DOM defines the field structure (DOMAINS). format.PRE defines the global subroutines (GLOBAL PREDICATES). format.UPR defines the subroutine call (CLAUSES). In the include files format.PRE and format.UPR you have to number "UNIFx" (start with 0 for x by step 1). Empty formats will be defined with (UNIFL(Fkz,Fmt,Fmt,Ret) - (i,i,i,o) language asm) and called with (UNIFL(Fkz, Fmt, Fmt, RET). The format variables have to be bound. Run in Clipper -------------- Standard include ((editor) 'UFCL01.INC') FKZ = "0" FMT = " " RET = "0" Variables definition(s) ((editor) 'format.INC' (editor) 'format.INI') Alphanumeric field = " " max. 80 Characters Integer field = 0.0 max. 16 Characters Decimal number field = 0.0 max. 17 Characters Call subroutine FKZ = "n" DO formatI Compile like before Link within UFCL01.OBJ (PLINK86 or LINK or TLINK) Note format.INI includes the subroutine call. Move it into the procedure file. FKZ and RET are character fields (example: FKZ = chr(48) to chr(65) for FKZ =1 to 15 or or RET =chr(100) for RET = 100). Do not change the length of format variables. If you have function key 0 or 5 you can call the subroutine by any file format.ini. Run in dBASE ------------ Standard include ((editor) 'UFDB01.INC') LOAD UNIF FKZ = "0" FMT = " " RET = "0" Variables definition(s) ((editor) 'format.INC' (editor) 'format.INI') Alphanumeric field = " " max. 80 characters Integer field = 0.0 max. 16 characters Decimal number field = 0.0 max. 17 characters Call subroutine FKZ = "n" DO formatI Compile - Link - Note Copy UFDB01.BIN with the file name UNIF.BIN into the run directory. The file format.INI includes the subroutine call. Move it into the system procedure file. You have to define the system proce- dure file (SET PROCEDURE = filename). FKZ and RET are character fields (example: FKZ = chr(48) to chr(65) for FKZ =1 to 15 or or RET =chr(100) for RET = 100). Do not change the length of format variables. If you have function key 0 or 5 you can call the subroutine by any file format.ini. Release dBASE III Plus is supported. 9. Mouse and cursor adressing ----------------------------- Cursor adressing There is the following seeting in format generation and format application - left arrow key Cursor left - right arrow key Cursor right - down arrow key Cursor down - up arrow key Cursor up - Home Cursor to field beginning - End Cursor to field end - Page Down Cursor to next field - Page Up Cursor to previous field - Back Slash Delete character and cursor left - Del Delete character - Ins (Modus) Insert character Mouse adressing - mouse key left Cursor to mouse pointer - mouse key right Cursor to mouse pointer and return ENTER (RET = 100) 10. Trade mark -------------- Microsoft, MS DOS, MS C, MS Quick C, MS Pascal, MS Cobol, MS Fortran, MS Makro Assembler, MS Basic, MS Quick Basic, Basic 86 and GW Basic are trade marks of Microsoft Coorporation. Turbo C, Turbo Pascal, Turbo Basic Turbo Prolog and Turbo Assembler are trade marks of Borland International, Inc. IBM, PC DOS, IBM Basic and Basica are trade marks of Business Machines Coorporation. Lattice C is a trade mark of Lattice, Inc. Level II Cobol, Personal Cobol and Professional Cobol are trade marks of Micro Focus Ltd. dBASE III PLUS is a trade mark of Asthon-Tate. Clipper is a trade mark of Nantucket Corp. To J. Ebnet Software D 8000 Mnchen Passauer Strae 2 Western Germany REGISTRATION PURCCHASE ORDER - Software utility UniScreen ------------------------------------------------------------- Please send me (us) the software utility UniScreen for a charge of $ 49.--. I take the folowing payment: ( ) cheque payment ( ) transfer to the following bank account: Raiffeisenbank Mnchen EG West Germany bank number 70160300 account number 414522 ( ) cash on deliver ( ) in Western Germany $ 3.-- ( ) from abroad $ 5.-- disc format: ( ) 5.25 inch disks ( ) 3.5 inch disks $ 5.-- For a registrated user you will get an information of a new program release automatically. You can order it in an update service for the special price of $ 15.--. User support is possible for registrated users exclusively. Sender: Date/signature: .............................