Сборка MSX-Link и его использование
(инструкция для чайников в электронике)

Автор статьи: Станислав "сах" Боруцкий (borus собака mail.ru)

  0. Что такое MSX-Link и зачем он нужен ?
  1. Что нужно для сборки MSX-Link ?
  2. Что нужно для тестирования MSX-Link ?
  3. Макетная плата
  4. Покупаем детали
  5. Сборка
  6. Подключаем MSX-Link
  7. Тестируем приём (с MSX на PC)
  8. Тестируем передачу (с PC на MSX)
  9. Как использовать MSX-Link ?
10. Полезные ссылки

0) Что такое MSX-Link и зачем он нужен ?

MSX-Link - это устройство, при помощи которого можно соединить между собой компьютеры PC и Ямаха MSX2.

В 80-е годы XX века во многих школах СССР стояли компьютерные классы Ямаха КУВТ2, состоявшие из одного учительского компьютера с двумя дисководами и нескольких ученических бездисковых компьютеров. Они были соединены между собой в сеть, и с учительского компьютера на ученические пересылались программы и игры. Была и обратная связь.

С тех пор много воды утекло, и случилось так, что часть MSX-компьютеров списали и они разошлись по рукам (я купил свою Ямаху MSX2 на аукционе в интернете), а у других испортились дисководы. В результате многие из ещё работоспособных бездисковых компьютеров Ямаха MSX2 стоят без дела, так как их владельцы не знают как загрузить в них программы или игры.

Способов загрузки существует немало - это и картриджи, и внешние дисководы, и магнитофонные кассеты. Существует также и несколько утилит для загрузки любого MSX-компьютера из WAV-файла через кассетный вход - caslink, msxf2w, WAVeR, MicroWAVeR (подробнее о них смотрите
здесь).

В этой статье я расскажу как сделать так, чтобы загрузка данных шла как в былые времена - по сети с учительского компьютера, только в роли отсутствующей учительской Ямахи будет выступать PC.

Создателем MSX-Link и программ для пересылки является Тим "tnt23" Ташпулатов, сумевший также расшифровать протокол передачи данных между Ямахами. Его страница с описанием MSX-Link располагается здесь.


1) Что нужно для сборки MSX-Link ?

Поскольку в этой статье рассказывается о том, как собрать схему без паяльника, список необходимых вещей будет достаточно коротким:

а) схема MSX-Link
б) макетная плата (см. ниже о том, что это такое)
в) детали, разъёмы и провода (их список смотри ниже)
 

Тем, кто умеет обращаться с паяльником и изготавливать печатные платы, я советую заглянуть на
страничку создателя MSX-Link, где можно найти дизайн платы и схему расположения деталей на ней.

2) Что нужно для тестирования MSX-Link ?

a) PC под управлением операционной системы Windows или Linux со свободным последовательным портом (COM)

b) компьютер Yamaha MSX2 YIS503IIIR КУВТ2 или Yamaha MSX2 YIS-805/128R с родным сетевым блоком
(я полагаю, что компьютер MSX2 у Вас уже есть, иначе зачем тогда нужен MSX-Link ?)

Существует и другая модель компьютеров Ямаха с сетевым блоком - MSX1 YIS503IIR, но поскольку сетевой блок в них совсем другой и работает по другому принципу, в этой статье мы подключение к таким компьютерам и сетевым блокам не рассматриваем.

Вряд ли Вам попадётся Ямаха MSX1 с сетевым модулем от MSX2 или наоборот - MSX2 с модулем от MSX1, но на всякий случай я расскажу, как убедиться, что у Вас именно сетевой модуль от Ямахи MSX2.

Отличить один сетевой модуль от другого можно одним из следующих способов:

