tsr

Assembly on DOS (TASM), creating TSR with a new handler on int 21h

孤街醉人 提交于 2020-01-05 06:47:25
问题 I have a trouble with making TSR com file for DOS. It should set a new handler on a 21'th interrupt, terminate and stay resident. New handler should transfer control to an old interrupt 21h handler. I save its interrupt vector, but have no idea how to call it correctly. Here is a program: .model tiny .data old_int21h dw ?, ? .code org 100h start: ;saving old interrupt vector mov ax, 3521h int 21h mov [old_int21h], bx mov [old_int21h + 2], es ;setting new interrupt vector cli push ds push cs

Help Writing TSR Program(s) in NASM Assembly for DOS

时间秒杀一切 提交于 2019-12-22 04:05:29
问题 I've been trying to write TSR (Terminate-Stay-Resident) programs (in general) in Assembly (16-bit) for MS-DOS. I've read through a Wikipedia page on TSR and also a page on using it specifically in DOS (but it seems to be teaching it in C and not Assembly directly). I've looked at a site with tons of DOS interrupt documentation and find this one, this one, and another most relevant to TSR programs. I can't post all of the links because as a new user I can have up to 2 hyperlinks on a post. So,

TSR Program to change case of characters on screen in windows/dos

99封情书 提交于 2019-12-02 05:51:34
问题 I would like to know how can we change the letters of the characters on screen using C. It is a TSR program using dos.h header file. 回答1: I might be able to help partially from what i remember of my early undergrad. In DOS, the address 0xB8000000 (0xB800:0 as segment:offset rightly pointed out in comments) is the starting address of text mode video memory ( 0xA8000000 being that for graphics). Any thing written into this area is copied directly to vga card. Now every character on the screen

TSR Program to change case of characters on screen in windows/dos

 ̄綄美尐妖づ 提交于 2019-12-01 23:25:00
I would like to know how can we change the letters of the characters on screen using C. It is a TSR program using dos.h header file. I might be able to help partially from what i remember of my early undergrad. In DOS, the address 0xB8000000 (0xB800:0 as segment:offset rightly pointed out in comments) is the starting address of text mode video memory ( 0xA8000000 being that for graphics). Any thing written into this area is copied directly to vga card. Now every character on the screen is made up of two bytes. First byte was the ascii character and second was the color. So effectively you take