From bde31dac4cdf01c4a55f0784632b263a073b65f3 Mon Sep 17 00:00:00 2001 From: jespergravgaard Date: Sat, 19 Jun 2021 22:28:44 +0200 Subject: [PATCH] Improved doxygen documentation. #672 --- src/main/kc/include/6502.h | 2 +- src/main/kc/include/atari-gtia.h | 1 + src/main/kc/include/atari-pokey.h | 1 + src/main/kc/include/atari-tia.h | 1 + src/main/kc/include/atari-xl.h | 1 + src/main/kc/include/atari2600.h | 1 + src/main/kc/include/c64-basic-floats.h | 1 + src/main/kc/include/c64-bitmap.h | 1 + src/main/kc/include/c64-keyboard.h | 1 + src/main/kc/include/c64-multiplexer.h | 1 + src/main/kc/include/c64-print.h | 1 + src/main/kc/include/c64-time.h | 3 +- src/main/kc/include/c64-tod.h | 1 + src/main/kc/include/c64dtv.h | 2 +- src/main/kc/include/cbm.h | 1 + src/main/kc/include/conio-lines.h | 3 +- src/main/kc/include/conio.h | 1 + src/main/kc/include/cx16-bitmap.h | 1 + src/main/kc/include/cx16-kernal.h | 2 + src/main/kc/include/cx16-vera.h | 1 + src/main/kc/include/cx16-veralib.h | 2 +- src/main/kc/include/cx16.h | 65 ++++++++++--------- src/main/kc/include/division.h | 1 + src/main/kc/include/fastmultiply.h | 1 + src/main/kc/include/mega65-dma.h | 46 ++++++------- src/main/kc/include/mega65-f018.h | 1 + src/main/kc/include/mega65-math.h | 1 + src/main/kc/include/mega65-memorymapper.h | 1 + src/main/kc/include/mega65-viciv.h | 1 + src/main/kc/include/mos6522.h | 1 + src/main/kc/include/mos6523.h | 1 + src/main/kc/include/mos6526.h | 1 + src/main/kc/include/mos6529.h | 1 + src/main/kc/include/mos6532.h | 1 + src/main/kc/include/mos6551.h | 1 + src/main/kc/include/mos6561.h | 1 + src/main/kc/include/mos6569.h | 3 + src/main/kc/include/mos6581.h | 3 + src/main/kc/include/mos7360.h | 2 + src/main/kc/include/mos7501.h | 1 + src/main/kc/include/nes.h | 29 +++++---- src/main/kc/include/peekpoke.h | 1 + src/main/kc/include/plus4.h | 1 + src/main/kc/include/ricoh_2a03.h | 1 + src/main/kc/include/ricoh_2c02.h | 1 + src/main/kc/include/sine.h | 21 +++--- src/main/kc/include/stdint.h | 1 + src/main/kc/include/stdlib.h | 25 +++---- src/main/kc/include/string.h | 9 +-- src/main/kc/include/vic20.h | 1 + src/test/ref/bitmap-circle-2.asm | 1 + src/test/ref/bitmap-circle-2.log | 12 ++-- src/test/ref/bitmap-plot-0.asm | 1 + src/test/ref/bitmap-plot-0.log | 2 + src/test/ref/bitmap-plot-3.asm | 1 + src/test/ref/bitmap-plot-3.log | 4 +- src/test/ref/c64dtv-8bppcharstretch.asm | 2 +- src/test/ref/c64dtv-8bppcharstretch.log | 4 +- src/test/ref/c64dtv-8bppchunkystretch.asm | 2 +- src/test/ref/c64dtv-8bppchunkystretch.log | 4 +- src/test/ref/c64dtv-blittermin.asm | 2 +- src/test/ref/c64dtv-blittermin.log | 4 +- src/test/ref/constants.asm | 1 + src/test/ref/constants.log | 2 + .../ref/examples/atari2600/atari2600-demo.asm | 1 + .../ref/examples/atari2600/atari2600-demo.log | 2 + .../examples/atari2600/atari2600-sprites.asm | 1 + .../examples/atari2600/atari2600-sprites.log | 2 + src/test/ref/examples/c64/3d/perspective.asm | 1 + src/test/ref/examples/c64/3d/perspective.log | 2 + .../c64/bresenham/bitmap-bresenham.asm | 1 + .../c64/bresenham/bitmap-bresenham.log | 4 +- .../ref/examples/c64/irq/irq-hyperscreen.asm | 1 + .../ref/examples/c64/irq/irq-hyperscreen.log | 2 + .../c64/multiplexer/simple-multiplexer.asm | 1 + .../c64/multiplexer/simple-multiplexer.log | 2 + src/test/ref/examples/c64/music/music.asm | 1 + src/test/ref/examples/c64/music/music.log | 2 + src/test/ref/examples/c64/music/music_irq.asm | 1 + src/test/ref/examples/c64/music/music_irq.log | 2 + .../examples/c64/rasterbars/raster-bars.asm | 1 + .../examples/c64/rasterbars/raster-bars.log | 2 + src/test/ref/examples/c64/scroll/scroll.asm | 1 + src/test/ref/examples/c64/scroll/scroll.log | 2 + .../ref/examples/c64/scrollbig/scrollbig.asm | 1 + .../ref/examples/c64/scrollbig/scrollbig.log | 2 + .../ref/examples/c64/showlogo/showlogo.asm | 1 + .../ref/examples/c64/showlogo/showlogo.log | 2 + src/test/ref/examples/mega65/dma-test.asm | 1 + src/test/ref/examples/mega65/dma-test.log | 2 + src/test/ref/examples/mega65/dma-test2.asm | 1 + src/test/ref/examples/mega65/dma-test2.log | 2 + src/test/ref/examples/mega65/dma-test3.asm | 1 + src/test/ref/examples/mega65/dma-test3.log | 2 + src/test/ref/examples/mega65/dma-test4.asm | 1 + src/test/ref/examples/mega65/dma-test4.log | 2 + src/test/ref/examples/mega65/dma-test5.asm | 1 + src/test/ref/examples/mega65/dma-test5.log | 2 + src/test/ref/examples/mega65/dma-test6.asm | 1 + src/test/ref/examples/mega65/dma-test6.log | 2 + .../ref/examples/mega65/memorymap-test.asm | 1 + .../ref/examples/mega65/memorymap-test.log | 2 + src/test/ref/examples/mega65/raster65.asm | 1 + src/test/ref/examples/mega65/raster65.log | 8 ++- src/test/ref/examples/mega65/test-vic4.asm | 1 + src/test/ref/examples/mega65/test-vic4.log | 2 + src/test/ref/examples/nes/nes-dxycp.asm | 2 + src/test/ref/examples/nes/nes-dxycp.log | 4 ++ .../ref/examples/plus4/plus4-randomwalk.asm | 2 + .../ref/examples/plus4/plus4-randomwalk.log | 4 ++ src/test/ref/font-hex-show.asm | 1 + src/test/ref/font-hex-show.log | 2 + src/test/ref/incrementinarray.asm | 1 + src/test/ref/incrementinarray.log | 2 + src/test/ref/irq-hardware-clobber-jsr.asm | 1 + src/test/ref/irq-hardware-clobber-jsr.log | 2 + src/test/ref/irq-idx-problem.asm | 1 + src/test/ref/irq-idx-problem.log | 4 +- src/test/ref/keyboard-glitch.asm | 1 + src/test/ref/keyboard-glitch.log | 2 + src/test/ref/linegen.asm | 1 + src/test/ref/linegen.log | 2 + .../ref/millfork-benchmarks/linkedlist-kc.asm | 1 + .../ref/millfork-benchmarks/linkedlist-kc.log | 2 + .../ref/millfork-benchmarks/plasma-kc.asm | 1 + .../ref/millfork-benchmarks/plasma-kc.log | 2 + .../ref/millfork-benchmarks/romsum-kc.asm | 1 + .../ref/millfork-benchmarks/romsum-kc.log | 2 + src/test/ref/millfork-benchmarks/sieve-kc.asm | 1 + src/test/ref/millfork-benchmarks/sieve-kc.log | 2 + src/test/ref/min-fmul-16.asm | 1 + src/test/ref/min-fmul-16.log | 2 + .../simple-multiplexer-irq.asm | 1 + .../simple-multiplexer-irq.log | 2 + src/test/ref/multiply-16bit-const.asm | 1 + src/test/ref/multiply-16bit-const.log | 2 + src/test/ref/plus4-kbhit.asm | 2 + src/test/ref/plus4-kbhit.log | 4 ++ src/test/ref/plus4-keyboard-test.asm | 1 + src/test/ref/plus4-keyboard-test.log | 2 + src/test/ref/printmsg.asm | 1 + src/test/ref/printmsg.log | 2 + src/test/ref/scan-desire-problem.asm | 1 + src/test/ref/scan-desire-problem.log | 2 + src/test/ref/sieve-min.asm | 1 + src/test/ref/sieve-min.log | 2 + src/test/ref/signed-words.asm | 1 + src/test/ref/signed-words.log | 2 + src/test/ref/sinus-basic.asm | 1 + src/test/ref/sinus-basic.log | 2 + src/test/ref/sinusgen16.asm | 1 + src/test/ref/sinusgen16.log | 2 + src/test/ref/struct-ptr-26.asm | 1 + src/test/ref/struct-ptr-26.log | 2 + src/test/ref/test-comparisons-word.asm | 1 + src/test/ref/test-comparisons-word.log | 8 ++- src/test/ref/test-keyboard-space.asm | 1 + src/test/ref/test-keyboard-space.log | 2 + src/test/ref/test-lowhigh.asm | 1 + src/test/ref/test-lowhigh.log | 2 + src/test/ref/tod-1.asm | 1 + src/test/ref/tod-1.log | 2 + src/test/ref/vic20-raster.asm | 2 + src/test/ref/vic20-raster.log | 4 ++ src/test/ref/vic20-simple.asm | 2 + src/test/ref/vic20-simple.log | 4 ++ 166 files changed, 355 insertions(+), 123 deletions(-) diff --git a/src/main/kc/include/6502.h b/src/main/kc/include/6502.h index 13e01a8d3..f4b90933f 100644 --- a/src/main/kc/include/6502.h +++ b/src/main/kc/include/6502.h @@ -1,5 +1,5 @@ /// @file -/// @brief Simple functions wrapping 6502 instructions +/// Simple functions wrapping 6502 instructions /// Set the processor interrupt flag - disabling IRQ's. /// Uses the SEI instruction diff --git a/src/main/kc/include/atari-gtia.h b/src/main/kc/include/atari-gtia.h index f076963a4..434bd3298 100644 --- a/src/main/kc/include/atari-gtia.h +++ b/src/main/kc/include/atari-gtia.h @@ -1,5 +1,6 @@ /// @file /// ATARI Graphic Television Interface Adaptor (GTIA) +/// /// Used in Atari 5200 and the 8-bit series (400, 800, XL, XE) /// https://en.wikipedia.org/wiki/CTIA_and_GTIA diff --git a/src/main/kc/include/atari-pokey.h b/src/main/kc/include/atari-pokey.h index eae8eb087..82ccabdaa 100644 --- a/src/main/kc/include/atari-pokey.h +++ b/src/main/kc/include/atari-pokey.h @@ -1,5 +1,6 @@ /// @file /// ATARI Graphic Television Interface Adaptor (GTIA) +/// /// Used in Atari 5200 and the 8-bit series (400, 800, XL, XE) /// https://en.wikipedia.org/wiki/CTIA_and_GTIA diff --git a/src/main/kc/include/atari-tia.h b/src/main/kc/include/atari-tia.h index fea48a13d..64520d63e 100644 --- a/src/main/kc/include/atari-tia.h +++ b/src/main/kc/include/atari-tia.h @@ -1,5 +1,6 @@ /// @file /// Atari Television Interface Adaptor (TIA) +/// /// https://en.wikipedia.org/wiki/Television_Interface_Adaptor /// http://www.qotile.net/minidig/docs/stella.pdf /// Based on https://github.com/munsie/dasm/blob/master/machines/atari2600/vcs.h diff --git a/src/main/kc/include/atari-xl.h b/src/main/kc/include/atari-xl.h index f06b75c2e..17aaae84e 100644 --- a/src/main/kc/include/atari-xl.h +++ b/src/main/kc/include/atari-xl.h @@ -1,5 +1,6 @@ /// @file /// Atari 8-bit 400/800/XL/XE Registers and Constants +/// /// https://en.wikipedia.org/wiki/Atari_8-bit_family #ifndef __ATARIXL__ diff --git a/src/main/kc/include/atari2600.h b/src/main/kc/include/atari2600.h index 5503e96ff..33074ed12 100644 --- a/src/main/kc/include/atari2600.h +++ b/src/main/kc/include/atari2600.h @@ -1,5 +1,6 @@ /// @file /// Atari 2600 Registers and Constants +/// /// https://web.archive.org/web/20170215054248/http://www.atariguide.com/pdfs/Atari_2600_VCS_Domestic_Field_Service_Manual.pdf #ifndef __ATARI2600__ diff --git a/src/main/kc/include/c64-basic-floats.h b/src/main/kc/include/c64-basic-floats.h index 2d6c9448c..3e2b4a334 100644 --- a/src/main/kc/include/c64-basic-floats.h +++ b/src/main/kc/include/c64-basic-floats.h @@ -1,5 +1,6 @@ /// @file /// Library wrapping the BASIC floating point functions +/// /// See https://www.c64-wiki.com/wiki/Floating_point_arithmetic /// See http://www.pagetable.com/c64rom/c64rom_sc.html diff --git a/src/main/kc/include/c64-bitmap.h b/src/main/kc/include/c64-bitmap.h index a773d366a..322fbd11a 100644 --- a/src/main/kc/include/c64-bitmap.h +++ b/src/main/kc/include/c64-bitmap.h @@ -1,5 +1,6 @@ /// @file /// Simple single-color (320x200) bitmap routines + /// Initialize bitmap plotting tables void bitmap_init(char* gfx, char* screen); diff --git a/src/main/kc/include/c64-keyboard.h b/src/main/kc/include/c64-keyboard.h index 0d7b5eb22..861047db1 100644 --- a/src/main/kc/include/c64-keyboard.h +++ b/src/main/kc/include/c64-keyboard.h @@ -1,5 +1,6 @@ /// @file /// Simple Keyboard Input Library +/// /// C64 Keyboard Matrix Reference - from http://codebase64.org/doku.php?id=base:reading_the_keyboard /// Keyboard Codes are %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7) /// +----+----------------------+-------------------------------------------------------------------------------------------------------+ diff --git a/src/main/kc/include/c64-multiplexer.h b/src/main/kc/include/c64-multiplexer.h index 533f2f84c..3c0ac3438 100644 --- a/src/main/kc/include/c64-multiplexer.h +++ b/src/main/kc/include/c64-multiplexer.h @@ -1,5 +1,6 @@ /// @file /// A flexible sprite multiplexer routine for 32 sprites. +/// /// Usage: /// - Once: /// - plexInit(screen): Initialize the data structures and set the screen address diff --git a/src/main/kc/include/c64-print.h b/src/main/kc/include/c64-print.h index 72a4fc7bf..c1d0a8ec2 100644 --- a/src/main/kc/include/c64-print.h +++ b/src/main/kc/include/c64-print.h @@ -1,5 +1,6 @@ /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element /// Print a number of zero-terminated strings, each followed by a newline. diff --git a/src/main/kc/include/c64-time.h b/src/main/kc/include/c64-time.h index 2054f63b2..952bc5ef7 100644 --- a/src/main/kc/include/c64-time.h +++ b/src/main/kc/include/c64-time.h @@ -1,6 +1,7 @@ /// @file /// C standard library time.h -/// Functions to get and manipulate date and time information. +/// +/// Functions to get and manipulate date and time information. /// Type suitable for storing the processor time. typedef unsigned long clock_t; diff --git a/src/main/kc/include/c64-tod.h b/src/main/kc/include/c64-tod.h index e7854ab5c..3700196f6 100644 --- a/src/main/kc/include/c64-tod.h +++ b/src/main/kc/include/c64-tod.h @@ -1,5 +1,6 @@ /// @file /// Time-of-day helper +/// /// Uses the MOS6526 CIA#1 on Commodore 64 /// Time-of-day 24 hour format diff --git a/src/main/kc/include/c64dtv.h b/src/main/kc/include/c64dtv.h index c5dd5e1d3..9edd775d6 100644 --- a/src/main/kc/include/c64dtv.h +++ b/src/main/kc/include/c64dtv.h @@ -1,6 +1,6 @@ /// @file /// C64 DTV version 2 Registers and Constants -// +/// /// Sources /// (J) https://www.c64-wiki.com/wiki/C64DTV_Programming_Guide /// (H) http://dtvhacking.cbm8bit.com/dtv_wiki/images/d/d9/Dtv_registers_full.txt diff --git a/src/main/kc/include/cbm.h b/src/main/kc/include/cbm.h index a7e83b45a..1ac67d0fc 100644 --- a/src/main/kc/include/cbm.h +++ b/src/main/kc/include/cbm.h @@ -1,5 +1,6 @@ /// @file /// Commodore Kernal functions +/// /// See http://www.c64os.com/post/c64kernalrom#iec_acptr /// Compatible with https://github.com/cc65/cc65/blob/master/include/cbm.h diff --git a/src/main/kc/include/conio-lines.h b/src/main/kc/include/conio-lines.h index 7401b5133..399d24b8d 100644 --- a/src/main/kc/include/conio-lines.h +++ b/src/main/kc/include/conio-lines.h @@ -1,6 +1,7 @@ /// @file /// Provides provide simple horisontal/vertical lines routines on top of conio.h -/// For compatibility with CC65 https://github.com/cc65/cc65/blob/master/include/conio.h +/// +/// For compatibility with CC65 https://github.com/cc65/cc65/blob/master/include/conio.h #include diff --git a/src/main/kc/include/conio.h b/src/main/kc/include/conio.h index fbca071e2..269817f16 100644 --- a/src/main/kc/include/conio.h +++ b/src/main/kc/include/conio.h @@ -1,5 +1,6 @@ /// @file /// Provides provide console input/output +/// /// Implements similar functions as conio.h from CC65 for compatibility /// See https://github.com/cc65/cc65/blob/master/include/conio.h // diff --git a/src/main/kc/include/cx16-bitmap.h b/src/main/kc/include/cx16-bitmap.h index 5d21ccf21..0584218fe 100644 --- a/src/main/kc/include/cx16-bitmap.h +++ b/src/main/kc/include/cx16-bitmap.h @@ -1,5 +1,6 @@ /// @file /// Plot and line drawing routines for HIRES bitmaps +/// /// Currently it can only plot on the first 256 x-positions. /// Initialize the bitmap plotter tables for a specific bitmap diff --git a/src/main/kc/include/cx16-kernal.h b/src/main/kc/include/cx16-kernal.h index 32c13df55..b815572ba 100644 --- a/src/main/kc/include/cx16-kernal.h +++ b/src/main/kc/include/cx16-kernal.h @@ -1,4 +1,6 @@ /// @file + + /// Kernal SETNAM function /// SETNAM. Set file name parameters. void setnam(char* filename); diff --git a/src/main/kc/include/cx16-vera.h b/src/main/kc/include/cx16-vera.h index 6c09b0372..76115069d 100644 --- a/src/main/kc/include/cx16-vera.h +++ b/src/main/kc/include/cx16-vera.h @@ -1,5 +1,6 @@ /// @file /// Commander X16 VERA (Versatile Embedded Retro Adapter) Video and Audio Processor +/// /// https://github.com/commanderx16/x16-docs/blob/master/VERA%20Programmer's%20Reference.md /// The colors of the CX16 diff --git a/src/main/kc/include/cx16-veralib.h b/src/main/kc/include/cx16-veralib.h index f810e93e7..eef06258c 100644 --- a/src/main/kc/include/cx16-veralib.h +++ b/src/main/kc/include/cx16-veralib.h @@ -1,7 +1,7 @@ /// @file /// Commander X16 VERA (Versatile Embedded Retro Adapter) Video and Audio Processor +/// /// https://github.com/commanderx16/x16-docs/blob/master/VERA%20Programmer's%20Reference.md - /// Author: Sven Van de Velde #include diff --git a/src/main/kc/include/cx16.h b/src/main/kc/include/cx16.h index 3a232f4ed..e5ff96098 100644 --- a/src/main/kc/include/cx16.h +++ b/src/main/kc/include/cx16.h @@ -1,5 +1,6 @@ /// @file /// Commander X16 +/// /// https://www.commanderx16.com/forum/index.php?/about-faq/ /// https://github.com/commanderx16/x16-docs/blob/master/Commander%20X16%20Programmer's%20Reference%20Guide.md #ifndef __CX16__ @@ -49,66 +50,66 @@ char * const DEFAULT_SCREEN_VBANK = (char*)0; /// Put a single byte into VRAM. /// Uses VERA DATA0 -/// - vbank: Which 64K VRAM bank to put data into (0/1) -/// - vaddr: The address in VRAM -/// - data: The data to put into VRAM +/// @param vbank Which 64K VRAM bank to put data into (0/1) +/// @param vaddr The address in VRAM +/// @param data The data to put into VRAM void vpoke(char vbank, char* vaddr, char data); /// Read a single byte from VRAM. /// Uses VERA DATA0 -/// - bank: Which 64K VRAM bank to put data into (0/1) -/// - addr: The address in VRAM -/// - returns: The data to put into VRAM +/// @param bank Which 64K VRAM bank to put data into (0/1) +/// @param addr The address in VRAM +/// @param returns The data to put into VRAM char vpeek(char vbank, char* vaddr); /// Copy block of memory (from RAM to VRAM) /// Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination in VRAM. -/// - vbank: Which 64K VRAM bank to put data into (0/1) -/// - vdest: The destination address in VRAM -/// - src: The source address in RAM -/// - num: The number of bytes to copy +/// @param vbank Which 64K VRAM bank to put data into (0/1) +/// @param vdest The destination address in VRAM +/// @param src The source address in RAM +/// @param num The number of bytes to copy void memcpy_to_vram(char vbank, void* vdest, void* src, unsigned int num ); /// Copy block of memory (from banked RAM to VRAM) /// Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination in VRAM. -/// - vdest: absolute address in VRAM -/// - src: absolute address in the banked RAM of the CX16. -/// - num: dword of the number of bytes to copy +/// @param vdest absolute address in VRAM +/// @param src absolute address in the banked RAM of the CX16. +/// @param num dword of the number of bytes to copy /// Note: This function can switch RAM bank during copying to copy data from multiple RAM banks. void memcpy_bank_to_vram(unsigned long vdest, unsigned long src, unsigned long num ); /// Copy block of memory (from VRAM to VRAM) /// Copies the values from the location pointed by src to the location pointed by dest. /// The method uses the VERA access ports 0 and 1 to copy data from and to in VRAM. -/// - src_bank: 64K VRAM bank number to copy from (0/1). -/// - src: pointer to the location to copy from. Note that the address is a 16 bit value! -/// - src_increment: the increment indicator, VERA needs this because addressing increment is automated by VERA at each access. -/// - dest_bank: 64K VRAM bank number to copy to (0/1). -/// - dest: pointer to the location to copy to. Note that the address is a 16 bit value! -/// - dest_increment: the increment indicator, VERA needs this because addressing increment is automated by VERA at each access. -/// - num: The number of bytes to copy +/// @param src_bank 64K VRAM bank number to copy from (0/1). +/// @param src pointer to the location to copy from. Note that the address is a 16 bit value! +/// @param src_increment the increment indicator, VERA needs this because addressing increment is automated by VERA at each access. +/// @param dest_bank 64K VRAM bank number to copy to (0/1). +/// @param dest pointer to the location to copy to. Note that the address is a 16 bit value! +/// @param dest_increment the increment indicator, VERA needs this because addressing increment is automated by VERA at each access. +/// @param num The number of bytes to copy void memcpy_in_vram(char dest_bank, void *dest, char dest_increment, char src_bank, void *src, char src_increment, unsigned int num ); /// Set block of memory in VRAM to a value . /// Sets num bytes to a value to the memory block pointed to by destination in VRAM. -/// - vbank: Which 64K VRAM bank to put data into (0/1) -/// - vdest: The destination address in VRAM -/// - data: The value to set the vram with. -/// - num: The number of bytes to set +/// @param vbank Which 64K VRAM bank to put data into (0/1) +/// @param vdest The destination address in VRAM +/// @param data The value to set the vram with. +/// @param num The number of bytes to set void memset_vram(char vbank, void* vdest, char data, unsigned long num ); /// Set block of memory in VRAM to a word value . /// Sets num words to a value to the memory block pointed to by destination in VRAM. -/// - vbank: Which 64K VRAM bank to put data into (0/1) -/// - vdest: The destination address in VRAM -/// - data: The value to set the vram with. -/// - num: The number of bytes to set +/// @param vbank Which 64K VRAM bank to put data into (0/1) +/// @param vdest The destination address in VRAM +/// @param data The value to set the vram with. +/// @param num The number of bytes to set void memset_vram_word(char vbank, void* vdest, unsigned int data, unsigned long num ); /// Load a file into one of the 256 8KB RAM banks. -/// - device: The device to load from -/// - filename: The file name -/// - address: The absolute address in banked memory to load the file too -/// - returns: 0xff: Success, other: Kernal Error Code (https://commodore.ca/manuals/pdfs/commodore_error_messages.pdf) +/// @param device The device to load from +/// @param filename The file name +/// @param address: The absolute address in banked memory to load the file too +/// @return 0xff: Success, other: Kernal Error Code (https://commodore.ca/manuals/pdfs/commodore_error_messages.pdf) /// Note: This function only works if the entire file fits within the selected bank. The function cannot load to multiple banks. char load_to_bank( char device, char* filename, unsigned long address); \ No newline at end of file diff --git a/src/main/kc/include/division.h b/src/main/kc/include/division.h index 2d553a84d..bb690ec06 100644 --- a/src/main/kc/include/division.h +++ b/src/main/kc/include/division.h @@ -1,5 +1,6 @@ /// @file /// Simple binary division implementation +/// /// Follows the C99 standard by truncating toward zero on negative results. /// See http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf section 6.5.5 diff --git a/src/main/kc/include/fastmultiply.h b/src/main/kc/include/fastmultiply.h index f381bd811..539043eaa 100644 --- a/src/main/kc/include/fastmultiply.h +++ b/src/main/kc/include/fastmultiply.h @@ -1,5 +1,6 @@ /// @file /// Library Implementation of the Seriously Fast Multiplication +/// /// See http://codebase64.org/doku.php?id=base:seriously_fast_multiplication /// Utilizes the fact that a*b = ((a+b)/2)^2 - ((a-b)/2)^2 diff --git a/src/main/kc/include/mega65-dma.h b/src/main/kc/include/mega65-dma.h index 189ef54a4..906f5dfaa 100644 --- a/src/main/kc/include/mega65-dma.h +++ b/src/main/kc/include/mega65-dma.h @@ -4,43 +4,43 @@ /// Copy a memory block within the first 64K memory space using MEGA65 DMagic DMA /// Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -/// - dest The destination address (within the MB and bank) -/// - src The source address (within the MB and bank) -/// - num The number of bytes to copy +/// @param dest The destination address (within the MB and bank) +/// @param src The source address (within the MB and bank) +/// @param num The number of bytes to copy void memcpy_dma(void* dest, void* src, unsigned int num); /// Copy a memory block anywhere in first 4MB memory space using MEGA65 DMagic DMA /// Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -/// - dest_bank The 64KB bank for the destination (0-63) -/// - dest The destination address (within the MB and bank) -/// - src_bank The 64KB bank for the source (0-63) -/// - src The source address (within the MB and bank) -/// - num The number of bytes to copy +/// @param dest_bank The 64KB bank for the destination (0-63) +/// @param dest The destination address (within the MB and bank) +/// @param src_bank The 64KB bank for the source (0-63) +/// @param src The source address (within the MB and bank) +/// @param num The number of bytes to copy void memcpy_dma4(char dest_bank, void* dest, char src_bank, void* src, unsigned int num); /// Copy a memory block anywhere in the entire 256MB memory space using MEGA65 DMagic DMA /// Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. -/// - dest_mb The MB value for the destination (0-255) -/// - dest_bank The 64KB bank for the destination (0-15) -/// - dest The destination address (within the MB and bank) -/// - src_mb The MB value for the source (0-255) -/// - src_bank The 64KB bank for the source (0-15) -/// - src The source address (within the MB and bank) -/// - num The number of bytes to copy +/// @param dest_mb The MB value for the destination (0-255) +/// @param dest_bank The 64KB bank for the destination (0-15) +/// @param dest The destination address (within the MB and bank) +/// @param src_mb The MB value for the source (0-255) +/// @param src_bank The 64KB bank for the source (0-15) +/// @param src The source address (within the MB and bank) +/// @param num The number of bytes to copy void memcpy_dma256(char dest_mb, char dest_bank, void* dest, char src_mb, char src_bank, void* src, unsigned int num); /// Fill a memory block within the first 64K memory space using MEGA65 DMagic DMA /// Fills the values of num bytes at the destination with a single byte value. -/// - dest The destination address (within the MB and bank) -/// - fill The char to fill with -/// - num The number of bytes to copy +/// @param dest The destination address (within the MB and bank) +/// @param fill The char to fill with +/// @param num The number of bytes to copy void memset_dma(void* dest, char fill, unsigned int num); /// Set a memory block anywhere in the entire 256MB memory space using MEGA65 DMagic DMA /// Sets the values of num bytes to the memory block pointed to by destination. -/// - dest_mb The MB value for the destination (0-255) -/// - dest_bank The 64KB bank for the destination (0-15) -/// - dest The destination address (within the MB and bank) -/// - fill The byte to fill into the memory -/// - num The number of bytes to copy +/// @param dest_mb The MB value for the destination (0-255) +/// @param dest_bank The 64KB bank for the destination (0-15) +/// @param dest The destination address (within the MB and bank) +/// @param fill The byte to fill into the memory +/// @param num The number of bytes to copy void memset_dma256(char dest_mb, char dest_bank, void* dest, char fill, unsigned int num); \ No newline at end of file diff --git a/src/main/kc/include/mega65-f018.h b/src/main/kc/include/mega65-f018.h index c135d121b..2f46383be 100644 --- a/src/main/kc/include/mega65-f018.h +++ b/src/main/kc/include/mega65-f018.h @@ -1,5 +1,6 @@ /// @file /// MEGA65 DMA +/// /// Appendix J in https://mega.scryptos.com/sharefolder-link/MEGA/MEGA65+filehost/Docs/MEGA65-Book_draft.pdf /// C65 Manual http://www.zimmers.net/cbmpics/cbm/c65/c65manual.txt /// DMA lists https://raw.githubusercontent.com/MEGA65/c65-specifications/master/c65manualupdated.txt diff --git a/src/main/kc/include/mega65-math.h b/src/main/kc/include/mega65-math.h index 6d2c4e68a..b5bc29a9a 100644 --- a/src/main/kc/include/mega65-math.h +++ b/src/main/kc/include/mega65-math.h @@ -1,5 +1,6 @@ /// @file /// MEGA65 CPU MATHS ACCELERATION REGISTERS +/// /// Every MEGA65 contains a combined 32-bit hardware multiplier and divider. This device /// takes two 32-bit inputs, MULTINA and MULTINB, and simultaneously calculates: /// • the 64-bit product of MULTINA and MULTINB diff --git a/src/main/kc/include/mega65-memorymapper.h b/src/main/kc/include/mega65-memorymapper.h index 152838d28..ff42662a6 100644 --- a/src/main/kc/include/mega65-memorymapper.h +++ b/src/main/kc/include/mega65-memorymapper.h @@ -1,5 +1,6 @@ /// @file /// MEGA65 Memory Mapper allows the 6502 CPU to access up to 256MB of memory by remapping where the eight 8K blocks point in real memory. +/// /// The memory mapping is configured through the new MAP instruction of the MOS 4510. /// https://mega65.org/ /// https://mega.scryptos.com/sharefolder-link/MEGA/MEGA65+filehost/Docs/MEGA65-Book_draft.pdf diff --git a/src/main/kc/include/mega65-viciv.h b/src/main/kc/include/mega65-viciv.h index 45a670032..7bdabe20c 100644 --- a/src/main/kc/include/mega65-viciv.h +++ b/src/main/kc/include/mega65-viciv.h @@ -1,5 +1,6 @@ /// @file /// MEGA65 Video Interface Chip (VIC IV) +/// /// https://mega65.org/ /// https://github.com/MEGA65/mega65-core/blob/master/src/vhdl/viciv.vhdl struct MEGA65_VICIV { diff --git a/src/main/kc/include/mos6522.h b/src/main/kc/include/mos6522.h index 2b164bbeb..9a1281d56 100644 --- a/src/main/kc/include/mos6522.h +++ b/src/main/kc/include/mos6522.h @@ -1,5 +1,6 @@ /// @file /// MOS 6522 Versatile Interface Adapter (VIA) +/// /// Used in VIC 20 and 1541 /// https://en.wikipedia.org/wiki/MOS_Technology_6522 /// http://archive.6502.org/datasheets/mos_6522_preliminary_nov_1977.pdf diff --git a/src/main/kc/include/mos6523.h b/src/main/kc/include/mos6523.h index cc0098474..5bf06db52 100644 --- a/src/main/kc/include/mos6523.h +++ b/src/main/kc/include/mos6523.h @@ -1,5 +1,6 @@ /// @file /// MOS 6523 TRI-PORT INTERFACE (TPI) +/// /// It has three dedicated 8-bit I/O ports which provide 24 individually programmable I/O lines /// Used in the Commodore 1551 disk drive /// http://archive.6502.org/datasheets/mos_6523_tpi_preliminary_nov_1980.pdf diff --git a/src/main/kc/include/mos6526.h b/src/main/kc/include/mos6526.h index 607a920d6..821cc8319 100644 --- a/src/main/kc/include/mos6526.h +++ b/src/main/kc/include/mos6526.h @@ -1,5 +1,6 @@ /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf /// The MOS 6526 Complex Interface Adapter (CIA) diff --git a/src/main/kc/include/mos6529.h b/src/main/kc/include/mos6529.h index dc9aeb5f6..6443c60ed 100644 --- a/src/main/kc/include/mos6529.h +++ b/src/main/kc/include/mos6529.h @@ -1,5 +1,6 @@ /// @file /// MOS 6529 Single Port Interface (SPI aka PIO) +/// /// I/O controller providing a single 8-bit digital bidirectional parallel I/O port. /// http://archive.6502.org/datasheets/mos_6529_spi.pdf diff --git a/src/main/kc/include/mos6532.h b/src/main/kc/include/mos6532.h index ad5f4b393..54e277c82 100644 --- a/src/main/kc/include/mos6532.h +++ b/src/main/kc/include/mos6532.h @@ -1,5 +1,6 @@ /// @file /// MOS 6532 RAM-I/O-Timer (RIOT) +/// /// http://www.ionpool.net/arcade/gottlieb/technical/datasheets/R6532_datasheet.pdf /// http://www.qotile.net/minidig/docs/stella.pdf /// https://en.wikipedia.org/wiki/MOS_Technology_6532 diff --git a/src/main/kc/include/mos6551.h b/src/main/kc/include/mos6551.h index f51c01e2c..87f2d115c 100644 --- a/src/main/kc/include/mos6551.h +++ b/src/main/kc/include/mos6551.h @@ -1,5 +1,6 @@ /// @file /// MOS 6551 6551 ASYNCHRONOUS COMMUNICATION INTERFACE ADAPTER +/// /// used for RS232 /// http://archive.6502.org/datasheets/mos_6551_acia.pdf /// https://en.wikipedia.org/wiki/MOS_Technology_6551 diff --git a/src/main/kc/include/mos6561.h b/src/main/kc/include/mos6561.h index e6c6a8070..a62737fd9 100644 --- a/src/main/kc/include/mos6561.h +++ b/src/main/kc/include/mos6561.h @@ -1,5 +1,6 @@ /// @file /// MOS 6560/6561 VIDEO INTERFACE CHIP +/// /// Used in VIC 20 /// http://archive.6502.org/datasheets/mos_6560_6561_vic.pdf diff --git a/src/main/kc/include/mos6569.h b/src/main/kc/include/mos6569.h index 791283eed..ec534f2cc 100644 --- a/src/main/kc/include/mos6569.h +++ b/src/main/kc/include/mos6569.h @@ -1,8 +1,11 @@ /// @file /// MOS 6567 / 6569 Video Interface Chip (VIC II) +/// /// http://archive.6502.org/datasheets/mos_6567_vic_ii_preliminary.pdf /// https://dustlayer.com/vic-ii/2013/4/22/when-visibility-matters /// http://www.zimmers.net/cbmpics/cbm/c64/vic-ii.txt + +/// MOS 6567 / 6569 Video Interface Chip (VIC II) struct MOS6569_VICII { /// $D000 X-Coordinate Sprite#0 char SPRITE0_X; diff --git a/src/main/kc/include/mos6581.h b/src/main/kc/include/mos6581.h index 192f49014..1410580a4 100644 --- a/src/main/kc/include/mos6581.h +++ b/src/main/kc/include/mos6581.h @@ -1,6 +1,9 @@ /// @file /// The MOS 6581/8580 SID (Sound Interface Device) +/// MOS 6567 / 6569 Video Interface Chip (VIC II) /// http://archive.6502.org/datasheets/mos_6581_sid.pdf + +/// The MOS 6581/8580 SID (Sound Interface Device) struct MOS6581_SID { /// Channel 1 Frequency unsigned int CH1_FREQ; diff --git a/src/main/kc/include/mos7360.h b/src/main/kc/include/mos7360.h index 7b1d7f913..4a1995975 100644 --- a/src/main/kc/include/mos7360.h +++ b/src/main/kc/include/mos7360.h @@ -1,8 +1,10 @@ /// @file /// The MOS 7360/8360 TED chip used for graphics and sound in Plus/4 and Commodore 16 +/// /// https://www.karlstechnology.com/commodore/TED7360-datasheet.pdf /// http://mclauchlan.site.net.au/scott/C=Hacking/C-Hacking12/gfx.html +/// The MOS 7360/8360 TED chip used for graphics and sound in Plus/4 and Commodore 16 struct MOS7360_TED { /// Counter #01. It always starts to decrement from the last written value into it. unsigned int COUNTER1; diff --git a/src/main/kc/include/mos7501.h b/src/main/kc/include/mos7501.h index f0966b768..c47837aae 100644 --- a/src/main/kc/include/mos7501.h +++ b/src/main/kc/include/mos7501.h @@ -1,5 +1,6 @@ /// @file /// MOS 7501/8501 MICROPROCESSOR +/// /// https://en.wikipedia.org/wiki/MOS_Technology_6510 /// The processor port of the MOS 7501 CPU diff --git a/src/main/kc/include/nes.h b/src/main/kc/include/nes.h index b05e3ab1a..06668f94f 100644 --- a/src/main/kc/include/nes.h +++ b/src/main/kc/include/nes.h @@ -1,5 +1,6 @@ /// @file /// Nintendo Entertainment System (NES +/// /// https://en.wikipedia.org/wiki/Nintendo_Entertainment_System_(Model_NES-101) /// https://github.com/gregkrsak/first_nes #ifndef __NES__ @@ -80,7 +81,7 @@ const char JOY_B = 0b01000000; const char JOY_A = 0b10000000; /// Prepare for transferring data from the CPU to the PPU -/// - ppuData : Pointer in the PPU memory +/// @param ppuData Pointer in the PPU memory void ppuDataPrepare(void* const ppuData); /// Put one byte into PPU memory @@ -92,32 +93,32 @@ void ppuDataPut(char val); char ppuDataRead(); /// Fill a number of bytes in the PPU memory -/// - ppuData : Pointer in the PPU memory -/// - size : The number of bytes to transfer +/// @param ppuData Pointer in the PPU memory +/// @param size The number of bytes to transfer void ppuDataFill(void* const ppuData, char val, unsigned int size); /// Transfer a number of bytes from the CPU memory to the PPU memory -/// - ppuData : Pointer in the PPU memory -/// - cpuData : Pointer to the CPU memory (RAM of ROM) -/// - size : The number of bytes to transfer +/// @param ppuData Pointer in the PPU memory +/// @param cpuData Pointer to the CPU memory (RAM of ROM) +/// @param size The number of bytes to transfer void ppuDataTransfer(void* const ppuData, void* const cpuData, unsigned int size); /// Transfer a number of bytes from the PPU memory to the CPU memory -/// - cpuData : Pointer to the CPU memory (RAM of ROM) -/// - ppuData : Pointer in the PPU memory -/// - size : The number of bytes to transfer +/// @param cpuData Pointer to the CPU memory (RAM of ROM) +/// @param ppuData Pointer in the PPU memory +/// @param size The number of bytes to transfer void ppuDataFetch(void* const cpuData, void* const ppuData, unsigned int size); /// Transfer a 2x2 tile into the PPU memory -/// - ppuData : Pointer in the PPU memory -/// - tile : The tile to transfer +/// @param ppuData Pointer in the PPU memory +/// @param tile The tile to transfer void ppuDataPutTile(void* const ppuData, char* tile); /// Set one byte in PPU memory -/// - ppuData : Pointer in the PPU memory -/// - val : The value to set +/// @param ppuData Pointer in the PPU memory +/// @param val The value to set void ppuDataSet(void* const ppuData, char val); /// Get one byte from PPU memory -/// - ppuData : Pointer in the PPU memory +/// @param ppuData Pointer in the PPU memory char ppuDataGet(void* const ppuData); diff --git a/src/main/kc/include/peekpoke.h b/src/main/kc/include/peekpoke.h index c839b8f4a..a12518a6b 100644 --- a/src/main/kc/include/peekpoke.h +++ b/src/main/kc/include/peekpoke.h @@ -1,5 +1,6 @@ /// @file /// PEEK and POKE macros for those who want to write BASIC code in C +/// /// Based on https://github.com/cc65/cc65/blob/master/include/peekpoke.h /// Read the absolute memory given by addr and return the value read. diff --git a/src/main/kc/include/plus4.h b/src/main/kc/include/plus4.h index 6840b1667..c5eb98ec0 100644 --- a/src/main/kc/include/plus4.h +++ b/src/main/kc/include/plus4.h @@ -1,5 +1,6 @@ /// @file /// Plus/4 / Commodore 16 registers and memory layout +/// /// http://zimmers.net/anonftp/pub/cbm/schematics/computers/plus4/264_Hardware_Spec.pdf /// http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/plus4/Plus_4_Technical_Docs.pdf /// http://personalpages.tds.net/~rcarlsen/cbm/c16/C16_Service_Manual_314001-03_(1984_Oct).pdf diff --git a/src/main/kc/include/ricoh_2a03.h b/src/main/kc/include/ricoh_2a03.h index eb2b66ab1..d0843a2e5 100644 --- a/src/main/kc/include/ricoh_2a03.h +++ b/src/main/kc/include/ricoh_2a03.h @@ -1,5 +1,6 @@ /// @file /// Ricoh 2A03 Nintendo Entertainment System CPU and audio processing unit (APU) +/// /// Ricoh 2A03 or RP2A03 (NTSC version) / Ricoh 2A07 or RP2A07 (PAL version) /// https://en.wikipedia.org/wiki/Ricoh_2A03 /// https://www.nesdev.com/2A03%20technical%20reference.txt diff --git a/src/main/kc/include/ricoh_2c02.h b/src/main/kc/include/ricoh_2c02.h index cf4bb93ff..39249330c 100644 --- a/src/main/kc/include/ricoh_2c02.h +++ b/src/main/kc/include/ricoh_2c02.h @@ -1,5 +1,6 @@ /// @file /// Ricoh 2C02 - NES Picture Processing Unit (PPU) +/// /// Ricoh RP2C02 (NTSC version) / RP2C07 (PAL version), /// https://en.wikipedia.org/wiki/Picture_Processing_Unit /// https://wiki.nesdev.com/w/index.php/PPU_registers diff --git a/src/main/kc/include/sine.h b/src/main/kc/include/sine.h index cdc1d561c..6eb9333ba 100644 --- a/src/main/kc/include/sine.h +++ b/src/main/kc/include/sine.h @@ -1,5 +1,6 @@ /// @file /// Sine Generator functions using only multiplication, addition and bit shifting +/// /// Uses a single division for converting the wavelength to a reciprocal. /// Generates sine using the series sin(x) = x - x^/3! + x^-5! - x^7/7! ... /// Uses the approximation sin(x) = x - x^/6 + x^/128 @@ -20,28 +21,28 @@ extern const unsigned int PI_u4f12; extern const unsigned int PI_HALF_u4f12; /// Generate signed (large) unsigned int sine table - on the full -$7fff - $7fff range -/// sintab - the table to generate into -/// wavelength - the number of sine points in a total sine wavelength (the size of the table) +/// @param sintab the table to generate into +/// @param wavelength the number of sine points in a total sine wavelength (the size of the table) void sin16s_gen(int* sintab, unsigned int wavelength); /// Generate signed int sine table - with values in the range min-max. -/// sintab - the table to generate into -/// wavelength - the number of sine points in a total sine wavelength (the size of the table) +/// @param sintab the table to generate into +/// @param wavelength the number of sine points in a total sine wavelength (the size of the table) void sin16s_gen2(int* sintab, unsigned int wavelength, int min, int max); /// Generate signed char sine table - on the full -$7f - $7f range -/// sintab - the table to generate into -/// wavelength - the number of sine points in a total sine wavelength (the size of the table) +/// @param sintab the table to generate into +/// @param wavelength the number of sine points in a total sine wavelength (the size of the table) void sin8s_gen(signed char* sintab, unsigned int wavelength); /// Calculate signed int sine sin(x) -/// x: unsigned long input u[4.28] in the interval $00000000 - PI2_u4f28 -/// result: signed int sin(x) s[0.15] - using the full range -$7fff - $7fff +/// @param x unsigned long input u[4.28] in the interval $00000000 - PI2_u4f28 +/// @return signed int sin(x) s[0.15] - using the full range -$7fff - $7fff int sin16s(unsigned long x); /// Calculate signed char sine sin(x) -/// x: unsigned int input u[4.12] in the interval $0000 - PI2_u4f12 -/// result: signed char sin(x) s[0.7] - using the full range -$7f - $7f +/// @param x unsigned int input u[4.12] in the interval $0000 - PI2_u4f12 +/// @return signed char sin(x) s[0.7] - using the full range -$7f - $7f signed char sin8s(unsigned int x); /// Calculate val*val for two unsigned int values - the result is 16 selected bits of the 32-bit result. diff --git a/src/main/kc/include/stdint.h b/src/main/kc/include/stdint.h index 838e3b88c..df27895bd 100644 --- a/src/main/kc/include/stdint.h +++ b/src/main/kc/include/stdint.h @@ -1,5 +1,6 @@ /// @file /// C standard library stdint.h +/// /// Defines a set of integral type aliases with specific width requirements, along with macros specifying their limits and macro functions to create values of these types. /// Unsigned integer type with a width of exactly 8 bits diff --git a/src/main/kc/include/stdlib.h b/src/main/kc/include/stdlib.h index fded6ea0a..b0e1a1639 100644 --- a/src/main/kc/include/stdlib.h +++ b/src/main/kc/include/stdlib.h @@ -1,5 +1,6 @@ /// @file /// C standard library stdlib.h +/// /// Implementation of functions found int C stdlib.h / stdlib.c #include @@ -12,15 +13,15 @@ void* malloc(unsigned int size); void free(void* ptr); /// Allocates memory and returns a pointer to it. Sets allocated memory to zero. -/// - nitems − This is the number of elements to be allocated. -/// - size − This is the size of elements. +/// @param nitems This is the number of elements to be allocated. +/// @param size This is the size of elements. void *calloc(size_t nitems, size_t size); /// Searches an array of nitems unsigned ints, the initial member of which is pointed to by base, for a member that matches the value key. -/// - key - The value to look for -/// - items - Pointer to the start of the array to search in -/// - num - The number of items in the array -/// Returns pointer to an entry in the array that matches the search key +/// @param key The value to look for +/// @param items Pointer to the start of the array to search in +/// @param num The number of items in the array +/// @return pointer to an entry in the array that matches the search key unsigned int* bsearch16u(unsigned int key, unsigned int* items, char num); /// The different supported radix @@ -28,16 +29,16 @@ enum RADIX { BINARY=2, OCTAL=8, DECIMAL=10, HEXADECIMAL=16 }; /// Converts unsigned number value to a string representing it in RADIX format. /// If the leading digits are zero they are not included in the string. -/// - value : The number to be converted to RADIX -/// - buffer : receives the string representing the number and zero-termination. -/// - radix : The radix to convert the number to (from the enum RADIX) +/// @param value The number to be converted to RADIX +/// @param buffer receives the string representing the number and zero-termination. +/// @param radix The radix to convert the number to (from the enum RADIX) void utoa(unsigned int value, char* buffer, enum RADIX radix); /// Converts unsigned number value to a string representing it in RADIX format. /// If the leading digits are zero they are not included in the string. -/// - value : The number to be converted to RADIX -/// - buffer : receives the string representing the number and zero-termination. -/// - radix : The radix to convert the number to (from the enum RADIX) +/// @param value The number to be converted to RADIX +/// @param buffer receives the string representing the number and zero-termination. +/// @param radix The radix to convert the number to (from the enum RADIX) void ultoa(unsigned long value, char* buffer, enum RADIX radix); /// Converts the string argument str to an integer. diff --git a/src/main/kc/include/string.h b/src/main/kc/include/string.h index 8ff902699..d69c3f283 100644 --- a/src/main/kc/include/string.h +++ b/src/main/kc/include/string.h @@ -1,5 +1,6 @@ /// @file /// C standard library string.h +/// /// Functions to manipulate C strings and arrays. typedef unsigned int size_t ; @@ -22,8 +23,8 @@ char* strcpy( char* destination, char* source ); size_t strlen(char *str); /// Searches for the first occurrence of the character c (an unsigned char) in the first n bytes of the string pointed to, by the argument str. -/// - str: The memory to search -/// - c: A character to search for -/// - n: The number of bytes to look through -/// Return: A pointer to the matching byte or NULL if the character does not occur in the given memory area. +/// @param str The memory to search +/// @param c A character to search for +/// @param n The number of bytes to look through +/// @return A pointer to the matching byte or NULL if the character does not occur in the given memory area. void *memchr(const void *str, char c, size_t n); \ No newline at end of file diff --git a/src/main/kc/include/vic20.h b/src/main/kc/include/vic20.h index 4c2f2f9f5..fd4162347 100644 --- a/src/main/kc/include/vic20.h +++ b/src/main/kc/include/vic20.h @@ -1,5 +1,6 @@ /// @file /// Commodore VIC 20 registers and memory layout +/// /// http://sleepingelephant.com/denial/wiki/index.php?title=Memory_Map /// http://www.zimmers.net/anonftp/pub/cbm/vic20/manuals/VIC-20_Programmers_Reference_Guide_1st_Edition_6th_Printing.pdf #include diff --git a/src/test/ref/bitmap-circle-2.asm b/src/test/ref/bitmap-circle-2.asm index 16459b933..0e534b3d5 100644 --- a/src/test/ref/bitmap-circle-2.asm +++ b/src/test/ref/bitmap-circle-2.asm @@ -2,6 +2,7 @@ /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Commodore 64 PRG executable file .file [name="bitmap-circle-2.prg", type="prg", segments="Program"] diff --git a/src/test/ref/bitmap-circle-2.log b/src/test/ref/bitmap-circle-2.log index 07afc671a..2e9944432 100644 --- a/src/test/ref/bitmap-circle-2.log +++ b/src/test/ref/bitmap-circle-2.log @@ -1274,6 +1274,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file @@ -2012,11 +2013,11 @@ Removing instruction __b3: Removing instruction __b2: Removing instruction __b1: Succesful ASM optimization Pass5UnusedLabelElimination -Fixing long branch [154] bmi __b3 to bpl -Fixing long branch [351] bmi __breturn to bpl -Fixing long branch [361] bmi __breturn to bpl -Fixing long branch [365] bmi __breturn to bpl -Fixing long branch [375] bpl __breturn to bmi +Fixing long branch [155] bmi __b3 to bpl +Fixing long branch [352] bmi __breturn to bpl +Fixing long branch [362] bmi __breturn to bpl +Fixing long branch [366] bmi __breturn to bpl +Fixing long branch [376] bpl __breturn to bmi FINAL SYMBOL TABLE constant byte* const BITMAP = (byte*) 8192 @@ -2129,6 +2130,7 @@ Score: 51752 /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/bitmap-plot-0.asm b/src/test/ref/bitmap-plot-0.asm index 8b8525fc9..d51b31729 100644 --- a/src/test/ref/bitmap-plot-0.asm +++ b/src/test/ref/bitmap-plot-0.asm @@ -4,6 +4,7 @@ /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Commodore 64 PRG executable file .file [name="bitmap-plot-0.prg", type="prg", segments="Program"] diff --git a/src/test/ref/bitmap-plot-0.log b/src/test/ref/bitmap-plot-0.log index 325bd9686..32097193c 100644 --- a/src/test/ref/bitmap-plot-0.log +++ b/src/test/ref/bitmap-plot-0.log @@ -1641,6 +1641,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file @@ -2443,6 +2444,7 @@ Score: 3200 /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/bitmap-plot-3.asm b/src/test/ref/bitmap-plot-3.asm index 83d4e4bdc..b4955fd2a 100644 --- a/src/test/ref/bitmap-plot-3.asm +++ b/src/test/ref/bitmap-plot-3.asm @@ -4,6 +4,7 @@ /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Commodore 64 PRG executable file .file [name="bitmap-plot-3.prg", type="prg", segments="Program"] diff --git a/src/test/ref/bitmap-plot-3.log b/src/test/ref/bitmap-plot-3.log index a9f6ae1c8..c2fde128d 100644 --- a/src/test/ref/bitmap-plot-3.log +++ b/src/test/ref/bitmap-plot-3.log @@ -2502,6 +2502,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file @@ -3460,7 +3461,7 @@ Removing instruction __b2: Removing instruction __breturn: Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination -Fixing long branch [200] beq __b4 to bne +Fixing long branch [201] beq __b4 to bne FINAL SYMBOL TABLE constant byte* BITMAP = (byte*) 8192 @@ -3660,6 +3661,7 @@ Score: 26875 /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/c64dtv-8bppcharstretch.asm b/src/test/ref/c64dtv-8bppcharstretch.asm index 841a4a397..a5af4b79a 100644 --- a/src/test/ref/c64dtv-8bppcharstretch.asm +++ b/src/test/ref/c64dtv-8bppcharstretch.asm @@ -1,7 +1,7 @@ // C64DTV 8bpp charmode stretcher /// @file /// C64 DTV version 2 Registers and Constants -// +/// /// Sources /// (J) https://www.c64-wiki.com/wiki/C64DTV_Programming_Guide /// (H) http://dtvhacking.cbm8bit.com/dtv_wiki/images/d/d9/Dtv_registers_full.txt diff --git a/src/test/ref/c64dtv-8bppcharstretch.log b/src/test/ref/c64dtv-8bppcharstretch.log index 51dbea73f..f60389b00 100644 --- a/src/test/ref/c64dtv-8bppcharstretch.log +++ b/src/test/ref/c64dtv-8bppcharstretch.log @@ -1256,7 +1256,7 @@ ASSEMBLER BEFORE OPTIMIZATION // C64DTV 8bpp charmode stretcher /// @file /// C64 DTV version 2 Registers and Constants -// +/// /// Sources /// (J) https://www.c64-wiki.com/wiki/C64DTV_Programming_Guide /// (H) http://dtvhacking.cbm8bit.com/dtv_wiki/images/d/d9/Dtv_registers_full.txt @@ -2054,7 +2054,7 @@ Score: 75355 // C64DTV 8bpp charmode stretcher /// @file /// C64 DTV version 2 Registers and Constants -// +/// /// Sources /// (J) https://www.c64-wiki.com/wiki/C64DTV_Programming_Guide /// (H) http://dtvhacking.cbm8bit.com/dtv_wiki/images/d/d9/Dtv_registers_full.txt diff --git a/src/test/ref/c64dtv-8bppchunkystretch.asm b/src/test/ref/c64dtv-8bppchunkystretch.asm index 482281db3..389579f2a 100644 --- a/src/test/ref/c64dtv-8bppchunkystretch.asm +++ b/src/test/ref/c64dtv-8bppchunkystretch.asm @@ -1,7 +1,7 @@ // C64DTV 8bpp charmode stretcher /// @file /// C64 DTV version 2 Registers and Constants -// +/// /// Sources /// (J) https://www.c64-wiki.com/wiki/C64DTV_Programming_Guide /// (H) http://dtvhacking.cbm8bit.com/dtv_wiki/images/d/d9/Dtv_registers_full.txt diff --git a/src/test/ref/c64dtv-8bppchunkystretch.log b/src/test/ref/c64dtv-8bppchunkystretch.log index a905ddb65..02c083888 100644 --- a/src/test/ref/c64dtv-8bppchunkystretch.log +++ b/src/test/ref/c64dtv-8bppchunkystretch.log @@ -799,7 +799,7 @@ ASSEMBLER BEFORE OPTIMIZATION // C64DTV 8bpp charmode stretcher /// @file /// C64 DTV version 2 Registers and Constants -// +/// /// Sources /// (J) https://www.c64-wiki.com/wiki/C64DTV_Programming_Guide /// (H) http://dtvhacking.cbm8bit.com/dtv_wiki/images/d/d9/Dtv_registers_full.txt @@ -1372,7 +1372,7 @@ Score: 19882 // C64DTV 8bpp charmode stretcher /// @file /// C64 DTV version 2 Registers and Constants -// +/// /// Sources /// (J) https://www.c64-wiki.com/wiki/C64DTV_Programming_Guide /// (H) http://dtvhacking.cbm8bit.com/dtv_wiki/images/d/d9/Dtv_registers_full.txt diff --git a/src/test/ref/c64dtv-blittermin.asm b/src/test/ref/c64dtv-blittermin.asm index 2e4a9b3dd..8e5f5c782 100644 --- a/src/test/ref/c64dtv-blittermin.asm +++ b/src/test/ref/c64dtv-blittermin.asm @@ -1,6 +1,6 @@ /// @file /// C64 DTV version 2 Registers and Constants -// +/// /// Sources /// (J) https://www.c64-wiki.com/wiki/C64DTV_Programming_Guide /// (H) http://dtvhacking.cbm8bit.com/dtv_wiki/images/d/d9/Dtv_registers_full.txt diff --git a/src/test/ref/c64dtv-blittermin.log b/src/test/ref/c64dtv-blittermin.log index 601f8314b..025f1dde2 100644 --- a/src/test/ref/c64dtv-blittermin.log +++ b/src/test/ref/c64dtv-blittermin.log @@ -416,7 +416,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments /// @file /// C64 DTV version 2 Registers and Constants -// +/// /// Sources /// (J) https://www.c64-wiki.com/wiki/C64DTV_Programming_Guide /// (H) http://dtvhacking.cbm8bit.com/dtv_wiki/images/d/d9/Dtv_registers_full.txt @@ -737,7 +737,7 @@ Score: 1553 // File Comments /// @file /// C64 DTV version 2 Registers and Constants -// +/// /// Sources /// (J) https://www.c64-wiki.com/wiki/C64DTV_Programming_Guide /// (H) http://dtvhacking.cbm8bit.com/dtv_wiki/images/d/d9/Dtv_registers_full.txt diff --git a/src/test/ref/constants.asm b/src/test/ref/constants.asm index 0b468efe9..0d607b0ed 100644 --- a/src/test/ref/constants.asm +++ b/src/test/ref/constants.asm @@ -1,5 +1,6 @@ /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Commodore 64 PRG executable file .file [name="constants.prg", type="prg", segments="Program"] diff --git a/src/test/ref/constants.log b/src/test/ref/constants.log index e451682fc..bee56663c 100644 --- a/src/test/ref/constants.log +++ b/src/test/ref/constants.log @@ -1638,6 +1638,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Upstart // Commodore 64 PRG executable file @@ -2426,6 +2427,7 @@ Score: 1783 // File Comments /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/examples/atari2600/atari2600-demo.asm b/src/test/ref/examples/atari2600/atari2600-demo.asm index be1516168..7536be351 100644 --- a/src/test/ref/examples/atari2600/atari2600-demo.asm +++ b/src/test/ref/examples/atari2600/atari2600-demo.asm @@ -2,6 +2,7 @@ // Source: https://atariage.com/forums/blogs/entry/11109-step-1-generate-a-stable-display/ /// @file /// Atari 2600 Registers and Constants +/// /// https://web.archive.org/web/20170215054248/http://www.atariguide.com/pdfs/Atari_2600_VCS_Domestic_Field_Service_Manual.pdf // Atari 2600 VCS 2K ROM in A26 executable file .file [name="atari2600-demo.a26", type="bin", segments="Code, Data, Vectors"] diff --git a/src/test/ref/examples/atari2600/atari2600-demo.log b/src/test/ref/examples/atari2600/atari2600-demo.log index ca2c266b3..9fc89bf3e 100644 --- a/src/test/ref/examples/atari2600/atari2600-demo.log +++ b/src/test/ref/examples/atari2600/atari2600-demo.log @@ -466,6 +466,7 @@ ASSEMBLER BEFORE OPTIMIZATION // Source: https://atariage.com/forums/blogs/entry/11109-step-1-generate-a-stable-display/ /// @file /// Atari 2600 Registers and Constants +/// /// https://web.archive.org/web/20170215054248/http://www.atariguide.com/pdfs/Atari_2600_VCS_Domestic_Field_Service_Manual.pdf // Upstart // Atari 2600 VCS 2K ROM in A26 executable file @@ -723,6 +724,7 @@ Score: 8279 // Source: https://atariage.com/forums/blogs/entry/11109-step-1-generate-a-stable-display/ /// @file /// Atari 2600 Registers and Constants +/// /// https://web.archive.org/web/20170215054248/http://www.atariguide.com/pdfs/Atari_2600_VCS_Domestic_Field_Service_Manual.pdf // Upstart // Atari 2600 VCS 2K ROM in A26 executable file diff --git a/src/test/ref/examples/atari2600/atari2600-sprites.asm b/src/test/ref/examples/atari2600/atari2600-sprites.asm index 7003ed9f6..5466c76f9 100644 --- a/src/test/ref/examples/atari2600/atari2600-sprites.asm +++ b/src/test/ref/examples/atari2600/atari2600-sprites.asm @@ -2,6 +2,7 @@ // Source: https://atariage.com/forums/blogs/entry/11109-step-1-generate-a-stable-display/ /// @file /// Atari 2600 Registers and Constants +/// /// https://web.archive.org/web/20170215054248/http://www.atariguide.com/pdfs/Atari_2600_VCS_Domestic_Field_Service_Manual.pdf // Atari 2600 VCS 2K ROM in A26 executable file .file [name="atari2600-sprites.a26", type="bin", segments="Code, Data, Vectors"] diff --git a/src/test/ref/examples/atari2600/atari2600-sprites.log b/src/test/ref/examples/atari2600/atari2600-sprites.log index f3e4dcc13..306e06c15 100644 --- a/src/test/ref/examples/atari2600/atari2600-sprites.log +++ b/src/test/ref/examples/atari2600/atari2600-sprites.log @@ -812,6 +812,7 @@ ASSEMBLER BEFORE OPTIMIZATION // Source: https://atariage.com/forums/blogs/entry/11109-step-1-generate-a-stable-display/ /// @file /// Atari 2600 Registers and Constants +/// /// https://web.archive.org/web/20170215054248/http://www.atariguide.com/pdfs/Atari_2600_VCS_Domestic_Field_Service_Manual.pdf // Upstart // Atari 2600 VCS 2K ROM in A26 executable file @@ -1227,6 +1228,7 @@ Score: 10892 // Source: https://atariage.com/forums/blogs/entry/11109-step-1-generate-a-stable-display/ /// @file /// Atari 2600 Registers and Constants +/// /// https://web.archive.org/web/20170215054248/http://www.atariguide.com/pdfs/Atari_2600_VCS_Domestic_Field_Service_Manual.pdf // Upstart // Atari 2600 VCS 2K ROM in A26 executable file diff --git a/src/test/ref/examples/c64/3d/perspective.asm b/src/test/ref/examples/c64/3d/perspective.asm index b37315660..ab45ff03a 100644 --- a/src/test/ref/examples/c64/3d/perspective.asm +++ b/src/test/ref/examples/c64/3d/perspective.asm @@ -6,6 +6,7 @@ /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Commodore 64 PRG executable file .file [name="perspective.prg", type="prg", segments="Program"] diff --git a/src/test/ref/examples/c64/3d/perspective.log b/src/test/ref/examples/c64/3d/perspective.log index 9bf70c880..4c3f32d63 100644 --- a/src/test/ref/examples/c64/3d/perspective.log +++ b/src/test/ref/examples/c64/3d/perspective.log @@ -1733,6 +1733,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file @@ -2726,6 +2727,7 @@ Score: 3117 /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.asm b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.asm index fadc3e329..6bd927b96 100644 --- a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.asm +++ b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.asm @@ -2,6 +2,7 @@ /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Commodore 64 PRG executable file .file [name="bitmap-bresenham.prg", type="prg", segments="Program"] diff --git a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.log b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.log index 1da76732b..4ca781aec 100644 --- a/src/test/ref/examples/c64/bresenham/bitmap-bresenham.log +++ b/src/test/ref/examples/c64/bresenham/bitmap-bresenham.log @@ -2345,6 +2345,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file @@ -3346,7 +3347,7 @@ Removing instruction __b2: Removing instruction __breturn: Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination -Fixing long branch [247] beq __b4 to bne +Fixing long branch [248] beq __b4 to bne FINAL SYMBOL TABLE constant byte* const BITMAP = (byte*) 8192 @@ -3538,6 +3539,7 @@ Score: 246362 /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/examples/c64/irq/irq-hyperscreen.asm b/src/test/ref/examples/c64/irq/irq-hyperscreen.asm index 1d8764ca7..bff33e5ef 100644 --- a/src/test/ref/examples/c64/irq/irq-hyperscreen.asm +++ b/src/test/ref/examples/c64/irq/irq-hyperscreen.asm @@ -3,6 +3,7 @@ /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Commodore 64 PRG executable file .file [name="irq-hyperscreen.prg", type="prg", segments="Program"] diff --git a/src/test/ref/examples/c64/irq/irq-hyperscreen.log b/src/test/ref/examples/c64/irq/irq-hyperscreen.log index b6a0d85ef..04d71c7e0 100644 --- a/src/test/ref/examples/c64/irq/irq-hyperscreen.log +++ b/src/test/ref/examples/c64/irq/irq-hyperscreen.log @@ -235,6 +235,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file @@ -446,6 +447,7 @@ Score: 424 /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/examples/c64/multiplexer/simple-multiplexer.asm b/src/test/ref/examples/c64/multiplexer/simple-multiplexer.asm index 49f1243c8..6cbd5fe87 100644 --- a/src/test/ref/examples/c64/multiplexer/simple-multiplexer.asm +++ b/src/test/ref/examples/c64/multiplexer/simple-multiplexer.asm @@ -3,6 +3,7 @@ /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Commodore 64 PRG executable file .file [name="simple-multiplexer.prg", type="prg", segments="Program"] diff --git a/src/test/ref/examples/c64/multiplexer/simple-multiplexer.log b/src/test/ref/examples/c64/multiplexer/simple-multiplexer.log index 7bbf3ce1c..b6d91ca85 100644 --- a/src/test/ref/examples/c64/multiplexer/simple-multiplexer.log +++ b/src/test/ref/examples/c64/multiplexer/simple-multiplexer.log @@ -1598,6 +1598,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file @@ -2493,6 +2494,7 @@ Score: 58107 /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/examples/c64/music/music.asm b/src/test/ref/examples/c64/music/music.asm index 80d0dc402..620f8a60f 100644 --- a/src/test/ref/examples/c64/music/music.asm +++ b/src/test/ref/examples/c64/music/music.asm @@ -3,6 +3,7 @@ /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Commodore 64 PRG executable file .file [name="music.prg", type="prg", segments="Program"] diff --git a/src/test/ref/examples/c64/music/music.log b/src/test/ref/examples/c64/music/music.log index e3772e924..e33dce236 100644 --- a/src/test/ref/examples/c64/music/music.log +++ b/src/test/ref/examples/c64/music/music.log @@ -124,6 +124,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file @@ -208,6 +209,7 @@ Score: 1066 /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/examples/c64/music/music_irq.asm b/src/test/ref/examples/c64/music/music_irq.asm index d81b1a004..bc5b83833 100644 --- a/src/test/ref/examples/c64/music/music_irq.asm +++ b/src/test/ref/examples/c64/music/music_irq.asm @@ -3,6 +3,7 @@ /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Commodore 64 PRG executable file .file [name="music_irq.prg", type="prg", segments="Program"] diff --git a/src/test/ref/examples/c64/music/music_irq.log b/src/test/ref/examples/c64/music/music_irq.log index e81e09aca..18990b0a7 100644 --- a/src/test/ref/examples/c64/music/music_irq.log +++ b/src/test/ref/examples/c64/music/music_irq.log @@ -163,6 +163,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file @@ -302,6 +303,7 @@ Score: 110 /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/examples/c64/rasterbars/raster-bars.asm b/src/test/ref/examples/c64/rasterbars/raster-bars.asm index 237ccaf9b..129260043 100644 --- a/src/test/ref/examples/c64/rasterbars/raster-bars.asm +++ b/src/test/ref/examples/c64/rasterbars/raster-bars.asm @@ -2,6 +2,7 @@ /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Commodore 64 PRG executable file .file [name="raster-bars.prg", type="prg", segments="Program"] diff --git a/src/test/ref/examples/c64/rasterbars/raster-bars.log b/src/test/ref/examples/c64/rasterbars/raster-bars.log index e0582a31a..ecaf9f729 100644 --- a/src/test/ref/examples/c64/rasterbars/raster-bars.log +++ b/src/test/ref/examples/c64/rasterbars/raster-bars.log @@ -207,6 +207,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file @@ -378,6 +379,7 @@ Score: 8340 /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/examples/c64/scroll/scroll.asm b/src/test/ref/examples/c64/scroll/scroll.asm index 0bcb2c954..7214300c3 100644 --- a/src/test/ref/examples/c64/scroll/scroll.asm +++ b/src/test/ref/examples/c64/scroll/scroll.asm @@ -2,6 +2,7 @@ /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Commodore 64 PRG executable file .file [name="scroll.prg", type="prg", segments="Program"] diff --git a/src/test/ref/examples/c64/scroll/scroll.log b/src/test/ref/examples/c64/scroll/scroll.log index 972790832..d2e2ebc85 100644 --- a/src/test/ref/examples/c64/scroll/scroll.log +++ b/src/test/ref/examples/c64/scroll/scroll.log @@ -493,6 +493,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file @@ -775,6 +776,7 @@ Score: 6262 /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/examples/c64/scrollbig/scrollbig.asm b/src/test/ref/examples/c64/scrollbig/scrollbig.asm index 1b68b1f97..3cffb56e0 100644 --- a/src/test/ref/examples/c64/scrollbig/scrollbig.asm +++ b/src/test/ref/examples/c64/scrollbig/scrollbig.asm @@ -3,6 +3,7 @@ /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Commodore 64 PRG executable file .file [name="scrollbig.prg", type="prg", segments="Program"] diff --git a/src/test/ref/examples/c64/scrollbig/scrollbig.log b/src/test/ref/examples/c64/scrollbig/scrollbig.log index 97a76a2b5..60f96d341 100644 --- a/src/test/ref/examples/c64/scrollbig/scrollbig.log +++ b/src/test/ref/examples/c64/scrollbig/scrollbig.log @@ -1440,6 +1440,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file @@ -2015,6 +2016,7 @@ Score: 20884 /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/examples/c64/showlogo/showlogo.asm b/src/test/ref/examples/c64/showlogo/showlogo.asm index 2806a7784..45d256a9b 100644 --- a/src/test/ref/examples/c64/showlogo/showlogo.asm +++ b/src/test/ref/examples/c64/showlogo/showlogo.asm @@ -2,6 +2,7 @@ /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Commodore 64 PRG executable file .file [name="showlogo.prg", type="prg", segments="Program"] diff --git a/src/test/ref/examples/c64/showlogo/showlogo.log b/src/test/ref/examples/c64/showlogo/showlogo.log index d7012b7ca..6f29fcdfb 100644 --- a/src/test/ref/examples/c64/showlogo/showlogo.log +++ b/src/test/ref/examples/c64/showlogo/showlogo.log @@ -569,6 +569,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file @@ -833,6 +834,7 @@ Score: 3324 /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/examples/mega65/dma-test.asm b/src/test/ref/examples/mega65/dma-test.asm index db7e07e88..e86acc6b6 100644 --- a/src/test/ref/examples/mega65/dma-test.asm +++ b/src/test/ref/examples/mega65/dma-test.asm @@ -4,6 +4,7 @@ /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf .cpu _45gs02 // MEGA65 platform PRG executable starting in MEGA65 mode. diff --git a/src/test/ref/examples/mega65/dma-test.log b/src/test/ref/examples/mega65/dma-test.log index b96ab9dc0..7bcac1d75 100644 --- a/src/test/ref/examples/mega65/dma-test.log +++ b/src/test/ref/examples/mega65/dma-test.log @@ -380,6 +380,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart .cpu _45gs02 @@ -562,6 +563,7 @@ Score: 85 /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart .cpu _45gs02 diff --git a/src/test/ref/examples/mega65/dma-test2.asm b/src/test/ref/examples/mega65/dma-test2.asm index 4aa667cd3..7cb073aeb 100644 --- a/src/test/ref/examples/mega65/dma-test2.asm +++ b/src/test/ref/examples/mega65/dma-test2.asm @@ -6,6 +6,7 @@ /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf .cpu _45gs02 // MEGA65 platform PRG executable starting in MEGA65 mode. diff --git a/src/test/ref/examples/mega65/dma-test2.log b/src/test/ref/examples/mega65/dma-test2.log index 855b5bb0e..8a1bc20b2 100644 --- a/src/test/ref/examples/mega65/dma-test2.log +++ b/src/test/ref/examples/mega65/dma-test2.log @@ -503,6 +503,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart .cpu _45gs02 @@ -746,6 +747,7 @@ Score: 135 /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart .cpu _45gs02 diff --git a/src/test/ref/examples/mega65/dma-test3.asm b/src/test/ref/examples/mega65/dma-test3.asm index b2cbfded2..1779c20bb 100644 --- a/src/test/ref/examples/mega65/dma-test3.asm +++ b/src/test/ref/examples/mega65/dma-test3.asm @@ -6,6 +6,7 @@ /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf .cpu _45gs02 // MEGA65 platform PRG executable starting in MEGA65 mode. diff --git a/src/test/ref/examples/mega65/dma-test3.log b/src/test/ref/examples/mega65/dma-test3.log index 18eadc9c1..7d4f553cd 100644 --- a/src/test/ref/examples/mega65/dma-test3.log +++ b/src/test/ref/examples/mega65/dma-test3.log @@ -537,6 +537,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart .cpu _45gs02 @@ -798,6 +799,7 @@ Score: 147 /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart .cpu _45gs02 diff --git a/src/test/ref/examples/mega65/dma-test4.asm b/src/test/ref/examples/mega65/dma-test4.asm index 04a81874f..edb64f613 100644 --- a/src/test/ref/examples/mega65/dma-test4.asm +++ b/src/test/ref/examples/mega65/dma-test4.asm @@ -6,6 +6,7 @@ /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf .cpu _45gs02 // MEGA65 platform PRG executable starting in MEGA65 mode. diff --git a/src/test/ref/examples/mega65/dma-test4.log b/src/test/ref/examples/mega65/dma-test4.log index cadd33b10..83a6e6e50 100644 --- a/src/test/ref/examples/mega65/dma-test4.log +++ b/src/test/ref/examples/mega65/dma-test4.log @@ -646,6 +646,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart .cpu _45gs02 @@ -933,6 +934,7 @@ Score: 159 /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart .cpu _45gs02 diff --git a/src/test/ref/examples/mega65/dma-test5.asm b/src/test/ref/examples/mega65/dma-test5.asm index 9ad877b3a..7ab9ec31d 100644 --- a/src/test/ref/examples/mega65/dma-test5.asm +++ b/src/test/ref/examples/mega65/dma-test5.asm @@ -6,6 +6,7 @@ /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf .cpu _45gs02 // MEGA65 platform PRG executable starting in MEGA65 mode. diff --git a/src/test/ref/examples/mega65/dma-test5.log b/src/test/ref/examples/mega65/dma-test5.log index 2ee5df3d1..ea893d761 100644 --- a/src/test/ref/examples/mega65/dma-test5.log +++ b/src/test/ref/examples/mega65/dma-test5.log @@ -499,6 +499,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart .cpu _45gs02 @@ -742,6 +743,7 @@ Score: 135 /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart .cpu _45gs02 diff --git a/src/test/ref/examples/mega65/dma-test6.asm b/src/test/ref/examples/mega65/dma-test6.asm index 9c4221444..d2f65d118 100644 --- a/src/test/ref/examples/mega65/dma-test6.asm +++ b/src/test/ref/examples/mega65/dma-test6.asm @@ -6,6 +6,7 @@ /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf .cpu _45gs02 // MEGA65 platform PRG executable starting in MEGA65 mode. diff --git a/src/test/ref/examples/mega65/dma-test6.log b/src/test/ref/examples/mega65/dma-test6.log index 106e22d2d..536f4c5ac 100644 --- a/src/test/ref/examples/mega65/dma-test6.log +++ b/src/test/ref/examples/mega65/dma-test6.log @@ -595,6 +595,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart .cpu _45gs02 @@ -863,6 +864,7 @@ Score: 147 /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart .cpu _45gs02 diff --git a/src/test/ref/examples/mega65/memorymap-test.asm b/src/test/ref/examples/mega65/memorymap-test.asm index 5b2ad2c9d..100178574 100644 --- a/src/test/ref/examples/mega65/memorymap-test.asm +++ b/src/test/ref/examples/mega65/memorymap-test.asm @@ -5,6 +5,7 @@ /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf .cpu _45gs02 // MEGA65 platform PRG executable starting in MEGA65 mode. diff --git a/src/test/ref/examples/mega65/memorymap-test.log b/src/test/ref/examples/mega65/memorymap-test.log index 659672ff6..71702becc 100644 --- a/src/test/ref/examples/mega65/memorymap-test.log +++ b/src/test/ref/examples/mega65/memorymap-test.log @@ -1160,6 +1160,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart .cpu _45gs02 @@ -1767,6 +1768,7 @@ Score: 906 /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart .cpu _45gs02 diff --git a/src/test/ref/examples/mega65/raster65.asm b/src/test/ref/examples/mega65/raster65.asm index c20ee15f8..0711eaf5d 100644 --- a/src/test/ref/examples/mega65/raster65.asm +++ b/src/test/ref/examples/mega65/raster65.asm @@ -6,6 +6,7 @@ /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf .cpu _45gs02 // MEGA65 platform executable starting in C64 mode. diff --git a/src/test/ref/examples/mega65/raster65.log b/src/test/ref/examples/mega65/raster65.log index b8fde34e1..202ca98bf 100644 --- a/src/test/ref/examples/mega65/raster65.log +++ b/src/test/ref/examples/mega65/raster65.log @@ -2075,6 +2075,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart .cpu _45gs02 @@ -3032,9 +3033,9 @@ Removing instruction jmp __b5 Succesful ASM optimization Pass5NextJumpElimination Removing instruction ldy #0 Succesful ASM optimization Pass5UnnecesaryLoadElimination -Fixing long branch [136] bne __b2 to beq -Fixing long branch [146] bcc __b17 to bcs -Fixing long branch [153] bne __b19 to beq +Fixing long branch [137] bne __b2 to beq +Fixing long branch [147] bcc __b17 to bcs +Fixing long branch [154] bne __b19 to beq FINAL SYMBOL TABLE constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 @@ -3244,6 +3245,7 @@ Score: 10121 /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart .cpu _45gs02 diff --git a/src/test/ref/examples/mega65/test-vic4.asm b/src/test/ref/examples/mega65/test-vic4.asm index c4591eb4a..aa0d07762 100644 --- a/src/test/ref/examples/mega65/test-vic4.asm +++ b/src/test/ref/examples/mega65/test-vic4.asm @@ -3,6 +3,7 @@ /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf .cpu _45gs02 // MEGA65 platform PRG executable starting in MEGA65 mode. diff --git a/src/test/ref/examples/mega65/test-vic4.log b/src/test/ref/examples/mega65/test-vic4.log index 36edd79b1..fde0504f1 100644 --- a/src/test/ref/examples/mega65/test-vic4.log +++ b/src/test/ref/examples/mega65/test-vic4.log @@ -236,6 +236,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart .cpu _45gs02 @@ -404,6 +405,7 @@ Score: 1064 /// MEGA65 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart .cpu _45gs02 diff --git a/src/test/ref/examples/nes/nes-dxycp.asm b/src/test/ref/examples/nes/nes-dxycp.asm index 9d6e37665..aff37dcc4 100644 --- a/src/test/ref/examples/nes/nes-dxycp.asm +++ b/src/test/ref/examples/nes/nes-dxycp.asm @@ -1,10 +1,12 @@ // NES DXYCP using sprites /// @file /// Nintendo Entertainment System (NES +/// /// https://en.wikipedia.org/wiki/Nintendo_Entertainment_System_(Model_NES-101) /// https://github.com/gregkrsak/first_nes /// @file /// Ricoh 2C02 - NES Picture Processing Unit (PPU) +/// /// Ricoh RP2C02 (NTSC version) / RP2C07 (PAL version), /// https://en.wikipedia.org/wiki/Picture_Processing_Unit /// https://wiki.nesdev.com/w/index.php/PPU_registers diff --git a/src/test/ref/examples/nes/nes-dxycp.log b/src/test/ref/examples/nes/nes-dxycp.log index f28d3e2d2..a629dcaa6 100644 --- a/src/test/ref/examples/nes/nes-dxycp.log +++ b/src/test/ref/examples/nes/nes-dxycp.log @@ -2089,10 +2089,12 @@ ASSEMBLER BEFORE OPTIMIZATION // NES DXYCP using sprites /// @file /// Nintendo Entertainment System (NES +/// /// https://en.wikipedia.org/wiki/Nintendo_Entertainment_System_(Model_NES-101) /// https://github.com/gregkrsak/first_nes /// @file /// Ricoh 2C02 - NES Picture Processing Unit (PPU) +/// /// Ricoh RP2C02 (NTSC version) / RP2C07 (PAL version), /// https://en.wikipedia.org/wiki/Picture_Processing_Unit /// https://wiki.nesdev.com/w/index.php/PPU_registers @@ -3169,10 +3171,12 @@ Score: 4702 // NES DXYCP using sprites /// @file /// Nintendo Entertainment System (NES +/// /// https://en.wikipedia.org/wiki/Nintendo_Entertainment_System_(Model_NES-101) /// https://github.com/gregkrsak/first_nes /// @file /// Ricoh 2C02 - NES Picture Processing Unit (PPU) +/// /// Ricoh RP2C02 (NTSC version) / RP2C07 (PAL version), /// https://en.wikipedia.org/wiki/Picture_Processing_Unit /// https://wiki.nesdev.com/w/index.php/PPU_registers diff --git a/src/test/ref/examples/plus4/plus4-randomwalk.asm b/src/test/ref/examples/plus4/plus4-randomwalk.asm index d604361a1..f3c190a20 100644 --- a/src/test/ref/examples/plus4/plus4-randomwalk.asm +++ b/src/test/ref/examples/plus4/plus4-randomwalk.asm @@ -1,12 +1,14 @@ // Random walk with color fading for Commodore Plus/4 / C16 /// @file /// Plus/4 / Commodore 16 registers and memory layout +/// /// http://zimmers.net/anonftp/pub/cbm/schematics/computers/plus4/264_Hardware_Spec.pdf /// http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/plus4/Plus_4_Technical_Docs.pdf /// http://personalpages.tds.net/~rcarlsen/cbm/c16/C16_Service_Manual_314001-03_(1984_Oct).pdf /// https://www.floodgap.com/retrobits/ckb/secret/264memory.txt /// @file /// The MOS 7360/8360 TED chip used for graphics and sound in Plus/4 and Commodore 16 +/// /// https://www.karlstechnology.com/commodore/TED7360-datasheet.pdf /// http://mclauchlan.site.net.au/scott/C=Hacking/C-Hacking12/gfx.html // Commodore 16 / Plus/4 executable PRG file diff --git a/src/test/ref/examples/plus4/plus4-randomwalk.log b/src/test/ref/examples/plus4/plus4-randomwalk.log index 5815b9ddc..dae6fc953 100644 --- a/src/test/ref/examples/plus4/plus4-randomwalk.log +++ b/src/test/ref/examples/plus4/plus4-randomwalk.log @@ -1153,12 +1153,14 @@ ASSEMBLER BEFORE OPTIMIZATION // Random walk with color fading for Commodore Plus/4 / C16 /// @file /// Plus/4 / Commodore 16 registers and memory layout +/// /// http://zimmers.net/anonftp/pub/cbm/schematics/computers/plus4/264_Hardware_Spec.pdf /// http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/plus4/Plus_4_Technical_Docs.pdf /// http://personalpages.tds.net/~rcarlsen/cbm/c16/C16_Service_Manual_314001-03_(1984_Oct).pdf /// https://www.floodgap.com/retrobits/ckb/secret/264memory.txt /// @file /// The MOS 7360/8360 TED chip used for graphics and sound in Plus/4 and Commodore 16 +/// /// https://www.karlstechnology.com/commodore/TED7360-datasheet.pdf /// http://mclauchlan.site.net.au/scott/C=Hacking/C-Hacking12/gfx.html // Upstart @@ -1770,12 +1772,14 @@ Score: 6541 // Random walk with color fading for Commodore Plus/4 / C16 /// @file /// Plus/4 / Commodore 16 registers and memory layout +/// /// http://zimmers.net/anonftp/pub/cbm/schematics/computers/plus4/264_Hardware_Spec.pdf /// http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/plus4/Plus_4_Technical_Docs.pdf /// http://personalpages.tds.net/~rcarlsen/cbm/c16/C16_Service_Manual_314001-03_(1984_Oct).pdf /// https://www.floodgap.com/retrobits/ckb/secret/264memory.txt /// @file /// The MOS 7360/8360 TED chip used for graphics and sound in Plus/4 and Commodore 16 +/// /// https://www.karlstechnology.com/commodore/TED7360-datasheet.pdf /// http://mclauchlan.site.net.au/scott/C=Hacking/C-Hacking12/gfx.html // Upstart diff --git a/src/test/ref/font-hex-show.asm b/src/test/ref/font-hex-show.asm index 453394e1b..daffad760 100644 --- a/src/test/ref/font-hex-show.asm +++ b/src/test/ref/font-hex-show.asm @@ -3,6 +3,7 @@ /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Commodore 64 PRG executable file .file [name="font-hex-show.prg", type="prg", segments="Program"] diff --git a/src/test/ref/font-hex-show.log b/src/test/ref/font-hex-show.log index cfa68c4c5..6a86691f5 100644 --- a/src/test/ref/font-hex-show.log +++ b/src/test/ref/font-hex-show.log @@ -663,6 +663,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file @@ -993,6 +994,7 @@ Score: 72379 /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/incrementinarray.asm b/src/test/ref/incrementinarray.asm index f30d7fdbb..1bc7302e1 100644 --- a/src/test/ref/incrementinarray.asm +++ b/src/test/ref/incrementinarray.asm @@ -1,5 +1,6 @@ /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Commodore 64 PRG executable file .file [name="incrementinarray.prg", type="prg", segments="Program"] diff --git a/src/test/ref/incrementinarray.log b/src/test/ref/incrementinarray.log index a03a04ed1..14e2a3b14 100644 --- a/src/test/ref/incrementinarray.log +++ b/src/test/ref/incrementinarray.log @@ -740,6 +740,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Upstart // Commodore 64 PRG executable file @@ -1081,6 +1082,7 @@ Score: 9880 // File Comments /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/irq-hardware-clobber-jsr.asm b/src/test/ref/irq-hardware-clobber-jsr.asm index 945e1c392..2b935c56d 100644 --- a/src/test/ref/irq-hardware-clobber-jsr.asm +++ b/src/test/ref/irq-hardware-clobber-jsr.asm @@ -3,6 +3,7 @@ /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Commodore 64 PRG executable file .file [name="irq-hardware-clobber-jsr.prg", type="prg", segments="Program"] diff --git a/src/test/ref/irq-hardware-clobber-jsr.log b/src/test/ref/irq-hardware-clobber-jsr.log index 34babf339..b9933c40d 100644 --- a/src/test/ref/irq-hardware-clobber-jsr.log +++ b/src/test/ref/irq-hardware-clobber-jsr.log @@ -204,6 +204,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file @@ -365,6 +366,7 @@ Score: 296 /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/irq-idx-problem.asm b/src/test/ref/irq-idx-problem.asm index f9047eaa9..5d65de530 100644 --- a/src/test/ref/irq-idx-problem.asm +++ b/src/test/ref/irq-idx-problem.asm @@ -3,6 +3,7 @@ /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Commodore 64 PRG executable file .file [name="irq-idx-problem.prg", type="prg", segments="Program"] diff --git a/src/test/ref/irq-idx-problem.log b/src/test/ref/irq-idx-problem.log index d32d46c88..f20071ec7 100644 --- a/src/test/ref/irq-idx-problem.log +++ b/src/test/ref/irq-idx-problem.log @@ -341,6 +341,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file @@ -528,7 +529,7 @@ Skipping double jump to $ea81 in bcs __breturn Succesful ASM optimization Pass5DoubleJumpElimination Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination -Fixing long branch [57] bcs $ea81 to bcc +Fixing long branch [58] bcs $ea81 to bcc FINAL SYMBOL TABLE constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 @@ -569,6 +570,7 @@ Score: 631 /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/keyboard-glitch.asm b/src/test/ref/keyboard-glitch.asm index 19653af8c..749e61d37 100644 --- a/src/test/ref/keyboard-glitch.asm +++ b/src/test/ref/keyboard-glitch.asm @@ -7,6 +7,7 @@ // but never when they are disabled (red border) /// @file /// Simple Keyboard Input Library +/// /// C64 Keyboard Matrix Reference - from http://codebase64.org/doku.php?id=base:reading_the_keyboard /// Keyboard Codes are %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7) /// +----+----------------------+-------------------------------------------------------------------------------------------------------+ diff --git a/src/test/ref/keyboard-glitch.log b/src/test/ref/keyboard-glitch.log index f6b199ae9..5feff16f8 100644 --- a/src/test/ref/keyboard-glitch.log +++ b/src/test/ref/keyboard-glitch.log @@ -622,6 +622,7 @@ ASSEMBLER BEFORE OPTIMIZATION // but never when they are disabled (red border) /// @file /// Simple Keyboard Input Library +/// /// C64 Keyboard Matrix Reference - from http://codebase64.org/doku.php?id=base:reading_the_keyboard /// Keyboard Codes are %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7) /// +----+----------------------+-------------------------------------------------------------------------------------------------------+ @@ -993,6 +994,7 @@ Score: 3151 // but never when they are disabled (red border) /// @file /// Simple Keyboard Input Library +/// /// C64 Keyboard Matrix Reference - from http://codebase64.org/doku.php?id=base:reading_the_keyboard /// Keyboard Codes are %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7) /// +----+----------------------+-------------------------------------------------------------------------------------------------------+ diff --git a/src/test/ref/linegen.asm b/src/test/ref/linegen.asm index 84f8223b3..1fe21dd9f 100644 --- a/src/test/ref/linegen.asm +++ b/src/test/ref/linegen.asm @@ -2,6 +2,7 @@ // Work in progress towards a sine generator /// @file /// Simple binary division implementation +/// /// Follows the C99 standard by truncating toward zero on negative results. /// See http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf section 6.5.5 // Commodore 64 PRG executable file diff --git a/src/test/ref/linegen.log b/src/test/ref/linegen.log index 99968b603..49563aa79 100644 --- a/src/test/ref/linegen.log +++ b/src/test/ref/linegen.log @@ -2438,6 +2438,7 @@ ASSEMBLER BEFORE OPTIMIZATION // Work in progress towards a sine generator /// @file /// Simple binary division implementation +/// /// Follows the C99 standard by truncating toward zero on negative results. /// See http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf section 6.5.5 // Upstart @@ -3724,6 +3725,7 @@ Score: 11679 // Work in progress towards a sine generator /// @file /// Simple binary division implementation +/// /// Follows the C99 standard by truncating toward zero on negative results. /// See http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf section 6.5.5 // Upstart diff --git a/src/test/ref/millfork-benchmarks/linkedlist-kc.asm b/src/test/ref/millfork-benchmarks/linkedlist-kc.asm index 03baca10f..c3892f0b6 100644 --- a/src/test/ref/millfork-benchmarks/linkedlist-kc.asm +++ b/src/test/ref/millfork-benchmarks/linkedlist-kc.asm @@ -1,5 +1,6 @@ /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Commodore 64 PRG executable file .file [name="linkedlist-kc.prg", type="prg", segments="Program"] diff --git a/src/test/ref/millfork-benchmarks/linkedlist-kc.log b/src/test/ref/millfork-benchmarks/linkedlist-kc.log index 859c0c195..449ea8af8 100644 --- a/src/test/ref/millfork-benchmarks/linkedlist-kc.log +++ b/src/test/ref/millfork-benchmarks/linkedlist-kc.log @@ -1477,6 +1477,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Upstart // Commodore 64 PRG executable file @@ -2135,6 +2136,7 @@ Score: 14167 // File Comments /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/millfork-benchmarks/plasma-kc.asm b/src/test/ref/millfork-benchmarks/plasma-kc.asm index 1d796387a..76fe864ab 100644 --- a/src/test/ref/millfork-benchmarks/plasma-kc.asm +++ b/src/test/ref/millfork-benchmarks/plasma-kc.asm @@ -1,5 +1,6 @@ /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Commodore 64 PRG executable file .file [name="plasma-kc.prg", type="prg", segments="Program"] diff --git a/src/test/ref/millfork-benchmarks/plasma-kc.log b/src/test/ref/millfork-benchmarks/plasma-kc.log index 935c29286..f5aeb450f 100644 --- a/src/test/ref/millfork-benchmarks/plasma-kc.log +++ b/src/test/ref/millfork-benchmarks/plasma-kc.log @@ -2266,6 +2266,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Upstart // Commodore 64 PRG executable file @@ -3311,6 +3312,7 @@ Score: 102089 // File Comments /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/millfork-benchmarks/romsum-kc.asm b/src/test/ref/millfork-benchmarks/romsum-kc.asm index b0c7d5c34..70b1bba6b 100644 --- a/src/test/ref/millfork-benchmarks/romsum-kc.asm +++ b/src/test/ref/millfork-benchmarks/romsum-kc.asm @@ -1,5 +1,6 @@ /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Commodore 64 PRG executable file .file [name="romsum-kc.prg", type="prg", segments="Program"] diff --git a/src/test/ref/millfork-benchmarks/romsum-kc.log b/src/test/ref/millfork-benchmarks/romsum-kc.log index daa79b9ae..9e56c2ce9 100644 --- a/src/test/ref/millfork-benchmarks/romsum-kc.log +++ b/src/test/ref/millfork-benchmarks/romsum-kc.log @@ -2043,6 +2043,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Upstart // Commodore 64 PRG executable file @@ -2975,6 +2976,7 @@ Score: 99334 // File Comments /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/millfork-benchmarks/sieve-kc.asm b/src/test/ref/millfork-benchmarks/sieve-kc.asm index d736b292b..e43536013 100644 --- a/src/test/ref/millfork-benchmarks/sieve-kc.asm +++ b/src/test/ref/millfork-benchmarks/sieve-kc.asm @@ -1,5 +1,6 @@ /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Commodore 64 PRG executable file .file [name="sieve-kc.prg", type="prg", segments="Program"] diff --git a/src/test/ref/millfork-benchmarks/sieve-kc.log b/src/test/ref/millfork-benchmarks/sieve-kc.log index e3104100b..ac4d41143 100644 --- a/src/test/ref/millfork-benchmarks/sieve-kc.log +++ b/src/test/ref/millfork-benchmarks/sieve-kc.log @@ -1125,6 +1125,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Upstart // Commodore 64 PRG executable file @@ -1769,6 +1770,7 @@ Score: 6485 // File Comments /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/min-fmul-16.asm b/src/test/ref/min-fmul-16.asm index 4ac77077f..9915283c6 100644 --- a/src/test/ref/min-fmul-16.asm +++ b/src/test/ref/min-fmul-16.asm @@ -1,5 +1,6 @@ /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Commodore 64 PRG executable file .file [name="min-fmul-16.prg", type="prg", segments="Program"] diff --git a/src/test/ref/min-fmul-16.log b/src/test/ref/min-fmul-16.log index 6655b92fe..f0f888238 100644 --- a/src/test/ref/min-fmul-16.log +++ b/src/test/ref/min-fmul-16.log @@ -1283,6 +1283,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Upstart // Commodore 64 PRG executable file @@ -2015,6 +2016,7 @@ Score: 4335 // File Comments /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.asm b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.asm index 0ab27cc07..5fb22b3c3 100644 --- a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.asm +++ b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.asm @@ -3,6 +3,7 @@ /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Commodore 64 PRG executable file .file [name="simple-multiplexer-irq.prg", type="prg", segments="Program"] diff --git a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.log b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.log index 5341105e8..7a98f12b4 100644 --- a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.log +++ b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.log @@ -1644,6 +1644,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file @@ -2606,6 +2607,7 @@ Score: 43652 /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/multiply-16bit-const.asm b/src/test/ref/multiply-16bit-const.asm index 3e9b7b339..e3b274f86 100644 --- a/src/test/ref/multiply-16bit-const.asm +++ b/src/test/ref/multiply-16bit-const.asm @@ -1,5 +1,6 @@ /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Commodore 64 PRG executable file .file [name="multiply-16bit-const.prg", type="prg", segments="Program"] diff --git a/src/test/ref/multiply-16bit-const.log b/src/test/ref/multiply-16bit-const.log index 8162f755d..8af09e351 100644 --- a/src/test/ref/multiply-16bit-const.log +++ b/src/test/ref/multiply-16bit-const.log @@ -1611,6 +1611,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Upstart // Commodore 64 PRG executable file @@ -2443,6 +2444,7 @@ Score: 115473 // File Comments /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/plus4-kbhit.asm b/src/test/ref/plus4-kbhit.asm index 3e75d1696..d1e034869 100644 --- a/src/test/ref/plus4-kbhit.asm +++ b/src/test/ref/plus4-kbhit.asm @@ -1,12 +1,14 @@ // Test implementation of kbhit() for Plus/4 /// @file /// Plus/4 / Commodore 16 registers and memory layout +/// /// http://zimmers.net/anonftp/pub/cbm/schematics/computers/plus4/264_Hardware_Spec.pdf /// http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/plus4/Plus_4_Technical_Docs.pdf /// http://personalpages.tds.net/~rcarlsen/cbm/c16/C16_Service_Manual_314001-03_(1984_Oct).pdf /// https://www.floodgap.com/retrobits/ckb/secret/264memory.txt /// @file /// The MOS 7360/8360 TED chip used for graphics and sound in Plus/4 and Commodore 16 +/// /// https://www.karlstechnology.com/commodore/TED7360-datasheet.pdf /// http://mclauchlan.site.net.au/scott/C=Hacking/C-Hacking12/gfx.html // Commodore 16 / Plus/4 executable PRG file diff --git a/src/test/ref/plus4-kbhit.log b/src/test/ref/plus4-kbhit.log index e3564bc00..4ef2e017c 100644 --- a/src/test/ref/plus4-kbhit.log +++ b/src/test/ref/plus4-kbhit.log @@ -191,12 +191,14 @@ ASSEMBLER BEFORE OPTIMIZATION // Test implementation of kbhit() for Plus/4 /// @file /// Plus/4 / Commodore 16 registers and memory layout +/// /// http://zimmers.net/anonftp/pub/cbm/schematics/computers/plus4/264_Hardware_Spec.pdf /// http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/plus4/Plus_4_Technical_Docs.pdf /// http://personalpages.tds.net/~rcarlsen/cbm/c16/C16_Service_Manual_314001-03_(1984_Oct).pdf /// https://www.floodgap.com/retrobits/ckb/secret/264memory.txt /// @file /// The MOS 7360/8360 TED chip used for graphics and sound in Plus/4 and Commodore 16 +/// /// https://www.karlstechnology.com/commodore/TED7360-datasheet.pdf /// http://mclauchlan.site.net.au/scott/C=Hacking/C-Hacking12/gfx.html // Upstart @@ -303,12 +305,14 @@ Score: 129 // Test implementation of kbhit() for Plus/4 /// @file /// Plus/4 / Commodore 16 registers and memory layout +/// /// http://zimmers.net/anonftp/pub/cbm/schematics/computers/plus4/264_Hardware_Spec.pdf /// http://www.zimmers.net/anonftp/pub/cbm/schematics/computers/plus4/Plus_4_Technical_Docs.pdf /// http://personalpages.tds.net/~rcarlsen/cbm/c16/C16_Service_Manual_314001-03_(1984_Oct).pdf /// https://www.floodgap.com/retrobits/ckb/secret/264memory.txt /// @file /// The MOS 7360/8360 TED chip used for graphics and sound in Plus/4 and Commodore 16 +/// /// https://www.karlstechnology.com/commodore/TED7360-datasheet.pdf /// http://mclauchlan.site.net.au/scott/C=Hacking/C-Hacking12/gfx.html // Upstart diff --git a/src/test/ref/plus4-keyboard-test.asm b/src/test/ref/plus4-keyboard-test.asm index cac5c6b34..8d5336c8e 100644 --- a/src/test/ref/plus4-keyboard-test.asm +++ b/src/test/ref/plus4-keyboard-test.asm @@ -1,6 +1,7 @@ // Test reading keyboard port on the TED of the Plus/4 /// @file /// C standard library string.h +/// /// Functions to manipulate C strings and arrays. // Commodore 16 / Plus/4 executable PRG file .file [name="plus4-keyboard-test.prg", type="prg", segments="Program"] diff --git a/src/test/ref/plus4-keyboard-test.log b/src/test/ref/plus4-keyboard-test.log index be24a51d9..763903217 100644 --- a/src/test/ref/plus4-keyboard-test.log +++ b/src/test/ref/plus4-keyboard-test.log @@ -551,6 +551,7 @@ ASSEMBLER BEFORE OPTIMIZATION // Test reading keyboard port on the TED of the Plus/4 /// @file /// C standard library string.h +/// /// Functions to manipulate C strings and arrays. // Upstart // Commodore 16 / Plus/4 executable PRG file @@ -803,6 +804,7 @@ Score: 7354 // Test reading keyboard port on the TED of the Plus/4 /// @file /// C standard library string.h +/// /// Functions to manipulate C strings and arrays. // Upstart // Commodore 16 / Plus/4 executable PRG file diff --git a/src/test/ref/printmsg.asm b/src/test/ref/printmsg.asm index db6c2ba0e..a81725d3f 100644 --- a/src/test/ref/printmsg.asm +++ b/src/test/ref/printmsg.asm @@ -1,5 +1,6 @@ /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Commodore 64 PRG executable file .file [name="printmsg.prg", type="prg", segments="Program"] diff --git a/src/test/ref/printmsg.log b/src/test/ref/printmsg.log index fa2a9058c..5eeabe3ff 100644 --- a/src/test/ref/printmsg.log +++ b/src/test/ref/printmsg.log @@ -502,6 +502,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Upstart // Commodore 64 PRG executable file @@ -795,6 +796,7 @@ Score: 934 // File Comments /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/scan-desire-problem.asm b/src/test/ref/scan-desire-problem.asm index 3a21c3aa1..eadec53ba 100644 --- a/src/test/ref/scan-desire-problem.asm +++ b/src/test/ref/scan-desire-problem.asm @@ -3,6 +3,7 @@ /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Commodore 64 PRG executable file .file [name="scan-desire-problem.prg", type="prg", segments="Program"] diff --git a/src/test/ref/scan-desire-problem.log b/src/test/ref/scan-desire-problem.log index 849a5e1a6..1b1eb3ecd 100644 --- a/src/test/ref/scan-desire-problem.log +++ b/src/test/ref/scan-desire-problem.log @@ -1364,6 +1364,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file @@ -2083,6 +2084,7 @@ Score: 75552 /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/sieve-min.asm b/src/test/ref/sieve-min.asm index bd36ab5f2..7cc1091a7 100644 --- a/src/test/ref/sieve-min.asm +++ b/src/test/ref/sieve-min.asm @@ -1,5 +1,6 @@ /// @file /// C standard library string.h +/// /// Functions to manipulate C strings and arrays. // Commodore 64 PRG executable file .file [name="sieve-min.prg", type="prg", segments="Program"] diff --git a/src/test/ref/sieve-min.log b/src/test/ref/sieve-min.log index 46709a275..6043d5778 100644 --- a/src/test/ref/sieve-min.log +++ b/src/test/ref/sieve-min.log @@ -987,6 +987,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments /// @file /// C standard library string.h +/// /// Functions to manipulate C strings and arrays. // Upstart // Commodore 64 PRG executable file @@ -1475,6 +1476,7 @@ Score: 9717 // File Comments /// @file /// C standard library string.h +/// /// Functions to manipulate C strings and arrays. // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/signed-words.asm b/src/test/ref/signed-words.asm index e738b6df9..b53ff7947 100644 --- a/src/test/ref/signed-words.asm +++ b/src/test/ref/signed-words.asm @@ -2,6 +2,7 @@ /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Commodore 64 PRG executable file .file [name="signed-words.prg", type="prg", segments="Program"] diff --git a/src/test/ref/signed-words.log b/src/test/ref/signed-words.log index 26d8b1053..fc84892d7 100644 --- a/src/test/ref/signed-words.log +++ b/src/test/ref/signed-words.log @@ -926,6 +926,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file @@ -1398,6 +1399,7 @@ Score: 6364 /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/sinus-basic.asm b/src/test/ref/sinus-basic.asm index 9cdce4c7e..701ec74d1 100644 --- a/src/test/ref/sinus-basic.asm +++ b/src/test/ref/sinus-basic.asm @@ -1,5 +1,6 @@ /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Commodore 64 PRG executable file .file [name="sinus-basic.prg", type="prg", segments="Program"] diff --git a/src/test/ref/sinus-basic.log b/src/test/ref/sinus-basic.log index 2314c286e..d8bdac9e3 100644 --- a/src/test/ref/sinus-basic.log +++ b/src/test/ref/sinus-basic.log @@ -1278,6 +1278,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Upstart // Commodore 64 PRG executable file @@ -2034,6 +2035,7 @@ Score: 4961 // File Comments /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/sinusgen16.asm b/src/test/ref/sinusgen16.asm index c80d2fdbe..a9b3d85ed 100644 --- a/src/test/ref/sinusgen16.asm +++ b/src/test/ref/sinusgen16.asm @@ -1,6 +1,7 @@ // Generates a 16-bit signed sine /// @file /// Sine Generator functions using only multiplication, addition and bit shifting +/// /// Uses a single division for converting the wavelength to a reciprocal. /// Generates sine using the series sin(x) = x - x^/3! + x^-5! - x^7/7! ... /// Uses the approximation sin(x) = x - x^/6 + x^/128 diff --git a/src/test/ref/sinusgen16.log b/src/test/ref/sinusgen16.log index f154a2dcb..e39f45dea 100644 --- a/src/test/ref/sinusgen16.log +++ b/src/test/ref/sinusgen16.log @@ -2897,6 +2897,7 @@ ASSEMBLER BEFORE OPTIMIZATION // Generates a 16-bit signed sine /// @file /// Sine Generator functions using only multiplication, addition and bit shifting +/// /// Uses a single division for converting the wavelength to a reciprocal. /// Generates sine using the series sin(x) = x - x^/3! + x^-5! - x^7/7! ... /// Uses the approximation sin(x) = x - x^/6 + x^/128 @@ -4445,6 +4446,7 @@ Score: 19169 // Generates a 16-bit signed sine /// @file /// Sine Generator functions using only multiplication, addition and bit shifting +/// /// Uses a single division for converting the wavelength to a reciprocal. /// Generates sine using the series sin(x) = x - x^/3! + x^-5! - x^7/7! ... /// Uses the approximation sin(x) = x - x^/6 + x^/128 diff --git a/src/test/ref/struct-ptr-26.asm b/src/test/ref/struct-ptr-26.asm index e1ee49b8d..b8cd0c721 100644 --- a/src/test/ref/struct-ptr-26.asm +++ b/src/test/ref/struct-ptr-26.asm @@ -1,5 +1,6 @@ /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Commodore 64 PRG executable file .file [name="struct-ptr-26.prg", type="prg", segments="Program"] diff --git a/src/test/ref/struct-ptr-26.log b/src/test/ref/struct-ptr-26.log index 9d5929602..03594367a 100644 --- a/src/test/ref/struct-ptr-26.log +++ b/src/test/ref/struct-ptr-26.log @@ -465,6 +465,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Upstart // Commodore 64 PRG executable file @@ -673,6 +674,7 @@ Score: 161 // File Comments /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/test-comparisons-word.asm b/src/test/ref/test-comparisons-word.asm index cafe96308..b878a48cb 100644 --- a/src/test/ref/test-comparisons-word.asm +++ b/src/test/ref/test-comparisons-word.asm @@ -2,6 +2,7 @@ /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Commodore 64 PRG executable file .file [name="test-comparisons-word.prg", type="prg", segments="Program"] diff --git a/src/test/ref/test-comparisons-word.log b/src/test/ref/test-comparisons-word.log index 2810d2342..171b46765 100644 --- a/src/test/ref/test-comparisons-word.log +++ b/src/test/ref/test-comparisons-word.log @@ -2041,6 +2041,7 @@ ASSEMBLER BEFORE OPTIMIZATION /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file @@ -2982,9 +2983,9 @@ Removing instruction jmp __b4 Succesful ASM optimization Pass5NextJumpElimination Removing instruction lda #3 Succesful ASM optimization Pass5UnnecesaryLoadElimination -Fixing long branch [108] beq __b1 to bne -Fixing long branch [112] beq __b2 to bne -Fixing long branch [116] beq __b3 to bne +Fixing long branch [109] beq __b1 to bne +Fixing long branch [113] beq __b2 to bne +Fixing long branch [117] beq __b3 to bne FINAL SYMBOL TABLE constant const byte FF = $57 @@ -3127,6 +3128,7 @@ Score: 793615 /// Commodore 64 Registers and Constants /// @file /// The MOS 6526 Complex Interface Adapter (CIA) +/// /// http://archive.6502.org/datasheets/mos_6526_cia_recreated.pdf // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/test-keyboard-space.asm b/src/test/ref/test-keyboard-space.asm index 4e18911a1..6b8cf20fb 100644 --- a/src/test/ref/test-keyboard-space.asm +++ b/src/test/ref/test-keyboard-space.asm @@ -1,6 +1,7 @@ // Test keyboard input - test the space bar /// @file /// Simple Keyboard Input Library +/// /// C64 Keyboard Matrix Reference - from http://codebase64.org/doku.php?id=base:reading_the_keyboard /// Keyboard Codes are %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7) /// +----+----------------------+-------------------------------------------------------------------------------------------------------+ diff --git a/src/test/ref/test-keyboard-space.log b/src/test/ref/test-keyboard-space.log index 18d82abee..955a7e95c 100644 --- a/src/test/ref/test-keyboard-space.log +++ b/src/test/ref/test-keyboard-space.log @@ -385,6 +385,7 @@ ASSEMBLER BEFORE OPTIMIZATION // Test keyboard input - test the space bar /// @file /// Simple Keyboard Input Library +/// /// C64 Keyboard Matrix Reference - from http://codebase64.org/doku.php?id=base:reading_the_keyboard /// Keyboard Codes are %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7) /// +----+----------------------+-------------------------------------------------------------------------------------------------------+ @@ -599,6 +600,7 @@ Score: 1141 // Test keyboard input - test the space bar /// @file /// Simple Keyboard Input Library +/// /// C64 Keyboard Matrix Reference - from http://codebase64.org/doku.php?id=base:reading_the_keyboard /// Keyboard Codes are %00rrrccc, where rrr is the row ID (0-7) and ccc is the column ID (0-7) /// +----+----------------------+-------------------------------------------------------------------------------------------------------+ diff --git a/src/test/ref/test-lowhigh.asm b/src/test/ref/test-lowhigh.asm index fa83ca1f9..2efb856b7 100644 --- a/src/test/ref/test-lowhigh.asm +++ b/src/test/ref/test-lowhigh.asm @@ -1,5 +1,6 @@ /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Commodore 64 PRG executable file .file [name="test-lowhigh.prg", type="prg", segments="Program"] diff --git a/src/test/ref/test-lowhigh.log b/src/test/ref/test-lowhigh.log index b1d81917a..c882fc901 100644 --- a/src/test/ref/test-lowhigh.log +++ b/src/test/ref/test-lowhigh.log @@ -1345,6 +1345,7 @@ ASSEMBLER BEFORE OPTIMIZATION // File Comments /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Upstart // Commodore 64 PRG executable file @@ -2065,6 +2066,7 @@ Score: 8232 // File Comments /// @file /// A lightweight library for printing on the C64. +/// /// Printing with this library is done by calling print_ function for each element // Upstart // Commodore 64 PRG executable file diff --git a/src/test/ref/tod-1.asm b/src/test/ref/tod-1.asm index fdfc41768..fd2bbf413 100644 --- a/src/test/ref/tod-1.asm +++ b/src/test/ref/tod-1.asm @@ -1,6 +1,7 @@ // Time of Day / RTOS test using the 6526 CIA on C64 /// @file /// Provides provide console input/output +/// /// Implements similar functions as conio.h from CC65 for compatibility /// See https://github.com/cc65/cc65/blob/master/include/conio.h // diff --git a/src/test/ref/tod-1.log b/src/test/ref/tod-1.log index 88dea943a..4a283c6d3 100644 --- a/src/test/ref/tod-1.log +++ b/src/test/ref/tod-1.log @@ -2087,6 +2087,7 @@ ASSEMBLER BEFORE OPTIMIZATION // Time of Day / RTOS test using the 6526 CIA on C64 /// @file /// Provides provide console input/output +/// /// Implements similar functions as conio.h from CC65 for compatibility /// See https://github.com/cc65/cc65/blob/master/include/conio.h // @@ -3154,6 +3155,7 @@ Score: 106431 // Time of Day / RTOS test using the 6526 CIA on C64 /// @file /// Provides provide console input/output +/// /// Implements similar functions as conio.h from CC65 for compatibility /// See https://github.com/cc65/cc65/blob/master/include/conio.h // diff --git a/src/test/ref/vic20-raster.asm b/src/test/ref/vic20-raster.asm index 6d8a555b5..edac8b517 100644 --- a/src/test/ref/vic20-raster.asm +++ b/src/test/ref/vic20-raster.asm @@ -1,10 +1,12 @@ // VIC 20 Raster bars /// @file /// Commodore VIC 20 registers and memory layout +/// /// http://sleepingelephant.com/denial/wiki/index.php?title=Memory_Map /// http://www.zimmers.net/anonftp/pub/cbm/vic20/manuals/VIC-20_Programmers_Reference_Guide_1st_Edition_6th_Printing.pdf /// @file /// MOS 6560/6561 VIDEO INTERFACE CHIP +/// /// Used in VIC 20 /// http://archive.6502.org/datasheets/mos_6560_6561_vic.pdf // Commodore VIC 20 executable PRG file diff --git a/src/test/ref/vic20-raster.log b/src/test/ref/vic20-raster.log index e04a2f834..dfa4114e1 100644 --- a/src/test/ref/vic20-raster.log +++ b/src/test/ref/vic20-raster.log @@ -90,10 +90,12 @@ ASSEMBLER BEFORE OPTIMIZATION // VIC 20 Raster bars /// @file /// Commodore VIC 20 registers and memory layout +/// /// http://sleepingelephant.com/denial/wiki/index.php?title=Memory_Map /// http://www.zimmers.net/anonftp/pub/cbm/vic20/manuals/VIC-20_Programmers_Reference_Guide_1st_Edition_6th_Printing.pdf /// @file /// MOS 6560/6561 VIDEO INTERFACE CHIP +/// /// Used in VIC 20 /// http://archive.6502.org/datasheets/mos_6560_6561_vic.pdf // Upstart @@ -144,10 +146,12 @@ Score: 112 // VIC 20 Raster bars /// @file /// Commodore VIC 20 registers and memory layout +/// /// http://sleepingelephant.com/denial/wiki/index.php?title=Memory_Map /// http://www.zimmers.net/anonftp/pub/cbm/vic20/manuals/VIC-20_Programmers_Reference_Guide_1st_Edition_6th_Printing.pdf /// @file /// MOS 6560/6561 VIDEO INTERFACE CHIP +/// /// Used in VIC 20 /// http://archive.6502.org/datasheets/mos_6560_6561_vic.pdf // Upstart diff --git a/src/test/ref/vic20-simple.asm b/src/test/ref/vic20-simple.asm index a79f1da39..dfb6faca9 100644 --- a/src/test/ref/vic20-simple.asm +++ b/src/test/ref/vic20-simple.asm @@ -1,10 +1,12 @@ // Trivial VIC 20 program /// @file /// Commodore VIC 20 registers and memory layout +/// /// http://sleepingelephant.com/denial/wiki/index.php?title=Memory_Map /// http://www.zimmers.net/anonftp/pub/cbm/vic20/manuals/VIC-20_Programmers_Reference_Guide_1st_Edition_6th_Printing.pdf /// @file /// MOS 6560/6561 VIDEO INTERFACE CHIP +/// /// Used in VIC 20 /// http://archive.6502.org/datasheets/mos_6560_6561_vic.pdf // Commodore VIC 20 executable PRG file diff --git a/src/test/ref/vic20-simple.log b/src/test/ref/vic20-simple.log index 65c12ed7e..114a5d74b 100644 --- a/src/test/ref/vic20-simple.log +++ b/src/test/ref/vic20-simple.log @@ -131,10 +131,12 @@ ASSEMBLER BEFORE OPTIMIZATION // Trivial VIC 20 program /// @file /// Commodore VIC 20 registers and memory layout +/// /// http://sleepingelephant.com/denial/wiki/index.php?title=Memory_Map /// http://www.zimmers.net/anonftp/pub/cbm/vic20/manuals/VIC-20_Programmers_Reference_Guide_1st_Edition_6th_Printing.pdf /// @file /// MOS 6560/6561 VIDEO INTERFACE CHIP +/// /// Used in VIC 20 /// http://archive.6502.org/datasheets/mos_6560_6561_vic.pdf // Upstart @@ -220,10 +222,12 @@ Score: 331 // Trivial VIC 20 program /// @file /// Commodore VIC 20 registers and memory layout +/// /// http://sleepingelephant.com/denial/wiki/index.php?title=Memory_Map /// http://www.zimmers.net/anonftp/pub/cbm/vic20/manuals/VIC-20_Programmers_Reference_Guide_1st_Edition_6th_Printing.pdf /// @file /// MOS 6560/6561 VIDEO INTERFACE CHIP +/// /// Used in VIC 20 /// http://archive.6502.org/datasheets/mos_6560_6561_vic.pdf // Upstart