1) При включении Ямахи модуль от MSX1 автоматически запускает команду RUN"COM:" в Бейсике. Модуль сети MSX2 ведёт себя иначе - выводит на экран надпись Classroom network version 3.0
2) Оба модуля имеют маркировку teacher/student на корпусе, но только у MSX1 есть переключатель из одного положения в другое, а на модуле от MSX2 на его месте просто отверстие в корпусе.
3) Если отсоединить сетевой модуль от Ямахи и разобрать его, то внутри модуля от MSX2 можно найти микросхему с маркировкой YM3802 и ряд из 4 двухпозиционных переключателей, задающих номер компьютера в сети (0 означает "учитель", номера от 1 до 15 - "ученик").
Сетевой модуль от MSX1 построен на совсем другой микросхеме - 8251.

3) Макетная плата (breadboard)

Собирать схему мы будем на макетной плате - это такая планка с дырками, которая позволяет соединять радиодетали между собой без пайки, а просто втыкая ноги микросхем, концы проводов и прочие детали в дырочки на ней.

Устроена такая плата следующим образом. В середине идёт разделительный желобок. Если повернуть макетную плату так, чтобы этот желобок располагался вертикально, то по обе стороны от него можно увидеть несколько десятков групп дырок, соединённых между собой по горизонтали по 5 штук:
+ -     A B C D E    F G H I J     + -
| |  1  o-o-o-o-o    o-o-o-o-o   1 | |
| |     o-o-o-o-o    o-o-o-o-o     | |
| |     o-o-o-o-o    o-o-o-o-o     | |
| |     o-o-o-o-o    o-o-o-o-o     | |
| |  5  o-o-o-o-o    o-o-o-o-o   5 | |
| |     o-o-o-o-o    o-o-o-o-o     | |
| |     o-o-o-o-o    o-o-o-o-o     | |
| |     o-o-o-o-o    o-o-o-o-o     | |
| |     o-o-o-o-o    o-o-o-o-o     | |
| | 10  o-o-o-o-o    o-o-o-o-o  10 | |
......................................

и т.д. Дырки, расположенные с левой стороны платы и отмеченные голубой полоской и знаком "-", наоборот, соединены между собой по вертикали, снизу доверху. Точно так же соединены между собой и отверстия, отмеченные красной полосой и знаком "+". Такие же точно полосы есть и справа, соответственно, всего на макетной плате есть 4 независимые вертикальные шины, где каждая из них состоит из дырок, соединённых между собой по вертикали. На таких длинных шинах удобно разводить общие провода, в нашем случае это будут питание (обозначено на схеме буквами VCC) и земля (GND - сокращённо от Ground).

4) Покупаем детали

Идём в магазин и показываем продавцу следующий список (можно показать ему и схему, для уверенности):

Название детали Обозна-
чение на схеме
Как выглядит Изображение и назначение выводов (ног)
микросхема 6N137 ОК1 8 ног и надпись "6N137"
микросхема 6N138
(подойдёт и 6N139)
ОК2 8 ног и надпись "6N138"
микросхема MAX232 IC1 16 ног и надпись "MAX232"
стабилизатор напряжения 78L05 IC2 кирпичик с алюминиевым кольцом или цилиндрик со стёсаным боком (есть и другие варианты), обязательно с 3-мя ногами и надписью, которая содержит 78L05 и может быть в 2 строки, например: 78L и 05
диод 1N4148 D1 маленький красноватый цилиндрик с чёрной полоской с одной стороны и надписью 1N4 на одном боку и 148 на другом (или только числом 48)
4 (четыре) конденсатора по 1 uF C1
C2
C3
C4
бочонок с двумя выводами (один из них помечен знаком минус), на котором есть 2 надписи: ёмкость в uF и напряжение в V        
1 конденсатор - 10 uF, не менее 15V C5 бочонок с двумя выводами (один из них помечен знаком минус), на котором есть 2 надписи: ёмкость в uF и напряжение в V  
1 конденсатор - 0.1 uF C6 капля с двумя ножками с подписью 104 ESM. 104 означает 10 в -4 степени, а это и есть то что нам нужно.
резистор 220 Ом R1 цилиндрик с такими полосками:
Красная-Красная-Коричневая-Золотая
резистор 11 кило-Ом R2 цилиндрик с такими полосками:
Коричневая-Коричневая-Оранжевая-Золотая
резистор 980 Ом R3 цилиндрик с такими полосками:
Белая-Серая-Коричневая-Золотая
резистор 750 Ом R4 цилиндрик с такими полосками:
Фиолетовая-Зелёная-Коричневая-Золотая

