add fx.hgr.diagonal.a

This commit is contained in:
4am 2018-10-28 22:59:51 -04:00
parent 83404fb528
commit 8e72f1d54f
5 changed files with 111 additions and 68 deletions

View File

@ -1 +1 @@
# # Mega-Attract-Mode configuration file # # Mega-Attract-Mode is split into modules. Each module can be a # short slideshow or a self-running demo (like a game's built-in # 'attract mode'). Modules are run in the order listed here, one # after the next, until interrupted by user input. The last-run # module is tracked in the master prefs file. # # Format: # key=value # # value must be one of # 1 for HGR slideshow (key is a file containing a list of HGR graphics) # 2 for DHGR slideshow (key is a file containing a list of DHGR graphics) # 3 for self-running demo (key is an executable binary file) # # Blank lines and lines beginning with '#' are ignored (like this one!) # A line beginning with '[' terminates the parsing # SHORT.CONF=1 WAVY.NAVY=3 FAVORITES.CONF=1 AB.CONF=1 BRODERBUND.CONF=1 DHGR.CONF=2 ACTIVISION.CONF=1 CD.CONF=1 ATARI.CONF=1 EFG.CONF=1 SIERRA.CONF=1 DATAMOST.CONF=1 HIJKL.CONF=1 DATASOFT.CONF=1 MNO.CONF=1 MICROFUN.CONF=1 PQR.CONF=1 PICCADILLY.CONF=1 S.CONF=1 SIRIUS.CONF=1 T.CONF=1 [eof] # # Mega-Attract-Mode configuration file # # Mega-Attract-Mode is split into modules. Each module can be a # short slideshow or a self-running demo (like a game's built-in # 'attract mode'). Modules are run in the order listed here, one # after the next, until interrupted by user input. The last-run # module is tracked in the master prefs file. # # Format: # key=value # # value must be one of # 1 for HGR slideshow (key is a file containing a list of HGR graphics) # 2 for DHGR slideshow (key is a file containing a list of DHGR graphics) # 3 for self-running demo (key is an executable binary file) # # Blank lines and lines beginning with '#' are ignored (like this one!) # A line beginning with '[' terminates the parsing # FAVORITES.CONF=1 #SHORT.CONF=1 WAVY.NAVY=3 AB.CONF=1 BRODERBUND.CONF=1 DHGR.CONF=2 ACTIVISION.CONF=1 CD.CONF=1 ATARI.CONF=1 EFG.CONF=1 SIERRA.CONF=1 DATAMOST.CONF=1 HIJKL.CONF=1 DATASOFT.CONF=1 MNO.CONF=1 MICROFUN.CONF=1 PQR.CONF=1 PICCADILLY.CONF=1 S.CONF=1 SIRIUS.CONF=1 T.CONF=1 [eof]

View File

@ -212,7 +212,7 @@ HGRLoad
jsr AddToPath jsr AddToPath
jsr LoadFile jsr LoadFile
!word gPathname !word gPathname
jsr InterlockingHorizontalHGR;InterlockingVerticalHGR;FizzleHGR; jsr DiagonalHGR;InterlockingVerticalHGR;FizzleHGR;InterlockingHorizontalHGR;
jmp WaitOnScreenshot jmp WaitOnScreenshot
DHGRLoad DHGRLoad
@ -326,6 +326,7 @@ kAttractModeConfFile
!source "src/parse.common.a" !source "src/parse.common.a"
!source "src/parse.games.a" !source "src/parse.games.a"
!source "src/fx.hgr.fizzle.a" !source "src/fx.hgr.fizzle.a"
!source "src/fx.hgr.diagonal.a"
!source "src/fx.hgr.interlockingvertical.a" !source "src/fx.hgr.interlockingvertical.a"
!source "src/fx.hgr.interlockinghorizontal.a" !source "src/fx.hgr.interlockinghorizontal.a"
!source "src/fx.dhgr.fizzle.a" !source "src/fx.dhgr.fizzle.a"

54
src/fx.hgr.diagonal.a Normal file
View File

@ -0,0 +1,54 @@
DiagonalHGR
lda #$27
sta $FB
lda #$17
sta $FA
sta $FC
@loop jsr @block
dec $FB
inc $FA
lda $FB
bmi +
lda $FA
cmp #$18
bne @loop
+ dec $FC
lda #$27
sta $FB
lda $FC
sta $FA
bpl @loop
lda $C000
bmi @exit
lda #$00
sta $FA
sec
sbc $FC
sta $FD
lda $FB
sec
sbc $FD
sta $FB
bpl @loop
@exit rts
@block lda $FA
bpl +
lda #$00
+ asl
asl
asl
jsr HGRCalc
ldx #$08
- ldy $FB
lda ($3c),y
sta ($26),y
lda $27
clc
adc #$04
sta $27
eor #$60
sta $3d
dex
bne -
rts

