SL>slut Denis!
How dare you call me a slut! :) I imagine you meant to say salut?
SL> Yes, it actually stoped the transfer. But resume when i exit from the TSR
SL> > On the other hand, I my blinky program is installed, and I
SL> > try a download, both go on as normal. The transfer would still take
place,
SL> > and the LED would blink as well. Though is this is slightly different
then
SL> > activating a TSR program.
SL> So, could you send your program here that can make a download continue as
SL> normal. None of my batch of tsrs i had allows background transfer.
I posted it to you in another message, but I'll post it again, perhaps you
didn't receive the program. The program just hooks the timer ticker and
toggles the Scroll-Lock LED on/off about every second.
;--------------------------------------------------------------------------
;[BLINKY.ASM] - Public Domain by Denis Boyles
; ! Arrowsoft Assembler v1.00D (MASM v3.0)
; ? TSR that blinks ScrollLock LED on/off approx. every second
TIMEOUT EQU 18 ;blink timeout, 18/18.2 = approx 1s
LED EQU 16 ;Scroll-Lock LED bit
DOS EQU 21h ;DOS services interrupt
PRG SEGMENT
ASSUME CS:PRG,DS:PRG
ORG 0100h
MAIN:
jmp INIT ;jump to install routine
OldTck dd ? ;original vector for timer ticker
count db TIMEOUT ;count down counter
NewTck: ;our timer ticker interrupt
push AX ;save AX to stack
push ES ;save ES to stack
mov AL,CS:[count] ;AL = current tick count
or AL,AL ;test for zero?
jz NT0 ;if zero then time to toggle LED
dec CS:[count] ;otherwise, decrement countdown
jmp NT1 ;jump over toggle code to exit
NT0: ;toggle LED and reset counter
mov CS:[count],TIMEOUT ;set counter back to TIMEOUT value
xor AX,AX ;zero out AX and use it to
mov ES,AX ;set ES to access BIOS data
xor byte ptr ES:[417h],LED ;toggle LED via BIOS keyboard byte
NT1: ;exit interrupt handler
pop ES ;restore ES
pop AX ;restore AX
jmp CS:[OldTck] ;chain to previous int via jump
INIT: ;TSR initialization routine
mov AX,351Ch ;DOS get vector for 1Ch
int DOS ;call DOS to get ticker vector
mov word ptr [OldTck][2],ES ;save vector segment into memory
mov word ptr [OldTck][0],BX ;save vector offset into memory
mov AX,251Ch ;DOS set vector for 1Ch
mov DX,offset NewTck ;DS:DX -> new handler
int DOS ;call DOS to set new handler
mov CL,04h ;shift count = 4
mov DX,offset INIT ;all code upto INIT is kept resident
shr DX,CL ;convert to paragraphs via shifting
inc DX ;plus one more paragraph for safety
mov AX,3100h ;DOS TSR program with code (0)
int DOS ;call DOS to TSR program
PRG ENDS
END MAIN
;--------------------------------------------------------------------------
Using this program as a demo, you should be able to see the LED blink and
the file download. To you it would look like the program is `mult-tasking'
but really one things happening at a time.
SL>Thanks so much for giving ideas!
You're welcome, hope they helped in one way or another.
Cheers,
Denis Boyles
* OLX 2.1 TD * Back Up My Hard Drive? I Can't Find The Reverse Switch!
--- Maximus/2 3.01
---------------
* Origin: Frog Hollow Port Moody BC 604-469-0264/0284 (1:153/290)
|