English Amiga Board


Go Back   English Amiga Board > Coders > Coders. General

 
 
Thread Tools
Old 15 December 2008, 20:28   #41
BlueAchenar
Not dead yet!!! :D
BlueAchenar's Avatar
 
Join Date: Feb 2008
Location: Aveiro / Portugal
Age: 36
Posts: 690
Found something similar to what you were telling me:
#define ATAPI_SIG_HI 0xeb /* in high cylinder register */
#define ATAPI_SIG_LO 0x14 /* in low cylinder register */
BlueAchenar is offline  
Old 15 December 2008, 22:20   #42
BlueAchenar
Not dead yet!!! :D
BlueAchenar's Avatar
 
Join Date: Feb 2008
Location: Aveiro / Portugal
Age: 36
Posts: 690
I've implemented locking the media so it can be accessed and tested it:

- No new brand works
- Toshiba cards don't unmount when taken off (These are removable and always worked in my Amiga)
- Sandisk cards work and unmount as usual

Now to implementing the GET MEDIA STATUS command to finish the protocol...
BlueAchenar is offline  
Old 16 December 2008, 01:23   #43
BlueAchenar
Not dead yet!!! :D
BlueAchenar's Avatar
 
Join Date: Feb 2008
Location: Aveiro / Portugal
Age: 36
Posts: 690
I got no positive results at least the driver still works

I'll have to write a program to dump all information I need about each card and try to see what I can do about it. First time I'll write a C program for the amiga in more than 10 years.
BlueAchenar is offline  
Old 16 December 2008, 13:50   #44
BlueAchenar
Not dead yet!!! :D
BlueAchenar's Avatar
 
Join Date: Feb 2008
Location: Aveiro / Portugal
Age: 36
Posts: 690
Found an huge problem with this driver if I'm seeing the code well.

The driver tries to guess the register addresses instead of reading them from the CIS tuple information. In some cases, it might never get the configuration register and pin replacement register right.
nd it even doesn't try to figure out where the card IO registers are, it just assumes they always are at address 0.
BlueAchenar is offline  
Old 16 December 2008, 18:54   #45
Doobrey
Hamster tamer
 
Join Date: Apr 2007
Location: Out in the woods
Posts: 122
Quote:
Originally Posted by alexh View Post
I take it that Torsten Jager, author of CFD, cannot be contacted for the original source?
I got a mail from him earlier this year, at the time he said he didn't have internet access at home and could only check emails once a week or so.
Doobrey is offline  
Old 16 December 2008, 18:58   #46
BlueAchenar
Not dead yet!!! :D
BlueAchenar's Avatar
 
Join Date: Feb 2008
Location: Aveiro / Portugal
Age: 36
Posts: 690
Actually, I was wrong and the driver reads some register addresses from the CIS tuples, but not all.

I've got a program to dump all the information I need from the CF card + adapter (tuple information, card features, etc...) almost ready.

Maybe my mail went to the spam folder
BlueAchenar is offline  
Old 16 December 2008, 23:48   #47
alexh
Thalion Webshrine
alexh's Avatar
 
Join Date: Jan 2004
Location: Oxford
Posts: 12,121
I followed his work. He seems like a good guy, interested in open-source work. I cannot see why he wouldn't consider providing the source code for this driver.
alexh is offline  
Old 17 December 2008, 01:32   #48
BlueAchenar
Not dead yet!!! :D
BlueAchenar's Avatar
 
Join Date: Feb 2008
Location: Aveiro / Portugal
Age: 36
Posts: 690
If he provided the sources, it would be great.

I finally got some output from my test program, but unfortunately it can only be used once per session (some interrupt related crash) and the compactflash driver has a godly priority so I must uninstall it first

Here's the output from a (working) Sandisk card:

Device Tuple
0000: 01 04 DF 79 01 '...y.'
Size: 2048
Speed: 80
Type: $0D
Flags: $00

Null tuple / Prism Configuration Tuple
0000: 14 '.'
COR register base: 00000000
Configuration index: 39

Configuration Tuple
0000: 1A 05 01 07 00 02 '......'
Configuration register base: 0200
Last configuration index value: 07

