осхемою календаря-годин, автоматично встановлюють час і дату за допомогою спеціальної програми (зазвичай запускається при старті через файл AUTOEXEC.BAT). Kак отримати доступ до мікросхеми календаря-годин, див [2.1.4]. Відзначимо також, що коли лічильник часу доби BIOS переходить через відмітку 24 годин, MS DOS змінює дату. br/>
3. Код програми.
.286
. MODEL TINY
. CODE100h: start_PORT EQU 061hEQU 03EQU 0FCh_PORT EQU 43h_PORT EQU 42hEQU 0B6h
PLRE EQU 5; Кількість повторовEQU 16; кількість нотdw 131,5,262,5,294,5,330,5,350,5,392,5,440,5,491,5; 1-ша мелодія
dw 491,5,440,5,392,5,350,5,330,5,294,5,262,5,131,5; 2-а
dw 262,5,491,5,262,5,491,5,262,5,491,5,262,5,491,5; 3-а
dw 491,3,294,3,294,3,330,3,294,3,350,3,491,3,491,3; 4-а
Message db nevernj , 13,10, '$'
Message1 db 'The program have already been loaded. Unload y/n? $ 'p align="justify"> Message2 db 'The program was loaded $'
Message3 db 10,13, 'The program was unloaded $'
atime dw 3 DUP (0)
time dw 3 DUP (0)
filename db 'time.dat', 0; Файл з даними
timeinfo db 50 DUP (?); Час з файлу
cmdinfo db 50 DUP (?); Командний рядок
oldintoff dw? ; Зсув старого обробника переривання 1Ch
oldintseg dw? ; Сегмент старого обробника переривання 1Ch
oldintoff7 dw? ; Зсув старого обробника переривання 7h
oldintseg7 dw? ; Сегмент старого обробника переривання 7h
count db 0
musn db 1; Номер воспроизводимой мелодііPROC; Відтворення музики
; Включимо Speaker
in al, PPI_PORT
or al, ON
out PPI_PORT, al
mov [count], 0_play:
inc [count]
xor ax, ax
mov al, cs: [musn]
dec ax
mov bx, 28
mul bx
mov si, ax
mov di, 00
:
mov ax, cs: word ptr Music [si]
push ax
mov ax, TIMERSET
out MOD_PORT, ax
pop ax
push ax
and ax, 0FFh
out FRQ_PORT, ax
pop ax
shr ax, 8