asmgen/hisprite.s

285 lines
3.1 KiB
ArmAsm
Raw Normal View History

2016-09-10 18:04:57 +00:00
;
2016-12-21 22:03:28 +00:00
; hisprite.s
2016-09-10 18:04:57 +00:00
;
; Created by Quinn Dunki on 7/19/16
; Copyright (c) 2015 One Girl, One Laptop Productions. All rights reserved.
;
.org $6000
.include "macros.s"
; Softswitches
TEXT = $c050
HIRES1 = $c057
HIRES2 = $c058
2017-02-27 04:17:22 +00:00
HIRESPAGE1 = $c054
HIRESPAGE2 = $c055
RDPAGE2 = $c01c
2016-09-10 18:04:57 +00:00
; ROM entry points
COUT = $fded
ROMWAIT = $fca8
; Zero page locations we use (unused by Monitor, Applesoft, or ProDOS)
PARAM0 = $06
PARAM1 = $07
PARAM2 = $08
PARAM3 = $09
SCRATCH0 = $19
SCRATCH1 = $1a
2017-02-26 00:30:30 +00:00
HIRES_PAGE_L = $1b
HIRES_PAGE_H = $1c
2016-09-10 18:04:57 +00:00
; Macros
.macro BLITBYTE xPos,yPos,addr
lda #xPos
sta PARAM0
lda #yPos
sta PARAM1
lda #<addr
sta PARAM2
lda #>addr
sta PARAM3
jsr BlitSpriteOnByte
.endmacro
.macro BLIT xPos,yPos,addr
lda #xPos
sta PARAM0
lda #yPos
sta PARAM1
lda #<addr
sta PARAM2
lda #>addr
sta PARAM3
jsr BlitSprite
.endmacro
.macro WAIT
lda #$80
jsr $fca8
.endmacro
main:
jsr EnableHires
2017-02-26 00:30:30 +00:00
lda #$00
jsr VenetianFill
2016-09-10 18:04:57 +00:00
2017-02-26 00:30:30 +00:00
; lda #<bgFilename
; sta PARAM0
; lda #>bgFilename
; sta PARAM1
; jsr BloadHires
2016-09-10 18:04:57 +00:00
2017-02-27 04:17:22 +00:00
jsr WritePage2
2016-09-10 18:04:57 +00:00
ldx #0
;;;;
; stz PARAM0
; stz PARAM1
; jsr BOXW_MAG
;
; lda #10
; sta PARAM1
; jsr BOXW_MIX
;
; lda #20
; sta PARAM1
; jsr BOXW_ORG
;
; rts
2016-12-21 22:03:28 +00:00
;;;;
2016-09-10 18:04:57 +00:00
2016-12-21 22:03:28 +00:00
loop:
txa
sta PARAM0
lda #0
sta PARAM1
2016-09-10 18:04:57 +00:00
2017-02-27 04:17:22 +00:00
lda RDPAGE2
bmi loop_SavePage1
loop_SavePage2:
lda #<bgBuffer2
sta PARAM2
lda #>bgBuffer2
sta PARAM3
bra loop_SavePage
loop_SavePage1:
lda #<bgBuffer1
2016-12-21 22:03:28 +00:00
sta PARAM2
2017-02-27 04:17:22 +00:00
lda #>bgBuffer1
2016-12-21 22:03:28 +00:00
sta PARAM3
2017-02-27 04:17:22 +00:00
loop_SavePage:
2016-12-21 22:03:28 +00:00
jsr SaveBackground
2016-09-10 18:04:57 +00:00
2016-12-21 22:03:28 +00:00
jsr BOXW_MAG
2017-02-26 00:30:30 +00:00
lda #$60
2016-12-21 22:03:28 +00:00
jsr ROMWAIT
2016-09-10 18:04:57 +00:00
2017-02-26 00:30:30 +00:00
; Sync to VBL
2017-02-27 04:17:22 +00:00
;@1: lda $C019
; beq @1
; bpl @1
;@0: lda $C019
; bmi @0
jsr PageFlip
lda RDPAGE2
bmi loop_RestorePage1
2017-02-26 00:30:30 +00:00
2017-02-27 04:17:22 +00:00
loop_RestorePage2:
lda #<bgBuffer2
sta PARAM2
lda #>bgBuffer2
sta PARAM3
bra loop_RestorePage
loop_RestorePage1:
lda #<bgBuffer1
sta PARAM2
lda #>bgBuffer1
sta PARAM3
loop_RestorePage:
dec PARAM0
2016-12-21 22:03:28 +00:00
jsr RestoreBackground
2017-02-27 04:17:22 +00:00
inc PARAM0
2016-09-10 18:04:57 +00:00
2016-12-21 22:03:28 +00:00
inx
cpx #133
bne loop
2017-02-26 00:30:30 +00:00
; ldx #0
; jmp loop
2016-09-10 18:04:57 +00:00
rts
2017-02-27 04:17:22 +00:00
bgBuffer1:
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
bgBuffer2:
2016-12-21 22:03:28 +00:00
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
.byte 0
2017-02-27 04:17:22 +00:00
bgFilename:
.byte "KOL",0
2016-12-21 22:03:28 +00:00
.include "graphics.s"
2016-09-10 18:04:57 +00:00
.include "hgrtableX.s"
.include "hgrtableY.s"
.include "spritegen0.s"
2017-02-26 00:30:30 +00:00
;.include "spritegen1.s"
;.include "spritegen2.s"
;.include "spritegen3.s"
;.include "spritegen4.s"
2016-09-10 18:04:57 +00:00
; Suppress some linker warnings - Must be the last thing in the file
.SEGMENT "ZPSAVE"
.SEGMENT "EXEHDR"
.SEGMENT "STARTUP"
.SEGMENT "INIT"
.SEGMENT "LOWCODE"