November/December 1998: Volume 8 Number 3

New Powerflex ODBC driver | Use PFXplus CCA tools to add menus, toolbars, and status bars | A simple E-mail program | Using macros to create in-memory tables | Technical tip No. 40 | Powerflex technical forum | What is this thing called Linux? | PFXplus Dialog Resource Editor released | New PFXplus for SCO Unix release | Other Powerflex news

Powerflex ODBC Driver is Here!

At last, what you've all been waiting for – PFXodbc, the Powerflex ODBC Driver! PFXodbc works like a charm to allow access to data contained in PFXplus and compatible file formats from any ODBC-compliant front-end application.

PFXodbc can be used as a data source from applications like MS Visual Basic, MS SQL Server, MS Access, MS Word, MS Excel, Borland Delphi, Seagate Crystal Reports and many, many more.

Using the POWERflex ODBC Driver

This example will demonstrate how to use PFXodbc as a data source in MS Visual Basic 6.0. The ODBC Driver has been previously configured to use the sample data files which come standard with PFXplus. The configuration settings are:

Data Source Name = PFXODBC
Default User ID = pfxuser
Data Base Name = SAMPLEDATA
Data Search Path = C:\PFX430;C:\PFX430\SAMPLE 
  1. Start up Visual Basic

    Visual Basic will automatically open a new form, ready for use.

  2. Add a Data Control

    Select the Data Control object from the Toolbox and draw one on the form. The default name for this object will be "Data1".

  3. Add Labels and Text Boxes

    Select the Label tool from the Toolbox and draw as many Labels as required on the form. Do the same with the Text Box tool. Each field required from the data file should have a corresponding Label and Text Box.

  4. Set Data Control Properties

    Set the following Data Control Properties.

    Caption = Members Data File
    Connect = ODBC;UID=pfxuser
    Database Name = PFXODBC
    DefaultType = 1 - Useodbc
    RecordSource = pfxuser.Member 

    The Connect property value "ODBC" is not available from the drop down list; it must be typed in.

    The Database Name "PFXODBC" is the Data Source Name configuration setting.

    For the RecordSource property, select the drop down list which will display the Powerflex Data Source Login form. Enter the relevant information and click OK. If the Data Source Login was successful, then a list of all of the data files in the SAMPLEDATA database will be displayed in the drop down list when you click it again. Select the MEMBER file.

  5. Set the Text Box Properties
    DataSource = Data1
    DataField = given_names 

    Select "Data1" as the DataSource value from the drop down list.

    To select the DataField value, select the drop down list which will display the Powerflex Data Source Login form. Enter the relevant information and click OK. If the Data Source Login was successful, a list of all of the fields in the RecordSource for Data1 (i.e. MEMBER) will be displayed in the drop down list when you click it again. Select the given_names field.

    Repeat this step for every Text Box.

  6. Set the Label Properties

    Set the Label Captions.

    Caption = Given Names:

    Repeat this step for every Label.

  7. Run the form

    Select Run|Start from the menu. This will generate the form displaying PFXplus data accessed via the Powerflex ODBC driver. Use the arrows on the Data Control to navigate through the MEMBER records.

    The form displays the following results.

    VB form for data accessed

Using SQL Statements

Structured Query Language statements can be used to return a record set and display it to a Data Bound List Box object in this way.

  1. Add a Data Control

    Execute step 2 from the previous example.

  2. Set the Data Control Properties

    Set the same Data Control Properties from step 4 of the previous example except for the RecordSource Property. Instead, set the RecordSource property of the Data Control to an SQL statement.

    RecordSource = select * from Member where sex = ‘M' order by surname 

    The SQL statement will return male members only, in surname order.

  3. Add the Data Bound List Tool

    From the Project Menu, select Components. Check the MS Data Bound List Control OCX.

  4. Add a Data Bound List Box

    Select the Data Bound List Box tool from the Toolbox and draw a List Box on the form.

  5. Set List Box properties

    Set the List Box properties to the following.

    DataSource = Data1
    RowSource = Data1
    ListField = surname

    Select Data1 from the drop down list to set the DataSource property and RowSource property. Select the surname field from the drop down list to set ListField.

  6. Run the form

    Select Run|Start from the menu bar. This will generate the form displaying PFXplus data accessed via PFXodbc. Only data that satisfies the criteria specified in the SQL statement will be displayed, as shown in the figure below.

    Data accessed via SQL

