Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.
Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.
PROC SETVBLK=$E45C(BYTE JAK,MSB,LSB) RETURN
PROC GRAJ3=$7003
PROC INIT=$7000
PROC USTAW()
BYTE X,Y
X=GRAJ3
Y=GRAJ3 RSH 8
SETVBLK(7,Y,X)
RETURN
PROC SKASUJ()
BYTE X,Y
X=$62
Y=$E4
SETVBLK(7,Y,X)
RETURN
PROC NIC()
BYTE SKCTL=$D20F
BYTE AUDCTL=$D208
SKCTL=3
AUDCTL=0
INIT()
USTAW()
DO
IF PEEK(53279)=5 THEN START=0 FI
UNTIL PEEK(53279)=6 OD
SKASUJ()
SNDRST()
RETURN
; PLAYER MUZYCZEK W "CMC"
; BY JAKUB HUSAK ÖĹŇ®ÓËĎÍĐŇĹÓĎ×®
CARD ADRREP,ADRMUS,VVBLKD=$224
BYTE CON=$D01F,ABC,BCD
PROC CIO=$E456(BYTE areg,xreg)CARD FUNC Burst(BYTE chan,mode,CARD addr,buflen)TYPE IOCB=[BYTE id,num,cmd,stat
CARD badr,padr,blen BYTE a1,a2,a3,a4,a5,a6]IOCB POINTER iptr chan==&$07 iptr=$340+(chan LSH 4) iptr.cmd=mode
iptr.blen=buflen iptr.badr=addr CIO(0,chan LSH 4)
RETURN(iptr.blen)
CARD FUNC BGet(BYTE chan CARD addr,len)CARD temp
temp=Burst(chan,7,addr,len)
RETURN (temp)
PROC COMM(BYTE A,X,Y)
RETURN
PROC TAKT()
RETURN
CARD FUNC DOS(BYTE ARRAY NAME )CARD ST,ND CLOSE(4)OPEN(4,NAME,4,0)BGET(4,@ST,2)IF ST<>$FFFF THEN PRINTE("NO DOS FILE!")
BREAK() FI DO BGET(4,@ST,2)UNTIL ST<>$FFFF OD BGET(4,@ND,2)BGET(4,ST,ND-ST+1)CLOSE(4)
RETURN (ST)
PROC GRAJ()TAKT()[ $4C $E462]
RETURN
PROC SETVBLV=$E45C(BYTE A,X,Y)
PROC SETV(CARD AD)BYTE A,B IF AD<>0 THEN A=AD AND $FF
B=AD RSH 8 SETVBLV(7,B,A)ELSE SETVBLV(7,$C2,$8A)FI
RETURN
;wczytujemy muzykę i player:
ADRREP=DOS("D:WCITY.REP")
ADRMUS=DOS("D:WCITY.CMC")
; te dwie proc ustawiają zmienne ADRREP i ADRMUS które sa kluczowe dla prawidłowego działania muzyki
COMM=ADRREP+3 TAKT=ADRREP+6 ABC=ADRMUS AND $FF BCD=ADRMUS RSH 8 COMM($70,ABC,BCD)
; inicjowanie odtwarzania:
COMM(0,0,0)SETV(GRAJ)
; ... tu właściwy kod programu
; gdy kończymy odważanie muzyki oraz wyłączamy player:
SETV(0)COMM($40,0,0)
>d c28a
C28A:68 PLA
C28B:A8 TAY
C28C:68 PLA
C28D:AA TAX
C28E:68 PLA
C28F:40 RTI
Od 1 do 26 z 26