;*************************** AMUS Program Label ****************************** ; Filename: JOBCMD.M68/JOBCMD.SBR Date: 05/24/91 ; Category: UTIL Hash Code: 777-511-407-763 Version: 1.0(100) ; Initials: ULTR/US Name: DAVID PALLMANN ; Company: ULTRASOFT CORPORATION Telephone #: 5163484848 ; Related Files: ; Min. Op. Sys.: AMOSL 1.3B/AMOS32 1.0 Expertise Level: INT ; Special: Useful for trapping access to AMOS command level ; Description: Allows setting/clearing of JOBCMD field in Job Control Block !***************************************************************************** ;**************************************************************************** ;* * ;* JOBCMD.SBR * ;* Lets an AlphaBASIC program set or clear JOBCMD field * ;* * ;**************************************************************************** ;Copyright (C) 1991 UltraSoft Corporation. All Rights REserved. ; ;Written by: David Pallmann ; ;Usage: XCALL JOBCMD, command$ ; ;Where: is the 1-19 character AMOS command to set, or a null string ; ("") to clear the JOBCMD field. ; ;Examples: XCALL JOBCMD, "LOGOUT" ; XCALL JOBCMD, "" VMAJOR =1 VMINOR =0 VSUB =0 VEDIT =100. VWHO =0 OBJNAM .SBR SEARCH SYS SEARCH SYSSYM .OFINI .OFDEF X.ARGS, 2 .OFDEF X.TYP1, 2 .OFDEF X.ADR1, 4 .OFDEF X.SIZ1, 4 START: PHDR -1,0,PH$REE!PH$REU ; program header CHECK: CMPW X.ARGS(A3),#1 ; 1 argument supplied? JNE CNTERR ; no - error MOV X.SIZ1(A3),D0 ; get size of argument JEQ CLEAR ; zero - clear JOBCMD field ;set JOBCMD field SET: JOBIDX A0 ; index job control block LEA A1,JOBCMD(A0) ; index job command field MOV X.ADR1(A3),A2 ; index user argument MOV #19.,D2 ; set loop count COPY: MOVB (A2)+,D1 ; get character BEQ TERM ; end of string MOVB D1,(A1)+ ; copy character DEC D2 ; decrement field size count BEQ TERM2 ; filled SOB D0,COPY ; loop unless end of user argument TERM: CLRB (A1)+ ; clear remainder SOB D2,TERM ; of JOBCMD field TERM2: CLRB @A1 ; terminate JOBCMD field RTN ; return to BASIC program ;clear JOBCMD field CLEAR: JOBIDX A0 ; LEA A1,JOBCMD(A0) ; MOV #20.,D0 ; 10$: CLRB (A1)+ ; SOB D0,10$ ; RTN ; return to BASIC program CNTERR: TYPECR ?Argument count error in JOBCMD.SBR RTN ; END .