ASMB
   HED S/P &MVW  (21XX ONLY)  07/SEP/76  F. GAULLIER
      NAM &MVW,7 . 92080-1X002 REV.2026  800515 
* 
*     SOURCE 92080-18002
* 
      SPC 2 
**************************************************************
* (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1978.  ALL RIGHTS    *
* RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, RE- *
* PRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITH-  *
* OUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.  *
**************************************************************
      SPC 2 
      ENT &MVW
      SUP 
A     EQU 0 
B     EQU 1 
* 
*    LDA  FROM
*    LDB  TO
*    JSB &MVW 
*    DEC  +N OR -N WORDS
*            +N WILL INCREMENT POINTER FROM TOP OF BUFFER 
*            -N WILL DECREMENT POINTER FROM BOTTOM OF BUFFER
  SPC 2 
&MVW  NOP 
      STA TEMP2     SAVE FROM ADDR
      LDA &MVW,I    GET COUNT 
      ISZ &MVW      SET RETURN ADDR 
      SZA,RSS       WORD COUNT NUL ?
      JMP &MVW,I    YES, RETURN.
      SSA           STANDARD MOUVE ?
      JMP &MVW3     NO, SPECIAL MOUVE 
      STA TEMP1 
      LDA TEMP2     RECALL FROM ADDR, B IS STILL TO ADR 
      MVW TEMP1 
      JMP &MVW,I
  SPC 1 
&MVW3 ADB =D-1      SET POINTER TO USE INDEX REG. 
      CMA,INA       MAKE COUNT POSITIVE 
      STA TEMP3 
      XAX           X REG IS THE COUNTER
      STA TEMP1     SAVE X REG. 
      LDA TEMP2     AJUST FROM POINTER
      ADA =D-1
      STA TEMP2 
&MVW5 LAX TEMP2,I   PERFORM THE MOUVE 
      SAX B,I 
      DSX 
      JMP &MVW5 
      LDX TEMP1     RESTOR X REG. 
      LDA TEMP3     AND RECALL IN A THE COUNT 
      INA           STEP COUNT BY ONE 
      ADB A         B POINTER TO NEXT TO ADR
      ADA TEMP2     A POINTER TO NEXT FROM ADR
      JMP &MVW,I    A & B ARE LIKE WITH  MVW INSTR. 
  SPC 2 
TEMP1 NOP 
TEMP2 NOP 
TEMP3 NOP 
      END 
                                                                                                                                                                