mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:33:12 -06:00
@@ -1171,6 +1171,11 @@ DSK_GETINF:
|
||||
RLCA ; ... TO USE AS OFFSET INTO DRVMAP
|
||||
CALL ADDHLA ; ADD OFFSET
|
||||
LD D,(HL) ; D := UNIT
|
||||
|
||||
LD A,D ; PUT UNIT IN ACCUM
|
||||
INC A ; $FF -> $00
|
||||
JR Z,DSK_GETINF1 ; HANDLE UNASSIGNED DRIVE LETTER
|
||||
|
||||
INC HL ; BUMP TO SLICE
|
||||
LD E,(HL) ; E := SLICE
|
||||
INC HL ; POINT TO DPH LSB
|
||||
@@ -1178,9 +1183,11 @@ DSK_GETINF:
|
||||
INC HL ; POINT TO DPH MSB
|
||||
LD H,(HL) ; H := DPH MSB
|
||||
LD L,A ; L := DPH LSB
|
||||
LD A,H ; TEST FOR INVALID DPH
|
||||
OR L ; ... BY CHECKING FOR ZERO VALUE
|
||||
JR Z,DSK_GETINF1 ; HANDLE ZERO DPH, DRIVE IS INVALID
|
||||
|
||||
;LD A,H ; TEST FOR INVALID DPH
|
||||
;OR L ; ... BY CHECKING FOR ZERO VALUE
|
||||
;JR Z,DSK_GETINF1 ; HANDLE ZERO DPH, DRIVE IS INVALID
|
||||
|
||||
XOR A ; SET SUCCESS
|
||||
RET
|
||||
;
|
||||
@@ -1198,7 +1205,7 @@ DSK_GETINF1: ; ERROR RETURN
|
||||
DSK_SELECT:
|
||||
LD B,E ; SAVE E IN B FOR NOW
|
||||
CALL DSK_GETINF ; GET D=UNIT, E=SLICE, HL=DPH ADDRESS
|
||||
CALL NZ,PANIC ; *DEBUG*
|
||||
;CALL NZ,PANIC ; *DEBUG*
|
||||
RET NZ ; RETURN IF INVALID DRIVE (A=1, NZ SET, HL=0)
|
||||
PUSH BC ; WE NEED B LATER, SAVE ON STACK
|
||||
;
|
||||
|
||||
@@ -228,25 +228,26 @@ dinit6:
|
||||
pop de ; restore drive list ptr
|
||||
inc de ; increment active drive list ptr
|
||||
djnz dinit6 ; loop as needed
|
||||
ret
|
||||
|
||||
; zero out remaining dph table entries
|
||||
ld a,16 ; dph table entries
|
||||
sub l ; subtract entries used
|
||||
ret z ; return if all entries used
|
||||
ld b,a ; save as loop counter
|
||||
ld a,l ; current dph to accum
|
||||
rlca ; *2 for word entry
|
||||
ld hl,@dtbl ; start of dtbl
|
||||
call addhla ; hl now points to entry
|
||||
|
||||
dinit6a:
|
||||
xor a ; zero accum
|
||||
ld (hl),a ; zero lsb
|
||||
inc hl ; next byte
|
||||
ld (hl),a ; zero msb
|
||||
inc hl ; next byte
|
||||
djnz dinit6a
|
||||
ret ; finished
|
||||
; ; zero out remaining dph table entries
|
||||
; ld a,16 ; dph table entries
|
||||
; sub l ; subtract entries used
|
||||
; ret z ; return if all entries used
|
||||
; ld b,a ; save as loop counter
|
||||
; ld a,l ; current dph to accum
|
||||
; rlca ; *2 for word entry
|
||||
; ld hl,@dtbl ; start of dtbl
|
||||
; call addhla ; hl now points to entry
|
||||
;
|
||||
;dinit6a:
|
||||
; xor a ; zero accum
|
||||
; ld (hl),a ; zero lsb
|
||||
; inc hl ; next byte
|
||||
; ld (hl),a ; zero msb
|
||||
; inc hl ; next byte
|
||||
; djnz dinit6a
|
||||
; ret ; finished
|
||||
|
||||
dinit7: ; process a unit (all slices)
|
||||
ld e,0 ; initialize slice index
|
||||
|
||||
@@ -60,7 +60,7 @@ bell equ 7
|
||||
dw dsk$read
|
||||
dw dsk$login
|
||||
dw dsk$init
|
||||
db 0,0 ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
db 0FFh,0FFh ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
dph0: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw 0, 0 ; LBA Offset
|
||||
|
||||
@@ -68,7 +68,7 @@ dph0: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw dsk$read
|
||||
dw dsk$login
|
||||
dw dsk$init
|
||||
db 0,0 ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
db 0FFh,0FFh ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
dph1: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw 0, 0 ; LBA Offset
|
||||
|
||||
@@ -76,7 +76,7 @@ dph1: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw dsk$read
|
||||
dw dsk$login
|
||||
dw dsk$init
|
||||
db 0,0 ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
db 0FFh,0FFh ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
dph2: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw 0, 0 ; LBA Offset
|
||||
|
||||
@@ -84,7 +84,7 @@ dph2: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw dsk$read
|
||||
dw dsk$login
|
||||
dw dsk$init
|
||||
db 0,0 ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
db 0FFh,0FFh ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
dph3: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw 0, 0 ; LBA Offset
|
||||
|
||||
@@ -92,7 +92,7 @@ dph3: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw dsk$read
|
||||
dw dsk$login
|
||||
dw dsk$init
|
||||
db 0,0 ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
db 0FFh,0FFh ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
dph4: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw 0, 0 ; LBA Offset
|
||||
|
||||
@@ -100,7 +100,7 @@ dph4: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw dsk$read
|
||||
dw dsk$login
|
||||
dw dsk$init
|
||||
db 0,0 ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
db 0FFh,0FFh ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
dph5: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw 0, 0 ; LBA Offset
|
||||
|
||||
@@ -108,7 +108,7 @@ dph5: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw dsk$read
|
||||
dw dsk$login
|
||||
dw dsk$init
|
||||
db 0,0 ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
db 0FFh,0FFh ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
dph6: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw 0, 0 ; LBA Offset
|
||||
|
||||
@@ -116,7 +116,7 @@ dph6: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw dsk$read
|
||||
dw dsk$login
|
||||
dw dsk$init
|
||||
db 0,0 ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
db 0FFh,0FFh ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
dph7: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw 0, 0 ; LBA Offset
|
||||
|
||||
@@ -124,7 +124,7 @@ dph7: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw dsk$read
|
||||
dw dsk$login
|
||||
dw dsk$init
|
||||
db 0,0 ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
db 0FFh,0FFh ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
dph8: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw 0, 0 ; LBA Offset
|
||||
|
||||
@@ -132,7 +132,7 @@ dph8: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw dsk$read
|
||||
dw dsk$login
|
||||
dw dsk$init
|
||||
db 0,0 ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
db 0FFh,0FFh ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
dph9: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw 0, 0 ; LBA Offset
|
||||
|
||||
@@ -140,7 +140,7 @@ dph9: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw dsk$read
|
||||
dw dsk$login
|
||||
dw dsk$init
|
||||
db 0,0 ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
db 0FFh,0FFh ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
dph10: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw 0, 0 ; LBA Offset
|
||||
|
||||
@@ -148,7 +148,7 @@ dph10: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw dsk$read
|
||||
dw dsk$login
|
||||
dw dsk$init
|
||||
db 0,0 ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
db 0FFh,0FFh ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
dph11: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw 0, 0 ; LBA Offset
|
||||
|
||||
@@ -156,7 +156,7 @@ dph11: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw dsk$read
|
||||
dw dsk$login
|
||||
dw dsk$init
|
||||
db 0,0 ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
db 0FFh,0FFh ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
dph12: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw 0, 0 ; LBA Offset
|
||||
|
||||
@@ -164,7 +164,7 @@ dph12: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw dsk$read
|
||||
dw dsk$login
|
||||
dw dsk$init
|
||||
db 0,0 ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
db 0FFh,0FFh ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
dph13: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw 0, 0 ; LBA Offset
|
||||
|
||||
@@ -172,7 +172,7 @@ dph13: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw dsk$read
|
||||
dw dsk$login
|
||||
dw dsk$init
|
||||
db 0,0 ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
db 0FFh,0FFh ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
dph14: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw 0, 0 ; LBA Offset
|
||||
|
||||
@@ -180,7 +180,7 @@ dph14: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw dsk$read
|
||||
dw dsk$login
|
||||
dw dsk$init
|
||||
db 0,0 ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
db 0FFh,0FFh ; HBIOS Disk Unit/Slice (filled in at boot)
|
||||
dph15: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw 0, 0 ; LBA Offset
|
||||
|
||||
@@ -409,11 +409,11 @@ dsk$login:
|
||||
dec hl ; point to disk unit
|
||||
ld a,(hl) ; get unit
|
||||
ld (unit),a ; save it
|
||||
call media ; update DPH for media
|
||||
; Need to do something on error, but bioskrnl provides
|
||||
; no way for us to return an error.
|
||||
;jr nz,???
|
||||
ret
|
||||
inc a ; 0FFh -> 000h
|
||||
jp z,err_ret ; bail out on no disk mapped here
|
||||
|
||||
;call media ; update DPH for media
|
||||
;ret
|
||||
|
||||
media:
|
||||
; Set retry address
|
||||
|
||||
@@ -6,10 +6,11 @@
|
||||
#DEFINE AUDTRACE_E PUSH AF \ LD A, E \ CALL PRTHEXBYTE \ POP AF
|
||||
#DEFINE AUDTRACE_L PUSH AF \ LD A, L \ CALL PRTHEXBYTE \ POP AF
|
||||
#DEFINE AUDTRACE_HL CALL PRTHEXWORDHL
|
||||
#DEFINE AUDTRACE_DE PUSH DE \ PUSH DE \ POP HL \ CALL PRTHEXWORDHL \ POP DE
|
||||
#DEFINE AUDTRACE_BC PUSH HL \ PUSH BC \ POP HL \ CALL PRTHEXWORDHL \ POP HL
|
||||
#DEFINE AUDTRACE_DE PUSH HL \ PUSH DE \ POP HL \ CALL PRTHEXWORDHL \ POP HL
|
||||
#DEFINE AUDTRACE_IY PUSH HL \ PUSH IY \ POP HL \ CALL PRTHEXWORDHL \ POP HL
|
||||
|
||||
#DEFINE AUDDEBUG(S) CALL PRTSTRD \ .TEXT S \ .TEXT "$" ; $$$$$$ PRINT STRING S TO CONSOLE - PRTD("HELLO") - NO TRAILING $ REQUIRED
|
||||
#DEFINE AUDDEBUG(S) push hl \ CALL PRTSTRD \ .TEXT S \ .TEXT "$" \ pop hl ; $$$$$$ PRINT STRING S TO CONSOLE - PRTD("HELLO") - NO TRAILING $ REQUIRED
|
||||
|
||||
#DEFINE AUDTRACE_CR AUDDEBUG("\r\n$")
|
||||
|
||||
@@ -20,6 +21,7 @@
|
||||
#DEFINE AUDTRACE_D
|
||||
#DEFINE AUDTRACE_E
|
||||
#DEFINE AUDTRACE_L
|
||||
#DEFINE AUDTRACE_BC
|
||||
#DEFINE AUDTRACE_HL
|
||||
#DEFINE AUDTRACE_DE
|
||||
#DEFINE AUDTRACE_IY
|
||||
@@ -28,3 +30,46 @@
|
||||
|
||||
#DEFINE AUDTRACE_CR
|
||||
#ENDIF
|
||||
|
||||
|
||||
#IFNDEF AUDIOUTILS
|
||||
#DEFINE AUDIOUTILS
|
||||
|
||||
AUD_NOTE:
|
||||
AUDDEBUG("AUDNOTE ")
|
||||
AUDTRACE_HL
|
||||
AUDTRACE_CR
|
||||
AUDTRACE_DE
|
||||
AUDTRACE_CR
|
||||
|
||||
push de
|
||||
LD DE, 48
|
||||
CALL DIV16
|
||||
; BC IS OCTAVE COUNT
|
||||
; HL is NOTE WITIN OCTAVE
|
||||
ADD HL, HL
|
||||
pop de
|
||||
ADD HL, DE
|
||||
|
||||
LD A, (HL) ; RETRIEVE PERIOD COUNT FROM SN7NOTETBL
|
||||
INC HL
|
||||
LD H, (HL)
|
||||
LD L, A
|
||||
|
||||
INC C
|
||||
AUD_NOTE1:
|
||||
DEC C
|
||||
JR Z, AUD_NOTE2
|
||||
SRL H
|
||||
RR L
|
||||
JR AUD_NOTE1
|
||||
|
||||
AUD_NOTE2:
|
||||
LD A, L ; IF NOT ZERO
|
||||
OR H
|
||||
RET NZ ; RETURN THE CALCULATED PERIOD
|
||||
|
||||
LD H, $FF ; OTHERWISE RETURN -1 PERIOD (ERROR)
|
||||
LD L, $FF
|
||||
RET
|
||||
#ENDIF
|
||||
@@ -20,7 +20,7 @@ AY_RIN .EQU AY_RSEL
|
||||
AY_ACR .EQU N8_DEFACR
|
||||
#ENDIF
|
||||
;
|
||||
#IF (AYMODE == AYMODE_RCZ80)
|
||||
#IF (AYMODE == AYMODE_RCZ80)
|
||||
AY_RSEL .EQU $D8
|
||||
AY_RDAT .EQU $D0
|
||||
AY_RIN .EQU AY_RSEL+AY_RCSND
|
||||
@@ -71,9 +71,7 @@ AY_NOISECNT .EQU 1 ; COUNT NUMBER OF NOISE CHANNELS
|
||||
;
|
||||
AY_PHICLK .EQU 3579545 ; MSX NTSC COLOUR BURST FREQ = 315/88
|
||||
;AY_PHICLK .EQU 3500000 ; ZX SPECTRUM 3.5MHZ
|
||||
;AY_PHICLK .EQU 4000000 ; RETROBREW SCB-SCG
|
||||
AY_CLKDIV .EQU 2
|
||||
AY_CLK .EQU AY_PHICLK / AY_CLKDIV
|
||||
;AY_PHICLK .EQU 4000000 ; RETROBREW SCB-SCG
|
||||
AY_RATIO .EQU AY_CLK * 100 / 16
|
||||
;
|
||||
#INCLUDE "audio.inc"
|
||||
@@ -99,7 +97,7 @@ AY38910_INIT:
|
||||
#ENDIF
|
||||
;
|
||||
LD DE,(AY_R2CHBP*256)+$55 ; SIMPLE HARDWARE PROBE
|
||||
CALL AY_WRTPSG ; WRITE AND
|
||||
CALL AY_WRTPSG ; WRITE AND
|
||||
CALL AY_RDPSG ; READ TO A
|
||||
LD A,$55 ; SOUND CHANNEL
|
||||
CP E ; REGISTER
|
||||
@@ -107,7 +105,7 @@ AY38910_INIT:
|
||||
;
|
||||
CALL PRTSTRD \ .TEXT " NOT PRESENT$"
|
||||
;
|
||||
LD A,$FF ; UNSUCCESSFULL INIT
|
||||
LD A,$FF ; UNSUCCESSFULL INIT
|
||||
RET
|
||||
;
|
||||
AY_FND: LD IY, AY_IDAT ; SETUP FUNCTION TABLE
|
||||
@@ -199,6 +197,19 @@ AY_VOLUME:
|
||||
RET
|
||||
;
|
||||
;======================================================================
|
||||
; SOUND DRIVER FUNCTION - NOTE
|
||||
;======================================================================
|
||||
;
|
||||
AY_NOTE:
|
||||
AUDTRACE(AYT_NOTE)
|
||||
AUDTRACE_HL
|
||||
AUDTRACE_CR
|
||||
|
||||
LD DE, AY3NOTETBL
|
||||
CALL AUD_NOTE ; RETURNS PERIOD IN HL, FALL THRU
|
||||
; TO SET THIS PERIOD
|
||||
;
|
||||
;======================================================================
|
||||
; SOUND DRIVER FUNCTION - PERIOD
|
||||
;======================================================================
|
||||
;
|
||||
@@ -206,7 +217,11 @@ AY_PERIOD:
|
||||
AUDTRACE(AYT_PERIOD)
|
||||
AUDTRACE_HL
|
||||
AUDTRACE_CR
|
||||
;
|
||||
|
||||
LD A, H ; IF ZERO - ERROR
|
||||
OR L
|
||||
JR Z, AY_PERIOD1
|
||||
|
||||
LD A, H ; MAXIMUM TONE PERIOD IS 12-BITS
|
||||
AND 11110000B ; ALLOWED RANGE IS 0001-0FFF (4095)
|
||||
JR NZ, AY_PERIOD1 ; RETURN NZ IF NUMBER TOO LARGE
|
||||
@@ -220,45 +235,6 @@ AY_PERIOD1:
|
||||
RET ; AND RETURN FAILURE
|
||||
;
|
||||
;======================================================================
|
||||
; SOUND DRIVER FUNCTION - NOTE
|
||||
;======================================================================
|
||||
;
|
||||
AY_NOTE:
|
||||
AUDTRACE(AYT_NOTE)
|
||||
AUDTRACE_L
|
||||
AUDTRACE_CR
|
||||
;
|
||||
PUSH HL
|
||||
PUSH DE
|
||||
LD H,0
|
||||
ADD HL, HL ; SHIFT RIGHT (MULT 2) -INDEX INTO AY3NOTETBL TABLE OF WORDS
|
||||
; ; TEST IF HL IS LARGER THAN AY3NOTETBL SIZE
|
||||
; OR A ; CLEAR CARRY FLAG
|
||||
LD DE, SIZ_AY3NOTETBL
|
||||
; SBC HL, DE
|
||||
; JR NC, AY_NOTE1 ; INCOMING HL DOES NOT MAP INTO AY3NOTETBL
|
||||
;
|
||||
; ADD HL, DE ; RESTORE HL
|
||||
LD DE, AY3NOTETBL ; HL = AY3NOTETBL + HL
|
||||
ADD HL, DE
|
||||
;
|
||||
LD A, (HL) ; RETRIEVE PERIOD COUNT FROM AY3NOTETBL
|
||||
INC HL
|
||||
LD H, (HL)
|
||||
LD L, A
|
||||
;
|
||||
CALL AY_PERIOD ; APPLY NOTE PERIOD
|
||||
POP DE
|
||||
POP HL
|
||||
RET
|
||||
;
|
||||
AY_NOTE1:
|
||||
POP DE
|
||||
POP HL
|
||||
OR $FF ; NOT IMPLEMENTED YET
|
||||
RET
|
||||
;
|
||||
;======================================================================
|
||||
; SOUND DRIVER FUNCTION - PLAY
|
||||
; B = FUNCTION
|
||||
; C = AUDIO DEVICE
|
||||
@@ -275,7 +251,7 @@ AY_PLAY:
|
||||
INC A
|
||||
JR Z, AY_PLAY1 ; PERIOD IS TOO LARGE, UNABLE TO PLAY
|
||||
;
|
||||
PUSH HL
|
||||
PUSH HL
|
||||
PUSH DE
|
||||
LD A,D ; LIMIT CHANNEL 0-2
|
||||
AND $3 ; AND INDEX TO THE
|
||||
@@ -460,274 +436,59 @@ AYT_REGWR .DB "\r\nOUT AY-3-8910 $"
|
||||
#ENDIF
|
||||
;
|
||||
;======================================================================
|
||||
; BBC MICRO QUARTER TONE FREQUENCY TABLE
|
||||
; BBC MICRO QUARTER TONE FREQUENCY TABLE
|
||||
;======================================================================
|
||||
;
|
||||
; THE FREQUENCY BY QUARTER TONE STARTING AT A0# OCATVE 0
|
||||
; USED TO MAP EACH OCTAVE (DIV BY 2 TO JUMP AN OCTAVE UP)
|
||||
; FIRST PLAYABLE NOTE WILL BE 0
|
||||
; ASSUMING A CLOCK OF 1843200 THIS MAPS TO A0#
|
||||
AY3NOTETBL:
|
||||
.DW AY_RATIO / 5827 ; A#1 INDEX 0 = A#1 AS PER BBC MANUAL
|
||||
; .DW AY_RATIO / 5912
|
||||
; .DW AY_RATIO / 5998
|
||||
; .DW AY_RATIO / 6085
|
||||
.DW AY_RATIO / 6174 ; B1 INDEX 1 = B1 AS PER BBC MANUAL
|
||||
.DW AY_RATIO / 6263
|
||||
.DW AY_RATIO / 6354
|
||||
.DW AY_RATIO / 6447
|
||||
.DW AY_RATIO / 6541 ; C2
|
||||
.DW AY_RATIO / 6636
|
||||
.DW AY_RATIO / 6732
|
||||
.DW AY_RATIO / 6830
|
||||
.DW AY_RATIO / 6930 ; C#2
|
||||
.DW AY_RATIO / 7030
|
||||
.DW AY_RATIO / 7133
|
||||
.DW AY_RATIO / 7236
|
||||
.DW AY_RATIO / 7342 ; D2
|
||||
.DW AY_RATIO / 7448
|
||||
.DW AY_RATIO / 7557
|
||||
.DW AY_RATIO / 7667
|
||||
.DW AY_RATIO / 7778 ; D#2
|
||||
.DW AY_RATIO / 7891
|
||||
.DW AY_RATIO / 8006
|
||||
.DW AY_RATIO / 8123
|
||||
.DW AY_RATIO / 8241 ; E2
|
||||
.DW AY_RATIO / 8361
|
||||
.DW AY_RATIO / 8482
|
||||
.DW AY_RATIO / 8606
|
||||
.DW AY_RATIO / 8731 ; F2
|
||||
.DW AY_RATIO / 8858
|
||||
.DW AY_RATIO / 8987
|
||||
.DW AY_RATIO / 9117
|
||||
.DW AY_RATIO / 9250 ; F#2
|
||||
.DW AY_RATIO / 9384
|
||||
.DW AY_RATIO / 9521
|
||||
.DW AY_RATIO / 9659
|
||||
.DW AY_RATIO / 9800 ; G2
|
||||
.DW AY_RATIO / 9942
|
||||
.DW AY_RATIO / 10087
|
||||
.DW AY_RATIO / 10234
|
||||
.DW AY_RATIO / 10383 ; G#2
|
||||
.DW AY_RATIO / 10534
|
||||
.DW AY_RATIO / 10687
|
||||
.DW AY_RATIO / 10842
|
||||
.DW AY_RATIO / 11000 ; A2
|
||||
.DW AY_RATIO / 11160
|
||||
.DW AY_RATIO / 11322
|
||||
.DW AY_RATIO / 11487
|
||||
.DW AY_RATIO / 11654 ; A#2
|
||||
.DW AY_RATIO / 11824
|
||||
.DW AY_RATIO / 11996
|
||||
.DW AY_RATIO / 12170
|
||||
.DW AY_RATIO / 12347 ; B2
|
||||
.DW AY_RATIO / 12527
|
||||
.DW AY_RATIO / 12709
|
||||
.DW AY_RATIO / 12894
|
||||
.DW AY_RATIO / 13081 ; C3
|
||||
.DW AY_RATIO / 13272
|
||||
.DW AY_RATIO / 13465
|
||||
.DW AY_RATIO / 13660
|
||||
.DW AY_RATIO / 13859 ; C#3
|
||||
.DW AY_RATIO / 14061
|
||||
.DW AY_RATIO / 14265
|
||||
.DW AY_RATIO / 14473
|
||||
.DW AY_RATIO / 14683 ; D3
|
||||
.DW AY_RATIO / 14897
|
||||
.DW AY_RATIO / 15113
|
||||
.DW AY_RATIO / 15333
|
||||
.DW AY_RATIO / 15556 ; D#3
|
||||
.DW AY_RATIO / 15783
|
||||
.DW AY_RATIO / 16012
|
||||
.DW AY_RATIO / 16245
|
||||
.DW AY_RATIO / 16481 ; E3
|
||||
.DW AY_RATIO / 16721
|
||||
.DW AY_RATIO / 16964
|
||||
.DW AY_RATIO / 17211
|
||||
.DW AY_RATIO / 17461 ; F3
|
||||
.DW AY_RATIO / 17715
|
||||
.DW AY_RATIO / 17973
|
||||
.DW AY_RATIO / 18234
|
||||
.DW AY_RATIO / 18500 ; F#3
|
||||
.DW AY_RATIO / 18769
|
||||
.DW AY_RATIO / 19042
|
||||
.DW AY_RATIO / 19319
|
||||
.DW AY_RATIO / 19600 ; G3
|
||||
.DW AY_RATIO / 19885
|
||||
.DW AY_RATIO / 20174
|
||||
.DW AY_RATIO / 20468
|
||||
.DW AY_RATIO / 20765 ; G#3
|
||||
.DW AY_RATIO / 21067
|
||||
.DW AY_RATIO / 21374
|
||||
.DW AY_RATIO / 21685
|
||||
.DW AY_RATIO / 22000 ; A3
|
||||
.DW AY_RATIO / 22320
|
||||
.DW AY_RATIO / 22645
|
||||
.DW AY_RATIO / 22974
|
||||
.DW AY_RATIO / 23308 ; A#3
|
||||
.DW AY_RATIO / 23647
|
||||
.DW AY_RATIO / 23991
|
||||
.DW AY_RATIO / 24340
|
||||
.DW AY_RATIO / 24694 ; B3
|
||||
.DW AY_RATIO / 25053
|
||||
.DW AY_RATIO / 25418
|
||||
.DW AY_RATIO / 25787
|
||||
.DW AY_RATIO / 26163 ; C4
|
||||
.DW AY_RATIO / 26543
|
||||
.DW AY_RATIO / 26929
|
||||
.DW AY_RATIO / 27321
|
||||
.DW AY_RATIO / 27718 ; C#4
|
||||
.DW AY_RATIO / 28121
|
||||
.DW AY_RATIO / 28530
|
||||
.DW AY_RATIO / 28945
|
||||
.DW AY_RATIO / 29366 ; D4
|
||||
.DW AY_RATIO / 29794
|
||||
.DW AY_RATIO / 30227
|
||||
.DW AY_RATIO / 30667
|
||||
.DW AY_RATIO / 31113 ; D#4
|
||||
.DW AY_RATIO / 31565
|
||||
.DW AY_RATIO / 32024
|
||||
.DW AY_RATIO / 32490
|
||||
.DW AY_RATIO / 32963 ; E4
|
||||
.DW AY_RATIO / 33442
|
||||
.DW AY_RATIO / 33929
|
||||
.DW AY_RATIO / 34422
|
||||
.DW AY_RATIO / 34923 ; F4
|
||||
.DW AY_RATIO / 35431
|
||||
.DW AY_RATIO / 35946
|
||||
.DW AY_RATIO / 36469
|
||||
.DW AY_RATIO / 36999 ; F#4
|
||||
.DW AY_RATIO / 37538
|
||||
.DW AY_RATIO / 38084
|
||||
.DW AY_RATIO / 38638
|
||||
.DW AY_RATIO / 39200 ; G4
|
||||
.DW AY_RATIO / 39770
|
||||
.DW AY_RATIO / 40348
|
||||
.DW AY_RATIO / 40935
|
||||
.DW AY_RATIO / 41530 ; G#4
|
||||
.DW AY_RATIO / 42135
|
||||
.DW AY_RATIO / 42747
|
||||
.DW AY_RATIO / 43369
|
||||
.DW AY_RATIO / 44000 ; A4
|
||||
.DW AY_RATIO / 44640
|
||||
.DW AY_RATIO / 45289
|
||||
.DW AY_RATIO / 45948
|
||||
.DW AY_RATIO / 46616 ; A#4
|
||||
.DW AY_RATIO / 47294
|
||||
.DW AY_RATIO / 47982
|
||||
.DW AY_RATIO / 48680
|
||||
.DW AY_RATIO / 49388 ; B4
|
||||
.DW AY_RATIO / 50107
|
||||
.DW AY_RATIO / 50836
|
||||
.DW AY_RATIO / 51575
|
||||
.DW AY_RATIO / 52325 ; C5
|
||||
.DW AY_RATIO / 53086
|
||||
.DW AY_RATIO / 53858
|
||||
.DW AY_RATIO / 54642
|
||||
.DW AY_RATIO / 55437 ; C#5
|
||||
.DW AY_RATIO / 56243
|
||||
.DW AY_RATIO / 57061
|
||||
.DW AY_RATIO / 57891
|
||||
.DW AY_RATIO / 58733 ; D5
|
||||
.DW AY_RATIO / 59587
|
||||
.DW AY_RATIO / 60454
|
||||
.DW AY_RATIO / 61333
|
||||
.DW AY_RATIO / 62225 ; D#5
|
||||
.DW AY_RATIO / 63130
|
||||
.DW AY_RATIO / 64049
|
||||
.DW AY_RATIO / 64980
|
||||
.DW AY_RATIO / 65926 ; E5
|
||||
.DW AY_RATIO / 66884
|
||||
.DW AY_RATIO / 67857
|
||||
.DW AY_RATIO / 68844
|
||||
.DW AY_RATIO / 69846 ; F5
|
||||
.DW AY_RATIO / 70862
|
||||
.DW AY_RATIO / 71892
|
||||
.DW AY_RATIO / 72938
|
||||
.DW AY_RATIO / 73999 ; F#5
|
||||
.DW AY_RATIO / 75075
|
||||
.DW AY_RATIO / 76167
|
||||
.DW AY_RATIO / 77275
|
||||
.DW AY_RATIO / 78399 ; G5
|
||||
.DW AY_RATIO / 79539
|
||||
.DW AY_RATIO / 80696
|
||||
.DW AY_RATIO / 81870
|
||||
.DW AY_RATIO / 83061 ; G#5
|
||||
.DW AY_RATIO / 84269
|
||||
.DW AY_RATIO / 85495
|
||||
.DW AY_RATIO / 86738
|
||||
.DW AY_RATIO / 88000 ; #A5
|
||||
.DW AY_RATIO / 89280
|
||||
.DW AY_RATIO / 90579
|
||||
.DW AY_RATIO / 91896
|
||||
.DW AY_RATIO / 93233 ; A#5
|
||||
.DW AY_RATIO / 94589
|
||||
.DW AY_RATIO / 95965
|
||||
.DW AY_RATIO / 97361
|
||||
.DW AY_RATIO / 98777 ; B5
|
||||
.DW AY_RATIO / 100213
|
||||
.DW AY_RATIO / 101671
|
||||
.DW AY_RATIO / 103150
|
||||
.DW AY_RATIO / 104650 ; C6
|
||||
.DW AY_RATIO / 106172
|
||||
.DW AY_RATIO / 107717
|
||||
.DW AY_RATIO / 109283
|
||||
.DW AY_RATIO / 110873 ; C#6
|
||||
.DW AY_RATIO / 112486
|
||||
.DW AY_RATIO / 114122
|
||||
.DW AY_RATIO / 115782
|
||||
.DW AY_RATIO / 117466 ; D6
|
||||
.DW AY_RATIO / 119174
|
||||
.DW AY_RATIO / 120908
|
||||
.DW AY_RATIO / 122667
|
||||
.DW AY_RATIO / 124451 ; D#6
|
||||
.DW AY_RATIO / 126261
|
||||
.DW AY_RATIO / 128097
|
||||
.DW AY_RATIO / 129961
|
||||
.DW AY_RATIO / 131851 ; E6
|
||||
.DW AY_RATIO / 133769
|
||||
.DW AY_RATIO / 135715
|
||||
.DW AY_RATIO / 137689
|
||||
.DW AY_RATIO / 139691 ; F6
|
||||
.DW AY_RATIO / 141723
|
||||
.DW AY_RATIO / 143785
|
||||
.DW AY_RATIO / 145876
|
||||
.DW AY_RATIO / 147998 ; F#6
|
||||
.DW AY_RATIO / 150150
|
||||
.DW AY_RATIO / 152334
|
||||
.DW AY_RATIO / 154550
|
||||
.DW AY_RATIO / 156798 ; G6
|
||||
.DW AY_RATIO / 159079
|
||||
.DW AY_RATIO / 161393
|
||||
.DW AY_RATIO / 163740
|
||||
.DW AY_RATIO / 166122 ; G#6
|
||||
.DW AY_RATIO / 168538
|
||||
.DW AY_RATIO / 170990
|
||||
.DW AY_RATIO / 173477
|
||||
.DW AY_RATIO / 176000 ; A6
|
||||
.DW AY_RATIO / 178560
|
||||
.DW AY_RATIO / 181157
|
||||
.DW AY_RATIO / 183792
|
||||
.DW AY_RATIO / 186466 ; A#6
|
||||
.DW AY_RATIO / 189178
|
||||
.DW AY_RATIO / 191929
|
||||
.DW AY_RATIO / 194721
|
||||
.DW AY_RATIO / 197553 ; B6
|
||||
.DW AY_RATIO / 200427
|
||||
.DW AY_RATIO / 203342
|
||||
.DW AY_RATIO / 206300
|
||||
.DW AY_RATIO / 209300 ; C7
|
||||
.DW AY_RATIO / 212345
|
||||
.DW AY_RATIO / 215433
|
||||
.DW AY_RATIO / 218567
|
||||
.DW AY_RATIO / 221746 ; C#7
|
||||
.DW AY_RATIO / 224971
|
||||
.DW AY_RATIO / 228244
|
||||
.DW AY_RATIO / 231564
|
||||
.DW AY_RATIO / 234932 ; D7
|
||||
.DW AY_RATIO / 238349
|
||||
.DW AY_RATIO / 241816
|
||||
|
||||
SIZ_AY3NOTETBL .EQU $ - AY3NOTETBL
|
||||
.ECHO "AY-3-8910 approx "
|
||||
.ECHO SIZ_AY3NOTETBL / 2 / 4 / 12
|
||||
.ECHO " Octaves. Last note index supported: "
|
||||
|
||||
.ECHO SIZ_AY3NOTETBL / 2
|
||||
.ECHO "\n"
|
||||
.DW AY_RATIO / 2913
|
||||
.DW AY_RATIO / 2956
|
||||
.DW AY_RATIO / 2999
|
||||
.DW AY_RATIO / 3042
|
||||
.DW AY_RATIO / 3086
|
||||
.DW AY_RATIO / 3131
|
||||
.DW AY_RATIO / 3177
|
||||
.DW AY_RATIO / 3223
|
||||
.DW AY_RATIO / 3270
|
||||
.DW AY_RATIO / 3318
|
||||
.DW AY_RATIO / 3366
|
||||
.DW AY_RATIO / 3415
|
||||
.DW AY_RATIO / 3464
|
||||
.DW AY_RATIO / 3515
|
||||
.DW AY_RATIO / 3566
|
||||
.DW AY_RATIO / 3618
|
||||
.DW AY_RATIO / 3670
|
||||
.DW AY_RATIO / 3724
|
||||
.DW AY_RATIO / 3778
|
||||
.DW AY_RATIO / 3833
|
||||
.DW AY_RATIO / 3889
|
||||
.DW AY_RATIO / 3945
|
||||
.DW AY_RATIO / 4003
|
||||
.DW AY_RATIO / 4061
|
||||
.DW AY_RATIO / 4120
|
||||
.DW AY_RATIO / 4180
|
||||
.DW AY_RATIO / 4241
|
||||
.DW AY_RATIO / 4302
|
||||
.DW AY_RATIO / 4365
|
||||
.DW AY_RATIO / 4428
|
||||
.DW AY_RATIO / 4493
|
||||
.DW AY_RATIO / 4558
|
||||
.DW AY_RATIO / 4624
|
||||
.DW AY_RATIO / 4692
|
||||
.DW AY_RATIO / 4760
|
||||
.DW AY_RATIO / 4829
|
||||
.DW AY_RATIO / 4899
|
||||
.DW AY_RATIO / 4971
|
||||
.DW AY_RATIO / 5043
|
||||
.DW AY_RATIO / 5116
|
||||
.DW AY_RATIO / 5191
|
||||
.DW AY_RATIO / 5266
|
||||
.DW AY_RATIO / 5343
|
||||
.DW AY_RATIO / 5421
|
||||
.DW AY_RATIO / 5499
|
||||
.DW AY_RATIO / 5579
|
||||
.DW AY_RATIO / 5661
|
||||
.DW AY_RATIO / 5743
|
||||
|
||||
@@ -155,6 +155,9 @@ UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
;
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
|
||||
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AYMODE .EQU AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
|
||||
@@ -180,6 +180,9 @@ UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
;
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
|
||||
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AYMODE .EQU AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
|
||||
@@ -235,6 +235,9 @@ UFBASE .EQU $0C ; UF: REGISTERS BASE ADR
|
||||
;
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
|
||||
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
|
||||
@@ -189,6 +189,9 @@ UFBASE .EQU $0C ; UF: REGISTERS BASE ADR
|
||||
;
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
|
||||
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AYMODE .EQU AYMODE_SCG ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
|
||||
@@ -189,6 +189,9 @@ FIFO_BASE .EQU $0C ; UF: REGISTERS BASE ADR
|
||||
;
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
|
||||
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
|
||||
AY38910ENABLE .EQU TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AYMODE .EQU AYMODE_N8 ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
|
||||
@@ -189,6 +189,9 @@ UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
;
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
|
||||
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AYMODE .EQU AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
|
||||
@@ -195,6 +195,9 @@ UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
;
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
|
||||
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AYMODE .EQU AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
|
||||
@@ -191,6 +191,9 @@ UFBASE .EQU $0C ; UF: REGISTERS BASE ADR
|
||||
;
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
|
||||
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AYMODE .EQU AYMODE_SCG ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
|
||||
@@ -184,6 +184,9 @@ UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
;
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
|
||||
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AYMODE .EQU AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
|
||||
@@ -136,6 +136,9 @@ UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
;
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
|
||||
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
|
||||
@@ -146,6 +146,9 @@ UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
;
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
|
||||
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
;======================================================================
|
||||
;
|
||||
; TODO:
|
||||
; 1. PROVIDE SUPPORT FOR NOISE CHANNEL
|
||||
; 2. DOES THIS WORK FOR FASTER CPUS? ONLY BEEN TESTED ON A Z80 7MHZ UNIT
|
||||
;
|
||||
;======================================================================
|
||||
; CONSTANTS
|
||||
@@ -22,22 +24,11 @@ CHANNEL_1_SILENT .EQU $BF
|
||||
CHANNEL_2_SILENT .EQU $DF
|
||||
CHANNEL_3_SILENT .EQU $FF
|
||||
|
||||
SN7CLKDIVIDER .EQU 4
|
||||
SN7CLK .EQU CPUOSC / SN7CLKDIVIDER
|
||||
SN7RATIO .EQU SN7CLK * 100 / 32
|
||||
|
||||
|
||||
SN7_FIRST_NOTE .EQU 5827 ; A1#
|
||||
SN7_LAST_NOTE .EQU 209300 ; C7
|
||||
|
||||
A1S .EQU SN7RATIO / SN7_FIRST_NOTE
|
||||
C7 .EQU SN7RATIO / SN7_LAST_NOTE
|
||||
|
||||
.ECHO "SN76489: range of A1# (period: "
|
||||
.ECHO A1S
|
||||
.ECHO ") to C7 (period: "
|
||||
.ECHO C7
|
||||
.ECHO ")\n"
|
||||
.ECHO "SN76489 CLOCK: "
|
||||
.ECHO SN7CLK
|
||||
.ECHO "\n"
|
||||
|
||||
#INCLUDE "audio.inc"
|
||||
|
||||
@@ -112,55 +103,34 @@ SN7_VOLUME:
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET
|
||||
|
||||
|
||||
|
||||
SN7_NOTE:
|
||||
AUDTRACE(SNT_NOTE)
|
||||
AUDTRACE_HL
|
||||
AUDTRACE_CR
|
||||
|
||||
LD H,0
|
||||
ADD HL, HL ; SHIFT RIGHT (MULT 2) -INDEX INTO SN7NOTETBL TABLE OF WORDS
|
||||
; TEST IF HL IS LARGER THAN SN7NOTETBL SIZE
|
||||
OR A ; CLEAR CARRY FLAG
|
||||
LD DE, SIZ_SN7NOTETBL
|
||||
SBC HL, DE
|
||||
JR NC, SN7_NOTE1 ; INCOMING HL DOES NOT MAP INTO SN7NOTETBL
|
||||
|
||||
ADD HL, DE ; RESTORE HL
|
||||
LD DE, SN7NOTETBL
|
||||
ADD HL, DE
|
||||
|
||||
LD A, (HL) ; RETRIEVE PERIOD COUNT FROM SN7NOTETBL
|
||||
INC HL
|
||||
LD H, (HL)
|
||||
LD L, A
|
||||
|
||||
JR SN7_PERIOD ; APPLY PERIOD
|
||||
|
||||
SN7_NOTE1:
|
||||
OR $FF ; NOT IMPLEMENTED YET
|
||||
RET
|
||||
|
||||
CALL AUD_NOTE ; RETURNS PERIOD IN HL, FALL THRU
|
||||
; TO SET THIS PERIOD
|
||||
SN7_PERIOD:
|
||||
AUDTRACE(SNT_PERIOD)
|
||||
AUDTRACE_HL
|
||||
AUDTRACE_CR
|
||||
|
||||
LD A, H
|
||||
CP $04
|
||||
JP NC, SN7_QUERY_PERIOD1 ; RETURN NZ IF NUMBER TOO LARGE
|
||||
LD A, H ; IF ZERO - ERROR
|
||||
OR L
|
||||
JR Z, SN7_QUERY_PERIOD1
|
||||
|
||||
LD (SN7_PENDING_PERIOD), HL ;ASSUME SUCCESS
|
||||
|
||||
OR A ; IF >= 401 ERROR
|
||||
LD DE, $401
|
||||
SBC HL, DE
|
||||
JR NC, SN7_QUERY_PERIOD1
|
||||
|
||||
LD (SN7_PENDING_PERIOD), HL
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET
|
||||
|
||||
SN7_QUERY_PERIOD1: ; REQUESTED PERIOD IS LARGER THAN THE SN76489 CAN SUPPORT
|
||||
LD L, $FF
|
||||
LD H, $FF
|
||||
LD A, $FF
|
||||
LD L, A
|
||||
LD H, A
|
||||
LD (SN7_PENDING_PERIOD), HL
|
||||
|
||||
OR $FF ; SIGNAL FAILURE
|
||||
RET
|
||||
|
||||
SN7_PLAY:
|
||||
@@ -361,262 +331,58 @@ SNT_PLAY .DB "\r\nSN7_PLAY CH: $"
|
||||
SNT_REGWR .DB "\r\nOUT SN76489, $"
|
||||
#ENDIF
|
||||
|
||||
; THE FREQUENCY BY QUARTER TONE STARTING AT A1#
|
||||
; THE FREQUENCY BY QUARTER TONE STARTING AT A0# OCATVE 0
|
||||
; USED TO MAP EACH OCTAVE (DIV BY 2 TO JUMP AN OCTAVE UP)
|
||||
; FIRST PLAYABLE NOTE WILL BE $2E
|
||||
; ASSUMING A CLOCK OF 1843200 THIS MAPS TO
|
||||
; 2 QUATER TONES BELOW A1#, WITH A1# AT $30
|
||||
|
||||
SN7NOTETBL:
|
||||
.DW A1S ; 5827
|
||||
.DW SN7RATIO / 5912
|
||||
.DW SN7RATIO / 5998
|
||||
.DW SN7RATIO / 6085
|
||||
.DW SN7RATIO / 6174
|
||||
.DW SN7RATIO / 6264
|
||||
.DW SN7RATIO / 6355
|
||||
.DW SN7RATIO / 6447
|
||||
.DW SN7RATIO / 6541
|
||||
.DW SN7RATIO / 6636
|
||||
.DW SN7RATIO / 6733
|
||||
.DW SN7RATIO / 6831
|
||||
.DW SN7RATIO / 6930
|
||||
.DW SN7RATIO / 7031
|
||||
.DW SN7RATIO / 7133
|
||||
.DW SN7RATIO / 7237
|
||||
.DW SN7RATIO / 7342
|
||||
.DW SN7RATIO / 7449
|
||||
.DW SN7RATIO / 7557
|
||||
.DW SN7RATIO / 7667
|
||||
.DW SN7RATIO / 7778
|
||||
.DW SN7RATIO / 7891
|
||||
.DW SN7RATIO / 8006
|
||||
.DW SN7RATIO / 8122
|
||||
.DW SN7RATIO / 8241
|
||||
.DW SN7RATIO / 8361
|
||||
.DW SN7RATIO / 8482
|
||||
.DW SN7RATIO / 8606
|
||||
.DW SN7RATIO / 8731
|
||||
.DW SN7RATIO / 8858
|
||||
.DW SN7RATIO / 8987
|
||||
.DW SN7RATIO / 9118
|
||||
.DW SN7RATIO / 9250
|
||||
.DW SN7RATIO / 9385
|
||||
.DW SN7RATIO / 9521
|
||||
.DW SN7RATIO / 9660
|
||||
.DW SN7RATIO / 9800
|
||||
.DW SN7RATIO / 9943
|
||||
.DW SN7RATIO / 10087
|
||||
.DW SN7RATIO / 10234
|
||||
.DW SN7RATIO / 10383
|
||||
.DW SN7RATIO / 10534
|
||||
.DW SN7RATIO / 10687
|
||||
.DW SN7RATIO / 10843
|
||||
.DW SN7RATIO / 11000
|
||||
.DW SN7RATIO / 11160
|
||||
.DW SN7RATIO / 11322
|
||||
.DW SN7RATIO / 11487
|
||||
.DW SN7RATIO / 11654
|
||||
.DW SN7RATIO / 11824
|
||||
.DW SN7RATIO / 11995
|
||||
.DW SN7RATIO / 12170
|
||||
.DW SN7RATIO / 12347
|
||||
.DW SN7RATIO / 12527
|
||||
.DW SN7RATIO / 12709
|
||||
.DW SN7RATIO / 12894
|
||||
.DW SN7RATIO / 13081
|
||||
.DW SN7RATIO / 13271
|
||||
.DW SN7RATIO / 13464
|
||||
.DW SN7RATIO / 13660
|
||||
.DW SN7RATIO / 13859
|
||||
.DW SN7RATIO / 14061
|
||||
.DW SN7RATIO / 14265
|
||||
.DW SN7RATIO / 14473
|
||||
.DW SN7RATIO / 14683
|
||||
.DW SN7RATIO / 14897
|
||||
.DW SN7RATIO / 15113
|
||||
.DW SN7RATIO / 15333
|
||||
.DW SN7RATIO / 15556
|
||||
.DW SN7RATIO / 15782
|
||||
.DW SN7RATIO / 16012
|
||||
.DW SN7RATIO / 16245
|
||||
.DW SN7RATIO / 16481
|
||||
.DW SN7RATIO / 16721
|
||||
.DW SN7RATIO / 16964
|
||||
.DW SN7RATIO / 17211
|
||||
.DW SN7RATIO / 17461
|
||||
.DW SN7RATIO / 17715
|
||||
.DW SN7RATIO / 17973
|
||||
.DW SN7RATIO / 18234
|
||||
.DW SN7RATIO / 18500
|
||||
.DW SN7RATIO / 18769
|
||||
.DW SN7RATIO / 19042
|
||||
.DW SN7RATIO / 19319
|
||||
.DW SN7RATIO / 19600
|
||||
.DW SN7RATIO / 19885
|
||||
.DW SN7RATIO / 20174
|
||||
.DW SN7RATIO / 20468
|
||||
.DW SN7RATIO / 20765
|
||||
.DW SN7RATIO / 21067
|
||||
.DW SN7RATIO / 21373
|
||||
.DW SN7RATIO / 21684
|
||||
.DW SN7RATIO / 22000
|
||||
.DW SN7RATIO / 22320
|
||||
.DW SN7RATIO / 22645
|
||||
.DW SN7RATIO / 22974
|
||||
.DW SN7RATIO / 23308
|
||||
.DW SN7RATIO / 23647
|
||||
.DW SN7RATIO / 23991
|
||||
.DW SN7RATIO / 24340
|
||||
.DW SN7RATIO / 24694
|
||||
.DW SN7RATIO / 25053
|
||||
.DW SN7RATIO / 25418
|
||||
.DW SN7RATIO / 25787
|
||||
.DW SN7RATIO / 26163
|
||||
.DW SN7RATIO / 26544
|
||||
.DW SN7RATIO / 26930
|
||||
.DW SN7RATIO / 27321
|
||||
.DW SN7RATIO / 27718
|
||||
.DW SN7RATIO / 28121
|
||||
.DW SN7RATIO / 28530
|
||||
.DW SN7RATIO / 28945
|
||||
.DW SN7RATIO / 29366
|
||||
.DW SN7RATIO / 29793
|
||||
.DW SN7RATIO / 30226
|
||||
.DW SN7RATIO / 30666
|
||||
.DW SN7RATIO / 31113
|
||||
.DW SN7RATIO / 31566
|
||||
.DW SN7RATIO / 32025
|
||||
.DW SN7RATIO / 32490
|
||||
.DW SN7RATIO / 32963
|
||||
.DW SN7RATIO / 33442
|
||||
.DW SN7RATIO / 33929
|
||||
.DW SN7RATIO / 34422
|
||||
.DW SN7RATIO / 34923
|
||||
.DW SN7RATIO / 35431
|
||||
.DW SN7RATIO / 35946
|
||||
.DW SN7RATIO / 36469
|
||||
.DW SN7RATIO / 36999
|
||||
.DW SN7RATIO / 37537
|
||||
.DW SN7RATIO / 38083
|
||||
.DW SN7RATIO / 38637
|
||||
.DW SN7RATIO / 39200
|
||||
.DW SN7RATIO / 39770
|
||||
.DW SN7RATIO / 40349
|
||||
.DW SN7RATIO / 40936
|
||||
.DW SN7RATIO / 41530
|
||||
.DW SN7RATIO / 42134
|
||||
.DW SN7RATIO / 42747
|
||||
.DW SN7RATIO / 43369
|
||||
.DW SN7RATIO / 44000
|
||||
.DW SN7RATIO / 44640
|
||||
.DW SN7RATIO / 45289
|
||||
.DW SN7RATIO / 45948
|
||||
.DW SN7RATIO / 46616
|
||||
.DW SN7RATIO / 47294
|
||||
.DW SN7RATIO / 47982
|
||||
.DW SN7RATIO / 48680
|
||||
.DW SN7RATIO / 49388
|
||||
.DW SN7RATIO / 50106
|
||||
.DW SN7RATIO / 50835
|
||||
.DW SN7RATIO / 51575
|
||||
.DW SN7RATIO / 52325
|
||||
.DW SN7RATIO / 53086
|
||||
.DW SN7RATIO / 53858
|
||||
.DW SN7RATIO / 54642
|
||||
.DW SN7RATIO / 55437
|
||||
.DW SN7RATIO / 56243
|
||||
.DW SN7RATIO / 57061
|
||||
.DW SN7RATIO / 57891
|
||||
.DW SN7RATIO / 58733
|
||||
.DW SN7RATIO / 59587
|
||||
.DW SN7RATIO / 60454
|
||||
.DW SN7RATIO / 61333
|
||||
.DW SN7RATIO / 62225
|
||||
.DW SN7RATIO / 63130
|
||||
.DW SN7RATIO / 64048
|
||||
.DW SN7RATIO / 64980
|
||||
.DW SN7RATIO / 65925
|
||||
.DW SN7RATIO / 66884
|
||||
.DW SN7RATIO / 67857
|
||||
.DW SN7RATIO / 68844
|
||||
.DW SN7RATIO / 69846
|
||||
.DW SN7RATIO / 70862
|
||||
.DW SN7RATIO / 71893
|
||||
.DW SN7RATIO / 72938
|
||||
.DW SN7RATIO / 73999
|
||||
.DW SN7RATIO / 75075
|
||||
.DW SN7RATIO / 76167
|
||||
.DW SN7RATIO / 77275
|
||||
.DW SN7RATIO / 78399
|
||||
.DW SN7RATIO / 79539
|
||||
.DW SN7RATIO / 80696
|
||||
.DW SN7RATIO / 81870
|
||||
.DW SN7RATIO / 83061
|
||||
.DW SN7RATIO / 84269
|
||||
.DW SN7RATIO / 85495
|
||||
.DW SN7RATIO / 86738
|
||||
.DW SN7RATIO / 88000
|
||||
.DW SN7RATIO / 89280
|
||||
.DW SN7RATIO / 90579
|
||||
.DW SN7RATIO / 91896
|
||||
.DW SN7RATIO / 93233
|
||||
.DW SN7RATIO / 94589
|
||||
.DW SN7RATIO / 95965
|
||||
.DW SN7RATIO / 97361
|
||||
.DW SN7RATIO / 98777
|
||||
.DW SN7RATIO / 100214
|
||||
.DW SN7RATIO / 101671
|
||||
.DW SN7RATIO / 103150
|
||||
.DW SN7RATIO / 104650
|
||||
.DW SN7RATIO / 106172
|
||||
.DW SN7RATIO / 107716
|
||||
.DW SN7RATIO / 109283
|
||||
.DW SN7RATIO / 110873
|
||||
.DW SN7RATIO / 112486
|
||||
.DW SN7RATIO / 114122
|
||||
.DW SN7RATIO / 115782
|
||||
.DW SN7RATIO / 117466
|
||||
.DW SN7RATIO / 119175
|
||||
.DW SN7RATIO / 120908
|
||||
.DW SN7RATIO / 122667
|
||||
.DW SN7RATIO / 124451
|
||||
.DW SN7RATIO / 126261
|
||||
.DW SN7RATIO / 128098
|
||||
.DW SN7RATIO / 129961
|
||||
.DW SN7RATIO / 131851
|
||||
.DW SN7RATIO / 133769
|
||||
.DW SN7RATIO / 135715
|
||||
.DW SN7RATIO / 137689
|
||||
.DW SN7RATIO / 139691
|
||||
.DW SN7RATIO / 141723
|
||||
.DW SN7RATIO / 143784
|
||||
.DW SN7RATIO / 145876
|
||||
.DW SN7RATIO / 147998
|
||||
.DW SN7RATIO / 150151
|
||||
.DW SN7RATIO / 152335
|
||||
.DW SN7RATIO / 154550
|
||||
.DW SN7RATIO / 156798
|
||||
.DW SN7RATIO / 159079
|
||||
.DW SN7RATIO / 161393
|
||||
.DW SN7RATIO / 163740
|
||||
.DW SN7RATIO / 166122
|
||||
.DW SN7RATIO / 168538
|
||||
.DW SN7RATIO / 170990
|
||||
.DW SN7RATIO / 173477
|
||||
.DW SN7RATIO / 176000
|
||||
.DW SN7RATIO / 178560
|
||||
.DW SN7RATIO / 181157
|
||||
.DW SN7RATIO / 183792
|
||||
.DW SN7RATIO / 186466
|
||||
.DW SN7RATIO / 189178
|
||||
.DW SN7RATIO / 191930
|
||||
.DW SN7RATIO / 194722
|
||||
.DW SN7RATIO / 197553
|
||||
.DW SN7RATIO / 200426
|
||||
.DW SN7RATIO / 203342
|
||||
.DW SN7RATIO / 206299
|
||||
.DW C7 ; 209300
|
||||
|
||||
SIZ_SN7NOTETBL .EQU $ - SN7NOTETBL
|
||||
.ECHO "SN76489 approx "
|
||||
.ECHO SIZ_SN7NOTETBL / 2 / 4 /12
|
||||
.ECHO " Octaves. Last note index supported: "
|
||||
|
||||
.ECHO SIZ_SN7NOTETBL / 2
|
||||
.ECHO "\n"
|
||||
.DW SN7RATIO / 2913
|
||||
.DW SN7RATIO / 2956
|
||||
.DW SN7RATIO / 2999
|
||||
.DW SN7RATIO / 3042
|
||||
.DW SN7RATIO / 3086
|
||||
.DW SN7RATIO / 3131
|
||||
.DW SN7RATIO / 3177
|
||||
.DW SN7RATIO / 3223
|
||||
.DW SN7RATIO / 3270
|
||||
.DW SN7RATIO / 3318
|
||||
.DW SN7RATIO / 3366
|
||||
.DW SN7RATIO / 3415
|
||||
.DW SN7RATIO / 3464
|
||||
.DW SN7RATIO / 3515
|
||||
.DW SN7RATIO / 3566
|
||||
.DW SN7RATIO / 3618
|
||||
.DW SN7RATIO / 3670
|
||||
.DW SN7RATIO / 3724
|
||||
.DW SN7RATIO / 3778
|
||||
.DW SN7RATIO / 3833
|
||||
.DW SN7RATIO / 3889
|
||||
.DW SN7RATIO / 3945
|
||||
.DW SN7RATIO / 4003
|
||||
.DW SN7RATIO / 4061
|
||||
.DW SN7RATIO / 4120
|
||||
.DW SN7RATIO / 4180
|
||||
.DW SN7RATIO / 4241
|
||||
.DW SN7RATIO / 4302
|
||||
.DW SN7RATIO / 4365
|
||||
.DW SN7RATIO / 4428
|
||||
.DW SN7RATIO / 4493
|
||||
.DW SN7RATIO / 4558
|
||||
.DW SN7RATIO / 4624
|
||||
.DW SN7RATIO / 4692
|
||||
.DW SN7RATIO / 4760
|
||||
.DW SN7RATIO / 4829
|
||||
.DW SN7RATIO / 4899
|
||||
.DW SN7RATIO / 4971
|
||||
.DW SN7RATIO / 5043
|
||||
.DW SN7RATIO / 5116
|
||||
.DW SN7RATIO / 5191
|
||||
.DW SN7RATIO / 5266
|
||||
.DW SN7RATIO / 5343
|
||||
.DW SN7RATIO / 5421
|
||||
.DW SN7RATIO / 5499
|
||||
.DW SN7RATIO / 5579
|
||||
.DW SN7RATIO / 5661
|
||||
.DW SN7RATIO / 5743
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -2,4 +2,4 @@
|
||||
#DEFINE RMN 1
|
||||
#DEFINE RUP 1
|
||||
#DEFINE RTP 0
|
||||
#DEFINE BIOSVER "3.1.1-pre.5"
|
||||
#DEFINE BIOSVER "3.1.1-pre.6"
|
||||
|
||||
@@ -3,5 +3,5 @@ rmn equ 1
|
||||
rup equ 1
|
||||
rtp equ 0
|
||||
biosver macro
|
||||
db "3.1.1-pre.5"
|
||||
db "3.1.1-pre.6"
|
||||
endm
|
||||
|
||||
Reference in New Issue
Block a user