nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 19 Mar 2024 02:07



Reply to topic  [ 11 posts ] 
Кассетный порт IBM 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Во многих описаниях ранних IBM PС упоминается порт кассетного
магнитофона и даже есть примеры программирования...
Канешна - это атавизм, но вопрос вот в чем - какая схемотехника
этого порта ?
И книжки я читал... и гуглил и яндексил... но ответа не нашел,
может кто знает ?


17 May 2010 00:28
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
Post 
А это не про провальный IBM PCjr?

P.S. На советском клоне IBM PC под названием "Поиск" помнится тоже был магнитофонный вход - мы через него грузили CGA-шные Popcorn (арканоид) и Tapper (там где пиво надо по столам кидать)...

_________________
:dj: https://mastodon.social/@Shaos


17 May 2010 06:52
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
В IBM PCjr он тоже был...
И я сильно подозреваю, что в схемотехнике ,,Ириши,, это аппаратное решение использовано.
Но точно не знаю... мож Кроакер знает...
Лично меня этот вопрос давно и принципиально мучает - как заноза... :)
Почему я не знаю схемотехнику этого порта... хоть догадки и имеются.


17 May 2010 08:56
Profile
Senior

Joined: 28 Feb 2006 21:34
Posts: 180
Reply with quote
Post 
Lavr wrote:
В IBM PCjr он тоже был...
И я сильно подозреваю, что в схемотехнике ,,Ириши,, это аппаратное решение использовано.
Но точно не знаю... мож Кроакер знает...
Лично меня этот вопрос давно и принципиально мучает - как заноза... :)
Почему я не знаю схемотехнику этого порта... хоть догадки и имеются.

Магнитофонный порт был у первых IBM PC.
Цитирую
Code:
Другой порт ввода микросхемы 8255, порт 62H, обслуживает другие входы. Четыре его бита непосредственно соответствуют переключателям, показывающим объем памяти, подсоединенной к системному каналу ввода-вывода. Другие четыре бита имеют индивидуальное назначение. Два из них показывают тип системной ошибки. Программа обслуживания немаскируемого прерывания NMI использует эти биты для определения причины системной аварии. Бит 5 порта 62H используется для обратной связи с одним из каналов таймера-счетчика. Этот бит служит индикатором текущего выхода второго канала микросхемы 8253. Бит 4 порта 62H отражает текущее состояние ввода с кассетного магнитофона. Сзади у IBM PC, рядом с разъемом для подключения клавиатуры, имеется разъем для подключения кассетного магнитофона. При чтении данных с кассеты, этот бит используется для определения текущего значения, вводимого с кассеты.

Порт 61H - это порт вывода микросхемы 8255 в машине фирмы IBM. Всякий выходной порт захватывает (временно запоминает) данные, выводимые программой. Если бы аппаратура не запоминала данные, они бы пропали в течение микросекунды или около этого. Такое запоминание данных позволяет сохранять их значение в порте до тех пор, пока они снова не будут изменены программой. То есть, когда мы выводим значение, меняющее положение диффузора динамика, оно остается неизменными до тех пор, пока его не изменит программа.

На Фиг.8.2 показано значение битов порта 61H. Эти данные взяты из из технического описания.

При изучении управления динамиком имеют значение только биты 0 и 1. Из всех других - только бит 3 - управление двигателем кассетного магнитофона - и бит 7 - сброс ввода с клавиатуры - имеют какое-то значение для наших программ. Остальные биты предназначены только для инициализации и диагностики. Чтобы полностью разобраться в них, нужно детально изучить принципиальные схемы системы.

