newsence
來源篩選

Ask HN: Books to Learn 6502 Assembly and the Apple II

Hacker News

A Hacker News discussion seeking book recommendations for learning 6502 assembly language and programming for the Apple II platform. Participants share insights on the relevance of BASIC and the value of low-level programming skills.

newsence

Ask HN:學習 6502 組合語言與 Apple II 的書籍推薦

Hacker News
大約 1 個月前

AI 生成摘要

Hacker News 上的討論串,尋求學習 6502 組合語言及 Apple II 平台程式設計的書籍推薦。參與者分享了對 BASIC 的看法以及低階程式設計技能的價值。

Ask HN: Books to learn 6502 ASM and the Apple II | Hacker News

Image Image

if you think this is impressive, I once opened a modal dialog on an Apple IIGS in 65C816 assembly

I don't think you need to learn BASIC, if you know concepts like conditionals and looping and indexing. It is interesting to compare the higher-level language of the time with its companion assembly. And you might find yourself writing BASIC programs to complement your assembly, if you stick to that platform.

A friend dropped me a BASIC program that ran and wrote text to the Apple IIGS border. He asked me to figure it out, because it wasn't obvious what was going on. OG hacker puzzle... it was a BASIC program that jumped to hidden assembly after the apparent end of the text file (hidden chars maybe, I forget) and the assembly was changing the border at appropriate rate to "draw" on it. Those were the days... trying to find some reference to this and am failing.

I certainly credit my stack-frame debugging capability to dealing with that stuff so long ago. Oddly enough, I didn't really find it helpful for computer architecture class. Just because you know registers exists and how to manipulate them, doesn't exactly map architecting modern hardware system. But being fluent in logic operations and bit-twiddling and indexing does help a lot.

reply

Image

https://www.goodreads.com/en/book/show/5011686-apple-machine...

Here is an interesting article on porting a BASIC game for the Apple II to GW BASIC:

https://nanochess.org/akalabeth.html

and it includes a link to the documented source code for Akalabeth (also known as Ultima 0)

Somewhere, there's an article discussing the assembly-language like bit-blitting used to draw the high-res graphics in a timely fashion and the variable/memory management techniques needed to drive that which I'm sure a bit of searching will turn up (or one can derive it from the source).

reply

Image

I have fond memories from the late 1980s of trying to get the assembler contained within this book working, typing line after line of the MLX listing in. Unfortunately I never did finish it back then.

A week or so ago I got the urge to complete this project and I literally just finished getting the source in it to a point where it can be compiled online and then within an emulator: https://github.com/jlmcgraw/LADS_DOS33

reply

Image

The Assembly Lines book -- https://archive.org/details/AssemblyLinesCompleteWagner

Understanding the Apple IIe -- https://archive.org/details/understandingapp0000sath

Understanding the Apple II -- https://archive.org/details/understanding_the_apple_ii

reply

Image

reply

Image

reply

Image

And I have a vague memory of this book:
https://archive.org/details/aiimp/mode/2up

Not sure what level you're at, but I can't remember if this is the text Jef Raskin wrote, but it's a decent backgrounder:
https://archive.org/details/aiirm/mode/2up

reply

Image

reply

Image

https://www.google.com/search?q=apple+2+game+programming+tut...

Formulating questions is a valuable skill as is finding existing resources.

As some one from that era, it is truly amazing how much information there is online about all aspects of 8 bit computers

reply

Image

reply

Image

reply

Image

This book specifically targets beginners that are new to 6502 assembly. The examples cover all of the 1980s-era computers including the Apple II. It's free on archive.org and the introductory chapters are worth reading.

reply

Image

reply

Image

https://archive.org/details/Advanced_6502_Programming/mode/2...

reply

Image

reply

Image

reply

Image

For actual 6502 programming you'll need a dedicated 6502 assembly programming book, for example the aforementioned Rodney Zaks books.

reply

Image

reply

Image

https://6502.org/

Check the books section and find something that compels you.

Also, don't forget the HUGE number of resources for 6502 assembly programming that are available in the https://archive.org/ magazine and book sections:

https://archive.org/search?query=6502

Rodney Zaks' books are great - I like especially "6502 Games", which taught me a lot back in the day:

https://archive.org/download/6502g/6502Games.pdf

I'm also especially fond of the easy6502 emulator - its a very handy tool to have while studying 6502 techniques:

https://skilldrick.github.io/easy6502/

Its not absolutely necessary to learn BASIC before Assembly, but it will definitely help you understand the resources of the machine better if you can debug BASIC ROM code. My personal 6502 platform of choice, the Oric-1/Atmos machines, has a pretty great ROM disassembly available, from which a lot of great knowledge can be obtained - but it does of course first require an undersanding of BASIC.

In case you're curious, the Oric-1 ROM Disassembly:

https://library.defence-force.org/books/content/oric_advance...

(You can get an Oric emulator named Oricutron, or you can access a virtual Oric here: https://oric.games/ ..)

Good luck!

reply

Image

Id look for a book that targets Assembly programming on a Apple 2, ie not a book on general 6502 programming.

I googled phrase
Apple 2 assembly language programming for beginners?

and lots of very good looking links popped up.

You aim is a challenging task. Much to learn. Good luck. However entirely do able these days.

My background is electronics engineer, embedded programing on in assembler (some Motorola processors and others) and C for a few years before moving on to other things ....

The book
Assembly Lines: The Complete Book
available as a FREE PDF download from .... site https://ct6502.org/product/assembly-lines-the-complete-book/

INCLUDES
All 33 of Roger Wagner’s Assembly Lines articles from Softalk magazine, plus appendices, in one complete volume.

reply

Image

reply

Image

reply

Image

Getting a 6502 kit from Ben Eater, and walking though how the CPU works will implicitly show how languages abstracted away whats actually happening. And more importantly, the skills necessary to understand how to write efficient programs.

https://www.youtube.com/watch?v=LnzuMJLZRdU&list=PLowKtXNTBy...

https://eater.net/6502

Starting with a simple architecture is highly recommended. =3

reply

Image

reply

Image

reply

Image

They say "one always ends up coding in whatever your first language was... regardless of what language you are using".

People could always bring up the BASIC software Rom at the end of the build if interest arises after learning how a simple computer works. =3

https://github.com/chelsea6502/BeebEater

reply

Image

Randy Hyde the creator of the Lisa assembler.

https://archive.org/details/A2_Hyde_6502_Asm_Lang/mode/1up

Ken Williams of Sierra OnLine fame.

https://vintageapple.org/apple_ii/pdf/Apple_II_Computer_Grap...

reply

Image

reply

Image

reply

Image