Внимание!!! Из-за ошибки в компиляторе TMT Pascal программы alsclock.pas и new_year.pas портят системную дату!!! В момент перехода значения часов через ноль дата должна увеличиваться на один день, но если в это время на ПЭВМ выполняется программа, откомпилированная на TMT Pascal и имеющая в своем составе процедуру gettime и/или getdate, то изменения даты вообще не происходит. Данный глюк является неустранимым, так как ошибка неходится не в представленных здесь программах, а в компиляторе (хотя возможно, что она проявляется не на всех биосах и версиях доса). Поэтому в программе new_year.pas момент наступления нового года определяется не по дате, а по времени. По этой же причине для работы со всеми представленными здесь программами следует использовать не "большую" ПЭВМ, а отдельную, "подопытную" ПЭВМ небольшой мощности (но не ниже 386DX, так как компилятор TMT Pascal генерирует 32-разрядный код), которая используется только для радиолюбительских экспериментов, но не для обработки важной информации. Наличие на ней жесткого диска необязательно. Показанная на схеме устройства плавкая вставка обязательно должна быть установлена, и ее номинал не должен превышать указанного на схеме. Очень и очень желательно наличие в ПЭВМ мультикарты. Помните: неправильная сборка устройства может привести к повреждению ПЭВМ, потере данных, поражению электрическим током и другим негативным последствиям! Использование "старого" 16-разрядного компилятора Turbo Pascal невозможно, так как при попытке компиляции модуля als_318.pas он выдает сообщение об ошибке. Данное устройство и программное обеспечение к нему являются экспериментальными, и автор не несет никакой ответственности за возможные негативные последствия его использования и/или невозможности его использования. Если вы не согласны с этим, откажитесь от использования данного устройства и программ к нему. Все программы, тексты и схемы, представленные в данном архиве, являются общественным достоянием (public domain).
Не сильно напугал? ..А теперь о приятном. В данном архиве находятся следующие файлы:
--> als_318.pas - модуль (unit), содержащий процедуры и функции
для работы с индикатором. Все остальные представленные здесь программы
используют этот модуль;
--> als_318.fig - схема агрегата в формате линуховой векторной графической
программы XFig 3.2;
--> als_318.png - то же, в растровом формате PNG, для тех, кто без линуха;
--> test.pas - программа для тестирования данного устройства. Если
при ее запуске на индикаторе появляется слово INDICATOR, значит, аппаратная
часть собрана без ошибок;
--> mk85test.pas - пародия на внутренний самотест микрокомпьютера
"Электроника МК 85". Лишний раз напоминаю, что выполнение внутреннего
самотеста на НАСТОЯЩЕМ микрокомпьютере "Электроника МК 85" эквивалентно
форматированию жесткого диска на обычной ПЭВМ, поэтому не следует
запускать его при наличии в памяти микрокомпьютера важной информации.
А если очень хочется посмотреть, что происходит на экране во время теста -
пользуйтесь данной пародией :-);
--> alsclock.pas - часы. Полная имитация того, что происходит на АОНе
с прошивкой "Русь" при запуске режима часов с секундами (MODE 3 6), с одним
отличием: "дефис" между часами и минутами превращается в знак подчеркивания,
когда значение секунд меньше 30, а между минутами и секундами - когда
значение секунд четное. Кстати, схема подключения индикатора к порту
в данном устройстве в точности такая же, как в АОНе.
"Прикол с дефисами" содран с современных видаков и
музыкальных центров. Еще раз напомню, портит системную дату!!!
--> new_year.pas - данная программа выводит на индикатор фразу
"НАСТУПАЕТ НОВЫЙ ГОД", а в момент его наступления фраза меняется на
"НОВЫЙ, 2003, ГОД НАСТУПИЛ, УРА". Тоже портит системную дату!!! Программа
требует переделки при использовании на ПЭВМ с биосами, несовместимыми с
2000 годом. Также переделка программы потребуется при встрече 2004 и всех
последующих годов.
--> readme1.html - это то, что ты сейчас читаешь! :-).
Описание процедур и функций модуля als_318.pas пока не готово, но оно вроде бы и не нужно, догадаться об их назначении можно, анализируя тексты программ.
О практическом применении данного агрегата. Да-да, он предназначен не только для экспериментов, но и для использования в так называемых "мамкоконтроллерах", т.е. радиолюбительских устройствах, выполненных на основе материнских плат от ПЭВМ устаревших моделей. Это могут быть, например, переключатели гирлянд, таймеры для управления освещением в отсутствие хозяев, и даже mp3-проигрыватели. Поскольку такие устройства часто не имеют монитора, индикатор АЛС318 послужит в них тем единственным "окошком" для вывода пользователю информации (о времени, режиме работы, номере песни и т.п.).
Компилятор TMT Pascal является бесплатным для некоммерческого использования (увы, не GNUтым) 32-разрядным компилятором языка Pascal для DOS, частично совместимым с Turbo Pascal, при этом бесплатный вариант имеет некоторые ограничения, которые не мешают при разработке программ небольшого объема. Если вы еще не скачали данный компилятор, обязательно скачайте с сайта www.simtel.net, задав там поиск архива tmtp100d.zip. И помните, что без него компиляция, а значит, и использование представленных здесь программ невозможны! :-)
На будущее планируется разработка нескольких игр ("скачки", "автогонки"), эмуляторов микрокалькуляторов и других прикольных программ, а также составление более подробного руководства. Разумеется, все программное обеспечение для данного агрегата вы можете вообще переписать с нуля, на том языке программирования и для той ОС, которые вы предпочитаете. К сожалению, представленное здесь программное обеспечение не работает из линухового дос-эмулятора DOSEMU, т.к. не получается оттуда обратиться напрямую к порту. Про ОС Windows не знаю, так как не пользуюсь ею. А написать прогу для линуха я пока не могу, так как не знаю языка Си. Если кто напишет, буду ОЧЕНЬ рад!!!!! Кстати, в этом случае будет устранен глюк с датой. Также буду очень рад, если кто переделает программы на GNU Pascal (под дос и линух).
Если возникнут вопросы или появятся интересные наработки - мыльте сюда.
Удачи!!!