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?


Reply via email to