Description
A number of operations is supported with the Generic I/O Library. This section describes the use and functionality on each one. To bring up the available operations select a script entry then Mouse right-click the operation field. With the current version of the Generic I/O DLL the following operations are available:
- Read
- Write
- Wait
- Event
- Goto Entry ID
- Memory Offset
The operation field should be the first field to be modified when configuring a script entry. Other fields check for the Operations field before setting up their data. For instance a Goto Entry ID operation does not use a mask or mask data while an Output operation does.
Read
Performs an Address Location Read operation from the defined Address location for the number of Data types defined by the Size field, using the selected mask and mask-data for the number of times shown in the loop field and waits for the delay specified. The mask applies to the data field at the end of the read operation on each data type. The delay is executed before the read operation. Note that when the loop field is 0 it specifies a single execution of a script line.
Example
Read the 256 legacy vectors from address location 0.


Write
Performs a Write operation to the defined Address Location. Should be used when memory or I/O is mapped to this location. It is recommended to perform a Read-Modify-Write operation by reading the address range first for memory locations.
Wait
Performs a delay for the specified wait period under the Wait field in mSecs.
Event
Waits on an event for the specified wait time, by doing read operations from the specified address location using the specified mask, mask data and data type and comparing the data read with the data specified in the data field. The mask is applied to the data read from the address location. Only the first data type is considered if the size of the range is longer than 1. Event check is continuous until the Wait interval expires.
Goto Entry ID
This is a loop based command that iterates through previous script lines. The Data field specifies the identifier to go to. The Loop field is the number of times this command will go to the specified script line. The Goto Entry ID command will not execute if the loop field is set 0. The other fields are ignored.
Memory Offset
The memory offset command searches previous script entries from its ID location (From current ID to the top of the table ID=0) for Read and Write operations. If such an operation is found it adjusts the address value by a signed offset specified in the address field and executes the same operation with the address location adjusted. The other fields for the Address Offset operation need to be specified (mask, mask data, delay etc as with the Read/Write operations) because only the address field value is used. Only the first Read/Write operation found will be used by this command. The Memory Offset operation can be best used with scripts that have Goto Entry ID operations and read/write to memory mapped I/O.
Memory Buffer Editor
The library has a buffer editor that is in effect a hex editor capable of read/write operations to any location in the 0-4GB range.
Each memory entry has a data field that is associated with a buffer. To Read/Write the contents of the memory activate the editor by clicking the Data field of the script entry. A dialog will appear similar to the one shown in the picture below

On the left side, the address field is defined by the address field of the main script entry. This is the address the hex editor will use as the starting point. Each entry in the hex editor is 8 bytes long. The Hex Data column is editable and it is where the memory modifications take place. The right side of the buffer hex editor shows the Ascii equivalent of each data byte applicable printable characters.
At the bottom of the hex editor there is an address field that can be configured by the user to go to a specific address within the defined buffer. The buffer start is defined by the address field and its length by the size field within the script entry. Selecting an address followed by enter will change the view of the hex editor to the specified location. Locations outside the buffer range are ignored.
Note that for each memory entry its Size field is allocated as memory do not use huge memory blocks as you may run out of windows resources. Typical sizes tested with the library where within 4KBytes of address space.
Controlling Entries
Editable fields within the script table can be changed by simply clicking the field and altering the number within it. Other fields like the data/mask types can be change by doing a right-click operation on the specific script entry and field. Such a user operation will invoke a popup menu with additional options. Some of the options already discussed in earlier section like the operations and mask types.
In addition to the field specific options the user may add, insert, remove, paste a script entry or clear the entire script table. These are the general script options and are always included with this menu.
Below there is a table that describes how to control script entries. Please note using the new entry option you may append or insert an entry inside the script table. A script can also be saved with the save and restored with the load option.
| New Entry |
To add a new entry to the script table do the following:
- Scroll down the list box to the end of the table and point the mouse on an empty cell.
- Mouse right-click.
- Select New Entry
|
| Insert an Entry |
To insert an entry to the script table do the following:
- Scroll down the list box and select the row you want to insert the entry
- Mouse right-click.
- Select New Entry
|
| Delete an Entry |
To delete an entry from the table do the following:
- Mouse left-click to select the entry you want to delete.
- Mouse right-click to bring up the options menu.
- Select Cut Entry
|
| Paste an Entry |
To paste an entry to the table do the following:
- Mouse right-click to bring up the options menu.
- Select Paste Entry
In a paste operation the entry goes at the end of the table. The entry stored is the one from the last Cut operation.
|
| Clear Table |
To clear the entire table do the following:
- Mouse right-click to bring up the options menu.
- Select Clear Table
|
| Change Operation |
To change the operation of a script entry do the following:
- Mouse left-click to select the entry you want to modify.
- Mouse right-click on the Operation column for this entry.
- Select the Operation needed
The Port Offset and Data Offset operations are not available for the first entry of the table.
|
| Change Mask |
To change the mask of a script entry do the following:
- Mouse left-click to select the entry you want to modify.
- Mouse right-click on the Mask column for this entry.
- Select the Mask needed
|
| Change Data Type |
To change the Data Type of a script entry do the following:
- Mouse left-click to select the entry you want to modify.
- Mouse right-click on the Type column for this entry.
- Select the Type needed
Note that the Type field has no meaning for the Goto Entry ID and Wait commands.
|
Data types
A number of Data Types are available for Memory operations. This section describes the use and functionality on each one. To bring up the available Data Types select a script entry then Mouse right-click the Type field. With the current version of the Generic Memory DLL the following data types are available:
- BYTE Interprets the Data and Mask fields as an unsigned 8-bit value.
- WORD Interprets the Data and Mask fields as an unsigned 16-bit value.
- DWORD Interprets the Data and Mask fields as an unsigned 32-bit value.
.