Пікірлер
@sa3270
@sa3270 Ай бұрын
It's 1 megahertz, not 1 megahert.
@vanhetgoor
@vanhetgoor 3 ай бұрын
Sorry, there is a big mistake in the first few minutes. The BASIC that was laying around ( = Dartmouth BASIC) was adapted by Microsoft for the Commodore 64, and there was very well paid for. Back in those days 25.000 US Dollars was a huge sum of money. You could buy a house or a big luxury car for that. And besides that, Microsoft adapted BASIC for other 6502 computers before, so it must have been not to much work.
@kraftwerk974
@kraftwerk974 4 ай бұрын
Great video mate, thank you very much 🤙
@AllGamingStarred
@AllGamingStarred 8 ай бұрын
So, I have to type in A string of incomprehensible gibberish instead of 1's and 0's? Yeah, no thanks
@AndrewRoberts11
@AndrewRoberts11 8 ай бұрын
For future videos, can you please turn off DARK MODE, as makes viewing in a mobile screen almost impossible.
@FlippieCoetser
@FlippieCoetser 9 ай бұрын
More of this stuff, Please! Awsome!
@theexplosionist2019
@theexplosionist2019 9 ай бұрын
popcnt had a false dependancy on skylake, fixed in sunny cove.and onwards hence xor eax,eax
@jrohit1110
@jrohit1110 9 ай бұрын
This is very clear
@GameFlife
@GameFlife Жыл бұрын
bro it's time for me to upgrade my laptop xD
@gc1418
@gc1418 Жыл бұрын
This explanation was so great. Assembly is not an easy thing to understand, and you made it very clear. Nicely done!!!
@ycombinator765
@ycombinator765 Жыл бұрын
This was so fun to watch even tho I only understood 30% or so of it. This tells me how much I have yet to learn. Thanks for posting this
@volodymyrdobrovolsky8610
@volodymyrdobrovolsky8610 Жыл бұрын
Dear Mark. Sans this "magnificent eight" the RISC-V will show very low performance, and will not reach the technical level of Intel/AMD/ARM. My MHP RISC architecture is far ahead, for it do not need "magnificent eight" at all.
@CardiacCat
@CardiacCat Жыл бұрын
Oh I remember learning really quickly those hex codes and could look at a row and divide it out in my mind and just type in the graphics I had drawn on the graphing paper. I never wrote my numbers out ahead of time, but I loved watching how you showed everyone the way it was done.
@fkish9713
@fkish9713 Жыл бұрын
Maybe a follow on video of why we use pointers?
@anthonyjagers7770
@anthonyjagers7770 Жыл бұрын
Jack really said that to Bill? He’s my hero!
@johanmyreen1027
@johanmyreen1027 Жыл бұрын
05:09 The RISC-V architecture defines 32 registers named x0 to x31. x0 is always read as 0, and writes to x0 are discarded. The a0 register is actually an alias for x10. Every register has an alias name, and the aliases reflect the usage of the registers in the standard calling convention ABI. For example, the return address register is x1 and has an ABI name ra, x2 is used as the stack pointer and has the ABI name sp, and so on. The "a" registers a0-a7 (x10-x17) are used for function arguments and return values (a0-a1).
@xrafter
@xrafter 3 ай бұрын
Is there a reason why there is two register for return values?
@johanmyreen1027
@johanmyreen1027 3 ай бұрын
@@xrafter A scalar value that is larger than the size of a register (but not larger than 2 times the size of a register) is returned in a register pair. For example, 64-bit integers on RV32 or 128-bit integers on RV64 are returned in the register pair a0-a1. Also, an aggregate value that fits in a register pair is returned in a0-a1.
@xrafter
@xrafter 3 ай бұрын
@@johanmyreen1027 Makes sense. Thanks.
@waynes84
@waynes84 Жыл бұрын
Still don't understand why ARM is efficient. It still has more instructions on average to handle right ?
@miroslavbrabec94
@miroslavbrabec94 Жыл бұрын
Try "ARM64 is much better ISA. x86 is old garbage. Deep dive ISA comparison and future outlook."
@piotrc966
@piotrc966 Жыл бұрын
"Still don't understand why ARM is efficient." Because procesor are build like for mobile, not desktop. Efficient not depends on ISA.
@piotrc966
@piotrc966 Жыл бұрын
@@miroslavbrabec94 "ARM64 is much better ISA. x86 is old garbage." Generally yes, but it isn't matter. E.g. x86 CPU are faster and more efficient than RISC processor like IBM POWER. POWER ISA is more modern than ARM.
@user-bv2ih2fb5v
@user-bv2ih2fb5v Жыл бұрын
I never thought about this thing that pointer takes 8 bits. It reason why addresses of variables don't follow each other (have gaps). Now I understand memory allocation better and clearly see that pointer to int takes more memory than just int. Very usefull video, many thanks!
@raprocks9421
@raprocks9421 Жыл бұрын
Great vid!
@jasonyuner5660
@jasonyuner5660 Жыл бұрын
awesome, it explains pointers like no other. thank you so much for making this video!
@poetryflynn3712
@poetryflynn3712 Жыл бұрын
This video came a few hours too late for me. A pointer places an address in ram to be easily referenced. Realistically, I knew what a pointer was before in other words [a reference to an address on the stack]. I was picking up assembly, and it gave me the notion to redefine the meaning of a pointer.
@fcolecumberri
@fcolecumberri Жыл бұрын
What is a pointer? The c-array identity crisis.
@OperationDarkside
@OperationDarkside Жыл бұрын
this
@terrydobak3678
@terrydobak3678 Жыл бұрын
No 64 how about the VIC 20.
@Foebane72
@Foebane72 Жыл бұрын
In programming languages like BASIC, the $ was ALWAYS used for strings, as far as I'm aware. It just made it easier to separate the variable types. But in modern languages, the type of data a variable will hold is always declared at the start of a procedure or function, and no special symbols like $ are even needed anymore.
@KC9UDX
@KC9UDX Жыл бұрын
Whell. It doesn't have anything to do with modern-ness. Every language works how it works.
@MiccaPhone
@MiccaPhone 2 жыл бұрын
I am also still surprised about the Euro to String ratio on the financial markets with my damaged brain.
@keldandersen4911
@keldandersen4911 2 жыл бұрын
so, are you ready? what do you mean if I am read Y?
@TheUtuber999
@TheUtuber999 9 ай бұрын
At which point the girl gets up and leaves.
@ZxSpectrumplus
@ZxSpectrumplus 2 жыл бұрын
READY PLAYER ONE! ?OUT OF PLAYERS ERROR!
@Arthur-qv8np
@Arthur-qv8np 2 жыл бұрын
Be aware that some laptops have whitelists that prevent part upgrades or replacement parts from other brand.
@EricCorsi
@EricCorsi 2 жыл бұрын
I still call $ string
@davelasertie4967
@davelasertie4967 2 жыл бұрын
I'm sure is a glitch, the read y in string should've returned ?TYPE MISMATCH ERROR not ?SYNTAX ERROR and without line, it is very weird
@jdwyer4851
@jdwyer4851 2 жыл бұрын
in an instant, it's READ Y
@bxdanny
@bxdanny 2 жыл бұрын
There was a TV show called "Vega$" circa 1980, and I always read that as "Vega string", although I knew that was not the intent. I was aware that Commodore (and Atari) computers used "READY" (with or without a trailing period) as a prompt, and that their screen editors would read it as "READ Y" if <enter> was pressed on those lines, but it didn't affect my reading of "ready" in other contexts.
@fredoverflow
@fredoverflow 2 жыл бұрын
Read Y? Because reading is fun!
@tenminutetokyo2643
@tenminutetokyo2643 2 жыл бұрын
Try vic-20 BASIC.
@bloodmapedit
@bloodmapedit Жыл бұрын
Which is identical... BASICally.
@GoatTheGoat
@GoatTheGoat 2 жыл бұрын
I feel your pain. I read '$' as 'scalar' due to Perl.
@MXB2001
@MXB2001 2 жыл бұрын
I luv my C=128.
@plgDavid
@plgDavid 2 жыл бұрын
mind blown.
@applesushi
@applesushi 2 жыл бұрын
I wish I still had my super-fancy “databases” I wrote on my C64 in middle school, cataloguing my books with lots and lots of DATA statements. 😀
@vytah
@vytah 2 жыл бұрын
3:27 Running the DATA statements actually does nothing. There is no buffer (it would be a waste of memory to have one), and READ simply scans the actual BASIC code for DATA statements. The pointers you've been reading point directly into the code. That's why you got a syntax error at 100: READ wasn't reading any buffer, it was reading the actual line 100. The pointer increased by 3 because there are two digits and a comma. And finally, notice that in almost all code printed in magazines, DATA statements are at the end of the program, so they couldn't have possibly run before the READ statements. The RUN statements resets the pointers to the beginning of the code, so that you can read the data from the beginning when running the code from the beginning. And the obvious corollary of all of that is that executing DATA in the immediate mode does literally nothing.
@kiwischolz9811
@kiwischolz9811 2 жыл бұрын
Well, basically you had no chance to use meaningful variable names, because they could only be one or two characters long (not including a $ for strings or # for integers - which were useless, since everything got converted to floats internally anyway). You could use longer names, but everything after the second letter was discarded.
@MiccaPhone
@MiccaPhone 2 жыл бұрын
integer used % not #.
@RadioactiveBlueberry
@RadioactiveBlueberry 2 жыл бұрын
The C-64 designers must have put it there intentionally as an Easter egg, just to screw over with newbies
@Foebane72
@Foebane72 Жыл бұрын
I always heard that C64 BASIC was terrible, but I had no idea it was this retarded with the READ/Y statement! AtariBASIC wasn't much better, but there were alternatives with the Atari 8-Bit at least.
@pikadroo
@pikadroo 2 жыл бұрын
Great… so now every other c64 channel i watch will do a video on this.
@KC9UDX
@KC9UDX Жыл бұрын
Yep
@N....
@N.... 2 жыл бұрын
Huh, I wonder if the $ usage influenced Clickteam's Fusion game engine, historically it has always had $ at the end of names that result in strings, but only by convention.
@andrash9798
@andrash9798 2 жыл бұрын
I also read the $ as "string" for many years
@steffan-c64
@steffan-c64 2 жыл бұрын
I was not read Y for this xD. Thx!
@jhenri
@jhenri 2 жыл бұрын
Try not to wear hand jewelry when working with electronics. Watch bands can snag and and rings can conduct.
@AleksanderSukowski
@AleksanderSukowski 2 жыл бұрын
The result of the JIT optimisation is not stored between the runs. It would suggest, that in this case it may not be worth calculating the final result by JIT, the JIT would need to take CPU time to calculate the result to create the final value. Potentially it is just a better overall/global strategy, to minimise the total CPU usage, to calculate the value once by not fully optimised code, instead of calculating it within JIT, just to return it from the generated code and exit. My point is that in Java byte code execution cost we need to add JIT+optimiser execution cost to the cost of the run of the generated binary. Unlike in compiled and optimised c++ binary execution where only the CPU cost of binary run matters.
@3vi1J
@3vi1J 2 жыл бұрын
For brands, I prefer Clevo due to the great experiences I've had with Linux - but I also tend to buy overpowered systems.
@andras4774
@andras4774 2 жыл бұрын
I still use a 10 year old T430. Replaced the keyboard (from T420), screen (from T440), maxed out the RAM, added SSD
@metal571
@metal571 2 жыл бұрын
It is insanely upgradable. Mine has 16 GB of RAM, 2 SSDs by using the UltraBay, the 3x3 N WiFi, and a i7-3632QM quad core with HT. It's such a nice platform for this that there's an entire Medium post about just that model