Re: Using Visual Basic to Write System-Wide Hooks

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



Jim,

> I keep thinking back to DOS days, where you'd set up something
> in "high memory", revector from the old Interrupt address to a new
> address, and then inside the new address, do what needs and then
> jump to the old Interrupt address and allow that old Interrupt to
> return back to the command prompt (or whatever program you
> were configuring). It's been such a long time since I messed with
> that kind of stuff, I don't remember how I found where the Interrupt
> was located in memory. Maybe it was a specific Interrupt that
> returned the address of an Interrupt vector table.

BTW, if you want to get more info on this, you can download showvect.zip
from http://www.softcircuits.com/sw_dos.htm. This is a compact DOS program
that displays the address of each interrupt. Complete assembler source code
is included.

The code, while it could use DOS interrupts to obtain interrupt addresses,
reads the addresses directly from low memory (starting at 0000:0000).

--
Jonathan Wood
SoftCircuits
http://www.softcircuits.com
Available for consulting: http://www.softcircuits.com/jwood/resume.htm


.



Relevant Pages

  • [PATCH] spelling fixes: arch/ppc/
    ... then we should use the board info from the bd_t ... In a effort to minimize memory usage for embedded applications, ... + * Interrupt setup and service. ... * Implement errata work arounds for the GT64260A. ...
    (Linux-Kernel)
  • Re: Forth as an operating system
    ... service to I/O events or the lowest OS overhead in general. ... We say that an interrupt cannot be the fastest because it ... We say that multiple memory operations cannot ... ISR are the fastest solution possible. ...
    (comp.lang.forth)
  • Re: Vectored Interrupt Fetch
    ... clock cycles involved to fetch the address from memory. ... If the interrupt vector table is located anywhere in memory it will ... But that means the TLB misses must also be considered, ... One reason to not put a table in memory is to simplify cpu design ...
    (comp.arch)
  • Re: How interrupts work (x86 vs. C64)
    ... to my code (which ended with jump to original address of interrupt) the ... I've read that even in real mode you can have the IVT ... anywhere in memory by setting its address using LIDT, ... For RM, DOS and DOS programs, don't check to see if the ...
    (comp.lang.asm.x86)
  • Re: Handling high UDP throughput
    ... The product that uses this sustains 540MbS with a 38kHz interrupt running using more than half the processor's power, so a lot goes on in the system but a lot of time is available for TCP/IP. ... The Ethernet driver was optimized, the memory movement was optimized (just using an inline memcpy that does a DMA transfer adds 30% to the effective speed), the IP checksum was in assembly, and a zero-copy TCP/IP stack was required. ... How much TX buffers did you have? ...
    (comp.arch.embedded)