vice-emu-commit Mailing List for VICE (Page 5)
Versatile Commodore Emulator
Brought to you by:
blackystardust,
gpz
You can subscribe to this list here.
| 2008 |
Jan
|
Feb
|
Mar
|
Apr
(38) |
May
(60) |
Jun
(122) |
Jul
(148) |
Aug
(178) |
Sep
(151) |
Oct
(131) |
Nov
(208) |
Dec
(129) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2009 |
Jan
(193) |
Feb
(209) |
Mar
(221) |
Apr
(243) |
May
(165) |
Jun
(168) |
Jul
(198) |
Aug
(161) |
Sep
(103) |
Oct
(98) |
Nov
(168) |
Dec
(99) |
| 2010 |
Jan
(263) |
Feb
(156) |
Mar
(57) |
Apr
(93) |
May
(85) |
Jun
(124) |
Jul
(57) |
Aug
(58) |
Sep
(113) |
Oct
(148) |
Nov
(114) |
Dec
(193) |
| 2011 |
Jan
(200) |
Feb
(207) |
Mar
(91) |
Apr
(91) |
May
(142) |
Jun
(104) |
Jul
(115) |
Aug
(137) |
Sep
(266) |
Oct
(91) |
Nov
(85) |
Dec
(186) |
| 2012 |
Jan
(98) |
Feb
(146) |
Mar
(160) |
Apr
(99) |
May
(59) |
Jun
(257) |
Jul
(84) |
Aug
(103) |
Sep
(169) |
Oct
(206) |
Nov
(90) |
Dec
(296) |
| 2013 |
Jan
(294) |
Feb
(130) |
Mar
(36) |
Apr
(14) |
May
(51) |
Jun
(74) |
Jul
(180) |
Aug
(85) |
Sep
(26) |
Oct
(45) |
Nov
(29) |
Dec
(21) |
| 2014 |
Jan
(56) |
Feb
(40) |
Mar
(57) |
Apr
(30) |
May
(31) |
Jun
(11) |
Jul
(107) |
Aug
(135) |
Sep
(142) |
Oct
(195) |
Nov
(139) |
Dec
(133) |
| 2015 |
Jan
(293) |
Feb
(161) |
Mar
(146) |
Apr
(85) |
May
(139) |
Jun
(51) |
Jul
(21) |
Aug
(24) |
Sep
(29) |
Oct
(136) |
Nov
(212) |
Dec
(118) |
| 2016 |
Jan
(119) |
Feb
(165) |
Mar
(229) |
Apr
(219) |
May
(134) |
Jun
(119) |
Jul
(134) |
Aug
(236) |
Sep
(203) |
Oct
(215) |
Nov
(300) |
Dec
(140) |
| 2017 |
Jan
(188) |
Feb
(20) |
Mar
(147) |
Apr
(198) |
May
(26) |
Jun
(21) |
Jul
(67) |
Aug
(219) |
Sep
(209) |
Oct
(194) |
Nov
(144) |
Dec
(99) |
| 2018 |
Jan
(139) |
Feb
(122) |
Mar
(116) |
Apr
(85) |
May
(232) |
Jun
(181) |
Jul
(190) |
Aug
(105) |
Sep
(92) |
Oct
(178) |
Nov
(105) |
Dec
(86) |
| 2019 |
Jan
(119) |
Feb
(79) |
Mar
(74) |
Apr
(117) |
May
(115) |
Jun
(307) |
Jul
(107) |
Aug
(131) |
Sep
(103) |
Oct
(60) |
Nov
(118) |
Dec
(70) |
| 2020 |
Jan
(114) |
Feb
(103) |
Mar
(77) |
Apr
(121) |
May
(193) |
Jun
(110) |
Jul
(214) |
Aug
(210) |
Sep
(179) |
Oct
(260) |
Nov
(237) |
Dec
(334) |
| 2021 |
Jan
(163) |
Feb
(186) |
Mar
(58) |
Apr
(81) |
May
(108) |
Jun
(175) |
Jul
(154) |
Aug
(180) |
Sep
(217) |
Oct
(204) |
Nov
(232) |
Dec
(190) |
| 2022 |
Jan
(253) |
Feb
(134) |
Mar
(229) |
Apr
(190) |
May
(125) |
Jun
(70) |
Jul
(8) |
Aug
(22) |
Sep
(19) |
Oct
(33) |
Nov
(94) |
Dec
(164) |
| 2023 |
Jan
(158) |
Feb
(366) |
Mar
(272) |
Apr
(109) |
May
(198) |
Jun
(226) |
Jul
(200) |
Aug
(94) |
Sep
(108) |
Oct
(62) |
Nov
(175) |
Dec
(116) |
| 2024 |
Jan
(35) |
Feb
(40) |
Mar
(51) |
Apr
(89) |
May
(24) |
Jun
(26) |
Jul
(53) |
Aug
(71) |
Sep
(23) |
Oct
(11) |
Nov
(22) |
Dec
(58) |
| 2025 |
Jan
(26) |
Feb
(40) |
Mar
(107) |
Apr
(39) |
May
(35) |
Jun
(20) |
Jul
(11) |
Aug
(24) |
Sep
(35) |
Oct
(28) |
Nov
(12) |
Dec
|
|
From: <gp...@us...> - 2025-07-31 00:06:55
|
Revision: 45720
http://sourceforge.net/p/vice-emu/code/45720
Author: gpz
Date: 2025-07-31 00:06:54 +0000 (Thu, 31 Jul 2025)
Log Message:
-----------
add simple test program for the hummer adc
Added Paths:
-----------
testprogs/DTV/hummeradc/
testprogs/DTV/hummeradc/Makefile
testprogs/DTV/hummeradc/hummeradc.asm
testprogs/DTV/hummeradc/hummeradc.prg
Added: testprogs/DTV/hummeradc/Makefile
===================================================================
--- testprogs/DTV/hummeradc/Makefile (rev 0)
+++ testprogs/DTV/hummeradc/Makefile 2025-07-31 00:06:54 UTC (rev 45720)
@@ -0,0 +1,6 @@
+
+
+all: hummeradc.prg
+
+hummeradc.prg: hummeradc.asm
+ acme -f cbm -o hummeradc.prg hummeradc.asm
Added: testprogs/DTV/hummeradc/hummeradc.asm
===================================================================
--- testprogs/DTV/hummeradc/hummeradc.asm (rev 0)
+++ testprogs/DTV/hummeradc/hummeradc.asm 2025-07-31 00:06:54 UTC (rev 45720)
@@ -0,0 +1,245 @@
+; adcrdxx.asm
+; (c) 2006 by doug garmon
+; released under gpl licence
+
+; delay loops removed for this version
+
+portb = $dd01
+ddr = $dd03
+zstore = $fb
+
+; cia2 portb data direction register settings
+startddr = %00000110
+writeddr = %00000111
+readddr = %00000110
+
+start = %00000100
+clock = %00000010
+writemask = %00000001
+
+; the commands and data in the following section
+; are stored in reverse-bit order (backwards)
+adccmd = %00000001 ; adc read cmd (100)
+ctrlrg = %00000110 ; control reg setting cmd (011)
+chnatt = %00000100 ; channel attribute setting cmd (001)
+wakeup = %00000010 ; channel wakeup cmd (010)
+
+*=$0801
+ !byte $0b,$08,$0a,$00,$9e,$32,$30,$36,$31,0,0,0
+
+; jump table
+; jmp read ; read the adc
+; jmp init ; perform all the init subroutines
+ jmp dmdisp ; demo/display pot values
+
+; data section
+; bits are stored backwards
+; %00000000 channel #0 (000) 3 bits
+; %00001000 4-bit control reg setting (0001) 4 bits
+; the next two setting could just as easily be reset to effect only chan #0
+; %11111111 set all channels for wakeup - 8 bits
+; %11111111 set all channels to analog, not just channel 0 - 8 bits
+channel !byte $00 ; channel #
+chancrset !byte %00001000 ; channel control reg setting data
+chanwake !byte %11111111 ; channel wakeup function -- all
+chananalog !byte %11111111 ; set channels to analog -- all
+
+; read the adc
+read sei ; disable interrupts
+
+ jsr startsig ; the start signal
+
+ lda #adccmd ; send adc command
+ sta zstore ; bits to write in zstore
+ ldx #$03
+
+sendcmd jsr sendbits ; send it
+
+ lda channel ; send channel #
+ sta zstore ; bits to write in zstore
+ ldx #$03
+
+sendchan jsr sendbits ; send it
+
+ lda #readddr ; setup port for read
+ sta ddr
+
+ ldx #$04 ; two empty clock cycles = 4 clock toggles
+cycle jsr toggleclock
+ dex
+ bne cycle
+
+ lda #$00
+ sta zstore ; blank the data store
+
+ ldx #$08 ; get the 8 bits adc
+
+; fetch and store the adc bits
+; read each data bit in the middle of the clock cycle
+
+readadc jsr toggleclock
+ lda portb ; get adc bit
+
+ ror
+ rol zstore
+
+ jsr toggleclock
+ dex
+ bne readadc ; go back & get next bit
+
+ jsr toggleclock ; get the last bit (skip the roll)
+
+ jsr toggleclock ; complete last clock tic...
+ jsr toggleclock
+
+ cli ; enable interrupts
+ rts
+
+; init
+; call all the init routines
+
+init
+
+; init the control register settings
+; set the voltage reference to use 'ref' pin
+
+initcrs
+ sei
+ jsr startsig
+
+ lda #ctrlrg ; control reg setting command
+ sta zstore ; bits to write in zstore
+ ldx #$03 ; 3 bits
+
+ jsr sendbits ; send the cmd
+
+ lda chancrset ; cntl reg setting
+ sta zstore
+ ldx #$04 ; 4 bits in a cr setting
+
+ jsr sendbits ; send the setting
+
+; init channels for analog input
+initchn
+ jsr startsig
+
+ lda #chnatt ; channel attribute command
+ sta zstore ; bits to write in zstore
+ ldx #$03 ; 3 bits
+
+ jsr sendbits ; send the cmd
+
+ lda chananalog ; set channels to analog
+ sta zstore
+ ldx #$08 ; 8 bits
+
+ jsr sendbits ; send the setting
+
+; init channels for wakeup function
+initwake
+ jsr startsig
+
+ lda #wakeup ; wakeup command
+ sta zstore ; bits to write in zstore
+ ldx #$03 ; 3 bits
+
+ jsr sendbits ; send the cmd
+
+ lda chanwake ; set channels to wake
+ sta zstore
+ ldx #$08 ; 8 bits
+
+ jsr sendbits ; send the setting
+ cli
+
+ rts
+
+; send bits to adc
+; zstore holds bits (one byte, up to 8 bits)
+; x reg holds number of bits
+
+sendbits
+ jsr writebit
+ jsr toggleclock
+
+ lsr zstore ; shift the cmd/data bits
+ dex
+ bne sendbits ; loop back until all bits sent
+
+ rts
+
+
+; start signal, initiate any transfer
+; startsig also initializes the ddr for whatever cmd follows
+
+startsig
+ lda #startddr ; initialize for start
+ sta ddr
+ lda #start
+ sta portb ; begin start signal
+
+ lda #$00
+ sta portb ; drop start
+
+ lda #writeddr ; initialize for write
+ sta ddr
+ rts
+
+; toggles clock
+
+toggleclock
+ lda portb
+ eor #clock ; eor the current state of clock
+ sta portb
+
+ rts
+
+; sets clock, writes to dio
+; writing only involves two bits (clock and data), so don't set clock and data
+; separately--just set the two bits as required and write to the port once.
+
+writebit
+ lda zstore
+ and #writemask ; and the data bit
+ ora #clock ; set the clock bit
+ sta portb
+
+ rts
+
+; david murray's demo/display routine:
+; display adc values in loop, exit on keypress
+
+dmdisp jsr init
+
+ lda #$93 ; petscii for clearscreen
+ jsr $ffd2 ; kernal char-out
+disp
+ lda #$13 ; print home
+ jsr $ffd2
+
+ jsr read ; read the ADC
+ lda zstore
+ and #$f0 ; get only high 4-bits
+ ror
+ ror
+ ror
+ ror
+ jsr convert
+ jsr $ffd2
+ lda zstore
+ and #$0f ; get only low 4 bits
+ jsr convert
+ jsr $ffd2
+ jsr $ffe4 ; get char from keyboard
+; cmp #$00
+; bne convert2 ; if not equal to zero, end.
+ sta $0400+80
+
+ jmp disp
+convert
+ adc #$30 ; routine converts a digit 0-15 to
+ cmp #$3a ; a petscii character for hex display
+ bcc convert2
+ adc #$06
+convert2
+ rts
Added: testprogs/DTV/hummeradc/hummeradc.prg
===================================================================
(Binary files differ)
Index: testprogs/DTV/hummeradc/hummeradc.prg
===================================================================
--- testprogs/DTV/hummeradc/hummeradc.prg 2025-07-30 23:50:48 UTC (rev 45719)
+++ testprogs/DTV/hummeradc/hummeradc.prg 2025-07-31 00:06:54 UTC (rev 45720)
Property changes on: testprogs/DTV/hummeradc/hummeradc.prg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/x-commodore-exec
\ No newline at end of property
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gp...@us...> - 2025-07-30 23:50:50
|
Revision: 45719
http://sourceforge.net/p/vice-emu/code/45719
Author: gpz
Date: 2025-07-30 23:50:48 +0000 (Wed, 30 Jul 2025)
Log Message:
-----------
hotfix for #2155 - the proper fix will be to convert ps/2 mouse and hummer-adc to the new userport system
Modified Paths:
--------------
trunk/vice/src/c64dtv/c64dtvcia2.c
trunk/vice/src/c64dtv/hummeradc.c
Modified: trunk/vice/src/c64dtv/c64dtvcia2.c
===================================================================
--- trunk/vice/src/c64dtv/c64dtvcia2.c 2025-07-29 23:17:47 UTC (rev 45718)
+++ trunk/vice/src/c64dtv/c64dtvcia2.c 2025-07-30 23:50:48 UTC (rev 45719)
@@ -56,9 +56,13 @@
void cia2_store(uint16_t addr, uint8_t data)
{
if ((addr & 0x1f) == 1) {
- store_userport_pbx(data, USERPORT_NO_PULSE);
+ /* HACK: for now only call the userport system when neither ps/2 mouse
+ nor hummer adc is enabled */
+ if (!c64dtv_hummer_adc_enabled && !ps2mouse_enabled) {
+ store_userport_pbx(data, USERPORT_NO_PULSE);
+ }
- /* The functions below will gradually be removed as the functionality is added to the new userport system. */
+ /* FIXME: convert hummer adc and ps/2 mouse support to new userport system */
if (c64dtv_hummer_adc_enabled) {
hummeradc_store(data);
}
@@ -75,9 +79,13 @@
uint8_t retval = 0xff;
if ((addr & 0x1f) == 1) {
- retval = read_userport_pbx(retval);
+ /* HACK: for now only call the userport system when neither ps/2 mouse
+ nor hummer adc is enabled */
+ if (!c64dtv_hummer_adc_enabled && !ps2mouse_enabled) {
+ retval = read_userport_pbx(retval);
+ }
- /* The functions below will gradually be removed as the functionality is added to the new userport system. */
+ /* FIXME: convert hummer adc and ps/2 mouse support to new userport system */
if (ps2mouse_enabled) {
retval &= (ps2mouse_read() | 0x3f);
}
Modified: trunk/vice/src/c64dtv/hummeradc.c
===================================================================
--- trunk/vice/src/c64dtv/hummeradc.c 2025-07-29 23:17:47 UTC (rev 45718)
+++ trunk/vice/src/c64dtv/hummeradc.c 2025-07-30 23:50:48 UTC (rev 45719)
@@ -45,6 +45,7 @@
#define ADC_DIO_BIT 0x01
/* Hummer ADC variables */
+/* FIXME: move code from c64dtvmemsnapshot.c here, make static */
uint8_t hummeradc_value;
uint8_t hummeradc_channel;
uint8_t hummeradc_control;
@@ -112,7 +113,7 @@
{
uint16_t joyport_3_joystick_value;
#ifdef HUMMERADC_DEBUG_ENABLED
- HUMMERADC_DEBUG("write: value %02x, state %i", value, hummeradc_state);
+ HUMMERADC_DEBUG("write: value %02x, state %i, ADC:%2x", value, hummeradc_state, hummeradc_value);
#endif
if (value & ADC_START_BIT) {
hummeradc_state = ADC_START;
@@ -232,13 +233,13 @@
- "inertia" (hold down left/right for value++/--), handled elsewhere */
joyport_3_joystick_value = get_joystick_value(JOYPORT_3);
switch (joyport_3_joystick_value & 0x0c) {
- case 4:
+ case 4: /* left */
hummeradc_value = 0x00;
break;
- case 8:
+ case 8: /* right */
hummeradc_value = 0xff;
break;
- default:
+ default: /* neutral */
hummeradc_value = 0x80;
break;
}
@@ -303,7 +304,7 @@
break;
}
#ifdef HUMMERADC_DEBUG_ENABLED
- HUMMERADC_DEBUG(" read: value %02x, state %i", retval, hummeradc_state);
+ HUMMERADC_DEBUG(" read: value %02x, state %i, ADC:%2x", retval, hummeradc_state, hummeradc_value);
#endif
return retval;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gp...@us...> - 2025-07-29 23:17:49
|
Revision: 45718
http://sourceforge.net/p/vice-emu/code/45718
Author: gpz
Date: 2025-07-29 23:17:47 +0000 (Tue, 29 Jul 2025)
Log Message:
-----------
add hint on how to setup the Hummer ADC joystick
Modified Paths:
--------------
trunk/vice/doc/vice.texi
Modified: trunk/vice/doc/vice.texi
===================================================================
--- trunk/vice/doc/vice.texi 2025-07-29 22:02:24 UTC (rev 45717)
+++ trunk/vice/doc/vice.texi 2025-07-29 23:17:47 UTC (rev 45718)
@@ -14011,7 +14011,8 @@
Hummer ADC, userport joystick and PS/2 mouse.
The joystick that controls either the Hummer ADC or userport joystick
-can be selected using the same parameter or menu option.
+can be selected using the same parameter or menu option. (Enable "Hummer userport
+adapter" and use the first extra joystick.)
While using the Hummer ADC, joystick UP and DOWN are mapped to
the Hummer buttons A and B respectively. LEFT and RIGHT set the ADCs
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gp...@us...> - 2025-07-29 22:02:27
|
Revision: 45717
http://sourceforge.net/p/vice-emu/code/45717
Author: gpz
Date: 2025-07-29 22:02:24 +0000 (Tue, 29 Jul 2025)
Log Message:
-----------
add support for the PAL DTV Hummer
Modified Paths:
--------------
trunk/vice/doc/vice.texi
trunk/vice/src/arch/gtk3/c64dtvui.c
trunk/vice/src/arch/gtk3/widgets/settings_c64dtvflash.c
trunk/vice/src/arch/gtk3/widgets/settings_model.c
trunk/vice/src/arch/sdl/menu_c64dtvhw.c
trunk/vice/src/c64dtv/c64dtv-cmdline-options.c
trunk/vice/src/c64dtv/c64dtvflash.c
trunk/vice/src/c64dtv/c64dtvmodel.c
trunk/vice/src/c64dtv/c64dtvmodel.h
Modified: trunk/vice/doc/vice.texi
===================================================================
--- trunk/vice/doc/vice.texi 2025-07-29 15:23:08 UTC (rev 45716)
+++ trunk/vice/doc/vice.texi 2025-07-29 22:02:24 UTC (rev 45717)
@@ -13935,11 +13935,16 @@
Specify filename of the C64DTV PAL v3 ROM image
(@code{DTVPALV3FlashName}).
-@findex -hummerromimage
-@item -hummerromimage <name>
-Specify filename of the C64DTV Hummer ROM image
-(@code{DTVHummerFlashName}).
+@findex -hummerntscromimage
+@item -hummerntscromimage <name>
+Specify filename of the C64DTV NTSC Hummer ROM image
+(@code{DTVNTSCHummerFlashName}).
+@findex -hummerpalromimage
+@item -hummerpalromimage <name>
+Specify filename of the C64DTV PAL Hummer ROM image
+(@code{DTVPALHummerFlashName}).
+
@findex -c64dtvromrw, +c64dtvromrw
@item -c64dtvromrw
@itemx +c64dtvromrw
@@ -14110,10 +14115,14 @@
@item DTVPALV3FlashName
String specifying the filename of the DTV PAL v3 Flash ROM image.
-@vindex DTVHummerFlashName
-@item DTVHummerFlashName
-String specifying the filename of the DTV Hummer Flash ROM image.
+@vindex DTVNTSCHummerFlashName
+@item DTVNTSCHummerFlashName
+String specifying the filename of the DTV NTSC Hummer Flash ROM image.
+@vindex DTVPALHummerFlashName
+@item DTVPALHummerFlashName
+String specifying the filename of the DTV PAL Hummer Flash ROM image.
+
@vindex DTVFlashRevision
@item DTVFlashRevision
Integer specifying which of the above Flash ROM images will be used.
Modified: trunk/vice/src/arch/gtk3/c64dtvui.c
===================================================================
--- trunk/vice/src/arch/gtk3/c64dtvui.c 2025-07-29 15:23:08 UTC (rev 45716)
+++ trunk/vice/src/arch/gtk3/c64dtvui.c 2025-07-29 22:02:24 UTC (rev 45717)
@@ -53,6 +53,7 @@
"V2 NTSC",
"V3 PAL",
"V3 NTSC",
+ "Hummer (PAL)",
"Hummer (NTSC)",
NULL
};
Modified: trunk/vice/src/arch/gtk3/widgets/settings_c64dtvflash.c
===================================================================
--- trunk/vice/src/arch/gtk3/widgets/settings_c64dtvflash.c 2025-07-29 15:23:08 UTC (rev 45716)
+++ trunk/vice/src/arch/gtk3/widgets/settings_c64dtvflash.c 2025-07-29 22:02:24 UTC (rev 45717)
@@ -5,14 +5,15 @@
*/
/*
- * $VICERES DTVPALV2FlashName x64dtv
- * $VICERES DTVNTSCV2FlashName x64dtv
- * $VICERES DTVPALV3FlashName x64dtv
- * $VICERES DTVNTSCV3FlashName x64dtv
- * $VICERES DTVHummerFlashName x64dtv
- * $VICERES c64dtvromrw x64dtv
- * $VICERES FSFlashDir x64dtv
- * $VICERES FlashTrueFS x64dtv
+ * $VICERES DTVPALV2FlashName x64dtv
+ * $VICERES DTVNTSCV2FlashName x64dtv
+ * $VICERES DTVPALV3FlashName x64dtv
+ * $VICERES DTVNTSCV3FlashName x64dtv
+ * $VICERES DTVPALHummerFlashName x64dtv
+ * $VICERES DTVNTSCHummerFlashName x64dtv
+ * $VICERES c64dtvromrw x64dtv
+ * $VICERES FSFlashDir x64dtv
+ * $VICERES FlashTrueFS x64dtv
*/
/*
@@ -59,7 +60,8 @@
"DTVNTSCV2FlashName",
"DTVPALV3FlashName",
"DTVNTSCV3FlashName",
- "DTVHummerFlashName"
+ "DTVPALHummerFlashName",
+ "DTVNTSCHummerFlashName"
};
chooser = vice_gtk3_resource_filechooser_new(resnames[idx],
@@ -144,15 +146,20 @@
gtk_grid_attach(GTK_GRID(grid), label, 0, 3, 1, 1);
gtk_grid_attach(GTK_GRID(grid), rom_file, 1, 3, 1, 1);
- label = label_helper("Hummer ROM file");
- rom_file = create_rom_widget(DTVMODEL_HUMMER_NTSC);
+ label = label_helper("PAL Hummer ROM file");
+ rom_file = create_rom_widget(DTVMODEL_HUMMER_PAL);
gtk_grid_attach(GTK_GRID(grid), label, 0, 4, 1, 1);
gtk_grid_attach(GTK_GRID(grid), rom_file, 1, 4, 1, 1);
+ label = label_helper("NTSC Hummer ROM file");
+ rom_file = create_rom_widget(DTVMODEL_HUMMER_NTSC);
+ gtk_grid_attach(GTK_GRID(grid), label, 0, 5, 1, 1);
+ gtk_grid_attach(GTK_GRID(grid), rom_file, 1, 5, 1, 1);
+
rom_write = vice_gtk3_resource_check_button_new(
"c64dtvromrw",
"Enable writes to C64DTV ROM image");
- gtk_grid_attach(GTK_GRID(grid), rom_write, 1, 5, 1, 1);
+ gtk_grid_attach(GTK_GRID(grid), rom_write, 1, 6, 1, 1);
/* Flash dir and true HW flash check button */
label = label_helper("Flash FS directory");
@@ -162,9 +169,9 @@
"Enable true hardware flash file system");
gtk_widget_set_margin_top(label, 16);
gtk_widget_set_margin_top(flash_dir, 16);
- gtk_grid_attach(GTK_GRID(grid), label, 0, 6, 1, 1);
- gtk_grid_attach(GTK_GRID(grid), flash_dir, 1, 6, 1, 1);
- gtk_grid_attach(GTK_GRID(grid), flash_hw, 1, 7, 1, 1);
+ gtk_grid_attach(GTK_GRID(grid), label, 0, 7, 1, 1);
+ gtk_grid_attach(GTK_GRID(grid), flash_dir, 1, 7, 1, 1);
+ gtk_grid_attach(GTK_GRID(grid), flash_hw, 1, 8, 1, 1);
gtk_widget_show_all(grid);
return grid;
Modified: trunk/vice/src/arch/gtk3/widgets/settings_model.c
===================================================================
--- trunk/vice/src/arch/gtk3/widgets/settings_model.c 2025-07-29 15:23:08 UTC (rev 45716)
+++ trunk/vice/src/arch/gtk3/widgets/settings_model.c 2025-07-29 22:02:24 UTC (rev 45717)
@@ -770,6 +770,7 @@
break;
case DTVMODEL_V3_PAL: /* fall through */
case DTVMODEL_V3_NTSC: /* fall through */
+ case DTVMODEL_HUMMER_PAL:
case DTVMODEL_HUMMER_NTSC:
rev = DTVREV_3;
break;
Modified: trunk/vice/src/arch/sdl/menu_c64dtvhw.c
===================================================================
--- trunk/vice/src/arch/sdl/menu_c64dtvhw.c 2025-07-29 15:23:08 UTC (rev 45716)
+++ trunk/vice/src/arch/sdl/menu_c64dtvhw.c 2025-07-29 22:02:24 UTC (rev 45717)
@@ -86,6 +86,11 @@
.callback = custom_DTVModel_callback,
.data = (ui_callback_data_t)DTVMODEL_V3_NTSC
},
+ { .string = "Hummer PAL",
+ .type = MENU_ENTRY_RESOURCE_RADIO,
+ .callback = custom_DTVModel_callback,
+ .data = (ui_callback_data_t)DTVMODEL_HUMMER_PAL
+ },
{ .string = "Hummer NTSC",
.type = MENU_ENTRY_RESOURCE_RADIO,
.callback = custom_DTVModel_callback,
@@ -100,7 +105,8 @@
UI_MENU_DEFINE_FILE_STRING(DTVPALV2FlashName)
UI_MENU_DEFINE_FILE_STRING(DTVNTSCV3FlashName)
UI_MENU_DEFINE_FILE_STRING(DTVPALV3FlashName)
-UI_MENU_DEFINE_FILE_STRING(DTVHummerFlashName)
+UI_MENU_DEFINE_FILE_STRING(DTVPALHummerFlashName)
+UI_MENU_DEFINE_FILE_STRING(DTVNTSCHummerFlashName)
UI_MENU_DEFINE_TOGGLE(c64dtvromrw)
UI_MENU_DEFINE_TOGGLE(FlashTrueFS)
@@ -162,11 +168,16 @@
.callback = file_string_DTVPALV3FlashName_callback,
.data = (ui_callback_data_t)"Select C64DTV PAL v3 ROM image file"
},
- { .string = "Hummer",
+ { .string = "PAL Hummer",
.type = MENU_ENTRY_DIALOG,
- .callback = file_string_DTVHummerFlashName_callback,
- .data = (ui_callback_data_t)"Select C64DTV Hummer ROM image file"
+ .callback = file_string_DTVPALHummerFlashName_callback,
+ .data = (ui_callback_data_t)"Select C64DTV PAL Hummer ROM image file"
},
+ { .string = "NTSC Hummer",
+ .type = MENU_ENTRY_DIALOG,
+ .callback = file_string_DTVNTSCHummerFlashName_callback,
+ .data = (ui_callback_data_t)"Select C64DTV NTSC Hummer ROM image file"
+ },
SDL_MENU_ITEM_SEPARATOR,
{ .string = "Enable writes",
Modified: trunk/vice/src/c64dtv/c64dtv-cmdline-options.c
===================================================================
--- trunk/vice/src/c64dtv/c64dtv-cmdline-options.c 2025-07-29 15:23:08 UTC (rev 45716)
+++ trunk/vice/src/c64dtv/c64dtv-cmdline-options.c 2025-07-29 22:02:24 UTC (rev 45717)
@@ -48,6 +48,8 @@
{ "v3pal", DTVMODEL_V3_PAL },
{ "v3ntsc", DTVMODEL_V3_NTSC },
{ "hummer", DTVMODEL_HUMMER_NTSC },
+ { "hummerpal", DTVMODEL_HUMMER_PAL },
+ { "hummerntsc", DTVMODEL_HUMMER_NTSC },
{ NULL, DTVMODEL_UNKNOWN }
};
Modified: trunk/vice/src/c64dtv/c64dtvflash.c
===================================================================
--- trunk/vice/src/c64dtv/c64dtvflash.c 2025-07-29 15:23:08 UTC (rev 45716)
+++ trunk/vice/src/c64dtv/c64dtvflash.c 2025-07-29 22:02:24 UTC (rev 45717)
@@ -49,11 +49,12 @@
/* #define DEBUG */
-#define DTVROM_PALV2_NAME_DEFAULT "dtvrom.bin" /* FIXME: rename (who made this?) */
-#define DTVROM_PALV3_NAME_DEFAULT "dtvrom.bin" /* FIXME: rename (who made this?) */
-#define DTVROM_NTSCV2_NAME_DEFAULT "dtvrom.bin" /* FIXME: rename (who made this?) */
-#define DTVROM_NTSCV3_NAME_DEFAULT "dtvrom.bin" /* FIXME: rename (who made this?) */
-#define DTVROM_HUMMER_NAME_DEFAULT "dtvrom.bin" /* FIXME: rename (who made this?) */
+#define DTVROM_PALV2_NAME_DEFAULT "dtvrom.bin" /* FIXME: rename (who made this?) */
+#define DTVROM_PALV3_NAME_DEFAULT "dtvrom.bin" /* FIXME: rename (who made this?) */
+#define DTVROM_NTSCV2_NAME_DEFAULT "dtvrom.bin" /* FIXME: rename (who made this?) */
+#define DTVROM_NTSCV3_NAME_DEFAULT "dtvrom.bin" /* FIXME: rename (who made this?) */
+#define DTVROM_HUMMER_NAME_DEFAULT "dtvrom.bin" /* FIXME: rename (who made this?) */
+#define DTVROM_HUMMER_PAL_NAME_DEFAULT "dtvrom.bin" /* FIXME: rename (who made this?) */
static log_t c64dtvflash_log = LOG_DEFAULT;
#ifdef DEBUG
@@ -634,8 +635,10 @@
&c64dtvflash_filename[DTVMODEL_V3_NTSC], set_c64dtvflash_filename, (void*)DTVMODEL_V3_NTSC },
{ "DTVPALV3FlashName", DTVROM_PALV3_NAME_DEFAULT, RES_EVENT_NO, NULL,
&c64dtvflash_filename[DTVMODEL_V3_PAL], set_c64dtvflash_filename, (void*)DTVMODEL_V3_PAL },
- { "DTVHummerFlashName", DTVROM_HUMMER_NAME_DEFAULT, RES_EVENT_NO, NULL,
+ { "DTVNTSCHummerFlashName", DTVROM_HUMMER_NAME_DEFAULT, RES_EVENT_NO, NULL,
&c64dtvflash_filename[DTVMODEL_HUMMER_NTSC], set_c64dtvflash_filename, (void*)DTVMODEL_HUMMER_NTSC },
+ { "DTVPALHummerFlashName", DTVROM_HUMMER_PAL_NAME_DEFAULT, RES_EVENT_NO, NULL,
+ &c64dtvflash_filename[DTVMODEL_HUMMER_PAL], set_c64dtvflash_filename, (void*)DTVMODEL_HUMMER_PAL },
RESOURCE_STRING_LIST_END
};
@@ -682,9 +685,12 @@
{ "-palv3romimage", SET_RESOURCE, CMDLINE_ATTRIB_NEED_ARGS,
NULL, NULL, "DTVPALV3FlashName", NULL,
"<Name>", "Specify name of C64DTV PAL v3 ROM image" },
- { "-hummerromimage", SET_RESOURCE, CMDLINE_ATTRIB_NEED_ARGS,
- NULL, NULL, "DTVHummerFlashName", NULL,
- "<Name>", "Specify name of C64DTV Hummer ROM image" },
+ { "-hummerntscromimage", SET_RESOURCE, CMDLINE_ATTRIB_NEED_ARGS,
+ NULL, NULL, "DTVNTSCHummerFlashName", NULL,
+ "<Name>", "Specify name of C64DTV NTSC Hummer ROM image" },
+ { "-hummerpalromimage", SET_RESOURCE, CMDLINE_ATTRIB_NEED_ARGS,
+ NULL, NULL, "DTVPALHummerFlashName", NULL,
+ "<Name>", "Specify name of C64DTV PAL Hummer ROM image" },
{ "-c64dtvromrw", SET_RESOURCE, CMDLINE_ATTRIB_NONE,
NULL, NULL, "c64dtvromrw", (void *)1,
NULL, "Enable writes to C64DTV ROM image" },
Modified: trunk/vice/src/c64dtv/c64dtvmodel.c
===================================================================
--- trunk/vice/src/c64dtv/c64dtvmodel.c 2025-07-29 15:23:08 UTC (rev 45716)
+++ trunk/vice/src/c64dtv/c64dtvmodel.c 2025-07-29 22:02:24 UTC (rev 45717)
@@ -83,6 +83,7 @@
{ MACHINE_SYNC_NTSC, DTVREV_2, IS_DTV, DTVMODEL_V2_NTSC }, /* DTV v2 (ntsc) */
{ MACHINE_SYNC_PAL, DTVREV_3, IS_DTV, DTVMODEL_V3_PAL }, /* DTV v3 (pal) */
{ MACHINE_SYNC_NTSC, DTVREV_3, IS_DTV, DTVMODEL_V3_NTSC }, /* DTV v3 (ntsc) */
+ { MACHINE_SYNC_PAL, DTVREV_3, IS_HUMMER, DTVMODEL_HUMMER_PAL }, /* Hummer (pal) */
{ MACHINE_SYNC_NTSC, DTVREV_3, IS_HUMMER, DTVMODEL_HUMMER_NTSC }, /* Hummer (ntsc) */
};
Modified: trunk/vice/src/c64dtv/c64dtvmodel.h
===================================================================
--- trunk/vice/src/c64dtv/c64dtvmodel.h 2025-07-29 15:23:08 UTC (rev 45716)
+++ trunk/vice/src/c64dtv/c64dtvmodel.h 2025-07-29 22:02:24 UTC (rev 45717)
@@ -35,6 +35,7 @@
DTVMODEL_V2_NTSC, /* DTV v2 (ntsc) */
DTVMODEL_V3_PAL, /* DTV v3 (pal) */
DTVMODEL_V3_NTSC, /* DTV v3 (ntsc) */
+ DTVMODEL_HUMMER_PAL, /* Hummer (pal) */
DTVMODEL_HUMMER_NTSC, /* Hummer (ntsc) */
/* This entry always needs to be at the end */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gp...@us...> - 2025-07-29 15:23:10
|
Revision: 45716
http://sourceforge.net/p/vice-emu/code/45716
Author: gpz
Date: 2025-07-29 15:23:08 +0000 (Tue, 29 Jul 2025)
Log Message:
-----------
in C65/Mega65 mode preserve leading spaces in txt->prg conversion, patch by Dan Sanderson
Modified Paths:
--------------
trunk/vice/src/tools/petcat/petcat.c
Modified: trunk/vice/src/tools/petcat/petcat.c
===================================================================
--- trunk/vice/src/tools/petcat/petcat.c 2025-07-29 13:35:42 UTC (rev 45715)
+++ trunk/vice/src/tools/petcat/petcat.c 2025-07-29 15:23:08 UTC (rev 45716)
@@ -1882,6 +1882,23 @@
#define MAX_INLINE_LEN (256 * 8)
#define MAX_OUTLINE_LEN 256
+static unsigned char* check_leading_space(int version, unsigned char* p)
+{
+ if (version == B_10 || version == B_65) {
+ /* for modes that preserve leading spaces, only delete a single space */
+ if (isspace(*p)) {
+ p++;
+ }
+ } else {
+ /* otherwise, delete all leading spaces */
+ while (isspace((unsigned char)*p)) {
+ p++;
+ }
+ }
+
+ return p;
+}
+
static void p_tokenize(int version, unsigned int addr, int ctrls)
{
static char line[MAX_INLINE_LEN + 1];
@@ -1920,10 +1937,9 @@
quote = 0;
rem_data_mode = 0;
- while (isspace((unsigned char)*p2)) {
- p2++;
- }
+ p2 = check_leading_space(version, p2);
+
while (*p2) {
if (*p2 == 0x22) {
quote ^= *p2;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gp...@us...> - 2025-07-29 13:35:43
|
Revision: 45715
http://sourceforge.net/p/vice-emu/code/45715
Author: gpz
Date: 2025-07-29 13:35:42 +0000 (Tue, 29 Jul 2025)
Log Message:
-----------
added testprogram related to bug #2124
Modified Paths:
--------------
testprogs/testbench/kernal64scpu64-testlist.txt
testprogs/testbench/scpu-testlist.in
testprogs/testbench/xscpu64-testlist.txt
Added Paths:
-----------
testprogs/SCPU/reu/
testprogs/SCPU/reu/Makefile
testprogs/SCPU/reu/dmatest.prg
testprogs/SCPU/reu/dmatest.s
testprogs/SCPU/reu/readme.txt
Added: testprogs/SCPU/reu/Makefile
===================================================================
--- testprogs/SCPU/reu/Makefile (rev 0)
+++ testprogs/SCPU/reu/Makefile 2025-07-29 13:35:42 UTC (rev 45715)
@@ -0,0 +1,10 @@
+
+XSCPU = /Applications/vice-arm64-gtk3-3.9/bin/xscpu64
+X64SC = /Applications/vice-arm64-gtk3-3.9/bin/x64sc
+
+dmatest.prg: dmatest.s
+ cl65 -t none --start-addr 2047 $^ -o $@
+
+run: dmatest.prg
+ #$(XSCPU) dmatest.prg
+ $(X64SC) dmatest.prg
Added: testprogs/SCPU/reu/dmatest.prg
===================================================================
(Binary files differ)
Index: testprogs/SCPU/reu/dmatest.prg
===================================================================
--- testprogs/SCPU/reu/dmatest.prg 2025-07-23 12:58:46 UTC (rev 45714)
+++ testprogs/SCPU/reu/dmatest.prg 2025-07-29 13:35:42 UTC (rev 45715)
Property changes on: testprogs/SCPU/reu/dmatest.prg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/x-commodore-exec
\ No newline at end of property
Added: testprogs/SCPU/reu/dmatest.s
===================================================================
--- testprogs/SCPU/reu/dmatest.s (rev 0)
+++ testprogs/SCPU/reu/dmatest.s 2025-07-29 13:35:42 UTC (rev 45715)
@@ -0,0 +1,83 @@
+
+ .MACPACK cbm
+ .word basicstub ; load address
+
+da=$0400+52
+
+basicstub:
+ .byte $0b,$08,$0a,$00,$9e,$32,$30,$36,$31,0,0,0
+
+ sei
+ ldx#119
+:
+ lda#32
+ sta $0400,x
+ lda#7
+ sta $d800,x
+ dex
+ bne :-
+
+ jsr tx
+ jsr rx
+
+ ldx#15
+: lda da,x
+ cmp sd,x
+ bne fail
+ dex
+ bpl :-
+
+ lda #5 ; green
+ ldy #0 ; pass
+ jmp store
+fail:
+ lda #2 ; red
+ ldy #$ff ; fail
+store:
+ sta $d020
+ sty $d7ff
+ cli
+ rts
+
+tx:
+ lda #<sd ; C64 addr
+ sta $df02
+ lda #>sd
+ sta $df03
+ lda #$01 ; REU addr $006001
+ sta $df04
+ lda #$60
+ sta $df05
+ lda #$00
+ sta $df06
+ nop
+ lda #$10 ; len $0010
+ sta $df07
+ nop
+ lda #$00
+ sta $df08
+ lda #$90 ; execute C64->REU
+ sta $df01
+ rts
+rx:
+ lda #<da ; C64 addr
+ sta $df02
+ lda #>da
+ sta $df03
+ lda #$01 ; REU addr $006001
+ sta $df04
+ lda #$60
+ sta $df05
+ lda #$00
+ sta $df06
+ nop
+ lda #$10 ; len $0010
+ sta $df07
+ nop
+ lda #$00
+ sta $df08
+ lda #$91 ; execute REU->C64
+ sta $df01
+ rts
+sd:
+ scrcode "ANIMALS IN A ZOO"
Added: testprogs/SCPU/reu/readme.txt
===================================================================
--- testprogs/SCPU/reu/readme.txt (rev 0)
+++ testprogs/SCPU/reu/readme.txt 2025-07-29 13:35:42 UTC (rev 45715)
@@ -0,0 +1,2 @@
+related to bug #2124
+
Modified: testprogs/testbench/kernal64scpu64-testlist.txt
===================================================================
--- testprogs/testbench/kernal64scpu64-testlist.txt 2025-07-23 12:58:46 UTC (rev 45714)
+++ testprogs/testbench/kernal64scpu64-testlist.txt 2025-07-29 13:35:42 UTC (rev 45715)
@@ -25,6 +25,10 @@
../SCPU/scputest/,scputest-0.prg,exitcode,30000000
../SCPU/scputest/,scputest-1.prg,exitcode,30000000
################################################################################
+# REU
+################################################################################
+../SCPU/reu/,dmatest.prg,exitcode,6000000
+################################################################################
# Joystick/Mouse
################################################################################
################################################################################
Modified: testprogs/testbench/scpu-testlist.in
===================================================================
--- testprogs/testbench/scpu-testlist.in 2025-07-23 12:58:46 UTC (rev 45714)
+++ testprogs/testbench/scpu-testlist.in 2025-07-29 13:35:42 UTC (rev 45715)
@@ -24,6 +24,10 @@
../SCPU/scputest/,scputest-0.prg,exitcode,30000000
../SCPU/scputest/,scputest-1.prg,exitcode,30000000
################################################################################
+# REU
+################################################################################
+../SCPU/reu/,dmatest.prg,exitcode,6000000
+################################################################################
# Joystick/Mouse
################################################################################
################################################################################
Modified: testprogs/testbench/xscpu64-testlist.txt
===================================================================
--- testprogs/testbench/xscpu64-testlist.txt 2025-07-23 12:58:46 UTC (rev 45714)
+++ testprogs/testbench/xscpu64-testlist.txt 2025-07-29 13:35:42 UTC (rev 45715)
@@ -25,6 +25,10 @@
../SCPU/scputest/,scputest-0.prg,exitcode,30000000
../SCPU/scputest/,scputest-1.prg,exitcode,30000000
################################################################################
+# REU
+################################################################################
+../SCPU/reu/,dmatest.prg,exitcode,6000000
+################################################################################
# Joystick/Mouse
################################################################################
################################################################################
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <emp...@us...> - 2025-07-23 12:58:48
|
Revision: 45714
http://sourceforge.net/p/vice-emu/code/45714
Author: empathicqubit
Date: 2025-07-23 12:58:46 +0000 (Wed, 23 Jul 2025)
Log Message:
-----------
docs: Fix CPU history diagram
Modified Paths:
--------------
trunk/vice/doc/vice.texi
Modified: trunk/vice/doc/vice.texi
===================================================================
--- trunk/vice/doc/vice.texi 2025-07-17 22:08:46 UTC (rev 45713)
+++ trunk/vice/doc/vice.texi 2025-07-23 12:58:46 UTC (rev 45714)
@@ -22742,11 +22742,11 @@
...
RS[0][RC-1] @{ ... @}
]
+ CL[0] CL[0] CL[0] CL[0] CL[0] CL[0] CL[0] CL[0] | IL[0] | IB[0][0] IB[0][1] ... IB[0][IL-1]
@}
...
IS[HC-1] @{ ... @}
]
-CL CL CL CL CL CL CL CL | IL | IB[0] IB[1] ... IB[IL-1]
@end example
@*
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gp...@us...> - 2025-07-17 22:08:49
|
Revision: 45713
http://sourceforge.net/p/vice-emu/code/45713
Author: gpz
Date: 2025-07-17 22:08:46 +0000 (Thu, 17 Jul 2025)
Log Message:
-----------
add some details on check points
Modified Paths:
--------------
trunk/vice/doc/vice.texi
Modified: trunk/vice/doc/vice.texi
===================================================================
--- trunk/vice/doc/vice.texi 2025-07-14 19:25:58 UTC (rev 45712)
+++ trunk/vice/doc/vice.texi 2025-07-17 22:08:46 UTC (rev 45713)
@@ -20879,7 +20879,10 @@
@item goto <address>
@itemx g <address>
-Change the PC to address and continue execution.
+Change the PC to address and continue execution. If no address is given, execution
+will continue from where it stopped. Also, if @code{KeepMonitorOpen} is 1, the monitor
+window will stay open in the background. This can be useful to watch eg trace points
+or log output in real time.
@item io [<address>]
Display i/o registers. Invoking without an address shows a dump of
@@ -21060,6 +21063,20 @@
A conditional expression can also be specified for the breakpoint.
For more information on conditions, see the CONDITION command.
+When a breakpoint hits, the following info will be printed: The first line shows
+the type of checkpoint, the address, current raster line and -cycle. The second
+line shows a dump and disassemble, followed by the CPU registers and flags. The
+number at the end of the line is the stopwatch cycle counter.
+@end table
+
+@example
+#1 (Stop on exec ea31) 41/$029, 35/$23
+.C:ea31 20 EA FF JSR $FFEA - A:00 X:ED Y:0A SP:ed ..-..IZ. 27481706
+@end example
+
+
+@table @code
+
@item enable <checknum>
@item disable <checknum>
Each checkpoint can be enabled or disabled. This command allows
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rh...@us...> - 2025-07-14 19:25:59
|
Revision: 45712
http://sourceforge.net/p/vice-emu/code/45712
Author: rhialto
Date: 2025-07-14 19:25:58 +0000 (Mon, 14 Jul 2025)
Log Message:
-----------
Clean up some video address mask nonsense.
Modified Paths:
--------------
trunk/vice/src/pet/pet.c
Modified: trunk/vice/src/pet/pet.c
===================================================================
--- trunk/vice/src/pet/pet.c 2025-07-14 19:12:34 UTC (rev 45711)
+++ trunk/vice/src/pet/pet.c 2025-07-14 19:25:58 UTC (rev 45712)
@@ -931,17 +931,15 @@
/* mem_initialize_memory(); */
if (!cols) {
+ /* FIXME this guesswork should never be needed!
+ * petmem_check_info() already does something like this. */
cols = petres.rom_video;
if (!cols) {
cols = PET_COLS;
}
- vmask = (cols == 40) ? 0x3ff : 0x7ff;
+ vmask = (petres.map == PET_MAP_8296) ? 0x0fff : 0x3ff;
}
- /* when switching 8296 to 40 columns, CRTC ends up at $9000 otherwise...*/
- if (cols == 40) {
- vmask = 0x3ff;
- }
/*
log_message(pet_mem_log, "set_screen(vmask=%04x, cols=%d, crtc=%d)",
vmask, cols, petres.model.crtc);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rh...@us...> - 2025-07-14 19:12:35
|
Revision: 45711
http://sourceforge.net/p/vice-emu/code/45711
Author: rhialto
Date: 2025-07-14 19:12:34 +0000 (Mon, 14 Jul 2025)
Log Message:
-----------
PET, HRE: small fix: we need a vertical screen size of 256 pixels, otherwise the bottom few scan lines get cut off in HRE mode.
Modified Paths:
--------------
trunk/vice/src/crtc/crtc.c
trunk/vice/src/pet/pet.c
trunk/vice/src/pet/pethre.c
Modified: trunk/vice/src/crtc/crtc.c
===================================================================
--- trunk/vice/src/crtc/crtc.c 2025-06-30 22:43:43 UTC (rev 45710)
+++ trunk/vice/src/crtc/crtc.c 2025-07-14 19:12:34 UTC (rev 45711)
@@ -401,7 +401,7 @@
crtc.screen_width = (num_cols + CRTC_EXTRA_COLS) * 8 + 2 * CRTC_SCREEN_BORDERWIDTH;
crtc.screen_height = rasterlines + CRTC_EXTRA_RASTERLINES + 2 * CRTC_SCREEN_BORDERHEIGHT;
- DBG(("crtc_set_screen_options: cols=%d, rl=%d -> w=%d, h=%d",
+ DBG(("crtc_set_screen_options: cols=%d, rl=%d -> w=%u, h=%u",
num_cols, rasterlines, crtc.screen_width, crtc.screen_height));
crtc_update_window();
@@ -869,19 +869,19 @@
}
#ifdef DEBUG_CRTC
if (crtc.venable && !new_venable)
- printf("disable ven, cl=%d, yc=%d, rl=%d\n",
+ printf("disable ven, cl=%d, yc=%u, rl=%u\n",
crtc.current_charline, crtc.raster.ycounter,
crtc.raster.current_line);
if (new_venable && !crtc.venable)
- printf("enable ven, cl=%d, yc=%d, rl=%d\n",
+ printf("enable ven, cl=%d, yc=%u, rl=%u\n",
crtc.current_charline, crtc.raster.ycounter,
crtc.raster.current_line);
if (crtc.vsync && !new_vsync)
- printf("disable vsync, cl=%d, yc=%d, rl=%d\n",
+ printf("disable vsync, cl=%d, yc=%u, rl=%u\n",
crtc.current_charline, crtc.raster.ycounter,
crtc.raster.current_line);
if (new_vsync && !crtc.vsync)
- printf("enable vsync, cl=%d, yc=%d, rl=%d\n",
+ printf("enable vsync, cl=%d, yc=%u, rl=%u\n",
crtc.current_charline, crtc.raster.ycounter,
crtc.raster.current_line);
#endif /* DEBUG_CRTC */
Modified: trunk/vice/src/pet/pet.c
===================================================================
--- trunk/vice/src/pet/pet.c 2025-06-30 22:43:43 UTC (rev 45710)
+++ trunk/vice/src/pet/pet.c 2025-07-14 19:12:34 UTC (rev 45711)
@@ -957,7 +957,11 @@
/* On the 8296 we do not (invert the screen by clearing MA12). */
vrevmask = petres.map == PET_MAP_8296 ? vmask : 0x1000;
- crtc_set_screen_options(cols, 25 * 10);
+ /*
+ * Vertical nr of pixels: max(25*10, 256), for 25 text lines of 10 px,
+ * or 256 for the HRE.
+ */
+ crtc_set_screen_options(cols, 256);
crtc_set_screen_addr(mem_ram + 0x8000);
crtc_set_hw_options(hwflag,
vmask,
Modified: trunk/vice/src/pet/pethre.c
===================================================================
--- trunk/vice/src/pet/pethre.c 2025-06-30 22:43:43 UTC (rev 45710)
+++ trunk/vice/src/pet/pethre.c 2025-07-14 19:12:34 UTC (rev 45711)
@@ -332,9 +332,9 @@
* memory.
*/
if (ymod8 < 8 && xstart < xend) {
- int ma_hi = scr_rel & MA_HI; /* MA<9...6> MA is already multi- */
- int ma_lo = scr_rel & MA_LO; /* MA<5...0> ...plied by two. */
- /* Form <MA 9-6><RA 2-0><MA 5-0> */
+ int ma_hi = scr_rel & MA_HI; /* MA<11...6> MA is already multi- */
+ int ma_lo = scr_rel & MA_LO; /* MA< 5...0> ...plied by two. */
+ /* Form <MA 11-6><RA 2-0><MA 5-0> */
uint8_t *screen_rel = mem_ram + 0x8000 + /* == crtc.screen_base */
(ma_hi << 3) + (ymod8 << 6) + ma_lo;
int width = xend - xstart;
@@ -357,7 +357,7 @@
int i;
#if HRE_DEBUG_GFX
- log_message(pethre_log, "pethre_DRAW: xstart=%d, xend=%d, ymod8=%d, scr_rel=%04x screen_rel=%04x", xstart, xend, ymod8, scr_rel, screen_rel - mem_ram);
+ log_message(pethre_log, "pethre_DRAW: xstart=%d, xend=%d, ymod8=%d, scr_rel=%04x screen_rel=%04x", xstart, xend, ymod8, (unsigned int)scr_rel, (unsigned int)(screen_rel - mem_ram));
#endif
for (i = xstart; i < xend; i++) {
int d = *screen_rel++;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gp...@us...> - 2025-06-30 22:43:46
|
Revision: 45710
http://sourceforge.net/p/vice-emu/code/45710
Author: gpz
Date: 2025-06-30 22:43:43 +0000 (Mon, 30 Jun 2025)
Log Message:
-----------
test related to #2148
Modified Paths:
--------------
testprogs/testbench/dtv-testlist.in
testprogs/testbench/x64dtv-testlist.txt
Added Paths:
-----------
testprogs/DTV/dummy/
testprogs/DTV/dummy/Makefile
testprogs/DTV/dummy/incbank.asm
testprogs/DTV/dummy/incbank.prg
Added: testprogs/DTV/dummy/Makefile
===================================================================
--- testprogs/DTV/dummy/Makefile (rev 0)
+++ testprogs/DTV/dummy/Makefile 2025-06-30 22:43:43 UTC (rev 45710)
@@ -0,0 +1,8 @@
+
+all: incbank.prg
+
+incbank.prg: incbank.asm
+ acme -f cbm -o incbank.prg incbank.asm
+
+clean:
+ $(RM) incbank.prg
Added: testprogs/DTV/dummy/incbank.asm
===================================================================
--- testprogs/DTV/dummy/incbank.asm (rev 0)
+++ testprogs/DTV/dummy/incbank.asm 2025-06-30 22:43:43 UTC (rev 45710)
@@ -0,0 +1,80 @@
+
+; #2148 Wrong Bank for RMW Instructions in C64DTV
+
+ !to "bug.prg",cbm
+ !cpu c64dtv2
+ * = $0801
+
+ !by $0b,$08,$00,$00,$9e,$32,$30,$36,$31,$00,$00,$00
+
+ sei
+ ;copy "code4000" to bank 1
+ ldx #$00
+- lda code4000,x
+ sta $4000,x
+ inx
+ bne -
+ jmp $4000
+
+testcode:
+ ldy #$ff
+ sty $0800
+
+ ;here is the bug:
+ ;inc first write (Value $ff) goes into wrong bank (bank 0)!!!
+
+ inc $0800
+ rts
+
+code4000:
+!pseudopc $4000 {
+ ;copy code to bank 1
+
+ ldx #$00
+- lda $0800,x
+ sta $4100,x
+ inx
+ bne -
+
+ ;switch bank 0 to segment $7f
+ sac #$cc
+ lda #$7f
+ sac #$00
+
+ ;copy back the code, but now in the segment at $7f
+- lda $4100,x
+ sta $0800,x
+ inx
+ bne -
+
+ ;call the test code in bank $7f
+ jsr testcode
+
+ ;set segment 0 to bank 0
+ sac #$cc
+ lda #$00
+ sac #$00
+
+ ;check if bank 0 was modified -> error
+ ldx #5
+ ldy #$00 ;success
+
+ lda $0800
+ beq no_error
+ ldx #10
+ ldy #$ff ; failure
+no_error:
+ stx $d020
+ sty $d7ff
+ rts
+}
+
+
+
+
+
+
+
+
+
+
Added: testprogs/DTV/dummy/incbank.prg
===================================================================
(Binary files differ)
Index: testprogs/DTV/dummy/incbank.prg
===================================================================
--- testprogs/DTV/dummy/incbank.prg 2025-06-30 22:07:34 UTC (rev 45709)
+++ testprogs/DTV/dummy/incbank.prg 2025-06-30 22:43:43 UTC (rev 45710)
Property changes on: testprogs/DTV/dummy/incbank.prg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/x-commodore-exec
\ No newline at end of property
Modified: testprogs/testbench/dtv-testlist.in
===================================================================
--- testprogs/testbench/dtv-testlist.in 2025-06-30 22:07:34 UTC (rev 45709)
+++ testprogs/testbench/dtv-testlist.in 2025-06-30 22:43:43 UTC (rev 45710)
@@ -17,6 +17,7 @@
../DTV/dmablit/,dmatest.prg,interactive,0
#TODO:
#../DTV/dmatime,dmatime.prg,exitcode
+../DTV/dummy/,incbank.prg,exitcode,30000000
../DTV/fulltime/,fulltime.prg,interactive,0
../DTV/fulltime/,fulltime_dtv.prg,interactive,0
#TODO:
Modified: testprogs/testbench/x64dtv-testlist.txt
===================================================================
--- testprogs/testbench/x64dtv-testlist.txt 2025-06-30 22:07:34 UTC (rev 45709)
+++ testprogs/testbench/x64dtv-testlist.txt 2025-06-30 22:43:43 UTC (rev 45710)
@@ -18,6 +18,7 @@
../DTV/dmablit/,dmatest.prg,interactive,0
#TODO:
#../DTV/dmatime,dmatime.prg,exitcode
+../DTV/dummy/,incbank.prg,exitcode,30000000
../DTV/fulltime/,fulltime.prg,interactive,0
../DTV/fulltime/,fulltime_dtv.prg,interactive,0
#TODO:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gp...@us...> - 2025-06-30 22:07:35
|
Revision: 45709
http://sourceforge.net/p/vice-emu/code/45709
Author: gpz
Date: 2025-06-30 22:07:34 +0000 (Mon, 30 Jun 2025)
Log Message:
-----------
do dummy accesses only if 'skip bytes' is not set
Modified Paths:
--------------
trunk/vice/src/c64dtv/c64dtvcpu.c
Modified: trunk/vice/src/c64dtv/c64dtvcpu.c
===================================================================
--- trunk/vice/src/c64dtv/c64dtvcpu.c 2025-06-30 21:31:53 UTC (rev 45708)
+++ trunk/vice/src/c64dtv/c64dtvcpu.c 2025-06-30 22:07:34 UTC (rev 45709)
@@ -275,10 +275,10 @@
#define LOAD_ZERO(addr) \
mem_read((uint16_t)((((uint16_t) dtv_registers[10]) << 8) + ((uint16_t)((addr) & 0xff))))
-#define STORE_DUMMY(addr, value) STORE(addr, value)
-#define LOAD_DUMMY(addr) LOAD(addr)
-#define STORE_ZERO_DUMMY(addr, value) STORE_ZERO(addr, value)
-#define LOAD_ZERO_DUMMY(addr) LOAD_ZERO(addr)
+#define LOAD_DUMMY(addr) ((dtv_registers[9] & 1) ? 0 : LOAD(addr))
+#define LOAD_ZERO_DUMMY(addr) ((dtv_registers[9] & 1) ? 0 : LOAD_ZERO(addr))
+#define STORE_DUMMY(addr, value) if (!(dtv_registers[9] & 1)) { STORE(addr, value); }
+#define STORE_ZERO_DUMMY(addr, value) if (!(dtv_registers[9] & 1)) { STORE_ZERO(addr, value); }
/* Route stack operations through register 11 (stack mapper) */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gp...@us...> - 2025-06-30 21:31:54
|
Revision: 45708
http://sourceforge.net/p/vice-emu/code/45708
Author: gpz
Date: 2025-06-30 21:31:53 +0000 (Mon, 30 Jun 2025)
Log Message:
-----------
use DTV specific mem access functions also for the dummy accesses - should fix #2148
Modified Paths:
--------------
trunk/vice/src/c64dtv/c64dtvcpu.c
Modified: trunk/vice/src/c64dtv/c64dtvcpu.c
===================================================================
--- trunk/vice/src/c64dtv/c64dtvcpu.c 2025-06-28 03:01:18 UTC (rev 45707)
+++ trunk/vice/src/c64dtv/c64dtvcpu.c 2025-06-30 21:31:53 UTC (rev 45708)
@@ -275,6 +275,11 @@
#define LOAD_ZERO(addr) \
mem_read((uint16_t)((((uint16_t) dtv_registers[10]) << 8) + ((uint16_t)((addr) & 0xff))))
+#define STORE_DUMMY(addr, value) STORE(addr, value)
+#define LOAD_DUMMY(addr) LOAD(addr)
+#define STORE_ZERO_DUMMY(addr, value) STORE_ZERO(addr, value)
+#define LOAD_ZERO_DUMMY(addr) LOAD_ZERO(addr)
+
/* Route stack operations through register 11 (stack mapper) */
#define PUSH(val) (STORE((((uint16_t) dtv_registers[11]) << 8) + ((reg_sp--) & 0xff), val))
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dq...@us...> - 2025-06-28 03:01:19
|
Revision: 45707
http://sourceforge.net/p/vice-emu/code/45707
Author: dqh
Date: 2025-06-28 03:01:18 +0000 (Sat, 28 Jun 2025)
Log Message:
-----------
Add link to GitHub actions run to all build failure notifications
Modified Paths:
--------------
trunk/.github/workflows/build-main-on-push.yml
trunk/.github/workflows/check-make-dist.yml
trunk/.github/workflows/run-doxygen.yml
Modified: trunk/.github/workflows/build-main-on-push.yml
===================================================================
--- trunk/.github/workflows/build-main-on-push.yml 2025-06-23 10:33:38 UTC (rev 45706)
+++ trunk/.github/workflows/build-main-on-push.yml 2025-06-28 03:01:18 UTC (rev 45707)
@@ -550,4 +550,4 @@
IRC_PASS: ${{ secrets.IRC_PASS }}
shell: bash
run: |
- ./vice/build/github-actions/irc-message.sh "tried to build $(echo "${{ github.ref }}" | sed 's,.*/,,') but it failed :( $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID"
+ ./vice/build/github-actions/irc-message.sh "tried to build $(echo "${{ github.ref }}" | sed 's,.*/,,') but it failed :( See $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID"
Modified: trunk/.github/workflows/check-make-dist.yml
===================================================================
--- trunk/.github/workflows/check-make-dist.yml 2025-06-23 10:33:38 UTC (rev 45706)
+++ trunk/.github/workflows/check-make-dist.yml 2025-06-28 03:01:18 UTC (rev 45707)
@@ -126,9 +126,8 @@
if: ${{ failure() }}
shell: bash
run: |
- ./vice/build/github-actions/irc-message.sh "make dist => make failed for ${{ matrix.source.name }} => ${{ matrix.target.name }}"
+ ./vice/build/github-actions/irc-message.sh "make dist => make failed for ${{ matrix.source.name }} => ${{ matrix.target.name }}. See $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID"
-
diff_dists:
name: Check dist tarballs for content differences
runs-on: ubuntu-latest
@@ -155,4 +154,4 @@
if: ${{ failure() }}
shell: bash
run: |
- ./vice/build/github-actions/irc-message.sh "Dist tarballs do not match. See log of 'Weekly Check Dist' github action."
+ ./vice/build/github-actions/irc-message.sh "Dist tarballs do not match. See $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID"
Modified: trunk/.github/workflows/run-doxygen.yml
===================================================================
--- trunk/.github/workflows/run-doxygen.yml 2025-06-23 10:33:38 UTC (rev 45706)
+++ trunk/.github/workflows/run-doxygen.yml 2025-06-28 03:01:18 UTC (rev 45707)
@@ -37,4 +37,4 @@
if: ${{ failure() }}
shell: bash
run: |
- ./vice/build/github-actions/irc-message.sh "Running Doxygen failed."
+ ./vice/build/github-actions/irc-message.sh "Running Doxygen failed. See $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID"
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gp...@us...> - 2025-06-23 10:33:40
|
Revision: 45706
http://sourceforge.net/p/vice-emu/code/45706
Author: gpz
Date: 2025-06-23 10:33:38 +0000 (Mon, 23 Jun 2025)
Log Message:
-----------
add header to makefile, tweak docs
Modified Paths:
--------------
trunk/vice/doc/vice.texi
trunk/vice/src/c64/cart/Makefile.am
Modified: trunk/vice/doc/vice.texi
===================================================================
--- trunk/vice/doc/vice.texi 2025-06-20 07:04:42 UTC (rev 45705)
+++ trunk/vice/doc/vice.texi 2025-06-23 10:33:38 UTC (rev 45706)
@@ -31402,7 +31402,7 @@
ROM memory is organized in 8KiB ($2000) banks located at $8000-$9FFF.
Bank switching is done by accessing address $DE00+X, where X is the
bank number (STA $DE00,X). For instance, to read from bank 3, address
- $DE03 is read or written to.
+ $DE03 is read from, or written to.
The CRT file contains a string of CHIP blocks, each block with a start
address of $8000, length $2000 and the bank number in the bank field.
Modified: trunk/vice/src/c64/cart/Makefile.am
===================================================================
--- trunk/vice/src/c64/cart/Makefile.am 2025-06-20 07:04:42 UTC (rev 45705)
+++ trunk/vice/src/c64/cart/Makefile.am 2025-06-23 10:33:38 UTC (rev 45706)
@@ -141,8 +141,9 @@
mach5.c \
mach5.h \
magicdesk.c \
+ magicdesk.h \
magicdesk16.c \
- magicdesk.h \
+ magicdesk16.h \
magicformel.c \
magicformel.h \
magicvoice.c \
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <st...@us...> - 2025-06-20 07:04:45
|
Revision: 45705
http://sourceforge.net/p/vice-emu/code/45705
Author: strobey
Date: 2025-06-20 07:04:42 +0000 (Fri, 20 Jun 2025)
Log Message:
-----------
Make the C128's MMU IO dump in the monitor ("io d500") significantly more readable.
Modified Paths:
--------------
trunk/vice/src/c128/c128mmu.c
Modified: trunk/vice/src/c128/c128mmu.c
===================================================================
--- trunk/vice/src/c128/c128mmu.c 2025-06-17 16:21:24 UTC (rev 45704)
+++ trunk/vice/src/c128/c128mmu.c 2025-06-20 07:04:42 UTC (rev 45705)
@@ -605,47 +605,48 @@
int mmu_dump(void *context, uint16_t addr)
{
- mon_out("CR: bank: %d, $4000-$7FFF: %s, $8000-$BFFF: %s, $C000-$CFFF: %s, $D000-$DFFF: %s, $E000-$FFFF: %s\n",
+ mon_out(" Bank $4000-$7FFF $8000-$BFFF $C000-$CFFF $D000-$DFFF $E000-$FFFF\n");
+ mon_out("CR: %d %12s %12s %12s %12s %12s\n",
(mmu[0] & 0xc0) >> 6,
- (mmu[0] & 2) ? "RAM" : "BASIC ROM low",
- (mmu[0] & 8) ? ((mmu[0] & 4) ? "RAM" : "External Function ROM") : ((mmu[0] & 4) ? "Internal Function ROM" : "BASIC ROM high"),
- (mmu[0] & 0x20) ? ((mmu[0] & 0x10) ? "RAM" : "External Function ROM") : ((mmu[0] & 0x10) ? "Internal Function ROM" : "Kernal ROM"),
- (mmu[0] & 1) ? ((mmu[0] & 0x20) ? ((mmu[0] & 0x10) ? "RAM" : "External Function ROM") : ((mmu[0] & 0x10) ? "Internal Function ROM" : "Kernal ROM")) : "I/O",
- (mmu[0] & 0x20) ? ((mmu[0] & 0x10) ? "RAM" : "External Function ROM") : ((mmu[0] & 0x10) ? "Internal Function ROM" : "Kernal ROM"));
+ (mmu[0] & 2) ? "RAM" : "BASIC ROM",
+ (mmu[0] & 8) ? ((mmu[0] & 4) ? "RAM" : "Ext.Func.ROM") : ((mmu[0] & 4) ? "Int.Func.ROM" : "BASIC ROM"),
+ (mmu[0] & 0x20) ? ((mmu[0] & 0x10) ? "RAM" : "Ext.Func.ROM") : ((mmu[0] & 0x10) ? "Int.Func.ROM" : "Kernal ROM"),
+ (mmu[0] & 1) ? ((mmu[0] & 0x20) ? ((mmu[0] & 0x10) ? "RAM" : "Ext. Func. ROM") : ((mmu[0] & 0x10) ? "Int. Func. ROM" : "Kernal ROM")) : "I/O",
+ (mmu[0] & 0x20) ? ((mmu[0] & 0x10) ? "RAM" : "Ext Func.ROM") : ((mmu[0] & 0x10) ? "Int.Func.ROM" : "Kernal ROM"));
- mon_out("PCRA: bank: %d, $4000-$7FFF: %s, $8000-$BFFF: %s, $C000-$CFFF: %s, $D000-$DFFF: %s, $E000-$FFFF: %s\n",
+ mon_out("PCRA: %d %12s %12s %12s %12s %12s\n",
(mmu[1] & 0xc0) >> 6,
- (mmu[1] & 2) ? "RAM" : "BASIC ROM low",
- (mmu[1] & 8) ? ((mmu[1] & 4) ? "RAM" : "External Function ROM") : ((mmu[1] & 4) ? "Internal Function ROM" : "BASIC ROM high"),
- (mmu[1] & 0x20) ? ((mmu[1] & 0x10) ? "RAM" : "External Function ROM") : ((mmu[1] & 0x10) ? "Internal Function ROM" : "Kernal ROM"),
- (mmu[1] & 1) ? ((mmu[1] & 0x20) ? ((mmu[1] & 0x10) ? "RAM" : "External Function ROM") : ((mmu[1] & 0x10) ? "Internal Function ROM" : "Kernal ROM")) : "I/O",
- (mmu[1] & 0x20) ? ((mmu[1] & 0x10) ? "RAM" : "External Function ROM") : ((mmu[1] & 0x10) ? "Internal Function ROM" : "Kernal ROM"));
+ (mmu[1] & 2) ? "RAM" : "BASIC ROM",
+ (mmu[1] & 8) ? ((mmu[1] & 4) ? "RAM" : "Ext.Func.ROM") : ((mmu[1] & 4) ? "Int.Func.ROM" : "BASIC ROM"),
+ (mmu[1] & 0x20) ? ((mmu[1] & 0x10) ? "RAM" : "Ext.Func.ROM") : ((mmu[1] & 0x10) ? "Int.Func.ROM" : "Kernal ROM"),
+ (mmu[1] & 1) ? ((mmu[1] & 0x20) ? ((mmu[1] & 0x10) ? "RAM" : "Ext.Func.ROM") : ((mmu[1] & 0x10) ? "Int.Func.ROM" : "Kernal ROM")) : "I/O",
+ (mmu[1] & 0x20) ? ((mmu[1] & 0x10) ? "RAM" : "Ext.Func.ROM") : ((mmu[1] & 0x10) ? "Int.Func.ROM" : "Kernal ROM"));
- mon_out("PCRB: bank: %d, $4000-$7FFF: %s, $8000-$BFFF: %s, $C000-$CFFF: %s, $D000-$DFFF: %s, $E000-$FFFF: %s\n",
+ mon_out("PCRB: %d %12s %12s %12s %12s %12s\n",
(mmu[2] & 0xc0) >> 6,
- (mmu[2] & 2) ? "RAM" : "BASIC ROM low",
- (mmu[2] & 8) ? ((mmu[2] & 4) ? "RAM" : "External Function ROM") : ((mmu[2] & 4) ? "Internal Function ROM" : "BASIC ROM high"),
- (mmu[2] & 0x20) ? ((mmu[2] & 0x10) ? "RAM" : "External Function ROM") : ((mmu[2] & 0x10) ? "Internal Function ROM" : "Kernal ROM"),
- (mmu[2] & 1) ? ((mmu[2] & 0x20) ? ((mmu[2] & 0x10) ? "RAM" : "External Function ROM") : ((mmu[2] & 0x10) ? "Internal Function ROM" : "Kernal ROM")) : "I/O",
- (mmu[2] & 0x20) ? ((mmu[2] & 0x10) ? "RAM" : "External Function ROM") : ((mmu[2] & 0x10) ? "Internal Function ROM" : "Kernal ROM"));
+ (mmu[2] & 2) ? "RAM" : "BASIC ROM",
+ (mmu[2] & 8) ? ((mmu[2] & 4) ? "RAM" : "Ext.Func.ROM") : ((mmu[2] & 4) ? "Int.Func.ROM" : "BASIC ROM"),
+ (mmu[2] & 0x20) ? ((mmu[2] & 0x10) ? "RAM" : "Ext.Func.ROM") : ((mmu[2] & 0x10) ? "Int.Func.ROM" : "Kernal ROM"),
+ (mmu[2] & 1) ? ((mmu[2] & 0x20) ? ((mmu[2] & 0x10) ? "RAM" : "Ext.Func.ROM") : ((mmu[2] & 0x10) ? "Int.Func.ROM" : "Kernal ROM")) : "I/O",
+ (mmu[2] & 0x20) ? ((mmu[2] & 0x10) ? "RAM" : "Ext.Func.ROM") : ((mmu[2] & 0x10) ? "Int.Func.ROM" : "Kernal ROM"));
- mon_out("PCRC: bank: %d, $4000-$7FFF: %s, $8000-$BFFF: %s, $C000-$CFFF: %s, $D000-$DFFF: %s, $E000-$FFFF: %s\n",
+ mon_out("PCRC: %d %12s %12s %12s %12s %12s\n",
(mmu[3] & 0xc0) >> 6,
- (mmu[3] & 2) ? "RAM" : "BASIC ROM low",
- (mmu[3] & 8) ? ((mmu[3] & 4) ? "RAM" : "External Function ROM") : ((mmu[3] & 4) ? "Internal Function ROM" : "BASIC ROM high"),
- (mmu[3] & 0x20) ? ((mmu[3] & 0x10) ? "RAM" : "External Function ROM") : ((mmu[3] & 0x10) ? "Internal Function ROM" : "Kernal ROM"),
- (mmu[3] & 1) ? ((mmu[3] & 0x20) ? ((mmu[3] & 0x10) ? "RAM" : "External Function ROM") : ((mmu[3] & 0x10) ? "Internal Function ROM" : "Kernal ROM")) : "I/O",
- (mmu[3] & 0x20) ? ((mmu[3] & 0x10) ? "RAM" : "External Function ROM") : ((mmu[3] & 0x10) ? "Internal Function ROM" : "Kernal ROM"));
+ (mmu[3] & 2) ? "RAM" : "BASIC ROM",
+ (mmu[3] & 8) ? ((mmu[3] & 4) ? "RAM" : "Ext.Func.ROM") : ((mmu[3] & 4) ? "Int.Func.ROM" : "BASIC ROM"),
+ (mmu[3] & 0x20) ? ((mmu[3] & 0x10) ? "RAM" : "Ext.Func.ROM") : ((mmu[3] & 0x10) ? "Int.Func.ROM" : "Kernal ROM"),
+ (mmu[3] & 1) ? ((mmu[3] & 0x20) ? ((mmu[3] & 0x10) ? "RAM" : "Ext.Func.ROM") : ((mmu[3] & 0x10) ? "Int.Func.ROM" : "Kernal ROM")) : "I/O",
+ (mmu[3] & 0x20) ? ((mmu[3] & 0x10) ? "RAM" : "Ext.Func.ROM") : ((mmu[3] & 0x10) ? "Int.Func.ROM" : "Kernal ROM"));
- mon_out("PCRD: bank: %d, $4000-$7FFF: %s, $8000-$BFFF: %s, $C000-$CFFF: %s, $D000-$DFFF: %s, $E000-$FFFF: %s\n",
+ mon_out("PCRD: %d %12s %12s %12s %12s %12s\n",
(mmu[4] & 0xc0) >> 6,
- (mmu[4] & 2) ? "RAM" : "BASIC ROM low",
- (mmu[4] & 8) ? ((mmu[4] & 4) ? "RAM" : "External Function ROM") : ((mmu[4] & 4) ? "Internal Function ROM" : "BASIC ROM high"),
- (mmu[4] & 0x20) ? ((mmu[1] & 0x10) ? "RAM" : "External Function ROM") : ((mmu[4] & 0x10) ? "Internal Function ROM" : "Kernal ROM"),
- (mmu[4] & 1) ? ((mmu[4] & 0x20) ? ((mmu[4] & 0x10) ? "RAM" : "External Function ROM") : ((mmu[4] & 0x10) ? "Internal Function ROM" : "Kernal ROM")) : "I/O",
- (mmu[4] & 0x20) ? ((mmu[4] & 0x10) ? "RAM" : "External Function ROM") : ((mmu[4] & 0x10) ? "Internal Function ROM" : "Kernal ROM"));
+ (mmu[4] & 2) ? "RAM" : "BASIC ROM",
+ (mmu[4] & 8) ? ((mmu[4] & 4) ? "RAM" : "Ext.Func.ROM") : ((mmu[4] & 4) ? "Int.Func.ROM" : "BASIC ROM"),
+ (mmu[4] & 0x20) ? ((mmu[1] & 0x10) ? "RAM" : "Ext.Func.ROM") : ((mmu[4] & 0x10) ? "Int.Func.ROM" : "Kernal ROM"),
+ (mmu[4] & 1) ? ((mmu[4] & 0x20) ? ((mmu[4] & 0x10) ? "RAM" : "Ext.Func.ROM") : ((mmu[4] & 0x10) ? "Int.Func.ROM" : "Kernal ROM")) : "I/O",
+ (mmu[4] & 0x20) ? ((mmu[4] & 0x10) ? "RAM" : "Ext.Func.ROM") : ((mmu[4] & 0x10) ? "Int.Func.ROM" : "Kernal ROM"));
- mon_out("MCR: 40/80 key: %s, Operating mode: %s, EXROM line: %d, GAME line: %d, fast serial: %s, current CPU: %s\n",
+ mon_out("MCR: 40/80 key: %s, Operating mode: %s, EXROM line: %d, GAME line: %d\n Fast serial: %s, Current CPU: %s\n",
(mmu[5] & 0x80) ? "up" : "down",
(mmu[5] & 0x40) ? "C64 mode" : "C128 mode",
(mmu[5] & 0x20) >> 5,
@@ -653,7 +654,7 @@
(mmu[5] & 8) ? "serial out" : "serial in",
(mmu[5] & 1) ? "8502" : "Z80");
- mon_out("RCR: VIC-II RAM bank: %d, Shared RAM location: %s, Shared RAM size: %s\n",
+ mon_out("RCR: VIC-II RAM bank: %d, Shared RAM location & size: %s, %s\n",
(mmu[6] & 0xc0) >> 6,
(mmu[6] & 8) ? ((mmu[6] & 4) ? "bottom and top" : "top") : ((mmu[6] & 4) ? "bottom" : "none"),
(mmu[6] & 2) ? ((mmu[6] & 1) ? "16KiB" : "8KiB") : ((mmu[6] & 1) ? "4KiB" : "1KiB"));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <old...@us...> - 2025-06-17 16:21:26
|
Revision: 45704
http://sourceforge.net/p/vice-emu/code/45704
Author: oldwoman37
Date: 2025-06-17 16:21:24 +0000 (Tue, 17 Jun 2025)
Log Message:
-----------
RAMLINK: Fixed bug #2144; SEGV issue when using less than 16MB ramcard sizes
Modified Paths:
--------------
trunk/vice/src/c64/cart/ramlink.c
Modified: trunk/vice/src/c64/cart/ramlink.c
===================================================================
--- trunk/vice/src/c64/cart/ramlink.c 2025-06-15 17:07:33 UTC (rev 45703)
+++ trunk/vice/src/c64/cart/ramlink.c 2025-06-17 16:21:24 UTC (rev 45704)
@@ -63,8 +63,6 @@
/* #define RLLOG1 */
/* #define RLLOG2 */
-/* #define RLLOG1 */
-/* #define RLLOG2 */
/* #define RLDEBUGIO */
/* #define RLDEBUGMEM */
@@ -114,6 +112,8 @@
extern unsigned int reg_pc;
+/* #define RAMLINKXL */
+
/* resources */
static int rl_enabled = 0;
static int rl_write_image = 0;
@@ -149,7 +149,7 @@
static uint8_t *rl_rom = NULL;
static int rl_extexrom = 0;
static int rl_extgame = 0;
-static char rl_memmap[256];
+static int8_t rl_memmap[256];
/* some prototypes are needed */
static uint8_t ramlink_io1_read(uint16_t addr);
@@ -942,9 +942,13 @@
}
if (size != 1 && size != 2 && size != 3 && size != 4 &&
size != 5 && size != 8 && size != 9 && size != 12 &&
- size != 13 && size != 16 && size != 20 && size != 32 &&
+ size != 13 && size != 16 &&
+#ifdef RAMLINKXL
+ size != 20 && size != 32 &&
size != 36 && size != 48 && size != 52 && size != 64 &&
- size != 17 && size != 33 && size != 49 && size != 0) {
+ size != 17 && size != 33 && size != 49 &&
+#endif
+ size != 0) {
return -1;
}
@@ -1009,7 +1013,7 @@
#if 0
printf("* RL_MEMMAP:\n");
for(i=0;i<64;i++) {
- printf("%02x ",rl_memmap[i]);
+ printf("%02x ",(unsigned int)rl_memmap[i]);
if (!((i+1)%16)) printf("\n");
}
#endif
@@ -1260,7 +1264,6 @@
ramlink_sync_cpus();
cmdbus.cpu_data = byte;
cmdbus_update();
-/*if (reg==0) printf("RAMLINK: Send %02x\n",byte);*/
}
static uint8_t get_pa(struct _i8255a_state *ctx, int8_t reg)
@@ -1283,7 +1286,6 @@
data = 0xff;
}
-/*if (reg==0) printf("RAMLINK: Got %02x\n",data);*/
return data;
}
@@ -1318,7 +1320,6 @@
cmdbus_patn_changed(new, old);
cmdbus_update();
-/*if (reg==1) printf("RAMLINK: R=%d C=%d A=%d\n",(byte & 0x80 ? 0 : 1),(byte & 0x40 ? 0 : 1),(byte & 0x20 ? 0 : 1));*/
}
static uint8_t get_pb(struct _i8255a_state *ctx, int8_t reg)
@@ -1547,7 +1548,7 @@
}
i = rl_memmap[(rl_cardaddr >> 20) & 63];
/* if the memory re-mapping is set to -1, then the bus is open */
- if (i>64) {
+ if (i<0) {
rl_cardbase = -1;
} else {
rl_cardbase = (i << 20) | (rl_cardaddr & 0x0fffff);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rh...@us...> - 2025-06-15 17:07:35
|
Revision: 45703
http://sourceforge.net/p/vice-emu/code/45703
Author: rhialto
Date: 2025-06-15 17:07:33 +0000 (Sun, 15 Jun 2025)
Log Message:
-----------
Add {} so that the declaration is not directly following a case label.
Modified Paths:
--------------
trunk/vice/src/cbmdos.c
Modified: trunk/vice/src/cbmdos.c
===================================================================
--- trunk/vice/src/cbmdos.c 2025-06-15 15:51:56 UTC (rev 45702)
+++ trunk/vice/src/cbmdos.c 2025-06-15 17:07:33 UTC (rev 45703)
@@ -501,28 +501,30 @@
break;
case 'L'|0x80:
case 'L': /* L,(#record length) max 254 */
- /*
- * Allow extra text between L and the comma,
- * like with other file types.
- */
- uint8_t *comma = memchr(p + 1, ',', limit - (p + 1));
- if (comma && comma + 1 < limit) {
- cmd_parse->recordlength = comma[1]; /* Changing RL causes error */
+ {
+ /*
+ * Allow extra text between L and the comma,
+ * like with other file types.
+ */
+ uint8_t *comma = memchr(p + 1, ',', limit - (p + 1));
+ if (comma && comma + 1 < limit) {
+ cmd_parse->recordlength = comma[1]; /* Changing RL causes error */
#ifdef DEBUG_CBMDOS
- log_debug(LOG_DEFAULT, "L recordlength=%u", cmd_parse->recordlength);
+ log_debug(LOG_DEFAULT, "L recordlength=%u", cmd_parse->recordlength);
#endif
- /* Don't allow REL file record lengths less than 2 or
- greater than 254. The 1541/71/81 lets you create a
- REL file of record length 0, but it locks up the CPU
- on the drive - nice. */
- if (cmd_parse->recordlength < 2 || cmd_parse->recordlength > 254) {
- return CBMDOS_IPE_OVERFLOW;
+ /* Don't allow REL file record lengths less than 2 or
+ greater than 254. The 1541/71/81 lets you create a
+ REL file of record length 0, but it locks up the CPU
+ on the drive - nice. */
+ if (cmd_parse->recordlength < 2 || cmd_parse->recordlength > 254) {
+ return CBMDOS_IPE_OVERFLOW;
+ }
+ /* skip the REL length */
+ p = comma + 1;
+ } else {
+ /* No record length: we can only read this file, not write it */
+ cmd_parse->readmode = CBMDOS_FAM_READ;
}
- /* skip the REL length */
- p = comma + 1;
- } else {
- /* No record length: we can only read this file, not write it */
- cmd_parse->readmode = CBMDOS_FAM_READ;
}
cmd_parse->filetype = CBMDOS_FT_REL;
break;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rh...@us...> - 2025-06-15 15:51:59
|
Revision: 45702
http://sourceforge.net/p/vice-emu/code/45702
Author: rhialto
Date: 2025-06-15 15:51:56 +0000 (Sun, 15 Jun 2025)
Log Message:
-----------
Fix bug 2146: c1541 can't read REL files
The command "read relfile,l outfile" does not work.
Cause: file name parsing is now mostly done with cbmdos_command_parse_plus(). However this function worked slightly different when parsing ",L" in a file spec.
Fix: copy the logic from cbmdos_command_parse() to handle this.
Modified Paths:
--------------
trunk/vice/src/c1541.c
trunk/vice/src/cbmdos.c
trunk/vice/src/vdrive/vdrive-iec.c
Modified: trunk/vice/src/c1541.c
===================================================================
--- trunk/vice/src/c1541.c 2025-06-14 19:03:50 UTC (rev 45701)
+++ trunk/vice/src/c1541.c 2025-06-15 15:51:56 UTC (rev 45702)
@@ -3700,6 +3700,7 @@
int status = 0;
uint8_t *slot;
uint8_t file_type;
+ const int secadr = 0; /* use 0 to force read mode */
unit = extract_unit_from_file_name(args[1], &p);
if (unit <= 0) {
@@ -3734,7 +3735,7 @@
charset_petconvstring((uint8_t *)src_name_petscii, CONVERT_TO_PETSCII);
if (vdrive_iec_open(drives[dnr], (uint8_t *)src_name_petscii,
- (unsigned int)strlen(src_name_petscii), 0, NULL)) {
+ (unsigned int)strlen(src_name_petscii), secadr, NULL)) {
fprintf(stderr,
"cannot read `%s' on unit %d\n", src_name_ascii, dnr + 8);
lib_free(src_name_ascii);
@@ -3744,7 +3745,7 @@
/* Get real filename from the disk file. Slot must be defined by
vdrive_iec_open(). */
- bufferinfo_t *bufferinfo = &drives[dnr]->buffers[0]; /* 0 = secadr */
+ bufferinfo_t *bufferinfo = &drives[dnr]->buffers[secadr];
slot = bufferinfo->slot;
actual_name = lib_malloc(IMAGE_CONTENTS_FILE_NAME_LEN + 1);
memcpy(actual_name, slot + SLOT_NAME_OFFSET, IMAGE_CONTENTS_FILE_NAME_LEN);
Modified: trunk/vice/src/cbmdos.c
===================================================================
--- trunk/vice/src/cbmdos.c 2025-06-14 19:03:50 UTC (rev 45701)
+++ trunk/vice/src/cbmdos.c 2025-06-15 15:51:56 UTC (rev 45702)
@@ -304,6 +304,9 @@
}
/* skip the rest */
cmdlen = 0;
+ } else {
+ /* No record length: we can only read this file, not write it */
+ cmd_parse->readmode = CBMDOS_FAM_READ;
}
}
cmd_parse->filetype = CBMDOS_FT_REL;
@@ -498,8 +501,16 @@
break;
case 'L'|0x80:
case 'L': /* L,(#record length) max 254 */
- if (p+2 < limit && p[1] == ',') {
- cmd_parse->recordlength = p[2]; /* Changing RL causes error */
+ /*
+ * Allow extra text between L and the comma,
+ * like with other file types.
+ */
+ uint8_t *comma = memchr(p + 1, ',', limit - (p + 1));
+ if (comma && comma + 1 < limit) {
+ cmd_parse->recordlength = comma[1]; /* Changing RL causes error */
+#ifdef DEBUG_CBMDOS
+ log_debug(LOG_DEFAULT, "L recordlength=%u", cmd_parse->recordlength);
+#endif
/* Don't allow REL file record lengths less than 2 or
greater than 254. The 1541/71/81 lets you create a
REL file of record length 0, but it locks up the CPU
@@ -508,11 +519,12 @@
return CBMDOS_IPE_OVERFLOW;
}
/* skip the REL length */
- p += 2;
- cmd_parse->filetype = CBMDOS_FT_REL;
+ p = comma + 1;
} else {
- return CBMDOS_IPE_OVERFLOW;
+ /* No record length: we can only read this file, not write it */
+ cmd_parse->readmode = CBMDOS_FAM_READ;
}
+ cmd_parse->filetype = CBMDOS_FT_REL;
break;
case 'R':
cmd_parse->readmode = CBMDOS_FAM_READ;
Modified: trunk/vice/src/vdrive/vdrive-iec.c
===================================================================
--- trunk/vice/src/vdrive/vdrive-iec.c 2025-06-14 19:03:50 UTC (rev 45701)
+++ trunk/vice/src/vdrive/vdrive-iec.c 2025-06-15 15:51:56 UTC (rev 45702)
@@ -498,6 +498,9 @@
if (rc != CBMDOS_IPE_OK) {
status = SERIAL_ERROR;
+#ifdef DEBUG_DRIVE
+ log_debug(LOG_DEFAULT, "File name parsing failed, rc = %d, status = SERIAL_ERROR", rc);
+#endif
goto out;
}
#ifdef DEBUG_DRIVE
@@ -504,6 +507,7 @@
log_debug(LOG_DEFAULT, "Raw file name: `%s', length: %u.", name, length);
log_debug(LOG_DEFAULT, "Parsed file name: `%s', reallength: %u. drive: %i",
cmd_parse->file, cmd_parse->filelength, cmd_parse->drive);
+ log_debug(LOG_DEFAULT, "File type: %u, Record length: %u.", cmd_parse->filetype, cmd_parse->recordlength);
#endif
} else {
cmd_parse->full = (uint8_t*)cmd_parse_ext->parsecmd;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pot...@us...> - 2025-06-14 19:03:51
|
Revision: 45701
http://sourceforge.net/p/vice-emu/code/45701
Author: pottendo
Date: 2025-06-14 19:03:50 +0000 (Sat, 14 Jun 2025)
Log Message:
-----------
remove wrong workaround for https://sourceforge.net/p/vice-emu/bugs/2102/
Modified Paths:
--------------
trunk/vice/src/userport/userport_wic64.c
Modified: trunk/vice/src/userport/userport_wic64.c
===================================================================
--- trunk/vice/src/userport/userport_wic64.c 2025-06-14 05:14:56 UTC (rev 45700)
+++ trunk/vice/src/userport/userport_wic64.c 2025-06-14 19:03:50 UTC (rev 45701)
@@ -179,7 +179,6 @@
static int wic64_remote_timeout; /* used for resource */
static int remote_to = WIC64_DEFAULT_REMOTE_TIMEOUT;
static uint8_t wic64_remote_timeout_triggered = 0;
-static int force_timeout = 0;
static char *wic64_sec_token = NULL;
static int current_tz = 2; /* WIC64Timezone */
static int current_dhcp = 1; /* WIC64DHCP */
@@ -2101,7 +2100,7 @@
static void cmd_force_timeout_alarm_handler(CLOCK offset, void *data)
{
wic64_log(LOG_COL_LRED, "force timeout expired");
- replyptr = reply_length = force_timeout = 0;
+ replyptr = reply_length = 0;
input_state = INPUT_EXP_PROT;
commandptr = 0;
alarm_unset(cmd_force_timeout_alarm);
@@ -2115,7 +2114,6 @@
}
int timeout = (commandptr > 0) ? commandbuffer[0] : 1;
wic64_log(CONS_COL_NO, "forcing timeout after %ds", timeout);
- force_timeout = 1;
/* set_userport_flag(FLAG2_ACTIVE); */
@@ -2448,11 +2446,6 @@
/* PC2 irq (pulse) triggers when C64 reads/writes to userport */
static void userport_wic64_store_pbx(uint8_t value, int pulse)
{
- if (force_timeout) {
- debug_log(LOG_COL_OFF, 3, "%s: force timeout running %d/%d", __FUNCTION__, value, pulse);
- set_userport_flag(FLAG2_INACTIVE);
- return;
- }
if (pulse == 1) {
if (wic64_inputmode) {
debug_log(LOG_COL_LBLUE, 3, "receiving '%c'/0x%02x, input_state = %d",
@@ -2567,10 +2560,6 @@
/* PA2 interrupt toggles input/output mode */
static void userport_wic64_store_pa2(uint8_t value)
{
- if (force_timeout == 1) {
- debug_log(LOG_COL_OFF, 3, "%s: force timeout pending...%d", __FUNCTION__, value);
- return;
- }
debug_log(CONS_COL_NO, 2, "userport mode %s...(len = %d)",
value ? "sending" : "receiving",
reply_length);
@@ -2651,7 +2640,7 @@
int tmp_dhcp;
wic64_log(CONS_COL_NO, "%s", __FUNCTION__);
- commandptr = input_state = input_length = force_timeout = 0;
+ commandptr = input_state = input_length = 0;
input_command = WIC64_CMD_NONE;
wic64_inputmode = 1;
memset(sec_token, 0, 32);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dq...@us...> - 2025-06-14 05:14:59
|
Revision: 45700
http://sourceforge.net/p/vice-emu/code/45700
Author: dqh
Date: 2025-06-14 05:14:56 +0000 (Sat, 14 Jun 2025)
Log Message:
-----------
Fixed macOS build (currently no host joystick support)
Modified Paths:
--------------
trunk/vice/configure.ac
trunk/vice/src/arch/gtk3/joystickdrv/joystick_osx.c
trunk/vice/src/machine.c
trunk/vice/src/vicefeatures.c
Modified: trunk/vice/configure.ac
===================================================================
--- trunk/vice/configure.ac 2025-06-13 23:12:26 UTC (rev 45699)
+++ trunk/vice/configure.ac 2025-06-14 05:14:56 UTC (rev 45700)
@@ -469,7 +469,6 @@
HAVE_SYS_AUDIO_H_SUPPORT="no "
HAVE_ZLIB_SUPPORT="no "
LINUX_JOYSTICK_SUPPORT="no "
-MAC_JOYSTICK_SUPPORT="no "
USE_ALSA_SUPPORT="no "
USE_COREAUDIO_SUPPORT="no "
USE_DMEDIA_SUPPORT="no "
@@ -2130,9 +2129,7 @@
[IOHIDManagerCreate(NULL,0)],
[AC_MSG_RESULT(yes);
JOY_LIBS="-framework IOKit -framework CoreServices";
- MAC_JOYSTICK_SUPPORT="yes";
HAS_HIDMGR_SUPPORT="yes";
- AC_DEFINE(MAC_JOYSTICK,,[Enable Mac Joystick support.])
JOYSTICK_DRIVERS="$JOYSTICK_DRIVERS joystick_osx.o";
],
[AC_MSG_RESULT(no);
Modified: trunk/vice/src/arch/gtk3/joystickdrv/joystick_osx.c
===================================================================
--- trunk/vice/src/arch/gtk3/joystickdrv/joystick_osx.c 2025-06-13 23:12:26 UTC (rev 45699)
+++ trunk/vice/src/arch/gtk3/joystickdrv/joystick_osx.c 2025-06-14 05:14:56 UTC (rev 45700)
@@ -324,11 +324,11 @@
&e,
&value, 1) >= 0) {
if (value < e.min_pvalue*3/4 + e.max_pvalue/4) {
- joy_axis_event(joyport, e.ordinal, JOY_AXIS_NEGATIVE);
+ // joy_axis_event(joyport, e.ordinal, JOY_AXIS_NEGATIVE);
} else if (value > e.min_pvalue/4 + e.max_pvalue*3/4) {
- joy_axis_event(joyport, e.ordinal, JOY_AXIS_POSITIVE);
+ // joy_axis_event(joyport, e.ordinal, JOY_AXIS_POSITIVE);
} else {
- joy_axis_event(joyport, e.ordinal, JOY_AXIS_MIDDLE);
+ // joy_axis_event(joyport, e.ordinal, JOY_AXIS_MIDDLE);
}
}
break;
@@ -356,13 +356,13 @@
}
if (value >= 0 && value <= MAX_HAT_MAP_INDEX) {
- joy_hat_event(joyport, e.ordinal, hat_map[value]);
+ // joy_hat_event(joyport, e.ordinal, hat_map[value]);
}
}
}
} else if (e.usage_page == kHIDPage_Button) {
if (joy_hidlib_get_value(device, &e, &value, 0) >= 0) {
- joy_button_event(joyport, e.ordinal, value);
+ // joy_button_event(joyport, e.ordinal, value);
}
}
}
@@ -377,8 +377,8 @@
}
static joystick_driver_t osx_joystick_driver = {
- .poll = osx_joystick_read,
- .close = osx_joystick_close
+// .poll = osx_joystick_read,
+// .close = osx_joystick_close
};
static CFDictionaryRef CreateHIDDeviceMatchDictionary(const int page, const int usage)
@@ -405,7 +405,7 @@
/* ----- API ----- */
-void joy_hidlib_init(void)
+void joystick_arch_init(void)
{
if ( !mgr ) {
/* create the manager */
@@ -478,7 +478,7 @@
d->product_id = (int)product_id;
d->product_name = product_name;
joy_hidlib_enumerate_elements(d, &axes, &buttons, &hats);
- register_joystick_driver(&osx_joystick_driver, product_name, d, axes, buttons, hats);
+// register_joystick_driver(&osx_joystick_driver, product_name, d, axes, buttons, hats);
}
}
lib_free(all_devices);
@@ -485,7 +485,7 @@
CFRelease( device_set );
}
-void joy_hidlib_exit(void)
+void joystick_arch_shutdown(void)
{
if(mgr) {
IOHIDManagerClose( mgr, 0 );
Modified: trunk/vice/src/machine.c
===================================================================
--- trunk/vice/src/machine.c 2025-06-13 23:12:26 UTC (rev 45699)
+++ trunk/vice/src/machine.c 2025-06-14 05:14:56 UTC (rev 45700)
@@ -375,9 +375,6 @@
autostart_shutdown();
joystick_close();
-#ifdef MAC_JOYSTICK
- joy_hidlib_exit();
-#endif
#if !defined(USE_HEADLESSUI)
joystick_arch_shutdown();
#endif
Modified: trunk/vice/src/vicefeatures.c
===================================================================
--- trunk/vice/src/vicefeatures.c 2025-06-13 23:12:26 UTC (rev 45699)
+++ trunk/vice/src/vicefeatures.c 2025-06-14 05:14:56 UTC (rev 45700)
@@ -357,14 +357,6 @@
1 },
#endif
#endif
-#ifdef MACOS_COMPILE /* (osx) */
- { "MAC_JOYSTICK", "Enable Mac Joystick support.",
-#ifndef MAC_JOYSTICK
- 0 },
-#else
- 1 },
-#endif
-#endif
#if defined(UNIX_COMPILE) /* (unix) */
{ "USE_ALSA", "Enable ALSA support.",
#ifndef USE_ALSA
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gp...@us...> - 2025-06-13 23:12:28
|
Revision: 45699
http://sourceforge.net/p/vice-emu/code/45699
Author: gpz
Date: 2025-06-13 23:12:26 +0000 (Fri, 13 Jun 2025)
Log Message:
-----------
adjust implementation of c64gs cartridge to actual c64gs-cartridge hardware
Modified Paths:
--------------
trunk/vice/doc/vice.texi
trunk/vice/src/c64/cart/gs.c
Modified: trunk/vice/doc/vice.texi
===================================================================
--- trunk/vice/doc/vice.texi 2025-06-13 18:24:22 UTC (rev 45698)
+++ trunk/vice/doc/vice.texi 2025-06-13 23:12:26 UTC (rev 45699)
@@ -31400,10 +31400,9 @@
@end example
ROM memory is organized in 8KiB ($2000) banks located at $8000-$9FFF.
- Bank switching is done by writing to address $DE00+X, where X is the
+ Bank switching is done by accessing address $DE00+X, where X is the
bank number (STA $DE00,X). For instance, to read from bank 3, address
- $DE03 is written to. Reading from anywhere in the I/O-1 range will
- set the bank to 0.
+ $DE03 is read or written to.
The CRT file contains a string of CHIP blocks, each block with a start
address of $8000, length $2000 and the bank number in the bank field.
Modified: trunk/vice/src/c64/cart/gs.c
===================================================================
--- trunk/vice/src/c64/cart/gs.c 2025-06-13 18:24:22 UTC (rev 45698)
+++ trunk/vice/src/c64/cart/gs.c 2025-06-13 23:12:26 UTC (rev 45699)
@@ -24,6 +24,8 @@
*
*/
+/* #define DEBUGC64GS */
+
#include "vice.h"
#include <stdio.h>
@@ -36,6 +38,7 @@
#include "cartridge.h"
#include "export.h"
#include "gs.h"
+#include "log.h"
#include "monitor.h"
#include "snapshot.h"
#include "types.h"
@@ -42,15 +45,22 @@
#include "util.h"
#include "crt.h"
+#ifdef DEBUGC64GS
+#define DBG(x) log_printf x
+#else
+#define DBG(x)
+#endif
+
/*
C64GS (C64 Game System/System 3) Cartridge
- - 512kb ROM (64*8k), mapped to $8000 in 8k game config
+ - 512kb ROM (64*8k), (permanently) mapped to $8000 in 8k game config
- - reading from io1 switches to bank 0
+ - on any access (read or write) to IO1, the lower 6 bits of the address will
+ be latched and used as the bank number
- - writing to io1 switches banks. the lower 6 bits of the address are the
- bank number
+ CAUTION: the above is confirmed to be correct from looking at the "C64GS 4in1"
+ cartridge, whether the same is true for the System 3 cartridges is unknown yet.
*/
static int currbank = 0;
@@ -61,19 +71,16 @@
regval = value;
currbank = addr & 0x3f;
cart_romlbank_set_slotmain(currbank);
- /* 8k config */
- cart_set_port_exrom_slotmain(1);
- cart_set_port_game_slotmain(0);
cart_port_config_changed_slotmain();
- /* printf("C64GS: w addr: $de%02x value: $%02x bank: $%02x\n", addr, value, currbank); */
+ DBG(("C64GS: w addr: $de%02x bank: $%02x value: $%02x", addr, currbank, value));
}
static uint8_t gs_io1_read(uint16_t addr)
{
- currbank = 0;
- /* 8k configuration */
- cart_config_changed_slotmain(CMODE_8KGAME, CMODE_8KGAME, CMODE_READ);
- /* printf("C64GS: r addr: $de%02x\n", addr); */
+ currbank = addr & 0x3f;
+ cart_romlbank_set_slotmain(currbank);
+ cart_port_config_changed_slotmain();
+ DBG(("C64GS: r addr: $de%02x bank: $%02x", addr, currbank));
return 0;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gp...@us...> - 2025-06-13 18:24:25
|
Revision: 45698
http://sourceforge.net/p/vice-emu/code/45698
Author: gpz
Date: 2025-06-13 18:24:22 +0000 (Fri, 13 Jun 2025)
Log Message:
-----------
fix Comal 80 cartridge implementation, add a subtype for the older 'grey' cartridge. should fix #2145
Modified Paths:
--------------
trunk/vice/doc/vice.texi
trunk/vice/src/c64/cart/c64cart.c
trunk/vice/src/c64/cart/c64carthooks.c
trunk/vice/src/c64/cart/comal80.c
trunk/vice/src/c64/cart/comal80.h
Modified: trunk/vice/doc/vice.texi
===================================================================
--- trunk/vice/doc/vice.texi 2025-06-13 08:11:00 UTC (rev 45697)
+++ trunk/vice/doc/vice.texi 2025-06-13 18:24:22 UTC (rev 45698)
@@ -10210,6 +10210,11 @@
@item CartridgeFile
String specifying the filename of the image for the cartridge emulated in the "main" slot.
+@vindex Comal80Revision
+@item Comal80Revision
+Integer specifying the Comal 80 hardware revision.
+(0: Grey, 1: Commodore/Black)
+
@vindex DQBB
@item DQBB
Boolean specifying whether the Double Quick Brown Box should be emulated or not.
@@ -10727,6 +10732,12 @@
@item -cartcomal <name>
Attach raw 64KiB Comal 80 cartridge image.
+@findex -comal80rev
+@item -comal80rev <Revision>
+Set the Comal 80 hardware revision
+(@code{Comal80Revision}).
+(0: Grey, 1: Commodore/Black)
+
@findex -cartdep256
@item -cartdep256 <name>
Attach raw Dela EP256 cartridge image.
@@ -31684,19 +31695,53 @@
banks of ROM memory and the cart has 1 (write-only) bank control register which
is located at $DE00 and mirrored throughout the $DE00-$DEFF range.
+ Two variants of this Cartridge existed:
+
+ 1. Grey Cartridge (Comal Users Group, USA)
+ Produced around 1984-1985, likely with UniComal Denmarks approval.
+ Approx. 2,000 units distributed (according to COMAL Today).
+
+@itemize @bullet
+@item 4 sockets populated with 16 KB EPROMs (27128)
+@item NO additional socket, but it was possible to piggyback a fifth EPROM via
+ minor hardware mod
+@end itemize
+
@example
bit meaning
--- -------
- 7 exrom?
- 6 game?
- 5 unknown function (used by the software to disable the cartridge)
- 4 unused?
- 3 unused?
- 2 unknown function (used by the software however)
- 0-1 selects bank
+ 7 -
+ 6 GAME
+ 5 EXROM
+ 4 -
+ 3 -
+ 2 -
+ 0-1 selects EPROM (16k bank)
@end example
+ 2. Black Cartridge (Official Commodore Release)
+ Used internationally and with a different hardware configuration.
+@itemize @bullet
+@item Two fixed 32 KB ROMs (Commodore) and one socket for a 32 KB (or with
+ hardware modification 64 KB ) EPROM
+@end itemize
+
+@example
+ bit meaning
+ --- -------
+ 7 -
+ 6 GAME + EXROM
+ 5 -
+ 4 -
+ 3 -
+ 2 switches to the optional third socket (additional 2x16k)
+ 0-1 selects EPROM+bank (4x16k bank)
+@end example
+
+If the Cartridge Hardware Subtype/Revision (Offset 0x1A in the CRT Header) is 1,
+then VICE emulates the older "Grey" cartridge variant.
+
@c @node FIXME
@subsubsection 22 - Structured Basic
Modified: trunk/vice/src/c64/cart/c64cart.c
===================================================================
--- trunk/vice/src/c64/cart/c64cart.c 2025-06-13 08:11:00 UTC (rev 45697)
+++ trunk/vice/src/c64/cart/c64cart.c 2025-06-13 18:24:22 UTC (rev 45698)
@@ -806,7 +806,7 @@
rc = capture_crt_attach(fd, rawcart);
break;
case CARTRIDGE_COMAL80:
- rc = comal80_crt_attach(fd, rawcart);
+ rc = comal80_crt_attach(fd, rawcart, header.subtype);
break;
case CARTRIDGE_DELA_EP256:
rc = delaep256_crt_attach(fd, rawcart);
Modified: trunk/vice/src/c64/cart/c64carthooks.c
===================================================================
--- trunk/vice/src/c64/cart/c64carthooks.c 2025-06-13 08:11:00 UTC (rev 45697)
+++ trunk/vice/src/c64/cart/c64carthooks.c 2025-06-13 18:24:22 UTC (rev 45698)
@@ -527,6 +527,7 @@
|| ethernetcart_cmdline_options_init() < 0
#endif
/* "Main Slot" */
+ || comal80_cmdline_options_init() < 0
|| easyflash_cmdline_options_init() < 0
|| gmod2_cmdline_options_init() < 0
|| gmod3_cmdline_options_init() < 0
@@ -593,6 +594,7 @@
|| aciacart_resources_init() < 0
#endif
/* "Main Slot" */
+ || comal80_resources_init() < 0
|| easyflash_resources_init() < 0
|| gmod2_resources_init() < 0
|| gmod3_resources_init() < 0
@@ -643,6 +645,7 @@
#endif
/* "Main Slot" */
+ comal80_resources_shutdown();
easyflash_resources_shutdown();
gmod2_resources_shutdown();
gmod3_resources_shutdown();
Modified: trunk/vice/src/c64/cart/comal80.c
===================================================================
--- trunk/vice/src/c64/cart/comal80.c 2025-06-13 08:11:00 UTC (rev 45697)
+++ trunk/vice/src/c64/cart/comal80.c 2025-06-13 18:24:22 UTC (rev 45698)
@@ -38,9 +38,12 @@
#include "c64mem.h"
#include "cartio.h"
#include "cartridge.h"
+#include "cmdline.h"
#include "comal80.h"
#include "export.h"
+#include "log.h"
#include "monitor.h"
+#include "resources.h"
#include "snapshot.h"
#include "types.h"
#include "util.h"
@@ -47,7 +50,7 @@
#include "crt.h"
#ifdef DEBUGCART
-#define DBG(x) printf x
+#define DBG(x) log_printf x
#else
#define DBG(x)
#endif
@@ -58,44 +61,74 @@
- 64K ROM (32K mapped to $8000 and 32K mapped to $A000)
- free socket for another 64K eprom
- The cart has 1 (write-only) bank control register which
- is located at $DE00 and mirrored throughout the $DE00-$DEFF
- range.
+ The cart has 1 (write-only) bank control register which is located at $DE00
+ and mirrored throughout the $DE00-$DEFF range.
- bit 7 : exrom?
- bit 6 : game?
- bit 5 : unknown function (used by the software to disable the cartridge)
- bit 4 : unused?
- bit 3 : unused?
- bit 2 : selects user eprom (bank MSB)
- bit 0-1 : selects bank
+ Two variants of this Cartridge existed:
+
+ 1. Grey Cartridge (Comal Users Group, USA)
+ Produced around 1984-1985, likely with UniComal Denmark’s approval.
+ Approx. 2,000 units distributed (according to COMAL Today).
+
+ - 4 sockets populated with 16 KB EPROMs (27128)
+ - NO additional socket, but it was possible to piggyback a fifth EPROM via
+ minor hardware mod
+
+ bit 7 : -
+ bit 6 : GAME
+ bit 5 : EXROM
+ bit 4 : -
+ bit 3 : -
+ bit 2 : -
+ bit 0-1 : selects EPROM (16k bank)
+
+ 2. Black Cartridge (Official Commodore Release)
+ Used internationally and with a different hardware configuration.
+
+ - Two fixed 32 KB ROMs (Commodore) and one socket for a 32 KB (or with
+ hardware modification 64 KB ) EPROM
+
+ bit 7 : -
+ bit 6 : GAME + EXROM
+ bit 5 : -
+ bit 4 : -
+ bit 3 : -
+ bit 2 : switches to the optional third socket (additional 2x16k)
+ bit 0-1 : selects EPROM+bank (4x16k bank)
+
*/
static int currregval = 0;
static int extrarom = 0;
+#define VARIANT_GREY 0
+#define VARIANT_BLACK 1
+static int comal80_variant = VARIANT_BLACK;
+
static void comal80_io1_store(uint16_t addr, uint8_t value)
{
int cmode, currbank;
- currregval = value & 0xc7;
- currbank = value & 7;
-
- switch (value & 0xe0) {
- case 0xe0:
- cmode = CMODE_RAM;
- break;
- default:
- case 0x80:
- cmode = CMODE_16KGAME;
- break;
- case 0x40:
- cmode = CMODE_8KGAME;
- break;
+ if (comal80_variant == VARIANT_GREY) {
+ static int modes[4] = {
+ CMODE_16KGAME, CMODE_ULTIMAX, CMODE_8KGAME, CMODE_RAM
+ };
+ currregval = value & 0x63;
+ cmode = modes[(value & 0x60) >> 5];
+ currbank = value & 3;
+ } else {
+ currregval = value & 0x47;
+ cmode = (value & 0x40) ? CMODE_RAM : CMODE_16KGAME;
+ currbank = value & 7;
}
#ifdef DEBUGCART
- if ((value != 0x82) && (value != 0x83)) {
- DBG(("COMAL80: IO1W %04x %02x mode: %d bank: %d\n", addr, value, cmode, currbank));
+ if (currregval != value) {
+ static unsigned int last = 0;
+ unsigned int now = value ^ currregval;
+ if (last != now) {
+ DBG(("using unconnected bits: 0x%02x", now));
+ last = now;
+ }
}
#endif
cart_config_changed_slotmain(0, (uint8_t)(cmode | (currbank << CMODE_BANK_SHIFT)), CMODE_READ);
@@ -108,8 +141,9 @@
static int comal80_dump(void)
{
- mon_out("extra eprom is installed: %s\n", extrarom ? "yes" : "no");
- mon_out("register value: $%02x\n", (unsigned int)currregval);
+ mon_out("Cartridge variant: %s", (comal80_variant == VARIANT_GREY) ? "grey" : "black");
+ mon_out("Extra eprom is installed: %s\n", extrarom ? "yes" : "no");
+ mon_out("Register value: $%02x\n", (unsigned int)currregval);
mon_out(" bank: %d/%d\n", currregval & 7, extrarom ? 8 : 4);
return 0;
}
@@ -176,8 +210,48 @@
}
/* ---------------------------------------------------------------------*/
+
+static int set_comal80_variant(int val, void *param)
+{
+ comal80_variant = val ? 1 : 0;
+ return 0;
+}
+
+static const resource_int_t resources_int[] = {
+ { "Comal80Revision", VARIANT_BLACK, RES_EVENT_NO, NULL,
+ &comal80_variant, set_comal80_variant, NULL },
+ RESOURCE_INT_LIST_END
+};
+
+int comal80_resources_init(void)
+{
+ return resources_register_int(resources_int);
+}
+
+void comal80_resources_shutdown(void)
+{
+
+}
+
+static const cmdline_option_t cmdline_options[] =
+{
+ { "-comal80rev", SET_RESOURCE, CMDLINE_ATTRIB_NEED_ARGS,
+ NULL, NULL, "Comal80Revision", NULL,
+ "<Revision>", "Set Comal 80 Revision (0: Grey, 1: Commodore/Black)" },
+ CMDLINE_LIST_END
+};
+
+int comal80_cmdline_options_init(void)
+{
+ if (cmdline_register_options(cmdline_options) < 0) {
+ return -1;
+ }
+ return 0;
+}
+
static int comal80_common_attach(void)
{
+ DBG(("using comal 80 variant: %s", (comal80_variant == VARIANT_GREY) ? "grey" : "black (commodore)"));
if (export_add(&export_res) < 0) {
return -1;
}
@@ -197,11 +271,13 @@
return comal80_common_attach();
}
-int comal80_crt_attach(FILE *fd, uint8_t *rawcart)
+int comal80_crt_attach(FILE *fd, uint8_t *rawcart, int variant)
{
crt_chip_header_t chip;
extrarom = 0;
+ /* NOTE: in the CRT file we use 0 for the "black" variant, 1 for "grey" */
+ comal80_variant = (variant == 1) ? VARIANT_GREY : VARIANT_BLACK;
while (1) {
if (crt_read_chip_header(&chip, fd)) {
@@ -228,6 +304,7 @@
export_remove(&export_res);
io_source_unregister(comal80_list_item);
comal80_list_item = NULL;
+ comal80_variant = VARIANT_BLACK;
}
/* ---------------------------------------------------------------------*/
@@ -238,6 +315,7 @@
------------------------------
BYTE | register | control register
BYTE | extra rom| image contains extra eprom
+ BYTE | revision | hardware variant
ARRAY | ROML | 32768 or 65536 BYTES of ROML data
ARRAY | ROMH | 32768 or 65536 BYTES of ROMH data
*/
@@ -244,7 +322,7 @@
static const char snap_module_name[] = "CARTCOMAL";
#define SNAP_MAJOR 0
-#define SNAP_MINOR 1
+#define SNAP_MINOR 2
int comal80_snapshot_write_module(snapshot_t *s)
{
@@ -259,6 +337,7 @@
if (0
|| (SMW_B(m, (uint8_t)currregval) < 0)
|| (SMW_B(m, (uint8_t)extrarom) < 0)
+ || (SMW_B(m, (uint8_t)comal80_variant) < 0)
|| (SMW_BA(m, roml_banks, extrarom ? 0x10000 : 0x8000) < 0)
|| (SMW_BA(m, romh_banks, extrarom ? 0x10000 : 0x8000) < 0)) {
snapshot_module_close(m);
@@ -288,6 +367,7 @@
if (0
|| (SMR_B_INT(m, &currregval) < 0)
|| (SMR_B_INT(m, &extrarom) < 0)
+ || (SMR_B_INT(m, &comal80_variant) < 0)
|| (SMR_BA(m, roml_banks, extrarom ? 0x10000 : 0x8000) < 0)
|| (SMR_BA(m, romh_banks, extrarom ? 0x10000 : 0x8000) < 0)) {
goto fail;
Modified: trunk/vice/src/c64/cart/comal80.h
===================================================================
--- trunk/vice/src/c64/cart/comal80.h 2025-06-13 08:11:00 UTC (rev 45697)
+++ trunk/vice/src/c64/cart/comal80.h 2025-06-13 18:24:22 UTC (rev 45698)
@@ -34,9 +34,13 @@
void comal80_config_init(void);
void comal80_config_setup(uint8_t *rawcart);
int comal80_bin_attach(const char *filename, uint8_t *rawcart);
-int comal80_crt_attach(FILE *fd, uint8_t *rawcart);
+int comal80_crt_attach(FILE *fd, uint8_t *rawcart, int variant);
void comal80_detach(void);
+int comal80_cmdline_options_init(void);
+int comal80_resources_init(void);
+void comal80_resources_shutdown(void);
+
struct snapshot_s;
int comal80_snapshot_write_module(struct snapshot_s *s);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <co...@us...> - 2025-06-13 08:11:01
|
Revision: 45697
http://sourceforge.net/p/vice-emu/code/45697
Author: compyx
Date: 2025-06-13 08:11:00 +0000 (Fri, 13 Jun 2025)
Log Message:
-----------
Gtk3: resource spin button: connect "input" and "output" signals locked
The "input" and "output" signals of a spin button deal with parsing and formatting
of spin button text (the internal GtkEntry); to speed things up in the UI these
were connected "unlocked". However, it could be the GtkEntry updates trigger
a "value-changed" event, which in turn would alter the bound resource of the
widget, which could trigger an assertion of not having the main lock.
So to be safe, we connect these "locked". See bug #2144.
Modified Paths:
--------------
trunk/vice/src/arch/gtk3/widgets/base/resourcespinbutton.c
Modified: trunk/vice/src/arch/gtk3/widgets/base/resourcespinbutton.c
===================================================================
--- trunk/vice/src/arch/gtk3/widgets/base/resourcespinbutton.c 2025-06-11 17:55:13 UTC (rev 45696)
+++ trunk/vice/src/arch/gtk3/widgets/base/resourcespinbutton.c 2025-06-13 08:11:00 UTC (rev 45697)
@@ -933,15 +933,15 @@
"destroy",
G_CALLBACK(on_custom_spin_destroy),
(gpointer)state);
- g_signal_connect_unlocked(G_OBJECT(spin),
- "output",
- G_CALLBACK(on_custom_spin_output),
- (gpointer)state);
- g_signal_connect_unlocked(G_OBJECT(spin),
- "input",
- G_CALLBACK(on_custom_spin_input),
- (gpointer)state);
g_signal_connect(G_OBJECT(spin),
+ "output",
+ G_CALLBACK(on_custom_spin_output),
+ (gpointer)state);
+ g_signal_connect(G_OBJECT(spin),
+ "input",
+ G_CALLBACK(on_custom_spin_input),
+ (gpointer)state);
+ g_signal_connect(G_OBJECT(spin),
"value-changed",
G_CALLBACK(on_custom_spin_value_changed),
(gpointer)state);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gp...@us...> - 2025-06-11 17:55:15
|
Revision: 45696
http://sourceforge.net/p/vice-emu/code/45696
Author: gpz
Date: 2025-06-11 17:55:13 +0000 (Wed, 11 Jun 2025)
Log Message:
-----------
used constant instead of magic number, make docs match the implementation :)
Modified Paths:
--------------
trunk/vice/doc/vice.texi
trunk/vice/src/c64/cart/gs.c
Modified: trunk/vice/doc/vice.texi
===================================================================
--- trunk/vice/doc/vice.texi 2025-06-10 19:47:44 UTC (rev 45695)
+++ trunk/vice/doc/vice.texi 2025-06-11 17:55:13 UTC (rev 45696)
@@ -31392,7 +31392,7 @@
Bank switching is done by writing to address $DE00+X, where X is the
bank number (STA $DE00,X). For instance, to read from bank 3, address
$DE03 is written to. Reading from anywhere in the I/O-1 range will
- disable the cart.
+ set the bank to 0.
The CRT file contains a string of CHIP blocks, each block with a start
address of $8000, length $2000 and the bank number in the bank field.
Modified: trunk/vice/src/c64/cart/gs.c
===================================================================
--- trunk/vice/src/c64/cart/gs.c 2025-06-10 19:47:44 UTC (rev 45695)
+++ trunk/vice/src/c64/cart/gs.c 2025-06-11 17:55:13 UTC (rev 45696)
@@ -72,7 +72,7 @@
{
currbank = 0;
/* 8k configuration */
- cart_config_changed_slotmain(0, 0, CMODE_READ);
+ cart_config_changed_slotmain(CMODE_8KGAME, CMODE_8KGAME, CMODE_READ);
/* printf("C64GS: r addr: $de%02x\n", addr); */
return 0;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|