============================================================================== Source Code Structure for jzIntv J. Zbiciak ============================================================================== ------------- File Layout ------------- Before diving into jzIntv's source structure, first consider the layout of the jzIntv project in its entirety. jzIntv is more than an emulator. It's a complete Intellivision development kit, including several command-line utilities, programming documentation, technical information, as well as the emulator. |-- bin Compiled executables go here | |-- doc Documentation on jzIntv and Intellivision here | | | | Emulator Related: | | ----------------- | |-- jzintv Docs on jzIntv itself | |-- utilities Docs on included utilites | |-- rom_fmt .ROM format documentation | | | | Intellivision Technical Documentation | | ------------------------------------- | |-- De_Re_Intellivision William Moeller's De Re Intellivision | |-- programming Intellivision programming information | |-- color Color reference table | |-- tech Hardware information | |-- voice Intellivoice reverse engineering docs | | | | Miscellaneous | | ------------- | `-- historic Out of date documation | |-- examples Programming examples and Intellivision library functions | `-- src | jzIntv Infrastructure | --------------------- |-- cfg Intellivision initialization and configuration |-- periph Peripheral backplane. Most "objects" derive from periph |-- gfx Graphics abstraction layer |-- snd Sound mixer and abstraction layer |-- event Input event collector |-- speed Rate controller |-- debug Debugger | | Intellivision Components | ------------------------ |-- cp1600 CPU emulation (CP-1600 family) |-- ay8910 PSG emulation (AY-3-8914, AY-3-8915, AY-3-8916, AY-3-8917) |-- stic STIC emulation (AY-3-8900) |-- pads Hand controller and keyboard input emulation |-- mem RAM/ROM emulation | | Intellivision Peripherals | ------------------------- |-- ivoice Intellivoice emulation (SPB-640, SP0256-012) |-- icart Intellicart emulation and utility functions |-- bincfg BIN+CFG handler | | Extras | ------ |-- gif Routines for writing GIF files |-- mvi Routines for recording/decoding movies | | Utility Functions | ----------------- |-- plat Platform adaptation functions |-- file File I/O helpers |-- misc Other misc routines | |-- avl.c AVL tree implementation | |-- ll.c Linked-list implementation | |-- crc16.c 16-bit CRC functions | `-- crc32.c 32-bit CRC functions | | External Utility Programs | ------------------------- |-- dasm Disassembler |-- asm Assembler |-- imasm Preprocessor and GUI environment from Joe Fisher `-- util Simple command-line utilities and utility functions | | ROM Format Conversion/Manipulation | ---------------------------------- |-- bin2rom.c Convert BIN+CFG -> .ROM |-- rom2bin.c Convert .ROM -> BIN+CFG |-- rom_merge.c Merge multiple .ROM/BIN+CFG into single .ROM |-- gms2rom.c Convert INTVPC save-state into playable game |-- split_rom.c Convert a 16-bit ROM image to two 8-bit images | | Cart-Dumper Related | ------------------- |-- cart.c Cart-dumper I/O routines |-- test_cart.c Simple test procedure for cart dumper | | Intellivoice Related | -------------------- |-- dasm0256.c Disassemble voice data |-- filt_calc.c Calculate filter response from coefficients |-- ivplay.c Play voice data to Intellivoice via cart dumper |-- ivreset.c Reset Intellivoice connected to cart dumper | | ECScable Related | ---------------- |-- ec_dump.c Dump ROM images via ECScable |-- ec_load.c Load game image via ECScable |-- ec_test.c Test ECScable |-- ec_watch.c Watch variables via ECScable |-- ecscable.c ECScable interface routines | | Binary File Manipulation | ------------------------ |-- tohex.c Convert a binary file to a hex dump |-- fromhex.c Convert a hex dump to a binary file |-- tobit.c Convert a binary file to a 1/0 dump |-- frombit.c Convert a 1/0 dump to a binary file |-- tobit_f.c Like tobit, with different output format |-- tobit_r.c Like tobit, except bit order is reversed |-- frombit_r.c Like frombit, except bit order is reversed | | Miscellaneous | ------------- |-- imvtogif.c Convert jzIntv movie file to animated GIF |-- show_grom.c Generate HTML report showing contents of GROM `-- test_hcif.c Test the INTV2PC Hand Controller Interface