/ SIGOUT JG /JSB 28.4.72 /OUTPUT SIGNAL FROM DISC TO DAC 1 /TIMING BY REAL TIME CLOCK /FILE ORGANISATION BY PS 8 /RATE DEFINES THE SAMPLING RATE PAGE1=2000 FIELD 1 *PAGE1 AGAIN, SWAB CAM TAD (7606 DCA ARG1 DCA ARG2 CLA IAC /DEV NR 1 JMS I (7700 /LOOK UP 2 ARG1, 0 ARG2, 0 /NAME OR -LENGTH JMP ERROR3 TAD SWWRD /SWITCH FILTER CO1 CLA TSTKB, LAS RAR SNL CLA JMP CHCKUP TOOLSR JMP TSTKB CHCKUP, LAS RAR SZL CLA JMP PLAY TOOLSR JMP CHCKUP PLAY, CAM TAD ARG1 /NEXT MULTIPLE OF FOUR CIA AND (3 DCA DSHIFT TAD DSHIFT /STARTING ADDRESS ON DISK TAD ARG1 DCA DSTART TAD DSHIFT /CHECK FILE LENGTH TAD ARG2 CIA LSR 2 CIA DCA TFTOT TAD TFTOT DCA SBFTCT DCA ERFLAG TAD BFNUM DCA BFSEMP TAD RATE /SET UP SAMPLING RATE CIA CLAB CLA TAD ENABLE CLOE CAM TAD NRBLKS /WORK OUT NR OF SAMPLES IN 1 BUF SHL 10 DCA BFLNG TAD DSTART DCA CURBLK TAD RETRNP /SET UP RETURN ADDR IN SAMHAN DCA SAMHNP TAD COMWRD DLDC TAD BFST /SET UP AUTO FOR START UP PHASE DCA AUTO JMP JGLIN FILLSR, 0 CLA TAD BFSEMP SZA CLA JMP I FILLSR TAD SMHNA /RESTORE SMHNPTR DCA SAMHNP TAD FILLSR DCA SMHNSR /TRANSFER SR RETURN ADDRESS INTDON, TLS TDC "I JMP SMHNIN DSHIFT, 0 MMXLEN, 0 ERFLAG, 0 RATE, 320 /SAMPLING RATE ENABLE, 5640 SMHNA, SMHNSR RETRNP, FILLSR COMWRD, 0 CMWRD1, 200 DSTART, 0 SWWRD, 1 ERROR3, TLS TDC "I TDC "P TDC "T TDC "? JMP START *PAGE1+200 SAMHAN=JMS I . SAMHNP, SMHNSR LOP1, TAD CURBLK DLDR SAMHAN TAD NRBLKS /UPDATE DISC ADDRESS TAD CURBLK DCA CURBLK SAMHAN /WAIT FOR END OF TF DSKD JMP .-2 DSKE /TF ERROR ? JMP TFOK ISZ ERFLAG DCLS TFOK, SAMHAN ISZ TFTOT JMP NOEND TAD NRBLKS CIA TAD CURBLK DCA CURBLK SAMHAN CMA DCA TFTOT NOEND, SAMHAN ISZ TFBFCT JMP TIN1 JGLIN, TAD BFST DCA TFBFNX SAMHAN TAD BFNUM CIA DCA TFBFCT JMP TIN2 TIN1, TAD TFBFNX /UPDATE TRASFERBUF NEXT TAD BFLNG DCA TFBFNX TIN2, SAMHAN TAD BFLNG /SET UP WC AND CA FOR TRANSFER CIA DLWC SAMHAN CMA TAD TFBFNX DLCA SAMHAN KSF SKP /END TRANSFER IF KEYBOARD STRUCK TOOLGO TTOCLS, SAMHAN TAD BFSEMP /ANYTHING TO TRANSFER? SNA CLA JMP TTOCLS /NO, WAIT SAMHAN CLA CLL CMA /DECREMENT BUFSEMP TAD BFSEMP DCA BFSEMP /BFSEMP SHOULD BE CALLED BUFSFUL!!! SAMHAN JMP LOP1 SBFTCT, 0 CURBLK, 0 NRBLKS, 4 TFTOT, 0 /CNT FOR TOTAL NR OF BUFFERS TFBFCT, 0 SYSRES, 100 /PROTECT FILES PN DISC BFST, 1000 /BOTTOM OF BUFFER AREA TFBFNX, 0 /ADDRES OF NEXT BUF TO BE TRANSFERRED BFNUM, 3 /NR OF BUFFERS IN CORE BFLNG, 0 BFSEMP, 0 GETSAM=JMS I . GTSMSR SMHNSR, 0 /HANDLES INPUT SAMPLES GETSAM ISZ SAMCNT /THIS INPUT BUF FULL? JMP I SMHNSR /NO, RETURN TO MAIN PROGRAMM GETSAM CLA IAC /FREE BUF AVAILABLE? TAD BFSEMP CMA TAD BFNUM SMA SZA CLA JMP IN3 TDC /NO, TYPE DIAGNOSTIC "O JMP IN2 IN3, GETSAM ISZ BFSEMP /UPDATE BFSFULL!!! SKP HLT /CATASTROPHIC HLT ISZ SBFTCT SKP JMP DUN GETSAM ISZ SGBFCT /NEXT SIGNAL BUF IN LINE? JMP IN1 /YES SMHNIN, TAD BFST /START FOR INIT DCA SGBFNX /NEXT SIG BUF STARTS FROM BOTTOM OF GETSAM TAD BFNUM CIA DCA SGBFCT JMP IN2 IN1, TAD SGBFNX /NEXT SIG BUF IS IN LINE TAD BFLNG DCA SGBFNX GETSAM IN2, GETSAM TAD BFLNG CIA TAD EXTRAS DCA SAMCNT GETSAM CMA /AUTOINDECREG FOR GETSAM UPDATED TAD SGBFNX DCA AUTO JMP I SMHNSR SAMCNT, 0 SGBFNX, 0 SGBFCT, 0 EXTRAS, 6 *PAGE1+400 START, CLA JMS I (7700 /DECODE 5 5200 /SPECIAL MODE TLS TAD I (7611 AND (7700 CHECK 5200 /CHECK FOR * EXTENSION JMP STAR SHL 6 AND (7700 CHECK 5200 SKP TOOLGO STAR, TDC 4252 /"*" "? JMP START DUN, DSKD /WAIT FOR END OF TF JMP .-1 CLA TAD ERFLAG SNA JMP END TDC "E TDC "= TAD ERFLAG TOCT END, JMP I PLAYP PLAYP, CHCKUP AUTO=10 GTSMSR, 0 CLA CLSK JMP OK TSF SKP TLS CLSA CLA OK, CLSK JMP .-1 CDF 0 TAD I AUTO CDF 10 DAC1 CLSA CLA JMP I GTSMSR $$$$$$$$$$$$$$$$$$$$$