nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 14:51



Reply to topic  [ 40 posts ]  Go to page 1, 2, 3  Next
Световое перо для РК 
Author Message
Senior

Joined: 22 Aug 2012 17:06
Posts: 144
Location: 188.220.42.216
Reply with quote
У меня очередной приступ ностальгии, отягощенный наличием свободного времени, поэтому есть вопрос.

У меня в голове живут какие-то смутные воспоминания, что к РК подключали световое перо. Вспоминается вроде как даже какая-то печатная статья где-то, чуть ли не в журнале Радио. Но может меня память серьезно подводит, ибо в интернете ничего подобного мне найти не удалось.

Да, я знаю, что ВГ75 технически поддерживает световое перо, но были ли реальные схемы подключения к РК?

Поделитесь информацией, у кого есть, или подскажите где смотреть.

Если световое перо таки было, может его в эмуляторе поддержать...


08 Mar 2021 15:36
Profile
Fanat

Joined: 22 Mar 2018 20:46
Posts: 52
Reply with quote
Для РК не помню светового пера, для Спеца и Ориона были схемы.
Да и как оно тут будет работать, графики-то нет.


08 Mar 2021 21:57
Profile
Maniac
User avatar

Joined: 12 Apr 2011 20:43
Posts: 267
Location: Tashkent
Reply with quote
gdv2002 wrote:
Для РК не помню светового пера, для Спеца и Ориона были схемы.
Да и как оно тут будет работать, графики-то нет.

A причём здесь графика?
Вот Википедия что показывает:
 "Терминал 1969 года"
Image
«Криста» световое перо имела и Википедия подтверждает это…

И подходили почти все программы РАДИО-86РК (комментарии).
А значит, от РК не так сильно отличается.

P.S.: Нужно посмотреть схему «Кристы» и изучить соответствующее ПО…


Last edited by Paguo-86PK on 09 Mar 2021 06:29, edited 1 time in total.



09 Mar 2021 06:23
Profile WWW
Senior

Joined: 22 Aug 2012 17:06
Posts: 144
Location: 188.220.42.216
Reply with quote
Paguo-86PK wrote:
Нужно посмотреть схему «Кристы» и изучить соответствующее ПО


Можно для начала поддержать перо, которое вы используете в демках оконного интерфейса для РК.

Какие адреса вы используете и как?


09 Mar 2021 06:26
Profile
Maniac
User avatar

Joined: 12 Apr 2011 20:43
Posts: 267
Location: Tashkent
Reply with quote
begoon wrote:
Paguo-86PK wrote:
Нужно посмотреть схему «Кристы» и изучить соответствующее ПО


Можно для начала поддержать перо, которое вы используете в демках оконного интерфейса для РК.

Какие адреса вы используете и как?
Code:
RD_PEN: LXI   HL,0C001H
   MVI   M,060H
   DCR   L
   MOV   C,M
   MOV   B,M


09 Mar 2021 06:31
Profile WWW
Senior

Joined: 22 Aug 2012 17:06
Posts: 144
Location: 188.220.42.216
Reply with quote
Paguo-86PK wrote:
Какие адреса вы используете и как?
Code:
RD_PEN: LXI   HL,0C001H
   MVI   M,060H
   DCR   L
   MOV   C,M
   MOV   B,M


Это, как я понимаю, координаты. А как понять в программе, что перо "приложено"? Особые несуществующие координаты, типа FF FF?


09 Mar 2021 06:38
Profile
Maniac
User avatar

Joined: 12 Apr 2011 20:43
Posts: 267
Location: Tashkent
Reply with quote
Нa сколько я помню из школьных опытов в 90-х, чтение координат светового пера возвращало 0.

Но, судя по информации:
Attachment:
i8275_lpen.jpeg
i8275_lpen.jpeg [ 120.61 KiB | Viewed 8449 times ]

Нужно сначала проверить флаг, а потом уже читать координаты.


09 Mar 2021 07:04
Profile WWW
Maniac
User avatar