VERS_1 tuple
0000: 15 17 04 01 53 61 6E 44 69 73 6B 00 53 44 50 00 '....SanDisk.SDP.'
0010: 35 2F 33 20 30 2E 36 00 '5/3 0.6.'
Version major: 04
Version minor: 01
Manufacturer: [SanDisk]
Card version: [SDP]

FUNCID tuple
0000: 21 02 04 '!..'
Function: 04
Sys Init: 01

FUNCE tuple
0000: 22 02 01 '"..'
Type: 01
Tech code: 01

Card memory map
Common memory: 00600000
Attribute memory: 00A00000
IO memory: 00A20000

I'm trying to fix the crashes and trying steal ownership of the card from the driver, before I start dumping more relevant stuff.

Interestingly, my cards which only work when I take the Blizzard out are also giving good dumps. I still can't figure out what's interfering.

Edit: Crashes fixed.

Last edited by BlueAchenar; 17 December 2008 at 02:10.
BlueAchenar is offline  
Old 18 December 2008, 14:44   #49
BlueAchenar
Not dead yet!!! :D
BlueAchenar's Avatar
 
Join Date: Feb 2008
Location: Aveiro / Portugal
Age: 36
Posts: 690
Ok. I have the test program almost ready to read the first sector of compactflash cards and dump it. Then I can tweak the code to make it work with every card (Hopefully).
BlueAchenar is offline  
Old 19 December 2008, 16:17   #50
BlueAchenar
Not dead yet!!! :D
BlueAchenar's Avatar
 
Join Date: Feb 2008
Location: Aveiro / Portugal
Age: 36
Posts: 690
Some good news and some bad news. I think I'll be able to read data from every card I have by tonight, with the test program.
The bad news is that I would have to make too many changes to compactflash.device, so I'll either have to get the commented source code or write a new driver.

Is Torsten Jager a member of these forums?
BlueAchenar is offline  
Old 20 December 2008, 01:06   #51
BlueAchenar
Not dead yet!!! :D
BlueAchenar's Avatar
 
Join Date: Feb 2008
Location: Aveiro / Portugal
Age: 36
Posts: 690
Ok, I got the same cards that work with compactflash.device to work with my application (using a different method), plus 2 other brands.
I can confirm the Blizzard 1230 mkIV interferes with reading operations, I still don't know why. It seems to have to do with wait states. It is easily correctable, but it will make reading slower.
I can't confirm yet that a card being removable is the issue that makes it not work. There are still cards from which I can't even read the 'Identify Drive' information.

Here's the dump from a Lexar 512MB card, one of those that don't work with compactflash.device (I hope there isn't a post size limit ):

Device Tuple
0000: 01 03 D9 01 FF '.....'
Size: 2048
Speed: 250
Type: $0D
Flags: $00

Null tuple / Prism Configuration Tuple
0000: 14 00 '..'
COR register base: 00000000
Configuration index: 01

Configuration Tuple
0000: 1A 05 01 03 00 02 0F '.......'
Configuration register base: 0200
Last configuration index value: 03

VERS_1 tuple
0000: 15 2B 04 01 20 4C 45 58 41 52 20 41 54 41 20 46 '.+.. LEXAR ATA F'
0010: 4C 41 53 48 20 43 41 52 44 20 20 20 20 00 20 53 'LASH CARD . S'
0020: 54 4F 52 4D 20 00 54 54 45 30 31 00 FF 'TORM .TTE01..'
Version major: 04
Version minor: 01
Manufacturer: [ LEXAR ATA FLASH CARD ]
Card version: [ STORM ]

Configuration table entry tuple (0x1B - 0)
0000: 1B 0B C0 40 A1 27 55 4D 5D 75 08 00 21 '...@.'UM]u..!'

Configuration table entry tuple (0x1B - 1)
0000: 1B 06 00 01 21 B5 1E 4D '....!..M'

Configuration table entry tuple (0x1B - 2)
0000: 1B 0D C1 41 99 27 55 4D 5D 75 64 F0 FF FF 21 '...A.'UM]ud...!'

Configuration table entry tuple (0x1B - 3)
0000: 1B 06 01 01 21 B5 1E 4D '....!..M'

Configuration table entry tuple (0x1B - 4)
0000: 1B 12 C2 41 99 27 55 4D 5D 75 EA 61 F0 01 07 F6 '...A.'UM]u.a....'
0010: 03 01 EE 21 '...!'

