Реализовать генерацию звука двухтональной сирены

Здравствуйте, уважаемые участники форума.

По глупости, поспорил, что решу самую простую учебную задачку на языке ассемблера, и теперь жалею...

Опыт программирование есть (Delphi, Java, CoDeSys), но тут прям меня вообще застопорило. Этот "железный" язык я не знаю и как я понял, чтобы его хотя бы поверхностно изучить нужно потратить довольно много времени, а ударить в грязь лицом (тем более перед девушкой) не хочется совсем. Подскажите с чего начать, может некий условный (на словах) алгоритм напишите, намекнёте с чего начать решение...

Вот собственно задача:

Реализовать генерацию звука двухтональной сирены с частотами 440 Гц – 880 Гц и длительностью звучания каждого тона 0,5 сек, используя программируемый интервальный таймер КР580ВИ53.

Регистры счетчиков таймера имеют следующие адреса в совмещенной карте памяти:

канал 0 – 0FFECH;

канал 1 – 0FFEDH;

канал 2 – 0FFEEH;

регистр режима каналов – 0FFEFH.

Доступное пользователю ОЗУ расположено по адресам 0000H7FFFH.

На тактовые входы каналов 0 и 1 подаются импульсы с частотой 2 МГц (скважность 2), вход канала 2 подключен к выходу канала 1, выходы каналов 0 и 2 объединяются через логический элемент "или", выход которого управляет звуковым излучателем. На все входы разрешения счета поданы уровни логической единицы.

Канал 0 использовать для задания тона звуковой частоты, канал 2 –для задания временного интервала. Канал 1 настроить в режим генерации меандра с частотой 100 Гц.

Для прекращения генерации звука сирены использовать разряд 1 канала В ППА, установка которого в нулевое состояние через подключенную к нему замыкающую кнопку инициализирует выход в системный монитор по адресу 0F800H. Адрес канала В ППА в совмещенной карте памяти – 0FFE1H.