Here's some inspiration, not 100% efficient but easy to follow.
Code:DEFINE OSC 40 DEFINE HSER_RCSTA 90h DEFINE HSER_TXSTA 20h DEFINE HSER_BAUD 9600 DEFINE HSER_SPBRG 64 WaitFor var byte [4] CounterA VAR BYTE clear Hserout ["Varidrive V2011.00 has started",13,10] main: GOSUB ClearArray HSEROUT ["Main loop",13,10] HSERIN 5000, main,[WAIT ("blo")] HSERIN 500, testit, [str waitFor\3] testit: SELECT CASE WaitFor[0] CASE "n" if WaitFor[1]=0 then HIGH PORTD.4 HSEROUT ["ON",13,10] else GOSUB FAIL endif CASE "f" if WaitFor[1]="f" then if WaitFor[2]=0 then LOW PORTD.4 HSEROUT ["OFF",13,10] else GOSUB FAIL ENDIF endif CASE ELSE GOSUB FAIL END SELECT goto main ClearArray: FOR CounterA = 0 TO 3 WaitFor[CounterA]=0 next RETURN FAIL: HSEROUT ["FAIL!",13,10] RETURN




Bookmarks