6:42 TIS-100 is HARD. You control multiple "nodes" that pass integers from -999 to 999 back and forth, with stack memory. It requires a lot of skill. This looks insane to even try.
I'm so f*cking obsessed with this language. I just built a compiler in python for the _sic game language_ . I started building hardware that can run the compiled language (Ben eater style) cause I don't need much logic controlling different instructions (duh) and I only need a ALU that can subtract
@@meep.472 Kind of: I changed plans to make it in a calculator like device that you can bring to school. I use arduino nano for that. Currently I'm programming the code to get the code into memory
Thank you so much for pointing me at the esolang community. I'm having so much fun with this. Working up my own variants has gotten me back into programming after nearly 30 years. I remember finding and using a similar esolang on the C64 back in the mid 1980's, when computing magazines had all sorts of programming projects. Of course, they weren't called esolangs back then.
@@Truttle1 I can't remember the details back that far. :( It had two instructions: Increment, and Decrement (jump if zero). Fun to mess with for a while back when I was young. Good memories.
on sic-1 it says that it stores the result of a - b in register A: "subleq" subtracts the value at address B from the value at address A and stores the result at address A (i.e. mem[A] = mem[A] - mem[B]).
6:53 heehoo i managed to do it in only 93 cycles :P it's mostly because while I have only 2 commands in my subtraction loop, you have 13 :0 not sure what you're doing with all of those variables lol, sometimes it's better to keep things negative (btw here's the loop if you wanted to see) @SubtractLoop: subleq @divisor, @factor, @CalcR subleq @negQuo, @one, @SubtractLoop
The ABLE processor in the Synclavier synthesizer uses only the 'move' instruction. It is also worth noting that the same instruction in x86 has been proven to be Turing-complete.
In the Truth program (5:28), the assembly and code don't match. In the assembly, clearing tmp happens after printing. In the code, clearing tmp happens before printing. Man, that has bugged me for months, and I finally bothered to pause the video to figure out why.
I also conceived of a language with only one command, called NANDulator It uses an unspecified length binary string, and each command is simply 3 numbers, like this one. (a, b, c) will set c to NAND of a and b
@@cmyk8964 maybe the negative bits could be the program counter, and if you also need IO, you can put it between the positive and negative things you might also need bitshifts, because if you need to take the nand of bits in a different place value, then you need to shift them together. you might be able to bodge it in an AutoHotKey-ish way by making it so that the first instruction is even then the operation is nand, and if it's odd then the operation is bitshift.
The real question is what instruction set results in the fastest computer. RiscV is pretty great cause the newest definitions have 512 bit register widths for simd
I really like the content of your videos but the audio is kinda bad and some of the FX are too loud. I'm constantly readjusting the volume throughout a video. Not to be mean, it's just because I like what you do and would like to see it get more views.
question: how do you immediate numbers into stuff, to make constants? making a computer in turing complete (game on steam where you make computers outta logic gates) using this architecture, and the ram starts out all empty. I don't see how I could Immediate a value without inputting...
This theoretical arch has both the program code and the variables in RAM/RW memory. In Turing Complete, you can sadly only program a ROM directly, so normaly the code is separate from the variables. What you can do is create a circuit for copying the full ROM into a RAM module (increment program counter by 1, connect the first output of ROM directly to the input of the RAM, address for both is the output of the counter.). When this is done (program counter reaches 255 or whatever is your max storage in ROM), the ROM-RAM connection should be disconnected (switch?) and the rest of the computing hardware should read the instructions from the RAM, not the ROM like normally in the game. This idea of copying the whole ROM into the RAM is necessary for any self-modifying code, and it models modern computers much nicely. Sadly, you will lose debugging functions because after the copying is done there is not much to do with the ROM.
@@Truttle1 Trumpscript, although popular with the maker community, was cancelled by its main competitor, Progscript. They bought the distribution system, scrambled the code base, and deleted the published packages.
"Instead of a normal assembly language..." what? like the RISC with subtract and branch if less than or equal to or something stupid like that? "... what If we had an assembly language with ONE instruction?" uhhhhhh SBLTE? [ looks at title ] oh oh no
Wow I was like wouldn't it be cool if he make a video on logo. And he made a video on logo! Then I was like wow wouldn't it be cool if he did a video on a minimal assembly and he made a video on subleq! Please help. I'm scared...
@@Truttle1 also it has practical applications, the first Carbon nanotube computer “Cedric” implemented only one instruction (OISC) “substract and branch of negative” !!!!!
6:42 TIS-100 is HARD. You control multiple "nodes" that pass integers from -999 to 999 back and forth, with stack memory. It requires a lot of skill. This looks insane to even try.
i think this is the most absurd esolang ive ever seen on this channel
and in fact it isn't esolang but ISA
Wait is it... turing complete? Oh lord
Yes! Subleq is Turing-complete.
Obfuscate confirmed to be a subleq computer
I'm so f*cking obsessed with this language. I just built a compiler in python for the _sic game language_ . I started building hardware that can run the compiled language (Ben eater style) cause I don't need much logic controlling different instructions (duh) and I only need a ALU that can subtract
any updates?
@@meep.472 Kind of: I changed plans to make it in a calculator like device that you can bring to school. I use arduino nano for that. Currently I'm programming the code to get the code into memory
@@emilioschmidt2106 sick! update part 2?
You should uopload videos about it
Subleq was my first esolang, thanks to it I found your channel
Saying x86 assembly is low level as if REPNE SCASB doesn't exist
My favourite character is Obfuscate)))
Man, hats off to your source of inspiration!
I even tried to make a subleq computer in minecraft, it should work but cant load from memory correctly, so it doesnt work
The excitement when I see the notification
I didn't get a notification. :(
I don’t think you get a notification when you upload your own video
ذخخم جهدفعقث
@@AlvinBalvin321that was joke you ner
Join the discord server today: discord.gg/ybTRP7a
Already have
Expired ?
Thank you so much for pointing me at the esolang community. I'm having so much fun with this. Working up my own variants has gotten me back into programming after nearly 30 years.
I remember finding and using a similar esolang on the C64 back in the mid 1980's, when computing magazines had all sorts of programming projects. Of course, they weren't called esolangs back then.
Nice! Which programming language was it?
@@Truttle1 I can't remember the details back that far. :( It had two instructions: Increment, and Decrement (jump if zero). Fun to mess with for a while back when I was young. Good memories.
i just randomly remembered this, and was gonna go into sic-1, but my data got reset or something i dont remmeber switching computers, tho i may have
on sic-1 it says that it stores the result of a - b in register A:
"subleq" subtracts the value at address B from the
value at address A and stores the result at address A
(i.e. mem[A] = mem[A] - mem[B]).
It does that, since it's a different variant of subleq. It takes a second to get used to...
Ok, and also I think that’s a bit more intuitive because a comes before b so a -= b is more intuitive
What video editing software do you use? The animation is super smooth!
I use Moho to animate, and Adobe Premiere Pro for final edits.
What about SSB (subtract and skip if borrow). It's better because is OISC with one operand!
6:53 heehoo i managed to do it in only 93 cycles :P
it's mostly because while I have only 2 commands in my subtraction loop, you have 13 :0
not sure what you're doing with all of those variables lol, sometimes it's better to keep things negative
(btw here's the loop if you wanted to see)
@SubtractLoop:
subleq @divisor, @factor, @CalcR
subleq @negQuo, @one, @SubtractLoop
The ABLE processor in the Synclavier synthesizer uses only the 'move' instruction. It is also worth noting that the same instruction in x86 has been proven to be Turing-complete.
5:58 ...until you run out of memory. Then it's a finite state machine.
This is kind of like that movuscater thing where someone wrote an entire c compiler that only uses the mov instruction
There's actually a lot of turing-complete OISCs. I actually once saw a game engine that uses a variant of BitBitJump to run games...
@@Truttle1 BitBitJump?
@@AshtonSnapp esolangs.org/wiki/BitBitJump
@@Truttle1 Interesting...
The Dawn OS website is gone. :(
I usually to some extent understand the languages after you explain them in these videos but for this one I still don't get it
You're one of the people whose videos I instantly like now, without even watching :p
the point this language tries to make is legit. computers became too complicated and it can't be avoided if you want to be at least somewhat sane.
In the Truth program (5:28), the assembly and code don't match. In the assembly, clearing tmp happens after printing. In the code, clearing tmp happens before printing. Man, that has bugged me for months, and I finally bothered to pause the video to figure out why.
is this the only truttle1 video with 100% like ratio?
I also conceived of a language with only one command, called NANDulator
It uses an unspecified length binary string, and each command is simply 3 numbers, like this one.
(a, b, c) will set c to NAND of a and b
How would you create control flow?
@@cmyk8964 Detailed here: ruclips.net/video/4NsZES_rQ7U/видео.html
@@cmyk8964 maybe the negative bits could be the program counter, and if you also need IO, you can put it between the positive and negative things
you might also need bitshifts, because if you need to take the nand of bits in a different place value, then you need to shift them together. you might be able to bodge it in an AutoHotKey-ish way by making it so that the first instruction is even then the operation is nand, and if it's odd then the operation is bitshift.
@@official-obama that's an old comment (i think), you shouldn't have replied to it
I am starting to make a compiler for that language with python. Wish me luck
Edit:
I'm done. Does anyone want to code review?
perhaps
This is big brain time.
The real question is what instruction set results in the fastest computer. RiscV is pretty great cause the newest definitions have 512 bit register widths for simd
: g = 10 ]
3:17 why are the variables declared _after_ the code?
I really like the content of your videos but the audio is kinda bad and some of the FX are too loud. I'm constantly readjusting the volume throughout a video. Not to be mean, it's just because I like what you do and would like to see it get more views.
you could... compile the c based linux kernel to subleq... if that cpu ever existed
i'l do it one day, maybe
im stuck on sic-1 game 's task dvision. can you paste the solution here?
question: how do you immediate numbers into stuff, to make constants?
making a computer in turing complete (game on steam where you make computers outta logic gates) using this architecture, and the ram starts out all empty. I don't see how I could Immediate a value without inputting...
This theoretical arch has both the program code and the variables in RAM/RW memory. In Turing Complete, you can sadly only program a ROM directly, so normaly the code is separate from the variables.
What you can do is create a circuit for copying the full ROM into a RAM module (increment program counter by 1, connect the first output of ROM directly to the input of the RAM, address for both is the output of the counter.). When this is done (program counter reaches 255 or whatever is your max storage in ROM), the ROM-RAM connection should be disconnected (switch?) and the rest of the computing hardware should read the instructions from the RAM, not the ROM like normally in the game.
This idea of copying the whole ROM into the RAM is necessary for any self-modifying code, and it models modern computers much nicely. Sadly, you will lose debugging functions because after the copying is done there is not much to do with the ROM.
Hey Truttle, can you do a video about the language "Trumpscript"? I want to understand the syntax and it seems like a funny language
That video will either be coming out on January 20, 2021 or Janary 20, 2025.
@@Truttle1 i guess depending if trump is still president?
@@commentator2.054 coming back to this comment to say 2021
All the more reason to be thankful he's gone
@@Truttle1 Trumpscript, although popular with the maker community, was cancelled by its main competitor, Progscript. They bought the distribution system, scrambled the code base, and deleted the published packages.
i really want to create this CPU
"Instead of a normal assembly language..."
what? like the RISC with subtract and branch if less than or equal to or something stupid like that?
"... what If we had an assembly language with ONE instruction?"
uhhhhhh SBLTE?
[ looks at title ]
oh
oh no
How does Dawn OS do IO?
Memory mapped io
This is a birthday gift to me. I have my birthday tomorrow...
Timing is crazy.
@Orange Giraffe Thank you!
I like the Mario cart málo music
CORNELIUS?!?!
new video yay (I'm really excited!)
I'm on Level 14
Epic!!!
3:20 WE ALL GOT COCONUT MALLED
hey i can set up a linux website in Cent OS for you for free also it will be pretty fast
I'll set up a website on my own, but thanks for the offer.
1:30 ITS HIM
ITS HIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIM
i love it
Wow I was like wouldn't it be cool if he make a video on logo. And he made a video on logo! Then I was like wow wouldn't it be cool if he did a video on a minimal assembly and he made a video on subleq! Please help. I'm scared...
Did you join RUclips just to make this comment?
@@Truttle1Oh hey! No I actually just made a new account.
SUB and LEQ i guess.
Yet another great video! Even though this... thing is actually worse than brainf**k :(
Will you make a video about Fortran in the future?
Why was this made
Fun?
@@Truttle1 well yes but no
@@Allstreamer_ well no but yes
@@Truttle1 also it has practical applications, the first Carbon nanotube computer “Cedric” implemented only one instruction (OISC) “substract and branch of negative” !!!!!
RISC is still superior.
Si.
Love the vid!!!!
Cool
subqlek
this surprisingly doesnt have many likes
asm