БК0010-01 (тут же обсуждаем БК-0010 и БК-0011М)

Digital Equipment Corporation PDP-8 & PDP-11 (а также совместимые с последним советские ЭВМ на 1801ВМ1/2/3)

Moderator: Shaos

User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: БК0010-01

Post by Lavr »

DimkaM wrote:они(демосценеры) щелкают палитру перед лучём.
Это, наверное, в БК-11. В БК0010-01 там ничем не пощелкаешь, насколько я знаю...
iLavr
DimkaM
Maniac
Posts: 261
Joined: 22 Jun 2005 04:35
Location: МО Россия

Re: БК0010-01

Post by DimkaM »

Точно, 11, значит наоффтопил.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: БК0010-01

Post by Lavr »

DimkaM wrote:Точно, 11.
Эмулятор поддерживает БК-11 .

Мне подарили ДОС-эмулятор БК-0010 еще когда "Специалист" был у меня актуальной машинкой..
И я никак не мог понять вот такого странного формирования изображения:
BK0010_BW_colored.png
Википедия пишет, что это "Чёрно-белый режим отображения через цветной разъём"
Но в эмуляторе он всё время был такой - работать просто невозможно... :-?
Я так понимаю, эту фичу еще и сэмулировали близко к оригиналу, что видимости
никак не улучшает.

Я с тех пор собрал большую коллекцию эмуляторов БК - многие работают в таком режиме.
Честно говоря подозревал, что так пытаются "смикшировать" белый цвет, которого нет в
цветной "палитре" БК0010-01, но, видимо, это не так. Просто фича такая...
You do not have the required permissions to view the files attached to this post.
iLavr
DimkaM
Maniac
Posts: 261
Joined: 22 Jun 2005 04:35
Location: МО Россия

Re: БК0010-01

Post by DimkaM »

да, буквально пару недель назад(на дихальте) наблюдал изображение с бк-11 на мониторе 32 втц-202
Оно действительно такое, но всё зависит от текущей палитры.
Как мне рассказали, инженер, придумывавший наборы цветов палитра, беспробудно пил. Но были моменты протрезвления и некоторые наборы цветов вышли вполне удачными.
Скорее всего этот рассказ был шуткой.
User avatar
Shaos
Admin
Posts: 23991
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: БК0010-01

Post by Shaos »

Lavr wrote:
DimkaM wrote:они(демосценеры) щелкают палитру перед лучём.
Это, наверное, в БК-11. В БК0010-01 там ничем не пощелкаешь, насколько я знаю...
А как они обнаруживают "лучъ", если там негде состояние видео считать?

http://www.mailcom.com/bk0010/BK-0011M.html
Я тут за главного - если что шлите мыло на me собака shaos точка net
vicsoftware
Junior
Posts: 1
Joined: 29 May 2018 08:18

Re: БК0010-01

Post by vicsoftware »

Shaos wrote:
Lavr wrote:
DimkaM wrote:они(демосценеры) щелкают палитру перед лучём.
Это, наверное, в БК-11. В БК0010-01 там ничем не пощелкаешь, насколько я знаю...
А как они обнаруживают "лучъ", если там негде состояние видео считать?
http://www.mailcom.com/bk0010/BK-0011M.html
Насколько я понял, прерывание по вектору 100 (системный таймер) генерируется во кадровому синхроимпульсу. Ловим его, затем программируем программируемый таймер для ослеживания уже начала строк.
User avatar
Shaos
Admin
Posts: 23991
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: БК0010-01

Post by Shaos »

vicsoftware wrote:
Shaos wrote:
Lavr wrote:
DimkaM wrote:они(демосценеры) щелкают палитру перед лучём.
Это, наверное, в БК-11. В БК0010-01 там ничем не пощелкаешь, насколько я знаю...
А как они обнаруживают "лучъ", если там негде состояние видео считать?
http://www.mailcom.com/bk0010/BK-0011M.html
Насколько я понял, прерывание по вектору 100 (системный таймер) генерируется во кадровому синхроимпульсу. Ловим его, затем программируем программируемый таймер для ослеживания уже начала строк.
А есть задокументированная инфа по точным растактовкам? Когда конкретно прерывание случается?
Я тут за главного - если что шлите мыло на me собака shaos точка net
DimkaM
Maniac
Posts: 261
Joined: 22 Jun 2005 04:35
Location: МО Россия

Re: БК0010-01

Post by DimkaM »

