Важная информация

User Tag List

Страница 1 из 8 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 77

Тема: Изучая акселераторы Пентево

  1. #1
    Veteran Аватар для Hacker VBI
    Регистрация
    05.03.2013
    Адрес
    г. Канев, Украина
    Сообщений
    1,596
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    Lightbulb Изучая акселераторы Пентево

    Итак, ТС конфа.
    Начал разбор платформы соотечественника, сейчас в самом начале пути.
    Хочу поделится мыслями. Дополнения крайне приветствуются.

    Система программирования под ТС непривычна в первую очередь тем, что мы, неожиданно, к стандартному набору синклеровской обвязки имеем дополнительные акселераторы. Все акселераторы управляются программированием портов #xxAF, и в зависимости от полученных данных выполняют разные действия.

    Итак, что можем?

    Акселераторы предназначены для управления расширенной памятью, выводом графики, перебросом данных (dma), + имеем расширенную систему прерываний, которая может отрабатывать как стандартная (фреймовая, 50гц) и дополнительная строчная - можно вызывать прерывание каждую строку отображения.

    Память имеет возможность отображаться во все доступные зоны по 16 к - с адресов 0, 4000, 8000 и с000. всего получаем 256 страниц по 16к.
    для включения страницы в нужное место памяти - используем порты:
    PAGE0 equ $10AF - страница расположена с адреса 0
    PAGE1 equ $11AF - с #4000
    PAGE2 equ $12AF - с #8000
    PAGE3 equ $13AF - с #с000

    Графика, кроме стандартного 256*192 имеет ещё несколько режимов, связанных с цветностью на точку. все цвета, включая цвет бордюра (бордюров имеем два - стандартный #fe и 256-цветный палитровый #0FAF), завязаны на палитру из 256 цветов. Стандартно используется дефолтная палитра, и для использования других цветов мы можем задать свои.
    для этого нужно передать набор цветов железу (акселератору) путём указания на адрес данных самой палитры, для акселератора.
    сразу после этого все цвета экрана будут отображаться из обновлённых данных палитры.
    Вся графика экрана в дополнительных режимах отображается в памяти страниц как окно просмотра. тут стоит добавить, что "Видеопамять представляет собой битмап размеров 512x512 пикселей", соответственно для режима 320х200 у нас к каждой строке есть дополнительно неотображаемых 512-320=192 точки.
    Плюс, мы можем указать, где конкретно в памяти находится наш экран - VPage

    Акселератор позволяет управлять этим окном вывода. для этого стоит прописать в порты GXOffs и GYOffs положение окна в памяти - и оп, экран сместился.
    Кроме этого "стандартного" экрана мы имеем ещё несколько плоскостей, предназначенных для вывода на экран. Здесь я ещё толком не разобрался, но вижу подобный подход - T0XOffs, T0YOffs - икс и игрек положения для нулевого тайлового экрана, и T1XOffs / T1YOffs для первого.
    Кроме этого, акселератор позволяет выводить ещё и спрайты. тут я тоже ещё лох, но уже вижу, что спрайты могут иметь Х и Y на экране и иметь размер от 8 до 64 пикселей, выводятся аппаратно, могут быть перевёрнуты по Х или Y.
    про дма ничего не скажу, лох ваще ))

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

    Довольно непривычно поначалу, но возможностей очень много, и процессор в момент отработки действий акселератора свободен.
    Стоит использовать

    Один момент. Тема техническая а не холиварная. Сразу прошу - различных сравнений не нужно. Нужны примеры кода / собственные мысли как это всё использовать.

    Юзаем цветастую графику:
    Продолжу примерами:

    давайте переключим экран в графику 320х200, 256 цветов.
    Код:
    VPAGE           equ $01AF
    LD	BC,VPAGE      ; Указываем системе, что видеопамять начинается с #20
    LD	A,#20         ; Номер банки
    OUT	(C),A
    что происходит? теперь система знает, что экран начинается в 32й банке. и продолжается дальше - 33..36, и часть 37го банка памяти по 16к. Начало памяти - #c000, на строчку - 320 байтов, ещё 192 запаса.
    следующая строка - #c200

    Код:
    VCONFIG         equ $00AF
    		LD	BC,VCONFIG    ; Включаем видеорежим: %10-320x240, %001-16 цветов %01 – 320x200
    		LD	A,%01000010
    		OUT	(C),A
    режим включён, на экране цветной бардак - в памяти хз чо)
    что-бы получить все доступные цвета, их нужно указать системе:
    Код:
    LOAD_PAL	LD  A,%00010000   ; Включаем маппинг по адресу #0000
    		LD  BC,FMADDR
    		OUT (C),A
    
    		LD  HL,ZXPAL      ; Перебрасываем данные 
    		LD  DE,#0000
    		ld bc,#200
    		ldir
    
    		XOR  A            ; Отключаем маппинг
    		LD  BC,FMADDR
    		OUT (C),A
    		RET
    В данном случае маппинг - это место в памяти, где лежит палитра. ZXPAL - это метка в коде типа include "pollitra.bin". Можно взять готовую палитру из твоей картинки.
    давай сконвертим картинку в формат tga и скормим конвертеру, и получим на выходе два файла - файло с точками, файло с уже подготовленной палитрой.

    после выполнения кода весь экран резко окрашен в цвета палитры. Кроме бордюра
    Красим бордюр в цвета палитры, в регистре а - номер цвета из палитры.
    Код:
    BORDER          equ $0FAF
    		ld bc,BORDER
    		ld a,128
    		out (c),a
    include со всеми equ для портов получаем здесь
    Последний раз редактировалось Hacker VBI; 03.05.2014 в 19:59.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,123
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hacker VBI Посмотреть сообщение
    про дма ничего не скажу, лох ваще
    лучше бы сказал, так даже доступнее

  4. #3
    Veteran Аватар для Hacker VBI
    Регистрация
    05.03.2013
    Адрес
    г. Канев, Украина
    Сообщений
    1,596
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    denpopov, по мере изучения бу делится.

  5. #4
    Veteran Аватар для daniel
    Регистрация
    31.10.2005
    Адрес
    Кемерово
    Сообщений
    1,384
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    11 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я так понимаю даже использую басик можно руля портами получать видеоэффекты.

    Hacker VBI, спасибо что начал эту тему, очень интересно! Продалжай.

  6. #5
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,123
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от daniel Посмотреть сообщение
    Я так понимаю даже использую басик можно руля портами получать видеоэффекты.
    а стоит ли?

  7. #6
    Veteran Аватар для daniel
    Регистрация
    31.10.2005
    Адрес
    Кемерово
    Сообщений
    1,384
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    11 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от denpopov Посмотреть сообщение
    а стоит ли?
    Интересно же . Опять же можно не уметь кодить и хорошо рисовать и быть дизигнером.

  8. #7
    Veteran Аватар для Hacker VBI
    Регистрация
    05.03.2013
    Адрес
    г. Канев, Украина
    Сообщений
    1,596
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    daniel, насчёт прямого бейсика не уверен, довольно сложно будет юзать доп.графику. но всё-же.
    добавил примеры переключения в режим.

  9. #8
    Veteran
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    1,979
    Спасибо Благодарностей отдано 
    69
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    99 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А как обстоят дела с этой платформой у буржуев? Сколько вообще железа её поддерживает?

  10. #9
    Banned
    Регистрация
    12.02.2014
    Адрес
    г. Арзамас
    Сообщений
    6,123
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    До тайлов ты еще не добрался?

  11. #10
    Veteran Аватар для Hacker VBI
    Регистрация
    05.03.2013
    Адрес
    г. Канев, Украина
    Сообщений
    1,596
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    denpopov, ещё в процессе, времени не так много как хотелось-бы потратить)
    drbars, признанный лидер сейчас - это Ева. Вот у ерза она есть

Страница 1 из 8 12345 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Акселераторы для amiga600
    от easy_john в разделе Amiga
    Ответов: 133
    Последнее: 25.07.2014, 10:11

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •