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............................................................. 5
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.................. 8
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............................................ 11
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.................... 16
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
SILICON VIDEO: Open and Set Video Format - pxd_svopen.......................... 22
Get Version ID String, Run Time - pxd_id....................................... 24
Get Version ID String, Compile Time - pxd_idstr................................ 24
SILICON 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 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................................................ 34
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........................... 40
Output Lookup Table: Read &Write - pxd_lut.................................... 41
Soft Cursor: Draw &Remove - pxd_drcurs........................................ 42
Hardware Cursor: Draw &Remove - pxd_drcurd.................................... 43
Soft Rectangular Box: Draw &Remove - pxd_drbox................................ 45
External Input Signal: Sense - pxd_extin....................................... 45
External Output Signal: Set - pxd_extout....................................... 46
Set Video Input Multiplexer - pxd_vidmux....................................... 47
Set Subimage Pan Position - pxd_pan............................................ 47
Get PXIMAGE: Access Imaging Board Buffer - pxd_defimage........................ 48
Get PXIMAGE: Access Imaging Board Color Buffer - pxd_defimagecolor............. 48
Errors: Check &Report Insufficient Stack Space - pxd_chkstack................. 50
Errors: Check &Report Severe Fault - pxd_chkfault............................. 50
Save Image: BMP Format - pxd_bmpsave........................................... 50
Load Image: BMP Format - pxd_bmpload........................................... 50
Save Image: TIFF Format - pxd_tiffsave......................................... 52
Load Image: TIFF Format - pxd_tiffload......................................... 52
Save Image: PCX Format - pxd_pcxsave........................................... 54
Windows: Display Image Buffer On Device - pxd_StretchDIBits.................... 55
4. Initialization &Support Functions............................................. 57
SILICON VIDEO Driver: Open - svdrv_open........................................ 57
SILICON VIDEO Driver: Close - svdrv_close...................................... 59
Errors: Obtain Last Posted Fault Information - pxdrv_fault..................... 59
Construct PXIMAGE: Access Imaging Board Buffer - pxvid_setpximage.............. 61
Construct PXIMAGE: Access Imaging Board Buffer - pxvid_setpximage2............. 61
Construct PXIMAGE3: Access Imaging Board Buffers - pxvid_setpximage3........... 64
Errors: Translate Error Code to String - pxerrnomesg........................... 65
5. Video Definition &Control..................................................... 67
SVFORMAT: SILICON VIDEO, Video Format Specification - Struct svformat.......... 67
PXVIDPARM: Video Resolution Specification - Struct pxvidparm................... 69
PXVIDMODE: Video Mode Specification - Struct pxvidmode......................... 74
PXCAMCARD: Auxiliary Camera Control Card Specification - Struct pxcamcard...... 76
Video States, Define - pxvid_define............................................ 76
Video States, Define - pxvid_define4........................................... 76
Video States, Undefine - pxvid_undefine........................................ 81
Video States: Load - pxvid_load................................................ 82
Video States: Unload - pxvid_unload............................................ 83
Video State: Activate State &Mode - pxvid_gomode.............................. 83
Video State: Activate State &Buffer - pxvid_gobuf............................. 84
Video State: Activate State &Buffer - pxvid_go................................ 84
Video State: Activate State &Mode, Async. - pxvid_gomodea..................... 85
Video State: Test Completion of Activate State, Async. - pxvid_gomodew......... 86
Video State: Get State's Video Components - pxvid_xstatevect................... 87
Video State: Get State's Video Resolution - pxvid_xparm........................ 87
Video State: Get State's Video Format - pxvid_xformat.......................... 87
Video State: Get State's Video Mode - pxvid_xmode.............................. 87
Video State: Get State's Definition Options - pxvid_xdipopt.................... 87
Video State: Get State's Device Independent Format - pxvid_xpformat............ 87
Video State: Get State's Current Image Buffer - pxvid_xbuf..................... 87
Video State: Get State's Maximum Image Buffers - pxvid_xbufs................... 87
Video State: Get Current State - pxvid_xstate.................................. 89
Get Vertical Blanking Time - pxdrv_xvbtime..................................... 89
Get Video Status - pxdrv_xstatus............................................... 90
Get Video State - pxdrv_xstate................................................. 91
Video States: Import - pxvib_defimport......................................... 92
Video States: Export - pxvib_defexport......................................... 92
6. Image Memory Access............................................................ 94
Image Memory: Translate X, Y Coordinate to Address - pxvid_xyadrs.............. 94
Image Memory: Read &Write - pxdrv_imio........................................ 95
Image Memory: Test Completion of Read &Write - pxdrv_imiow.................... 96
Image Memory: Get Optimal Read &Write Length - pxdrv_imioz.................... 96
Image Memory: Obtain Direct Mapping - pxdrv_imap............................... 97
Image Memory: Release Direct Mapping - pxdrv_imapr............................. 98
PXIMAGE: Image and Pixel Specifications - Struct pximage....................... 99
PXIMAGE: Set &Get Area of Interest Window - pximage::xwind.................... 103
PXIMAGE: Get Advice, Errors, Info &Options - pximage::aeiou................... 103
PXIMAGE: Set to Access Sequential Pixels - pximage::ioset...................... 105
PXIMAGE: Read Sequential Pixels - pximage::ioread.............................. 105
PXIMAGE: Write Sequential Pixels - pximage::iorite............................. 105
PXIMAGE: Wait for Sequential Access Completion - pximage::iowait............... 105
PXIMAGE: Obtain Sequential Access Pixel Count - pximage::iolen................. 105
PXIMAGE: Set to Access Non-Sequential Pixels - pximage::bxts................... 107
PXIMAGE: Prepare for Non-Sequential Pixel Access - pximage::bxtp............... 107
PXIMAGE: Access Non-Sequential Pixels - pximage::bxta.......................... 107
PXIMAGE: Wait for Non-Sequential Access Completion - pximage::bxtw............. 107
PXIMAGE: Set to Obtain Pointer to Pixels - pximage::imapset.................... 109
PXIMAGE: Obtain Pointer to Pixels - pximage::imap.............................. 109
PXIMAGE: Release Pointer to Pixels - pximage::imapr............................ 109
Sequential Access: Establish Access to Image Buffer - pxb8_iopen............... 113
Sequential Access: Read &Write Image Buffer - pxb8_io......................... 113
Sequential Access: Test End of Image Buffer - pxb8_ioeof....................... 113
Sequential Access: Reposition within Image Buffer - pxb8_ioseek................ 113
Sequential Access: Read &Write Image Buffer, Async. - pxb8_iof................ 113
Sequential Access: Test Read &Write Complete - pxb8_iow....................... 113
Sequential Access: Get Transfer Count - pxb8_iodone............................ 113
Sequential Access: Check or Wait upon Read &Write - pxb8_ioflush.............. 113
Sequential Access: Terminate Access - pxb8_ioclose............................. 113
Sequential Access: Obtain Number of Unused Handles - pxb8_iopens............... 113
Pixel List: Access &Modify Pixels - pxdrv_pixbxt.............................. 114
Pixel List: Test Access Completion - pxdrv_pixbxtw............................. 114
Pixel List: Get Optimal Asynchronous Length - pxdrv_pixbxtz.................... 114
Pixel List: Translate Memory Addresses - pxdrv_pixlate......................... 114
Pixel List: Translate X, Y Coordinates - pxvid_pixlate......................... 114
7. Lookup Tables.................................................................. 116
Output Lookup Table: Read &Write - pxdrv_olutio............................... 116
Output Lookup Table: Test Completion of Read &Write - pxdrv_olutiow........... 117
Output Lookup Table: Get Number of Table Sets - pxdrv_olutsetn................. 117
Output Lookup Table: Select Table Set - pxdrv_olutset.......................... 118
Output Lookup Table: Test Completion of Select Table Set - pxdrv_olutsetw...... 119
Output Lookup Table: Get Current Table Selection - pxdrv_olutsetv.............. 119
8. Hardware Cursor................................................................ 120
Hardware Cursor: Draw - pxvid_curon............................................ 120
Hardware Cursor: Remove - pxvid_curoff......................................... 120
Hardware Cursor: Draw Box - pxvid_curboxon..................................... 121
Hardware Cursor: Remove Box - pxvid_curboxoff.................................. 121
Hardware Cursor: Save State - pxdrv_cursave.................................... 122
Hardware Cursor: Load State - pxdrv_curload.................................... 122
Hardware Cursor: Get State Size - pxdrv_cursavez............................... 122
Hardware Cursor: Set Appearance - svdrv_curopt................................. 123
Hardware Cursor: Set Icon - svdrv_curicon...................................... 124
9. Miscellaneous Services......................................................... 126
External Input Signal: Sense - pxdrv_extin..................................... 126
External Output Signal: Set - pxdrv_extout..................................... 126
External Output Signal: Test Completion of Set - pxdrv_extoutw................. 127
External Output Signal: Get Current Value - pxdrv_extoutv...................... 127
Interrupt Invocation: Request - pxdrv_intfun................................... 128
Interrupt Invocation: Cancel - pxdrv_intfunr................................... 129
10. Multiple Imaging Boards........................................................ 130
Imaging Boards: Get Number of Units - pxdrv_xunits............................. 130
Imaging Boards: Select Units - pxdrv_devunits.................................. 130
Imaging Boards: Select Unit - pxdrv_devunit.................................... 133
Imaging Boards: Get Selected Unit(s) - pxdrv_xdevunits......................... 134
Imaging Boards: Select V.B. Sync Board(s) - svdrv_vbunits...................... 134
Imaging Boards: Get Current V.B. Sync Selection - svdrv_xvbunits............... 135
11. Additional Features............................................................ 137
User-Defined Premature Termination Functions - pxabortfunc_t................... 137
Copy Image Buffer to Raw Image Address - pxip8_copyintoradrs................... 138
Copy Image Buffer from Raw Image Address - pxip8_copyfromradrs................. 138
Image Sequence: Save in Image Memory Format - pxio8_fmbwrite................... 139
Image Sequence: Load in Image Memory Format - pxio8_fmbread.................... 139
Image Sequence: Acquire - pxvib_gosequence..................................... 142
Acquire: Triggered Video Capture - pxvib_gotrig2............................... 143
Acquire: Triggered Video Capture - pxvib_gotrig................................ 143
12. Hints &Code Fragments......................................................... 146
12.A Saving and Restoring Image Buffers....................................... 146
12.B Porting Custom Video Parameters.......................................... 148
12.C Mouse Control............................................................ 149
13. Release Notes.................................................................. 152
14. Distribution Contents.......................................................... 159
15. Index.......................................................................... 161
Specifications and prices subject to change without notice.
EPIX® imaging products are made in the USA.
Copyright © 2025 EPIX, Inc. All rights reserved.