And there you have it! That is all that is necessary to access your PFXplus data files from MS Visual Basic.

The ODBC driver conforms to Microsoft ODBC version 2.5 and can be used with ODBC version 2.5 or later.

Contact Powerflex Corporation or your local dealer for further details.

Top of Page

Use PFXplus CCA Tools to Add Menus, Toolbars & Status Bars

Christine Charalambous – Powerflex Corporation – Australia

Actionbars, menus, toolbars and status bars among other controls, can be added easily to PFXplus applications by using the Common Controls Architecture (CCA) tools. The CCA tools come standard with PFXplus from version 4.22 onwards. They were developed specifically to assist PFXplus Windows developers to integrate many of the 32-bit Windows features into their applications without having to hard-code them in.

This article is a continuation of the "Migrating to Windows" article featured in the last issue of POWERlines. It will demonstrate the use of CCA to add menus, toolbars and status bars to your PFXplus applications. This Case Study uses the sample program PSAMPLE.PFX as the subject. The source code will be available by request to

CCA uses an external data file, CCAMENU.DAT, (similar to the MENU.DAT file in older versions of PFXplus), which controls the inclusion and context of menus, toolbars and status bars at individual program level. It is possible to define your own general types of menus, toolbars and status bars, or menus, toolbars and status bars specific to a single program by simply adding data records to this file. Alternatively you may choose to make use of the STANDARD menus, toolbars and status bars for which the data records already exist.

To use CCA it is necessary to include the file CCA.PFI which contains extensions of the macros used in WINSTD.PFI to control the look and feel of individual programs in respect of menus, toolbars and status bars. CCA.PFI conditionally loads a shared module MENUBARS.PTM which in turn loads a global module MENUIFCE.PTM. MENUIFCE transfers data from the CCAMENU data file to an in-memory table which is from then on responsible for creation of menus, toolbars and status bars for all programs. This is explained more fully in the CCA manual.

For a simple demonstration of modifying a program to use CCA, refer to the sample programs GMEM3 and GMEMCCA.

ADD CCA to source code

  1. Add CCA Object Definitions

    In continuation of the Case Study using PSAMPLE.PFX from the first article in this series, the Main Form pgPayment and the Subforms pgCheck and pgCredit must be defined as CCA objects. CCA has its own Main Form which is defined in the CCA.PFI file. For this reason every Form and Subform object in the hierarchy must "move down" one level - the Main Form pgPayment becomes a Subform and the Subforms pgCheck and pgCredit become SubformMinor Forms (i.e. children of the Subform pgPayment).

    In this example we will use the predefined "STANDARD" menus, toolbar and status bar which account for the words "STANDARD" below, respectively. Where the width and height of the Main Form are not specified here, the default is for the Main Form to fill the entire desktop.

    SubformMinor objects must be uniquely numbered, and their width and height defined. (If width is left at 0 the width of the minor Subform is set to be slightly less than that of the Subform image area for the window. The same applies to the height).

    #use CCA
    CCA_FormBegin pgPayment"Payments Entry"; "STANDARD" "STANDARD" "STANDARD" 370 240 CCA_FormSubform 1 pgPayment CCA_FormSubformMinorBegin 2 pgCheck 0 100 CCA_FormSubformEnd CCA_FormSubformMinorBegin 3 pgCredit 0 100 CCA_FormSubformEnd CCA_FormEnd

    When it is run, the program now appears with the STANDARD menus, toolbar and status bar. The status bar will receive the error messages that appear at the bottom of the screen in the character mode version.

    Screen Example for Credit Payment Type
    Form created using CCA

    The result is a great-looking Windows application but the menus are not yet fully functional. To define your own menus, toolbars or status bars instead of using the STANDARD ones, the appropriate records must be added to CCAMENU.MKD. The file then needs to be recreated or "made" in order for the changes to become manifest. This is done using MAKEDB.

  2. Add code to menus

    Each menu option (defined in CCAMENU), corresponds to a key poke, CHAIN argument or RUNPROGRAM argument. Each key poke should correspond to a KEYPROC in the program source code.

    The following is an extract taken from CCAMENU.MKD. These values are read into the CCAMENU.DAT file when the MKD file is "made" using the MAKEDB command above. From the extract we can see that selecting the Edit|Clear menu option will cause a F5 key poke which in turn will cause execution of KEYPROC KEY.CLEAR in the source code. Please refer to the CCA manual for more details.

    +"Clear\tF5","POKE F5","",
    +"Save\tF9","POKE F9","",
    +"Delete\tsF7","POKE sF7","S",
    +"Lookup\tF7","POKE F7","", 

