Jump to content
Sign in to follow this  
retroclouds

Best way to detect HDR ramdisk and other high-speed storage devices

Recommended Posts

I'm using my HDR ramdisk a lot while developing my TiVi editor. It's a real time saver.

It's especially helpful when dealing with large files (which is kinda my primary purpose why I started working on TiVi).

 

Today I read the updated documenation the InsaneMultitasker provided as draft.

In there I learned that with ROS it's possible to use data buffers that reside in CPU RAM insead of VDP RAM. 

That is something I really want to try, because even with a RAMDISK reading a large file (think >100 kilobytes) takes some time.

 

Now my challenge is; How can I easily detect from assembly language if I'm dealing with a "high-speed" disk device compared to a "slow" disk device ("floppy").

 

With a high-speed device I mean:

  • CF7+, Nanopeb
  • TIPI
  • HDR
  • ...

 

I see differents possible paths here:

  • CRC checksum on DSR space (but won't work with RAMBOS? Self modifiying code, configuration stored here too?)
  • Check on some specific device feature?

 

Actually I think that the CRC checksum logic would work quite well (I already did a test program on that about a year ago), but I'm not sure about HDR.

 

Thinking about it would be cool if there is some unified way to detect device capabilities accross devices.

For example a standard where there's a device "capabilities" file that is automatically created when the device is formatted.

That file could then be processed from TI-Basic, assembly language or any other language supporting file I/O.

 

Any ideas?

 

 

 

  • Like 1

Share this post


Link to post
Share on other sites
6 hours ago, retroclouds said:

I'm using my HDR ramdisk a lot while developing my TiVi editor. It's a real time saver.

It's especially helpful when dealing with large files (which is kinda my primary purpose why I started working on TiVi).

 

Today I read the updated documenation the InsaneMultitasker provided as draft.

In there I learned that with ROS it's possible to use data buffers that reside in CPU RAM insead of VDP RAM. 

That is something I really want to try, because even with a RAMDISK reading a large file (think >100 kilobytes) takes some time.

 

Now my challenge is; How can I easily detect from assembly language if I'm dealing with a "high-speed" disk device compared to a "slow" disk device ("floppy").

 

With a high-speed device I mean:

  • CF7+, Nanopeb
  • TIPI
  • HDR
  • ...

 

I see differents possible paths here:

  • CRC checksum on DSR space (but won't work with RAMBOS? Self modifiying code, configuration stored here too?)
  • Check on some specific device feature?

 

Actually I think that the CRC checksum logic would work quite well (I already did a test program on that about a year ago), but I'm not sure about HDR.

 

Thinking about it would be cool if there is some unified way to detect device capabilities accross devices.

For example a standard where there's a device "capabilities" file that is automatically created when the device is formatted.

That file could then be processed from TI-Basic, assembly language or any other language supporting file I/O.

 

Any ideas?

 

 

 

With the TIPI, you can scan the DSR.  If you look at line 165 and below at the following link:  https://github.com/jedimatt42/tipi/blob/master/examples/tiartist/tipim.a99 

then you will see how to look for a TIPI in assembly.

 

With the HFDC, you would need to look for device names of WDS1.  Not sure about the other devices.

 

Beery

 

  • Like 1

Share this post


Link to post
Share on other sites

RAMdisks using ROS 8.x will have a dsr header "AA81". 

CFG detects most non-ramdisk devices by looking for unique DSR calls or subprograms.  Since some cards have the same devices, you look for the least common to the most common.   For example,  HFDC and SCSI both have "WDS" devices whereas the SCSI is the only card with "SCSx", so looking for "SCS" first is necessary. 

 

IDE, SCSI, HFDC, and Myarc FDC all provide CPU ram buffer support.  They also allow you to place the PAB in CPU RAM, though this is not implemented in the Horizon DSR at this time.

 

  • Like 4

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...