Системное программное обеспечение. Рощин А.В. - 96 стр.

UptoLike

Составители: 

96
in al,61h ; Чтение состояния системного порта В
and al,0fch ; Запрещение звучания (биты 0 и 1)
out 61h,al ; Запись в системный порт В
inc cs:tek_mel ; Переход к адресу след. ноты
ret
muz2: or bl,bl ; = 0 ?
jnz muz3 ; Продолжение
jmp muze ; Выход, если признак конца
muz3: shl bl,1 ; Умножение bl на 2
xor bh,bh ; bh = 0
mov ax,cs:noty[bx] ; В DI частота ноты
; Программирование делителя частоты 2 канала
inc cs:tek_mel ; Переход к адресу след. ноты
out 42h,al ; Мл.байт частоты
канал 2 таймера
xchg al,ah ; AH
AL
out 42h,al ; Ст.байт частоты
канал 2 таймера
; Разрешение звучания
in al,61h ; Чтение состояния системного порта В
or al,3 ; Разрешение звучания (биты 0 и 1)
out 61h,al ; Запись в системный порт В
ret ; Нормальный выход
muz endp
kbin proc near ; Ввод с клавиатуры и проверка на выбор игры
; Процедура совпадает с одноименной в задаче 2.4.2.1.
kbin endp
; Мелодия "Чижик Пыжик"
mel1 db 17,17,255,13,13,255,17,17,255,13,13,255,18,18,255
db 17,17,255,15,15,15,15,255,255
db 8,8,255,8,8,255,8,8,255,10,255,12,255
db 13,13,255,13,13,255,13,13,13,13
db 0
; Мелодия "Подмосковные вечера"
mel2 db 1,1,1,4,4,4,8,8,8,4,4,4,6,6,6,6,6,6,4,4,4,3,3,3
db 8,8,8,8,8,8,6,6,6,6,6,6,1,1,1,1,1,1,1,1,1,1,1,1
db 0
; Мелодия
"Кан-кан"
mel3 db 18,6,25,13,22,18,25,13,20,1,23,8,22,5,20,1
db 25,6,13,13,25,10,13,13,25,10,27,13,22,10,23,13,20,1
db 11,11,20,5,11,11,20,1,23,11,22,5,20,11,18,6,30,18
db 29,17,27,15,25,13,23,11,22,10,20,8,18,6,13,13,18,10
db 13,13,20,1,23,8,22,5,20,8,25,6,13,13,25,10,13,13
db 25,6,27,13,22,10,23,13,20,1,8,8,20,5,8,8,20,1,23,8
db 22,5,20,8,18,6,25,10,20,13,22,10,18,6,6,6,6,6,6,6
db 34,8,24,12,24,15,34,12,32,1,25,5,25,8,29,5,30,6,34,13
db 37,10,34,13,34,1,32,8,32,5,8,8,34,8,24,12,24,15,34,12
db 32,1,25,5,25,8,29,5,29,3,27,7,29,10,27,13,34,12,32,8
                                    96



      in   al,61h       ; Чтение состояния системного порта В
      and al,0fch       ; Запрещение звучания (биты 0 и 1)
      out 61h,al        ; Запись в системный порт В
      inc cs:tek_mel ; Переход к адресу след. ноты
      ret
muz2: or   bl,bl        ;=0?
      jnz muz3          ; Продолжение
      jmp muze          ; Выход, если признак конца
muz3: shl bl,1          ; Умножение bl на 2
      xor bh,bh         ; bh = 0
      mov ax,cs:noty[bx]       ; В DI частота ноты
; Программирование делителя частоты 2 канала
      inc cs:tek_mel ; Переход к адресу след. ноты
      out 42h,al        ; Мл.байт частоты ⇒ канал 2 таймера
      xchg al,ah        ; AH ⇔ AL
      out 42h,al        ; Ст.байт частоты ⇒ канал 2 таймера
; Разрешение звучания
      in   al,61h       ; Чтение состояния системного порта В
      or   al,3         ; Разрешение звучания (биты 0 и 1)
      out 61h,al        ; Запись в системный порт В
      ret               ; Нормальный выход
muz endp
kbin proc near ; Ввод с клавиатуры и проверка на выбор игры
; Процедура совпадает с одноименной в задаче 2.4.2.1.
kbin endp
; Мелодия "Чижик Пыжик"
mel1 db    17,17,255,13,13,255,17,17,255,13,13,255,18,18,255
      db   17,17,255,15,15,15,15,255,255
      db   8,8,255,8,8,255,8,8,255,10,255,12,255
      db   13,13,255,13,13,255,13,13,13,13
      db   0
; Мелодия "Подмосковные вечера"
mel2 db    1,1,1,4,4,4,8,8,8,4,4,4,6,6,6,6,6,6,4,4,4,3,3,3
      db   8,8,8,8,8,8,6,6,6,6,6,6,1,1,1,1,1,1,1,1,1,1,1,1
      db    0
; Мелодия "Кан-кан"
mel3 db    18,6,25,13,22,18,25,13,20,1,23,8,22,5,20,1
      db    25,6,13,13,25,10,13,13,25,10,27,13,22,10,23,13,20,1
      db   11,11,20,5,11,11,20,1,23,11,22,5,20,11,18,6,30,18
      db   29,17,27,15,25,13,23,11,22,10,20,8,18,6,13,13,18,10
      db   13,13,20,1,23,8,22,5,20,8,25,6,13,13,25,10,13,13
      db   25,6,27,13,22,10,23,13,20,1,8,8,20,5,8,8,20,1,23,8
      db   22,5,20,8,18,6,25,10,20,13,22,10,18,6,6,6,6,6,6,6
      db   34,8,24,12,24,15,34,12,32,1,25,5,25,8,29,5,30,6,34,13
      db   37,10,34,13,34,1,32,8,32,5,8,8,34,8,24,12,24,15,34,12
      db   32,1,25,5,25,8,29,5,29,3,27,7,29,10,27,13,34,12,32,8