Все детали вместе должны стоить около 10$,
макетная плата - ещё около 5$.

Если продавец будет утверждать, что резистора с сопротивлением 980 Ом у него нет, тогда берите вместо него 1000 Ом с такими полосками: Коричневая-Чёрная-Красная-Золотая. И резисторы, и конденсаторы практически никогда точно не соответствуют указанным на них номиналам, отличаясь от них примерно на плюс-минус 5%, так что не исключено, что 1000 Омный резистор окажется на поверку 980 Ом, как это случилось у меня.

Определить сопротивление резистора по цвету полосок на нём можно при помощи, например, вот этого калькулятора.

Также не забудьте купить макетную плату и несколько десятков сантиметров провода или коротких проводков для соединения деталей на плате. Проводков лучше набрать разноцветных - это помогает легче разобраться в схеме. Всего понадобится 15-20 проводков длиной от 3 до 15 сантиметров.


Для соединения схемы с сетевым блоком компьютера MSX нам также понадобится

штекер DIN5 (с 5-ю штырьками, раположенными полукругом) с проводом.

Если мы просто купим штекер - тогда нам придётся припаивать к нему провода, а мы хотим избежать пайки. Если же мы купим розетку DIN5 и вставим её прямо в макетную плату (это самый надёжный способ крепления) - тогда для включения схемы в MSX нам понадобится ещё шнур со штекерами DIN5 с обоих концов. Лично я выбрал такой вариант: я взял такой шнур-удлинитель и обрезал у него один конец, а оголившиеся при этом провода подключал прямиком к макетной плате.

Внимание !
Шнур от ненужной старой клавиатуры со штекером DIN5, скорее всего, не подойдёт - у него не подключен один из нужных нам штырьков. Возможно, что именно Ваш шнур устроен иначе - проверьте его, прозвонив контакты 2,3,4 и 5 разъёма (см. рисунок справа с нумерацией). Если каждому из указанных контактов соответствует свой проводок - такой шнур подойдёт. Для прозванивания удобнее всего использовать мультиметр.

Для соединения схемы с COM-портом компьютера PC нам понадобится

розетка D-SUB9 (с 9-ю дырочками, расположенными в 2 ряда: 5 в верхнем, 4 в нижнем) с проводом.

Проблемы здесь те же, что и в предыдущем случае - надо либо купить саму розетку и припаивать к ней провода, либо использовать удлинитель и обрезать ему один конец.

Внимание !
Провод от ненужной старой мышки с розеткой D-SUB9 может не подойти - у неё, как правило, не подключен один из нужных нам контактов (впрочем, на одной из моих старых мышек как раз всё было как надо).
Проверьте его, прозвонив контакты 2(RX), 3(TX), 4(DTR) и 5(GND) разъёма (см. рисунок справа - номера отверстий указаны с наружной стороны розетки)

Убедитесь, что суммарной длины проводов и удлинителей достаточно, чтобы соединить MSX и PC.

Также не повредит купить

мультиметр (тестер) - в любом случае полезную в хозяйстве вещь.

С его помощью мы сможем проверять целостность участков цепи, прозванивать коннекторы и присоединённые к ним провода, проверять номиналы купленных деталей и так далее. Если Вы чувствуете себя удачливыми и расчитываете, что схема заработает сразу же после сборки - не покупайте мультиметр (для справки - самый дешёвый прибор стоит около 10-15$). В крайнем случае его можно взять у соседа на пару дней, как это сделал я.

