Ю. А. Богоявленский 14.02.2005 Требования к заданию по курсу "Архитектура ЭВМ" I. Общие требования Целью работы является освоение студентами приемов программирования: - видеосистем средствами видео-BIOS (int 10h, текстовые режимы, графика по желанию студента); - программ обработки прерываний (ПрОП), рекомендуется ПрОП клавиатуры; - портов ввода/вывода, рекомендуются порты клавиатуры. Для закрепления навыков полученных в курсе "Технология проектирования программного обеспечения" задание должно быть реализовано по правилам разработки программного продукта. Готовое задание должно быть мультфильмом, представляющим собой ряд осмысленных связанных текстов на русском (английском) языке. Тексты должны выражать творческую, интеллектуальную индивидуальность автора (авторов). Приветствуются юмористические мультфильмы (см. например мультфильм "Драма на системной магистрали"). Не допускаются бессмысленные анимационные эффекты, прыгающие "шарики", "отражения" и тому подобные декадентские изыски. Изящные интеллектуальные игры допустимы. Примечание (ключевое): понятие "мультфильм" включает в себя взаимосвязанную между собой совокупность следующих компонентов: название, сюжет, иллюстративное отображение сюжета. Текст также должен демонстрировать высокую языковую культуру авторов - студентов III КУРСА РОССИЙСКОГО УНИВЕРСИТЕТА. Не допускается всяческий сиротский жаргон наподобие (просим прощения) "Дык", "Мышами воняет" и прочие проявления "спящего разума". Использование чужих программ и всяких доморощенных квазигенераторов должно быть полностью исключено. II. Технические требования 0. Требуемый видеоадаптер - EGA. 1. Мультфильм должен содержать не менее 15 кадров. 2. Нулевой картинкой должна быть заставка: Задание по курсу "Архитектура ЭВМ" Студент: Медведев-Озерный Г. Г. Преподаватель: Фамилия И. О. Инструктор: Фамилия И. О. Группа 223nn#n дд.мм.гггг 3. Необходимо использовать в фильме элементы, построенные с помощью перепрограммированного знакогенератора. 4. Необходимо использовать цвет окаймления. 5. Необходимо разработать и включить в программу обработчик прерываний клавиатуры для обеспечения следующих реакций на нажатие клавиш: ESC завершение программы, серый + ускорение демонстрации, серый - замедление демонстрации, К1 спецэффект N 1, К2 спецэффект N 2 Примечание: две последние клавиши и спецэффекты студенты выбирают и разрабатывают самостоятельно. III. Технологические требования 1. Модульная структура должна полностью соответствовать требованиям курса "Технология проектирования программного обеспечения" (небольшие хорошо структурированные, простые, легко обозримые, понятные модули). 2. Каждый модуль должен быть закомментирован по классической схеме (см. лекции 1 курса). Для этого проще всего разработать первую версию текста модуля в виде перечня основных операций на естественном языке, который и будет КОММЕНТАРИЕМ верхнего уровня. Затем при добавлении в текст модуля строк кода нужно все время поддерживать комментарий в актуальном состоянии. 3. Исходный текст каждого модуля должен размещаться в отдельном файле. Выполняемый файл должен получаться системой make путем раздельной трансляции с последующей сборкой редактором связей. Makefile должен быть закомментирован, оптимизирован, должен содержать макроподстановки, явные/неявные правила, комментарии, справку по применению. 4. Все подпрограммы должны быть реализованы на языке Ассемблера в стиле соглашений о связях языка С (передача/возвращение параметров, имена подпрограмм, и т. д. см. лекции 1 курса). Для вызова и описания подпрограмм могут быть использованы средства TASM упрощающие процедурный интерфейс (см. лекции 1 курса и пример по адресу http://www.cs.karelia.ru/csys_arch/c_style). В подпрограммах обязательно должно быть отражено умение работать с параметрами. 5. Одна - две подпрограммы должны быть реализованы на языке С (см. пример для реализации совместной трансляции по адресу http://www.cs.karelia.ru/csys_arch/c_asm) 6. Допускается переработка в мультфильм проекта, реализованного в курсе "Технология проектирования программного обеспечения". В этом случае не менее 80% модулей проекта должны быть перенесены на язык Ассемблера. При этом видеомодули должны использовать int 10h. IV. Временной график отчетности Отчетность по заданию состоит из зачета и 5 контрольных этапов, за каждый из которых ставится оценка в баллах. Отчет по каждому этапу должен быть сдан (одобрен инструктором) на занятиях, предшествующих (!) контрольному сроку, или отправлен по электронной почте инструктору (текст, исходные и выполняемый файлы в zip-архиве) до последнего занятия, предшествующего контрольному сроку, что в свою очередь не исключает этапа сдачи. Примечание: формат отчета - текст ASCII, кодировка - cp866. В случае, если студент нарушил срок сдачи контрольного этапа, максимальная оценка составляет 0 (ноль) баллов. Для допуска к зачету необходимо получить отметку о сдаче всех (!) контрольных этапов. Студенты, набравшие за все отчеты от 28 до 31 баллов, получают зачет без опроса. Если сумма баллов меньше 15, то зачет переносится на период после экзаменационной сессии (отпуска преподавателей с 1 июля). Содержание контрольного Срок сдачи Баллы этапа 1. Программа "Южный Нигер", 4 марта 3-5 программа с собственным шрифтом (функция 11h в int 10h). /Доп. см. preamble.txt/ Сценарий мультфильма. Для группового проекта - техническое задание, состав и функции участников. 2. Модульная структура, временной график 18 марта 3-6 реализации, Makefile, модуль вывода заставки с exe-файлом. Для группового проекта также задания членов группы. 3. Не менее 2/3 всех запланированных 8 апреля 3-8 модулей. exe-файл с заглушками не реализованных пока модулей. Журнал разработки. 4. Оставшаяся 1/3 модулей. Предварительный 22 апреля 3-6 выполняемый файл. Краткая документация программы: композиция первого и второго отчетов, журнал разработки, руководство по использованию. 5. Окончательная версия задания 13 мая 3-6 6. Зачетная неделя 30 мая - 5 июня Автор курса: Юрий Анатольевич Богоявленский Эл. почта: Yury.Bogoyavlenskiy[at]cs.karelia.ru Лектор: Тимофей Валерьевич Назаров, Timophey.Nazarov[at]cs.karelia.ru Инструкторы: Ольга Юрьевна Богоявленская, Olga.Bogoiavlenskaia[at]cs.karelia.ru Александр Владимирович Бородин, Aleksandr.Borodin[at]cs.karelia.ru Денис Вячеславович Кухарев, Denis.Kuharev[at]cs.karelia.ru