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

Тайминги ПК-01 и растактовка команд КР580ВМ80А.
http://pc01.lviv.ua/forum/viewtopic.php?f=2&t=182
Page 1 of 1

Author:  NeoSpectruman [ 24 Aug 2012, 15:20 ]
Post subject:  Тайминги ПК-01 и растактовка команд КР580ВМ80А.

Так понимаю время выполнения команд в КР580ВМ80А идентично I8080.

Имеются ли "дополнительные такты ожидания"?
Типа http://code.google.com/p/vector06cc/wik ... on_Timings

Имеется ли "медленная память"?

Имеются ли Wait-ы при обращении к портам?

Исполнение кода из видеопамяти? Торможение ЦП при этом?

При включении Видео памяти в адресное пространство ЦП, что по адресам 0000-3FFF?(На чтение) 00, FF, или зеркальное отражение 4000-7FFF?
Возможна ли туда запись(если зеркальное отражение).

Неполная дешифрация портов?

Частота ЦП 7-ми значное число?(знаю как у нас любят округлять)

Частота кадров?

Есть ли инфа сколько тактов в строке, сколько строк, сколько тактов во фрейме?

Нет ли ни какой возможности синхронизироваться с началом фрейма, (на подобии того как в РК-шках)? Хотя наверное нет.
Были ли доработки для этого?

UPD.
На ряд из этих вопросов найдены вполне конкретные ответы (см. ниже).

Author:  liberation [ 24 Aug 2012, 15:34 ]
Post subject:  Re: Тайминги ПК-01 и растактовка команд КР580ВМ80А.

Ого, какая солидная и толковая подборка вопросов! Попробую дать хотя бы один ответ, об остальном всем миром будем думать.
Quote:
При включении Видео памяти в адресное пространство ЦП, что по адресам 0000-3FFF?(На чтение) 00, FF, или зеркальное отражение 4000-7FFF?
Возможна ли туда запись(если зеркальное отражение).
При включении видеоОЗУ, согласно словам старожилов, адресное пространство 0000-3FFF транслировалось в область 8000-BFFFF. Была элементарная доработка, которая исправляла такое положение дел, рекомендую заглянуть в тему "Upgrade ПК-01 "Львов", пункт №5.
Quote:
Есть ли инфа сколько тактов в строке, сколько строк, сколько тактов во фрейме?
Загляните в тему "Запуск эмулятора ПК-01 "Львов" на Dingoo A320", там были высказаны кое-какие соображения по этому поводу.

Если что, то мы можем переслать Ваши вопросы непосредственно разработчику ПК-01 "Львов". Он захаживает на наш форум.

Author:  sadfsdfsdaf [ 25 Aug 2012, 14:51 ]
Post subject:  Re: Тайминги ПК-01 и растактовка команд КР580ВМ80А.

Quote:
При включении видеоОЗУ, согласно словам старожилов, адресное пространство 0000-3FFF транслировалось в область 8000-BFFFF
хгм, звучит несколько странно, скорее 8000 можно бы было получить по адресу 0000 .....
надо экспериментировать. я бы предположил, что эта область подключалась на ВНЕШ1 (там есть А0-А13).

to NeoSpectruman: порты точно декодировались не полностью (когда-то давно я сканнер для портов на бейсике писал), как минимум маска 0x13 (0x1F), но тоже желательно бы проверить. с таймингами сложнее, нужны тесты.... и осциллограф.

Author:  NeoSpectruman [ 25 Aug 2012, 16:03 ]
Post subject:  Re: Тайминги ПК-01 и растактовка команд КР580ВМ80А.

Немного порылся не яйцефоруме.
Quote:
b2m
Сравнил высоту звука записи с реального Львова и из эмулятора - мой выше, чем реальный. Значит должны быть такты ожидания. Придётся понизить частоту процессора, чтобы звук был похож на реальный. Примерно похоже при 2150KHz.

ivagor
скорее даже 2,222 Мгц (20/9), а то в схеме резонатор на 20 МГц (если я не перепутал), ГФ24 делит на 9. Я все не мог понять, как в итоге получается 2,5 МГц.

