-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGrid.asm
120 lines (103 loc) · 1.37 KB
/
Grid.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
Grid SUBROUTINE
;---------------------------------------------------
; Vetical sync
JSR FrameStart
;---------------------------------------------------
; Verical Blank 37 linee
; fuori standard 31 linee (31 * 76 / 64 = 36 cicli di timer)
LDA #$01
STA VBLANK ; Start VBLANK
IF SYSTEM == NTSC
; 22 Linee
LDA #$1A
ELSE
; 31 Linee
LDA #$24
ENDIF
STA TIM64T
.waitvb
LDA INTIM
BNE .waitvb
LDA #$00
STA VBLANK ; Stop VBLANK
; Colore righe orizzontali
LDA #White
STA COLUPF
; Colore righe verticali
; LDA #$FE
STA COLUP0
STA COLUP1
; Impostazione sprites
LDA #$03
STA NUSIZ0
STA NUSIZ1
STA WSYNC
NOP
NOP
NOP
NOP
NOP
NOP
JMP .draw
.draw
LDA #$10
STA GRP0
STA RESP0
STA GRP1
NOP
NOP
NOP
NOP
LDA #$02
STA RESP1
STA ENAM0
STA ENAM1
NOP
STA RESM0
NOP
NOP
NOP
NOP
STA RESM1
LDA #$D0
STA HMM0
LDA #$E0
STA HMM1
STA WSYNC
STA HMOVE
LDY #$00
LDX #$02
.drawv
STA WSYNC
INX
LDA #$00
CPX #$19
BNE .drawh
LDX #$00
LDA #$FF
.drawh
STA PF0
STA PF1
STA PF2
INY
IF SYSTEM == NTSC
CPY #$D6
ELSE
CPY #$FF
ENDIF
BNE .drawv
;---------------------------------------------------
; Overscan
; 30 WSYNC
; fuori standard 22 linee (22 * 76 / 64 = 26 cicli timer)
LDA #$19
STA TIM64T
.waitos
LDA INTIM
BNE .waitos
LDA #$00
STA ENAM0
STA ENAM1
STA GRP0
STA GRP1
RTS