Article View: alt.msdos.programmer
Article #40TSR not working
From: vincent
Date: Wed, 04 Nov 1992 18:09
Date: Wed, 04 Nov 1992 18:09
97 lines
2216 bytes
2216 bytes
Ok TSR freaks, why this litle one doesn't work
--------------------- snip snip -------------------------- makefile
CFLAGS = /Fc /Zi /f /Od /Gs /AS /W4 /nologo
main.exe : main.obj
cl /Zi /Fm main.obj
.c.obj:
cl /c $(CFLAGS) $(@B).c
--------------------- snip snip --------------------------- main.c
#include <stdlib.h>
#include <dos.h>
#include <bios.h>
#define CODESEG _based(_segname("_CODE"))
#define MK_FP(seg,ofs) ((void _far *) ((((long)seg)<<16) + (long)ofs))
#define PARAGRAPHS(x) ((FP_OFF(x) + 15) >> 4)
typedef void (interrupt _far *INTVECT) ();
struct {
INTVECT old_timer;
unsigned char _far * CODESEG tsrstack;
int oldSP,
oldSS,
oldDS,
ds_save,
seg_stack,
off_stack,
retadd,
tick_me;
} CODESEG data;
void ctimer (void)
{
data. tick_me++;
}
void _interrupt _far new_timer (void)
{
_asm {
mov cs:data. oldSS, ss
mov cs:data. oldSP, sp
mov cs:data. oldDS, ds
; Load new stack
mov ss, cs:data. seg_stack
mov sp, cs:data. off_stack
mov ds, cs:data. ds_save
mov bp, sp
call ctimer
mov ss, cs:data. oldSS
mov sp, cs:data. oldSP
mov ds, cs:data. oldDS
mov bp, sp
}
_chain_intr (data. old_timer);
}
void main ()
{
unsigned int memtop, dumy = 0;
data. tick_me = 0;
_dos_freemem (*(short _far *) MK_FP (_psp, 0x2c));
data. tsrstack = malloc (1024);
data. tsrstack += 1024;
data. seg_stack = FP_SEG (data. tsrstack);
data. off_stack = FP_OFF (data. tsrstack);
_asm mov cs:data. ds_save, ds
memtop = data. ds_save + PARAGRAPHS (data. tsrstack) - _psp;
_dos_setblock (memtop, _psp, &dumy);
data. old_timer = _dos_getvect (0x08);
_dos_setvect (0x08, new_timer);
_dos_keep (0, memtop);
}
---------------------------------------------------------------------
vincent@datmuc.dat.de
Technical Details
Message-ID:
<1335@datmuc.UUCP>Path:
arc1-ca.pugleaf.net!sparky!uunet!charon.amdahl.com!pacbell.com!sgiblab!zaphod.mps.ohio-state.edu!wupost!gumby!yale!yale.edu!jvnc.net!gmd.de!Germany.EU.net!ira.uka.de!datmuc!vincentShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!charon.amdahl.com!pacbell.com!sgiblab!zaphod.mps.ohio-state.edu!wupost!gumby!yale!yale.edu!jvnc.net!gmd.de!Germany.EU.net!ira.uka.de!datmuc!vincent From: vincent@datmuc.UUCP (vincent) Newsgroups: alt.msdos.programmer Subject: TSR not working Message-ID: <1335@datmuc.UUCP> Date: 4 Nov 92 18:09:20 GMT Lines: 99