5) Сборка

Я сделал две фотографии собранного мной MSX-Link для тех, кто не хочет разбираться в нумерации выводов деталей, или не умеет читать электрические схемы, или же просто хочет свериться с работающим MSX-Link. На снимках можно разглядеть всё до мельчайших подробностей - остаётся только вставить детали и провода в отверстия на макетной плате так, как это сделано на фотографии.

[Горизонтальная фотография MSX-Link, собранного на макетной плате, 1209x821, 233K]
[Вертикальная фотография MSX-Link (с нумерацией контактов от шнуров), 1173x1729, 429К]

Я дам лишь несколько советов для начинающих, которые уберегут их от серьёзных ошибок:

6) Подключаем MSX-Link

Со стороны PC нам понадобится незанятый последовательный порт. В Windows эти порты называют COM1, COM2 и т.д, в Linux - /dev/ttyS0 , /dev/ttyS1 и так далее.

Как правильно выбрать COM-порт и проверить его работоспособность - тема, выходящая за рамки этой статьи. Отмечу лишь, что порт должен быть включен в настройках BIOS, опознан операционной системой и не иметь конфликтов с другими устройствами, а проверить его можно подключив любое подходящее устройство - мышь, внешний модем, старый PalmPilot и т.д.

Подключается MSX-Link одним концом к последовательному порту PC, другим - к любому из двух разъёмов на сетевом модуле Ямахи.

Необходимо убедиться, что сетевой модуль нашей Ямахи подключен к ней и имеет номер от 1 до 15, т.е. является учеником.

При включении компьютера, после входа в Бейсик на экране появится надпись Classroom network version 3.0 No.X, где Х - номер компьютерa . Если номер компьютерa 0, его нужно изменить на любой другой при помощи ряда из 4 двухпозиционных переключателей, предвaрительно разобрaв модуль. Для этого откручивается винт посредине модуля (он прикрепляет модуль к Ямахе), затем его отсоединяют от Ямахи скользящим движением, и откручивают 4 винта по углам. Сборка осуществляется в обратном порядке.

4 переключателя соответствуют 4 битам в двоичном представлении номера компьютера в сети. Если, например, поставить их в положения выкл-выкл-выкл-включ (слева направо), то получим номер 1.

Почему нам не подходит номер 0 ?

Присвоив сетевому модулю нулевой номер, мы тем самым переводим его в режим учителя. В этом режиме Ямаха не сможет принудительно (т.е. по команде с другого компьютера) принимать программы и запускать их, к тому же понадобится изменить схему MSX-Link - поменять местами контакты 4 и 5 на штекере DIN5.

А почему на сетевом модуле 2 разъёма ?

Компьютеры в сетевом классе (один учительский и до 15 ученических) соединяются "гирляндой", как на этом рисунке:



Важно, чтобы каждый из компьютеров в сети имел свой, отличный от других номер.

В один из разъёмов модуля вставляется провод, соединяющий его с предыдущим компьютером в гирлянде, в другой разъём - со следующим. В незанятые разъёмы (один в сетевом модуле учительского компьтера и ещё один - в последнем ученике в гирлянде) обычно ставили специальные заглушки.

Как устроена заглушка ?

Заглушка представляет из себя обычный штекер DIN5, у которого соединены между собой две пары контактов: 1 соединён с 4, 3 соединён с 5. Теоретически, без неё работать нельзя, но на практике всё работает и без заглушки.

7) Тестируем приём (с MSX на PC)

