Navigation

    Fuze Arena Logo
    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Users
    • Groups
    • Help
    • Discord

    A simple esolang interpreter

    Creation share codes
    5
    72
    5850
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      LucasJG25 @JMM161437 last edited by

      @JMM161437 I see. Is this the digital circuits project you told me about?

      1 Reply Last reply Reply Quote 1
      • JMM161437
        JMM161437 F last edited by

        @LucasJG25 no that one I'm working on now and it ain't even close to done... the one I'm working on that's basically done but feels needs more to it is my small 3 level 3D game called Galactic Bolts... I just implemented a lot of suggestions to it and am excited to show it off just not too sure if sharing the share ID would make sense if it gets into the showcase for everyone to download

        L 1 Reply Last reply Reply Quote 2
        • L
          LucasJG25 @JMM161437 last edited by

          @JMM161437 I see

          1 Reply Last reply Reply Quote 1
          • JMM161437
            JMM161437 F last edited by

            @LucasJG25 yeah.. as for the electronics it's in the planning stages as for now with a small buggy prototype... so far I have logic gates, LEDs, power suppy, and switches to toggle

            1 Reply Last reply Reply Quote 1
            • L
              LucasJG25 last edited by

              Sounds really interesting. Looking forward to try it out.

              1 Reply Last reply Reply Quote 1
              • JMM161437
                JMM161437 F last edited by

                well when It's done I'll definitely let you know!

                1 Reply Last reply Reply Quote 1
                • L
                  LucasJG25 last edited by

                  Added more commands. Now you can branch with B or b and return back to that point in the code where you branched and continue as is.

                  1 Reply Last reply Reply Quote 2
                  • L
                    LucasJG25 last edited by

                    Ok, I think that will be enough for this Esolang now. With increase RAM/ROM capacity and larger screen buffer size. That should enable you guys to do whatever you like. As said above this will be my last upgrade to this language. Hope you guys have fun with it! :D

                    1 Reply Last reply Reply Quote 3
                    • JMM161437
                      JMM161437 F last edited by

                      thanks! so much memory... endless possiblities -evil insane laughter-

                      L 1 Reply Last reply Reply Quote 1
                      • L
                        LucasJG25 @JMM161437 last edited by

                        @JMM161437 I've also changed the instruction operands. Now it's more easier to load and save to RAM, use RAM as a pointer, or with registers.

                        1 Reply Last reply Reply Quote 1
                        • JMM161437
                          JMM161437 F last edited by JMM161437

                          @LucasJG25 thats awesome! oh btw my Circuit Designer project I need help... should I simulate wire resistance and component overload if the voltage is too high on the power supply/ resistor value is too low to limit the current... also should I add a simulated AC power source or is that too much

                          L 1 Reply Last reply Reply Quote 2
                          • L
                            LucasJG25 @JMM161437 last edited by

                            @JMM161437 I think those are great ideas for your project. Plus, this could be a great way to teach electronics as well. So I'd say go for it!

                            1 Reply Last reply Reply Quote 2
                            • JMM161437
                              JMM161437 F last edited by

                              good point @LucasJG25... might make it an educational type of project to learn at least the basics or electronics... thanks for your feedback!

                              1 Reply Last reply Reply Quote 1
                              • L
                                LucasJG25 last edited by

                                The latest update is now live. Enjoy!!

                                1 Reply Last reply Reply Quote 1
                                • L
                                  LucasJG25 last edited by LucasJG25

                                  So, I've been doing some reading on the 6502 assembly language and I'm thinking of adjusting the Esolang to enable labels to be used within the operands. I'm thinking that this will enable even more flexibility with the Esolang as I'm sure it's still difficult to create labels in the current version. Here is a BNF (Backus-Naur form) of the updated language and how it would work.

                                      L -> <reg>, (<sym><num> | "*"<label>)
                                      C -> <reg>, (<sym><num> | "*"<label>)
                                      A -> <reg>, (<sym><num> | "*"<label>)
                                      a -> <reg>, (<sym><num> | "*"<label>)
                                      S -> <reg>, ("*"<label> | <sym><num>)
                                      J -> "*"<label> | <sym><num>
                                      j -> "*"<label> | <sym><num>
                                      g -> Get data from screen buffer---------------------------
                                      P -> Display entire screen buffer                           | Imperative instruction
                                      p -> Acc => screenBuffer(reg_y * screenWidth + reg_x)       | No operands for these 
                                                                                                  | instructions.
                                      i -> input stream                                           |
                                      R -> Return back to (B | b)                                 |
                                      M -> switch modes | char | number -------------------------
                                      B -> "*"<label> | <sym><num>
                                      b -> "*"<label> | <sym><num>
                                  
                                      Label Declaration:
                                      <label> "=" "$"<num> | @<label>
                                      <label> ::= ("a-z" | "A-Z")
                                  
                                  1 Reply Last reply Reply Quote 1
                                  • L
                                    LucasJG25 last edited by LucasJG25

                                    UPDATE:
                                    The labels are becoming more flexible. Lol, wow I just keep adding to this thing!

                                    Labels can now be assigned RAM addresses and be given names.

                                    foo = $5; // This makes label foo become RAM[5]
                                    @example // This label is called an anonymous label since it is not assigned a RAM address and will instead use the current line number it resides on.
                                    

                                    So instead of using #<number> all the time. You can now just give a RAM address a name. Say for example the RAM address for keyboard input 3999. You can put that into a label

                                    Keyboard = $3999
                                    

                                    Now you can use that label to load from input stream to the X register if you wanted

                                    L X, Keyboard
                                    
                                    1 Reply Last reply Reply Quote 2
                                    • L
                                      LucasJG25 last edited by

                                      Just did a little code test. Now this is looking like a real language. This is on the PC version by the way. Will port it to Fuze soon. Right now I need a break!!

                                      //Test
                                      	M;
                                      	keyboard = $254;
                                      	@loop
                                      	L Acc, #0;
                                      	i;
                                      	L Acc, keyboard;
                                      	C Acc, #0;
                                      	J loop;
                                      	P;
                                      	C Acc, #10;
                                      	J end;
                                      	j loop;
                                      
                                      	@end
                                      
                                      1 Reply Last reply Reply Quote 2
                                      • PickleCatStars
                                        PickleCatStars F last edited by

                                        I don’t really understand what this is or what it does exactly. Any vids of it in action?

                                        L 2 Replies Last reply Reply Quote 1
                                        • L
                                          LucasJG25 @PickleCatStars last edited by LucasJG25

                                          @toxibunny i'll record it and post it up. Just need to make a few minor adjustments!

                                          1 Reply Last reply Reply Quote 0
                                          • L
                                            LucasJG25 @PickleCatStars last edited by LucasJG25

                                            @toxibunny I've posted a GIF on the discord server in #off-topic

                                            1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post