Browse code

Reordered devices

neauoire authored on 15/02/2021 03:43:33
Showing 7 changed files
... ...
@@ -37,7 +37,7 @@ SDL_Renderer *gRenderer;
37 37
 SDL_Texture *gTexture;
38 38
 Uint32 *pixels;
39 39
 
40
-Device *devconsole, *devscreen, *devmouse, *devkey, *devsprite, *devctrl;
40
+Device *devconsole, *devscreen, *devmouse, *devkey, *devsprite, *devcontroller;
41 41
 
42 42
 #pragma mark - Helpers
43 43
 
... ...
@@ -187,12 +187,6 @@ domouse(SDL_Event *event)
187 187
 	}
188 188
 }
189 189
 
190
-void
191
-dokey(SDL_Event *event)
192
-{
193
-	(void)event;
194
-}
195
-
196 190
 void
197 191
 doctrl(SDL_Event *event, int z)
198 192
 {
... ...
@@ -209,18 +203,16 @@ doctrl(SDL_Event *event, int z)
209 203
 	case SDLK_LEFT: flag = 0x40; break;
210 204
 	case SDLK_RIGHT: flag = 0x80; break;
211 205
 	}
212
-	setflag(&devctrl->mem[0], flag, z);
206
+	setflag(&devcontroller->mem[0], flag, z);
213 207
 }
214 208
 
215 209
 #pragma mark - Devices
216 210
 
217 211
 Uint8
218
-consoler(Device *d, Memory *m, Uint8 b)
212
+defaultrw(Device *d, Memory *m, Uint8 b)
219 213
 {
220
-	(void)b;
221
-	(void)d;
222 214
 	(void)m;
223
-	return 0;
215
+	return d->mem[b];
224 216
 }
225 217
 
226 218
 Uint8
... ...
@@ -235,7 +227,7 @@ consolew(Device *d, Memory *m, Uint8 b)
235 227
 }
236 228
 
237 229
 Uint8
238
-ppur(Device *d, Memory *m, Uint8 b)
230
+screenr(Device *d, Memory *m, Uint8 b)
239 231
 {
240 232
 	switch(b) {
241 233
 	case 0: return (WIDTH >> 8) & 0xff;
... ...
@@ -243,11 +235,12 @@ ppur(Device *d, Memory *m, Uint8 b)
243 235
 	case 2: return (HEIGHT >> 8) & 0xff;
244 236
 	case 3: return HEIGHT & 0xff;
245 237
 	}
238
+	(void)m;
246 239
 	return d->mem[b];
247 240
 }
248 241
 
249 242
 Uint8
250
-ppuw(Device *d, Memory *m, Uint8 b)
243
+screenw(Device *d, Memory *m, Uint8 b)
251 244
 {
252 245
 	d->mem[d->len++] = b;
253 246
 	if(d->len > 5) {
... ...
@@ -259,17 +252,12 @@ ppuw(Device *d, Memory *m, Uint8 b)
259 252
 			redraw(pixels);
260 253
 		d->len = 0;
261 254
 	}
255
+	(void)m;
262 256
 	return 0;
263 257
 }
264 258
 
265 259
 Uint8
