Menu

#1405 Binary monitor interface issues with a debugger

v3.5
closed-invalid
None
Windows
x64sc
2021-01-06
2021-01-02
No
  • I'm using the public Windows 64 build of VICE 3.5
  • on Windows 10
  • I made a debugger for the new binary monitor protocol
  • It kind of works a little
  • I expected it to work a little more

So for example requesting get memory usually doesn't respond right away so if any requests don't get returned within 10 frames (at 60 fps) I send a ping and eventually I get a response.

When doing step commands I would expect to get a stopped response but only get a resume response, occasionally it steps two steps, sometimes no steps.

It is possible I'm doing something wrong but it works well enough that I don't think so. Here is a log of an exchange where it connects, stops, steps a little. Pings are only sent when a response was expected and didn't happen. The request IDs are shown so the events can be followed. The early debugger is here if it helps (linux build in slow progress, this is for windows) https://drive.google.com/file/d/1bE3ARu_WytRAAimveNyXvJqabcFCpcWS/view?usp=sharing

Send cmd: $31 (RegistersGet) ReqID: 1000 len: 0c / 0c

Got resp: $31 (RegistersGet) ReqID:ffffffff

PC=$e5d1 A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$0000
Got resp: $62 (Stopped) ReqID:ffffffff

Stop/Resume PC=$e5d1
Got resp: $31 (RegistersGet) ReqID:1000

PC=$e5d1 A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$0000
Requested VICE Memory $0400-$05ca

Send cmd: $01 (MemGet) ReqID: 1001 len: 13 / 13

Requested VICE Memory $ea31-$ea4b

Send cmd: $01 (MemGet) ReqID: 1002 len: 13 / 13

No response for:1001, 1002. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1003 len: 0b / 0b

No response for:1001, 1002. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1004 len: 0b / 0b

Got resp: $01 (MemGet) ReqID:1001

updating $0400-$05ca mem/bank:0/0
Got resp: $01 (MemGet) ReqID:1002

updating $ea31-$ea4b mem/bank:0/0
Got resp: $81 (Ping) ReqID:1003

Got resp: $81 (Ping) ReqID:1004

Requested VICE Memory $ea4c-$ea5a

Send cmd: $01 (MemGet) ReqID: 1005 len: 13 / 13

No response for:1005. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1006 len: 0b / 0b

No response for:1005. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1007 len: 0b / 0b

Got resp: $01 (MemGet) ReqID:1005

updating $ea4c-$ea5a mem/bank:0/0
Got resp: $81 (Ping) ReqID:1006

Requested VICE Memory $ea5b-$ea63

Send cmd: $01 (MemGet) ReqID: 1008 len: 13 / 13

No response for:1008. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1009 len: 0b / 0b

No response for:1008. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 100a len: 0b / 0b

Got resp: $81 (Ping) ReqID:1007

Got resp: $01 (MemGet) ReqID:1008

updating $ea5b-$ea63 mem/bank:0/0
Got resp: $81 (Ping) ReqID:1009

Requested VICE Memory $ea64-$ea68

Send cmd: $01 (MemGet) ReqID: 100b len: 13 / 13

No response for:100b. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 100c len: 0b / 0b

No response for:100b. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 100d len: 0b / 0b

Got resp: $81 (Ping) ReqID:100a

Got resp: $01 (MemGet) ReqID:100b

updating $ea64-$ea68 mem/bank:0/0
Got resp: $81 (Ping) ReqID:100c

Got resp: $81 (Ping) ReqID:100d

Requested VICE Memory $ea69-$ea69

Send cmd: $01 (MemGet) ReqID: 100e len: 13 / 13

No response for:100e. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 100f len: 0b / 0b

No response for:100e. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1010 len: 0b / 0b

Got resp: $01 (MemGet) ReqID:100e

updating $ea69-$ea69 mem/bank:0/0
Got resp: $81 (Ping) ReqID:100f

Got resp: $81 (Ping) ReqID:1010

Requested VICE Memory $ea29-$ea30

Send cmd: $01 (MemGet) ReqID: 1011 len: 13 / 13

Got resp: $01 (MemGet) ReqID:1011

