Gilli, uma das grandes melhorias que tivemos, foi na modificação do clock do trem de pulso.
Na versão 4.01 era utilizado por padrão o timer do chip 8254 da placa mãe, tinha a opção de habilitar o Pentium Timer Mode, mas com as rotinas originais do PTM da versão 4.01 não consegui fazer funcionar corretamente em MS-DOS e muito menos em Windows.
Ainda não recebi as alterações que foram feitas na versão 4.2, mas o Dave está implementando estas melhorias na versão 5.
Trabalhamos bastante nesta rotina de clock, foram recriadas diversas vezes e as que se adaptaram melhor, foram às rotinas que utilizavam o clock do processador (RDTSC).
Somente conseguimos um resultado satisfatório utilizando as rotinas do Kernel do Windows, pois nenhuma rotina em assembly funcionou corretamente no Windows XP/2000/Vista, penso que seja devido à filosofia de Rings (níveis de permissões) destas versões do Windows, pois as nativas do Kernel funcionam em Ring 0.
Foram feitas diversas modificações nas rotinas de movimento e conseguimos obter 110 KHz na saída de passo. Quase o limite de transmissão da porta paralela que é de 150 KHz, só não consegui mais devido a perda de tempo no processamento das rotinas.
Apenas por curiosidade, na versão 4.01 no máximo que consegui obter na saída de dados foi 45 KHz.
Já encontrei na internet algumas soluções que poderiam aumentar a velocidade de transmissão da porta paralela, mas até o momento não tive nenhum resultado positivo.
Qualquer dúvida estarei a sua disposição!
Abraços,
Anderson