123456789101112131415161718192021222324252627282930313233343536 |
- .define Aar
- .sect .text
- .sect .rom
- .sect .data
- .sect .bss
- .sect .text
- ! This subroutine gets the address of the array element
- Aar:
- stx ADDR ! address of descriptor (lowbyte)
- sta ADDR+1 ! address of descriptor (highbyte)
- ldy #0
- lda (ADDR),y ! lowerbound (lowbyte)
- tax
- iny
- lda (ADDR),y ! lowerbound (highbyte)
- jsr Sbi2 ! index - lowerbound
- jsr Push
- 2: ldy #4
- lda (ADDR),y ! objectsize (lowbyte)
- sta NBYTES
- tax
- iny
- lda (ADDR),y ! objectsize (highbyte)
- sta NBYTES+1
- bne 5f
- cpx #1 ! objectsize = 1 then return
- bne 5f ! arrayaddress + index
- jsr Pop
- jmp Adi2
- 5: jsr Mli2 ! objectsize > 1 then return
- jmp Adi2 ! arrayaddress + index * objectsize
|