.TITLE START PROCESSOR .IDENT /V1.01/ .NLIST TOC,SYM .ENABL LC ; Part of Sira Paper Tape Punch Despooler. ; ; COPYRIGHT(C) 1981,1982 Sira Institute Ltd., ; South Hill, Chislehurst, Kent, BR7 5EH, England. ; ; Author: C.J. Doran ; ; Assemble as: ; >MAC PPPSTART=LB:[200,200]RSXMC/PA:1,[1,1]RUNMAC/ML,SY:[g,m]PPPSTART ;+ ; Process Start Processor command from Queue Manager. Assign punch LUN, to ; required device/unit, and set start of messages appropriately. ;- ; MODIFICATIONS RECORD ; ==================== ; V1.01 13-Jul-82 CJD ; Add conditionals to assemble for RSX V4, with changed packet layout. .MCALL ALUN$,ALUN$R,QIOW$R .PSECT CODE,I,RO START:: TSTB STATE ; Current state must be "dormant" BMI 5$ ; OK if so JMP ILLCMD ; Error if not 5$: MOV (%5)+,%1 ; Get spool device mnemonic MOVB (%5)+,%2 ; and unit ALUN$R ALUN,,%1,%2,DIRERR ; Assign LUN SWAB %2 ; Get byte order right in device no .IIF EQ V$$RSN-32, BIS #"P0,%2 ; and set up ASCII bytes .IIF GE V$$RSN-40, BISB #'0,%2 ; and make it an ASCII numeral ; Set all operator messages to start with the processor type and unit MOV #MESAGS,%3 ; Address list of messages 10$: MOV (%3)+,%4 ; Get message address BEQ 20$ ; Done if 0 MOV %1,(%4)+ ; Put in "PP" (or whatever) .IIF EQ V$$RSN-32, MOV %2,@%4 ; "Pn" .IIF GE V$$RSN-40, MOVB %2,@%4 ; "n" BR 10$ ; in all messages 20$: MOVB @%5,UCLC ; Fetch upper/lower case flag QIOW$R PPQIOW,#IO.DET ; Detach while idle, so FLX can use punch CLRB STATE ; Say processor started RTS PC ; and waiting for a message .PSECT LDATA,D,RW,LCL ALUN: ALUN$ PPLUN,PP,0 ; Assign LUN DPB .END