Page 1 of 1

ayuda por favor

PostPosted: Thu May 17, 2007 10:49 pm
by orosmagno
Hola
Gracias de Antemano por su ayuda

estoy con un programa el clip53 y la librería iolib
compilo con
caso 1
blinker myprog fi iolib blinker exe dual search blxclp53


pero me marca un error
BLX286 :1313 exception error 0D: general protection fault, code=000h
active host is vcpi (v7.00 i486 14920 kb)

caso 2
si lo compilo simple
blinker myprog fi iolib
si trabaja

el problema que al enlazar toda la aplicacion en el segundo caso no alcanza la memoria


que podrá ser

de antemano muchas gracias.

Elías Oros

PostPosted: Fri May 18, 2007 6:45 am
by Antonio Linares
Elías,

La librería iolib es compatible con el modo protegido ?

gracias

PostPosted: Fri May 18, 2007 12:46 pm
by orosmagno
BLX286 :1313 exception error 0D: general protection fault, code=000h
pero el blx286 de que es .

ya compile con blinker exe compress 5 y parece que ya no de ma el error

Gracias.

PostPosted: Fri May 18, 2007 2:39 pm
by Antonio Linares
El general protection fault es un error de protección general que indica que iolib posiblemente no sea compatible con el modo protegido.

Tienes el código fuente de iolib ?

no solo la libreria.

PostPosted: Mon May 21, 2007 6:56 pm
by orosmagno
No solo la libreria.

PostPosted: Tue May 22, 2007 7:46 am
by Antonio Linares
Necesitas conseguir una versión de esa librería compatible con el modo protegido.

O indícanos que hace esa librería y veremos si hay otra que te pueda servir

activa los puerto serial

PostPosted: Tue May 22, 2007 1:15 pm
by orosmagno
activa los puertos seriales para leer y escribir
los uso en una aplicacion de lector con trajetas de credito y debito.
Gracias.

Functions For IOLib
Values for INIT_PORT can be seen in IOLib.ch
Version 1.2r1
*******************************************************************************

INIT_PORT(Nx_port,Nbaud,Ndata,Nparity,Nstop,Nirq,@cIn_buffer) => log
Initializes the communication port and sets up the input bufferd stream
Pass:
Nx_port= base port value see IOLib.ch
Nbaud= The baud rate divisor see IOLib.ch for standard bauds
Ndata=data bits 5 to 8
Nparity= Parity value see IOLib.ch
Nstop=number of stop bits
Nirq=Interrupt number
cIn_buffer= a public String variable 512 bytes or larger, no more
than 32k, ie <Public cIn_buffer:=SPACE(4000) > This option may change
in the future to a numeric value for buffer size.
******************************************************************

OUTC(nVar,[nPort])
Sends a value out the communication port, default port is
the one used by INIT_PORT(), optional any port.
This function will wait a short time for the port to become
available.

nVar= a numeric value 0 to 255
nPort=hardware Port number to send the value
NOTE: nPort not available in BETA version.

******************************************************************

OUTCHR(@cString) =log
Spools a string out the Initialized port cString must not be larger
than 32k, and no smaller than 1 byte, it may contain imbeded null
bytes. The cString must remain public and can not be cleared until
the buffer is clear see OUTBUFSIZE()

Returns False if another stream is still spooling.

*******************************************************************

INCHR(nVar) => cVar
Returns one or more bytes communication port input buffer.
Maximum is INITSIZE-1
Note: Returns NIL if no byte available do not mistake with chr(0)

Example:
cVar:=INCHR(1)
do case
case cVAR=NIL
* do nothing
case cVar=chr(0)
* received break
otherwise
?? cVar
endcase

***************************************************************

UNINT_PORT()
returns NIL
Uninitializes the communication port, this MUST be done before
exiting program. Best use the following function.

EXIT PROCEDURE cleanup()
CLS
UNINT_PORT()
? "Port Uninitialized, program terminating............."
RETURN

*********************************************************

ISWORKING() =>Log
Returns TRUE if IRQ is working, the byte is set by the input/ouput
spooler.
********************************************************

ISONLINE() => log
Returns True if modem online
*********************************************************

IOLIB_VER() =>cString
Returns character string of IO version
**********************************************************

SETDTR([lVar]) =>log
returns .t. if DTR has been set, otherwise false optional lVar
will set the DTR .
EXAMPLE:
LOCAL l_DTR
l_DTR:=SETDTR(.T.)
*************************************************************************

SETRTS([lvar]) => log
returns .t. if RTS has been set, otherwise false optional lVar
will set the RTS .
EXAMPLE:
LOCAL l_RTS
l_DTR:=SETRTS(.T.)
**************************************************************************

DSR() => log Returns .T. if DSR set better than Xon/Xoff
**************************************************************************

CTS() => log Returns .T. if CTS set better than Xon/Xoff
**************************************************************************
Note: You may use DTR/DSR as a Hardware version of Xon/Xoff
or you may use RTS/CTS. Or none.


If changing the IRQ, you must use UNINT_PORT() before
using INIT_PORT()
**************************************************************************
INBUFSIZE() => Num
Returns a numeric value of how many characters remain in the inbuffer.
Input buffer can hold up to one less than the init size.

**************************************************************************
OUTBUFSIZE() => Num
Returns a numeric value of how many characters remain in the ouput stream.

**************************************************************************
INBUFCLR()
clears the input buffer, all waiting characters are lost.

**************************************************************************
OUTBUFCLR()
clears the output buffer, all waiting characters are lost.

**************************************************************************
CHKCRC(cString)=> cCrc

Returns a 3 byte string pertaining to passed string.
First byte is the checksum
Second and third are a 16 bit CRC
**************************************************************************

Microsoft (R) Library Manager Version 3.10
Copyright (C) Microsoft Corp 1983-1988. All rights reserved.

CHKCRC............io CTS...............io
DSR...............io INBUFCLR..........io
INBUFSIZE.........io INCHR.............io
INIT_PORT.........io INPORT............io
IOLIB_VER.........io ISONLINE..........io
ISWORKING.........io OUTBUFCLR.........io
OUTBUFSIZE........io OUTC..............io
OUTCHR............io OUTPORT...........io
SETDTR............io SETRTS............io
SIZEO.............io UNINT_PORT........io


io Offset: 00000010H Code and data size: 7ceH
CHKCRC CTS DSR INBUFCLR
INBUFSIZE INCHR INIT_PORT INPORT
IOLIB_VER ISONLINE ISWORKING OUTBUFCLR
OUTBUFSIZE OUTC OUTCHR OUTPORT
SETDTR SETRTS SIZEO UNINT_PORT


PostPosted: Tue May 22, 2007 8:04 pm
by Antonio Linares
Intenta contactar con el fabricante de esa librería para que te proporciones una versión compatible con el modo protegido.

Si no puedes conseguirla tendras que usar las funciones propias de comunicación del API de Windows y tendrás que modificar tu código fuente