So einfach ist das nicht.
Ischarwaiting(#2) = 1
Ruft den Fehler hervor: Error : 328 Not valid for SW UART

Ich habe die Lösung für die Software UART ohne WAITKEY vor kurzem gepostet:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=17444

Kurzfassung: Du musst RX mit INTx verbinden und INT auf eine fallende Flanke auslösen und GIFR beachten.
Code:
Int0_int:                                                   'Interrupt Handler For Int0
   S = Inkey(#2)                                          'get it from Soft UART
   Printbin S                                               'send to Hard UART
   Set End_flag                                             'Flag für Soft_Ischarwaiting()
   Gifr = Gifr Or &H40                                 'clear Flag Int0 !!!!!
Return