'Retro Programming' Teaches Using 1980s Machines
Death Metal Maniac writes "A few lucky British students are taking a computing class at the National Museum of Computing (TNMOC) at Bletchley Park using 30-year-old or older machines. From the article: '"The computing A-level is about how computers work and if you ask anyone how it works they will not be able to tell you," said Doug Abrams, an ICT teacher from Ousedale School in Newport Pagnell, who was one of the first to use the machines in lessons. For Mr Abrams the old machines have two cardinal virtues; their sluggishness and the direct connection they have with the user. "Modern computers go too fast," said Mr Abrams. "You can see the instructions happening for real with these machines. They need to have that understanding for the A-level."'"
Why don't niggers like to eat Tootsie Rolls? They keep biting their fingers off.
That could teach them a thing or two about commerce and trade, I suppose.
SJW: Someone who has run out of real oppression, and has to fake it.
We had to remote into this old Unix System V box and do a few exercises for our course education. No, its not as far back as these students were going but it was helpful to become familiar with that kind of architecture, because you never know whats still going to be kicking around when you get on the job.
I mean, seriously ? I'm pretty sure you don't need to screw your head on a crippling dinosaur to understand low level programming
Makes a lot more sense than starting them off in some poo like Java where they never need to know about the real hardware.
Trolling is a art,
I feel us programmers have gotten too far away from the lower level aspects of the craft and are now too higher level focused. While, this isn't a bad thing (why should you rewrite a framework everytime you start a new application) - it really perverts ones respects for how things work and efficency.
I am getting back into assembly programming after 8 years of C# and it is a bit of a shift in thought. My college switched from C/C++ to Java my senior year for incoming freshman - a real shame. Programming is totally different when you have no respect of memory management.
Uhm, we were saying that in the 1980s. At Bletchley Park they should be teaching with machines that actually are old.
Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
You would get exactly the same "feel" as you get with an old C=64 or Atari or Amiga machine. If your goal is to get down to the bare metal, then go ahead and do so. There's no need to dust-off old machines that are on the verge of death (from age).
"I disapprove of what you say, but I will defend to the death your right to say it." - historian Evelyn Beatrice Hall
... if you want to know how computers work, learn microcontrollers with the Atmel 8 bit family of controllers (ATMEGA8, for example). These things are wonderfully documented, there is a free C/ASM development environment with emulator (single-step, breakpoints, etc.). The real deal is just a few dollars for a development board (or get an Arduino, same thing). You don't get the absolutely down to the transistor insight, but that's really just a few experiments with TTL gate chips and LEDs away.
They each took on the role of a different part of the machine - CPU, accumulator, RAM and program counter - and simulated the passage of instructions through the hardware.
The five shuffled data around, wrote it to memory, carried out computations and inserted them into the right places in the store.
It was a noisy, confusing and funny simulation and, once everyone knew what they were doing, managed to reach a maximum clock speed of about one instruction per minute.
I wish I had a teacher like this while in [US public] school.
More Twoson than Cupertino
Next up: Driver's Eduction on the Model T. ;)
What's next, punch cards?
Seriously, how is this useful in modern computing, other than as a "Back in my day..." quote?
If you want to actually teach them something, why not just teach them to program for an embedded system? Preferably, one that is still in use today.
GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
We ran some older machines in my first programming course. When you can see the direct results in speed (or lack of) it can help teach better approaches. Writing a game and seeing the screen flicker when you ask the CPU to do too much is good modivation to find a more effectient approach. One our our instructors also did something like this with visual sorting procedures. If you can see the difference in speed between one sorting approach and another, it sinks in.
The computing A-level is about how computers work and if you ask anyone how it works they will not be able to tell you
That's what most people would say when you asked them how something works. Computers, fermentation, a Wok . . . etc.
"Um . . . I dunno . . . "
Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
"Because there's no copy and paste, if you do something wrong it takes time to go back and fix it," said Joe Gritton. "You cannot take out sections and move them around."
So they have to worry about bad interfaces and editors. You can do simple assembler programming on modern machines as well. And understanding C__ should give you a good deal of knowledge about the basics of a computer...
I wasn't alone in keeping '286, 386, and '486 boxes around until Pentiums became prolific...and the same goes for dual cores etc...you write code that runs fast on the older generations, and you never hear user-land complaints about your stuff's performance on the new.
.NET....well, now you're only as good as Microsoft is.
Of course, with the advent of
Orwell: "In a Time of Universal Deceit, telling the Truth is a Revolutionary Act"
One of the great things about the early micros (and probably the even-earlier minis) is that they were Knowable. With a little time, an intelligent person could become familiar with the workings of the entire architecture. I used to have a map of every memory location in the 64KB of ye olde C64 (most of it was user RAM of course) explaining what each byte was for. POKE a different value to a certain address, and the background color changes. PEEK at a certain address and it tells you the current hour. You could learn this... all of it. Obviously that's just not possible with modern computers (probably not even modern phones); no one person can grok the whole system.
http://alternatives.rzero.com/
The five soon discovered that just because a program was simple did not mean the underlying code was straight-forward. To make matters more testing, the BBC Micro offers a very unforgiving programming environment.
My first piece of commercial programming was on a BBC Micro and having that environment didn't teach me anything, it just made programming more of a pain than being able to cut and paste, set debug breaks and so forth. And it doesn't teach any more than using C#/VB because it's a machine designed around using BASIC, which is itself an abstraction (and IIRC, you didn't have functions, so had to endure the horror of GOSUB/RETURN).
In my college program on electronics design, we actually did a lot of system-level programming on 8085 machines. We went so far as to build DAC converters to build volt meters out of computers. What it gave us was the ability to understand the basics of CPUs interacting with memory, signals, IOs, assembly language. That said, with two years of that under my belt, I am no closer to understanding any real-world programming that can get me a job, than had I not taken the class.
Yes, the basics of computers are much easier when you don't have massive clock frequencies adding insane complications to applications. No, programming has nothing to do with understanding what JMP does. Do I think it's valuable? Sure. Do I think it'll make any difference on whether you can call yourself a "programmer?" No way.
Edlin should be a mandatory part of the course for the full immersive effect.
Or was that the 70's? Gosh I can't remember now cuz I'm so old.
Wouldn't it be better to use the emulation route? For example, writing a program for the original gameboy, and running it through the emulator. I remember at university we learned assembly on an emulated MIPS. We could focus on the individual instructions, on hardware that was simple and clean, but it all ran on the unix servers (x terminals).
Absolutely. Better teach them C so they will know how data structures and memory management work.
Languages that try to do everything may help you write code faster but can be treacherous.
Let's see a simple example. In Python there is a subtle matter of memory management that can be dangerous to the untrained programmer. When you copy a list like this: a = b you are creating a pointer to the other list, when you copy like this: a = b[:] you are allocating memory for a new list and copying the contents.
When you know C, the difference between the two copy instructions above is obvious, but if you don't know what is memory management this can become very difficult to understand. I bet there are many bugs created by Java, Python, and other modern languages that come from this inability to understand how the language works under the hood.
Working on old computers can be fun for some people, but to train programmers nothing beats learning C. C is close enough to the hardware to let one understand the details of how software runs, yet abstract enough to represent any typical von Neumann computer.
from the link: "using 30-year-old or older machines."
from the fine article: "First released in 1981; discontinued in 1994 using 30-year-old or older machines."
I recently (three weekends ago) fired up my Commodore PET 2001 (a *genuine* pre-1980 computer) and have been writing a Forth for it. It's really a lot of fun, and I'm finding that 30 years experience in various high-level languages has improved my "6502 assembler golf" game a lot. It's very incomplete, but the inner interpreter mostly works. Feel free to throw down on it here
Charlie
never ask a question you don't want to know the answer to
I have programmed on TRS-80s and 8088 w/8087s. Compiled C and Read & Go BASIC.
But now I'm programming python on an 8-core Xeon. When I'm writing a stored procedure or a nested loop of two recordsets, I ***STILL*** catch myself thinking about how slowly those instructions would take on a slower machine. "Do you know how LONG that looping will take?... oh. 0.000006 seconds. heh heh. I catch myself "subvocalizing" the loops, and I shy away from something "so resource intensive" and look for another, more efficient solution.
Yes, it's great to learn how a computer does what it does, but if you miss the simple solution because your mind is "read and go"-ing, then you hobble yourself.
10 years ago when I went through University, the core of the mandatory Assembly programming course was taught on the PDP-11 architecture, then 30 and now 40 years old.
Granted it's not quite the same. We used emulators and not the real things. Also it was for different motivations. The prof felt it was simpler to teach the cleaner PDP-11 instruction set than the 80x86 or 680x0, although the course did eventually also extend to both. Also he happened to be an expert in systems like the PDP-11.
However the idea of using old systems as teaching aids is hardly new - or news IMO.
I was using them at college when they were new.
My first job was writing software that controlled scientific instruments and their was an awful lot of eductaional software written for them because they were designed to be used in schools. The Basic was more structuured and it could use microcassettes or 5 1/4 flopies with its own DOS.
In short, if you are going to use a dinosaur, it is the best dinosaur to choose
I first used edlin on DOS 1.0 and was kept using it until better alternatives (norton edit, anyone?) appeared. Edlin makes vi seem like a walk in the park. I've used edlin for assembly and Pascal programming, and I say "curse you!" to anyone who jokes about those dark days.
Timex Sinclair 1000 w/ 16KB Expansion Module. Manual included. Original boxes & styrofoam.
If this opportunity sounds interesting to you but you grew up with high level languages, definitely check out the book Code by Charles Petzold. I could really only keep up with the first 500 pages or so, but it is still incredibly insightful and interesting if you want to know how a computer really works. You could basically use it to learn how to build a computer from scratch and program it.
Spoon not. Fork, or fork not. There is no spoon.
Am I missing something here? What's the difference between programming a 30 year old PC and programming an 8-bit or 16-bit microcontroller. Build your own OS as a while(1) loop... Understand volatile variables and interrupts... It's much more applicable today too since these systems sell in orders of magnitude larger volume than modern intel PCs... They literally exist in everything from your laptop to your wrist watch to your car or your microwave.
You can run one of these things at 1kHz or 100MHz.
Any embedded architecture course in a good ECE program will give you a healthy respect for memory utilization, interleaving processes on a processor, and deterministic processes to boot.
Cornell has a great one that I TA'd while I was a grad student
http://courses.cit.cornell.edu/ee476/
That page has tons of projects from previous students. All focused in the Atmel AVR 8-bit RISC architecture typically running at 16MHz max. One clock cycle per instruction for the most part. Projects range from video games to robots or RFID readers.
I'd say that that's a much better use of department resources. I came from embedded systems programming to PC based programming and I feel like I have an extra healthy respect for resource utilization, etc. When you can just insert assembly in line and take over absolutely everything the processor is doing, while handling peripheral interrupts, you can do some really awesome stuff.
I had the same kind of learning back in my days using PIC microcontrollers where I needed to do VERY LOW LEVEL programming and I saw "instructions happening for real", flipping a led's state or the like.
I value that experience a lot!
Laugh if you will, but I find that the most effective demonstration of low-level "how computers really work" programming (short of flipping manual switches PDP style) is Brainfuck.
I love tinkering with PIC microcontrollers. Just like the good old days with my Science of Cambridge Mk14
For Mr Abrams the old machines have two cardinal virtues; their sluggishness and the direct connection they have with the user.
Another hacker learning skill you must obtain, that he forgot to mention, is how to completely master a system. This is different from merely learning enough.
At one point, I could tell you every minute detail of OS-9 (the motorola 6809 CPU OS, not the apple product two decades later) and I also nearly mastered 68hc11 assembly, Z-80 assembler, and the PDP-8.
There is no point trying to teach kids how to master something using, perhaps, the linux kernel, because its too freaking big, at least for a one or two semester course.
The mastery skill requires figuring out what you don't know and then figuring out how to find it. Very much like spatial mapping, I see a blank spot in my map of how it all works, so how will I get from where I know to where I don't know? Also you learn how to learn the philosophy of a complete working system, sort of a C/S ecology mindset. Finally there is a bit of reflective thinking that interacts across now usually broadly separated problem areas, look how the memory allocation system has reflected onto the design of the I/O drivers and vice versa.
Learning how to master a topic is a valuable skill, and at least for CS students, frankly best learned on the smaller older stuff. Too many newbies think asking small specific questions of google is all they need, and think they can scale up to a big project merely by asking more little questions, without thinking thru the big picture.
A fourth thing the dude forgot is that older computers were MORE powerful. Power is what comes out of the barrel of a gun, its not P=I*V or MIPS. A single old MVS mainframe could run a small govt department or a multinational corp.
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
I don't know about retro programming, but my first experience of hard programming is being introduced to Assembly language using a Hektor computer, originally designed for the UK's Open University. http://www.old-computers.com/museum/computer.asp?c=602&st=1
At least using it and it's plug in sensors module helped you understand what all the moving data to / from the stack and all the rest of the commands was actually doing to the hardware.
Maybe modern versions of this kind of simple kit would help people understand programming more when they start out in it?
Take Nobody's Word For It.
When(and where) I did my undergrad in CS, it was mandatory that we took both the basic and advanced Computer Architecture courses and the intro to Logic and Design course. These were the same courses that electrical and computer engineers took. We designed Clock radio circuits, studied K-maps, Boolean logic, gray codes, wrote our own basic RISC chips(instruction set and layout) using Xilinx(with the option to put them onto FPGA's and run them), studied floating point calculations, studied parallel pipelining, did manual loop unrolling, worked with MIPS emulators, studied multiple assembly languages, and not once did I touch out of date hardware.
I just don't see how using such old computers is anything but a gimmick. Unless you're trying to study some rather obscure architecture for which no emulator exists, I just don't see how it adds much to the educational experience over having a properly designed curriculum
I don't care what you say, all I need is my Wumpabet soup.
Really, there's no longer need for such an archaic environment when there are OS's written in ASM like MenuetOS and "BareMetal OS" ( http://www.returninfinity.com/baremetal.html ) .
Another factor is the conceptual model is simpler. It is possible to know the entire layout of one of these classic machines. The CPU, instruction set, registers, I/O chips and memory layout. You can exactly where a program will load in memory. A 6502 has an Accumulator, X register, Y register, 6 flags, a stack pointer and a program counter. It is possible to know exactly how the computer works on both a hardware and software level.
Try that with a PC, what happens when you flip the power switch. Well which BIOS, what POST tests, what hardware? What happens up to the point where the boot sector is loaded? What happens after control has been turned over to the boot loader? What about the hardware? There are so many combinations, so many drivers, etc. How do you even go about teaching these things when you can't be sure of what hardware you will have in the classroom?
The classic machines flatten this out. Even in emulation they are very helpful tools for teaching.
vi +
...I did my computing A-Level on these machines. The school had about 20 of them, networked together with Econet and using a 20 megabyte hard disk for storage. Students had an allocation of 100 K (yes, kilobytes), and I don't think I ever filled mine up...
Now get off my lawn!
Just another wannabe fantasy novelist...
It's true, today's computers ARE too fast for students.
Kids today don't know the joy of being able to slack off for 5 to 10 minutes in class while their screen says "Compiling..."
Wow I used an old 8088 and Basic to do my first programming, dreaming of a day at a PDP. WOW I am getting old.
Kosh: "Understanding is a 3 edged sword, your side, their side, the Truth."
Compucolor II Hit the key labeled Auto . CTRL-A did the same thing I think
Apple ][ PR#6
C=64 Load "*",8,1
No, sorry, you are quite wrong. It is nothing to do with avoiding complexity. It is to do with CAD ensuring that every component is properly designed for the duty, advanced FEA ensuring proper thermal management of the engine, and advanced manufacturing and quality systems delivering accurate parts time after time. The complexity is there all right, delivered by the wonders of advanced computing.
You cannot learn engine design from a TSI engine. You can learn an awful lot from a research engine, single cylinder four-and-a-half inch bore Diesel with almost everything adjustable. You can learn very little (in fact) from a chainsaw engine, despite its only having a few moving parts, because again it is an optimised design. This is why learning on an old BBC Micro is more useful than learning embedded programming (I've done both.) The 6502 and all its works is not a modern, optimised 8 bit processor with a lean instruction set. It is clever, but a bit of a kludge. Assembler on a 6502 forces you to think. Crappy memory architecture causes you to think harder.
From scarped cliff or quarried stone she cries "A thousand types are gone, I care for nothing, no not one."
I remember working with the original IBM-PC in the 80's. We used to keep a radio near the system unit & we could actually hear the system working. bzzz bzzz bzzz.... eeee eeee eeee aaaaaaaaaa bzzz bzzz eeeeeeeee eeeeeeeee aaaaaaaaa
This reminds me of a quote I read from Philippe Khan back in the really old days. He used the original IBM PC (4.77 MHz) to test code (Turbo Pascal) when much faster (8 MHz) machines were available. He said he "liked to watch the computer work".
I don't read your sig. Why are you reading mine?
It is a neat idea, but you could get the same kind of benefits from writing assembly for Pentiums or modern micro-controllers. Easier to find equipment and more relevant and interesting.
"I'm not a quack, I'm a mad scientist! There's a difference." - Dr. Cockroach
I believe it's a general pattern in training, to start with a smaller, simpler system that the trainee can more readily comprehend as a whole. It's easier to be a passenger on a big plane, but easier to learn to fly a small plane, as it's a lot easier to keep track of all the details of a small plane.
I noticed a bunch of low (even 4 digit)/. user ids in this thread -- like the guy who got the CP/M box off craigslist. I think it would be quite interesting to do a correlation between low /. user IDs and opinion on the subject. The hypothesis is that older people will have a softer spot for older machines.
Myself? I think learning to program in older machines is a great idea. But then again I learned to program in Sinclair ZX-81's BASIC language -- back when 16kb was a memory expansion...
Quem a paca cara compra, paca cara pagará.
For my A-level we made our computers from lcd screens and pic chips, and programmed them in assembler... This was just before the millennium, these computers are far more advanced.
This is a good idea, I wish more programming professors actually taught using this kind of method. Currently in Univeristy all the programming professors are saying C#, F#, Java etc... But how does that actually teach programming students. Ask any of them to write a good assembler program and you'll get total crap.
However ask the embedded programmer to write an assembler program and you'll (should) have it in no time!
I think it's an awesome approach. When I was in school in 1992 I took a class called "Computer structure." It was basically an assembly programming course, but we started on a PDP8, programming in machine language on the 12-bit front panel of the machine. One of our projects was to write a program that completely erased all of the memory locations on the machine, including the ones that contained the program. I think I got down to one populated location; it was surprisingly challenging. I did an independent project making a small programmable logic gate out of transistors, and with a bit more $ I could have made a 1-bit memory device. Definitely my favorite class in college. Working at that basic level gives you such a great perspective on what's happening under the hood of today's machines.
Table-ized A.I.
I was learning Pascal on an 8080 in 1997 in High School. It was retro, but not in the way you think is cool - it was in the we have NO money way
Took about 40 bytes of RAM, and 2-3 minutes to input via the front panel switches, and was a blast to play. Cycled lights through the 8-bits of output on the IMSAI front panel. Your job? Flicking an input switch ON just as a lit light passed above, the object being to turn it off. Miss and it turns a light ON again. Kill all the lights and you win. My 4-year old daughter has had access to everything including the latest console games on our big screen TV and she still begged me to fire up that game. Still have the IMSAI, still boots to CP/M 2.2 via 8, 5.25, or 3.5 inch floppy, and can still run that 40 byte game.
Dang whippersnappers are spoiled today, I tell ya....
(sigh) ... back to programming my 4 core Mac with 6 Gigs of RAM and a terabyte disk.
I went to college in the early 1980's and we could only dream about new fangled 1980's technology like the 8088 and 6809 while we cut our teeth on 1970's era 6800 and 8080 processors.
Teaching kids to program has been discussed countless times on Slashdot. The consensus is always the same: Get an old microcomputer!
According to Robert Nielsen, computer programming was taught using the famous Kenbak-1 computer at the Nielsen Electronics Institute well into the 1990's (1997, it think, not bad for a computer from 1972!)
With the computers 5 addressing modes and comprehensive instruction set, it still makes for an excellent teaching tool for advanced students.
An online emulator is available at http://www.neocomputer.org/kenbak
All the original documentation is available from John Blankenbaker's website at http://www.kenbak-1.net/
Required reading for internet skeptics
Just one thing.
How the fuck do you expect to learn something about the CPU if it's hidden beneath 20 abstraction layers?
DOS sure had its advantages.
Because that would be slow. And awful.
I'm reminded of something that happened to me while I was a student assistant at a remote job entry location of a university's computer facilities.
The incoming batch of engineering freshmen were being taught, as was the tradition, to program badly in FORTRAN. An instructor assigned them the problem of counting the ways to make change for a dollar, assuming you had plenty of all the denominations of coins. How did he have them do it? Nested DO loops, one per denomination, with each denomination running from 0 to 100 / the denomination's value, of course!
The result? Bunches of students exceeding the thirty-second time limit for WATFIV jobs so their programs were cancelled before they finished. They'd run them again, of course--maybe the first time was a fluke. (The university ran on a 370/138 at the time....) Then they'd come in and ask how to run in a different job class so they weren't limited to thirty seconds.
I wrote a program in Algol W with a recursive function that would solve the general change making problem. It solved the specific one in 0.01 seconds. A friend and coworker (alas, no longer with us) wrote a non-recursive program in FORTRAN that took less than 0.01 seconds, so that the output showed it as running in 0.00 seconds. Our boss took the listings and output and had a discussion with the instructor. He, and I hope his students, learned something.
Nowadays, they wouldn't. Today's computers would run the horribly inefficient version so quickly that nobody would care, and they'd move on to the next thing.
So I applaud this approach, and hope everyone gets that experience.
Edlin is a rather poor imitation of ed, so I have to disagree. Edlin is not necessary. ed skill, on the other hand, will still benefit you, with descendants like sed, vim, and perl.
I've always wanted a PDP-11. They looked like a real computer, a rackmount box with a front panel, switches and flashing lights. Their architecture remains one of the classics.
I did an operating systems course back in the '80s on LSI-11s.
...laura
http://users.monash.edu.au/~ralphk/burroughs.html
This mainframe could be single-clocked through most of its execution and it brought out all of the registers to the front panel - each LED row was potentially 4 different selectable registers; that is how you isolated the problem and repaired the "bit". Pipelined, superscalar, and it had a relatively modern OS (many OS "firsts")l, the famous B5000 stack Architecture of the 1950s,60s. Its daddy had incandescent bulbs for indicators and core memory. You learned bare metal, or you didn't.
I work at a university, but as staff (not faculty). A few years ago, I had an interesting conversation with a friend of mine (Computer Science professor). As part of his Compiler class, the students construct a simple language then develop a compiler for it. I suggested that his students should be asked to create their language with these limitations: each instruction could only be 80 characters long (max) and could only be written using:
Look familiar? It's the character set from a punch card. LISP and FORTRAN were built using this.
I thought it would be interesting for students to construct a language and compiler with the same limitations from early computing. It keeps the focus on the language, keeping it simple. Would it help the students to build a better understanding of how early programming languages developed, or how languages evolve when (in a follow-up assignment) the students are allowed to incorporate more characters, including upper and lower case letters? And knowing more about computing, could students construct a (functional) punch-card-based language that was better than LISP or FORTRAN?
Well, I thought it would have been interesting.
My friend's response was "what's the point in that?" But after watching this video from the BBC, I think it would have done some good. I'd be interested to hear if anyone else did this in one of their Compiler courses, and what it was like.
Maybe an ad saying you're looking to buy on Craigslist might work. Offer premium prices if you have to, the idea is to offer enough money so people will dig into their garages to look for ancient hardware you need and they don't. Also, talk to some local hazmat-computer recyclers.
Tech Public Policy stuff
speaking as someone who actually took programming classes on those things back in the 1960s, I'm not at all sure one can learn anything on those devices other than a better grasp of computing history. How is playing with paper tape going to teach anyone about how I/O works on modern computers?
If one wants equipment with super-slow execution speeds to let people see what's going on (try an oscilloscope as I did to debug a timing loop once), try finding an old Commodore 64 or Apple II on eBay.
Tech Public Policy stuff
"That's a lie, Mr. Abrams, that's a straight lie" said Bill Gates, and further added, "Modern computers can barely run Modern MS Windows O/S or Apps".
There's a class at Univ.Delaware on this very subject, Computer History, which also covers programming these vintage computers. The instructors website is www.vintagecomputer.net
Atari basic on my Atari 800...
10 print "Commodore 64 sucks"
20 goto 10
If you could reason with religious people, there would be no religious people
Any of these professors ever hear of virtual machines or emulators?
I keep wishing I could get my old Microchroma 68 over here from the States so my kids could play with monitor debug ROM and hand-assembled code, but even that is not quite as hands-on as the 8080 (Altair? Imsai?) box we put together in high school industrial electronics.
Of course, making a toggle-switch interface for the Microchroma 68 wouldn't be too hard.
Dang. Now I want to run down to Nihonbashi, visit Marutsu Parts and some of the other places down there, and bring back some modern stuff, PIC or Arduino/ATMEL or low frequency ARM, or, hey, sometimes they even have S08 or ColdFire, although that is a bit more expensive.
Of course, what I really want to do is get my kids to help me wire-wrap an LS/VLS implementation of the 6809. Make it fully static, so you can hand-clock it instead of software single-step, bring the registers out in LEDs and 7-segment hex displays. Toggle switches, of course. That would allow me to teach the whole hardware stack on an architecture that can handle high-level stuff, as well.
I suppose I'd want to do something about the 16 bit addresses so I could handle Kanji, or even Unicode. But building a 6809 superset with instructions that load three or four byte addresses into the index registers wouldn't be too much more work. (Paged memory management is cheap, but indexing into an array larger than 64KB becomes difficult without large addresses. Then again, teaching the kids how to break what should be a simple indexed load into bank calculation plus indexed load is also useful programming experience.)
The big problem, of course is the paper tape or punched cards. I mean, the old tape or floppy disk drives are fun, and can still be hand-built if you really want to, but if you really want to get a feel of the connection between data and digital encoding, there is nothing more in-your-face than seeing the actual bits there as holes in paper.
Don't ask me what I'm going to do to earn a living while I'm having all this fun with the kids.
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
Learn to crawl before learning to run: .A 2000
LDX #$00
LDY #$01
STX $D020
STY $D021
INX
INY
JMP $2000
SYS8192
Computer architecture has changed quite a bit since the 1980s. Remember the RISC versus CISC wars? Remember floating point coprocessors? Remember the segment + offset memory model of early Intel chips? Remember instruction sets that didn't support division? How about Kansas City modulation to tape? This is what they would be learning if the course had any depth at all. (Which I doubt!) Thankfully computer architecture transcended all this stuff, and it's largely irrelevant today. Teach them how a modern computer works instead. Kernels, device drivers, cache strategies and such. Things they could actually use. This whole program sounds like a hipster ploy. Yawn.
Not even close.
Segmented pointers? Trying to work on addresses as if they were unsigned integers so the addressing math is clear?
How do you do a rotate (instead of a shift) in C, especially standard C?
How do you know for sure that you're toggling the most significant non-sign bit of a signed integer?
Etc.
You can get close to the hardware in C, yes, but only if you deliberately throw away portability.
Untangling the portability issues (among many others) generally takes you down to the assembly language level, even in C. Therefore, C is not sufficiently low-level.
Computer memory is just fancy paper, CPUs just fancy pens with fancy erasers; the 'net is just a fancy backyard fence.
I've long maintained because visual basic tries to do just about everything except coming up with the design that is a really really bad tool for teaching, I've lost count of the number of times I've seen people programming by multiple intellisense guess work....
I doubt the tubes will work at that temperature.
Having taught myself to program on a Sinclair ZX81 (1K RAM, Z80 chip) it's primary virtue was that there was nothing to do with it but program it. On startup you had a command prompt: there were no games, no internet,no facebook, nothing but an editor for BASIC programs which were then interpreted. So the first question was always, what am I going to make you do today? Programs written in BASIC were a little slow, so I then learnt Z80 machine code which speeded things up and forced me to learn about registers and memory and so on. 1K of memory wasn't a lot to use, so I then got a book which gave the line by line Z80 for the ROM so I could exploit the routines in ROM in my programs, so I learnt about a (very very simple) operating system. While I'd never give up my current linux laptop, I cant help but feel I wouldn't understand 1/10th of the little I do understand if it wasn't for that ZX81. Thanks Mr Sinclair!
The old stuff worked and did the job. So does the new stuff, but the MS's and Appl's try so hard to isolate the user from the technology that we easily lose sight of what the technology is all about. Sure I can click here and there, cut and paste to my heart's content, but when I was working at the DOS level cmd line, I had to know exactly what the chips were all about so's I could tell them what I wanted them to do. Not at all like that today. It's a bit like the difference between driving a '56 xk140mc on a road rally and piloting an Esplanade along a major interstate.
That may be the character set for a particular card punch (keyboard/punch combo), but it's not the character set for punch cards. The cards' character set covers all 256 8-bit values - 0x00 through 0xFF.
We also had the AM radio playing frequency scales as FOR-NEXT loops executed. One guy figured out how to generate music notes and had the computer playing "Daisy" - shades of HAL 9000.
We also figured out how to program interterminal communication between 32 teletypes at once - today it would be called instant messaging or online chat.
Our instructor was amazed when we did it, because the system had no apparent support for this feature; we just "figured it out". Nobody thought of patenting software back then - - too bad....
I'm getting an HP2000 simulator up and running running on my Mac Pro, using open source software called SIMH. The guy who decommissioned our HP2000 in 1980 gave me the last a backup tape as an image file, and I have that image running in Windows. He was on the SIMH listserv and passed the files over to me.
I didn't find the cheating poker program I spent three months writing in 1976 (damn), but I did see my younger brother's friends names as authors in other program comments.
I've used SIMH to play blackjack on my Teletype ASR35, just like I did in high school, and that is retro gaming at its finest.
I recently discovered that SIMH can also run IBM System/370 legacy operating systems; apparently one fellow has MVS, CMS and TSO running under Linux on a Dell server. This is my next goal - to simulate the same mainframe environment that I controlled as a computer operator in 1980.
Kids today, they don't know what they're missing...
Ask Me About... The 80's!
I'm have something of a philia for older computers. This would be my dream ;-;
10 a=0
20 poke 53280,a:a=a+1
30 if a>15 then a=0
40 goto 20
http://tech.slashdot.org/comments.pl?sid=1764066&cid=33378014
(Where proof that clone53421 doesn't know how to program properly to save his life, he is a "batch boy" at best/most, not a coder in languages like C/C++, Delphi, VB, or any other truly widely used language in industry/professionally for decades now)
&
http://slashdot.org/comments.pl?sid=1755714&cid=33378404 and http://slashdot.org/comments.pl?sid=1755714&cid=33353946
(On HOSTS files vs. Adblock, where clone53421 had to go so far off topic it was amazing and he would do anything to avoid disproving the points posted in favor of HOSTS files vs. adblock)
Clone53421 was "pwned" soundly on technical matters, and he also laughingly later had resorted to trying to "hide" his errors first by posting off topic to each in reply as anonymous coward also, doubtless in some PUNY attempt to defend himself and FAILING hugely in both links above!
(LMAO: Clone53421 also later yesterday did tons of posts so others would not see his huge mistakes in those urls above via his post history in some attempt on his part to "bury his blunders" in BOTH urls above, & under the tide of the rest of his bullshit and mistakes yesterday (utterly hilarious)).
Poor performance clone (no small wonder you GOT OWNED, lol, and 2 times in a row yesterday by the same ac no less).
http://tech.slashdot.org/comments.pl?sid=1764066&cid=33378014
(Where proof that clone53421 doesn't know how to program properly to save his life, he is a "batch boy" at best/most, not a coder in languages like C/C++, Delphi, VB, or any other truly widely used language in industry/professionally for decades now)
&
http://slashdot.org/comments.pl?sid=1755714&cid=33378404 and http://slashdot.org/comments.pl?sid=1755714&cid=33353946
(On HOSTS files vs. Adblock, where clone53421 had to go so far off topic it was amazing and he would do anything to avoid disproving the points posted in favor of HOSTS files vs. adblock)
Clone53421 was "pwned" soundly on technical matters, and he also laughingly later had resorted to trying to "hide" his errors first by posting off topic to each in reply as anonymous coward also, doubtless in some PUNY attempt to defend himself and FAILING hugely in both links above!
(LMAO: Clone53421 also later yesterday did tons of posts so others would not see his huge mistakes in those urls above via his post history in some attempt on his part to "bury his blunders" in BOTH urls above, & under the tide of the rest of his bullshit and mistakes yesterday (utterly hilarious)).
Poor performance clone (no small wonder you GOT OWNED, lol, and 2 times in a row yesterday by the same ac no less).
Agreed - beeb is still a great platform for learning and with inline assembler it opens up so many low level possibilities.
Failing that, xcode under an archaic feeling os (and yes, I do mean the latest OSX).
When I saw "Bletchely Park" I was imagining they would get to program replicas of the original Colossus.
To have a right to do a thing is not at all the same as to be right in doing it
http://tech.slashdot.org/comments.pl?sid=1764066&cid=33378014
(Where proof exists that clone53421 doesn't know how to program properly to save his life, and, that he is a "batch boy" at best/most, and not a coder in languages like C/C++, Delphi, VB, or any other truly widely used language in industry/professionally for decades now since he cited what a batchfile tech might in %ProgramFiles% and not the API calls necessary to use environment variables in say, C or C++)
In the url above, clone53421 additionally tried the old troll's "partial quote only" trick where the ac opponent he had had noted C and C++ also, where clone53421 omitted his opponent's mention of C/C++, and his ac opponent also showed that Delphi was proven faster than MSVC++ and VB by far in math and strings also in a publication that's about VB no less, and in math and strings work, which every program does by the way, where clone53421 tried to put that language down.
(Hilarious, and clone53421 also tried to fool everyone, by replying as an ac no less on his part rather than under his registered luser account here, like that fooled anybody as well (not))
&
http://slashdot.org/comments.pl?sid=1755714&cid=33378404 and http://slashdot.org/comments.pl?sid=1755714&cid=33353946
(On HOSTS files vs. Adblock, where clone53421 had to go so far off topic it was amazing, and he would do anything to avoid disproving the points posted in favor of HOSTS files vs. adblock (where once again, he cannot, and it is also where clone53421 also tried to fool everyone, by replying as an ac yet again as he did in the url above also, no less, once more on his part rather than under his registered luser account here... once more, like that fooled anybody (not)))
Clone53421 was "pwned" soundly on technical matters, and he also laughingly later had resorted to trying to "hide" his errors first by posting off topic to each in reply as anonymous coward also, doubtless in some PUNY attempt to defend himself and FAILING hugely in both links above!
(LMAO: Clone53421 also later yesterday did tons of posts so others would not see his huge mistakes in those urls above via his post history in some attempt on his part to "bury his blunders" in BOTH urls above, & under the tide of the rest of his bullshit and mistakes yesterday (utterly hilarious)).
Poor performance clone (no small wonder you GOT OWNED, lol, and 2 times in a row yesterday by the same ac no less). You did the same here, I mean, who the hell are you to state what most folks do on their systems?
yes - normally they teach them Visual Basic for A Level. Incredible.
IMHO, this educational experience is totally worth it for perspective.
When all the constraints are tight, it forces one to consider all the elements of the computer. That's easy to avoid at higher levels of both programming language access, and overall computer capability.
I don't think it's a necessary thing for everybody, but I also don't think we can avoid this stuff entirely. The wizards, who understand real computing at the lower levels are needed to boot-strap new technology innovations.
Without them, we won't have those innovations, or if we do, they will be built on other things and limited in their potential.
Besides all of that, it's the most fun! Older machines rock! It's possible for one person to completely understand them. They are accessible in that way.
Most importantly, it's possible for one to write code and know every detail about it, not depending on other code. That experience is worth a lot, because it shows people the scope of problem areas. They can understand what they don't know, and then work to resolve it. Very valuable skill, largely denied to people working only at higher levels of things.
Blogging because I can...
Wow, that'd be like old-home week for me! I loved my Altairs :-)
Back them programs were still simple enough and short enough that you could stop it at any time and single step through it, examine the registers, read memory locations, change data in those locations, etc-- all from the front panel and see the results on the LED's. Even the "OS" (as it were) itself. I used to run CP/M on mine, mostly. But there were times I'd kick out the OS and just finger-bone something in from the front panel just for the fun of it. And the OP is right, it really does get you closer to the bone so as to be able to get a good, solid understanding of where the hardware ends and the software begins. And if you start *really* digging into things, you learn about the microcode inside the processor too, and how the microcode instructions become machine code instructions. So you learn about the ALU, the various internal switching busses, the I/O bus (for Intel-style systems and such) and working with memory locations, and "magic" memory locations (memory-mapped I/O), and how stuff gets into and out of the internal registers, and how the overflow and carry bits and so-on are really implemented inside the CPU and how they literally control the flow of "bits" from one spot to another, etc--- all of which is really useful information later when software starts getting layered, and bundled, and managed in different ways. Its easier to understand how to peel back the layers when you've had experience at that level to gain the perspective. I have found that its hard to explain it all to people who have never had to interact with the system at that level.
He's stating that in order to perform a rotate you need to use inline asm (he only said assembly language though, but this is doable in C/C++, &/or Delphi for example via the inline asm directive) to do so, and he's correct that it would break C's "intelligent assembler/cross platform code independence" in doing so, because you'd have to define processor architectures and detect for them first, then do branching into the type of assembly you'd be using.
Get it, noob?
We all know you're a noob though, based on your shabby performance here all week noted next:
Clone got pwned? 3x in the same day here??
http://tech.slashdot.org/comments.pl?sid=1764066&cid=33378014
(Where proof exists that clone53421 doesn't know how to program properly to save his life, and, that he is a "batch boy" at best/most, and not a coder in languages like C/C++, Delphi, VB, or any other truly widely used language in industry/professionally for decades now since he cited what a batchfile tech might in %ProgramFiles% and not the API calls necessary to use environment variables in say, C or C++)
In the url above, clone53421 additionally tried the old troll's "partial quote only" trick where the ac opponent he had had noted C and C++ also, where clone53421 omitted his opponent's mention of C/C++, and his ac opponent also showed that Delphi was proven faster than MSVC++ and VB by far in math and strings also in a publication that's about VB no less, and in math and strings work, which every program does by the way, where clone53421 tried to put that language down.
(Hilarious, and clone53421 also tried to fool everyone, by replying as an ac no less on his part rather than under his registered luser account here, like that fooled anybody as well (not))
&
http://slashdot.org/comments.pl?sid=1755714&cid=33378404 and http://slashdot.org/comments.pl?sid=1755714&cid=33353946
(On HOSTS files vs. Adblock, where clone53421 had to go so far off topic it was amazing, and he would do anything to avoid the points posted in favor of HOSTS files vs. adblock (where once again, he cannot, and it is also where clone53421 also tried tdo fool everyone, by replying as an ac yet again as he did in the url above also, no less, once more on his part rather than under his registered luser account here... once more, like that fooled anybody (not)))
Clone53421 was "pwned" soundly on technical matters, and he also laughingly later had resorted to trying to "hide" his errors first by posting off topic to each in reply as anonymous coward also, doubtless in some PUNY attempt to defend himself and FAILING hugely in both links above!
(LMAO: Clone53421 also later yesterday did tons of posts so others would not see his huge mistakes in those urls above via his post history in some attempt on his part to "bury his blunders" in BOTH urls above, & under the tide of the rest of his bullshit and mistakes yesterday (utterly hilarious)).
Poor performance clone (no small wonder you GOT OWNED, lol, and 2 times in a row yesterday by the same ac no less).
FOR MORE AMUSEMENT ON THIS NOTE? SEE CLONE'S "FOAMING AT THE MOUTH REACTION" TO THE ABOVE FROM THIS URL BELOW NEXT, IT'S HILARIOUS, because he gives away the fact he KNOWS he is a noob and he knows we all know it now too:
http://slashdot.org/comments.pl?sid=1764066&threshold=-1&commentsort=0&mode=thread&pid=33354120
"You’re a moron. " - by Anonymous Coward on Thursday August 26, @03:03PM (#33384252)
LOL, name calling the "best you got", there, 'batchfile boy'? Apparently so: Well, hate to clue you into this, but "new NEWS":
Your ad hominem attacks and foaming at the mouth profane name tossing reactions only shows your "tell" and that you are upset at yourself mainly, not I, because you exposed yourself as a complete noob in coding because you didn't post that you have to use API calls to get to environment variables in language
"You can get close to the hardware in C, yes, but only if you deliberately throw away portability." - by reiisi (1211052) writes: on Wednesday August 25, @10:04PM (#33376910) Homepage
1. First, see relis the op you replied to's quote above, and most importantly, as to what the original poster meant in his usage of assembly language while using C or C++ and violating "cross platform-ness", and the intended use of C/C++ as an "intelligent assembly language"? Read and understand what he meant and what cross platform AND PORTABILITY means you fool clone53421:
E.G.-> I've seen methods/functions in C and C++ fail during doing cross platform coding not only between operating systems (not TRUE cross platform coding OR "PORTABILITY" anymore than diff. memory access is as you seem to feel is cross platform coding in your noting 32 to 64 bit, though going OS to OS is more of a port than changing memory addressing) , but also across CPU architectures, as in sat powerpc to x86.
(That is not about 32-64 bit and memory addressability idiot. It is about going across cpu architectures).
That is the MAIN area where your method may fail clone, especially in diff. compilers for C/C++: Right in the .h/header file &/or interface for said methods/functions across cpu architecture or even operating systems.
Especially across OS platforms but more importantly across cpu architectures, and?
This most importantly is where you go wrong here clone:
The original poster mentioned violating C's cross platform intended purpose as an "intelligent assembly language" by using assembly code, and that's NOT about 32-> 64 bit.
It is about crossing between processor architectures, not memory access amount ability.
(Anyone that's attempted doing ports across cpu architectures OR OS types in C code as I have has seen interfaces and header files be imperfect in these capacities, you obviously have not. So much for C/C++ being perfect in cross platform code, eh?).
----
2. The original poster and my more specified methods of using assembly language inline (such as C/C++ or Delphi allow for) would work for this, but it would indeed, violate the intended "intelligent assembler and perfect cross platform binary executable generator" C is intended to be and has thusfar failed at, as he (relis) noted.
Java has done a better job at this but it is runtime driven & slower than C/C++ are.
----
3. Being written in assembly language also makes his, or my inlined asm, method very likely faster also than straight C methods (as well as guaranteed functioning across CPU family architectures if done in asm for said cpu family).
----
4. Lastly, "size matters" here (and if you don't know it clone, your way fails and you even ADMITTED the case it does fail in, though you try to cover your butt in your statement as you always do with b.s., but the above 3 points blow your doors out easily enough).
There you are clown53421, better luck next time.
Man - You show your "noobishness" the more you try to defend yourself via ac replies than from your registered username here (which you admitted to) and you did even worse here -> http://slashdot.org/comments.pl?sid=1755714&cid=33394042 on your networking know how, so give up already, clown53421.
----
"your idea of “programming” is building front-ends in Delphi or VB for system functions like “move” or “copy”. Hardly a step above batch programming, really." - by clone53421 (1310749) writes: on Friday August 27, @08:42AM (#33391080) Journal
LOL, you mean batchfile coding you used, where you showed that much here http://tech.slashdot.org/comments.pl?sid=1764066&cid=33378014, where all you did was say to use %ProgramFiles% ?
CLUE/New NEWS:
You
LOL. I love the way he pwned you, noob. He showed a cross-platform, hardware-independent way to do bit rotations in C AFTER you said: "in order to perform a rotate you need to use inline asm" and "it would break C's "intelligent assembler/cross platform code independence" in doing so, because you'd have to define processor architectures and detect for them first, then do branching into the type of assembly you'd be using."
Here's a good scenario for you: Hiring interviewer asks, "Show a way to do bit right rotation in C". his answer: "for a 32-bit unsigned int, that would be a = (a > 1)" your answer "you can't, you need to use inline asm" Well guess who just got the job, noob? But I guess that explains why you spent so long living with your mommy and writing shitty delphi apps that you have to write your own astroturf reviews for because any legitimate reviewer would say that they suck.
Just goes to show that the Delphi-noob apk fails when it comes to any REAL programming.
whoops, I forgot slashcode would eat the C code, it should read
a = (a << 31) | (a >> 1)
You'd lose because of what was said before you just posted. You only indicated doing a port between 32 bit values and 64 bit values, which is only moving from a 32 bit program to a 64 bit one. That's not indicative of moving between CPU architectures and thus not a true indication of "portability". That is indeed where you would very possibly have to use inline assembly code (which is faster than C or C++ as well which was indicated) because not all .h header file interface are 100% solid between processor architectures in C or C++. You failed on that alone and you know it, because you never touched on what portability really is, and that is moving between processor family types/architectures (not all C or C++ header files or interfaces are perfect there and that is what relis meant).
http://slashdot.org/comments.pl?sid=1766164&cid=33426594 rinse, lather, and repeat that url, and your utter FAIL here say it all as well. reiisi was stating how portability issues demand you use assembly language and the ac also indicated that not all header interfaces in all C compilers are perfect for this. I am inclined to agree as I do that for a living at times, in porting applications between processor architectures. That type of work is about hardware interfaces and cpu processor family architecture types involved, not just moving from 32 bit to 64 bit values clone53421. You fail. In addition to that you may wish to refer to the original poster reiisi and his references to segmented pointers and hardware which was what the ac was trying to point out to you. A requote of reiisi's post is necessary for this:
Segmented pointers? Trying to work on addresses as if they were unsigned integers so the addressing math is clear? How do you do a rotate (instead of a shift) in C, especially standard C? How do you know for sure that you're toggling the most significant non-sign bit of a signed integer? Etc. You can get close to the hardware in C, yes, but only if you deliberately throw away portability. Untangling the portability issues (among many others) generally takes you down to the assembly language level, even in C. Therefore, C is not sufficiently low-level. - by reiisi (1211052) on Wednesday August 25, @10:04PM (#33376910) Homepage
Understand now clone53421? You can read reiisi's original meaning and its references to hardware which is indicative of what the ac apk posted in regards to having to do what reiisi stated in the ac apk just being more specific in how to do it using inline asm directives.
If you even think that you "port" an application from doing bit rotation of a 32 bit value to bit rotation of a 64 bit value, you're a moron. Bit rotation is already a fixed-size operation(that was actually clone53421's original point, which you completely missed of course) and any application which relies on bit-rotation of a 32-bit value will break if you try to port it to a 64-bit element unless you change all sorts of other stuff too.
what it IS portable in, is architecture (just the opposite of what you claimed, LOL). Any C compiler that can compile code that bit-shifts a 32-bit value (using an arbitrary size for an example) will compile the code he posted to do bit rotations on that same size element on any architecture. You're a moron.
But hey, we already knew that. You're nothing more than a Delphi-writing script kiddie. typical script kiddie thinks "oh you just port it from 32 bit to 64 bit what's the big deal", well guess what, the architecture doesn't mean jack shit. if you're doing bit rotations of a 32 bit value it's because you NEED to do bit rotations of a 32 BIT VALUE and using a 64-bit architecture doesn't change that. Of course you wouldn't know that you needed bit rotations in the first place because you couldn't program your way out of a wet paper bag.
Once more - The original poster reiisi's point was that you can lose that type of portability across hardware architectures/cpu platforms such as powerpc to x86 and vice a versa when trying to do that to signed versus unsigned data (remember: there is a SIGN BIT too).
The anonymous coward apk only expounded on it further noting that .h/headers aren't always perfect between hardware platforms in C or C++ code and to get around those kinds of hassles, you can use inline assembly.
The anonymous coward apk also noted that using inline assembly code is the safer and faster way (since assembly code generally also outperforms C and especially C++ code), and is sure to work, whereas dependence on a single compiler's ability to have its interfaces and methods/functions be absolutely 100% perfect in all cases is risky.
(Either method may work, but I know that when it comes to doing diff. hardware platforms (cpu architectures), it is safest and fastest in most cases to use inlined assembly for the given cpu hardware platform, rather than depending on C or C++ default methods/functions being perfect across diff. hardware architectures/cpu platforms, because they are not always so, and others' header files are often faulty or don't have ports across diff. hardware/cpu platforms either).
However, in the end, You should learn something about name calling though: It only shows you are projecting your own weaknesses and feel you are a moron since you called others here that. You also seem to be unable to show you have done anything noteworthy in the field of computing as well. You show everyone where you have insecurities in the very names you toss and accusations you make. If you live with your parents, so be it, because you accused others of that here. You've only made that clear to myself in your childish off topic attempts at ad hominem attacks here. Grow up.
"And all that clone53421's original point was that bit rotations (one of reiisi's examples which he intended to prove that C isn't close enough to the hardware) CAN be done in C, easily and portably, (I.e. "SAFEST") so that was a bad example on reiisi's part." - by Anonymous Coward on Wednesday September 01, @08:33AM (#33434206)
When you go from x86 in 16 bit (segmented memory model) to PowerPC in 32 bit (flat memory model) during a port across both memory access limits and cpu architectures, as reiisi stated:
Are you guaranteed to know on signed data being worked on whether you are rotating the bit that is most significant and not just the sign bit when using C?
You are not, simply because the C method (from an interfacing .h header file most likely) would have to detect for the target platform, first, and just as the anonymous coward apk noted, and most likely have to use inline assembly to target for powerpc from x86 during a port since their assembly language is different (and C depends on that just like any other languages do in the end, machine language after that too).
Thus, using C alone? For portability purposes?? You have no true guarantee of that across compilers (not even assembly language ones, as not all assembly compilers target multiple platforms, nor do C compilers (not all possible platforms on either asm or C)).
Doing it yourself during a port is the right idea that is guaranteed to work, whereas it may or may not in C, and it will also be faster in assembly and especially hand optimized assembly.
---
"Of course you had to contradict this (because you are a script-kiddie with no real knowledge of programming) and got yourself smacked down, as usual. Thanks for playing.." - by Anonymous Coward on Wednesday September 01, @08:33AM (#33434206)
After the above? Speak for yourself. I notice also that You talk a lot putting others down or trying to, but I seem to see that others such as the anonymous coward apk you seem bent on harassing here has done far more in the arena of computing than you have clone53421.
Your name calling is merely you projecting your own inadequacies on others and you didn't seem to do very well here on programming this week here in this url:
http://tech.slashdot.org/comments.pl?sid=1764066&cid=33378014
Nor did you do very well on hosts files and things networking here either in this url
http://slashdot.org/comments.pl?sid=1755714&cid=33378404
versus the anonymous coward you seem to stalk and know a great deal about online from things you say (which I doubt are true and you are merely projecting your own inadequacies on others now)
So I would not talk so big when you clone53421 are already 3 fails deep on 3 topics vs. apk here on this very website (and the fact remains that you also have nothing to your credit that shows you are any good in this science noting you in respected publications, tech trade shows, or commercial software as apk has and from decades ago now while you probably still were in diapers no less).
"LOL. Your failure to be financially stable is highly relevant to your claims of expertise, since expertise would make you more employable and employment would make you more financially stable." - by Anonymous Coward on Wednesday September 01, @11:23AM (#33436196)
First of all: If you are "so great" and better than the ac named apk you attack is, well, show us you have done better than he has in his list of accomplishments over time such as having commercial software code to his credit and being featured in multiple respected publications on many topics in computing for decades also many times to his credit, ok?
Your ad hominem attacks which only project your own inadequacies here continually in your profanity laden foaming at the mouth name tossing attacks, yet you have no substance or accomplishments to your credit for all your false bravado.
Myself? I am as financially stable as the next person is out there, and perhaps moreso, as I am not neck deep in debt and what I have is paid in full, thank goodness.
Yes, I would quit when I was behind were I you (and you are behind this week clone53421, per these evidences:
After your poor results in this url on this topic
http://slashdot.org/comments.pl?sid=1766164&cid=33435784
Speak for yourself. You've blown this post based on that set of points also and 2 others this week below (1 on programming and the other on networking topics).
Your name calling is merely you projecting your own inadequacies on others and you also didn't seem to do very well here on programming this week here in this url either:
http://tech.slashdot.org/comments.pl?sid=1764066&cid=33378014 [slashdot.org]
Nor did you do very well on hosts files and things networking here either in this url
http://slashdot.org/comments.pl?sid=1755714&cid=33378404 [slashdot.org]
versus the anonymous coward you seem to stalk and know a great deal about online from things you say (which I doubt are true and you are merely projecting your own inadequacies on others now)
So I would not talk so big when you clone53421 are already 3 fails deep on 3 topics vs. apk here on this very website (and the fact remains that you also have nothing to your credit that shows you are any good in this science noting you in respected publications, tech trade shows, or commercial software as apk has and from decades ago now while you probably still were in diapers no less).
---
"And you are the one projecting, not me." - by Anonymous Coward on Wednesday September 01, @11:23AM (#33436196)
Lastly: You're the one doing constant name tossing here and ad hominem attacks, yet you don't seem to have done as well as the ac named apk you attack here constantly with your off topic ad hominem attacks.
Why is that?
The anonymous coward you attack named apk seems to have been cited well many times with commercially sold code to his name and having done well in respected publications like Windows IT Pro magazine as well as trade shows like Microsoft Tech Ed 2 yrs. in a row in its hardest category.
Have you done the same? Not that we can see, and your performance in this exchange and the 2 others on programming and networking above?? Pretty pitiful on your part.
"C has ways for which you can obtain an unsigned data element of a known size no matter what your architecture. If you don't know whether or not the element is signed, or if you don't know the size of the element, YOU WOULDN'T BE DOING BIT ROTATIONS ANYWAY - the result would be indeterminate depending on the signed/unsigned sized element you ended up using! So ALL of your complaints are mere red herrings designed to hide the fact that you FAILED BADLY after making claims that you couldn't back up." - by Anonymous Coward
on Wednesday September 01, @11:38AM (#33436412)
Funny, but the methods stated in assembly would work, and guaranteeably so and very possibly moreso for more platforms targetted than C would because it may not have ports to various platforms for its methods in its .h headers and interfaces.
----
"Finally, hand-optimized assembly is NOT THAT MUCH faster than compiler-optimized code and furthermore NOT PORTABLE" - by Anonymous Coward on Wednesday September 01, @11:38AM (#33436412)
Assembly language IS faster than C without optimizations and faster still with it, and there are assembly compilers that target more than 1 platform/cpu architecture (and memory addressability too) so it can be portable as much as C can be if you use macros that do checks for CPU architectures and such, just as C would have to do in its methods to be portable across various cpu architectures.
You are, again, incorrect as usual.
----
"Your links that supposedly show where "I" "didn't seem to do very well" - are actually links to YOUR POSTS - not even to my posts, LOL - links to your posts where YOU seem to NOT DO VERY WELL" - by Anonymous Coward on Wednesday September 01, @11:38AM (#33436412)
Your words are quoted in them, and disproven, and you ran from disproving points (such as on HOSTS files) and you definitely omitted what a programmer would have to do in order to use environmental variables in the other post also, and you claim you did well? Anyone is free to read the urls below, same as which you note, so let others judge on that account lol:
You're also the one doing constant name tossing here and ad hominem attacks, yet you don't seem to have done as well as the ac named apk you attack here constantly with your off topic ad hominem attacks.
Why is that?
He seems to have been cited well many times with commercially sold code to his name and having done well in respected publications like Windows IT Pro magazine as well as trade shows like Microsoft Tech Ed 2 yrs. in a row in its hardest category, you have not, and yet you act as if you are his superior?? Please.
"big programmer apk gets great review when he write them himself." - by Anonymous Coward on Wednesday September 01, @12:31PM (#33437304)
I see this list of the ac apk below and he is a programmer of some note, but not a writer or editor (and he certainly did not do the articles on said softwares).
The anonymous coward apk only wrote the entire apps or parts of apps that did well in reviews in trade magazines and tech trade shows like Microsoft Tech Ed 2 yrs. in a row (and in its hardest category SQL Server Performance Enhancement):
quoting apk:
"My Name is Ozymandias: King of Kings - Look upon my works, ye mighty, & DESPAIR..."
----
Windows NT Magazine (now Windows IT Pro) April 1997 "BACK OFFICE PERFORMANCE" issue, page 61
(&, for work done for EEC Systems/SuperSpeed.com on PAID CONTRACT (writing portions of their SuperCache program increasing its performance by up to 40% via my work) albeit, for their SuperDisk & HOW TO APPLY IT, took them to a finalist position @ MS Tech Ed, two years in a row 2000-2002, in its HARDEST CATEGORY: SQLServer Performance Enhancement).
WINDOWS MAGAZINE, 1997, "Top Freeware & Shareware of the Year" issue page 210, #1/first entry in fact (my work is there)
PC-WELT FEB 1998 - page 84, again, my work is featured there
WINDOWS MAGAZINE, WINTER 1998 - page 92, insert section, MUST HAVE WARES, my work is again, there
PC-WELT FEB 1999 - page 83, again, my work is featured there
CHIP Magazine 7/99 - page 100, my work is there
GERMAN PC BOOK, Data Becker publisher "PC Aufrusten und Repairen" 2000, where my work is contained in it
HOT SHAREWARE Numero 46 issue, pg. 54 (PC ware mag from Spain), 2001 my work is there, first one featured, yet again!
Also, a British PC Mag in 2002 for many utilities I wrote, saw it @ BORDERS BOOKS but didn't buy it... by that point, I had moved onto other areas in this field besides coding only...
Lastly, being paid for an article that made me money over @ PCPitstop in 2008 for writing up a guide that has people showing NO VIRUSES/SPYWARES & other screwups, via following its point, such as THRONKA sees here -> http://www.xtremepccentral.com/forums/showthread.php?s=ee926d913b81bf6d63c3c7372fd2a24c&t=28430&page=3
----
What do I have to say about that much above? I can't say it any better, than this was stated already (from the greatest book of all time, the "tech manual for life" imo):
"But by the grace of God I am what I am: and his grace which was bestowed upon me was not in vain; but I labored more abundantly than they all: yet not I, but the grace of God which was with me." - Corinthians Chapter 10, Verse 10
(And, because I got LUCKY to have been exposed to some really GREAT classmates, professors, & colleagues on the job over time as well)" quote apk
----
We only ask that you clone53421 show us all you have done more, earlier and of better note, than apk has done and probably while you were still in diapers in this art and science of computing.
Especially after your various ad hominem attacks stating he was not good and only wrote front ends etc. where you have been shown failing on programming topics here (on how environmental variables are used in code) http://tech.slashdot.org/comments.pl?sid=1764066&cid=33378014 and you also failed on networking topics here (hosts file) clone53421 http://slashdot.org/comments.pl?sid=1755714&cid=33378404 with your own words being quoted and disproved whereas you failed and ran in disproving the technical points there, instead resorting to
you also have nothing to your credit that shows you are any good in this science noting you in respected publications, tech trade shows, or commercial software as apk has
You know what else clone53421 does not have to his credit? he has never written an application that was (and still is) classified as malware/hacker tool by numerous security/malware auditing groups.
P.S. also you claiming things does not, of course, make them true (in fact given your track record if you claimed them, it should be pretty good basis for believing that they are NOT true! in fact good basis to believe that THEY APPLY TO YOURSELF)... such as clone53421's "unemployed status", that he is "projecting", or that he is nothing more than a "batch programmer" (which any moron (such as yourself) could easily verify is false - for example this code http://slashdot.org/comments.pl?sid=1761098&cid=33318422 which he apparently threw together in 5 minutes of spare time because of an interesting little scenario that he wanted to visualise better)
"You know what else clone53421 does not have to his credit? he has never written an application that was (and still is) classified as malware/hacker tool by numerous security/malware auditing groups."
APK's application is classified with ZERO THREAT LEVELS (per Computer Associates/CA, who is the source of this? Hahaha, ok). APK's app is rated with no threat, but can be used for the good and the bad (just like ping.exe can be, it can ping a site or issue a ping of death).
Also, the same has happened to the likes of Nir Sofer of Nirsoft and Dr. Mark Russinovich of Microsoft as well with their apps being classified as "'greyware'/malware" also (meaning their apps, like apk's single one, and ping.exe, can be used for the good or the bad. After all, guns don't kill people. Other people do, so it's up to the user how the app is used).
So your "attempt" at putting down APK is a waste of time. Your sources ARE IN QUESTION:
So your main source, which all others based their "opinions" on, was a "reputable company" like CA? LMAO (not, they are infamous for financial scandals, per this article):
http://www.nytimes.com/2004/06/06/business/the-scandal-that-refuses-to-go-away.html
----
The Scandal That Refuses To Go Away
By GRETCHEN MORGENSON
Published: June 6, 2004
PERTINENT QUOTE/EXCERPT:
"COMPUTER ASSOCIATES, embroiled in one of the nation's longest-running accounting fraud investigations..."
----
No, we all can pretty much surmise at this point that clone53421 is a nobody/done-nothing "ne'er do well" that wastes his time and unemployed life here on slashdot (at most/best).
Clone53421, you are on the ropes and all you have is failed attempts at adhominem attacks, which are being blown away 1 by 1 per the above, and your earlier failures here:
Clone53421's incorrect and only VERY PARTIAL explanation of how to use environmental variables in code:
http://tech.slashdot.org/comments.pl?sid=1764066&cid=33378014
Clone53421's utter failure on things networking in his inability to disprove APK's 10 points in favor of HOSTS files:
http://slashdot.org/comments.pl?sid=1755714&threshold=-1&commentsort=0&mode=thread&pid=33265908
Lastly of course, you have clone53421's utter failure here on programming segmented pointers and doing so absolutely safely and portably across different CPU architectures (such as 16-bit x86 ported to 32-bit PowerPC and vice a versa) using straight C, because not only would inline assembly language methods be safer, they would also be faster and guaranteed to work.
"Reputable? LOL. More like a bunch of bullshit tech rags. A bunch of third-world publications and a "PCPitstop" magaznie that I'd put several large steps below even the "GeekSquad" in terms of technical expertise or source of quality computing advice... LOL." - by Anonymous Coward on Wednesday September 01, @04:10PM (#33440540)
Windows IT Pro, Microsoft Tech Ed 2000-2002 as a finalist in its hardest category, and commercial software code to apk's credit, and NOTHING TO CLONE53421's CREDIT AS TO THE SAME, NOT EVEN A SINGLE ONE? LMAO... we all know the score here, and it's 12 to 0 in favor of apk (12) and clone53421 (0). Not even CLOSE.
----
"Maybe a tiny step above "AntiVirus Pro 2010", BUT ONLY MAYBE. " - by Anonymous Coward on Wednesday September 01, @04:10PM (#33440540)
Again: apk's just done far more than you have clone53421 and industry people liked his work where you? Nobody has, because you're a nobody... face it, facts are facts and you have none to your credit vs. apk with over a dozen by now, probably more too,
Again, Windows IT Pro, Microsoft Tech Ed 2 yrs. in a row, and commercial software code to apk's credit seems to look good for apk. Clone53421 with nothing of the same to his name? LMAO, not so good for clone53421, especially after all of his (your) name tossing and ad hominem attacks.
(I'd say you're just another jealous ne'er do well, clone53421, simply based on your reactions, lol, like a frustrated child with your profanities and name calling...)
----
"I'm surprised you aren't embarrassed quoting them as sources. in fact, it's to clone53421's credit that shit like that hasn't been attributed to him." - by Anonymous Coward on Wednesday September 01, @04:10PM (#33440540)
LOL, clone53421, who is you (as is your usual defending yourself with AC replies after you get shot down by others) doesn't have a damned thing to his credit, because he is a dime a dozen NE'ER DO WELL, period. Show us otherwise... lol, we KNOW you can't!
----
"You're a joke and an embarrassment." - by Anonymous Coward on Wednesday September 01, @04:10PM (#33440540)
If apk with a list of a dozen accomplishments in the eyes of reputable others is a joke and an embarrassement, then what are YOU, with NOTHING TO YOUR NAME WHATSOEVER, Clone53421?? LMAO... face it: You're a "ne'er do well" clone53421.
---
"And we all know that THRONKA was YOU." - by Anonymous Coward on Wednesday September 01, @04:10PM (#33440540)
Got proof of that, first of all? Otherwise, we know it's your typical ad hominem attack attempt and more libelous crap from you. Proof, from Clone53421?? LOL, of course not. Certainly not of better and more accomplishments than APK has in respected and reputable publications like Windows IT Pro, or MS' own TechEd!
Clone53421, all you have is your desperate b.s., and you are free to write THRONKA, as he frequents the bbs where his comments are cited.
Many others also have had the same results and querying "HOW TO SECURE Windows 2000/XP/Server 2003" online can show that many others liked APK's security guide so much, it is no small wonder he was paid to write it and won a tech contest for it in fact (unexpectedly in fact he said). Have you clone53421 done the same? No, we know not.
----
"You know what else clone53421 does not have to his credit? he has never written an application that was (and still is) classified as malware/hacker tool by numerous security/malware auditing groups."
APK's application is classified with ZERO THREAT LEVELS (per Computer Associates/CA, who is the source of this? Hahaha, ok). APK's app is rated with no threat, but can be used for the good and the bad (just like ping.exe can be, it can ping a site or issue a ping of death).
Also, the same has h