End of Conversion

The resulting program is a fully functional Windows application – graphical user interface, menus, toolbars, status bars, Windows messaging, mouse control, etc. all achieved with some minor additions to the source code.

There are many more features that may be added to your programs, some of which are demonstrated in PFXplus Sampler including Animation, Buttons, Bitmaps, Tab Controls, and Look Up Tables to name a few. If you are interested in a free copy of Sampler please call Powerflex Corporation on +61 3 9888 5833 or e-mail to

This Case Study is intended as an example to demonstrate some of the basic steps involved in migrating to Windows in G-mode Plus. Another mode of operation supported by PFXplus for Windows is Event mode. E-mode requires object-oriented programming which would involve an extensive rewrite of procedural code.

In converting to Windows G-mode Plus, some programs will require more or less work, depending on their programming style, complexity and use of certain features which are not supported in G-mode. A more detailed and comprehensive guide to migrating to Windows is provided in the Common Controls Architecture Manuals.

Generally where programs satisfy the criteria specified at the beginning of the first article in this series, make extensive use of ENTERGROUP, ENTERMODE, ENTRY blocks and KEYPROCs and are well structured, converting to PFXplus for Windows should be a breeze.

An article on easy programming using ENTRY blocks rather than ACCEPT and MOVE TO statements will be featured in a future edition of POWERlines.

Top of Page

A Simple E-mail Program

(The source code for the programs mentioned in this article can be found on the download page of this Web site.)

David Bennett – Powerflex Corporation – Director Technical Services

The great thing about Windows is the fantastic range of functionality already built in and just waiting for you, the PFXplus for Windows developer, to take advantage of it.

E-mail is a case in point. In the past, you bought your e-mail software and installed it, and then the only way to send and receive e-mail was to run that software. Some vendors allowed you to purchase an import/export add-on kit, to let your software generate e-mails, but every flavour of e-mail was different. It was a brave developer indeed who attempted to add e-mail capability to their own software.

Today everything is different. Every version of Microsoft Windows now contains a built-in e-mail capability and a built-in way that your software can use it. Microsoft calls it the Messaging Application Programming Interface or MAPI for short. This article presents an application based on MAPI.

Actually, MAPI is pretty complicated. It consists of about 40 individual interfaces and several hundred functions which let you access virtually everything that Outlook and Exchange can do.

Fortunately, most of the useful and interesting things we might want to do have been collected into a simplified version of MAPI called Simple MAPI or SMAPI. SMAPI consists of just 12 functions. These functions allow you to

Depending on what drivers, services and transport agents you have installed, messages can be sent to Microsoft Mail, Exchange, cc:Mail, Internet mail, fax and other recipients.

In other words, SMAPI allows you to do most of the things most users want to do with e-mail.

Which brings us to the sample application. This neat little specimen is written using PFXplus for Windows running in event mode (E-mode). It uses the e-mail capabilities built into Windows to send e-mail messages and faxes using SMAPI. It loads the module W_MAIL.PFX which contains the structures used in SMAPI calls. This module in turn loads the module WMAPI.PFX, which encapsulates the necessary Windows function calls.

The Main Form looks like this.

E-mail form

This program was written by Peter Juliff of Vetware, who has kindly given permission for us to distribute it to interested customers. Using the program is simplicity itself.

This program has been tested sending messages to a number of recipients, including Microsoft Mail, Outlook, cc:mail, Internet e-mail and fax. We look forward to adding further functionality including the ability to receive e-mails. Keep an eye out in future editions of POWERlines.

The source code for this application is available by e-mail. Please send your request to and we shall be happy to send it back by return. Or get it from the download page of this Web site.

There is no charge for this – it's part of the service!

Top of Page

Using Macros to Create In-Memory Tables

Jon Wilson – NEXUS – Australia

