Open main menu

CDOT Wiki β

Changes

6502 Assembly Language Lab (Old Version)

560 bytes added, 10:18, 13 January 2020
no edit summary
* [[6502 Emulator]]
* [[6502 Emulator Example Code]]
* Opcode/Instruction References
** [http://www.6502.org/tutorials/6502opcodes.html 6502 Opcodes with Register Definitions]
** [https://www.masswerk.at/6502/6502_instruction_set.html 6502 Opcodes with Detailed Operation Information]
== Lab 1 ==
=== Setup ===
1. Organize a group of 4-6 students around one of the monitor/whiteboard groups in the classroom. Arrange the furniture so that everyone has a comfortable view of the display.
 
2. Gather these supplies:
* HDMI cable
* Whiteboard markers
 3. Select one person to be the "Driver", who will type/operate the computer for the group. That person should connect a device (laptop, table) to the HDMI display and open the [[6502 Emulator]] at [http://6502.cdot.systems] as well as this page. 4. Decide how group results will be shared between the members of the group. (Suggestion: consider using a git repository).
{{Admon/important|Save Your Work|The emulator '''does not''' save your work. Remember to periodically save it to a file (copy-and-paste the code).}}
=== Bitmap Code ===
# 4. Paste this code into the emulator:
lda #$00 ; set a pointer at $40 to point to $0200
sta $40
cpx #$06 ; compare with 6
bne loop ; continue until done all pages
 
5. Test the code by pressing the Assemble button, then the Run button. If the there are any errors assembling (compiling) the code, they will appear in the message area at the bottom of the page. Make sure the code is running correctly and that everyone in your group understands how it works.
4. Test the code by pressing the Assemble button, then the Run button. If the there are any errors assembling (compiling) the code, they will appear in the message area at the bottom of the page. Make sure the code is running correctly and that everyone in your group understands how it works.56. Add this instruction after the <code>loop:</code> label and before the <code>sta ($40),y</code> instruction:
tya
67. What visual effect does this cause, and how many colours are on the screen? Why?78. Add this instruction after the <code>tya</code>:
lsr
89. What visual effect does this cause, and how many colours are on the screen? Why?910. Repeat the above tests with two, three, four, and five <code>lsr</code> instructions in a row. Describe and explain the effect in each case.1011. Repeat the tests using <code>asl</code> instructions instead of <code>lsr</code> instructions. Describe and explain the effect in each case.1112. Remove the <code>tya</code> and all <code>asl</code> and <code>lsr</code> instructions.1213. The original code includes one <code>iny</code> instruction. Test with one to five consecutive <code>iny</code> instructions. Describe and explain the effect in each case. '''Note:''' ensure that the Speed slider is on its lowest setting (left) for these experiments.
=== Writing Code, Part 1 ===
14. Write code to draw a green line across the top of the bitmap screen and a blue line across the bottom.
=== Writing Code, Part 2 ===
15. Write code to draw a yellow line down the left side of the screen and a purple line down the right side.  
== Write-Up ==
Post an entry on your blog describing your experiments in this lab. Include:
1. # An introduction, so that someone who happens across your blog will understand the context of what you're writing about.2. # The results from the ''Bitmap Code'' portion of the lab, describing what happened in each case and the reasons for it.3. # The results from the two ''Writing Code'' portions of the lab, including the code, a description of how the code works, and the results produced.4. # Your experiences with this lab -- your impressions of the Assembly Language, what you learned, and your reflections of the process. Remember to follow the [[Blog Guidelines]] as you write.