Hello Guys,

I sent you, 2 source programm in assembler for make interrupt time Z80 for
work with sound effect in assembler MSX.
But it unfortunately doesn't work, it is not interrupt time, then is not good
for MSX BASIC!!

Can you help me? Please? Please?  ^_^

I hope than you have free time for make this litte work for me, OK??

You remember, than I job with CHAOS ASSEMBLER for Windows.

See you to soon.....
Andrea Gasparrini from Italy

; [YOUR GROUP] MSX Z80 source file.
;
; Prog: 
; Code: [YOUR HANDLE]
; Date:
;
; cmnt:
;
; Coded in TeddyWareZ' Chaos Assembler 3
;
; (C) 2001 [YOUR GROUP]!



        .org $B000 - 7

        .db $fe
        .dw startProgram,endProgram,startProgram

startProgram:
;*************************************************************
;   List 2.4   How to use HOOK safety
;              This routine uses TIMER INTERRUPT HOOK
;                                  and turn on/off CAPS LOCK
;              To start, do  DEF USR=&HB000 : A=USR(0)
;              To end,   do  DEF USR=&HB030 : A=USR(0)
;*************************************************************
;
CHGCAP .EQU     0132H           ;CAPS LAMP on/off
CAPST    .EQU   0FCABH          ;CAPS LOCK status
TIMI     .EQU   0FD9FH          ;timer interrupt hook
JPCODE .EQU     0C3H
TIMER    .EQU   020H


;----- interrupt on ----- Note:  restore the former hook
                                 ;when changing the hook
      
 CALL START  ; load and initialize STAR MUSIC

 .ORG $B020   ; CONTINUE MUSIC

INTON:  
      DI
        LD      HL,TIMI         ;OLD HOOK SAVE
        LD      DE,HKSAVE
        LD      BC,5
        LDIR

        LD      A,JPCODE        ;NEW HOOK SET
        LD      (TIMI),A
        LD      HL,INT
        LD      (TIMI+1),HL
        EI
        RET

        .ORG    $B050  ; PAUSE MUSIC

;----- interrupt off ----- Note:  restore the reserved hook and exit

INTOFF:
      DI
        LD      HL,HKSAVE
        LD      DE,TIMI
        LD      BC,5
        LDIR
        EI  
        CALL $90 ; resetta canale audio
        RET

;----- interrupt routine -----

INT:    PUSH    AF
        LD      A,(CAPST)
        OR      A
        JR      Z,CAPON

CAPOFF: 
   ; silence

CAPON:
   ; play 1 quark
   
FIN:
        POP     AF
        CALL    HKSAVE          ;old HOOK call

        RET

COUNT1:           
      .DB TIMER
COUNT2:
      .DB TIMER

HKSAVE: 
      NOP                       ;old HOOK save area
        NOP
        NOP
        NOP
        RET   

;----- interrupt routine -----

#INCLUDE "bomba2.asm"
endProgram:

.end


start:

 LD A,7
 LD E,254
 CALL 147
 LD A,8
 LD E,15
 CALL 147
 LD E,40
CICLO:
 LD A,0
 CALL 147
 LD A,10
RITARDO:
 PUSH AF
 LD A,255
MENO:
 DEC A
 JP NZ,MENO
 POP AF
 DEC A
 JP NZ,RITARDO
 LD A,E
 SUB 150
 JP Z,NEXT
 ADD A,151
 LD E,A
 JP CICLO
NEXT:
 LD A,0
 LD E,0
 CALL 147
 LD A,7
 LD E,247
 CALL 147
 LD A,0
NEXT1: 
 PUSH AF   
 LD E,A
 CALL 147
 LD A,50
PIPPO:
 PUSH AF
 LD A,255
PLUTO: 
 DEC A
 JP NZ,PLUTO
 POP AF
 DEC A
 JP NZ,PIPPO
 POP AF
 SUB 31
 JP Z,RITA
 ADD A,32
 JP NEXT1
RITA:
 LD A,100
RITA1:
 PUSH AF
 LD A,255
RITA2:
 DEC A
 JP NZ,RITA2
 POP AF
 DEC A
 JP NZ,RITA1
 LD A,7
 LD E,255
 CALL 147
 RET
  
end:




      
_______________________________________________
MSX mailing list (msx@stack.nl)
Info page: http://lists.stack.nl/mailman/listinfo/msx

Reply via email to