home *** CD-ROM | disk | FTP | other *** search
- ; ------------------------------
- ; 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
-
-
-