Skip to content

MD insert, record: interesting interactions

Graham edited this page Dec 1, 2018 · 1 revision

I've not spotted the minidisc eject command yet. However I've observed a command which has the same format as the CD eject command but which, in fact, seems to query the status of the inserted MD in some way:

# no MD
>> 06 00 60 b0 54 00 01
 < 05 00 12 b8 0e 54

note that lots of 'error' type messages seem to be length 5, similar format to the above. I don't know what that means particularly, but note the "54" (what I'd consider the command id) being sent back.

I then decided to insert the MD and send the same command continuously to see what happened:

# insert MD
>> 06 00 60 b0 54 00 01
 < 05 00 12 b8 0e 54

note the error response, I polled too soon in this case, but then:

 < 19 00 12 b8 e8 00 01 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 < 16 00 12 b8 c1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 < 0c 00 12 b8 c0 00 01 00 00 20 30 00 00
 < 0c 00 12 b8 c0 00 01 01 00 20 30 00 00
 < 11 00 12 b8 71 00 01 01 01 0e 00 27 36 00 00 00 00 00
 < 11 00 12 b8 70 00 01 00 00 10 00 00 00 13 00 08 02 00
 < 14 00 12 b8 e0 31 00 31 34 00 00 00 33 39 00 00 35 34 00 a3 00
 < 0d 00 18 ca 63 01 ff ff ff ff 12 19 1e 05
 < 14 00 18 ca e2 01 20 20 20 20 20 20 20 20 05 31 38 00 32 35 ff
 < 0d 00 18 ca 63 01 ff ff ff ff 12 19 1f 05
 < 14 00 18 ca e2 01 20 20 20 20 20 20 20 20 05 31 38 01 32 35 ff
 < 0d 00 18 ca 63 01 ff ff ff ff 12 19 20 05
 < 14 00 18 ca e2 01 20 20 20 20 20 20 20 20 05 31 38 00 32 35 ff
 < 0d 00 18 ca 63 01 ff ff ff ff 12 19 21 05
 < 14 00 18 ca e2 01 20 20 20 20 20 20 20 20 05 31 38 01 32 35 ff

note the event messages announcing the arrival of the MD, before the regular timestamp type messages. Then...

>> 06 00 60 b0 54 00 01
 < 09 00 12 b8 54 00 01 00 23 04
 < 0d 00 18 ca 63 01 ff ff ff ff 12 19 22 05
 < 14 00 18 ca e2 01 20 20 20 20 20 20 20 20 05 31 38 00 32 35 ff

Success! The "b0 54" message returns something useful. Subsequent calls to this command return identical status regardless of mode:

>> 06 00 60 b0 54 00 01
 < 09 00 12 b8 54 00 01 00 23 04

Note that actually it doesn't seem to care about that final bit:

>> 06 00 60 b0 54 00 00
 < 09 00 12 b8 54 00 01 00 23 04

However changing any other bit in the final two bytes results in the error status:

>> 06 00 60 b0 54 00 08
 < 05 00 12 b8 0e 54

Changing the MD changes the output of this command.

# A: 24 tracks, 68.25 duration (Sony "Premium")
< 09 00 12 b8 54 00 01 00 06 0d
# B: 14 tracks, 39.54 duration (Panasonic "MD74")
< 09 00 12 b8 54 00 01 00 23 04
# B: 15 tracks, 40.00 duration
< 09 00 12 b8 54 00 01 00 22 3a
# C: 14 tracks, 51.32 duration (Sony "Premium"; same type as A)
< 09 00 12 b8 54 00 01 00 17 0b
# D: 16 tracks, 73.15 duration (Sony "MD2000")
< 09 00 12 b8 54 00 01 00 01 17

Some of the output is decipherable: the last two bytes are simply the recordable time remaining on the MD: 0x22 0x3a is 34 58, as displayed at record-pause as "-34:58".

I've checked - the write-protect status does not affect this output, nor does it matter whether or not the disc is playing, nor whether there are unwritten TOC changes.

Three bytes remaining to decipher.

Initiating recording on a blank MD:

You get loads of data back if you hit 'record' via PC-Link. Some familiar, some new:

# Initiate recording...
>> 04 00 60 b0 07
# some sort of periodic status
 < 0c 00 12 b8 c0 01 01 01 00 d0 30 10 00
# standard command acknowlegement
 < 04 00 12 b8 07
# a bunch of status and display updates
 < 11 00 12 b8 70 00 01 01 00 16 01 00 00 13 00 08 02 00
 < 19 00 12 b8 e8 00 01 01 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 < 0c 00 12 b8 c0 01 01 01 00 d0 30 10 00

# Hit 'stop'
>> 04 00 60 b0 01
# got some "before" status back, similar to the above 
 < 11 00 12 b8 70 00 01 00 00 10 01 00 00 13 00 08 02 00
 < 0c 00 12 b8 c0 01 01 01 00 10 30 00 00
# then the acknowledgement
 < 04 00 12 b8 01
 < 11 00 12 b8 70 00 01 00 00 10 00 00 00 13 00 08 02 00
 < 19 00 12 b8 e8 00 01 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
# and another c0 with a third set of flags 
 < 0c 00 12 b8 c0 01 01 01 00 20 30 00 00
Clone this wiki locally