diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2020-11-27 20:04:18 +0100 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2020-11-27 20:04:18 +0100 |
commit | f829f6893d94ed52044bf007bc447526c9d5e653 (patch) | |
tree | c1c98d8b9240b4507719aa8b78eb3ee03dd64ab5 /emu/7seg.h | |
parent | 3d77f3f5ad41e931117425f58c74f49c9503bf7b (diff) | |
download | 6502-f829f6893d94ed52044bf007bc447526c9d5e653.tar.gz 6502-f829f6893d94ed52044bf007bc447526c9d5e653.tar.bz2 |
emulator uses a bus now in the cpu, ROM, RAM and VIA (7-seg) are devices connected to the bus
Diffstat (limited to 'emu/7seg.h')
-rw-r--r-- | emu/7seg.h | 18 |
1 files changed, 13 insertions, 5 deletions
@@ -1,6 +1,8 @@ #ifndef SEG7_H #define SEG7_H +#include "device.h" + #ifdef WITH_GUI #include <SDL.h> #endif @@ -18,8 +20,8 @@ // +---- RCLK // +----- SRCLK enum { - PORTA = 0x6001, - DDRA = 0x6003, + PORTA = 0x01, + DDRA = 0x03, SER = 0x01, RCLK = 0x02, @@ -28,6 +30,10 @@ enum { typedef struct seg7_t { + device_t base; + + uint16_t addr; + uint8_t ddr; uint16_t shift; uint16_t latch; @@ -35,8 +41,10 @@ typedef struct seg7_t bool debug; } seg7_t; -void seg7_init( seg7_t *seg ); -uint8_t seg7_read( seg7_t *seg, uint16_t addr ); -void seg7_write( seg7_t *seg, uint16_t addr, uint8_t data ); +void seg7_init( seg7_t *seg, uint16_t addr ); + +uint8_t seg7_read( void *obj, uint16_t addr ); +void seg7_write( void *obj, uint16_t addr, uint8_t data ); +void seg7_deinit( void *obj ); #endif |