Wave routine TBM, 00-00-94 ;=============================================================================== ; WAVE routine, niet op een hook... ; ; (c) 1994 by TBM, TECHNO CREW ; ORG &HC000 ST: LD A,5 ; screen 5 CALL &H5F LD A,63 ; page 2 OUT (&H99),A ; LD A,2 OR 128 OUT (&H99),A MAIN: EI ; 2 int's wachten ; HALT ; haal rem teken weg voor een leuk effect HALT DI ; no breaks LD A,2 ; status reg. #2 OUT (&H99),A LD A,15 OR 128 OUT (&H99),A LD A,18 OR 128 ; register 18 (vdp(19)) instellen op &H9B OUT (&H99),A LD A,17 OR 128 OUT (&H99),A LD HL,(POINTR) ; zet pointer goed LD A,(HL) CP -1 JR NZ,VERDER LD HL,DATA VERDER: INC HL LD (POINTR),HL CHK_VR: IN A,(&H99) ; check op Vertical interrupt AND &H40 JR NZ,CHK_VR LD B,127 ; aantal lijnen LOOP: IN A,(&H99) ; check op Horizontal interrupt AND &H20 JR Z,LOOP LD A,(HL) ; zorg dat de pointer goed staat CP -1 JR NZ,VERDE2 LD HL,DATA VERDE2: LD A,(HL) ; reg #18=wave data OUT (&H9B),A INC HL ; verhoog teller DJNZ LOOP ; herhaal tot aantal lijnen 0 is XOR A ; zet status reg #0 (noodzakelijk) OUT (&H99),A LD A,15 OR 128 OUT (&H99),A LD A,0 ; reg #18=0 (leuk effect als dit weg is...) OUT (&H9B),A IN A,(&HAA) ; check op spatie... AND &HF0 OR 8 OUT (&HAA),A IN A,(&HA9) AND 1 JR NZ,MAIN ; nee, gelukkig herhaal wave XOR A ; screen 0 JP &H5F POINTR: DW DATA ; pointer DATA: DB 7,5,3,2,2,1,1,1,0,0,0,0 ; wave data DB 1,1,1,2,2,3,5,7 ; laatste en eerste gelijk !!! DB -1 ; einde |