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

User Tag List

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 26

Тема: Программирование Турбо 2+ в режиме 320x200x16

  1. #1
    Master
    Регистрация
    17.08.2013
    Адрес
    г. Москва
    Сообщений
    818
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Программирование Турбо 2+ в режиме 320x200x16

    Может быть есть какие-то куски примеров кода как инициализировать графический режим АТМки 320x200x16, как установить палитру, как нарисовать точку или что-то вроде того (или исходники какие-нибудь)? И ещё софт (редактор, компилятор) если порекомендуете, был бы рад. Хоть TASiS, хоть TR-DOS, вообще не важно.

    Вообще непонятно с чего начать. Курить книжку по АТМке пытался, там ни черта непонятно. Дизассемблировать прошу не отправлять)

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

  3. #2
    Moderator Аватар для Максагор
    Регистрация
    16.01.2005
    Адрес
    Москва
    Сообщений
    1,713
    Спасибо Благодарностей отдано 
    23
    Спасибо Благодарностей получено 
    68
    Поблагодарили
    23 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от norduk Посмотреть сообщение
    Может быть есть какие-то куски примеров кода как инициализировать графический режим АТМки 320x200x16, как установить палитру, как нарисовать точку или что-то вроде того (или исходники какие-нибудь)?
    Ну, давай начнем просто с включения режима 320х200 (остальное как-нибудь в следующий раз):

    Код:
    ;включение графического режима 320х200 в ATM-turbo 2+ из обычной конфигурации TR-DOS:
    
    		LD A,%10101000	;биты 4-7 обязательны именно в таком 
    						;виде, бит 3=1 – турбо включено
    						;биты 0-2 код экрана - %000 – режим 320x200
    						;соответственно %10100000 тоже самое, но с 
    						;выключенной турбой, а %10101011 – ZX-экран
    		LD BC,retadr		;адрес возврата из TR-DOS
    		PUSH BC			;на стек
    		LD BC, #2A53		;адрес подпрограммы в TR-DOS с командой OUT (C),A:RET
    		PUSH BC			;на стек
    		LD BC, #FF77		;скрытый системный порт ATM
    		JP # 3D2F		;переходим в TR-DOS для доступа к скрытому порту
    retadr		…			;здесь продолжается программа пользователя
    
    
    ;включение графического режима 320х200 в ATM-turbo 2+ из ОС TASiS:
    
    		XOR A			;задание режима системному вызову на получение
    		INC A			; в HL’ адрес спецблока системных переменных OS TASiS
    		LD C,#79			;задаем номер системного вызова(рестарта) $PAL
    		RST #10			;получаем их адрес
    		EXX
    		PUSH HL
    		POP IX			;перекидываем адрес блока в индексный регистр
    		LD A, %10101011	;задаем экран 320х200 (значение байта точно как и выше)
    		LD (IX+55),A		;ставим номер экрана в «экранную» переменную
    		XOR A			;режим «восстановления» для следующего рестарта
    		LD BC,#007B		;рестарт #7B $set_pg (в регистре B один из режимов работы)
    		RST #10			;меняем экран
    		…				;продолжение программы пользователя
    
    P.S. В этом примере изменится экран только в программе пользователя, а при выходе из нее в систему
    восстановится «системный» экран (сейчас по умолчанию текстовый). Чтобы поменять системный экран,
    используйте (IX+54).
    Последний раз редактировалось Максагор; 07.09.2019 в 01:57.
    Максагор, NedoPC group
    ПК ATM-turbo 2+ 1024Kb RAM, 1,7Gb HDD, CD-ROM, Turbo FM, GS-512
    [ZX rulezzz 4reva!!!]
    http://atmturbo.nedopc.com
    http://vk.com/atmturbo
    http://maksagor.livejournal.com
    http://moskprf.ru
    [СССР][Коммунизм][КПРФ] ну [ZX], естественно...

  4. Этот пользователь поблагодарил Максагор за это полезное сообщение:

    norduk (07.09.2019)

  5. #3
    Master
    Регистрация
    17.08.2013
    Адрес
    г. Москва
    Сообщений
    818
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Максагор Посмотреть сообщение
    Ну, давай начнем просто с включения режима 320х200
    Так. Решил попробовать. Скачал SJAsm с редактором вот отсюда, взял где-то в ютубе пример простейшей программки

    Скрытый текст



    device atmturbo512
    org 30000

    TVFL equ 5C3Ch

    start:
    xor a
    ld(TVFL),a
    ld a,'*'
    rst 16
    ret

    rep:
    jp rep
    end

    savesna "test.sna",start
    [свернуть]


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

    (device atmturbo512 - это, как я понимаю, указание компилятору под какую адресацию генерировать .sna)

    И вот с чем столкнулся. Если я указываю device zxspectrum48, то генерируемый .sna в эмуляторе, который прилагается в данном пакете запускается, а если выбираю нужный мне atmturbo512, то результат не работает (как, кстати и при указании zxspectrum128).

    Я понимаю, что в АТМке (как и в 128 машине) адресация более сложная и, тем не менее, непонятно, почему простейшая программа не запускается в данном пакете.

    Что я делаю не так?

    И есть ли какой-нибудь настроенный пакет для кросс-разработки именно под АТМ? А-то, судя по всему, эмулятор Speccy, который запускает SJAsm из данного пакета режимы АТМки не понимает.

  6. #4
    Master
    Регистрация
    17.08.2013
    Адрес
    г. Москва
    Сообщений
    818
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ну и, вообще, было бы круто сделать сборку пакета для кросс-разработки и разместить на сайте. UnrealSpeccy умеет из командной строки цеплять бинарник и запускать сразу? Ищу, пока не вижу такой возможности...

  7. #5
    Guru Аватар для NEO SPECTRUMAN
    Регистрация
    22.05.2011
    Адрес
    Дзержинск
    Сообщений
    3,069
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    20
    Поблагодарили
    16 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от norduk Посмотреть сообщение
    Что я делаю не так?
    1. зачем то юзаешь процедуры ПЗУ-шки
    когда нормальные люди так обычно не делают

    2. sna врятли поддерживает 512к АТМ-ки
    да и вообще есть ли хоть какой то формат снапшотов поддерживающих больше 128?

    3. ну и скорей всего проблема в не инициализированных системных переменных
    (по моему в sjasm-е есть такоя)
    и выходит она из пункта 1

    4. после того ret-a произойдет возврат в бейсик или в некуда
    до jp rep проц не дойдет



    лучше для начала
    попикай бипером
    а потом лезь в экран

    - - - Добавлено - - -

    у себя нормально скомпилировал и запустил
    Код:
    	device zxspectrum128
    	org 30000
    
    TVFL equ 5C3Ch
    
    start:
    	xor a
    	ld (TVFL),a
    	ld a,'*'
    	rst 16
    	ret
    
    rep:
    	jp rep
    ;	end
    
    	savesna "test.sna",start
    - - - Добавлено - - -

    сейчас я в основном пользуюсь z00m-овской веткой сджасма
    https://github.com/z00m128/sjasmplus/releases
    правда на нее усердно ругается антивирусник

    - - - Добавлено - - -

    Цитата Сообщение от norduk Посмотреть сообщение
    UnrealSpeccy умеет из командной строки цеплять бинарник и запускать сразу?
    бинарник не знаю
    а sna вполне запускает

    например тем же батником что и компилить сорец
    Код:
    sjasmplus test.asm
    "Q:\SomeFolders\us\unreal.exe" test.sna
    Последний раз редактировалось NEO SPECTRUMAN; 08.09.2019 в 02:30.

  8. Этот пользователь поблагодарил NEO SPECTRUMAN за это полезное сообщение:

    norduk (08.09.2019)

  9. #6
    Master
    Регистрация
    17.08.2013
    Адрес
    г. Москва
    Сообщений
    818
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Результат пока такой: https://www.screencast.com/t/yFvZikJua
    Анрил настроен как Турбо 2+. Какие системные переменные и как нужно инициализировать для того, чтобы эта же программа заработала на Турбе?

    - - - Добавлено - - -

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    лучше для начала
    попикай бипером
    а потом лезь в экран
    Задача инициализировать экран АТМ и в нём порисовать. Бипер не требуется.

  10. #7
    Master
    Регистрация
    17.08.2013
    Адрес
    г. Москва
    Сообщений
    818
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Так.
    1) SJAsm умеет генерить бинарник и класть в сразу в .trd, что значительно облегчило запуск программы в UnrealSpeccy
    2) Включение режима АТМ 320x200 в эмуляторе отработало, появились характерные цветные полоски.

    Скрытый текст


    device atmturbo512
    org 25000

    start:
    LD A,%10101000
    LD BC, #2A53
    PUSH BC
    LD BC, #FF77
    JP #3D2F

    rep:
    jp rep
    end

    emptytrd "test.trd"
    savetrd "test.trd","1.C",25000,$1000;
    [свернуть]


    Открытые вопросы:
    1) Как очистить экран? Из каких кусков (страниц), вообще, состоит данный режим АТМ? И где они лежат и как к ним обращаться? (Максагор?)
    2) Как автоматом создать .trd и закинуть туда бинарник я уже придумал, остаётся найти решение с каким-нибудь универсальным бутом, который появлялся бы внутри свежесозданного .trd и запускал программку, которую туда положил компилятор.

  11. #8
    Guru Аватар для goodboy
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    11,020
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    31 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от norduk Посмотреть сообщение
    Как автоматом создать .trd и закинуть туда бинарник я уже придумал
    бинарник можно загрузить и через отладчик (находясь в нём alt+r)

  12. Этот пользователь поблагодарил goodboy за это полезное сообщение:

    norduk (08.09.2019)

  13. #9
    Master
    Регистрация
    17.08.2013
    Адрес
    г. Москва
    Сообщений
    818
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    бинарник можно загрузить и через отладчик (находясь в нём alt+r)
    Ага, вижу, спасибо.
    Только смысл в том, чтобы править в редакторе, жать на компайл, ран и получать запущенный эмулятор с программой. В крайнем случае, запускать батник Unreal Speccy руками. Чего я практически добился. Только непонятно в каком формате у UnrealSpeccy в сборке с сайта Максагора лежит boot6.$b. Это бут, который эмулятор автоматом подкладывает в .trd, если там бута нет. Вместо него хочу запихать свой басик-файл для запуска поделки, которая прилетает из SJAsm'а.

    - - - Добавлено - - -

    Кажется он в формате hobeta.

  14. #10
    Guru Аватар для goodboy
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    11,020
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    49
    Поблагодарили
    31 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    как вариант
    " unreal.exe prog.$B prog.$C <- будут помещены на один диск"
    и в настройках можно выбрать имя для программы которая будет boot`ом
    "BOOT=name.$b"

Страница 1 из 3 123 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Опознать дисковод 5.25. Будет ли он работать в режиме DS/DD?
    от gushin в разделе Внешние накопители
    Ответов: 10
    Последнее: 01.12.2017, 10:22
  2. Ответов: 17
    Последнее: 05.10.2012, 19:11
  3. Работа NemoBus устройств в TURBO режиме
    от Black_Cat в разделе Unsorted
    Ответов: 4
    Последнее: 06.07.2011, 07:33
  4. Глюк в режиме 512 точек
    от tki в разделе Вектор
    Ответов: 13
    Последнее: 31.01.2011, 21:47
  5. Муз. сопроцессор в турбо-режиме
    от KALDYH в разделе Звук
    Ответов: 9
    Последнее: 20.01.2010, 14:57

Ваши права

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