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

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Бейсик и плеер на прерываниях.

  1. #1
    Banned
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,841
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    656
    Поблагодарили
    511 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    Unhappy Бейсик и плеер на прерываниях.

    Столкнулся с проблемой вешания плеера на прерывания в программах на бейсике.

    Компилю Вортексом http://bulba.untergrund.net/vortex.htm

    Вот что у меня на обработчике прерываний
    EXX
    PUSH AF
    PUSH BC
    PUSH DE
    PUSH HL
    EXX
    PUSH AF
    PUSH BC
    PUSH DE
    PUSH HL
    PUSH IX
    PUSH IY

    LD (#B000),SP
    LD SP,#A000

    CALL #C005

    LD SP,(#B000)

    POP IY
    POP IX
    POP HL
    POP DE
    POP BC
    POP AF
    EXX
    POP HL
    POP DE
    POP BC
    POP AF
    EXX
    CALL #0038
    RET
    И вроде бы работает. Но...

    Глюки вроде начинаются при работе графических подпрограмм ПЗУшки.

    Пример зависона.
    Вложение 32094

    Исходник для EmuZwin-a.
    Вложение 32093


    Вместо плеера вешал Кучку LDIR-ов, Call-ов 0038, Out-ов по разным портам но глюков небыло.

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

  3. #2
    Guru Аватар для newart
    Регистрация
    19.01.2005
    Адрес
    Санкт-Петербург
    Сообщений
    11,435
    Спасибо Благодарностей отдано 
    191
    Спасибо Благодарностей получено 
    145
    Поблагодарили
    61 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    Глюки вроде начинаются при работе графических подпрограмм ПЗУшки.
    Может стек переполняется? Попробуй его подвинуть повыше.

    ---------- Post added at 19:33 ---------- Previous post was at 19:31 ----------

    У меня все работало отменно: http://www.n-discovery.spb.ru/data/others/sokoban.zip

  4. #3
    Banned
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,841
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    656
    Поблагодарили
    511 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Может стек переполняется? Попробуй его подвинуть повыше.
    Да стек уже двигал. Вроде с ним всё ОК.
    В придачу на время работы плеера указатель стека B000.
    То есть у меня сейчас для стека по 4 Кб и в ту и в другую сторону.

  5. #4
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,254
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    34 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А кто будет сохранять альтернативный AF?

  6. #5
    Banned
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,841
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    656
    Поблагодарили
    511 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А кто будет сохранять альтернативный AF?
    А где видно что я его не сохранил?

    Перепроверил. Вот тут видно что Push-ытся всё.
    Последний раз редактировалось NEO SPECTRUMAN; 09.01.2012 в 19:49.

  7. #6
    Veteran Аватар для John North
    Регистрация
    22.09.2006
    Адрес
    Ижевск
    Сообщений
    1,706
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А зачем стек переставляешь внутри обработчика прерываний?
    Хороший.. Плохой.. Главное - у кого ружьё !!

  8. #7
    Banned
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,841
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    656
    Поблагодарили
    511 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А зачем стек переставляешь внутри обработчика прерываний?
    Пытался избавиться от этого глюка. Изначально указатель стека не трогал.
    Плеер юзает стек. Решил что возможно глюк из за него.

  9. #8
    Guru Аватар для SAM style
    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    2,054
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    217
    Поблагодарили
    91 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    exx не меняет af и af'. Так что af' ты не сохранил.
    Все любят гипножабу

  10. #9
    Banned
    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,841
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    656
    Поблагодарили
    511 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Для этого EX af,af1

    Сейчас испытаю.

    ---------- Post added at 18:14 ---------- Previous post was at 18:08 ----------

    Поставил после каждого EXX
    EX AF,AF'

    Да вроде пока работает.
    Последний раз редактировалось NEO SPECTRUMAN; 09.01.2012 в 20:19.

  11. #10
    Guru Аватар для null_device
    Регистрация
    26.09.2009
    Адрес
    г. Красноярск
    Сообщений
    3,075
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    82
    Поблагодарили
    66 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    NEO SPECTRUMAN, зачем переключать целых восемь раз наборы регистров, если можно только два (также, в конце можно заменить связку call n, ret на один jp n)?

    Код:
    push ix
    push iy
    push bc 
    push de
    push hl
    push af
    exx
    push bc
    push de
    push hl
    ex af,af'
    push af
    
    call #C005
    
    pop af 
    pop hl
    pop de
    pop bc
    ex af,af'
    pop af
    exx
    pop hl
    pop de
    pop bc
    pop iy
    pop ix
    jp #0038
    Когда есть, но не знаешь где - это все равно, что нету.

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

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

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

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

Похожие темы

  1. Специалист: Бейсик
    от Prusak в разделе Специалист
    Ответов: 28
    Последнее: 26.07.2019, 16:07
  2. Про бейсик
    от yur в разделе Программирование
    Ответов: 23
    Последнее: 17.02.2014, 21:26
  3. Ищу документацию по Бейсик С 1.10
    от Жека:) в разделе Разный софт
    Ответов: 0
    Последнее: 28.02.2009, 09:28
  4. AY плеер
    от newart в разделе Звук
    Ответов: 19
    Последнее: 20.07.2006, 00:03

Ваши права

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