На Ямахе набиваем такую программу на Бейсике (эта программа непрерывно посылает в сеть символ с ASCII-кодом 55, т.е. цифру 7):
1 OUT 9,5
2 OUT 14,55:GOTO 2
Запустить её можно, как обычно, командой RUN, а остановить - одновременным нажатием на клавиши CTRL+STOP. Запускаем.
(Если Вам интересно, что означают все эти магические числа в командах OUT - можете почитать
техническое описание микросхемы YM3802, на которой построен сетевой модуль Ямахи или дизассемблированный Тимом Ташпулатовым NET-BIOS, а также другие документы о программировании сети на Ямахе - см. ссылки в конце статьи)

Чтобы убедиться, что мы на PC получаем посылаемые Ямахой данные, необходимо запустить так называемую "терминальную программу". Самыми известными из них являются HyperTerminal на Windows и minicom на Linux. Я остановлюсь поподробнее на использовании HyperTerminal.

Запуск: Start->Programs->Accessories->Communications->HyperTerminal
На вопрос "Connection name" даём любое название;
В открывшемся диалоге "Connect to" выбираем нужный COM-порт;
В открывшемся окне "Port Settings" задаём:

Bits per second: 38400
Data bits: 8
Parity: None
Stop bits: 2
Flow control: None

и нажимаем "OK".

Если всё сделано правильно, в открывшемся окошке должны непрерывным потоком появляться посылаемые Ямахой семёрки, обильно перемежаемые разными другими символами. Если это так - значит PC принимает данные, передаваемые с MSX !

Если же Вы не видите в терминальной программе никаких приходящих символов - проверьте следующее: Если приём всё ещё не работает - переходим к проверке схемы MSX-Link.

Внимание !
Для проверки цепи в рабочем состоянии не отключайте терминальную программу, т.к. только когда она запущена и держит последовательный порт открытым, на контакте DTR этого COM-порта появляется напряжение, питающее MSX-Link.

8) Тестируем передачу (с PC на MSX)

Уверенные в себе могут пропустить этот тест и сразу попытаться переслать какую-нибудь игру утилитой send (см. ниже), мы же начнём с того, что закроем терминальную программу, запущенную при проверке приёма, т.к. она удерживает порт и будет нам мешать. Здесь и далее предположим, что мы работаем с портом COM1.

В стандартном протоколе сети общение между учительской и ученической Ямахами осуществляется посредством пересылки пакетов с данными. Для проверки передачи я подготовил файл
HELLO.PKT с пакетом, содержащим команду print"Hello, world !" - его надо отправить в последовательным порт, к которому подключен MSX-Link.

Сперва необходимо настроить порт - перевести его в режим 38400 bps, установить режим чётности, стоп-биты, режим DTR и т.д. Для этого в Linux используется команда setserial, а в Windows - mode. Рассмотрим подробнее настройку порта в Windows. Для начала из командной строки запустим следующую команду:

mode COM1 baud=38400 parity=e data=8 stop=2 to=on xon=off octs=off odsr=off idsr=off dtr=on rts=on
Status for device COM1:
-----------------------
    Baud:            38400
    Parity:          Even
    Data Bits:       8
    Stop Bits:       2
    Timeout:         ON
    XON/XOFF:        OFF
    CTS handshaking: OFF
    DSR handshaking: OFF
    DSR sensitivity: OFF
    DTR circuit:     ON
    RTS circuit:     ON
Теперь, когда порт настроен, можно отправить пакет данных:

copy HELLO.PKT COM1

(на Linux это будет выглядеть так: cat HELLO.PKT >/dev/ttyS0 )

Если после этого на экране Ямахи высветилась и исполнилась команда Бейсика print"Hello, world !" - значит передача данных работает !

Как и в случае с проверкой приёма, если передача данных не работает, проверьте всё ли правильно включено и подключено, и правильный ли порт используется. В худшем случае придётся опять проверять правильность сборки схемы.

9) Как использовать MSX-Link ?

