ASMB,R,L,C,Q ** SCB READ\WRITE MODULE ** HED SCB READ \ WRITE MODULE * NAME: $SMVE * SOURCE: 92067-18483 * RELOC: PART OF 92067-16268 * PGMR: G.L.M. * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978. 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. * * *************************************************************** * NAM $SMVE,6 92067-1X483 REV.2013 800129 * * ******************************************************************** * * ******************************************************************** * * $SMVE ENTRY POINT NAMES * ENT $SMVE,ISMVE * * $SMVE EXTERNAL REFERENCE NAMES * EXT .ENTR,$LIBR,$LIBX * ******************************************************************** * * NOTE: THIS ROUTINE IS PRIVLEGED FOR READS AND WRITES SO * IT COULD OPERATE IN THE MEMORY RESIDENT LIBRARY. * NOTE THAT READS WOULD OTHERWISE BE DONE NON-PRIVLEGED. * * * * * PURPOSE: TO READ OR WRITE FROM/TO A SESSION CONTROL BLOCK WHICH * MIGHT NOT BE IN SAM. * * * CALLING SEQUENCE: READ ONLY -- ISMVE -- * * CALL ISMVE(IADDR,IOFF,IBUF,LEN) * * WHERE: IADDR= LOCATION TO READ FROM. * IOFF = OFFSET FOR ABOVE LOCATION. * IBUF = LOCATION TO READ INTO. * LEN = NUMBER OF WORDS TO TRANSFER. * * * READ OR WRITE -- $ISMVE -- * * JSB $SMVE * DEF RTN * DEF RW * DEF IADDR * DEF IOFF * DEF IBUF * DEF LEN * * * * WHERE: RW=1=READ/2=WRITE * IADDR=READ/WRITE FROM\TO HERE * IOFF =SAME AS ABOVE * IBUF =USER BUFFER TO READ TO/ WRITE FROM * LEN =SAME AS ABOVE * * SKP ISMVE NOP JSB $LIBR NOP LDA DADDR FETCH NEW ADDR FOR .ENTR STA WHR LDA DF1 DETCH ADDRESS OF .1 STA RW FORCE READ ONLY LDA ISMVE JMP SM.1 * $SMVE NOP JSB $LIBR NOP LDA DRW FETCH ADDR OF FULL PARM LIST STA WHR LDA $SMVE SM.1 STA DENT JMP DENT+1 SPC 5 DADDR DEF ADDR DRW DEF RW DF1 DEF .1 .1 DEC 1 RW NOP ADDR NOP OFF NOP BUF NOP NUM DEF ZERO * DENT NOP JSB .ENTR FETCH CALL WHR DEF RW PARAMETERS * LDA NUM MUST HAVE FIVE CPA DZERO PARAMETERS OR JMP DENT,I REJECT THE CALL * * * THIS IS WHERE ANY TABLE PARTITION WORK MUST BE DONE * * STX ISMVE SAVE XREG LDA ADDR,I FETCH SCB ADDRESS ADA OFF,I ADD OFFSET * LDB RW,I FETCH READ \ WRITE CODE SLB IF A READ REQUEST JMP READ GO DO IT * * WRITE REQUEST * * * * STA TO SAVE SCB ADDR AS "TO" ADDR * LDA BUF FETCH "FROM" ADDRESS LDB TO FETCH "TO" ADDRESS LDX NUM,I FETCH MOVE LENGTH * MWI MOVE WORDS INTO ALT MAP * JMP EXIT * * READ LDB BUF FETCH "FROM" ADDRESS LDX NUM,I FETCH LENGTH * MWF MOVE WORDS FROM ALT MAP * EXIT LDA DZERO STA NUM RESET FOR PARM CHECK LDX ISMVE RESTORE X REG. JSB $LIBX EXIT DEF DENT * TO NOP DZERO DEF ZERO ZERO NOP END