·汇编源码--BRK
·汇编源码--CLOCK
·汇编源码--BURNOUT
·汇编源码--DOSSYM
·汇编源码--circle
·汇编源码--DEV
·汇编源码--getspace
·汇编源码--CLEAR
·汇编源码--col
·汇编源码--gameport
;
progseg segment para public 'CODE'
publicsetcom
assumecs:progseg, ds:progseg, es:progseg
org100h
doscall equ21h
oldintequ16h
;
startup procfar
jmpsetup
;
setcomprocfar
;jmpcs:[interupt]
pushf
callcs:[interupt]
RET 2
setcomendp
;
savedb0
interupt label dword
vectordb8 dup(0);only 4 needed 4 more for safety
;
setup:
movah,35h;get interupt vector address function
moval,oldint;keyboard interupt vector
intdoscall ;go get it
;
movword ptr vector,bx ;save offset
movbx,es;get segment address
movword ptr vector+2,bx ;save segment
;
movdx,offset setcom ;get new vector address
movax,cs
movds,ax;set segment
movah,25h;set interupt vector address function
moval,oldint;set to our new interupt vector
intdoscall ;set the interupt
;
movdx,offset setup ;terminate and stay resident
int27h
startup endp
progseg ends
;
endstartup
进入讨论组讨论。