From f7930b625c6732857b5e1d440de6d8c0ca22d0c3 Mon Sep 17 00:00:00 2001 From: angelosa Date: Mon, 29 Nov 2021 16:33:58 +0100 Subject: Remove template code generators --- src/mame/etc/doxy_driver.h | 39 -------- src/mame/etc/gen_device_defs.py | 76 --------------- src/mame/etc/template_cpu.cpp | 129 ------------------------- src/mame/etc/template_cpu.h | 70 -------------- src/mame/etc/template_device.cpp | 83 ---------------- src/mame/etc/template_device.h | 40 -------- src/mame/etc/template_driver.cpp | 199 --------------------------------------- src/mame/etc/template_readme.txt | 43 --------- 8 files changed, 679 deletions(-) delete mode 100644 src/mame/etc/doxy_driver.h delete mode 100644 src/mame/etc/gen_device_defs.py delete mode 100644 src/mame/etc/template_cpu.cpp delete mode 100644 src/mame/etc/template_cpu.h delete mode 100644 src/mame/etc/template_device.cpp delete mode 100644 src/mame/etc/template_device.h delete mode 100644 src/mame/etc/template_driver.cpp delete mode 100644 src/mame/etc/template_readme.txt diff --git a/src/mame/etc/doxy_driver.h b/src/mame/etc/doxy_driver.h deleted file mode 100644 index 66e90c178b8..00000000000 --- a/src/mame/etc/doxy_driver.h +++ /dev/null @@ -1,39 +0,0 @@ -/*! @file doxy_driver.h - @license BSD-3-Clause - @copyright Angelo Salese & the MAME team - - @basehw 4enraya - Main CPU: Z80 - Sound Chip: AY8910 - - @memmap 4enraya,Z80 - 0x0000-0xbfff ROM - 0xc000-0xcfff work RAM - 0xd000-0xdfff VRAM mirrored write, - tilemap offset = address & 0x3ff - tile number = bits 0-7 = data, bits 8,9 = address bits 10,11 - 0xe000-0xefff VRAM mirror - 0xf000-0xffff NOP - - @iomap 4enraya,Z80 - 0x00-0x00 R dip-switches - 0x01-0x01 R inputs - 0x02-0x02 R system inputs - 0x23-0x23 W ay8910 data write - 0x33-0x33 W ay8910 control write - - @irq 4enraya,Z80 - @irqnum 0 @irqname Timer IRQ - */ - - -/** - template for Doxygen commenting style for drivers - All accepted special commands that aren't in Doxygen needs to be hooked up into the ini file. - memmap/iomap/irq -> [%s,%s] -> [name_of_romset,cpu_name] - irqnum -> type of irq, might accept one or two commands (for vectors) - irqname -> A description of the irq used, might use brief and extended description. - - @sa http://www.stack.nl/~dimitri/doxygen/manual/commands.html - @todo needs discussion for accepted standardized syntax - */ diff --git a/src/mame/etc/gen_device_defs.py b/src/mame/etc/gen_device_defs.py deleted file mode 100644 index 1e98ce1d15a..00000000000 --- a/src/mame/etc/gen_device_defs.py +++ /dev/null @@ -1,76 +0,0 @@ -# license: BSD-3-Clause -"""Simple Python script to generate a new definition from the template_* files -""" -import argparse -import os - -def get_args(): - parser = argparse.ArgumentParser(description=""" - Create a new device .cpp/.h definition, using template_device.* as a base. - All arguments are sanitized to match the given patterns - """ - ) - parser.add_argument( - "-device_file", - required=True, - type=str, - help="The device .cpp/.h base file name, also the header macro directive \"acorn_vidc20.cpp\" -> \"MAME_MACHINE_ACORN_VIDC20_H\"" - ) - # TODO: directory option, honor with os.getcwd() as default - parser.add_argument( - "-license_opt", - default="BSD-3-Clause", - type=str, - help="License option" - ) - parser.add_argument( - "-device_longname", - required=True, - type=str, - help="Friendly name for a device \"Acorn VIDC20\"" - ) - parser.add_argument( - "-device_classname", - required=True, - type=str, - help="Class declaration \"acorn_vidc20\", this will also be the filename output" - ) - parser.add_argument( - "-device_typename", - required=True, - type=str, - help='Type handle declaration \"ACORN_VIDC20\"' - ) - parser.add_argument( - "-author_name", - required=True, - type=str, - help="Your author handle name in copyright header" - ) - # TODO: add optional structures like device_memory_interface - - user_input = vars(parser.parse_args()) - return { - **user_input, - "device_header": user_input["device_file"].upper() - } - -def sanitize(k, v): - rules_fn = { - "device_typename": lambda v: v.upper().strip(), - "device_classname": lambda v: v.lower().strip() - # TODO: validate license_opt with an enum - } - return rules_fn.get(k, lambda v: v.strip())(v) - -if __name__ == '__main__': - args = get_args() - for file_type in [".cpp", ".h"]: - with open(".{0}template_device{1}".format(os.path.sep, file_type), "r", encoding="utf-8", newline="\n") as template_fh: - buf_string = template_fh.read() - for k, v in args.items(): - if k == "device_file": - continue - buf_string = buf_string.replace("<" + k + ">", sanitize(k, v)) - with open(".{0}{1}{2}".format(os.path.sep, args["device_file"], file_type), "w", encoding="utf-8", newline="\n") as result_fh: - result_fh.write(buf_string) diff --git a/src/mame/etc/template_cpu.cpp b/src/mame/etc/template_cpu.cpp deleted file mode 100644 index a3094005e2c..00000000000 --- a/src/mame/etc/template_cpu.cpp +++ /dev/null @@ -1,129 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders: -/***************************************************************************** - * - * template for CPU cores - * - *****************************************************************************/ - -#include "emu.h" -#include "xxx.h" -#include "debugger.h" - - -DEFINE_DEVICE_TYPE(XXX, xxx_cpu_device, "xxx", "XXX") - - -/* FLAGS */ -#if 0 -#define S 0x80 -#define Z 0x40 -#define OV 0x20 -#define C 0x10 -#endif - - -#define xxx_readop(A) m_program->read_dword(A) -#define xxx_readmem16(A) m_data->read_dword(A) -#define xxx_writemem16(A,B) m_data->write_dword((A),B) - - -/*********************************** - * illegal opcodes - ***********************************/ -void xxx_cpu_device::xxx_illegal() -{ - logerror("xxx illegal opcode at 0x%04x\n", m_pc); - m_icount -= 1; -} - -/* Execute cycles */ -void cp1610_cpu_device::execute_run() -{ - uint16_t opcode; - - do - { - debugger_instruction_hook(this, m_pc); - - opcode = xxx_readop(m_pc); - m_pc++; - - switch( opcode ) - { - default: - xxx_illegal(); - break; - } - - } while( m_icount > 0 ); -} - - -void xxx_cpu_device::device_start() -{ - m_program = &space(AS_PROGRAM); - m_data = &space(AS_DATA); - - save_item(NAME(m_pc)); - save_item(NAME(m_flags)); - - // Register state for debugger - state_add( CP1610_R0, "PC", m_pc ).formatstr("%02X"); - state_add( STATE_GENPC, "GENPC", m_r[7] ).noshow(); - state_add( STATE_GENPCBASE, "CURPC", m_r[7] ).noshow(); - state_add( STATE_GENFLAGS, "GENFLAGS", m_flags ).noshow(); - - m_icountptr = &m_icount; -} - -#if 0 -void xxx_cpu_device::execute_set_input(int irqline, int state) -{ - switch(irqline) - { - case XXX_INT_INTRM: // level-sensitive - m_intrm_pending = ((ASSERT_LINE == state) || (HOLD_LINE == state)); - m_intrm_state = (ASSERT_LINE == state); - break; - case XXX_RESET: // edge-sensitive - if (CLEAR_LINE != state) - m_reset_pending = 1; - m_reset_state = (ASSERT_LINE == state); - break; - case XXX_INT_INTR: // edge-sensitive - if (CLEAR_LINE != state) - m_intr_pending = 1; - m_intr_state = (ASSERT_LINE == state); - break; - } -} -#endif - -xxx_cpu_device::xxx_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : cpu_device(mconfig, XXX, tag, owner, clock) - , m_program_config("program", ENDIANNESS_BIG, 8, 32, -1) - , m_data_config("data", ENDIANNESS_BIG, 8, 32, 0) -{ -} - - -void xxx_cpu_device::state_string_export(const device_state_entry &entry, std::string &str) const -{ - switch (entry.index()) - { - case STATE_GENFLAGS: - str = util::string_format("%c%c%c%c", - m_flags & 0x80 ? 'S':'.', - m_flags & 0x40 ? 'Z':'.', - m_flags & 0x20 ? 'V':'.', - m_flags & 0x10 ? 'C':'.'); - break; - } -} - - -offs_t xxx_cpu_device::disassemble(char *buffer, offs_t pc, const uint32_t *oprom, const uint32_t *opram, uint32_t options) -{ - return CPU_DISASSEMBLE_NAME(xxx)(this, buffer, pc, opcodes, params, options); -} diff --git a/src/mame/etc/template_cpu.h b/src/mame/etc/template_cpu.h deleted file mode 100644 index b4618c1eedb..00000000000 --- a/src/mame/etc/template_cpu.h +++ /dev/null @@ -1,70 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders: -/***************************************************************************** - * - * template for CPU cores - * - *****************************************************************************/ - -#ifndef MAME_CPU_XXX_H -#define MAME_CPU_XXX_H - -#pragma once - -enum -{ - #if UNUSED - XXX_R0=1, XXX_R1, XXX_R2, XXX_R3, - XXX_R4, XXX_R5, XXX_R6, XXX_R7 - #endif -}; - - -class xxx_cpu_device : public cpu_device -{ -public: - // construction/destruction - xxx_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - - // device_execute_interface overrides - virtual uint32_t execute_min_cycles() const noexcept override { return 1; } - virtual uint32_t execute_max_cycles() const noexcept override { return 7; } - virtual uint32_t execute_input_lines() const noexcept override { return 0; } - virtual void execute_run() override; - virtual void execute_set_input(int inputnum, int state) override; - - // device_memory_interface overrides - virtual const address_space_config *memory_space_config(int spacenum) const override { return (spacenum == AS_PROGRAM) ? &m_program_config : (spacenum == AS_DATA) ? &m_data_config : nullptr; } - - // device_state_interface overrides - virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; - - // device_disasm_interface overrides - virtual uint32_t opcode_alignment() const override { return 4; } - virtual offs_t disassemble(char *buffer, offs_t pc, const data_buffer &opcodes, const data_buffer ¶ms, uint32_t options) override; - -private: - address_space_config m_program_config; - - uint8_t m_pc; /* registers */ - uint8_t m_flags; /* flags */ - address_space *m_program; - address_space *m_data; - int m_icount; - - void xxx_illegal(); - -}; - - -DECLARE_DEVICE_TYPE(XXX, xxx_cpu_device) - - -CPU_DISASSEMBLE( xxx ); - -#endif // MAME_CPU_XXX_H diff --git a/src/mame/etc/template_device.cpp b/src/mame/etc/template_device.cpp deleted file mode 100644 index a6db47404b4..00000000000 --- a/src/mame/etc/template_device.cpp +++ /dev/null @@ -1,83 +0,0 @@ -// license: -// copyright-holders: -/*************************************************************************** - - - -***************************************************************************/ - -#include "emu.h" -#include ".h" - - -//************************************************************************** -// GLOBAL VARIABLES -//************************************************************************** - - -// device type definition -DEFINE_DEVICE_TYPE(, _device, "", "") - - -//************************************************************************** -// LIVE DEVICE -//************************************************************************** - - -//------------------------------------------------- -// _device - constructor -//------------------------------------------------- - - -_device::_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, , tag, owner, clock) -{ -} - - -//------------------------------------------------- -// device_add_mconfig - device-specific machine -// configuration addiitons -//------------------------------------------------- - - -void _device::device_add_mconfig(machine_config &config) -{ - //DEVICE(config, ...); -} - - -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - - -void _device::device_start() -{ -} - - -//------------------------------------------------- -// device_reset - device-specific reset -//------------------------------------------------- - - -void _device::device_reset() -{ -} - - -//************************************************************************** -// READ/WRITE HANDLERS -//************************************************************************** - - -uint8_t _device::read(address_space &space, offs_t offset, uint8_t mem_mask = ~0) -{ - return 0; -} - - -void _device::write(address_space &space, offs_t offset, uint8_t data, uint8_t mem_mask = ~0) -{ -} diff --git a/src/mame/etc/template_device.h b/src/mame/etc/template_device.h deleted file mode 100644 index 60c35617204..00000000000 --- a/src/mame/etc/template_device.h +++ /dev/null @@ -1,40 +0,0 @@ -// license: -// copyright-holders: -/*************************************************************************** - - - -***************************************************************************/ - -#ifndef MAME_MACHINE__H -#define MAME_MACHINE__H - -#pragma once - -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - -class _device : public device_t -{ -public: - // construction/destruction - _device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - // I/O operations - void write(address_space &space, offs_t offset, uint8_t data, uint8_t mem_mask = ~0); - uint8_t read(address_space &space, offs_t offset, uint8_t mem_mask = ~0); - -protected: - // device-level overrides - //virtual void device_validity_check(validity_checker &valid) const override; - virtual void device_add_mconfig(machine_config &config) override; - virtual void device_start() override; - virtual void device_reset() override; -}; - - -// device type definition -DECLARE_DEVICE_TYPE(, _device) - -#endif // MAME_MACHINE__H diff --git a/src/mame/etc/template_driver.cpp b/src/mame/etc/template_driver.cpp deleted file mode 100644 index cb7dc988d5a..00000000000 --- a/src/mame/etc/template_driver.cpp +++ /dev/null @@ -1,199 +0,0 @@ -// license: -// copyright-holders: -/*************************************************************************** - - - -***************************************************************************/ - - -#include "emu.h" -#include "cpu/z80/z80.h" -#include "emupal.h" -#include "screen.h" -#include "speaker.h" - -#define MAIN_CLOCK XTAL(8'000'000) - -class xxx_state : public driver_device -{ -public: - xxx_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) - , m_maincpu(*this, "maincpu") - , m_palette(*this, "palette") - { - } - - void xxx(machine_config &config); - -protected: - // driver_device overrides - virtual void machine_start() override; - virtual void machine_reset() override; - - virtual void video_start() override; - -private: - // screen updates - uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - void xxx_palette(palette_device &palette) const; - - void xxx_io(address_map &map); - void xxx_map(address_map &map); - - // devices - required_device m_maincpu; - required_device m_palette; -}; - -void xxx_state::video_start() -{ -} - -uint32_t xxx_state::screen_update( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) -{ - return 0; -} - -void xxx_state::xxx_map(address_map &map) -{ - map(0x0000, 0x7fff).rom(); -} - -void xxx_state::xxx_io(address_map &map) -{ - map.global_mask(0xff); -} - -static INPUT_PORTS_START( xxx ) - /* dummy active high structure */ - PORT_START("SYSA") - PORT_DIPNAME( 0x01, 0x00, "SYSA" ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x01, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x02, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x04, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x08, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x10, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x20, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x40, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x00, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x80, DEF_STR( On ) ) - - /* dummy active low structure */ - PORT_START("DSWA") - PORT_DIPNAME( 0x01, 0x01, "DSWA" ) - PORT_DIPSETTING( 0x01, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x02, 0x02, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x04, 0x04, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x04, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x08, 0x08, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x10, 0x10, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x10, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x20, 0x20, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x20, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x40, 0x40, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x40, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_DIPNAME( 0x80, 0x80, DEF_STR( Unknown ) ) - PORT_DIPSETTING( 0x80, DEF_STR( Off ) ) - PORT_DIPSETTING( 0x00, DEF_STR( On ) ) -INPUT_PORTS_END - -static const gfx_layout charlayout = -{ - 8,8, - RGN_FRAC(1,1), - 1, - { RGN_FRAC(0,1) }, - { 0, 1, 2, 3, 4, 5, 6, 7 }, - { 0*8, 1*8, 2*8, 3*8, 4*8, 5*8, 6*8, 7*8 }, - 8*8 -}; - -static GFXDECODE_START( gfx_xxx ) - GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 1 ) -GFXDECODE_END - - -void xxx_state::machine_start() -{ -} - -void xxx_state::machine_reset() -{ -} - - -void xxx_state::xxx_palette(palette_device &palette) const -{ -} - -void xxx_state::xxx(machine_config &config) -{ - /* basic machine hardware */ - Z80(config, m_maincpu, MAIN_CLOCK/2); - m_maincpu->set_addrmap(AS_PROGRAM, &xxx_state::xxx_map); - m_maincpu->set_addrmap(AS_IO, &xxx_state::xxx_io); - - /* video hardware */ - screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); - screen.set_screen_update(FUNC(xxx_state::screen_update)); - screen.set_raw(MAIN_CLOCK/2, 442, 0, 320, 264, 0, 240); /* generic NTSC video timing at 320x240 */ - screen.set_palette(m_palette); - - GFXDECODE(config, "gfxdecode", m_palette, gfx_xxx); - - PALETTE(config, m_palette, FUNC(xxx_state::xxx_palette), 8); - - /* sound hardware */ - SPEAKER(config, "mono").front_center(); -} - - -/*************************************************************************** - - Machine driver(s) - -***************************************************************************/ - - - ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASE00 ) - ROM_REGION( 0x10000, "gfx1", ROMREGION_ERASE00 ) - -// See src/emu/gamedrv.h for details -// For a game: -// GAME(YEAR,NAME,PARENT,MACHINE,INPUT,CLASS,DRIVER_INIT,MONITOR,COMPANY,FULLNAME,FLAGS) - -// For a console: -// CONS(YEAR,NAME,PARENT,COMPAT,MACHINE,INPUT,CLASS,DRIVER_INIT,COMPANY,FULLNAME,FLAGS) - -// For a computer: -// COMP(YEAR,NAME,PARENT,COMPAT,MACHINE,INPUT,CLASS,DRIVER_INIT,COMPANY,FULLNAME,FLAGS) - -// For a generic system: -// SYST(YEAR,NAME,PARENT,COMPAT,MACHINE,INPUT,CLASS,DRIVER_INIT,COMPANY,FULLNAME,FLAGS) - -GAME( 198?, xxx, 0, xxx, xxx, xxx_state, empty_init, ROT0, "", "", MACHINE_IS_SKELETON ) diff --git a/src/mame/etc/template_readme.txt b/src/mame/etc/template_readme.txt deleted file mode 100644 index 49410ff2b2e..00000000000 --- a/src/mame/etc/template_readme.txt +++ /dev/null @@ -1,43 +0,0 @@ -The template family tree is an attempt to ease the pain to write CPUs/drivers/devices -from scratch (useful especially for smaller targets). - -=== -Usage: -- Any "xxx" name is case-sensitive (i.e., XXX -> NAMEOFDEVICE, xxx -> nameofdevice); - -=== -License: -Copyright (c) 2014, Angelo Salese & the MAME team -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -=== -TODO: -- Define convention for template inputs (i.e. optimal for each host); -- Write template drivers for different endianesses; -- Write template header for drivers; -- Write tool program that auto-generate contents; -- Fix SCREEN_RAW_PARAMS, perhaps actually link to a framework class/macro list, a couple of references are: - http://www.ntsc-tv.com/ntsc-index-02.htm - http://www.intersil.com/content/dam/Intersil/documents/tb36/tb368.pdf -- cgit v1.2.3