Hi All, I am writing a parallel port interface, however I am struggling with how to write to the parallel port. Below I have included the code that I have used. Following that I have included the BASIC code that I am bastardizing.
My Gambas version is Gambas2.13 I am running Linux Mint 8 I do have a parallel port on my PC. It is '0378' - '037a' and '0778' - '077a' The error code I am getting is "System error. illegal seek" Thanks in advance for any help anyone can give. ---------------------------------------------------------------------GAMBAS2 CODE FOLLOWS------------------------------------------------------ ' Gambas module file PUBLIC SUB Main() DIM N AS Integer DIM pin AS Integer DIM pinout AS Integer[] = [0, 0, 0, 0, 0, 0, 0, 0] DIM pump AS Integer DIM Ptime AS Integer DIM Clock AS Integer DIM UClock AS Integer DIM DClock AS Integer DIM commit AS Integer DIM poweron AS Integer DIM switch AS Integer DIM gate AS File DIM base0, base1, base2 AS Integer base0 = 0 base1 = 1 base2 = 2 poweron = 64 commit = 144 switch = 17 UClock = 130 DClock = 128 gate = OPEN "/dev/parport0" FOR READ WRITE SEEK #gate, base0 WRITE #gate, poweron FOR Ptime = 1 TO 2000 STEP 1 NEXT SEEK #gate, base2 WRITE #gate, switch GOTO START CommitChanges: FOR N = 0 TO 7 STEP 1 pump = CInt(1000000 & pinout[Fix(N)]) Clock = CInt(1000001 & pinout[Fix(N)]) SEEK #gate, base0 WRITE #gate, pump FOR Ptime = 1 TO 2000 STEP 1 NEXT SEEK #gate, base0 WRITE #gate, Clock FOR Ptime = 1 TO 2000 STEP 1 NEXT SEEK #gate, base0 WRITE #gate, pump NEXT FOR Ptime = 1 TO 2000 STEP 1 NEXT FOR N = 1 TO 16 STEP 1 SEEK #gate, base0 WRITE #gate, UClock FOR Ptime = 1 TO 2000 STEP 1 NEXT SEEK #gate, base0 WRITE #gate, DClock NEXT FOR Ptime = 1 TO 2000 STEP 1 NEXT SEEK #gate, base0 WRITE #gate, commit FOR Ptime = 1 TO 2000 STEP 1 NEXT SEEK #gate, base0 WRITE #gate, poweron GOTO PrintPinout PrintPinout: FOR N = 0 TO 7 STEP 1 PRINT pinout[Fix(N)] NEXT GOTO START PinSelectFail: PRINT "You have selected a pin that does not exist, careful as this may cause a divide by 0 and end the universe, Select between pin 0 and pin 7" GOTO START START: PRINT "What input do you want to toggle? (pins 0 -> 7 are outputs, Pin 8 is the activation sequence)" INPUT pin IF pin < 0 OR pin > 8 THEN GOTO PinSelectFail ELSE IF pin = 8 THEN GOTO CommitChanges ELSE IF pinout[Fix(pin)] = 0 THEN pinout[Fix(pin)] = 1 ELSE IF pinout[Fix(pin)] = 1 THEN pinout[Fix(pin)] = 0 ENDIF GOTO PrintPinout END ---------------------------------------------------------------------Gambas2 END------------------------------------------------------------------------ ---------------------------------------------------------------------BASIC CODE FOLLOWS------------------------------------------------------ BASE0=&H378 'SWITCH POWER AND OUTPUTS ON OUT BASE0, &H80 OUT BASE0 + 2, 11 'DEFINE ALL DIGITAL OUTPUTS [OUT(N)] AS BEING OFF (0) FOR N = 0 TO 7 DOUT(N) = 0 NEXT N DOUT=0 START: INPUT "WHICH DIGITAL OUTPUT DO YOU WANT TO TOGGLE (0 TO 7)...."; N IF N < 0 OR N > 7 THEN GOTO START N = FIX(N) DOUT9N0=ABS(NOT (-DOUT(N))) ' THIS LINE TOGGLES THE OUTPUT 'CREATE COMPLETE BYTE FOR IC3 CALLED DOUT FOR N = 0 TO 7 IF DOUT(N) = 0 THEN DOUT = DOUT AND NOT (2^N) ELSE DOUT = DOUT OR 2^N ENDIF NEXT N 'SEND 8 CLOCK PULSES AND DIGITAL OUT DATA (ALL ZERO'S) FOR BIT = 1 TO 8 B = 8 - BIT BYTE = ((DOUT AND 2^B) / 2^B) OR &H80 OUT BASE0, BYTE OUT BASE0, BYTE OR 2 OUT BASE0 BYTE NEXT BIT 'SEND ANOTHER 16 CLOCK PULSES TO SHIFT THE DATA INTO IC3 FOR BIT = 9 TO 24 OUT BASE0, &H82 OUT BASE0, &H80 NEXT BIT 'LOAD IC3 OUT BASE0, &H90 OUT BASE0, &h80] ---------------------------------------------------------------------BASIC END------------------------------------------------------------------------ Bjorn Macintosh ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user