Thanks for your responses i really appreciate it. This is what I worked out before, this does exactly what I want except I have separate string indicators on the front panel, one for RX one for TX. I tried making one up like your example, but I could not get it to work where a single trace updated either with RX msg or Tx msg, my problem is i guess syncing the shift registers in two different loops, which is probably not possible and why i was thinking I need a queue and then dequeue after the read to update the window with whatevers in the bottom loop....forgive the cleanliness of code, will cleanup when i figure out what I'm doing lol