oDataStrobe Object
An Object that provides a Data-Strobe in response to a value being written to it.
Description:
 

An Object that provides a data-strobe function for devices such as printers and LCDs.

Operation:
 

An oDataStrobe Object links to 2 Objects.  The first is an Object that is to be used to transfer data to an external device such as a printer.  The second Object is used to control the external devices Data-Strobe line.

When data is written to the oDataStrobe Object, the data will be transferred to the Object that is connected to the external device's I/O lines and then the Data-Strobe line will transition from 0 to 1 and then back to 0 again.

If the Mode property is set to 1, then the data will be broken down into 2 4-bit nibbles which are sent individually.  Each of the 2 4-bit data transfers are accompanied with a Data-Strobe.

Storage size & Availability:
 

The following table lists the size and availability of the oDataStrobe Object:

ObjectSizeVersion
oDataStrobe5 BytesA.1.0 and greater
Properties:
 

The following table lists the Properties of the oDataStrobe Object:
PropertyDescription
Address

Returns a pointer to the address of the oDataStrobe Object instance.

Data-Type: Number-Pointer, Read-Only

Data-Range: 0 - 127

Mode

A value that indicates if the oDataStrobe Object will use an 8-bit mode or a dual 4-bit mode.

Data-Type: Bit

Data-Range: 0 - 1

The following table list the values of the Mode Property:
ModeConstantDescription
0cv8Bit

The Value property will be transferred as a single 8-bit value and a single data-strobe will be generated when the Value property is written to.

1cv4Bit

The Value property will be transferred as two 4-bit values and a data-strobe will be generated for each when the Value property is written to.

Nibble

A value that indicates if the data sent to the Output Object is the Low-Nibble or the High-Nibble.

Data-Type: Nibble, Flag

Data-Range: 0 - 1

The following table list the values of the Nibble Property.
NibbleConstantDescription
0cvLow

The lowest 4 bits of the Value property is being used for the current data strobe.

1cvHigh

The Upper 4 bits of the Value property is being used for the current data strobe.

OnChange

A value that specifies if the Data-Strobe is generated only when the value has changed.

Data-Type: Bit

Data-Range: 0 - 1

The following table list the values of the OnChange Property:
OnChangeConstantDescription
0cvFalse

The Value Property is transferred and the data strobe is generated each time the Value property is written to.

1cvTrue

The Value Property is transferred and the data strobe is generated only when the Value property is written to with a value different than the last value written.

Operate

A value that indicates if a Data-Strobe is generated in response to new data.

Data-Type: Bit, Flag

Data-Range: 0 - 1

The following table list the values of the Operate Property:
OperateConstantDescription
0cvFalse

The Output Objects Value property is not updated.

1cvTrue

The Output Objects Value property is updated.

Output

A pointer that specifies which Object receives the data written to the Value property.

Data-Type: Number-Pointer

Data-Range: 0 - 127

Result

A value that indicates the Data-Strobe is active.

Data-Type: Byte, Flag

Data-Range: 0 - 1

String

The Value property represented as a string.

Note: The String property is available in OOPic Basic Version 2

Data-Type: String

Strobe

A pointer that specifies which Flag property is used as a Data-Strobe.

Data-Type: Flag-Pointer

Data-Range: 0 - 127

Value

A value that is transferred to the Unit Object.

Data-Type: Byte, Default

Data-Range: 0 - 255

Example:
 In the following example, the oDataStrobe Object is used
'This program creates a Virtual Circuit 
'that outputs data to devices that require
'a data strobe such a printers and LCDs.

Dim Ptr as New oDataStrobe
Dim LD As New oDio8       
Dim DS As New oDio1       

Sub main()
  LD.Iogroup = 3
  LD.Direction = cvOutput
  DS.IOLine = 27
  DS.Direction = cvOutput
  DS.Clear
  Ptr.Output.Link(LD)
  Ptr.Strobe.Link(DS)
  Ptr.Operate = cvTrue
  Ptr.String = "Hello"
End Sub