User Tag List

Показано с 1 по 10 из 30

Тема: Интерфейс эмулятора в коде Z80

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

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

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,213
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,640
    Поблагодарили
    572 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А... Это я видел. Но это не совсем то Я имел ввиду полноценный интерфейс типа как в эмуляторе X128.
    С уважением, Станислав.

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

  3. #2

    Регистрация
    17.01.2005
    Адрес
    Старый Оскол
    Сообщений
    537
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    4 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Я имел ввиду полноценный интерфейс типа как в эмуляторе X128.
    В X128? Нет там никакого интерфейса.
    Подобные вещи есть тока в старых версиях UnewalSpeccy (0.19b ... 0.21b3) и Z80Stealth.
    Вот кусок документации UnrealSpeccy:
    Код:
    unreal programming interface
    
    unreal API allows you to use emulator more efficiently. here is a
    brief description of documented unreal functions. all functions
    may be called through executing Z80 invalid opcode EDFF, registers
    must contain the following values:
    BC=6E75, DE=6572, HL=6C61, A=function_code, IX=param
    
    for example:
    
       UAPI:
            ld bc, word ptr [key+0]
            ld de, word ptr [key+2]
            ld hl, word ptr [key+4]
            db 0EDh, 0FFh
            ret
       key: db 'unreal'
    
    API functions:
    
    0. exit emulator,if you don't want your program to be emulated on unreal speccy
    
            ld a,'q'
            ld ix, offset quit_message
            jp UAPI ; don't return
    
      ; not more then 64 chars, and can't cross 16K page boundary
      quit_message: db 'allowed to run only on real hardware',0
    
    1. get emulator version
    
            ld a,'?'
            call UAPI
            ; returns:
            ;    CY=0 [success flag]
            ;    H - major version number
            ;    L - minor version number
            ;    A - bits 0..6 - revision number. bit 7 = 0 - beta version
            ; unreal 0.19b  will return HL=0x0013, A=0x00
            ; unreal 0.19b2 will return HL=0x0013, A=0x02
            ; unreal 1.00   will return HL=0x0100, A=0x80 (hopefully:)
    
    2. set video mode
    
            ld a,'v'
            ld ix,mode
            call UAPI
            ; flag CY=1 - mode not found, CY=0 - ok
    
       mode equ 0                  ; normal
       mode equ 'c'+100h*'2'       ; chunky 2x2
       mode equ 'c'+100h*'4'       ; chunky 4x4
       mode equ 'C'+100h*'2'       ; chunky 2x2, filtered
       mode equ 'C'+100h*'4'       ; chunky 4x4, filtered
       mode equ 'n'+100h*'f'       ; noflic (pseudo-gigascreen)
       mode equ 'f'+100h*'c'       ; flash-color
       mode equ 'x'+100h*'2'       ; 512x192
       mode equ 'b'+100h*'i'       ; bilinear
       mode equ 'a'+100h*'c'       ; AlCo 384x304
       mode equ 't'+100h*'v'       ; TV emulation
       mode equ 's'+100h*'c'       ; scaling (**)
       ; note: ** - may be removed in next versions
    
    3. set soundchip type
    
            ld xh, chip     ; 'a' - AY-3-8910, 'y' - YM2149F, 'd' - digital, '0' - none
            ld xl, stereo   ; 'b' - ABC, 'c' - ACB, '0' - mono, '?' - custom
            ld a,'m'
            call UAPI
            ; flag CY=1 - bad parameter, CY=0 - ok
    
    4. quick save 48/128K snapshot
    
            ld a,'s'
            call UAPI
            ; CY=1 - error, CY=0 - ok
    
    5. quick load 48/128K snapshot
    
            ld a,'l'
            call UAPI
            ; CY=1 - error, probably 'quick save' not called
            ; CY=0 - impossible (snapshot is running, not this code)
    А вот кусок документации Z80Stealth
    Код:
    	 ╔══════════════════════════════════════════════════════════╗
    	 ║   Как вытащить из программы на Спектруме понравившуюся   ║
    	 ║ мелодию для музыкального сопроцессора при помощи трэпов? ║
    	 ╚══════════════════════════════════════════════════════════╝
    От вас потребуется знание ассемблера Z80 и умение взламывать программы для
       ZX-Spectrum. Прежде всего, в конфигурационном файле впишите PSGTRAP=YES.
    Типичная программа, проигрывающая музыку на музыкальном сопроцессоре,
       содержит нехитрый "плеер" - кодовый блок, на который возлагается всё
       программирование AY-3-8910 или YM2149F.
    
    	 Сразу же после инициализации плеера "подсуньте" Z80 код
    	  ED F9. Такое "подсовывание" можно произвести, наример, в отладчике
    	  эмулятора. Выполнение в Z80Stealth этого кода при PSGTRAP=YES
    	  приведёт к тому, что эмулятор создаст файл dump.psg и будет
    	  копировать в него все данные, поступающие в регистры AY/YM. Формат
    	  файла (PSG или EPSG) вы можете выбрать в конфигурационном файле.
    	 Обычно в плеере есть код, обеспечивающий "зацикливание" - переход
    	  к началу (или к произвольному месту) мелодии при достижении конца.
    	  Впишите вместо этого кода ED FA - по этой псевдоинструкции
    	  Z80Stealth закроет файл и завершит работу, и вы вернётесь в ДОС.
    	 Файл dump.psg - в вашем распоряжении. Кстати, для быстрой выгрузки
    	  PSG-файла можно воспользоваться опцией MAXSPEED=YES.

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

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

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

Похожие темы

  1. Работа с НМЛ из эмулятора
    от Error404 в разделе Эмуляторы
    Ответов: 6
    Последнее: 28.11.2007, 23:29
  2. Интерфейс MIDI для ZX
    от newart в разделе Звук
    Ответов: 27
    Последнее: 30.10.2007, 17:06
  3. Plug-in для AY-эмулятора
    от tmp_online в разделе Разный софт
    Ответов: 0
    Последнее: 19.03.2007, 23:03
  4. Ответов: 24
    Последнее: 28.02.2007, 20:34
  5. Как сократить код эмулятора Z80 на PC
    от Vladimir Kladov в разделе Эмуляторы
    Ответов: 27
    Последнее: 01.02.2006, 21:18

Ваши права

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