Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
IU 9 RECORD MODE<br />
20 ORG 32768<br />
SOUNDS<br />
ASSEMBLY LISTING<br />
30 DI DISABLE MASKABLE INTERRUPT<br />
40 LD HL,(START) START ADDRESS OF DATA INTO HL<br />
50 LD DE, (LENGTH) DATA LENGTH INTO DE<br />
60 LOOP LD B, 8 B CONTROLS LOOP OF 8 BITS/I BYTE<br />
70 LD C,0 C COUNTS NO. OF BITS AT EAR PORT<br />
80 LD (0),BC TIME WASTING INSTRUCTION<br />
90 L00P_2 XOR A CLEAR A AND CARRY FLAG<br />
I00 IN A, ( 254 ) READ PORT 2 54<br />
I 10 RLA VALUE AT FAR PORT...<br />
120 RLA ROTATED...<br />
130 RL C INTO REGISTER C<br />
I40 DJNZ LOOP 2 GET 8 BITS FROM EAR PORT INTO C<br />
150 LD (HL),C STORE THE 8 BITS IN (HL)<br />
] 60 LD A, (SPEED) RECORD/PLAY SPEED INTO A<br />
170 LD B, A USE B TO CONTROL THE LOOP<br />
180 WAIT DJNZ WAIT WAIT A SHORT WHILE<br />
190 INC HL NEXT LOCATION FOR NEXT 8 BITS<br />
200 LD A,D CHECK WHETHER OR NOT...<br />
2 10 OR E TO FETCH ANOTHER 8 BITS<br />
220 DEC DE DECREMENT THE COUNT<br />
230 JR NZ.LOOP LOOP IF COUNT NOT ZERO<br />
2^0 EI RE-ENABLE THE MASKABLE INTERRUPT...<br />
250<br />
260<br />
270<br />
RET FOR RETURN TO BASIC<br />
280 » PLAYBACK<br />
290 DL<br />
300 LD HL,(START)<br />
3 10 LD DE,(LENGTH)<br />
320 P LOOP LD B,8 B CONTROLS LOOP OF 8 BITS/! BYTE<br />
330 LD C,(HL) GET DATA BYTE TO BE PLAYED<br />
340 RRC C GET THE BITS IN THE RIGHT ORDER<br />
350 RRC C<br />
360 RRC C<br />
370 P_LP 2 LD A, C GET THE DATA BYTE INTO A<br />
380 AND ZOOOIOOOO MASK THE ONLY REQUIRED BIT<br />
390 OUT (254 ),A OUTPUT THIS BIT TO THE SPEAKER<br />
400 RLC C GET NEXT BIT INTO REQUIRED POSITION<br />
4 10 DJNZ P LP 2 OUTPUT 8 BITS (L BYTE)<br />
420 LD A, (SPEED) SPEED INTO A<br />
4 30 LD B, A TRANSFER TO B FOR PAUSE<br />
44 0 PAUSE DJNZ PAUSE WAIT A SHORT WHILE<br />
4 50 RES 0, A ANOTHER TIME WASTING INSTRUCTION<br />
460 INC HL INCREMENT DATA ADDRESS<br />
470 LD A, D CHECK TO SEE IF COUNT IS ZERO YET<br />
480 OR E<br />
490 DEC DE DECREASE THE COUNT BY I<br />
500 JR NZ,P LOOP LOOP IF COUNT NOT ZERO<br />
5 10 EI RE-ENABLE MASKABLE INTERRUPT...<br />
520 RET FOR RETURN TO BASIC<br />
530 START DEFW 32855 START ADDRESS OF SPEECH DATA<br />
54 0 LENGTH DEFW 325 I 2* LENGTH OF SPEECH DATA<br />
550 SPEED DEFB I RECORD/PLAY SPEED<br />
60 ZX COMPUTING DECEMBER JANUARY 1985