1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-19 17:39:17 +00:00
PDP-10.its/bin/librm4/queue.fbin

46 lines
1.5 KiB
Plaintext

'<PCODE "1QUEUE">
<PACKAGE "PRIORITY-QUEUE">
<ENTRY MAKE-Q REM-TOP-OF-Q REM-FROM-Q ADD-TO-Q CHANGE-PRIORITY FLUSH-Q>
<SETG EMPTY-SLOT (*400000000000* *400000000000*)>
<GDECL (EMPTY-SLOT) <LIST FIX FIX>>
"FLUSH-Q reinitializes a queue to be empty"
<SETG FLUSH-Q %<RSUBR!- '[ %<PCODE!- "1QUEUE" 0> FLUSH-Q #DECL ("VALUE" <
UVECTOR [REST <LIST FIX FIX>]> <UVECTOR [REST <LIST FIX FIX>]>) %<RGLOC
EMPTY-SLOT T> QUEUE-SIZE OUTCHAN "Growing queue" T]>>
<AND <ASSIGNED? GLUE> .GLUE <PUT ,FLUSH-Q PGLUE ![1072693248!]>>
"MAKE-Q creates a queue"
<SETG MAKE-Q %<RSUBR-ENTRY '[FLUSH-Q MAKE-Q #DECL ("VALUE" <UVECTOR [REST <LIST
FIX FIX>]> "OPTIONAL" FIX <LIST FIX FIX>)] 46>>
"REM-TOP-OF-Q removes the top task from the queue, the rest moving up"
<SETG REM-TOP-OF-Q %<RSUBR-ENTRY '[FLUSH-Q REM-TOP-OF-Q #DECL ("VALUE" ANY <
UVECTOR [REST <LIST FIX FIX>]>)] 108>>
<SETG REM-FROM-Q %<RSUBR-ENTRY '[FLUSH-Q REM-FROM-Q #DECL ("VALUE" ANY <UVECTOR
[REST <LIST FIX FIX>]> <LIST FIX FIX>)] 125>>
<SETG ADD-TO-Q %<RSUBR-ENTRY '[FLUSH-Q ADD-TO-Q #DECL ("VALUE" <UVECTOR [REST <
LIST FIX FIX>]> <UVECTOR [REST <LIST FIX FIX>]> <LIST FIX FIX> "OPTIONAL" FIX)]
212>>
<SETG CHANGE-PRIORITY %<RSUBR-ENTRY '[FLUSH-Q CHANGE-PRIORITY #DECL ("VALUE" ANY
<UVECTOR [REST <LIST FIX FIX>]> FIX FIX)] 327>>
<SETG BUB-DOWN %<RSUBR-ENTRY '[FLUSH-Q BUB-DOWN #DECL ("VALUE" ANY <UVECTOR [
REST <LIST FIX FIX>]> FIX)] 379>>
<SETG BUB-UP %<RSUBR-ENTRY '[FLUSH-Q BUB-UP #DECL ("VALUE" ANY <UVECTOR [REST <
LIST FIX FIX>]> FIX)] 500>>
<ENDPACKAGE>