27 December 2019, 17:15 | #61 | |
Registered User
Join Date: Sep 2006
Location: New Sandusky
Posts: 942
|
Quote:
Regarding DPS PAR though, the card uses off-the-shelf LSI JPEG encoders. Theoretically you should be able to just find the JPEG stream and slap a JFIF header on each frame to make it viewable by all software. (The JFIF-APP0 info may be unknown but is pretty easy to infer since all the frames will be encoded the same way given the nature of the card being strictly for encoding NTSC/PAL frames). Last edited by AmigaHope; 27 December 2019 at 17:21. |
|
27 December 2019, 18:41 | #62 |
Registered User
Join Date: Jan 2018
Location: NC /USA
Posts: 90
|
|
27 December 2019, 18:47 | #63 |
Registered User
Join Date: Jan 2014
Location: California
Posts: 1,146
|
What are we looking at here?
|
27 December 2019, 19:56 | #64 |
Registered User
Join Date: Sep 2006
Location: New Sandusky
Posts: 942
|
Looks like he managed to make a DPS PAR emulation for UAE. It might not actually properly emulate the card, but at least emulate enough of it that it fools the DPS software into thinking it's valid?
Like it might just be a virtual card that reports as a PAR in autoconfig and allocates some address space, and that's all it takes to make the software happy? |
27 December 2019, 21:17 | #65 |
Registered User
Join Date: Aug 2004
Location:
Posts: 3,343
|
I should have thought of that.
I'm guessing LanceT used Advanced Memory Settings (WinUAE settings window RAM page). By setting board size, manufacturer and product numbers to match those of the PAR, the PAR software will think (at least initially) that a PAR board is present. Of course none of the functions will actually work, and probably if you try it will report a problem with the board. But it seems to be enough to get the PAR and tester initial screens to appear at least. That's useful for my reverse-engineering effort, since I can relate gadget positions to what a particular gadget is supposed do. I doubt I'll be able to see all program screens though, without some fakery. (Fakery might involve, for example, writing a program to run in the background, which would repeatedly read memory locations corresponding to PAR registers and put the result the PAR software expects in the appropriate location.) |
27 December 2019, 21:38 | #66 |
Registered User
Join Date: Jan 2018
Location: NC /USA
Posts: 90
|
Discovered this from comments on a post by Toni and Emufan a few years back
Mark is exactly right. I have been trying random setting with some strange results, one time the PAR program produced 2 errors on screen one being the a board fault and the second I am not sure of now. I should have saved it. Another time I know that I saw hd activity for a short time in the lower right corner of winUAE. Editing the information icon it can reduce "fails" I wonder if it's an override setting on some sorts? It would be interesting to see how a real board works under snoopDos and WhichAmiga |
27 December 2019, 22:24 | #67 |
Registered User
Join Date: Aug 2004
Location:
Posts: 3,343
|
If adding a "fake PAR" memory board, set it so AmigaOS doesn't add the memory to its free list. To do that, check the "Edit Autoconfig data" box and change the first byte in AutoConfig data from e2 to c2.
|
27 December 2019, 22:36 | #68 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,517
|
Technically interesting board to emulate but:
Board most likely has some (semi)-custom micro controller. Amiga software probably talks to the micro controller via some IO interface and the MCU then talks to other parts of hardware, including harddrives. Only way to emulate it is to emulate the MCU which is not really worth the trouble. (Unless there is some existing emulation module but it still would require full IO space documentation..) |
28 December 2019, 01:55 | #69 | |
Registered User
Join Date: Sep 2006
Location: New Sandusky
Posts: 942
|
Quote:
|
|
28 December 2019, 03:15 | #70 | |
Registered User
Join Date: Sep 2006
Location: New Sandusky
Posts: 942
|
Quote:
Best approach would probably be to get a dump of the EPROM and reverse engineer from there. My best guess is DPS rolled their own Z2 interface, which lets you talk to the Z8, and the Z8's firmware directs DPS's IDE controller to record from or spit data onto the bus, as well as directs the LSI video processors to do their thing. Since Z8 code is relatively well-understood, figuring out how that works and what data it expects is probably enough without needing to truly understand what the rest of the board is doing, at least in terms of getting it to interact properly with the software on the Amiga side. i.e. it's enough for it to simulate storing and loading of frames, and controlling some sort of video capture and playback (that could just talk to ffmpeg in mjpeg mode or whatever). Last edited by AmigaHope; 28 December 2019 at 03:33. |
|
28 December 2019, 03:19 | #71 | |
Registered User
Join Date: Jan 2018
Location: NC /USA
Posts: 90
|
Quote:
Did the same with the TBC-IV VPC program by changing the "PAR" in the icon information to "serial.device" the program was able to startup. I can't do much more with it. Just play with sliders and buttons with no results. |
|
28 December 2019, 14:14 | #72 | |
Registered User
Join Date: Aug 2004
Location:
Posts: 3,343
|
Quote:
As a taster, here's some info about the command protocol. To send a command to the board: - Wait until board+2 bit 1 is clear. Then board is ready to accept command. - Write (command number) byte to board+8 - If the command expects to receive more data, send each byte by waiting until board+2 bit 1 is clear, then write the byte to board+2. To receive a byte from the board, repeat for each byte: - Wait until board+2 bit 0 is set. (To avoid hanging on a hardware problem, the PAR code uses a timeout of 6 seconds.) - Read board+0 Checking status: After issuing various commands, the PAR program does this: - Receive byte from board - $2A = 42 means success. Anything else indicates an error. Command $04: Issues IDENTIFY DEVICE to the current drive. Issue command, receive 512 bytes (IDENTIFY DEVICE data), check status. Note: the data returned may be byte-swapped, that is e.g. "ATA strings" appear as normal ASCII strings. Command $05: Set LBA used for subsequent drive read or write commands. When drive is idle, issue command, send three bytes, check status. LBA is sent MSB first. It is recommended to use command $36 to read back the LBA to confirm it matches prior to issuing read or write commands. Command $09: Check whether disk is idle. Issue command, receive byte. Zero means drive is idle. Command $20: Select component video levels (M-II or Betacam) Issue command, send byte to board (0 for M-II, 1 for Betacam), check status. Command $29: Write single sector (Select the drive and set LBA prior to issuing this command $29.) Issue command, receive byte. If byte is not $3E, report error. Else send 512 bytes to board. Check status. Comand $2D: Select drive Issue command, send byte (0 for master or 1 for slave). Receive byte. The value of byte received seems to be ignored. Command $32: Write multiple sectors. Presumably this issues an ATA WRITE MULTIPLE or WRITE DMA command? After setting LBA, issue command. Receive byte. If not $3E, report error. Else send bytes to board. (The PAR software sends a maximum of 16 sectors' data at once.) Check status. Command $36: Read current LBA Issue command, receive three bytes. Those are the current LBA, MSB first. It is recommended to issue this command after setting the LBA with command $05, to make sure any subsequent drive read or write affects the intended sectors. (A communication error while setting LBA could result in the wrong sectors being written to.) |
|
29 December 2019, 17:40 | #73 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,517
|
Does everything use same interface or is there other IO regions? For example to access other chips directly?
|
30 December 2019, 00:06 | #74 | |
Registered User
Join Date: Sep 2006
Location: New Sandusky
Posts: 942
|
Quote:
ATA DMA is *WAY* more expensive in logic than PIO, so I am almost certain no DMA commands are used. |
|
30 December 2019, 12:53 | #75 |
Registered User
Join Date: Aug 2004
Location:
Posts: 3,343
|
A couple of error strings in the PAR program:
"Read DMA timeout." "Write DMA failed." I think it's quite likely the PAR board can use READ DMA & WRITE DMA IDE commands, it needed to be capable of at 5MB/s+ sustained transfers. Of course the Amiga never sees that, DMA would be between drive and RAM on the PAR board. Toni: It seems to be that very simple "interface". I'm guessing the ISA version of the PAR contains much the same hardware. Next step for me is to find the Windows 3.1/NT software for the ISA PAR, in the hope that those contain symbols or function names. I'll try to upload a more detailed command set description in a couple of days. |
30 December 2019, 14:03 | #76 | |||
Registered User
Join Date: Jan 2018
Location: NC /USA
Posts: 90
|
At Mark I did find these files at various websites <pic> They are PVR and DPS programs for WinNT 4.0 and win95/98. I created a virtual NT OS but as I don't have a working PAR Drive Image or DPS files I can't get anything to work.
DPS Software Player Quote:
Quote:
Quote:
Last edited by LanceT; 30 December 2019 at 14:11. Reason: link unlinked |
|||
30 December 2019, 15:14 | #77 |
Registered User
Join Date: Aug 2004
Location:
Posts: 3,343
|
Thanks. It's possible/probable that those tools are for later DPS products, not the PC PAR board.
I looked at the old DPS web site via the Internet Archive. That gave some PC software filenames, unfortunately the Wayback Machine didn't capture the actual archives: ppnt205n.zip ppnt205p.zip parw123.zip par163.zip |
30 December 2019, 16:18 | #78 | |
Registered User
Join Date: Jan 2018
Location: NC /USA
Posts: 90
|
Mark I did find what appears to be interesting files I use googlesearch "par163.zip" only problem is that it's @driverguide my malwarebytes wont let me anywhere near it except for the first screen.
Was able to view file contents by clicking on the cache in the search engine. Files within the zip apparently are. Quote:
On looking at the link you just provided, I was able to find what files did get captured. http://web.archive.org/web/*/http://www.dps.com/files/* Last edited by LanceT; 30 December 2019 at 16:51. |
|
30 December 2019, 22:16 | #79 |
Registered User
Join Date: Aug 2004
Location:
Posts: 3,343
|
Maybe driverguide recently removed the par163.zip file from their site? I did manage to download some other (unrelated) files from there.
|
31 December 2019, 17:17 | #80 |
Registered User
Join Date: Aug 2004
Location:
Posts: 3,343
|
I mentioned before about "Digital Domain A4000 Titanic PAR Drive.hdf" being a bad/incomplete dump. I wonder if when Starglider 2 created the image file, he wrote it to a USB stick or memory card, then removed the USB drive without doing the Windows safe-removal procedure? That could explain why the non-zero data ends on an exact 16MB boundary in the image file. In which case, the source drive could actually be OK, just needs re-reading.
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
WANTED - A4000 a3640, RTG card, network card | FREEMILK | MarketPlace | 1 | 24 February 2016 02:51 |
Will Swap for working a4000 | ej2095 | Swapshop | 1 | 18 August 2015 12:53 |
A4000 keyboard: space bar not working | DarrenHD | support.Hardware | 8 | 24 August 2014 21:55 |
My A4000 has stopped working!!! | BinoX | support.Hardware | 19 | 02 June 2007 23:19 |
Wanted: working or faulty A4000 motherboard | Yod@ | MarketPlace | 15 | 10 July 2005 16:19 |
|
|