Listing of file='CALLVC.MAC;04' on disk='vmedia/taylor_8-sector.ccvf'
;******************************************************** ;* * ;* CALL ROUTINE, LINK FROM BASIC PROGRAM. * ;* * ;* WHEN CALLED, IT GENERATES, OR CAUSES TO BE * ;* GENERATED, WHATEVER SOUND IS REQUESTED IN * ;* D,E AS FOLLOWS: * ;* 0-3 VOICE SOUND WITH TIMER 2 * ;* 1-NOT YET DEFINED * ;* 2-NEITHER IS THIS ONE * ;* * ;******************************************************** ; ENTRY CALLRTN ;DEFINE TO OUTSIDE WORLD ; ;======================================================== ; CODE 0 PARAMETERS ; COUNTER: DB 0 ;MAIN COUNTER TIMEVALUE: DS 1 ;VALUE USED FOR TIMER STARTING MIXERVALUE: DS 1 ;SHARED MIXER VALUE PUBLIC COUNTER,TIMEVALUE,MIXERVALUE EXTRN TIM2RTN ;TIMER 2 ROUTINE ; INITFINE1: DS 1 ;INITIAL FINE TUNE VALUE INITCORSE: DS 1 ;SAME FOR COARSE CNTSTART: DS 1 ;CNTR VALUE TO BEGIN EFFECTIVENESS CNTSTOP: DS 1 ;VALUE ON WHICH TO END INCR: DS 2 ;INCREMENT TO TONE VALUE TUNE: DS 2 ;WHICH IS HERE TUNEREG: DB 0 ;8910 TUNE REG NOISEVAL: DS 1 ;NOISE VALUE, ZERO IF NO NOISE VOLVAL: DS 1 ;VOLUME VALUE VOLREG: DB 8 ;VOLUME REGISTER MIXMASK: DS 1 ;MIXER MASK VOICE1 EQU INITFINE1 ; VOICE2: DB 0,0,0,0,0,0,0,0,2,0,0,9,0 ; VOICE3: DB 0,0,0,0,0,0,0,0,4,0,0,10,0 ; PUBLIC VOICE1,VOICE2,VOICE3 ; ;============================================================== ; CALLRTN: PUSH PSW PUSH B PUSH H MOV A,E ;TEST CALLER PARAM CPI 0 JNZ NOTZERO ; ; CALLER CODE WAS ZERO ; MOV A,D ;TIME VALUE IN D STA TIMEVALUE XRA A STA COUNTER MVI A,11111111B ;NULL MIXER VALUE TO START STA MIXERVALUE LXI D,TUNE-VOICE1 ; LXI H,VOICE1 MOV B,M INX H ;PICK UP INIT TUNE VALUES, MOV C,M DAD D ;POINT TO "WORK" TUNE VALUE MOV M,B ;AND STORE INIT VALUES THERE INX H MOV M,C ; LXI H,VOICE2 MOV B,M INX H MOV C,M DAD D MOV M,B INX H MOV M,C ; LXI H,VOICE3 MOV B,M INX H MOV C,M DAD D MOV M,B INX H MOV M,C ; CALL TIM2RTN ;LET TIMER ROUTINE RUN ONCE JMP EXIT ; ; CODE 1 ; NOTZERO: NOP ; ; NO KNOWN CODE ; EXIT: POP H POP B POP PSW RET END CALLRTN