Configuration table entry tuple (0x1B - 5)
0000: 1B 06 02 01 21 B5 1E 4D '....!..M'

Configuration table entry tuple (0x1B - 6)
0000: 1B 12 C3 41 99 27 55 4D 5D 75 EA 61 70 01 07 76 '...A.'UM]u.ap..v'
0010: 03 01 EE 21 '...!'

Configuration table entry tuple (0x1B - 7)
0000: 1B 06 03 01 21 B5 1E 4D '....!..M'

FUNCID tuple
0000: 21 02 04 01 '!...'
Function: 04
Sys Init: 01

FUNCE tuple
0000: 22 02 01 01 '"...'
Type: 01
Tech code: 01

Card memory map
Common memory: 00600000
Attribute memory: 00A00000
IO memory: 00A20000

Configuration Option register: 00
Mapping: Memory Mapped
Soft Reset: 0
Configuration And Status register: 80
Pin Replacement register: 22
Socket And Copy register: 00

Identify Drive command (Read Status: 1)
General configuration: 8A84
Number of Cylinders: 57859
Default Number of Heads: 4096
Number of Unformatted Bytes per Track: 0040
Number of Unformatted Bytes per Sector: 0002
Default Number of Sectors per Track: 3F00
Serial Number: 11512631647999900098
Buffer Type: 0200
Buffer Size: 512
DMA supported: 0
LBA supported: 0
Capacity (In Sectors): 1001952
Major ATA version: 0000
Minor ATA version: 0000

