I can't duplicate the problem consistently, at least not with my own
modified version.
https://github.com/bkw777/SD2TPDD/tree/bkw_al32u4
("bkw_al32u4" branch)
I DO see a file change, always in the same way, but only a certain BA
file, AND, I see that file change the same way with bot dlplus and
laddiealpha
If I create a text file ABCD.DO only containing "1234" I can copy it to
the SD card, and then look at the SD card on linux, the file is good.
So that tests going from M100 to SD.
If I copy the file from the SD card to the M100 vi arduino, and then
copy the file from the M100 to linux via dlplus, the file is good.
So that tests going from SD to M100 (assuming we trust dlplus, which I
do, plus see later).
Same goes for ABCD.BA containing "10'1234"
But if I take MENU.BA v 2.01 (PG Designs ram expansion util)
First few bytes of MENU.BA, original, copied directly to the SD card on
linux.
-------------------------------------------------------
0x0B6
0x080
0x000
0x000
...
MENU.BA copied from SD to M100 via Arduino, then copied from M100 back
to Linux via dlpus
-------------------------------------------------------
0x140
0x000
0x000
...
But I get the same change when I put a good original copy on linux, and
then copy it to the M100 using dlplus, and then back to linux in another
dir by dlplus.
And I get the same change when I start over and copy from linux to M100
and back with LaddieAlpha.
So, whatever that is, it's not related to SD2TPDD.
There does seem to be something weird with SD2TPDD though (at least my
hacked-up version).
If I enable debugging to the serial console, reading a file from SD to
M100 generates traffic that looks questionable.
There's a packet that repeats a bunch of times that looks like it has
the filename minus the first letter. No idea what that's about. Almost
looks like it's doing that operation wrong, and TS-DOS is retrying a
bunch of times before giving up.
The reverse operation, writing the same file from M100 to SD, generated
far fewer packets, and didn't have any packets that looked like missing
the first letter of the filename.
Search "###", or "loop()" to skip ahead to each break point or each
iteration of loop().
The code that generated this is:
https://github.com/bkw777/SD2TPDD/tree/bkw_al32u4
(note, "bkw_al32u4" branch, not master)
With: #define DEBUG 2
###############################################################
# Power-On
# if debugging is enabled, it lists all files in all directories
# to the debug console
###############################################################
-----------[ SD2TPDD setup() ]------------
Opening SD card...OK.
--- printDirectory(root,0) start ---
GAMES/
--- printDirectory(GAMES,1) start ---
SEXFUN.DO 1638
SHUTTL.DO 5312
HEX.DO 2038
A-DUEL.DO 4997
FOXFGT.DO 2855
TSWEEP.BA 3316
TREK.BA 9434
--- printDirectory(GAMES,1) end ---
PGDSGN/
--- printDirectory(PGDSGN,1) start ---
INVIS0.BA 981
MENU.BA 3102
--- printDirectory(PGDSGN,1) end ---
UTIL/
--- printDirectory(UTIL,1) start ---
CO-RUN.DO 1229
SANDR.DO 2048
RUN-CO.DO 400
OHMLAW.BA 2515
OHMLAW.DO 3204
COMM/
--- printDirectory(COMM,2) start ---
RS232/
--- printDirectory(RS232,3) start ---
RS232.DO 1505
--- printDirectory(RS232,3) end ---
--- printDirectory(COMM,2) end ---
DISK/
--- printDirectory(DISK,2) start ---
DVI/
--- printDirectory(DVI,3) start ---
--- printDirectory(DVI,3) end ---
CHPMNK/
--- printDirectory(CHPMNK,3) start ---
--- printDirectory(CHPMNK,3) end ---
TPDD/
--- printDirectory(TPDD,3) start ---
--- printDirectory(TPDD,3) end ---
--- printDirectory(DISK,2) end ---
--- printDirectory(UTIL,1) end ---
DOS100.CO 5791
LOADER.BA 2521
TSTCPY/
--- printDirectory(TSTCPY,1) start ---
MENU.BA 3102
--- printDirectory(TSTCPY,1) end ---
BARCOD/
--- printDirectory(BARCOD,1) start ---
READBC.BA 604
B3OF9.BA 2611
BPLESY.BA 2611
BUPC.BA 2605
--- printDirectory(BARCOD,1) end ---
VT100/
--- printDirectory(VT100,1) start ---
VT100.EXE 51122
DEFKEY.BA 1105
DIRACC.BA 1447
DIRPOK.BA 616
SETUP.BA 1522
SXM.BA 3560
SXMACC.CO 98
SXMDOC.DO 9382
SXMLDR.BA 1051
SXMMRG.DO 550
VT100.CO 3413
VT100D.CO 3565
VTDOC1.DO 13185
VTDOC2.DO 12182
VTDOC3.DO 15410
VTDOC4.DO 15044
VTDOC5.DO 2100
VTLDR.BA 8303
VTSXM.CO 3505
--- printDirectory(VT100,1) end ---
VIEW80/
--- printDirectory(VIEW80,1) start ---
VIEW80.EXE 7797
DRIVER.CO 3867
MEMMGR.BA 1562
README.DO 413
RUN-TV.BA 486
T-VIEW.BA 876
V80-QR.TXT 2747
BKWJNK.DO 860
--- printDirectory(VIEW80,1) end ---
TEENY.DO 5003
TEENY.BA 2521
DDOC.DO 7421
D.BA 4028
TA100.BA 9414
TA100.DO 592
CARD2.DO 0
--- printDirectory(root,0) end ---
loop(): start
######################################################################
# Now it's waiting for any activity on serial port RX pin
# at the beginning of loop()
#
# From the M100, save "ABCD.DO" to disk.
######################################################################
A8-A81:4D;M
A9-A82:31;1
AA-A83:D;
AB-A84:5A;Z
AC-A85:5A;Z
AD-A86:8;
AE-A87:0;
AF-A88:F7;
B0-A89:D;
AB=T:8|L:0D
command_DMEReq(): dmeLabel[SD: ]
setLabel(/SD: )
directory[/]
dmeLabel[SD: ]
dmeLabel[SD: ]
B1:AB->B0
loop(): start
B1-B02:D;
B2-B03:4D;M
B3-B04:31;1
B4-B05:D;
B5-B24:5A;Z
B6-B25:5A;Z
B7-B26:7;
B8-B27:0;
B9-B28:F8;
B5=T:7|L:0D
command_status()
return_normal()
R:Norm 0
BA:B5->BA
loop(): start
BA-BA1:4D;M
BB-BA2:31;1
BC-BA3:D;
BD-BA4:5A;Z
BE-BA5:5A;Z
BF-BA6:8;
C0-BA7:0;
C1-BA8:F7;
C2-BA9:D;
BD=T:8|L:0D
command_DMEReq(): dmeLabel[SD: ]
setLabel(/SD: )
directory[/]
dmeLabel[SD: ]
dmeLabel[SD: ]
C3:BD->C2
loop(): start
C3-C22:D;
C4-C23:4D;M
C5-C24:31;1
C6-C25:D;
C7-C44:5A;Z
C8-C45:5A;Z
C9-C46:7;
CA-C47:0;
CB-C48:F8;
C7=T:7|L:0D
command_status()
return_normal()
R:Norm 0
CC:C7->CC
loop(): start
CC-CC1:5A;Z
CD-CC2:5A;Z
CE-CC3:8;
CF-CC4:0;
D0-CC5:F7;
CC=T:8|L:0D
command_DMEReq(): dmeLabel[SD: ]
setLabel(/SD: )
directory[/]
dmeLabel[SD: ]
dmeLabel[SD: ]
D1:CC->D1
loop(): start
D1-D11:5A;Z
D2-D12:5A;Z
D3-D13:0;
D4-D14:1A;
D5-D15:41;A
D6-D16:42;B
D7-D17:43;C
D8-D18:44;D
D9-D19:20;
DA-D1A:20;
DB-D1B:2E;.
DC-D1C:44;D
DD-D1D:4F;O
DE-D1E:20;
DF-D1F:20;
E0-D110:20;
E1-D111:20;
E2-D112:20;
E3-D113:20;
E4-D114:20;
E5-D115:20;
E6-D116:20;
E7-D117:20;
E8-D118:20;
E9-D119:20;
EA-D11A:20;
EB-D11B:20;
EC-D11C:20;
ED-D11D:46;F
EE-D11E:0;
EF-D11F:B4;
D1=T:0|L:1AD
command_reference()
SF:0
Ref: ABCD.DO
directoryAppend(ABCD.DO)
directory[/]
->
directory[/ABCD.DO]
directoryAppend(ABCD.DO) end
return_blank_reference()
R:BRef
upDirectory()
directory[/ABCD.DO]
directory[/]
F0:D1->F0
loop(): start
F0-F01:5A;Z
F1-F02:5A;Z
F2-F03:1;
F3-F04:1;
F4-F05:1;
F5-F06:FC;
F0=T:1|L:1D
command_open()
directoryAppend(ABCD.DO)
directory[/]
->
directory[/ABCD.DO]
directoryAppend(ABCD.DO) end
upDirectory()
directory[/ABCD.DO]
directory[/]
return_normal()
R:Norm 0
F6:F0->F6
loop(): start
F6-F61:5A;Z
F7-F62:5A;Z
F8-F63:4;
F9-F64:4;
FA-F65:31;1
FB-F66:32;2
FC-F67:33;3
FD-F68:34;4
FE-F69:2D;-
F6=T:4|L:4D
command_write()
return_normal()
R:Norm 0
FF:F6->FF
loop(): start
FF-FF1:FF;
0-FF2:5A;Z
1-FF3:2;
2-FF4:0;
3-FF5:FD;
FF=T:2|L:0D
command_close()
return_normal()
R:Norm 0
4:FF->4
loop(): start
########################################################################
# * Delete ABCD.DO from the M100
# * Press F4 to swtch to disk
#
# now copy the file back to the M100...
########################################################################
[...TS-DOS screen populating skipped...]
########################################################################
# Highlight "ABCD.DO" and press F1
########################################################################
B2-B21:4D;M
B3-B22:31;1
B4-B23:D;
B5-B24:5A;Z
B6-B25:5A;Z
B7-B26:8;
B8-B27:0;
B9-B28:F7;
BA-B29:D;
B5=T:8|L:0D
command_DMEReq(): dmeLabel[SD: ]
setLabel(/SD: )
directory[/]
dmeLabel[SD: ]
dmeLabel[SD: ]
BB:B5->BA
loop(): start
BB-BA2:D;
BC-BA3:4D;M
BD-BA4:31;1
BE-BA5:D;
BF-BC4:5A;Z
C0-BC5:5A;Z
C1-BC6:7;
C2-BC7:0;
C3-BC8:F8;
BF=T:7|L:0D
command_status()
return_normal()
R:Norm 0
C4:BF->C4
loop(): start
C4-C41:4D;M
C5-C42:31;1
C6-C43:D;
C7-C44:5A;Z
C8-C45:5A;Z
C9-C46:8;
CA-C47:0;
CB-C48:F7;
CC-C49:D;
C7=T:8|L:0D
command_DMEReq(): dmeLabel[SD: ]
setLabel(/SD: )
directory[/]
dmeLabel[SD: ]
dmeLabel[SD: ]
CD:C7->CC
loop(): start
CD-CC2:D;
CE-CC3:4D;M
CF-CC4:31;1
D0-CC5:D;
D1-CE4:5A;Z
D2-CE5:5A;Z
D3-CE6:7;
D4-CE7:0;
D5-CE8:F8;
D1=T:7|L:0D
command_status()
return_normal()
R:Norm 0
D6:D1->D6
loop(): start
D6-D61:5A;Z
D7-D62:5A;Z
D8-D63:8;
D9-D64:0;
DA-D65:F7;
D6=T:8|L:0D
command_DMEReq(): dmeLabel[SD: ]
setLabel(/SD: )
directory[/]
dmeLabel[SD: ]
dmeLabel[SD: ]
DB:D6->DB
loop(): start
DB-DB1:5A;Z
DC-DB2:5A;Z
DD-DB3:0;
DE-DB4:1A;
DF-DB5:41;A
E0-DB6:42;B
E1-DB7:43;C
E2-DB8:44;D
E3-DB9:20;
E4-DBA:20;
E5-DBB:2E;.
E6-DBC:44;D
E7-DBD:4F;O
E8-DBE:20;
E9-DBF:20;
EA-DB10:20;
EB-DB11:20;
EC-DB12:20;
ED-DB13:20;
EE-DB14:20;
EF-DB15:20;
F0-DB16:20;
F1-DB17:20;
F2-DB18:20;
F3-DB19:20;
F4-DB1A:20;
F5-DB1B:20;
F6-DB1C:20;
F7-DB1D:46;F
F8-DB1E:0;
F9-DB1F:B4;
DB=T:0|L:1AD
command_reference()
SF:0
Ref: ABCD.DO
directoryAppend(ABCD.DO)
directory[/]
->
directory[/ABCD.DO]
directoryAppend(ABCD.DO) end
return_reference()
R:Ref
upDirectory()
directory[/ABCD.DO]
directory[/]
FA:DB->FA
loop(): start
############################################################
# "Load as:_" press Enter
############################################################
FA-FA1:5A;Z
FB-FA2:5A;Z
FC-FA3:1;
FD-FA4:1;
FE-FA5:3;
FF-FA6:FA;
FA=T:1|L:1D
command_open()
directoryAppend(ABCD.DO)
directory[/]
->
directory[/ABCD.DO]
directoryAppend(ABCD.DO) end
upDirectory()
directory[/ABCD.DO]
directory[/]
return_normal()
R:Norm 0
0:FA->0
loop(): start
0-01:5A;Z
1-02:5A;Z
2-03:3;
3-04:0;
4-05:FC;
0=T:3|L:0D
command_read()
A: 0
5:0->5
loop(): start
5-51:5A;Z
6-52:5A;Z
7-53:2;
8-54:0;
9-55:FD;
5=T:2|L:0D
command_close()
return_normal()
R:Norm 0
A:5->A
loop(): start
A-A1:4D;M
B-A2:31;1
C-A3:D;
D-A4:5A;Z
E-A5:5A;Z
F-A6:8;
10-A7:0;
11-A8:F7;
12-A9:D;
D=T:8|L:0D
command_DMEReq(): dmeLabel[SD: ]
setLabel(/SD: )
directory[/]
dmeLabel[SD: ]
dmeLabel[SD: ]
13:D->12
loop(): start
13-122:D;
14-123:4D;M
15-124:31;1
16-125:D;
17-144:5A;Z
18-145:5A;Z
19-146:7;
1A-147:0;
1B-148:F8;
17=T:7|L:0D
command_status()
return_normal()
R:Norm 0
1C:17->1C
loop(): start
1C-1C1:4D;M
1D-1C2:31;1
1E-1C3:D;
1F-1C4:5A;Z
20-1C5:5A;Z
21-1C6:8;
22-1C7:0;
23-1C8:F7;
24-1C9:D;
1F=T:8|L:0D
command_DMEReq(): dmeLabel[SD: ]
setLabel(/SD: )
directory[/]
dmeLabel[SD: ]
dmeLabel[SD: ]
25:1F->24
loop(): start
25-242:D;
26-243:4D;M
27-244:31;1
28-245:D;
29-264:5A;Z
2A-265:5A;Z
2B-266:7;
2C-267:0;
2D-268:F8;
29=T:7|L:0D
command_status()
return_normal()
R:Norm 0
2E:29->2E
loop(): start
2E-2E1:5A;Z
2F-2E2:5A;Z
30-2E3:8;
31-2E4:0;
32-2E5:F7;
2E=T:8|L:0D
command_DMEReq(): dmeLabel[SD: ]
setLabel(/SD: )
directory[/]
dmeLabel[SD: ]
dmeLabel[SD: ]
33:2E->33
loop(): start
33-331:5A;Z
34-332:5A;Z
35-333:0;
36-334:1A;
37-335:3;
38-336:42;B
39-337:43;C
3A-338:44;D
3B-339:20;
3C-33A:20;
3D-33B:2E;.
3E-33C:44;D
3F-33D:4F;O
40-33E:20;
41-33F:20;
42-3310:20;
43-3311:20;
44-3312:20;
45-3313:20;
46-3314:20;
47-3315:20;
48-3316:20;
49-3317:20;
4A-3318:20;
4B-3319:20;
4C-331A:20;
4D-331B:20;
4E-331C:20;
4F-331D:46;F
50-331E:1;
51-331F:F1;
33=T:0|L:1AD
command_reference()
SF:1
ref_openFirst()
ref_openNext()
return_reference()
R:Ref
52:33->52
loop(): start
52-521:5A;Z
53-522:5A;Z
54-523:0;
55-524:1A;
56-525:3;
57-526:42;B
58-527:43;C
59-528:44;D
5A-529:20;
5B-52A:20;
5C-52B:2E;.
5D-52C:44;D
5E-52D:4F;O
5F-52E:20;
60-52F:20;
61-5210:20;
62-5211:20;
63-5212:20;
64-5213:20;
65-5214:20;
66-5215:20;
67-5216:20;
68-5217:20;
69-5218:20;
6A-5219:20;
6B-521A:20;
6C-521B:20;
6D-521C:20;
6E-521D:F6;
6F-521E:2;
70-521F:40;@
52=T:0|L:1AD
command_reference()
SF:2
ref_openNext()
return_reference()
R:Ref
71:52->71
loop(): start
71-711:5A;Z
72-712:5A;Z
73-713:0;
74-714:1A;
75-715:3;
76-716:42;B
77-717:43;C
78-718:44;D
79-719:20;
7A-71A:20;
7B-71B:2E;.
7C-71C:44;D
7D-71D:4F;O
7E-71E:20;
7F-71F:20;
80-7110:20;
81-7111:20;
82-7112:20;
83-7113:20;
84-7114:20;
85-7115:20;
86-7116:20;
87-7117:20;
88-7118:20;
89-7119:20;
8A-711A:20;
8B-711B:20;
8C-711C:20;
8D-711D:F6;
8E-711E:2;
8F-711F:40;@
71=T:0|L:1AD
command_reference()
SF:2
ref_openNext()
return_reference()
R:Ref
90:71->90
loop(): start
90-901:5A;Z
91-902:5A;Z
92-903:0;
93-904:1A;
94-905:3;
95-906:42;B
96-907:43;C
97-908:44;D
98-909:20;
99-90A:20;
9A-90B:2E;.
9B-90C:44;D
9C-90D:4F;O
9D-90E:20;
9E-90F:20;
9F-9010:20;
A0-9011:20;
A1-9012:20;
A2-9013:20;
A3-9014:20;
A4-9015:20;
A5-9016:20;
A6-9017:20;
A7-9018:20;
A8-9019:20;
A9-901A:20;
AA-901B:20;
AB-901C:20;
AC-901D:F6;
AD-901E:2;
AE-901F:40;@
90=T:0|L:1AD
command_reference()
SF:2
ref_openNext()
return_reference()
R:Ref
AF:90->AF
loop(): start
AF-AF1:5A;Z
B0-AF2:5A;Z
B1-AF3:0;
B2-AF4:1A;
B3-AF5:3;
B4-AF6:42;B
B5-AF7:43;C
B6-AF8:44;D
B7-AF9:20;
B8-AFA:20;
B9-AFB:2E;.
BA-AFC:44;D
BB-AFD:4F;O
BC-AFE:20;
BD-AFF:20;
BE-AF10:20;
BF-AF11:20;
C0-AF12:20;
C1-AF13:20;
C2-AF14:20;
C3-AF15:20;
C4-AF16:20;
C5-AF17:20;
C6-AF18:20;
C7-AF19:20;
C8-AF1A:20;
C9-AF1B:20;
CA-AF1C:20;
CB-AF1D:F6;
CC-AF1E:2;
CD-AF1F:40;@
AF=T:0|L:1AD
command_reference()
SF:2
ref_openNext()
return_reference()
R:Ref
CE:AF->CE
loop(): start
CE-CE1:5A;Z
CF-CE2:5A;Z
D0-CE3:0;
D1-CE4:1A;
D2-CE5:3;
D3-CE6:42;B
D4-CE7:43;C
D5-CE8:44;D
D6-CE9:20;
D7-CEA:20;
D8-CEB:2E;.
D9-CEC:44;D
DA-CED:4F;O
DB-CEE:20;
DC-CEF:20;
DD-CE10:20;
DE-CE11:20;
DF-CE12:20;
E0-CE13:20;
E1-CE14:20;
E2-CE15:20;
E3-CE16:20;
E4-CE17:20;
E5-CE18:20;
E6-CE19:20;
E7-CE1A:20;
E8-CE1B:20;
E9-CE1C:20;
EA-CE1D:F6;
EB-CE1E:2;
EC-CE1F:40;@
CE=T:0|L:1AD
command_reference()
SF:2
ref_openNext()
return_reference()
R:Ref
ED:CE->ED
loop(): start
ED-ED1:5A;Z
EE-ED2:5A;Z
EF-ED3:0;
F0-ED4:1A;
F1-ED5:3;
F2-ED6:42;B
F3-ED7:43;C
F4-ED8:44;D
F5-ED9:20;
F6-EDA:20;
F7-EDB:2E;.
F8-EDC:44;D
F9-EDD:4F;O
FA-EDE:20;
FB-EDF:20;
FC-ED10:20;
FD-ED11:20;
FE-ED12:20;
FF-ED13:ED;
0-ED14:20;
1-ED15:20;
2-ED16:20;
3-ED17:20;
4-ED18:20;
5-ED19:20;
6-ED1A:20;
7-ED1B:20;
8-ED1C:20;
9-ED1D:F6;
A-ED1E:2;
B-ED1F:40;@
ED=T:0|L:1AD
command_reference()
SF:2
ref_openNext()
return_reference()
R:Ref
C:ED->C
loop(): start
C-C1:5A;Z
D-C2:5A;Z
E-C3:0;
F-C4:1A;
10-C5:3;
11-C6:42;B
12-C7:43;C
13-C8:44;D
14-C9:20;
15-CA:20;
16-CB:2E;.
17-CC:44;D
18-CD:4F;O
19-CE:20;
1A-CF:20;
1B-C10:20;
1C-C11:20;
1D-C12:20;
1E-C13:20;
1F-C14:20;
20-C15:20;
21-C16:20;
22-C17:20;
23-C18:20;
24-C19:20;
25-C1A:20;
26-C1B:20;
27-C1C:20;
28-C1D:F6;
29-C1E:2;
2A-C1F:40;@
C=T:0|L:1AD
command_reference()
SF:2
ref_openNext()
return_reference()
R:Ref
2B:C->2B
loop(): start
2B-2B1:5A;Z
2C-2B2:5A;Z
2D-2B3:0;
2E-2B4:1A;
2F-2B5:3;
30-2B6:42;B
31-2B7:43;C
32-2B8:44;D
33-2B9:20;
34-2BA:20;
35-2BB:2E;.
36-2BC:44;D
37-2BD:4F;O
38-2BE:20;
39-2BF:20;
3A-2B10:20;
3B-2B11:20;
3C-2B12:20;
3D-2B13:20;
3E-2B14:20;
3F-2B15:20;
40-2B16:20;
41-2B17:20;
42-2B18:20;
43-2B19:20;
44-2B1A:20;
45-2B1B:20;
46-2B1C:20;
47-2B1D:F6;
48-2B1E:2;
49-2B1F:40;@
2B=T:0|L:1AD
command_reference()
SF:2
ref_openNext()
return_reference()
R:Ref
4A:2B->4A
loop(): start
4A-4A1:5A;Z
4B-4A2:5A;Z
4C-4A3:0;
4D-4A4:1A;
4E-4A5:3;
4F-4A6:42;B
50-4A7:43;C
51-4A8:44;D
52-4A9:20;
53-4AA:20;
54-4AB:2E;.
55-4AC:44;D
56-4AD:4F;O
57-4AE:20;
58-4AF:20;
59-4A10:20;
5A-4A11:20;
5B-4A12:20;
5C-4A13:20;
5D-4A14:20;
5E-4A15:20;
5F-4A16:20;
60-4A17:20;
61-4A18:20;
62-4A19:20;
63-4A1A:20;
64-4A1B:20;
65-4A1C:20;
66-4A1D:F6;
67-4A1E:2;
68-4A1F:40;@
4A=T:0|L:1AD
command_reference()
SF:2
ref_openNext()
return_reference()
R:Ref
69:4A->69
loop(): start
69-691:5A;Z
6A-692:5A;Z
6B-693:0;
6C-694:1A;
6D-695:3;
6E-696:42;B
6F-697:43;C
70-698:44;D
71-699:20;
72-69A:20;
73-69B:2E;.
74-69C:44;D
75-69D:4F;O
76-69E:20;
77-69F:20;
78-6910:20;
79-6911:20;
7A-6912:20;
7B-6913:20;
7C-6914:20;
7D-6915:20;
7E-6916:20;
7F-6917:20;
80-6918:20;
81-6919:20;
82-691A:20;
83-691B:20;
84-691C:20;
85-691D:F6;
86-691E:2;
87-691F:40;@
69=T:0|L:1AD
command_reference()
SF:2
ref_openNext()
return_reference()
R:Ref
88:69->88
loop(): start
88-881:5A;Z
89-882:5A;Z
8A-883:0;
8B-884:1A;
8C-885:3;
8D-886:42;B
8E-887:43;C
8F-888:44;D
90-889:20;
91-88A:20;
92-88B:2E;.
93-88C:44;D
94-88D:4F;O
95-88E:20;
96-88F:20;
97-8810:20;
98-8811:20;
99-8812:20;
9A-8813:20;
9B-8814:20;
9C-8815:20;
9D-8816:20;
9E-8817:20;
9F-8818:20;
A0-8819:20;
A1-881A:20;
A2-881B:20;
A3-881C:20;
A4-881D:F6;
A5-881E:2;
A6-881F:40;@
88=T:0|L:1AD
command_reference()
SF:2
ref_openNext()
return_reference()
R:Ref
A7:88->A7
loop(): start
A7-A71:5A;Z
A8-A72:5A;Z
A9-A73:0;
AA-A74:1A;
AB-A75:3;
AC-A76:42;B
AD-A77:43;C
AE-A78:44;D
AF-A79:20;
B0-A7A:20;
B1-A7B:2E;.
B2-A7C:44;D
B3-A7D:4F;O
B4-A7E:20;
B5-A7F:20;
B6-A710:20;
B7-A711:20;
B8-A712:20;
B9-A713:20;
BA-A714:20;
BB-A715:20;
BC-A716:20;
BD-A717:20;
BE-A718:20;
BF-A719:20;
C0-A71A:20;
C1-A71B:20;
C2-A71C:20;
C3-A71D:F6;
C4-A71E:2;
C5-A71F:40;@
A7=T:0|L:1AD
command_reference()
SF:2
ref_openNext()
return_reference()
R:Ref
C6:A7->C6
loop(): start
C6-C61:5A;Z
C7-C62:5A;Z
C8-C63:0;
C9-C64:1A;
CA-C65:3;
CB-C66:42;B
CC-C67:43;C
CD-C68:44;D
CE-C69:20;
CF-C6A:20;
D0-C6B:2E;.
D1-C6C:44;D
D2-C6D:4F;O
D3-C6E:20;
D4-C6F:20;
D5-C610:20;
D6-C611:20;
D7-C612:20;
D8-C613:20;
D9-C614:20;
DA-C615:20;
DB-C616:20;
DC-C617:20;
DD-C618:20;
DE-C619:20;
DF-C61A:20;
E0-C61B:20;
E1-C61C:20;
E2-C61D:F6;
E3-C61E:2;
E4-C61F:40;@
C6=T:0|L:1AD
command_reference()
SF:2
ref_openNext()
return_reference()
R:Ref
E5:C6->E5
loop(): start
E5-E51:5A;Z
E6-E52:5A;Z
E7-E53:0;
E8-E54:1A;
E9-E55:3;
EA-E56:42;B
EB-E57:43;C
EC-E58:44;D
ED-E59:20;
EE-E5A:20;
EF-E5B:2E;.
F0-E5C:44;D
F1-E5D:4F;O
F2-E5E:20;
F3-E5F:20;
F4-E510:20;
F5-E511:20;
F6-E512:20;
F7-E513:20;
F8-E514:20;
F9-E515:20;
FA-E516:20;
FB-E517:20;
FC-E518:20;
FD-E519:20;
FE-E51A:20;
FF-E51B:E5;
0-E51C:20;
1-E51D:F6;
2-E51E:2;
3-E51F:40;@
E5=T:0|L:1AD
command_reference()
SF:2
ref_openNext()
return_reference()
R:Ref
4:E5->4
loop(): start
4-41:5A;Z
5-42:5A;Z
6-43:0;
7-44:1A;
8-45:3;
9-46:42;B
A-47:43;C
B-48:44;D
C-49:20;
D-4A:20;
E-4B:2E;.
F-4C:44;D
10-4D:4F;O
11-4E:20;
12-4F:20;
13-410:20;
14-411:20;
15-412:20;
16-413:20;
17-414:20;
18-415:20;
19-416:20;
1A-417:20;
1B-418:20;
1C-419:20;
1D-41A:20;
1E-41B:20;
1F-41C:20;
20-41D:F6;
21-41E:2;
22-41F:40;@
4=T:0|L:1AD
command_reference()
SF:2
ref_openNext()
return_reference()
R:Ref
23:4->23
loop(): start
23-231:5A;Z
24-232:5A;Z
25-233:0;
26-234:1A;
27-235:3;
28-236:42;B
29-237:43;C
2A-238:44;D
2B-239:20;
2C-23A:20;
2D-23B:2E;.
2E-23C:44;D
2F-23D:4F;O
30-23E:20;
31-23F:20;
32-2310:20;
33-2311:20;
34-2312:20;
35-2313:20;
36-2314:20;
37-2315:20;
38-2316:20;
39-2317:20;
3A-2318:20;
3B-2319:20;
3C-231A:20;
3D-231B:20;
3E-231C:20;
3F-231D:F6;
40-231E:2;
41-231F:40;@
23=T:0|L:1AD
command_reference()
SF:2
ref_openNext()
return_reference()
R:Ref
42:23->42
loop(): start
42-421:5A;Z
43-422:5A;Z
44-423:0;
45-424:1A;
46-425:3;
47-426:42;B
48-427:43;C
49-428:44;D
4A-429:20;
4B-42A:20;
4C-42B:2E;.
4D-42C:44;D
4E-42D:4F;O
4F-42E:20;
50-42F:20;
51-4210:20;
52-4211:20;
53-4212:20;
54-4213:20;
55-4214:20;
56-4215:20;
57-4216:20;
58-4217:20;
59-4218:20;
5A-4219:20;
5B-421A:20;
5C-421B:20;
5D-421C:20;
5E-421D:F6;
5F-421E:2;
60-421F:40;@
42=T:0|L:1AD
command_reference()
SF:2
ref_openNext()
return_blank_reference()
R:BRef
61:42->61
loop(): start
#############################################################
--
bkw
On 10/14/19 9:05 PM, Gary Hammond wrote:
I could do with some help on where to look for a problem.
I have set up an Arduino Mega with the SD card reader and 2^nd RS232
port and uploaded the sd2tpdd code into it. The debug serial port
shows the initialisation of the SD card was OK, and I can see a
directory listing of the files on SD card. I have confirmed that
TS-DOS can traverse the directories and can read and write files on an
M100 and T200. The only change to the sd2tpdd source was changing the
SD card CS from 4 to 10 for my specific SD card module.
The problem (I believe but am not 100% sure) is that any file copied
to RAM is being corrupted. I have simplified the test down to the
following so it can be reproduced easily:
* Using TS-DOS, copy file from disk to RAM.
* Using TS-DOS, copy the file with a different filename back to disk.
* Remove the SD card from the Arduino and read it in the laptop.
Results:
* In all cases so far, the first 2 bytes only are corrupted and the
rest of the file has copied correctly.
* In all cases so far, the 2 bytes are at least twice the hex value
of what they should be and in some cases near the top end of range
i.e., 0xD5.
* Repeating of the test results in different values for the first 2
bytes.
* If I attempt to load the corrupted file, it usually results in
having to do a cold reset.
I have tried from cold starts of both the M100 and the Arduino.
I have tried with different files. The particular file for the
majority of the testing is a plain text basic program as a .DO file,
however it also corrupts text files in the same way.
I do have duplicate hardware to try this again with different hardware
if necessary.
Any suggestions or ideas?