nao sei o que te fiz para vc ficar falando assim
Não se apoquente. Acho que você está acostumado a falar e não ser contestado. Agora que aparece alguém discordando, você deve achar que é uma rixa pessoal. Negativo. Pode ficar tranqüilo, que isso não existe. Pelo menos da minha parte.
nao é e nunca foi mentira.
Nunca disse que é mentira. Só disse que é errado. Não existe. Se você de fato montou um emulador e estudou essa matéria, usou seu aprendizado para criar uma dedução errada. Eu provo o que digo. A seguir...
Esta regra básica é que o emulador tem que cumprir para emular alguma coisa.
Código: Selecionar todos
LER INSTRUCAO
ENTENDER INSTRUCAO
TRADUZIR INSTRUCAO (OU GRAVAR ELA) PARA EXECUTAR COMO SE QUER
OBVIAMENTE, emular Z80 no PC é diferente. Dã!
É gigantesca essa sua disposição em teimar. Seu ego deve ser astronômico. Mas você não tem a mínima disposição para ir atrás das provas, buscando na Internet as matérias que eu comentei.
Por conta disso, resolvi lhe fazer o favor de procurar algo a respeito e encontrei um artigo da Microsoft. Aliás, foi muito fácil encontrá-lo. Veja uma parte:
Instruction Execution Unit
For Windows 2000 running on a computer other than an x 86-based processor, the Instruction Execution Unit emulates the Intel 80486 instruction set, which lets the computer run the binary application.
Tradução livre: no kernel NT que rode num computador que não possui um processador x86 compatível (exemplo: Windows 2K num Alpha da Sun), a unidade de execução de instrução emula o código do 80486. Simples de entender. Note: só nesse caso há uma conversão de instruções.
On an x 86-based computer, the Instruction Execution Unit acts as a trap handler , which captures instructions that cause hardware traps and then transfers control to the code that handles them. A VDM on an x 86-based processor supports enhanced-mode applications.
Tradução livre: num kernel NT, rodando em máquina X86 compatível, a unidade de execução captura instruções que causam traps de hardware (IN, OUT, flags, etc) e transfere o controle para o código que pode manipular isso corretamente, dentro do ambiente protegido do kernel NT. Igualmente simples de entender.
Visite a página da
Microsoft TechNet e veja com seus próprio olhos os detalhes do artigo completo.
Agora, por favor, não vá me dizer que a Microsoft também está errada.
Caia na real, Wagner. Esse seu "princípio básico" de emulação não existe. Você criou isso a partir de uma dedução errada. Veja: o verbo emular, pelo dicionário Aurélio, significa:
emular (acepção 4 - informática) Comportar-se (programa ou equipamento) como (outro), aceitando as mesmas entradas e produzindo as mesmas saídas, ainda que não com a mesma velocidade ou pelos mesmos processos.
Ou seja: emular não precisa necessariamente seguir essa regrinha que você criou. Conseguiu entender agora? Ou vai insistir?
Acho admirável essa sua dedicação de sempre aprender sozinho. Eu sei como é difícil. Foi assim que aprendi. Mas aprendi uma coisa que você, ao que parece, não aprendeu. Aprendi a
me contestar. Tenho um capetinha na minha imaginação que a todo instante me diz: "Você está errado! Isso não vai dar certo! Aí tem erro! Isso não é assim!". Ele consegue ser muito mais chato que eu. Então, me vejo obrigado a ir atrás do chamado "embasamento técnico". E faço esse infeliz ficar quieto, com cara de rolha. Ou dar risada na minha cara, caso o errado seja eu.
Quanto ao processmessage eu disse que era necessario a chamada e é, mas realmente nao é função dele aliviar o processamento
Aleluia! Finalmente você entendeu. Pelo menos essa parte. Parabéns.
mas como disse antes, até no delphi um SLEEP é necessário isto para o caso de processamento centralizado
A partir daqui já volto a discordar. Não conheço nenhum programador Delphi (bom ou ruim) que um dia tenha usado Sleep pra "aliviar" o processador. É a sua dedução. Errada. Mas é melhor deixar isso pra lá, senão isso vai longe.
ainda parte deste codigo, digo interrupções no caso de hardware e acesso a memoria tem que ser emulados na mesma forma que qualquer emulador (LER, ENTENDER, INTERPRETAR) se ler a documentação do NTVDM vai ver que é assim
Pela madrugada!!!!!!!!!!!!!
Eu venho dizendo isso desde o princípio! Essa emulação sim, existe e é até muito óbvia. A questão era essa sua idéia fixa de "ler, entender e traduzir" instruções de 16 pra 32 bits. Que é coisa que não acontece no micros X86, conforme eu já disse várias vezes, comprovado pelo artigo que citei.
o que pode dependendo do tipo de hardware usado gerar lentidão.
Mas você realmente tinha que encontrar alguma coisinha que pudesse justificar sua idéia de que o DOS é mais lento. Você quer que o DOS seja mais lento, de qualquer maneira. Mas não é. Pelo menos pra mim e alguns outros colegas desse fórum, que já disseram o mesmo que eu. Mas como você é teimoso e não prova nada, deixa pra lá.
Se você se sentir ofendido de novo, já peço desculpas de antemão.
[]'s
Maligno
http://www.buzinello.com/prg