HASP190X CSECT HASP190X AMODE 31 HASP190X RMODE ANY * COPY ASLEQUC *********************************************************************** ** H A S P 1 9 0 X ** *********************************************************************** ** Purpose :- To issue a start printer command automatically ** *********************************************************************** ** Copyright 1998 (C) Abbydale Systems LLC. ** *********************************************************************** *********************************************************************** * REGISTER EQUATES * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * R0 EQU 0 * R1 EQU 1 * R2 EQU 2 * R3 EQU 3 * R4 EQU 4 * R5 EQU 5 * R6 EQU 6 * R7 EQU 7 * R8 EQU 8 A S L E Q U C * R9 EQU 9 * R10 EQU 10 EQUATE PREFIX TO NUMERIC SYMBOLS IN ORDER * R11 EQU 11 TO MAKE THE USE OF REGISTER OPERANDS IN * R12 EQU 12 INSTRUCTIONS SELF EXPLANITORY.THIS ALSO * R13 EQU 13 CREATES ENTRIES IN CROSS REFERENCE. * R14 EQU 14 * R15 EQU 15 * FPR0 EQU 0 * FPR2 EQU 2 * FPR4 EQU 4 * FPR6 EQU 6 * EJECT * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * MISCELLANEOUS EQUATES * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * EQUHOBON EQU X'80000000' SET HIGH ORDER BIT ON * PACKDIG EQU X'0F' PACK DIGIT * * K.E.F. * * ******************************************************************* * STM R14,R12,12(R13) Save callers registers S BALR R12,0 Load base register ... USING *,R12 ... and establish addressability L R5,0(R1) CTXT address into R5 ... USING CTXT,R5 ... and establish addressability *********************************************************************** ** Get Storage for SVC 34 (below the line) ** *********************************************************************** STORAGE OBTAIN,LENGTH=DATAEND,ADDR=(R11),LOC=BELOW USING DATA,R11 Address the area returned ST R13,SAVEAREA+4 Set backwards pointer LA R15,SAVEAREA Get our save area address ... ST R15,8(R13) ... and set forward pointer LR R13,R15 Load R13 with save area address L R2,CTXTTXPJ Get address of message attributes ... USING CTXTATTR,R2 ... and establish addressability LA R4,CTXTTMSG Get address ot the text area ... USING MSGTEXT,R4 ... and establish addressability * CLC =C'PRT1',PRINTER WAS IT PRINTER 1 ? * BE ISSUE YES - GO AND ISSUE IT ISSUE OI CTXTRFB2,CTXTRHCO Set to suppress the message MVC STPRT,PRINTER Move printer id to command XC MGCRPL(MGCRLTH),MGCRPL Clear SVC 34 area MVC MGCRTEXT(L'REPLYT),REPLYT Move our reply in LA R1,(MGCRTEXT-MGCRPL)+L'REPLYT Get length of reply STC R1,MGCRLGTH ... and save in reply area XR R0,R0 Clear register 0 MGCR MGCRPL Issue the start command EXIT L R13,4(R13) Resotre register 13 STORAGE RELEASE,LENGTH=DATAEND,ADDR=(R11) Free the storage LM R14,R12,12(R13) Restroe callers registers PR ... and get out LTORG REPLYT DS 0CL6 Command to be issued DC CL2'$S' Start command ($S) STPRT DS CL4 ... printer id DATA DSECT DS 0F SAVEAREA DS 18F Register save area MGCR IEZMGCR DSECT=NO ORG MGCRTEXT REPLYMSG DS CL3 ORG DATAEND EQU *-DATA MSGTEXT DSECT MSGID DS CL8 DS CL1 JOBNAME DS CL8 DS CL9 PRINTER DS CL4 ORG MSGTEXT IEZVX100 END