Возвращаясь к обсуждению управления динамиком, мы можем заметить, что биты 0 и 1 используются для непосредственного управления. Как показано на Фиг. 8.1, установка бита 0 в положение 0 включает прямое управление динамиком, блокируя механизм генерации звука микросхемой 8253. Этот метод используется во второй части програмы.
Бит   Значение
0   Порт 2 таймера (упраление динамиком)
1   Прямое управление динамиком
2   Мультиплексный порт 62H
3   Управление мотором кассетного магнитофона
4   Включение контроля доступа на системной плате памяти
5   Включение контроля доступа в памяти каналов ввода-вывода
6   Временной контроль клавиатуры
7   Мультиплексный/сброса ввода с клавиатуры порт 60H


Можно посмотреть вот здесь - http://www.retroarchive.org/dos/docs/ibm_techref_v202_1.pdf


17 May 2010 10:04
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Вот, вот...

Quote:
7.3.1 Чтение/запись с кассетного магнитофона.

Только очень немногие IBM PC и PCjr используют кассетный магнитофон, а XT и AT не поддерживают его вообще. Помимо того, что он очень ненадежен, обмен с кассетным магнитофоном возможен только последовательный, но не с прямым доступом.

Вот про это я и говорю... и много где это написано, начиная, скажем,
с Джордейна или ,,Библии по IBM...,, и Марголиса - ,,Ремонт ЭВМ...,,
а схему кто-нибуть где-нибуть видел ?


19 May 2010 01:09
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Я тут злобно даже по-Альтавистил и нашел вот что.

http://www.uncreativelabs.net/hwinfo/5150.htm

Описалово на IBM PC cassette adapter, правда, только словесное:

Code:
I don't know if IBM ever sold a cassette recorder for the PC, but the=20 port certainly existed. I believe the original idea was for the owner to = pop down to a Radio Shack store and buy a cas-sette recorder (more = details=20 below).

I've got a PC techref here...

OK, this what the port consists of :=20
Most of the work was done in software.
I don't know if IBM ever sold a cassette recorder for the PC, but the=20 port certainly existed. I believe the original idea was for the owner to = pop down to a Radio Shack store and buy a cas-sette recorder (more = details=20 below).

I've got a PC techref here...

OK, this what the port consists of :=20. Most of the work was done in software.

Write : The output of the 8253 channel 2 (the one used for the speaker = as=20 well) was in-verted and put on a voltage divider. The output of said = voltage=20 divider went to the micro-phone or aux input of the cassette recorder.

Read. The earphone output of the cassette recorder went to an 741-based=20 amplifier. The output of that was clipped to TTL levels and went to port =

PC4 on the 8255. You read it at bit 4 of port 0x62.

Bit PB3 of the 8255 (port 0x61, bit 3) is bufferd and used to drive a=20 relay coil. _Clearing_ this bit turns the relay on. The relay contacts=20 control the cassette motor. In typical IBM self-diagnostic style, =
another=20 set of contacts on the relay disconnects the input of the read amplifier =
from the cassette earphone socket and connects it to the output votlage=20 divder, allowing the system to check the read amplifer, when the = cassette=20 motor is turned off.

You use the cassette via BIOS interrupt 0x15.

AH=3D0 turns on the cassette motor.=20

AH=3D1 turns it off.=20

AH=3D2 reads a tape block. Number of bytes to read is passed in CX, = start=20 address of the buffer to read them into in ES:BX. It returns with the=20 actual number of bytes read in DX, carry set if error occured, status in =

AH, ES:BX =3D last byte trasnfered + 1.=20 The status is given by AH=3D1 for CRC error, AH=3D2 for lost data, = AH=3D4 if no=20 data found.

AH=3D3 writes a tape clock of CX bytes starting from ES:BX. On exit, = CX=3D0,=20 ES:BX =3D last byte transfered + 1

AH=3D anything else returns AH=3D0x80 - illegal command.

I can provide the format of the data on the tape if you want it.

The port was useable from BASIC. There were commands MOTOR ON and MOTOR=20 OFF to operate the relay and SAVE and LOAD to transfer programs in ROM=20 BASIC. I can't re-member how you used the cassette from disk BASIC.

One other interesting thing is the pinout of the cassette port = (numbering=20 the pins conven-tionally ) :=20