Joined: 12 Apr 2011 20:43
Posts: 267
Location: Tashkent
Reply with quote
begoon wrote:
Paguo-86PK wrote:
Можно для начала поддержать перо, которое вы используете в демках оконного интерфейса для РК.
Пытaюсь запустить свою демку такой ссылкой, после загрузки происходит сбой и это видно по смещению экрана.
И в дизассемблере Монитор начинается с F7E2 - смещение на целых 30 байтов!
Хотя залит файл вроде бы корректно.

P.S.: На счёт загрузки файлов, начинающихся с «mon»: Здесь желательно иметь возможность подзагрузки второго файла, который запустится уже на загруженном Мониторе…


09 Mar 2021 08:43
Profile WWW
Senior

Joined: 22 Aug 2012 17:06
Posts: 144
Location: 188.220.42.216
Reply with quote
Paguo-86PK wrote:
Хотя залит файл вроде бы корректно.


Ваш файл битый.

Посмотрите на строки со смещениями 2170 и 2180.

Вот ваша демка на исправленном файле.


09 Mar 2021 09:13
Profile
Maniac
User avatar

Joined: 12 Apr 2011 20:43
Posts: 267
Location: Tashkent
Reply with quote
begoon wrote:
Paguo-86PK wrote:
Хотя залит файл вроде бы корректно.


Ваш файл битый.

Посмотрите на строки со смещениями 2170 и 2180.
Спасибо!
Исправил…
(Понятия не имею, как произошёл такой сбой именно на тех строках.)

В Бейсике через «RUN 1000» можно тестировать «световое перо».

Не думаю, что ВГ75 так наворочена, что могла возвращать какие-то особые координаты светового пера.
Attachment:
LPEN.PNG
LPEN.PNG [ 94.67 KiB | Viewed 8416 times ]

(Не совсем понятно, что происходит при программировании растра: Видимо, регистры светового пера не затрагиваются.)
Так как в документациях по ВГ75 сказано, что по сигналу LPEN от физического светового пера координаты просто копировались в регистры и не изменялись до очередного сигнала или до отключения питания (вход Сброса отсутствует.)

Потому только по биту LP статуса можно ориентироваться, приходил ли LPEN в текущем кадре или нет…


09 Mar 2021 09:58
Profile WWW
Senior

Joined: 22 Aug 2012 17:06
Posts: 144
Location: 188.220.42.216
Reply with quote
Добавил в эмулятор поддержку пера - демо.

Когда эмулятор запустится, сказать "G0", потом "N" в бейсике, и потом "RUN 1000".

UPDATE: Исправил ссылку на демо. До этого она указывала на localhost.


Last edited by begoon on 10 Mar 2021 04:51, edited 1 time in total.



09 Mar 2021 11:56
Profile
Maniac
User avatar

Joined: 12 Apr 2011 20:43
Posts: 267
Location: Tashkent
Reply with quote
Дa, уже заметил.

Нужно доработать как-то Бейсик-демонстрацию и добавить чтение статусного регистра.

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

У меня РК имеется и световые перья советского образца есть.
(Вот не могу советовать привязывать клик мышки в программах к биту статуса LP для полной совместимости: В рамках эмулятора это отлично будет работать, но не понятно, как в железе программа будет вести…)
Если удастся написать более-менее сносный софт с подобной фишкой, можно будет отремонтировать реальный РК и подключить к нему реальное световое перо. Тогда и видно будет.

P.S.: Иначе наблюдается вакуум в этом отношении во всех эмуляторах…


09 Mar 2021 12:04
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Paguo-86PK wrote:
Так как в документациях по ВГ75 сказано, что по сигналу LPEN от физического светового пера координаты просто копировались в регистры и не изменялись до очередного сигнала или до отключения питания (вход Сброса отсутствует.)

Потому только по биту LP статуса можно ориентироваться, приходил ли LPEN в текущем кадре или нет…

В световом пере просто всегда есть кнопка явно или неявно...

Вот здесь кнопка сделана неявно:
Attachment:
img5.png
img5.png [ 36.09 KiB | Viewed 8366 times ]

