Skip to content

Instantly share code, notes, and snippets.

@JimmyDansbo
Created December 23, 2025 06:45
Show Gist options
  • Select an option

  • Save JimmyDansbo/835e800447155a2f92fa58b39daacba1 to your computer and use it in GitHub Desktop.

Select an option

Save JimmyDansbo/835e800447155a2f92fa58b39daacba1 to your computer and use it in GitHub Desktop.
Test of copying between VERA data0 and data1 where address of data0 is altered between copy's
!cpu w65c02
!macro SYS_LINE .main {
*=$801
!word .next_line ; Pointer to next BASIC line
!word $000A ; Line number $000A = 10
!byte $9E ; SYS BASIC token
!byte 48+(.main/1000)%10 ; Address where ASM starts in PETSCII
!byte 48+(.main/100)%10
!byte 48+(.main/10)%10
!byte 48+(.main/1)%10
!byte $00 ; End of BASIC line
.next_line:
!word $0000 ; End of BASIC program
}
vaddrl = $9F20
vaddrm = $9F21
vaddrh = $9F22
data0 = $9F23
data1 = $9F24
vctrl = $9F25
+SYS_LINE main
main:
jsr setupvmem
lda vctrl ; Select DATA0
and #$FE
sta vctrl
lda #$10 ; Data0 increment1, bank 0
sta vaddrh
stz vaddrl ; Data0 points to $00100
lda #$01
sta vaddrm
lda vctrl ; Select DATA1
ora #$01
sta vctrl
lda #$10 ; Data1 increment1, bank 0
sta vaddrh
stz vaddrl ; Data1 points to $01000
lda #$10
sta vaddrm
lda data0 ; Copy from data0 to data1
sta data1
lda data0
sta data1
lda vctrl ; Select DATA0
and #$FE
sta vctrl
stz vaddrl ; Data0 points to $00200
lda #$02
sta vaddrm
lda data0 ; Copy from data0 to data1
sta data1
lda data0
sta data1
rts
setupvmem:
lda vctrl ; Select DATA0
and #$FE
sta vctrl
lda #$10 ; Data0 increment1, bank 0
sta vaddrh
stz vaddrl ; Data0 points to $00100
lda #$01
sta vaddrm
lda #$aa
sta data0
sta data0
lda #$02 ; Data0 points to $00200
sta vaddrm
stz vaddrl
lda #$bb
sta data0
sta data0
rts
@JimmyDansbo
Copy link
Author

Build with: acme -f cbm -o VMEMCOPY.PRG vmem_copy.asm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment