[Gambas-user] Parallel Port - Kadaitcha Man

2010-04-03 Thread Bjorn Macintosh
Hiya,

I had already found and gone through the link you sent,  it is what part of
my code was based on.  If you have read it and can fully understand it can
you tell me what
iPortNumber should be in order for me to access the parallel port.  I was
thinking it would be 888 as a integer (378 in hex is 888 in dec) however I
don't appear to have got a result from this.

I tryed 378 aswell without result.  I would try polling each and every port
however I understand this would potentially break my pc. not my favourite
option.

Thanks
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


[Gambas-user] Parallel Port

2010-04-03 Thread Bjorn Macintosh
Hi all,

Does anyone have a program that interfaces with the parallel port, one
written in Gambas.  If you do would you be willing to share this program
with me as I am trying to write a parallel port interface and am struggling
to get my head around a few concepts.  mainly how to write to the port and
how to select pin's base 0 base1 and base2.

Any help would be greatly appreciated.  I sent a post two days ago holding
the full details on my program and what I am trying to do if you  need any
clarification.

Thanks
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


[Gambas-user] Parallel Port - Illegal Seek -

2010-04-02 Thread Bjorn Macintosh
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(100 & pinout[Fix(N)])
Clock = CInt(101 & 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