updating $ea29-$ea30 mem/bank:0/0
Send cmd: $71 (Step) ReqID: 1012 len: 0e / 0e

Got resp: $71 (Step) ReqID:1012

Got resp: $63 (Resumed) ReqID:ffffffff

Stop/Resume PC=$e5d1
Treating Resume to mean Stopped
Send cmd: $71 (Step) ReqID: 1013 len: 0e / 0e

Got resp: $31 (RegistersGet) ReqID:ffffffff

PC=$e5d4 A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$0004
Got resp: $62 (Stopped) ReqID:ffffffff

Stop/Resume PC=$e5d4
Requested VICE Memory $0400-$05ca

Send cmd: $01 (MemGet) ReqID: 1014 len: 13 / 13

Requested VICE Memory $ea29-$ea69

Send cmd: $01 (MemGet) ReqID: 1015 len: 13 / 13

No response for:1013, 1014, 1015. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1016 len: 0b / 0b

No response for:1013, 1014, 1015. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1017 len: 0b / 0b

No response for:1013, 1014, 1015. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1018 len: 0b / 0b

Got resp: $71 (Step) ReqID:1013

Got resp: $63 (Resumed) ReqID:ffffffff

Stop/Resume PC=$e5d4
Got resp: $31 (RegistersGet) ReqID:ffffffff

PC=$e5cd A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$0007
Got resp: $62 (Stopped) ReqID:ffffffff

Stop/Resume PC=$e5cd
Got resp: $01 (MemGet) ReqID:1014

updating $0400-$05ca mem/bank:0/0
Got resp: $01 (MemGet) ReqID:1015

updating $ea29-$ea69 mem/bank:0/0
Requested VICE Memory $0400-$05ca

Send cmd: $01 (MemGet) ReqID: 1019 len: 13 / 13

Requested VICE Memory $ea29-$ea69

Send cmd: $01 (MemGet) ReqID: 101a len: 13 / 13

No response for:1019, 101a. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 101b len: 0b / 0b

No response for:1019, 101a. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 101c len: 0b / 0b

Got resp: $81 (Ping) ReqID:1016

Got resp: $81 (Ping) ReqID:1017

Got resp: $81 (Ping) ReqID:1018

Got resp: $01 (MemGet) ReqID:1019

updating $0400-$05ca mem/bank:0/0
No response for:101a. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 101d len: 0b / 0b

No response for:101a. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 101e len: 0b / 0b

No response for:101a. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 101f len: 0b / 0b

Got resp: $01 (MemGet) ReqID:101a

updating $ea29-$ea69 mem/bank:0/0
Got resp: $81 (Ping) ReqID:101b

Got resp: $81 (Ping) ReqID:101c

Send cmd: $71 (Step) ReqID: 1020 len: 0e / 0e

No response for:1020. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1021 len: 0b / 0b

Got resp: $81 (Ping) ReqID:101d

Got resp: $81 (Ping) ReqID:101e

Got resp: $81 (Ping) ReqID:101f

No response for:1020. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1022 len: 0b / 0b

No response for:1020. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1023 len: 0b / 0b

No response for:1020. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1024 len: 0b / 0b

Got resp: $71 (Step) ReqID:1020

Got resp: $63 (Resumed) ReqID:ffffffff

Stop/Resume PC=$e5cd
Treating Resume to mean Stopped
Got resp: $31 (RegistersGet) ReqID:ffffffff

PC=$e5cf A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$000a
Send cmd: $71 (Step) ReqID: 1025 len: 0e / 0e

No response for:1025. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1026 len: 0b / 0b

Got resp: $62 (Stopped) ReqID:ffffffff

Stop/Resume PC=$e5cf
Got resp: $81 (Ping) ReqID:1021

Got resp: $81 (Ping) ReqID:1022

Requested VICE Memory $0400-$05ca

Send cmd: $01 (MemGet) ReqID: 1027 len: 13 / 13

Requested VICE Memory $ea29-$ea69

Send cmd: $01 (MemGet) ReqID: 1028 len: 13 / 13

No response for:1025, 1027, 1028. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1029 len: 0b / 0b

No response for:1025, 1027, 1028. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 102a len: 0b / 0b

No response for:1025, 1027, 1028. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 102b len: 0b / 0b

