ayuda por favor

ayuda por favor

Postby orosmagno » Thu May 17, 2007 10:49 pm

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
orosmagno
 
Posts: 5
Joined: Thu May 17, 2007 10:36 pm

Postby Antonio Linares » Fri May 18, 2007 6:45 am

Elías,

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

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42122
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

gracias

Postby orosmagno » Fri May 18, 2007 12:46 pm

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.
orosmagno
 
Posts: 5
Joined: Thu May 17, 2007 10:36 pm

Postby Antonio Linares » Fri May 18, 2007 2:39 pm

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 ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42122
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

no solo la libreria.

Postby orosmagno » Mon May 21, 2007 6:56 pm

No solo la libreria.
orosmagno
 
Posts: 5
Joined: Thu May 17, 2007 10:36 pm

Postby Antonio Linares » Tue May 22, 2007 7:46 am

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
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42122
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

activa los puerto serial

Postby orosmagno » Tue May 22, 2007 1:15 pm

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

orosmagno
 
Posts: 5
Joined: Thu May 17, 2007 10:36 pm

Postby Antonio Linares » Tue May 22, 2007 8:04 pm

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
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42122
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para CA-Clipper

Who is online

Users browsing this forum: No registered users and 5 guests