CONTENTS
1. Installation, Configuration, and Usage - Compile Time............................ 4
1.A Introduction................................................................. 4
1.B Library Installation......................................................... 4
1.C Compiling.................................................................... 5
1.C.1 Stack..................................................................... 6
1.C.2 Heap...................................................................... 6
1.C.3 Example: Microsoft C/C++.................................................. 6
1.C.4 Example: Borland C/C++.................................................... 7
1.C.5 Example: Watcom 32 Bit C/C++.............................................. 7
1.D Compile Time Inclusions...................................................... 7
1.E Common Types and Structures.................................................. 8
1.E.1 Coordinates, Images, and Image Window Structures.......................... 9
1.F Usage Assumptions............................................................ 10
1.G Error Codes.................................................................. 10
1.H Memory Allocation Hooks...................................................... 10
1.I 16 Bit Environment Notes..................................................... 11
1.J Windows 3.x Environment Notes................................................ 12
1.J.1 Windows 3.x Environment - Callback Functions.............................. 12
1.K Tenberry DOS4GW Environment Notes............................................ 13
1.L Windows 95 Environment Notes................................................. 13
2. Installation and Configuration - Run Time........................................ 14
2.A Driver Configuration Parameters.............................................. 14
2.B DOS Environment.............................................................. 15
2.B.1 DOS Environment - Installation Errors..................................... 16
2.B.2 DOS Environment - Software Interrupt Selection............................ 17
2.B.3 DOS Environment - EMM386.................................................. 19
2.C Windows 3.X Environment...................................................... 19
2.D Tenberry DOS4GW Environment.................................................. 20
2.E Windows 95 Environment....................................................... 20
3. SCF Level Interface................................................................ 22
4MEG VIDEO: Open and Set Video Format - pxd_m4open................................. 22
Get Version ID String, Run Time - pxd_id........................................... 24
Get Version ID String, Compile Time - pxd_idstr.................................... 24
4MEG VIDEO: Close - pxd_close...................................................... 24
Get Total Image Memory Size - pxd_imsize........................................... 25
Set Video Mode and Buffer - pxd_video.............................................. 25
Acquire: Snap Video into Buffer - pxd_snap......................................... 27
Set Field for Video Switch - pxd_vidfield.......................................... 28
Set Genlock vs. Master Modes - pxd_vidgenlock...................................... 28
Set Video Digitize Gain and Offset - pxd_vidgainoffset............................. 29
Set Video Resolution - pxd_vidparm................................................. 29
Set Digitize Resolution of Split Video Formats - pxd_vidigparm..................... 31
Get Horizontal Image Dimension - pxd_xdim.......................................... 32
Get Vertical Image Dimension - pxd_ydim............................................ 32
Get Vertical Interlace Dimension - pxd_ylace....................................... 32
Get Pixel Component Dimension - pxd_cdim........................................... 32
Get Horizontal Display Dimension - pxd_xdim_disp................................... 32
Get Vertical Display Dimension - pxd_ydim_disp..................................... 32
Get Vertical Interlace Display Dimension - pxd_ylace_disp.......................... 32
Get Pixel Component Display Dimension - pxd_cdim_disp.............................. 32
Get Current Image Buffer Number - pxd_imbuf........................................ 33
Get Number of Image Buffers - pxd_imbufs........................................... 33
Get Field Time - pxd_vidtime....................................................... 34
Pixel Value: Read - pxd_pixread.................................................... 35
Pixel Value: Write - pxd_pixwrite.................................................. 35
Imaging Board Buffer: Open Access to Buffer - pxd_iopen............................ 36
Imaging Board Buffer: Open Access to Color Buffer - pxd_iopencolor................. 36
Imaging Board Buffer: Read &Write, Char - pxd_ioc................................. 38
Imaging Board Buffer: Read &Write, Short - pxd_ios................................ 38
Imaging Board Buffer: Read &Write, Long - pxd_iol................................. 38
Imaging Board Buffer: Test End of Access - pxd_ioeof............................... 41
Output Lookup Table: Read &Write - pxd_lut........................................ 42
Soft Cursor: Draw &Remove - pxd_drcurs............................................ 43
Hardware Cursor: Draw &Remove - pxd_drcurd........................................ 44
Soft Rectangular Box: Draw &Remove - pxd_drbox.................................... 45
External Input Signal: Sense - pxd_extin........................................... 46
External Output Signal: Set - pxd_extout........................................... 46
Get PXIMAGE: Access Imaging Board Buffer - pxd_defimage............................ 47
Get PXIMAGE: Access Imaging Board Color Buffer - pxd_defimagecolor................. 47
Set Zoom and Pan - pxd_zoom........................................................ 49
Set Subimage Pan Position - pxd_pan................................................ 50
MEGAPLUS Mode Enable - pxd_videkset................................................ 51
MEGAPLUS Mode and Acquisition - pxd_videkdo........................................ 51
MEGAPLUS Mode and Acquisition - pxd_videkdo2....................................... 51
Errors: Check &Report Insufficient Stack Space - pxd_chkstack..................... 53
Errors: Check &Report Severe Fault - pxd_chkfault................................. 53
Save Image: BMP Format - pxd_bmpsave............................................... 54
Load Image: BMP Format - pxd_bmpload............................................... 54
Save Image: TIFF Format - pxd_tiffsave............................................. 56
Load Image: TIFF Format - pxd_tiffload............................................. 56
Save Image: PCX Format - pxd_pcxsave............................................... 57
Windows: Display Image Buffer On Device - pxd_StretchDIBits........................ 59
4. Initialization &Support Functions................................................. 61
4MEG VIDEO Driver: Open - m4drv_open............................................... 61
4MEG VIDEO Driver: Close - m4drv_close............................................. 63
Errors: Obtain Last Posted Fault Information - pxdrv_fault......................... 63
Construct PXIMAGE: Access Imaging Board Buffer - pxvid_setpximage.................. 65
Construct PXIMAGE: Access Imaging Board Buffer - pxvid_setpximage2................. 65
Construct PXIMAGE3: Access Imaging Board Buffers - pxvid_setpximage3............... 68
Errors: Translate Error Code to String - pxerrnomesg............................... 69
5. Video Control...................................................................... 71
M4FORMAT: 4MEG VIDEO, Video Format Specification - Struct m4format................. 71
PXVIDPARM: Video Resolution Specification - Struct pxvidparm....................... 77
PXVIDMODE: Video Mode Specification - Struct pxvidmode............................. 82
PXCAMCARD: Auxiliary Camera Control Card Specification - Struct pxcamcard.......... 84
Video States, Define - pxvid_define................................................ 84
Video States, Define - pxvid_define4............................................... 84
Video States, Undefine - pxvid_undefine............................................ 89
Video States: Load - pxvid_load.................................................... 90
Video States: Unload - pxvid_unload................................................ 91
Video State: Activate State &Mode - pxvid_gomode.................................. 91
Video State: Activate State &Buffer - pxvid_gobuf................................. 92
Video State: Activate State &Buffer - pxvid_go.................................... 92
Video State: Activate State &Mode, Async. - pxvid_gomodea......................... 93
Video State: Test Completion of Activate State, Async. - pxvid_gomodew............. 94
Video State: Get State's Video Components - pxvid_xstatevect....................... 95
Video State: Get State's Video Resolution - pxvid_xparm............................ 95
Video State: Get State's Video Format - pxvid_xformat.............................. 95
Video State: Get State's Video Mode - pxvid_xmode.................................. 95
Video State: Get State's Definition Options - pxvid_xdipopt........................ 95
Video State: Get State's Device Independent Format - pxvid_xpformat................ 95
Video State: Get State's Current Image Buffer - pxvid_xbuf......................... 95
Video State: Get State's Maximum Image Buffers - pxvid_xbufs....................... 95
Video State: Get Current State - pxvid_xstate...................................... 97
Get Vertical Blanking Time - pxdrv_xvbtime......................................... 97
Get Video Status - pxdrv_xstatus................................................... 98
Get Video State - pxdrv_xstate..................................................... 99
Video States: Import - pxvib_defimport............................................. 100
Video States: Export - pxvib_defexport............................................. 100
6. Image Memory Access................................................................ 102
Image Memory: Translate X, Y Coordinate to Address - pxvid_xyadrs.................. 102
Image Memory: Read &Write - pxdrv_imio............................................ 103
Image Memory: Test Completion of Read &Write - pxdrv_imiow........................ 104
Image Memory: Get Optimal Read &Write Length - pxdrv_imioz........................ 104
Image Memory: Obtain Direct Mapping - pxdrv_imap................................... 105
Image Memory: Release Direct Mapping - pxdrv_imapr................................. 106
PXIMAGE: Image and Pixel Specifications - Struct pximage........................... 107
PXIMAGE: Set &Get Area of Interest Window - pximage::xwind........................ 111
PXIMAGE: Get Advice, Errors, Info &Options - pximage::aeiou....................... 111
PXIMAGE: Set to Access Sequential Pixels - pximage::ioset.......................... 113
PXIMAGE: Read Sequential Pixels - pximage::ioread.................................. 113
PXIMAGE: Write Sequential Pixels - pximage::iorite................................. 113
PXIMAGE: Wait for Sequential Access Completion - pximage::iowait................... 113
PXIMAGE: Obtain Sequential Access Pixel Count - pximage::iolen..................... 113
PXIMAGE: Set to Access Non-Sequential Pixels - pximage::bxts....................... 115
PXIMAGE: Prepare for Non-Sequential Pixel Access - pximage::bxtp................... 115
PXIMAGE: Access Non-Sequential Pixels - pximage::bxta.............................. 115
PXIMAGE: Wait for Non-Sequential Access Completion - pximage::bxtw................. 115
PXIMAGE: Set to Obtain Pointer to Pixels - pximage::imapset........................ 117
PXIMAGE: Obtain Pointer to Pixels - pximage::imap.................................. 117
PXIMAGE: Release Pointer to Pixels - pximage::imapr................................ 117
Sequential Access: Establish Access to Image Buffer - pxb8_iopen................... 121
Sequential Access: Read &Write Image Buffer - pxb8_io............................. 121
Sequential Access: Test End of Image Buffer - pxb8_ioeof........................... 121
Sequential Access: Reposition within Image Buffer - pxb8_ioseek.................... 121
Sequential Access: Read &Write Image Buffer, Async. - pxb8_iof.................... 121
Sequential Access: Test Read &Write Complete - pxb8_iow........................... 121
Sequential Access: Get Transfer Count - pxb8_iodone................................ 121
Sequential Access: Check or Wait upon Read &Write - pxb8_ioflush.................. 121
Sequential Access: Terminate Access - pxb8_ioclose................................. 121
Sequential Access: Obtain Number of Unused Handles - pxb8_iopens................... 121
Pixel List: Access &Modify Pixels - pxdrv_pixbxt.................................. 122
Pixel List: Test Access Completion - pxdrv_pixbxtw................................. 122
Pixel List: Get Optimal Asynchronous Length - pxdrv_pixbxtz........................ 122
Pixel List: Translate Memory Addresses - pxdrv_pixlate............................. 122
Pixel List: Translate X, Y Coordinates - pxvid_pixlate............................. 122
7. TMS320C2x Based Image Processing................................................... 124
TMS320C2x: Load and Execute Program upon AOI - pxd_tmstmx.......................... 124
TMS320C2x Bound: 3x3 Convolution upon AOI - pxd_tmscon3............................ 125
TMS320C2x Bound: Compute Histogram upon AOI - pxd_tmshist.......................... 126
TMS320C2x: Load Program - m4drv_tmxload............................................ 127
TMS320C2x: Check if Program Loaded - m4drv_tmxloaded............................... 128
TMS320C2x: Execute Program - m4drv_tmxec........................................... 129
TMS320C2x Support: Fill m4tmxarg Structure - m4drv_tmxsetarg....................... 130
TMS320C2x: Test Completion of Program - m4drv_tmxecw............................... 131
TMS320C2x: Terminate Program - m4drv_tmxdone....................................... 132
TMS320C2x Native: Low pass Filter - TMXLPF11.HEX................................... 132
TMS320C2x Native: Morphological Medial Axis Thin - TMXMEDAX.HEX.................... 133
TMS320C2x Native: Morphological Erode - TMXMPERO.HEX............................... 133
TMS320C2x Native: Morphological Dilate - TMXMPDIL.HEX.............................. 133
TMS320C2x Native: Morphological Boundary - TMXMPBOU.HEX............................ 133
TMS320C2x Native: Binarize for Morphology - TMXMPBIN.HEX........................... 133
TMS320C2x Native: Image Flips - TMXROTAT.HEX....................................... 134
TMS320C2x Native: Pixel AND, OR, XOR - TMXSPO.HEX.................................. 135
TMS320C2x Native: Pixel Set, Complement, Threshold - TMXSPO.HEX.................... 135
TMS320C2x Native: Image Sequence Average - TMXSQAVE.HEX............................ 136
TMS320C2x Native: Image Sequence Subtraction - TMXSQDIF.HEX........................ 136
TMS320C2x Native: Count Pixels Relative to Threshold - TMXCNTHR.HEX................ 137
TMS320C2x Native: Image Pair Logical Operations - TMXPRLOG.HEX..................... 138
TMS320C2x Native: Image Copy - TMXPRLOG.HEX........................................ 138
TMS320C2x Native: Image Pair Add &Subtract - TMXPRADD.HEX......................... 139
TMS320C2x Native: Tabulate Histogram - TMXHIST.HEX................................. 140
TMS320C2x Native: Compute Pixel Summation/Mean - TMXNSUM.HEX....................... 141
8. TMS320C40 Based Image Processing................................................... 142
TMS320C40: Load Program from File - m4drv_tmyloadfile.............................. 142
TMS320C40: Load Program from Buffer - m4drv_tmyloadprog............................ 142
TMS320C40: Obtain Number of Processors - m4drv_tmyprocs............................ 143
TMS320C40: Obtain Processor Corresponding to Image - m4drv_tmyprocimage............ 144
TMS320C40: Execute Program - m4drv_tmyexec......................................... 144
TMS320C40: Communicate with Program - m4drv_tmymesg................................ 146
TMS320C40: Test Completion of Program - m4drv_tmyexecw............................. 147
TMS320C40: Terminate Program - m4drv_tmydone....................................... 148
TMS320C40 Support: Image Specification - struct m4c40image......................... 148
TMS320C40 Support: Create Image Definition from PXIMAGE - m4c40_setimage........... 148
TMS320C40 Support: Create Image Definition from PXIMAGE3 - m4c40_setimage3......... 148
TMS320C40 Native: Convert IEEE Float to C40 Float - c40toieee...................... 150
TMS320C40 Native: Convert C40 Float to IEEE Float - c40fromieee.................... 150
TMS320C40 Native: Check Stack - c40m4_checkstack................................... 150
TMS320C40 Native: Construct PXIMAGE from c40m4image - c40m4_setpximage............. 151
TMS320C40 Native: Construct PXIMAGE3 from c40m4image - c40m4_setpximage3........... 151
TMS320C40 Native: Construct PXIMAGE for Image in Memory - c40m4_pximage_memory..... 152
TMS320C40 Native: Construct PXIMAGE3 for Images in Memory - c40m4_pximage3_memory.. 152
9. Lookup Tables...................................................................... 154
Output Lookup Table: Read &Write - pxdrv_olutio................................... 154
Output Lookup Table: Test Completion of Read &Write - pxdrv_olutiow............... 155
Output Lookup Table: Get Number of Table Sets - pxdrv_olutsetn..................... 155
10. Hardware Cursor.................................................................... 157
Hardware Cursor: Draw - pxvid_curon................................................ 157
Hardware Cursor: Remove - pxvid_curoff............................................. 157
Hardware Cursor: Draw Box - pxvid_curboxon......................................... 158
Hardware Cursor: Remove Box - pxvid_curboxoff...................................... 158
Hardware Cursor: Save State - pxdrv_cursave........................................ 159
Hardware Cursor: Load State - pxdrv_curload........................................ 159
Hardware Cursor: Get State Size - pxdrv_cursavez................................... 159
Hardware Cursor: Set Appearance - m4drv_curopt..................................... 160
Hardware Cursor: Set Icon - m4drv_curicon.......................................... 161
11. Miscellaneous Services............................................................. 163
Video State: Define State for Zoom - pxvib_zoom.................................... 163
External Input Signal: Sense - pxdrv_extin......................................... 166
External Output Signal: Set - pxdrv_extout......................................... 166
External Output Signal: Test Completion of Set - pxdrv_extoutw..................... 167
External Output Signal: Get Current Value - pxdrv_extoutv.......................... 167
Interrupt Invocation: Request - pxdrv_intfun....................................... 168
Interrupt Invocation: Cancel - pxdrv_intfunr....................................... 169
12. Multiple Imaging Boards............................................................ 170
Imaging Boards: Get Number of Units - pxdrv_xunits................................. 170
Imaging Boards: Select Units - pxdrv_devunits...................................... 170
Imaging Boards: Select Unit - pxdrv_devunit........................................ 173
Imaging Boards: Get Selected Unit(s) - pxdrv_xdevunits............................. 174
13. Additional Features................................................................ 175
User-Defined Premature Termination Functions - pxabortfunc_t....................... 175
Copy Image Buffer to Raw Image Address - pxip8_copyintoradrs....................... 176
Copy Image Buffer from Raw Image Address - pxip8_copyfromradrs..................... 176
Image Sequence: Save in Image Memory Format - pxio8_fmbwrite....................... 177
Image Sequence: Load in Image Memory Format - pxio8_fmbread........................ 177
Image Sequence: Acquire - pxvib_gosequence......................................... 180
Acquire: Triggered Video Capture - pxvib_gotrig2................................... 181
Acquire: Triggered Video Capture - pxvib_gotrig.................................... 181
14. Hints &Code Fragments............................................................. 184
14.A Saving and Restoring Image Buffers........................................... 184
14.B Porting Custom Video Parameters.............................................. 186
14.C Mouse Control................................................................ 187
15. Release Notes...................................................................... 190
16. Distribution Contents.............................................................. 200
17. Index.............................................................................. 203
Specifications and prices subject to change without notice.
EPIX® imaging products are made in the USA.
Copyright © 2025 EPIX, Inc. All rights reserved.