-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbank01.asm
145 lines (131 loc) · 2.6 KB
/
bank01.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
;************************************************************************
;* Video Test v. 1.05
;* Banco 1
;************************************************************************
SEG CODE
ORG $0000
RORG $F000
;************************************************************************
;* Inizializzazione
;************************************************************************
Start
SEI
CLD
LDA #$00
LDX #$00
ClearMem_Loop
STA $00,x
DEX
BNE ClearMem_Loop
ClearSR
LDX #$FF
TXS
InitVars
STA _pageNr
STA _colorIndex
STA _indexFirstColor
;************************************************************************
;* Loop principale
;************************************************************************
MainLoop
LDY _pageNr
CPY #$00
BEQ Page0
CPY #$01
BEQ Page1
CPY #$02
BEQ Page2
CPY #$03
BEQ Page3
CPY #$04
BEQ Page4
CPY #$05
BEQ Page5
CPY #$06
BEQ Page6
JMP Continue
Page0
JSR TitleScreen
JMP Continue
Page1
JSR VColorBars
JMP Continue
Page2
JSR GrayScale
JMP Continue
Page3
JSR Grid
JMP Continue
Page4
JSR RedScale
JMP Continue
Page5
JSR GreenScale
JMP Continue
Page6
JSR BlueScale
JMP Continue
Continue
INC _frameCounter
JSR CheckSWCHB
JMP MainLoop
;************************************************************************
;* Include Code
;************************************************************************
include "VideoHelper.asm"
include "TitleScreen.asm"
include "VColorBars.asm"
include "GrayScale.asm"
include "RedScale.asm"
include "GreenScale.asm"
include "BlueScale.asm"
include "Grid.asm"
;************************************************************************
;* Include Data
;************************************************************************
include "Colors.asm"
;************************************************************************
;* Verifica pressione tasti RESET/SELECT
;************************************************************************
CheckSWCHB SUBROUTINE
LDA SWCHB
STA _swchStat
; Verifica pressione tasto reset
.checkReset
AND #$01
BEQ .checksel
LDA _oldSwchStat
AND #$01
BNE .checksel
INC _pageNr
LDA _pageNr
CMP #$07
BCC .continue
LDA #$00
.continue
STA _pageNr
; Verifica pressione tasto select
.checksel
LDA _swchStat
AND #$02
BEQ .exit
LDA _oldSwchStat
AND #$02
BNE .exit
DEC _pageNr
BPL .exit
LDA #$06
STA _pageNr
.exit
LDA _swchStat
STA _oldSwchStat
RTS
;************************************************************************
;* Interrupt Vectors
;************************************************************************
SEG IVECT
ORG $0FFA
RORG $FFFA
.word Start
.word Start
.word Start