| ... | ... |
@@ -3,18 +3,18 @@ |
| 3 | 3 |
echo "Formatting.." |
| 4 | 4 |
clang-format -i src/uxn.h |
| 5 | 5 |
clang-format -i src/uxn.c |
| 6 |
-clang-format -i src/ppu.h |
|
| 7 |
-clang-format -i src/ppu.c |
|
| 8 |
-clang-format -i src/apu.h |
|
| 9 |
-clang-format -i src/apu.c |
|
| 10 |
-clang-format -i src/mpu.h |
|
| 11 |
-clang-format -i src/mpu.c |
|
| 6 |
+clang-format -i src/devices/ppu.h |
|
| 7 |
+clang-format -i src/devices/ppu.c |
|
| 8 |
+clang-format -i src/devices/apu.h |
|
| 9 |
+clang-format -i src/devices/apu.c |
|
| 10 |
+clang-format -i src/devices/mpu.h |
|
| 11 |
+clang-format -i src/devices/mpu.c |
|
| 12 | 12 |
clang-format -i src/assembler.c |
| 13 | 13 |
clang-format -i src/emulator.c |
| 14 | 14 |
clang-format -i src/debugger.c |
| 15 | 15 |
|
| 16 | 16 |
echo "Cleaning.." |
| 17 |
-rm -f ./bin/assembler |
|
| 17 |
+rm -f ./bin/uxnasm |
|
| 18 | 18 |
rm -f ./bin/emulator |
| 19 | 19 |
rm -f ./bin/debugger |
| 20 | 20 |
rm -f ./bin/boot.rom |
| ... | ... |
@@ -24,17 +24,17 @@ mkdir -p bin |
| 24 | 24 |
if [ "${1}" = '--debug' ];
|
| 25 | 25 |
then |
| 26 | 26 |
echo "[debug]" |
| 27 |
- cc -std=c89 -DDEBUG -Wall -Wno-unknown-pragmas -Wpedantic -Wshadow -Wextra -Werror=implicit-int -Werror=incompatible-pointer-types -Werror=int-conversion -Wvla -g -Og -fsanitize=address -fsanitize=undefined src/assembler.c -o bin/assembler |
|
| 28 |
- cc -std=c89 -DDEBUG -Wall -Wno-unknown-pragmas -Wpedantic -Wshadow -Wextra -Werror=implicit-int -Werror=incompatible-pointer-types -Werror=int-conversion -Wvla -g -Og -fsanitize=address -fsanitize=undefined src/uxn.c src/ppu.c src/apu.c src/mpu.c src/emulator.c -L/usr/local/lib -lSDL2 -lportmidi -o bin/emulator |
|
| 27 |
+ cc -std=c89 -DDEBUG -Wall -Wno-unknown-pragmas -Wpedantic -Wshadow -Wextra -Werror=implicit-int -Werror=incompatible-pointer-types -Werror=int-conversion -Wvla -g -Og -fsanitize=address -fsanitize=undefined src/assembler.c -o bin/uxnasm |
|
| 28 |
+ cc -std=c89 -DDEBUG -Wall -Wno-unknown-pragmas -Wpedantic -Wshadow -Wextra -Werror=implicit-int -Werror=incompatible-pointer-types -Werror=int-conversion -Wvla -g -Og -fsanitize=address -fsanitize=undefined src/uxn.c src/devices/ppu.c src/devices/apu.c src/devices/mpu.c src/emulator.c -L/usr/local/lib -lSDL2 -lportmidi -o bin/emulator |
|
| 29 | 29 |
cc -std=c89 -DDEBUG -Wall -Wno-unknown-pragmas -Wpedantic -Wshadow -Wextra -Werror=implicit-int -Werror=incompatible-pointer-types -Werror=int-conversion -Wvla -g -Og -fsanitize=address -fsanitize=undefined src/uxn.c src/debugger.c -o bin/debugger |
| 30 | 30 |
else |
| 31 |
- cc src/assembler.c -std=c89 -Os -DNDEBUG -g0 -s -Wall -Wno-unknown-pragmas -o bin/assembler |
|
| 31 |
+ cc src/assembler.c -std=c89 -Os -DNDEBUG -g0 -s -Wall -Wno-unknown-pragmas -o bin/uxnasm |
|
| 32 | 32 |
cc src/uxn.c src/debugger.c -std=c89 -Os -DNDEBUG -g0 -s -Wall -Wno-unknown-pragmas -o bin/debugger |
| 33 |
- cc src/uxn.c src/ppu.c src/apu.c src/mpu.c src/emulator.c -std=c89 -Os -DNDEBUG -g0 -s -Wall -Wno-unknown-pragmas -L/usr/local/lib -lSDL2 -lportmidi -o bin/emulator |
|
| 33 |
+ cc src/uxn.c src/devices/ppu.c src/devices/apu.c src/devices/mpu.c src/emulator.c -std=c89 -Os -DNDEBUG -g0 -s -Wall -Wno-unknown-pragmas -L/usr/local/lib -lSDL2 -lportmidi -o bin/emulator |
|
| 34 | 34 |
fi |
| 35 | 35 |
|
| 36 | 36 |
echo "Assembling.." |
| 37 |
-./bin/assembler projects/demos/piano.usm bin/boot.rom |
|
| 37 |
+./bin/uxnasm projects/demos/piano.usm bin/boot.rom |
|
| 38 | 38 |
|
| 39 | 39 |
echo "Running.." |
| 40 | 40 |
if [ "${2}" = '--cli' ];
|
| ... | ... |
@@ -47,10 +47,10 @@ |
| 47 | 47 |
#0f25 .System/b DEO2 |
| 48 | 48 |
|
| 49 | 49 |
( vectors ) |
| 50 |
+ ;on-frame .Screen/vector DEO2 |
|
| 50 | 51 |
;on-control .Controller/vector DEO2 |
| 51 | 52 |
;on-mouse .Mouse/vector DEO2 |
| 52 | 53 |
;on-midi .Midi/vector DEO2 |
| 53 |
- ;on-frame .Screen/vector DEO2 |
|
| 54 | 54 |
|
| 55 | 55 |
( load waveform ) |
| 56 | 56 |
;piano-path .File/name DEO2 #0100 .File/length DEO2 WAVEFORM .File/load DEO2 |
| ... | ... |
@@ -113,6 +113,52 @@ BRK |
| 113 | 113 |
|
| 114 | 114 |
BRK |
| 115 | 115 |
|
| 116 |
+@on-control ( -> ) |
|
| 117 |
+ |
|
| 118 |
+ ( clear last cursor ) |
|
| 119 |
+ #fff8 .Screen/addr DEO2 |
|
| 120 |
+ .pointer/x LDZ2 .Screen/x DEO2 |
|
| 121 |
+ .pointer/y LDZ2 .Screen/y DEO2 |
|
| 122 |
+ #30 .Screen/color DEO |
|
| 123 |
+ |
|
| 124 |
+ .Controller/key DEI |
|
| 125 |
+ DUP #61 ! ,&no-c JCN |
|
| 126 |
+ #00 .last-note STZ ;notes LDA ;play JSR2 &no-c |
|
| 127 |
+ DUP #73 ! ,&no-d JCN |
|
| 128 |
+ #01 .last-note STZ ;notes #0001 ++ LDA ;play JSR2 &no-d |
|
| 129 |
+ DUP #64 ! ,&no-e JCN |
|
| 130 |
+ #02 .last-note STZ ;notes #0002 ++ LDA ;play JSR2 &no-e |
|
| 131 |
+ DUP #66 ! ,&no-f JCN |
|
| 132 |
+ #03 .last-note STZ ;notes #0003 ++ LDA ;play JSR2 &no-f |
|
| 133 |
+ DUP #67 ! ,&no-g JCN |
|
| 134 |
+ #04 .last-note STZ ;notes #0004 ++ LDA ;play JSR2 &no-g |
|
| 135 |
+ DUP #68 ! ,&no-a JCN |
|
| 136 |
+ #05 .last-note STZ ;notes #0005 ++ LDA ;play JSR2 &no-a |
|
| 137 |
+ DUP #6a ! ,&no-b JCN |
|
| 138 |
+ #06 .last-note STZ ;notes #0006 ++ LDA ;play JSR2 &no-b |
|
| 139 |
+ DUP #6b ! ,&no-c2 JCN |
|
| 140 |
+ #07 .last-note STZ ;notes #0007 ++ LDA ;play JSR2 &no-c2 |
|
| 141 |
+ POP |
|
| 142 |
+ |
|
| 143 |
+ ( release ) |
|
| 144 |
+ #00 .Controller/key DEO |
|
| 145 |
+ |
|
| 146 |
+ .Controller/button DEI #f0 AND |
|
| 147 |
+ DUP #04 SFT #01 AND #01 ! ,&no-up JCN |
|
| 148 |
+ ( move ) .Audio0/addr DEI2 #0001 -- .Audio0/addr DEO2 &no-up |
|
| 149 |
+ DUP #05 SFT #01 AND #01 ! ,&no-down JCN |
|
| 150 |
+ ( move ) .Audio0/addr DEI2 #0001 ++ .Audio0/addr DEO2 &no-down |
|
| 151 |
+ DUP #06 SFT #01 AND #01 ! ,&no-left JCN |
|
| 152 |
+ ( move ) .Audio0/addr DEI2 #0010 -- .Audio0/addr DEO2 &no-left |
|
| 153 |
+ DUP #07 SFT #01 AND #01 ! ,&no-right JCN |
|
| 154 |
+ ( move ) .Audio0/addr DEI2 #0010 ++ .Audio0/addr DEO2 &no-right |
|
| 155 |
+ POP |
|
| 156 |
+ |
|
| 157 |
+ ;draw-octave JSR2 |
|
| 158 |
+ ;draw-wave JSR2 |
|
| 159 |
+ |
|
| 160 |
+BRK |
|
| 161 |
+ |
|
| 116 | 162 |
@on-midi ( -> ) |
| 117 | 163 |
|
| 118 | 164 |
.Midi/note DEI #00 ! #01 JCN [ BRK ] |
| ... | ... |
@@ -204,49 +250,6 @@ BRK |
| 204 | 250 |
|
| 205 | 251 |
BRK |
| 206 | 252 |
|
| 207 |
-@on-control ( -> ) |
|
| 208 |
- |
|
| 209 |
- ( clear last cursor ) |
|
| 210 |
- #fff8 .Screen/addr DEO2 |
|
| 211 |
- .pointer/x LDZ2 .Screen/x DEO2 |
|
| 212 |
- .pointer/y LDZ2 .Screen/y DEO2 |
|
| 213 |
- #30 .Screen/color DEO |
|
| 214 |
- |
|
| 215 |
- .Controller/key DEI |
|
| 216 |
- DUP #61 ! ,&no-c JCN |
|
| 217 |
- #00 .last-note STZ ;notes LDA ;play JSR2 &no-c |
|
| 218 |
- DUP #73 ! ,&no-d JCN |
|
| 219 |
- #01 .last-note STZ ;notes #0001 ++ LDA ;play JSR2 &no-d |
|
| 220 |
- DUP #64 ! ,&no-e JCN |
|
| 221 |
- #02 .last-note STZ ;notes #0002 ++ LDA ;play JSR2 &no-e |
|
| 222 |
- DUP #66 ! ,&no-f JCN |
|
| 223 |
- #03 .last-note STZ ;notes #0003 ++ LDA ;play JSR2 &no-f |
|
| 224 |
- DUP #67 ! ,&no-g JCN |
|
| 225 |
- #04 .last-note STZ ;notes #0004 ++ LDA ;play JSR2 &no-g |
|
| 226 |
- DUP #68 ! ,&no-a JCN |
|
| 227 |
- #05 .last-note STZ ;notes #0005 ++ LDA ;play JSR2 &no-a |
|
| 228 |
- DUP #6a ! ,&no-b JCN |
|
| 229 |
- #06 .last-note STZ ;notes #0006 ++ LDA ;play JSR2 &no-b |
|
| 230 |
- DUP #6b ! ,&no-c2 JCN |
|
| 231 |
- #07 .last-note STZ ;notes #0007 ++ LDA ;play JSR2 &no-c2 |
|
| 232 |
- POP |
|
| 233 |
- |
|
| 234 |
- .Controller/button DEI #f0 AND |
|
| 235 |
- DUP #04 SFT #01 AND #01 ! ,&no-up JCN |
|
| 236 |
- ( move ) .Audio0/addr DEI2 #0001 -- .Audio0/addr DEO2 &no-up |
|
| 237 |
- DUP #05 SFT #01 AND #01 ! ,&no-down JCN |
|
| 238 |
- ( move ) .Audio0/addr DEI2 #0001 ++ .Audio0/addr DEO2 &no-down |
|
| 239 |
- DUP #06 SFT #01 AND #01 ! ,&no-left JCN |
|
| 240 |
- ( move ) .Audio0/addr DEI2 #0010 -- .Audio0/addr DEO2 &no-left |
|
| 241 |
- DUP #07 SFT #01 AND #01 ! ,&no-right JCN |
|
| 242 |
- ( move ) .Audio0/addr DEI2 #0010 ++ .Audio0/addr DEO2 &no-right |
|
| 243 |
- POP |
|
| 244 |
- |
|
| 245 |
- ;draw-octave JSR2 |
|
| 246 |
- ;draw-wave JSR2 |
|
| 247 |
- |
|
| 248 |
-BRK |
|
| 249 |
- |
|
| 250 | 253 |
@play ( pitch -- ) |
| 251 | 254 |
|
| 252 | 255 |
DUP .octave LDZ #0c * + .Audio0/pitch DEO |
| 253 | 256 |
similarity index 99% |
| 254 | 257 |
rename from src/apu.c |
| 255 | 258 |
rename to src/devices/apu.c |
| ... | ... |
@@ -10,7 +10,7 @@ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
| 10 | 10 |
WITH REGARD TO THIS SOFTWARE. |
| 11 | 11 |
*/ |
| 12 | 12 |
|
| 13 |
-#include "uxn.h" |
|
| 13 |
+#include "../uxn.h" |
|
| 14 | 14 |
#include "apu.h" |
| 15 | 15 |
|
| 16 | 16 |
#define NOTE_PERIOD 0x10000 |
| ... | ... |
@@ -14,9 +14,9 @@ WITH REGARD TO THIS SOFTWARE. |
| 14 | 14 |
*/ |
| 15 | 15 |
|
| 16 | 16 |
#include "uxn.h" |
| 17 |
-#include "ppu.h" |
|
| 18 |
-#include "apu.h" |
|
| 19 |
-#include "mpu.h" |
|
| 17 |
+#include "devices/ppu.h" |
|
| 18 |
+#include "devices/apu.h" |
|
| 19 |
+#include "devices/mpu.h" |
|
| 20 | 20 |
|
| 21 | 21 |
static SDL_AudioDeviceID audio_id; |
| 22 | 22 |
static SDL_Window *gWindow; |
| ... | ... |
@@ -328,11 +328,10 @@ start(Uxn *u) |
| 328 | 328 |
quit(); |
| 329 | 329 |
break; |
| 330 | 330 |
case SDL_TEXTINPUT: |
| 331 |
- if(event.text.text[0] >= ' ' || event.text.text[0] <= '~') |
|
| 332 |
- devctrl->dat[3] = event.text.text[0]; |
|
| 333 |
- break; |
|
| 334 | 331 |
case SDL_KEYDOWN: |
| 335 | 332 |
case SDL_KEYUP: |
| 333 |
+ if(event.text.text[0] >= ' ' || event.text.text[0] <= '~') |
|
| 334 |
+ devctrl->dat[3] = event.text.text[0]; |
|
| 336 | 335 |
doctrl(u, &event, event.type == SDL_KEYDOWN); |
| 337 | 336 |
evaluxn(u, mempeek16(devctrl->dat, 0)); |
| 338 | 337 |
devctrl->dat[3] = 0; |