This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
qdosmsq:vectors:ssio [2010/10/30 13:49]
george.gwilt Completed creation
qdosmsq:vectors:ssio [2011/04/02 16:06] (current)
george.gwilt Added 2 trap entries in the notes
Line 1: Line 1:
 +====== IO_SERIO/IOU_SSIO - Vector $EA======
 +This vector can be used as part of a [[qdosmsq:memory:sdrives|simple device driver]] to perform Trap #3 I/O operations given only three subroutines.
 +^Call Parameters^^Return Parameters^^
 +|D0.B|IOSS value.|D0.L|Error code.|
 +|D1.L|IOSS value.|D1.L|IOSS value.|
 +|D2.L|IOSS value.|D2.L|IOSS value.|
 +|A0.L|Channel ID.|A0.L|Preserved.|
 +|A1.L|IOSS value.|A1.L|IOSS value.|
 +|A2.L|Unused. |A2.L|Corrupted.|
 +|A3.L|Unused. |A3.L|Corrupted.|
 +|A4.L|Unused. |A4.L|Corrupted.|
 +===== Errors =====
 +|ERR_NC|Not complete.|
 +|ERR_BO|Buffer full.|
 +|ERR_NO|Channel not found.|
 +|ERR_EF|End of file.|
 +|ERR_DF|Drive full|
 +===== Notes =====
 +  * All registers not shown above are not used on entry and are preserved on exit.
 +  * When finished, the vector returns to the twelfth byte after the call. The three long words between the call and return contain, respectively, pointers to routines to test pending input, fetch a byte and send a byte.
 +  * On entry to these three routines A0.L will be set to the channel ID and A6.L to the system variables. The routines should set the error code in D0 and use D1 for the data byte. Registers D2-D3/A1-A3 can be used.
 +  * The Trap #3 calls which the vector will perform are:
 +    * [[qdosmsq:traps:trap_3:test|IO_PEND]]
 +    * [[qdosmsq:traps:trap_3:fbyt|IO_FBYTE]]
 +    * [[qdosmsq:traps:trap_3:flin|IO_FLINE]]
 +    * [[qdosmsq:traps:trap_3:flin|IO_FSTRG]]
 +    * [[qdosmsq:traps:trap_3:sbyt|IO_SBYTE]]
 +    * [[qdosmsq:traps:trap_3:suml|IO_SSTRG]]
 +    * [[qdosmsq:traps:trap_3:shdr|FS_HEADS]]
 +    * [[qdosmsq:traps:trap_3:rhdr|FS_HEADR]]
 +    * [[qdosmsq:traps:trap_3:load|FS_LOAD]]
 +    * [[qdosmsq:traps:trap_3:save|FS_SAVE]]
 +===== Example =====
 +An example of the use of this vector can be seen [[qdosmsq:memory:sdrives|here]].
  • qdosmsq/vectors/ssio.txt
  • Last modified: 2011/04/02 16:06
  • by george.gwilt