Apple1-esp/io.h

43 lines
762 B
C
Raw Permalink Normal View History

2014-11-11 17:13:25 +00:00
#ifndef _IO_H
#define _IO_H
class io: public Memory::Device, public Display, Keyboard, public PIA {
2014-11-11 17:13:25 +00:00
public:
io(filer &files): Memory::Device(Memory::page_size), files(files) {}
2019-03-26 19:34:49 +00:00
2023-09-27 12:55:10 +00:00
void reset();
bool start();
2023-09-27 12:55:10 +00:00
static void on_tick();
2014-11-11 17:13:25 +00:00
2023-09-27 12:55:10 +00:00
void down(uint8_t);
void up(uint8_t);
2014-11-17 20:00:40 +00:00
2023-09-27 12:55:10 +00:00
void operator=(uint8_t b) { PIA::write(_acc, b); }
operator uint8_t() { return PIA::read(_acc); }
void checkpoint(Stream &);
void restore(Stream &);
void write_portb(uint8_t);
uint8_t read_cra();
2014-11-11 17:13:25 +00:00
2014-11-14 11:45:28 +00:00
void load();
2019-03-27 18:25:41 +00:00
filer &files;
static const uint8_t ROWS = 24;
static const uint8_t COLS = 40;
2014-11-11 17:13:25 +00:00
private:
2023-09-27 12:55:10 +00:00
void cursor(bool on);
2018-08-14 10:00:03 +00:00
void display(uint8_t);
2014-11-12 08:28:32 +00:00
void draw(char, int, int);
2018-08-14 10:00:03 +00:00
void enter(uint8_t);
2014-11-11 17:13:25 +00:00
bool _shift, _loading;
uint8_t r, c;
char screen[ROWS][COLS];
2014-11-11 17:13:25 +00:00
};
#endif