Hello Guys,
Problem for do work a music song in assembly as example.
Unfortunately this routine in assembler for do music it si mute !!
Therefore: I ask your help for me......
For now is all....
Best Regards
; [YOUR GROUP] MSX Z80 source file.
;
; Prog: SONG MUSIC PLAY PSG
; Code:
; Date:
;
; cmnt:
;
; Coded in TeddyWareZ' Chaos Assembler 3
;
; (C) 2001 [YOUR GROUP]!
.org $C000 - 7
.db $fe
.dw startProgram,endProgram,startProgram
startProgram:
INTHOK: .EQU $F9DF
PSGINI: .EQU $90
WRTPSG: .EQU $93
RDPSG: .EQU $96
C1DAT: .EQU $B000
C2DAT: .EQU $B400
C3DAT: .EQU $B800
START:
LD HL,C1DAT
LD (C1PTR),HL
LD HL,C2DAT
LD (C2PTR),HL
LD HL,C3DAT
LD (C3PTR),HL
LD A,1
LD (C1CTR),A
LD (C2CTR),A
LD (C3CTR),A
CALL PSGINI
ld hl,MUSROT
ld (INTHOK+1),hl
; LD A,MUSROT ; LD A,LOW MUSROT
; LD (INTHOK+1),A
; LD A,MUSROT ; LD A,HIGH MUSROT
; LD (INTHOK+2),A
LD A,$C3
LD (INTHOK),A
RET
C1PTR: .DW 0
C2PTR: .DW 0
C3PTR: .DW 0
C1CTR: .DB 16,18,20,22,20,18 ; note musicali canale A
C2CTR: .DB 16,18,22,20,16,18 ; note musicali canale B
C3CTR: .DB 20,22,18,16,20,22 ; note musicali canale B
VOL1: .DB 15
VOL2: .DB 15
VOL3: .DB 15
MUSROT:
PUSH AF
LD A,(C1CTR)
DEC A
LD (C1CTR),A
OR A
JR NZ,CHANB
LD A,7
CALL RDPSG
OR 1
LD E,A
LD A,7
CALL WRTPSG
LD IX,(C1PTR)
LD E,(IX+0)
LD A,0
CALL WRTPSG
LD A,(IX+1)
CP 255
JR Z,START
LD E,A
LD A,1
CALL WRTPSG
LD A,(IX+2)
LD A,(VOL1)
LD E,A
LD A,8
CALL WRTPSG
LD A,7
CALL RDPSG
AND $FE
LD E,A
LD A,7
CALL WRTPSG
INC IX
INC IX
INC IX
LD (C1PTR),IX
CHANB:
LD A,(C2CTR)
DEC A
LD (C2CTR),A
OR A
JR NZ,CHANC
LD A,7
CALL RDPSG
OR 2
LD E,A
LD A,7
CALL WRTPSG
LD IX,(C2PTR)
LD E,(IX+0)
LD A,2
CALL WRTPSG
LD E,(IX+1)
LD A,3
CALL WRTPSG
LD A,(VOL2)
LD E,A
LD A,9
CALL WRTPSG
LD A,7
CALL RDPSG
AND $FD
LD E,A
LD A,7
CALL WRTPSG
LD A,(IX+2)
LD (C2CTR),A
INC IX
INC IX
INC IX
LD (C2PTR),IX
CHANC:
LD A,(C3CTR)
DEC A
LD (C3CTR),A
OR A
JR NZ,ENDMUS
LD A,7
CALL RDPSG
OR 4
LD E,A
LD A,7
CALL WRTPSG
LD IX,(C3PTR)
LD E,(IX+0)
LD A,4
CALL WRTPSG
LD E,(IX+1)
LD A,5
CALL WRTPSG
LD A,(IX+2)
LD (C3CTR),A
LD A,(VOL3)
LD E,A
LD A,10
CALL WRTPSG
LD A,7
CALL RDPSG
AND $FB
LD E,A
LD A,7
CALL WRTPSG
INC IX
INC IX
INC IX
LD (C3PTR),IX
ENDMUS:
POP AF
RET
endProgram:
.end
Login or register to post comments
