Página 1 de 1

IoLib X Blinker 6

Enviado: 20 Dez 2006 10:59
por jmtofoli
Ola pessoal.
Recentemente usei a iolib para fazer a leitura da serial de um equipamento de leitura de PH, porem ao incluir a rotina no sistema e tentar compila-lo usando o blinker em modo extendido, o blinker me retorna o seguinte erro:
BLX286 : 1313 : General protection fault.
Se compilo o sistema sem a instrução "blinker executable extend", o executavel é gerado, porem, não consigo roda-lo por falta de memoria...

Qualquer dica sera bemvinda pois o caso é de extrema urgencia.

Um abraço

Julio Tofoli

Enviado: 20 Dez 2006 11:15
por Clipper
Infelizmente a IO.LIB não é compativel com o modo protegido, por isso dá o GPF.

Você terá que tentar liberar mais memória ou buscar outra lib.

Poste seu LNK e maiores detalhes sobre seu sistema e SO para tentarmos lhe ajudar.

Até logo.

Marcelo

Enviado: 20 Dez 2006 11:28
por vagucs
vc terá que usar uma lib serial compativel com modo protegido, sugiro o uso da CTCOM que faz parte da CT, melhor, da CTP que é a CAtools para o clipper em modo protegido.

Enviado: 20 Dez 2006 11:45
por jmtofoli
Ola Marcelo!

Meu lnk ta bem simples agora, fui tirando e tirando coisas fico nisso ai. Forma que esta abaixo eu usei para compilar com o rtlink, porem o .exe não consegue ser carregado por falta de memoria.

Acho q vou seguir a dica do vagucs e usar a ctcom mesmo.

Grato pela força!

Julio
  • #c.lnk

    fi balanca,
    rotinas,
    sel_cad,
    man_pes,
    man_rati,
    man_ren,
    man_negc,
    sel_rel,
    sixcdx @six3

    output balanca
    lib \maxsys\lib\maxsys, \maxsys\lib\abre_cdx, \maxsys\lib\ct, \maxsys\lib\iolib

Enviado: 20 Dez 2006 12:19
por jmtofoli
Aproveitando a deixa, caso alguem tenha algum exemplo do uso da ctcom, ficaria grato em receber...

Julio Tofoli

Enviado: 20 Dez 2006 12:26
por Clipper
Seu programa não parece ser muito grande, acho que roda sem problemas em modo real apenas fazendo algumas modificações no LNK e utilizando o Blinker.

Se você for rodar no Winows 98 também tem algumas modificações no AUTOEXEC.BAT CONFIG.SYS e HIMEM.SYS que devem solucionar seu problema.

Vamos por partes :

LNK

BLINKER INCREMENTAL OFF
BLINKER OVERLAY PAGEFRAME ON
BLINKER EXECUTABLE CLIPPER //F:200 //DYNF:8 //E:1024
BLINKER EXECUTABLE NODELETE
BLINKER EXECUTABLE COMPRESS 9

NOBELL

BEGINAREA
#COLOQUE AQUI A LISTA DOS SEU PROGRAMAS
FILE SEUPROG1
FILE SEUPROG2
FILE SEUPROG3
FILE SEUPROG4
ENDAREA
LIB C:\CLIPPER5\LIB\CLIPPER
LIB C:\CLIPPER5\LIB\EXTEND
LIB C:\CLIPPER5\LIB\TERMINAL
LIB C:\CLIPPER5\LIB\DBFNTX
LIB \maxsys\lib\maxsys,
LIB \maxsys\lib\abre_cdx
LIB \maxsys\lib\ct
LIB \maxsys\lib\iolib

S e você usa Windows 98 :

CONFIG.SYS (que eu recomendo)

DEVICE=C:\WINDOWS\HIMEM.SYS
DOS=HIGH,UMB
FILES=220
BUFFERS=32
STACKS=0,0
REM NADA MAIS QUE ISSO

AUTOEXEC.BAT

REM RECOMENDO O MINIMO NECESSÁRIO
REM SE POSSIVEL NADA ALÉM DE :

PATH=C:\WINDOWS;C:\WINDOWS\COMMAND

REM E ALGUAM OUTRA CONFIGURACAO QUE VOCÊ PRECISE
REM VOCÊ NÃO PRECISA DO SET CLIPPER AQUI POIS JÁ ESTÁ NO LNK

HIMEM.SYS
Teste com as configurações no AUTOEXEC e CONFIG.SYS
Se não funcionar avise aqui no fórum que vamos para esta parte
Obs. Lembre-se de reiniciar o micro após as alterações

Creio que deve funcionar pois já vi sistemas bem mais pesados em modo real funcionando.

Até logo.

Marcelo

Enviado: 20 Dez 2006 13:12
por jmtofoli
Fala Marcelo.

O lnk anterior ao que te mandei era muito parecido com esse.
Fiz o teste com as opções q vc colocou, porem ainda assim o sistema não consegiu abrir...

Como estou sem nenhuma maquina com win98 por aqui, fiz os testes no xp e 2003.

O executavel esta com 1.2MB, e no xp não consegui liberar mais que 655k de memória.

Vou tentar fazer testes numa maquina win98, com certeza consigo tirar mais alguma coisa de memoria dela.

Grato pela força!

Julio Tofoli

Enviado: 20 Dez 2006 13:53
por Clipper
Outra opção seria compilar seu sistema com o xHarbour, eu acho que não existe uma versão IO para o xHarbou mas teria uma maneira simples de contornar o problema.


Até logo.

Marcelo

Enviado: 20 Dez 2006 14:48
por vagucs
Sugiro que usem o

BLINKER EXECUTABLE COMPRESS 1


Assim a tbaela de nomes de funções fica comprimida, o DClip nao consegue recuperar ela diretamente e o EXE fica bem menor.

Enviado: 20 Dez 2006 16:30
por jmtofoli
Valeu galera!!
Com as dicas de vc's conseguir resolver o problema.
Acabei usando a ctcom mesmo, funcionou perfeito...

Obrigado a todos e um Feliz Natal!!

Julio Tofoli