Got resp: $81 (Ping) ReqID:1023

Got resp: $81 (Ping) ReqID:1024

Got resp: $71 (Step) ReqID:1025

Got resp: $63 (Resumed) ReqID:ffffffff

Stop/Resume PC=$e5cf
Got resp: $31 (RegistersGet) ReqID:ffffffff

PC=$e5d1 A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$000d
Got resp: $62 (Stopped) ReqID:ffffffff

Stop/Resume PC=$e5d1
No response for:1027, 1028. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 102c len: 0b / 0b

No response for:1027, 1028. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 102d len: 0b / 0b

No response for:1027, 1028. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 102e len: 0b / 0b

Got resp: $81 (Ping) ReqID:1026

Got resp: $01 (MemGet) ReqID:1027

updating $0400-$05ca mem/bank:0/0
Got resp: $01 (MemGet) ReqID:1028

updating $ea29-$ea69 mem/bank:0/0
Send cmd: $aa (Exit) ReqID: 102f len: 0b / 0b

No response for:102f. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1030 len: 0b / 0b

Got resp: $81 (Ping) ReqID:1029

Got resp: $81 (Ping) ReqID:102a

Got resp: $81 (Ping) ReqID:102b

Got resp: $81 (Ping) ReqID:102c

Got resp: $81 (Ping) ReqID:102d

No response for:102f. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1031 len: 0b / 0b

No response for:102f. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1032 len: 0b / 0b

No response for:102f. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1033 len: 0b / 0b

Got resp: $81 (Ping) ReqID:102e

Got resp: $aa (Exit) ReqID:102f

Got resp: $63 (Resumed) ReqID:ffffffff

Stop/Resume PC=$e5d1
Send cmd: $31 (RegistersGet) ReqID: 1034 len: 0c / 0c

Got resp: $31 (RegistersGet) ReqID:ffffffff

PC=$e5cf A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$0001
Got resp: $62 (Stopped) ReqID:ffffffff

Stop/Resume PC=$e5cf
Requested VICE Memory $0400-$05ca

Send cmd: $01 (MemGet) ReqID: 1035 len: 13 / 13

Requested VICE Memory $ea29-$ea69

Send cmd: $01 (MemGet) ReqID: 1036 len: 13 / 13

No response for:1034, 1035, 1036. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1037 len: 0b / 0b

No response for:1034, 1035, 1036. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1038 len: 0b / 0b

No response for:1034, 1035, 1036. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1039 len: 0b / 0b

Got resp: $81 (Ping) ReqID:1030

Got resp: $81 (Ping) ReqID:1031

Got resp: $81 (Ping) ReqID:1032

Got resp: $81 (Ping) ReqID:1033

Got resp: $31 (RegistersGet) ReqID:1034

PC=$e5cf A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$0001
Got resp: $01 (MemGet) ReqID:1035

updating $0400-$05ca mem/bank:0/0
No response for:1036. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 103a len: 0b / 0b

No response for:1036. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 103b len: 0b / 0b

No response for:1036. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 103c len: 0b / 0b

Got resp: $01 (MemGet) ReqID:1036

updating $ea29-$ea69 mem/bank:0/0
Got resp: $81 (Ping) ReqID:1037

Got resp: $81 (Ping) ReqID:1038

Send cmd: $71 (Step) ReqID: 103d len: 0e / 0e

No response for:103d. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 103e len: 0b / 0b

Got resp: $81 (Ping) ReqID:1039

Got resp: $81 (Ping) ReqID:103a

Got resp: $81 (Ping) ReqID:103b

No response for:103d. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 103f len: 0b / 0b

No response for:103d. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1040 len: 0b / 0b

Got resp: $81 (Ping) ReqID:103c

Got resp: $71 (Step) ReqID:103d

Requested VICE Memory $e5cc-$e5ce

Send cmd: $01 (MemGet) ReqID: 1041 len: 13 / 13

No response for:1041. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1042 len: 0b / 0b

Got resp: $63 (Resumed) ReqID:ffffffff

Stop/Resume PC=$e5cf
Treating Resume to mean Stopped
Got resp: $31 (RegistersGet) ReqID:ffffffff

