mirror of
https://github.com/a2-4am/4cade.git
synced 2025-02-17 07:31:19 +00:00
load precomputed.3bit data from external files and transform it at runtime
This commit is contained in:
parent
4354aa3148
commit
31c4f73ae6
@ -23,6 +23,8 @@
|
|||||||
; DC00..DFFF - HGR font data
|
; DC00..DFFF - HGR font data
|
||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
!ifndef _CONSTANTS_ {
|
||||||
|
|
||||||
; soft switches
|
; soft switches
|
||||||
KBD = $C000 ; last key pressed (if any)
|
KBD = $C000 ; last key pressed (if any)
|
||||||
CLEARKBD = $C010 ; clear last key pressed
|
CLEARKBD = $C010 ; clear last key pressed
|
||||||
@ -153,3 +155,6 @@ itraverse = $D8E0
|
|||||||
ldrhi = $56
|
ldrhi = $56
|
||||||
namlo = $57
|
namlo = $57
|
||||||
namhi = $58
|
namhi = $58
|
||||||
|
|
||||||
|
_CONSTANTS_=*
|
||||||
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2019 by 4am
|
;(c) 2019-2020 by 4am/qkumba
|
||||||
;
|
;
|
||||||
!cpu 6502
|
!cpu 6502
|
||||||
!to "build/FX/APPLE",plain
|
!to "build/FX/APPLE",plain
|
||||||
@ -7,8 +7,10 @@
|
|||||||
|
|
||||||
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
||||||
|
|
||||||
+FX_PRECOMPUTED_3BIT Coordinates
|
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||||
|
|
||||||
Coordinates
|
CoordinatesFile
|
||||||
!source "src/fx/fx.hgr.apple.data.a"
|
!byte 13
|
||||||
!byte $80
|
!text "FX/APPLE.DATA"
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
!cpu 6502
|
||||||
|
!to "build/FX/APPLE.DATA",plain
|
||||||
|
*=$6B00
|
||||||
!byte $1F,%00010100
|
!byte $1F,%00010100
|
||||||
!byte $1F,%11110011
|
!byte $1F,%11110011
|
||||||
!byte $20,%11110011
|
!byte $20,%11110011
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2019 by 4am
|
;(c) 2019-2020 by 4am/qkumba
|
||||||
;
|
;
|
||||||
!cpu 6502
|
!cpu 6502
|
||||||
!to "build/FX/APPLE.IN",plain
|
!to "build/FX/APPLE.IN",plain
|
||||||
@ -7,8 +7,11 @@
|
|||||||
|
|
||||||
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
||||||
|
|
||||||
+FX_PRECOMPUTED_3BIT Coordinates
|
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||||
|
+FX_REVERSE_3BIT
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||||
|
|
||||||
Coordinates
|
CoordinatesFile
|
||||||
!source "src/fx/fx.hgr.apple.in.data.a"
|
!byte 13
|
||||||
!byte $80
|
!text "FX/APPLE.DATA"
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2019 by 4am
|
;(c) 2019-2020 by 4am/qkumba
|
||||||
;
|
;
|
||||||
!cpu 6502
|
!cpu 6502
|
||||||
!to "build/FX/APPLE.RIPPLE",plain
|
!to "build/FX/APPLE.RIPPLE",plain
|
||||||
@ -7,8 +7,11 @@
|
|||||||
|
|
||||||
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
||||||
|
|
||||||
+FX_PRECOMPUTED_3BIT Coordinates
|
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||||
|
+FX_RIPPLE_3BIT
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||||
|
|
||||||
Coordinates
|
CoordinatesFile
|
||||||
!source "src/fx/fx.hgr.apple.ripple.data.a"
|
!byte 13
|
||||||
!byte $80
|
!text "FX/APPLE.DATA"
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2019 by 4am
|
;(c) 2019-2020 by 4am/qkumba
|
||||||
;
|
;
|
||||||
; https://thenounproject.com/ArtZ91/collection/pure-lines/?i=550425
|
; https://thenounproject.com/ArtZ91/collection/pure-lines/?i=550425
|
||||||
; Lightning Bolt by Arthur Shlain from the Noun Project
|
; Lightning Bolt by Arthur Shlain from the Noun Project
|
||||||
@ -10,8 +10,10 @@
|
|||||||
|
|
||||||
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
||||||
|
|
||||||
+FX_PRECOMPUTED_3BIT Coordinates
|
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||||
|
|
||||||
Coordinates
|
CoordinatesFile
|
||||||
!source "src/fx/fx.hgr.bolt.data.a"
|
!byte 12
|
||||||
!byte $00
|
!text "FX/BOLT.DATA"
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
!cpu 6502
|
||||||
|
!to "build/FX/BOLT.DATA",plain
|
||||||
|
*=$6B00
|
||||||
!byte $1F,%11110011
|
!byte $1F,%11110011
|
||||||
!byte $1F,%00010100
|
!byte $1F,%00010100
|
||||||
!byte $1F,%00110100
|
!byte $1F,%00110100
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2019 by 4am
|
;(c) 2019-2020 by 4am/qkumba
|
||||||
;
|
;
|
||||||
; https://thenounproject.com/ArtZ91/collection/pure-lines/?i=550425
|
; https://thenounproject.com/ArtZ91/collection/pure-lines/?i=550425
|
||||||
; Lightning Bolt by Arthur Shlain from the Noun Project
|
; Lightning Bolt by Arthur Shlain from the Noun Project
|
||||||
@ -10,8 +10,11 @@
|
|||||||
|
|
||||||
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
||||||
|
|
||||||
+FX_PRECOMPUTED_3BIT Coordinates
|
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||||
|
+FX_REVERSE_3BIT
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||||
|
|
||||||
Coordinates
|
CoordinatesFile
|
||||||
!source "src/fx/fx.hgr.bolt.in.data.a"
|
!byte 12
|
||||||
!byte $00
|
!text "FX/BOLT.DATA"
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2019 by 4am
|
;(c) 2019-2020 by 4am/qkumba
|
||||||
;
|
;
|
||||||
; https://thenounproject.com/ArtZ91/collection/pure-lines/?i=550425
|
; https://thenounproject.com/ArtZ91/collection/pure-lines/?i=550425
|
||||||
; Lightning Bolt by Arthur Shlain from the Noun Project
|
; Lightning Bolt by Arthur Shlain from the Noun Project
|
||||||
@ -10,8 +10,11 @@
|
|||||||
|
|
||||||
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
||||||
|
|
||||||
+FX_PRECOMPUTED_3BIT Coordinates
|
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||||
|
+FX_RIPPLE_3BIT
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||||
|
|
||||||
Coordinates
|
CoordinatesFile
|
||||||
!source "src/fx/fx.hgr.bolt.ripple.data.a"
|
!byte 12
|
||||||
!byte $00
|
!text "FX/BOLT.DATA"
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2019 by 4am
|
;(c) 2019-2020 by 4am/qkumba
|
||||||
;
|
;
|
||||||
!cpu 6502
|
!cpu 6502
|
||||||
!to "build/FX/FLOWER",plain
|
!to "build/FX/FLOWER",plain
|
||||||
@ -7,8 +7,10 @@
|
|||||||
|
|
||||||
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
||||||
|
|
||||||
+FX_PRECOMPUTED_3BIT Coordinates
|
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||||
|
|
||||||
Coordinates
|
CoordinatesFile
|
||||||
!source "src/fx/fx.hgr.flower.data.a"
|
!byte 14
|
||||||
!byte $80
|
!text "FX/FLOWER.DATA"
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
!cpu 6502
|
||||||
|
!to "build/FX/FLOWER.DATA",plain
|
||||||
|
*=$6B00
|
||||||
!byte $1F,%00010100
|
!byte $1F,%00010100
|
||||||
!byte $1F,%00110100
|
!byte $1F,%00110100
|
||||||
!byte $1F,%11110011
|
!byte $1F,%11110011
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2019 by 4am
|
;(c) 2019-2020 by 4am/qkumba
|
||||||
;
|
;
|
||||||
!cpu 6502
|
!cpu 6502
|
||||||
!to "build/FX/FLOWER.IN",plain
|
!to "build/FX/FLOWER.IN",plain
|
||||||
@ -7,8 +7,11 @@
|
|||||||
|
|
||||||
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
||||||
|
|
||||||
+FX_PRECOMPUTED_3BIT Coordinates
|
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||||
|
+FX_REVERSE_3BIT
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||||
|
|
||||||
Coordinates
|
CoordinatesFile
|
||||||
!source "src/fx/fx.hgr.flower.in.data.a"
|
!byte 14
|
||||||
!byte $80
|
!text "FX/FLOWER.DATA"
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2019 by 4am
|
;(c) 2019-2020 by 4am/qkumba
|
||||||
;
|
;
|
||||||
!cpu 6502
|
!cpu 6502
|
||||||
!to "build/FX/FLOWER.RAD",plain
|
!to "build/FX/FLOWER.RAD",plain
|
||||||
@ -7,8 +7,10 @@
|
|||||||
|
|
||||||
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
||||||
|
|
||||||
+FX_PRECOMPUTED_3BIT Coordinates
|
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||||
|
|
||||||
Coordinates
|
CoordinatesFile
|
||||||
!source "src/fx/fx.hgr.flower.radial.data.a"
|
!byte 18
|
||||||
!byte $80
|
!text "FX/FLOWER.RAD.DATA"
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
!cpu 6502
|
||||||
|
!to "build/FX/FLOWER.RAD.DATA",plain
|
||||||
|
*=$6B00
|
||||||
!byte $1F,%00010100
|
!byte $1F,%00010100
|
||||||
!byte $1F,%00110100
|
!byte $1F,%00110100
|
||||||
!byte $1F,%11110011
|
!byte $1F,%11110011
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2019 by 4am
|
;(c) 2019-2020 by 4am/qkumba
|
||||||
;
|
;
|
||||||
!cpu 6502
|
!cpu 6502
|
||||||
!to "build/FX/FLOWER.RAD.IN",plain
|
!to "build/FX/FLOWER.RAD.IN",plain
|
||||||
@ -7,8 +7,11 @@
|
|||||||
|
|
||||||
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
||||||
|
|
||||||
+FX_PRECOMPUTED_3BIT Coordinates
|
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||||
|
+FX_REVERSE_3BIT
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||||
|
|
||||||
Coordinates
|
CoordinatesFile
|
||||||
!source "src/fx/fx.hgr.flower.radial.in.data.a"
|
!byte 18
|
||||||
!byte $80
|
!text "FX/FLOWER.RAD.DATA"
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2019 by 4am
|
;(c) 2019-2020 by 4am/qkumba
|
||||||
;
|
;
|
||||||
!cpu 6502
|
!cpu 6502
|
||||||
!to "build/FX/FLOWER.RAD.RIP",plain
|
!to "build/FX/FLOWER.RAD.RIP",plain
|
||||||
@ -7,8 +7,11 @@
|
|||||||
|
|
||||||
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
||||||
|
|
||||||
+FX_PRECOMPUTED_3BIT Coordinates
|
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||||
|
+FX_RIPPLE_3BIT
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||||
|
|
||||||
Coordinates
|
CoordinatesFile
|
||||||
!source "src/fx/fx.hgr.flower.radial.ripple.data.a"
|
!byte 18
|
||||||
!byte $80
|
!text "FX/FLOWER.RAD.DATA"
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2019 by 4am
|
;(c) 2019-2020 by 4am/qkumba
|
||||||
;
|
;
|
||||||
!cpu 6502
|
!cpu 6502
|
||||||
!to "build/FX/FLOWER.RIPPLE",plain
|
!to "build/FX/FLOWER.RIPPLE",plain
|
||||||
@ -7,8 +7,11 @@
|
|||||||
|
|
||||||
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
||||||
|
|
||||||
+FX_PRECOMPUTED_3BIT Coordinates
|
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||||
|
+FX_RIPPLE_3BIT
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||||
|
|
||||||
Coordinates
|
CoordinatesFile
|
||||||
!source "src/fx/fx.hgr.flower.ripple.data.a"
|
!byte 14
|
||||||
!byte $80
|
!text "FX/FLOWER.DATA"
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2019 by 4am
|
;(c) 2019-2020 by 4am/qkumba
|
||||||
;
|
;
|
||||||
!cpu 6502
|
!cpu 6502
|
||||||
!to "build/FX/MANDELBROT",plain
|
!to "build/FX/MANDELBROT",plain
|
||||||
@ -7,8 +7,10 @@
|
|||||||
|
|
||||||
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
||||||
|
|
||||||
+FX_PRECOMPUTED_3BIT Coordinates
|
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||||
|
|
||||||
Coordinates
|
CoordinatesFile
|
||||||
!source "src/fx/fx.hgr.mandelbrot.data.a"
|
!byte 18
|
||||||
!byte $80
|
!text "FX/MANDELBROT.DATA"
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
!cpu 6502
|
||||||
|
!to "build/FX/MANDELBROT.DATA",plain
|
||||||
|
*=$6B00
|
||||||
!byte $1F,%00010100
|
!byte $1F,%00010100
|
||||||
!byte $20,%00010100
|
!byte $20,%00010100
|
||||||
!byte $20,%00110100
|
!byte $20,%00110100
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2019 by 4am
|
;(c) 2019-2020 by 4am/qkumba
|
||||||
;
|
;
|
||||||
!cpu 6502
|
!cpu 6502
|
||||||
!to "build/FX/MANDELBROT.IN",plain
|
!to "build/FX/MANDELBROT.IN",plain
|
||||||
@ -7,8 +7,11 @@
|
|||||||
|
|
||||||
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
||||||
|
|
||||||
+FX_PRECOMPUTED_3BIT Coordinates
|
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||||
|
+FX_REVERSE_3BIT
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||||
|
|
||||||
Coordinates
|
CoordinatesFile
|
||||||
!source "src/fx/fx.hgr.mandelbrot.in.data.a"
|
!byte 18
|
||||||
!byte $80
|
!text "FX/MANDELBROT.DATA"
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2019 by 4am
|
;(c) 2019-2020 by 4am/qkumba
|
||||||
;
|
;
|
||||||
!cpu 6502
|
!cpu 6502
|
||||||
!to "build/FX/MANDELBROT.RIP",plain
|
!to "build/FX/MANDELBROT.RIP",plain
|
||||||
@ -7,8 +7,11 @@
|
|||||||
|
|
||||||
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
||||||
|
|
||||||
+FX_PRECOMPUTED_3BIT Coordinates
|
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||||
|
+FX_RIPPLE_3BIT
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||||
|
|
||||||
Coordinates
|
CoordinatesFile
|
||||||
!source "src/fx/fx.hgr.mandelbrot.ripple.data.a"
|
!byte 18
|
||||||
!byte $80
|
!text "FX/MANDELBROT.DATA"
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -12,6 +12,10 @@ hgrlo3c = $BD00 ; $80 bytes
|
|||||||
hgrhi3a = $BD80 ; $80 bytes
|
hgrhi3a = $BD80 ; $80 bytes
|
||||||
hgrhi3b = $BE00 ; $80 bytes
|
hgrhi3b = $BE00 ; $80 bytes
|
||||||
hgrhi3c = $BE80 ; $80 bytes
|
hgrhi3c = $BE80 ; $80 bytes
|
||||||
|
Coordinates3Bit= $6B00 ; pixel data is $5001 bytes ($5000 on disk + 1 byte as EOF marker)
|
||||||
|
; and for optimization we only support loading external files page-aligned
|
||||||
|
; and $BC00+ is used by the 3bit macros for data tables
|
||||||
|
; so we load at $6B00 and waste $FF bytes at $BB01+ but it's okay
|
||||||
|
|
||||||
!source "src/fx/macros.a"
|
!source "src/fx/macros.a"
|
||||||
|
|
||||||
@ -107,6 +111,119 @@ hgrhi3c = $BE80 ; $80 bytes
|
|||||||
sta <src3+1
|
sta <src3+1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
!macro FX_INITONCE_3BIT .CoordinatesFile, .Start {
|
||||||
|
InitOnce
|
||||||
|
bit .Start
|
||||||
|
lda #$4C
|
||||||
|
sta InitOnce
|
||||||
|
+READ_RAM2_WRITE_RAM2
|
||||||
|
+LOAD_FILE_AT .CoordinatesFile, Coordinates3Bit
|
||||||
|
+READ_RAM1_WRITE_RAM1
|
||||||
|
lda #$80
|
||||||
|
sta Coordinates3Bit + $5000
|
||||||
|
}
|
||||||
|
|
||||||
|
!macro FX_REVERSE_3BIT {
|
||||||
|
ldy #0 ; <Coordinates3Bit
|
||||||
|
sty $f0
|
||||||
|
lda #>Coordinates3Bit
|
||||||
|
sta $f1
|
||||||
|
lda #<(Coordinates3Bit + $5000 - 2)
|
||||||
|
sta $f2
|
||||||
|
lda #>(Coordinates3Bit + $5000 - 2)
|
||||||
|
sta $f3
|
||||||
|
|
||||||
|
ldx #$28
|
||||||
|
clc
|
||||||
|
!byte $24
|
||||||
|
- sec
|
||||||
|
-- lda ($f0), y
|
||||||
|
pha
|
||||||
|
lda ($f2), y
|
||||||
|
sta ($f0), y
|
||||||
|
pla
|
||||||
|
sta ($f2), y
|
||||||
|
iny
|
||||||
|
bcc -
|
||||||
|
ldy #0
|
||||||
|
!byte $24
|
||||||
|
- clc
|
||||||
|
inc $f0
|
||||||
|
bne +
|
||||||
|
inc $f1
|
||||||
|
dex
|
||||||
|
beq ++
|
||||||
|
+ lda $f2
|
||||||
|
bne +
|
||||||
|
dec $f3
|
||||||
|
+ dec $f2
|
||||||
|
bcs -
|
||||||
|
bcc -- ; always branches
|
||||||
|
++
|
||||||
|
}
|
||||||
|
|
||||||
|
!macro FX_RIPPLE_3BIT {
|
||||||
|
ldx #$1B
|
||||||
|
- lda ripplezp, x
|
||||||
|
sta $e0, x
|
||||||
|
dex
|
||||||
|
bpl -
|
||||||
|
|
||||||
|
--- ldx #$0c
|
||||||
|
-- ldy $ee, x
|
||||||
|
lda $ef, x
|
||||||
|
jsr aslmod
|
||||||
|
sty $ee, x
|
||||||
|
sta $ef, x
|
||||||
|
sty $ec
|
||||||
|
clc
|
||||||
|
adc #>Coordinates3Bit
|
||||||
|
sta $ed
|
||||||
|
ldy #0
|
||||||
|
!byte $24
|
||||||
|
- sec
|
||||||
|
lda ($ec), y
|
||||||
|
pha
|
||||||
|
lda $de, x
|
||||||
|
sta ($ec), y
|
||||||
|
pla
|
||||||
|
sta $de, x
|
||||||
|
inx
|
||||||
|
iny
|
||||||
|
bcc -
|
||||||
|
dex
|
||||||
|
dex
|
||||||
|
dex
|
||||||
|
dex
|
||||||
|
bne --
|
||||||
|
dec $ee
|
||||||
|
bne ---
|
||||||
|
dec $ef
|
||||||
|
bpl ---
|
||||||
|
bmi ++ ; always branches
|
||||||
|
aslmod
|
||||||
|
jsr +
|
||||||
|
+ cmp #$28
|
||||||
|
bcc +
|
||||||
|
iny
|
||||||
|
+ pha
|
||||||
|
tya
|
||||||
|
asl
|
||||||
|
tay
|
||||||
|
pla
|
||||||
|
rol
|
||||||
|
cmp #$50
|
||||||
|
bcc +
|
||||||
|
sbc #$50
|
||||||
|
+ rts
|
||||||
|
ripplezp
|
||||||
|
!byte $1F,$F3,$20,$F3,$20,$14,$20,$D3
|
||||||
|
!byte $1E,$F3,$1F,$54,$00,$00,$AA,$06
|
||||||
|
!byte $02,$00,$04,$00,$06,$00,$0C,$00
|
||||||
|
!byte $16,$00,$1A,$00
|
||||||
|
++
|
||||||
|
}
|
||||||
|
|
||||||
!macro FX_PRECOMPUTED_3BIT .coords {
|
!macro FX_PRECOMPUTED_3BIT .coords {
|
||||||
+BUILD_3BIT_HGR_LOOKUP_TABLES
|
+BUILD_3BIT_HGR_LOOKUP_TABLES
|
||||||
+BUILD_EXTRA_COLS
|
+BUILD_EXTRA_COLS
|
||||||
@ -116,9 +233,7 @@ hgrhi3c = $BE80 ; $80 bytes
|
|||||||
sta $0, x
|
sta $0, x
|
||||||
dex
|
dex
|
||||||
bpl -
|
bpl -
|
||||||
lda #0
|
jmp $1
|
||||||
pha
|
|
||||||
pha
|
|
||||||
start
|
start
|
||||||
!pseudopc 0 {
|
!pseudopc 0 {
|
||||||
Exit3Bit rts
|
Exit3Bit rts
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
!ifndef _HGRMACROS_ {
|
!ifndef _FX_MACROS_ {
|
||||||
!source "src/macros.a"
|
!source "src/macros.a"
|
||||||
|
|
||||||
; .hgrlo, .hgr1hi will each be filled with $C0 bytes
|
; .hgrlo, .hgr1hi will each be filled with $C0 bytes
|
||||||
@ -132,5 +132,5 @@
|
|||||||
++
|
++
|
||||||
}
|
}
|
||||||
|
|
||||||
_HGRMACROS_=*
|
_FX_MACROS_=*
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,9 @@
|
|||||||
; common assembler macros (6502 compatible)
|
; common assembler macros (6502 compatible)
|
||||||
;
|
;
|
||||||
|
|
||||||
|
!ifndef _MACROS_ {
|
||||||
|
!source "src/constants.a"
|
||||||
|
|
||||||
; for functions that take parameters on the stack
|
; for functions that take parameters on the stack
|
||||||
; set (PARAM) to point to the parameters and
|
; set (PARAM) to point to the parameters and
|
||||||
; move the stack pointer to the first byte after the parameters
|
; move the stack pointer to the first byte after the parameters
|
||||||
@ -382,3 +385,6 @@
|
|||||||
pla
|
pla
|
||||||
sta iCurBlockLo
|
sta iCurBlockLo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_MACROS_=*
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user