mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
Update nascom.asm
This commit is contained in:
@@ -4417,7 +4417,7 @@ OUTNCR: CALL OUTC ; Output character in A
|
||||
|
||||
; ---------------------------------------------------------------------------------------
|
||||
|
||||
; PLAY O,N,D ; PLAY OCTAVE 0-8, NOTE N (0-11), DURATION (1-8)
|
||||
; PLAY O,N,D ; PLAY OCTAVE 0-8, NOTE N (0-11), DURATION (1-8) [1/8 - 8/8 SECONDS]
|
||||
|
||||
PLAY: CALL GETINT ; GET OCTAVE
|
||||
PUSH AF ; AND SAVE
|
||||
@@ -4453,7 +4453,7 @@ PLAY: CALL GETINT ; GET OCTAVE
|
||||
INC HL ; IN DE
|
||||
LD E,A ; WHICH IS THE
|
||||
LD A,(HL) ; FREQUENCY FOR
|
||||
INC HL ; THE EIGTH
|
||||
INC HL ; THE EIGHTH
|
||||
LD D,A ; OCTAVE
|
||||
|
||||
PUSH DE
|
||||
@@ -4469,7 +4469,7 @@ PLAY: CALL GETINT ; GET OCTAVE
|
||||
POP DE
|
||||
|
||||
LD A,8 ; DIVIDE THE
|
||||
SUB B ; FREQENCY BASED
|
||||
SUB B ; FREQUENCY BASED
|
||||
JR Z,SPK_OCTOK ; ON THE OCTAVE
|
||||
LD B,A
|
||||
SPK_OCTDIV:
|
||||
@@ -4478,23 +4478,34 @@ SPK_OCTDIV:
|
||||
SLA L ; C<L<0 ; TIME WE DIVIDE
|
||||
RL H ; C<H<C ; THE FREQUENCY
|
||||
DJNZ SPK_OCTDIV
|
||||
SPK_OCTOK:
|
||||
POP BC ; RECALL DURATION
|
||||
LD C,B
|
||||
|
||||
LD B,16 ; DIVIDE BY DURATION
|
||||
XOR A
|
||||
ADD HL,HL
|
||||
RLA
|
||||
CP C
|
||||
JR C,$+4
|
||||
INC L
|
||||
SUB C
|
||||
DJNZ $-7
|
||||
ADD A,A
|
||||
CP C
|
||||
JR C,$+3
|
||||
INC HL
|
||||
JR NC,SPK_OCTOK ; SET TO MAXIMUM
|
||||
LD HL,$FFFF ; IF OVERFLOW
|
||||
|
||||
SPK_OCTOK:
|
||||
POP BC ; MULTIPLY CHL X B
|
||||
PUSH DE ; SAVE
|
||||
|
||||
EX DE,HL
|
||||
LD C,0
|
||||
LD H,C
|
||||
LD L,C
|
||||
MULSKP: ADD HL,DE
|
||||
JR NC,MULDLP
|
||||
INC C
|
||||
MULDLP: DJNZ MULSKP
|
||||
|
||||
SRL C ; 0>C>C ; BCHL = BCHL / 2
|
||||
RR H ; C>H>C ;
|
||||
RR L ; C>L>C ;
|
||||
SRL C ; 0>C>C ; BCHL = BCHL / 2
|
||||
RR H ; C>H>C ;
|
||||
RR L ; C>L>C ;
|
||||
SRL C ; 0>C>C ; BCHL = BCHL / 2
|
||||
RR H ; C>H>C ;
|
||||
RR L ; C>L>C ;
|
||||
|
||||
POP DE
|
||||
;
|
||||
; The following SPK_BEEPER routine is a modification of code from
|
||||
; "The Complete SPECTRUM ROM DISSASSEMBLY" by Dr Ian Logan & Dr Frank O’Hara
|
||||
@@ -4622,9 +4633,15 @@ DIV_CANSUB:
|
||||
DEC A
|
||||
JR NZ, DIV_LP ; IX = RESULT
|
||||
|
||||
; LD DE,$FFFF ; IF OVERFLOW SET TO
|
||||
; LD A,H
|
||||
; OR L ; MAXIMUM. OCCURS
|
||||
; CALL NZ,DISP
|
||||
; JR NZ,DUROVF ; FOR 10MHZ+
|
||||
|
||||
PUSH IX ; SAVE RESULT IN TABLE
|
||||
POP DE
|
||||
LD (IY+2),E
|
||||
DUROVF: LD (IY+2),E
|
||||
LD (IY+3),D
|
||||
|
||||
LD DE,4 ; POINT TO NEXT TABLE
|
||||
@@ -4637,18 +4654,24 @@ DIV_CANSUB:
|
||||
DJNZ TBL_LP ; LOOP COUNTER
|
||||
RET
|
||||
|
||||
DISP: PUSH BC
|
||||
DISP:
|
||||
PUSH BC
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
|
||||
; PUSH DE
|
||||
; POP BC
|
||||
; CALL PRTHEXWORD
|
||||
;
|
||||
; PUSH DE
|
||||
; POP BC
|
||||
; CALL PRTHEXWORD
|
||||
PUSH DE
|
||||
POP BC
|
||||
CALL PRTHEXWORD
|
||||
|
||||
LD A,'*'
|
||||
PUSH HL
|
||||
POP BC
|
||||
CALL PRTHEXWORD
|
||||
|
||||
LD A,' '
|
||||
CALL MONOUT
|
||||
|
||||
POP HL
|
||||
POP DE
|
||||
POP BC
|
||||
RET
|
||||
|
||||
|
||||
Reference in New Issue
Block a user