In-memory tables are one of those features of PFXplus that once you start using them you wonder how you ever got by without them! Conceptually I like to think of them as dynamic arrays of type record (à la Pascal) with the bonus feature of being able to sort and access records via any field combination in the record. Their uses are many and varied – they can be simply used as VERY fast access files, an efficient sorting mechanism, or as an array of records. How many times have you reluctantly created an index on a file to produce a certain report when all that was required was an ability to sort a subset of a record selection based on an existing index? In-memory tables are perfect for this and result in a faster application as the overhead of maintaining that extra index is not required.

However, as implemented in standard PFXplus, in-memory tables are time-consuming and tedious to construct and a downright pain to modify if an extra field has to be added or the length of an existing field changed. I have created the following macros to simplify this creation or modification task and since using them have subsequently found that I use in-memory tables more frequently as their implementation overhead has dropped significantly. The macros are in Listing 2.


Below I have defined a simple table tmpfile to store information on people and hobbies. However, the restrictions on the number of fields and record length are those that apply to PFXplus files in general, so your in-memory file definition can be much more complex than the one which has been defined in Listing 1 below.

Listing 1: In-Memory Table Definition

Table definition

Listing 2: Macros

#command  MakeTable  
//    !1  File name  
//    !2  File number  
//    !3  Max records  
//    !4  Record Length  
#ifdef    mt$IncFieldOffset  
  integer mt$FieldOffset
  integer mt$MaxLen
  //Check defined rec len not exceeded
  procedure mt$IncFieldOffset integer FieldLen
    mt$FieldOffset = mt$FieldOffset + FieldLen
    if (mt$FieldOffset gt mt$MaxLen);
      gotoxy 24 0
      show 'Max rec length exceeded'

  #replace    !1  file(!2)
  #replace    !1.recnum   |fn!2,0

  mt$FieldOffset = 1
  #set a$ 0
  #set b$ !2
  mt$MaxLen = !4
  open_table  file(!2)    !4
  file_set    file(!2)    !3  1


#command FieldDef
  //  !1  Field name
  //  !2  File.Field Name
  //  !3  Field Type     'N', 'S', 'D'
  //  !4  Field Length
  //  !5  Points

  #replace    !1#      !A
  file_set    file(!b) 0 !a

  #ifsame !3 N
    field_set file(!b)   !a etnumber !4  mt$FieldOffset  !5
    #replace  !2   |fn!b,!a
  #ifsame !3 D
    field_set file(!b)   !a  etdate  3 mt$FieldOffset
    #replace  !2   |fd!b,!a
  #ifsame !3 S
    field_set file(!b)   !a etstring !4 mt$FieldOffset
    #replace  !2   |fs!b,!a

  mt$IncFieldOffset !4

Adding or changing fields is a snap since I generally only have to alter the field definition section, and never have to count up field offsets etc. as when using the standard approach. The value of the macro becomes very apparent when large and complex in-memory tables are used and it certainly removes that 'Oh no I now have to define an in-memory table' feeling in all cases.

Known problem: the debugger does not recognise the variables defined using the macro. For example, tmpfile.LastName could not be viewed in the debugger.

Improvements: It would be nice if the record length could be defined dynamically, and when defining the fields using the FieldDef macro that both the FieldName and file.FieldName did not have to be passed.

Since writing this article, Jon Wilson has provided some new and improved macros for creating in-memory tables and temporary indexes. Those with an adventurous spirit may want to download the source file and give the new macros a try.

Top of Page

Technical Tip No. 40

For PFXplus for Windows developers, here is a handy hint to take the potential tedium out of getting a handle on a control. Only specify the handle property of the control instead of the full object path. Here is an example.

//Object Definition
app myApp begin
form oMyForm{screen=oMember} begin
wedit oS1_E {wndw=S1_E}
//These two lines are equivalent hnd=myApp\oMyForm\oS1_E\handle() hnd=S1_E\handle()

Top of Page

Powerflex Technical Forum

Christine Charalambous – Powerflex Corporation

The Powerflex technical forum held on Thursday 8 October was a great success!

Nexus Presentation

With a turn up of over 20 people Jon Wilson and Richard de Meester of Nexus – with a brilliant presentation – demonstrated a PFXplus application that compiled and ran under character mode, GUI mode and under Unix. Yes, you heard right – the same PTC file was used in all cases, and the appearance of the application in GUI mode was nothing short of superb!

PFXplus for LINUX

