.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