• Please review our updated Terms and Rules here

Rs-232

JGardner

Experienced Member
Joined
Jun 14, 2009
Messages
200
For perverse reasons, I'm bit-banging serial async on a HP 200LX.

I've done this many times before with microcontrollers - Disable
interrupts, send your start bit, wait for the next bit frame, send
b0, wait for next bitframe, send b1, and so on.

Pretty simple.

But it seems that globally disabling interrupts, "cli" in x86 asm,
still leaves some periodic task happening in the background on
the HP - I can see the results on my logic analyzer.

I whittled the routine down to simply toggling the output line
every few uS - At odd intervals I'll get a pulse that's 5 - 10 uS
longer than it should be...

Suggestions appreciated...

Jack
 
Good call, Chuck.

I was under the impression that the LX did not use DRAM, but searching the (badly indexed)
documentation for "DRAM" turns up at several possible exceptions; video RAM for one...

Even if that's not the specific problem, looking turned up a pile of stuff I was'nt aware of...

I was misled by a statement I saw somewhere that the Int normally used by PCs for refresh
is used for something else in the LX. Which may very well be true, but ...

Thanks again.

Jack
 
Jack, I wasn't aware that DRAM refresh in PCs used any interrupts--just a timer running a DMA channel in auto-initialize mode. Still, even without interrupts, that can cause blips in things that you've calculated down to the cycle on. Is NMI connected to anything on the 200LX?
 
In the LX it's a low-power scram, according to the docs.

I'm reasonably sure low-power is'nt the problem.

But PCs are a relatively new thing for me - I'm a

microcontroller dweeb.

Jack
 
Thanks, Nige. Something else I did'nt know.

So what happens to video DRAM when I shut the display off?

That is a low-power option...

Never mind - Dumb question.

Jack
 
Last edited:
Back
Top