Ю. А. Богоявленский 11.02.2003 Требования к заданию по курсу "Архитектура ЭВМ". I. Общие требования Целью работы является освоение студентами приемов программирования: - видеосистем средствами видео-BIOS (int 10h, текстовые режимы, графика по желанию студента); - программ обработки прерываний (ПРОП), рекомендуется ПРОП клавиатуры; - портов ввода/вывода, рекомендуются порты клавиатуры. Для закрепления навыков полученных в курсе "Технология проектирования программного обеспечения" задание должно быть реализовано по правилам разработки программного продукта. Готовое задание должно быть мультфильмом, представляющий собой ряд осмысленных связанных текстов на русском (английском) языке. Тексты должны выражать творческую, интеллектуальную индивидуальность автора (авторов). Приветствуются юмористические мультфильмы (см. например мультфильм "Драма на системной магистрали"). Не допускаются бессмысленные анимационные эффекты, прыгающие "шарики", "отражения" и тому подобные декадентские изыски. Изящные интеллектуальные игры допустимы. Примечание (ключевое): понятие "мультфильм" включает в себя взаимосвязанную между собой совокупность следующих компонент: название, сюжет, иллюстративное отображение сюжета. Текст также должен демонстрировать высокую языковую культуру авторов - студентов III КУРСА РОССИЙСКОГО УНИВЕРСИТЕТА. Не допускается всяческий сиротский жаргон наподобие (просим прощения) "Дык", "Мышами воняет" и прочие проявления "спящего разума". Использование чужих программ и всяких доморощенных квази-генераторов должно быть полностью исключено. II. Технические требования 0. Требуемый видеоадаптер - EGA. 1. Мультфильм должен содержать не менее 15 кадров. 2. Нулевой картинкой должна быть заставка: Задание по курсу "Архитектура ЭВМ" Студент Г. Г. Медведев-Озерный Преподаватель: Ю. А. Богоявленский Инструктор: И. О. Фамилия Группа 22nnn#n дд.мм.гггг 3. Необходимо использовать в фильме элементы, построенные с помощью перепрограммированного знакогенератора. 4. Необходимо использовать цвет окаймления. 5. Необходимо разработать и включить в программу обработчик прерываний клавиатуры для обеспечения следующих реакций на нажатие клавиш: ESC завершение программы, серый + ускорение демонстрации, серый - замедление демонстрации, К1 спецэффект N 1, К2 спецэффект N 2 (две последние клавиши и спецэффекты студенты выбирают и разрабатывают самостоятельно). III. Технологические требования 1. Модульная структура должна полностью соответствовать требованиями курса "Технология проектирования программного обеспечения" (небольшие хорошо структурированные, простые, легко обозримые, понятные модули). 2. Каждый модуль должен быть откомментирован по классической схеме (см. лекции 1 курса). Для этого проще всего разработать первую версию текста модуля в виде перечня основных операций на естественном языке, который и будет КОММЕНТАРИЕМ верхнего уровня. Затем при добавлении в текст модуля строк кода нужно все время поддерживать комментарий в актуальном состоянии. 3. Исходный текст каждого модуля должен размещаться в отдельном файле. Выполняемый файл должен получаться системой make путем раздельной трансляции с последующей сборкой редактором связей. makefile должен быть откомментирован, оптимизирован, должен содержать макроподстановки, явные/неявные правила, комментарии, справку по применению, а также должен отражать передовые идеи, изложенные в прилагающемся файле системы make. 4. Все подпрограммы должны быть реализованы на языке Ассемблера в стиле соглашений о связях языка С с передачей параметров через стек (см. лекции 1 курса). Для вызова и описания подпрограмм должны быть использованы средства TASM упрощающие процедурный интерфейс (см. лекции 1/3 курса и пример по адресу 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. Программа "Южный Нигер", 7 марта 3-5 программа с собственным шрифтом (функция 11h в int 10h). /Доп. см. preamble.txt/ Сценарий мультфильма. Для группового проекта - техническое задание, состав и функции участников. 2. Модульная структура, временной график 21 марта 3-6 реализации, makefile, модуль вывода заставки с exe-файлом. Для группового проекта также задания членов группы. 3. Не менее 2/3 всех запланированных 11 апреля 3-8 модулей. exe-файл с заглушками не реализованных пока модулей. Журнал разработки. 4. Оставшаяся 1/3 модулей. Предварительный 25 апреля 3-6 EXE файл. Краткая документация программы: композиция первого и второго отчетов, журнал разработки, руководство по использованию. 5. Окончательная версия задания 16 мая 3-6 6. Зачетная неделя 26 мая - 1 июня Лектор: Юрий Анатольевич Богоявленский Эл. почта: Yury.Bogoyavlenskiy[at]cs.karelia.ru Инструкторы: Ольга Юрьевна Богоявленская, Olga.Bogoiavlenskaia[at]cs.karelia.ru Максим Валерьевич Дьяконов, Maksim.Diakonov[at]cs.karelia.ru Павел Евгеньевич Гладышев, Pavel.Gladyshev[at]cs.karelia.ru Тимофей Валерьевич Назаров, Timophey.Nazarov[at]cs.karelia.ru Александр Владимирович Бородин, Aleksandr.Borodin[at]cs.karelia.ru