MBR information (Read Status: 1)
0000: FA BE 00 7C BF 00 7A B9 00 01 FC 0E 1F 0E 07 F3 '...|..z.........'
0010: A5 EA 16 7A 00 00 BB BE 7B 33 C9 80 3F 80 75 06 '...z....{3..?.u.'
0020: FE C5 8B F3 EB 07 80 3F 00 75 02 FE C1 83 C3 10 '.......?.u......'
0030: 81 FB FE 7B 72 E5 83 F9 04 74 0B 81 F9 03 01 74 '...{r....t.....t'
0040: 0A BB A6 7A EB 2C BB 87 7A EB 27 8B 4C 02 8B 14 '...z.,..z.'.L...'
0050: B8 01 02 BB 00 7C CD 13 73 05 BB BE 7A EB 13 2E '.....|..s...z...'
0060: A1 FE 7D 3D 55 AA 74 05 BB BE 7A EB 05 EA 00 7C '..}=U.t...z....|'
0070: 00 00 2E 8A 07 3C 00 74 0C 53 BB 07 00 B4 0E CD '.....<.t.S......'
0080: 10 5B 43 EB ED EB FE 4E 6F 20 62 6F 6F 74 61 62 '.[C....No bootab'
0090: 6C 65 20 70 61 72 74 69 74 69 6F 6E 20 69 6E 20 'le partition in '
00A0: 74 61 62 6C 65 00 49 6E 76 61 6C 69 64 20 50 61 'table.Invalid Pa'
00B0: 72 74 69 74 69 6F 6E 20 74 61 62 6C 65 00 49 6E 'rtition table.In'
00C0: 76 61 6C 69 64 20 6F 72 20 64 61 6D 61 67 65 64 'valid or damaged'
00D0: 20 42 6F 6F 74 61 62 6C 65 20 70 61 72 74 69 74 ' Bootable partit'
00E0: 69 6F 6E 00 53 79 73 74 65 6D 53 6F 66 74 20 42 'ion.SystemSoft B'
00F0: 6F 6F 74 20 50 61 72 74 69 74 69 6F 6E 20 53 65 'oot Partition Se'
0100: 63 74 6F 72 00 00 00 00 00 00 00 00 00 00 00 00 'ctor............'
0110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '................'
0120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '................'
0130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '................'
0140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '................'
0150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '................'
0160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '................'
0170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '................'
0180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '................'
0190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '................'
01A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '................'
01B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 01 '................'
01C0: 01 00 06 0F FF E0 3F 00 00 00 B1 45 0F 00 00 00 '......?....E....'
01D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '................'
01E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '................'
01F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA '..............U.'
Disk signature: 0000
MBR signature: 55AA
Partition 0:
Type: 06
LBA of First Sector: 63
Number of Sectors: 1000881
Size in MB: 488.71
Partition 1:
Type: 00
LBA of First Sector: 0
Number of Sectors: 0
Size in MB: 0.00
Partition 2:
Type: 00
LBA of First Sector: 0
Number of Sectors: 0
Size in MB: 0.00
Partition 3:
Type: 00
LBA of First Sector: 0
Number of Sectors: 0
Size in MB: 0.00
Partition 0 FAT information (Read Status 1):
0000: EB 3C 90 4D 53 44 4F 53 35 2E 30 00 02 10 06 00 '.<.MSDOS5.0.....'
0010: 02 00 02 00 00 F8 F5 00 3F 00 FF 00 3F 00 00 00 '........?...?...'
0020: B1 45 0F 00 00 00 29 9B 64 1F 06 4E 4F 20 4E 41 '.E....).d..NO NA'
0030: 4D 45 20 20 20 20 46 41 54 31 36 20 20 20 33 C9 'ME FAT16 3.'
0040: 8E D1 BC F0 7B 8E D9 B8 00 20 8E C0 FC BD 00 7C '....{.... .....|'
0050: 38 4E 24 7D 24 8B C1 99 E8 3C 01 72 1C 83 EB 3A '8N$}$....<.r...:'
0060: 66 A1 1C 7C 26 66 3B 07 26 8A 57 FC 75 06 80 CA 'f..|&f;.&.W.u...'
0070: 02 88 56 02 80 C3 10 73 EB 33 C9 8A 46 10 98 F7 '..V....s.3..F...'
0080: 66 16 03 46 1C 13 56 1E 03 46 0E 13 D1 8B 76 11 'f..F..V..F....v.'
0090: 60 89 46 FC 89 56 FE B8 20 00 F7 E6 8B 5E 0B 03 '`.F..V.. ....^..'
00A0: C3 48 F7 F3 01 46 FC 11 4E FE 61 BF 00 00 E8 E6 '.H...F..N.a.....'
00B0: 00 72 39 26 38 2D 74 17 60 B1 0B BE A1 7D F3 A6 '.r9&8-t.`....}..'
00C0: 61 74 32 4E 74 09 83 C7 20 3B FB 72 E6 EB DC A0 'at2Nt... ;.r....'
00D0: FB 7D B4 7D 8B F0 AC 98 40 74 0C 48 74 13 B4 0E '.}.}....@t.Ht...'
00E0: BB 07 00 CD 10 EB EF A0 FD 7D EB E6 A0 FC 7D EB '.........}....}.'
00F0: E1 CD 16 CD 19 26 8B 55 1A 52 B0 01 BB 00 00 E8 '.....&.U.R......'
0100: 3B 00 72 E8 5B 8A 56 24 BE 0B 7C 8B FC C7 46 F0 ';.r.[.V$..|...F.'
0110: 3D 7D C7 46 F4 29 7D 8C D9 89 4E F2 89 4E F6 C6 '=}.F.)}...N..N..'
0120: 06 96 7D CB EA 03 00 00 20 0F B6 C8 66 8B 46 F8 '..}..... ...f.F.'
0130: 66 03 46 1C 66 8B D0 66 C1 EA 10 EB 5E 0F B6 C8 'f.F.f..f....^...'
0140: 4A 4A 8A 46 0D 32 E4 F7 E2 03 46 FC 13 56 FE EB 'JJ.F.2....F..V..'
0150: 4A 52 50 06 53 6A 01 6A 10 91 8B 46 18 96 92 33 'JRP.Sj.j...F...3'
0160: D2 F7 F6 91 F7 F6 42 87 CA F7 76 1A 8A F2 8A E8 '......B...v.....'
0170: C0 CC 02 0A CC B8 01 02 80 7E 02 0E 75 04 B4 42 '.........~..u..B'
0180: 8B F4 8A 56 24 CD 13 61 61 72 0B 40 75 01 42 03 '...V$..aar.@u.B.'
0190: 5E 0B 49 75 06 F8 C3 41 BB 00 00 60 66 6A 00 EB '^.Iu...A...`fj..'
01A0: B0 4E 54 4C 44 52 20 20 20 20 20 20 0D 0A 52 65 '.NTLDR ..Re'
01B0: 6D 6F 76 65 20 64 69 73 6B 73 20 6F 72 20 6F 74 'move disks or ot'
01C0: 68 65 72 20 6D 65 64 69 61 2E FF 0D 0A 44 69 73 'her media....Dis'
01D0: 6B 20 65 72 72 6F 72 FF 0D 0A 50 72 65 73 73 20 'k error...Press '
01E0: 61 6E 79 20 6B 65 79 20 74 6F 20 72 65 73 74 61 'any key to resta'
01F0: 72 74 0D 0A 00 00 00 00 00 00 00 AC CB D8 55 AA 'rt............U.'
Serial number: 061F649B
Volume Label: NO NAME
FAT type: FAT16
Boot Signature: 55AA
BlueAchenar is offline  
Old 20 December 2008, 02:47   #52
BlueAchenar
Not dead yet!!! :D
BlueAchenar's Avatar
 
