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

User Tag List

Страница 41 из 54 ПерваяПервая ... 373839404142434445 ... ПоследняяПоследняя
Показано с 401 по 410 из 531

Тема: ZX Like Pascal

  1. #401

    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,311
    Спасибо Благодарностей отдано 
    96
    Спасибо Благодарностей получено 
    186
    Поблагодарили
    89 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Код:
    ATTR
    		ld a,(_ATTRY)
    		ld b,a
    		ld a,(_ATTRX)
    		ld c,a
    ; расчет адреса атрибутов знакоместа в DE, B-вертик.координата, C-гориз.координата
    			LD	A,B
    			RRCA
    			RRCA
    			RRCA
    			LD	L,A
    			AND	31
    			OR	88
    			LD	H,A
    			LD	A,L
    			AND	252
    			OR	C
    			LD	L,A
    			LD A,(_ATTRC)
    			LD (HL),A
    			RET
    Что сюда добавить, чтоб работала проверка _ATTRX / _ATTRY -> RET когда значения выходят за пределы экрана?

  2. #402

    Регистрация
    25.11.2015
    Адрес
    г. Москва
    Сообщений
    192
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    14 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    cp a,31/ret c/cp a,23/ret c

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

    ALKO(04.02.2020)

  3. #403

    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,311
    Спасибо Благодарностей отдано 
    96
    Спасибо Благодарностей получено 
    186
    Поблагодарили
    89 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Так будет работать?

    ld a,(_ATTRY)
    CP 24
    JR C, CONTINUE1
    RET

    CONTINUE1
    ld b,a
    ld a,(_ATTRX)
    CP 24
    JR C, CONTINUE2
    RET

    CONTINUE2
    ld c,a
    LD A,B
    RRCA
    RRCA
    RRCA
    LD L,A
    AND 31
    OR 88
    LD H,A
    LD A,L
    AND 252
    OR C
    LD L,A
    LD A,(_ATTRC)
    LD (HL),A
    RET
    - - - Добавлено - - -

    Цитата Сообщение от blackmirror Посмотреть сообщение
    cp a,31/ret c/cp a,23/ret c
    Оуу... даже так...

    Спасибо.

  4. #404

    Регистрация
    10.01.2010
    Адрес
    Смоленская обл.
    Сообщений
    556
    Спасибо Благодарностей отдано 
    187
    Спасибо Благодарностей получено 
    198
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ALKO Посмотреть сообщение
    ATTR
    ld a,(_ATTRY)
    ld b,a
    ld a,(_ATTRX)
    ld c,a
    Цитата Сообщение от blackmirror Посмотреть сообщение
    cp a,31/ret c/cp a,23/ret c
    Наверно всётаки nc и 32/24
    Код:
                    ld a,(_ATTRY)
                    cp 24
                   ret nc 
    		ld b,a
    		ld a,(_ATTRX)
                    cp 32
                   ret nc
    		ld c,a

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

    ALKO(04.02.2020)

  5. #405

    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,311
    Спасибо Благодарностей отдано 
    96
    Спасибо Благодарностей получено 
    186
    Поблагодарили
    89 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    АХТУНГ
    БАГРЕПОРТ!

    Возникла необходимость с копированием изображений.

    Набросал тестовую прогу на паскале (кстати, по какому адресу происходит WindowGet. То есть куда сохраняет?)
    Program EX4;
    var
    i: word;
    begin

    textbackground(4);
    textcolor(2);
    WindowSet(0,0,9,9);


    WindowGet;

    WindowSet(10,10,9,9);

    WindowPut;

    end.
    Так вот, полученный асм сурс закидываю в Эму Зэт Вин, но соответствующие процедурки в исходник не добавляются

  6. #406

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Проверил, всё работает. У тебя точно версия Паскаля 0.909?
    Я такой код вводил:
    Код:
    Program EX4;
    var
    	i,zwet: word;
    begin
    write('aaa');
    WindowSet(0,0,9,9);
    WindowGet;
    clrscr;
    write('нажмите любую клавишу');
    readln;
    clrscr;
    WindowSet(0,0,9,9);
    WindowPut;
    
    end.
    - - - Добавлено - - -

    Цитата Сообщение от ALKO Посмотреть сообщение
    Набросал тестовую прогу на паскале (кстати, по какому адресу происходит WindowGet. То есть куда сохраняет?)
    Твой код тоже нормально компилируется в версии 0.909.
    Изображение сохраняется в область для виртуального экрана. Так что, использовать виртуальный экран и WindowGet/Put в одной программе не рекомендуется.

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

  8. #407

    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,311
    Спасибо Благодарностей отдано 
    96
    Спасибо Благодарностей получено 
    186
    Поблагодарили
    89 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    У тебя точно версия Паскаля 0.909?
    Экзешник zxlikepascal0909
    Вроде он...

  9. #408

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да, всё правильно. libasm.lib надеюсь тоже родной от 0.909.
    Должно работать.

  10. #409

    Регистрация
    25.09.2009
    Адрес
    Одесса
    Сообщений
    2,311
    Спасибо Благодарностей отдано 
    96
    Спасибо Благодарностей получено 
    186
    Поблагодарили
    89 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    libasm.lib надеюсь тоже родной от 0.909.
    Вот и причина. Либа была от старого билда.

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

    По-дефолту оно копирует в 57344 ?

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

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

  11. #410

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,869
    Спасибо Благодарностей отдано 
    142
    Спасибо Благодарностей получено 
    110
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ты бы взял процедуру putimage из файла libasm.lib и немного скорректировал под свою задачу, а потом вставил бы в качестве ассемблерной вставки в свою паскалевскую программу. Процедура выводит прямоугольную область на экран. Формат там нужно реинжинирить.

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

    Цитата Сообщение от ALKO Посмотреть сообщение
    По-дефолту оно копирует в 57344 ?
    да

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

    Сейчас глянул процедуру putimage. Там всё просто. До вызова процедуры в ячейках col_window, row_window, width_window, height_window задается левый верхний столбец, левая верхняя строка, ширина и высота окна в знакоместах на экране, а также адрес addr_virt_screen, где лежит изображение. Процедура копирует изображение на экран.
    Формат изображения:
    все байты первой пиксельной строки
    все байты второй пиксельной строки
    ...
    все байты последней пиксельной строки
    все атрибуты для всех знакомест подряд от левого верхнего до правого нижнего (если есть)

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

    Т.е. изображение разбито не по знакоместам, а по пиксельным строкам
    Последний раз редактировалось Andrew771; 05.04.2020 в 21:32.

Страница 41 из 54 ПерваяПервая ... 373839404142434445 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. PASCAL + MACRO11 (УКНЦ-ДВК).
    от hobot в разделе ДВК, УКНЦ
    Ответов: 341
    Последнее: 15.01.2022, 17:30
  2. Turbo Pascal для msx/msx2
    от Оззя в разделе MSX
    Ответов: 4
    Последнее: 23.02.2020, 23:59
  3. в розыске дисковая версия Pascal.
    от goblinish в разделе Программирование
    Ответов: 18
    Последнее: 16.08.2011, 16:30
  4. Pascal
    от Andrew771 в разделе Программирование
    Ответов: 22
    Последнее: 24.05.2011, 21:20
  5. Скопировать/вставить из/в HiSoft Pascal в эмуляторе
    от kit в разделе Программирование
    Ответов: 1
    Последнее: 05.02.2010, 15:35

Ваши права

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