ref: 69b20fa83e6d1f36f57e876b30c51d14277f78ee
dir: /home/lcd.asm/
; LCD handling Function547:: ; 547 ld a, [hLCDStatCustom] cp rSCX & $ff ret nz ld c, a ld a, [LYOverrides] ld [$ff00+c], a ret ; 552 LCD:: ; 552 push af ld a, [hLCDStatCustom] and a jr z, .done ; At this point it's assumed we're in WRAM bank 5! push bc ld a, [rLY] ld c, a ld b, LYOverrides >> 8 ld a, [bc] ld b, a ld a, [hLCDStatCustom] ld c, a ld a, b ld [$ff00+c], a pop bc .done pop af reti ; 568 DisableLCD:: ; 568 ; Turn the LCD off ; Don't need to do anything if the LCD is already off ld a, [rLCDC] bit 7, a ; lcd enable ret z xor a ld [rIF], a ld a, [rIE] ld b, a ; Disable VBlank res 0, a ; vblank ld [rIE], a .wait ; Wait until VBlank would normally happen ld a, [rLY] cp 145 jr nz, .wait ld a, [rLCDC] and %01111111 ; lcd enable off ld [rLCDC], a xor a ld [rIF], a ld a, b ld [rIE], a ret ; 58a EnableLCD:: ; 58a ld a, [rLCDC] set 7, a ; lcd enable ld [rLCDC], a ret ; 591