|
@@ -362,10 +362,10 @@ static void pram_update(MOS6522Q800VIA1State *v1s)
|
|
|
*
|
|
|
* Command byte Register addressed by the command
|
|
|
*
|
|
|
- * z0000001 Seconds register 0 (lowest-order byte)
|
|
|
- * z0000101 Seconds register 1
|
|
|
- * z0001001 Seconds register 2
|
|
|
- * z0001101 Seconds register 3 (highest-order byte)
|
|
|
+ * z00x0001 Seconds register 0 (lowest-order byte)
|
|
|
+ * z00x0101 Seconds register 1
|
|
|
+ * z00x1001 Seconds register 2
|
|
|
+ * z00x1101 Seconds register 3 (highest-order byte)
|
|
|
* 00110001 Test register (write-only)
|
|
|
* 00110101 Write-Protect Register (write-only)
|
|
|
* z010aa01 RAM address 100aa ($10-$13) (first 20 bytes only)
|
|
@@ -373,6 +373,7 @@ static void pram_update(MOS6522Q800VIA1State *v1s)
|
|
|
* z0111aaa Extended memory designator and sector number
|
|
|
*
|
|
|
* For a read request, z=1, for a write z=0
|
|
|
+ * The letter x indicates don't care
|
|
|
* The letter a indicates bits whose value depend on what parameter
|
|
|
* RAM byte you want to address
|
|
|
*/
|
|
@@ -389,7 +390,7 @@ static int via1_rtc_compact_cmd(uint8_t value)
|
|
|
}
|
|
|
if ((value & 0x03) == 0x01) {
|
|
|
value >>= 2;
|
|
|
- if ((value & 0x1c) == 0) {
|
|
|
+ if ((value & 0x18) == 0) {
|
|
|
/* seconds registers */
|
|
|
return read | (REG_0 + (value & 0x03));
|
|
|
} else if ((value == 0x0c) && !read) {
|