nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 18 Mar 2024 22:04



Reply to topic  [ 35 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
Я уже 30 лет смотрю на код родного двух килобайтного Монитора РК и все еще имею по нему вопросы.

В его начальный фрагмент (asm, lst):
Code:
F836:            entry_start:                             ; CODE XREF: F800j
F836: 3E8A                       mvi     a, 8Ah           ; VV55 A - out, B - in
F838: 320380                     sta     8003h            ; C0-C4 - out, C5-C7 - in
                 
F83B: 31CF76                     lxi     sp, stack
                 
F83E: CDCEFA                     call    entry_video     ; start video
                 
F841: 210076                     lxi     h, monitor_area
F844: 115F76                     lxi     d, monitor_area_end
F847: 0E00                       mvi     c, 0
F849: CDEDF9                     call    fill_hl_de_c    ; fill HL to DE by C
                 
F84C: 21CF76                     lxi     h, stack
F84F: 221C76                     shld    stack_ptr
                 
F852: 215AFF                     lxi     h, RadioPrompt
F855: CD22F9                     call    entry_puts      ; put title
                 
F858: CDCEFA                     call    entry_video
                 
F85B: 21FF75                     lxi     h, monitor_area - 1
F85E: 223176                     shld    memlim


Почему подпрограмма по адресу FACE (entry_video, программирование ВГ75 и ИК57) вызывается дважды, на прямом куске кода? на F83E и F858?

В чем смысл?


13 Mar 2021 05:04
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Мне кажется, более старший адрес - это "тёплый старт" ...

Нет... ошибся... WARM_BOOT дальше...

_________________
iLavr


13 Mar 2021 07:43
Profile
Senior

Joined: 22 Aug 2012 17:06
Posts: 144
Location: 188.220.42.216
Reply with quote
Эти два вызова ВСЕГДА выполняются именно подряд. В этом и странность.


13 Mar 2021 08:06
Profile
Maniac
User avatar

Joined: 12 Apr 2011 20:43
Posts: 267
Location: Tashkent
Reply with quote
begoon wrote:
Эти два вызова ВСЕГДА выполняются именно подряд. В этом и странность.
Пeрвый выполняется для запуска ВГ75/ВТ57, чтобы запустить регенерацию.
После чего экран очищается и выводится титул.
Но, пока экран очищался, ВГ75 могла успеть нахвататься кода >127 и экран мог съехать.
Потому запускаем повторно ВГ75/ВТ57.


13 Mar 2021 08:19
Profile WWW
Senior

Joined: 22 Aug 2012 17:06
Posts: 144
Location: 188.220.42.216
Reply with quote
Paguo-86PK wrote:
Пeрвый выполняется для запуска ВГ75/ВТ57, чтобы запустить регенерацию.
После чего экран очищается и выводится титул.
Но, пока экран очищался, ВГ75 могла успеть нахвататься кода >127 и экран мог съехать.
Потому запускаем повторно ВГ75/ВТ57.

Нахвататься откуда? После первого же вызова, и ПДП и ВГ уж настроены и работают. Откуда мусор?


13 Mar 2021 08:41
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
begoon wrote:
Paguo-86PK wrote:
Пeрвый выполняется для запуска ВГ75/ВТ57, чтобы запустить регенерацию.
После чего экран очищается и выводится титул.
Но, пока экран очищался, ВГ75 могла успеть нахвататься кода >127 и экран мог съехать.
Потому запускаем повторно ВГ75/ВТ57.

Нахвататься откуда? После первого же вызова, и ПДП и ВГ уж настроены и работают. Откуда мусор?
При первой настройке в видео-ОЗУ был мусор по включению, по идее...
Строка:
Code:
     LXI  H,MFF5A    ;F852  21 5A FF ;--- 1FH,'radio86-rk',00H
     CALL MF818      ;F855  CD 22 F9 ;--- Вывод на экран ASCII-Z строки HL

Чистит видео-ОЗУ по коду 1FH.

Хотя встречал я мнение, что это чисто перестраховка со стороны авторов...

_________________
iLavr


13 Mar 2021 08:56
Profile
Maniac
User avatar

Joined: 12 Apr 2011 20:43
Posts: 267
Location: Tashkent
Reply with quote
Lavr wrote:
begoon wrote:
Нахвататься откуда? После первого же вызова, и ПДП и ВГ уж настроены и работают. Откуда мусор?
При первой настройке в видео-ОЗУ был мусор по включению, по идее...
Нa сколько я помню, у меня по «D,35FF» вываливалась примерно такая картина:
Code:
0000 00 00 FF FF 00 00 FF FF 00 00 FF FF 00 00 FF FF
0010 00 00 FF FF 00 00 FF FF 00 00 FF FF 00 00 FF FF
0020 00 00 FF FF 00 00 FF FF 00 00 FF FF 00 00 FF FF
0030 00 00 FF FF 00 00 FF FF 00 00 FF FF 00 00 FF FF
0040 00 00 FF FF 00 00 FF FF 00 00 FF FF 00 00 FF FF
0050 00 00 FF FF 00 00 FF FF 00 00 FF FF 00 00 FF FF
0060 00 00 FF FF 00 00 FF FF 00 00 FF FF 00 00 FF FF
0070 00 00 FF FF 00 00 FF FF 00 00 FF FF 00 00 FF FF
0080 FF FF 00 00 FF FF 00 00 FF FF 00 00 FF FF 00 00
0090 FF FF 00 00 FF FF 00 00 FF FF 00 00 FF FF 00 00
00A0 FF FF 00 00 FF FF 00 00 FF FF 00 00 FF FF 00 00
00B0 FF FF 00 00 FF FF 00 00 FF FF 00 00 FF FF 00 00
00C0 FF FF 00 00 FF FF 00 00 FF FF 00 00 FF FF 00 00
00D0 FF FF 00 00 FF FF 00 00 FF FF 00 00 FF FF 00 00
00E0 FF FF 00 00 FF FF 00 00 FF FF 00 00 FF FF 00 00
00F0 FF FF 00 00 FF FF 00 00 FF FF 00 00 FF FF 00 00
А вот рандомный мусор был в ZX-Spectrum…


13 Mar 2021 09:31
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
А в "Специалисте" мусор по включению был примерно вот такой:
Attachment:
мусор.gif
мусор.gif [ 179.93 KiB | Viewed 6064 times ]

_________________
iLavr


13 Mar 2021 12:43
Profile
Maniac
User avatar

Joined: 12 Apr 2011 20:43
Posts: 267
Location: Tashkent
Reply with quote
Lavr wrote:
А в "Специалисте" мусор по включению был примерно вот такой
Ух ты! Прямо будто кристалл весь под электронным микроскопом!


13 Mar 2021 12:56
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Paguo-86PK wrote:
...будто кристалл весь под электронным микроскопом!

В довольно древнее уже время, когда рядом с молодым еще Интернетом существовало Фидо,
попадалась мне следующая конструкция. Люди брали вот такую микросхему ДОЗУ:
Attachment:
565РУ3.jpg
565РУ3.jpg [ 30.97 KiB | Viewed 6025 times ]
Аккуратненько лишали её металлической крышечки, и ставили туда стеклышко
или даже линзочку, после чего подбирали время регенерации так, чтобы освещение частично разрядило емкости.
Определяли расположение ячеек на кристалле, и упорядочивали их также в компьютере.
Получалась простенькая бюджетная видеокамера... тогда, когда видеокамерами и рядом не пахло...

Вы тут где-то про "космические лучи" писали... так и обычными лучами люди умудрялись "засвечивать" ДОЗУ.

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

_________________
iLavr


14 Mar 2021 00:55
Profile
Maniac
User avatar

Joined: 12 Apr 2011 20:43
Posts: 267
Location: Tashkent
Reply with quote
Lavr wrote:
В довольно древнее уже время, когда рядом с молодым еще Интернетом существовало Фидо,
попадалась мне следующая конструкция. Люди брали вот такую микросхему ДОЗУ:
Аккуратненько лишали её металлической крышечки, и ставили туда стеклышко
или даже линзочку, после чего подбирали время регенерации так, чтобы освещение частично разрядило емкости.
Определяли расположение ячеек на кристалле, и упорядочивали их также в компьютере.
Получалась простенькая бюджетная видеокамера... тогда, когда видеокамерами и рядом не пахло...

Вы тут где-то про "космические лучи" писали... так и обычными лучами люди умудрялись "засвечивать" ДОЗУ.
Вoт как раз в соседней теме «ПСИХ» (jонлайн версия) так и появился, чтобы можно было проводить подобные опыты… Именно РАДИО-86РК с его ПДП идеально подходит для этого, но алгоритмически довольно нелегко было решить составление кода долгое время (и ОЗУ разрушать, и тело программы хранить, и чтобы сам процессор всякими POP PSW случайно не регенерировал разрушаемые ячейки)…


14 Mar 2021 04:49
Profile WWW
Devil

Joined: 26 May 2003 06:57
Posts: 857
Reply with quote
begoon wrote:
Почему подпрограмма по адресу FACE (entry_video, программирование ВГ75 и ИК57) вызывается дважды

Пока очищается область монитора, пройдёт немало времени, и ОЗУ может начать разрушаться, поэтому вызывается до этого. Второй раз вызывается, если нужно выйти в монитор, но не надо очищать область монитора.

Хотя, в процессе очистки RAS тоже будет перебираться, поэтому может и не нужен первый вызов, но может быть нужно именно чтение.

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


14 Mar 2021 11:50
Profile WWW
Online
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22381
Location: Silicon Valley
Reply with quote
Lavr wrote:
Paguo-86PK wrote:
...будто кристалл весь под электронным микроскопом!

В довольно древнее уже время, когда рядом с молодым еще Интернетом существовало Фидо,
попадалась мне следующая конструкция. Люди брали вот такую микросхему ДОЗУ:
Image
Аккуратненько лишали её металлической крышечки, и ставили туда стеклышко
или даже линзочку, после чего подбирали время регенерации так, чтобы освещение частично разрядило емкости.
Определяли расположение ячеек на кристалле, и упорядочивали их также в компьютере.
Получалась простенькая бюджетная видеокамера... тогда, когда видеокамерами и рядом не пахло...

Вы тут где-то про "космические лучи" писали... так и обычными лучами люди умудрялись "засвечивать" ДОЗУ.

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

Американцы тоже в такие игры играли - толи в 80х толи уже в 90х - даже в какой-то моей книжке по электронике любительской это было - и я вроде даже тут на форуме про это писал...

P.S. Вот нашёл проект с исходниками - один немец на ДОЗУ чипе 4164 сделал камеру:

http://translate.google.com/translate?hl=en&sl=auto&tl=ru&u=http%3A%2F%2Fwww.kurzschluss.com%2Fkuckuck%2Fkuckuck.html&sandbox=1


Attachments:
still1.gif
still1.gif [ 15.38 KiB | Viewed 5987 times ]

_________________
:dj: https://mastodon.social/@Shaos
14 Mar 2021 16:38
Profile WWW
Maniac
User avatar

Joined: 12 Apr 2011 20:43
Posts: 267
Location: Tashkent
Reply with quote
Shaos wrote:
Американцы тоже в такие игры играли - толи в 80х толи уже в 90х - даже в какой-то моей книжке по электронике любительской это было - и я вроде даже тут на форуме про это писал...

P.S. Вот нашёл проект с исходниками - один немец на ДОЗУ чипе 4164 сделал камеру:

http://translate.google.com/translate?hl=en&sl=auto&tl=ru&u=http%3A%2F%2Fwww.kurzschluss.com%2Fkuckuck%2Fkuckuck.html&sandbox=1
Нa сайте cxema.ru впервые узнал про это лет эдак 15 тому назад…


14 Mar 2021 17:43
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
b2m wrote:
Второй раз вызывается, если нужно выйти в монитор, но не надо очищать область монитора.

Вот я тоже сначала так подумал, не глядя в код, а потом посмотрел, что "второй раз, если нужно выйти в монитор,
но не надо очищать область монитора
" эту подпрограмму как раз-таки не вызывают:
Code:
...
;-------------------- Стек установлен на 76CFH
     LXI  SP,NEWSP   ;F83B  31 CF 76 ; установка стека
;-------------------- ВГ75 и ВТ57 настраивают и запускают в работу вывод на дисплей
     CALL MF82D      ;F83E  CD CE FA ; настройка CCRT и ПДП
;-------------------- Вся служебная область монитора заполняется 00H
     LXI  H,ADVID    ;F841  21 00 76 ; 7600H - начало служебной области
     LXI  D,L765F    ;F844  11 5F 76 ; 765FH = 00H 96 байт
     MVI  C,00H      ;F847  0E 00    ; служебные ячейки Монитора до 76CFH
     CALL CFILL      ;F849  CD ED F9 ; заполнение HL-DE байтом C
;-------------------- Значение стека сохраняют, но читают косвенно как POP
     LXI  H,NEWSP    ;F84C  21 CF 76
     SHLD BOXSP      ;F84F  22 1C 76
;-------------------- Вывод заставки с позиции 77C2H ScreenHOME - 1FH;
     LXI  H,MFF5A    ;F852  21 5A FF ;--- 1FH,'radio86-rk',00H
     CALL MF818      ;F855  CD 22 F9 ;--- Вывод на экран ASCII-Z строки HL
     CALL MF82D      ;F858  CD CE FA ;--- Запуск индикации на экране
;-------------------- Установка верха доступного ОЗУ 75FFH
     LXI  H,RAMHI    ;F85B  21 FF 75
     SHLD MEMHI      ;F85E  22 31 76
;-------------------- Установка констант чтения и записи на маг.ленту
     LXI  H,C1D2A    ;F861  21 2A 1D
     SHLD CONSR      ;F864  22 2F 76
;--------------------
     MVI  A,0C3H     ;F867  3E C3    ;--- JMP
     STA  CMJMP      ;F869  32 26 76
B00TW:
     LXI  SP,NEWSP   ;F86C  31 CF 76
     LXI  H,PROMP    ;F86F  21 66 FF ;--- 0DH,0AH '-->',00H
     CALL MF818      ;F872  CD 22 F9 ;--- Вывод на экран ASCII-Z строки HL
     STA  PPA1C      ;F875  32 02 80 ;--- 00H в C0-C3 ППА1
...

Тут Дёмин прав:
Quote:
Эти два вызова ВСЕГДА выполняются именно подряд. В этом и странность.

Тёплый вход в Монитор - WARM_BOOT - не вызывает эту подпрограмму...

_________________
iLavr


14 Mar 2021 21:33
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 35 posts ]  Go to page 1, 2, 3  Next

Who is online

Users browsing this forum: Shaos and 4 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.