better SIDs and integers handling in config files

This commit is contained in:
FeralChild64 committed 2020-09-21 23:01:05 +02:00
1 parent d0081fd21e
commit 76250afac9
9 files changed
+74 -19

No files matched your search

+2
View File
@@ -69,6 +69,8 @@
;; #CONFIG# SID_3RD_ADDRESS NO
;; #CONFIG# SID_D4XX NO
;; #CONFIG# SID_D5XX NO
;; #CONFIG# SID_D6XX NO
;; #CONFIG# SID_D7XX NO
; Keyboard settings
+2
View File
@@ -59,6 +59,8 @@
;; #CONFIG# SID_3RD_ADDRESS NO
;; #CONFIG# SID_D4XX NO
;; #CONFIG# SID_D5XX NO
;; #CONFIG# SID_D6XX NO
;; #CONFIG# SID_D7XX NO
; Keyboard settings
+3 -3
View File
@@ -112,9 +112,9 @@
; Built-in DOS configuration
!set CONFIG_UNIT_SDCARD = 0 ; do not change, DOS is not implemented yet
!set CONFIG_UNIT_FLOPPY = 0 ; do not change, DOS is not implemented yet
!set CONFIG_UNIT_RAMDISK = 0 ; do not change, DOS is not implemented yet
;; #CONFIG# UNIT_SDCARD 0 ; do not change, DOS is not implemented yet
;; #CONFIG# UNIT_FLOPPY 0 ; do not change, DOS is not implemented yet
;; #CONFIG# UNIT_RAMDISK 0 ; do not change, DOS is not implemented yet
; Debug options
+2
View File
@@ -59,6 +59,8 @@
;; #CONFIG# SID_3RD_ADDRESS NO
;; #CONFIG# SID_D4XX NO
;; #CONFIG# SID_D5XX NO
;; #CONFIG# SID_D6XX NO
;; #CONFIG# SID_D7XX NO
; Keyboard settings
+2
View File
@@ -49,6 +49,8 @@
;; #CONFIG# SID_3RD_ADDRESS NO
;; #CONFIG# SID_D4XX YES
;; #CONFIG# SID_D5XX YES
;; #CONFIG# SID_D6XX NO
;; #CONFIG# SID_D7XX NO
; Keyboard settings
+22 -11
View File
@@ -181,6 +181,8 @@
!ifdef CONFIG_SID_3RD_ADDRESS { !set counter = counter + 1 }
!ifdef CONFIG_SID_D4XX { !set counter = counter + 1 }
!ifdef CONFIG_SID_D5XX { !set counter = counter + 1 }
!ifdef CONFIG_SID_D6XX { !set counter = counter + 1 }
!ifdef CONFIG_SID_D7XX { !set counter = counter + 1 }
!ifdef CONFIG_PLATFORM_COMMANDER_X16 {
!if (counter != 0) { !error "Do not use CONFIG_SID_* options for Commander X16 platform" }
@@ -189,16 +191,24 @@
!if (counter != 0) { !error "Do not use CONFIG_SID_* options for MEGA65 motherboard" }
}
!ifdef CONFIG_SID_2ND_ADDRESS {
!if (CONFIG_SID_2ND_ADDRESS = $D400) { !error "CONFIG_SID_2ND_ADDRESS points to the 1st SID" }
!if (CONFIG_SID_2ND_ADDRESS < $D420) { !error "CONFIG_SID_2ND_ADDRESS needs hex value from $D420-$D7E0 range" }
!if (CONFIG_SID_2ND_ADDRESS > $D7E0) { !error "CONFIG_SID_2ND_ADDRESS needs hex value from $D420-$D7E0 range" }
!if ((CONFIG_SID_2ND_ADDRESS % $20) != 0) { !error "CONFIG_SID_2ND_ADDRESS has to be aligned to $20" }
!if (CONFIG_SID_2ND_ADDRESS = $D400) { !error "CONFIG_SID_2ND_ADDRESS points to the 1st SID" }
!if (CONFIG_SID_2ND_ADDRESS < $D420) { !error "CONFIG_SID_2ND_ADDRESS needs hex value from $D420-$D7E0 range" }
!if (CONFIG_SID_2ND_ADDRESS > $D7E0) { !error "CONFIG_SID_2ND_ADDRESS needs hex value from $D420-$D7E0 range" }
!if ((CONFIG_SID_2ND_ADDRESS % $20) != 0) { !error "CONFIG_SID_2ND_ADDRESS has to be aligned to $20" }
!if ((CONFIG_SID_2ND_ADDRESS DIV $100) = $D4) { !ifdef CONFIG_SID_D4XX { !error "CONFIG_SID_2ND_ADDRESS redundant due to CONFIG_SID_D4XX" } }
!if ((CONFIG_SID_2ND_ADDRESS DIV $100) = $D5) { !ifdef CONFIG_SID_D5XX { !error "CONFIG_SID_2ND_ADDRESS redundant due to CONFIG_SID_D5XX" } }
!if ((CONFIG_SID_2ND_ADDRESS DIV $100) = $D6) { !ifdef CONFIG_SID_D6XX { !error "CONFIG_SID_2ND_ADDRESS redundant due to CONFIG_SID_D6XX" } }
!if ((CONFIG_SID_2ND_ADDRESS DIV $100) = $D7) { !ifdef CONFIG_SID_D7XX { !error "CONFIG_SID_2ND_ADDRESS redundant due to CONFIG_SID_D7XX" } }
}
!ifdef CONFIG_SID_3RD_ADDRESS {
!if (CONFIG_SID_3RD_ADDRESS = $D400) { !error "CONFIG_SID_3RD_ADDRESS points to the 1st SID" }
!if (CONFIG_SID_3RD_ADDRESS < $D420) { !error "CONFIG_SID_3RD_ADDRESS needs hex value from $D420-$D7E0 range" }
!if (CONFIG_SID_3RD_ADDRESS > $D7E0) { !error "CONFIG_SID_3RD_ADDRESS needs hex value from $D420-$D7E0 range" }
!if ((CONFIG_SID_3RD_ADDRESS % $20) != 0) { !error "CONFIG_SID_3RD_ADDRESS has to be aligned to $20" }
!if (CONFIG_SID_3RD_ADDRESS = $D400) { !error "CONFIG_SID_3RD_ADDRESS points to the 1st SID" }
!if (CONFIG_SID_3RD_ADDRESS < $D420) { !error "CONFIG_SID_3RD_ADDRESS needs hex value from $D420-$D7E0 range" }
!if (CONFIG_SID_3RD_ADDRESS > $D7E0) { !error "CONFIG_SID_3RD_ADDRESS needs hex value from $D420-$D7E0 range" }
!if ((CONFIG_SID_3RD_ADDRESS % $20) != 0) { !error "CONFIG_SID_3RD_ADDRESS has to be aligned to $20" }
!if ((CONFIG_SID_3RD_ADDRESS DIV $100) = $D4) { !ifdef CONFIG_SID_D4XX { !error "CONFIG_SID_3RD_ADDRESS redundant due to CONFIG_SID_D4XX" } }
!if ((CONFIG_SID_3RD_ADDRESS DIV $100) = $D5) { !ifdef CONFIG_SID_D5XX { !error "CONFIG_SID_3RD_ADDRESS redundant due to CONFIG_SID_D5XX" } }
!if ((CONFIG_SID_3RD_ADDRESS DIV $100) = $D6) { !ifdef CONFIG_SID_D6XX { !error "CONFIG_SID_3RD_ADDRESS redundant due to CONFIG_SID_D6XX" } }
!if ((CONFIG_SID_3RD_ADDRESS DIV $100) = $D7) { !ifdef CONFIG_SID_D7XX { !error "CONFIG_SID_3RD_ADDRESS redundant due to CONFIG_SID_D7XX" } }
}
!ifdef CONFIG_SID_2ND_ADDRESS { !ifdef CONFIG_SID_3RD_ADDRESS {
!if (CONFIG_SID_2ND_ADDRESS = CONFIG_SID_3RD_ADDRESS) { !error "Configured SIDs have the same addresses" }
@@ -349,9 +359,10 @@
; Handle sound configuration
!ifdef CONFIG_SID_D4XX { !set CONFIG_SID_D4XX_OR_D5XX = 1 }
!ifdef CONFIG_SID_D5XX { !set CONFIG_SID_D4XX_OR_D5XX = 1 }
!ifdef CONFIG_SID_D4XX { !set CONFIG_SID_DX_RANGE = 1 }
!ifdef CONFIG_SID_D5XX { !set CONFIG_SID_DX_RANGE = 1 }
!ifdef CONFIG_SID_D6XX { !set CONFIG_SID_DX_RANGE = 1 }
!ifdef CONFIG_SID_D7XX { !set CONFIG_SID_DX_RANGE = 1 }
; Handle keyboard configuration
+8 -2
View File
@@ -84,9 +84,9 @@ IOINIT_skip_DOS:
!ifdef CONFIG_SID_3RD_ADDRESS {
sta SID_SIGVOL - __SID_BASE + CONFIG_SID_3RD_ADDRESS
}
; Silence whole D4XX and D5XX ranges (if configured)
; Silence whole D4XX, D5XX, D6XX, D7XX ranges (if configured)
!ifdef CONFIG_SID_D4XX_OR_D5XX {
!ifdef CONFIG_SID_DX_RANGE {
ldy #$00
@1:
@@ -97,6 +97,12 @@ IOINIT_skip_DOS:
!ifdef CONFIG_SID_D5XX {
sta SID_SIGVOL + $100, Y
}
!ifdef CONFIG_SID_D6XX {
sta SID_SIGVOL + $200, Y
}
!ifdef CONFIG_SID_D7XX {
sta SID_SIGVOL + $300, Y
}
tya
clc