.TITLE SPAWN MESSAGE TRANSFER VIA SPAWN DIRECTIVE .IDENT /M01.../ .LIST MEB .MCALL SPWN$S ; ; ; ; CORAL TRANSFERS ; ; R5 POINTS TO STACK ; R5 +0 NUMBER OF PARAMETERS ; R5 +2 PARAMETERS ; ; ; @#$DSW = ABSOLUTE ADDRESS OF DSW ; $DSW = RELATIVE OFFSET TO ADDRESS OF DSW ; ; ; ; ; SPAWN:: ;CORAL CALL 'IP' SPAWN ('IA') TST (R5)+ ;R5 POINTS TO ADDRESS OF ARRAY ADB ; ;DATA STRUCTURE OF TRANSFERED DATA ; ; TSK 2 WORDS RAD50 CODE 0,1,2,3 ; PAR 2 WORDS RAD50 CODE 4,5,6,7 ; PRI 1 WORD INTEGER 8,9 ; UGC 1 BYTE 10 ; UMC 1 BYTE 11 ; EFN 1 WORD INTEGER 12,13 ; ESB 1 WORD ADDRESS 14,15 ; CMD 1 WORD ADDRESS 16,17 ; MOV R1,-(SP) ;SAVE REGISTERS R1 R2 AND R3 ON STACK MOV R2,-(SP) MOV R3,-(SP) MOV @(R5),R0 ;R0 -> ADDRESS OF DATA ARRAY MOV 16.(R0),R1 ;R1 -> ADDRESS OF CHARACTER STRING LENGTH MOV R0,R2 ADD #4,R2 ;R2 HOLDS ADDRESS OF PAR RAD50 MOV R1,R3 ADD #2,R3 ;R3 HOLDS ADDRESS OF CHARACTERS IN STRING SPWN$S @(R5),R2,8.(R0),10.(R0),11.(R0),12.(R0),,14.(R0),R3,@R1 MOV $DSW,R0 ;LOAD REPLY WORD INTO R0 ; MOV (SP)+,R3 ;RESTORE REGISTERS FROM STACK MOV (SP)+,R2 MOV (SP)+,R1 ; RTS PC ; ; ; ; END OF PROGRAM ; ; ; .END