PC=$e5d1 A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$0004
Got resp: $62 (Stopped) ReqID:ffffffff

Stop/Resume PC=$e5d1
No response for:1041. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1043 len: 0b / 0b

No response for:1041. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1044 len: 0b / 0b

No response for:1041. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1045 len: 0b / 0b

Got resp: $81 (Ping) ReqID:103e

Got resp: $81 (Ping) ReqID:103f

Got resp: $81 (Ping) ReqID:1040

No response for:1041. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1046 len: 0b / 0b

No response for:1041. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1047 len: 0b / 0b

Got resp: $01 (MemGet) ReqID:1041

updating $e5cc-$e5ce mem/bank:0/0
Got resp: $81 (Ping) ReqID:1042

Requested VICE Memory $0400-$05ca

Send cmd: $01 (MemGet) ReqID: 1048 len: 13 / 13

Requested VICE Memory $e5cf-$e5e8

Send cmd: $01 (MemGet) ReqID: 1049 len: 13 / 13

Requested VICE Memory $ea29-$ea69

Send cmd: $01 (MemGet) ReqID: 104a len: 13 / 13

No response for:1048, 1049, 104a. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 104b len: 0b / 0b

No response for:1048, 1049, 104a. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 104c len: 0b / 0b

Got resp: $81 (Ping) ReqID:1043

Got resp: $81 (Ping) ReqID:1044

Got resp: $81 (Ping) ReqID:1045

Got resp: $81 (Ping) ReqID:1046

Got resp: $81 (Ping) ReqID:1047

No response for:1048, 1049, 104a. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 104d len: 0b / 0b

No response for:1048, 1049, 104a. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 104e len: 0b / 0b

No response for:1048, 1049, 104a. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 104f len: 0b / 0b

Got resp: $01 (MemGet) ReqID:1048

updating $0400-$05ca mem/bank:0/0
Got resp: $01 (MemGet) ReqID:1049

updating $e5cf-$e5e8 mem/bank:0/0
Got resp: $01 (MemGet) ReqID:104a

updating $ea29-$ea69 mem/bank:0/0
Requested VICE Memory $e5e9-$e5f6

Send cmd: $01 (MemGet) ReqID: 1050 len: 13 / 13

No response for:1050. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1051 len: 0b / 0b

No response for:1050. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1052 len: 0b / 0b

Got resp: $81 (Ping) ReqID:104b

Got resp: $81 (Ping) ReqID:104c

Got resp: $81 (Ping) ReqID:104d

Got resp: $81 (Ping) ReqID:104e

No response for:1050. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1053 len: 0b / 0b

No response for:1050. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1054 len: 0b / 0b

No response for:1050. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1055 len: 0b / 0b

Got resp: $81 (Ping) ReqID:104f

Got resp: $01 (MemGet) ReqID:1050

updating $e5e9-$e5f6 mem/bank:0/0
Got resp: $81 (Ping) ReqID:1051

Requested VICE Memory $e5f7-$e5fe

Send cmd: $01 (MemGet) ReqID: 1056 len: 13 / 13

No response for:1056. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1057 len: 0b / 0b

No response for:1056. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1058 len: 0b / 0b

Got resp: $81 (Ping) ReqID:1052

Got resp: $81 (Ping) ReqID:1053

Got resp: $81 (Ping) ReqID:1054

No response for:1056. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1059 len: 0b / 0b

No response for:1056. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 105a len: 0b / 0b

No response for:1056. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 105b len: 0b / 0b

Got resp: $81 (Ping) ReqID:1055

Got resp: $01 (MemGet) ReqID:1056

updating $e5f7-$e5fe mem/bank:0/0
Got resp: $81 (Ping) ReqID:1057

Requested VICE Memory $e5ff-$e600

Send cmd: $01 (MemGet) ReqID: 105c len: 13 / 13

No response for:105c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 105d len: 0b / 0b

No response for:105c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 105e len: 0b / 0b

Got resp: $81 (Ping) ReqID:1058

Got resp: $81 (Ping) ReqID:1059

Got resp: $81 (Ping) ReqID:105a

No response for:105c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 105f len: 0b / 0b

No response for:105c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1060 len: 0b / 0b

