Right, i've got my program working and it does what its supposed to do. You will see in the code that i have several Macros and i think there is something wrong in the 'UpToLow' Macro, so just look for that label. I cant figure it out... basically what the program should do is read in a string such as a name and it must be in mixed case, so for example JoHn. The program will convert this string and display it as JOHN and john. But at the end of the lower case one it shows a minus sign which is weird. My suspicion is that the program is also converting the carriage return <cr> at the end. Any help that you can offer will be very much appreciated people ;)

ok it's been a while since I have done this but just from a brief view of your code I think you are right. Unless I am mistaken I believe you have to strip the carriage return and append a null termination character at the end of your string when you read it in. I could be wrong but it dosen't look like your doing that. I will have to study the code a little more.

Hi jt_murphree! Thank you for your reply, i really appreciate it. Its surprising how someone else's point of view can benefit. I hadn't thought of returning a null value to the operating system after i've read the value stored in the string. From the program you can see the i've named my 3rd Macro UpToLow, after the test2 label the last line of code before F$Exit (InOut d7,String_In Write) i can try and use a null operation which il have to look up. I'll try that and if it doesn't work i need to go back and check my ascii values and ensure i've set the code up correctly. Maybe i need to use -(an) and (an)+ ?