12-Jun-86 DBSFOR - if open database with device=NL0 skip file open. This is useful when want to load a template that is to be used purely for TTY i/o and don't want or need database files. FEDMNG - modify external checker support code slightly to correct little bugs. 2-Jun-86 Modified MENU to support extra operators in outer most command decoder (ie before $@ operator). These are $C clear screen $P check password $[ enter option keyword and execute $P format is "$Pxxxxx" where XXXXX is series of characters that must match those entered from keyboard. $[ operator inputs a string from terminal. Searchs and resumes execution of menu file from after "$]xxxxx" where is series of characters entered from keyboard. 3-Feb-86 Added function 39 to DBSFOR to allow an external FIELD check routine to be linked to the forms entry module FEDMNG. (Both DBSFOR and FEDMNG were modified). The calling sequence is as follows EXTERNAL CHECKR ... CALL DBSFOR (39,1,CHECKR) ! enables checker CALL DBSFOR (16,?,?,?,?) ! edit template CALL DBSFOR (39,0,0) ! disable checker The effect if this is that the forms entry manager (FEDMNG) issues the following instruction after each field is editted CALL CHECKR (NAME,ICHR) where NAME is the field name ICHR is the terminating character The CHECKR routine can use NAME and DBSFOR(2) to examine the field contents. If they are exceptable simply return. If they are not, issue an error message and set ICHR to zero. Setting ICHR to zero causes FEDMNG to request input of the field data. 5-Apr-86 Change MENU to support alpha to numeric conversion for ISC terminal only and allow "." key to activate menu option - use for "EXTRA" options 27-Nov-85 Correct logic error in FNDFOR that caused crash when using small number of records. 15-Oct-85 Change CONIO so that user not requested to input terminal type if running under TSX-Plus and terminal type set to VT52, VT100, ADM3A or HAZELINE. Makes it easier to use CUSPs in stand alone mode. (Some command files will have to be changed to remove the nolonger required response.) Change V10IO, V52IO and ADMIO modules so that they now eat up the LF that follows each CR. Previously trailing LF would cause program run after DBSMNG to muck up. 23-Sep-85 Add in CALL DBSFOR(38). Operates identically to (37), but performs operation with LOCK enabled. Should be used to create a new record when have multiple (write) access possible. Note With (37) and (38) operations the user can get the "rn", "cn" etc for the newly created record by using (2) function. 5-Sep-85 Changes to DBSFOR and KEYGEN. Minor change to KEYGEN now causes DBSMNG to generate the same key value for upper and lower case characters in a ascii type key field. This means that if DBSEDT is used to locate a record with NAME=Jones both NAME=JONES and NAME=jones are valid matches. New DBSFOR functions added. These are CALL DBSFOR (33) performs DBSMNG unlock CALL DBSFOR (34) performs DBSMNG lock CALL DBSFOR (35,IREC) performs locked record write CALL DBSFOR (36,STR,LEN,IKEY) generates 16 bit key for ascii string CALL DBSFOR (37) creates a new record The DBSMNG locking mechanism is only supported under TSX-Plus. Under all other operating systems locking acts as a NOP. Locking under TSX-Plus uses the message channel facility. A token (ie a 1 byte message - contents irrelavent) must be sent to the DBSMNG message channel when the system is booted. This can be done by writing a small program as follows CALL DBSFOR (17) ! initialize interface CALL DBSFOR (33) ! create initial token END and envoking it in the bootup command file. The LOCK/UNLOCK operates by performing a read-wait and a write on the DBSMNG channel respectively. The CALL DBSFOR (35,IREC) instruction performs a read-wait on the DBSMNG channel. Once the program has the token it updates the database and then releases the token by sending a 1 byte message to the DBSMNG message channel. This ensures that only one program can do a DBSFOR (35,IREC) operation at any time. The CALL DBSFOR (36,STR,LEN,IKEY) instruction returns a 16 bit value in IKEY equivalent to the DBSMNG key value for the LEN character string passed in STR. The CALL DBSFOR (37) instruction locates the next free record in the database and outputs the current buffer contents to it. The 'rn', 'cn' etc special fields are setup by DBSFOR (37) for the user. 3-Jul-85 Trap IGTMEM error returned by FORTRAN ots in DBSFOR. Now abort if not enough memory to load template. 16-MAY-85 Change RPTFIO so that TSX-Plus doesn't crash if no output produced. This was really a TSX-Plus bug! Had to rebuild REPORT, DBSSTS and BUCKUT. Fix sizing bug in BACKUT. BACKUT previously failed to calculate the size of the backup file correctly. 29-May-85 Change FNDFOR so that can be called to reinitialize another input file. This is a KP special. 7-May-85 Correct bug in BCDSPT that causes REPORT to crash when BCD operation performed. 17-Apr-85 Added SELECT and BUCKUP commands to INSKEY program. The BACKUP command is the opposite of the NEXT command. It displays the previous match. The SELECT command is only enabled when the file INS:INSKEY.INX exists. Pressing S causes the [rn] of the record currently on the screen to be written to the file INS:INSKEY.INX in the same format as would be written by SELECT. This command can be used in place of SELECT to determine those records to be processed in a cusp chain. 13-Mar-85 DBSCPY Correct coding error so that date fields properly copied. FLDIO Correct coding error to increase Year date range from 15 to 31 years. 12-Feb-85 SELECT Add $= operator into $L command. Operator syntax is $=12 (where 1 and 2 represent characters), and results in all occurances of character 1 will be replaced by character 2. 4-FEB-85 ******** REPORT Added in SYSTEM variables, 0 argument for $BF operator and $= terminator for $< and $F operators. 1) A number of new variables are now supported. These variables hold system specific information and are represented by a ~ followed by a single uppercase character. The system variables are ~D date ~T time ~N user name ~P project number ~Q programmer number ~J job number ~L line number 2) The inclusion of a 0 argument in a $BF command (eg $BFA0^H) will result in any leading spaces being converted to zeros. 3) A $=12 terminator is now supported for the $F and $< operators. All occurances of character 1 will be replaced by character 2.