I have programmed by looking up op codes in a table on a sheet of paper and entering the hex codes into an EPROM programmer.
Did this in university in the very first week, quite a few people dropped out after that 😅
Ah yes, the great filter
You are… Old?
Fucking ancient. This was for a Z80 based system using discreet logic for addressing and IO, constructed on a wire-wrapped board.
Oh that’s interesting. I started poking around with a Gameboy emulator guide implemented in Python that intended to emulate a Z80. Got any good resource recommendation in case I decide to pick this back up and inevitably get stuck?
i still have a z80 reference manual on here somewhere
If you want some modern day fun with this, try the Zachtronics programming games; TIS-100, Shenzhen I/O, and Exapunks.
Or, my personal favorite I only discovered somewhat recently, try Turing Complete. You start by designing all your logic gates from just a negate gate IIRC. You eventually build up an ALU and everything else you need and then create your own computer. Then you define your own assembly language and have to write programs in your assembly language that run on the computer you’ve designed to complete different tasks. It’s a highly underrated game, although it takes a certain type of person to enjoy.
Turing Complete looks really interesting! How polished is it? Just looked it up and saw it was in early access
I would say it’s very polished. It does everything you’d expect and has some nice QoL features. There was work on a big update that’d improve performance and things, but the last information about that was from Aug of last year as far as I can tell. That’s not a big deal though. The game works fine without it.
Thanks! I’ll try it out over 4th of July weekend!
Another interesting low-level interpreter/emulated system to look into for anyone else trying to get started with this type of thing is the CHIP-8! It’s a pretty basic 8/16-bit instruction set (there are 35 opcodes, the instructions themselves are mostly simple) and there are tons of detailed guides on making one and writing roms for them.
Ah, memories. That was me on a Spectrum. It’s all fun and games until you forget to save (to tape) and your code hangs the machine, losing everything.
Did the same in school on a Z80
When I was young, we didn’t have hex codes, we only had 1 and 0s. One time we where all out of 1s, and I had to code a whole Database system with only 0s!
Same, and also for the C64 :-)
You’re a god amongst men around these parts.
I once knew somebody who supposedly thought that ASM was high level.
ASM is high level. Real programmers use punch cards
Real programmers use a magnetized needle and a steady hand.
There’s an emacs-command to do that.
No, the emacs command is for the butterfly
Dang, I meant a neovim-Plugin
Emacs keybind?
REAL programmers tap into the electron flow across the CPU and set bits in real time
Back to the iron ages
Once met a man who said he loved assembly language because it was so much nicer than punch cards and FORTRAN, but C was OK too.
This was last year. In his defense though, he’s been retired for years, used to work as a professor.
Wait until you learn about micro ops and processor internals. That somebody isn’t as wrong as you think.
There is no way ASM is high level
It’s a matter of perspective. To someone who’s job is to write the system which interprets ASM, ASM is high level
Exactly. For every level of abstraction, the abstractor is the high level and the abstractee is the lower level. Those aren’t real words perhaps, but you get what I’m saying. It’s all relative along the chain of abstraction.
Is it a chain though? I think it’s more of a branching network that (almost?) always is stopped at quantum physics and it’s theories or some form philosophy.
My mental model of it is a chain, yes. But you can define it however you like. It’s just steps in some direction.
Maybe a cake would suit someone the best.
It’s higher than machine code. It’s degrees of highness. Any abstraction technically makes it high level.
It’s not really abstraction though. It is more like syntactic sugar. In stead of 1000111011 you say ADD, but it is still the exact same thing. There is no functional, prgrammatical benefit of one over the other. It’s just that asm is readable by humans.
At least thats as far as I understand asm. I haven’t gone beyond NandToTetris
I would argue they don’t know what that means really. Assembly is pretty much a mapping of words to machine code. It’s just a way to make machine code easier to read. It doesn’t actually change how it works.
A compiler re-arranges and modifies things so what you write isn’t the same as the final program that is created. With assembly it is. It’s not really an abstraction, but a translation. It doesn’t move you further from the machine, it only makes it so you’re speaking the same language.
I am once again asking programmers to explain the joke
C was originally created as a “high-level” language, being more abstract (aka high-level) than the other languages at the time. But now it’s basically considered very slightly more abstract than machine code when compared to the much higher level high-level languages we have today.
Other way around, actually; C was one of several languages proposed to model UNIX without having to write assembly on every line, and has steadily increased in abstraction. Today, C is specified relative to a high-level abstract machine and doesn’t really resemble any modern processing units’ capabilities.
Incidentally, coming to understand this is precisely what the OP meme is about.
I’d say much more highly abstracted than necessarily better (I know plenty of people who despise js and wouldn’t call it better).
To add on to @azdle@news.idlestate.org 's comment, “High Level” in terms of programming languages means further away from how the computer processes things and “Low Level” means very similar to how machines process things. For example, binary and hexadecimal (16 bit) machine code such as “assembly language” are both low level.
Imagine if program interpreters were building blocks, then 6 layers of abstraction would be very tall or higher level.
This is pedantic, but assembly languages get “assembled” to machine code. This is somewhat similar to higher level languages being “compiled,” which eventually becomes assembly which gets assembled. The major reason why these are different is because a compiler changes the structure of the code. Assembly is a direct mapping to instructions. It just converts the text into machine code directly, which is why it’s easy to go from machine code to assembly but decompiling doesn’t give you identical results to the original source code.
Also, binary and hexadecimal are just different ways to view the same binary data and aren’t different things. There is only “machine code” which is a type of binary data but you can view binary with any arbitrary base, though obviously powers of 2 work better.
Assembly is a direct mapping to instructions. It just converts the text into machine code directly,
Kinda… yes and no? At least with x86 there’s still things like encoding selection going on, there’s not a 1:1 mapping between assembly syntax and opcodes.
Also assemblers, at least those meant for human consumption (mostly nasm nowadays) tend to have powerful macro systems. That’s not assembly as such, of course.
But I think your “a compiler changes the structure of the code” thing is spot-on, an assembler will not reorder instructions, it won’t do dead code elimination, but I think it’s not really out of scope of an assembler to be able to do those things – compilers weren’t doing them for the longest time, either.
I think a clearer division would be that compilers deal with two sets of semantics: That of the source language, and that of the CPU. The CPU semantics don’t say things like “result after overflow is undefined”, that’s C speaking, and compilers can use those differences to do all kind of shennanigans. With assemblers there’s no such translation between different language semantics, it’s always the CPU semantics.
Removed by mod
I don’t think I said assembly is abstracted. It’s pretty much just a translation.
Hexidecimal isn’t binary. They’re both just ways to represent numbers. A number displayed in hexadecimal and binary are the same number even though they look different. FF(base 16) = 1111 1111(base 2) = 255(base 10). They’re all identical.
When I learnt programming (back in early 2000s) the textbook said C is a high level 3rd generation language with 4th gen languages being something higher (I don’t remember what examples were given specifically). This is back when the java applets and action script for flash were the hot things. How I miss the days without the world being cursed by JS.
I think C was 2nd, 3. is Java and Python, 4 SQL and 5th would be some hypothetical AI instruction language?
1st level is direct binary code as was done with punch cards. Assembly language is a 2nd level language. C is a level above, thus it’s level 3.
Ah, thanks! Right, binary was one too.
I would also like to add some of the higher level features available in most assembly languages.
- Memory management. You can define variables, for example, a string one containing “Hello, world!” and the compiler will correctly allocate required memory and you don’t need to know its address while writing the code, you just reference the variable.
- Code labels. If you want to do a conditional or unconditional jump, you need to know the address of the code you want to reach. But, obviously, every change you make to your code base will change the memory layout of your binary. Asembly provides code labels. You can think of them like function names.
- Assembly allows you to reference 3rd party libraries without knowing exact function entry addresses. You just use function names like you would with C or any other language.
Modern assembly languages have even more higher level features, like macros support. And some are even hardware agnostic, like intermediate representation assembly language used in LLVM.
When the gp’s book says that C is a third generation language: I would guess the first generation is Fortran and the second generation contains ALGOL and BCPL. C was heavily influenced by BCPL. (get it? C comes after B)
I think we mean different kinds of “generations”.
SQL has been around since the 1970s
That doesn’t mean it’s not higher level than other languages from more recent times.
Level means level of abstraction. Right?
Java applets and flash were an absolute security nightmare of the highest degree.
You were just running applications on your computer.
If you had to download and run an application on your computer to view a website now people would lose their minds (and rightly so)
I mean, C is a high level language? Now, sure, C isn’t a super expressive language and every C statement compiles to very few assembly instructions comparatively speaking, but it has a whole lot of stuff that assembly doesn’t have. Like nice loops and other control structures and such, and not worry about which processor registers are used.
Guess what, assembly is also a high level language, lol.
But quiche is tasty!
C was always a high level language for me? As soon as I knew it existed at least.
I guess this is what gen z programmers making memes look like
In the modern world it’s completely subjective.
The lowest-level language is probably ASM/machine code, as many people at least edit that regularly, and the highest-level would be LLMs. They are the shittiest way to program, yes, but technically you just enter instructions and the LLM outputs eg. Python, which is then compiled to bytecode and run. Similar to how eg. Java works. And that’s the subjective part; many people (me included) don’t use LLMs as the only way to program, or only use them for convenience and some help, therefore the highest level language is probably either some drag-and-drop UI stuff (like scratch), or Python/JS. And the lowest level is either C/C++ (because “no one uses ASM anyway”), or straight up machine code.Removed by mod
I’m pretty sure Pepe was only temporarily coopted by the far rights, and has since been reclaimed.
Removed by mod
You’re right. Hey lemmy, lets all accommodate this one guys specific likes and dislikes so he doesn’t get his lil feels hurt!
“Hey everybody, cartoon frogs with a history of hate speech are more important to me than basic human empathy.”
If you let them dictate what is theirs, they’ll take everything.
Lmao, what a wild assumption that they could take whatever icons they like, with no basis in reality.
Lmao, what a wild assumption that they could take whatever icons they like, with no basis in reality.
that’s…. exactly what they do buddy. you don’t seem the type to care for counter-examples so i won’t even try and list any of the many, many fucking instances of this happening irl
Removed by mod
Just off the top of my head those are a few. And that’s with people holding the line and continuing to use these symbols without hate. We don’t need more people defending their claims.
Degenerate, 88, 14, the Roman salute, multiple names, the fascista, shaven heads, lighting motifs, runic symbols.
That’s just what I came up with off the top of my head. The other person is right, and I say we should reclaim every symbol because those fuckers shouldn’t be allowed to call anything their own or have anything to ralley around or identify each other with. The only symbol I’m aware of that the made was the black sun which is itself simply the ss symbol repeated around a circle, which itself is an appropriated rune.
Reclaim every symbol.
That’s your position. Not mine. They can’t have shit, because I won’t let them
An icon represents what the people think it represents.
An icon can also have different meanings to different people. It’s ok if you don’t like it. But I don’t think it’s fair to say that the majority of people that use or share Pepe are from one specific ideological group
Myself and a great many people associate it with hate speech and you’re continuing to use it regardless. That tells more about you than me.
I’m just gonna go ahead and say ratio’d. And yes, I’ve read all of the discourse ITT.
Removed by mod
Lmao buddy your meme policing isn’t “harsh reality” it’s useless slacktivism.
the swastika was originally a religious icon used and still used in Hinduism, Buddhism and Jianism, i wouldn’t consider them Nazis… Context matters
Its even older than that actually. The oldest recorded use of the swastika is from around 13.000 BCE. Here is a good article by the BBC: https://www.bbc.com/culture/article/20210816-the-ancient-symbol-that-was-hijacked-by-evil
Imagine unironically saying we should normalize nazi swastikas. If that’s not what it takes for you to reevaluate your stance, then you’re a lost cause.
the symbol predates Germany, initial findings date it back to 3300-1300 BC. you’re telling me all historical religious symbols in Asian countries should wiped of the icon because of Nazis misappropriating their symbol? you would literally deface ancient sites that predate nazis by thousands of years because you can only see it as a symbol of hate?
you can use context clues such as actual hate speech, nazi slogans and genocide to distinguish those that are actually racist. the whole point of nazism is to erase culture and replace it with only the “one true race”. by allowing nazis and white supremacists to appropriate symbols you’re actively giving them power.
So then, you think Nazi Swastikas without context should be allowed without any repercussions. I saw your first comment, I don’t see why you think using more words to say the same thing would make it any different.
Here are some questions: How does punishing nazis for using symbols of hate and intolerance empower them? How does allowing them to do so freely harm them in contrast?
You do not need to use a nazi swastika. A world where they are not allowed in public is a world where people feel safe and comfortable. Just as you do not need to use the frog. The frog is unimportant and only continues to exist because people like you fight for it.
literally my first comment said context matters. if you see an image with hate speech maybe its the speech that you should pay attention to.
So then, you think Nazi Swastikas without context should be allowed without any repercussions.
That’s incoherent. “Nazi swastika” and “without context” doesn’t mesh because “Nazi” is a context for “swastika”.
That aside, I’m going to take German law as an example: No, non-nazi swastikas are very much not outlawed. You can see them on stray Hindu temples or shrines in the country, for example. “Without” context they’re generally assumed to be Nazi ones over here because historical context, also, only Nazis draw random swastikas over here. You also see ones broken in pieces getting thrown in the trash or in a crossed-out circle, those come from the Antifa side.
Both the Hindu and Antifa uses are legal, the Nazi ones aren’t. That’s because German law doesn’t outlaw the swastika as such, it outlaws “using symbols of unconstitutional or outlawed organisations in a manner suitable to further their aims”. A Nazi painting a Swastika on a Jewish gravestone is considered furthering the aims of the NSDAP, which had the swastika as their logo. A Hindu chiselling a swastika into their gravestone is a completely different matter. (Do Hindus use gravestones? Anyway doesn’t matter it’s a hypothetical example).
In another country, where the historical context is different, those “without” context swastikas won’t be interpreted the same as in Germany. So even under German law those would arguably be legal, there.
Almost every meme template has been used to make alt-right nonsense, do we just abandon any symbol they pick up for their misdeeds? Or do we push back and refuse to allow them that kind of control over our culture?
Very few and far between were exclusive to the right. Pepe was. It started as theirs and continued to be theirs for a long time, in my opinion still continues to be theirs. You few fighting for the symbol’s continued use in good faith (if you are) are not the majority.
It certainly did not start as theirs.
It started as a french cartoon and got coopted into the feelsbadman meme format in 2009 and then skyrocketed in popularity and mainstream use in 2015-2016 by pro-trump conservatives.
Even if it were present in every single greentext like some sort of bizarre requirement, it still would have more use by nazis and propogandists than anyone else.
I understand. It is inaccurate to say it started as a far-right icon.
pepe is my gay son and i love him
I didnt ask and I dont care.
Removed by mod
That’s Apu not Pepe either way, but many leftists use pepe anyways. Just maybe not the ones you know.