Please create an account to participate in the Slashdot moderation system


Forgot your password?
Trust the World's Fastest VPN with Your Internet Security & Freedom - A Lifetime Subscription of PureVPN at 88% off. Also, Slashdot's Facebook page has a chat bot now. Message it for stories and more. ×

Comment Re:Broadcast/Security/Medical CRT monitors worth $ (Score 1) 274

Yep, any monitor that does 15KHz (TV sync) analog RGB is quite desirable to retro-gamers, particularly for use with '90s stuff. Note that most VGA monitors did not support TV sync rates, and CGA monitors generally did not support analog RGB. Also, consumer TVs that support analog HD use YPrPb color, not RGB.

Comment Re:Just get volunteer help (Score 3, Informative) 274

You cant really do this with CRT's because of the gases contained in them.

Um... what gases? A CRT is a vacuum tube. If you crack the nipple, it sucks in air from outside. (and then becomes inoperative) If you know something that I don't, then please link to this new information. The only problem with CRTs is that the glass contains lead, to shield bystanders from the X-rays that get generated.

Also CRT's are prone to keep a charge long after they've ever been used.

For days, weeks, maybe months. But not for years, and it's unlikely that you'll find any that have even been plugged in in years. It is also not hard to discharge the CRT with some wire and a 1 megohm resistor.

Comment Re: Sneer today, gone tomorrow (Score 1) 133

Really, I can't think of any time when I ever thought "I wish I had a 64-bit data type". Neither integer nor float, but we've had 64-bit floats for a long time anyhow. Back in the '80s, I did many times wish for a 32-bit integer data type. I just don't see much benefit to go to 64 bits other than the extra address space, or in the case of Intel, the better instruction set and CPU model.

Comment Re:Our machines do that sometimes, unfortunately. (Score 1) 169

I'm not saying it happened here, but many people do not understand that you have to put things in appropriate packaging for the machines to process.

This. I have seen too many things shipped in inappropriate packaging. Just a few months ago, I ordered a $400 replacement board for some equipment, and the company I ordered from took the sub-box (the one made of inferior East Asian cardboard, and meant only to be used to put the item on a shelf), slapped a label on it, and gave it to USPS. Hey, it's a box, right? Just ship it! It arrived very battered, and the mailman basically ding-dong-ditched it (I was expecting it, and by the time I got to the door, he was already back in the truck!) The only thing that saved it was its anti-static bubble-wrap packaging.

I have also received a box crammed into another box with no padding on the sides, when the original box was itself part of the value of the item. It was literally slid into another, slightly larger, box with zero clearance on five sides, then foam peanuts poured into the top nine inches or so. Naturally, the box landed hard and a bottom edge was crushed. Just putting a couple inches of foam peanuts on the bottom would have been enough to save it.

Comment Re:They're onto something. (Score 1) 107

2-6 weren't "retired", though they proved to be mostly unsuitable for ATSC. There is a local station near here on channel 5. (They were previously on 2 in the analog days.) Also, ATSC allowed adjacent channel frequencies to be used in the same market area (with analog it caused too much interference), which resulted in a similar number of usable TV channels as before.

Comment Re:Arduino uses C++, Pi uses Linux (Score 1) 374

I do want to use a better-C-than-C. C with classes just for the sake of structuring code more coherently. C with better type checking rules. C where I can release a semaphore on any exit from a function. A stripped down C++ that more resembles Cfront without all the newer fluff.

That's the basic point of Embedded C++. (Actually, that's not true, the real point was that in the '90s, companies making C++ compilers were having trouble implementing things like templates, and EC++ was an attempt to give them more time.) But if you disable RTTI and exceptions in the compiler options, avoid using anything that loves to use memory allocation (bye, bye, STL) in favor of your own fixed-sized memory pools, completely ditch unnecessary I/O crap (iostreams, locales), use the leanest run-time libraries (no floats in printf, etc.), and avoid going nuts with templates, the resulting subset of C++ can be quite lean. It also isn't hard to mix with plain C code as long as you declare things extern "C" when necessary.

