0 Members and 7 Guests are viewing this topic.
bit 7,h add hl,de jr z,__inROM ld a,(hl) inc hl ld h,(hl) ld l,a ret__inROM: ;Archived file reading happens here
And I couldn't figure out how to delete the poll... so I just decided to make a goofy question instead
Switch(X)Case 11->YCase 23->ZCase 5X-Z->YCase ElseSin(Cos(Sin(Cos(X))))->YEnd
Hey, I'd like to request that the archived file reading method be modified to allow reading from programs in RAM as well. I have an idea as to how this might be accomplished.Currently, the file byte read routine takes two arguments: an address in HL (any offset is already added in) and a page number in A. If the address is not in the $4000-$7FFF range, it increases the page as much as needed and the pointer is then put into this range.I'd like to suggest that the routine take three arguments: the start address in HL, the offset in DE, and the page number in A. This takes the load of adding the offset off of the calling code, too. For reads that have no offset, you can make a secondary entry point that loads DE with 0 and runs the routine.Here's what I suggest for the start of the routine:Code: [Select] bit 7,h add hl,de jr z,__inROM ld a,(hl) inc hl ld h,(hl) ld l,a ret__inROM: ;Archived file reading happens here
Pleeeeeeeeeeaaaaaaaaaaaaaase give us the ability to retrieve the address of our labels. That would be absurdly useful for a project I've been working on in my spare time.