Following the presentation by Nexus was a brief discussion by Gary Schmidt concerning the new PFXplus for LINUX version. See Powerflex News for the special introductory offer on PFXplus for LINUX.

PFXplus Crystal Reports Driver

A demonstration of the new PFXplus driver for Crystal Reports followed. Beta testing of this product has been completed and it is now in the process of being built. PFXcrystal is scheduled for release in the near future. We will be sure to let you know as soon as it becomes available.

New PFXbrowse and CCA Lookup

David Bennett demonstrated the new PFXbrowse for Windows and the new Common Controls Architecture tools, which have been added to PFXplus since the version 4.22 release including the new Lookup module.

New PFXplus ODBC Driver

And last but definitely not least, the long awaited ODBC driver was presented. PFXodbc has been scheduled for release in the very near future.

The next Technical Forum will be held in the first quarter of 1999. Make sure you stay tuned for details in the new year so you don't miss out!

Top of Page

What is this Thing Called Linux?

Gary Schmidt – Powerflex Corporation – Australia

Powerflex Corporation is proud to announce the release of PFXplus for Linux, version 4.30. The release of PFXplus for Linux, the increasingly popular UNIX alternative, adds to the range of operating systems supported by PFXplus. This article is intended as a brief introduction to Linux.

Linux is an operating system kernel that is functionally very similar to UNIX, and supports a wide range of features, many of which are found elsewhere only on powerful operating systems. Linux has been ported to an ever-increasing number of computer platforms. Linux is free software. Free in that you receive all of the source code for the whole operating system and are allowed to modify it and redistribute it as you please.

Linux was originally written by Linus Torvalds, a programmer from Finland, but now development has spread out into the wider world, courtesy of the Internet and the Free Software Foundation.

Traditionally, support for Linux was (and still is) obtained from the Internet and the various Usenet newsgroups devoted to Linux are extremely busy with questions and answers from users.

There are now several companies that package Linux distributions, and offer support services to Linux users. These include RedHat and Caldera.

The laissez-faire attitude to enhancement encouraged by the GNU Project means that Linux has more developers and more Beta testers than most commercial software developers can dream of. Developers range from the spotty teenage hacker, through the academic, to the professional programmer.

The primary web site for Linux is, but there are also regional sites, two of which are and

A wide range of application and system software has been developed for – or ported to – Linux, including most of the software developed for the GNU operating system. Linux distributions include software like:

Commercial Applications

These are just a few of the commercial applications that are available for Linux:

There are many, many more products available for Linux. I looked at the web site, which has over 1600 links to applications, including:

Most of these applications are available for installation without compilation. Many are freeware or shareware, and are in continuous development and enhancement.

One of the most attractive things about such applications is the dedication of the developers to fixing any problems that arise. Many problems are fixed within days or weeks of notification, rather than months.

What do I Need to Run Linux?

Linux will run on any Intel-based PC with an 80386 or better CPU – you don't need the latest, fastest hardware for it. Often, Linux applications run faster than the same application under Windows on the same hardware.

Linux will run quite well on an 80486-33 CPU, with only a few hundred megabytes of disk space. This means that all those old machines that are running out of steam trying to run Windows 95/98/NT will find a new lease of life with Linux.

Is Linux Year 2000 compliant?

Yes, Linux is Year 2000 compliant. However, like most 32-bit systems, it is not Year 2038 compliant. (Some 32-bit systems are, however, Year 2106 compliant.) Hopefully by then we will all be using 64-bit machines.

How Should I Use Linux?

  1. As a "traditional" UNIX system. Just hang some dumb terminals and/or smart X-based workstations off it.

  2. As a workstation. Linux comes with the X windowing system and the tools to connect to NetWare, NT and also UNIX servers.

  3. As a server. Linux comes with all the usual UNIX networking protocols, such as TCP/IP and NTFS, and adds a bonus (Samba) for those running NT or Windows 9x networks. (More about Samba later.) Linux also speaks IPX/SPX, so it can also be easily integrated into a NetWare environment.

The Halloween Documents

