Revision: 46087
http://sourceforge.net/p/vice-emu/code/46087
Author: gpz
Date: 2026-05-01 21:17:47 +0000 (Fri, 01 May 2026)
Log Message:
-----------
add/fix a bunch of snapshot tables (1/3, this commit changes only comments)
Modified Paths:
--------------
trunk/vice/src/aciacore.c
trunk/vice/src/c128/c128memsnapshot.c
trunk/vice/src/c128/cart/comal80.c
trunk/vice/src/c128/cart/generic.c
trunk/vice/src/c128/cart/gmod2c128.c
trunk/vice/src/c128/cart/magicdesk128.c
trunk/vice/src/c128/cart/partner128.c
trunk/vice/src/c128/cart/warpspeed128.c
trunk/vice/src/c64/c64memsnapshot.c
trunk/vice/src/c64/cart/blackbox9.c
trunk/vice/src/c64/cart/c64carthooks.c
trunk/vice/src/c64/cart/drean.c
trunk/vice/src/c64/cart/easyflash.c
trunk/vice/src/c64/cart/gmod2.c
trunk/vice/src/c64/cart/gmod3.c
trunk/vice/src/c64/cart/gs.c
trunk/vice/src/c64/cart/magicdesk.c
trunk/vice/src/c64/cart/magicdesk16.c
trunk/vice/src/c64/cart/stardos.c
trunk/vice/src/c64/cart/uc1.c
trunk/vice/src/c64/cart/uc2.c
trunk/vice/src/c64dtv/hummeradc.c
trunk/vice/src/cbm2/cart/cbm2cart.c
trunk/vice/src/cbm2/cbm2memsnapshot.c
trunk/vice/src/cbm2/cbm5x0.c
trunk/vice/src/core/ata.c
trunk/vice/src/core/ciacore.c
trunk/vice/src/core/flash040core.c
trunk/vice/src/core/flash800core.c
trunk/vice/src/core/m93c86.c
trunk/vice/src/core/riotcore.c
trunk/vice/src/core/spi-flash.c
trunk/vice/src/core/tpicore.c
trunk/vice/src/core/viacore.c
trunk/vice/src/crtc/crtc-snapshot.c
trunk/vice/src/datasette/datasette.c
trunk/vice/src/drive/drive-snapshot.c
trunk/vice/src/drive/drivecpu.c
trunk/vice/src/drive/drivecpu65c02.c
trunk/vice/src/drive/driverom.c
trunk/vice/src/drive/iec/cmdhd.c
trunk/vice/src/drive/iec/fdd.c
trunk/vice/src/drive/iec/wd1770.c
trunk/vice/src/drive/ieee/fdc.c
trunk/vice/src/joyport/joyport.c
trunk/vice/src/joyport/joystick.c
trunk/vice/src/joyport/mouse_1351.c
trunk/vice/src/joyport/mouse_paddle.c
trunk/vice/src/joyport/mouse_quadrature.c
trunk/vice/src/keyboard.c
trunk/vice/src/main65816cpu.c
trunk/vice/src/maincpu.c
trunk/vice/src/pet/6809.c
trunk/vice/src/pet/petdww.c
trunk/vice/src/pet/pethre.c
trunk/vice/src/pet/petmemsnapshot.c
trunk/vice/src/piacore.c
trunk/vice/src/plus4/cart/plus4cart.c
trunk/vice/src/plus4/plus4memsnapshot.c
trunk/vice/src/plus4/ted-snapshot.c
trunk/vice/src/serial/fsdrive-snapshot.c
trunk/vice/src/serial/fsdrive.c
trunk/vice/src/tape/tape-snapshot.c
trunk/vice/src/userport/userport_hks_joystick.c
trunk/vice/src/userport/userport_synergy_joystick.c
trunk/vice/src/userport/userport_v8_joystick.c
trunk/vice/src/userport/userport_wic64.c
trunk/vice/src/vdrive/vdrive-snapshot.c
trunk/vice/src/vic20/cart/behrbonz.c
trunk/vice/src/vic20/cart/finalexpansion.c
trunk/vice/src/vic20/cart/ioramcart.c
trunk/vice/src/vic20/cart/megacart.c
trunk/vice/src/vic20/cart/mikroassembler.c
trunk/vice/src/vic20/cart/rabbit.c
trunk/vice/src/vic20/cart/superexpander.c
trunk/vice/src/vic20/cart/ultimem.c
trunk/vice/src/vic20/cart/vic-fp.c
trunk/vice/src/vic20/cart/vic20cart.c
trunk/vice/src/vic20/cart/writenow.c
trunk/vice/src/vic20/vic-snapshot.c
trunk/vice/src/vic20/vic20memsnapshot.c
trunk/vice/src/vicii/vicii-snapshot.c
Modified: trunk/vice/src/aciacore.c
===================================================================
--- trunk/vice/src/aciacore.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/aciacore.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -726,25 +726,26 @@
#define ACIA_DUMP_VER_MAJOR 1 /*!< the major version number of the dump data */
#define ACIA_DUMP_VER_MINOR 1 /*!< the minor version number of the dump data */
-/*
- * Layout of the dump data:
- *
- * UBYTE TDR Transmit Data Register
- * UBYTE RDR Receiver Data Register
- * UBYTE SR Status Register (includes state of IRQ line)
- * UBYTE CMD Command Register
- * UBYTE CTRL Control Register
- *
- * UBYTE IN_TX 0 = no data to tx; 2 = TDR valid; 1 = in transmit (cf. enum acia_tx_state)
- *
- * QWORD TICKSTX ticks till the next TDR empty interrupt
- *
- * QWORD TICKSRX ticks till the next RDF empty interrupt
- * TICKSRX has been added with 2.0.9; if it does not
- * exist on read, it is assumed that it has the same
- * value as TICKSTX to emulate the old behaviour.
- */
+/* ACIA 1.1 snapshot module format:
+ type | name | description
+ ------------------------------
+ UBYTE | TDR | Transmit Data Register
+ UBYTE | RDR | Receiver Data Register
+ UBYTE | SR | Status Register (includes state of IRQ line)
+ UBYTE | CMD | Command Register
+ UBYTE | CTRL | Control Register
+ UBYTE | IN_TX | 0 = no data to tx; 1 = Data is being transmitted;
+ | 2 = Data is being transmitted while data in TDR waiting
+ | to be put to internal transmit register
+ QWORD | TICKSTX | ticks till the next TDR empty interrupt
+ QWORD | TICKSRX | ticks till the next RDF empty interrupt
+
+ NOTE: TICKSRX has been added with 2.0.9; if it does not
+ exist on read, it is assumed that it has the same
+ value as TICKSTX to emulate the old behaviour.
+*/
+
/*! the name of this module */
static const char module_name[] = MYACIA;
Modified: trunk/vice/src/c128/c128memsnapshot.c
===================================================================
--- trunk/vice/src/c128/c128memsnapshot.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/c128/c128memsnapshot.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -53,6 +53,17 @@
static log_t c128_snapshot_log = LOG_DEFAULT;
+
+/* C128ROM 0.0 snapshot module format:
+
+ type | name | description
+ -----------------------------
+ ARRAY | KERNAL | 8192 BYTES of KERNAL ROM data
+ ARRAY | BASIC LO| 16384 BYTES of BASIC ROM data
+ ARRAY | BASIC HI| 16384 BYTES of BASIC ROM data
+ ARRAY | CHARGEN | 8192 BYTES of CHARGEN ROM data
+ */
+
static char snap_rom_module_name[] = "C128ROM";
#define SNAP_ROM_MAJOR 0
#define SNAP_ROM_MINOR 0
@@ -181,6 +192,15 @@
return -1;
}
+/* C128MEM 0.0 snapshot module format:
+
+ type | name | version | description
+ ---------------------------------------------------
+ 11 * BYTE | mmu regs | 0.0 | dump of mmu registers
+ ARRAY | RAM | 0.0 | 0x40000 BYTES of RAM data
+
+ */
+
static char snap_module_name[] = "C128MEM";
#define SNAP_MAJOR 0
#define SNAP_MINOR 0
Modified: trunk/vice/src/c128/cart/comal80.c
===================================================================
--- trunk/vice/src/c128/cart/comal80.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/c128/cart/comal80.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -269,7 +269,10 @@
/* COMAL80C128 snapshot module format:
- FIXME
+ type | name | description
+ ------------------------------------------
+ BYTE | comal80_register | bank register value
+ ARRAY | ext_function_rom | (0x8000 * 5) + 0x4000 bytes of ROM data
*/
static char snap_module_name[] = "COMAL80C128";
Modified: trunk/vice/src/c128/cart/generic.c
===================================================================
--- trunk/vice/src/c128/cart/generic.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/c128/cart/generic.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -191,8 +191,10 @@
/* CART128GENERIC snapshot module format:
- FIXME
- */
+ type | name | description
+ ------------------------------------------
+ ARRAY | ext_function_rom | 0x8000 bytes of ROM data
+*/
static char snap_module_name[] = "CART128GENERIC";
#define SNAP_MAJOR 0
Modified: trunk/vice/src/c128/cart/gmod2c128.c
===================================================================
--- trunk/vice/src/c128/cart/gmod2c128.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/c128/cart/gmod2c128.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -507,6 +507,17 @@
/* ---------------------------------------------------------------------*/
+/* CARTGMOD2C128 0.1 snapshot module format:
+
+ type | name | description
+ --------------------------------------
+ BYTE | c128gmod2_bank |
+ ARRAY | flash_data | GMOD2_FLASH_SIZE
+
+ followed by m93c86 snapshot module
+ followed by flash040 snapshot module
+*/
+
static const char snap_module_name[] = "CARTGMOD2C128";
static const char flash_snap_module_name[] = "FLASH040GMOD2";
#define SNAP_MAJOR 0
Modified: trunk/vice/src/c128/cart/magicdesk128.c
===================================================================
--- trunk/vice/src/c128/cart/magicdesk128.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/c128/cart/magicdesk128.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -257,8 +257,13 @@
/* MAGICDESK128 snapshot module format:
- FIXME
- */
+ type | name | description
+ ------------------------------------------
+ BYTE | md128reg |
+ BYTE | rombank |
+ BYTE | bankmask |
+ ARRAY | ext_function_rom | 0x40*0x4000 bytes of ROM data
+*/
static char snap_module_name[] = "MAGICDESK128";
#define SNAP_MAJOR 0
Modified: trunk/vice/src/c128/cart/partner128.c
===================================================================
--- trunk/vice/src/c128/cart/partner128.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/c128/cart/partner128.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -355,10 +355,17 @@
/* ---------------------------------------------------------------------*/
-/* PARTNER128 snapshot module format:
+/* PARTNER128 0.1 snapshot module format:
- FIXME
- */
+ type | name | description
+ ------------------------------------------
+ BYTE | regvalue |
+ BYTE | rambank |
+ BYTE | isdefreezing |
+ ARRAY | nmivector | 2 bytes
+ ARRAY | ext_function_rom | PARTNER_ROM_SIZE
+ ARRAY | rambanks | PARTNER_RAM_SIZE
+*/
static char snap_module_name[] = "PARTNER128";
#define SNAP_MAJOR 0
Modified: trunk/vice/src/c128/cart/warpspeed128.c
===================================================================
--- trunk/vice/src/c128/cart/warpspeed128.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/c128/cart/warpspeed128.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -230,8 +230,10 @@
/* WARPSPEED128 snapshot module format:
- FIXME
- */
+ type | name | description
+ ------------------------------------------
+ ARRAY | ext_function_rom | 0x4000 bytes of ROM data
+*/
static char snap_module_name[] = "WARPSPEED128";
#define SNAP_MAJOR 0
Modified: trunk/vice/src/c64/c64memsnapshot.c
===================================================================
--- trunk/vice/src/c64/c64memsnapshot.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/c64/c64memsnapshot.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -54,7 +54,7 @@
/* ---------------------------------------------------------------------*/
-/* C64ROM snapshot module format:
+/* C64ROM 0.0 snapshot module format:
type | name | description
-----------------------------
@@ -177,7 +177,7 @@
/* ---------------------------------------------------------------------*/
-/* C64MEM snapshot module format:
+/* C64MEM 0.1 snapshot module format:
type | name | version | description
---------------------------------------------------
Modified: trunk/vice/src/c64/cart/blackbox9.c
===================================================================
--- trunk/vice/src/c64/cart/blackbox9.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/c64/cart/blackbox9.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -250,6 +250,16 @@
/* ---------------------------------------------------------------------*/
+/* CARTBLACKBOX9 snapshot module format:
+
+ type | name | description
+ --------------------------------
+ BYTE | currmode | cartridge mode
+ BYTE | currbank | selected bank
+ ARRAY | ROML | 8192 bytes of ROM data
+ ARRAY | ROMH | 8192 bytes of ROM data
+ */
+
static const char snap_module_name[] = "CARTBLACKBOX9";
#define SNAP_MAJOR 0
#define SNAP_MINOR 1
Modified: trunk/vice/src/c64/cart/c64carthooks.c
===================================================================
--- trunk/vice/src/c64/cart/c64carthooks.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/c64/cart/c64carthooks.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -3280,6 +3280,43 @@
Snapshot reading and writing
*/
+/* C64CART 0.1 snapshot module format:
+
+ type | name | description
+ ------------------------------------------------------
+ BYTE | num carts | number of active cartridges
+ DWORD | mem_cartridge_type |
+ BYTE | game |
+ BYTE | exrom |
+ DWORD | romh_bank |
+ DWORD | roml_bank |
+ BYTE | export_ram |
+ BYTE | ultimax_phi1 |
+ BYTE | ultimax_phi2 |
+ CLOCK | cart_freeze_alarm_time |
+ CLOCK | cart_nmi_alarm_time |
+ BYTE | export_slot1.game |
+ BYTE | export_slot1.exrom |
+ BYTE | export_slot1.ultimax_phi1 |
+ BYTE | export_slot1.ultimax_phi2 |
+ BYTE | export_slotmain.game |
+ BYTE | export_slotmain.exrom |
+ BYTE | export_slotmain.ultimax_phi1 |
+ BYTE | export_slotmain.ultimax_phi2 |
+ BYTE | export_passthrough.game |
+ BYTE | export_passthrough.exrom |
+ BYTE | export_passthrough.ultimax_phi1 |
+ BYTE | export_passthrough.ultimax_phi2 |
+ DWORD | reserved |
+ DWORD | reserved |
+ DWORD | reserved |
+ DWORD | reserved |
+ ARRAY | cart ids | <num cart> IDs of active cartridges
+
+ followed by individual cartridge modules
+
+ */
+
#define C64CART_DUMP_MAX_CARTS 16
#define C64CART_DUMP_VER_MAJOR 0
Modified: trunk/vice/src/c64/cart/drean.c
===================================================================
--- trunk/vice/src/c64/cart/drean.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/c64/cart/drean.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -195,6 +195,15 @@
/* ---------------------------------------------------------------------*/
+/* CARTDREAN snapshot module format:
+
+ type | name | description
+ --------------------------------
+ BYTE | regval | bank register value
+ BYTE | bankmask | bank mask
+ ARRAY | roml_banks | 4 * 8192 bytes of ROML data
+ */
+
#define CART_DUMP_VER_MAJOR 0
#define CART_DUMP_VER_MINOR 1
#define SNAP_MODULE_NAME "CARTDREAN"
Modified: trunk/vice/src/c64/cart/easyflash.c
===================================================================
--- trunk/vice/src/c64/cart/easyflash.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/c64/cart/easyflash.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -676,7 +676,7 @@
/* ---------------------------------------------------------------------*/
-/* CARTEF snapshot module format:
+/* CARTEF 0.0 snapshot module format:
type | name | description
--------------------------------
Modified: trunk/vice/src/c64/cart/gmod2.c
===================================================================
--- trunk/vice/src/c64/cart/gmod2.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/c64/cart/gmod2.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -546,6 +546,18 @@
/* ---------------------------------------------------------------------*/
+/* CARTGMOD2 0.2 snapshot module format:
+
+ type | name | description
+ --------------------------------------
+ BYTE | gmod2_cmode |
+ BYTE | gmod2_bank |
+ ARRAY | flash_data | GMOD2_FLASH_SIZE
+
+ followed by m93c86 snapshot module
+ followed by flash040 snapshot module
+*/
+
static const char snap_module_name[] = "CARTGMOD2";
static const char flash_snap_module_name[] = "FLASH040GMOD2";
#define SNAP_MAJOR 0
Modified: trunk/vice/src/c64/cart/gmod3.c
===================================================================
--- trunk/vice/src/c64/cart/gmod3.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/c64/cart/gmod3.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -593,6 +593,17 @@
/* ---------------------------------------------------------------------*/
+/* CARTGMOD3 0.1 snapshot module format:
+
+ type | name | description
+ -----------------------------------
+ BYTE | gmod3_cmode |
+ BYTE | gmod3_bank |
+ ARRAY | gmod3_rom | GMOD3_16MB_FLASH_SIZE
+
+ followed by SPI flash module
+*/
+
static const char snap_module_name[] = "CARTGMOD3";
#define SNAP_MAJOR 0
#define SNAP_MINOR 1
Modified: trunk/vice/src/c64/cart/gs.c
===================================================================
--- trunk/vice/src/c64/cart/gs.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/c64/cart/gs.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -181,6 +181,15 @@
/* ---------------------------------------------------------------------*/
+/* CARTGS snapshot module format:
+
+ type | name | description
+ --------------------------------
+ BYTE | regval | bank register value
+ BYTE | currbank | current bank
+ ARRAY | roml_banks | 64 * 8192 bytes of ROM data
+ */
+
#define CART_DUMP_VER_MAJOR 1
#define CART_DUMP_VER_MINOR 1
#define SNAP_MODULE_NAME "CARTGS"
Modified: trunk/vice/src/c64/cart/magicdesk.c
===================================================================
--- trunk/vice/src/c64/cart/magicdesk.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/c64/cart/magicdesk.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -224,6 +224,15 @@
/* ---------------------------------------------------------------------*/
+/* CARTMAGICD snapshot module format:
+
+ type | name | description
+ --------------------------------
+ BYTE | regval | bank register value
+ BYTE | bankmask | bank mask
+ ARRAY | roml_banks | 128 * 8192 bytes of ROM data
+ */
+
#define CART_DUMP_VER_MAJOR 0
#define CART_DUMP_VER_MINOR 2
#define SNAP_MODULE_NAME "CARTMAGICD"
Modified: trunk/vice/src/c64/cart/magicdesk16.c
===================================================================
--- trunk/vice/src/c64/cart/magicdesk16.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/c64/cart/magicdesk16.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -237,6 +237,16 @@
/* ---------------------------------------------------------------------*/
+/* CARTMD16 snapshot module format:
+
+ type | name | description
+ --------------------------------
+ BYTE | regval | bank register value
+ BYTE | bankmask | bank mask
+ ARRAY | roml_banks | 128 * 8192 bytes of ROML data
+ ARRAY | romh_banks | 128 * 8192 bytes of ROMH data
+ */
+
#define CART_DUMP_VER_MAJOR 0
#define CART_DUMP_VER_MINOR 2
#define SNAP_MODULE_NAME "CARTMD16"
Modified: trunk/vice/src/c64/cart/stardos.c
===================================================================
--- trunk/vice/src/c64/cart/stardos.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/c64/cart/stardos.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -385,6 +385,17 @@
/* ---------------------------------------------------------------------*/
+/* CARTSTARDOS snapshot module format:
+
+ type | name | description
+ --------------------------------
+ DWORD | stardos_alarm_time | alarm time for cap discharge
+ DWORD | cap_voltage | cap voltage
+ BYTE | roml_enable | is roml enabled?
+ ARRAY | roml_banks | 8192 bytes of ROML data
+ ARRAY | romh_banks | 8192 bytes of ROMH data
+ */
+
#define CART_DUMP_VER_MAJOR 0
#define CART_DUMP_VER_MINOR 1
#define SNAP_MODULE_NAME "CARTSTARDOS"
Modified: trunk/vice/src/c64/cart/uc1.c
===================================================================
--- trunk/vice/src/c64/cart/uc1.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/c64/cart/uc1.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -653,6 +653,18 @@
/* ---------------------------------------------------------------------*/
+/* CARTUC1 0.2 snapshot module format:
+
+ type | name | description
+ --------------------------------------
+ BYTE | regval |
+ BYTE | bankmask |
+ ARRAY | roml_banks | 0x2000 * MAXBANKS
+ ARRAY | romh_banks | 0x2000 * MAXBANKS
+ ARRAY | cart_ram | CART_RAM_SIZE
+
+*/
+
#define CART_DUMP_VER_MAJOR 0
#define CART_DUMP_VER_MINOR 2
#define SNAP_MODULE_NAME "CARTUC1"
Modified: trunk/vice/src/c64/cart/uc2.c
===================================================================
--- trunk/vice/src/c64/cart/uc2.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/c64/cart/uc2.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -787,6 +787,18 @@
/* ---------------------------------------------------------------------*/
+/* CARTUC2 snapshot module format:
+
+ type | name | description
+ --------------------------------
+ BYTE | regA | bank register value
+ BYTE | regB | mode
+ BYTE | bankmask | bank mask
+ ARRAY | roml_banks | 32 * 8192 bytes of ROML data
+ ARRAY | romh_banks | 32 * 8192 bytes of ROMH data
+ ARRAY | cart_ram | 512kiB of RAM data
+ */
+
#define CART_DUMP_VER_MAJOR 0
#define CART_DUMP_VER_MINOR 2
#define SNAP_MODULE_NAME "CARTUC2"
Modified: trunk/vice/src/c64dtv/hummeradc.c
===================================================================
--- trunk/vice/src/c64dtv/hummeradc.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/c64dtv/hummeradc.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -401,6 +401,20 @@
return cmdline_register_options(cmdline_options);
}
+/* ---------------------------------------------------------------------*/
+
+/* HUMMERADC snapshot module format:
+
+ type | name | description
+ -------------------------------------------
+ BYTE | hummeradc_value |
+ BYTE | hummeradc_channel |
+ BYTE | hummeradc_control |
+ BYTE | hummeradc_chanattr |
+ BYTE | hummeradc_chanwakeup |
+ BYTE | hummeradc_prev |
+ */
+
#define SNAP_MAJOR 0
#define SNAP_MINOR 0
static const char snap_misc_module_name[] = "HUMMERADC";
Modified: trunk/vice/src/cbm2/cart/cbm2cart.c
===================================================================
--- trunk/vice/src/cbm2/cart/cbm2cart.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/cbm2/cart/cbm2cart.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -884,13 +884,20 @@
/* ------------------------------------------------------------------------- */
-/*
- Snapshot reading and writing
-*/
-
/* FIXME: due to the snapshots being generally broken as a whole, none of this
could be tested */
+/* CBM2CART 0.1 snapshot module format:
+
+ type | name | description
+ --------------------------------
+ BYTE | number_of_carts | number of attached carts
+ BYTE | mem_cartridge_type | main type
+ ARRAY | cart_ids | number_of_carts * DWORD cartridge IDs
+
+ followed by individual cartridges modules
+ */
+
#define CBM2CART_DUMP_MAX_CARTS 1
#define CBM2CART_DUMP_VER_MAJOR 0
Modified: trunk/vice/src/cbm2/cbm2memsnapshot.c
===================================================================
--- trunk/vice/src/cbm2/cbm2memsnapshot.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/cbm2/cbm2memsnapshot.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -52,33 +52,33 @@
#define CBM2MEM_DUMP_VER_MAJOR 1
#define CBM2MEM_DUMP_VER_MINOR 0
-/*
- * UBYTE MEMSIZE size in 128k (1=128, 2=256, 4=512, 8=1024)
- * UBYTE CONFIG Bit 0: cart08_ram
- * 1: cart1_ram
- * 2: cart2_ram
- * 3: cart4_ram
- * 4: cart6_ram
- * 5: cartC_ram
- * 6: 1= RAM starts at 0 (C500), videoram is
- * 1k VIC-II video, 1k colorram
- * 0= RAM starts at 0x10000 (others),
- * videoram is 2k crtc videoram
- *
- * UBYTE HCONFIG Bit 0-1: ModelLine
- *
- * UBYTE EXECBANK CPU exec bank register
- * UBYTE INDBANK CPU indirect bank register
- * ARRAY SYSRAM 2k system RAM, Bank15 $0000-$07ff
- * ARRAY VIDEO 2k video RAM, Bank15 $d000-$d7ff
- * ARRAY RAM size according to MEMSIZE
- * ARRAY RAM08 (only if memsize < 1M) 2k for cart08_ram
- * ARRAY RAM1 (only if memsize < 1M) 4k for cart1_ram
- * ARRAY RAM2 (only if memsize < 1M) 8k for cart2_ram
- * ARRAY RAM4 (only if memsize < 1M) 8k for cart4_ram
- * ARRAY RAM6 (only if memsize < 1M) 8k for cart6_ram
- * ARRAY RAMC (only if memsize < 1M) 4k for cartC_ram
- *
+/* CBM2MEM 1.0 snapshot module format:
+
+ type | name | description
+ -----------------------------
+ UBYTE | MEMSIZE | Memory size in 128KiB blocks (1=128KiB,2=256KiB, 4=512KiB, 8=1024KiB)
+ UBYTE | CONFIG | Bit 0 = $f0800-$f0fff RAM
+ | | 1 = $f1000-$f1fff RAM
+ | | 2 = $f2000-$f3fff RAM
+ | | 3 = $f4000-$f5fff RAM
+ | | 4 = $f6000-$f7fff RAM
+ | | 5 = $fc000-$fcfff RAM
+ | | 6: 1= RAM starts at 0 (C500), videoram is
+ | | 1k VIC-II video, 1k colorram
+ | | 0= RAM starts at 0x10000 (others),
+ | | videoram is 2k crtc videoram
+ UBYTE | HWCONFIG | Bit 0-1: ModelLine
+ UBYTE | EXECBANK | CPU exec bank register
+ UBYTE | INDBANK | CPU indirect bank register
+ ARRAY | SYSRAM | 2k system RAM, Bank15 $f0000-$f07ff
+ ARRAY | VIDEO | 2k video RAM, Bank15 $fd000-$fd7ff
+ ARRAY | RAM | RAM dump, size according to MEMSIZE
+ ARRAY | RAM08 | (only if memsize < 1M) 2k for cart08_ram CONFIG & 1 : 2KiB RAM $f0800-$f0fff
+ ARRAY | RAM1 | (only if memsize < 1M) 4k for cart1_ram CONFIG & 2 : 4KiB RAM $f1000-$f1fff
+ ARRAY | RAM2 | (only if memsize < 1M) 8k for cart2_ram CONFIG & 4 : 8KiB RAM $f2000-$f3fff
+ ARRAY | RAM4 | (only if memsize < 1M) 8k for cart4_ram CONFIG & 8 : 8KiB RAM $f4000-$f5fff
+ ARRAY | RAM6 | (only if memsize < 1M) 8k for cart6_ram CONFIG & 16 : 8KiB RAM $f6000-$f7fff
+ ARRAY | RAMC | (only if memsize < 1M) 4k for cartC_ram CONFIG & 32 : 4KiB RAM $fc000-$fcfff
*/
static const char module_name[] = "CBM2MEM";
@@ -278,22 +278,24 @@
/*********************************************************************/
-/*
- * UBYTE CONFIG Bit 1: cart1 ROM included
- * 2: cart2 ROM included
- * 3: cart4 ROM included
- * 4: cart6 ROM included
- * 5: chargen is of C510 type (VIC-II)
- *
- * ARRAY KERNAL 8k Kernal ROM ($e000-$ffff)
- * ARRAY BASIC 16k Basic ROM ($8000-$bfff)
- * ARRAY CHARGEN 4k chargen ROM image ($c*** for VIC-II)
- * ARRAY ROM1 4k for cart1 (if config & 2)
- * ARRAY ROM2 8k for cart2 (if config & 4)
- * ARRAY ROM4 8k for cart4 (if config & 8)
- * ARRAY ROM6 8k for cart6 (if config & 16)
- */
+/* CBM2ROM 1.0 snapshot module format:
+ type | name | description
+ -----------------------------
+ UBYTE | CONFIG | Bit 1: cart1 ROM included
+ | | 2: cart2 ROM included
+ | | 3: cart4 ROM included
+ | | 4: cart6 ROM included
+ | | 5: chargen is of C510 type (VIC-II)
+ ARRAY | KERNAL | 8k Kernal ROM ($e000-$ffff)
+ ARRAY | BASIC | 16k Basic ROM ($8000-$bfff)
+ ARRAY | CHARGEN | 4k chargen ROM image ($c*** for VIC-II)
+ ARRAY | ROM1 | 4k for cart1 (if config & 2)
+ ARRAY | ROM2 | 8k for cart2 (if config & 4)
+ ARRAY | ROM4 | 8k for cart4 (if config & 8)
+ ARRAY | ROM6 | 8k for cart6 (if config & 16)
+*/
+
static const char module_rom_name[] = "CBM2ROM";
#define CBM2ROM_DUMP_VER_MAJOR 1
#define CBM2ROM_DUMP_VER_MINOR 0
Modified: trunk/vice/src/cbm2/cbm5x0.c
===================================================================
--- trunk/vice/src/cbm2/cbm5x0.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/cbm2/cbm5x0.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -592,17 +592,21 @@
SIGNAL_VERT_BLANK_ON
}
+/* ---------------------------------------------------------------------*/
+
/*
* C500 extra data (state of 50Hz clk)
*/
+
+/* C500DATA snapshot module format:
+
+ type | name | description
+ --------------------------------
+ DWORD | IRQCLK | CPU clock ticks until next 50 Hz IRQ
+*/
+
#define C500DATA_DUMP_VER_MAJOR 0
#define C500DATA_DUMP_VER_MINOR 0
-
-/*
- * DWORD IRQCLK CPU clock ticks until next 50 Hz IRQ
- *
- */
-
static const char module_name[] = "C500DATA";
int cbm2_c500_snapshot_write_module(snapshot_t *p)
Modified: trunk/vice/src/core/ata.c
===================================================================
--- trunk/vice/src/core/ata.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/core/ata.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -1369,6 +1369,44 @@
* checksum to check if there was any modification meanwhile.
*/
+/* ATA 0.7 snapshot module format:
+
+ type | name | description
+ ----------------------------------------------
+ STRING | filename |
+ DWORD | type |
+ WORD | geometry.cylinders |
+ BYTE | geometry.heads |
+ BYTE | geometry.sectors |
+ DWORD | geometry.size |
+ BYTE | error |
+ BYTE | features |
+ BYTE | sector_count |
+ BYTE | sector_count_internal |
+ BYTE | sector |
+ WORD | cylinder |
+ BYTE | head,dev<<4,lba<<6,legacy |
+ BYTE | control |
+ BYTE | cmd |
+ BYTE | power |
+ ARRAY | packet | sizeof(packet)
+ WORD | bufp |
+ ARRAY | buffer | sector_size
+ WORD | cylinders |
+ BYTE | heads |
+ BYTE | sectors |
+ DWORD | pos |
+ DWORD | pos / sector_size |
+ BYTE | wcache |
+ BYTE | lookahead |
+ BYTE | busy |
+ CLOCK | spindle_clk |
+ CLOCK | head_clk |
+ CLOCK | standby_clk |
+ DWORD | standby |
+ DWORD | standby_max |
+*/
+
#define CART_DUMP_VER_MAJOR 0
#define CART_DUMP_VER_MINOR 7
Modified: trunk/vice/src/core/ciacore.c
===================================================================
--- trunk/vice/src/core/ciacore.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/core/ciacore.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -2137,86 +2137,61 @@
}
/* -------------------------------------------------------------------------- */
-/* The dump format has a module header and the data generated by the
- * chip...
- *
- * The version of this dump description is 2.5
- */
#define CIA_DUMP_VER_MAJOR 2
#define CIA_DUMP_VER_MINOR 5
-/*
- * The dump data:
- *
- * UBYTE ORA
- * UBYTE ORB
- * UBYTE DDRA
- * UBYTE DDRB
- * UWORD TA
- * UWORD TB
- * UBYTE TOD_TEN current value
- * UBYTE TOD_SEC
- * UBYTE TOD_MIN
- * UBYTE TOD_HR
- * UBYTE SDR
- * UBYTE IER enabled interrupts mask
- * UBYTE CRA
- * UBYTE CRB
- *
- * UWORD TAL latch value
- * UWORD TBL latch value
- * UBYTE IFR interrupts currently active
- * UBYTE PBSTATE bit6/7 reflect PB6/7 toggle state
- * bit 2/3 reflect port bit state
- * UBYTE SRHBITS number of half-bits to still shift in/out SDR
- * UBYTE ALARM_TEN
- * UBYTE ALARM_SEC
- * UBYTE ALARM_MIN
- * UBYTE ALARM_HR
- *
- * UBYTE READICR clk - when ICR was read last + 128
- * UBYTE TODLATCHED 0=running, 1=latched, 2=stopped (writing)
- * UBYTE TODL_TEN latch value
- * UBYTE TODL_SEC
- * UBYTE TODL_MIN
- * UBYTE TODL_HR
- * DWORD TOD_TICKS clk ticks till next tenth of second
- *
- * UBYTE IRQ 0=IRQ line inactive, 1=IRQ line active
- *
- * These bits have been added in V1.1
- *
- * WORD TA Timer A state bits (see ciatimer.h)
- * WORD TB Timer B state bits (see ciatimer.h)
- *
- * These bits have been added in V1.2
- *
- * BYTE SHIFTER actual shift register (original data)
- * BYTE SDR_VALID data in SDR valid to be shifted
- *
- * BYTE irq_enabled IRQ enabled
- *
- * BYTE todtickcounter TOD tick counter
- *
- * These bits have been added in V2.3
- *
- * BYTE SHIFTER_HI high byte of SHIFTER
- * BYTE SDR_ALARM if an sdr_alarm is pending and when
- * BYTE SP_CNT_IN input state of SP and CNT
- *
- * These bits have been added in V2.4
- *
- * DWORD SDR_DELAY event/history bits for the serial data register
- * BYTE SP_CNT_OUT output state of SP and CNT
- *
- * These bits have been added in V2.5
- *
- * DWORD IFR_DELAY event/history bits for the interrupt flag reg.
- * BYTE ACK_IRQFLAGS flags in IFR to acknowledge, i.e. clear.
- * BYTE NEW_IRQFLAGS new flags in IFR that were set recently.
- */
+/* CIA 2.5 snapshot module format:
+ type | name |Version| description
+ -------------------------------------------------
+ UBYTE | ORA | | Output register A
+ UBYTE | ORB | | Output register B
+ UBYTE | DDRA | | Data direction register A
+ UBYTE | DDRB | | Data direction register B
+ UWORD | TA | | Timer A counter value
+ UWORD | TB | | Timer B counter value
+ UBYTE | TOD_TEN | | Time of Day - current tenth of second
+ UBYTE | TOD_SEC | | Time of Day - current seconds
+ UBYTE | TOD_MIN | | Time of Day - current minutes
+ UBYTE | TOD_HR | | Time of Day - current hours
+ UBYTE | SDR | | contents of shift register
+ UBYTE | IER | | mask of enabled interrupt masks
+ UBYTE | CRA | | Control register A
+ UBYTE | CRB | | Control register B
+ UWORD | TAL | | Timer A latch value
+ UWORD | TBL | | Timer B latch value
+ UBYTE | IFR | | mask of currently active interrupts
+ UBYTE | PBSTATE | | Bit 6/7 reflect the PB6/7 toggle bit state.Bit 2/3 reflect the corresponding port bit state.
+ UBYTE | SRHBITS | | number of half-bits to still shift in/out SDR
+ UBYTE | ALARM_TEN | | Time of Day - alarm tenth of second
+ UBYTE | ALARM_SEC | | Time of Day - alarm seconds
+ UBYTE | ALARM_MIN | | Time of Day - alarm minutes
+ UBYTE | ALARM_HR | | Time of Day - alarm hours
+ UBYTE | READICR | | current clock minus the clock when ICR was read last plus 128.
+ UBYTE | TODLATCHED | | Bit 0: 1= latched for reading, Bit 1: 2=stopped for writing
+ UBYTE | TODL_TEN | | Time of Day - latched tenth of second
+ UBYTE | TODL_SEC | | Time of Day - latched seconds
+ UBYTE | TODL_MIN | | Time of Day - latched minutes
+ UBYTE | TODL_HR | | Time of Day - latched hours
+ DWORD | TOD_TICKS | | clk ticks till next tenth of second
+ UBYTE | IRQ | | 0=IRQ line inactive, 1=IRQ line active
+ WORD | TA state | 1.1+ | Timer A state bits (see ciatimer.h)
+ WORD | TB state | 1.1+ | Timer B state bits (see ciatimer.h)
+ BYTE | SHIFTER | 1.2+ | actual shift register (original data)
+ BYTE | SDR_VALID | 1.2+ | data in SDR valid to be shifted
+ BYTE | irq_enabled | 1.2+ | IRQ enabled
+ BYTE | todtickcounter | 1.2+ | TOD tick counter
+ BYTE | SHIFTER_HI | 2.3+ | high byte of SHIFTER
+ BYTE | SDR_ALARM | 2.3+ | if an sdr_alarm is pending and when
+ BYTE | SP_CNT_IN | 2.3+ | input state of SP and CNT
+ DWORD | SDR_DELAY | 2.4+ | event/history bits for the serial data register
+ BYTE | SP_CNT_OUT | 2.4+ | output state of SP and CNT
+ DWORD | IFR_DELAY | 2.5+ | event/history bits for the interrupt flag reg.
+ BYTE | ACK_IRQFLAGS | 2.5+ | flags in IFR to acknowledge, i.e. clear.
+ BYTE | NEW_IRQFLAGS | 2.5+ | new flags in IFR that were set recently.
+*/
+
/* FIXME!!! Error check. */
int ciacore_snapshot_write_module(cia_context_t *cia_context, snapshot_t *s)
{
Modified: trunk/vice/src/core/flash040core.c
===================================================================
--- trunk/vice/src/core/flash040core.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/core/flash040core.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -498,6 +498,17 @@
/* -------------------------------------------------------------------------- */
+/* FLASH040 2.0 snapshot module format:
+
+ type | name | description
+ ----------------------------------------------
+ BYTE | state |
+ BYTE | base_state |
+ BYTE | program_byte |
+ ARRAY | erase_mask | FLASH040_ERASE_MASK_SIZE
+ BYTE | last_read |
+*/
+
#define FLASH040_DUMP_VER_MAJOR 2
#define FLASH040_DUMP_VER_MINOR 0
Modified: trunk/vice/src/core/flash800core.c
===================================================================
--- trunk/vice/src/core/flash800core.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/core/flash800core.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -466,6 +466,17 @@
/* -------------------------------------------------------------------------- */
+/* FLASH800 2.0 snapshot module format:
+
+ type | name | description
+ ----------------------------------------------
+ BYTE | state |
+ BYTE | base_state |
+ BYTE | program_byte |
+ ARRAY | erase_mask | FLASH800_ERASE_MASK_SIZE
+ BYTE | last_read |
+*/
+
#define FLASH800_DUMP_VER_MAJOR 2
#define FLASH800_DUMP_VER_MINOR 0
Modified: trunk/vice/src/core/m93c86.c
===================================================================
--- trunk/vice/src/core/m93c86.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/core/m93c86.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -460,8 +460,28 @@
}
/* ---------------------------------------------------------------------*/
-/* snapshot support functions */
+/* M93C86 0.1 snapshot module format:
+
+ type | name | description
+ ------------------------------------------
+ BYTE | eeprom_cs |
+ BYTE | eeprom_clock |
+ BYTE | eeprom_data_in |
+ BYTE | eeprom_data_out |
+ BYTE | input_shiftreg |
+ BYTE | input_count |
+ BYTE | output_shiftreg |
+ BYTE | output_count |
+ BYTE | command |
+ BYTE | addr |
+ BYTE | data0 |
+ BYTE | data1 |
+ BYTE | write_enable_status |
+ BYTE | ready_busy_status |
+ ARRAY | m93c86_data | 2048 bytes of ROM data
+ */
+
#define CART_DUMP_VER_MAJOR 0
#define CART_DUMP_VER_MINOR 1
#define SNAP_MODULE_NAME "M93C86"
Modified: trunk/vice/src/core/riotcore.c
===================================================================
--- trunk/vice/src/core/riotcore.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/core/riotcore.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -387,35 +387,25 @@
/*-------------------------------------------------------------------*/
-/* The dump format has a module header and the data generated by the
- * chip...
- *
- * The version of this dump description is 0.0
- *
- */
-
#define RIOT_DUMP_VER_MAJOR 0
#define RIOT_DUMP_VER_MINOR 0
-/*
- * The dump data:
- *
- * UBYTE ORA
- * UBYTE DDRA
- * UBYTE ORB
- * UBYTE DDRB
- * UBYTE EDGECTRL edge control value
- * UBYTE IRQFL IRQ fl:
- * Bit 6/7: see RIOT IRQ flag
- * Bit 0: state of IRQ line (1=active)
- * UBYTE N current timer value
- * UWORD divider 1, 8, 64, 104
- * UWORD rest cycles that the divider has done since last
- * counter tick
- * UBYTE irqen 0= timer IRQ disabled, 1= enabled
- *
- */
+/* RIOT 0.0 snapshot module format:
+ type | name | description
+ ----------------------------------
+ UBYTE | ORA | Port A output register
+ UBYTE | DDRA | Port A data direction register
+ UBYTE | ORB | Port B output register
+ UBYTE | DDRB | Port B data direction register
+ UBYTE | EDGECTRL | edge control value: Bit 0/1: A0/A1 address bits written to edgecontrol registers
+ UBYTE | IRQFL | IRQ fl: Bit 6/7: see RIOT IRQ flag Bit 0: state of IRQ line (1=active)
+ UBYTE | N | current timer value
+ UWORD | divider | Pre-scale divider value (1, 8, 64, or 1024)
+ UWORD | rest | cycles that the divider has done since last counter tick
+ UBYTE | irqen | 0= timer IRQ disabled, 1= enabled
+*/
+
int riotcore_snapshot_write_module(riot_context_t *riot_context, snapshot_t *p)
{
snapshot_module_t *m;
Modified: trunk/vice/src/core/spi-flash.c
===================================================================
--- trunk/vice/src/core/spi-flash.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/core/spi-flash.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -331,6 +331,25 @@
/* ---------------------------------------------------------------------*/
/* snapshot support functions */
+/* EN25QH128A 0.1 snapshot module format:
+
+ type | name | description
+ ----------------------------------------------
+ BYTE | eeprom_cs |
+ BYTE | eeprom_clock |
+ BYTE | eeprom_data_in |
+ BYTE | eeprom_data_out |
+ BYTE | input_shiftreg |
+ BYTE | input_count |
+ BYTE | output_shiftreg |
+ BYTE | output_count |
+ BYTE | command |
+ BYTE | addr |
+ BYTE | write_enable_status |
+ BYTE | ready_busy_status |
+ ARRAY | spi_flash_data | MAX_ROM_SIZE
+*/
+
#define CART_DUMP_VER_MAJOR 0
#define CART_DUMP_VER_MINOR 1
#define SNAP_MODULE_NAME "EN25QH128A"
Modified: trunk/vice/src/core/tpicore.c
===================================================================
--- trunk/vice/src/core/tpicore.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/core/tpicore.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -393,32 +393,27 @@
lib_free(tpi_context);
}
-/* -------------------------------------------------------------------------- */
-/* The dump format has a module header and the data generated by the
- * chip...
- *
- * The version of this dump description is 0/0
+/* ---------------------------------------------------------------------*/
+
+/* TPI 1.0 snapshot module format:
+
+ type | name | description
+ --------------------------------
+ UBYTE | PRA | Port A output register
+ UBYTE | PRB | Port B output register
+ UBYTE | PRC | Port C output register (doubles as IRQ latch register)
+ UBYTE | DDRA | Port A data direction register
+ UBYTE | DDRB | Port B data direction register
+ UBYTE | DDRC | Port C data direction register (doubles as IRQ mask register)
+ UBYTE | CR | Control Register
+ UBYTE | AIR | Active interrupt register
+ UBYTE | STACK | irq sources saved on stack
+ UBYTE | CABSTATE | state of CA and CB pins. Bit 7 = state of CA, Bit 6 = state of CB
*/
#define TPI_DUMP_VER_MAJOR 1
#define TPI_DUMP_VER_MINOR 0
-/*
- * The dump data:
- *
- * UBYTE PRA port A output register
- * UBYTE PRB
- * UBYTE PRC
- * UBYTE DDRA data register A
- * UBYTE DDRB
- * UBYTE DDRC
- * UBYTE CR
- * UBYTE AIR
- *
- * UBYTE STACK irq sources saved on stack
- * UBYTE CABSTATE state of CA and CB pins
- */
-
/* FIXME!!! Error check. */
int tpicore_snapshot_write_module(tpi_context_t *tpi_context, snapshot_t *p)
{
Modified: trunk/vice/src/core/viacore.c
===================================================================
--- trunk/vice/src/core/viacore.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/core/viacore.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -1904,45 +1904,43 @@
/*------------------------------------------------------------------------*/
+/* ---------------------------------------------------------------------*/
+
+/* VIA 2.2 snapshot module format:
+
+ type | name |version| description
+ --------------------------------------------------
+ UBYTE | ORA | | Output register A
+ UBYTE | DDRA | | Data direction register A
+ UBYTE | ORB | | Output register B
+ UBYTE | DDRB | | Data direction register B
+ UWORD | T1L | | timer 1 latch value
+ UWORD | T1C | | timer 1 count value
+ UBYTE | T2LL | | Timer 2 latch lo
+ UBYTE | T2LH | | Timer 2 latch hi
+ UBYTE | T2CL | | timer 2 count value lo
+ UBYTE | T2CH | | timer 2 count value hi
+ UWORD | T2C | | timer 2 counter
+ UBYTE | RUNFL | | bit 7: timer 1 will generate IRQ on underflow; bit 6: timer 2 will generate IRQ on underflow
+ UBYTE | SR | | shift register value
+ UBYTE | ACR | | auxiliary control register
+ UBYTE | PCR | | peripherial control register
+ UBYTE | IFR | | active interrupts
+ UBYTE | IER | | interrupt masks
+ UBYTE | PB7 | | bit 7 = pb7 state
+ UBYTE | SRHBITS | | number of half-bits to shift out on SR
+ UBYTE | CABSTATE | | bit 7 = ca2 state, bit6 = cb2 state, bit5 = cb1
+ UBYTE | ILA | | input latch port A (see ACR bit 0)
+ UBYTE | ILB | | input latch port B (see ACR bit 1)
+ UBYTE | t2_irq_allowed | 2.2+ |
+ UBYTE | t2_underflow_alarm | 2.2+ | 0 if not; 1+time delta if set.
+ UBYTE | t2_shift_alarm | 2.2+ | 0 if not; 1+time delta if set.
+ */
+
/* The name of the modul must be defined before including this file. */
#define VIA_DUMP_VER_MAJOR 2
#define VIA_DUMP_VER_MINOR 2
-/*
- * The dump data:
- *
- * Minor version 1:
- *
- * UBYTE ORA
- * UBYTE DDRA
- * UBYTE ORB
- * UBYTE DDRB
- * UWORD T1L word1 via_context->tal
- * UWORD T1C word2 viacore_t1()
- * UBYTE T2LL
- * UBYTE T2LH
- * UBYTE T2CL
- * UBYTE T2CH
- * UWORD T2C word3 viacore_t2()
- * UBYTE 0x80:t1zero | 0x40:t2xx00 byte1
- * UBYTE SR
- * UBYTE ACR
- * UBYTE PCR
- * UBYTE IFR active interrupts
- * UBYTE IER interrupt masks
- * UBYTE PB7 byte4 bit 7 = pb7 state
- * UBYTE SRHBITS shift register state helper
- * UBYTE CABSTATE byte6 bit 7 = ca2 state, bit6 = cb2 state, bi5 = cb1
- * UBYTE ILA input latch port A
- * UBYTE ILB input latch port B
- *
- * Minor version 2 adds:
- *
- * UBYTE t2_irq_allowed
- * UBYTE t2_underflow_alarm 0 if not; 1+time delta if set.
- * UBYTE t2_shift_alarm 0 if not; 1+time delta if set.
- */
-
/* FIXME!!! Error check. */
int viacore_snapshot_write_module(via_context_t *via_context, snapshot_t *s)
Modified: trunk/vice/src/crtc/crtc-snapshot.c
===================================================================
--- trunk/vice/src/crtc/crtc-snapshot.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/crtc/crtc-snapshot.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -43,8 +43,43 @@
#include "types.h"
-/* Snapshot. */
+/* CRTC 1.2 snapshot module format:
+ type | name |version|description
+ ------------------------------------------
+ WORD | VADDR_MASK | | Mask of the address bits valid when accessing the video memory
+ WORD | VADDR_CHARSWITCH | | If one bit in the video address is used to switch the character generator, it is masked here.
+ WORD | VADDR_CHAROFFSET | | The offset in characters in the character generator that CHARSWITCH switches.
+ WORD | VADDR_REVSWITCH | | If one bit in the video address inverts the screen, it is masked here.
+ WORD | CHARGEN_MASK | | size of character generator in byte - 1
+ WORD | CHARGEN_OFFSET | | offset given by external circuitry
+ BYTE | HW_CURSOR | | external hardware cursor circuitry enabled
+ BYTE | HW_COLS | | number of displayed columns during one character clock cycle
+ BYTE | HW_BLANK | | set if the hardware blank feature is available CRTC register
+ 20 BYTE | REGISTERS | | register DUMP of the CRTC registers 0-19.
+ BYTE | REGNO | | The current index in the CRTC register file
+ BYTE | CHAR | | The current cycle within the current rasterline
+ BYTE | CHARLINE | | The current character line
+ BYTE | YCOUNTER | | The current rasterline in the character
+ BYTE | CRSRCNT | | Framecounter for the blinking cursor
+ BYTE | CRSRSTATE | | if set the hardware cursor is visible
+ BYTE | CRSRLINES | | set if ycounter is within the active cursor rasterlines for a char
+ WORD | CHARGEN_REL | | relative base of currently used character generator in ROM (in byte)
+ WORD | SCREEN_REL | | screen address to load the counter at the beginning of the next rasterline
+ WORD | VSYNC | | number of rasterlines left within vsync; 0 = not in vsync
+ BYTE | VENABLE | | vertical enable flipflop; 1= display, 0= blank.
+ WORD | SCREEN_WIDTH | | width of the current display window
+ WORD | SCREEN_HEIGHT | | height of the current display window
+ WORD | SCREEN_XOFFSET | | x position where the first character in a line starts in the window
+ WORD | HJITTER | | but only after adding this jitter
+ WORD | SCREEN_YOFFSET | | x position where the first character in a line starts in the window
+ WORD | FRAMELINES | | expected number of rasterlines for the current frame
+ WORD | CURRENT_LINE | | current rasterline as seen from the CRTC
+ BYTE | FLAG | 1.1+ | Bit 0: If 1 then bit in VADDR_REVSWITCH must be set for reverse; if 0 then bit must be cleared for reverse.
+
+ (followed by raster module data)
+*/
+
static char snap_module_name[] = "CRTC";
#define SNAP_MAJOR 1
#define SNAP_MINOR 2
Modified: trunk/vice/src/datasette/datasette.c
===================================================================
--- trunk/vice/src/datasette/datasette.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/datasette/datasette.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -1360,6 +1360,30 @@
Snapshot support
******************************************************************************/
+/* DATASETTE 1.5 snapshot module format:
+
+ type | name | description
+ -------------------------------------------------------
+ BYTE | datasette_motor |
+ BYTE | notape_mode |
+ CLOCK | last_write_clk |
+ CLOCK | motor_stop_clk |
+ BYTE | datasette_alarm_pending |
+ CLOCK | alarm_clk |
+ CLOCK | datasette_long_gap_pending |
+ CLOCK | datasette_long_gap_elapsed |
+ BYTE | datasette_last_direction |
+ DWORD | datasette_counter_offset |
+ BYTE | reset_datasette_with_maincpu |
+ DWORD | datasette_zero_gap_delay |
+ DWORD | datasette_speed_tuning |
+ DWORD | datasette_tape_wobble_frequency |
+ DWORD | datasette_tape_wobble_amplitude |
+ DWORD | datasette_tape_azimuth_error |
+ BYTE | fullwave |
+ CLOCK | fullwave_gap |
+*/
+
#define DATASETTE_SNAP_MAJOR 1
#define DATASETTE_SNAP_MINOR 5
Modified: trunk/vice/src/drive/drive-snapshot.c
===================================================================
--- trunk/vice/src/drive/drive-snapshot.c 2026-04-30 03:15:09 UTC (rev 46086)
+++ trunk/vice/src/drive/drive-snapshot.c 2026-05-01 21:17:47 UTC (rev 46087)
@@ -78,35 +78,82 @@
static int drive_snapshot_read_p64image_module(snapshot_t *s, unsigned int dnr);
/*
-This is the format of the DRIVE snapshot module.
+ DRIVE 2.0 snapshot module format:
-Name Type Size Description
+ Type | Name | Description
+ ------------------------------------------------------
+ BYTE | has_tde[unit] |
+ BYTE | has_drives[unit] |
+ DWORD | sync_factor |
+ CLOCK | attach_clk |
+ BYTE | byte_ready_level |
+ BYTE | unit->clock_frequency |
+ WORD | current_half_track + (side * DRIVE_HALFTRACKS_1571)) |
+ CLOCK | detach_clk |
+ BYTE | extend_image_policy |
+ DWORD | GCR_head_offset |
+ BYTE | GCR_read |
+ BYTE | GCR_write_value |
+ BYTE | unit->idling_method |
+ BYTE | unit->parallel_cable |
+ BYTE | read_only |
+ DWORD | rotation_table_ptr[unr] |
+ DWORD | unit->type |
+ DWORD | snap_accum |
+ CLOCK | snap_rotation_last_clk |
+ DWORD | snap_bit_counter |
+ DWORD | snap_zero_count |
+ WORD | snap_last_read_data |
+ BYTE | snap_last_write_data |
+ DWORD | snap_seed |
+ DWORD | snap_speed_zone |
+ DWORD | snap_ue7_dcba |
+ DWORD | snap_ue7_counter |
+ DWORD | snap_uf4_counter |
+ DWORD | snap_fr_randcount |
+ DWORD | snap_filter_counter |
+ DWORD | snap_filter_state |
+ DWORD | snap_filter_last_state |
+ DWORD | snap_write_flux |
+ DWORD | snap_PulseHeadPosition |
+ DWORD | snap_xorShift32 |
+ DWORD | snap_so_delay |
+ DWORD | snap_cycle_index |
+ CLOCK | snap_ref_advance |
+ DWORD | snap_req_ref_cycles |
+ CLOCK | attach_detach_clk |
+ BYTE | byte_ready_edge |
+ BYTE | byte_ready_active |
+*/
-SyncFactor DWORD 1 sync factor main cpu <-> drive cpu
-Accum DWORD 2
-AttachClk CLOCK 2 write protect handling on attach
-BitsMoved DWORD 2 number of bits moved since last access
-ByteReady BYTE 2 flag: Byte ready
-ClockFrequency BYTE 2 current clock frequency
-CurrentHalfTrack WORD 2 current half track of the r/w head
-DetachClk CLOCK 2 write protect handling on detach
-DiskID1 BYTE 2 disk ID1
-DiskID2 BYTE 2 disk ID2
-ExtendImagePolicy BYTE 2 Is extending the disk image allowed
-FinishByte BYTE 2 flag: Mode changed, finish byte
-GCRHeadOffset DWORD 2 offset from the begin of the track
-GCRRead BYTE 2 next value to read from disk
-GCRWriteValue BYTE 2 next value to write to disk
-IdlingMethod BYTE 2 What idle methode do we use
-LastMode BYTE 2 flag: Was the last mode read or write
-ParallelCableEnabled BYTE 2 flag: Is the parallel cable enabed
-ReadOnly BYTE 2 flag: This disk is read only
-RotationLastClk CLOCK 2
-RotationTablePtr DWORD 2 pointer to the rotation table
- (offset to the rotation table is saved)
-Type DWORD 2 drive type
+/*
+ NOTE: some older version apparently looked like this
+ Type | Name | Description
+ -----------------------------------------------
+ DWORD | SyncFactor | sync factor main cpu <-> drive cpu
+ 2 * DWORD | Accum |
+ 2 * CLOCK | AttachClk | write protect handling on attach
+ 2 * DWORD | BitsMoved | number of bits moved since last access
+ 2 * BYTE | ByteReady | flag: Byte ready
+ 2 * BYTE | ClockFrequency | current clock frequency
+ 2 * WORD | CurrentHalfTrack | current half track of the r/w head
+ 2 * CLOCK | DetachClk | write protect handling on detach
+ 2 * BYTE | DiskID1 | disk ID1
+ 2 * BYTE | DiskID2 | disk ID2
+ 2 * BYTE | ExtendImagePolicy | Is extending the disk image allowed
+ 2 * BYTE | FinishByte | flag: Mode changed, finish byte
+ 2 * DWORD | GCRHeadOffset | offset from the begin of the track
+ 2 * BYTE | GCRRead | next value to read from disk
+ 2 * BYTE | GCRWriteValue | next value to write to disk
+ 2 * BYTE | IdlingMethod | What idle methode do we use
+ 2 * BYTE | LastMode | flag: Was the last mode read or...
[truncated message content] |