Join Date: Feb 2008
Location: Aveiro / Portugal
Age: 36
Posts: 690
Ok. The common reason cards can't be read:

To read data from the card we have to access the data register x number of times to read word 0, word 1, word 2, etc... Each time the register is read the card should update it with the next word in the buffer.
Some cards don't detect that the register is being read and so we keep reading the first word from the buffer over and over again. Other cards, detect the register was read, but only some times, and so the data comes repeated and corrupt.
The only way to solve this is making the card "know" the register is being read. I don't know if it can be solved.

Is there a way to make the memory (or card IO) read signal last longer?
Would using movep instead of move achieve this?
BlueAchenar is offline  
Old 20 December 2008, 15:27   #53
Doobrey
Hamster tamer
 
Join Date: Apr 2007
Location: Out in the woods
Posts: 122
Quote:
Originally Posted by BlueAchenar View Post
Is there a way to make the memory (or card IO) read signal last longer?
Have you tried setting it slower with card.resource's CardAccessSpeed() ?
Doobrey is offline  
Old 20 December 2008, 18:20   #54
BlueAchenar
Not dead yet!!! :D
BlueAchenar's Avatar
 
Join Date: Feb 2008
Location: Aveiro / Portugal
Age: 36
Posts: 690
Yes. And also by directly accessing Gayle's registers.
BlueAchenar is offline  
Old 20 December 2008, 18:43   #55
BlueAchenar
Not dead yet!!! :D
BlueAchenar's Avatar
 
Join Date: Feb 2008
Location: Aveiro / Portugal
Age: 36
Posts: 690
I'm exploring all possibilities.

There's a mode in which SCSI command can be sent to ATAPI cards through the ATA bus, but absolutely NONE of my cards supports it, so that's not the way.

I'm having problems communicating with the troublesome cards using I/O mapped addresses, so I'll explore that path next. So far I've been always using memory mapped communications.

I really wish I could solve this. It would be a great christmas gift to the people here.

Last edited by BlueAchenar; 21 December 2008 at 03:00.
BlueAchenar is offline  
Old 20 December 2008, 22:44   #56
BlueAchenar
Not dead yet!!! :D
BlueAchenar's Avatar
 
Join Date: Feb 2008
Location: Aveiro / Portugal
Age: 36
Posts: 690
Ok, I can communicate with the cards using I/O mapping now. Same problem as before happens.

I'm trying to put the cards in 8-bit transfer mode and using several PIO modes, but the cards are not responding. I don't know if those changes can only be used in True IDE mode.
BlueAchenar is offline  
Old 21 December 2008, 02:10   #57
BlueAchenar
Not dead yet!!! :D
BlueAchenar's Avatar
 
Join Date: Feb 2008
Location: Aveiro / Portugal
Age: 36
Posts: 690
I'm starting to believe there's no solution to being able to read (more than 2 bytes per sector ) from these cards, which are the majority of new cards. This problem happens in both new removable and fixed cards.

Programming a new driver just to make 2 more brands work isn't worth it.
BlueAchenar is offline  
Old 21 December 2008, 04:23   #58
coze
hastala vista winny vista
coze's Avatar
 
