Assembly Lines: The Book - A Beginners Guide to 6502 Programming on the Apple II
Introduction
One often gets the impression that programming in assembly language is some very difficult and obscure technique used only by those advanced programmers. As it happens, assembly language is merely different, and if you have successfully used Integer or Applesoft Basic to do some programming, there's no reason why you can't use assembly language to your advantage in your own programs. This book will take a rather unorthodox approach to explaining assembly programming. Because you are presumably somewhat familiar with Basic, we will draw many parallels between various assembly language techniques and their Basic counterparts. An important factor in learning anything new is a familiar framework in which to fit the new information. Your knowledge of Basic will provide that framework.
CONTENTS
1 APPLE'S ARCHITECTURE . . . . . . . . . . . . . .. . . . . . . . . . . . . . . .. . . . . . . . . . 1 6502 Operation. Memory Locations. Hexadecimal Notation. 2 ASSEMBLERS ........................................................ 13 General Discussion. Source Code. Object Code. Source Code Fields. Pseudo Opcodes. Load/Store Opcodes. 3 LOOPS and COUNTERS .......................................... 23 Binary Numbers. The Status Register. Incrementing and Decrementing. Looping with HNF. 4 LOOPS, BRANCHES, COUT, and PADDLES .............. 31 Looping with BFQ. Branch Offsets and Reverse Branches. screen Output using COlJ r. Reading a Game Paddle. Transfer Commands. 5 I/O ROUTINES using MONITOR and KEYBOARDS .......................................................... 41 Review of Concepts. Compare Commands and Carry Flag. Using Monitor Programs for I/O Routines. Reading Data from Keyboard. 6 ADDRESSING MODES ........................................... 51 Immediate, Absolute, Zero Page, Implicit/Implied, and Relative Addressing Modes. Indexed Addressing. Storing Pure Data. 7 SOUND GENERATION ROUTINES .......................... 61 Delays. Altering Program Length. Delay Value in Memory. Delay from Keyboard and Paddles. 8 THE STACK ........................................................... 71 LIFO. Stack Pointer. l'l!A !'LA. Stack Storage Capacitv. 9 ADDITION and SUBTRACTION .............................. 75 Binary Numbers. AllC. Clearing the Carrv. Two-Byte Addition. SHC. Setting Carry for Subtraction. Positive and Negative Numbers. Ones' Complement. Twos' Complement. Sign Flag
10 DOS and DISK ACCESS .......................................... 89 Disk Access. Overview of DOS. Diskette Organization. Modifying Access Utilities. 11 SHIFT OPERATORS and LOGICAL OPERATORS ......................................................... 103 Shift Operators. Logical Operators. AND. Operational vs. Processing Modes. Flow of Control. Inverse Flag. Masking. Inclusive OR. Exclusive OR. 12 I/O ROUTINES ...................................................... 121 Print Routines: Data Type; Special Type. Manipulating the Stack Return Address. Input Routines: Binary Input; Combination Applesoft/ Assembly Language. 13 READING/WRITING FILES on DISK ....................... 129 BlLOADIBSAVE. Name File Program using String and Single Key Input, Print, and nos Command Routines. Text Files. Ol'EN!READ, OPEN/WRITE. Simulating Program Execution: LA'JC, CCRLIN, Memory Location $33. 14 SPECIAL PROGRAMMING TECHNIQUES ....................................................... 145 Relocatable vs. Nonrelocatabk Code. JM!' Commands. Determining Program Location. JSR Simulations. Self-Modifying Code. Indirect Jumps. Appendix A ................................................................. 163 Contest. Appendix B ................................................................. 171 Assembly Language Commands: Description and Uses. Appendix C ................................................................. 243 6502 Instruction Set. Appendix D ................................................................. 259 Monitor Subroutines. Appendix E ................................................................. 263 ASCII Code and 1ic'xt Screen Charts.
This exhibit has a reference ID of CH33248. Please quote this reference ID in any communication with the Centre for Computing History.
Click on the Images For Detail
Founding Sponsors
Heritage Lottery Funded
donate to us!
Be_part_of_our_story...
Since opening at the end of 2013, over 5,000 children have visited the Centre. These children deserve a space which is engaging and instructive, where they can feel a sense of adventure, exploration and surprise!
Please be assured that any amount you feel able to donate will make an immediate and significant impact.
join_our_maillist!
Keep_up_to_date...
Join our Mailing List by adding your email address below and be kept up to date with lots of information including: