V0100 1-jan-1991 First release, it was a long time ago 031 1-apr-2003 Initial distributed release V0320 1-jun-2003 1. Added open/close/add/remove command in interactive mode 2. Fixed a bug in all_display modes when asking for record-offset. The previous version crashed the second time this procedure was called 3. Updated the display_all mode to make it more readable 4. Fixed a filesize error in display files. 5. Added support for user definable keys. See the help for more info V0321 1-jul-2003 1. Added support for logical symbols and & (and) and | (or) operator 2. Enhanced parsing of expressions 3. Fixed stackdump on help function in screen mode V0330 1-sep-2003 1. Added support for fields that contain links to other files 2. Enhanced parsing of expressions 3. Support for user textlibrary for description records. 4. New functions (%(B)LOC, F$(F)TYPE, F$(F)EXISTS, F$CHECKSUM 5. Support for while/endwhile in scripts Known problem: While it is possible to "GOTO" into or out of a while/endwhile structure, this is not supported , and will be disallowed in a next version. V0340 1-oct-2003 1. Added IF()THEN/ELSE/ENDIF, FOR K=BEG,END[,INTERVAL]/ENDFOR REPEAT/UNTIL CALL,SUBROUTINE,ENDSUBROUTINE LEAVE 2. Fixed GOTO problem 3. Added functions F$ENUMERATE F$GETDVI with some fields F$FILE to get file information about the open file. F$FIELD to get field information F$TRNLNM F$ENUMERATE to list all descriptor entries F$DATE F$RANDOM 4. Added parameters for @ and call 5. Added local symbols, see help in dix/help. 6. Added new symbol type "date" V0350 1-mar-2004 1. Added commands LOOP/TESTLOOP/ENDLOOP CYCLE ENTRY declaration statements (REAL/LOG/CHARACTER/DATE/INTEGER) 2. Added functions F$ENVIRONMENT F$FAO LOGICAL 3. Changed the maximum stringlength from 255 to 65535 4. Fixed some bugs in output handling 5. Added UNIX wildcard matches 6. Added define/key for interactive mode and startup Changed the keydefinitions for screen mode to define/skey 7. Added display of VFC data from the file mode, and include /display qualifier 8. Added strict mode for explicit declaration 9. Added screen-mode display in interactive mode (SMG) V0351 1-jun-2004 1. Added a show version command 2. Updated the show file /all command. 3. Added the oneline command to interactive mode 4. Restored the /MUTI_FILE functionality 5. Added function(s) F$INSV,F$EXTZV,F$EXTV 6. Fixed a bug when changing length of fields in screen mode Data was not correctly copied. 7. Fixed a bug when changing length of fields in interactive mode Record length was not adapted for idx/rel (not fixed) files. V0400 13-sep-2004 1. Added user defined types. See help about user defined types. This allowes the user to define his own datatypes. 2. Added function NOT, ODD, EVEN 3. Fixed bug in label accessibility. Sometimes lables could not be found, while they should have been found. 4. Fixed bug in interactive mode. When depositing text all text was uppercased. 5. Added /UPPERCASE and /LOWERCASE to descriptor entries 6. Added the reference to fields from non-current file/descriptions e.g. filetag\descriptiontag\fieldname 7. Added unsigned qualifier for examine in raw mode V0410 8-jul-2005 1. Added the /LIMIT qualifier to stop a repeat sequence 2. Added the POINTER statement to allow pointer in records See the help about pointer_syntax 3. Added support for IEEE reals. We now accept the real types REAL_F,REAL_G,REAL_D,REAL_H,REAL_S,REAL_T,REAL_X REAL*nn are accepted as aliases, with different policies for the different platforms (see the help). 4. Added the SET REAL FORMAT, and SET REAL SIZE command to allow the real symbols in any (supported) precision. 5. Changed the EXIT command to do the exit dependend on data. 6. Leave the text on screen after EXIT (screen mode). 7. Better support for VFC files. In screen mode the screen will display two displays (one for the data and one for the VFC data). 8. The /EQ,/LT,/LE,/GE,/GT,/RECORD are now position dependend So you can now open mulitple files, each with their own record specification. 9. Added the /locking qualifier . See the help 10. Major rewrite for the RMS library 11. Added /CSV in file mode, This allows you to generate a CSV (comma separated values) file for import to excell 12. Fixed a bug for the RBITS value. This conversion did not function correctly when you specified field=+value (addition of one bit). Since I no longer have access to an IA64 machine, I cannot compile the newer versions. I successfully compiled the 4.0 version to IA64, so it should be possible to build dix0410 and later on IA64, if you have the fortran compiler. V0411 13-sep-2005 1. Added set process/name= command and the F$environment("PRCNAM") V0412 28-oct-2005 1. Added f$add, f$sub, f$mul and F$divide 2. Added recall statement in the interactive mode V0420 16-nov-2005 1. Added contional statements #IF,#ELSE,#ELSEIF,#ENDIF in descriptions 2. Fixed a bug in delete/symbol 3. Allow symbols to start with an _ 4. Added #MESSAGE in descriptions 6. Enhanced the find options (record search) 7. Added the set file/[no]modify in interactive mode 8. Added the /relative qualifier for the position in the descriptions I have access to an IA64 machine now, so the kit now again includes the IA64 objects and binaries V0421 1-jan-2006 1. Added the %Recordnumber() function 2. Fixed a bug in the create record when no description available 3. Fixed a bug in the control code for exit with modified data 4. Added show release_notes command V0430 21-jan-2006 1. Greatly enhanced the record search. You can now search in (fields of) multiple records with a lot of compare options. See the help about record_seaches. 2. In the interactive mode , the FIND and SEARCH commands have be changed. THe FIND now searches data in the record, the SEARCH records in the file. 3. Added the SHOW SEARCH, SET SEARCH and the EDIT SEARCH commands. 4. Added the set integer size 8 on alpha and ia64 (sorry not on vax) This allows symbols with 64 bit integers and all operations on them. Fields with 64 bit integers have always been supported. 5. Enhanced the CSV in dump/file. 6. Included a DUMP command in interactive mode (including a CSV qualifiers) 7. There was a problem with the make-file. The procedure used an undefined symbol SAY. This problem is solved. 8. There was a link problem with older (pre 7.3 Alpha) versions of VMS. DIX used the routines OTS$CVT_T_S (concert text to bin for REAL*4 IEEE) and OTS$CVT_T_T (convert text to bin for REAL*8(IEEE). I replaced these routines, and this problem should no longer occur. V0500 1-may-2006 1. Enhanced the wrap. Sometimes DIX would wrap output lines when not necessary. 2. Enhanced qualifiers for the DUMP command. 3. Changed the record header for dump/file to a one line display containing recordlength,recordnumber,vfc_record size and RFA. The output to symbols is still separated. 4. Fixed some integer*8 problems 5. Added the FILECOUNT() function. 6. Enhanced the values for /FIELD and /SELECT to optionally include a filenamemask and descriptionmask 7. Changed the name of the BINASC key (TAB) to NEXT_WINDOW. 8. Fixed a small problem with the /next_record search qualifier. 9. Added the /FORMAT qualifier and the SET/SHOW format command, to allow the display of unprintable data in character strings. 10. Fixed a bug in the raw screen display with scrolling. If the data contained more than one screen, the display went wrong. 11. Inluded the MOUSE-usage on a decwindows-terminal, and menu_key in screenmode. 12. Included the context for a key definition. This allow you to define keys with different meaning in different screens. 13. Added funtions BTEST, IBSET and IBCLR (bit manipulation) 14. There was a problem with hex input for character fields, that has been solved 15. Fixed some (non-)alignment problems on VAX 16. Fixed the (signed) display of bytes and words. They were converted as unsigned data 17. Included the DEMO mode 18. Added the RFA of the current record to the header in screen mode (thanks to Hein) 19. Fixed an error when doing screen_print and leaving the filename empty. 20. Added binary and octal display in all modes 21. Added support for previous record for an indexed and a relative file 22. Changed the key PF1-H to PF4-H and v.v. 23. Changed the search order for .des files, first currentdir, then filedir then userlib and finally systemlib 24. Added fieldnames for dates (none, expired etc). If you have your own descriptions with date types, make sure you add the [0=none] to the description line 25. Added new datatype deltatime 26. Added symbol substitution for verbs. 27. Added the f$mode and the f$radix function 28. Added the decimal symbol type and the [u]decimal datatype. 29. The set strict command is now per level. Each @file can set its own. 30. Added the f$verify function. 31. Removed the "onelinecommand" from interactive mode, but added a /command=("command1","command2",..) qualifier. v0510 8-jun-2006 1. Added the #IFDEF function for conditional expansion of descriptions 2. Fixed a problem with "fixed" symbols. If you explicitly declare a symbol with a type, DIX did not always forbid you to change the type. 3. Added the /FAST qualifier for the search commands. If you use this qualifier, DIX will bypass RMS, and it may be faster. See the help dix/help record_search/fast 4. Allow /record on indexed files, together with the /key, you now can read record "n" on key "key" 5. Allow search selection on record_length with lt,le,eq,ge,gt and range. 6. Included a /rfa= qualifier to select a specific record. the previous /rfa qualifier is replaced with the /mark. See the help V9999 Known restrictions. 1. When using GOSUB, the RETURN statement must be at the same syntax level as the entry point. This is NOT checked, and violation will result in strange behaviour. This problem does not exist with the CALL statement. Example IF (exp) THEN Statement WHILE (expr) Statement GOSUB test ENDWHILE test: - Statement | ENDIF | Gosub/return block runs into an endif statement | Not supported RETURN - IF (exp) THEN Statement WHILE (expr) Statement GOSUB test ENDWHILE goto lab1 Do not runinto, since RETURN will be unexpected test: - statement | Gosub/return block at the same syntax level Statement | This is supported RETURN _ lab1: ENDIF 2. For the not-native real values a.REAL_S, REAL_T and REAL_H on VAX b.REAL_H on Alpha/IA64 c.REAL_F, REAL_G and REAL_D on IA64 Conversions are done via tranformations to the other equivalent types a. REAL_S via REAL_F, REAL_T via REAL_G, REAL_X via REAL_H on VAX b. REAL_H via REAL_X on Alpha/IA64 c. REAL_F via REAL_S, REAL_G and REAL_D via REAL_X on IA64 Since not all types have exactly the same range, some data will convert to overflow on one platform, and not on the other. This will only happen on data near the edge of the range, and should not make a difference for normal values.