ASMB,R,Q,C HED <#PUTD> DS "PUT" SUBROUTINE * (C) HEWLETT-PACKARD CO. 1980* NAM #PUTD,7 91750-1X211 REV 2013 800110 ALL * ****************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1980. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * ****************************************************************** * * ENT #PUTD SPC 1 EXT .ENTR,$LIBR,$LIBX EXT #SBFA,#SDAL EXT $OPSY EXT .MVW,.LDX * * NAME: #PUTD * SOURCE: 91750-18211 * RELOC: 91750-1X211 * PGMR: DOUG W. TSUI NOV. 1979 * * * * PURPOSE: * #PUTD IS CALLED BY GRPM WHEN IT NEEDS TO MODIFY PART * OF THE DATA AREA IN DS MESSAGE. IT IS SIMILIAR TO * #PUTR WHICH MODIFIES THE HEADER PORTION. * * ****WARNING**** * #PUTD ASSUMES THE Z BUFFER (DS HEADER) OF CLASS I/O * FOLLOWS IMMEDIATELY AFTER THE USER BUFFER (DS DATA). * IF THIS STRUCTURE SHOULD CHANGE IN THE FUTURE RTE * STSTEM, #PUTD NEEDS TO CHANGE ALSO. * * CALLING SEQUENCE: * JSB #PUTD * DEF *+4 * DEF OFFSET INTO DATA AREA TO START WRITING ( >= 0) * DEF DATA TO OVERLAY DS AREA IN SAM * DEF * ATTEMPT MADE TO WRITE PAST END OF BUFFER * (A) & (B) MEANINGLESS * SKP @OFST NOP OFFSET @DATA NOP OVERLAY DATA @LEN NOP OVERLAY LEN * #PUTD NOP JSB .ENTR GET PARAMETER ADDRESSES DEF @OFST * NOP JSB CONFG CONFIGURE DMS/NON-DMS ('NOP' AFTER 1ST CALL) * LDB @OFST,I LOAD OFFSET LDA #SDAL SSB,RSS CMA,INA,SZA,RSS JMP #PUTD,I IF NEGATIVE OFFSET OR NO BUF, ERR RETN ADA @OFST,I SSA,RSS PAST END OF BUFFER? JMP #PUTD,I ERR RETN LDA @LEN,I GET DATA STA SSLEN STORE AS MOVE LEN LDB #SDAL CMB,INB ADB #SBFA FIND DATA AREA ADDR ADB @OFST,I ADD OFFSET LDA @DATA OVERLAY ADDRESS JSB STWS OVERLAY SAM WORDS ISZ #PUTD ADJUST RETURN JMP #PUTD,I SKP * * CONFIGURE THE SYSTEM ENVIRONMENT * CONFG NOP CLB STB NOP LDA $OPSY RAR,SLA STB SSMOD JMP CONFG,I *** * * STWS MOVES WORDS FROM LOCAL BUFFER TO SAM BUFFER * * CALLING SEQUENCE: * * ==> LOCAL BUFFER * ==> SAM BUFFER * STWS NOP JSB $LIBR NOP SSMOD JMP SSMVW JSB .LDX DEF SSLEN MWI JMP SSJSB SSMVW JSB .MVW DEF SSLEN NOP SSJSB JSB $LIBX DEF STWS * SSLEN DEC 2 2 WORD MOVE * *** END