Цитата Сообщение от 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.