.title Detached Job Processing ; DECUS C Calling Format ; ; jsr r5,csv$ ;save r2,r3, and r4 ; ;r5 is parameter base ; ;c$pmtr(r5) is first argument ; ;c$pmtr+2(r5) is second argument ; ;... ; ;return args in r0 ; ... ; user code ; ... ; ; jmp cret$ ;restore r2-r5 and return ; rts pc ;does the same (cret$ follows csv$) ; ; csv$ and cret$ need be used only if arguments are used ; .include "os.mac" .if ne ts$sys ;tsx-plus specific ; Execute a Detached Job ; ; int strtdj("dev.file.ext"); ; ; = 0 startup failed ; = jobnum .psect c$code strtdj:: jsr r5,csv$ mov c$pmtr(r5),strt02 mov #strt01,r0 emt 375 ; start detached job bcc 1$ clr r0 ; startup failed 1$: rts pc ; return job number .psect c$data strt01: .byte 0,132 ; start a detached job strt02: .word 0 ; address of "dev.file.ext" ; Check Status of a Detached Job ; ; int statdj(jobnum); ; ; = 0 job finished ; # 0 job active .psect c$code statdj:: jsr r5,csv$ mov c$pmtr(r5),stat02 mov #stat01,r0 emt 375 ; check status of detached job bcc 1$ clr r0 ; job has finished 1$: rts pc ; return job number .psect c$data stat01: .byte 1,132 ; check status of detached job stat02: .word 0 ; job number .endc .if ne rt$sys ;rt-11 specific .psect c$code strtdj:: ; RT-11 does not support statdj:: ; this functionality clr r0 rts pc .endc .end