266
-ppusr(Device *d, Memory *m, Uint8 b)
267
-{
268
-	return 0;
269
-}
270
-
271
-Uint8
272
-ppusw(Device *d, Memory *m, Uint8 b)
260
+spritew(Device *d, Memory *m, Uint8 b)
273 261
 {
274 262
 	d->mem[d->len++] = b;
275 263
 	if(d->len > 6) {
... ...
@@ -284,50 +272,6 @@ ppusw(Device *d, Memory *m, Uint8 b)
284 272
 	return 0;
285 273
 }
286 274
 
287
-Uint8
288
-mouser(Device *d, Memory *m, Uint8 b)
289
-{
290
-	return d->mem[b];
291
-}
292
-
293
-Uint8
294
-mousew(Device *d, Memory *m, Uint8 b)
295
-{
296
-	(void)d;
297
-	(void)b;
298
-	return 0;
299
-}
300
-
301
-Uint8
302
-keyr(Device *d, Memory *m, Uint8 b)
303
-{
304
-	(void)d;
305
-	(void)b;
306
-	return 0;
307
-}
308
-
309
-Uint8
310
-keyw(Device *d, Memory *m, Uint8 b)
311
-{
312
-	(void)d;
313
-	(void)b;
314
-	return 0;
315
-}
316
-
317
-Uint8
318
-ctrlr(Device *d, Memory *m, Uint8 b)
319
-{
320
-	return d->mem[b];
321
-}
322
-
323
-Uint8
324
-ctrlw(Device *d, Memory *m, Uint8 b)
325
-{
326
-	(void)d;
327
-	(void)b;
328
-	return 0;
329
-}
330
-
331 275
 #pragma mark - Generics
332 276
 
333 277
 int
... ...
@@ -378,12 +322,12 @@ main(int argc, char **argv)
378 322
 	if(!init())
379 323
 		return error("Init", "Failed");
380 324
 
381
-	devconsole = portuxn(&u, "console", consoler, consolew);
382
-	devscreen = portuxn(&u, "ppu", ppur, ppuw);
383
-	devmouse = portuxn(&u, "mouse", mouser, mousew);
384
-	devkey = portuxn(&u, "key", keyr, keyw);
385
-	devsprite = portuxn(&u, "ppu-sprite", ppusr, ppusw);
386
-	devctrl = portuxn(&u, "ctrl", ctrlr, ctrlw);
325
+	devconsole = portuxn(&u, "console", defaultrw, consolew);
326
+	devscreen = portuxn(&u, "screen", screenr, screenw);
327
+	devsprite = portuxn(&u, "sprite", defaultrw, spritew);
328
+	devcontroller = portuxn(&u, "controller", defaultrw, defaultrw);
329
+	devkey = portuxn(&u, "key", defaultrw, consolew);
330
+	devmouse = portuxn(&u, "mouse", defaultrw, defaultrw);
387 331
 
388 332
 	start(&u);
389 333
 
... ...
@@ -7,8 +7,8 @@
7 7
 
8 8
 |0100 @RESET 
9 9
 
10
-	#05 =dev/r ( set dev/read to ctrl ) 
11
-	#04 =dev/w ( set dev/write to ppu-sprite ) 
10
+	#03 =dev/r ( set dev/read to controller ) 
11
+	#02 =dev/w ( set dev/write to sprite ) 
12 12
 	#0080 =x #0040 =y ( origin )
13 13
 	#01 ,cursor_icn ~x ~y ,putsprite JSR ( draw sprite )
14 14
 
... ...
@@ -9,7 +9,7 @@
9 9
 |0100 @RESET
10 10
 
11 11
 	( set dev/write to screen ) 
12
-	#01 ,dev/w STR 
12
+	#01 =dev/w ( set dev/write to sprite ) 
13 13
 
14 14
 	#01 ,color STR
15 15
 	( fill rect x y w h )
... ...
@@ -4,6 +4,7 @@
4 4
 
5 5
 |0100 @RESET 
6 6
 
7
+	#00 =dev/w ( set dev/write to sprite ) 
7 8
 	,string                                  ( add string pointer to stack )
8 9
 	@loop
9 10
 		DUP2 LDR IOW                         ( write pointer value to console )
... ...
@@ -9,7 +9,7 @@
9 9
 |0100 @RESET
10 10
 
11 11
 	( set dev/write to screen ) 
12
-	#01 ,dev/w STR 
12
+	#01 =dev/w ( set dev/write to sprite ) 
13 13
 
14 14
 	( positive )
15 15
 	#01 ,color STR
... ...
@@ -5,7 +5,7 @@
5 5
 
6 6
 |0100 @RESET 
7 7
 	
8
-	#02 =dev/r ( set dev/read mouse#02 )
8
+	#05 =dev/r ( set dev/read mouse#02 )
9 9
 	#01 =dev/w ( set dev/write screen#01 )
10 10
 
11 11
 BRK
... ...
@@ -5,7 +5,7 @@
5 5
 |0100 @RESET 
6 6
 
7 7
 	#01 =dev/w                           ( set dev/write to screen ) 
8
-	#04 =dev/w                           ( set dev/write to ppu-sprite ) 
8
+	#02 =dev/w                           ( set dev/write to sprite ) 
9 9
 
10 10
 	#00 ,star_icn #0041 #0041 ,putsprite JSR
11 11
 	#00 ,star_icn #0031 #0021 ,putsprite JSR