/* obtain ThrustMaster game events from usbecd.sys */ rc=RxFuncAdd('SysGetMessage','RexxUtil','SysGetMessage') ddName = '$MAXFIG$' /* verify that the direct control driver exists in config.sys */ if stream(ddName,'command','query exists') \= '\DEV\' || ddName then do say 'required direct control driver' say 'DEVICE=?:\OS2\BOOT\USBECD.SYS /D:0458:3019:0100 /N:'ddName say 'not defined in CONFIG.SYS file' /* wait */ '@pause' exit end /* acquire the device driver */ rc=stream(ddName,'command','open') if rc \= 'READY:' then do /* obtain and issue error message */ parse value rc with sState ':' mNumber say SysGetMessage(mNumber,,ddName) say 'acquire driver failed!' /* wait */ '@pause' exit end /* get input data */ oiBuffer = substr(x2c(EC 00 0000 8103 0800),1,16,x2c(EE)) oldInput = right(oiBuffer,9) do forever call IssueWriteFunction newInput = right(oiBuffer,9) if oldInput <> newInput then do oldInput = newInput say c2x(oiBuffer) end end /* release the device driver */ rc=stream(ddName,'command','close') if rc \= 'READY:' then do /* obtain and issue error message */ parse value rc with sState ':' mNumber say SysGetMessage(mNumber,,ddName) say 'release driver failed!' /* wait */ '@pause' end exit IssueWriteFunction: rc=charout(ddName,oiBuffer) rc=stream(ddName,'description') if rc \= 'READY:' then do /* obtain and issue error message */ parse value rc with sState ':' mNumber if mNumber == 95 /* character i/o call interrupted */ then say 'I/O canceled (4 seconds time-out) ...' else say SysGetMessage(mNumber,,ddName) /* wait */ '@pause' exit end return