Join Date: Feb 2006
Location: mt fuji
Age: 40
Posts: 1,333
Send a message via ICQ to coze Send a message via Yahoo to coze
Quote:
Originally Posted by alexh View Post
I followed his work. He seems like a good guy, interested in open-source work. I cannot see why he wouldn't consider providing the source code for this driver.
I made a desperate attempt and pm'ed all torsten jagers at facebook. let's keep our fingers crossed maybe he would have an idea.
coze is offline  
Old 21 December 2008, 11:11   #59
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 43
Posts: 21,762
Quote:
Originally Posted by BlueAchenar View Post
Ok. The common reason cards can't be read:

To read data from the card we have to access the data register x number of times to read word 0, word 1, word 2, etc... Each time the register is read the card should update it with the next word in the buffer.
Some cards don't detect that the register is being read and so we keep reading the first word from the buffer over and over again. Other cards, detect the register was read, but only some times, and so the data comes repeated and corrupt.
Do you mean IDE data reading?

Tried alternate data register? (currently reading PC CARD ATA spec for possible hints..)

Quote:
The ANSI ATA Standard specifies that the Data register is two bytes wide and is located at offset,
or relative address zero while the Error and Feature registers are one byte wide and are located at
offset one within the ATA registers. This results in an overlap of the address spaces between the
Data register and Error-Feature register combination.
Some host architectures do not permit word and byte registers to overlap. To permit those hosts
to access all the registers of the PC Card ATA mass storage card, the PC Card ATA Specification
provides a non-overlapping duplicate copy of each of these registers in the Memory Mapped and
Contiguous I/O mapped configurations. Within the 16 byte space occupied by the ATA registers
in these configurations, the duplicate data register is located at offset 8H while the duplicate Error
and Feature registers are located at offset 0DH.
EDIT: or what about this:

Quote:
Memory accesses to even addresses at offsets between 400H and 7FFH access register 8H.
Accesses to odd addresses at offsets between 400H and 7FFH access register 9H. This 1 Kbyte
memory window to the Data register is provided so that hosts can perform memory to memory
block moves to the Data register when the register lies in memory space. This entire window
accesses the Data register FIFO and does not directly address the data buffer within the card.
Some hosts, such as the 80x86 processors, increment both the source and destination
addresses when executing the memory to memory block move instruction. Some PC Card
socket adapters also have auto incrementing address logic embedded within them. This address
window allows these hosts and adapters to function efficiently.

Last edited by Toni Wilen; 21 December 2008 at 11:33.
Toni Wilen is online now  
Old 21 December 2008, 15:47   #60
BlueAchenar
Not dead yet!!! :D
BlueAchenar's Avatar
 
Join Date: Feb 2008
Location: Aveiro / Portugal
Age: 36
Posts: 690
Quote:
Do you mean IDE data reading?

Tried alternate data register? (currently reading PC CARD ATA spec for possible hints..)
I can't put the card in True IDE mode, as _OE (if I recall the signal name right) would have to be grounded during hard reset. So I'm using PC Card ATA data reading, memory mapped (config 00b) and IO mapped (01b, 10b, 11b).

I've tried byte and word reading from offsets 0 and 8, alternate byte reading from offsets 8,9 and 9,8. I also tried bye and word reading from $400 to $7FF.
I've even tried word reading from every address inside the $20000 boundary trying to find something undocumented.
Nothing I do seems to make the card's internal data pointer increment.

One strange thing though is that byte reading from offset 1 in these cards (error register), actually returns data instead of an error code, so I'll try alternating byte reading from 0,1 and 1,0.

I'm also forcing the cards to come out of standby (soft reset and clearing the PwrDwn flag in the Card Configuration and Status Register) before issuing commands, but it makes no difference in these cards. It makes Transcend cards work though.
BlueAchenar is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
In-Game References CodyJarrett Nostalgia & memories 127 13 August 2017 20:01
References and Easter Eggs in games Mr Softy Retrogaming General Discussion 11 13 August 2012 18:19
K13 asm example of gameport.device and keyboard.device redblade Coders. General 29 20 January 2011 18:32
uaehf.device and HDToolbox: Error 224 reading device description Ebster support.WinUAE 3 16 September 2008 09:24

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 17:21.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2018, vBulletin Solutions Inc.
Page generated in 0.09086 seconds with 14 queries