PC-01 Lviv
http://pc01.lviv.ua/forum/

ПК-02 "Львов"
http://pc01.lviv.ua/forum/viewtopic.php?f=2&t=43
Page 1 of 1

Author:  Kucher [ 02 Nov 2011, 19:57 ]
Post subject:  ПК-02 "Львов"

Quote:
Теперь в эмуляторе можно выбирать режим экрана (1x1, 3x2) и скорость (x2, x1)
Да, теперь явно видно разницу между ПК-01 и ПК-02: намного живее всё. В Circus играть - одно удовольствие. :)

Кстати говоря мне интересно остался ли у кого-нить из присутствующих ПК-02 и есть ли полноценные эмуляторы для него. Вдруг улыбнётся удача всё же прочитать старые дискеты.

upd.
Связанные темы "Upgrade ПК-01 "Львов", "Софт для ПК-02 "Львов", "Эмулятор ПК-02 "Львов".

Author:  liberation [ 03 Nov 2011, 01:42 ]
Post subject:  Re: ПК-02 "Львов"

Quote:
Кстати говоря мне интересно остался ли у кого-нить из присутствующих ПК-02 и есть ли полноценные эмуляторы для него. Вдруг улыбнётся удача всё же прочитать старые дискеты.
Остался. Последнее включение было весной 10-года, вроде бы все фурыкало как надо.

ImageImage
ImageImage

Эмулятор "Башкирия-2М" http://bashkiria-2m.narod.ru справляется с ПК-02 "Львов". Кстати, о нем тут проскальзывало как-то - http://lvovpc.ho.ua/forum/viewtopic.php?t=42.

Author:  Kucher [ 03 Nov 2011, 11:00 ]
Post subject: 

Угу, читал, но на картинке всё как-то кривенько выглядит. :)

Author:  liberation [ 03 Nov 2011, 11:24 ]
Post subject: 

Quote:
Угу, читал, но на картинке всё как-то кривенько выглядит. :)
Ну так и "Львов" далеко не Amiga или Mac. ;)

Author:  liberation [ 09 Jun 2012, 12:14 ]
Post subject:  Re: ПК-02 "Львов"

Выдержка из Вики, статья про процессор КР580ВМ80А, которую следует сохранить:
Quote:
КР580ВМ80А имеет 12 недокументированных команд (аналогично 8080). Опкоды #08, #10, #18, #20, #28, #30, #38 являются аналогами операции NOP; опкод #CB является аналогом JMP; опкоды #DD, #ED, #FD являются аналогами CALL; опкод #D9 является аналогом RET.

Author:  liberation [ 12 Jun 2012, 13:35 ]
Post subject:  Re: ПК-02 "Львов"

Отыскал на форуме "nedoPC" отличную статью А. Шевцова про различия i8080 и Z80, фрагмент из которой, посвященный именно программным различиям, с удовольствием приведу здесь:
Code:
            1.Несовместимости чисто программные. 
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
───────────────────────────────────────────────────────────────────────── 
1. Немногие знают о наличии у i8080, так называемых, дублирующих кодов. Если посмотреть на полную таблицу команд i8080(например в Радио N5,1987г.), то можно заметить, что в таблице есть пустые места. Т.е. имеются коды на которые процессор i8080, казалось бы, никак не должен реагировать. Однако i8080 все - таки реагирует на эти коды. Это вовсе не новые "секретные" команды неизвестные широкому кругу программистов, а просто данные коды дублируют некоторые стандартные команды. Вот все эти команды: 

 ┌───────────┬────────────────────────┬───────────────────┐ 
 │ Станд.код │      Дублир. код(ы)    │ Мнемоника (i8080) │ 
 ├───────────┼────────────────────────┼───────────────────┤ 
 │   00h     │10h,20h,30h,08h,18h,28h │        NOP        │ 
 │           │         38h            │                   │ 
 ├───────────┼────────────────────────┼───────────────────┤ 
 │  0C3h     │        0CBH            │        JMP        │ 
 ├───────────┼────────────────────────┼───────────────────┤ 
 │  0C9h     │        0D9h            │        RET        │ 
 ├───────────┼────────────────────────┼───────────────────┤ 
 │  0CDh     │    0DDh,0EDh,0FDh      │        CALL       │ 
 └───────────┴────────────────────────┴───────────────────┘ 

