AcquireDIO is a MATLAB mex file for MacOS which allows you to interface with National Instruments cards to do asynchronous data acquisition. You can tell it to go and the returned matrix will be filled "behind your back", while you go ahead and do other things with MATLAB.
When you type "AcquireDIO" at the MATLAB prompt, you get the following help:
Usage 1: [data times] = AcquireDIO(CardID,Samples,SamplesPerSecond,LoNibbleREQ,HiNibbleACK,DelayUSeconds) Asychronously acquires Samples of data at a SamplesPerSecond rate on the IOCard specified by CardID. Data is read from ports A (lo8) and B (hi8), and simple handshaking can be done on port C (details below). data: A Samples x 1 vector containing values 0-65535. times: A Samples x 1 vector containing timestamps in seconds. *Note: data and times vectors will be initialized to -1.000000. CardID: One returned by IOCard('GetCardIDs')-- see IOCard. Samples: The number of samples to acquire. SamplesPerSecond: How many samples to acquire per second. LoNibbleREQ: A value (1-15) to write on the lower 4 bits of Port C to request data. Not used if 0. HiNibbleACK: A value (1-15) to read on the upper 4 bits of Port C to wait for before reading data. Not used if 0. DelayUSeconds: Microseconds to wait before reading data. If HiNibbleACK isn't 0, will act as a timeout for the ACK. After DelayUSeconds Port C is reset to 0. Usage 2: AcquireDIO('Stop') Stop an acquisition in progress. Current support: National Instruments PCI-6503 Note on testing: If you want to test (no hardware necessary), use 'pci6503' as CardID. The times vector will still contain timestamps. The data vector will contain the actual delay time, which can be used to determine a lower limit.
AcquireDIO-8-6-01.sit.hqx[32k] (includes source)