1
0
mirror of https://github.com/g012/l65.git synced 2024-09-28 10:54:37 +00:00
l65/samples/nes_hello.l65

41 lines
967 B
Plaintext

require'nes'
mappers.NROM()
location(chrrom)
do
-- nes_ascii.chr: MIT License Copyright (c) 2016 Doug Fraker, www.nesdoug.com
local f = assert(io.open('nes_ascii.chr', 'rb'))
local d = f:read('*a') f:close()
@@chrdata byte(d)
end
location(prgrom)
@@nmi rti
@@irq rti
local hello = "Hello World!"
@@text byte(hello)
@@main
init()
vblank_waitbegin()
-- load BG palette in PPU RAM
ppu_addr(BGPAL)
for _,v in ipairs{ 0x1f, 0x00, 0x10, 0x20 } do lda #v sta PPUDATA end
-- load screen text in PPU RAM 0x21CA
ppu_addr(0x21ca)
ldy #0 @_loadtxt lda text,y sta PPUDATA iny cpy ##hello bne _loadtxt
-- reset scroll position
ppu_addr(0) sta BGSCROL sta BGSCROL
-- turn screen on
lda #0x90 sta PPUCTRL lda #0x1e sta PPUMASK
-- idle
@_loop jmp _loop
writebin(filename..'.nes')
writesym(filename..'.mlb', 'mesen')
writesym(filename..'.nes', 'fceux')
print(stats)