It just so happens that mbed uses C++ this way, and it works quite well on small micro-controllers. The big thing that C++ does is to allow a class to be used as an API for a hardware device. All the details of a device's state are hidden inside its object, and similar hardware with different details can have a new class written for it with no changes to the code that uses it.

Comment Re:Until (Score 1) 374

I still don't know how you can get that much overhead unless you try to use the really heavy stuff like STL. I mean, I know the 6502 isn't exactly designed to run C, but for a pong game? You shouldn't need shit like locale support, floats in printf, or even memory allocation for a freaking pong game. And if you don't disable RTTI and exceptions in compiler options when doing embedded C++, then you're a complete idiot.

Comment Re:Until (Score 4, Interesting) 374

The trick to using C++ in embedded is to throw away stuff like the STL that depends on memory allocation, and the ivory-tower stunt crap like iostreams. Even templates are generally bad because they cause code size to explode by compiling a new version of each method for every class that uses them.

Basically, do what mbed does and use it as "C with classes". If you declare global objects for each I/O device, the class declaration then becomes an API for the device, and the object hides all the internal state. The operational details of it can be rewritten for a similar kind of device, without changing the code that uses it. If you do things right, you might even save some bytes. C++'s inlining of method calls when there is no ambiguity also contributes to the efficiency. It is also much easier to use virtual methods than to deal with the twisty function pointer syntax in C, plus you only get one set of virtual function pointers generated per class in the vtable, and can't use the wrong function pointers by accident.

Comment Re:MVS core dumps (Score 1) 611

I had a "holy shit how did I even hack this" moment once in the early '90s. The place where I worked used a time reporting app written by some guy. He had put a time bomb in it where if they didn't pay him every few months, it would stop working. It was written in some kind of database system, maybe Fox Pro. Whatever it was had a byte code interpreter for the scripting.

I managed to come up with a one-byte patch for it using only DOS DEBUG. I recall that at some point I had discovered a certain byte code (0x54?) was a conditional jump in the byte code interpreter, and I was just able enough to see the check ahead of printing the expiration message. I also recall that something about the display went a little wonky (maybe it always said expired or something) with this patch, but it worked.

Even in 201x I've still done binary patches. A few years ago, some legacy code needed to be used for a new customer... in Mexico. We were making a completely new system, but needed to install our legacy system for a pilot test until it the new system was ready. The thing is, Mexico didn't have people sweet talking Dubya into thinking that changing the Daylight Saving Time dates would save energy (it doesn't), and the legacy system (which I could never figure out how compile) only used the new DST dates. Except that the code actually still checked the year before choosing the DST date. So I came up with a one-byte patch (an operand in a 68HC12 instruction!) that changed the year check to 14000ish by tweaking the high byte.

Comment Re:Floppy disks drilling & punching holes (Score 2) 611

If you didn't use Apple II or Commodore, you also had to cut an index hole. This was considerably more complicated. I eventually would just slip something protective into the disk and slash out a square with a razor blade. Then repeat for the other side.

And, for what it's worth, you can't read the other side with a double-sided drive for two reasons. The obvious one is that the track spins backwards (as if that would stop a dedicated Catweasel user), but the less obvious one is that the second side is offset by 2 tracks, making it impossible to read the first two tracks.

Punching an HD hole on 3.5" floppies was a bad idea, because HD had different magnetic parameters. It's like the old chrome cassette tape thing. Genuine HD floppy disks were total crap in the later years anyhow, which probably helped encourage people to stop using them.

Comment Re:The crucial prompt: term? (Score 1) 611

I actually got into a situation a couple of weeks ago where I had a problem with an unrecognized terminal type. My terminal type was TERM=xterm-256color (for unknown reasons; I have been migrating the OS X install on my laptop for years) and I was trying to SSH into a newer version of OS X on a Mac Mini that I had acquired. It seems that in the more recent versions they removed many of the older terminal types, and I had to copy that file over.

Slashdot Top Deals

Writing software is more fun than working.