| ... | ... |
@@ -81,8 +81,8 @@ else |
| 81 | 81 |
fi |
| 82 | 82 |
|
| 83 | 83 |
${CC} ${CFLAGS} src/uxnasm.c -o bin/uxnasm
|
| 84 |
-${CC} ${CFLAGS} src/uxn.c src/devices/system.c src/devices/file.c src/devices/datetime.c src/devices/mouse.c src/devices/controller.c src/devices/screen.c src/devices/audio.c src/uxnemu.c ${UXNEMU_LDFLAGS} ${FILE_LDFLAGS} -o bin/uxnemu
|
|
| 85 |
-${CC} ${CFLAGS} src/uxn.c src/devices/system.c src/devices/file.c src/devices/datetime.c src/uxncli.c ${FILE_LDFLAGS} -o bin/uxncli
|
|
| 84 |
+${CC} ${CFLAGS} src/uxn.c src/devices/system.c src/devices/console.c src/devices/file.c src/devices/datetime.c src/devices/mouse.c src/devices/controller.c src/devices/screen.c src/devices/audio.c src/uxnemu.c ${UXNEMU_LDFLAGS} ${FILE_LDFLAGS} -o bin/uxnemu
|
|
| 85 |
+${CC} ${CFLAGS} src/uxn.c src/devices/system.c src/devices/console.c src/devices/file.c src/devices/datetime.c src/uxncli.c ${FILE_LDFLAGS} -o bin/uxncli
|
|
| 86 | 86 |
|
| 87 | 87 |
if [ $install = 1 ] |
| 88 | 88 |
then |
| ... | ... |
@@ -14,6 +14,7 @@ HFILES=\ |
| 14 | 14 |
src/devices/mouse.h\ |
| 15 | 15 |
src/devices/screen.h\ |
| 16 | 16 |
src/devices/system.h\ |
| 17 |
+ src/devices/console.h\ |
|
| 17 | 18 |
src/uxn.h\ |
| 18 | 19 |
|
| 19 | 20 |
CLEANFILES=$TARG $ROM |
| ... | ... |
@@ -34,19 +35,19 @@ bin: |
| 34 | 35 |
%.rom:Q: %.tal bin/uxnasm |
| 35 | 36 |
bin/uxnasm $stem.tal $target >/dev/null |
| 36 | 37 |
|
| 37 |
-bin/uxncli: file.$O datetime.$O system.$O uxncli.$O uxn.$O |
|
| 38 |
+bin/uxncli: file.$O datetime.$O system.$O console.$O uxncli.$O uxn.$O |
|
| 38 | 39 |
$LD $LDFLAGS -o $target $prereq |
| 39 | 40 |
|
| 40 | 41 |
bin/uxnasm: uxnasm.$O |
| 41 | 42 |
$LD $LDFLAGS -o $target $prereq |
| 42 | 43 |
|
| 43 |
-bin/uxnemu: audio.$O controller.$O datetime.$O file.$O mouse.$O screen.$O system.$O uxn.$O uxnemu.$O |
|
| 44 |
+bin/uxnemu: audio.$O controller.$O datetime.$O file.$O mouse.$O screen.$O system.$O console.$O uxn.$O uxnemu.$O |
|
| 44 | 45 |
$LD $LDFLAGS -o $target $prereq |
| 45 | 46 |
|
| 46 | 47 |
(uxnasm|uxncli|uxnemu|uxn)\.$O:R: src/\1.c |
| 47 | 48 |
$CC $CFLAGS -Isrc -o $target src/$stem1.c |
| 48 | 49 |
|
| 49 |
-(audio|controller|datetime|file|mouse|screen|system)\.$O:R: src/devices/\1.c |
|
| 50 |
+(audio|controller|datetime|file|mouse|screen|system|console)\.$O:R: src/devices/\1.c |
|
| 50 | 51 |
$CC $CFLAGS -Isrc -o $target src/devices/$stem1.c |
| 51 | 52 |
|
| 52 | 53 |
nuke:V: clean |
| 18 | 23 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,40 @@ |
| 1 |
+#include <stdio.h> |
|
| 2 |
+#include <stdlib.h> |
|
| 3 |
+ |
|
| 4 |
+#include "../uxn.h" |
|
| 5 |
+#include "console.h" |
|
| 6 |
+ |
|
| 7 |
+/* |
|
| 8 |
+Copyright (c) 2022-2023 Devine Lu Linvega, Andrew Alderwick |
|
| 9 |
+ |
|
| 10 |
+Permission to use, copy, modify, and distribute this software for any |
|
| 11 |
+purpose with or without fee is hereby granted, provided that the above |
|
| 12 |
+copyright notice and this permission notice appear in all copies. |
|
| 13 |
+ |
|
| 14 |
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
|
| 15 |
+WITH REGARD TO THIS SOFTWARE. |
|
| 16 |
+*/ |
|
| 17 |
+ |
|
| 18 |
+int |
|
| 19 |
+console_input(Uxn *u, char c, int type) |
|
| 20 |
+{
|
|
| 21 |
+ Uint8 *d = &u->dev[0x10]; |
|
| 22 |
+ d[0x2] = c; |
|
| 23 |
+ d[0x7] = type; |
|
| 24 |
+ return uxn_eval(u, PEEK2(d)); |
|
| 25 |
+} |
|
| 26 |
+ |
|
| 27 |
+void |
|
| 28 |
+console_deo(Uint8 *d, Uint8 port) |
|
| 29 |
+{
|
|
| 30 |
+ switch(port) {
|
|
| 31 |
+ case 0x8: |
|
| 32 |
+ fputc(d[port], stdout); |
|
| 33 |
+ fflush(stdout); |
|
| 34 |
+ return; |
|
| 35 |
+ case 0x9: |
|
| 36 |
+ fputc(d[port], stderr); |
|
| 37 |
+ fflush(stderr); |
|
| 38 |
+ return; |
|
| 39 |
+ } |
|
| 40 |
+} |
|
| 0 | 41 |
\ No newline at end of file |
| 1 | 42 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,22 @@ |
| 1 |
+/* |
|
| 2 |
+Copyright (c) 2022 Devine Lu Linvega, Andrew Alderwick |
|
| 3 |
+ |
|
| 4 |
+Permission to use, copy, modify, and distribute this software for any |
|
| 5 |
+purpose with or without fee is hereby granted, provided that the above |
|
| 6 |
+copyright notice and this permission notice appear in all copies. |
|
| 7 |
+ |
|
| 8 |
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
|
| 9 |
+WITH REGARD TO THIS SOFTWARE. |
|
| 10 |
+*/ |
|
| 11 |
+ |
|
| 12 |
+#define CONSOLE_VERSION 1 |
|
| 13 |
+#define CONSOLE_DEIMASK 0x0000 |
|
| 14 |
+#define CONSOLE_DEOMASK 0x0000 |
|
| 15 |
+ |
|
| 16 |
+#define CONSOLE_STD 0x1 |
|
| 17 |
+#define CONSOLE_ARG 0x2 |
|
| 18 |
+#define CONSOLE_EOA 0x3 |
|
| 19 |
+#define CONSOLE_END 0x4 |
|
| 20 |
+ |
|
| 21 |
+int console_input(Uxn *u, char c, int type); |
|
| 22 |
+void console_deo(Uint8 *d, Uint8 port); |
| ... | ... |
@@ -9,6 +9,10 @@ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
| 9 | 9 |
WITH REGARD TO THIS SOFTWARE. |
| 10 | 10 |
*/ |
| 11 | 11 |
|
| 12 |
+#define CONTROL_VERSION 1 |
|
| 13 |
+#define CONTROL_DEIMASK 0x0000 |
|
| 14 |
+#define CONTROL_DEOMASK 0x0000 |
|
| 15 |
+ |
|
| 12 | 16 |
void controller_down(Uxn *u, Uint8 *d, Uint8 mask); |
| 13 | 17 |
void controller_up(Uxn *u, Uint8 *d, Uint8 mask); |
| 14 | 18 |
void controller_key(Uxn *u, Uint8 *d, Uint8 key); |
| ... | ... |
@@ -9,6 +9,10 @@ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
| 9 | 9 |
WITH REGARD TO THIS SOFTWARE. |
| 10 | 10 |
*/ |
| 11 | 11 |
|
| 12 |
+#define FILE_VERSION 1 |
|
| 13 |
+#define FILE_DEIMASK 0x0000 |
|
| 14 |
+#define FILE_DEOMASK 0x0000 |
|
| 15 |
+ |
|
| 12 | 16 |
#define POLYFILEY 2 |
| 13 | 17 |
#define DEV_FILE0 0xa |
| 14 | 18 |
|
| ... | ... |
@@ -9,6 +9,11 @@ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
| 9 | 9 |
WITH REGARD TO THIS SOFTWARE. |
| 10 | 10 |
*/ |
| 11 | 11 |
|
| 12 |
+ |
|
| 13 |
+#define MOUSE_VERSION 1 |
|
| 14 |
+#define MOUSE_DEIMASK 0x0000 |
|
| 15 |
+#define MOUSE_DEOMASK 0x0000 |
|
| 16 |
+ |
|
| 12 | 17 |
void mouse_down(Uxn *u, Uint8 *d, Uint8 mask); |
| 13 | 18 |
void mouse_up(Uxn *u, Uint8 *d, Uint8 mask); |
| 14 | 19 |
void mouse_pos(Uxn *u, Uint8 *d, Uint16 x, Uint16 y); |
| ... | ... |
@@ -10,6 +10,10 @@ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
| 10 | 10 |
WITH REGARD TO THIS SOFTWARE. |
| 11 | 11 |
*/ |
| 12 | 12 |
|
| 13 |
+#define SCREEN_VERSION 1 |
|
| 14 |
+#define SCREEN_DEIMASK 0x0000 |
|
| 15 |
+#define SCREEN_DEOMASK 0x0000 |
|
| 16 |
+ |
|
| 13 | 17 |
typedef struct UxnScreen {
|
| 14 | 18 |
int width, height, x1, y1, x2, y2; |
| 15 | 19 |
Uint32 palette[4], *pixels; |
| ... | ... |
@@ -96,32 +96,6 @@ system_deo(Uxn *u, Uint8 *d, Uint8 port) |
| 96 | 96 |
} |
| 97 | 97 |
} |
| 98 | 98 |
|
| 99 |
-/* Console */ |
|
| 100 |
- |
|
| 101 |
-int |
|
| 102 |
-console_input(Uxn *u, char c, int type) |
|
| 103 |
-{
|
|
| 104 |
- Uint8 *d = &u->dev[0x10]; |
|
| 105 |
- d[0x2] = c; |
|
| 106 |
- d[0x7] = type; |
|
| 107 |
- return uxn_eval(u, PEEK2(d)); |
|
| 108 |
-} |
|
| 109 |
- |
|
| 110 |
-void |
|
| 111 |
-console_deo(Uint8 *d, Uint8 port) |
|
| 112 |
-{
|
|
| 113 |
- switch(port) {
|
|
| 114 |
- case 0x8: |
|
| 115 |
- fputc(d[port], stdout); |
|
| 116 |
- fflush(stdout); |
|
| 117 |
- return; |
|
| 118 |
- case 0x9: |
|
| 119 |
- fputc(d[port], stderr); |
|
| 120 |
- fflush(stderr); |
|
| 121 |
- return; |
|
| 122 |
- } |
|
| 123 |
-} |
|
| 124 |
- |
|
| 125 | 99 |
/* Errors */ |
| 126 | 100 |
|
| 127 | 101 |
int |
| ... | ... |
@@ -9,16 +9,13 @@ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
| 9 | 9 |
WITH REGARD TO THIS SOFTWARE. |
| 10 | 10 |
*/ |
| 11 | 11 |
|
| 12 |
-#define RAM_PAGES 0x10 |
|
| 12 |
+#define SYSTEM_VERSION 1 |
|
| 13 |
+#define SYSTEM_DEIMASK 0x0000 |
|
| 14 |
+#define SYSTEM_DEOMASK 0x0000 |
|
| 13 | 15 |
|
| 14 |
-#define CONSOLE_STD 0x1 |
|
| 15 |
-#define CONSOLE_ARG 0x2 |
|
| 16 |
-#define CONSOLE_EOA 0x3 |
|
| 17 |
-#define CONSOLE_END 0x4 |
|
| 16 |
+#define RAM_PAGES 0x10 |
|
| 18 | 17 |
|
| 19 | 18 |
int system_load(Uxn *u, char *filename); |
| 20 | 19 |
void system_inspect(Uxn *u); |
| 21 | 20 |
int system_error(char *msg, const char *err); |
| 22 | 21 |
void system_deo(Uxn *u, Uint8 *d, Uint8 port); |
| 23 |
-int console_input(Uxn *u, char c, int type); |
|
| 24 |
-void console_deo(Uint8 *d, Uint8 port); |