;*************************** AMUS Program Label ****************************** ; Filename: P.M68 Date: 10/31/91 ; Category: UTIL Hash Code: XXX-XXX-XXX-XXX Version: 1.0(100) ; Initials: ULTR/US Name: DAVID PALLMANN ; Company: ULTRASOFT CORPORATION Telephone #: 5163484848 ; Related Files: ; Min. Op. Sys.: AMOSL 1.0/AMOS32 1.0 Expertise Level: INT ; Special: To assemble: .M68 P ; Description: Like PRINT/PRNT; figures out which spooler type is running. ;***************************************************************************** ;**************************************************************************** ;* * ;* P * ;* Performs functions of PRINT and PRNT - works with either spooler * ;* * ;**************************************************************************** ;[100] 31 October 1991 21:33 Edited by David Pallmann ; Created. ;version number VMAJOR =1 VMINOR =0 VSUB =0 VEDIT =100. VWHO =0 ;universals SEARCH SYS SEARCH SYSSYM SEARCH TRM ;*********** ;* START * ;*********** ;initialization START: PHDR -1,0,PH$REE!PH$REU ; program header GETIMP 200.,A5 ; get command line buffer ;************ ;* BRANCH * ;************ ;determine printer type and branch to appropriate handerl BRANCH: TST LPTQUE ; is memory-based spooler in use? BEQ TASK.MANAGER ; no - task manager spooler ;****************** ;* MEMORY.BASED * ;****************** ;for memory based spooler we use the PRINT command MEMORY.BASED: MOV A5,A0 ; begin setting up command line MOVB #'P,(A0)+ ; MOVB #'R,(A0)+ ; MOVB #'I,(A0)+ ; MOVB #'N,(A0)+ ; MOVB #'T,(A0)+ ; MOVB #40,(A0)+ ; BR FINISH.COMMAND.LINE ; go copy rest of command line ;****************** ;* TASK.MANAGER * ;****************** ;for task manager spooler we use the PRNT command TASK.MANAGER: MOV A5,A0 ; begin setting up command line MOVB #'P,(A0)+ ; MOVB #'R,(A0)+ ; MOVB #'N,(A0)+ ; MOVB #'T,(A0)+ ; MOVB #40,(A0)+ ; go copy rest of command line ;************************* ;* FINISH.COMMAND.LINE * ;************************* ;Finish command line currently indexed by A0 ;Copy command line to terminal input line buffer ;Execute PRINT or PRNT command that we have constructed and exit FINISH.COMMAND.LINE: 10$: MOVB (A2)+,(A0)+ ; copy command line character BNE 10$ ; loop until null encountered JOBIDX A3 ; index job control block MOV JOBTRM(A3),A4 ; index terminal control block MOV T.ILB(A4),A2 ; index terminal input line buffer MOV A5,A0 ; index our command line 20$: MOVB (A0)+,(A2)+ ; set command line BNE 20$ ; into terminal input buffer MOV T.ILB(A4),A2 ; index command to execute with A2 AMOS ; go execute it EXIT ; exit to AMOS command level END