То есть, когда механически ткнули в экран, то замкнули пружинный контакт, он разрешает работу фотодатчика:
он подключен к LPEN; поскольку растр ВГ75 формирует сама, она по фотодатчику лишь фиксирует,
где он уловил прохождение луча. Эти координаты ВГ75 и запишет в регистры светового пера.
Attachment:
light pen.png
light pen.png [ 80.66 KiB | Viewed 8366 times ]

Кнопка может быть явно НА световом пере - тогда тыкать не надо: указал в экран и нажал пальцем кнопку.
В принципе и без кнопки, я думаю, этот процесс может идти постоянно.
ВГ75 записывает в регистры светового пера по сигналу LPEN, по флагу готовности - остается лишь координаты считать.

_________________
iLavr


10 Mar 2021 04:29
Profile
Senior

Joined: 22 Aug 2012 17:06
Posts: 144
Location: 188.220.42.216
Reply with quote
В эмуляторе я кнопку светового пера (левую кнопку мыши) "завел" напрямую на бит LP статусного регистра:
Code:
if (addr == 0xc001) {
  return 0xff | ~(this.screen.light_pen_active ? 0x10 : 0x00);
}

На реальном железе этот бит как бы говорит, что ВГ75 видит внешний LPEN=1 (кнопка нажата) и поэтому считал перо и уже готов "отдать" координаты на чтение по команде 60h.

В эмуляторе же координаты пера как бы всегда "готовы" мгновенно, если левая кнопка мыши нажата, поэтому виртуальный ВГ75 всегда готов отдать координаты, если подана команда 60h, и все зависит просто от кнопки мыши.


10 Mar 2021 05:03
Profile
Maniac
User avatar

Joined: 12 Apr 2011 20:43
Posts: 267
Location: Tashkent
Reply with quote
begoon wrote:
В эмуляторе я кнопку светового пера (левую кнопку мыши) "завел" напрямую на бит LP статусного регистра:
Code:
if (addr == 0xc001) {
  return 0xff | ~(this.screen.light_pen_active ? 0x10 : 0x00);
}

На реальном железе этот бит как бы говорит, что ВГ75 видит внешний LPEN=1 (кнопка нажата) и поэтому считал перо и уже готов "отдать" координаты на чтение по команде 60h.

В эмуляторе же координаты пера как бы всегда "готовы" мгновенно, если левая кнопка мыши нажата, поэтому виртуальный ВГ75 всегда готов отдать координаты, если подана команда 60h, и все зависит просто от кнопки мыши.
Пытaюсь писать на Бейсике демонстрацию с использованием светового пера, но никак не могу прочитать статус.
Глянул в скрипт…

Чтo-то я не пойму:
Code:
99    if (addr == 0xc001) {
100     return 0xff | ~(this.screen.light_pen_active ? 0x10 : 0x00);
101    };
Почему вместо «& ~» применён «| ~»?
Заглушка?

Кстати, флаг «IR» тоже не плохо было бы поддержать с маской 0x20, который используется в подпрограмме запуска ВГ75/ВТ57.
В 90-х я по этому флагу устраивал часы реального времени.

Если при стандартных настройках ВГ75:
Code:
SHHHHHHH 4D - 78 CHARACTERS PER ROW + 8 CHARACTERS PER HRTC
VVRRRRRR 1D - 30 ROWS PER FRAME     + 1 ROW PER VRTC
UUUULLLL 99 - 10 LINES PER ROW
MFCCZZZZ 93 -  8 CHARACTERS PER HRTC
Частота активации «IR» должна быть примерно 50 Гц:
Code:
8 MHz / (6 * 86 * 31 * 10) ≈ 50,0125 Hz
Соответственно, в эмуляторе нужно привязать флаг ко времени:
Code:
vg75_flag_IR = Date.now() % Math.floor(8 / (6 * (characters_per_row + characters_per_hrtc) * (rows_per_frame + rows_per_vrtc) * lines_per_row / 100000)) > (длительность IRQ) ? 0x20 : 0x00;


10 Mar 2021 10:44
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 40 posts ]  Go to page 1, 2, 3  Next

Who is online

Users browsing this forum: No registered users and 10 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.