b2m
Про частоту написано в РП http://lvovpc.xost.ru/article.shtml?id=2
А по схеме 2,222МГц, если в перечне деталей не наврали частоту резонатора. Но тогда он должен был бы быть на 22500КГц.

ivagor
Уважаемые реальщики! Если не сложно, посмотрите маркировку кварца в вашем компе.

DDp
( Столько шума из-за... :)
20000кГц !!!
На 60 контакте разъёма X1 (сигнал Ф2TTL) ~2.2MHz.
На том же разъёме, никаких изменений на сигналах INTE, INTA, HLDA. Т.о. внутри компьютера процессор ничто не прерывает и не тормозит. (Впрочем, нечему - судя по схеме, и HOLD, и INT идут только на разъём X1)


DDp
Кстати, очень похоже, что у Львова развертка подобна Пентагону - 320 строк на фрейм, H=15625kHz, V=48.8Hz.
И в педовикии
Quote:
Комп'ютер використовував процесор КР580ВМ80А із частотою 2 МГц (пізніше 2,5 МГц).

Почтаково ПК-01 Львів постачався із окремим інтерпретатором мови Бейсик на касеті, пізніше його було внесено до ПЗП


Ими был реализован «приставочный» вариант ПК «Львов», когда изделие модифицировалось таким образом, что в него вставлялся картридж (!) с игрой
Текст с педивикии настораживает(1-е 2 пункта). Хотя доверять ему у меня нет оснований.

Author:  ivagor [ 13 Oct 2012, 15:13 ]
Post subject:  Re: Тайминги ПК-01 и растактовка команд КР580ВМ80А.

Еще одно подтверждение того, что тактовая частота процессора в ПК-01 2,2222 МГц - таблица нот из описания языка бейсик на стр. 15.
Взял ноту ля первой октавы, которая д.б. близка к 440 Гц - код частоты будет 49 (из Дополненной и откорректированной Таблицы 2).
При этом период подпрограммы DE98-DEBC составляет 5062 такта.
Длительность периода в секундах д.б. Tля=1/440=0,00227273
Соответственно ожидаемая длительность отдельного такта Tтакт=Tля/5062=448,98 нс
И тактовая частота, которая при такой длительности такта обеспечит ноту ля первой октавы частотой 440 Гц Fтакт=1/Tтакт=2227280 Гц, т.е. при подтверждаемой другими источниками частоте ПК-01 2,2222... МГц погрешность звучания будет очень небольшой.
Все вышеприведенное справедливо для выполнения команд из ПЗУ, по разным косвенным свидетельствам при обращении процессора к ОЗУ есть тормоза.

UPD.
Обсуждение скорости работы кода в ОЗУ и ПЗУ вынесено в отдельную тему.

Author:  liberation [ 11 Dec 2013, 05:52 ]
Post subject:  Re: Тайминги ПК-01 и растактовка команд КР580ВМ80А.

Просматривая исходники MESS, удалось найти ряд ТТХ (тактико-технических характеристик) ПК-01 "Львов", установить-угадать которые нашему творческому коллективу никак не удается уже второй год подряд. Трудно сказать, насколько они точны, но это уже хоть что-то конкретное. Надеюсь, еще найдется толковый чел, который сможет их уточнить. В сл. году, к примеру. Хотя бы...
Code:
Lviv technical information
==========================

CPU:
----
        8080 2.5MHz (2MHz in first machines)

Memory map:
-----------
        start-up map (cleared by the first I/O write operation done by the CPU):
        0000-3fff ROM mirror #1
        4000-7fff ROM mirror #2
        8000-bfff ROM mirror #3
        c000-ffff ROM

        normal map with video RAM off:
        0000-3fff RAM
        4000-7fff RAM
        8000-bfff RAM
        c000-ffff ROM

        normal map with video RAM on:
        0000-3fff mirrors 8000-bfff
        4000-7fff video RAM
        8000-bfff RAM
        c000-ffff ROM

Interrupts:
-----------
        No interrupts in Lviv.

