Browse Source

Update nascom.asm

pull/49/head
b1ackmai1er 6 years ago
parent
commit
ea8dad4220
  1. 73
      Source/HBIOS/nascom.asm

73
Source/HBIOS/nascom.asm

@ -4445,15 +4445,8 @@ PLAY: CALL GETINT ; GET OCTAVE
EX (SP),HL ; GET OCTAVE IN HL. SYNTAX POINTER ON STACK
EX DE,HL ; PUT NOTE PTR IN HL, OCTAVE IN DE
PUSH BC
LD B,D
CALL SPK_BEEP
POP BC
POP HL ; RECALL SYNTAX POINTER
RET
SPK_BEEP:
PUSH BC ; SAVE SYNTAX POINTER
LD B,D ; SAVE OCTAVE
PUSH AF ; SAVE DURATION
LD A,(HL) ; LOAD 1ST ARG
@ -4478,7 +4471,7 @@ SPK_BEEP:
LD A,8 ; DIVIDE THE
SUB B ; FREQENCY BASED
JR Z,SPK_OCTOK ; ON THE OCTAVE
LD C,A ; REQUESTED
LD B,A
SPK_OCTDIV:
SRL D ; 0>D>C ; MULTIPLY THE
RR E ; C>E>C ; DURATION EVERY
@ -4510,7 +4503,6 @@ SPK_OCTOK:
; DE Number of passes to make through the sound generation loop
; HL Loop delay parameter
SPK_BEEPER:
PUSH IX
DI ; Disable the interrupt for the duration of a 'beep'.
LD A,L ; Save L temporarily.
@ -4561,6 +4553,8 @@ BE_AGAIN: ; The parameters for the second half-cycle are set up.
BE_END: EI
POP IX
POP BC ; RECALL SYNTAX POINTER
POP HL
RET
;
RTCVAL .DB 0
@ -4573,12 +4567,6 @@ RTCVAL .DB 0
; DURATION = (CPUKHZ * 256 / 2 - CPUKHZ - (2 * CPUKHZ) ) / FREQUENCY
SET_DUR_TBL:
; PUSH IX
; PUSH IY
; PUSH HL
; PUSH DE
; PUSH BC
LD B,BF_SYSGET ; GET CPU SPEED
LD C,BF_SYSGET_CPUINFO ; FROM HBIOS
RST 08
@ -4608,7 +4596,7 @@ FRQ_AJ2:PUSH HL ; DEHL = CPUKHZ / 8) / FREQUENCY
EX DE,HL
LD IY,FRQDURTBL ; POINT TO THE TABLE WE
LD C,12 ; WANT TO READ AND UPDATE
LD B,FDTBSIZ ; WANT TO READ AND UPDATE
TBL_LP: PUSH BC
LD C,(IY+0) ; READ THE FREQUENCY
@ -4647,26 +4635,22 @@ DIV_CANSUB:
POP BC ; RETREIVE THE
DJNZ TBL_LP ; LOOP COUNTER
RET
; POP BC
; POP DE
; POP HL
; POP IY
; POP IX
DISP: PUSH BC
RET
; PUSH DE
; POP BC
; CALL PRTHEXWORD
;
; PUSH DE
; POP BC
; CALL PRTHEXWORD
LD A,' '
LD A,'*'
CALL MONOUT
LD HL,(FRQDURTBL+12)
PUSH HL
POP BC
CALL PRTHEXWORD
LD HL,(FRQDURTBL+14)
PUSH HL
POP BC
CALL PRTHEXWORD
RET
PRTHEXBYTE:
PUSH AF
@ -4734,19 +4718,15 @@ HEXCONV:
; AND DURATIONS ARE CALCULATE BY MODIFYING THE VALUES READ FROM THIS TABLE.
;
FRQDURTBL:
.DW $105A, $0 ; C
.DW $1152, $0 ; C#
.DW $125A, $0 ; D
.DW $1372, $0 ; D#
.DW $149A, $0 ; E
.DW $15D3, $0 ; F
.DW $171F, $0 ; F#
.DW $1875, $0 ; G
.DW $19F4, $0 ; G#
.DW $1B80, $0 ; A
.DW $1D22, $0 ; A#
.DW $1EDE, $0 ; B
.DW $105A, $0, $1152, $0 ; C, C#
.DW $125A, $0, $1372, $0 ; D, D#
.DW $149A, $0 ; E
.DW $15D3, $0, $171F, $0 ; F, F#
.DW $1875, $0, $19F4, $0 ; G, G#
.DW $1B80, $0, $1D22, $0 ; A, A#
.DW $1EDE, $0 ; B
FDTBSIZ .EQU ($-FRQDURTBL)/4
SLACK .EQU (BAS_END - $)
.FILL SLACK,00H
@ -4755,5 +4735,4 @@ SLACK .EQU (BAS_END - $)
.ECHO SLACK
.ECHO " bytes.\n"
.end
.END

Loading…
Cancel
Save