User Tag List

Страница 3 из 109 ПерваяПервая 1234567 ... ПоследняяПоследняя
Показано с 21 по 30 из 1128

Тема: ЭТЮДЫ

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,390
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от 0xDEAD Посмотреть сообщение
    sub x+1
    adc a, x
    При этом
    1. Если исходно Aисх>x, то на выходе A=Aисх-1
    2. Если исходно x>=Aисх>=0, то на выходе A=Aисх

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

  3. #2

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,390
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    38 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от 0xDEAD Посмотреть сообщение
    К этому:
    Код:

    add a,-75
    sbc a,-1-75

    претензий нет.
    Тут похожая ситуация:
    1. Если исходно Aисх<x (в примере x=75), то на выходе A=Aисх+1
    2. Если исходно FF>=Aисх>=x, то на выходе A=Aисх

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

    Цитата Сообщение от 0xDEAD Посмотреть сообщение
    оно так не работает, как написано.
    Автор того поста не упомянул один момент - чтобы эти конструкции работали, надо чтобы исходное значение было "корректным" (>=x в случае декремента и <=x в случае инкремента).

  4. #3

    Регистрация
    27.11.2008
    Адрес
    Красноярск
    Сообщений
    747
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Смотрел. Темы 2005, 06г Так же оставленны без внимания.
    А sbc не каждый профи подумает таким образом использовать CY, а новички тем более.
    Может начнем с процедуры вывода точки с использованием таблицы? Вроде была такая (Старых в голове).

    Добавлено через 8 часов 10 минут
    На входе B-y, C-x + 1024 таблица
    LD L,C
    LD H,ТАБЛ/256
    LD A,(HL)
    INC H
    LD D,(HL)
    INC H
    LD L,C
    ADD A,(HL)
    LD E,A
    INC H
    LD A,(DE)
    LD OR (HL)
    LD (DE),A

    Добавлено через 8 часов 11 минут
    Кто быстрее?
    Последний раз редактировалось GM BIT; 13.12.2008 в 19:49. Причина: Добавлено сообщение

  5. #4

    Регистрация
    20.01.2005
    Адрес
    Россия, Вологда
    Сообщений
    957
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GriV Посмотреть сообщение
    а можно вот так аккуратно:
    sub 23
    adc a,0
    Поправлю малость.
    sub X
    adc a,X-1

    Где X - число, меньше которого уменьшать аккумулятор нельзя.
    axor/Perspective
    http://abzac.retropc.ru/

  6. #5

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Процедура деления 16/8 by Andrew Strikes Code

    Вход: HL - делимое, A - делитель
    Выход: HL - частное, A - остаток

    DIV_21:
    NEG
    LD C,A
    LD B,#11
    XOR A
    DIV210:
    ADC A,A
    ADD A,C
    JR C,DIV211
    SUB C
    OR A
    DIV211:
    ADC HL,HL
    DJNZ DIV210
    RET

  7. #6

    Регистрация
    27.11.2008
    Адрес
    Красноярск
    Сообщений
    747
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А кто подскажет.
    просто:
    EI
    HALT

    Добавлено через 12 минут
    Неподумал.
    Стабилизация эффектов на бордюре.
    Если сделать
    ORG 25000
    EI
    LD C,254
    LD H,0
    LD L,7
    L1 HALT
    LD DE,2000 : маленько задержим
    L2 DEC DE
    LD A,D
    OR E
    JR C,L2
    OUT (C),L
    OUT (C),H
    LD A,127
    IN A ,(254)
    RRA
    JR C,L1
    RET
    Почему эта полосочка на бодюре не стоит на месте а дергается, может IM 2 или как? Еще жмешь на клаву что-то меняется.
    Помогите (раньше делал сейчас не могу вспомнить!).

    Добавлено через 14 минут
    Может VNN_KCS подскажет!
    Последний раз редактировалось GM BIT; 04.01.2009 в 19:36. Причина: Добавлено сообщение

  8. #7

    Регистрация
    22.02.2005
    Адрес
    triebkraft
    Сообщений
    712
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    потому что используется стандартный обработчик прерываний из ПЗУ - а там и кнопки опрашиваются и еще чтото делается... надо задавать табличку для своего обработчика и включать IM 2 типа так

    di
    ld hl,imtab:ld a,h,i,a
    ld a,low int_jump
    ld (hl),a:inc l:jr nz,$-2
    inc h:ld (hl),a
    ld l,h:ld (hl),#c3 //код команды JP #xxxx
    ld de,ТВОЙ_ОБРАБОТЧИК
    ld (hl),e:inc hl:ld (hl),d
    im 2:ei

    imtab - табличка 257 байт с ровного адреса (#xx00), inter - джампер на обработчик (младший и старший байты равны) - к примеру в наших демах используется #be00 и #bfbf соответственно.

    а и важно - чтобы работало везде - надо ставить в памяти в пределах #8000-#bfff

  9. #8

    Регистрация
    27.11.2008
    Адрес
    Красноярск
    Сообщений
    747
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А IM 2 шагает сразу по INT или с задержкой?

  10. #9

    Регистрация
    22.02.2005
    Адрес
    triebkraft
    Сообщений
    712
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    когда приходит прерывания процессор читает из адреса I*256+#ff (но на самом деле младший байт может плавать на многих клонах, для этого и делается табличка 257 байт) - и переходит на этот адрес. при этом выполняется предыдущая команда до конца - поэтому даже если если процесор выполнял HALT - наш обработчик будет работать сначала фрейма +0.3 такта... это как-то можно устранить программно - но тут уж я не помощник - помню в ZX-Ревю каком-то было полное описание работы бордюрных и мультиколорных эффектов.

  11. #10

    Регистрация
    11.10.2007
    Адрес
    Донецкая обл. г.Енакиево
    Сообщений
    2,316
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GM BIT Посмотреть сообщение
    Может VNN_KCS подскажет!
    psndcj всё правильно тебе обьяснил. В твоем варианте прога работает с 1-м видом прерываний, а надо 2-й, чтоб обработчик отрабатывал одни и те-же такты ВСЕГДА. Я тут повторил твой вариант(правда немного подрихтовал), попробуй первый. Там есть точки на экране для оценки расположения полоски. Нажми any key, кроме пробела, потом отпусти и оцени результат.
    Во втором варианте я добавил IM 2, там хоть жми, хоть не жми - результат один.
    З.Ы. Ну а скролл запустил? Если что - пиши в личку.
    Вложения Вложения

Страница 3 из 109 ПерваяПервая 1234567 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Этюды: как бы написать поизящнее.
    от AndTorp в разделе Программирование
    Ответов: 5
    Последнее: 17.03.2008, 00:43
  2. Ответов: 0
    Последнее: 18.08.2006, 22:40
  3. Этюды: печать шрифтом 5x5...
    от breeze в разделе Программирование
    Ответов: 12
    Последнее: 27.03.2005, 05:21

Метки этой темы

Ваши права

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