mirror of
https://github.com/jeremysrand/apple2048.git
synced 2025-04-20 02:39:49 +00:00
162 lines
2.8 KiB
ArmAsm
162 lines
2.8 KiB
ArmAsm
;
|
|
; File: textpage.s
|
|
; Author: Jeremy Rand
|
|
; Date: July 23, 2014
|
|
;
|
|
; This file contains some assembly routines to more efficiently flip text pages.
|
|
;
|
|
|
|
.export _switchToPage2, _switchToPage1, _gsSwitchToPage2
|
|
|
|
.include "apple2.inc"
|
|
|
|
.A8
|
|
.I8
|
|
.PC02
|
|
|
|
_switchToPage2:
|
|
ldx #0
|
|
@L1:
|
|
lda $400,x ; Line 0
|
|
sta $800,x
|
|
lda $480,x ; Line 1
|
|
sta $880,x
|
|
lda $500,x ; Line 2
|
|
sta $900,x
|
|
lda $580,x ; Line 3
|
|
sta $980,x
|
|
lda $600,x ; Line 4
|
|
sta $a00,x
|
|
lda $680,x ; Line 5
|
|
sta $a80,x
|
|
lda $700,x ; Line 6
|
|
sta $b00,x
|
|
lda $780,x ; Line 7
|
|
sta $b80,x
|
|
|
|
lda $428,x ; Line 8
|
|
sta $828,x
|
|
lda $4a8,x ; Line 9
|
|
sta $8a8,x
|
|
lda $528,x ; Line 10
|
|
sta $928,x
|
|
lda $5a8,x ; Line 11
|
|
sta $9a8,x
|
|
lda $628,x ; Line 12
|
|
sta $a28,x
|
|
lda $6a8,x ; Line 13
|
|
sta $aa8,x
|
|
lda $728,x ; Line 14
|
|
sta $b28,x
|
|
lda $7a8,x ; Line 15
|
|
sta $ba8,x
|
|
|
|
lda $450,x ; Line 16
|
|
sta $850,x
|
|
lda $4d0,x ; Line 17
|
|
sta $8d0,x
|
|
lda $550,x ; Line 18
|
|
sta $950,x
|
|
lda $5d0,x ; Line 19
|
|
sta $9d0,x
|
|
lda $650,x ; Line 20
|
|
sta $a50,x
|
|
lda $6d0,x ; Line 21
|
|
sta $ad0,x
|
|
lda $750,x ; Line 22
|
|
sta $b50,x
|
|
lda $7d0,x ; Line 23
|
|
sta $bd0,x
|
|
|
|
inx
|
|
cpx #40
|
|
beq @L2
|
|
jmp @L1
|
|
@L2:
|
|
stz HISCR
|
|
rts
|
|
|
|
|
|
_switchToPage1:
|
|
stz LOWSCR
|
|
rts
|
|
|
|
|
|
_gsSwitchToPage2:
|
|
|
|
.P816
|
|
clc
|
|
xce
|
|
rep #$30
|
|
|
|
.A16
|
|
.I16
|
|
ldx #0
|
|
@L3:
|
|
lda $400,x ; Line 0
|
|
sta $e00800,x
|
|
lda $480,x ; Line 1
|
|
sta $e00880,x
|
|
lda $500,x ; Line 2
|
|
sta $e00900,x
|
|
lda $580,x ; Line 3
|
|
sta $e00980,x
|
|
lda $600,x ; Line 4
|
|
sta $e00a00,x
|
|
lda $680,x ; Line 5
|
|
sta $e00a80,x
|
|
lda $700,x ; Line 6
|
|
sta $e00b00,x
|
|
lda $780,x ; Line 7
|
|
sta $e00b80,x
|
|
|
|
lda $428,x ; Line 8
|
|
sta $e00828,x
|
|
lda $4a8,x ; Line 9
|
|
sta $e008a8,x
|
|
lda $528,x ; Line 10
|
|
sta $e00928,x
|
|
lda $5a8,x ; Line 11
|
|
sta $e009a8,x
|
|
lda $628,x ; Line 12
|
|
sta $e00a28,x
|
|
lda $6a8,x ; Line 13
|
|
sta $e00aa8,x
|
|
lda $728,x ; Line 14
|
|
sta $e00b28,x
|
|
lda $7a8,x ; Line 15
|
|
sta $e00ba8,x
|
|
|
|
lda $450,x ; Line 16
|
|
sta $e00850,x
|
|
lda $4d0,x ; Line 17
|
|
sta $e008d0,x
|
|
lda $550,x ; Line 18
|
|
sta $e00950,x
|
|
lda $5d0,x ; Line 19
|
|
sta $e009d0,x
|
|
lda $650,x ; Line 20
|
|
sta $e00a50,x
|
|
lda $6d0,x ; Line 21
|
|
sta $e00ad0,x
|
|
lda $750,x ; Line 22
|
|
sta $e00b50,x
|
|
lda $7d0,x ; Line 23
|
|
sta $e00bd0,x
|
|
|
|
inx
|
|
inx
|
|
cpx #40
|
|
beq @L4
|
|
jmp @L3
|
|
|
|
@L4:
|
|
sep #$30
|
|
.A8
|
|
.I8
|
|
sec
|
|
xce
|
|
.PC02
|
|
stz HISCR
|
|
rts
|