One day Joe Gallagher (the former VAX SIG Chairman) and I were talking about the limitations of long strings and changing them in Datatrieve. I came up with the idea of creating a BASIC function that would use SMG for screen paints. My first function was very, very simple and only allowed the use of the arrow keys and the delete key. I sent this function off to Joe and he converted it to FORTRAN and went and added almost all the EDIT keys to it. Joe's function had a problem in that Datatrieve limits FORTRAN's trings to 1000 characters. So I then started to convert Joe's whole program back to BASIC then I tried something. I created a "stub" BASIC function that just calls Joe's FORTRAN function. Using BASIC I can pass any length string to Joe's FORTRAN function. What I should do is (a) translate all of Joe's function back to BASIC or (b) use the system calls for dynamic strings to allow Joe's function to use any length strings. The file EXTRACTED.CDD contains a test of the BABY_ED function. All the other stuff needed to implement the function are here also. You will need to relink Datatrieve to add this or any other function. In the file DTRBLDxxx.COM you will need to insert the following two lines: cluster=smgshr,,,sys$common:[syslib]smgshr.exe/shareable -----> cluster=basrtl,,,sys$common:[syslib]basrtl.exe/shareable -----> cluster=basrtl2,,,sys$common:[syslib]basrtl2.exe/shareable dtr$library:DTRLIB422.OLB- /library/include=(DDM,FMSV2FMI) - Bert Roseberry U.S. Coast Guard "The Oldest Continuous Seagoing Service"