Some of you may have heard about or read the "Halloween" documents (if you haven't read them, visit, and may feel that this makes Linux or any "Open Source Software" somehow a "bad thing". Reading the original document(s) will probably be less contentious for those who do not have strong opinions on the matter, although the annotations are interesting.

DOS and Windows Software . . .

What will happen with my existing investment in MS-DOS, Windows-16 and Windows-32 software? There is DosEMU ( which supplies an MS-DOS emulator for Linux. The WINE project ( aims to support Windows-16 and Windows-32 programs on Linux. The WINE project maintains a searchable database of Windows programs and how well they run under WINE.

What is Samba?

Samba implements the Simple Message Block (SMB) protocol, used by LanManager and NetBIOS, on UNIX and other Operating Systems. This makes the Linux system visible to Windows 95/98/NT machines without having to use add-on software. Samba is available for many more systems than just Linux, a quick check of the primary Samba site,, has binary packages available for the following systems: AIX, SCO, HP, MVS, Solaris, and VMS, among others. Of course, the source code is available, so it can in theory be 'ported' to any operating system that supports TCP/IP. Samba allows a UNIX system to be set up as a file and print server in a network of Windows 95/98/NT machines, with access to all the mature backup and file handling tools available for UNIX systems.

Drawbacks or Difficulties

Given that this article may imply that Linux is the best thing since sliced bread, I should point out that Linux is, after all, a UNIX system, and does not come with a pretty GUI to do all the administrative tasks. This will change, as the GNOME Desktop Project ( aims to provide a full set of GUI tools for Open Source Systems, although many System Administrators prefer to use the command line.

Powerflex Corporation has released this new version of PFXplus with a port to Linux to coincide with its blossoming popularity. A special introductory offer is being extended for the first 3 months of the PFXplus for Linux release. Contact Powerflex Corporation or your local dealer for further details.

Top of Page

Powerflex News

Dialog Resource Editor

The Powerflex Dialog Resource Editor has been released by Powerflex Corporation as a package deal with PFXplus version 4.30 at no extra cost. The 32-bit Resource Editor has been made available to give our customers the opportunity to use it immediately. Detailed documentation for the Editor will be released at a later date.

PFXplus Driver for Crystal Reports

Finally the time has come. Beta-testing and a production version of the PFXplus driver for Crystal Reports have been completed and we are now in the process of building a release version. Not much longer to go now before you can access your PFXplus data files with powerful and professional-looking Crystal Reports.

New PFXplus for SCO UNIX

Powerflex Corporation has released a new version of the PFXplus Development System and Runtime for SCO Unix, version 4.30. This new version is now available.

Powerflex Closed over Xmas

Another year has passed and everyone here at Powerflex Corporation would like to wish all of our customers a Merry Christmas and a prosperous New Year. As with previous years, our Melbourne-based offices will be closed over the Christmas break from 4.00pm on 24 December 1998 and will reopen at 8.00am on 4 January 1999. The product dispatch department will reopen at 8.30 am on 4 January 1999.

Announcing Dennis

Powerflex Corporation welcomes Dennis Callegari, who has been employed as our new technical writer. Dennis has worked as a technical writer and science writer for 12 years, for clients such as the Department of Defence and a number of private companies in the software industry. In that time he has written and edited material for magazines, newsletters, user manuals, online help and the Web.

Dennis is the author of one published book – Cook's Cannon and Anchor (Kangaroo Press, 1994), which is about the loss, recovery, and preservation of artefacts from Captain Cook's ship Endeavour.

Dennis's interests outside work include kicking a footy with his son, playing word games with his wife, juggling (badly), and downloading shareware that he never has a chance to look at.

PFXplus for Linux Special Price

For three months from 1 December, Powerflex Corporation is offering a special introductory price for the PFXplus for Linux Development Licence. Contact Powerflex or your local dealer for further details.

Current Versions of Powerflex Release Software

Powerflex Developer's Kit 16/32-bit 4.23
Powerflex Developer's Kit 32-bit 4.30
Powerflex Runtimes 4.30
Powerflex SCO 4.30
Powerflex LINUX 4.30
Powerflex RS/6000 4.11
Powerflex HP 9000, Motorola 4.11
Powerflex Siemens, DEC 4.11
Powerflex Toolbox Source Code 2.63
PFX C-lib MSDOS 4.20
PFX C-lib Xenix/Unix 3.21
PFX C-lib for Windows 4.32
PFXsort for DOS, DOS-386, Win32 4.30
PFXbrowse 32-bit with Btrieve 2.00
PFX Software Protection 2.00

For further information contact Powerflex Corporation or your local dealer.

Top of Page