; ; 2016-02-28, Groepaz ; 2017-08-17, Greg King ; ; char cpeekc (void); ; .export _cpeekc .import ppubuf_waitempty .forceimport initconio .include "nes.inc" _cpeekc: ; wait until all console data has been written jsr ppubuf_waitempty ldy SCREEN_PTR+1 lda SCREEN_PTR ; waiting for vblank is incredibly slow :// vwait: ; ldx PPU_STATUS ; bpl vwait ldx #>$0000 sty PPU_VRAM_ADDR2 sta PPU_VRAM_ADDR2 lda PPU_VRAM_IO ; first read is invalid lda PPU_VRAM_IO ; get data stx PPU_VRAM_ADDR2 stx PPU_VRAM_ADDR2 and #<~$80 ; remove reverse bit rts