No response for:105c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1061 len: 0b / 0b

Got resp: $81 (Ping) ReqID:105b

Got resp: $01 (MemGet) ReqID:105c

updating $e5ff-$e600 mem/bank:0/0
Got resp: $81 (Ping) ReqID:105d

Requested VICE Memory $e601-$e605

Send cmd: $01 (MemGet) ReqID: 1062 len: 13 / 13

Got resp: $81 (Ping) ReqID:105e

No response for:1062. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1063 len: 0b / 0b

No response for:1062. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1064 len: 0b / 0b

Got resp: $81 (Ping) ReqID:105f

Got resp: $81 (Ping) ReqID:1060

No response for:1062. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1065 len: 0b / 0b

No response for:1062. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1066 len: 0b / 0b

No response for:1062. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1067 len: 0b / 0b

Got resp: $81 (Ping) ReqID:1061

Got resp: $01 (MemGet) ReqID:1062

updating $e601-$e605 mem/bank:0/0
Got resp: $81 (Ping) ReqID:1063

Requested VICE Memory $e606-$e606

Send cmd: $01 (MemGet) ReqID: 1068 len: 13 / 13

No response for:1068. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1069 len: 0b / 0b

No response for:1068. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 106a len: 0b / 0b

Got resp: $81 (Ping) ReqID:1064

Got resp: $81 (Ping) ReqID:1065

Got resp: $81 (Ping) ReqID:1066

Got resp: $81 (Ping) ReqID:1067

No response for:1068. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 106b len: 0b / 0b

No response for:1068. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 106c len: 0b / 0b

No response for:1068. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 106d len: 0b / 0b

Got resp: $01 (MemGet) ReqID:1068

updating $e606-$e606 mem/bank:0/0
Got resp: $81 (Ping) ReqID:1069

Got resp: $81 (Ping) ReqID:106a

Send cmd: $71 (Step) ReqID: 106e len: 0e / 0e

No response for:106e. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 106f len: 0b / 0b

Got resp: $81 (Ping) ReqID:106b

Got resp: $81 (Ping) ReqID:106c

Got resp: $81 (Ping) ReqID:106d

No response for:106e. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1070 len: 0b / 0b

No response for:106e. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1071 len: 0b / 0b

No response for:106e. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1072 len: 0b / 0b

Got resp: $71 (Step) ReqID:106e

Got resp: $63 (Resumed) ReqID:ffffffff

Stop/Resume PC=$e5d1
Treating Resume to mean Stopped
Got resp: $31 (RegistersGet) ReqID:ffffffff

PC=$e5d4 A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$0008
Send cmd: $71 (Step) ReqID: 1073 len: 0e / 0e

No response for:1073. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1074 len: 0b / 0b

No response for:1073. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1075 len: 0b / 0b

Got resp: $62 (Stopped) ReqID:ffffffff

Stop/Resume PC=$e5d4
Got resp: $81 (Ping) ReqID:106f

Got resp: $81 (Ping) ReqID:1070

Got resp: $81 (Ping) ReqID:1071

Requested VICE Memory $0400-$05ca

Send cmd: $01 (MemGet) ReqID: 1076 len: 13 / 13

Requested VICE Memory $e5cc-$e606

Send cmd: $01 (MemGet) ReqID: 1077 len: 13 / 13

Requested VICE Memory $ea29-$ea69

Send cmd: $01 (MemGet) ReqID: 1078 len: 13 / 13

No response for:1073, 1076, 1077, 1078. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1079 len: 0b / 0b

No response for:1073, 1076, 1077, 1078. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 107a len: 0b / 0b

Got resp: $81 (Ping) ReqID:1072

Got resp: $71 (Step) ReqID:1073

Got resp: $63 (Resumed) ReqID:ffffffff

Stop/Resume PC=$e5d4
Got resp: $31 (RegistersGet) ReqID:ffffffff

PC=$e5cd A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$000b
Got resp: $62 (Stopped) ReqID:ffffffff

Stop/Resume PC=$e5cd
No response for:1076, 1077, 1078. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 107b len: 0b / 0b

No response for:1076, 1077, 1078. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 107c len: 0b / 0b

No response for:1076, 1077, 1078. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 107d len: 0b / 0b

