On 01/04/2013 10:27 AM, john s wolter wrote:
> It's the clock, just the clock.  It's a square wave usually, the old up
> and down.  Pin 19, CLK, on the Intel 8086 DIP
> When emulating the speed of a 8088, 8086, 80286,... CPUs you need to
> emulate the Clock cycles
> -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_...etc...
> So sticking in NOPs may not work.
>   -_nopnopnop-_nopnopnop-_nopnopnop-_...etc
> ...the Clock cycles are still too short.  You want...
> -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_...of the correct cycle length,
> ..the infamous buss instruction T-state lengths are what this is about.
> You need to emulate at the CPU buss T-state level.
Hi John,
What I had to do was to write a routine that would work with pretty much 
any PC as it was. If I remember correctly (this was 15 or 20 years ago 
and I don't have the code in front of me), I had to send a signal to the 
encoder, wait for a certain minimum number of microseconds, then read 
the output register. I used an EXTERN int that specified the number of 
CPU cycles to wait. This was initialized when the program that was using 
the digital encoder started. All the operator had to do was to run a 
test program that tried different numbers of wait cycles until it 
stopped getting garbage from the encoder. That gave the number of wait 
cycles for that PC. This was in the good old days when users would 
actually calibrate their equipment rather than the other way round.


Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and
much more. Get web development skills now with LearnDevNow -
350+ hours of step-by-step video tutorials by Microsoft MVPs and experts.
SALE $99.99 this month only -- learn more at:
Freedos-user mailing list

Reply via email to