Article View: alt.msdos.programmer
Article #623my_tsr
From: vincent
Date: Wed, 11 Nov 1992 10:43
Date: Wed, 11 Nov 1992 10:43
99 lines
2273 bytes
2273 bytes
This is a repost I never got any replys, The Org. Q. was why this code
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:
<1347@datmuc.UUCP>Path:
arc1-ca.pugleaf.net!sparky!uunet!europa.asd.contel.com!darwin.sura.net!spool.mu.edu!yale.edu!ira.uka.de!datmuc!vincentShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!europa.asd.contel.com!darwin.sura.net!spool.mu.edu!yale.edu!ira.uka.de!datmuc!vincent From: vincent@datmuc.UUCP (vincent) Newsgroups: alt.msdos.programmer,comp.os.msdos.programmer Subject: my_tsr Message-ID: <1347@datmuc.UUCP> Date: 11 Nov 92 10:43:00 GMT Followup-To: alt.msdos.programmer,comp.os.msdos.programmer Lines: 101