DimkaM:
@AdamBazaroff народ интересуется viewtopic.php?p=144506#p144506

@Lasoft ^^^

Дамир "Адамыч" Насыров:
Начало строк никак не отследить, только подобрать. А отрисовка да, синхроимпульсом.

Alexander Lyovin:
Да

Дамир "Адамыч" Насыров:
Есть системный таймер, но он без прерывания. Просто инкрементится число.

Пока его прочитаешь и сравнишь с чем-нибудь луч уже убежит :)

Причём говорят, что на разных БК может работать по разному. И ещё были какие-то военные БК. У них было прерывание на этом таймере. Но может это байка.

Alexander Lyovin:
по таймеру не байка

Дамир "Адамыч" Насыров:
Там ещё фантомный косяк мы нашли при одновременном переключении страницы и палитры.

Дамир "Адамыч" Насыров:
Ну растактовка команд на БК есть в интернетах, но не совсем правильная. Мы как раз озаботились этим сейчас.

Да нет данных. Перебором делали.
User avatar
Shaos
Admin
Posts: 23991
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: БК0010-01

Post by Shaos »

хм, ничего не понял - так есть прерывание или нет?
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23991
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: БК0010-01 (тут же обсуждаем БК-0010 и БК-0011М)

Post by Shaos »

Поправил заголовок темы, чтобы снаружи было понятно, что тут не только про БК-0010.01 :mrgreen:

Задумал я свести тут всю инфу по БК-0010 и БК-0011 из разных источников, чтобы разобраться кто есть кто...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23991
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: БК0010-01 (тут же обсуждаем БК-0010 и БК-0011М)

Post by Shaos »

Собрал в одну табличку инфу по памяти - ОЗУ/ПЗУ и регистры доступные как ячейки памяти:

Code: Select all

                      BK-0010[.01]                  BK-0011[M]
----------------------------------------------------------------------------------
0..37777 (RAM)      : always here                  : always here (RAM page 0)
----------------------------------------------------------------------------------
40000..77777        : always here (VRAM)           : RAM pages 0..7
----------------------------------------------------------------------------------
100000..137777      : always ROM                   : RAM pages 0..7
                    :                              : ROM pages 8..11
                    :                              : or external ROM
----------------------------------------------------------------------------------
140000..177577(ROM) : always here                  : always here
----------------------------------------------------------------------------------
177130 (read/write) :                              : FDD controller
----------------------------------------------------------------------------------
177132 (read/write) :                              : FDD data
----------------------------------------------------------------------------------
177660 (read/write) : bit 6 - kbd interrupts disabled
Keyboard status     : bit 7 - keycode ready (read-only)   
                    : (set to 0 when keycode read from the next register)
----------------------------------------------------------------------------------
177662              : bits 0..6 - key (read-only)  : bits 0..6 - key (read-only)
Keyboard data       :                              : bit 8..11 - write palette id
(extra bits in 0011):                              : bit 14 - disable 48.5 Hz int.
                    :                              : bit 15 - disable STOP int.
----------------------------------------------------------------------------------
177664 (read/write) : bits 0..7 - offset (after boot it set to 0330)
Video offset        : bit 9 - full screen (1) or reduced 1/4 screen (0)
----------------------------------------------------------------------------------
177706 (read/write) : bits 0..15 - timer preset    :
Timer preset        :                              :
----------------------------------------------------------------------------------
177710 (read only)  : bits 0..15 - timer value     : 
Timer value         : (1 tick is about 42.9 us)    :
----------------------------------------------------------------------------------
177712 (read/write) : bit 0 - disable and preset   :
Timer settings      : bit 1 - continous count      :
                    : bit 2 - set indicator if 0   :
                    : bit 3 - disable repeat       :
                    : bit 4 - enable count         :
                    : bit 5 - 4 times slower       :
                    : bit 6 - 16 times slower      :
                    :         if both set then 64  :
                    : bit 7 - indicator bit        :
