TYPE Event house AS INTEGER unitFunc AS INTEGER repeat AS INTEGER END TYPE DIM SHARED rxEvent(0 TO 255) AS Event COMMON rxPut% COMMON rxGet% CLS rxPut% = 0 rxGet% = 0 OPEN "COM1:300,N,8,1,BIN,CD0,CS0,DS0,OP0,RS" FOR RANDOM AS #1 Null% = 0 PUT #1, 1, Null% COM(1) ON ON COM(1) GOSUB ComHandler DO WHILE INKEY$ = "" IF rxPut% <> rxGet% THEN PRINT "RX: House:"; HEX$(rxEvent(rxGet%).house); PRINT " Unit/Func:"; HEX$(rxEvent(rxGet%).unitFunc); PRINT " Repeat:"; HEX$(rxEvent(rxGet%).repeat) rxGet% = rxGet% + 1 IF rxGet% = 256 THEN rxGet% = 0 END IF LOOP COM(1) OFF END ComHandler: GET #1, 1, twrx% mode% = twrx% AND &HE0 SELECT CASE mode% CASE &H0 IF twrx% AND &H1 THEN twtx% = &H7 PUT #1, 1, twtx% ELSEIF twrx% AND &H10 THEN twtx% = &H1 PUT #1, 1, twtx% END IF CASE &H20 CASE &H80 rxEvent(rxPut%).house = twrx% AND &HFF CASE &HA0 rxEvent(rxPut%).unitFunc = twrx% AND &HFF CASE &HC0 rxEvent(rxPut%).repeat = twrx% AND &HFF rxPut% = rxPut% + 1 IF rxPut% = 256 THEN rxPut% = 0 END SELECT RETURN