Ports:
------
        Only A4-A5 are decoded. A2-A3 is ignored in the console, but could be used by extension
        devices.

        C0-C3        8255 PPI
                Port A: extension slot output, printer data
                        bits 0-4 joystick scanner output
                Port B: palette control, extension slot input or output
                        sound on/off
                        bit 7 sound on/off
                        bits 0-6 palette select
                Port C: memory page changing, tape input and output,
                        printer control, sound
                        bits 0-3 extension slot input
                        bits 4-7 extension slot output
                        bit 7: joystick scanner input
                        bit 6: printer control AC/busy
                        bit 5: not used
                        bit 4: tape in
                        bit 3: not used
                        bit 2: printer control SC/strobe
                        bit 1: memory paging, 0 - video ram, 1 - ram
                        bit 0: tape out, sound

        D0-D3        8255 PPI
                Port A:
                        keyboard scaning
                Port B:
                        keyboard reading
                Port C:
                        keyboard scaning/reading

Keyboard:
---------
        Reset - connected to CPU reset line

                                 Port D0                                 
        --------T-------T-------T-------T-------T-------T-------T-------ª
        | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
        +-------+-------+-------+-------+-------+-------+-------+-------+---ª
        | Shift | ; | | CLS | Space | R | G | 6 | 0 |
        +-------+-------+-------+-------+-------+-------+-------+-------+---+
        | Q |Russian| | (G) | B | O | [ | 7 | 1 |
        +-------+-------+-------+-------+-------+-------+-------+-------+---+
        | ^ | Key | J | (B) | @ | L | ] | 8 | 2 |
        +-------+-------+-------+-------+-------+-------+-------+-------+---+
        | X | P | N | 5 | Alt | Del | Enter | Ready | 3 |
        +-------+-------+-------+-------+-------+-------+-------+-------+---+ Port D1
        | T | A | E | 4 | _ | . | Run | Tab | 4 |
        +-------+-------+-------+-------+-------+-------+-------+-------+---+
        | I | W | K | 3 | Latin | \ | : | - | 5 |
        +-------+-------+-------+-------+-------+-------+-------+-------+---+
        | M | Y | U | 2 | / | V | H | 0 | 6 |
        +-------+-------+-------+-------+-------+-------+-------+-------+---+
        | S | F | C | 1 | , | D | Z | 9 | 7 |
        L-------+-------+-------+-------+-------+-------+-------+-------+----

                 Port D2
        --------T-------T-------T-------ª
        | 3 | 2 | 1 | 0 |
        +-------+-------+-------+-------+-----ª
        | Right | Home |ScrPrn |PrnLock| 4 |
        +-------+-------+-------+-------+-----+
        | Up | F5 | F0 |ScrLock| 5 |
        +-------+-------+-------+-------+-----+ Port D2
        | Left | F4 | F1 | Sound | 6 |
        +-------+-------+-------+-------+-----+
        | Down | F3 | F2 | (R) | 7 |
        L-------+-------+-------+-------+------

        Notes:
                CLS        - clear screen
                (G)        - clear screen with border and set COLOR 0,0,0
                (B)        - clear screen with border and set COLOR 1,0,6
                (R)        - clear screen with border and set COLOR 0,7,3
                Sound        - sound on/off
                ScrLock        - screen lock
                PrnLock        - printer on/off
                ScrPrn        - screen and printer output mode
                Russian        - russian keyboard mode
                Latin        - latin keyboard mode
                Right        - cursor key
                Up        - cursor key
                Left        - cursor key
                Down        - cursor key
                Keyword        - BASIC keyword


Video:
-----
        Screen resolution is 256x256 pixels. 4 colors at once are possible,
        but there is a posiibility of palette change. Bits 0..6 of port 0xc1
        are used for palette setting.

        One byte of video-RAM sets 4 pixels. Colors of pixels are corrected
        by current palette. Each bits combination (2 bits sets one pixel on
        the display), corrected with palette register, sets REAL pixel color.

        PBx - bit of port 0xC1 numbered x
        R,G,B - output color components
        == - "is equal"
        ! - inversion

        00 R = PB3 == PB4; G = PB5; B = PB2 == PB6;
        01 R = PB4; G = !PB5; B = PB6;
        10 R = PB0 == PB4; G = PB5; B = !PB6;
        11 R = !PB4; G = PB1 == PB5; B = PB6;

        Bit combinations are result of concatenation of approprate bits of
        high and low byte halfs.

        Example:
        ~~~~~~~~

        Some byte of video RAM: 1101 0001
        Value of port 0xC1: x000 1110

        1101
        0001
        ----
        10 10 00 11

        1st pixel (10): R = 1; G = 0; B = 1;
        2nd pixel (10): R = 1; G = 0; B = 1;
        3rd pixel (00): R = 0; G = 0; B = 0;
        4th pixel (11): R = 1; G = 0; B = 0;


