diff options
author | Bad Diode <bd@badd10de.dev> | 2023-08-28 15:56:17 +0200 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2023-08-28 15:56:17 +0200 |
commit | 4a98636f412b5bbcafdbc04e4780b9118170f201 (patch) | |
tree | e1c381cd318f5f49631b25c8bdb5dd3ac4b1a4d9 | |
parent | 36f915209713b8d7b79ac607f22f32c389ae2d67 (diff) | |
download | uxngba-4a98636f412b5bbcafdbc04e4780b9118170f201.tar.gz uxngba-4a98636f412b5bbcafdbc04e4780b9118170f201.zip |
Add sft operations
-rw-r--r-- | src/main.c | 13 | ||||
-rw-r--r-- | src/uxn-core.s | 14 |
2 files changed, 23 insertions, 4 deletions
@@ -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 | ||
692 | sft: | 692 | sft: |
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 | ||
695 | sft2: | 702 | sft2: |
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 | ||