Got resp: $81 (Ping) ReqID:1074

Got resp: $81 (Ping) ReqID:1075

Got resp: $01 (MemGet) ReqID:1076

updating $0400-$05ca mem/bank:0/0
No response for:1077, 1078. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 107e len: 0b / 0b

No response for:1077, 1078. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 107f len: 0b / 0b

No response for:1077, 1078. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1080 len: 0b / 0b

Got resp: $01 (MemGet) ReqID:1077

updating $e5cc-$e606 mem/bank:0/0
Got resp: $01 (MemGet) ReqID:1078

updating $ea29-$ea69 mem/bank:0/0
Got resp: $81 (Ping) ReqID:1079

Send cmd: $71 (Step) ReqID: 1081 len: 0e / 0e

Got resp: $81 (Ping) ReqID:107a

Got resp: $81 (Ping) ReqID:107b

No response for:1081. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1082 len: 0b / 0b

No response for:1081. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1083 len: 0b / 0b

No response for:1081. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1084 len: 0b / 0b

Got resp: $81 (Ping) ReqID:107c

Got resp: $81 (Ping) ReqID:107d

Got resp: $81 (Ping) ReqID:107e

No response for:1081. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1085 len: 0b / 0b

No response for:1081. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1086 len: 0b / 0b

No response for:1081. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1087 len: 0b / 0b

Got resp: $81 (Ping) ReqID:107f

Got resp: $81 (Ping) ReqID:1080

Got resp: $71 (Step) ReqID:1081

Send cmd: $71 (Step) ReqID: 1088 len: 0e / 0e

No response for:1088. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1089 len: 0b / 0b

Got resp: $63 (Resumed) ReqID:ffffffff

Stop/Resume PC=$e5cd
Treating Resume to mean Stopped
Got resp: $31 (RegistersGet) ReqID:ffffffff

PC=$e5cf A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$000e
Got resp: $62 (Stopped) ReqID:ffffffff

Stop/Resume PC=$e5cf
Requested VICE Memory $0400-$05ca

Send cmd: $01 (MemGet) ReqID: 108a len: 13 / 13

Requested VICE Memory $e5cc-$e606

Send cmd: $01 (MemGet) ReqID: 108b len: 13 / 13

Requested VICE Memory $ea29-$ea69

Send cmd: $01 (MemGet) ReqID: 108c len: 13 / 13

No response for:1088, 108a, 108b, 108c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 108d len: 0b / 0b

No response for:1088, 108a, 108b, 108c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 108e len: 0b / 0b

No response for:1088, 108a, 108b, 108c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 108f len: 0b / 0b

Got resp: $81 (Ping) ReqID:1082

Got resp: $81 (Ping) ReqID:1083

Got resp: $81 (Ping) ReqID:1084

Got resp: $81 (Ping) ReqID:1085

Got resp: $81 (Ping) ReqID:1086

Got resp: $81 (Ping) ReqID:1087

Got resp: $71 (Step) ReqID:1088

No response for:108a, 108b, 108c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1090 len: 0b / 0b

No response for:108a, 108b, 108c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1091 len: 0b / 0b

No response for:108a, 108b, 108c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1092 len: 0b / 0b

Got resp: $63 (Resumed) ReqID:ffffffff

Stop/Resume PC=$e5cf
Got resp: $31 (RegistersGet) ReqID:ffffffff

PC=$e5d1 A=$00 X=$00 Y=$0a SP=$f3 00=$2f 01=$37 FL=$22 LIN=$0000 CYC=$0011
Got resp: $62 (Stopped) ReqID:ffffffff

Stop/Resume PC=$e5d1
No response for:108a, 108b, 108c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1093 len: 0b / 0b

No response for:108a, 108b, 108c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1094 len: 0b / 0b

No response for:108a, 108b, 108c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1095 len: 0b / 0b

Got resp: $81 (Ping) ReqID:1089

Got resp: $01 (MemGet) ReqID:108a

updating $0400-$05ca mem/bank:0/0
Got resp: $01 (MemGet) ReqID:108b

updating $e5cc-$e606 mem/bank:0/0
No response for:108c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1096 len: 0b / 0b

