CODE SEGMENT
ASSUME DS:CODE,CS:CODE,ES:CODE,SS:CODE
ORG 100h
START:
jmp short MAIN
TSR: ;常駐する部分
cmp ah,2ah
jnz _RETURN ;日付取得か?
mov cx,1999 ;強制的に1999年
mov dx,0101h ;強制的に1月1日
mov al,1 ;強制的に月曜日
iret ;割り込み終了
_RETURN: ;正規のINT 21hに飛ぶ
db 0EAh ;この4行は決まり文句
_OFF dw ? ;実はFAR JUMPしている
_SEG dw ?
MAIN:
mov ax,3521h
int 21h
mov _SEG,es
mov _OFF,bx ;割り込みベクター取得
mov dx,offset TSR
mov ax,2521h
int 21h ;割り込みベクター設定
mov dx,offset MAIN
mov cl,4
shr dx,cl
inc dx ;残る大きさ計算
mov ah,31h
int 21h ;常駐終了
ENDS
END START
; 一部のコンパイラでは、
;CODE ENDS
; END START
;と記述しなければいけないようです
|