Slashdot videos: Now with more Slashdot!

View

Discuss

Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

Read the fine article. Using CL does substantially change the language. Specifically, note the higher order manipulation of the eventual low-level program that the author achieved using promises (delayed evaluations). Basically, "threading while assembling".

Also, notice the ease of introducing higher-level flow control constructs (IF and UNTIL) into assembler. And the elimination of a second assembler pass by use of promises for forward references. It's kind of "magic" -- the correct data will be there when it's needed!

In this use-case, CL is a notational system for NES programming. It probably shouldn't be called "assembler" anymore, as the power of CL can be brought to bear in the process of generating the desired machine code.

Fortran is just as old as Lisp and still a viable programming language. It is widely used in scientific computing and high-performance computing. I like both languages; good on both of them. Neither language is as simple now as they were in the early days.

The earliest lisps had assembler. It was sort of normal in a way because assembler was your language of choice for this sort of thing. C didn't exist yet, Fortran was just wrong, the other procedural languages were bulky, etc. Machines were low on memory and you often wanted to machine specific actions, you were writing your own runtime library as you went. So even as far back as Lisp 1.5 documentation discusses how to use assembler.

The earliest lisps had compilers as well which went well with assembler written functions. Your programming environment was often a stack of cards that were loaded into a machine, or a tape that was read. So stopping to edit/compile/link/load was often impractical compared to just dumping some assembler while still in the interpreter (though of course if you crashed the machine you had to hide until pitchfork wielding mob stopped looking for you).

The thing people remember most about Lisp other than parentheses are CAR and CDR functions. These are named for specific fields in a PDP 36-bit word which were accessible via machine instructions.

That it had the key word defun. I guess I've got to complement them on their honesty that one of the goals of the creators of lisp was to remove the fun from programming.(Because it certainly did for me.)

These both were fields from the same register ( bit words and the computer allowed either 15 or 16 bit word addresses). So according to Wikipedia the definitions were:"Contents of the Address part of Register number""Contents of the Data part of Register number"And a couple other tiny fields that initially were in Lisp but were later dropped.

Yea, it's kind of weird. The PDPs used at MIT later were 36 bit and also allowed sticking two wor

wow there killer, way to think outside of the box, you installed software on your pc and let nintendo tell you what you could do! we need more people like you and less of these retards doing interesting things with obsolete machines.

Art is about creative self-expression. If someone feels that writing an assembler for a 25 year-old console and making it 'go bloop' expresses himself in ways that modern technology cannot, what's the harm in that? It's neat. He obviously isn't trying to get rich or serve any other practical purpose with this.

This is why I've always preferred computers to consoles because the DRMtastic nature of the consoles quickly make them worthless.

Except most people aren't willing to buy a PC and hook it up to a TV. The cases are too big, they don't come with a recliner-friendly remote, etc. For this reason (and greed [cracked.com]), the Wii is still a lot more likely than the PC to get games capable of using multiple controllers.

All you "Turing complete" weenies seem to forget that a Turing machine has infinite memory, unlike the 4096 bytes of RAM in the NES. Sure, you can put hundreds of megabytes of RAM on a cartridge, but at that point you could put a smartphone chipset on a cartridge and have it fill a frame buffer as if it were the successor to Wide Boy/Super Game Boy.

streaming raw data prepared for it through a cable from another machine

That would be Wide Boy, the pre-production version of Super Game Boy. Or it would be Super FX, a second CPU on a Super NES cartridge that renders graphics. In discussions about "super-mappers" on NESdev BBS, I've often mentioned a TV tuner for NES connected to an Xbox 360 as the hypothetical "upper limit" of what a mapper can do.

What I have always wondered about, is just how far can you push one of these old systems?

Like the snes.. it was designed to accept a 3rd party cpu inside the cartridge, in addition to the game rom.

What would happen if you built what would essentially be rom code toolbox routines to access the snes's hardware, and then switch execution to a more powerful/more modern low energy cpu, like an arm?

You would use the snes as an input device (they did make a snes mouse.....), and as the graphics hardware, but run all the heavy lifting on the arm instead of the 6500 series cpu. Other than the rom routines to do the interface, everything else is handled by a shared ram bank and an sdcard slot put into the cartridge.

Why? So you can run linux on the snes. Why? Because you could.

I bet you could do some really clever stuff by simulating a framebuffer.

Didn't the gb have a z80 though? That's a bit less powerful than the 6500series cpu in the snes.

Simply because the snes databus is 16bit doesn't mean the 3rd party cpu needs to be 16bit. The snes hardware could be treated like a 16bit peripheral, as far as the embedded SoC in the cart was concerned.

I still think something more interesting than the superGB could be made this way.

It was an 8080-derivative made by Sharp with some but not all features of the Zilog Z80, nicknamed "GBZ80" by emulator authors. Some Z80 features, such as the separate bank of BCDEHL registers for interrupt handlers, were left out in favor of special fast addressing modes for $FF00-$FFFF to mimic the 6502's "direct page" at $0000-$00FF.

That's a bit less powerful than the 6500series cpu in the snes.

The old Commodore 64 vs. ZX Spectrum flamewars ended up with a consensus that the 6502 is roughly as fast as a Z80 clocked two to three times as fast, depending on workload.

Some of the best Z80 ROM music I've heard has to be M.U.S.H.A (Musha Aleste) on the Sega Genesis (Mega-Drive). Herzog Zwei comes in a close 2nd place. The composers were Gods, and they got paid to do what they loved to do. You've got to admire that kind of talent.