| breeze |
19th October 2008 19:22 |
эээээ... ??? o_O
1 Attachment(s)
Вообщем разобрался я с сорцами NewArt'а , нашел ещё доку на сайте скорпионов, сделал свой вариант, с некоторым количеством комментариев:
Code:
DEVICE ZXSPECTRUM128
EMPTYTRD "bin/playmod.trd"
org #6000
; general sound:
gsCommand equ #bb ; write: #bb - command port
gsStatus equ #bb ; read: #bb - register status
gsData equ #b3 ; read/write - data port
;-------------------------------------------------------------------------
start
ld a,#01
out (#fe),a ; here we go!
ld a,#f3 ; warm reset general sound
call sendCommand
ld a,#03
out (#fe),a ; inialized
ld hl,modBegin
ld de,modEnd-modBegin
call uploadModule
ld a,#04
out (#fe),a ; module uploaded !
in a,(gsData) ; get module Number
out (gsData),a ; select module ?
call playModule
ld a,#05
out (#fe),a ; module selected ?
ei
loop halt
jr loop
;------------------------------------------------------------------------
playModule ld a,#31 ;#31 Play module
call sendCommand
ret
;------------------------------------------------------------------------
uploadModule ld a,#30 ; #30 Load Module
call sendCommand
ld a,#d1 ; #d1 Open Stream
call sendCommand
getNext ld a,(hl)
waitReady in b,(c)
jp p,ready
in b,(c)
jp m,waitReady ; wait for ready general sound
ready out (gsData),a
inc hl
dec de
ld a,d
or e
jr nz,getNext ; loop for the next data
finalize in b,(c)
jp m,finalize ; wait for upload last byte
ld a,#d2 ; #d2 Close Stream
call sendCommand
ret
;------------------------------------------------------------------------
sendCommand ld c,gsCommand
out (gsCommand),a ; command port
waitResponse in a,(gsStatus) ; wait ready
rrca
jr c,waitResponse
ret
;------------------------------------------------------------------------
org #8000
modBegin
;incbin "rc\noname.mod"
incbin "rc\output.mod"
modEnd nop
end
;SAVESNA "bin\snapshot.sna",#6000
SAVETRD "bin/playmod.trd","player.C",start,modEnd-start
LABELSLIST "C:\My ZX\emuTools\unreal/user.l"
однако есть нюанс :( к сожалению не могу сейчас проверить на реале, но вот в EmuzWin всё играет как-бы нормально, но с небольшими претензиями к звуку, в Unreal Speccy (пробовал и 0.3.6 и версию 0.3.7) если ставить эмуляцию Z80 трек жутко тормозит и хрипит :( если поставить BASS - то проблем никаких нет :rolleyes: чё это за хрень не ясно :(
может кто код на реале с GS запустить и сказать играет нормально или есть траблы ?
|