mirror of
https://github.com/JohnSnape/6502code.git
synced 2026-03-11 10:41:58 +00:00
Rename move_block.txt to source/move_block.txt
This commit is contained in:
28
source/move_block.txt
Normal file
28
source/move_block.txt
Normal file
@@ -0,0 +1,28 @@
|
||||
;THIS SUBROUTINE MOVES A BLOCK OF DATA IN MEMORY. THE STARTING
|
||||
;ADDRESS OF THE DATA IS CONTAINED IN LOCATIONS $40 (LOW ADDRESS
|
||||
;BYTE) AND $41 (HIGH ADDRESS BYTE). THE STARTING ADDRESS OF
|
||||
;THE DESTINATION OF THE DATA IS CONTAINED IN LOCATIONS $42 (LOW
|
||||
;ADDRESS BYTE) AND $43 (HIGH ADDRESS BYTE). THE NUMBER OF BYTES
|
||||
;TO BE MOVED IS CONTAINED IN LOCATION $44.
|
||||
|
||||
MOVE8 LDX $44 /LOAD BYTE COUNT INTO X REGISTER
|
||||
SEC /CALCULATE MOVE DISPLACEMENT
|
||||
LDA $42
|
||||
SBC $40
|
||||
LDA $43
|
||||
SBC $41
|
||||
BMI DISPN /DISPLACEMENT NEGATIVE?
|
||||
LDY $44 /NO. START MOVE WITH LAST BYTE
|
||||
CONTI DEY
|
||||
LDA ($40),Y /LOAD BYTE FROM SOURCE LOCATION
|
||||
STA ($42),Y / AND STORE IT AT DESTINATION LOCATION
|
||||
DEX /DECREMENT BYTE COUNT
|
||||
BNE CONTI /LOOP UNTIL ALL BYTES MOVED
|
||||
RTS
|
||||
DISPN LDY #00 /START MOVE WITH FIRST BYTE
|
||||
CONT2 LDA ($40),Y /LOAD BYTE FROM SOURCE LOCATION
|
||||
STA ($42),Y / AND STORE IT AT DESTINATION LOCATION
|
||||
INY /INDEX TO NEXT BYTE
|
||||
DEX /DECREMENT BYTE COUNT
|
||||
BNE CONT2 /LOOP UNTIL ALL BYTES MOVED
|
||||
RTS
|
||||
Reference in New Issue
Block a user