|
ACNews
#17
05 мая 2003 |
|
News - схема паралельного интерфейса на AY.

░░▓▒▒▒░░░░░░░ ░░█▒░
░▓▒▒░░░░ ▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄ ░░█▒░
▓▒░░░ ▄▄▄▄▓▓▒ ██████▓▓▒ ▐▒▓▓██████████ █▒▓▄▄▄▄ ░░▓▒░
▒░░ ▄████████▓▌▐███████▓▌ ▐▓▓███████████▌▐▓▓███████▄ ░░▓▒
░░ ███████████▌▐████████ ▐▓███████████▓▌▐▓██████████ ░█
░ ███████████▓ ████████▌ ▐██████▌▀▀▀██▓▒ █████▌▀█████ ░
██████ ▐█████ ████████ ▐▓█████▌ ▀▀ ▓█████ ▐█████ ░
▐█████▌ █████▌▐███████▌ ▄▄ ▐██████▌ ▐█████ ▐████▌
███████▐█████▌▐███████ ▄▄█▓▓▒▌▐██████▌▄▄▄▄▄▄ ▐█████▌ ▐████
▐█████████████ ███████▌█████▓▓▌▐██████████████▌ ██████ ████▌
██████▌▐██████ ▓█████████████▓▌▐██████████████▓ ▓██████▄ ▐████
██████ ▐▓████▌▐▓▓█████████████▌▐█████████████▓▓▌▐████████▐████
▐▓█████ ▐▒▓███▌▐▒▓▓██▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▓▓▒▌▐████████████▓▌
▐▓▓███▌ ▀▀▀▀ ▀▀▀▀█████▓▓▌
▐▒▓▓▀ ▄▄▄███████▄▄ ▄▄▄▄▄ ▄▄ ▄█▓▄ ▀▀▓▒▌
▐▀ ▄▄█▌ ▄▄▄▄▄ ▄▒▓▓████████████▌▐▓████ █████ ██▓▒▄ ▄█████▓nikf▀▌
▒▓███▄███████ ▓▓██████▀▀▄█████▌▐████▌▐█████▌▐▓█▓▓ █████▀▄▄█▓▒▄
▐▓▓████▐██████▐██████▌▄▒▓▓█████ ▐█████▐██████▐███▓▌ ▀████████▓▓▌
▐▓█████ ██████▐██████▐▓▓███▀▀▀ ▐▓████████████████▌ ▄▄▄█████▓▌
▐████▓▌▐████▓▌ ██████▄▀▀▄▄▄▄██▓▌▐▓▓███████████████▌▐▓▓█████████
▀▀▀▀▀▀ █████▓▒ ▀███████████▓▓▒▌▐▒▓▓██████▓███████ ▐▒▓▓█▓▀▀▀▀
▒░ ▀▀████████▀▀▀ ▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀ ▀▀▀ ▒
░▓░ ░▓
░ ▐▀ ▄ ▄▄▄ ▀▌ ░
▄ ■▄░▄▀■ ▄▀■░ ▄█ █ █ █░▄■ ■▀■░ ■
░■░▀■▄░ ■▀░ ■ ░■▄ ■░ ▀■░█ █ █ █▀ ░▀▄░ ▀░ ▄░ ■▀▄░ ░■▀░▀■░
¤ ■▀░ ■ ▐▄ fix ▄▌ ■▀ ■▀ ▀■▀ ¤
6.5.2oo3
Теперь ACE будет не только паковать себя сам, но и склеивать
тоже! Благодаря наезду Александра Майорова эта возможность поя-
вилась не завтра и не послезавтра, а именно сегодня :)
▄▄▄▄ ▄▄▄▄ ▄ ▄ ▄ ▄▄▄▄
░▄■ ▓ ▓ ▓▄▄▓ ▓ █ ▓ ▓▄▄▄ ■▄░ ■▄░ ■▄░ ■▄░ ■▄░ ■▄░ ■▄░ ■▄░ ■▄░ ■▄
▀■▄ ░ ░ ░▄▄▄ ░▄▓▄░ ▄▄▄▓ ║▄■▀░ ■▀░ ■▀░ ■▀░ ■▀░ ■▀░ ■▀░ ■▀░ ■▀░
───-+ of alone coder +──────────────────────────────────────────
John купил цветной телевизор!
Ldir совсем чуть-чуть не успел собрать Last128 #5 в апреле. А то
сбылись бы обещанные 2 релиза ;)
Inferno#4 нет :(
Опять нашему музону RAIN8.m не повезло - на @toy он не попал так
же, как и на Paradox. "Не дошел", говорят!
Сотрите исходник ANSI0.3 из прошлого комплекта. GMX там не рабо-
тает. Но благодаря Николаю Амосову версия фиксилась и наконец
вышла! Но пока вы её не увидите :)
Продолжение паяльных приключений!
13 апреля ко мне снова пришёл KSA-7G, и тогда в наших светлых
головах созрела мысль: почему бы не соединить два спека в сеть?
(см.схему)
- cut тут ------------------------------------------------------
Проводок v1.0
СХЕМА
(AY-3-8910 / YM2149F)
ZX#1 ZX#2
GND ──────────────────────────────────────────────────────── GND
AY/6 ───────────────[1 кОм]─────────────────────────────── AY/14
AY/14 ─────────────────────────────[1 кОм]───────────────── AY/6
GND должно быть соединено намертво. При этом надо проверить тес-
тером, развязаны ли блоки питания компов с сетью (должны быть
развязаны, но вдруг...) Если GND не будет соединено намертво,
при нарушении контакта могут появиться очень большие искры -
вплоть до шаровых молний ;)
Килоомы в данных предохраняют AY на случай, если оба они окажут-
ся настроены на вывод по одной и той же линии.
------------------------------------------------------ тут cut -
(Это имитация TAPE, которого у меня, к несчастью, нет, с помощью
AY'ков. Потом попробую и принтерный порт)
Для обмена используются 7-е биты портов A и B AY'ка. По соглаше-
нию, которое я заключил сам с собой, порт A (регистр 14) работа-
ет на вывод, а порт B (регистр 15) - на ввод.
Пассивным состоянием линии будем считать лог.1 ("обрыв")
Таким образом, работа будет происходить хитро.
Инициализация: в регистр 14 AY записывается #ff, а в регистр 7 -
#40 (желательно именно в этом порядке - тогда состояние линии не
станет меняться).
После игрового цикла комп#1 (MASTER) устанавливает на своём
порту A лог.0 и ждёт соответствующего ответа со стороны компа #2
(SLAVE). Когда комп #2 соизволит выставить лог.0, начинается об-
мен.
Первым передаёт MASTER, потом SLAVE передаёт,а MASTER принимает.
Синхронный вариант передачи (первые же эксперименты были без си-
нхронизации) основан на том, что принимающий абонент формирует
меандр, по каждому фронту которого передающий абонент помещает в
линию данных очередной бит. Первый бит возникает при положитель-
ном перепаде. Во время приёма последнего бита приёмник даёт ещё
один положительный перепад, по которому передатчик переводит
свою линию данных в состояние лог.0 и сам становится приёмником.
После аналогичного обмена в обратном направлении сессия заканчи-
вается. Оба компьютера переводят линию в состояние лог.1.
Обработчик прерываний содержит команду RET. Максимум, что ещё
можно там себе позволить - это какой-нибудь инкремент. Главное
на первом этапе - просто зафиксировать факт,что прерывание было.
Будем считать, что такое прерывание вместе с захватом выполняет-
ся за 25 тактов.
send: receive:
... ...
LD B,C LD B,C
OUT (C),E ;15 OUT (C),E ;15
DEC E DEC E
RLC (HL) IN A,(C)
SBC A,A OUT (C),E ;14
INF LD B,D
JP P/M,$-2 OUT (C),C/E
OUT (C),E ;14 INC E
LD B,D RLA
OUT (C),A RL (HL)
INC E <задержка>
... ...
Задержка рассчитывается так.
В самом пессимистичном случае передатчик претерпел прерывание,
приёмник же прерывание не получил, а фронт, по которому должен
был сменить данные передатчик, неудачно оказался принят сразу
после команды INF. Тогда время реакции на фронт (до команды
OUT (C),A, включая её) составляет 60+25 тактов, считая прерыва-
ние. В свою очередь, с момента выставления данного до следующего
фронта должно пройти 28 тактов, иначе приёмник примет неверную
информацию.
Далее, в самом опять-таки худшем случае предположим,что приёмник
работает в 2 раза быстрее передатчика, тогда его фронты будут
чередоваться как минимум через (60+25)·2+28 = 198 тактов. Отсюда
вытекает, что <задержка> должна составлять 198-83 = 116 тактов.
Понятно?
Сейчас по этому протоколу обменивается Wolf 3D Deathmatch Arena
Tournament 2003 :)
В приложении должен лежать исходник асинхронного обмена (скоро-
сти компьютеров не должны различаться больше чем на 5%) - игра
"застрели квадрат". Один компьютер вызывает процедуру MASTER,
а другой - SLAVE. Автоопределения пока нет!
Другие статьи номера:
News - схема паралельного интерфейса на AY. |
Мысли - Crank заплатит любому 1000р за переделку STS под Scorpion. |
ACEdit - Список Заслуженных Неиспользователей AC Edit. |
Похожие статьи:
В этот день... 13 ноября