1
0
mirror of https://github.com/KarolS/millfork.git synced 2024-10-30 21:30:52 +00:00
millfork/include/vcs_hardware.mfk

118 lines
1.8 KiB
Plaintext

#if not(ATARI_2600)
#warn vcs_hardware module should be only used on Atari 2600-compatible targets
#endif
byte VSYNC @$00
byte VBLANK @$01
byte WSYNC @$02
byte RSYNC @$03
byte NUSIZ0 @$04
byte NUSIZ1 @$05
byte COLUP0 @$06
byte COLUP1 @$07
byte COLUPF @$08
byte COLUBK @$09
byte CTRLPF @$0A
byte REFP0 @$0B
byte REFP1 @$0C
byte PF0 @$0D
byte PF1 @$0E
byte PF2 @$0F
byte RESP0 @$10
byte RESP1 @$11
byte RESM0 @$12
byte RESM1 @$13
byte RESBL @$14
byte AUDC0 @$15
byte AUDC1 @$16
byte AUDF0 @$17
byte AUDF1 @$18
byte AUDV0 @$19
byte AUDV1 @$1A
byte GRP0 @$1B
byte GRP1 @$1C
byte ENAM0 @$1D
byte ENAM1 @$1E
byte ENABL @$1F
byte HMP0 @$20
byte HMP1 @$21
byte HMM0 @$22
byte HMM1 @$23
byte HMBL @$24
byte VDELP0 @$25
byte VDELP1 @$26
byte VDELBL @$27
byte RESMP0 @$28
byte RESMP1 @$29
byte HMOVE @$2A
byte HMCLR @$2B
byte CXCLR @$2C
byte CXM0P @$30
byte CXM1P @$31
byte CXP0FB @$32
byte CXP1FB @$33
byte CXM0FB @$34
byte CXM1FB @$35
byte CXBLPF @$36
byte CXPPMM @$37
byte INPT0 @$38
byte INPT1 @$39
byte INPT2 @$3A
byte INPT3 @$3B
byte INPT4 @$3C
byte INPT5 @$3D
byte SWCHA @$0280
byte SWACNT @$0281
byte SWCHB @$0282
byte SWBCNT @$0283
byte INTIM @$0284
byte INSTAT @$0285
byte TIM1T @$0294
byte TIM8T @$0295
byte TIM64T @$0296
byte T1024T @$0297
macro asm void wsync() {
STA WSYNC
}
macro asm void start_frame() {
LDA #0
STA VBLANK
LDA #2
STA VSYNC
STA WSYNC
STA WSYNC
STA WSYNC
LDA #0
STA VSYNC
LDX #37
start_frame_loop:
STA WSYNC
DEX
BNE start_frame_loop
}
macro asm void end_frame() {
LDA #%01000010
STA VBLANK
LDX #30
end_frame_loop:
STA WSYNC
DEX
BNE end_frame_loop
}
asm void reset_routine() @$FFF4 {
LDX #$FF
TXS
JMP main
}
array __vectors @$FFFA = @word [
reset_routine.addr,
reset_routine.addr,
reset_routine.addr
]