vice-emu-commit Mailing List for VICE (Page 17)
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
|
Dec
|
|
From: <gp...@us...> - 2024-12-19 20:49:35
|
Revision: 45408
http://sourceforge.net/p/vice-emu/code/45408
Author: gpz
Date: 2024-12-19 20:49:33 +0000 (Thu, 19 Dec 2024)
Log Message:
-----------
fix encoding
Modified Paths:
--------------
trunk/vice/src/arch/sdl/uimon.c
Modified: trunk/vice/src/arch/sdl/uimon.c
===================================================================
--- trunk/vice/src/arch/sdl/uimon.c 2024-12-19 19:51:45 UTC (rev 45407)
+++ trunk/vice/src/arch/sdl/uimon.c 2024-12-19 20:49:33 UTC (rev 45408)
@@ -170,9 +170,9 @@
/* petscii layout:
00 @abcdefghijklmnopqrstuvwxyz[ ]^ inverted (ctrl)
- 20 !"#$%&´()*+,-./0123456789:;<=>?
+ 20 !"#$%&'()*+,-./0123456789:;<=>?
40 @abcdefghijklmnopqrstuvwxyz[ ]^
- 60 !"#$%&´()*+,-./0123456789:;<=>?
+ 60 !"#$%&'()*+,-./0123456789:;<=>?
80 ABCDEFGHIJKLMNOPQRSTUVWXYZ..... inverted (Ctrl)
A0 ................................
C0 ABCDEFGHIJKLMNOPQRSTUVWXYZ.....
@@ -180,7 +180,7 @@
*/
/* monitor charset:
00 @abcdefghijklmnopqrstuvwxyz[ ]^ inverted
- 20 !"#$%&´()*+,-./0123456789:;<=>?
+ 20 !"#$%&'()*+,-./0123456789:;<=>?
40 @abcdefghijklmnopqrstuvwxyz[ ]^
60 ABCDEFGHIJKLMNOPQRSTUVWXYZ.....
80 ABCDEFGHIJKLMNOPQRSTUVWXYZ..... inverted
@@ -288,7 +288,7 @@
/* screencode layout:
00 @abcdefghijklmnopqrstuvwxyz[ ]^
- 20 !"#$%&´()*+,-./0123456789:;<=>?
+ 20 !"#$%&'()*+,-./0123456789:;<=>?
40 ABCDEFGHIJKLMNOPQRSTUVWXYZ.....
60 ................................
80-FF inverted version of the above
@@ -296,7 +296,7 @@
/* monitor charset:
00 @abcdefghijklmnopqrstuvwxyz[ ]^ inverted
- 20 !"#$%&´()*+,-./0123456789:;<=>?
+ 20 !"#$%&'()*+,-./0123456789:;<=>?
40 @abcdefghijklmnopqrstuvwxyz[ ]^
60 ABCDEFGHIJKLMNOPQRSTUVWXYZ.....
80 ABCDEFGHIJKLMNOPQRSTUVWXYZ..... inverted
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gp...@us...> - 2024-12-19 19:51:54
|
Revision: 45407
http://sourceforge.net/p/vice-emu/code/45407
Author: gpz
Date: 2024-12-19 19:51:45 +0000 (Thu, 19 Dec 2024)
Log Message:
-----------
some log cosmetics
Modified Paths:
--------------
trunk/vice/src/arch/gtk3/joystickdrv/joystick_linux_evdev.c
trunk/vice/src/c64/cart/ramlink.c
trunk/vice/src/joyport/joystick.c
Modified: trunk/vice/src/arch/gtk3/joystickdrv/joystick_linux_evdev.c
===================================================================
--- trunk/vice/src/arch/gtk3/joystickdrv/joystick_linux_evdev.c 2024-12-19 19:50:33 UTC (rev 45406)
+++ trunk/vice/src/arch/gtk3/joystickdrv/joystick_linux_evdev.c 2024-12-19 19:51:45 UTC (rev 45407)
@@ -440,7 +440,7 @@
int sd_result;
int i;
- joy_evdev_log = log_open("Joystick");
+ joy_evdev_log = log_open("evdev Joystick");
log_message(joy_evdev_log, "Initializing Linux evdev joystick driver.");
Modified: trunk/vice/src/c64/cart/ramlink.c
===================================================================
--- trunk/vice/src/c64/cart/ramlink.c 2024-12-19 19:50:33 UTC (rev 45406)
+++ trunk/vice/src/c64/cart/ramlink.c 2024-12-19 19:51:45 UTC (rev 45407)
@@ -61,10 +61,10 @@
#include "drive/iec/cmdhd.h"
#include "vicii-phi1.h"
-#define RLLOG1
-#define RLLOG2
/* #define RLLOG1 */
/* #define RLLOG2 */
+/* #define RLLOG1 */
+/* #define RLLOG2 */
/* #define RLDEBUGIO */
/* #define RLDEBUGMEM */
@@ -1260,7 +1260,7 @@
ramlink_sync_cpus();
cmdbus.cpu_data = byte;
cmdbus_update();
-//if (reg==0) printf("RAMLINK: Send %02x\n",byte);
+/*if (reg==0) printf("RAMLINK: Send %02x\n",byte);*/
}
static uint8_t get_pa(struct _i8255a_state *ctx, int8_t reg)
@@ -1283,7 +1283,7 @@
data = 0xff;
}
-//if (reg==0) printf("RAMLINK: Got %02x\n",data);
+/*if (reg==0) printf("RAMLINK: Got %02x\n",data);*/
return data;
}
@@ -1318,7 +1318,7 @@
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));
+/*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)
Modified: trunk/vice/src/joyport/joystick.c
===================================================================
--- trunk/vice/src/joyport/joystick.c 2024-12-19 19:50:33 UTC (rev 45406)
+++ trunk/vice/src/joyport/joystick.c 2024-12-19 19:51:45 UTC (rev 45407)
@@ -2688,6 +2688,10 @@
int joystick_init(void)
{
+ int res = -1;
+
+ joy_log = log_open("Joystick");
+
joystick_alarm = alarm_new(maincpu_alarm_context, "Joystick",
joystick_latch_handler, NULL);
@@ -2723,8 +2727,11 @@
/* do not load joymap file when -default was passed on the command line */
if (!default_settings_requested) {
- joy_arch_mapping_load(joymap_file);
+ res = joy_arch_mapping_load(joymap_file);
}
+ if (res < 0) {
+ log_warning(joy_log, "using minimal default mapping.");
+ }
return 1;
}
@@ -2814,7 +2821,7 @@
new_joystick_device->num_hats = num_hats;
new_joystick_device->num_buttons = num_buttons;
- log_message(LOG_DEFAULT,
+ log_message(joy_log,
"registered controller '%s' with %d %s, %d %s, %d %s",
new_joystick_device->jname,
num_axes, num_axes == 1 ? "axis" : "axes",
@@ -2858,7 +2865,7 @@
} else {
/* if neither "hat" nor at least two axis exist, this must be a very special
controller - print a warning and do not map anything */
- log_warning(LOG_DEFAULT, "Controller has no hats nor at least two axis - could not apply default mapping.");
+ log_warning(joy_log, "Controller has no hats nor at least two axis - could not apply default mapping.");
}
/* the first 3 buttons will be fire buttons */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gp...@us...> - 2024-12-19 19:50:36
|
Revision: 45406
http://sourceforge.net/p/vice-emu/code/45406
Author: gpz
Date: 2024-12-19 19:50:33 +0000 (Thu, 19 Dec 2024)
Log Message:
-----------
make sure tape_init is not called before traps were initialized
Modified Paths:
--------------
trunk/vice/src/c128/c128.c
trunk/vice/src/traps.c
trunk/vice/src/traps.h
Modified: trunk/vice/src/c128/c128.c
===================================================================
--- trunk/vice/src/c128/c128.c 2024-12-19 17:24:38 UTC (rev 45405)
+++ trunk/vice/src/c128/c128.c 2024-12-19 19:50:33 UTC (rev 45406)
@@ -354,7 +354,8 @@
void machine_tape_init_c64(void)
{
- if (tapemode != 1) {
+ /* CAUTION: only call trap init functions when traps have been initialized */
+ if (traps_ready() && (tapemode != 1)) {
if (tapemode == 0) {
tape_init(&tapeinit_c64_mode);
} else {
@@ -366,7 +367,8 @@
void machine_tape_init_c128(void)
{
- if (tapemode != 2) {
+ /* CAUTION: only call trap init functions when traps have been initialized */
+ if (traps_ready() && (tapemode != 2)) {
if (tapemode == 0) {
tape_init(&tapeinit_c128_mode);
} else {
Modified: trunk/vice/src/traps.c
===================================================================
--- trunk/vice/src/traps.c 2024-12-19 17:24:38 UTC (rev 45405)
+++ trunk/vice/src/traps.c 2024-12-19 19:50:33 UTC (rev 45406)
@@ -64,6 +64,8 @@
log_t traps_log = LOG_DEFAULT;
+static int trapsready = 0;
+
/* ------------------------------------------------------------------------- */
/* Trap-related resources. */
@@ -274,8 +276,15 @@
void traps_init(void)
{
traps_log = log_open("Traps");
+ trapsready = 1;
}
+/* returns 1 if traps are ready to be used */
+int traps_ready(void)
+{
+ return trapsready;
+}
+
void traps_shutdown(void)
{
traplist_t *list, *list_next;
Modified: trunk/vice/src/traps.h
===================================================================
--- trunk/vice/src/traps.h 2024-12-19 17:24:38 UTC (rev 45405)
+++ trunk/vice/src/traps.h 2024-12-19 19:50:33 UTC (rev 45406)
@@ -48,6 +48,7 @@
} trap_t;
void traps_init(void);
+int traps_ready(void);
void traps_shutdown(void);
int traps_resources_init(void);
int traps_cmdline_options_init(void);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gp...@us...> - 2024-12-19 17:24:39
|
Revision: 45405
http://sourceforge.net/p/vice-emu/code/45405
Author: gpz
Date: 2024-12-19 17:24:38 +0000 (Thu, 19 Dec 2024)
Log Message:
-----------
added test related to #2097
Added Paths:
-----------
testprogs/vdrive/extrachkin/
testprogs/vdrive/extrachkin/Makefile
testprogs/vdrive/extrachkin/bugtest.prg
testprogs/vdrive/extrachkin/bugtest.s
testprogs/vdrive/extrachkin/readme.txt
Added: testprogs/vdrive/extrachkin/Makefile
===================================================================
--- testprogs/vdrive/extrachkin/Makefile (rev 0)
+++ testprogs/vdrive/extrachkin/Makefile 2024-12-19 17:24:38 UTC (rev 45405)
@@ -0,0 +1,14 @@
+
+all: bugtest.prg
+
+bugtest.prg: bugtest.s
+ cl65 -t c64 -C c64-asm.cfg -u __EXEHDR__ -o bugtest.prg bugtest.s
+# OK: only vdrive
+test1: bugtest.prg
+ x64sc -default -virtualdev8 -iecdevice8 -device8 1 +drive8truedrive bugtest.prg
+# FAIL: vdrive and TDE enabled at the same time!
+test2: bugtest.prg
+ x64sc -default -virtualdev8 -iecdevice8 -device8 1 -drive8truedrive bugtest.prg
+
+clean:
+ $(RM) bugtest.prg
Added: testprogs/vdrive/extrachkin/bugtest.prg
===================================================================
(Binary files differ)
Index: testprogs/vdrive/extrachkin/bugtest.prg
===================================================================
--- testprogs/vdrive/extrachkin/bugtest.prg 2024-12-19 10:47:45 UTC (rev 45404)
+++ testprogs/vdrive/extrachkin/bugtest.prg 2024-12-19 17:24:38 UTC (rev 45405)
Property changes on: testprogs/vdrive/extrachkin/bugtest.prg
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/x-commodore-exec
\ No newline at end of property
Added: testprogs/vdrive/extrachkin/bugtest.s
===================================================================
--- testprogs/vdrive/extrachkin/bugtest.s (rev 0)
+++ testprogs/vdrive/extrachkin/bugtest.s 2024-12-19 17:24:38 UTC (rev 45405)
@@ -0,0 +1,203 @@
+; test hostfs multiple-chkin bug
+
+.include "cbm_kernal.inc"
+
+lfn = 1 ; logical file number
+dev = 8 ; device number (8=disk)
+sa = 2 ; channel number
+
+.zeropage
+ptr: .res 2
+
+.data
+overwrite: .byte "@0:"
+filename: .byte "test.txt"
+suffix: .byte ",s,w"
+endname:
+
+text: .byte "this is a test",13
+ .byte "with a total of",13
+ .byte "49 bytes of data.",13,0
+
+writing: .byte 5,"creating data file",0
+reading1: .asciiz "reading data file back with single chkin call"
+reading2: .asciiz "reading data file back with multiple chkin calls"
+verify_error: .asciiz "verify error"
+verify_ok: .asciiz "verify ok"
+file_kept: .asciiz "file kept:"
+
+.bss
+bytesread: .res 2
+
+.code
+
+Start: lda #<writing
+ ldx #>writing
+ jsr puts
+
+ ; create data file
+ lda #(endname - overwrite)
+ ldx #<overwrite
+ ldy #>overwrite
+ jsr SETNAM
+
+ lda #lfn
+ ldx #dev
+ ldy #sa
+ jsr SETLFS
+
+ jsr OPEN
+
+ ldx #lfn
+ jsr CHKOUT
+
+ lda #<text
+ sta ptr
+ lda #>text
+ sta ptr+1
+ ldy #0
+writeloop: lda (ptr),y
+ beq wrote
+ jsr CHROUT
+ iny
+ bne writeloop
+
+wrote: jsr CLRCHN
+ lda #lfn
+ jsr CLOSE
+
+ lda #<reading1
+ ldx #>reading1
+ jsr puts
+
+ ; verify data file
+ lda #(suffix - filename)
+ ldx #<filename
+ ldy #>filename
+ jsr SETNAM
+
+ lda #lfn
+ ldx #dev
+ ldy #sa
+ jsr SETLFS
+
+ jsr OPEN
+
+ ldx #lfn
+ jsr CHKIN
+
+ lda #<text
+ sta ptr
+ lda #>text
+ sta ptr+1
+ ldy #0
+
+vloop1: jsr CHRIN
+ cmp (ptr),y
+ bne verror1
+ jsr READST
+ and #$40
+ bne vdone1
+ iny
+ bne vloop1
+
+vdone1: jsr CLRCHN
+ lda #lfn
+ jsr CLOSE
+
+ lda #<verify_ok
+ ldx #>verify_ok
+ jsr puts
+ jmp verify2
+
+verror1: jsr CLRCHN
+ lda #lfn
+ jsr CLOSE
+ lda #<verify_error
+ ldx #>verify_error
+ jsr puts
+
+verify2: lda #<reading2
+ ldx #>reading2
+ jsr puts
+
+ ; verify data file
+ lda #(suffix - filename)
+ ldx #<filename
+ ldy #>filename
+ jsr SETNAM
+
+ lda #lfn
+ ldx #dev
+ ldy #sa
+ jsr SETLFS
+
+ jsr OPEN
+
+ lda #<text
+ sta ptr
+ lda #>text
+ sta ptr+1
+ ldy #0
+
+vloop2: ldx #lfn
+ jsr CHKIN
+
+ jsr CHRIN
+ cmp (ptr),y
+ bne verror2
+ jsr READST
+ and #$40
+ bne vdone2
+ iny
+ bne vloop2
+
+vdone2: jsr CLRCHN
+ lda #lfn
+ jsr CLOSE
+
+ lda #<verify_ok
+ ldx #>verify_ok
+ jsr puts
+
+ ; since the verify was ok, delete the test file
+ lda #'s'
+ sta overwrite
+ lda #(suffix - overwrite)
+ ldx #<overwrite
+ ldy #>overwrite
+ jsr SETNAM
+ lda #15
+ ldx #dev
+ ldy #15
+ jsr SETLFS
+ jsr OPEN
+ jmp CLOSE
+
+verror2: jsr CLRCHN
+ lda #lfn
+ jsr CLOSE
+ lda #<verify_error
+ ldx #>verify_error
+ jsr puts
+
+ lda #<file_kept
+ ldx #>file_kept
+ jsr puts
+
+ lda #$00
+ sta suffix
+ lda #<filename
+ ldx #>filename
+
+puts: sta ptr
+ stx ptr+1
+ ldy #$00
+ploop: lda (ptr),y
+ beq @puts_done
+ jsr CHROUT
+ iny
+ bne ploop
+
+@puts_done: lda #$0d
+ jmp CHROUT
Added: testprogs/vdrive/extrachkin/readme.txt
===================================================================
--- testprogs/vdrive/extrachkin/readme.txt (rev 0)
+++ testprogs/vdrive/extrachkin/readme.txt 2024-12-19 17:24:38 UTC (rev 45405)
@@ -0,0 +1,18 @@
+
+related to https://sourceforge.net/p/vice-emu/bugs/2097/
+
+Problem: Under certain conditions, when reading from the host filesystem,
+calling CHKIN() with the input channel already set, causes the next byte from
+the input stream to be consumed and discarded.
+
+This appears to happen when both vdrive and TDE is enabled at the same time.
+
+
+bugtest.prg
+
+creates a test file, reads it back to verify it against memory, then does so
+again with the extra CHKINs that trigger the bug.
+
+
+Workaround: do not enable TDE and vdrive at the same time. (We might even change
+the UI in a way that this is no more possible in the future)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <co...@us...> - 2024-12-19 10:47:48
|
Revision: 45404
http://sourceforge.net/p/vice-emu/code/45404
Author: compyx
Date: 2024-12-19 10:47:45 +0000 (Thu, 19 Dec 2024)
Log Message:
-----------
Windows: fix format specifier for `vice_pid_t` in `coproc_kill()`
Modified Paths:
--------------
trunk/vice/src/arch/shared/coproc.c
Modified: trunk/vice/src/arch/shared/coproc.c
===================================================================
--- trunk/vice/src/arch/shared/coproc.c 2024-12-18 13:54:37 UTC (rev 45403)
+++ trunk/vice/src/arch/shared/coproc.c 2024-12-19 10:47:45 UTC (rev 45404)
@@ -287,7 +287,7 @@
log_message(LOG_DEFAULT, "terminating child process id: %p", pid);
if (TerminateProcess(pid, 0) != 0) {
if (GetLastError() == ERROR_INVALID_HANDLE) {
- log_debug(LOG_DEFAULT, "child process id %d does not exist anymore.", pid);
+ log_debug(LOG_DEFAULT, "child process id %p does not exist anymore.", pid);
} else {
log_error(LOG_DEFAULT, "terminating child process id %p failed.", pid);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <co...@us...> - 2024-12-18 13:54:39
|
Revision: 45403
http://sourceforge.net/p/vice-emu/code/45403
Author: compyx
Date: 2024-12-18 13:54:37 +0000 (Wed, 18 Dec 2024)
Log Message:
-----------
Silence -Wshorten-64-to-32 warning
Modified Paths:
--------------
trunk/vice/src/userport/userport_wic64.c
Modified: trunk/vice/src/userport/userport_wic64.c
===================================================================
--- trunk/vice/src/userport/userport_wic64.c 2024-12-16 17:09:19 UTC (rev 45402)
+++ trunk/vice/src/userport/userport_wic64.c 2024-12-18 13:54:37 UTC (rev 45403)
@@ -2231,7 +2231,7 @@
break;
case WIC64_CMD_REBOOT:
debug_log(CONS_COL_NO, 3, "%s: arming for reboot", __FUNCTION__);
- wic64_sleep_cycles(3 * machine_get_cycles_per_second(), userport_wic64_reset); /* emulated a 3s reboot */
+ wic64_sleep_cycles(3 * (int)machine_get_cycles_per_second(), userport_wic64_reset); /* emulated a 3s reboot */
break;
case WIC64_CMD_SET_TRANSFER_TIMEOUT:
case WIC64_CMD_SET_REMOTE_TIMEOUT:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pot...@us...> - 2024-12-16 17:09:22
|
Revision: 45402
http://sourceforge.net/p/vice-emu/code/45402
Author: pottendo
Date: 2024-12-16 17:09:19 +0000 (Mon, 16 Dec 2024)
Log Message:
-----------
improved handshake sync with cmds
Modified Paths:
--------------
trunk/vice/src/userport/userport_wic64.c
Modified: trunk/vice/src/userport/userport_wic64.c
===================================================================
--- trunk/vice/src/userport/userport_wic64.c 2024-12-15 19:25:44 UTC (rev 45401)
+++ trunk/vice/src/userport/userport_wic64.c 2024-12-16 17:09:19 UTC (rev 45402)
@@ -802,8 +802,10 @@
void wic64_set_status(const char *status)
{
- strncpy(wic64_last_status, status, sizeof wic64_last_status);
- wic64_last_status[sizeof wic64_last_status - 1u] = '\0';
+ if (status) {
+ strncpy(wic64_last_status, status, sizeof wic64_last_status);
+ wic64_last_status[sizeof wic64_last_status - 1u] = '\0';
+ }
}
static void prep_wic64_str(void)
@@ -1137,16 +1139,22 @@
static void cycle_alarm_handler(CLOCK offset, void *data)
{
- debug_log(LOG_COL_OFF, 3, "%s: expired", __FUNCTION__);
+ debug_log(LOG_COL_OFF, 3, "%s: expired, data = %p", __FUNCTION__, data);
alarm_unset(cycle_alarm);
- handshake_flag2();
+ alarm_destroy(cycle_alarm);
+ cycle_alarm = NULL;
+ if (data) {
+ (*(void(*)(void))data)(); /* execute callback */
+ }
}
-static void wic64_sleep_cycles(int cycles)
+static void wic64_sleep_cycles(int cycles, void *cb)
{
- if (cycle_alarm == NULL) {
- cycle_alarm = alarm_new(maincpu_alarm_context, "CycleAlarm", cycle_alarm_handler, NULL);
+ if (cycle_alarm) {
+ debug_log(LOG_COL_LRED, 3, "%s: refusing to re-arm pending cycle alarm", __FUNCTION__);
+ return;
}
+ cycle_alarm = alarm_new(maincpu_alarm_context, "CycleAlarm", cycle_alarm_handler, cb);
alarm_unset(cycle_alarm);
alarm_set(cycle_alarm, maincpu_clk + cycles);
}
@@ -2222,8 +2230,8 @@
send_reply_revised(CLIENT_ERROR, "", NULL, 0, NULL);
break;
case WIC64_CMD_REBOOT:
- wic64_sleep_cycles((int)(3 * machine_get_cycles_per_second())); /* emulated a 3s reboot */
- userport_wic64_reset();
+ debug_log(CONS_COL_NO, 3, "%s: arming for reboot", __FUNCTION__);
+ wic64_sleep_cycles(3 * machine_get_cycles_per_second(), userport_wic64_reset); /* emulated a 3s reboot */
break;
case WIC64_CMD_SET_TRANSFER_TIMEOUT:
case WIC64_CMD_SET_REMOTE_TIMEOUT:
@@ -2346,11 +2354,29 @@
}
}
+/* this is run after handshake of last byte is completed */
+static void run_command_helper(void)
+{
+ wic64_log(LOG_COL_LBLUE, "command %s (len=%d/0x%x, using %s protocol)",
+ cmd2string[input_command],
+ input_length, input_length,
+ (wic64_protocol == WIC64_PROT_LEGACY) ? "legacy" :
+ (wic64_protocol == WIC64_PROT_REVISED) ? "revised" :
+ (wic64_protocol == WIC64_PROT_EXTENDED) ? "extended" :
+ "unknown");
+ do_command();
+ cmd_timeout(0);
+ commandptr = input_state = input_length = 0;
+ input_command = WIC64_CMD_NONE;
+ memset(commandbuffer, 0, COMMANDBUFFER_MAXLEN);
+}
+
/* 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) {
@@ -2396,18 +2422,7 @@
cmd_timeout(1);
if ((input_state == INPUT_EXP_ARGS) &&
(commandptr == input_length)) {
- cmd_timeout(0);
- wic64_log(LOG_COL_LBLUE, "command %s (len=%d/0x%x, using %s protocol)",
- cmd2string[input_command],
- input_length, input_length,
- (wic64_protocol == WIC64_PROT_LEGACY) ? "legacy" :
- (wic64_protocol == WIC64_PROT_REVISED) ? "revised" :
- (wic64_protocol == WIC64_PROT_EXTENDED) ? "extended" :
- "unknown");
- do_command();
- commandptr = input_state = input_length = 0;
- input_command = WIC64_CMD_NONE;
- memset(commandbuffer, 0, COMMANDBUFFER_MAXLEN);
+ wic64_sleep_cycles(FLAG2_TOGGLE_DELAY + 1, run_command_helper);
}
} else {
if (reply_length) {
@@ -2582,12 +2597,14 @@
lib_free(post_url);
post_url = NULL;
}
- wic64_set_status("RESET");
+ /* wic64_set_status("RESET"); real HW doesn't tell this */
wic64_log(LOG_COL_LBLUE, "cyan color: host -> WiC64 communication");
wic64_log(LOG_COL_LGREEN, "green color: WiC64 -> host communication");
wic64_log(LOG_COL_LRED, "red color: some error");
wic64_log(CONS_COL_NO, "no color: other information");
+
+ handshake_flag2();
}
/* ---------------------------------------------------------------------*/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <co...@us...> - 2024-12-15 19:25:46
|
Revision: 45401
http://sourceforge.net/p/vice-emu/code/45401
Author: compyx
Date: 2024-12-15 19:25:44 +0000 (Sun, 15 Dec 2024)
Log Message:
-----------
Fix misspellings of "HVSC", fixes bug #2101
Modified Paths:
--------------
trunk/vice/src/arch/gtk3/widgets/settings_hvsc.c
trunk/vice/src/hvsc/base.c
trunk/vice/src/hvsc/hvsc_defs.h
trunk/vice/src/hvsc/main.c
Modified: trunk/vice/src/arch/gtk3/widgets/settings_hvsc.c
===================================================================
--- trunk/vice/src/arch/gtk3/widgets/settings_hvsc.c 2024-12-15 17:07:45 UTC (rev 45400)
+++ trunk/vice/src/arch/gtk3/widgets/settings_hvsc.c 2024-12-15 19:25:44 UTC (rev 45401)
@@ -101,7 +101,7 @@
grid = vice_gtk3_grid_new_spaced(VICE_GTK3_DEFAULT, VICE_GTK3_DEFAULT);
- label = gtk_label_new("HSVC root directory");
+ label = gtk_label_new("HVSC root directory");
gtk_widget_set_halign(label, GTK_ALIGN_START);
hvsc_root_entry = vice_gtk3_resource_entry_new("HVSCRoot");
gtk_widget_set_hexpand(hvsc_root_entry, TRUE);
Modified: trunk/vice/src/hvsc/base.c
===================================================================
--- trunk/vice/src/hvsc/base.c 2024-12-15 17:07:45 UTC (rev 45400)
+++ trunk/vice/src/hvsc/base.c 2024-12-15 19:25:44 UTC (rev 45401)
@@ -545,7 +545,7 @@
}
-/** \brief Free memory used by the HSVC paths
+/** \brief Free memory used by the HVSC paths
*/
void hvsc_free_paths(void)
{
@@ -568,7 +568,7 @@
}
-/** \brief Strip the HSVC root path from \a path
+/** \brief Strip the HVSC root path from \a path
*
* \param[in] path path to a PSID file inside the HVSC
*
@@ -579,7 +579,7 @@
char *hvsc_path_strip_root(const char *path)
{
size_t plen = strlen(path); /* length of path */
- size_t rlen = (hvsc_root_path == NULL) ? 0 : strlen(hvsc_root_path); /* length of HSVC root path */
+ size_t rlen = (hvsc_root_path == NULL) ? 0 : strlen(hvsc_root_path); /* length of HVSC root path */
char *result;
if (rlen == 0) {
@@ -587,7 +587,7 @@
} else if (plen <= rlen) {
result = hvsc_strdup(path);
} else if (memcmp(path, hvsc_root_path, rlen) == 0) {
- /* got HSVC root path */
+ /* got HVSC root path */
result = hvsc_malloc(plen - rlen + 1u);
memcpy(result, path + rlen, plen - rlen + 1u);
} else {
Modified: trunk/vice/src/hvsc/hvsc_defs.h
===================================================================
--- trunk/vice/src/hvsc/hvsc_defs.h 2024-12-15 17:07:45 UTC (rev 45400)
+++ trunk/vice/src/hvsc/hvsc_defs.h 2024-12-15 19:25:44 UTC (rev 45401)
@@ -49,7 +49,7 @@
* This number indicates API version, when this number changes it means there
* are incompatible changes in the API. Set via the Makefile.
*/
-#ifndef HSVC_LIB_VERSION_MAJ
+#ifndef HVSC_LIB_VERSION_MAJ
#define HVSC_LIB_VERSION_MAJ 0
#endif
Modified: trunk/vice/src/hvsc/main.c
===================================================================
--- trunk/vice/src/hvsc/main.c 2024-12-15 17:07:45 UTC (rev 45400)
+++ trunk/vice/src/hvsc/main.c 2024-12-15 19:25:44 UTC (rev 45401)
@@ -43,7 +43,7 @@
/** \brief Initialize the library
*
- * This sets the paths to the HSVC and the SLDB, STIL, and BUGlist files.
+ * This sets the paths to the HVSC and the SLDB, STIL, and BUGlist files.
*
* The \a path is expected to be an absolute path to the HVSC's root directory,
* or `NULL` to use the environment variable `HVSC_BASE`.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <co...@us...> - 2024-12-15 17:07:47
|
Revision: 45400
http://sourceforge.net/p/vice-emu/code/45400
Author: compyx
Date: 2024-12-15 17:07:45 +0000 (Sun, 15 Dec 2024)
Log Message:
-----------
Fix -Wshorten-64-to-32 warning
Modified Paths:
--------------
trunk/vice/src/userport/userport_wic64.c
Modified: trunk/vice/src/userport/userport_wic64.c
===================================================================
--- trunk/vice/src/userport/userport_wic64.c 2024-12-15 11:15:06 UTC (rev 45399)
+++ trunk/vice/src/userport/userport_wic64.c 2024-12-15 17:07:45 UTC (rev 45400)
@@ -2222,7 +2222,7 @@
send_reply_revised(CLIENT_ERROR, "", NULL, 0, NULL);
break;
case WIC64_CMD_REBOOT:
- wic64_sleep_cycles(3 * machine_get_cycles_per_second()); /* emulated a 3s reboot */
+ wic64_sleep_cycles((int)(3 * machine_get_cycles_per_second())); /* emulated a 3s reboot */
userport_wic64_reset();
break;
case WIC64_CMD_SET_TRANSFER_TIMEOUT:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pot...@us...> - 2024-12-15 11:15:08
|
Revision: 45399
http://sourceforge.net/p/vice-emu/code/45399
Author: pottendo
Date: 2024-12-15 11:15:06 +0000 (Sun, 15 Dec 2024)
Log Message:
-----------
fixed handshake and alarms for cmd reboot
Modified Paths:
--------------
trunk/vice/src/userport/userport_wic64.c
Modified: trunk/vice/src/userport/userport_wic64.c
===================================================================
--- trunk/vice/src/userport/userport_wic64.c 2024-12-14 22:51:09 UTC (rev 45398)
+++ trunk/vice/src/userport/userport_wic64.c 2024-12-15 11:15:06 UTC (rev 45399)
@@ -2023,7 +2023,7 @@
input_state = INPUT_EXP_PROT;
commandptr = 0;
alarm_unset(cmd_force_timeout_alarm);
- set_userport_flag(FLAG2_INACTIVE);
+ /* set_userport_flag(FLAG2_INACTIVE); */
}
static void cmd_force_timeout(void)
@@ -2035,7 +2035,7 @@
wic64_log(CONS_COL_NO, "forcing timeout after %ds", timeout);
force_timeout = 1;
- set_userport_flag(FLAG2_ACTIVE);
+ /* set_userport_flag(FLAG2_ACTIVE); */
if (cmd_force_timeout_alarm == NULL) {
cmd_force_timeout_alarm = alarm_new(maincpu_alarm_context, "CMDForceTimoutAlarm",
@@ -2222,8 +2222,8 @@
send_reply_revised(CLIENT_ERROR, "", NULL, 0, NULL);
break;
case WIC64_CMD_REBOOT:
+ wic64_sleep_cycles(3 * machine_get_cycles_per_second()); /* emulated a 3s reboot */
userport_wic64_reset();
- wic64_sleep_cycles(3 * machine_get_cycles_per_second()); /* emulated a 3s reboot */
break;
case WIC64_CMD_SET_TRANSFER_TIMEOUT:
case WIC64_CMD_SET_REMOTE_TIMEOUT:
@@ -2391,10 +2391,12 @@
} else {
wic64_prot_state(value);
}
+ handshake_flag2();
cmd_timeout(1);
if ((input_state == INPUT_EXP_ARGS) &&
(commandptr == input_length)) {
+ cmd_timeout(0);
wic64_log(LOG_COL_LBLUE, "command %s (len=%d/0x%x, using %s protocol)",
cmd2string[input_command],
input_length, input_length,
@@ -2402,13 +2404,10 @@
(wic64_protocol == WIC64_PROT_REVISED) ? "revised" :
(wic64_protocol == WIC64_PROT_EXTENDED) ? "extended" :
"unknown");
- cmd_timeout(0);
do_command();
commandptr = input_state = input_length = 0;
input_command = WIC64_CMD_NONE;
memset(commandbuffer, 0, COMMANDBUFFER_MAXLEN);
- } else {
- handshake_flag2();
}
} else {
if (reply_length) {
@@ -2570,14 +2569,8 @@
if (cmd_force_timeout_alarm) {
alarm_unset(cmd_force_timeout_alarm);
}
- if (flag2_alarm) {
- alarm_unset(flag2_alarm);
- }
- if (cycle_alarm) {
- alarm_unset(cycle_alarm);
- }
+ /* flag2 and cycle alarms need to be preserverd !*/
remote_to = wic64_remote_timeout; /* reset to given value */
-
if (curl) {
/* connection closed */
curl_easy_cleanup(curl);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pot...@us...> - 2024-12-14 22:51:11
|
Revision: 45398
http://sourceforge.net/p/vice-emu/code/45398
Author: pottendo
Date: 2024-12-14 22:51:09 +0000 (Sat, 14 Dec 2024)
Log Message:
-----------
fixed wic64 cmd reboot, added loglevel 4 for handshake
Modified Paths:
--------------
trunk/vice/src/userport/userport_wic64.c
trunk/vice/src/userport/userport_wic64.h
Modified: trunk/vice/src/userport/userport_wic64.c
===================================================================
--- trunk/vice/src/userport/userport_wic64.c 2024-12-14 22:12:23 UTC (rev 45397)
+++ trunk/vice/src/userport/userport_wic64.c 2024-12-14 22:51:09 UTC (rev 45398)
@@ -1,4 +1,3 @@
-
/*
* userport_wic64.c - Userport WiC64 wifi interface emulation.
*
@@ -81,8 +80,8 @@
#define WIC64_VERSION_MINOR 1
#define WIC64_VERSION_PATCH 0
#define WIC64_VERSION_DEVEL 0
-#define WIC64_SHORT_VERSION "2.0.0"
-#define WIC64_VERSION_STRING "2.0.0 ("PACKAGE"; "VERSION")"
+#define WIC64_SHORT_VERSION "2.1.0"
+#define WIC64_VERSION_STRING "2.1.0 ("PACKAGE"; "VERSION")"
#define HTTP_AGENT_REVISED "WiC64/"WIC64_SHORT_VERSION" ("PACKAGE"; "VERSION")"
#define HTTP_AGENT_LEGACY "ESP32HTTPClient"
static char *http_user_agent = HTTP_AGENT_REVISED;
@@ -159,6 +158,10 @@
static struct alarm_s *tcp_send_alarm = NULL;
static struct alarm_s *cmd_timeout_alarm = NULL;
static struct alarm_s *cmd_remote_timeout_alarm = NULL;
+static struct alarm_s *cmd_force_timeout_alarm = NULL;
+static struct alarm_s *flag2_alarm = NULL;
+static struct alarm_s *cycle_alarm = NULL;
+
static char sec_token[32];
static int sec_init = 0;
static const char *TOKEN_NAME = "sectokenname";
@@ -381,7 +384,7 @@
NULL, "Disable WiC64 tracing" },
{ "-wic64tracelevel", SET_RESOURCE, CMDLINE_ATTRIB_NEED_ARGS,
NULL, NULL, "WIC64LogLevel", NULL,
- "<0..3>", "Set WiC64 tracing level (0: off, 1: cmd-level, >2: debug-level), implicitly turns on/off WiC64 tracing" },
+ "<0..4>", "Set WiC64 tracing level (0: off, 1: cmd-level, >2: debug-level), implicitly turns on/off WiC64 tracing" },
{ "-wic64reset", CALL_FUNCTION, CMDLINE_ATTRIB_NONE,
wic64_cmdl_reset, (void *)2, NULL, NULL,
NULL, "Reset WiC64 to factory defaults" },
@@ -439,7 +442,7 @@
#define WIC64_CMD_FORCE_ERROR 0xfd
#define WIC64_CMD_ECHO 0xfe
-// Deprecated commands
+/* Deprecated commands */
#define WIC64_CMD_DEPRECATED_UPDATE_FIRMWARE_03 0x03
#define WIC64_CMD_DEPRECATED_UPDATE_FIRMWARE_04 0x04
#define WIC64_CMD_DEPRECATED_UPDATE_FIRMWARE_05 0x05
@@ -602,6 +605,18 @@
alarm_destroy(cmd_remote_timeout_alarm);
cmd_remote_timeout_alarm = NULL;
}
+ if (cmd_force_timeout_alarm) {
+ alarm_destroy(cmd_force_timeout_alarm);
+ cmd_force_timeout_alarm = NULL;
+ }
+ if (flag2_alarm) {
+ alarm_destroy(flag2_alarm);
+ flag2_alarm = NULL;
+ }
+ if (cycle_alarm) {
+ alarm_destroy(cycle_alarm);
+ cycle_alarm = NULL;
+ }
debug_log(CONS_COL_NO, 2, "%s: several WiC64 dynamic buffers freed",
__FUNCTION__);
@@ -1094,10 +1109,10 @@
static uint32_t replyptr = 0, reply_length = 0;
static uint8_t reply_port_value = 0;
-static struct alarm_s *flag2_alarm = NULL;
static void flag2_alarm_handler(CLOCK offset, void *data)
{
+ debug_log(LOG_COL_OFF, 4, "%s: handshake expired", __FUNCTION__);
set_userport_flag(FLAG2_INACTIVE);
alarm_unset(flag2_alarm);
}
@@ -1114,11 +1129,28 @@
}
alarm_unset(flag2_alarm);
alarm_set(flag2_alarm, maincpu_clk + FLAG2_TOGGLE_DELAY);
+ debug_log(LOG_COL_OFF, 4, "%s: armed handshake", __FUNCTION__);
set_userport_flag(FLAG2_ACTIVE);
/* set_userport_flag(FLAG2_INACTIVE); */
}
+static void cycle_alarm_handler(CLOCK offset, void *data)
+{
+ debug_log(LOG_COL_OFF, 3, "%s: expired", __FUNCTION__);
+ alarm_unset(cycle_alarm);
+ handshake_flag2();
+}
+
+static void wic64_sleep_cycles(int cycles)
+{
+ if (cycle_alarm == NULL) {
+ cycle_alarm = alarm_new(maincpu_alarm_context, "CycleAlarm", cycle_alarm_handler, NULL);
+ }
+ alarm_unset(cycle_alarm);
+ alarm_set(cycle_alarm, maincpu_clk + cycles);
+}
+
static void reply_next_byte(void)
{
if (replyptr < reply_length) {
@@ -1166,7 +1198,7 @@
static void cmd_timeout_alarm_handler(CLOCK offset, void *data)
{
wic64_log(LOG_COL_LRED, "timed out - '%s' command", cmd2string[input_command]);
- replyptr = reply_length = force_timeout = 0;
+ replyptr = reply_length = 0;
input_state = INPUT_EXP_PROT;
commandptr = 0;
alarm_unset(cmd_timeout_alarm);
@@ -1660,11 +1692,12 @@
wic64_log_hexdump(CONS_COL_NO, (const char *)commandbuffer, commandptr); /* commands may contain '0' */
int l = (wic64_protocol == WIC64_PROT_LEGACY) ? 0 : 1; /* kludge to make it compatible */
+ char sep = l ? '\0' : '\1';
+ char rets[128];
+ char r = '\0';
switch (cmd) {
case WIC64_CMD_SCAN_WIFI_NETWORKS: {
- char rets[128];
- char sep = l ? '\0' : '\1';
snprintf(rets, 127, "0%cvice-emulation%c65%c%c", sep, sep, sep, 0xff);
send_reply_revised(SUCCESS, "Success",
(uint8_t *) rets, 20+l,
@@ -1672,7 +1705,6 @@
break;
}
case WIC64_CMD_IS_CONFIGURED: {
- char r = '\0';
send_reply_revised(SUCCESS, "Success", (uint8_t *)&r, 1, NULL);
break;
}
@@ -1984,12 +2016,33 @@
send_reply_revised(SUCCESS, "Success", t, strlen((char *)t) + 1, NULL);
}
+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;
+ input_state = INPUT_EXP_PROT;
+ commandptr = 0;
+ alarm_unset(cmd_force_timeout_alarm);
+ set_userport_flag(FLAG2_INACTIVE);
+}
+
static void cmd_force_timeout(void)
{
- wic64_timeout = commandbuffer[0];
- wic64_log(CONS_COL_NO, "forcing timeout after %ds", wic64_timeout);
+ if (wic64_protocol == WIC64_PROT_LEGACY) {
+ return; /* legacy won't support timeouts */
+ }
+ int timeout = (commandptr > 0) ? commandbuffer[0] : 1;
+ wic64_log(CONS_COL_NO, "forcing timeout after %ds", timeout);
force_timeout = 1;
- send_reply_revised(SUCCESS, "Success", NULL, 0, NULL);
+
+ set_userport_flag(FLAG2_ACTIVE);
+
+ if (cmd_force_timeout_alarm == NULL) {
+ cmd_force_timeout_alarm = alarm_new(maincpu_alarm_context, "CMDForceTimoutAlarm",
+ cmd_force_timeout_alarm_handler, NULL);
+ }
+ alarm_unset(cmd_force_timeout_alarm);
+ alarm_set(cmd_force_timeout_alarm, maincpu_clk + timeout * machine_get_cycles_per_second());
}
/* ---------------- legacy command -----------------*/
@@ -2170,9 +2223,7 @@
break;
case WIC64_CMD_REBOOT:
userport_wic64_reset();
- /*send_reply_revised(SUCCESS, "Success", NULL, 0, NULL); reported as error in F64*/
- /* FIXME: userport->sendHandshakeSignalBeforeReboot(); */
- handshake_flag2();
+ wic64_sleep_cycles(3 * machine_get_cycles_per_second()); /* emulated a 3s reboot */
break;
case WIC64_CMD_SET_TRANSFER_TIMEOUT:
case WIC64_CMD_SET_REMOTE_TIMEOUT:
@@ -2298,8 +2349,11 @@
/* PC2 irq (pulse) triggers when C64 reads/writes to userport */
static void userport_wic64_store_pbx(uint8_t value, int pulse)
{
- if ((pulse == 1) &&
- (!force_timeout)) {
+ if (force_timeout) {
+ debug_log(LOG_COL_OFF, 3, "%s: force timeout running %d/%d", __FUNCTION__, value, pulse);
+ return;
+ }
+ if (pulse == 1) {
if (wic64_inputmode) {
debug_log(LOG_COL_LBLUE, 3, "receiving '%c'/0x%02x, input_state = %d",
isprint(value) ? value : '.',
@@ -2339,7 +2393,6 @@
}
cmd_timeout(1);
- handshake_flag2();
if ((input_state == INPUT_EXP_ARGS) &&
(commandptr == input_length)) {
wic64_log(LOG_COL_LBLUE, "command %s (len=%d/0x%x, using %s protocol)",
@@ -2354,6 +2407,8 @@
commandptr = input_state = input_length = 0;
input_command = WIC64_CMD_NONE;
memset(commandbuffer, 0, COMMANDBUFFER_MAXLEN);
+ } else {
+ handshake_flag2();
}
} else {
if (reply_length) {
@@ -2424,6 +2479,10 @@
/* 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);
@@ -2454,7 +2513,7 @@
int tmp_tz;
wic64_log(CONS_COL_NO, "%s", __FUNCTION__);
- commandptr = input_state = input_length = 0;
+ commandptr = input_state = input_length = force_timeout = 0;
input_command = WIC64_CMD_NONE;
wic64_inputmode = 1;
memset(sec_token, 0, 32);
@@ -2508,6 +2567,15 @@
if (cmd_timeout_alarm) {
alarm_unset(cmd_timeout_alarm);
}
+ if (cmd_force_timeout_alarm) {
+ alarm_unset(cmd_force_timeout_alarm);
+ }
+ if (flag2_alarm) {
+ alarm_unset(flag2_alarm);
+ }
+ if (cycle_alarm) {
+ alarm_unset(cycle_alarm);
+ }
remote_to = wic64_remote_timeout; /* reset to given value */
if (curl) {
Modified: trunk/vice/src/userport/userport_wic64.h
===================================================================
--- trunk/vice/src/userport/userport_wic64.h 2024-12-14 22:12:23 UTC (rev 45397)
+++ trunk/vice/src/userport/userport_wic64.h 2024-12-14 22:51:09 UTC (rev 45398)
@@ -31,7 +31,7 @@
#define WIC64_DEFAULT_TRANSFER_TIMEOUT 1 /* supervise userport transfer */
#define WIC64_DEFAULT_REMOTE_TIMEOUT 5 /* supervise remote URL fetch */
-#define WIC64_MAXTRACELEVEL 3 /* adjust if needed more */
+#define WIC64_MAXTRACELEVEL 4 /* adjust if needed more */
/* timezone mapping
C64 sends just a number 0-31, bcd little endian in commandbuffer.
offsets can then be calculated.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ik...@us...> - 2024-12-14 22:12:25
|
Revision: 45397
http://sourceforge.net/p/vice-emu/code/45397
Author: ikorb
Date: 2024-12-14 22:12:23 +0000 (Sat, 14 Dec 2024)
Log Message:
-----------
fix build
Modified Paths:
--------------
trunk/vice/src/userport/userport_wic64.c
Modified: trunk/vice/src/userport/userport_wic64.c
===================================================================
--- trunk/vice/src/userport/userport_wic64.c 2024-12-12 21:15:25 UTC (rev 45396)
+++ trunk/vice/src/userport/userport_wic64.c 2024-12-14 22:12:23 UTC (rev 45397)
@@ -1662,7 +1662,7 @@
int l = (wic64_protocol == WIC64_PROT_LEGACY) ? 0 : 1; /* kludge to make it compatible */
switch (cmd) {
- case WIC64_CMD_SCAN_WIFI_NETWORKS:
+ case WIC64_CMD_SCAN_WIFI_NETWORKS: {
char rets[128];
char sep = l ? '\0' : '\1';
snprintf(rets, 127, "0%cvice-emulation%c65%c%c", sep, sep, sep, 0xff);
@@ -1670,10 +1670,12 @@
(uint8_t *) rets, 20+l,
NULL);
break;
- case WIC64_CMD_IS_CONFIGURED:
+ }
+ case WIC64_CMD_IS_CONFIGURED: {
char r = '\0';
send_reply_revised(SUCCESS, "Success", (uint8_t *)&r, 1, NULL);
break;
+ }
case WIC64_CMD_CONNECT_WITH_SSID_STRING:
case WIC64_CMD_CONNECT_WITH_SSID_INDEX:
case WIC64_CMD_IS_CONNECTED:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pot...@us...> - 2024-12-12 21:15:28
|
Revision: 45396
http://sourceforge.net/p/vice-emu/code/45396
Author: pottendo
Date: 2024-12-12 21:15:25 +0000 (Thu, 12 Dec 2024)
Log Message:
-----------
fixed protocol bugs, reported on F64
Modified Paths:
--------------
trunk/vice/src/userport/userport_wic64.c
Modified: trunk/vice/src/userport/userport_wic64.c
===================================================================
--- trunk/vice/src/userport/userport_wic64.c 2024-12-10 17:43:51 UTC (rev 45395)
+++ trunk/vice/src/userport/userport_wic64.c 2024-12-12 21:15:25 UTC (rev 45396)
@@ -1663,13 +1663,16 @@
switch (cmd) {
case WIC64_CMD_SCAN_WIFI_NETWORKS:
+ char rets[128];
+ char sep = l ? '\0' : '\1';
+ snprintf(rets, 127, "0%cvice-emulation%c65%c%c", sep, sep, sep, 0xff);
send_reply_revised(SUCCESS, "Success",
- (uint8_t *) "00\001vice-emulation\00199\001",
- strlen("00\001vice-emulation\00199\001") + l,
+ (uint8_t *) rets, 20+l,
NULL);
break;
case WIC64_CMD_IS_CONFIGURED:
- send_reply_revised(SUCCESS, "Success", NULL, 0, NULL);
+ char r = '\0';
+ send_reply_revised(SUCCESS, "Success", (uint8_t *)&r, 1, NULL);
break;
case WIC64_CMD_CONNECT_WITH_SSID_STRING:
case WIC64_CMD_CONNECT_WITH_SSID_INDEX:
@@ -1684,7 +1687,7 @@
break;
case WIC64_CMD_GET_RSSI:
send_reply_revised(SUCCESS, "Success",
- (uint8_t *) "-99dBm", strlen("-99dBm") + l, NULL);
+ (uint8_t *) "-65dBm", strlen("-65dBm") + l, NULL);
break;
default:
break;
@@ -2158,11 +2161,14 @@
cmd_get_statusmsg();
break;
case WIC64_CMD_ECHO:
- send_reply_revised(SUCCESS, "Success", commandbuffer, commandptr, NULL);
+ if (wic64_protocol != WIC64_PROT_EXTENDED)
+ send_reply_revised(SUCCESS, "", commandbuffer, commandptr, NULL);
+ else
+ send_reply_revised(CLIENT_ERROR, "", NULL, 0, NULL);
break;
case WIC64_CMD_REBOOT:
userport_wic64_reset();
- send_reply_revised(SUCCESS, "Success", NULL, 0, NULL);
+ /*send_reply_revised(SUCCESS, "Success", NULL, 0, NULL); reported as error in F64*/
/* FIXME: userport->sendHandshakeSignalBeforeReboot(); */
handshake_flag2();
break;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <co...@us...> - 2024-12-10 17:44:20
|
Revision: 45395
http://sourceforge.net/p/vice-emu/code/45395
Author: compyx
Date: 2024-12-10 17:43:51 +0000 (Tue, 10 Dec 2024)
Log Message:
-----------
Gtk3: MMC64: only enable BIOS save/flush buttons if proper BIOS loaded
See bug #2070, should fix the MMC64 part of the bug.
Modified Paths:
--------------
trunk/vice/src/arch/gtk3/widgets/settings_mmc64.c
Modified: trunk/vice/src/arch/gtk3/widgets/settings_mmc64.c
===================================================================
--- trunk/vice/src/arch/gtk3/widgets/settings_mmc64.c 2024-12-10 17:40:00 UTC (rev 45394)
+++ trunk/vice/src/arch/gtk3/widgets/settings_mmc64.c 2024-12-10 17:43:51 UTC (rev 45395)
@@ -43,6 +43,7 @@
#include "c64cart.h"
#include "cartridge.h"
#include "log.h"
+#include "resources.h"
#include "vice_gtk3.h"
#include "settings_mmc64.h"
@@ -74,10 +75,44 @@
/** \brief BIOS filename entry */
static GtkWidget *bios_filename = NULL;
+/** \brief BIOS "Flush image" button */
+static GtkWidget *flush_button = NULL;
+
+/** \brief BIOS "Save As" button" */
+static GtkWidget *save_button = NULL;
+
/** \brief SD card widget filename entry */
static GtkWidget *card_filename = NULL;
+/** \brief Update sensitivity of BIOS flush and save buttons
+ *
+ * Set sensitivity of the "Flush" and "Save As" buttons of the BIOS file
+ * widget, based on the presence of a BIOS image.
+ * (Assumes the resource "MMC64BIOSfilename" is only set if a valid BIOS file
+ * is loaded)
+ */
+static void update_buttons_sensitivity(void)
+{
+ const char *bios = NULL;
+ gboolean sensitive;
+
+ resources_get_string("MMC64BIOSfilename", &bios);
+ sensitive = (bios != NULL && *bios != '\0');
+ gtk_widget_set_sensitive(flush_button, sensitive);
+ gtk_widget_set_sensitive(save_button, sensitive);
+}
+
+/** \brief Custom callback for the BIOS file chooser widget
+ *
+ * \param[in] entry file chooser's GtkEntry widget (ignored)
+ * \param[in] filename filename returned by the file chooser (ignored)
+ */
+static void bios_callback(GtkEntry *entry, gchar *filename)
+{
+ update_buttons_sensitivity();
+}
+
/** \brief Handler for the 'toggled' event of the "MMC64 Enabled" widget
*
* \param[in,out] check check button
@@ -101,6 +136,7 @@
vice_gtk3_message_error(GTK_WINDOW(parent),
CARTNAME " Error",
"Cannot enable " CARTNAME " due to missing BIOS file.");
+ update_buttons_sensitivity();
return;
}
@@ -122,6 +158,8 @@
"Failed to disable " CARTNAME ", please set BIOS file.");
}
}
+
+ update_buttons_sensitivity();
}
/** \brief Callback for the save-dialog response handler
@@ -242,9 +280,7 @@
{
GtkWidget *label;
GtkWidget *bios_write;
- GtkWidget *box;
- GtkWidget *save;
- GtkWidget *flush;
+ GtkWidget *button_box;
const char *title;
/* header */
@@ -264,6 +300,7 @@
GTK_FILE_CHOOSER_ACTION_OPEN);
title = "Select " CARTRIDGE_NAME_MMC64 " BIOS file";
vice_gtk3_resource_filechooser_set_custom_title(bios_filename, title);
+ vice_gtk3_resource_filechooser_set_callback(bios_filename, bios_callback);
gtk_grid_attach(GTK_GRID(grid), label, 0, row, 1, 1);
gtk_grid_attach(GTK_GRID(grid), bios_filename, 1, row, columns - 1, 1);
row++;
@@ -272,25 +309,25 @@
bios_write = vice_gtk3_resource_check_button_new("MMC64_bios_write",
"Enable BIOS image writes");
/* buttons */
- box = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);
- flush = gtk_button_new_with_label("Flush image");
- save = gtk_button_new_with_label("Save image as ..");
+ button_box = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);
+ flush_button = gtk_button_new_with_label("Flush image");
+ save_button = gtk_button_new_with_label("Save image as ..");
- g_signal_connect(G_OBJECT(flush),
+ g_signal_connect(G_OBJECT(flush_button),
"clicked",
G_CALLBACK(on_flush_clicked),
NULL);
- g_signal_connect(G_OBJECT(save),
+ g_signal_connect(G_OBJECT(save_button),
"clicked",
G_CALLBACK(on_save_clicked),
NULL);
- gtk_box_pack_start(GTK_BOX(box), save, FALSE, FALSE, 0);
- gtk_box_pack_start(GTK_BOX(box), flush, FALSE, FALSE, 0);
- gtk_box_set_spacing(GTK_BOX(box), 8);
- gtk_widget_set_halign(box, GTK_ALIGN_END);
- gtk_grid_attach(GTK_GRID(grid), bios_write, 1, row, 1, 1);
- gtk_grid_attach(GTK_GRID(grid), box, 2, row, columns - 2, 1);
+ gtk_box_pack_start(GTK_BOX(button_box), save_button, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(button_box), flush_button, FALSE, FALSE, 0);
+ gtk_box_set_spacing(GTK_BOX(button_box), 8);
+ gtk_widget_set_halign(button_box, GTK_ALIGN_END);
+ gtk_grid_attach(GTK_GRID(grid), bios_write, 1, row, 1, 1);
+ gtk_grid_attach(GTK_GRID(grid), button_box, 2, row, columns - 2, 1);
return row + 1;
}
@@ -415,6 +452,8 @@
gtk_grid_attach(GTK_GRID(grid), revision_widget, 1, row, 1, 1);
#undef NUM_COLS
+ update_buttons_sensitivity();
+
gtk_widget_show_all(grid);
return grid;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rh...@us...> - 2024-12-10 17:40:03
|
Revision: 45394
http://sourceforge.net/p/vice-emu/code/45394
Author: rhialto
Date: 2024-12-10 17:40:00 +0000 (Tue, 10 Dec 2024)
Log Message:
-----------
Comment-only change: duplicate some hard-to-find documentation.
Modified Paths:
--------------
trunk/vice/src/pet/pethre.c
Modified: trunk/vice/src/pet/pethre.c
===================================================================
--- trunk/vice/src/pet/pethre.c 2024-12-10 07:16:54 UTC (rev 45393)
+++ trunk/vice/src/pet/pethre.c 2024-12-10 17:40:00 UTC (rev 45394)
@@ -206,10 +206,68 @@
#define CRTC_MA12 0x10
+/*
+ * On zimmers.net is a 1-page document 324890-01_manual.pdf which
+ * reads (my translation from German):
+ * ------
+ * The 8296 HIRES Graphics is an emulation of the 512*256 Commodore High Speed
+ * Graphivs, which uses the built-in RAM and 6502 microprocessor.
+ *
+ * A hardware addition is plugged into the socket of the CRTC (UC9) and the
+ * character ROM (UC5).
+ *
+ * The software for emulating the High Speed Graphivs is contained in a 4 KB
+ * EPROM ($9000, UE10), een BASIC-extension to use the graphics is in a
+ * further 4K EPROM ($A000, UE9).
+ *
+ * The "hidden" RAM behind the EPROM in UE9 and the BASIC ROM is used As screen
+ * memory.
+ *
+ * On the extension board there is a 4-fold DIL switch (1 to 4), with which one
+ * can set jumpers JU3, JU4, JU7, JU6 by hardware.
+ *
+ * By writing a latch at $E888 (decimal 59582), the jumpers JU3...JU7 are
+ * controlled by software (independently of the DIL-settings).
+ *
+ * Bit Value Jumper/Signal
+ *
+ * 0 1 JU4 /RAMSEL9 1)
+ * 1 2 JU3 /RAMSELA 1)
+ * 2 4 JU5 /RAMON 1)
+ * 3 8 ---
+ * 4 16 JU7 2)
+ * 5 32 JU6 2)
+ * 6 64 ---
+ * 7 128 LATCHON 3)
+ *
+ * 1) On the original motherboard the signals /RAMSELA, /RAMSEL9 and /RAMON
+ * can be controlled by PA0, PA1 and PA3 of the user port, if jumpers
+ * JU3, JU4 and JU5 are closed.
+ * On the adapter, "off" of the DIL-switch means
+ * for 1 and 2: RAMSELA and RAMSEL9 : high
+ * for 3 and 4: Jumper J6 and J7: placed (closed)
+ * 2) high = jumper placed
+ * 3) high = Latch On
+ * ------
+ * (unfortunately the document doesn't say what "Latch On" does, but I guess
+ * that if it is off, it has no effect and the /RAM* signals are default.)
+ *
+ * - JU1 : set /RAMSELA to GND (do not use JU1/JU3 together)
+ * - JU2 : set /RAMSEL9 to GND (do not use JU2/JU4 together)
+ * - JU3 : set /RAMSELA to Userport PA0 (do not use JU1/JU3 together)
+ * - JU4 : set /RAMSEL9 to Userport PA1 (do not use JU2/JU4 together)
+ * - JU5 : set /RAMON to Userport PA2
+ * - JU6 : set J4 expansion port pin /SELENP to /CSA ($A*** ROM)
+ * - JU7 : set J4 expansion port pin /SELENP to /CS9 ($9*** ROM)
+ *
+ * - JU8/JU9 : set JU8, unset JU9: do not use video MA12 for RAM addressing;
+ * unset JU8, set JU9: use video MA12 for RAM addressing.
+ */
+
+#define E888_LATCH_ON 0x80
#define E888_NOT_RAM_ON 0x04
#define E888_NOT_RAMSEL_A 0x02
#define E888_NOT_RAMSEL_9 0x01
-#define E888_CR6 0x01
void crtc_store_hre(uint16_t addr, uint8_t value)
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <co...@us...> - 2024-12-10 07:16:55
|
Revision: 45393
http://sourceforge.net/p/vice-emu/code/45393
Author: compyx
Date: 2024-12-10 07:16:54 +0000 (Tue, 10 Dec 2024)
Log Message:
-----------
Fix warning about '/*' inside block comment
Modified Paths:
--------------
trunk/vice/src/monitor/mon_lex.l
Modified: trunk/vice/src/monitor/mon_lex.l
===================================================================
--- trunk/vice/src/monitor/mon_lex.l 2024-12-09 01:55:57 UTC (rev 45392)
+++ trunk/vice/src/monitor/mon_lex.l 2024-12-10 07:16:54 UTC (rev 45393)
@@ -458,7 +458,7 @@
/* FIXME: currently no operator precedence is implemented (so all operators */
/* have the same precedence - ie evaluation is strictly left to right. */
- /* The table below shows the operator precedence in C, which we probably want
+ /* The table below shows the operator precedence in C, which we probably want */
/* to use, should we implement this at some point. */
/* Category Operator Associativity */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <old...@us...> - 2024-12-09 01:55:58
|
Revision: 45392
http://sourceforge.net/p/vice-emu/code/45392
Author: oldwoman37
Date: 2024-12-09 01:55:57 +0000 (Mon, 09 Dec 2024)
Log Message:
-----------
Improved CMD HD info in vice.texi
Modified Paths:
--------------
trunk/vice/doc/vice.texi
Modified: trunk/vice/doc/vice.texi
===================================================================
--- trunk/vice/doc/vice.texi 2024-12-06 02:02:49 UTC (rev 45391)
+++ trunk/vice/doc/vice.texi 2024-12-09 01:55:57 UTC (rev 45392)
@@ -29199,7 +29199,7 @@
This is very similar to the D80/D82 header in placement but without the DOS
version value.
-Also note that the dos version bytes are "3A".
+Also note that the DOS version bytes are "3A".
For the D90, it is believed that the $FF at offset $3 in the configuration
sector dictates the DOS version.
@@ -29239,7 +29239,7 @@
signature in the block. If it does not find it, X will increase by
128, and it will try again. It will do this until it finds the
signature, or until it gets a read error from the HD signaling the end
-of disk space. The device will the switch to installation mode.
+of disk space. The device will then switch to installation mode.
The following is an example configuration block of a 40 MB drive:
@@ -29301,7 +29301,7 @@
@item (X*$200+$400+n*$40)+$01
@tab Number of pages
@item (X*$200+$400+n*$40)+$02-$03
-@tab Location of data offset from X in sectors (256 bytes); MSB format
+@tab Location of data offset from X*$200 in sectors (256 bytes); MSB format
@item (X*$200+$400+n*$40)+$04-$05
@tab Checksum of data; MSB format
@item (X*$200+$400+n*$40)+$06-$0F
@@ -29312,13 +29312,13 @@
@tab ASCII of date
@item (X*$200+$400+n*$40)+$20-$3F
@tab All 0x00
-@item (X*$200+$500+d*$38)+$00
+@item (X*$200+$500)+d+$00
@tab SCSI ID of HD in bits 7-4, LUN in bits 3-0; $FF means not present
-@item (X*$200+$500+d*$38)+$38
+@item (X*$200+$500)+d+$38
@tab MSB of disk location in drive map
-@item (X*$200+$500+d*$38)+$70
+@item (X*$200+$500)+d+$70
@tab Middle byte of disk location in drive map
-@item (X*$200+$500+d*$38)+$A8
+@item (X*$200+$500)+d+$A8
@tab LSB of disk location in drive map
@item (X*$200+$500)+$E0
@tab 0x00 (unknown)
@@ -29325,18 +29325,16 @@
@item (X*$200+$500)+$E1
@tab Device number (12 or 0x0C by default)
@item (X*$200+$500)+$E2
-@tab 0x01 (unknown)
+@tab Default partition number (1 by default)
@item (X*$200+$500)+$E3
-@tab 0x01 (unknown)
+@tab Default partition number (1 by default)
@item (X*$200+$500)+$E4
@tab Device number (12 or 0x0C by default)
@item (X*$200+$500)+$E5
@tab 0x80: 2 to the power of the SCSI ID of host (which is always 7)
@item (X*$200+$500)+$E6-$E7
-@tab Location of CMD partition table offset from X in sectors (256 bytes); MSB format
-@item (X*$200+$500)+$E8
-@tab Default partition number
-@item (X*$200+$500)+$E9-$EF
+@tab Location of CMD partition table offset from X*$200 in sectors (256 bytes); MSB format
+@item (X*$200+$500)+$E8-$EF
@tab All 0x00
@item (X*$200+$500)+$F0-$F7
@tab 0x43 0x4D 0x44 0x20 0x48 0x44 0x20 0x20: First half of signature
@@ -29388,11 +29386,11 @@
@item $05-$14
@tab 16 character partition name (in PETASCII, padded with $A0)
@item $15-$17
-@tab Location of the partition data offset from X in sectors (256 bytes); MSB format; partition 0, the system partition always starts a 0.
+@tab Location of the partition (in blocks) in MSB format. Partition 0, the system partition, always starts at X*$200.
@item $18-$1D
@tab All 0x00
@item $1E-$1F
-@tab Size of partition (in blocks) in MSB format. Partition 0, the system partition is always 0x90 blocks, which includes blocks from X to the end of the partition table.
+@tab Size of partition (in blocks) in MSB format. Partition 0, the system partition is always 0x90 blocks, which includes blocks from X*$200 to the end of the partition table.
@end multitable
When a partition is deleted, its entry is removed and all others stay
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <old...@us...> - 2024-12-06 02:02:51
|
Revision: 45391
http://sourceforge.net/p/vice-emu/code/45391
Author: oldwoman37
Date: 2024-12-06 02:02:49 +0000 (Fri, 06 Dec 2024)
Log Message:
-----------
Added 64MB RamCard support to RAMLink
Modified Paths:
--------------
trunk/vice/src/c64/cart/ramlink.c
Modified: trunk/vice/src/c64/cart/ramlink.c
===================================================================
--- trunk/vice/src/c64/cart/ramlink.c 2024-12-05 09:42:26 UTC (rev 45390)
+++ trunk/vice/src/c64/cart/ramlink.c 2024-12-06 02:02:49 UTC (rev 45391)
@@ -59,7 +59,10 @@
#include "drive.h"
#include "maincpu.h"
#include "drive/iec/cmdhd.h"
+#include "vicii-phi1.h"
+#define RLLOG1
+#define RLLOG2
/* #define RLLOG1 */
/* #define RLLOG2 */
/* #define RLDEBUGIO */
@@ -131,7 +134,7 @@
static uint32_t rl_kernbase = 0;
static uint32_t rl_rambase = 0;
static uint32_t rl_cardbase = 0;
-static uint32_t rl_cardmask = 0;
+static uint32_t rl_cardaddr = 0;
static uint32_t rl_io1mode = 7; /* initially unused mode */
static rtc_72421_t *rl_rtc = NULL;
static i8255a_state rl_i8255a;
@@ -146,6 +149,7 @@
static uint8_t *rl_rom = NULL;
static int rl_extexrom = 0;
static int rl_extgame = 0;
+static char rl_memmap[256];
/* some prototypes are needed */
static uint8_t ramlink_io1_read(uint16_t addr);
@@ -463,6 +467,9 @@
if (current->device->cart_id == CARTRIDGE_REU) {
ramlink_devices_io2_reu = ramlink_devices_io2_count;
current->device->io_source_prio = IO_PRIO_LOW;
+ /* need to change end of IO for REU or else GEORAM may not
+ work depending on switch order */
+ current->device->end_address = 0xdf7f;
LOG1((LOG, "RAMLINK: Found REU IO2"));
}
ramlink_devices_io2_count++;
@@ -928,9 +935,18 @@
static int set_size(int size, void *param)
{
- if (size < 0 || size > 16) {
+ int i;
+
+ if (size < 0 || size > 64) {
return -1;
}
+ 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 != 36 && size != 48 && size != 52 && size != 64 &&
+ size != 17 && size != 33 && size != 49 && size != 0) {
+ return -1;
+ }
if (rl_enabled) {
ramlink_deactivate();
@@ -938,8 +954,66 @@
rl_cardsizemb = size;
rl_cardsize = rl_cardsizemb << 20;
- rl_cardmask = rl_cardsize - 1;
+ /* setup a full map */
+ for (i = 0; i < 64 ; i++) {
+ rl_memmap[i] = i;
+ }
+
+ if (rl_cardsizemb <= 4) {
+ /* anything beyond size specified will be open */
+ for (i = rl_cardsizemb; i < 4 ; i++) {
+ rl_memmap[i] = -1;
+ }
+ /* mirror to full 64MB range */
+ for (i = 4; i < 64 ; i++) {
+ rl_memmap[i] = rl_memmap[ i & 3 ];
+ }
+ } else if (rl_cardsizemb <= 16) {
+ /* assume remaining slots are open */
+ for (i = rl_cardsizemb; i < 16 ; i++) {
+ rl_memmap[i] = -1;
+ }
+ /* for those that have an additional 1MB SIMM */
+ if (rl_cardsizemb & 3) {
+ /* 5-7, 9-11, 13-15: show previous 1MB slot */
+ for (i = rl_cardsizemb; i < ((rl_cardsizemb / 4) + 1) * 4 ; i++) {
+ rl_memmap[i] = rl_cardsizemb - 1;
+ }
+ }
+ /* mirror to full 64MB range */
+ for (i = 16; i < 64 ; i++) {
+ rl_memmap[i] = rl_memmap[ i & 15 ];
+ }
+ } else {
+ /* assume remaining slots are open */
+ for (i = rl_cardsizemb; i < 64 ; i++) {
+ rl_memmap[i] = -1;
+ }
+ if ((rl_cardsizemb & 7) == 1) {
+ /* for those that have an additional 1MB SIMM */
+ /* 18-31, 34-47, 50-63: show previous 1MB slot */
+ for (i = rl_cardsizemb; i < ((rl_cardsizemb / 16) + 1) * 16 ; i++) {
+ rl_memmap[i] = rl_cardsizemb - 1;
+ }
+ } else if ((rl_cardsizemb & 7) == 4) {
+ /* for those that have an additional 4MB SIMM */
+ /* 20-31, 36-47, 52-63: show previous 4MB slot */
+ for (i = rl_cardsizemb; i < ((rl_cardsizemb / 16) + 1) * 16 ; i++) {
+ rl_memmap[i] = rl_cardsizemb - 4 + ( i & 3);
+ }
+ }
+
+ }
+
+#if 0
+ printf("* RL_MEMMAP:\n");
+ for(i=0;i<64;i++) {
+ printf("%02x ",rl_memmap[i]);
+ if (!((i+1)%16)) printf("\n");
+ }
+#endif
+
if (rl_enabled) {
ramlink_activate();
}
@@ -1186,6 +1260,7 @@
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)
@@ -1208,6 +1283,7 @@
data = 0xff;
}
+//if (reg==0) printf("RAMLINK: Got %02x\n",data);
return data;
}
@@ -1242,6 +1318,7 @@
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)
@@ -1291,9 +1368,15 @@
(addr & 0xff), val, reg_pc));
return val;
} else if (rl_io1mode == 1) {
- val = rl_card[rl_cardbase | (addr & 0xff)];
- IDBG((LOG, "RAMLINK: io1 r card[%06x] = %02x at 0x%04x", rl_cardbase |
- (addr & 0xff), val, reg_pc));
+ if (rl_cardbase != -1) {
+ val = rl_card[rl_cardbase | (addr & 0xff)];
+ IDBG((LOG, "RAMLINK: io1 r card[%06x] = %02x at 0x%04x", rl_cardbase |
+ (addr & 0xff), val, reg_pc));
+ } else {
+ val = vicii_read_phi1();
+ IDBG((LOG, "RAMLINK: io1 r card[%06x] = %02x at 0x%04x (open)", rl_cardbase |
+ (addr & 0xff), val, reg_pc));
+ }
return val;
}
@@ -1359,12 +1442,17 @@
(addr & 0xff), value, old_val, reg_pc));
return;
} else if (rl_io1mode == 1) {
+ if (rl_cardbase != -1) {
#ifdef RLDEBUGIO
- old_val = rl_card[rl_cardbase | (addr & 0xff)];
+ old_val = rl_card[rl_cardbase | (addr & 0xff)];
#endif
- rl_card[rl_cardbase | (addr & 0xff)] = value;
- IDBG((LOG, "RAMLINK: io1 w card[%06x] < %02x (%02x) at 0x%04x", rl_cardbase |
- (addr & 0xff), value, old_val, reg_pc));
+ rl_card[rl_cardbase | (addr & 0xff)] = value;
+ IDBG((LOG, "RAMLINK: io1 w card[%06x] < %02x (%02x) at 0x%04x", rl_cardbase |
+ (addr & 0xff), value, old_val, reg_pc));
+ } else {
+ IDBG((LOG, "RAMLINK: io1 w card[%06x] open bus at 0x%04x", rl_cardbase |
+ (addr & 0xff), reg_pc));
+ }
return;
}
@@ -1444,14 +1532,26 @@
static void ramlink_io2_a0_a3_store(uint16_t addr, uint8_t value)
{
+ int i;
+
switch (addr & 3) {
case 0:
- rl_cardbase = ((rl_cardbase & 0xff0000) | (value << 8)) & rl_cardmask;
+ rl_cardaddr = (rl_cardaddr & 0xffff0000) | (value << 8);
break;
case 1:
- rl_cardbase = ((rl_cardbase & 0x00ff00) | (value << 16)) & rl_cardmask;
+ rl_cardaddr = (rl_cardaddr & 0xff00ff00) | (value << 16);
break;
+ case 2:
+ rl_cardaddr = (rl_cardaddr & 0x00ffff00) | (value << 24);
+ break;
}
+ i = rl_memmap[(rl_cardaddr >> 20) & 63];
+ /* if the memory re-mapping is set to -1, then the bus is open */
+ if (i>64) {
+ rl_cardbase = -1;
+ } else {
+ rl_cardbase = (i << 20) | (rl_cardaddr & 0x0fffff);
+ }
IDBG((LOG, "RAMLINK: io2 w %04x < %02x at 0x%04x", addr, value, reg_pc));
}
@@ -2017,7 +2117,7 @@
UINT32 | rombase | rl_rombase
UINT32 | kernbase | rl_kernbase
UINT32 | rambase | rl_rambase
- UINT32 | cardbase | rl_cardbase
+ UINT32 | cardaddr | rl_cardaddr
UINT32 | io1mode | rl_io1mode
UINT32 | reu_trap | rl_reu_trap
BYTE | on | rl_on
@@ -2051,7 +2151,7 @@
|| (SMW_DW(m, rl_rombase) < 0)
|| (SMW_DW(m, rl_kernbase) < 0)
|| (SMW_DW(m, rl_rambase) < 0)
- || (SMW_DW(m, rl_cardbase) < 0)
+ || (SMW_DW(m, rl_cardaddr) < 0)
|| (SMW_DW(m, rl_io1mode) < 0)
|| (SMW_DW(m, rl_reu_trap) < 0)
|| (SMW_B(m, rl_on) < 0)
@@ -2105,7 +2205,7 @@
|| (SMR_DW(m, &rl_rombase) < 0)
|| (SMR_DW(m, &rl_kernbase) < 0)
|| (SMR_DW(m, &rl_rambase) < 0)
- || (SMR_DW(m, &rl_cardbase) < 0)
+ || (SMR_DW(m, &rl_cardaddr) < 0)
|| (SMR_DW(m, &rl_io1mode) < 0)
|| (SMR_DW(m, &rl_reu_trap) < 0)
|| (SMR_B(m, &rl_on) < 0)
@@ -2123,7 +2223,10 @@
set_enabled(1, NULL);
+ /* set ramcard size */
set_size(size, NULL);
+ /* set the cardbase via a dummy write to the address system */
+ ramlink_io2_a0_a3_store(0,3);
if (SMR_BA(m, rl_card, rl_cardsize) < 0) {
goto fail;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <co...@us...> - 2024-12-05 09:42:31
|
Revision: 45390
http://sourceforge.net/p/vice-emu/code/45390
Author: compyx
Date: 2024-12-05 09:42:26 +0000 (Thu, 05 Dec 2024)
Log Message:
-----------
Windows: copy dependencies of the GdkPixbuf SVG loader into bindist
Since the SVG loader is dynamically loaded by GdkPixbuf, the `ntldd` call on
an emulator executable won't pick it up, we need explicitly get the deps of
the SVG loader and copy them into the bindist as well.
Should fix bug #2081, please test once the bindist is built on Github.
Modified Paths:
--------------
trunk/vice/src/arch/gtk3/make-bindist_win32.sh
Modified: trunk/vice/src/arch/gtk3/make-bindist_win32.sh
===================================================================
--- trunk/vice/src/arch/gtk3/make-bindist_win32.sh 2024-12-04 00:37:36 UTC (rev 45389)
+++ trunk/vice/src/arch/gtk3/make-bindist_win32.sh 2024-12-05 09:42:26 UTC (rev 45390)
@@ -145,6 +145,9 @@
cd $BUILDPATH
GDK_PIXBUF_MODULEDIR=lib/gdk-pixbuf-2.0/2.10.0/loaders gdk-pixbuf-query-loaders > lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
cd $MINGW_PREFIX
+ # get dependencies of the SVG loader
+ # FIXME: only works for the updated SVG (renamed) SVG loader
+ cp `ntldd -R $BUILDPATH/lib/gdk-pixbuf-2.0/2.10.0//loaders/pixbufloader_svg.dll | gawk '/\\\\bin\\\\/{print $3;}' | cygpath -f -` $BUILDPATH/bin
# GTK3 accepts having only scalable icons,
# which reduces the bindist size considerably.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gp...@us...> - 2024-12-03 23:18:51
|
Revision: 45388
http://sourceforge.net/p/vice-emu/code/45388
Author: gpz
Date: 2024-12-03 23:18:48 +0000 (Tue, 03 Dec 2024)
Log Message:
-----------
document the absence of operator precedence in the monitor parser, add some related comment(s)
Modified Paths:
--------------
trunk/vice/doc/vice.texi
trunk/vice/src/monitor/mon_lex.l
trunk/vice/src/monitor/mon_parse.y
Modified: trunk/vice/doc/vice.texi
===================================================================
--- trunk/vice/doc/vice.texi 2024-12-03 23:05:30 UTC (rev 45387)
+++ trunk/vice/doc/vice.texi 2024-12-03 23:18:48 UTC (rev 45388)
@@ -20718,7 +20718,11 @@
Full expressions are also supported (+, -, *, /, &, |, &&, ||). This lets
you for example check specific bits in the FL register using the bitwise
-boolean operators (& and |). Parentheses are also supported in the expression.
+boolean operators (& and |).
+
+Please note that currently expressions are evaluated strictly left to right, so
+use parentheses in complex expressions to indicate the desired evaluation order.
+
Registers can be the registers of other devices; this is denoted by
a memspace prefix (i.e., c:, 8:, 9:, 10:, 11:)
Examples: A == $0, X == Y, 8:X == X
Modified: trunk/vice/src/monitor/mon_lex.l
===================================================================
--- trunk/vice/src/monitor/mon_lex.l 2024-12-03 23:05:30 UTC (rev 45387)
+++ trunk/vice/src/monitor/mon_lex.l 2024-12-03 23:18:48 UTC (rev 45388)
@@ -456,23 +456,45 @@
iyh { yylval.i = e_IYH; return MON_REGISTER; } /* z80 */
}
+ /* FIXME: currently no operator precedence is implemented (so all operators */
+ /* have the same precedence - ie evaluation is strictly left to right. */
+ /* The table below shows the operator precedence in C, which we probably want
+ /* to use, should we implement this at some point. */
+
+ /* Category Operator Associativity */
+ /* --------------------------------------------------------------------- */
+ /* Postfix () [] -> . ++ - - Left to right */
+ /* Unary + - ! ~ ++ - - (type)* & sizeof Right to left */
+ /* Multiplicative * / % Left to right */
+ /* Additive + - Left to right */
+ /* Shift << >> Left to right */
+ /* Relational < <= > >= Left to right */
+ /* Equality == != Left to right */
+ /* Bitwise AND & Left to right */
+ /* Bitwise XOR ^ Left to right */
+ /* Bitwise OR | Left to right */
+ /* Logical AND && Left to right */
+ /* Logical OR || Left to right */
+ /* Conditional ?: Right to left */
+ /* Assignment = += -= *= /= %= >>= <<= &= ^= |= Right to left */
+ /* Comma , Left to right */
+
<COND_MODE>{
- == { yylval.i = e_EQU; return COND_OP; }
- != { yylval.i = e_NEQ; return COND_OP; }
- \<= { yylval.i = e_LTE; return COND_OP; }
- \< { yylval.i = e_LT; return COND_OP; }
- \> { yylval.i = e_GT; return COND_OP; }
- \>= { yylval.i = e_GTE; return COND_OP; }
+ \* { yylval.i = e_MUL; return COND_OP; } /* Multiplicative */
+ \/ { yylval.i = e_DIV; return COND_OP; } /* Multiplicative */
+ \+ { yylval.i = e_ADD; return COND_OP; } /* Additive */
+ - { yylval.i = e_SUB; return COND_OP; } /* Additive */
+ \<= { yylval.i = e_LTE; return COND_OP; } /* Relational */
+ \< { yylval.i = e_LT; return COND_OP; } /* Relational */
+ \> { yylval.i = e_GT; return COND_OP; } /* Relational */
+ \>= { yylval.i = e_GTE; return COND_OP; } /* Relational */
+ == { yylval.i = e_EQU; return COND_OP; } /* Equality */
+ != { yylval.i = e_NEQ; return COND_OP; } /* Equality */
+ & { yylval.i = e_BINARY_AND; return COND_OP; } /* Bitwise AND */
+ \| { yylval.i = e_BINARY_OR; return COND_OP; } /* Bitwise OR */
+ && { yylval.i = e_LOGICAL_AND; return COND_OP; } /* Logical AND */
+ \|\| { yylval.i = e_LOGICAL_OR; return COND_OP; } /* Logical OR */
- \+ { yylval.i = e_ADD; return COND_OP; }
- - { yylval.i = e_SUB; return COND_OP; }
- \* { yylval.i = e_MUL; return COND_OP; }
- \/ { yylval.i = e_DIV; return COND_OP; }
- & { yylval.i = e_BINARY_AND; return COND_OP; }
- \| { yylval.i = e_BINARY_OR; return COND_OP; }
- && { yylval.i = e_LOGICAL_AND; return COND_OP; }
- \|\| { yylval.i = e_LOGICAL_OR; return COND_OP; }
-
A { yylval.i = e_A; return MON_REGISTER; } /* 65xx/c64dtv/658xx/6x09/z80 */
X { yylval.i = e_X; return MON_REGISTER; } /* 65xx/c64dtv/658xx/6x09 */
Y { yylval.i = e_Y; return MON_REGISTER; } /* 65xx/c64dtv/658xx/6x09 */
Modified: trunk/vice/src/monitor/mon_parse.y
===================================================================
--- trunk/vice/src/monitor/mon_parse.y 2024-12-03 23:05:30 UTC (rev 45387)
+++ trunk/vice/src/monitor/mon_parse.y 2024-12-03 23:18:48 UTC (rev 45388)
@@ -797,6 +797,29 @@
memaddr: number { $$ = $1; };
+ /* FIXME: currently no operator precedence is implemented (so all operators */
+ /* have the same precedence - ie evaluation is strictly left to right. */
+ /* The table below shows the operator precedence in C, which we probably want
+ /* to use, should we implement this at some point. */
+
+ /* Category Operator Associativity */
+ /* --------------------------------------------------------------------- */
+ /* Postfix () [] -> . ++ - - Left to right */
+ /* Unary + - ! ~ ++ - - (type)* & sizeof Right to left */
+ /* Multiplicative * / % Left to right */
+ /* Additive + - Left to right */
+ /* Shift << >> Left to right */
+ /* Relational < <= > >= Left to right */
+ /* Equality == != Left to right */
+ /* Bitwise AND & Left to right */
+ /* Bitwise XOR ^ Left to right */
+ /* Bitwise OR | Left to right */
+ /* Logical AND && Left to right */
+ /* Logical OR || Left to right */
+ /* Conditional ?: Right to left */
+ /* Assignment = += -= *= /= %= >>= <<= &= ^= |= Right to left */
+ /* Comma , Left to right */
+
expression: expression '+' expression { $$ = $1 + $3; }
| expression '-' expression { $$ = $1 - $3; }
| expression '*' expression { $$ = $1 * $3; }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rh...@us...> - 2024-12-03 23:03:19
|
Revision: 45386
http://sourceforge.net/p/vice-emu/code/45386
Author: rhialto
Date: 2024-12-03 23:03:15 +0000 (Tue, 03 Dec 2024)
Log Message:
-----------
Set the gravity of the main and the monitor windows,
so that gtk doesn't over-compensate for the window's border width when
saving/restoring its position.
Modified Paths:
--------------
trunk/vice/src/arch/gtk3/ui.c
trunk/vice/src/arch/gtk3/uimon.c
Modified: trunk/vice/src/arch/gtk3/ui.c
===================================================================
--- trunk/vice/src/arch/gtk3/ui.c 2024-12-02 16:35:49 UTC (rev 45385)
+++ trunk/vice/src/arch/gtk3/ui.c 2024-12-03 23:03:15 UTC (rev 45386)
@@ -1788,6 +1788,9 @@
}
new_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ /* Set the gravity so that gtk doesn't over-compensate for the
+ * window's border width when saving/restoring its position. */
+ gtk_window_set_gravity(GTK_WINDOW(new_window), GDK_GRAVITY_STATIC);
/* this needs to be here to make the menus with accelerators work */
vhk_gtk_init_accelerators(new_window);
Modified: trunk/vice/src/arch/gtk3/uimon.c
===================================================================
--- trunk/vice/src/arch/gtk3/uimon.c 2024-12-02 16:35:49 UTC (rev 45385)
+++ trunk/vice/src/arch/gtk3/uimon.c 2024-12-03 23:03:15 UTC (rev 45386)
@@ -1283,8 +1283,8 @@
fixed.window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(fixed.window), "VICE monitor");
- resources_get_int("MonitorXpos", &xpos);
- resources_get_int("MonitorYpos", &ypos);
+ resources_get_int("MonitorXPos", &xpos);
+ resources_get_int("MonitorYPos", &ypos);
if (xpos == INT_MIN || ypos == INT_MIN) {
/* Only center if we didn't get either a previous position or
* the position was set via the command line.
@@ -1291,6 +1291,9 @@
*/
gtk_window_set_position(GTK_WINDOW(fixed.window), GTK_WIN_POS_CENTER);
}
+ /* Set the gravity so that gtk doesn't over-compensate for the
+ * window's border width when saving/restoring its position. */
+ gtk_window_set_gravity(GTK_WINDOW(fixed.window), GDK_GRAVITY_STATIC);
gtk_widget_set_app_paintable(fixed.window, TRUE);
gtk_window_set_deletable(GTK_WINDOW(fixed.window), TRUE);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gp...@us...> - 2024-11-29 23:26:59
|
Revision: 45384
http://sourceforge.net/p/vice-emu/code/45384
Author: gpz
Date: 2024-11-29 23:26:56 +0000 (Fri, 29 Nov 2024)
Log Message:
-----------
disable debug
Modified Paths:
--------------
trunk/vice/src/gfxoutputdrv/ffmpegexedrv.c
Modified: trunk/vice/src/gfxoutputdrv/ffmpegexedrv.c
===================================================================
--- trunk/vice/src/gfxoutputdrv/ffmpegexedrv.c 2024-11-29 20:41:07 UTC (rev 45383)
+++ trunk/vice/src/gfxoutputdrv/ffmpegexedrv.c 2024-11-29 23:26:56 UTC (rev 45384)
@@ -55,8 +55,6 @@
/* #define DEBUG_FFMPEG */
/* #define DEBUG_FFMPEG_FRAMES */
-#define DEBUG_FFMPEG
-#define DEBUG_FFMPEG_FRAMES
#include "vice.h"
@@ -1309,7 +1307,6 @@
}
/*DBGFRAMES(("ffmpegexedrv_record (%u)", framecounter));*/
- DBGFRAMES(("ffmpegexedrv_record (%u)", framecounter));
video_fill_rgb_image(screenshot, video_st_frame);
if (write_video_frame(video_st_frame) < 0) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rh...@us...> - 2024-11-29 20:41:11
|
Revision: 45383
http://sourceforge.net/p/vice-emu/code/45383
Author: rhialto
Date: 2024-11-29 20:41:07 +0000 (Fri, 29 Nov 2024)
Log Message:
-----------
Call gfxoutput_init_ffmpegexe() after gfxoutput_init_ffmpeg() instead of before.
The former uses ffmpegdrv_formatlist which is initialized by the latter,
so if both are present, the latter one needs to be called first.
Modified Paths:
--------------
trunk/vice/src/gfxoutputdrv/ffmpegexedrv.c
trunk/vice/src/gfxoutputdrv/gfxoutput.c
Modified: trunk/vice/src/gfxoutputdrv/ffmpegexedrv.c
===================================================================
--- trunk/vice/src/gfxoutputdrv/ffmpegexedrv.c 2024-11-29 16:54:40 UTC (rev 45382)
+++ trunk/vice/src/gfxoutputdrv/ffmpegexedrv.c 2024-11-29 20:41:07 UTC (rev 45383)
@@ -55,6 +55,8 @@
/* #define DEBUG_FFMPEG */
/* #define DEBUG_FFMPEG_FRAMES */
+#define DEBUG_FFMPEG
+#define DEBUG_FFMPEG_FRAMES
#include "vice.h"
@@ -1307,6 +1309,7 @@
}
/*DBGFRAMES(("ffmpegexedrv_record (%u)", framecounter));*/
+ DBGFRAMES(("ffmpegexedrv_record (%u)", framecounter));
video_fill_rgb_image(screenshot, video_st_frame);
if (write_video_frame(video_st_frame) < 0) {
Modified: trunk/vice/src/gfxoutputdrv/gfxoutput.c
===================================================================
--- trunk/vice/src/gfxoutputdrv/gfxoutput.c 2024-11-29 16:54:40 UTC (rev 45382)
+++ trunk/vice/src/gfxoutputdrv/gfxoutput.c 2024-11-29 20:41:07 UTC (rev 45383)
@@ -115,10 +115,10 @@
/* video related */
gfxoutput_init_zmbv(help);
- gfxoutput_init_ffmpegexe(help);
#ifdef HAVE_FFMPEG
gfxoutput_init_ffmpeg(help);
#endif
+ gfxoutput_init_ffmpegexe(help);
/* C64 formats */
gfxoutput_init_godot(help);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|