Загрузить архив: | |
Файл: 240-0191.zip (287kb [zip], Скачиваний: 36) скачать |
СОДЕРЖАНИЕ
TOC o "1-3" f t "ВерхКолонтитул;2;Автор;1;ВерхКолонтитулНечет;3" ОСНОВНЫЕ НАПРАВЛЕНИЯ ПРИМЕНЕНИЯ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ В УЧЕБНОМ ПРОЦЕССЕ....................................................................................... GOTOBUTTON _Toc391204698PAGEREF _Toc391204698 4
1. ОБЩИЙ РАЗДЕЛ........................................................................................... GOTOBUTTON _Toc391204699PAGEREF _Toc391204699 10
1.1. Характеристики аппартных средств вычислительной техники........ GOTOBUTTON _Toc391204700PAGEREF _Toc391204700 10
1.2. Характеристики программных средств вычислительной техники... GOTOBUTTON _Toc391204701PAGEREF _Toc391204701 16
1.3. Постановка задачи................................................................................ GOTOBUTTON _Toc391204702PAGEREF _Toc391204702 17
2. СПЕЦИАЛЬНЫЙ РАЗДЕЛ........................................................................... GOTOBUTTON _Toc391204703PAGEREF _Toc391204703 18
2.1. Разработка алгоритма программного обеспечения........................... GOTOBUTTON _Toc391204704 PAGEREF _Toc391204704 18
2.2. Разработка универсальной управляющей программы....................... GOTOBUTTON _Toc391204705PAGEREF _Toc391204705 19
2.3. Разработка программного интерфейса................................................ GOTOBUTTON _Toc391204706PAGEREF _Toc391204706 22
2.4. Описание процесса отладки................................................................ GOTOBUTTON _Toc391204707PAGEREF _Toc391204707 24
2.5. Разработка эксплуатационно-методической документации.......... GOTOBUTTON _Toc391204708PAGEREF _Toc391204708 24
2.6. Результаты испытаний........................................................................... GOTOBUTTON _Toc391204709PAGEREF _Toc391204709 25
3. ОРГАНИЗАЦИОННО-ЭКОНОМИЧЕСКИЙ РАЗДЕЛ................................ GOTOBUTTON _Toc391204710PAGEREF _Toc391204710 27
3.1. Оценка издержек на разработку программного интерфейса для программатора ПЗУ.................................................................................................................. GOTOBUTTON _Toc391204711PAGEREF _Toc391204711 27
3.2. Анализ эффективности внедрения разработанной программы вучебный процесс............................................................................................................ GOTOBUTTON _Toc391204712PAGEREF _Toc391204712 29
4. МЕРОПРИЯТИЯ ПО ОХРАНЕ ТРУДА. БЕЗОПАСНОСТЬ ТРУДА ПРИ ОБСЛУЖИВАНИИ ПРОГРАММАТОРА........................................................ GOTOBUTTON _Toc391204713PAGEREF _Toc391204713 31
4.1 Требования безопасности к техническим средствам ПЭВМ............. GOTOBUTTON _Toc391204714PAGEREF _Toc391204714 31
4.2. Требования безопасности к микроклимату в учебных лабораториях GOTOBUTTON _Toc391204715PAGEREF _Toc391204715 32
4.3. Меры безопасности при сервисном обслуживании программатора. GOTOBUTTON _Toc391204716PAGEREF _Toc391204716 33
ПРИЛОЖЕНИЕ 1. Программный интерфейс............................................................34
Стремительное внедрение в сферу материального производства новой информационной технологии, широкая электронизация всех машин и оборудования требует сегодня от многомиллионной армии специалистов знания микропроцессорных средств и систем, владения компьютерной техникой.
В настоящий период время внедрения научных открытий, освоение новых технологий в ведущих отраслях промышленности становится соизмеримым с продолжительностью учебы в вузе, техникуме. Это требует поиска таких методов и средств обучения, которые сократили бы расстояние между достижениями науки, производственной практикой и содержанием образования. Изменяются в значительной степени и цели обучения. Сегодня профессионально важным для специалиста является умение самостоятельно и непрерывно пополнять, обновлять знания, вести творческий поиск, способность ответственно принимать оригинальные решения.
Новые задачи образования требуют современной технической базы, и, в первую очередь, широкого внедрения компьютеров в учебном процессе. Реализация учебного процесса, обеспечивающего высокую образовательную активность учащихся, самостоятельность их работы, индивидуализацию обучения в настоящее время невозможна без широкого применения вычислительной техники и дидактических материалов, обеспечивающих реальность такого использования.
Успехи в деле компьютеризации учебного процесса определяются тремя существенными факторами:
наличием вычислительной техники;
производством и распределением программного обеспечения;
готовностью преподавателей методически грамотно использовать вычислительную технику.
Определенный опыт освоения и использования электронной вычислительной техники в учебно-воспитательном процессе накоплен в Винницком техникуме электронных приборов [7].
Начало освоения электронно-вычислительных машин (ЭВМ) относится к 1977-78 году, когда вычислительный центр техникума, оснащенный машинами «Электроника-1004», занимался статистической обработкой результатов успеваемости и посещаемости. Это позволило руководителям техникума ежедневно получать оперативную информацию о состоянии дел в каждом учебной группе.
В 1980-1981 году были сделаны первые шаги по использованию ЭВМ для решения творческих задач в период курсового и дипломного проектирования. Начало этой работы поставило перед педагогическим коллективом техникума ряд проблем:
необходимость психологической подготовки преподавателей к внедрению вычислительной техники;
необходимость разработки методик инженерных расчетов, ориентированных на применение ЭВМ;
пересмотр методики проведения занятий;
отсутствие информационно-методического и программного обеспечения вычислительной техники.
Возникшие проблемы решались в техникуме постепенно, сначала работой по внедрению вычислительной техники занялись преподаватели специальных дисциплин, хорошо владеющие методикой обучения, с одной стороны, и знающие основы вычислительной техники с другой. Это позволило уже в 1980-81 году разработать и внедрить в учебный процесс пакет программ «Расчет элементов интегральных микросхем». Выполненная учащимися двух учебных групп расчетная часть курсового проекта показала высокую эффективность применения техники в курсовом проектировании. Проведенные в том же году открытые уроки позволили на практике показать большинству членов коллектива возможность и эффективность использования вычислительной техники в учебном процессе. Был преодолен психологический барьер. В работу по внедрению вычислительной техники стали подключаться все новые и новые преподаватели. С 1983-84 года на ЭВМ проводятся расчеты функциональных узлов по предмету «Радиоприемные устройства», трудоемкие расчеты надежности РЭА, экономические расчеты и др. Только за 4 года более 200 учащихся выполнили курсовые проекты с расчетами на ЭВМ. Высокая точность расчетов, производительность позволили высвободить у них время на творческую, содержательную часть проекта.
Общие методические принципы проведения занятий при помощи ЭВМ, сформулированные в техникуме на основе четырехлетнего опыта, были перенесены на другие предметы общеобразовательного, общетехнического и специального цикла. Этому способствовал организованный в 1985 году постоянно действующий семинар для преподавателей по программированию и применению вычислительной техники в учебном процессе. Для учащихся был введен факультативный курс «Применение микропроцессорных средств и микро-ЭВМ».
1984-85 год стал годом массового освоения программируемых микрокалькуляторов, которые широко использовались при выполнении лабораторных и практических работ по ТОЭ, физике, математике, общетехнических и специальных дисциплин. Создание прикладных расчетных программ для программируемых микрокалькуляторов - неотъемлемая часть научно-методической работы в техникуме. Более 30% преподавателей прошли переподготовку на факультетах повышения квалификации при ведущих учебных заведенях минвуза СССР и отраслевого министерства [7].
Внедрение вычислительной техники в нашем учебном заведении - это планомерный, постоянно развивающийся процесс. Опыт подтвердил известное положение о том, что совершенствованию методики и программ нет предела.
В 1982 году положено начало использованию вычислительной техники в научно-техническом творчестве. Так при выполнении хоз. договорных экспериментально-конструктивных работ учащиеся готовят программы трассировки печатных плат для систем автоматического проектирования (САПР), разрабатывают и отлаживают программы сверловки плат для станков с числовым программным управлением (ЧПУ), проводят типовые расчеты, учет материальных ценностей, документооборот по ЭКВ ведется с 1987 года при помощи автоматизированной информационной системы, созданной на базе СУБД-микро для ДВК.
Постоянная работа учащихся с ЭКБ с вычислительной техникой приносит свои плоды, сегодняшние старшекурсники, работающие в ЭКВ, свободно владеют микрокомпьютерами на уровне пользователя. Можно предположить, что результаты подготовки по вычислительной технике значительно возрастут при организации непрерывного процесса формирования профессионально важных качеств пользователя ЭВМ у каждого учащегося, начиная с изучения основ информатики и вычислительной техники в общетехнических и специальных дисциплинах и заканчивая использованием ее в различных учебных формах научно-технического творчества.
Программирование - один из интересных видов творческой деятельности. Важная организационная форма научно-технического творчества - кружок программирования. Занятия в нем привлекают многих учащихся и дают практические знания по программированию и пользованию ЭВМ. Он становится базой для подготовки и отладке многих прикладных программ.
Автоматизация процесса обработки информации - одна из сфер эффективного применения вычислительной техники. Рациональная организация информационных ресурсов в техникуме - задача, которая стоит перед коллективом. С этой целью в ЭКБ техникума ведутся работы по созданию автоматизированных информационно-поисковых систем на основе микрокомпьютеров.
В 1987 году фрагмент информационно-поисковой системы «Банк передового педагогического опыта» внедрен в опытную эксплуатацию совместно с кафедрой педагогики московского областного пединститута им Н.К. Крупской. Пакет программ информационно - поисковой системы внедряется при изучении темы «Информационное обеспечение профессиональной деятельности специалиста» в курсе «основы научно - технического творчества». Работа учащихся с информационными фондами на машинах носителях - важный этап формирования культуры информационной деятельности как преподавателей, так и учащихся [7].
В 1988 году в техникуме создана хорошая учебно-материальная база:
класс диалоговых вычислительных комплексов;
2 класса компьютеров;
более 300 программируемых калькуляторов
Широкое применение элементов микропроцессорной техники в научно-техническом творчестве позволяет производить разработки по совершенствованию научно-технических средств вычислительной техники, созданию учебно-лабораторного оборудования для изучения работы микро-ЭВМ и программного управления технологическим оборудованием.
Так в 1985 году был создан тренажер учебной микро-ЭВМ «Электроника-ВТЭП микро». На тематической выставке «Инженерно тематическое оборудование» ВДНХ СССР в 1986 году учебная микро-ЭВМ отмечена серебряной медалью. Десять таких тренажеров внедрены в учебный процесс в 1986 году [7].
В 1986 году в техникуме создана локальная сеть диалоговых вычислительных машин. Ее внедрение существенно расширило диалектические возможности применения ДВК-1 в условиях группового обучения. В 1987 году ЭКБ техникума создает локальные сети по заказу ряда техникумов отрасли.
Призером выставки «Итоги 11-го всесоюзного смотра-конкурса на лучшую экспериментально-конструктивную работу учащихся ССУЗ», проводимой в феврале-марте 1987 года на ВДНХ СССР, стал специализированный микрокомпьютер «Спектр», созданный в ЭКБ для управления технологическим оборудованием.
Медалями ВДНХ отмечены пакеты программ «Расчет элементов интегральных схем» и «Определение профессиональной надежности личности». Три преподавателя техникума являются членами методической комиссии минвуза СССР по вычислительной технике и научно-техническому творчеству.
Опытом работы техникум делится на всесоюзных, республиканских и областных совещаниях, семинарах, проводимых минвузом СССР.
Масштабность задач, связанных с внедрением вычислительной техники, выдвигает на повестку дня вопрос о целесообразности создания на базе ведущих техникумов ряда лабораторий, занимающихся разработкой информационно-методического и программного обеспечения по каждому из направлений с последующим внедрением во все учебные заведения отрасли и системы среднего специального образования. Это может стать одним из направлений экспериментально-конструкторской работы, проводимой по хоздоговорам при условии укрепления ЭКБ специалистами по системотехнике и системному программированию.
Когда произносят слова «персональный компьютер», обычно подразумевается не что иное, как компьютер типа IBM PC. Именно американская компания IBM в августе 1981 года объявила о выпуске самого первого компьютера, получившего название Personal Computer, или просто PC. [6]
Впрочем, еще до создания IBM PC множеством разных фирм выпускались компьютеры, которые было бы вполне уместно называть персональными. Даже весьма далекая от электроники фирма Coca - Cola пыталась выпускать собственную модель персонального компьютера!
Несовместимость многочисленных моделей компьютеров была главным препятствием для создания совершенных программ универсального применения.
Когда IBM вышла на рынок настольных компьютеров, казавшийся сомнительным и рискованным, разнобой среди персональных компьютеров довольно быстро пошел на убыль. Маленький персональный компьютер IBM PC на процессоре 8088 фирмы Intel оказался тем долгожданным стандартом, который с радостью поддержали многочисленные программисты и фирмы - изготовители прикладного программного обеспечения: наконец-то появился компьютер солидной фирмы, для которого можно было разрабатывать и успешно продавать большими тиражами достаточно сложные, совершенные и универсальные программы. По сути дела, компьютер IBM PC создал не только стабильный и обширный рынок персональных компьютеров, но и огромный рынок прикладного программного обеспечения, на котором за последние полтора десятилетия разбогатело множество венчурных фирм [6].
Вот яркий тому пример. Компьютер IBM PC почти с самого начала работал под управлением дисковой операционной системы DOS, которую разработала для IBM маленькая и никому тогда не известная фирма Microsoft. Сегодня Microsoft - бесспорный флагман индустрии программного обеспечения, одна из богатейших фирм мира, выпускающая не только операционные средства MS-DOS и Windows для управления компьютерами, но и различные прикладные пакеты. А основатель и руководитель Microsoft Билл Гейтс, несмотря на молодость, один из самых богатых людей.
Разумеется, персоналка IBM PC оказалась только первым шагом в верном направлении. Затем фирма IBM выпустила множество моделей персональных компьютеров XT, AT, PC/1 и PC/2 на различных процессорах Intel 8086, 80286, 80386, 80486. Все эти компьютеры предназначены для работы под управлением операционной системы DOS или в графической среде Windows.
Множество других фирм немедленно принялись подражать IBM и развивать ее успех, выпуская свои собственные модели персоналок, полностью совместимые с IBM PC, либо выпуская различное периферийное дополнительное оборудование для IBM PC. Ведь одной из замечательных особенностей персоналки IBM PC была так называемая «открытая архитектура», позволявшая даже неспециалистам легко и просто изменять устройство и технические возможности своего компьютера. Для этого часто достаточно было воспользоваться разъемами последовательного или параллельного портов, добавить на пустующих панельках несколько микросхем памяти, вставить в плату сопроцессор, переставить в другое положение DIP-переключатели, поменять с помощью отвертки блоки, воткнуть или вынуть плату расширения из слота системной шины. В результате буквально за несколько минут всякий мог, не располагая сколько - нибудь глубокими знаниями и сложным инструментом, построить из готовых компонентов совершенно новую персональную компьютерную систему с необходимыми техническими параметрами [6].
Вообще-то, самый первый персональный компьютер создали инженеры американской фирмы Xerox. Именно той самой фирмы, которая подарила миру копировальный аппарат, известный у нас под именем «ксерокс». Это, оставшееся почти незамеченным, историческое событие произошло в исследовательском центре фирмы Xerox PARC (Palo - Alto Research Center) в Пало-Альто, в Калифорнии. Уже на первых персоналках Xerox двадцать лет назад применялся графический интерфейс, очень похожий на современную графическую среду Windows [6].
С тех пор прошло немало времени, и сейчас диапазон конструктивных решений персональных компьютеров очень широк. Но несмотря на конструктивные внешние различия (от напольных башен до карманных моделей), все персоналки очень похожи друг на друга. Другими словами, если «анатомия» компьютеров различна, то их «физиология» практически идентична.
Современный персональный компьютер включает следующие устройства [1]:
системный блок, выполняющий управление компьютером, вычисления;
клавиатуру, позволяющую вводить символы в компьютер;
монитор (дисплей) для изображения текстовой и графической информации;
накопители (дисководы) на гибких магнитных дисках (дискетах), используемые для чтения и записи информации (для транспортировки);
накопитель на жестком магнитном диске (винчестер), предназначенный для записи и чтения информации (стационарный);
К системному блоку компьютера IBM PC можно подключать различные устройства ввода-вывода информации, расширяя тем самым его функциональные возможности. Многие устройства подсоединяются через специальные гнезда (разъемы), находящиеся обычно на задней панели системного блока компьютера. Кроме монитора и клавиатуры, такими устройствами являются:
принтер - для вывода на печать текстовой и графической информации;
мышь - устройство, облегчающее ввод информации в компьютер;
джойстик - манипулятор в виде укрепленной на шарнире ручки с кнопкой, употребляется в основном для компьютерных игр;
плоттер - подключается к компьютеру для вывода рисунков и другой графической информации на бумагу;
графопостроитель - подключается для вывода чертежей на бумагу;
сканер - устройство для считывания графической и текстовой информации в компьютер. Сканеры могут распознавать шрифты букв, что дает возможность быстро вводить напечатанный (а иногда и рукописный) текст в компьютер;
стример - устройство для быстрого сохранения всей информации, находящейся на жестком диске. Стример записывает информацию на кассеты с магнитной лентой. Обыкновенная емкость стримера 60 Мбайт;
CD привод - устройства для хранения информации больших объемов;
сетевой адаптер - дает возможность подключать компьютер в локальную сеть. При этом пользователь может получать доступ к данным, находящимся в других компьютерах.
Объем доступной оперативной памяти - один из важнейших параметров любого компьютера. Оперативная память или оперативное запоминающее устройство (ОЗУ или RAM) представляет собой совокупность микросхем на системной плате, способных накапливать и временно хранить программы и обрабатываемые данные. Эта информация по мере надобности может быстро считываться из оперативной памяти процессором и записываться туда вновь. При отключении питания содержимое оперативной памяти полностью стирается и утрачивается. Поэтому после включения компьютера программы и данные всякий раз необходимо заново загружать в оперативную память из источников долговременного хранения информации. Для долговременного хранения информации чаще всего применяются магнитные и оптические диски или иные накопители цифровой информации [2].
В современных компьютерах применяется главным образом динамическая оперативная память или DRAM (Dynamic Random Access Memory). Она строится на микросхемах, требующих во избежание потерь периодического обновления информации. Этот процесс получил название «регенерация памяти». Он реализуется специальным контроллером, установленным на материнской плате. На периодическую регенерацию данных в микросхемах динамической оперативной памяти расходуется некоторое время. Поэтому сбои в памяти нередко оказываются одной из распространенных проблем в работе недорогих персональных компьютеров «желтой» или «черной» сборки, даже если в них используются совершенно исправные микросхемы динамической оперативной памяти.
Объем любой компьютерной памяти, в том числе и оперативной памяти, измеряется в килобайтах и мегабайтах. Наименьшей единицей измерения информационной емкости и наименьшей единицей деления памяти компьютера является байт. Собственно байт - это, в свою очередь, совокупность восьми мельчайших единиц информации, которые называют битами. Разница между простейшими стационарными двоичными состояниями, например, «включено»/«выключено» или между 0 и 1 составляет всего один бит. Байтовая (или 8 - битовая) структура измерения выбрана из - за двоичной организации вычислительной техники. Для передачи или сохранения одного любого символа - буквы, цифры или знака - требуется минимум один байт.
1 килобайт равен 1024 байтам, 1 мегабайт - 1024 килобайтам, 1 гигабайт - 1024 мегабайтам.
Самые первые IBM PC имели оперативную память всего лишь 16 Кбайт. Последующие модели персоналок типа IBM PC и PC/XT располагали объемом оперативной памяти до 640 Кбайт - именно таков максимальный объем памяти, которым способна управлять операционная система MS-DOS. А для увеличения объема памяти использовались специальные платы расширения, позволявшие дополнительно увеличить объем памяти до 16 - 64 Мбайт [2].
Оперативная память компьютера IBM PC с процессором Intel - 8088 или Intel - 8086 (например, IBM PC XT) может иметь размер не более 1 Мбайта, поскольку эти микропроцессоры могут обращаться не чем к 1 Мбайту памяти. Эта память состоит из двух частей. Первые 640 Кбайт памяти могут использоваться прикладными программами и операционной системой. Остальные адреса памяти («верхняя память») зарезервированы для служебных целей:
для хранения части операционной системы DOS, которая обеспечивает тестирование компьютера, начальную загрузку операционной системы, а также выполнение основных низкоуровневых услуг ввода - вывода;
для передачи изображения на экран;
для хранения различных расширений операционной системы, которые поставляются вместе с дополнительными устройствами компьютера.
Как правило, тогда говорят об объеме оперативной памяти компьютера, то имеют в виду именно первую ее часть, которая может использоваться прикладными программами и операционной системой.
Барьер 640 Кбайт. Для многих программ 640 Кбайт мало (к тому же из этих 640 Кбайт до 100 Кбайт могут занимать DOS и различные системные программы - драйверы устройств и резидентные программы). Поэтому были разработаны расширенная (extended) и дополнительная (expanded) памяти.
В качестве компонентов памяти в современных компьютерах используются главным образом модули памяти с однорядным расположением выводов, которые называются SIMM. Эти модули выпускаются с 30 и с 72 контактами емкостью 256 Кбайт, 1 Мбайт, 4 Мбайт, 16 Мбайт или 32 Мбайта.
1.1.3. Дисковая операционная система (DOS)
Дисковая операционная система - это программа, которая загружается при включении компьютера. Она производит диалог с пользователем, посредством команд (каждая команда означает действие, которое DOS должна выполнить) осуществляет управление компьютером, его ресурсами (оперативной памятью, местом на дисках и т. д.), выводит информацию на видеомонитор, запускает другие (прикладные) программы на выполнение. Операционная система обеспечивает пользователю и прикладным программам удобный способ общения (интерфейс) с устройствами компьютера. Она выполняет также различные вспомогательные действия, например копирование или печать файлов (файл -- это поименованный набор информации на диске или другом машинном носителе). Все функции по обслуживанию таблиц размещения файлов, поиску информации в них, выделению места для файлов на дискетах выполняются операционной системой.
Главным достоинством DOS является ее способность управлять устройствами памяти на магнитных дисках (именно поэтому она названа - дисковая операционная система) [7].
Операционная система осуществляет загрузку в оперативную память всех программ, передает им управление в начале их работы, выполняет различные действия по запросу выполняемых программ и освобождает занимаемую программами оперативную память при их завершении.
Система программирования Турбо Паскаль (Turbo Pascal), разработанная американской корпорацией Борланд (Borland), остается одной из самых популярных систем программирования в мире. Этому способствуют, с одной стороны, простота, лежащая в основе языка программирования Паскаль, а с другой - труд и талант сотрудников корпорации Борланд во главе с идеологом и создателем Турбо Паскаля Андерсом Хейлсбергом. [3]
Придуманный швейцарским ученым Никласом Виртом как средство для обучения студентов программированию, язык Паскаль стараниями А. Хейлсберга превратился в мощную современную профессиональную систему программирования, которой по плечу любые задачи - от создания простых программ, до разработки сложнейших реляционных систем управления базами данных. [4]
Турбо Паскаль - это строго типизированный язык. Развитая система типов позволяет легко разрабатывать адекватные представления для структур данных любой решаемой задачи. В то же время существующие в Турбо Паскале средства преобразования типов дают возможность гибко манипулировать различными данными.
Основные операторы языка являются хорошей иллюстрацией базовых управляющих конструкций структурного программирования. Их использование позволяет записывать сложные алгоритмы обработки данных в компактной форме. Гармоничное включение в структуру языка средств объектно-ориентированного программирования делает переход от традиционных технологий программирования к объектно-ориентированному для тех, кто программирует на Турбо Паскале, достаточно безболезненным.
Система программирования Турбо Паскаль поддерживает модульный принцип программирования, который лежит в основе всех современных технологий разработок программ. Программа, написанная на Турбо Паскале, обычно разбивается на модули, а те, в свою очередь, состоят из подпрограмм. [4]
Целью задачи является разработка программного интерфейса (ПИ), который должен связывать персональный компьютер и лабораторный макет «Программатор ПЗУ».
ПИ должен обеспечивать подачу входных воздействий на все контакты ИМС (шину адреса, шину данных, управляющие сигналы), осуществлять считывание и запись данных, используя стандартный порт ввода-вывода LPT (параллельный).
Требования к интерфейсу: ПИ должен обеспечивать формирование и подачу адреса, содержащего шесть информационных и четыре управляющих бита данных на соответствующие контакты программируемой ПЗУ, обеспечить стробирование чтения/записи информации. ПИ должен обеспечить удобный вывод текстовой информации на экран для упрощения работы пользователя с программой.
Структура программного интерфейса была построена на основе иерархической системы экранного меню.
Эта система позволяет обеспечить для пользователя удобный переход и взаимодействие различных уровней иерархии данного алгоритма структуры меню.
При разработке алгоритма программного обеспечения были использованы следующие программные модули:
модуль главного меню;
модуль настройки программы;
модуль чтения ПЗУ;
модуль записи ПЗУ;
модуль просмотра настроенной программы.
Модуль главного меню обеспечивает отображение на экране всех пунктов меню, и, соответственно, осуществляет передачу управления программы по этим пунктам с предварительным сохранением информационных переменных и массивов.
Модуль настройки программы осуществляет определение пользователем всех входных и выходных параметров, которые необходимы для дальнейшей работы модулей чтения и записи ПЗУ, а также тестирования программатора.
Модули чтения и записи ПЗУ, обеспечивает связь программного интерфейса с аппаратной частью лабораторного макета, и осуществляет основную связь по работе с ПЗУ.
Модуль просмотра настроенной программы осуществляет выдачу на экран текста настроенной универсальной программы.
Управляющая программа построена в режиме меню для обеспечения наибольшей простоты ее использования.
Программа была реализована на экране с разрешающей способностью в текстовом режиме 80x60. Для упрощения программного алгоритма были разработаны процедуры, которые позволили выводить меню, управлять курсором, работать с файловой системой DOS.
2.2.1. Процедура WaitRt - ждет вертикального обратного хода луча
2.2.2. Процедура Color - установка цвета
Таблица 2.1
Переменные используемые в процедуре Color
Переменная |
Назначение |
C1 |
Цвет символа |
С2 |
Цвет экрана |
2.2.3. Процедура Loc - позиция курсора на экране
Таблица 2.2
Переменные используемые в процедуре Loc
Переменная |
Назначение |
X |
Позиция курсора по X |
С2 |
Позиция курсора по Y |
2.2.4. Процедура Wchar - печать символа
2.2.5. Процедура Shade- создание тени для окна.
2.2.6 Процедура Wrt - вывод текста на экран.
2.2.7. Процедура Map - выводим созданный виртуальной эран на дисплей.
2.2.8. Процедура Cls - очистка экрана.
2.2.9. Процедура ScanKey - выдает ASCII код нажатой клавиши.
2.2.10. Процедура SkipTime - пропускает время (таймер процессора).
2.2.11. Процедура MoveMan - анимация человекаи стрелки.
2.2.12. Процедура MakeMan - создание человека.
2.2.13. Процедура LoadFont - загрузка моего шрифта.
2.2.14. Процедура WaitKey - ожидание нажатия любой клавиши.
2.2.15. Процедура Window - создание окон.
Таблица 2.3
Переменные используемые в процедуре Window
Переменная |
Назначение |
XUL |
Позиция левого верхнего углапо X |
YUL |
Позиция левого верхнего углапо Y |
XDR |
Позиция правого нижнего углапо X |
XDR |
Позиция правого нижнего углапо Y |
2.2.16. Процедура Morph - создание эффекта “Морфий”, плавное преоразование одного окна в другое.
Таблица 2.4
Переменные используемые в процедуре Morph
Переменная |
Назначение |
1 |
2 |
XF1 |
Позиция левого верхнего углапо X исходного окна |
YF1 |
Позиция левого верхнего углапо Y исходного окна |
XF2 |
Позиция правого нижнего углапо X исходного окна |
YF2 |
Позиция правого нижнего углапо Y исходного окна |
XT1 |
Позиция левого верхнего углапо X получаемого окна |
Продолжение таблицы 2.4
1 |
2 |
YT1 |
Позиция левого верхнего углапо Y получаемого окна |
XT2 |
Позиция правого нижнего углапо X получаемого окна |
YT2 |
Позиция правого нижнего углапо Y получаемого окна |
2.2.17. Процедура MorphL - создание эффекта “Морфий” с последними координатами.
Таблица 2.5
Переменные используемые в процедуре MorphL
Переменная |
Назначение |
XF1 |
Последняя позиция левого верхнего углапо X |
YF1 |
Последняя позиция левого верхнего углапо Y |
XF2 |
Последняя позиция правого нижнего углапо X |
YF2 |
Последняя позиция правого нижнего углапо Y |
2.2.18. Процедура WindowL - создание окна с последними координатами.
2.2.19. Процедура Menu - работа с меню, выбор пункта меню и перемещение курсора.
Таблица 2.6
Переменные используемые в процедуре Menu
Переменная |
Назначение |
X1 |
Координаты по X первой строчки меню |
Y1 |
Координаты по Y первой строчки меню |
STEPY |
Шаг пунктов меню |
ALL |
Количество пунктов в меню |
COL |
Цвет позиций в меню |
S1...S5 |
Название пунктов меню |
2.2.20. Процедура HexL2Str - представление символа в ввиде шестнадцатиричного кода.
2.2.21. Процедура HexB2Str - представление символа в ввиде восьмеричного кода.
2.2.22. Процедура MemEd - редактор текста.
2.2.23. Процедура Ffile - работа с файлами, запись, создание и чтение.
2.2.24. Процедура ReadROM - работа с программатором, чтение и запись данных ПЗУ, тестировнаие устройства.
Программный интерфейс был разработан с учетом всех его эксплуатационных характеристик. Он должен отвечать следующим требованиям:
полнота и краткость отображаемой информации;
удобное расположение информации на экране;
оперативность работы.
Интерфейс программного обеспечения был построен по иерархической структуре.
Рис. 2.1. Интерфейс программного обеспечения
Вся программа построена на основе типизированных меню, которые позволят легко и интуитивно работать, и не потребуют дополнительного времени от учащихся на изучение интерфейса программы. Фон, окна меню, и текст отвечают всем требованиям предъявляемым к цветовому оформлению; цветовая палитра подобрана так, чтобы глаза учащихся как можно меньше уставали при работе с программатором. Также был разработан новый шрифт, что позволило обеспечить крупные символы букв, и русифицированный программный интерфейс.
Кадровые окна основного меню и все подпункты меню на каждом уровне иерархии выполнены в виде окон с соответствием каждого окна его информационному назначению.
Межоконный переход осуществляется выбором соответствующего пункта перемещениемпо экрану маркера, в виде стрелки, позиция которого указывает на выбранный пункт меню.Обратный переход в иерархическом меню осуществляться выбором последнего пункта меню - «НАЗАД», или нажатием функциональной клавиши «ESC».
Работа с пунктом меню «Работа с ПЗУ» возможна только после выбора типа ПЗУ в пункте меню «Выбор ПЗУ», это связанно с особенностью работы аппаратной части лабораторного макета «Программатор ПЗУ».
При отладке программного интерфейса лабораторного макета был использован пошаговый режим пяти основных программных модуля: модуль меню, модуль чтения ПЗУ, модуль записи ПЗУ, модуль тестирования программатора, модуль файловых операций.
В процессе отладки были использована промежуточная печать для определения некоторых промежуточных вычислений и кода вводимых с клавиатуры символов и клавиш.
Была произведена отладка программы на выявление орфографических, синтаксических, логических и графических ошибок в экранных частях программы.
Осуществлена отладка программного интерфейса совместно с его аппаратной частью. Были внесены некоторые изменения в программу, связанные с обеспечением синхронизации работы программного интерфейса лабораторного макета с его аппаратной частью.
При эксплуатации лабораторного макета “Програматор ПЗУ” по проведению лабораторных работ необходимо:
1. Подсоединить интерфесный продов к программатору и параллельному порту персонального компьютера (оба должны быть обесточены)
2. Включить питание копьютера
3. Включить питание на лабораторном макете
4. Загрузить на компьютере программный интерфейс
5. Вставить микросхему ПЗУ в слот на лабораторном макете
6. Ознакомиться с программой
7. Выбрать в программе тип микросхемы ПЗУ, вставленную в слот лабораторного макета
8. Провести тестирование работоспособности программатора
9. Выполнить задание по работе с лабораторным макетом
10. Выйти из программы
11. Выключить лабораторный макет
12. Выключить персональный компьютер
13. Снять микросхему ПЗУ со слота лабораторного макета
Для ознакомления с устройством и работой программатора ПЗУ пользователю предоставлена документация.
В процессе дипломного проектирования были получены следующие результаты:
Был разработан программный интерфейс лабораторного макета «Программатор ПЗУ», который обеспечивает связь аппаратного интерфейса лабораторного макета с последовательным портом (LPT) персонального компьютера IBM PC, позволяет считывать и записывать информацию на микросхемы ПЗУ.
Также программный интерфейс создает удобный режим общения пользователя с программой по принципу экранных меню.
Вся программа реализована на персональном компьютере IBM PC 486 с монитором разрешающей способностью в текстовом режиме 80x60,при палитры 16 цветов.
В ходу отладки программного интерфейса экспериментным путем были установлены минимальные требования к персональному компьютеру:
IBM совместимы персональный компьютер;
процессор 286;
цветной дисплей;
видеоадаптер EGA;
операционная оболочка DOS 3.0 или старше;
объем оперативной памяти 416 Kb;
свободное пространство на жестком диске из расчета: программа (20Kb) + 64Kb*кол. прошивок ПЗУ.
Техническая характеристика программы:
Объем программы на жестком диске |
20 Kb |
Занимаемая память во время исполнения |
17Kb |
Скорость чтения микросхемы ПЗУ |
1Kb/сек. |
Скорость записи прошивки в ПЗУ |
0.5Kb/сек. |
Тестирование программатора |
13 сек |
3.1.1 Статья I. Материальные ресурсы
Статья I включает стоимость всех видов сырья и материалов, расходуемых на изготовление продукции, а также транспортно-заготовительные расходы.
Расчет сырья и материалов приведен в таблице 3.1.
Таблица 3.1 |
Расчет сырья и материалов
Наименование |
Ед. Измерения |
Цена, руб. |
Норма расходов, шт. |
Стоимость, руб. |
||
Операционная система MS-DOS 6.20 |
шт. |
342000.00 |
1 |
342000.00 |
||
Язык программирования Borland Turbo Pascal v7.0 |
шт. |
570000.00 |
1 |
570000.00 |
||
Итого: |
912000.00 |
|||||
ТЗР= |
(3.1) |
|||||
ТЗР=912000.00*1%/100%=9120.00 руб.
Ст.I= |
(3.2) |
Ст.I=912000.00+9120.00=921120.00 руб.
3.1.2. Статья II. Оплата труда
Статья II включает заработную плату основных производственных рабочих, в которые непосредственно на рабочих местах выполняют операции, по обработке продукции.
Определение норм времени на операции приведено в таблице 3.2.
Таблица 3.2 |
Нормы времени
Должность |
Стоимость 1 часа |
Кол-во часов |
Оплата |
Программист |
15000.00 руб. |
60 |
900000.00 руб. |
Отладчик |
5000.00 руб. |
15 |
75000.00 руб. |
Итого: |
975000.00 руб. |
Ст.2=975000.00 руб.
3.1.3 Статья III. Отчисления во внебюджетные фонды
Статья III включает в себя отчисления в пенсионный фонд (28 %), фонд занятости (1.5 %), медицинское страхование (3.6 %), социальное страхование (5.4 %), в фонд образования (1 %) и транспортный налог (1 %).
Всего 40,5 % от начисленной заработной платы.
Ст.3= |
(3.3) |
Ст.3=394875.00 руб.
3.1.4. Статья IV.Расходы на содержание и обслуживание оборудования
Статья IV включает в себя расходы на зарплату вспомогательным рабочим, наладчикам, механикам, стоимость запасных частей, вспомогательных средств и амортизацию.
Начальная стоимость персонального компьютера IBM PC/AT 386 - 2425920.00 руб., норма амортизации - 4% (КОМ), расходы составили 97036.80 руб.
Во время разработки и отладки программного обеспечения было потрачена 89 кВт (ЭНЕР) электроэнергии: 1 кВт - 512.00 руб., 89 кВт - 45568.00 руб.
Ст.4=КОМ+ЭНЕР |
(3.4) |
Ст.4= 97036.80+45568.00=142604.80 руб.
3.1.5. Полная себестоимость
Пол.Себ.= |
(3.5) |
Пол.Себ.=921120.00+975000.00+394875.00+142604.80=2433559.80 руб.
Эффективность внедрения программы заключается в том, что лабораторный макет, для которого написана программа, позволяет наглядно продемонстрировать чтение и запись ПЗУ в производственных условиях.
Лабораторный макет и программное обеспечение обслуживающие макет, позволит улучшить качество обучающего процесса по предмету «Импульсная техника», потому, что позволит учащимся непосредственно на практике изучить метод чтения и записи микросхем.
Программа для лабораторного макета проста и интуитивна понятна в обращении; Сам макет, также прост, что позволяет сразу преступить к выполнению лабораторной работы, необходимо всего лишь только подключиться макет в сеть, подсоединить разъем к параллельному порту персонального компьютера (порт LPT), вставить прошиваемую микросхему ПЗУ в панель и запустить программное обеспечение на персональном компьютере. Эта простота в обращении позволит не затрачивать много времени на обучение учащихся пользованию макетом.
Лабораторный макет имеет хорошие показатели повторяемости, не требует сложного оборудования для отладки, что позволяет легко внедрить макет в производство или собирать его непосредственно в радиомастерских учебных заведений или в домашних условиях.
К достоинству макета относятся и
низкая себестоимость, так как использованы широкодоступные детали и материалы;
малый ток потребления;
малые габаритные размеры;
интуитивно понятный программный интерфейс.
Все выше перечисленные факторы позволят снизить розничную цену макета и программного обеспечения для него, а также уменьшить затраты на эксплуатацию, что в условиях рыночной экономики позволяет повсеместно внедрить лабораторный макет по программированию ПЗУ в учебный процесс. Сам как таковой лабораторный стенд без программного обеспечения не имеет смысла рассматривать, так как без программы, это просто груда металла, так же как и программа без металла, это просто бессмысленный набор команд. Поэтому дальше под словом макет будет рассматривать совокупность лабораторного стенда и программного обеспечения для него.
Так как разработка макета носит социально-направленный характер (для проведения лабораторных работ в учебных заведениях по курсу «Импульсная техника») и в стоимостном выражении не оценивается.
Технические и периферийные средства ПЭВМ должны отвечать требованиям безопасности при их эксплуатации, монтаже, ремонте и обслуживании отдельных комплексов и систем в целом. Устройства управления ПЭВМ, устройства ввода-вывода и подготовки данных в процессе эксплуатации должны быть пожаробезопасными и соответствовать требованиям безопасности в течение всего срока службы.
Органы управления техническими средствами ПЭВМ, устройства ввода-вывода, средства диагностики и контроля работы должны включать накопление статического электричества в опасных количествах. Отдельные блоки ЭВМ допускается эксплуатировать с устройствами снятия электрического заряда.
Для предотвращения образования и защиты студентов от статического электричества в помещениях учебно-вычислительного центра (УВЦ) необходимо использовать нейтрализаторы и увлажнители воздуха, а полы должны иметь антистатическое покрытие. Допустимый уровень напряженности электрического поля в помещениях УВЦ не должен превышать 20 кВ/м.
Конструктивно отдельные модули и блоки технических средств ПЭВМ должны иметь местное освещение для обслуживания, диагностики и контроля работы, при этом должна исключаться возможность соприкосновение с токоведущими частями электрооборудования.
Устройства управления техническими и периферийными средствами ПЭВМ, обеспечивающие взаимодействие составных частей ПЭВМ, должны быть выполнены так, чтобы не могла возникнуть опасность в процессе совместного действия отдельных систем и комплекса в целом.
Видео терминальное устройство отображения информации должно отвечать основным требованиям безопасности: яркость экрана дисплея не менее 100 кд/м2, высота символов на экране не менее 3.8 мм, расстояние от глаз до экрана не менее 400 мм, размер экрана по диагонали не менее 310 мм, количество точек на одной строке не менее 640, минимальный размер светящейся точки не более 0.4 мм, для монохромного дисплея и 0.6 мм для цветного.
Оптимальные и допустимые условия микроклимата в лабораториях учебного вычислительного центра (УВЦ) устанавливаются с учетом избытка тепла, выделяемого от технических и периферийных устройств ПЭВМ, тяжести выполняемой работы, а также времени года. Микроклимат определяется действующими на организм программистов сочетаниями температуры, влажности и скорости движения воздуха.
В лабораториях УВЦ необходимо поддерживать оптимальные условия микроклимата с помощью вентиляционных и отопительных систем, выполненных в соответствии с СНИП II-33-75. Температура воздуха в холодный и теплы период года должна быть в пределах +20...25 оС , относительная влажность 60...40 % при скорости движения воздуха не более 0.2 м/с, подача наружного воздуха в помещение лаборатории объемом до 20 м3 на одного студента не должна быть менее 30 м3/ч.
Воздух в помещениях работы программистов и операторов вычислительных систем должен быть очищен от вредных веществ, пыли и микроорганизмов. Патогенная флора должна быть исключена. В помещениях лабораторий УВЦ общее количество колоний на 1 м3 не должна превышать 1000. В помещениях УВЦ воздух рабочей зоны должен соответствовать установленным требованиям ГОСТ 12.1.005-76 с незначительным избытком тепла от видеотерминалов и устройств отображения информации.
При одновременном нахождении в помещениях УВЦ технических и периферийных устройств ПЭВМ, программистов и операторов вычислительных систем, когда температура внешней среды выше +25 оС, допустимая температура воздуха в помещениях не должна превышать +31...+33 оС со значительным избытком тепла от ПЭВМ. При длительном воздействии повышенной температуры происходит нарушение водно-солевого, белкового и витаминного обменов в организме студентов УВЦ. В результате наступает расслабление организма учащихся, снижение внимания и скорости восприятия с устройств отображения информации.
В лабораторном макете присутствует опасное для жизни напряжение 220 вольт 50 герц. Это напряжение питает трансформаторный блок. В остальных блоках лабораторного макета напряжения не превышают 27 вольт, что не является опасным. В блоке стабилизатора и блоке нагрузки происходит тепловыделение. Температура частей этих блоков не превышает 50оС, что не представляет опасности для человека.
Корпус блока трансформатора выполнен из диэлектрического материала. Шасси выполнено из дюралюминия. Клемма заземления шасси должна быть выведена на корпус. К этой клемме должно быть подключено заземление.
Шнур питания и вилка должны соответствовать ТУ на них, и не иметь изломов и нарушений в изоляции.
Сетевой тумблер типа ПТ2-2 (напряжение 600 вольт, ток до 2 ампер) отвечает требованиям электробезопасности.
Должны быть использованы сетевые предохранители в стандартных держателях.
Напряжения и температуры в остальных блоках лабораторного макета не представляют опасности и не требуют особых мер предосторожности.
Так как программатор взаимодействует при работе с ПЭВМ, а ПЭВМ является электроустановкой, то к ней предъявляются требования соблюдения всех параметров электробезопасности согласно ТУ на ПЭВМ. Вредными факторами для человека являются:
мягкое рентгеновское излучение экрана;
мерцание экрана с частотой кадровой развертки;
электростатическое поле вокруг экрана;
ультрафиолетовое излучение экрана.
СПИСОК ЛИТЕРАТУРЫ
Скотт Мюллер «Модернизация и ремонт персональных компьютеров», Москва, изд. «Восточная Книжная Компания», 1996г., ISBN 0-7897-0321-1
Гук «Аппаратные средства IBM PC», Санкт-Петербург, изд. «Питер Пресс», 1996г., ISBN 5-88782-036-5
Фаронов В.В. «Турбо Паскаль 7.0. Начальный курс. Учебное пособие», Москва, изд. «Нолидж», 1997г., ISBN 5-89251-012-3
М.В.Сергиевский, А.В. Шалашов «Турбо Паскаль 7.0: Язык, среда программирования», Москва, изд. «Машиностроение», 1994г., ISBN 5-217-02468-2
Абель П. «Язык Ассемблер для IBM PC и программирования», Москва, изд. «Высшая школа», 1992г., ISBN 5-101-123447-1
Гейтс Б. «Дорога в будующее», Москва, изд. «Русская редакция», 1996г., ISBN 5-7502-0019-1
Информация с сервера www.referats.aha.ru, изд. INTERNET
CD-библиотека «Все для инженера», изд. InfoLink, 1997г.
ПРИЛОЖЕНИЕ 1
ПРОГРАММНЫЙ ИНТЕРФЕЙС
Uses DOS;
Type TNT = Array[0..65534]Of Byte;
Filearray = Array[1..5000]Of String[12];
Const
U0 = Char(200);
U1 = Char(201);
U2 = Char(202);
U3 = Char(199);
U4 = Char(198);
U5 = Char(203);
U6 = Char(193);
U7 = Char(192);
Up = Char(194)+Char(195);
Uf = Char(196)+Char(185);
Us = Char(197)+Char(186);
Speed = 3;
Hex : Array[0..15]Of Char = ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
Var
Buffer : ^TNT;
Filx : ^filearray;
Dirx : ^filearray;
Fake : ^TNT;
ScanCode: Byte;
Key : Char;
Screen : Array[0..50*90] of byte;
Segscr : Word;
Ofsscr : Word;
px,py : Byte;
Clr : Byte;
MenuP : Byte;
F : File;
RomSize : Longint;
Curd : String;
RomName : String;
lxul,lyul,lxdr,lydr : byte;
Procedure WaitRt; assembler;
Asm
mov dx,$3da
@wa1:
in al,dx
test al,8
je @wa1
@wa2:
in al,dx
test al,8
jne @wa2
End;
Procedure Color(c1,c2 : byte);
Begin
clr:=c1+16*c2;
End;
Procedure Loc(x,y: byte);
Begin
px:=x;
py:=y;
End;
Procedure WChar(c : char);
Begin
screen[py*160+px+px]:=byte(c);
screen[py*160+px+px+1]:=clr;
inc(px);
If px=80 Then
Begin px:=0; inc(py);
If py>25 Then py:=25;
End;
End;
Procedure Shade(x : byte);
Var
m : byte;
Begin
For m:=1 To x Do
Begin
Screen[py*160+px+px+1]:=screen[py*160+px+px+1] And $7;
inc(px);
If px=80 Then
Begin px:=0; inc(py);
If py>25 Then py:=25;
End;
End;
End;
Procedure Wrt(s : string);
Var
x: word;
Begin
For x:=1 To length(s) Do WChar(s[x]);
End;
Procedure WrtLn(s : string);
Var
x: word;
Begin
For x:=1 To length(s) Do WChar(s[x]);
px:=0;
inc(py);
If py>25 Then py:=25;
End;
Procedure Map;
Begin
Move(screen,mem[$b800:0],80*50);
End;
Procedure Cls;
Begin
FillChar(screen,80*50,0);
End;
Procedure ReadKey; assembler;
Asm
xor ax,ax
int 16h
End;
Function ScanKey : char;
Var
x : byte;
Begin
x:=255;
Asm
mov ah,01
int 16h
jz @nokey
mov x,al
mov ScanCode,ah
@nokey:
End;
If x<>255 Then ReadKey;
ScanKey:=char(x);
End;
Procedure SkipTime;
Var
h,m,s,c : word;
lh,lm,ls,lc : longint;
abstime1,abstime2: longint;
Begin
GetTime(h,m,s,c);
lh:=h; lm:=m; ls:=s; lc:=c;
abstime1:=lc+(ls*100)+(lm*60*100)+(lh*60*60*100);
Repeat
GetTime(h,m,s,c);
lh:=h; lm:=m; ls:=s; lc:=c;
abstime2:=lc+(ls*100)+(lm*60*100)+(lh*60*60*100);
Until (abstime2<>abstime1);
End;
Procedure MoveMan;
Var
addr : word;
a : byte;
x : word;
Begin
addr:=0;
For x:=0 To 80*25-1 Do
Begin
a:=screen[addr];
If (a>207)And(a<217) Then
inc(a);
If a=217 Then a:=208;
If a=205 Then a:=204 Else If a=204 Then a:=205;
screen[addr]:=a;
inc(addr,2);
End;
End;
Procedure MakeMans;
Var x: word;
Begin
For x:=0 To 80*25-1 Do
Begin
screen[x+x]:=177;
screen[x+x+1]:=16+7;
End;
End;
Procedure LoadFont;
Var
f: file;
Begin
Assign(f,curd+'axefont.fnt');
Reset(f,1);
Blockread(f,screen,50*80);
Close(f);
Asm
push bp
mov ax,segscr
mov es,ax
mov bp,ofsscr
mov bx,1000h
xor dx,dx
mov cx,256
mov ax,1100h
int 10h
pop bp
mov ah,1
mov cx,1000h
int 10h
End;
Cls;
End;
Procedure WaitKey;
Begin
WaitRt;
Map;
Repeat
Key:=ScanKey;
If Key=char(255) Then
Begin
Map;
MoveMan;
SkipTime;
End;
Until Key<>char(255);
End;
Procedure Window(xul,yul,xdr,ydr : byte; name : string);
Var
x,y : word;
Begin
Loc(xul,yul);
Wrt(up);
For x:=xul+2 To xdr Do Wrt('-');
For y:=yul+1 To ydr-1 Do
Begin
Loc(xul,y); Wrt(u0);
For x:=xul+1 To xdr-1 Do Wrt(' ');
Wrt(u1);
Shade(2);
End;
Loc(xul,y);
Wrt(u4);
For x:=xul+1 To xdr-1 Do Wrt(u7);
Wrt(u5);
Loc(xul+2,ydr);
Shade(xdr-xul+1);
x:=length(name) shr 1;
y:=(xdr-xul)shr 1+xul;
y:=y-x;
Loc(y+1,yul);
y:=clr;
x:=(clr and $F0)shr 4;
color(x,clr and $0F);
Wrt(name);
clr:=y;
lxul:=xul;
lyul:=yul;
lxdr:=xdr;
lydr:=ydr;
End;
Procedure Morph(xf1,yf1,xf2,yf2,xt1,yt1,xt2,yt2 : byte);
Var
x : word;
Begin
Window(xf1,yf1,xf2,yf2,'');
Repeat
MakeMans;
If xf1>xt1 Then dec(xf1,((xf1-xt1)Shr speed)+1);
If xf1 If yf1>yt1 Then dec(yf1,((yf1-yt1)Shr
speed)+1); If yf1 If xf2>xt2 Then
dec(xf2,((xf2-xt2)Shr speed)+1); If xf2 If yf2>yt2 Then
dec(yf2,((yf2-yt2)Shr speed)+1); If yf2 Window(xf1,yf1,xf2,yf2,''); Map; WaitRt; Until
(xf1=xt1)And(xf2=xt2)And(yf1=yt1)And(yf2=yt2); End; Procedure
MorphL(xt1,yt1,xt2,yt2 : byte); Var x : word; xf1,xf2,yf1,yf2 : byte; Begin xf1:=lxul; xf2:=lxdr; yf1:=lyul; yf2:=lydr; MorPh(xf1,yf1,xf2,yf2,xt1,yt1,xt2,yt2); End; Procedure
WindowL(name : string); Var xf1,xf2,yf1,yf2 : byte; Begin xf1:=lxul; xf2:=lxdr; yf1:=lyul; yf2:=lydr; Window(xf1,yf1,xf2,yf2,name); End; Procedure
Menu(x1,y1,stepy,all,col : byte; s1,s2,s3,s4,s5 : string;lenx : byte); Var x:
byte; yt : byte; yp : byte; Begin yt:=y1; For x:=1 To all Do Begin Loc(x1,yt); Case x oF 1: Wrt(s1); 2: Wrt(s2); 3: Wrt(s3); 4: Wrt(s4); 5: Wrt(s5); End; yt:=yt+stepy; End; yp:=0; yt:=clr; clr:=col; Repeat Repeat {??} Loc(x1-2,y1+(stepy*yp)); Wrt(char(204)); WaitKey; Until
(Key=chr(13))or(ScanCode=byte('H'))or(ScanCode=byte('P'))or(Key=chr(27)); Loc(x1-2,y1+(stepy*yp)); Wrt(' '); If Key=chr(27) Then yp:=all-1; If ScanCode=byte('P') Then If
yp<(all-1) Then inc(yp); If ScanCode=byte('H') Then If yp>0
Then dec(yp); Until
(Key=chr(13))or(Key=chr(27)); x:=x1-2; Repeat Loc(x,y1+(stepy*yp)); Wrt(' '+chr(205)); WaitRt; Map; inc(x,1); Until
x>=x1+lenx; clr:=yt; MenuP:=yp; End; Procedure
HexL2Str(l : longint; var s : string); Begin s:=hex[(l shr (4*7))and 15]; s:=s+hex[(l shr (4*6))and 15]; s:=s+hex[(l shr (4*5))and 15]; s:=s+hex[(l shr (4*4))and 15]; s:=s+hex[(l shr (4*3))and 15]; s:=s+hex[(l shr (4*2))and 15]; s:=s+hex[(l shr (4*1))and 15]; s:=s+hex[(l)and 15]; End; Procedure
HexB2Str(l : byte; var s : string); Begin s:=hex[(l shr 4)and 15]; s:=s+hex[(l)and 15]; End; Procedure
MemEd(name: string); Var x,y
: word; l,l1,p,lpos : longint; s,st
: string; stc
: byte; size
: longint; readsize
: longint; bank
: word; b1,b2
: byte; flag
: boolean; i
:searchrec; Label
Repaint, TryAgain; Begin TryAgain: FindFirst(name,AnyFile,i); If i.Attr And ReadOnly = ReadOnly Then Begin stc:=clr; color(7,4); MorPhL(20,7,56,15); WindowL('File has ReadOnly Attribute!'); Menu(30,9,2,3,$4b,'Remove it','Reselect
file','Exit','xxx4','xxx5',6); If MenuP=1 Then Begin MenuP:=8; exit; End; If MenuP=2 Then Begin MenuP:=0; exit; End; clr:=stc; assign(f,name); SetFattr(f,(i.Attr xor ReadOnly)); MorPhL(0,0,77,24); Color(7,6); WindowL('Memory Editor'); goto TryAgain; End; Assign(f,name); reset(f,1); size:=FilesiZe(f); l1:=0; p:=0; lpos:=0; bank:=0; flag:=false; If size>35000 Then readsize:=35000 Else
readsize:=size; blockread(f,buffer^,readsize); RePaint: If l1 Div 32767 <> bank Then Begin If flag Then Begin color(7,4); MorPhL(24,7,50,14); WindowL('Save Changed Data?');
Menu(36,9,3,2,$4b,'YES','NO','xxx3','xxx4','xxx5',6); If MenuP=0 Then Begin Seek(f,lpos); blockwrite(f,buffer^,readsize); End; MorPhL(0,0,77,24); Color(7,6); WindowL('Memory Editor'); End; lpos:=(l1 div 32767)*32767+(l1 div
32767); Seek(f,lpos); If size-l1>35000 Then
readsize:=35000 Else readsize:=size-l1; blockread(f,buffer^,readsize); bank:=l1 div 32767; flag:=false; end; l:=l1 and 32767; Loc(2,1); Wrt('address 0
123
456
789
ABC
DEF
ASCII'); For x:=2 To 22 Do Begin Loc(2,x); HexL2Str(l+(l1 and (32767 xor
$FFFFFFFF)),s); Wrt(s+':'); For y:=1 to 16 do Begin HexB2Str(buffer^[l],s); Wrt(s+' '); inc(l); End; For y:=16 Downto 1 Do Begin Wrt(char(buffer^[l-y])); End; End; l:=l1 and 32767; Repeat Repeat stc:=clr; color(6,7); HexB2Str(buffer^[l+p],s); Loc((((p) and 15)*3)+13,(p) shr 4+2); Wrt(s); Loc((((p) and 15))+61,(p) shr 4+2); Wrt(char(buffer^[l+p])); clr:=stc; WaitKey; Until (Key=chr(13))or(ScanCode=$49)or(ScanCode=$51)or(ScanCode=$48)
or(ScanCode=$4D)or(ScanCode=$4B)or(ScanCode=$50)or(Key=chr(27))
or((Key>='0')and(Key<='9')or(upcase(Key)>='A')and(Upcase(Key)<='F')); If
(ScanCode=$48)or(ScanCode=$4d)or(ScanCode=$4b)or(ScanCode=$50) Then Begin HexB2Str(buffer^[l+p],s); Loc((((p) and 15)*3)+13,(p) shr 4+2); Wrt(s); Loc((((p) and 15))+61,(p) shr 4+2); Wrt(char(buffer^[l+p])); End; If ((Key>='0')And(Key<='9'))Or((upcase(Key)>='A')And(Upcase(Key)<='F'))
Then Begin stc:=clr; Key:=upcase(Key); If (Key>='0')And(Key<='9') Then
b1:=byte(Key)-byte('0') Else b1:=byte(Key)-byte('A')+10; color(6,7); Loc((((p) and 15)*3)+13,(p) shr 4+2); Wrt(Key+'?'); Loc((((p) and 15))+61,(p) shr 4+2); Wrt('?'); Repeat WaitKey; Until
((Key>='0')and(Key<='9')or(upcase(Key)>='A')and(Upcase(Key)<='F'))or(ScanCode=$0E); Key:=upcase(Key); If (Key>='0')And(Key<='9')
Then b2:=byte(Key)-byte('0') Else b2:=byte(Key)-byte('A')+10; If
((Key>='0')And(Key<='9'))Or((upcase(Key)>='A')And(Upcase(Key)<='F'))
Then Begin buffer^[l+p]:=b1*16+b2;
flag:=true; end; clr:=stc; end; Case ScanCode
of $50: if l1+p+16 $48: begin if (p>15)or(l1<>0)then
dec(p,16); if p<0 then begin dec(l1,16); p:=p and 15; goto RePaINt; end;
end; $4D: if l1+p+1 $4B: begin if (p>0)or(l1<>0)then
dec(p); if p<0 then begin dec(l1,16); p:=15; goto RePaINt; end; end; $49: begin if (l1>319) then begin
dec(l1,320) end else l1:=0; goto RePaint; end; $51: begin inc(l1,320); if l1>size-336 then
l1:=size-336; goto RePaint; end; end; Until
(key=chr(13))or(Key=chr(27)); If flag Then Begin color(7,4); MorPhL(24,7,50,14); WindowL('Save Changed Data?'); Menu(36,9,3,2,$4b,'YES','NO','','','',6); If MenuP=0 Then Begin Seek(f,lpos); blockwrite(f,buffer^,readsize); End; End; close(f); End; Function
LowCase(s : string) : string; Var x : integer; Begin LowCase:=s; For x:=1 To length(s) Do Begin If (s[x]>='A')And(s[x]<='Z') Then
LowCase[x]:=char((byte(s[x])-byte('A'))+byte('a')); End; End; Procedure
FFile(var s : string); Var i
: searchrec; name : string; x,y,z: integer; curp : integer; curps: integer; maxp : integer; mask : string; zs
: string; fz,dz: integer; f
: file of byte; pos
: longint; Label
Repaint; Begin s:=''; RePaint: For y:=1 To 17 Do Begin Loc(23,3+y); Wrt(' '); End; z
:=0; fz
:=0; dz
:=1; curp :=1; curps:=1; mask :='*.*'; FindFirst(mask,Directory,i); Repeat If (i.attr)And(Directory)=Directory Then Begin filx^[dz]:=i.name; If i.name<>'.' Then inc(dz); End Else Begin dirx^[fz+1]:=LowCase(i.name); inc(fz); End; FindNext(i); Until
DOSERROR<>0; z:=dz+fz; x:=1; For y:=dz To z Do Begin filx^[y]:=dirx^[x]; inc(x); End; Repeat maxp:=curp+17; If maxp>(z-1) Then maxp:=(z-1); For y:=curp To maxp Do Begin Loc(23,3+y-curp); name:=filx^[curp+(y-curp)]; For x:=17 DownTo
length(filx^[curp+(y-curp)]) Do name:=name+' '; If curps=(y-curp+1) Then color(1,2)
Else color(7,1); Wrt(' '+name); End; Repeat WaitKey; Until
(Key=chr(13))or(ScanCode=$48)or(ScanCode=$50)or(Key=chr(27))or(ScanCode=82); Case ScanCode
Of $50: inc(curps); $48: dec(curps); 82: Begin MOrPhL(10,10,40,15); WindowL('Input File Name .ROM'); y :=1; zs:='
'; Loc(22,12); Wrt('-'); Repeat WaitKey; Loc(21+y,12); If
(Key<>chr(13))And(Key<>chr(27)) Then If (Key<>chr(08)) Then Begin If y<>9 Then Begin zs[y]:=Key; Wrt(key+'-'); inc(y); End; End Else If y<>1 Then Begin dec(y); Loc(21+y,12); zs[y]:=' '; Wrt('-
'); End; Until
(Key=Chr(13))or(Key=chr(27)); MorPhL(20,8,50,12); Color(7,4); WindowL('!!!!!!!!!!!!'); Loc(30,10); Wrt('Жди давай!'+chr(208)); Map; Assign(f,zs+'.ROM'); Rewrite(f); y:=$FF; For pos:=1 To romsize Do Write(f,byte(y)); close(f); Key:=chr(255); ScanCode:=0; color(7,1); MorPhL(20,2,50,22); WindowL('Выберите файл'); s:=''; Goto RePaint; End; End; If curps>(z-1) Then curps:=(z-1); If (curps>18) Then Begin curps:=18; If curp End; If (curps<1) Then Begin curps:=1; If curp>1 Then dec(curp); End; Until
(Key=chr(13))or(Key=chr(27)); Color(7,1); If Key=chr(13) Then Begin FindFirst(filx^[curp+curps-1],00,i); If DOSERROR<>0 Then Begin chdir(filx^[curp+curps-1]); Goto RePaint; End; s:=filx^[curp+curps-1]; End; End; Procedure
ReadROM(addr : longint); Var x : word; y : byte; Begin x:=addr; port[$378]:=x and 65535; port[$379]:=x shr 16; y:=port[$380]; fake^[x and 65535]:=y; End; Var x
: byte; s
: string; l
: LONGINT; y
: longint; zs
: string; rsz
: longint; fi,fo : file; Label OpenF; Begin New(buffer); New(filx); New(dirx); New(fake); ofsscr:=ofs(screen); segscr:=seg(screen); LoadFont; MakeMans; GetDir(0,curd); romsize:=0; color(7,5); Window(1,1,26,12,'Главное меню'); Repeat MorPhL(1,1,26,12); Color(7,5); WindowL('Main Menu'); Menu(4,3,2,4,$5b,'Выбор ПЗУ','Работа с
ПЗУ','О программе','Вы'+char(208)+'ход','',20); case MenuP of 0: Begin Repeat MorPhL(20,10,50,18); color(7,1); WindowL('Выбор типа ПЗУ'); Menu(23,12,2,3,$1b,'УФ ПЗУ','ПЗУ с
плавкими перемычками','Назад','','',26); case MenuP of 0: Begin MorPhL(10,10,29,18); color(7,5); WindowL('УФ ПЗУ');
Menu(13,12,2,3,$5b,'2176','573РФ','Назад','','',16); If MenuP<>2 Then Begin romsize:=8*1024; romname:=curd+'amibio'; End; If MenuP<>2 Then MenuP:=2 Else
MenuP:=0; End; 1: Begin MorPhL(40,8,70,16); Color(7,5); WindowL('ПЗУ с плавкими перемычками'); Menu(43,10,2,3,$5b,'155РЕ3','556РТ6','Назад','','',16); If MenuP<>2 Then Begin romsize:=16*1024; romname:=curd+'amibio1'; end; If MenuP<>2 Then MenuP:=2 Else
MenuP:=0; end; end; Until
MenuP=2; MenuP:=5; end; 1: Begin If romsize=0 Then Begin MorPhL(21,6,49,10); Color(7,4); WindowL('Варнинг!!!'); Loc (25,8); Wrt ('Пипл!!! Выбери ПЗУ!!!!'); WaitKey; End Else Repeat MorPhL(40,5,60,15); Color(7,1); WindowL('Работа с ПЗУ');
Menu(44,7,2,4,$1b,'Чтение','Запись','Тестирование','Назад','Num5',12); Case MenuP Of 0: Begin MorPhl(22,7,50,11); color(7,1); WindowL('Чтение ПЗУ'); Loc(24,9); Wrt('-------------------------'); For l:=0 To romsize Do Begin Loc(24+(l*24 div romsize),9); Wrt ('-'+chr(208)); Color (3,1); Map; ReadROM(l); End; Color(7,1); MorPhL(0,0,77,24); Color(7,6); WindowL('Просмотр прошивки'); MemEd(romname); Color(7,4); MorPhL(24,7,60,14); WindowL('Сохранить прочитанные данные?'); Menu(40,9,3,2,$4b,'YES','NO','','','',6); Case MenuP of 0: Begin MOrPhL(10,10,50,15); WindowL('Имя сохраняемого образа .ROM'); y:=1; zs:=' '; Loc(26,12); Wrt('-'); Repeat WaitKey; Loc(25+y,12); If
(Key<>chr(13))And(Key<>chr(27)) Then If (Key<>chr(08)) Then Begin If y<>9 Then Begin zs[y]:=Key; Wrt(key+'-'); inc(y); End; End Else If y<>1 Then Begin dec(y); Loc(25+y,12); zs[y]:=' '; Wrt('-'); End; Until
(Key=Chr(13))or(Key=chr(27)); If key=chr(13) Then Begin MorPhL(20,8,50,12); Color(7,4); WindowL('!!!!!!!!!!!!'); Loc(30,10); Wrt('Жди давай!'+chr(208)); Map; Assign(fo,zs+'.ROM'); Rewrite(fo,1); Assign(fi,romname); Reset(fi,1); rsz:=FileSize(fi); Repeat y:=rsz; If y>65535 Then y:=65535; BlockRead(fi,buffer^,y); BlockWrite(fo,buffer^,y); rsz:=rsz-y; Until rsz=0; Close(fi); Close(fo); End; End; End; MenuP:=5; End; 1: Begin Repeat MenuP:=1; MorPhL(20,2,50,22); color(7,1); WindowL('Выберите файл'); FFile(s); If s<>'' Then Begin MorPhL(0,0,77,24); Color(7,6); WindowL('Редактировение прошивки'); MemEd(s); Color(7,4); MorPhL(24,7,60,14); WindowL('Прошить ПЗУ?');
Menu(40,9,3,2,$4b,'YES','NO','xxx3','xxx4','xxx5',6); If MenuP=0 Then Begin MorPhl(22,7,50,11); Color(7,1); WindowL('Прошиваем ПЗУ'); Loc(24,9); Wrt('-------------------------'); For l:=0 To romsize Do Begin Loc(24+(l*24 div romsize),9); Wrt ('-'+chr(208)); Color (3,1); Map; ReadROM(l); End; End; End; Until
MenuP<>8; end; 2: Begin MorPhl(22,7,50,11); color(7,1); WindowL('Тестируем программатор'); Loc(24,9); Wrt('-------------------------'); For l:=0 To 1000 Do Begin Loc(24+(l*24 div 1000),9); Wrt ('-'+chr(208)); Color (3,1); Map; End; Loc(23,9); Wrt(chr(209)+'Все в порядке, аднака'); waitkey; End; end; Until
MenuP=3; MenuP:=5; end; 2: Begin MorPhL(9,2,70,23); color(7,0); WindowL('О программе'); Loc(10,10); For x:=1 To 60 Do Wrt(chr(210)); Loc(12,4); Wrt('Дипломный проект "Лабораторный
макет программатора ПЗУ"'); Loc(11,6); Wrt('Это программка быланаписана в среде Borland Pascal v7.0'); Loc(13,8); Wrt('Программа расчита на роботу с 2 типами
микросхем ПЗУ'); Loc(36,12); Wrt('Авторы:'); Loc(11,14); Wrt('Идея и текст программы:'); Loc(25,15); Wrt('Дмитрий В. Румянцев'); Loc(11,17); Wrt('Помощь в написание программы:'); Loc(25,18); Wrt('Dead Emotion //HellraiseR Group'); Loc(11,20); Wrt('Тестирование программы:'); Loc(25,21); Wrt('Алексек А. Иванов'); WaitKey; MenuP:=5; end; end until
MenuP=3; MorPhL(13,7,13,7); asm mov ax,3 int 10h end; end.