View File

@ -34,7 +34,7 @@ InterlockingHorizontalHGR
dey dey
bpl @innerloop bpl @innerloop
lda #$40 lda #$40
jsr @wait jsr Wait
lda $C000 lda $C000
bmi @exit bmi @exit
inc index2 inc index2
@ -42,18 +42,6 @@ InterlockingHorizontalHGR
bpl @outerloop bpl @outerloop
@exit rts @exit rts
@wait sec
@wait1 pha
@wait2 sbc #1
bne @wait2
pla
bit $C000
bmi @exitwait
sbc #1
bne @wait1
@exitwait
rts
@data1 !hex 20283038202830382129313921293139 @data1 !hex 20283038202830382129313921293139
!hex 222A323A222A323A232B333B232B333B !hex 222A323A222A323A232B333B232B333B
!hex 20283038202830382129313921293139 !hex 20283038202830382129313921293139

View File

@ -1,38 +1,63 @@
row1 = $fe
row2 = $ff
InterlockingVerticalHGR InterlockingVerticalHGR
ldy #$5F ; logical row index lda #$00
@loop sta row1
lda @data1,y lda #$5F
sta @sub2+2 sta row2
@loop lda row1
asl
jsr HGRCalc
ldy #$27
- lda ($3c),y
sta ($26),y
dey
bpl -
lda row2
asl
clc clc
adc #$20 adc #$01
sta @sub1+2 jsr HGRCalc
lda @data2,y ldy #$27
sta @sub1+1 - lda ($3c),y
sta @sub2+1 sta ($26),y
lda @data3,y dey
sta @sub4+2 bpl -
clc lda #$30
adc #$20 jsr Wait
sta @sub3+2
lda @data4,y
sta @sub3+1
sta @sub4+1
ldx #$27 ; logical column index
@sub1 lda $FDFD,x
@sub2 sta $FDFD,x
@sub3 lda $FDFD,x
@sub4 sta $FDFD,x
dex
bpl @sub1
lda #$40
jsr @wait
lda $C000 lda $C000
bmi @exit bmi @exit
dey inc row1
dec row2
bpl @loop bpl @loop
@exit rts @exit rts
@wait sec HGRCalc
asl
tax
and #$F0
bpl @calc1
ora #$05
@calc1 bcc @calc2
ora #$0A
@calc2 asl
asl
sta $26
txa
and #$0E
adc #$10
asl $26
rol
sta $27
eor #$60
sta $3d
lda $26
sta $3c
rts
Wait
sec
@wait1 pha @wait1 pha
@wait2 sbc #1 @wait2 sbc #1
bne @wait2 bne @wait2
@ -43,28 +68,3 @@ InterlockingVerticalHGR
bne @wait1 bne @wait1
@exitwait @exitwait
rts rts
@data1 !hex 20283038202830382129313921293139
!hex 222A323A222A323A232B333B232B333B
!hex 20283038202830382129313921293139
!hex 222A323A222A323A232B333B232B333B
!hex 20283038202830382129313921293139
!hex 222A323A222A323A232B333B232B333B
@data2 !hex 00000000808080800000000080808080
!hex 00000000808080800000000080808080
!hex 28282828A8A8A8A828282828A8A8A8A8
!hex 28282828A8A8A8A828282828A8A8A8A8
!hex 50505050D0D0D0D050505050D0D0D0D0
!hex 50505050D0D0D0D050505050D0D0D0D0
@data3 !hex 3F372F273F372F273E362E263E362E26
!hex 3D352D253D352D253C342C243C342C24
!hex 3F372F273F372F273E362E263E362E26
!hex 3D352D253D352D253C342C243C342C24
!hex 3F372F273F372F273E362E263E362E26
!hex 3D352D253D352D253C342C243C342C24
@data4 !hex D0D0D0D050505050D0D0D0D050505050
!hex D0D0D0D050505050D0D0D0D050505050
!hex A8A8A8A828282828A8A8A8A828282828
!hex A8A8A8A828282828A8A8A8A828282828
!hex 80808080000000008080808000000000
!hex 80808080000000008080808000000000