1 Motor Control 2 Ground 3 Motor Control 4 Data In (to PC) 5 DAta Out (from PC)=20

That's _exactly_ the same as the pinout of a TRS-80 cassette port. I'm=20 pretty sure the origi-nal intention was to use a Radio Shack cable.
Write : The output of the 8253 channel 2 (the one used for the speaker =

as=20 well) was inverted and put on a voltage divider. The output of said =

voltage=20 divider went to the microphone or aux input of the cassette recorder.

Read. The earphone output of the cassette recorder went to an 741-based=20 amplifier. The output of that was clipped to TTL levels and went to port =

PC4 on the 8255. You read it at bit 4 of port 0x62.

Bit PB3 of the 8255 (port 0x61, bit 3) is bufferd and used to drive a=20 relay coil. _Clearing_ this bit turns the relay on. The relay contacts=20 control the cassette motor. In typical IBM self-diagnostic style, =

another=20 set of contacts on the relay disconnects the input of the read amplifier =

from the cassette earphone socket and connects it to the output votlage=20 divder, allowing the system to check the read amplifer, when the = cassette=20 motor is turned off.

You use the cassette via BIOS interrupt 0x15.

AH=3D0 turns on the cassette motor.=20

AH=3D1 turns it off.=20

AH=3D2 reads a tape block. Number of bytes to read is passed in CX, = start=20 address of the buffer to read them into in ES:BX. It returns with the=20 actual number of bytes read in DX, carry set if error occured, status in =

AH, ES:BX =3D last byte trasnfered + 1.=20 The status is given by AH=3D1 for CRC error, AH=3D2 for lost data, = AH=3D4 if no=20 data found.

AH=3D3 writes a tape clock of CX bytes starting from ES:BX. On exit, = CX=3D0,=20 ES:BX =3D last byte transfered + 1
AH=3D anything else returns AH=3D0x80 - illegal command.

I can provide the format of the data on the tape if you want it.

The port was useable from BASIC. There were commands MOTOR ON and MOTOR=20 OFF to operate the relay and SAVE and LOAD to transfer programs in ROM=20 BASIC. I can't re-member how you used the cassette from disk BASIC.

One other interesting thing is the pinout of the cassette port = (numbering=20 the pins conven-tionally ) :=20
1 Motor Control 2 Ground 3 Motor Control 4 Data In (to PC) 5 DAta Out (from PC)=20
That's _exactly_ the same as the pinout of a TRS-80 cassette port. I'm=20 pretty sure the origi-nal intention was to use a Radio Shack cable.

> port accessed ? Does anyone know what " hacks" were done or = possible on > this I/O ?

The most trivial hack was to use the motor relay to switch some other=20 low-voltage device - like a small lamp. I've done that.


За правду не ручаюсь, поскольку её сам не знаю... - всё AS IS... :wink:

