; ------------------------------
; Relocate instr. like
;  lda #>foo; sta bar+1;
;  lda #<foo; sta bar;
;
; Check whether immediate data
; relocation is required.
;     No ERROR CHECKING!!
; ------------------------------
:yplus1  iny
         bne   :o1
         inc   :vim+1
:o1      rts
; -----------------------------
:do_imms ldy   #0             ; set Y for later
         ldx   #0             ; Set and keep X at 0
         lda   (:vim),y       ; get #pages
         sta   :pages         ; MSB

:getnext jsr   :yplus1
         lda   (:vim),y       ; get next entry count
         beq   :nxtpage
         sta   :entries

:m1      jsr   :yplus1
         lda   (:vim),y       ; get pointer to
         sta   :foo           ; vimediate location
         lda   (:foo,x)       ; update lsb value
         sec
         sbc   :mdif
         sta   (:foo,x)

         dec   :entries
         bne   :m1

:nxtpage inc   :foo+1         ; skip to next page
         dec   :pages
         bne   :getnext
         rts                  ; all done


