|
|
|
@ -4484,8 +4484,6 @@ SPK_OCTDIV: |
|
|
|
|
|
|
|
SPK_OCTOK: |
|
|
|
|
|
|
|
CALL DISP |
|
|
|
|
|
|
|
POP BC ; MULTIPLY CHL X B |
|
|
|
PUSH HL ; SAVE |
|
|
|
|
|
|
|
@ -4511,8 +4509,6 @@ MULDLP: DJNZ MULSKP ; DIVIDE BY 8 |
|
|
|
POP DE |
|
|
|
EX DE,HL |
|
|
|
|
|
|
|
CALL DISP |
|
|
|
|
|
|
|
; The following SPK_BEEPER routine is a modification of code from |
|
|
|
; "The Complete SPECTRUM ROM DISSASSEMBLY" by Dr Ian Logan & Dr Frank O’Hara |
|
|
|
; https://www.esocop.org/docs/CompleteSpectrumROMDisassemblyThe.pdf |
|
|
|
@ -4611,8 +4607,6 @@ FRQ_AJ1:SLA C ; C<C<0 ; DEHL = DEHL - (2 * CPUKHZ) |
|
|
|
|
|
|
|
FRQ_AJ2: ; AT THIS POINT DEHL = CPUKHZ * 125 E.G. 9982 KHZ * 125 = 0012:DE14 |
|
|
|
|
|
|
|
; CALL DISP |
|
|
|
|
|
|
|
PUSH HL ; DEHL = CPUKHZ / 8) / FREQUENCY |
|
|
|
POP IX ; HLIX = DENOMINATOR |
|
|
|
EX DE,HL |
|
|
|
@ -4661,91 +4655,6 @@ DUROVF: LD (IY+2),E |
|
|
|
DJNZ TBL_LP ; LOOP COUNTER |
|
|
|
|
|
|
|
RET |
|
|
|
|
|
|
|
DISP: |
|
|
|
PUSH BC |
|
|
|
PUSH DE |
|
|
|
PUSH HL |
|
|
|
|
|
|
|
PUSH DE |
|
|
|
POP BC |
|
|
|
CALL PRTHEXWORD |
|
|
|
|
|
|
|
LD A,' ' |
|
|
|
CALL MONOUT |
|
|
|
|
|
|
|
PUSH HL |
|
|
|
POP BC |
|
|
|
CALL PRTHEXWORD |
|
|
|
|
|
|
|
LD A,' ' |
|
|
|
CALL MONOUT |
|
|
|
|
|
|
|
POP HL |
|
|
|
POP DE |
|
|
|
POP BC |
|
|
|
RET |
|
|
|
|
|
|
|
PRTHEXBYTE: |
|
|
|
PUSH AF |
|
|
|
PUSH DE |
|
|
|
CALL HEXASCII |
|
|
|
LD A,D |
|
|
|
CALL MONOUT |
|
|
|
LD A,E |
|
|
|
CALL MONOUT |
|
|
|
POP DE |
|
|
|
POP AF |
|
|
|
RET |
|
|
|
; |
|
|
|
; PRINT THE HEX WORD VALUE IN BC |
|
|
|
; |
|
|
|
PRTHEXWORD: |
|
|
|
PUSH AF |
|
|
|
LD A,B |
|
|
|
CALL PRTHEXBYTE |
|
|
|
LD A,C |
|
|
|
CALL PRTHEXBYTE |
|
|
|
POP AF |
|
|
|
RET |
|
|
|
; |
|
|
|
; PRINT THE HEX DWORD VALUE IN DE:HL |
|
|
|
; |
|
|
|
PRTHEX32: |
|
|
|
PUSH BC |
|
|
|
PUSH DE |
|
|
|
POP BC |
|
|
|
CALL PRTHEXWORD |
|
|
|
PUSH HL |
|
|
|
POP BC |
|
|
|
CALL PRTHEXWORD |
|
|
|
POP BC |
|
|
|
RET |
|
|
|
; |
|
|
|
; CONVERT BINARY VALUE IN A TO ASCII HEX CHARACTERS IN DE |
|
|
|
; |
|
|
|
HEXASCII: |
|
|
|
LD D,A |
|
|
|
CALL HEXCONV |
|
|
|
LD E,A |
|
|
|
LD A,D |
|
|
|
RLCA |
|
|
|
RLCA |
|
|
|
RLCA |
|
|
|
RLCA |
|
|
|
CALL HEXCONV |
|
|
|
LD D,A |
|
|
|
RET |
|
|
|
; |
|
|
|
; CONVERT LOW NIBBLE OF A TO ASCII HEX |
|
|
|
; |
|
|
|
HEXCONV: |
|
|
|
AND 0FH ;LOW NIBBLE ONLY |
|
|
|
ADD A,90H |
|
|
|
DAA |
|
|
|
ADC A,40H |
|
|
|
DAA |
|
|
|
RET |
|
|
|
; |
|
|
|
; ONE OCTAVE TONE TABLE IN FREQUENCY, DURATION FORMAT. TO COMPENSATE FOR DIFFERENT |
|
|
|
; CPU FREQUENCIES THE DURATION IS CALCULATED AND POPULATED AT STARTUP. DIFFERENT OCTAVE |
|
|
|
|