|
Subject: [stella] Visualisations for Paul From: Christopher Tumber <christophertumber@xxxxxxxxxx> Date: Sun, 21 Dec 2003 00:08:27 -0500 |
Crap! Forgot about this... It's a little visualisation for Paul. It's pretty simple, but potentially powerful. It draws a checkboard pattern. Each square can be individually coloured with any TIA colour (up to 64 different colours on screen at once from the full 128 colour palette). Included are a whole whack of subroutines which modify the display (change colours, colour cycle, scroll, mirror image, etc). It's intended to be very modular and you should be able to easily adapt it for your purposes. Currently all it does is cycle through some of these routines in a very simple demo mode. You could key these routines to particular frequencies/beats. Or you could just run through pre-programmed sequences in time to your tempo. Or you could just do a simple graphic equaliser type display. The list of routines is as follows: ShiftLeft Shifts all squares to the left (Right most squares unaffected) ShiftRight Shifts all squares to the right (left most squares unaffected) ShiftUp Shifts all squares up (bottom row unaffected) ShiftDown Shifts all squares down (top row unaffected) ScrollLeft Scrolls squares to the left (squares wrap around edges) ScrollRight Scrolls squares to the right (squares wrap around edges) ScrollUp Scrolls squares up (squares wrap around edges) ScrollDown Scrolls squares down (squares wrap around edges) ClearColumn Clears column (0-7) specified by X register ClearRow Clears row (0-7) specified by X register ClearAll Clears all squares to black IncSquare Increments colour of square (0-63) specified by X register DecSquare Decrements colour of square (0-63) specified by X register IncColumn Increments colour of column (0-7) specified by X register DecColumn Decrements colour of column (0-7) specified by X register IncRow Increments colour of row (0-7) specified by X register DecRow Decrements colour of row (0-7) specified by X register IncAll Increments colour of all squares DecAll Decrements colour of all squares ColourColumn Puts colour (0-255) in A register into column (0-7) specified by X register ColourRow Puts colour (0-255) in A register into row (0-7) specified by X register ColourSquare Puts colour (0-255) in A register into square (0-63) specified by X register ColourAll Puts colour (0-255) in A register into all squares MirrorLeft Right side becomes mirror image of left side MirrorRight Left side becomes mirror image of right side MirrorTop Bottom half becomes mirror image of top half MirrorBottom Top half becomes mirror image of bottom half MirrorQuad Upper left 1/4 of screen source of mirror left/right and up/down FillQuarter Puts colour (0-255) into 1/4 of screen (0-3) specified by X register FillEighth Puts colour (0-255) into 1/8 of screen (0-7) specified by X register PatternQuad Upper left 1/4 of screen repeated in other 4 quadrants PatternEighth Upper left 1/8 of screen repeated in other 8 quadrants RotateClockwise Rotate clockwise RotateCounter Rotate counter clockwise ChangeTempo X register is number of frames between subroutine calls DoNothing Does nothing Chris...
processor 6502
include vcs.h
dummy EQU $3c
SEG.U variables
org $80
delay .byte
temp1 .byte
temp2 .byte
temp3 .byte
temp4 .byte
temp5 .byte
temp6 .byte
temp7 .byte
temp8 .byte
position .byte
tempo .byte
pointer .word
Colour1 .byte
Colour2 .byte
Colour3 .byte
Colour4 .byte
Colour5 .byte
Colour6 .byte
Colour7 .byte
Colour8 .byte
Colour9 .byte
Colour10 .byte
Colour11 .byte
Colour12 .byte
Colour13 .byte
Colour14 .byte
Colour15 .byte
Colour16 .byte
Colour17 .byte
Colour18 .byte
Colour19 .byte
Colour20 .byte
Colour21 .byte
Colour22 .byte
Colour23 .byte
Colour24 .byte
Colour25 .byte
Colour26 .byte
Colour27 .byte
Colour28 .byte
Colour29 .byte
Colour30 .byte
Colour31 .byte
Colour32 .byte
Colour33 .byte
Colour34 .byte
Colour35 .byte
Colour36 .byte
Colour37 .byte
Colour38 .byte
Colour39 .byte
Colour40 .byte
Colour41 .byte
Colour42 .byte
Colour43 .byte
Colour44 .byte
Colour45 .byte
Colour46 .byte
Colour47 .byte
Colour48 .byte
Colour49 .byte
Colour50 .byte
Colour51 .byte
Colour52 .byte
Colour53 .byte
Colour54 .byte
Colour55 .byte
Colour56 .byte
Colour57 .byte
Colour58 .byte
Colour59 .byte
Colour60 .byte
Colour61 .byte
Colour62 .byte
Colour63 .byte
Colour64 .byte
MAC LINE1
ldy #24
sta WSYNC
sta dummy
next1:
nop
nop
nop
nop
nop
nop
nop
nop
lda Colour1
sta.w COLUBK
lda Colour2
sta COLUBK
lda Colour3
sta COLUBK
lda Colour4
sta COLUBK
lda Colour5
sta COLUBK
lda Colour6
sta COLUBK
lda Colour7
sta COLUBK
lda Colour8
sta COLUBK
lda #0
sta.w COLUBK
dey
bne next1
ENDM
MAC LINE2
ldy #24
sta dummy
next2:
nop
nop
nop
nop
nop
nop
lda Colour9
sta.w COLUBK
lda Colour10
sta COLUBK
lda Colour11
sta COLUBK
lda Colour12
sta COLUBK
lda Colour13
sta COLUBK
lda Colour14
sta COLUBK
lda Colour15
sta COLUBK
lda Colour16
sta COLUBK
lda #0
sta.w COLUBK
nop
nop
dey
bne next2
nop
nop
nop
nop
nop
sta dummy
lda Colour9
sta.w COLUBK
lda Colour10
sta COLUBK
lda Colour11
sta COLUBK
lda Colour12
sta COLUBK
lda Colour13
sta COLUBK
lda Colour14
sta COLUBK
lda Colour15
sta COLUBK
lda Colour16
sta COLUBK
lda #0
sta.w COLUBK
ENDM
MAC LINE3
ldy #24
nop
nop
sta dummy
next3:
nop
nop
nop
nop
nop
nop
lda Colour17
sta.w COLUBK
lda Colour18
sta COLUBK
lda Colour19
sta COLUBK
lda Colour20
sta COLUBK
lda Colour21
sta COLUBK
lda Colour22
sta COLUBK
lda Colour23
sta COLUBK
lda Colour24
sta COLUBK
lda #0
sta.w COLUBK
nop
nop
dey
bne next3
nop
nop
nop
nop
nop
; nop
sta dummy
lda Colour17
sta.w COLUBK
lda Colour18
sta COLUBK
lda Colour19
sta COLUBK
lda Colour20
sta COLUBK
lda Colour21
sta COLUBK
lda Colour22
sta COLUBK
lda Colour23
sta COLUBK
lda Colour24
sta COLUBK
lda #0
sta.w COLUBK
ENDM
MAC LINE4
ldy #24
sta dummy
next4
nop
nop
nop
nop
nop
nop
nop
nop
lda Colour25
sta.w COLUBK
lda Colour26
sta COLUBK
lda Colour27
sta COLUBK
lda Colour28
sta COLUBK
lda Colour29
sta COLUBK
lda Colour30
sta COLUBK
lda Colour31
sta COLUBK
lda Colour32
sta COLUBK
lda #0
sta.w COLUBK
dey
bne next4
nop
nop
nop
nop
nop
nop
nop
nop
nop
lda Colour25
sta COLUBK
lda Colour26
sta COLUBK
lda Colour27
sta COLUBK
lda Colour28
sta COLUBK
lda Colour29
sta COLUBK
lda Colour30
sta COLUBK
lda Colour31
sta COLUBK
lda Colour32
sta COLUBK
lda #0
sta.w COLUBK
ENDM
MAC LINE5
ldy #24
sta dummy
next5
nop
nop
nop
nop
nop
nop
nop
nop
lda Colour33
sta.w COLUBK
lda Colour34
sta COLUBK
lda Colour35
sta COLUBK
lda Colour36
sta COLUBK
lda Colour37
sta COLUBK
lda Colour38
sta COLUBK
lda Colour39
sta COLUBK
lda Colour40
sta COLUBK
lda #0
sta.w COLUBK
dey
bne next5
nop
nop
nop
nop
nop
nop
nop
nop
nop
lda Colour33
sta COLUBK
lda Colour34
sta COLUBK
lda Colour35
sta COLUBK
lda Colour36
sta COLUBK
lda Colour37
sta COLUBK
lda Colour38
sta COLUBK
lda Colour39
sta COLUBK
lda Colour40
sta COLUBK
lda #0
sta.w COLUBK
ENDM
MAC LINE6
ldy #24
nop
nop
next6
nop
nop
nop
nop
nop
nop
nop
nop
lda Colour41
sta COLUBK
lda Colour42
sta COLUBK
lda Colour43
sta COLUBK
lda Colour44
sta COLUBK
lda Colour45
sta COLUBK
lda Colour46
sta COLUBK
lda Colour47
sta COLUBK
lda Colour48
sta COLUBK
lda #0
sta.w COLUBK
dey
bne next6
nop
nop
nop
nop
nop
nop
nop
nop
nop
lda Colour41
sta COLUBK
lda Colour42
sta COLUBK
lda Colour43
sta COLUBK
lda Colour44
sta COLUBK
lda Colour45
sta COLUBK
lda Colour46
sta COLUBK
lda Colour47
sta COLUBK
lda Colour48
sta COLUBK
lda #0
sta.w COLUBK
ENDM
MAC LINE7
ldy #24
sta dummy
next7:
nop
nop
nop
nop
nop
nop
nop
nop
lda Colour49
sta.w COLUBK
lda Colour50
sta COLUBK
lda Colour51
sta COLUBK
lda Colour52
sta COLUBK
lda Colour53
sta COLUBK
lda Colour54
sta COLUBK
lda Colour55
sta COLUBK
lda Colour56
sta COLUBK
lda #0
sta.w COLUBK
dey
bne next7
nop
nop
nop
nop
nop
nop
nop
nop
nop
lda Colour49
sta COLUBK
lda Colour50
sta COLUBK
lda Colour51
sta COLUBK
lda Colour52
sta COLUBK
lda Colour53
sta COLUBK
lda Colour54
sta COLUBK
lda Colour55
sta COLUBK
lda Colour56
sta COLUBK
lda #0
sta.w COLUBK
ENDM
MAC LINE8
ldy #24
sta dummy
next8:
nop
nop
nop
nop
nop
nop
nop
nop
lda Colour57
sta.w COLUBK
lda Colour58
sta COLUBK
lda Colour59
sta COLUBK
lda Colour60
sta COLUBK
lda Colour61
sta COLUBK
lda Colour62
sta COLUBK
lda Colour63
sta COLUBK
lda Colour64
sta COLUBK
lda #0
sta.w COLUBK
dey
bne next8
ENDM
SEG Bank0
org $F000
Start:
SEI ; Disable interrupts, if there are any.
CLD ; Clear BCD math bit.
LDX #$FF
TXS ; Set stack to beginning.
LDA #0
B1 STA 0,X
DEX
BPL B1
lda #$00
jsr ColourAll
lda #40
sta delay
lda #10
sta tempo
lda #58
sta position
MainLoop
VerticalBlank ;*********************** VERTICAL BLANK HANDLER
LDA #2
STA VSYNC ;Begin vertical sync.
STA WSYNC ; First line of VSYNC
STA WSYNC ; Second line of VSYNC.
LDA #43
STA TIM64T
LDA #0
; STA CXCLR
STA WSYNC ; Third line of VSYNC.
STA VSYNC ; (0)
dec delay
bne noupdate
lda tempo
sta delay
lda #>(return-1)
pha
lda #<(return-1)
pha
ldy position
lda LowerByteTable,y
sta pointer
lda HigherByteTable,y
sta pointer+1
ldx Xtable,y
lda Atable,y
jmp (pointer)
return:
dec position
bne noupdate
lda #58
sta position
noupdate:
jsr DrawScreen
STA VBLANK ; Make TIA output invisible,
lda #30
sta TIM64T
OverscanWait:
lda INTIM
bne OverscanWait
JMP MainLoop ;Continue forever.
RotateClockwise:
rts
RotateCounter:
rts
ChangeTempo:
stx tempo
rts
ShiftLeft:
ldx #0
nextshiftleft:
lda Colour1+1,x
sta Colour1,x
lda Colour1+8+1,x
sta Colour1+8,x
lda Colour1+16+1,x
sta Colour1+16,x
lda Colour1+24+1,x
sta Colour1+24,x
lda Colour1+32+1,x
sta Colour1+32,x
lda Colour1+40+1,x
sta Colour1+40,x
lda Colour1+48+1,x
sta Colour1+48,x
lda Colour1+56+1,x
sta Colour1+56,x
inx
cpx #7
bne nextshiftleft
rts
ScrollLeft:
lda Colour1
sta temp1
lda Colour1+8
sta temp2
lda Colour1+16
sta temp3
lda Colour1+24
sta temp4
lda Colour1+32
sta temp5
lda Colour1+40
sta temp6
lda Colour1+48
sta temp7
lda Colour1+56
sta temp8
ldx #0
nextscrollleft:
lda Colour1+1,x
sta Colour1,x
lda Colour1+8+1,x
sta Colour1+8,x
lda Colour1+16+1,x
sta Colour1+16,x
lda Colour1+24+1,x
sta Colour1+24,x
lda Colour1+32+1,x
sta Colour1+32,x
lda Colour1+40+1,x
sta Colour1+40,x
lda Colour1+48+1,x
sta Colour1+48,x
lda Colour1+56+1,x
sta Colour1+56,x
inx
cpx #7
bne nextscrollleft
lda temp1
sta Colour8
lda temp2
sta Colour8+8
lda temp3
sta Colour8+16
lda temp4
sta Colour8+24
lda temp5
sta Colour8+32
lda temp6
sta Colour8+40
lda temp7
sta Colour8+48
lda temp8
sta Colour8+56
rts
ShiftRight:
ldx #6
nextshiftright:
lda Colour1,x
sta Colour1+1,x
lda Colour1+8,x
sta Colour1+8+1,x
lda Colour1+16,x
sta Colour1+16+1,x
lda Colour1+24,x
sta Colour1+24+1,x
lda Colour1+32,x
sta Colour1+32+1,x
lda Colour1+40,x
sta Colour1+40+1,x
lda Colour1+48,x
sta Colour1+48+1,x
lda Colour1+56,x
sta Colour1+56+1,x
dex
bpl nextshiftright
rts
ScrollRight:
lda Colour8
sta temp1
lda Colour8+8
sta temp2
lda Colour8+16
sta temp3
lda Colour8+24
sta temp4
lda Colour8+32
sta temp5
lda Colour8+40
sta temp6
lda Colour8+48
sta temp7
lda Colour8+56
sta temp8
ldx #6
nextscrollright:
lda Colour1,x
sta Colour1+1,x
lda Colour1+8,x
sta Colour1+8+1,x
lda Colour1+16,x
sta Colour1+16+1,x
lda Colour1+24,x
sta Colour1+24+1,x
lda Colour1+32,x
sta Colour1+32+1,x
lda Colour1+40,x
sta Colour1+40+1,x
lda Colour1+48,x
sta Colour1+48+1,x
lda Colour1+56,x
sta Colour1+56+1,x
dex
bpl nextscrollright
lda temp1
sta Colour1
lda temp2
sta Colour1+8
lda temp3
sta Colour1+16
lda temp4
sta Colour1+24
lda temp5
sta Colour1+32
lda temp6
sta Colour1+40
lda temp7
sta Colour1+48
lda temp8
sta Colour1+56
rts
ShiftUp:
ldy #6
ldx #0
nextshiftup:
lda Colour1+8,x
sta Colour1,x
lda Colour2+8,x
sta Colour2,x
lda Colour3+8,x
sta Colour3,x
lda Colour4+8,x
sta Colour4,x
lda Colour5+8,x
sta Colour5,x
lda Colour6+8,x
sta Colour6,x
lda Colour7+8,x
sta Colour7,x
lda Colour8+8,x
sta Colour8,x
inx
inx
inx
inx
inx
inx
inx
inx
dey
bpl nextshiftup
rts
ShiftDown:
ldy #7
ldx #64
nextshiftdown:
lda Colour1-8,x
sta Colour1,x
lda Colour2-8,x
sta Colour2,x
lda Colour3-8,x
sta Colour3,x
lda Colour4-8,x
sta Colour4,x
lda Colour5-8,x
sta Colour5,x
lda Colour6-8,x
sta Colour6,x
lda Colour7-8,x
sta Colour7,x
lda Colour8-8,x
sta Colour8,x
dex
dex
dex
dex
dex
dex
dex
dex
dey
bpl nextshiftdown
rts
ScrollUp:
lda Colour1
sta temp1
lda Colour2
sta temp2
lda Colour3
sta temp3
lda Colour4
sta temp4
lda Colour5
sta temp5
lda Colour6
sta temp6
lda Colour7
sta temp7
lda Colour8
sta temp8
ldy #6
ldx #0
nextscrollup:
lda Colour1+8,x
sta Colour1,x
lda Colour2+8,x
sta Colour2,x
lda Colour3+8,x
sta Colour3,x
lda Colour4+8,x
sta Colour4,x
lda Colour5+8,x
sta Colour5,x
lda Colour6+8,x
sta Colour6,x
lda Colour7+8,x
sta Colour7,x
lda Colour8+8,x
sta Colour8,x
inx
inx
inx
inx
inx
inx
inx
inx
dey
bpl nextscrollup
lda temp1
sta Colour57
lda temp2
sta Colour58
lda temp3
sta Colour59
lda temp4
sta Colour60
lda temp5
sta Colour61
lda temp6
sta Colour62
lda temp7
sta Colour63
lda temp8
sta Colour64
rts
ScrollDown:
lda Colour57
sta temp1
lda Colour58
sta temp2
lda Colour59
sta temp3
lda Colour60
sta temp4
lda Colour61
sta temp5
lda Colour62
sta temp6
lda Colour63
sta temp7
lda Colour64
ldy #7
ldx #64
nextscrolldown:
lda Colour1-8,x
sta Colour1,x
lda Colour2-8,x
sta Colour2,x
lda Colour3-8,x
sta Colour3,x
lda Colour4-8,x
sta Colour4,x
lda Colour5-8,x
sta Colour5,x
lda Colour6-8,x
sta Colour6,x
lda Colour7-8,x
sta Colour7,x
lda Colour8-8,x
sta Colour8,x
dex
dex
dex
dex
dex
dex
dex
dex
dey
bpl nextscrolldown
lda temp1
sta Colour1
lda temp2
sta Colour2
lda temp3
sta Colour3
lda temp4
sta Colour4
lda temp5
sta Colour5
lda temp6
sta Colour6
lda temp7
sta Colour7
lda temp8
sta Colour8
rts
ClearAll:
ldx #63
lda #0
nextclearall:
sta Colour1,x
dex
bpl nextclearall
rts
ClearSquare:
lda #0
sta Colour1,x
rts
ClearColumn:
;X=Column To Clear (0-7)
lda #0
sta Colour1,x
sta Colour1+8,x
sta Colour1+16,x
sta Colour1+24,x
sta Colour1+32,x
sta Colour1+40,x
sta Colour1+48,x
sta Colour1+56,x
rts
ClearRow:
;X=Row To Clear (0-7)
txa
asl
asl
asl
tax
lda #0
sta Colour1,x
sta Colour1+1,x
sta Colour1+2,x
sta Colour1+3,x
sta Colour1+4,x
sta Colour1+5,x
sta Colour1+6,x
sta Colour1+7,x
rts
IncSquare:
inc Colour1,x
inc Colour1,x
rts
DecSquare:
dec Colour1,x
dec Colour1,x
rts
IncColumn:
;X=Column To Increment (0-7)
inc Colour1,x
inc Colour1+8,x
inc Colour1+16,x
inc Colour1+24,x
inc Colour1+32,x
inc Colour1+40,x
inc Colour1+48,x
inc Colour1+56,x
inc Colour1,x
inc Colour1+8,x
inc Colour1+16,x
inc Colour1+24,x
inc Colour1+32,x
inc Colour1+40,x
inc Colour1+48,x
inc Colour1+56,x
rts
IncRow:
;X=Row To Increment (0-7)
txa
asl
asl
asl
tax
inc Colour1,x
inc Colour1+1,x
inc Colour1+2,x
inc Colour1+3,x
inc Colour1+4,x
inc Colour1+5,x
inc Colour1+6,x
inc Colour1+7,x
inc Colour1,x
inc Colour1+1,x
inc Colour1+2,x
inc Colour1+3,x
inc Colour1+4,x
inc Colour1+5,x
inc Colour1+6,x
inc Colour1+7,x
rts
DecColumn:
;X=Column To decrement (0-7)
dec Colour1,x
dec Colour1+8,x
dec Colour1+16,x
dec Colour1+24,x
dec Colour1+32,x
dec Colour1+40,x
dec Colour1+48,x
dec Colour1+56,x
dec Colour1,x
dec Colour1+8,x
dec Colour1+16,x
dec Colour1+24,x
dec Colour1+32,x
dec Colour1+40,x
dec Colour1+48,x
dec Colour1+56,x
rts
DecRow:
;X=Row To Decrement (0-7)
txa
asl
asl
asl
tax
dec Colour1,x
dec Colour1+1,x
dec Colour1+2,x
dec Colour1+3,x
dec Colour1+4,x
dec Colour1+5,x
dec Colour1+6,x
dec Colour1+7,x
dec Colour1,x
dec Colour1+1,x
dec Colour1+2,x
dec Colour1+3,x
dec Colour1+4,x
dec Colour1+5,x
dec Colour1+6,x
dec Colour1+7,x
rts
IncAll:
ldx #63
nextincall:
inc Colour1,x
inc Colour1,x
dex
bpl nextincall
rts
DecAll:
ldx #63
nextdeccall:
dec Colour1,x
dec Colour1,x
dex
bpl nextdeccall
rts
ColourColumn:
;X=Column To Colour (0-7)
sta Colour1,x
sta Colour1+8,x
sta Colour1+16,x
sta Colour1+24,x
sta Colour1+32,x
sta Colour1+40,x
sta Colour1+48,x
sta Colour1+56,x
rts
ColourRow:
;X=Row To Clear (0-7)
sta temp1
txa
asl
asl
asl
tax
lda #temp1
sta Colour1,x
sta Colour1+1,x
sta Colour1+2,x
sta Colour1+3,x
sta Colour1+4,x
sta Colour1+5,x
sta Colour1+6,x
sta Colour1+7,x
rts
ColourSquare:
sta Colour1,x
rts
ColourAll:
ldx #63
nextcolourall:
sta Colour1,x
dex
bpl nextcolourall
; jmp return
rts
MirrorLeft:
ldx #0
nextmirrorleft:
lda Colour1,x
sta Colour8,x
lda Colour2,x
sta Colour7,x
lda Colour3,x
sta Colour6,x
lda Colour4,x
sta Colour5,x
inx
inx
inx
inx
inx
inx
inx
inx
cpx #64
bne nextmirrorleft
rts
MirrorRight:
ldx #0
nextmirrorright:
lda Colour8,x
sta Colour1,x
lda Colour7,x
sta Colour2,x
lda Colour6,x
sta Colour3,x
lda Colour5,x
sta Colour4,x
inx
inx
inx
inx
inx
inx
inx
inx
cpx #64
bne nextmirrorright
rts
MirrorBottom:
ldx #7
nextmirrorbottom:
lda Colour33,x
sta Colour25,x
lda Colour41,x
sta Colour17,x
lda Colour49,x
sta Colour9,x
lda Colour57,x
sta Colour1,x
dex
bpl nextmirrorbottom
rts
MirrorTop:
ldx #7
nextmirrortop:
lda Colour25,x
sta Colour33,x
lda Colour17,x
sta Colour41,x
lda Colour9,x
sta Colour49,x
lda Colour1,x
sta Colour57,x
dex
bpl nextmirrortop
rts
MirrorQuad:
jsr MirrorTop
jsr MirrorLeft
rts
FillQuarter:
sta temp1
lda FillQuarterTable,x
tax
lda temp1
sta Colour1,x
sta Colour1+1,x
sta Colour1+2,x
sta Colour1+3,x
sta Colour9,x
sta Colour9+1,x
sta Colour9+2,x
sta Colour9+3,x
sta Colour17,x
sta Colour17+1,x
sta Colour17+2,x
sta Colour17+3,x
sta Colour25,x
sta Colour25+1,x
sta Colour25+2,x
sta Colour25+3,x
rts
FillEighth:
sta temp1
lda FillEighthTable,x
tax
lda temp1
sta Colour1,x
sta Colour1+1,x
sta Colour9,x
sta Colour9+1,x
rts
PatternQuad:
ldx #0
nextpatternquad1:
lda Colour1,x
sta Colour1+32,x
sta Colour5,x
sta Colour5+32,x
lda Colour2,x
sta Colour2+32,x
sta Colour6,x
sta Colour6+32,x
lda Colour3,x
sta Colour3+32,x
sta Colour7,x
sta Colour7+32,x
lda Colour4,x
sta Colour4+32,x
sta Colour8,x
sta Colour8+32,x
inx
inx
inx
inx
inx
inx
inx
inx
cpx #32
bne nextpatternquad1
rts
PatternEighth:
lda Colour1
sta Colour3
sta Colour1+16
sta Colour3+16
lda Colour2
sta Colour4
sta Colour2+16
sta Colour4+16
lda Colour1+8
sta Colour3+8
sta Colour1+8+16
sta Colour3+8+16
lda Colour2+8
sta Colour4+8
sta Colour2+8+16
sta Colour4+8+16
jsr PatternQuad
rts
DoNothing:
rts
FillQuarterTable .byte 0,4,32,36
FillEighthTable .byte 0,2,4,6,0+16,2+16,4+16,6+16,0+32,2+32,4+32,6+32,0+48,2+48,4+48,6+48
ORG $FA00
Xtable: .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,1,0,2,3,1,0,0,0,1,2,3,4,5,6,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,$30,$30,$30,$30,$30,$0,$0,$30,$0,$0,$30
Atable: .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,$60,0,0,0,0,$60,$60,$60,$60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,$30,$30,$30,$30,$30,$0,$0,$30,$0,$0,$30
ORG $FB00
LowerByteTable: .byte #<ShiftUp,#<ShiftUp,#<ShiftUp,#<ScrollUp
.byte #<ShiftLeft,#<ShiftLeft,#<ShiftLeft,#<ScrollLeft
.byte #<ShiftDown,#<ShiftDown,#<ShiftDown,#<ScrollDown
.byte #<ShiftRight,#<ShiftRight,#<ShiftRight,#<ScrollRight
.byte #<FillQuarter,#<FillQuarter,#<FillQuarter,#<FillQuarter,#<FillQuarter,#<FillQuarter,#<FillQuarter,#<FillQuarter,#<FillQuarter
.byte #<ColourAll,#<ClearRow,#<ClearRow,#<ClearRow,#<ClearRow,#<ClearRow,#<ClearRow,#<ClearRow,#<ClearRow
.byte #<DecAll,#<DecAll,#<DecAll,#<DecAll,#<DecAll,#<DecAll,#<DecAll,#<IncAll,#<IncAll,#<IncAll,#<IncAll,#<IncAll,#<IncAll,#<IncAll
.byte #<ColourAll,#<ColourAll,#<ColourAll,#<ColourAll,#<ColourAll,#<ColourAll,#<ColourAll,#<ColourAll,#<ColourAll,#<ColourAll,#<ColourAll
HigherByteTable: .byte #>ShiftUp,#>ShiftUp,#>ShiftUp,#>ScrollUp
.byte #>ShiftLeft,#>ShiftLeft,#>ShiftLeft,#>ScrollLeft
.byte #>ShiftDown,#>ShiftDown,#>ShiftDown,#>ScrollDown
.byte #>ShiftRight,#>ShiftRight,#>ShiftRight,#>ScrollRight
.byte #>FillQuarter,#>FillQuarter,#>FillQuarter,#>FillQuarter,#>FillQuarter,#>FillQuarter,#>FillQuarter,#>FillQuarter,#>FillQuarter
.byte #>ColourAll,#>ClearRow,#>ClearRow,#>ClearRow,#>ClearRow,#>ClearRow,#>ClearRow,#>ClearRow,#>ClearRow
.byte #>DecAll,#>DecAll,#>DecAll,#>DecAll,#>DecAll,#>DecAll,#>DecAll,#>IncAll,#>IncAll,#>IncAll,#>IncAll,#>IncAll,#>IncAll,#>IncAll
.byte #>ColourAll,#>ColourAll,#>ColourAll,#>ColourAll,#>ColourAll,#>ColourAll,#>ColourAll,#>ColourAll,#>ColourAll,#>ColourAll,#>ColourAll
org $FC00
DrawScreen ;**************************** SCREEN DRAWING ROUTINES
LDA INTIM
BNE DrawScreen
STA WSYNC
STA VBLANK
sta WSYNC
lda #0
sta COLUBK
LINE1
LINE2
LINE3
LINE4
LINE5
LINE6
LINE7
LINE8
rts
org $FFFC
.word Start
.word Start
Attachment:
checker.bin
Description: Binary data
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [stella] question for z26 autho, John Saeger | Thread | Re: [stella] question for z26 autho, ecwilkso |
| Re: [stella] question for z26 autho, John Saeger | Date | Re: [stella] question for z26 autho, ecwilkso |
| Month |