.CLIP_b1 LDA currentBank ; Fetch the number of the ROM bank that is currently PHA ; paged into memory at $8000 and store it on the stack LDA #1 ; Page ROM bank 1 into memory at $8000 JSR SetBank JSR CLIP ; Call CLIP, now that it is paged into memory BCS P%+5 ; If the C flag is set then the clipped line does not ; fit on-screen, so skip the next instruction JSR LOIN ; The clipped line fits on-screen, so draw it JMP ResetBank ; Fetch the previous ROM bank number from the stack and ; page that bank back into memory at $8000, returning ; from the subroutine using a tail callName: CLIP_b1 [Show more] Type: Subroutine Category: Drawing lines Summary: Call the CLIP routine in ROM bank 1, drawing the clipped line if it fits on-screen Deep dive: Splitting NES Elite across multiple ROM banksContext: See this subroutine in context in the source code References: This subroutine is called as follows: * DrawScrollFrame calls CLIP_b1
[X]
Entry point CLIP in subroutine LL145 (Part 1 of 4) (category: Drawing lines)
Another name for LL145 CLIP2 Don't initialise the values in SWAP or A
[X]
Subroutine LOIN (Part 1 of 7) (category: Drawing lines)
Draw a line: Calculate the line gradient in the form of deltas
[X]
Subroutine ResetBank (category: Utility routines)
Retrieve a ROM bank number from the stack and page that bank into memory at $8000
[X]
Subroutine SetBank (category: Utility routines)
Page a specified ROM bank into memory at $8000
[X]
Variable currentBank in workspace ZP
Contains the number of the ROM bank (0 to 6) that is currently paged into memory at $8000