Linked by Thom Holwerda on Sun 8th Jul 2012 22:54 UTC
General Development "In this tiny ebook I'm going to show you how to get started writing 6502 assembly language. [...] I think it's valuable to have an understanding of assembly language. Assembly language is the lowest level of abstraction in computers - the point at which the code is still readable. Assembly language translates directly to the bytes that are executed by your computer's processor. If you understand how it works, you've basically become a computer magician." More of this, please.
Order by: Score:
ASM is good!
by bloodline on Sun 8th Jul 2012 23:19 UTC
bloodline
Member since:
2008-07-28

I grew up with 68000 Asm, so I think all coders should have at least a basic understanding of assembly languages.

Reply Score: 3

RE: ASM is good!
by JAlexoid on Sun 8th Jul 2012 23:44 UTC in reply to "ASM is good!"
JAlexoid Member since:
2009-05-19

Agreed! If you don't know assembler you have no clue how computer memory works.

A properly good developer has to also understand how an adder circuit is constructed and works.

Reply Score: 3

RE[2]: ASM is good!
by Elv13 on Mon 9th Jul 2012 02:02 UTC in reply to "RE: ASM is good!"
Elv13 Member since:
2006-06-12

And Boolean algebra / logic gates too. Often forgotten by computer majors.

ASM was part of the first semester classes when I was in undergraduate technical college, along with binary. Then a few years later, in University, they don't even seem to know it still exist. They think it is something that is behind us and to look forward, they must teach more important things like design pattern and how to write layer upon layer of abstraction... What a shame.

Reply Score: 3

RE[2]: ASM is good!
by inewham on Mon 9th Jul 2012 12:26 UTC in reply to "RE: ASM is good!"
inewham Member since:
2005-09-26

Assembler? Pah! I've handwritten mnemonics on a sheet of paper and translated them switch positions to write my own assembler (get off my lawn ;) )

... but now all I get to do is an occasional bit of Perl **sob**

Reply Score: 4

RE[3]: ASM is good!
by JAlexoid on Mon 9th Jul 2012 12:40 UTC in reply to "RE[2]: ASM is good!"
JAlexoid Member since:
2009-05-19

Assembler? Pah! I've handwritten mnemonics on a sheet of paper and translated them switch positions to write my own assembler (get off my lawn ;) )


You lucky bastard! I had to solder my processor from hundreds of transistors! Now get your carriage off my propiearty!

Reply Score: 3

RE[4]: ASM is good!
by inewham on Mon 9th Jul 2012 13:00 UTC in reply to "RE[3]: ASM is good!"
inewham Member since:
2005-09-26

You lucky bastard! I had to solder my processor from hundreds of transistors! Now get your carriage off my propiearty!


Luxury...

And you try and tell the young people of today that ..... they won't believe you.

Reply Score: 1

RE[5]: ASM is good!
by JAlexoid on Tue 10th Jul 2012 11:08 UTC in reply to "RE[4]: ASM is good!"
JAlexoid Member since:
2009-05-19

Sad part is, that I actually had to do that... ;)

Reply Score: 2

RE[4]: ASM is good!
by Laurence on Mon 9th Jul 2012 14:13 UTC in reply to "RE[3]: ASM is good!"
Laurence Member since:
2007-03-26


You lucky bastard! I had to solder my processor from hundreds of transistors! Now get your carriage off my propiearty!

You youngsters and your transistors. :p
In my day we had to weld valves into a computer the size of a small building. And when we had bugs in the system, they were literally house flies.

Reply Score: 2

RE[5]: ASM is good!
by The123king on Mon 9th Jul 2012 15:17 UTC in reply to "RE[4]: ASM is good!"
The123king Member since:
2009-05-28

You were lucky to have valves! Back in my day, computing was done using our heads. We had to work 28 hours a day, 8 days a week, supply our own pens and paper and hope that the foreman didn't hit us for writing with it!

Reply Score: 2

RE[6]: ASM is good!
by Lennie on Mon 9th Jul 2012 17:30 UTC in reply to "RE[5]: ASM is good!"
Lennie Member since:
2007-09-22

By your use of numbers I'm guessing you really sucked at your job as a computer...?

Reply Score: 1

RE[7]: ASM is good!
by MOS6510 on Mon 9th Jul 2012 19:06 UTC in reply to "RE[6]: ASM is good!"
MOS6510 Member since:
2011-05-12

