patchGNU MIX Development Kit - Patches: patch #9775, Support IOC commands for disk/drum...

 
 

You are not allowed to post comments on this tracker with your current authentication level.

patch #9775: Support IOC commands for disk/drum devices

Submitter:  Kevin Brunelle <brunk23>
Submitted:  Wed 20 Mar 2019 12:43:28 AM UTC
   
 
Category:  None Priority:  5 - Normal
Status:  Done Privacy:  Public
Assigned to:  jao Open/Closed:  Open

Tue 09 Apr 2019 01:42:15 AM UTC, comment #1: 

Hi Kevin,

Looks good: i've applied the patch to master.  Thanks!

Jose Antonio Ortega Ruiz <jao>
Group administrator
Wed 20 Mar 2019 12:43:28 AM UTC, original submission:  

There is a minor fix included with regards to tape devices.  The test was failing if M == 0, when it should fail when M != 0.

NOTICE: This patch changes the behavior of the VM and changes the function parameters for the ioc_ function.  Documentation changes are included.

Permits the following:

     LDX   BLKNUM
     IOC   0(8)
     OUT   ADDR(8)      Write block from ADDR into disk[BLKNUM]
     IOC   0(8)
     IN    ADDR(8)      Read block from disk[BLKNUM] into ADDR
...
BLKNUM  CON  45000      Example possible block on disk



I was having an issue writing a block to a drive and then reading back the same block.  Because it is impossible to move the SEEK_CUR pointer backwards on a disk device, there was no way for a program to read back a block that it wrote to a disk without restarting or fiddling with ~/.mdk/disk?.dev files and symbolic links.

I have added a function parameter to the ioc_ function and used it to pass the value of rX to ioc_.  This permits us to use IOC commands to move the read/write head on a disk/drum device.  I believe that this conforms to the potential meaning of Knuth's description of IOC for disk/drum devices.

I have put in tests to verify that rX is positive and M = 0.

I have updated the documentation to reflect this new behavior.

This makes disks much more usable.

Note: I won't be offended if this patch is rejected because it changed the behavior of the VM. I think it fits the spirit and enhances the functionality in a way that some might find useful.  I wanted it for something I was working on, and I felt others might want the same.  The thing with the paper-tape should be fixed, though.

Thanks,
Kevin Brunelle

Kevin Brunelle <brunk23>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attached Files
file #46591:  ioc.support.disk.patch added by brunk23 (6KiB - text/x-patch)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by jao (Posted a comment)
  • -email is unavailable- added by brunk23 (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

     

    Follow 3 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2019-04-09 jao StatusNone Done
        Assigned toNone jao
    2019-03-20 brunk23 Attached File- Added ioc.support.disk.patch, #46591

    Back to the top

    Powered by Savane 3.13-d3ae.
    Corresponding source code