----------------------------------------------------------------------------------
177714 (read/write) : bits 0..15 - inputs/outputs  
Inputs & Outputs    :                              
----------------------------------------------------------------------------------
177716 (read/write) :                              : bit 0 - write ROM 8 to 100000
System register     :                              : bit 1 - write ROM 9 to 100000
                    : bits 0..3 - read CPU mode    : bit 2 - read 1 sysreg written
                    : bit 4 - read/write line      :         write 1 for RAM 6 scr
                    :                              :         write 0 for RAM 5 scr
                    :                              : bit 3 - write ROM10 to 100000
                    :                              : bit 4 - write ROM11 to 100000
                    : bit 5 - read/write tape      : bit 5 - read/write tape
                    :         write line ready
                    : bit 6 - read keys released   : bit 6 - read keys released
                    :         write sound          :         write sound
                    : bit 7 - read line ready      : bit 7 - always 1
                    :         write stop motor     :
                    : bits 8..15 - read start adr  : read bits 8..15 - start adr
                    :                              : write 8..10 - RAM to 100000
                    :                              : write 11 - must be 1
                    :                              : write 12..14 - RAM to 40000
----------------------------------------------------------------------------------
причем страницы ОЗУ очень странно пронумерованы:

Code: Select all

 	1	1	0	страница 0 (постоянно отображена 0...40000)
 	0	0	0	страница 1
 	0	1	0	страница 2
 	0	1	1	страница 3
 	1	0	0	страница 4
 	0	0	1	страница 5 (буфер экрана 0)
 	1	1	1	страница 6 (буфер экрана 1)
 	1	0	1	страница 7 (системная страница)
P.S. Странно, что нет регистра для переключения видеорежимов - ведь как то они в железо передают, что вместо черно-белых пикселов надо их парами в цвет превращать? Или для цветного выхода тупо другая дырка используется на компе?...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23991
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: БК0010-01 (тут же обсуждаем БК-0010 и БК-0011М)

Post by Shaos »

Сразу видно возможность для расширения - в БК-0011 страницы ПЗУ в третьем окне выбираются отдельными битами, а на самом деле эти биты сообща можно как номер страниц использовать:

Code: Select all

4 3 2 1 0
0 0 x 0 0 - RAM to 100000
0 0 x 0 1 - ROM8 to 100000
0 0 x 1 0 - ROM9 to 100000
0 0 x 1 1 - ROM12 to 100000 <<<< NEW
0 1 x 0 0 - ROM10 to 100000
0 1 x 0 1 - ROM13 to 100000 <<<< NEW
0 1 x 1 0 - ROM14 to 100000 <<<< NEW
0 1 x 1 1 - ROM15 to 100000 <<<< NEW
1 0 x 0 0 - ROM11 to 100000
1 0 x 0 1 - ROM16 to 100000 <<<< NEW
1 0 x 1 0 - ROM17 to 100000 <<<< NEW
1 0 x 1 1 - ROM18 to 100000 <<<< NEW
1 1 x 0 0 - ROM19 to 100000 <<<< NEW
1 1 x 0 1 - ROM20 to 100000 <<<< NEW
1 1 x 1 0 - ROM21 to 100000 <<<< NEW
1 1 x 1 1 - ROM22 to 100000 <<<< NEW
изначально ROM8,ROM9 и ROM10 предполагались внутренними, а ROM11 - внешним
можно также считать ROM11 и идущие дальше ROM16-ROM22 внешним картриджем - это 8 окон по 16кб или одна 16-битная микросхема 27C1024
оставшиеся системный ROM,ROM8,ROM9,ROM10 а также 4 дополнительных ROM12,ROM13,ROM14,ROM15 - будем считать внутренними (бортовая микросхема 27C1024)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23991
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: БК0010-01 (тут же обсуждаем БК-0010 и БК-0011М)

Post by Shaos »

Shaos wrote:Странно, что нет регистра для переключения видеорежимов - ведь как то они в железо передают, что вместо черно-белых пикселов надо их парами в цвет превращать? Или для цветного выхода тупо другая дырка используется на компе?...
Для поддержки БК-режимов в своей железяке (и своих расширеных режимов с полноценной палитрой) по видимому надо будет ряд новых регистров завести (177666 и т.д.):

viewtopic.php?p=150296#p150296

P.S. Оригинальная документация на БК-шки: http://gid.pdp-11.ru/doclist.html
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23991
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: БК0010-01 (тут же обсуждаем БК-0010 и БК-0011М)

Post by Shaos »

Вот демка как пишут для 0011М аж 1996 года :o


https://youtu.be/BLCjzHAy9Ec
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23991
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: БК0010-01 (тут же обсуждаем БК-0010 и БК-0011М)

Post by Shaos »

Есть БК-шка на FPGA: https://github.com/sorgelig/BK0011M_MIST

P.S. И чуть более развитая версия: https://github.com/MiSTer-devel/BK0011M_MiSTer
Я тут за главного - если что шлите мыло на me собака shaos точка net