Subject: RE: Tech Support Date: Wed, 21 Apr 1999 16:37:56 -0400 From: Victor Waseleski To: "'fredfox@weru.ksu.edu'" Hi Fred, Here is a general description of the interface for the PPIO-DIO24H. We no longer distribute the Quick Basic library the manual refers to. The only programming support that we provide is the Universal Library which is sold separately for $49.00. This description will help you if you want to program the board at the register level. If you have any questions you can let me know. TYPICAL PC/AT/PS2 PARALLEL PORT BASE ADDRESSES PHYSICAL (HARDWARE IO) ADDRESSES PORT PC/XT AT PS/2 LPT1 (40:8) 3BC 378 3BC LPT2 (40:A) 278 278 378 LPT3 (40:C) 3BC 278 THIS TABLE IS BASED ON DEFAULT VALUES. ASSIGNMENTS ARE HIGHLY DEPENDENT ON OTHER SOFTWARE DRIVERS. THE USER IS ADVISED TO USE PHYSICAL ADDRESSES AS DESCRIBED IN THE MANUAL. BASE + 0: DATA TO PPIO (8-BIT) BASE + 1: DATA FROM PPIO (4-BIT) BASE + 2: CONTROL SIGNALS TO PPIO (RD, WR, ADDR, INIT) PROGRAMMING: THE PARALLEL PORT HAS 8-BITS OF LATCHED DATA, 4-BITS OF CONTROL OUTPUTS, AND 5-BITS OF STATUS INPUTS. THE 8-BIT DATA PORT WILL BE USED FOR ADDRESS OR DATA TO THE PPIO. THE CONTROL OUTPUTS WILL BE USED TO COMMAND ADDRESS LATCH, WRITE DATA, READ DATA OR INITIALIZE. 4 OF THE STATUS INPUTS WILL BE USED AS DATA INPUT IN 4-BIT NIBBLES, PLUS AN INTERRUPT SIGNAL. ------------------------------------------------------------------------------- BASE + 0 : DATA OR ADDRESS TO PPIO. SELECTED BY WR OR ADDR SIGNAL BASE + 1 : DATA READ FROM PPIO IN 4-BIT NIBBLES BASE + 2 : CONTROL SIGNALS TO PPIO. RD, WR, ADDR, OR INIT CONTROL SIGNALS: (BASE + 2): PIN BITSIGNAL DESCRIPTION COMMON NAME 1 0WRITE STROBE -STROBE 14 1 READ STROBE -AUTO LF 16 2 -INIT/ENABLE-INIT 17 3 ADDRESS STROBE -SLCT IN 4 IRQ EN (SW ONLY; ENABLES ACK TO IRQ7) 5 NA 6 NA 7 NA ------------------------------------------------------------------------------- READ DATA SIGNALS: (BASE + 1: PIN BITSIGNAL DESCRIPTION COMMON NAME 0 NA 1 NA 2 NA 15 3 READ DATA 0 OR 4 ERROR 13 4 READ DATA 1 OR 5 SLCT OUT 12 5 READ DATA 2 OR 6 PAPER OUT 10 6 PATH FOR INTERRUPT, IF USED ACK 11 7 READ DATA 3 OR 7 -BUSY ------------------------------------------------------------------------------- WRITE DATA SIGNALS: (BASE + 0): PIN BITSIGNAL DESCRIPTION COMMON NAME 2 0WRITE DATA OR ADDRESS D0 3 1WRITE DATA OR ADDRESS D1 4 2WRITE DATA OR ADDRESS D2 5 3WRITE DATA OR ADDRESS D3 6 4WRITE DATA OR ADDRESS D4 7 5WRITE DATA OR ADDRESS D5 8 6WRITE DATA OR ADDRESS D6 9 7WRITE DATA OR ADDRESS D7 Basic Example for reading and writing data to a ppio-dio24 The base address is 378 (hex), which is commonly LPT1 for an AT Typical base addresses for an AT: LPT1 378 (888 dec) LPT2 278 (632 dec) LPT3 3BC (956 dec) Register usage on PPIO: BASE + 0: DATA TO PPIO (8-BIT), USED FOR WRITE DATA AND PPIO ADDRESS BASE + 1: DATA FROM PPIO (4-BIT) BASE + 2: CONTROL SIGNALS TO PPIO (RD, WR, ADDR, INIT) ' INITIALIZE: ' USE BASE + 2 (CONTROL PORT) OUT &H37A, 0 ' PPIO IS RESET OUT &H37A,4 ' PPIO IS IDLE ' SET UP PPIO-D24H CONTROL BYTE (PPIO ADDRESS 3) OUT &H37A,12 ' ACTIVATE THE ADDRESS STROBE OUT &H378,3 ' SEND PPIO ADDRESS 3 ON 8-BIT WRITE PORT OUT &H37A,4 ' ZERO GETS LATCHED INTO ADDRESS DECODER ' WRITE DATA (TO ADDRESS 3, AS SET UP ABOVE) ' SET UP OUT &H37A,5 ' ACTIVATE THE WRITE STROBE OUT &H378,144 ' SET UP PORT A AS INPUT OUT &H37A,4 ' DATA IS LATCHED TO PPIO ADDR 3 ' ' SET UP PPIO-D24H PORT A (PPIO ADDRESS 0) OUT &H37A,12 ' ACTIVATE THE ADDRESS STROBE OUT &H378,0 ' SEND PPIO ADDRESS 0 ON 8-BIT WRITE PORT OUT &H37A,4 ' ZERO GETS LATCHED INTO ADDRESS DECODER ' READ DATA (FROM PPIO-DIO24 PORT A)... SINCE THE DATA IS SKEWED AND CAN BE READ BACK 'ONLY ONE NIBBLE (4 BITS) AT A TIME THE FOLLOWING PROCEDURE WILL RETURN A BYTE IN 'THE VARIABLE "Y". THE HIGH NIBBLE IS READ BACK 1ST, THEN THE LOW NIBBLE ' GET HI NIBBLE DATA OUT &H37A,6 ' ACTIVATE THE READ STROBE HINIB = INP(&H379) ' HI NIBBLE RAW DATA HINIB = (HINIB AND &H80) + 2 * (HINIB AND &H38) OUT &H37A,4 ' DE-ACTIVATE READ STROBE, POINT TO LO NIB ' GET LO NIBBLE DATA OUT &H37A,6 ' ACTIVATE READ STROBE LONIB = INP(&H379) ' LO NIBBLE RAW DATA LONIB =(LONIB AND &H80) / 16 + (LONIB AND &H38) / 8 OUT &H37A,4 Y= HINIB + LONIB ' Y IS THE READ DATA BYTE Best Regards, Victor Waseleski Technical/Sales Support ComputerBoards, Inc. www.computerboards.com (508)946-5100 T (508)946-9500 F -----Original Message----- From: fredfox@weru.ksu.edu [mailto:fredfox@weru.ksu.edu] Sent: Monday, April 19, 1999 12:36 PM To: techsupport Subject: Tech Support Name fred fox Phone: 785-532-6694 Email: fredfox@weru.ksu.edu Hardware: ppio-dio24h Software: custom OSystem: DOS Comments: The manual indicates that parallel port interfacing to the digital io card is explained in "BASIC CALL" which was not provided with the card. I did not find it archived anywhere on the web site or included with instacalc. Is it part on the universal library? i would like a copy of this file to enable me to make the transition from a cio-dio24h to the ppiopdio24h. Is it possible for you to provide this file so I can use the programming example.