Author |
Message |
begoon
Senior
Joined: 22 Aug 2012 17:06 Posts: 144 Location: 188.220.42.216
|
Я уже 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 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Мне кажется, более старший адрес - это "тёплый старт" ...
Нет... ошибся... WARM_BOOT дальше...
_________________ iLavr
|
13 Mar 2021 07:43 |
|
|
begoon
Senior
Joined: 22 Aug 2012 17:06 Posts: 144 Location: 188.220.42.216
|
Эти два вызова ВСЕГДА выполняются именно подряд. В этом и странность.
|
13 Mar 2021 08:06 |
|
|
Paguo-86PK
Maniac
Joined: 12 Apr 2011 20:43 Posts: 267 Location: Tashkent
|
Пeрвый выполняется для запуска ВГ75/ВТ57, чтобы запустить регенерацию. После чего экран очищается и выводится титул. Но, пока экран очищался, ВГ75 могла успеть нахвататься кода >127 и экран мог съехать. Потому запускаем повторно ВГ75/ВТ57.
|
13 Mar 2021 08:19 |
|
|
begoon
Senior
Joined: 22 Aug 2012 17:06 Posts: 144 Location: 188.220.42.216
|
Нахвататься откуда? После первого же вызова, и ПДП и ВГ уж настроены и работают. Откуда мусор?
|
13 Mar 2021 08:41 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
При первой настройке в видео-ОЗУ был мусор по включению, по идее... Строка: Чистит видео-ОЗУ по коду 1FH. Хотя встречал я мнение, что это чисто перестраховка со стороны авторов...
_________________ iLavr
|
13 Mar 2021 08:56 |
|
|
Paguo-86PK
Maniac
Joined: 12 Apr 2011 20:43 Posts: 267 Location: Tashkent
|
Нa сколько я помню, у меня по «D,35FF» вываливалась примерно такая картина: А вот рандомный мусор был в ZX-Spectrum…
|
13 Mar 2021 09:31 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А в "Специалисте" мусор по включению был примерно вот такой:
_________________ iLavr
|
13 Mar 2021 12:43 |
|
|
Paguo-86PK
Maniac
Joined: 12 Apr 2011 20:43 Posts: 267 Location: Tashkent
|
Ух ты! Прямо будто кристалл весь под электронным микроскопом!
|
13 Mar 2021 12:56 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
В довольно древнее уже время, когда рядом с молодым еще Интернетом существовало Фидо, попадалась мне следующая конструкция. Люди брали вот такую микросхему ДОЗУ: Аккуратненько лишали её металлической крышечки, и ставили туда стеклышко или даже линзочку, после чего подбирали время регенерации так, чтобы освещение частично разрядило емкости. Определяли расположение ячеек на кристалле, и упорядочивали их также в компьютере. Получалась простенькая бюджетная видеокамера... тогда, когда видеокамерами и рядом не пахло... Вы тут где-то про "космические лучи" писали... так и обычными лучами люди умудрялись "засвечивать" ДОЗУ. К сожалению, оригинал этого материала у меня где-то далеко в архивах. Ибо на сегодняшний день это всего лишь интересный технический курьез.
_________________ iLavr
|
14 Mar 2021 00:55 |
|
|
Paguo-86PK
Maniac
Joined: 12 Apr 2011 20:43 Posts: 267 Location: Tashkent
|
Вoт как раз в соседней теме «ПСИХ» ( jонлайн версия) так и появился, чтобы можно было проводить подобные опыты… Именно РАДИО-86РК с его ПДП идеально подходит для этого, но алгоритмически довольно нелегко было решить составление кода долгое время (и ОЗУ разрушать, и тело программы хранить, и чтобы сам процессор всякими POP PSW случайно не регенерировал разрушаемые ячейки)…
|
14 Mar 2021 04:49 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 863
|
Пока очищается область монитора, пройдёт немало времени, и ОЗУ может начать разрушаться, поэтому вызывается до этого. Второй раз вызывается, если нужно выйти в монитор, но не надо очищать область монитора. Хотя, в процессе очистки RAS тоже будет перебираться, поэтому может и не нужен первый вызов, но может быть нужно именно чтение.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
14 Mar 2021 11:50 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22606 Location: Silicon Valley
|
| | | | Lavr 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
|
14 Mar 2021 16:38 |
|
|
Paguo-86PK
Maniac
Joined: 12 Apr 2011 20:43 Posts: 267 Location: Tashkent
|
Нa сайте cxema.ru впервые узнал про это лет эдак 15 тому назад…
|
14 Mar 2021 17:43 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Вот я тоже сначала так подумал, не глядя в код, а потом посмотрел, что " второй раз, если нужно выйти в монитор, но не надо очищать область монитора" эту подпрограмму как раз-таки не вызывают: | | | | 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 ... | | | | |
Тут Дёмин прав: Тёплый вход в Монитор - WARM_BOOT - не вызывает эту подпрограмму...
_________________ iLavr
|
14 Mar 2021 21:33 |
|
|