Такими кодами очень удобно пользоваться для защиты программ от "взлома", т.к. ни один дизассемблер их не воспринимает. Этим, кстати, очень активно в свое время занималась знаменитая фирма "SP580". Однако здесь есть 2 "огромных" минуса. Первый минус это то, что такие программы практически невозможно адаптировать под другую систему (например под RAMFOS). Второй минус остро ощутят на себе пользователи, которые установят Z80. У Z80 данные коды не являются дублерами, а означают совершенно другие, отсутствующие у i8080, команды. Вот, что означают "дублеры" у Z80: 



┌───────┬───────────────┬───────────────────────────────────┐ 
│  Код  │ Мнемоника Z80 │           Комментарий             │ 
├───────┼───────────────┼───────────────────────────────────┤ 
│ 10h   │  DJNZ  e      │ Относительный переход (+/-128max) │ 
│       │(2 байта-10h,e)│ B=B-1, при B=0  PC=PC+2           │ 
│       │               │        при B<>0 PC=PC+e           │ 
├───────┼───────────────┼───────────────────────────────────┤ 
│ 20h   │   JR  NZ,e    │           -- // --                │ 
│       │  (-- // --)   │       PC=PC+e, если Z=0           │ 
│       │               │       PC=PC+2, если Z=1           │ 
├───────┼───────────────┼───────────────────────────────────┤ 
│ 30h   │   JR  NC,e    │           -- // --                │ 
│       │  (-- // --)   │       PC=PC+e, если C=0           │ 
│       │               │       PC=PC+2, если C=1           │ 
├───────┼───────────────┼───────────────────────────────────┤ 
│ 08h   │  EX  AF,AF'   │ Обмен между дополнительными ре-   │ 
│       │   (1 байт)    │ гистрами -   AF<- ->AF'           │ 
├───────┼───────────────┼───────────────────────────────────┤ 
│ 18h   │    JR  e      │ Относительный переход (+/-128max) │ 
│       │  (2 байта)    │            PC=PC+e                │ 
├───────┼───────────────┼───────────────────────────────────┤ 
│ 28h   │   JR  Z,e     │           -- // --                │ 
│       │  (-- // --)   │       PC=PC+e, если Z=1           │ 
│       │               │       PC=PC+2, если Z=0           │ 
├───────┼───────────────┼───────────────────────────────────┤ 
│ 38h   │   JR  C,e     │           -- // --                │ 
│       │  (-- // --)   │       PC=PC+e, если C=1           │ 
│       │               │       PC=PC+2, если C=0           │ 
├───────┼───────────────┼───────────────────────────────────┤ 
│ 0D9h  │     EXX       │ Обмен между дополнительными ре-   │ 
│       │   (1 байт)    │ гистрами -     BC<- ->BC'         │ 
│       │               │                DE<- ->DE'         │ 
│       │               │                HL<- ->HL'         │ 
├───────┼───────────────┼───────────────────────────────────┤ 
│ 0CBh  │     ---       │ Открывает дополнительную таблицу  │ 
│       │               │ команд (могут быть команды до 4   │ 
│       │               │ байт обьемом)                     │ 
├───────┼───────────────┼───────────────────────────────────┤ 
│ 0DDh  │     ---       │           -- // --                │ 
├───────┼───────────────┼───────────────────────────────────┤ 
│ 0EDh  │     ---       │           -- // --                │ 
├───────┼───────────────┼───────────────────────────────────┤ 
│ 0FDh  │     ---       │           -- // --                │ 
└───────┴───────────────┴───────────────────────────────────┘ 

После установки Z80 я проверил все имеющиеся программы на работоспособность. Нашлась всего 1 программа, которая имела защиту от взлома с применением в загрузчике "дублеров". Этой программой оказалась Trs_MX.COM (одна из первых версий (V1.51) программы). Адаптация данной программы к Z80(она по прежнему работоспособна на i8080) не составила труда, т.к. "дублеров" оказалось немного. Последние 2-х файловые версии трассировщика печатных плат "дублеров" не содержат и полностью работоспособны на Z80. 
Я не советую увлекаться "туфтой", т.е. применением этих дурацких "дублеров". Те, кто сталкивался в свое время с программами фирмы SP580, наверняка помнят отличные системные программы, например, "The Last Word". Однако, практически все системные программы этой фирмы были "заражены" "дублерами". И из - за этого эти программы просто в буквальном смысле "умерли" даже для пользователей, работающих в RAMFOS с i8080. Хорошо, что SP580 не додумалась защитить "дублерами" свои игровые программы, перенесенные со Spectrum. 

────────────────────────────────────────────────────────────── 
2. Основная несовместимость i8080 с Z80 возникает из - за бита D2 регистра признаков или флагов. У i8080 данный разряд используется как флаг четности - P. При этом на установку P влияют одинаково все арифметические и логические команды, т.е. P=1 если после выполнения логической или арифметической операции число единиц в регистре четно(например - 11010100B). 
У Z80 разряд D2 используется как флаг четности/переполнения - P/V, т.е. в зависимости от типа команд флаг имеет различное назначение: 

══1. При арифметических операциях над числами со знаком он действует как флаг переполнения V. T. к. диапазон представления чисел со знаком от -128 до +127, то при операциях над ними возможен выход результата за эти пределы - переполнение. В этом случае флаг устанавливается в 1, сигнализируя об ошибочности результата. Логика установки флага V в 1 такова: 
   а) если был перенос из 6-го бита в 7-ой, и не было переноса из 7-го бита во флаг C. 
   б) не было переноса из 6-го бита в 7-ой, но есть перенос из 7-го бита во флаг C. 
  Примеры: 

  1.Сложение  +76 = 01001100 
             -114 = 10001110 
                    -------- 
     C=0            11011010 = -38 верно 
     V=0 

  2.Сложение  -1 = 11111111 
              -1 = 11111111 
                   -------- 
     C=1           11111110 = -2 верно 
     V=0 

  3.Сложение  +82 = 01010010 
              +94 = 01011110 
                    -------- 
    C=0             10110000 = -80 неверно! 
    V=1 

В последнем примере произошла установка флага V. Это означает, что ошибка должна быть программно учтена при анализе результата. 

══2. При выполнении логических операций, команд сдвига флаговый бит 2 действует как флаг четности P. Он устанавливается, когда регистр содержит четное количество единиц, и обнуляется при нечетном количестве. Т.е. здесь D2 работает также, как у i8080. 

Программы, написанные под i8080, очень редко используют бит D2. В основном это математические программы, например языки программирования(Basic и т.д.). Программы, написанные для CP/M-80, учитывают различия i8080 и Z80 и поэтому одинаково работают на обоих процессорах (исключение составляют программы специально написанные под Z80, т. е. использующие его дополнительные команды, например, TURBO PASCAL). 
При проверке работы программ на "Специалисте_MX" с Z80 выявилось несколько неправильно работающих - это Moni_Б2.COM и все версии Basic_MX.EXE. Для адаптации этих программ был применен простой способ, не нарушающий совместимости с i8080. Просто перед каждой командой, проверяющей бит D2, вставлялась логическая команда (конечно учитывалось влияние на другие флаги). Например: 

  1. DCR  A                     DCR  A 
     JPE  8D33h   --- >         ORA  A 
                                JPE  8D33h 

В приведенном примере работа велась над регистром А, поэтому для адаптации достаточно было вставить команду ORA A или ANA A. При такой адаптации необходимо учитывать влияние команды ORA A (ANA A) на флаги C и AC, если они в дальнейшем используются программой. 

───────────────────────────────────────────────────────────────────────── 
3. Последнее программное отличие i8080 от Z80 - это более широкое применение команды DAA у Z80. У CPU i8080 данная команда выполняет десятичную коррекцию только после выполнения операций сложения, а у Z80 эта команда работает корректно как после операций сложения, так и вычитания. 
Естественно данное программное отличие не влияет на работоспособность программ процессора i8080 при исполнении их на Z80. 
───────────────────────────────────────────────────────────────────────── 
p.s. Там еще интересные прения про авторское право детектед. :wink:

Author:  liberation [ 16 Jul 2012, 10:57 ]
Post subject:  Re: ПК-02 "Львов"

В файле history.txt, входящем в комплект поставки эмулятора "Башкирия-2М", наш друг b2m написал: "...добавил эмуляцию Львов ПК-02 (это такой гипотетический комп, существовавший как минимум в одном экземпляре)". Так вот, настало время подтвердить эту смелую гипотезу. Настало время легенды! На минувших выходных я вооружился фотоаппаратом и подготовил фотосессию своего ПК-02. :)

Замечание для знатоков и ценителей: каждая картинка является ссылкой на саму себя, но в лучшем разрешении (все лежит в нашем файловом архиве), так что скачивайте, рассматривайте.

Итак, общий вид платы.
Image

Крупный план модулей процессора Z80 и музыкального сопроцессора.
Image

Обратите внимание на суровые меры по борьбе с промышленным шпионажем!!! :D
Image

НГМД контроллер (вид с птичьего полета). Стильный витой кабель - выход на магнитофон от музыкального сопроцессора! :wink:
Image

НГМД контроллер (крупный план).
Image

И напоследок - привет, Денис!
Image

p.s. Про представленные доработки можно почитать в теме "Upgrade ПК-01 "Львов".

Author:  Zelya [ 16 Jul 2012, 11:14 ]
Post subject:  Re: ПК-02 "Львов"

liberation
Красота-то какая! Аж слезы на глаза наворачиваются от умиления. Не уж то все рабочее?!

Author:  liberation [ 16 Jul 2012, 11:51 ]
Post subject:  Re: ПК-02 "Львов"

Quote:
Красота-то какая! Аж слезы на глаза наворачиваются от умиления. Не уж то все рабочее?!
Сейчас трудно сказать! Не к чему подключить все это добро. Но реставрация железу нужна, слишком все пропиталось пылью, кое-что явно окислилось, судьба конденсаторов вообще неизвестна. Последнее включение было весной 2010. Тогда работало как часы. :D

Author:  Kucher [ 16 Jul 2012, 12:32 ]
Post subject:  Re: ПК-02 "Львов"

Да ничего ему не будет, это вам не PC! :)

По фото: надпись карандашом - моя. И подпись моя. Процессор + сопроцессор - стиль Димы, видимо таки это он монтировал.
Хотя могу ошибаться, может просто я "стиль" содрал. :)

Плата Z80 точно наша, Донецкая, Димка с Игорем их целую пачку на рынке заказывали.

Ножки платы которые паялись непосредственно в "материнку" делались из толстой медной проволоки, сгибались на конце и обоюдно пропаивались с обеих сторон, для крепости.
Ох и долгое это дело...
После каждого такого заказа я ещё долго канифоль из носа выковыривал. :)

Конденсаторы над микросхемами контроллера не электролитические, эти не высыхают. Припаяны к штатной схеме для увеличения времени сигнала, как щас помню - растягивают меандр (о какое слово всплыло), чтобы "встречающая" его микросхема успела "пережевать" сигнал.

Хорошее фото, приятно снова увидеть такое, спасибо.

Page 1 of 1 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/