PC-01 Lviv

It is currently 29 Mar 2024, 09:11

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00




Post new topic  Reply to topic  [ 6 posts ] 
Author Message
PostPosted: 24 Aug 2012, 15:20 
Offline

Joined: 21 Aug 2012, 22:30
Posts: 145
Так понимаю время выполнения команд в КР580ВМ80А идентично I8080.

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

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

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

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

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

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

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

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

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

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

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


Top
   
PostPosted: 24 Aug 2012, 15:34 
Offline
User avatar

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

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

_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
PostPosted: 25 Aug 2012, 14:51 
Offline

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

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


Top
   
PostPosted: 25 Aug 2012, 16:03 
Offline

Joined: 21 Aug 2012, 22:30
Posts: 145
Немного порылся не яйцефоруме.
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 пункта). Хотя доверять ему у меня нет оснований.


Top
   
PostPosted: 13 Oct 2012, 15:13 
Offline

Joined: 23 Aug 2012, 12:28
Posts: 123
Еще одно подтверждение того, что тактовая частота процессора в ПК-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.
Обсуждение скорости работы кода в ОЗУ и ПЗУ вынесено в отдельную тему.


Top
   
PostPosted: 11 Dec 2013, 05:52 
Offline
User avatar

Joined: 11 Aug 2008, 17:05
Posts: 1405
Location: Украина
Просматривая исходники 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


_________________
Carthago delenda est, Carthaginem delendam esse


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 6 posts ] 

Forum Games WEB Tape Loader Twitter RSS

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 7 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:
cron
Powered by phpBB® Forum Software © phpBB Limited