They did. AND, OR and NOT were bitwise operations as well as conditional operators. E.g. POKE 254, PEEK(254) AND 127 would turn off bit 7 of memory location 254 without affecting other bits.
I did actually know that Commodore BASIC had it but had forgotten. I don't think I'd ever used GW-BASIC or QBASIC, weren't they on PCs?
Apple IIs weren't really a thing over here although the very first home computer I ever used was an Apple II belonging to a friend of my mother's - Tony van der Kuyl, father of video games magnate Chris van der Kuyl ;-)
Connecting to the creator of a work of art provides meaning, which makes the experience of art better and more interesting. It allows you to experience worlds other than your own. I don't go into deep dives of all music I listen to, but I do want the option for music I like.
If there's no one on the other side, then it's just stimulation. Which is fine if that's what you want. It's something like the difference between watching an OnlyFans model versus an erotic video your significant other made for you.
Not on C64 BASIC. C64 BASIC converted ints to floats internally and converted them back to ints when needed.
What sidestepped part of that conversion was using variables instead of literal constants. So, doing something like N0=0, and using the variable N0 instead of 0 was faster.
Additionally, C64 looked up variables in the order they were defined, so variables defined later were slower. If your program used 0 a lot, you'd want to have N0=0 as the first statement in your program. I typically had N0=0 and N1=1 as those were common to use.
QBasic was so much faster and implemented differently. DEFINT A-Z at the top of the program typically sped it up significantly if you didn't use floating point. This might have worked on GW-BASIC as well.
A silver lining is that Javascript code will run on any modern browser+OS and can be created with nothing but a text editor. Even though this is many degrees of abstraction from facing the bare metal that was there in the 80s and 90s, it's better than nothing.
If modern x86 microcode ever gets sufficiently understood and reverse engineered I bet someone gets a PLAYDOOM instruction working. (I know it's been at least partially implemented on FPGAs)
On a higher level than individual URLs and separate from browser favorites. Something like versioned packages of links with decorations.
Something like a ".urlpackage" format that will have
- a list of urls
- optional metadata for each url, such as image, description, last-known-good
- metadata for the entire package, including version, an image, a favicon, and a description for the entire package that a client could use to present it nicely to the end user.
It'd be cool if my phone could open this format, show me the image and description with the list of links, and let me browse them, add them to my bookmarks, or add to the collection and make a new .urlpackage that I could then share back or publish somewhere.
It's probably possible to simply do this with a self-contained HTML file or similar I guess, though.
Slavery is actually legal. The 13th Amendment banning it has the explicit exception "except as punishment for a crime". Prison labor is used by a number of industries.
I'm not a PDP-7 assembly language expert but there's many instructions that take action if the accumulator is 0. So if a specific UID value has to be special, it's probably easiest and fastest for that value to be 0.
Many other CPU architectures have a "Z flag." This is a bit in a status register that's set if the last value encountered is a zero. So you can do something like this:
The BRANCH_IF_EQUAL instruction (actually BEQ in a few instruction sets) typically branches if that Z flag in the status register is zero. Some instructions on some CPUs reference the Z flag for what it is directly, like DJNZ on Z80 and I think x86 (Decrement and Jump if Not Zero).
If you want to test if a value is something other than zero, then you have to do this:
The COMPARE_ACCUMULATOR instruction (actually CMP in 6502 and similar in other instruction sets) subtracts "something" from the current value of the accumulator, but doesn't save the result, BUT sets the flags, including that important Z flag.
So it takes more instructions on many CPU architectures if the special value is not zero. This isn't limited to root being UID zero, it's also why "end of string" is zero and zero is a sentinel value in general.
reply