Module:GameboyAssembler

-- This module is a very deep WIP. Do /not/ use. Feel free to contribute if you want, however. Thanks, Moony.

local p = {}

local data = mw.loadData('Module:GameboyAssembler/data')

local bit = require('bit');

local opcode = {}; do local opcode_mt = {} function opcode_mt:clone return setmetatable({				dword = self.dword,				length = self.length			}, opcode_mt) end function opcode:dump return ("%08X "):rep(#self.dwords):format(unpack(self.dwords)) end function opcode:addbyte(by) if (self.length >= 4) then error("Out of range. GB instrs are at most 4 bytes!") end self.dword = self.dword + bit.lshift(by, self.length * 8) return self end function opcode.make(by, size) return setmetatable({				dword = by,				length = math.ceil(size)			}, opcode_mt) end end

-- Temporary nonsense below this line. p.data = data

return p