Sound:
------
        Buzzer connected to port 0xc2 (bit 0).
        Bit 7 of port 0xc1 - enable/disable speaker.


Timings:
--------

        The CPU timing is controlled by a KR580GF24 (Sovietic copy of i8224) connected to a 18MHz(?)
        oscillator. CPU frequency must be 18MHz/9 = 2MHz.

        Memory timing uses a 8-phase clock, derived from a 20MHz(?) video clock (called VCLK0 here:
        in the schematics, it comes from pin 6 of V8, and it is labelled "0'" in the video clock bus).
        This clock is divided by G7, G6 and D5 to generate the signals we call VCLK1-VCLK11. The memory
        clock phases Phi0-Phi7 are generated in D7, whereas PHI'14 and PHI'15 are generated in D8.

        When the CPU accesses RAM, wait states are inserted until the RAM transfer is complete.

        CPU clock: 18MHz/9 = 2MHz
        memory cycle time: 20MHz/8 = 2.5MHz
        CPU memory access time: (min) approx. 9/20MHz = 450ns
         (max) approx. 25/20MHz = 1250ns
        pixel clock: 20MHz/4 = 5MHz
        screen size: 256*256
        HBL: 64 pixel clock cycles
        VBL: 64 lines
        horizontal frequency: 5MHZ/(256+64) = 15.625kHz
        vertical frequency: 15.625kHz/(256+64) = 48.83Hz

                         |<--------VIDEO WINDOW--------->|<----------CPU WINDOW--------->|<--
                        _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
        VCLK0         |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |_| |
                        _ ___ ___ ___ ___ ___ ___ ___ ___ ___
        VCLK1         |___| |___| |___| |___| |___| |___| |___| |___| |___| |
                        _ _______ _______ _______ _______
        VCLK2         |_______| |_______| |_______| |_______| |______|
                        _ _______________ _______________
        VCLK3         |_______________| |_______________| |_______
                        _ _______________________________
        VCLK4         |_______________________________| |_______

                         _ _ _
        PHI0        _| |_____________________________| |_____________________________| |_____
                         _ _ _
        PHI1        _____| |_____________________________| |_____________________________| |_
                         _ _
        PHI2        _________| |_____________________________| |_____________________________
                         _ _
        PHI3        _____________| |_____________________________| |_________________________
                         _ _
        PHI4        _________________| |_____________________________| |_____________________
                         _ _
        PHI5        _____________________| |_____________________________| |_________________
                         _ _
        PHI6        _________________________| |_____________________________| |_____________
                         _ _
        PHI7        _____________________________| |_____________________________| |_________
                         _
        PHI'14        _________________________________________________________| |_____________
                         _
        PHI'15        _____________________________________________________________| |_________
                        __________ __________________________________________________
        RAS*         \___________/ \_a_________/
                        ______________ __________________________________________
        CAS*         \_______________/ \_a_____________/
                        _________________________________________________________________________
        WR*                 \_b_________////////
                        _________________________________________________________________________
        WRM*        \\\\\\\\\\\\\\\\\\\\\\\\\\_b__________________________________///////////
_________________________________________________________________________
RDM* \\\\\\\\\\\\\\\\\\\\\\\\\\_c __________________________________///////////
_________________________________________________________________________
        RA                \\\\\\\\\\\\\\\\\\\\\\\\\\_a__________________________________/

        DRAM
        ADDRESS        video row /\ video column /XXX\CPU row (a)/\ CPU column (a) /\ video row

        a: only if the CPU is requesting a RAM read/write
        b: only if the CPU is requesting a RAM write
        c: only if the CPU is requesting a RAM read


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