aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2023-08-28 15:56:17 +0200
committerBad Diode <bd@badd10de.dev>2023-08-28 15:56:17 +0200
commit4a98636f412b5bbcafdbc04e4780b9118170f201 (patch)
treee1c381cd318f5f49631b25c8bdb5dd3ac4b1a4d9
parent36f915209713b8d7b79ac607f22f32c389ae2d67 (diff)
downloaduxngba-4a98636f412b5bbcafdbc04e4780b9118170f201.tar.gz
uxngba-4a98636f412b5bbcafdbc04e4780b9118170f201.zip
Add sft operations
-rw-r--r--src/main.c13
-rw-r--r--src/uxn-core.s14
2 files changed, 23 insertions, 4 deletions
diff --git a/src/main.c b/src/main.c
index 538604b..b1ad7cb 100644
--- a/src/main.c
+++ b/src/main.c
@@ -112,10 +112,15 @@ init_uxn() {
112 // 0xa0, 0x0f, 0x88, 0x1d, // -> ( 8f ) 112 // 0xa0, 0x0f, 0x88, 0x1d, // -> ( 8f )
113 // 0xa0, 0xf0, 0x08, 0x1d, // -> ( f8 ) 113 // 0xa0, 0xf0, 0x08, 0x1d, // -> ( f8 )
114 // 0xa0, 0xf0, 0x0f, 0xa0, 0xaa, 0xaa, 0x3d, // -> ( fa af ) 114 // 0xa0, 0xf0, 0x0f, 0xa0, 0xaa, 0xaa, 0x3d, // -> ( fa af )
115 // EOR. 115 // // EOR.
116 0xa0, 0x0f, 0x88, 0x1e, // -> ( 87 ) 116 // 0xa0, 0x0f, 0x88, 0x1e, // -> ( 87 )
117 0xa0, 0xf0, 0x08, 0x1e, // -> ( f8 ) 117 // 0xa0, 0xf0, 0x08, 0x1e, // -> ( f8 )
118 0xa0, 0xf0, 0x0f, 0xa0, 0xaa, 0xaa, 0x3e, // -> ( 5a a5 ) 118 // 0xa0, 0xf0, 0x0f, 0xa0, 0xaa, 0xaa, 0x3e, // -> ( 5a a5 )
119 // SFT.
120 0xa0, 0x34, 0x10, 0x1f, // -> ( 68 )
121 0xa0, 0x34, 0x01, 0x1f, // -> ( 1a )
122 0xa0, 0x34, 0x33, 0x1f, // -> ( 30 )
123 0xa0, 0x12, 0x48, 0x80, 0x34, 0x3f, // -> ( 09 20 )
119 124
120 }; 125 };
121 memcpy(uxn_ram + PAGE_PROGRAM, uxn_rom, sizeof(uxn_rom)); 126 memcpy(uxn_ram + PAGE_PROGRAM, uxn_rom, sizeof(uxn_rom));
diff --git a/src/uxn-core.s b/src/uxn-core.s
index e6e58c3..9288ccf 100644
--- a/src/uxn-core.s
+++ b/src/uxn-core.s
@@ -690,8 +690,22 @@ eor2:
690 b uxn_decode 690 b uxn_decode
691 691
692sft: 692sft:
693 wpop8 r4
694 wpop8 r3
695 lsr r5, r4, #4
696 and r4, #0x0f
697 lsr r3, r3, r4
698 lsl r3, r3, r5
699 wpush8 r3
693 b uxn_decode 700 b uxn_decode
694 701
695sft2: 702sft2:
703 wpop8 r4
704 wpop16 r3, r5
705 lsr r5, r4, #4
706 and r4, #0x0f
707 lsr r3, r3, r4
708 lsl r3, r3, r5
709 wpush16 r3
696 b uxn_decode 710 b uxn_decode
697 711