Live data from Hacker News

Elite on the 6502: The original 6502 assembly source, heavily commented

elite.bbcelite.com

11–20 of 61 posts

Re: Elite on the 6502: The original 6502 assembly source, heavily commented

#12
I think Computer Architecture can be designed around legacy but fun hardwares.

So instead of using some fantasy machines such as LC-3, students can directly get into the world of 6502.

First semester: mostly concentrated on 6502 with a full 6502 CPU emulator as the final project.

Second semester: concentrate on a real machine such as the NES. Students need to learn to improve their emulators to program in it (so, do you need a debugger? a decompiler?), as well as hacking roms, burning roms, using carts to load the games into a real NES, and programming new games for it. The game must run in the emulator as well as a real NES.

Third semester for honour: upgrade to a 16/24/32-bit machine, e.g. 80286, SNES, 68K, whatever, and get some serious project done. Can use C if applicable. The project can even be a simple OS or a BASIC interpreter to pave the way for advanced classes. Or maybe a computer virus, anything that is fun and creative.

OS and compiler classes can also be designed around real hardware and projects. e.g. Porting an early version of Linux to a once popular architecture and add a few small functionalities; Write a compiler for a LISP-like language for that architecture and OS.

You don't even need Data Structure and Algorithm and those BS Java programming classes - they learn them on the way. And if they miss anything they can pick them up on the job.

Re: Elite on the 6502: The original 6502 assembly source, heavily commented

#13
The "Advanced User Guide" referred to several times in the comments is The Advanced User Guide for the BBC Micro by Bray, Dickens and Holmes, 1983, ISBN 0 946827 00 1 . https://stardot.org.uk/forums/viewtopic.php?f=42&t=17242 https://archive.org/details/bbc-micro-advanced-user-guide/ I can't find a source for this now, but IIRC Bell and Braben themselves used this when writing Elite. (I am not an expert.)

Re: Elite on the 6502: The original 6502 assembly source, heavily commented

#14
post #3

If I were king of the forest, there would be a degree program in Comparative Coding (comparative lit for code). We don’t treat this as a creative discipline and thus we don’t spend time looking at masters, how they were successful and the ways they were just as human as anyone. Someone would get paid for writing stuff like this, same as people getting paid to write about Poe, Cummings, Hemingway, Thoreau. But I guess…

I was talking to a friend who works in development and he says that they even frown on recursion now. They think it's too complex and causes junior programmers to footgun.

It's a shame because recursive code is often the most clean, elegant and fast for things like traversing trees.

Re: Elite on the 6502: The original 6502 assembly source, heavily commented

#15
post #7
post #3

If I were king of the forest, there would be a degree program in Comparative Coding (comparative lit for code). We don’t treat this as a creative discipline and thus we don’t spend time looking at masters, how they were successful and the ways they were just as human as anyone. Someone would get paid for writing stuff like this, same as people getting paid to write about Poe, Cummings, Hemingway, Thoreau. But I guess…

Should people get paid to write about Poe, Cummings, Hemingway, Thoreau? The original works themselves are pretty accessible. People can just read them and form their own interpretations. I'm skeptical that I really gained anything from reading literary criticism, at least it didn't make me appreciate the original works more or make me a better writer. I understand that there's a long tradition of scholarship in comp…

I don't actually care one way or another about that particular subject, but if you start making judgements about academic fields of study are worthwhile to pay for on the basis of value to society, you allow other people -- more ignorant people, let's say -- with different concepts of societal value to make somewhat unfortunate decisions. You might end up without any new literature at all.

Re: Elite on the 6502: The original 6502 assembly source, heavily commented

#16
post #3

If I were king of the forest, there would be a degree program in Comparative Coding (comparative lit for code). We don’t treat this as a creative discipline and thus we don’t spend time looking at masters, how they were successful and the ways they were just as human as anyone. Someone would get paid for writing stuff like this, same as people getting paid to write about Poe, Cummings, Hemingway, Thoreau. But I guess…

I was talking to a friend who works in development and he says that they even frown on recursion now. They think it's too complex and causes junior programmers to footgun. It's a shame because recursive code is often the most clean, elegant and fast for things like traversing trees.

One of my peeves with JavaScript is that I feel the reduce() function has its arguments in the wrong order and increases cognitive load. Elixir’s is “right”. I’ve never been that much of a fan of recursion myself. Iteration and list comprehension for me.

Re: Elite on the 6502: The original 6502 assembly source, heavily commented

#17

I think Computer Architecture can be designed around legacy but fun hardwares. So instead of using some fantasy machines such as LC-3, students can directly get into the world of 6502. First semester: mostly concentrated on 6502 with a full 6502 CPU emulator as the final project. Second semester: concentrate on a real machine such as the NES. Students need to learn to improve their emulators to program in it (so, do…

I like your idea, though I'm probably biased because I learned computers and computer programming starting with zero experience, zero knowledge and nothing but a 4K, sub-1 Mhz Radio Shack Color Computer. Unfortunately, in 1980 there were virtually no real instructional materials available on microcomputers. Learning consisted mostly of just trying things, typing in listings from low-budget hobbyist 'zines and comparing notes at user's group meetings.

One great advantage to your approach is that emulators are free and some of them, like MAME, have extremely powerful debugging and exploration tools built right in. Plus there's extensive developer documentation, SDKs and instructional materials available for many of the most popular platforms along with lots of commented code disassemblies. Having an actual course structured around curated sets of these materials would be pretty amazing.

Re: Elite on the 6502: The original 6502 assembly source, heavily commented

#18
post #7

Earlier quoted context omitted.

Should people get paid to write about Poe, Cummings, Hemingway, Thoreau? The original works themselves are pretty accessible. People can just read them and form their own interpretations. I'm skeptical that I really gained anything from reading literary criticism, at least it didn't make me appreciate the original works more or make me a better writer. I understand that there's a long tradition of scholarship in comp…

I don't actually care one way or another about that particular subject, but if you start making judgements about academic fields of study are worthwhile to pay for on the basis of value to society, you allow other people -- more ignorant people, let's say -- with different concepts of societal value to make somewhat unfortunate decisions. You might end up without any new literature at all.

Very little literature is written by academics. People who want to write new literature can just go ahead and do it.

In a world of limited time and resources we always make judgements about which academic fields of study are worthwhile. At some level it's a zero-sum game: time spent on comparative literature is time not spent on philosophy or history or creative writing. So, given that we have to prioritize which people to pay and which courses to require, how should we make those decisions?

Re: Elite on the 6502: The original 6502 assembly source, heavily commented

#19

I think Computer Architecture can be designed around legacy but fun hardwares. So instead of using some fantasy machines such as LC-3, students can directly get into the world of 6502. First semester: mostly concentrated on 6502 with a full 6502 CPU emulator as the final project. Second semester: concentrate on a real machine such as the NES. Students need to learn to improve their emulators to program in it (so, do…

I like your idea, though I'm probably biased because I learned computers and computer programming starting with zero experience, zero knowledge and nothing but a 4K, sub-1 Mhz Radio Shack Color Computer. Unfortunately, in 1980 there were virtually no real instructional materials available on microcomputers. Learning consisted mostly of just trying things, typing in listings from low-budget hobbyist 'zines and compari…

Yep, and I know some instructors actually tried that (from Carnegie-Mellon):

https://bobrost.com/nes/

I think it's a good idea to go further to work on more difficult retro platforms. I know teachers like LC-3 because it is simple, but I think they underestimate the devoted students.

Post reply on HN