Re: Using Visual Basic to Write System-Wide Hooks

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



Thanks much for the headsup, Jonathan.

Yeah, I kind of threw this in here because you guys were talking about
acquiring an address from a keyboard handler(?). :-) I'll have to reread
it from the top. Keyboard handler jumped into my head because I had
done it once with DOS, and some of the Interrupt vectoring started to
come back, albeit not a full memory recovery. Just little things here and
there and I had to grab an old Programmer's Guide to the IBM PC by
Peter Norton and that sparked some memories. So I was throwing up
some things from way back hoping they might help in some way.

And to Tom Esh... thanks. I had tried the C2.EXE /? but that turns
up wierd error messages:

fatal error C1007: unrecognized flag '/?' in 'p2'

so I mistakenly was thinking LINK.EXE /? would do the same. I
used strings.exe from sysinternals to dump the strings from c2.exe.
So my question should have been more towards to C2.EXE. :-)

A quick search through the text file created, for "-basic", turned up
only one instance of the word and all the other switches were right
there.

Thanks for the heads up on LINK.EXE /?. <g>

Might as well post the C2.EXE switches ?

-nowarn4715
-cap
-nodlp
-dlp
-S
-dos
-Fo#
-H#
-Zl
-Za
-Zd
-Zi
-Brepro
-Bd
-Fs#
-Fa#
-FA#
-pr
-QIfist
-QI0f
-QIfdiv
-p6gj
-noblend
-nolock
-noehopt
-ehopt
-bzalign
-basic
-nogen
-MT
-MD
-ML
-MTd
-MDd
-MLd
-loopopt
-Loop#
-EHa
-EHs
-vol#
-il#
-isize#
-ide
-QIf
-Fd#
-f#
-ef#
-off#
-db#
-W#
-O#
-A#
-G#
-fastcap
-stkfill#
-Gt#
-Gs#
-cbstring

--
Jim Carlock
Please post replies to newsgroup.

"Jonathan Wood" <jwood@xxxxxxxxxxxxxxxx> wrote:
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)