P.S. ...хотя на Блок-Диаграмму кассетного порта (стр. 28 : http://www.retroarchive.org/dos/docs/ibm_techref_v202_1.pdf)
описание очень даже походит...


20 May 2010 02:32
Profile
Senior

Joined: 28 Feb 2006 21:34
Posts: 180
Reply with quote
Lavr wrote:
P.S. ...хотя на Блок-Диаграмму кассетного порта (стр. 28 : http://www.retroarchive.org/dos/docs/ibm_techref_v202_1.pdf)
описание очень даже походит...

Там вроде в этой части принципиальная схема была... И фото материнской платы, на которой рядом с разъемом клавиатуры разъем магнитофонного порта... посмотри по этому же пути файлы ibm_techref_v202_2.pdf и ibm_techref_v202_3.pdf


20 May 2010 06:14
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Сегодня мне пришло письмо, что я подписан на обновления этого топика,
и тут появилась новая информация... :o
Я был очень удивлен, поскольку считал для себя этот вопрос закрытым... :wink:
но рекламный бот напомнил мне, что и другие люди могут интересоваться
этой информацией и не находить ответа, как и я сам на старте топика...

Ну и раз уж на нас даже ссылаются, то восполню этот пробел в схемотехнике
кассетного порта IBM:

Вот так он располагался с тылу IBM РС:
Image

Это схемотехника входной цепи:
Image
А дальше я перерисовывать заленился и оставил схемы как есть... :D
Видимо, поэтому я их сюда раньше и не выложил, но всё просто:


Это схемотехника вЫходной цепи:
Image

Схемотехника управления мотором кассетного магнитофона:
Image


А вот в "Ирише", судя по всему, интерфейс несколько отличался:
Image

Схемы эти вряд ли имеют сейчас какое-либо практическое значение, кроме
удовлетворения собственного схемотехнического любопытства.
Но вот восстановить кассетные функции INT15 и заставить их работать
через LPT постарались коллеги с ПОЛИГОНа ПРИЗРАКОВ, которые наши
материалы тоже приняли к сведению:
СТАРОЕ ЖЕЛЕЗО. IBM PC » Кассетный интерфейс

_________________
iLavr


03 Oct 2015 03:33
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
Я гляжу с хабра сюда идут вот из этого коммента:

https://habr.com/ru/company/ruvds/blog/529772/#comment_22366296

_________________
:dj: https://mastodon.social/@Shaos


05 Dec 2020 02:48
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Про загрузку программ с грамафонной пластинки мы тут тоже давненько обсуждали:
http://www.nedopc.org/forum/viewtopic.php?f=82&t=9832&start=15

Image

Правда, тогда еще не загружали с них ОС DOS... но "новое" - это всегда хорошо забытое старое... :wink:

_________________
iLavr


05 Dec 2020 06:01
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Еще один интерфейс, который является ныне анахронизмом и атавизмом - световое перо.

Как-то его ностальгично упомянули вот в этом топике, и я вспомнил, что со световым пером
в приложении к EGA-видео-карте я в своё время справиться не смог
... :(

Я подумал, что много лет спустя все уже точно знают, как оно подключалось к видеокарте, но,
оказалось, судя по поиску, это совсем не так! :roll:
Более того, на некоторых форумах врут по сей день, "как очевидцы"... :lol:

Схема светового пера может иметь массу вариантов исполнения, но привожу рекомендованную
для сопряжения с IBM РС:
Attachment:
LPEN.PNG
LPEN.PNG [ 16.97 KiB | Viewed 17968 times ]

А вот дальше начинается самое забавное - куда подключать световое перо, и много где дезинформируют:
Quote:
Вон те два круглых разъема - один для композитного видеосигнала,
второй для светового пера.
Attachment:
EGA_card.PNG
EGA_card.PNG [ 859 KiB | Viewed 17968 times ]

Это полная неправда, световое перо подключают к 6-контактному коннектору, выделенному красным.
И распиновка его следующая:
Attachment:
LPENi.PNG
LPENi.PNG [ 12.9 KiB | Viewed 17968 times ]
И я, кстати, не разобрался тогда что же такое "Строб светового пера". :cry:

Подробно о взаимодействии с этим анахронизмом можно прочесть вот в этой книге:

Image

Ссылка есть в нашей библиотеке, и судя по поиску, книгу вполне можно найти.
Тёплый ламповый Basic там кошерно управляется со световым пером... :wink:

На всякий случай: СОВРЕМЕННЫЕ ДИСПЛЕИ С ЭТИМ ПЕРОМ НЕ РАБОТАЮТ! ТОЛЬКО ЭЛТ!
Но зато со световым пером может работать любой видеоконтроллер на основе БИС 6845.
И CGA мог... только я об этом тогда не знал! :-?

Ну и зачем я засунул световое перо в "Кассетный порт IBM"? А потому как многие ходят
посмотреть его сюда и ссылаются на нас... Пусть два анахронизма будут вместе! 8)

_________________
iLavr


15 Mar 2021 14:32
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 11 posts ] 

Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.