Olá José,
JoséQuintas escreveu:- Que eu me lembre, linqueditar com Blinker sem modo protegido era pior do que com rtlink.
Calma colega, que exagero é esse? hehe...
Não tenho nada contra o modo EXTENDIDO, mas nem sempre há possibilidade para isso a contento. Modo PROTEGIDO é sempre preferível, mas as vezes a solução é encontrada bastando reduzir o uso da memória Convencional.
Observe essa linha:
Na configuração que passei, estou reservando 2MB da memória EXPANDIDA para uso do sistema. Confesso que já fiz outras sugestões assim, mas hoje é desnecessária. Isto tinha sentido no tempo de outrora, quando as vezes o computador tinha 8, 16 ou Excelentes 32MB de memória RAM. Então eu reservava 2MB, que é sufuciente para rodar um sistema em BLINKER sem problema.
No entanto, embora julgo desnecessário, se ele alterar apenas esta linha no script desta forma:
Será reservado 50% da memória EMS disponível (não tenho certeza, mas me parece que o limite máximo é 8MB).
Quanto a lib GASP5xPM.LIB
Aqui você tem razão, mas exige caracteristicas muito particulares na construção do sistema. Se um sistema foi totalmente construído com o GASPRO 4.0o não há problema. Quando existe personalização, e inclusão de outras libs, comumente há conflito. Me lembro que um deles inclusive, era a falha na abertura de arquivos. Mas é uma opção que pode ser tentada, nunca sugiro, porque mais frustra que soluciona.
Penso que essa lib foi projetada para ser usada com o EXOSPACE, e em BLINKER teoricamente bastaria usar a lib BLXRATEX antecedendo a lib BLXCLP52, mas não é simples assim.
Para visualizar o comportamento do sistema na memória, basta colocar no início do PRG principal uma atribuição de função, por exemplo as teclas CTRL+F1 (como eu usava):
E em qualquer PRG colocar a função Memorias():
Código: Selecionar todos
Function Memorias()
Local cMsg
cMsg := "INFORMACOES DE MEMORIAS:;"
cMsg += "Memoria 0 => "+Padl( Int( Memory( 0 ) ), 8 ) + ";"
cMsg += "Memoria 1 => "+Padl( Int( Memory( 1 ) ), 8 ) + ";"
cMsg += "Memoria 2 => "+Padl( Int( Memory( 2 ) ), 8 ) + ";"
cMsg += "Memoria 3 => "+Padl( Int( Memory( 3 ) ), 8 ) + ";"
cMsg += "Memoria 4 => "+Padl( Int( Memory( 4 ) ), 8 )
Alert( cMsg )
Return Nil
Após abrir o sistema, pressionar a(s) tecla(s) de função que foi definida, como neste neste exemplo: CTRL+F1 para ver o resultado. O que importa são as memórias "Zero" e "Quatro", respectivamente a memória 0 = Convencional (ou área dos 640K), e memória 4 = Expandida disponível. Após várias operações no sistema, pode repetir isso, e nota-se que a memória "Zero" tem insignificante alteração, enquanto a memória 4 segura o tranco.
Olá Ronei,
roneiluft escreveu:não sei se estou fazendo da melhor forma que existe e gostaria que saber como você as faz
Calma também colega. não sou expert assim. hehe...
Acho difícil opinar sobre qual forma ser a melhor, e elas são construídas com bastante peculiaridade com cada situação. Penso que o importante é funcionar corretamente. Talvez a melhor forma para que nós todos possamos opinar, seria você postar um exemplo de como você faz e assim talvez podermos dar sugestões.