Последовательная шина Commodore ( шина IEC ) — это интерфейс Commodore для хранения данных на магнитных дисках и принтеров для 8-битных домашних компьютеров Commodore : VIC-20 , Commodore 64 , Commodore 128 , Plus/4 , [7] Commodore 16. и Коммодор 65 .
Параллельный интерфейс IEEE-488 , используемый в компьютерной линейке Commodore PET (1977), был слишком дорогим, поэтому была разработана удешевленная версия, которая представляла собой урезанную последовательную версию интерфейса IEEE-488, в которой оставалось лишь несколько сигналов. ; однако общая структура протокола была сохранена. Commodore начал использовать этот автобус с VIC-20 (1980 г.). Для подключения к компьютеру используется разъем DIN-6 (DIN 45322).
Сигналы шины представляют собой цифровые несимметричные сигналы с открытым коллектором 5 В TTL и активны при низком уровне. Устройства шины должны обеспечивать собственное питание.
Поскольку линии шины являются электрически открытыми коллекторами, они работают как длинный логический элемент ИЛИ между всеми драйверами линий устройств. Логическое значение земли верно, и наоборот. Любое устройство может установить строку «истина». Линия становится «ложной» только в том случае, если все устройства сигнализируют «ложь».
Передача начинается с того, что говорящий на шине удерживает линию Clock истинным, а слушатель(и) удерживает линию Data истинным. Для начала говорящий переводит строку Clock в значение false. Когда все прослушиватели шины готовы к приему, они переводят строку данных в значение false. Если говорящий ждет более 200 мкс, а линия Clock не становится истинной (состояние ожидания), слушатели должны выполнить завершение или идентификацию (EOI). [3]
Если ложная (освобожденная) линия данных не подтверждена говорящим в течение 200 мкс, слушатель знает, что говорящий находится в процессе EOI, что означает, что «этот символ будет последним». Когда прослушиватель обнаруживает тайм-аут 200 мкс, он должен подтвердить это, установив на линии данных значение true как минимум на 60 мкс, а затем отпустить ее. Говорящий может снова вернуться к передаче в течение 60 мкс, установив линию Clock в истинное положение. [3]
Данные состоят из восьми бит, начиная с младшего бита. Линия данных устанавливается в соответствии с битом для отправки (1=истина=земля). Как только строка Data установлена, строка Clock становится ложной. Линии синхронизации и данных будут удерживаться в стабильном состоянии не менее 20 мкс (за исключением Commodore 64, которому требуется 60 мкс). После отправки 8 бит говорящий переводит линию данных в состояние «ложь», а затем слушатель подтверждает говорящему, переводя линию данных в состояние «истина» в течение 1000 мкс. После этого говорящий устанавливает значение «истина» для линии «Clock», а слушатель устанавливает значение «истина» для линии «Данные», таким образом, возвращаясь к тому месту, где началась передача. Если EOI сигнализируется удержанием линии Clock в состоянии «ложь», передача завершается, и слушатель подтверждает это, перетягивая линию данных в состояние «истина» на 200 мкс. [3]
Для линии ATN установлено значение true, и байты отправляются, как указано выше, на все устройства, но байт интерпретируется как одна из команд «Говорить», «Слушать», «Не говорить» и «Не слушать». Это указывает конкретному устройству стать говорящим или слушающим. Только устройства с совпадающими номерами переключаются в режим разговора и прослушивания. Также может следовать дополнительный адрес. [3]
На более высоком логическом уровне хост установит для линии ATN значение true и передаст байты «Устройство номер 8, прослушивание», «Вторичный адрес 2, открыто». Затем он установит линию ATN ложной, и тогда хост станет говорящим, удерживая линию Clock истинной. Устройство будет прослушивателем, поддерживая линию данных в истинном состоянии. Хост передаст конкретную команду открытия и завершит ее последовательностью сигналов EOI. После этого хост установит для линии ATN истинное значение «Устройство номер 8, не прослушивать». За ним следует строка ATN true и «Устройство номер 8, прослушивание», «Вторичный адрес 2, данные». Затем хост устанавливает ложь для линии ATN и отправляет данные. Когда хост завершает отправку данных, для линии ATN устанавливается значение true и отправляется сообщение «Устройство номер 8, не прослушиваться». [3]
Когда необходимо поменяться ролями и сделать хост слушателем, а устройство говорящим, это происходит после отправки на устройство команды разговора. Хост устанавливает для строки Data значение true, а для строки Clock устанавливает значение false. Устройство ждет, пока линия Clock станет ложной, а затем переводит ее в истинное состояние и освобождает линию данных в ложное значение. После этой последовательности может следовать стандартное взаимодействие собеседника и слушателя. [3]
Для чтения обычного файла с дискеты номер 8 на Commodore 64LOAD "filename",8,1
вводится команда . Это приводит к следующему общению на высоком уровне:
Дисковод гибких дисков Commodore 1541 использует более медленный режим, совместимый с Commodore 64, который можно отключить для увеличения скорости с помощью команды OPEN 15,8,15,"UI-":CLOSE 15
. [11]
Устройства с номерами 0–3 не связаны с шиной Commodore. [10]
Компьютер VIC-20 и дисководы гибких дисков Commodore 1540 и 1541 используют технологию MOS 6522 VIA для обработки передач по шине IEC. Компьютеры Commodore 64 и 128 , а также диск Commodore 1571 используют адаптер сложного интерфейса .
(1) 4-жильный экранированный кабель длиной 6 футов или 1,8 метра (макс.) (для последовательного подключения)
Выходной низкий ток (токовый); VOL < 0,4 В (PA0-PA7, PC, PB0-PB7, DB0-DB7) ИОЛ 3,2 мА
Хитрости программирования, использованные
Epyx,
позволили достичь скорости передачи данных до 2,5 килобайт в секунду.
1541 прекрасно работает с Plus/4.