home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / language / nasm20 / nasm20s / immprel.s65 < prev    next >
Encoding:
Text File  |  1993-10-23  |  1.0 KB  |  42 lines

  1. ; ------------------------------
  2. ; Relocate instr. like
  3. ;  lda #>foo; sta bar+1;
  4. ;  lda #<foo; sta bar;
  5. ;
  6. ; Check whether immediate data
  7. ; relocation is required.
  8. ;     No ERROR CHECKING!!
  9. ; ------------------------------
  10. :yplus1  iny
  11.          bne   :o1
  12.          inc   :vim+1
  13. :o1      rts
  14. ; -----------------------------
  15. :do_imms ldy   #0             ; set Y for later
  16.          ldx   #0             ; Set and keep X at 0
  17.          lda   (:vim),y       ; get #pages
  18.          sta   :pages         ; MSB
  19.  
  20. :getnext jsr   :yplus1
  21.          lda   (:vim),y       ; get next entry count
  22.          beq   :nxtpage
  23.          sta   :entries
  24.  
  25. :m1      jsr   :yplus1
  26.          lda   (:vim),y       ; get pointer to
  27.          sta   :foo           ; vimediate location
  28.          lda   (:foo,x)       ; update lsb value
  29.          sec
  30.          sbc   :mdif
  31.          sta   (:foo,x)
  32.  
  33.          dec   :entries
  34.          bne   :m1
  35.  
  36. :nxtpage inc   :foo+1         ; skip to next page
  37.          dec   :pages
  38.          bne   :getnext
  39.          rts                  ; all done
  40.  
  41.  
  42.