From c57c3527d20b202cb90fa87ff34adecc9332a798 Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Sun, 15 Sep 2019 12:12:18 +0800 Subject: [PATCH] Update nascom.asm Add code to start calculating duration based on clock frequency provided by hbios --- Source/HBIOS/nascom.asm | 779 ++++++++++------------------------------ 1 file changed, 190 insertions(+), 589 deletions(-) diff --git a/Source/HBIOS/nascom.asm b/Source/HBIOS/nascom.asm index f4cb995d..9278a227 100644 --- a/Source/HBIOS/nascom.asm +++ b/Source/HBIOS/nascom.asm @@ -4416,39 +4416,44 @@ OUTNCR: CALL OUTC ; Output character in A ; --------------------------------------------------------------------------------------- -; PLAY N,D ; PLAY NOTE N, DURATION DIVIDER +; PLAY O,N,D ; PLAY OCTAVE 0-7, NOTE N (0-11), DURATION (1-8) -PLAY: CALL GETNUM ; GET NOTE TO PLAY - CALL DEINT ; ITS IN DE +PLAY: CALL GETINT ; GET OCTAVE + PUSH AF ; AND SAVE - LD A,SPK_NUMNOT-1 ; EXIT IF NOTE - CP E ; OUT OF RANGE - RET M + CALL CHKSYN ; Make sure ',' follows + .BYTE ',' + CALL GETINT ; GET NOTE PUSH HL ; SAVE SYNTAX POINTER - - LD HL,SPK_TUNTBL ; POINT TO NOTE ENTRY - EX DE,HL - ADD HL,HL - ADD HL,HL + LD L,A + LD H,0 + ADD HL,HL ; X2 + ADD HL,HL ; X4 + LD DE,SPK_TUNTBL ; POINT TO NOTE ENTRY ADD HL,DE ; ITS IN HL EX (SP),HL ; RESTORE SYNTAX POINTER - ; IN HL. DE ON STACK + ; IN HL. NOTE PTR ON STACK CALL CHKSYN ; Make sure ',' follows .BYTE ',' CALL GETINT ; GET DURATION - EX (SP),HL ; RECALL NOTE ENTRY - ; A = DURATION + POP DE ; GET NOTE PTR IN DE + EX (SP),HL ; GET OCTAVE IN HL. SYTAX 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 AF ; SAVE DURATION +; PUSH AF ; SAVE DURATION LD A,(HL) ; LOAD 1ST ARG INC HL ; IN DE @@ -4457,6 +4462,23 @@ SPK_BEEP: INC HL LD D,A ; +; SRL D ; DE / 8 +; RRC E +; SRL D +; RRC E +; SRL D ; DE IS FREQUECY OF +; RRC E ; NOTE IN OCTAVE 7 + + LD A,7+3 + SUB B + LD C,A +SPK_OCTDIV: + SRL D + RRC E + DJNZ SPK_OCTDIV +SPK_OCTOK: + + LD A,(HL) ; LOAD 2ND ARG INC HL ; IN BC LD C,A @@ -4466,25 +4488,8 @@ SPK_BEEP: PUSH BC ; SETUP ARG IN HL POP HL -DIV_HL_C: ; DIVIDE THE NOTE - POP BC ; BY DURATION -; JR DIV_SKIP - - LD C,B - XOR A - LD B,16 -DIV_HL_LP: - ADD HL,HL - RLA - JR C,$+5 - CP C - JR C,$+4 - SUB C - INC L - DJNZ DIV_HL_LP -DIV_SKIP: -; CALL SPK_BEEPER ; PLAY + CALL TEST_FRQ ; RET ; @@ -4557,567 +4562,163 @@ BE_END: EI POP IX RET + +TEST_FRQ: + PUSH HL + PUSH DE + LD BC,500 + PUSH BC ; BC CONTAINS FREQUENCY +; +; ADJUST DURATION BASED ON PROCESSOR SPEED +; +; DURATION = (CPUKHZ / 8) / FREQUENCY +; DURATION = (CPUKHZ * 1000 / 8 ) / FREQUENCY +; DURATION = (CPUKHZ * 125 ) / FREQUENCY +; DURATION = (CPUKHZ * 256 / 2 - CPUKHZ - (2 * CPUKHZ) ) / FREQUENCY + + LD B,BF_SYSGET ; GET CPU SPEED + LD C,BF_SYSGET_CPUINFO ; FROM HBIOS + RST 08 + + PUSH DE ; SAVE FOR CALCULATION + POP BC ; - CPUKHZ - (2 * CPUKHZ) + + LD H,E ; DEHL = HL * 256 + LD E,D + LD D,0 + LD L,D + + SRL E ; DEHL = DEHL / 2 + RR H + RR L + + SBC HL,BC ; DEHL = DEHL - CPUKHZ + JR NC,FRQ_ADJ1 + DEC DE +FRQ_ADJ1: + SLA C ; DEHL = DEHL - (2 * CPUKHZ) + RL B + SBC HL,BC + JR NC,FRQ_ADJ2 + DEC DE +FRQ_ADJ2: + + EX DE,HL ; SETUP REGISTERS FOR DIVIDE + PUSH DE + POP IX + POP BC ; RESTORE FREQUENCY (DIVISOR) + +DIV_3216: ; HLIX = HLIX / BC, DE = REMAINDER + LD DE,0 + LD A,32 +DIV_LP: ADD IX,IX + ADC HL,HL + EX DE,HL + ADC HL,HL + OR A + SBC HL,BC + INC IX + JR NC,DIV_CANSUB + ADD HL,BC + DEC IX +DIV_CANSUB: + EX DE,HL + DEC A + JR NZ, DIV_LP + +; PUSH HL +; POP BC +; CALL PRTHEXWORD +; PUSH IX +; POP BC +; CALL PRTHEXWORD + + POP DE + POP HL + + 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 ; ; STANDARD ONE SECOND TONE TABLES AT 1MHZ (UNCOMPENSATED). FOR SPK_BEEPER, FIRST WORD LOADED INTO DE, SECOND INTO HL ; EXCEL SPREADSHEET FOR CALCULATION CAN BE FOUND HERE: ; https://www.retrobrewcomputers.org/lib/exe/fetch.php?media=boards:sbc:sbc_v2:sbc_v2-004:spk_beep_tuntbl.xlsx ; +; FIRST WORD = C8 * 8 +; SPK_TUNTBL: -#IF (CPUOSC=1000000) - .DW $10, $1DDD ; C0 - .DW $11, $1C31 ; C - .DW $12, $1A9B ; D0 - .DW $13, $191A ; D - .DW $14, $17B3 ; E0 - .DW $15, $165E ; F0 - .DW $17, $151E ; F - .DW $18, $13EE ; G0 - .DW $19, $12CF ; G - .DW $1B, $11C1 ; A0 - .DW $1D, $10C1 ; A - .DW $1E, $FD1 ; B0 - .DW $20, $EEE ; C1 - .DW $22, $E17 ; C - .DW $24, $D4D ; D1 - .DW $26, $C8E ; D - .DW $29, $BD9 ; E1 - .DW $2B, $B2F ; F1 - .DW $2E, $A8E ; F - .DW $31, $9F7 ; G1 - .DW $33, $968 ; G - .DW $37, $8E0 ; A1 - .DW $3A, $861 ; A - .DW $3D, $7E8 ; B1 - .DW $41, $777 ; C2 - .DW $45, $70B ; C - .DW $49, $6A6 ; D2 - .DW $4D, $647 ; D - .DW $52, $5EC ; E2 - .DW $57, $597 ; F2 - .DW $5C, $547 ; F - .DW $62, $4FB ; G2 - .DW $67, $4B3 ; G - .DW $6E, $470 ; A2 - .DW $74, $430 ; A - .DW $7B, $3F4 ; B2 - .DW $82, $3BB ; C3 - .DW $8A, $385 ; C - .DW $92, $353 ; D3 - .DW $9B, $323 ; D - .DW $A4, $2F6 ; E3 - .DW $AE, $2CB ; F3 - .DW $B9, $2A3 ; F - .DW $C4, $27D ; G3 - .DW $CF, $259 ; G - .DW $DC, $238 ; A3 - .DW $E9, $218 ; A - .DW $F6, $1FA ; B3 - .DW $105, $1DD ; C4 - .DW $115, $1C2 ; C - .DW $125, $1A9 ; D4 - .DW $137, $191 ; D - .DW $149, $17B ; E4 - .DW $15D, $165 ; F4 - .DW $171, $151 ; F - .DW $188, $13E ; G4 - .DW $19F, $12C ; G - .DW $1B8, $11C ; A4 - .DW $1D2, $10C ; A - .DW $1ED, $FD ; B4 - .DW $20B, $EE ; C5 - .DW $22A, $E1 ; C - .DW $24B, $D4 ; D5 - .DW $26E, $C8 ; D - .DW $293, $BD ; E5 - .DW $2BA, $B2 ; F5 - .DW $2E3, $A8 ; F - .DW $30F, $9F ; G5 - .DW $33E, $96 ; G - .DW $370, $8E ; A5 - .DW $3A4, $86 ; A - .DW $3DB, $7E ; B5 - .DW $416, $77 ; C6 - .DW $454, $70 ; C - .DW $496, $6A ; D6 - .DW $4DC, $64 ; D - .DW $526, $5E ; E6 - .DW $574, $59 ; F6 - .DW $5C7, $54 ; F - .DW $61F, $4F ; G6 - .DW $67D, $4B ; G - .DW $6E0, $47 ; A6 - .DW $748, $43 ; A - .DW $7B7, $3F ; B6 - .DW $82D, $3B ; C7 - .DW $8A9, $38 ; C - .DW $92D, $35 ; D7 - .DW $9B9, $32 ; D - .DW $A4D, $2F ; E7 - .DW $AE9, $2C ; F7 - .DW $B8F, $2A ; F - .DW $C3F, $27 ; G7 - .DW $CFA, $25 ; G - .DW $DC0, $23 ; A7 - .DW $E91, $21 ; A - .DW $F6F, $1F ; B7 - .DW $105A, $1D ; C8 - .DW $1152, $1C ; C - .DW $125A, $1A ; D8 - .DW $1372, $19 ; D - .DW $149A, $17 ; E8 - .DW $15D3, $16 ; F8 - .DW $171F, $15 ; F - .DW $187F, $13 ; G8 - .DW $19F4, $12 ; G - .DW $1B80, $11 ; A8 - .DW $1D22, $10 ; A - .DW $1EDE, $F ; B8 -#ENDIF -#IF (CPUOSC=2000000) - .DW $10, $3BBA ; C0 - .DW $11, $3862 ; C - .DW $12, $3537 ; D0 - .DW $13, $3235 ; D - .DW $14, $2F67 ; E0 - .DW $15, $2CBC ; F0 - .DW $17, $2A3D ; F - .DW $18, $27DC ; G0 - .DW $19, $259E ; G - .DW $1B, $2382 ; A0 - .DW $1D, $2183 ; A - .DW $1E, $1FA2 ; B0 - .DW $20, $1DDD ; C1 - .DW $22, $1C2F ; C - .DW $24, $1A9A ; D1 - .DW $26, $191C ; D - .DW $29, $17B3 ; E1 - .DW $2B, $165F ; F1 - .DW $2E, $151D ; F - .DW $31, $13EE ; G1 - .DW $33, $12D0 ; G - .DW $37, $11C1 ; A1 - .DW $3A, $10C2 ; A - .DW $3D, $FD1 ; B1 - .DW $41, $EEE ; C2 - .DW $45, $E17 ; C - .DW $49, $D4D ; D2 - .DW $4D, $C8E ; D - .DW $52, $BD9 ; E2 - .DW $57, $B2F ; F2 - .DW $5C, $A8E ; F - .DW $62, $9F7 ; G2 - .DW $67, $967 ; G - .DW $6E, $8E0 ; A2 - .DW $74, $861 ; A - .DW $7B, $7E8 ; B2 - .DW $82, $777 ; C3 - .DW $8A, $70B ; C - .DW $92, $6A6 ; D3 - .DW $9B, $647 ; D - .DW $A4, $5EC ; E3 - .DW $AE, $597 ; F3 - .DW $B9, $547 ; F - .DW $C4, $4FB ; G3 - .DW $CF, $4B3 ; G - .DW $DC, $470 ; A3 - .DW $E9, $430 ; A - .DW $F6, $3F4 ; B3 - .DW $105, $3BB ; C4 - .DW $115, $385 ; C - .DW $125, $353 ; D4 - .DW $137, $323 ; D - .DW $149, $2F6 ; E4 - .DW $15D, $2CB ; F4 - .DW $171, $2A3 ; F - .DW $188, $27D ; G4 - .DW $19F, $259 ; G - .DW $1B8, $238 ; A4 - .DW $1D2, $218 ; A - .DW $1ED, $1FA ; B4 - .DW $20B, $1DD ; C5 - .DW $22A, $1C2 ; C - .DW $24B, $1A9 ; D5 - .DW $26E, $191 ; D - .DW $293, $17B ; E5 - .DW $2BA, $165 ; F5 - .DW $2E3, $151 ; F - .DW $30F, $13E ; G5 - .DW $33E, $12C ; G - .DW $370, $11C ; A5 - .DW $3A4, $10C ; A - .DW $3DB, $FD ; B5 - .DW $416, $EE ; C6 - .DW $454, $E1 ; C - .DW $496, $D4 ; D6 - .DW $4DC, $C8 ; D - .DW $526, $BD ; E6 - .DW $574, $B2 ; F6 - .DW $5C7, $A8 ; F - .DW $61F, $9F ; G6 - .DW $67D, $96 ; G - .DW $6E0, $8E ; A6 - .DW $748, $86 ; A - .DW $7B7, $7E ; B6 - .DW $82D, $77 ; C7 - .DW $8A9, $70 ; C - .DW $92D, $6A ; D7 - .DW $9B9, $64 ; D - .DW $A4D, $5E ; E7 - .DW $AE9, $59 ; F7 - .DW $B8F, $54 ; F - .DW $C3F, $4F ; G7 - .DW $CFA, $4B ; G - .DW $DC0, $47 ; A7 - .DW $E91, $43 ; A - .DW $F6F, $3F ; B7 - .DW $105A, $3B ; C8 - .DW $1152, $38 ; C - .DW $125A, $35 ; D8 - .DW $1372, $32 ; D - .DW $149A, $2F ; E8 - .DW $15D3, $2C ; F8 - .DW $171F, $2A ; F - .DW $187F, $27 ; G8 - .DW $19F4, $25 ; G - .DW $1B80, $23 ; A8 - .DW $1D22, $21 ; A - .DW $1EDE, $37; B8 -#ENDIF -#IF (CPUOSC=4000000) - .DW $10, $3BBA ; C0 - .DW $11, $3862 ; C - .DW $12, $3537 ; D0 - .DW $13, $3235 ; D - .DW $14, $2F67 ; E0 - .DW $15, $2CBC ; F0 - .DW $17, $2A3D ; F - .DW $18, $27DC ; G0 - .DW $19, $259E ; G - .DW $1B, $2382 ; A0 - .DW $1D, $2183 ; A - .DW $1E, $1FA2 ; B0 - .DW $20, $1DDD ; C1 - .DW $22, $1C2F ; C - .DW $24, $1A9A ; D1 - .DW $26, $191C ; D - .DW $29, $17B3 ; E1 - .DW $2B, $165F ; F1 - .DW $2E, $151D ; F - .DW $31, $13EE ; G1 - .DW $33, $12D0 ; G - .DW $37, $11C1 ; A1 - .DW $3A, $10C2 ; A - .DW $3D, $FD1 ; B1 - .DW $41, $EEE ; C2 - .DW $45, $E17 ; C - .DW $49, $D4D ; D2 - .DW $4D, $C8E ; D - .DW $52, $BD9 ; E2 - .DW $57, $B2F ; F2 - .DW $5C, $A8E ; F - .DW $62, $9F7 ; G2 - .DW $67, $967 ; G - .DW $6E, $8E0 ; A2 - .DW $74, $861 ; A - .DW $7B, $7E8 ; B2 - .DW $82, $777 ; C3 - .DW $8A, $70B ; C - .DW $92, $6A6 ; D3 - .DW $9B, $647 ; D - .DW $A4, $5EC ; E3 - .DW $AE, $597 ; F3 - .DW $B9, $547 ; F - .DW $C4, $4FB ; G3 - .DW $CF, $4B3 ; G - .DW $DC, $470 ; A3 - .DW $E9, $430 ; A - .DW $F6, $3F4 ; B3 - .DW $105, $3BB ; C4 - .DW $115, $385 ; C - .DW $125, $353 ; D4 - .DW $137, $323 ; D - .DW $149, $2F6 ; E4 - .DW $15D, $2CB ; F4 - .DW $171, $2A3 ; F - .DW $188, $27D ; G4 - .DW $19F, $259 ; G - .DW $1B8, $238 ; A4 - .DW $1D2, $218 ; A - .DW $1ED, $1FA ; B4 - .DW $20B, $1DD ; C5 - .DW $22A, $1C2 ; C - .DW $24B, $1A9 ; D5 - .DW $26E, $191 ; D - .DW $293, $17B ; E5 - .DW $2BA, $165 ; F5 - .DW $2E3, $151 ; F - .DW $30F, $13E ; G5 - .DW $33E, $12C ; G - .DW $370, $11C ; A5 - .DW $3A4, $10C ; A - .DW $3DB, $FD ; B5 - .DW $416, $EE ; C6 - .DW $454, $E1 ; C - .DW $496, $D4 ; D6 - .DW $4DC, $C8 ; D - .DW $526, $BD ; E6 - .DW $574, $B2 ; F6 - .DW $5C7, $A8 ; F - .DW $61F, $9F ; G6 - .DW $67D, $96 ; G - .DW $6E0, $8E ; A6 - .DW $748, $86 ; A - .DW $7B7, $7E ; B6 - .DW $82D, $77 ; C7 - .DW $8A9, $70 ; C - .DW $92D, $6A ; D7 - .DW $9B9, $64 ; D - .DW $A4D, $5E ; E7 - .DW $AE9, $59 ; F7 - .DW $B8F, $54 ; F - .DW $C3F, $4F ; G7 - .DW $CFA, $4B ; G - .DW $DC0, $47 ; A7 - .DW $E91, $43 ; A - .DW $F6F, $3F ; B7 - .DW $105A, $3B ; C8 - .DW $1152, $38 ; C - .DW $125A, $35 ; D8 - .DW $1372, $32 ; D - .DW $149A, $2F ; E8 - .DW $15D3, $2C ; F8 - .DW $171F, $2A ; F - .DW $187F, $27 ; G8 - .DW $19F4, $25 ; G - .DW $1B80, $23 ; A8 - .DW $1D22, $21 ; A - .DW $10, $12AA4 ; C0 - .DW $11, $119EA ; C - .DW $12, $10A17 ; D0 - .DW $13, $FB0B ; D - .DW $14, $ED07 ; E0 - .DW $15, $DFAC ; F0 - .DW $17, $D331 ; F - .DW $18, $C74C ; G0 - .DW $19, $BC17 ; G - .DW $1B, $B18E ; A0 - .DW $1D, $A790 ; A - .DW $1E, $9E2C ; B0 - .DW $20, $9552 ; C1 - .DW $22, $8CEB ; C - .DW $24, $8502 ; D1 - .DW $26, $7D8D ; D - .DW $29, $7683 ; E1 - .DW $2B, $6FDC ; F1 - .DW $2E, $6993 ; F - .DW $31, $63A6 ; G1 - .DW $33, $5E10 ; G - .DW $37, $58C7 ; A1 - .DW $3A, $53CB ; A - .DW $3D, $4F16 ; B1 - .DW $41, $4AA6 ; C2 - .DW $45, $4675 ; C - .DW $49, $4281 ; D2 - .DW $4D, $3EC6 ; D - .DW $52, $3B40 ; E2 - .DW $57, $37EC ; F2 - .DW $5C, $34C9 ; F - .DW $62, $31D3 ; G2 - .DW $67, $2F06 ; G - .DW $6E, $2C63 ; A2 - .DW $74, $29E5 ; A - .DW $7B, $278B ; B2 - .DW $82, $2553 ; C3 - .DW $8A, $233B ; C - .DW $92, $2141 ; D3 - .DW $9B, $1F63 ; D - .DW $A4, $1DA0 ; E3 - .DW $AE, $1BF6 ; F3 - .DW $B9, $1A64 ; F - .DW $C4, $18E9 ; G3 - .DW $CF, $1783 ; G - .DW $DC, $1631 ; A3 - .DW $E9, $14F2 ; A - .DW $F6, $13C5 ; B3 - .DW $105, $12A9 ; C4 - .DW $115, $119D ; C - .DW $125, $10A0 ; D4 - .DW $137, $FB1 ; D - .DW $149, $ED0 ; E4 - .DW $15D, $DFB ; F4 - .DW $171, $D32 ; F - .DW $188, $C74 ; G4 - .DW $19F, $BC1 ; G - .DW $1B8, $B18 ; A4 - .DW $1D2, $A79 ; A - .DW $1ED, $9E2 ; B4 - .DW $20B, $954 ; C5 - .DW $22A, $8CE ; C - .DW $24B, $850 ; D5 - .DW $26E, $7D8 ; D - .DW $293, $768 ; E5 - .DW $2BA, $6FD ; F5 - .DW $2E3, $699 ; F - .DW $30F, $63A ; G5 - .DW $33E, $5E0 ; G - .DW $370, $58C ; A5 - .DW $3A4, $53C ; A - .DW $3DB, $4F1 ; B5 - .DW $416, $4AA ; C6 - .DW $454, $467 ; C - .DW $496, $428 ; D6 - .DW $4DC, $3EC ; D - .DW $526, $3B4 ; E6 - .DW $574, $37E ; F6 - .DW $5C7, $34C ; F - .DW $61F, $31D ; G6 - .DW $67D, $2F0 ; G - .DW $6E0, $2C6 ; A6 - .DW $748, $29E ; A - .DW $7B7, $278 ; B6 - .DW $82D, $255 ; C7 - .DW $8A9, $233 ; C - .DW $92D, $214 ; D7 - .DW $9B9, $1F6 ; D - .DW $A4D, $1DA ; E7 - .DW $AE9, $1BF ; F7 - .DW $B8F, $1A6 ; F - .DW $C3F, $18E ; G7 - .DW $CFA, $178 ; G - .DW $DC0, $163 ; A7 - .DW $E91, $14F ; A - .DW $F6F, $13C ; B7 - .DW $105A, $12A ; C8 - .DW $1152, $119 ; C - .DW $125A, $10A ; D8 - .DW $1372, $FB ; D - .DW $149A, $ED ; E8 - .DW $15D3, $DF ; F8 - .DW $171F, $D3 ; F - .DW $187F, $C7 ; G8 - .DW $19F4, $BC ; G - .DW $1B80, $B1 ; A8 - .DW $1D22, $A7 ; A - .DW $1EDE, $9E ; B8 -#ENDIF -#IF (CPUOSC=10000000) - .DW $0, $0000 ; .DW $10, $12AA4 ; C0 - .DW $0, $0000 ; .DW $11, $119EA ; C - .DW $0, $0000 ; .DW $12, $10A17 ; D0 - .DW $13, $FB0B ; D - .DW $14, $ED07 ; E0 - .DW $15, $DFAC ; F0 - .DW $17, $D331 ; F - .DW $18, $C74C ; G0 - .DW $19, $BC17 ; G - .DW $1B, $B18E ; A0 - .DW $1D, $A790 ; A - .DW $1E, $9E2C ; B0 - .DW $20, $9552 ; C1 - .DW $22, $8CEB ; C - .DW $24, $8502 ; D1 - .DW $26, $7D8D ; D - .DW $29, $7683 ; E1 - .DW $2B, $6FDC ; F1 - .DW $2E, $6993 ; F - .DW $31, $63A6 ; G1 - .DW $33, $5E10 ; G - .DW $37, $58C7 ; A1 - .DW $3A, $53CB ; A - .DW $3D, $4F16 ; B1 - .DW $41, $4AA6 ; C2 - .DW $45, $4675 ; C - .DW $49, $4281 ; D2 - .DW $4D, $3EC6 ; D - .DW $52, $3B40 ; E2 - .DW $57, $37EC ; F2 - .DW $5C, $34C9 ; F - .DW $62, $31D3 ; G2 - .DW $67, $2F06 ; G - .DW $6E, $2C63 ; A2 - .DW $74, $29E5 ; A - .DW $7B, $278B ; B2 - .DW $82, $2553 ; C3 - .DW $8A, $233B ; C - .DW $92, $2141 ; D3 - .DW $9B, $1F63 ; D - .DW $A4, $1DA0 ; E3 - .DW $AE, $1BF6 ; F3 - .DW $B9, $1A64 ; F - .DW $C4, $18E9 ; G3 - .DW $CF, $1783 ; G - .DW $DC, $1631 ; A3 - .DW $E9, $14F2 ; A - .DW $F6, $13C5 ; B3 - .DW $105, $12A9 ; C4 - .DW $115, $119D ; C - .DW $125, $10A0 ; D4 - .DW $137, $FB1 ; D - .DW $149, $ED0 ; E4 - .DW $15D, $DFB ; F4 - .DW $171, $D32 ; F - .DW $188, $C74 ; G4 - .DW $19F, $BC1 ; G - .DW $1B8, $B18 ; A4 - .DW $1D2, $A79 ; A - .DW $1ED, $9E2 ; B4 - .DW $20B, $954 ; C5 - .DW $22A, $8CE ; C - .DW $24B, $850 ; D5 - .DW $26E, $7D8 ; D - .DW $293, $768 ; E5 - .DW $2BA, $6FD ; F5 - .DW $2E3, $699 ; F - .DW $30F, $63A ; G5 - .DW $33E, $5E0 ; G - .DW $370, $58C ; A5 - .DW $3A4, $53C ; A - .DW $3DB, $4F1 ; B5 - .DW $416, $4AA ; C6 - .DW $454, $467 ; C - .DW $496, $428 ; D6 - .DW $4DC, $3EC ; D - .DW $526, $3B4 ; E6 - .DW $574, $37E ; F6 - .DW $5C7, $34C ; F - .DW $61F, $31D ; G6 - .DW $67D, $2F0 ; G - .DW $6E0, $2C6 ; A6 - .DW $748, $29E ; A - .DW $7B7, $278 ; B6 - .DW $82D, $255 ; C7 - .DW $8A9, $233 ; C - .DW $92D, $214 ; D7 - .DW $9B9, $1F6 ; D - .DW $A4D, $1DA ; E7 - .DW $AE9, $1BF ; F7 - .DW $B8F, $1A6 ; F - .DW $C3F, $18E ; G7 - .DW $CFA, $178 ; G - .DW $DC0, $163 ; A7 - .DW $E91, $14F ; A - .DW $F6F, $13C ; B7 - .DW $105A, $12A ; C8 - .DW $1152, $119 ; C - .DW $125A, $10A ; D8 - .DW $1372, $FB ; D - .DW $149A, $ED ; E8 - .DW $15D3, $DF ; F8 - .DW $171F, $D3 ; F - .DW $187F, $C7 ; G8 - .DW $19F4, $BC ; G - .DW $1B80, $B1 ; A8 - .DW $1D22, $A7 ; A - .DW $1EDE, $9E ; B8 -#ENDIF - -SPK_NUMNOT .EQU ($-SPK_TUNTBL)/4 - -TXT_READY: - .DB CR,LF - .TEXT "BASIC READY " - .DB CR,LF,0FFH - + .DW $82D0, $012A ; C + .DW $8A97, $0111 ; C# + .DW $92D5, $010A ; D + .DW $9B90, $00FB ; D# + .DW $A4D0, $00ED ; E + .DW $AE9D, $00DF ; F + .DW $B8FF, $00D3 ; F# + .DW $C3FF, $00C7 ; G + .DW $CFA7, $00BC ; G# + .DW $DC00, $00B1 ; A + .DW $E914, $00A7 ; A# + .DW $F6F1, $009E ; B + SLACK .EQU (BAS_END - $) .FILL SLACK,00H ;