-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGrayScale.asm
147 lines (135 loc) · 1.96 KB
/
GrayScale.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
146
147
GrayScale SUBROUTINE
;---------------------------------------------------
; Vetical sync
JSR FrameStart
;---------------------------------------------------
; Vertical Blank
; NTSC 37 Scan lines
; PAL SECAM 45 Scan lines
LDA #$01
STA VBLANK ; Start VBLANK
LDA #T64VBlank
STA TIM64T
.waitvb
LDA INTIM
BNE .waitvb
LDA #$00
STA VBLANK ; Stop VBLANK
;---------------------------------------------------
; Kernal
; NTSC 192 Scan lines
; PAL SECAM 228 Scan lines
.topbars
LDY #$00
.topbarsloop
STA WSYNC ; (3) attendi Horizontal Blank
INY ; (2)
IF SYSTEM == NTSC
; 96 WSYNC
CPY #$61
ELSE
; 114 WSYNC
CPY #$72
ENDIF
BEQ .bottombars ; (2)
NOP ; (2)
NOP ; (2)
NOP ; (2)
NOP ; (2)
NOP ; (2)
.col1
LDA #$0E ; (2) (63/68)
STA COLUBK
NOP
.col2
LDA #$0C
STA COLUBK
NOP
.col3
LDA #$0A
STA COLUBK
NOP
.col4
LDA #$08
STA COLUBK
NOP
.col5
LDA #$06
STA COLUBK
NOP
.col6
LDA #$04
STA COLUBK
NOP
.col7
LDA #$02
STA COLUBK
NOP
.col8
LDA #$00
STA COLUBK
JMP .topbarsloop
.bottombars
LDY #$00
.bottombarsloop
STA WSYNC ; (3) attendi Horizontal Blank
INY ; (2)
IF SYSTEM == NTSC
; 96 WSYNC
CPY #$60
ELSE
; 114 WSYNC
CPY #$72
ENDIF
BEQ .exit ; (2)
NOP ; (2)
NOP ; (2)
NOP ; (2)
NOP ; (2)
NOP ; (2)
.col9
LDA #$00 ; (2) (63/68)
STA COLUBK
NOP
.col10
LDA #$02
STA COLUBK
NOP
.col11
LDA #$04
STA COLUBK
NOP
.col12
LDA #$06
STA COLUBK
NOP
.col13
LDA #$08
STA COLUBK
NOP
.col14
LDA #$0A
STA COLUBK
NOP
.col15
LDA #$0C
STA COLUBK
NOP
.col16
LDA #$0E
STA COLUBK
JMP .bottombarsloop
.exit
LDA #Black
STA COLUBK
STA WSYNC
;---------------------------------------------------
; Overscan
; NTSC 30 Scan lines
; PAL SECAM 36 Scan lines
LDA #T64OverS
STA TIM64T
.waitovs
LDA INTIM
BNE .waitovs
RTS