#383 QueuePacket is actually NoReqLoadSeg, GetPacket is ClearVec

Shell/DOS (109)
Mark K

AROS bcpl.S currently has an unimplemented entry for "QueuePacket" at global vector entry -21 (offset -$54). That is mis-named, it should be NoReqLoadSeg. NoReqLoadSeg is pretty simple: set pr_WindowPtr to -1, call LoadSeg(), then restore pr_WindowPtr.

While the 3.1 dos_lib.i include file shows an entry for QueuePacket(), that function offset is private. (Was there ever a QueuePacket function at that offset? Maybe in Kickstart 1.1 or earlier???)

See http://amigadev.elowar.com/read/ADCD_2.1/Includes_and_Autodocs_2._guide/node0550.html

"GetPacket" corresponds to ClearVec(), LVO -$A2. ClearVec() calls the BCPL routine named "clearmem" in the AROS source. However at least as of Kickstart 3.1, the routine called by jumping to DOSBase+_LVOClearVec just does MOVEQ #0,D0 / RTS. So ClearVec() is no longer implemented as a DOS library function. Its BCPL equivalent clearvec *is* implemented though.

"QueuePacket" corresponds to NoReqLoadSeg(), LVO -$A8. NoReqLoadSeg *is* implemented in the 3.1 ROM, both as BCPL routine and in the DosBase jump table.


    • status: open --> open-fixed
  • NoReqLoadSeg implemented in r44785

  • clearvec fixed in r44296

    Please test & close.

    • assigned_to: nobody --> ezrec
    • status: open-fixed --> closed-fixed