"Rod Pemberton" <do_not_have@[EMAIL PROTECTED]
> wrote in message
news:g079v9$uib$1@[EMAIL PROTECTED]
>
> TSR under XP?. DOS under XP doesn't work quite correctly.
>
> E.g., one issue with XP is that it doesn't update BIOS variables unless
a
> BIOS call is made:
>
http://groups.google.com/group/comp.os.msdos.djgpp/msg/67916cf4c1c73b7e?hl=en
>
http://groups.google.com/group/comp.os.msdos.djgpp/msg/30ac39382eb3560e?hl=en
>
Hi Rod,
I threw together list little code snippet to see for myself. It seems
to update the timer tick just fine. It could be that WinXP emulates
the write to video memory by calling the BIOS print char service call.
I have WinXP SP2 [version 5.1.2600 is displayed at DOS prompt]
; -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
; assemble using NBASM (http://www.frontiernet.net/~fys/newbasic.htm)
.model tiny
.code
.386
org 100h
xor ax,ax
mov es,ax
mov si,046Ch
; depending on you CPU speed, adjust this value. It
; is simply a delay to end the program so we don't call
; a BIOS routine to check for keypress or something.
mov ecx,400000
main_loop: mov ax,es:[si]
call prthex
dec ecx
jnz main_loop
.exit
prthex proc near uses ax cx dx es di
mov cx,0B800h
mov es,cx
xor di,di
mov cx,04
PLoop: rol ax,04 ;
push ax ;
and al,0Fh ;
daa ;
add al,0F0h ;
adc al,40h ;
mov ah,07h
stosw
pop ax ;
loop PLoop ;
ret
prthex endp
.end
; -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


|