diff --git a/Common/MB-Macros.a b/Common/MB-Macros.a index 8a65147..b9acf1d 100644 --- a/Common/MB-Macros.a +++ b/Common/MB-Macros.a @@ -238,6 +238,9 @@ AYPostProc: ; ; Attenuate AVOL + lda .ay_regs_base+AY_AVOL + and #AY_AMPLITUDE_MODE + bne + ; don't attenuate if amp.mode=envelope lda .ay_regs_base+AY_AVOL sec sbc nAttA @@ -245,10 +248,14 @@ AYPostProc: lda #0 .ay_set_a_vol sta .ay0_regs+AY_AVOL ++ ; ; Attenuate BVOL + lda .ay_regs_base+AY_BVOL + and #AY_AMPLITUDE_MODE + bne + ; don't attenuate if amp.mode=envelope lda .ay_regs_base+AY_BVOL sec sbc nAttB @@ -257,10 +264,14 @@ AYPostProc: .ay_set_b_vol sta .ay0_regs+AY_BVOL sta .ay1_regs+AY_BVOL ++ ; ; Attenuate CVOL + lda .ay_regs_base+AY_CVOL + and #AY_AMPLITUDE_MODE + bne + ; don't attenuate if amp.mode=envelope lda .ay_regs_base+AY_CVOL sec sbc nAttC @@ -268,6 +279,7 @@ AYPostProc: lda #0 .ay_set_c_vol sta .ay1_regs+AY_CVOL ++ ; ; User disable A/B/C diff --git a/Common/MockingboardDefs.a b/Common/MockingboardDefs.a index e1f6408..67bb9cf 100644 --- a/Common/MockingboardDefs.a +++ b/Common/MockingboardDefs.a @@ -29,6 +29,8 @@ AY_EFINE = 11 AY_ECOARSE = 12 AY_ESHAPE = 13 +AY_AMPLITUDE_MODE = $10 ; b4 of AY_xVOL (0=fixed, 1=envelope) + AY_ENA_A = %110110 ; Enable A (Noise & Tone) AY_ENA_B = %101101 ; Enable B (Noise & Tone) AY_ENA_C = %011011 ; Enable C (Noise & Tone) diff --git a/Cybernoid/build.bat b/Cybernoid/build.bat index f5e6f4d..d957a35 100644 --- a/Cybernoid/build.bat +++ b/Cybernoid/build.bat @@ -1,4 +1,2 @@ -D:\Apple][\acme085\acme.exe cybernoid.a -D:\Apple][\InsertBIN2AWS\debug\InsertBIN2AWS.exe cybernoid 6000 cybernoid.aws -java -jar "D:\Apple][\Apple Commander\ac\AppleCommander-1.3.3.9-ac.jar" -d cybernoid ..\ReleaseDSK\Cybernoid.dsk -cat cybernoid | java -jar "D:\Apple][\Apple Commander\ac\AppleCommander-1.3.3.9-ac.jar" -p Cybernoid bin 24576 ..\ReleaseDSK\Cybernoid.dsk \ No newline at end of file +acme.exe cybernoid.a +copy cybernoid.labels %APPLEWIN_DBG%\A2_USER1.sym \ No newline at end of file diff --git a/CybernoidTest/Cybernoid.a b/CybernoidTest/Cybernoid.a index 077a9d0..56480f5 100644 --- a/CybernoidTest/Cybernoid.a +++ b/CybernoidTest/Cybernoid.a @@ -483,7 +483,7 @@ AYData !byte $EB,$01,$00,$00,$00,$00,$BC,$3E,$0A,$00,$00,$00,$00,$00 !byte $EA,$01,$00,$00,$00,$00,$BC,$3E,$09,$00,$00,$00,$00,$00 !byte $E9,$01,$00,$00,$00,$00,$BC,$3E,$00,$00,$00,$00,$00,$00 - !byte $CD,$00,$00,$00,$00,$00,$BC,$3E,$0D,$00,$00,$00,$00,$00 + !byte $CD,$00,$00,$00,$00,$00,$BC,$3E,$0D,$00,$00,$00,$00,$00 ; 1st "noisy" problem starts here !byte $E9,$01,$00,$00,$00,$00,$BC,$3E,$0C,$00,$00,$00,$00,$00 !byte $CD,$00,$00,$00,$00,$00,$BC,$3E,$0B,$00,$00,$00,$00,$00 !byte $E9,$01,$00,$00,$00,$00,$BC,$3E,$0A,$00,$00,$00,$00,$00 @@ -529,7 +529,7 @@ AYData !byte $68,$02,$00,$00,$00,$00,$78,$3E,$0C,$00,$00,$00,$00,$00 ; AY_NOISEPER = 0x78! (but only low 5 bits are valid) - but AY_ENABLE has all noise channels disabled !byte $F4,$00,$00,$00,$00,$00,$78,$3E,$0B,$00,$00,$00,$00,$00 !byte $68,$02,$00,$00,$00,$00,$78,$3E,$0A,$00,$00,$00,$00,$00 - !byte $F4,$00,$00,$00,$00,$00,$78,$3E,$09,$00,$00,$00,$00,$00 + !byte $F4,$00,$00,$00,$00,$00,$78,$3E,$09,$00,$00,$00,$00,$00 ; 1st "noisy" problem ends here !byte $68,$02,$00,$00,$00,$00,$78,$3E,$00,$00,$00,$00,$00,$00 !byte $69,$02,$00,$00,$00,$00,$78,$3E,$0D,$00,$00,$00,$00,$00 !byte $6A,$02,$00,$00,$00,$00,$78,$3E,$0C,$00,$00,$00,$00,$00 @@ -579,7 +579,7 @@ AYData !byte $D2,$04,$00,$00,$00,$00,$78,$3E,$0A,$00,$00,$00,$00,$00 !byte $D1,$04,$00,$00,$00,$00,$78,$3E,$09,$00,$00,$00,$00,$00 !byte $D0,$04,$00,$00,$00,$00,$78,$3E,$00,$00,$00,$00,$00,$00 - !byte $D9,$00,$00,$00,$00,$00,$78,$3E,$0D,$00,$00,$00,$00,$00 + !byte $D9,$00,$00,$00,$00,$00,$78,$3E,$0D,$00,$00,$00,$00,$00 ; 2nd "noisy" problem starts here !byte $25,$02,$00,$00,$00,$00,$78,$3E,$0C,$00,$00,$00,$00,$00 !byte $D9,$00,$00,$00,$00,$00,$78,$3E,$0B,$00,$00,$00,$00,$00 !byte $25,$02,$00,$00,$00,$00,$78,$3E,$0A,$00,$00,$00,$00,$00 @@ -589,7 +589,7 @@ AYData !byte $25,$02,$00,$00,$00,$00,$78,$3E,$0C,$00,$00,$00,$00,$00 !byte $D9,$00,$00,$00,$00,$00,$78,$3E,$0B,$00,$00,$00,$00,$00 !byte $25,$02,$00,$00,$00,$00,$78,$3E,$0A,$00,$00,$00,$00,$00 - !byte $D9,$00,$00,$00,$00,$00,$78,$3E,$09,$00,$00,$00,$00,$00 + !byte $D9,$00,$00,$00,$00,$00,$78,$3E,$09,$00,$00,$00,$00,$00 ; 2nd "noisy" problem end here !byte $25,$02,$00,$00,$00,$00,$78,$3E,$00,$00,$00,$00,$00,$00 !byte $4B,$04,$00,$00,$00,$00,$78,$3E,$0D,$00,$00,$00,$00,$00 !byte $4C,$04,$00,$00,$00,$00,$78,$3E,$0C,$00,$00,$00,$00,$00 @@ -675,7 +675,7 @@ AYData !byte $EB,$01,$00,$00,$00,$00,$34,$3C,$0A,$00,$00,$00,$00,$00 !byte $EA,$01,$00,$00,$00,$00,$34,$3C,$09,$00,$00,$00,$00,$00 !byte $E9,$01,$00,$00,$00,$00,$34,$3C,$00,$00,$00,$00,$00,$00 - !byte $CD,$00,$00,$00,$00,$00,$34,$3C,$0D,$00,$00,$00,$00,$00 + !byte $CD,$00,$00,$00,$00,$00,$34,$3C,$0D,$00,$00,$00,$00,$00 ; 3rd "noisy" problem starts here !byte $E9,$01,$00,$00,$00,$00,$34,$3C,$0C,$00,$00,$00,$00,$00 !byte $CD,$00,$00,$00,$00,$00,$34,$3C,$0B,$00,$00,$00,$00,$00 !byte $E9,$01,$00,$00,$00,$00,$F0,$3C,$0A,$00,$00,$00,$00,$00 @@ -721,7 +721,7 @@ AYData !byte $68,$02,$00,$00,$00,$00,$01,$2C,$0C,$0B,$00,$00,$00,$00 !byte $F4,$00,$00,$00,$00,$00,$01,$2C,$0B,$0A,$00,$00,$00,$00 !byte $68,$02,$00,$00,$00,$00,$01,$2C,$0A,$09,$00,$00,$00,$00 - !byte $F4,$00,$00,$00,$00,$00,$01,$2C,$09,$08,$00,$00,$00,$00 + !byte $F4,$00,$00,$00,$00,$00,$01,$2C,$09,$08,$00,$00,$00,$00 ; 3rd "noisy" problem end here !byte $68,$02,$00,$00,$00,$00,$01,$2C,$00,$07,$00,$00,$00,$00 !byte $69,$02,$00,$00,$00,$00,$01,$2C,$0D,$0C,$00,$00,$00,$00 !byte $6A,$02,$00,$00,$00,$00,$01,$2C,$0C,$0B,$00,$00,$00,$00