NOUVEAU PROGRAMMING WITH ISA AND PCMCIA CARDS

A new way of programming ISA and PCMCIA cards on USBISA and USBPCMCIA family products using ArsGui utility

1. Introduction



This article describes the new way of programming of ISA and PCMCIA cards, which are mounted on our USBISA family of products, or USBPCMCIA product.

We have number of customers who have ISA and/or PCMCIA cards which as a hardware range from relatively simple, to very complex, and in the same time have relatively simple way of initializing these cards - to let them start working.

There are 2 existing ways to deal with an ISA or PCMCIA cards mounted on USBISA family or USBPCMCIA:

  • To use our Universal Software Layer - with the existing binaries of the ISA or PCMCIA card software
  • To use our SDKBUS kit - to convert the source of the software

    The first of the above ways has limitations and covers specific cases. In addition the existing ISA / PCMCIA binaries are fixed and cannot be easily modified.

    The second way require good programming skills and familiarity with particular compilers or development environment.

    We have recognized the need of providing a new way of programming which will be useful for all of our users. We have implemented additional functionality in our ArsGui.exe utility to allow simple and easy ways of programming of ISA and PCMCIA cards.

    2. How do I program with ArsGui utility?

    2.1. Commands

    The programming is done by using of the standard set of commands to access the memory and i/o space of an ISA and PCMCIA card and the new commands for control of the commands execution.

    To get familiar with the programming - please use one ISA or PCMCIA card mounted on USBISA or USBPCMCIA and run ArsGui.exe utility.

    2.6. Specifics

    The way described above applies to non Plug and Play ISA card mounted on USBISA type cards.

    Plug and Play ISA cards mounted on USBISA family of cards, or a PCMCIA card mounted on a USBPCMCIA need to be configured in the proper way - to have a particular i/o or memory address assigned to them.

    3. Examples

    3.1. An example of ISA i/o card on USBISA

    In our SDKBUS we have number of working examples of reading/writing of sector/s from a hard disk using a standard ISA input/output card - with a floppy and IDE controllers and 2 serial and a parallel ports.

    To run the example, please use one ISA input/output card, mounted on an USBISA type card - USBISA, USBISA-sl, USBISA-x3 or USBISA-x7 card. You will need to connect an IDE cable to a hard disk, make sure that the hard disk jumper is selected as master/single, connect an USB cable to the host and to USBISA and power on the hard disk.

    Start ArsGui, select the first driver and type the following commands -

  • outb 1f2 1
  • outb 1f3 1
  • outb 1f4 0
  • outb 1f5 0
  • outb 1f6 a0
  • outb 1f7 20
  • inb 1f7
  • inw 1f0 (multiple times)
    The above sequence reads one sector, the first one (normally the partition table), of the hard disk.

    3.2. An example of PCMCIA + CF card on USBPCMCIA

    In our SDKBUS we have one example of reading/writing of sector/s from a Compact Flash (CF) card mounted on a PCMCIA to CF adapter.

    To run the example, please use one CF card + PCMCIA to CF adapter, mounted on an USBPCMCIA card. You will need to configure the CF card, using the ArsEnum utility to a particular I/O address - for ex. 170.

    Start ArsGui, and type the following commands -

  • outb 172 1
  • outb 173 1
  • outb 174 0
  • outb 175 0
  • outb 176 a0
  • outb 177 20
  • inb 177
  • inw 170 (multiple times)
    The above sequence reads one sector, the first one (normally the partition table), of the CF card.

    4. Conclusion

    The described way of programming is simple, straightforward and easy. We appreciate the feedback from our customers and may add more functionality to the ArsGui utility.