На данный момент нет ни одного эмулятора MSX, который бы умел работать с MSX-Link, а так бы хотелось запустить на PC эмулятор и с него, как с учительской Ямахи, пересылать и принимать программы с настоящей ученической машины и делать многое другое - пересылать DOS с виртуальным диском, работать с ученической машины с дисководами учительской... Возможно, что в будущем найдутся добровольцы, которые добавят поддержку MSX-Link в эмуляторы MSX, и тогда Вам пригодится моя коллекция
сетевых утилит и игр со встроенной функцией пересылки по сети.

Тем не менее, при помощи утилиты ncopy можно переслать любой файл с PC на виртуальный диск встроенной в ученическую Ямаху операционной системы CP/M (вызывается из Бейсика командой _cpm), и это оценят те, кто помнит такие игры, как LADDER.

Большинство же игр, в которые мы в прошлом играли на Ямахе, являются бинарными файлами или группами из бинарных файлов от двух до девяти штук. Для их пересылки существует замечательная утилита send, которая может также переслать любую игру в формате ROM размером до 32К, или программу на MSX-BASIC.

Здесь находится архив, в котором Вы найдёте утилиты send и ncopy для Windows и их исходные тексты для компиляции на Linux.

Несколько примеров использвания утилиты send под Windows (в командной строке, с использованием вспомогательного файла bsend.bat):

bsend.bat -port COM2 1 D:\MSX\ROMs\galaxian.rom пересылает игру Galaxian в формате ROM на ученический компьютер No.1, используя MSX-Link подключенный к порту COM2 на PC.
bsend.bat 2 D:\MSX\MegaROMs\mgear\mgear.00* пересылает игру Metal Gear размером 128К, разбитую на 8 бинарных частей по 16К, на ученический компьютер No.2, используя MSX-Link подключенный к порту COM1 на PC (по умолчанию).
bsend.bat 0 D:\MSX\BIN\RIVER.BIN пересылает игру River Raid в бинарном формате на все ученические компьютеры в сети
bsend.bat 1 D:\MSX\BASIC\alenka.bas пересылает программу Алёнка, написанную на MSX-BASIC, на ученический компьютер No.1

10) Полезные ссылки

Локальная сеть на Yamaha КУВТ2 и сетевой модуль:

MSX-Link на сайте его автора - Тима Ташпулатова (на английском)
Дизассемблированный Тимом Ташпулатовым   ROM сетевого модуля
Руководство по локальной сети, присылаемое с классом Yamaha КУВТ2 (PDF, рус/eng), (локальная копия)
Application manual микросхемы YM3802, на которой сделан сетевой модуль (PDF, in english)
Исходный текст эмулятора XM6, содержащий эмуляцию микросхемы YM3802 (локальная копия)
Инструкция по программированию NetBIOS на Yamaha КУВТ2
Список сетевых операторов MSX-BASIC
The list of classroom network MSX-BASIC commands
Новость об MSX-Link на сайте Центра Ресурсов MSX
Newspost about MSX-Link on MSX Resource Center
MSX network discussion on MSX Resource Center
Страница Jetze Mellema о сети на русской Yamaha MSX2

Программы и игры для пересылки по сети:

ROM-образы картриджей в самом большом в сети MSX-архиве
Самораспаковывающиеся MegaROM(128К)-игры, зеркало сайта - здесь.
MegaROM-игры со встроенной пересылкой по сети, (локальная копия)
Сетевые утилиты для учительской Yamaha КУВТ2, (локальная копия)
Программы и игры для запуска на встроенной в ученические Yamaha КУВТ2 операционной системе CP/M

Альтернатива MSX-Link - загрузка через кассетный вход и др.

MicroWAVeR и связка msxf2w/sox, зеркало сайта - здесь.
WAVeR v.2
CompactFlash ATA-IDE cartidge
The Ultimate MSX FAQ (информация об интерфейсах IDE и SCSI для MSX и многое другое, в том числе и о подключении MSX к телевизору)

(c) Станислав Боруцкий (Stanislav Borutsky) a.k.a "cax", 2005 (last update: 10/04/2007)
Hosted by uCoz