annotate src/main.c @ 23:a085f17b79e9

Implement hflip
author Michael Pavone <pavone@retrodev.com>
date Wed, 30 Mar 2016 20:31:04 -0700
parents 04fc17376999
children 4c9dbfa30a66
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1 #include <stdint.h>
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
2 #include <stdio.h>
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
3 #include <stdlib.h>
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
4 #include <string.h>
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
5 #include "cpu.h"
8
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
6 #include "vdp.h"
11
04d8efe7a1f0 Initial stab at video output and background color rendering. Fixed address decoding in address port write handler.
Michael Pavone <pavone@retrodev.com>
parents: 8
diff changeset
7 #include "system.h"
0
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
8
8
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
9 #define CYCLES_PER_FRAME (832*262)
0
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
10
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
11 uint8_t rom[48 * 1024];
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
12 uint8_t ram[16 * 1024];
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
13
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
14 enum {
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
15 PORT_CONTROLLER_1,
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
16 PORT_CONTROLLER_2,
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
17 PORT_CONTROLLER_3,
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
18 PORT_CONTROLLER_4,
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
19 PORT_FREQUENCY_A,
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
20 PORT_FREQUENCY_B,
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
21 PORT_FREQUENCY_C,
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
22 PORT_FREQUENCY_D,
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
23 PORT_VOLUME_AB,
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
24 PORT_VOLUME_CD,
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
25 PORT_TIMER,
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
26 PORT_SERIAL,
8
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
27 PORT_VERTICAL,
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
28 PORT_HORIZONTAL,
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
29 PORT_VRAM_ADDRESS,
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
30 PORT_VRAM_DATA
0
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
31 };
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
32
8
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
33 typedef struct {
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
34 cpu *proc;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
35 vdp video;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
36 } console;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
37
0
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
38 void debug_port_write(cpu *context, uint8_t port, uint16_t value)
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
39 {
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
40 putchar(value);
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
41 }
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
42
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
43 uint16_t debug_port_read(cpu *context, uint8_t port)
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
44 {
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
45 return getchar();
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
46 }
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
47
8
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
48 void vertical_port_write(cpu *context, uint8_t port, uint16_t value)
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
49 {
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
50 console *system = context->system;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
51 vdp_run(&system->video, context->cycles);
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
52 system->video.vscroll = value;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
53 }
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
54
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
55 uint16_t vertical_port_read(cpu *context, uint8_t port)
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
56 {
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
57 console *system = context->system;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
58 vdp_run(&system->video, context->cycles);
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
59 return system->video.vcounter;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
60 }
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
61
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
62 void horizontal_port_write(cpu *context, uint8_t port, uint16_t value)
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
63 {
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
64 console *system = context->system;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
65 vdp_run(&system->video, context->cycles);
19
04fc17376999 Sort of working tile rendering and tile test ROM
Michael Pavone <pavone@retrodev.com>
parents: 16
diff changeset
66 vdp_write_hscroll(&system->video, value);
8
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
67 }
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
68
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
69 uint16_t horizontal_port_read(cpu *context, uint8_t port)
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
70 {
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
71 console *system = context->system;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
72 vdp_run(&system->video, context->cycles);
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
73 return system->video.hcounter;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
74 }
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
75
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
76 void address_port_write(cpu *context, uint8_t port, uint16_t value)
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
77 {
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
78 console *system = context->system;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
79 vdp_run(&system->video, context->cycles);
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
80 vdp_write_address(&system->video, value);
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
81 }
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
82
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
83 uint16_t address_port_read(cpu *context, uint8_t port)
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
84 {
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
85 console *system = context->system;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
86 vdp_run(&system->video, context->cycles);
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
87 return system->video.status;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
88 }
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
89
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
90 void data_port_write(cpu *context, uint8_t port, uint16_t value)
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
91 {
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
92 console *system = context->system;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
93 vdp_run(&system->video, context->cycles);
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
94 vdp_write_data(&system->video, value);
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
95 }
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
96
0
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
97 memory_region regions[] = {
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
98 {rom, 0, sizeof(rom)-1, MEM_READ},
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
99 {ram, sizeof(rom), sizeof(rom)-1+sizeof(ram), MEM_READ},
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
100 };
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
101
8
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
102 void run_console(console *context)
0
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
103 {
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
104 for(;;)
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
105 {
8
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
106 run_cpu(context->proc, CYCLES_PER_FRAME);
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
107 vdp_run(&context->video, CYCLES_PER_FRAME);
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
108 context->proc->cycles -= CYCLES_PER_FRAME;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
109 context->video.cycles -= CYCLES_PER_FRAME;
16
ae58e7c3c328 Poll events regularly to avoid unresponsive app warnings. Handle quit event
Michael Pavone <pavone@retrodev.com>
parents: 11
diff changeset
110 system_poll_events();
0
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
111 }
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
112 }
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
113
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
114 int main(int argc, char **argv)
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
115 {
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
116 if (argc < 2) {
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
117 fputs("usage: s16 FILE\n", stderr);
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
118 return 1;
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
119 }
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
120 FILE *f = fopen(argv[1], "rb");
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
121 if (!f) {
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
122 fprintf(stderr, "Failed to open %s for reading\n", argv[1]);
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
123 return 1;
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
124 }
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
125
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
126 size_t read;
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
127 if ((read = fread(rom, 1, sizeof(rom), f)) < sizeof(rom)) {
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
128 memset(rom + read, 0xFF, sizeof(rom)-read);
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
129 }
8
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
130 console context;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
131 context.proc = alloc_cpu(10, sizeof(regions)/sizeof(memory_region), regions);
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
132 context.proc->system = &context;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
133 vdp_init(&context.video, 2);
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
134 context.proc->port_handlers[PORT_SERIAL].write = debug_port_write;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
135 context.proc->port_handlers[PORT_SERIAL].read = debug_port_read;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
136 context.proc->port_handlers[PORT_VERTICAL].write = vertical_port_write;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
137 context.proc->port_handlers[PORT_VERTICAL].read = vertical_port_read;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
138 context.proc->port_handlers[PORT_HORIZONTAL].write = horizontal_port_write;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
139 context.proc->port_handlers[PORT_HORIZONTAL].read = horizontal_port_read;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
140 context.proc->port_handlers[PORT_VRAM_ADDRESS].write = address_port_write;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
141 context.proc->port_handlers[PORT_VRAM_ADDRESS].read = address_port_read;
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
142 context.proc->port_handlers[PORT_VRAM_DATA].write = data_port_write;
11
04d8efe7a1f0 Initial stab at video output and background color rendering. Fixed address decoding in address port write handler.
Michael Pavone <pavone@retrodev.com>
parents: 8
diff changeset
143
04d8efe7a1f0 Initial stab at video output and background color rendering. Fixed address decoding in address port write handler.
Michael Pavone <pavone@retrodev.com>
parents: 8
diff changeset
144 if (!system_init(640, 480)) {
04d8efe7a1f0 Initial stab at video output and background color rendering. Fixed address decoding in address port write handler.
Michael Pavone <pavone@retrodev.com>
parents: 8
diff changeset
145 return 1;
04d8efe7a1f0 Initial stab at video output and background color rendering. Fixed address decoding in address port write handler.
Michael Pavone <pavone@retrodev.com>
parents: 8
diff changeset
146 }
04d8efe7a1f0 Initial stab at video output and background color rendering. Fixed address decoding in address port write handler.
Michael Pavone <pavone@retrodev.com>
parents: 8
diff changeset
147
8
5176efdda5ae Initial work on VDP emulation
Michael Pavone <pavone@retrodev.com>
parents: 0
diff changeset
148 run_console(&context);
0
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
149 return 0;
7e44f7d5810b Initial commit. CPU working well enough for simple hello world program.
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
150 }