$crystal = 8000000 $baud = 9600 Mmc_chip_select Alias Portb.0 Mmc_data_input Alias Pinb.2 Mmc_data_output Alias Portb.1 Mmc_clock Alias Portb.3 Config Pinb.0 = Output Config Pinb.1 = Output Config Pinb.2 = Input Config Pinb.3 = Output Dim Tmp As Byte Dim C As Integer Dim A As Byte Dim B(6) As Byte Dim D As Byte Dim E As Byte Dim F(17) As Byte Mmc_chip_select = 1 Mmc_clock = 1 Loop2: For C = 0 To 100 A = 0 Gosub Mmc_do Next Mmc_chip_select = 0 B(1) = 64 B(2) = 0 B(3) = 0 B(4) = 0 B(5) = 0 B(6) = 149 For C = 1 To 6 A = B(c) Gosub Mmc_do Next Loop1: Gosub Mmc_di Print "init CMD0: " ; A If A = 255 Then Goto Loop1 If A <> 1 Then Goto Loop2 Loop3: Mmc_chip_select = 1 A = 0 Gosub Mmc_do Mmc_chip_select = 0 B(1) = 65 B(2) = 0 B(3) = 0 B(4) = 0 B(5) = 0 B(6) = 255 For C = 1 To 6 A = B(c) Gosub Mmc_do Next Loop4: Gosub Mmc_di Print "Init CMD1: " ; A If A = 255 Then Goto Loop4 If A <> 0 Then Goto Loop3 D = 14 Loop5: Waitms 200 Print "Bereich " ; D Mmc_chip_select = 1 A = 0 Gosub Mmc_do Mmc_chip_select = 0 B(1) = 81 B(2) = 0 B(3) = 4 B(4) = d B(5) = 0 B(6) = 255 For C = 1 To 6 A = B(c) Gosub Mmc_do Next Loop6: Gosub Mmc_di Print "Init CSD Read: " ; A If A = 255 Then Goto Loop6 If A <> 0 Then Goto Loop5 Loop7: Gosub Mmc_di If A <> 254 Then Goto Loop7 E = 1 For C = 1 To 512 Gosub Mmc_di E = E + 1 Print " " ; Hex(a); F(e) = A If E = 17 Then E = 1 Print " "; For A = 1 To 17 If F(a) < 33 Then F(a) = 0 If F(a) > 127 Then F(a) = 0 Print Chr(f(a)); Next Print "" End If Next D = D + 2 If D = 0 Then Wait 3000 Goto Loop5 Mmc_do: For Tmp = 0 To 7 Mmc_data_output = A.7 Shift A , Left , 1 Mmc_clock = 0 Mmc_clock = 1 Next Mmc_data_output = 1 Return Mmc_di: A = 0 For Tmp = 0 To 7 Mmc_clock = 0 Shift A , Left , 1 A.0 = Mmc_data_input Mmc_clock = 1 Next Return