No response for:108c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1097 len: 0b / 0b

No response for:108c. Sending Ping to VICE
Send cmd: $81 (Ping) ReqID: 1098 len: 0b / 0b

Got resp: $01 (MemGet) ReqID:108c

updating $ea29-$ea69 mem/bank:0/0
Got resp: $81 (Ping) ReqID:108d

Got resp: $81 (Ping) ReqID:108e

Discussion

  • gpz

    gpz - 2021-01-02
    • assigned_to: Empathic Qubit
     
  • gpz

    gpz - 2021-01-02

    would help to see the source :)

    are you making a new connection for each command perhaps? that can behave very odd, especially on windows.

     
  • Empathic Qubit

    Empathic Qubit - 2021-01-03

    I have no ability to test on Windows for a while, unfortunately, but gpz's suggestions seem like a good place to start. I'm also writing a debugger using the connection and it seems to be working consistently for me.

     

    Last edit: Empathic Qubit 2021-01-03
  • Carl-Henrik Skårstedt

    Made the debugger repo public, it is just started so lots of things to fix but solving the connection issue is required to move forward: https://github.com/Sakrac/IceBroLite

    In ViceInterface.cpp around line 280 you can find void ViceConnection::connectionThread() (https://github.com/Sakrac/IceBroLite/blob/main/src/ViceInterface.cpp#L279), it opens a connection and immediately sends a command to stop Vice which works ok except I need to ping to get the memory refreshed. If I've made any mistakes with the connection itself it should be obvious from the first few lines. If it looks good then I'm hoping the output is useful.

    The linux port is not that far off, primarily replacing winsock and setting up makefiles I think, but want it working in windows first.

     
  • Empathic Qubit

    Empathic Qubit - 2021-01-06

    Is there a way I can run the program with software OpenGL? I'm using a free tier AWS instance, but hardware OpenGL doesn't work over remote.

     
  • Empathic Qubit

    Empathic Qubit - 2021-01-06

    What I was going to try is just to run it and look at the loopback communication with Wireshark and npcap to see what it was really doing. If you can figure that out it might help you.

     
  • Carl-Henrik Skårstedt

    I tried to look up GLFW and software OpenGL for windows, sounds like it should work if there is a software OpenGL driver installed.
    But I have ported the tool to linux, just run make in the src folder. It works visually but I need to build vice 3.5 on my Pi 400 to make sure it can communicate at all.
    I'll try to simplify the messaging thread, I no longer need to wait for a response to keep track of which command I sent to VICE to match it with the returned string. I'll look up the tools you suggested.

     
  • Empathic Qubit

    Empathic Qubit - 2021-01-06

    I thought the issue was with Windows though, that's why I was trying to build it there. I was also going to try the test suite on WIndows. You say it works on Linux?

     
  • Carl-Henrik Skårstedt

    I have just ported it to Linux, previously it only ran on Windows so there wasn't a problem on Linux :) But I have not built VICE 3.5 on Linux yet to test it.

     
  • Empathic Qubit

    Empathic Qubit - 2021-01-06

    I don't know if it will help, but I have a project at https://github.com/empathicqubit/vscode-cc65-vice-debug which is the one that seems to be working. I haven't tested it on Windows recently, but it did work before. It's a little complicated to set up, but maybe looking at it will help you figure out how to make yours work. The part that communicates with VICE is in src/vice-grip.ts. The interesting bits are in the start() and multiExecBinary() functions. Start should give you an idea of how the connection is initiated, and multiExecBinary is how the actual command is processed. Multiple commands can go separately or in batches, with the caveat that having multiple independent threads will cause problems unless managed carefully because the emulator will stop any time a command gets sent.

     
  • Carl-Henrik Skårstedt

    Thanks for the example! It showed me that it should just work as is and I found I had used an if where I should have used a while. This looks like it was my fault and the issue can be closed. At least I got the linux port going!

     
  • Empathic Qubit

    Empathic Qubit - 2021-01-06

    Glad you tracked it down. I verified the test suite on Windows and they seem to be working also.

     
  • Empathic Qubit

    Empathic Qubit - 2021-01-06
    • status: open --> closed-invalid
     

Log in to post a comment.

MongoDB Logo MongoDB