|
pico9918-core 1.3.0
TMS9918A / F18A video display processor emulation in C99
|
pico9918-core - Platform Abstraction (RP2040 / RP2350) More...
#include <stdint.h>#include "hardware/dma.h"#include "hardware/gpio.h"#include "pico/divider.h"
Include dependency graph for platform_pico.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Macros | |
| #define | PICO9918_HOST_SET_INT(active) gpio_put(PICO9918_INT_GPIO, !(active)) |
| #define | PICO9918_SECTION_SCRATCH_X(name) __attribute__((section(".scratch_x." #name))) |
| #define | PICO9918_SECTION_SCRATCH_Y(name) __attribute__((section(".scratch_y." #name))) |
| #define | PICO9918_UNINITIALIZED(decl) __uninitialized_ram(decl) |
| #define | PICO9918_IN_FLASH_FUNC(fn) fn |
| #define | PICO9918_FILL_BORDER 2u |
| #define | PICO9918_FILL32_INIT(inst, srcPtr) |
| #define | PICO9918_FILL32_SET_COUNT(inst, n) dma_channel_set_trans_count((inst), (n), false) |
| #define | PICO9918_FILL32_TRIGGER(inst, dstPtr) dma_channel_set_write_addr((inst), (dstPtr), true) |
| #define | PICO9918_FILL32_WAIT(inst) dma_channel_wait_for_finish_blocking(inst) |
| #define | PICO9918_FILL_MASKS 5u |
| #define | PICO9918_FILL_LINE 6u |
| #define | PICO9918_COPY 7u |
| #define | PICO9918_COPY_STATE() |
| #define | PICO9918_COPY_INIT(inst) |
| #define | PICO9918_COPY_SET_WIDTH(inst, wordAligned) dma_channel_set_config((inst), (wordAligned) ? &pico9918_copy_word : &pico9918_copy_byte, false) |
| #define | PICO9918_COPY_SET_SRC(inst, srcPtr) dma_channel_set_read_addr((inst), (srcPtr), false) |
| #define | PICO9918_COPY_SET_DST(inst, dstPtr) dma_channel_set_write_addr((inst), (dstPtr), false) |
| #define | PICO9918_COPY_TRIGGER(inst, n) dma_channel_set_trans_count((inst), (n), true) |
| #define | PICO9918_COPY_WAIT(inst) dma_channel_wait_for_finish_blocking(inst) |
| #define | PICO9918_DIVMOD_U32(n, d, q, r) |
| #define | PICO9918_DMA_CLAIM() |
| #define | PICO9918_PIXEL_FROM_RGB12(rgb) ((PICO9918_PIXEL_T)(((rgb) & 0xFF0F) | ((((rgb) & 0xFF0F) >> 12) << 4))) |
| #define | PICO9918_PIXEL_FROM_RGB12_PAIR(packed) ((packed) ^ (((packed) ^ ((packed) >> 8)) & 0x00F000F0u)) |
| #define | PICO9918_PIXEL_PAIR(p) ((uint32_t)(p) * 0x10001u) |
| #define | PICO9918_LOW16(x) ((uint32_t)(uint16_t)(x)) |
| #define | PICO9918_PIXEL_DARKEN(p) ((PICO9918_PIXEL_T)(((p) >> 2) & 0x333)) |
| #define | PICO9918_PIXEL_PAIR_DIM(w) (((w) >> 1) & 0x07770777u) |
| #define | PICO9918_INK_PIXELS 2 |
| #define | PICO9918_INK_FILL(fg) PICO9918_PIXEL_PAIR(fg) |
| #define | PICO9918_INK_DARKEN(w) (((w) >> 2) & 0x03330333u) |
| #define | PICO9918_INK_ONE(k) (0xffffu << ((k) * 16)) |
| #define | PICO9918_EXPAND_INIT(lut) ((void)0) |
| #define | PICO9918_EXPAND_INDEXED(dst, src, n, lut) |
| #define | PICO9918_EXPAND_INDEXED_WIDE(dst, src, n, lut) |
Typedefs | |
| typedef uint16_t | PICO9918_PIXEL_T |
| typedef uint32_t | PICO9918_INK_T |
| typedef uint32_t | PICO9918_PALETTE_LUT_T |
Variables | |
| dma_channel_config | pico9918_copy_byte |
| dma_channel_config | pico9918_copy_word |
pico9918-core - Platform Abstraction (RP2040 / RP2350)
Copyright (c) 2021 Troy Schrapel
This code is licensed under the MIT license
https://github.com/visrealm/pico9918-core
Included by impl/platform.h when PICO_BUILD is defined. Do not include directly.
Definition in file platform_pico.h.
| #define PICO9918_HOST_SET_INT | ( | active | ) | gpio_put(PICO9918_INT_GPIO, !(active)) |
Definition at line 47 of file platform_pico.h.
| #define PICO9918_SECTION_SCRATCH_X | ( | name | ) | __attribute__((section(".scratch_x." #name))) |
Definition at line 54 of file platform_pico.h.
| #define PICO9918_SECTION_SCRATCH_Y | ( | name | ) | __attribute__((section(".scratch_y." #name))) |
Definition at line 55 of file platform_pico.h.
| #define PICO9918_UNINITIALIZED | ( | decl | ) | __uninitialized_ram(decl) |
Definition at line 59 of file platform_pico.h.
| #define PICO9918_IN_FLASH_FUNC | ( | fn | ) | fn |
Definition at line 68 of file platform_pico.h.
| #define PICO9918_FILL_BORDER 2u |
Definition at line 121 of file platform_pico.h.
| #define PICO9918_FILL32_INIT | ( | inst, | |
| srcPtr | |||
| ) |
Definition at line 124 of file platform_pico.h.
| #define PICO9918_FILL32_SET_COUNT | ( | inst, | |
| n | |||
| ) | dma_channel_set_trans_count((inst), (n), false) |
Definition at line 135 of file platform_pico.h.
| #define PICO9918_FILL32_TRIGGER | ( | inst, | |
| dstPtr | |||
| ) | dma_channel_set_write_addr((inst), (dstPtr), true) |
Definition at line 136 of file platform_pico.h.
| #define PICO9918_FILL32_WAIT | ( | inst | ) | dma_channel_wait_for_finish_blocking(inst) |
Definition at line 137 of file platform_pico.h.
| #define PICO9918_FILL_MASKS 5u |
Definition at line 151 of file platform_pico.h.
| #define PICO9918_FILL_LINE 6u |
Definition at line 155 of file platform_pico.h.
| #define PICO9918_COPY 7u |
Definition at line 159 of file platform_pico.h.
| #define PICO9918_COPY_STATE | ( | ) |
Definition at line 166 of file platform_pico.h.
| #define PICO9918_COPY_INIT | ( | inst | ) |
Definition at line 170 of file platform_pico.h.
| #define PICO9918_COPY_SET_WIDTH | ( | inst, | |
| wordAligned | |||
| ) | dma_channel_set_config((inst), (wordAligned) ? &pico9918_copy_word : &pico9918_copy_byte, false) |
Definition at line 183 of file platform_pico.h.
| #define PICO9918_COPY_SET_SRC | ( | inst, | |
| srcPtr | |||
| ) | dma_channel_set_read_addr((inst), (srcPtr), false) |
Definition at line 186 of file platform_pico.h.
| #define PICO9918_COPY_SET_DST | ( | inst, | |
| dstPtr | |||
| ) | dma_channel_set_write_addr((inst), (dstPtr), false) |
Definition at line 187 of file platform_pico.h.
| #define PICO9918_COPY_TRIGGER | ( | inst, | |
| n | |||
| ) | dma_channel_set_trans_count((inst), (n), true) |
Definition at line 188 of file platform_pico.h.
| #define PICO9918_COPY_WAIT | ( | inst | ) | dma_channel_wait_for_finish_blocking(inst) |
Definition at line 189 of file platform_pico.h.
| #define PICO9918_DIVMOD_U32 | ( | n, | |
| d, | |||
| q, | |||
| r | |||
| ) |
Definition at line 193 of file platform_pico.h.
| #define PICO9918_DMA_CLAIM | ( | ) |
Definition at line 208 of file platform_pico.h.
| #define PICO9918_PIXEL_FROM_RGB12 | ( | rgb | ) | ((PICO9918_PIXEL_T)(((rgb) & 0xFF0F) | ((((rgb) & 0xFF0F) >> 12) << 4))) |
Definition at line 245 of file platform_pico.h.
| #define PICO9918_PIXEL_FROM_RGB12_PAIR | ( | packed | ) | ((packed) ^ (((packed) ^ ((packed) >> 8)) & 0x00F000F0u)) |
Definition at line 249 of file platform_pico.h.
| #define PICO9918_PIXEL_PAIR | ( | p | ) | ((uint32_t)(p) * 0x10001u) |
Definition at line 269 of file platform_pico.h.
| #define PICO9918_LOW16 | ( | x | ) | ((uint32_t)(uint16_t)(x)) |
Definition at line 270 of file platform_pico.h.
| #define PICO9918_PIXEL_DARKEN | ( | p | ) | ((PICO9918_PIXEL_T)(((p) >> 2) & 0x333)) |
Definition at line 274 of file platform_pico.h.
| #define PICO9918_PIXEL_PAIR_DIM | ( | w | ) | (((w) >> 1) & 0x07770777u) |
Definition at line 280 of file platform_pico.h.
| #define PICO9918_INK_PIXELS 2 |
Definition at line 288 of file platform_pico.h.
| #define PICO9918_INK_FILL | ( | fg | ) | PICO9918_PIXEL_PAIR(fg) |
Definition at line 289 of file platform_pico.h.
| #define PICO9918_INK_DARKEN | ( | w | ) | (((w) >> 2) & 0x03330333u) |
Definition at line 290 of file platform_pico.h.
| #define PICO9918_INK_ONE | ( | k | ) | (0xffffu << ((k) * 16)) |
Definition at line 291 of file platform_pico.h.
| #define PICO9918_EXPAND_INIT | ( | lut | ) | ((void)0) |
Definition at line 361 of file platform_pico.h.
| #define PICO9918_EXPAND_INDEXED | ( | dst, | |
| src, | |||
| n, | |||
| lut | |||
| ) |
Definition at line 363 of file platform_pico.h.
| #define PICO9918_EXPAND_INDEXED_WIDE | ( | dst, | |
| src, | |||
| n, | |||
| lut | |||
| ) |
Definition at line 392 of file platform_pico.h.
| typedef uint16_t PICO9918_PIXEL_T |
Definition at line 243 of file platform_pico.h.
| typedef uint32_t PICO9918_INK_T |
Definition at line 287 of file platform_pico.h.
| typedef uint32_t PICO9918_PALETTE_LUT_T |
Definition at line 297 of file platform_pico.h.