.TITLE RPOI Request and Pass Offspring Information .IDENT "V1.0" .ENABL LC .PSECT C$CODE ;+ ; Index RPOI Request and Pass Offspring Information ; ; ; Usage ; ; #include ; #include /* OCB def. (CLI tasks only) */ ; /* ; * Codes for 'sc' parameter: ; */ ; #define RP_OEX 0200 /* Force exit */ ; #define RP_OAL 0001 /* Pass all OCB's */ ; #define RP_ONX 0002 /* Pass 1st OCB */ ; rad50 tname[2]; /* Offspring task name */ ; word uic; /* Offspring task UIC */ ; rad50 parent[2]; /* Parent task name */ ; char cmdlin[]; /* Command line buffer */ ; word cmdlgt; /* Length of command line */ ; word sc; /* Mode flag(s) */ ; char *tiname; /* Name of TI: device */ ; word tiunit; /* Unit # of TI: device */ ; rad50 rtask[2]; /* Run task name (CLIs only) */ ; struct ocb *ocbpt; /* Address of OCB (CLIs only) */ ; word status; /* Returned DSW */ ; ; status = rpoi(tname,uic,parent,cmdlin,cmdlgt, ; sc,tiname,tiunit,rtask,ocbpt); ; ; Notes ; ; Be sure to read and understand the description of ; this directive in the Exec Reference manual ; section 5.3.53. ; ; The device name of the TI: device is passed as a ; string address. Only the 1st two characters of ; the string are used. ; ; The 'rtask' and 'ocb' parameters must be zero ; unless the issuing task is a CLI. ; ; This directive requires substantial stack space to ; construct the DPB. ;- ; Edits: ; V1.0 20-Oct-82 RBD Initial edit ; .mcall rpoi$s rpoi:: mov sp,r0 ; r0 --> calling stack mov r2,-(sp) ; Save R2 clr r2 ; Set up R2 for tiname mov 16(r0),r1 ; r1 --> tiname string beq 10$ ; (none) bisb 1(r1),r2 ; Get hi byte of tiname swab r2 ; into position bisb (r1),r2 ; Get lo byte of tiname 10$: rpoi$s 2(r0),,,5(r0),4(r0),6(r0),10(r0),12(r0),14(r0),r2,20(r0),22(r0),24(r0) ; GOOD GRIEF! mov (sp)+,r2 ; Restore r2 mov $dsw,r0 ; Return DSW return .end