1

Topic: MKDIR and other .commands that don't work

I just got an email from a customer who is having problems with the .mkdir command.

I tested it myself with ESXDOS 0.8.6, and immediately got an ESXDOS error like he did.
A folder however seemed to be created.
Then when entering the folder with .cd, and showing its content with .ls or CAT, it shows the root of the SD card.
So it's messed up, and .mkdir does not seem to work.

I just started discussing this on Facebook:
https://www.facebook.com/groups/spectru … 884647985/
Others have the same issue, on ESXDOS 0.8.5 and 0.8.6.

Someone said more .commands have problems like this.

Anyone knows who created .mkdir?
Is there another way to create a folder from a ZX Spectrum with ESXDOS?

2

Re: MKDIR and other .commands that don't work

Hello,
I have tried (in the root directory of FAT16, ESXDOS 0.8.6, SpecEmu divIDE) :
.mkdir coconut
.cd bin
.cp mkdir /coconut/mkdir
.cd ../coconut
.ls

and it seems to work ...

3 (edited by Luzie 2018-10-16 17:04:13)

Re: MKDIR and other .commands that don't work

bverstee wrote:

I just got an email from a customer who is having problems with the .mkdir command.

I tested it myself with ESXDOS 0.8.6, and immediately got an ESXDOS error like he did.
A folder however seemed to be created.
Then when entering the folder with .cd, and showing its content with .ls or CAT, it shows the root of the SD card.
So it's messed up, and .mkdir does not seem to work.

Can you please tell us more about the error ESXDOS shows?

Was it tried on a freshly formatted SD-Card? Was SD-Card checked for errors e.h. with a PC?

Regards,

Luzie

4

Re: MKDIR and other .commands that don't work

bverstee wrote:

I just got an email from a customer who is having problems with the .mkdir command.

Hi,
Emulator Fuse with DivIDE and esxdos086_final_NMI15.hdf:

in root or elsewhere,
.mkdir soundso
.cd soundso
.ls

all ok.

Can you use the directory with the NMI handler by Dr. Slump ?

Regards,
Günter

5 (edited by Luzie 2018-10-17 14:06:36)

Re: MKDIR and other .commands that don't work

Spezzi63 wrote:

Can you use the directory with the NMI handler by Dr. Slump ?

Regards,
Günter

I´m not sure if Dr. Slumps NMI-handler did not just call the .MKDIR-command. So this may no make any difference.

Luzie

6

Re: MKDIR and other .commands that don't work

what about cheap defective/fake SD card from far east ?

7 (edited by Luzie 2018-10-17 15:05:06)

Re: MKDIR and other .commands that don't work

Luzie wrote:

I´m not sure if Dr. Slumps NMI-handler did not just call the .MKDIR-command. So this may no make any difference.
Luzie

Oh. I have to correct myself. Dr. Slump has no option to create a directory. It "just" can rename or browse directories.

.MKDIR is all the same (binary) from ESXDOS 0.8.0 up to final 0.8.6.

Luzie

8

Re: MKDIR and other .commands that don't work

divMMC Future Guide:
The current ESXDOS firmware (0.8.6) is limited to 8.3 filenames, so rename files and folders where necessary.
-------------------------------------------------------------------------------------------------------------------------------------------

Regards,
Günter

We can only move in the dark without feedback!

9

Re: MKDIR and other .commands that don't work

bverstee wrote:

I just got an email from a customer who is having problems with the .mkdir command.

I can reproduce the same error reported by bverstee with Fuse DivMMC, ESXDOS 0.8.6 and FAT16. mkdir works well with Fuse DivMMC, ESXDOS 0.8.5, FAT16.

I've debugged and seems that some CMD24 - WRITE_BLOCK command are wrong. At the beginning I suspected it was an emulation issue, but if the same issue happens with real hardware then it might be a problem with the .mkdir command.

This is an example of CMD24 - WRITE_BLOCK command:

write COMMAND CMD24 - WRITE_BLOCK (5)
write CRC
read STATUS
write DATA TOKEN
write DATA (512)
write CRC1
write CRC2
read DATA_RESPONSE
read BUSY

And this is a what I see at some point:

write COMMAND CMD24 - WRITE_BLOCK (5)
write CRC
read STATUS
write DATA TOKEN
write DATA (512)
read ?
write COMMAND CMD24 - WRITE_BLOCK (5)

Note the extra read, the missing CRC1 and CRC2 and the attempt to send the next command (rejected by the card).

The overall block sequence is:

READ_BLOCK 320,352,353,354,608
READ_BLOCK 320,320
WRITE_BLOCK 320,320,320
READ_BLOCK 64
WRITE_BLOCK 64,192,792
WRITE_BLOCK 793 (*) 

(*) From here, things get really wrong and finally a CMD 0 - GO_IDLE_STATE is triggered (by error) and the card goes into IDLE state.

10

Re: MKDIR and other .commands that don't work

It seems this is indeed a critical bug introduced with one of the fixes in v0.8.6. Will fix ASAP.

Thanks