He wasted too much time watching Monty Python.

Time well spend!

Reply Score: 2

RE[6]: ASM is good!
by Laurence on Tue 10th Jul 2012 09:34 UTC in reply to "RE[5]: ASM is good!"
Laurence Member since:
2007-03-26

You were lucky to have valves! Back in my day, computing was done using our heads. We had to work 28 hours a day, 8 days a week, supply our own pens and paper and hope that the foreman didn't hit us for writing with it!

You had self-inking pens? In my day we had to whittle our own quills from the neighbours goose feathers.

Reply Score: 2

RE[3]: ASM is good!
by DeepThought on Mon 9th Jul 2012 18:51 UTC in reply to "RE[2]: ASM is good!"
DeepThought Member since:
2010-07-17

Please stop it. I can't stop laughing.
Luckily no one told he was programming an Abacus to play Tetris :-)

Reply Score: 1

Comment by zizban
by zizban on Sun 8th Jul 2012 23:47 UTC
zizban
Member since:
2005-07-06

This is an insanely cool thing!

Reply Score: 4

Ah, the 6502
by thavith_osn on Mon 9th Jul 2012 00:29 UTC
thavith_osn
Member since:
2005-07-11

We had an Apple ][+ at school back in the early 80's, and I wanted to get as much as I could out of it, the only way was machine code.

I remember using CALL -151 so many times (3D0G to get back to Applesoft).

I got an Apple 2c in 84 that had the 62C02 chip, that gave you such things as BRA which I thought was the coolest thing ever (my friends C64's 6510 was even nicer, but that's another story).

I wrote code to put the //c into double hi-res, then using the video interrupt, wrote a small sprite routine that put a mouse cursor (copied pixel perfect from a Mac 128k image I had from a Byte magazine at the time). I even wrote a faux menu system that copied the Mac look and feel, right down to the Chicago font.

Times have changed.

Reply Score: 3

RE: Ah, the 6502
by zima on Wed 11th Jul 2012 03:42 UTC in reply to "Ah, the 6502"
zima Member since:
2005-07-06

my friends C64's 6510 was even nicer, but that's another story

And that niceness was in a much less expensive package, but that's anot... hm, no wait, something like this goes on also in present ;p

Times have changed.

Didn't change totally; similar coding style still goes on with many microcontrollers (tons of them around), including some DIY stuff - this AVR "console" for example: http://en.wikipedia.org/wiki/Uzebox

Me, one day... I will make an Atari 2600 game - 128 bytes of RAM and racing the beam, here I come!
(I'm not really in a hurry though - in fact, I think that doing it on a half-century mark would be even more curious, so still 15 years to go; notably, also a 6502 variant)

Reply Score: 2

Never say "never"
by CodeMonkey on Mon 9th Jul 2012 04:29 UTC
CodeMonkey
Member since:
2005-09-22

I actually enjoyed this article but I do have a bit of "beef" with it.

fta: "I don’t think you’ll ever have to write assembly language in your day job"

{ // begin rant
As a software engineer by trade, I have on a *few* occasions needed this. It's not a purely academic exercise. Sure, even as developers, you will rarely (and mean virtually never) these days be employed as an assembler coder. That being said, it's still a valuable skill set to have. It's definitely crucial when you get stuck in those deep debugging sessions with gdb and need to understand "WTF is at this memory address? I didn't put that there!" Being able to understand at the low level what is really happening is valuable. Or if you're doing some low level performance optimizations, being able to write assembler is necessary for using the SSE intrinsic functions on x86_64 architectures.

While it may almost never be your full time job to write assembler code, having a moderate ability to do so is necessary when you come across that "every once and a while" when you do need it.
} // end rant

Compilers are good at what they do, even great, if not astounding. But they are not magic. Every piece of software, even gcc, is written by a bunch of people just like us (speaking to fellow programmers here), ugly warts and all.

Reply Score: 2

RE: Never say "never"
by Lumiaen on Mon 9th Jul 2012 09:37 UTC in reply to "Never say "never""
Lumiaen Member since:
2012-07-09

Never say never indeed. My daily job IS writing assembly
code. Maybe one of a few left in the world but as old
fashioned or pathetic as it sounds, there still is a need
for assembly language.


And as someone have already mentioned, it is good to know
it in order to have a better understanding for how stuff
works. ;)

Reply Score: 2

Why 6502 vs x86?
by jtjammer22 on Mon 9th Jul 2012 04:43 UTC
jtjammer22
Member since:
2012-07-09

Why not x86 asm?

I have several old Atari & 6502 books about to be dumped. Should I save them?

Reply Score: 1

RE: Why 6502 vs x86?
by jtjammer22 on Mon 9th Jul 2012 04:47 UTC in reply to "Why 6502 vs x86?"
jtjammer22 Member since:
2012-07-09

D'oh! RTFA, Sorry all.

Reply Score: 1

RE: Why 6502 vs x86?
by Kochise on Mon 9th Jul 2012 05:17 UTC in reply to "Why 6502 vs x86?"
Kochise Member since:
2006-03-03

Have you *ever* tried 6502 assembly vs. 80x86 assembly ? Does real mode, segmented memory, int 10 means somethig for you ? Once that will happen, you'll freak out and love 6502 assembly.

Kochise

Reply Score: 6

RE[2]: Why 6502 vs x86?
by moondevil on Mon 9th Jul 2012 07:05 UTC in reply to "RE: Why 6502 vs x86?"
moondevil Member since:
2005-07-08

Have you *ever* tried 6502 assembly vs. 80x86 assembly ? Does real mode, segmented memory, int 10 means somethig for you ? Once that will happen, you'll freak out and love 6502 assembly.


To be fair the PC architecture is much more complex and the main reason initially the 8086 was like that was to reduce production costs.

Reply Score: 4

RE[2]: Why 6502 vs x86?
by jgagnon on Mon 9th Jul 2012 17:17 UTC in reply to "RE: Why 6502 vs x86?"
jgagnon Member since:
2008-06-24

One thing I hated about 6502/6510 assembly was the lack of multiply and divide. On my C64 I could call the basic routines to do it or implement it myself, but that still sucks. :p

Reply Score: 2

RE: Why 6502 vs x86?
by xylifyx on Mon 9th Jul 2012 05:51 UTC in reply to "Why 6502 vs x86?"
xylifyx Member since:
2008-05-03

Perhaps ARM assembly is more appropriate. It is a contemporary architecture and it is used in 100-epsilon percent of all mobile devices.

A cheap board like the Raspberry Pi has IO pins that let you control stuff where timing is important and assembly could be appropriate.

Another possibility is the Arduino board which uses a completely different architecture, http://en.wikipedia.org/wiki/Atmel_AVR . There is no OS on top, only a small bootloader. And assembly is very appropriate to use here.

Edited 2012-07-09 05:53 UTC

Reply Score: 3

RE[2]: Why 6502 vs x86?
by moondevil on Mon 9th Jul 2012 07:07 UTC in reply to "RE: Why 6502 vs x86?"
moondevil Member since:
2005-07-08

Agreed!

Better yet, trying to make something like a Lisp Machine, Smalltalk environment, Native Oberon or Lillith.

Rediscovering the OS development with new (old) approaches, besides the usual C one from nowadays.

Reply Score: 2

RE[2]: Why 6502 vs x86?
by DeepThought on Mon 9th Jul 2012 07:45 UTC in reply to "RE: Why 6502 vs x86?"
DeepThought Member since:
2010-07-17

ARM assembly is much more complex than 6502.
Also, learning assembler on a Linux machine is pain.
How much code do you have to write to get a single pixel on the screen ?
Best is to have a small eval board with lots of LEDs with an Cortex-M3 on it and a debugger.
E.g. the Stellaris boards, which also often come with LCD.
Also the Raspberry Pi uses an ARM11, which is not widely used these days.

Reply Score: 1

RE[3]: Why 6502 vs x86?
by zima on Wed 11th Jul 2012 03:23 UTC in reply to "RE[2]: Why 6502 vs x86?"
zima Member since:
2005-07-06

ARM11, which is not widely used these days

That's a joke, right?

Reply Score: 2

RE[4]: Why 6502 vs x86?
by DeepThought on Wed 11th Jul 2012 06:04 UTC in reply to "RE[3]: Why 6502 vs x86?"
DeepThought Member since:
2010-07-17

No, meant it seriously. ARM11 is quite outdated.
Of course it's my opinion based on what I see and hear in my jobs. Not statistically based.

Reply Score: 1

RE[5]: Why 6502 vs x86?
by zima on Wed 11th Jul 2012 12:44 UTC in reply to "RE[4]: Why 6502 vs x86?"
zima Member since:
2005-07-06

...then it's quite a jump to say "not widely used" - it still ships a ton (just not any more in top smartphones for example). "Quite outdated" doesn't mean much if it's perfectly good enough (and much less expensive, with how ARM licenses older cores)

Reply Score: 2

RE[6]: Why 6502 vs x86?
by DeepThought on Wed 11th Jul 2012 14:05 UTC in reply to "RE[5]: Why 6502 vs x86?"
DeepThought Member since:
2010-07-17

Well, I am a bit biased. When talking about 6502 and Raspberry Pi, I am thinking of hobby or embedded projects.
So far, besides mobil phone market, I really never saw or heard of projects using ARM11.
But of course, my view to the embedded market is limited.

Reply Score: 1

RE[7]: Why 6502 vs x86?
by zima on Sun 15th Jul 2012 23:59 UTC in reply to "RE[6]: Why 6502 vs x86?"
zima Member since:
2005-07-06

Mobile tech is typically counted as embedded ...overall, not very prominent - who knows really what ends up where, on large scale.

Sure, ARM11 is no longer dominant in ~top smartphones like it was for some time, But it didn't disappear, continues to be used in many mass-market devices - many lower-end Android phones are still built around ARM11-based Qualcomm or Mediatek SoCs ...quite possibly still most Android phones (it's just that tons of cheap Chinese devices aren't really noticeable in few most visible "premium" markets, but they largely power the worldwide Android adoption). Then add so called "feature phones" or Nokia Symbian devices, also most recent. It's not impossible that most smartphones and/or mobile phones in general still ship with ARM11.
Which reminds me, there's more than the main CPU - radio modules typically have some older ARM, and will likely continue that trend.
Also, Nintendo 3DS seems to have ARM11.

And that's only the visible stuff. My quite recent wifi router has some old ARM core - not sure which, but the point is: older cores continue being attractive for most scenarios.

Edited 2012-07-16 00:15 UTC

Reply Score: 2

RE[2]: Why 6502 vs x86?
by dsmogor on Mon 9th Jul 2012 08:01 UTC in reply to "RE: Why 6502 vs x86?"
dsmogor Member since:
2005-09-01

ARM is in fact a kind of conceptual evolution of 6502. The creators of the architecture were heavily influenced by 6502 used in the BBC micro and designed ARM to be a logical successor.

Edited 2012-07-09 08:01 UTC

Reply Score: 2

RE[3]: Why 6502 vs x86?
by henderson101 on Mon 9th Jul 2012 10:53 UTC in reply to "RE[2]: Why 6502 vs x86?"
henderson101 Member since:
2006-05-30

*sigh* this is only half true. The design of the 6502 was very sweet, much more efficient etc and can be seen to have generally influenced the design goals behind the ARM family. However, the ARM is a RISC processor, the 6502 is pretty much CISC (though some argue this point.) Nothing in the actual ARM architecture shows any real influence from the 6502. In fact, there's zero compatibility and knowing 6502 assembler gives you no great advantage to knowing ARM.

Maybe the confusion comes from this: the ARM based Archimedes range of computers (which is where ARM originates from) were designed to be the direct drop in replacement for the 6502 BBC range used in schools in the UK. The main selling point initially was that they came with a very similar BASIC (same capabilities, but with a lot bolted on top) and that they could run *some* BBC software using the included software emulator. Schools in the UK had bought in to Acorn big style, and the BBC micro is very much the British Apple 2 (being that most kids from the 80's started their computing in School on a BBC.) Many would argue that the Acorn range of computers ended up crippling the UK school system, as they'd bought in to a dud and the dominance of PC in the rest of the world was already in place. But that's another day's battle.

Reply Score: 5

RE[4]: Why 6502 vs x86?
by zima on Fri 13th Jul 2012 22:02 UTC in reply to "RE[3]: Why 6502 vs x86?"
zima Member since:
2005-07-06

I guess the ARM add-on for BBC Micro also played a role in the confusion?

Schools in the UK had bought in to Acorn big style, and the BBC micro is very much the British Apple 2 (being that most kids from the 80's started their computing in School on a BBC.) Many would argue that the Acorn range of computers ended up crippling the UK school system, as they'd bought in to a dud and the dominance of PC in the rest of the world was already in place.

BBC Micro came out before IBM PC, right? And while one can easily argue that PC victory was already clear in mid-80s ( http://arstechnica.com/features/2005/12/total-share/4/ and the next page, 5; still, it's not made clear, but those stats are probably mostly for North America - the article doesn't even mention Spectrum or Micral), but it didn't yet happen.

In the meantime, UK had one of the more vigorous ~computer (also education) landscapes - rest of the world didn't really have a dominance of PC yet, it didn't have much of anything.

One can accuse Amigas of pretty much the same, misplaced hope against the onslaught of the PC (just look at the graphs), but in the meantime they served well. And you still have that one of the most vigorous ~computer landscapes.

Reply Score: 2

Comment by ilovebeer
by ilovebeer on Mon 9th Jul 2012 05:54 UTC
ilovebeer
Member since:
2011-08-08

6502 was fun in its day. So was 68000. But as someone else already pointed out, compilers are damn good these days. Plenty of people get along just fine without any asm knowledge. Also, I would hope people understand how a computer works if they're going to program. I don't know any great (at least imo) programmers who don't.

Reply Score: 3

RE: Comment by ilovebeer
by DeepThought on Mon 9th Jul 2012 07:53 UTC in reply to "Comment by ilovebeer"
DeepThought Member since:
2010-07-17

6502 was fun in its day. So was 68000. But as someone else already pointed out, compilers are damn good these days.

... but can be out-performed on many machines by a decent assembler programmer.

Plenty of people get along just fine without any asm knowledge.


This might be true for database or banking software. But when it comes to embedded programming, it is always painful to discuss with programmers who do not know about the machine they are programming.
Also, assembly programming teaches good boolean algebra.

Also, I would hope people understand how a computer works if they're going to program. I don't know any great (at least imo) programmers who don't.


I have seen lots of code like this from guys who never coded a single line of assembly:

uart_format = _8BITS_PER_BYTE || ENABLE_PARITY;

I do not mean, that every programmer needs to be a perfect assembly crack, but it the same with a car. Knowing how to drive it, is just not enough. You need to know where to fill in the fuel (or today: plugin in the cable) and _what_ kinda fuel you need :-)

Reply Score: 1

RE[2]: Comment by ilovebeer
by boxy on Mon 9th Jul 2012 16:29 UTC in reply to "RE: Comment by ilovebeer"
boxy Member since:
2011-06-20

I have seen lots of code like this from guys who never coded a single line of assembly:

uart_format = _8BITS_PER_BYTE || ENABLE_PARITY;


I'm assuming that was supposed to be a bit-wise or instead of a logical boolean or? Or (no pun intended) was that the point - that those programmers that don't know assembly don't know the difference between the | and || operators?

I myself used to make that same mistake, and I learned C doing a tutorial that was heavily geared towards graphics and mixed in a lot of assembly (Asphyxia set if tutorials if anyone remembers that demo group).

That said, 6502 assembler is kinda cool. I learned it by trying to implement an NES emulator (turns out this is way harder than I thought it would be because of various quirks in the NES hardware), albeit that was a modified 6502. If I recall correctly, the D (binary coded decimal) flag didn't actually do anything. But I digress.

Reply Score: 2

RE[2]: Comment by ilovebeer
by christian on Mon 9th Jul 2012 21:34 UTC in reply to "RE: Comment by ilovebeer"
christian Member since:
2005-07-06

"6502 was fun in its day. So was 68000. But as someone else already pointed out, compilers are damn good these days.

... but can be out-performed on many machines by a decent assembler programmer.
"

As CPUs became more orthogonal, I bet the advantage eroded pretty quickly. Compilers can just keep track of more information to make better decisions on optimizations, such as efficient register scheduling.

And it's poor software engineering to dive straight into assembly without finding the bottlenecks first. Even small micro-controllers like PIC are better programmed in C first with a directed migration to assembly based on performance requirements.

Except for the smallest of embedded systems, C is perfectly viable using something like Contiki ( http://www.contiki-os.org/ ).

Reply Score: 2

RE[3]: Comment by ilovebeer
by DeepThought on Tue 10th Jul 2012 02:08 UTC in reply to "RE[2]: Comment by ilovebeer"
DeepThought Member since:
2010-07-17

:-) I did not want to start the old ASM vs. C vs. C++ war again. But there are good reasons to write assembly code. And yes, a bad algorithm in assembly stays a bad algorithm :-)
And sometimes, you just can't speed up things anymore.

Reply Score: 1

RE[4]: Comment by ilovebeer
by Alfman on Tue 10th Jul 2012 02:58 UTC in reply to "RE[3]: Comment by ilovebeer"
Alfman Member since:
2011-01-28

DeepThought,

Yea, GCC often produces subpar code in my experience. Depending on how tight a loop needs to be, hand-crafted assembly can bring decent gains. Sometimes we can get away swapping in intrinsics, other times GCC just refuses to output good code.

ICC is supposed to be an excellent code optimiser though.

It's all relative though, computers have gotten so fast we're usually waiting on I/O anyway.

Reply Score: 2

RE[5]: Comment by ilovebeer
by ilovebeer on Tue 10th Jul 2012 16:23 UTC in reply to "RE[4]: Comment by ilovebeer"
ilovebeer Member since:
2011-08-08

Yea, GCC often produces subpar code in my experience. Depending on how tight a loop needs to be, hand-crafted assembly can bring decent gains. Sometimes we can get away swapping in intrinsics, other times GCC just refuses to output good code.

It needs to be said that coding in asm does not have automatic benefits of any kind. The quality of asm depends on the knowledge and capability of the person programming it. I've seen plenty of terrible asm. There _can be_ benefits to asm, but it isn't a given and shouldn't be overstated.

It's all relative though, computers have gotten so fast we're usually waiting on I/O anyway.

Yup.

Edited 2012-07-10 16:24 UTC

Reply Score: 2

RE[5]: Comment by ilovebeer
by whartung on Tue 10th Jul 2012 18:24 UTC in reply to "RE[4]: Comment by ilovebeer"
whartung Member since:
2005-07-06

t's all relative though, computers have gotten so fast we're usually waiting on memory anyway.


Fixed that for ya!

RAM is the new disk, bla bla...

If you ain't in cache, you ain't nothin.

Reply Score: 2

RE[6]: Comment by ilovebeer
by Alfman on Tue 10th Jul 2012 21:41 UTC in reply to "RE[5]: Comment by ilovebeer"
Alfman Member since:
2011-01-28

whartung,

"Fixed that for ya!"
"If you ain't in cache, you ain't nothin."

Actually, I may be using poor semantics, but I consider memory limited processes (whether from CPU or GPU) to be "IO" bound. After all, those requests have to be serialised over the system bus almost like any other IO. Obviously most programmers treat "memory" as though it's different from IO. While memory IO clearly plays a specific role for the CPU, from a databus-oriented point of view it's not all that special.

Semantics aside, it can be difficult to make SMP systems scale well if memory & IO are the real bottlenecks. I'd consider a CPU-bound process one that makes minimal use of the system bus, including system memory. I find many multithreaded advocates proposing to subdivide problems among tiny light weight threads, but very often they shift a problem from being CPU-bound (which is good for SMP) into one that is memory-bound which offsets the benefits of parallelism.

Even caching is problematic in that x86 processors must implement very strict cache coherency models, which severely limits SMP scalability.

Reply Score: 2

RE: Comment by ilovebeer
by dsmogor on Mon 9th Jul 2012 08:02 UTC in reply to "Comment by ilovebeer"
dsmogor Member since:
2005-09-01

Watch some recent C64 demos and you will surely change your opinion ;)

Edited 2012-07-09 08:02 UTC

Reply Score: 2

RE[2]: Comment by ilovebeer
by zima on Fri 13th Jul 2012 22:09 UTC in reply to "RE: Comment by ilovebeer"
zima Member since:
2005-07-06

What C64 demos output is more the work of VIC-II and SID.

Anyway, they don't change anything in what ilovebeer said - nobody seriously targets 3-decade old computers any more.
Plus, they are just that, demos - not actually useful applications or interactive games, which basically looked nowhere close.

Reply Score: 2

Comment by MOS6510
by MOS6510 on Mon 9th Jul 2012 09:46 UTC
MOS6510
Member since:
2011-05-12

It's easy to download a (free) Commodore 64 emulator (VICE), an Assembler program and start coding away.

Reply Score: 2

RE: Comment by MOS6510
by zima on Wed 11th Jul 2012 03:26 UTC in reply to "Comment by MOS6510"
zima Member since:
2005-07-06

BTW, why is it so free? ...what's with including the apparently original ROMs in VICE sf downloads?

Reply Score: 2

RE[2]: Comment by MOS6510
by MOS6510 on Wed 11th Jul 2012 10:29 UTC in reply to "RE: Comment by MOS6510"
MOS6510 Member since:
2011-05-12

When it's free I ask no questions!

Reply Score: 2

RE[3]: Comment by MOS6510
by zima on Thu 12th Jul 2012 06:54 UTC in reply to "RE[2]: Comment by MOS6510"
zima Member since:
2005-07-06

Even if it's quite possibly... illegal? (and also very against basic sf rules, I believe)

Edited 2012-07-12 06:54 UTC

Reply Score: 2

RE[4]: Comment by MOS6510
by MOS6510 on Thu 12th Jul 2012 07:02 UTC in reply to "RE[3]: Comment by MOS6510"
MOS6510 Member since:
2011-05-12

IIRC VICE is legal. I would be supprised if they weren't considering their spot in the open.

Reply Score: 2

RE[5]: Comment by MOS6510
by zima on Thu 12th Jul 2012 08:20 UTC in reply to "RE[4]: Comment by MOS6510"
zima Member since:
2005-07-06

VICE itself, certainly. But how come it's ready to go when I download it from sf, with all firmwares inside? How can they distribute them all? (and from a site about OSS no less)

Reply Score: 2

RE[6]: Comment by MOS6510
by MOS6510 on Thu 12th Jul 2012 10:41 UTC in reply to "RE[5]: Comment by MOS6510"
MOS6510 Member since:
2011-05-12

The Internet says:

The ROM images for the 8-bit components required to make VICE are copyrighted, and you install them at your own legal risk. Tulip
Computers, in the Netherlands, appears to hold the copyright to them, and is being somewhat persnickety about who uses them.

Reply Score: 2

RE[7]: Comment by MOS6510
by zima on Thu 12th Jul 2012 15:08 UTC in reply to "RE[6]: Comment by MOS6510"
zima Member since:
2005-07-06

Ah, so they do something, well, illegal (honestly, "and you install them at your own legal risk" is silly, it would likely never result in prosecution of individual users; OTOH, they, VICE, choose to distribute those ROMs, and via sourceforge of all places) - hoping it will go under the radar... I wonder how long that might last, with by far the most popular C64 emulator - maybe Tulip isn't that persnickety after all.

PS. It seems Tulip is even non-existing by now... http://en.wikipedia.org/wiki/Tulip_Computers (historically ironic how Tulip just copied the BIOS of IBM PC) - and they got rid of Commodore stuff even earlier. Oh well, I guess the whole legal mess with (slices of) C= corpse might be not so bad.

Edited 2012-07-12 15:15 UTC

Reply Score: 2

More of this, please.
by dnstest on Mon 9th Jul 2012 12:28 UTC
dnstest
Member since:
2006-06-11

"More of this, please." - I second that!

Reply Score: 1

I'd be remiss...
by whartung on Mon 9th Jul 2012 17:43 UTC
whartung
Member since:
2005-07-06

I'd be remiss to not mention 6502.org.

It's an active forum with some 6502 grognards. One thread at the moment is the progress of guy tracing circuits of the 6502 from a micrograph of the chip.

Other threads involve some folks who are working on the "65Org16" CPU, which is essentially a 6502 with everything stretched to 16-Bits. They have running examples in FPGAs.

Others are working on 65816 boards.

Over Christmas break, I decided to write my own 6502 simulator, and an assembler, and I've got Fig-Forth running on it, so the trials and tribulations of that are posted over there. I'm in the processing of adding ANSI support to my simulators terminal so I can make a screen editor for the Forth.

Simply, if you're interested in the 6502 (not necessarily the Apple/C64/Atari), it's a great place to hang out.

However, I must recommend the Altirra Hardware Reference manual, available from www.virtualdub.org/altirra.html, which is just chock full of really crazy low level stuff that the developers of this Atari 800+ emulator discovered. You learn a lot about the nuances of hardware design when you try to reverse engineer it.

I'd also be remiss not to mention visual6502.org, which is a transistor simulation of the chip. If you want to know what happens when the NMI pins fires during a BRK instruction, this is the place to go.

The 6502 remains as having a pretty active following, the chips are still in production, it's a good chip and has a cool legacy to it.

Edited 2012-07-09 17:44 UTC

Reply Score: 4