рдЕрдЯрд╛рд░реА 65XE рдХреЗ рд▓рд┐рдП рд░реЗрдЦрд╛рдкреБрдВрдЬ рдкреНрд░рднрд╛рд╡

рдЫрд╡рд┐

рдЬрдирд╡рд░реА 2020 рдореЗрдВ рд╡рд╛рдкрд╕, рдореИрдВрдиреЗ рдлреЙрд░рдПрд╡рд░ 2020 рдбреЗрдореЛрдкрд╛рд░реНрдЯреА рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рдХреА рддреИрдпрд╛рд░реА рд╢реБрд░реВ рдХрд░ рджреАред рдХрдВрдкреЛ рдереАрдо рдХреА рдШреЛрд╖рдгрд╛ рдЖрд░рдУрдмреАрдУ рджреНрд╡рд╛рд░рд╛ рдХреА рдЧрдИ рдереА, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдЯрд╛рд░реА 65 рдПрдХреНрд╕рдИ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдХрд╛рдо рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЬрдм рдЗрдВрдЯреНрд░реЛ рддреИрдпрд╛рд░ рд╣реЛ рдЧрдпрд╛, рддреЛ рдореИрдВрдиреЗ рдмрд┐рдЯрдореИрдк рдкреНрд░рднрд╛рд╡ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдХрд╛рд╢, рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рд░рджреНрдж рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг, рдЗрдВрдЯреНрд░реЛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЕрдЯрд╛рд░реА рдкреНрд░реЛрд╕реЗрд╕рд░ MOS 6502 - 8-рдмрд┐рдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рдФрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреА рдХрдореА рд╣реИред рдХрдВрдкреНрдпреВрдЯрд░ рдХрд╛ рдПрдХ рдЕрдиреНрдп рдШрдЯрдХ ANTIC рд╣реИ - рдпрд╣ рдЫрд╡рд┐рдпреЛрдВ, рд░рдВрдЧреЛрдВ, рд╡реАрдбрд┐рдпреЛ рдореЛрдб, рдкреНрд░рддреАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред ANICIC рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЛрд╢рд┐рдХрд╛рдПрдВ рд╣реИрдВ, рдЙрдирдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдореИрдкрд┐рдВрдЧ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ ред рдЕрдЯрд╛рд░реА

рдореИрдВ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдФрд░ рдЧрдВрддрд╡реНрдп рдХреЗ рд╕рднреА рдкрддреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдореИрдВ рд╕реНрд╡рдпрдВ рдкреНрд░рднрд╛рд╡ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдкрд┐рдВрдЧ рдореЗрдВ рдкрддреЛрдВ рдореЗрдВ mnemonics рд╣реИрдВ - рд╡реЗ рдпрд╛рдж рд░рдЦрдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИрдВред

рдЫрд╡рд┐

рд╕реНрдХреНрд░реАрди рдХреНрдпрд╛ рд╣реИ? рдкрд╛рда рдореЛрдб рдореЗрдВ, рдкреНрд░рддреАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрдпрдд рдФрд░ рдПрдХ рдлреНрд░реЗрдо рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред

рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдЖрдк 0 рд╕реЗ 559 рдорд╛рди рд▓рд┐рдЦрдХрд░ рдЖрдпрдд рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рд░реЗрдЦреАрдп рдкреНрд░рднрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рд╣реИред

рдЕрдм рдЖрдкрдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рде рдбреНрд░рд╛рдЗрдВрдЧ рдХреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ:

RTCLOK      equ $0012
      lda RTCLOK+2
waits
      cmp RTCLOK+2
       beq waits

рдпрд╣рд╛рдБ RTCLOCK рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреА рдШрдбрд╝реА рд╣реИ рдЬреЛ рдХрдВрдкреНрдпреВрдЯрд░ рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рдкрд░ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред рдкрд╣рд▓реЗ $ 14 рдмрдврд╝рддрд╛ рд╣реИ, рдлрд┐рд░ $ 13 рдФрд░ $ 12ред рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд╕рд░рд▓ рд╣реИ: рд╕реЗрд▓ рдХреЗ рдореВрд▓реНрдп рдХреА рддреБрд▓рдирд╛ $ 14 рд╡рд░реНрддрдорд╛рди рдХреЗ рд╕рд╛рде рдХрд░реЗрдВред рдпрджрд┐ рдкрд┐рдЫрд▓рд╛ рдорд╛рди рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рд╡реНрдпрд╡рдзрд╛рди рдЙрддреНрдкрдиреНрди рд╣реБрдЖ рд╣реИред

рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкреНрд░рднрд╛рд╡ рдореЗрдВ, рд╡рд┐рдзрд┐ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдлреНрд░реЗрдо рдкрд░ рдЙрддреНрдкрдиреНрди рд▓рд╛рдЗрдиреЛрдВ рдХреЗ VCOUNT ($ D40B) -рд╡рд░реНрдерд┐рдХрд▓ рдХрд╛рдЙрдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдлреНрд░реЗрдо рдХреЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╝рд╛рд░ рд░рд╣реЗрдЧрд╛:

ws
	lda $D40B ; VCOUNT
	bne ws

рд╡рд┐рдЪрд╛рд░ рд╣реА COLBK рд░рдЬрд┐рд╕реНрдЯрд░ ($ D01A) - рдлреНрд░реЗрдо рдХреЗ рд░рдВрдЧ рдХреЗ рд▓рд┐рдП рд░рдВрдЧ рдорд╛рди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред
рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЛ рд▓рд┐рдЦреЗ рдЧрдП рдореВрд▓реНрдп рдХреЛ рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рд░рдВрдЧ рдкреНрд░рдХрд╛рд░ рдФрд░ рдЪрдордХ, рдкреНрд░рдХрд╛рд░ * 16 + рдЪрдордХ рдХреЗ рд░реВрдк рдореЗрдВ рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣рд╛рдБ рдФрд░ рдпрд╣рд╛рдБ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред

рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рд░рдВрдЧ рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп, рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ - WSYNC (D40A) рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдорд╛рди рдХреЛ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ рдХреЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдкреНрд░рджрд░реНрд╢рди рд╕реВрдЪреА рдореЗрдВ рдПрдХ рд╣реА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдкреНрд░рднрд╛рд╡ рдЦреБрдж рдХреЛ рдлреНрд░реЗрдо рдХреЗ рдЗрдВрддрдЬрд╛рд░ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд░рдВрдЧ рдорд╛рди рдЙрддреНрдкрдиреНрди рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡рд░реНрдгрд┐рдд рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП рд╢реВрдиреНрдп рдкреГрд╖реНрда рдкрддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк xasm рдХреЛрдбрд╛рдВрддрд░рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЫрд╡рд┐


	org $4000
	
start

wait_frame
ws
	lda $D40B ; VCOUNT
	bne ws
       LDY #0
       STY 559
zz
	LDA $CD
	CLC
	ADC #5
	STA $CD
	BCC BR1
	INC $CE
BR1
	ADC $CB
	STA $CB
	BCC BR2
	INC $CC
BR2
	LDA $CC
	STA $D40A ; WSYNC
	STA $D01A
	INY
	BNE zz
	BEQ wait_frame
	run start

рдпрд╣ 54 рдмрд╛рдЗрдЯ рдирд┐рдХрд▓рд╛ред 54-6 (рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реЗрдбрд░) = 48 рдмрд╛рдЗрдЯреНрд╕ред рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рд░реЗ рд░рдВрдЧ рдХреА рдЪрдордХ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рддреЗ рд╣реИрдВ

	lda $CC
;*  
	and #$0f
	ORA #$C0
;*  
	sta $D40A ; wsync
	sta $D01A

рд░рдВрдЧ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдореИрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ рдЬреЛ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ рд╕реНрд╡рдпрдВ рдЕрдкрдиреЗ рд╣рд╛рде рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рдмрдирд╛рдПрдВ, рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдмрдирд╛рдПрдВред рдпрд╣ рдмрд╣реБрдд рд░реЛрдорд╛рдВрдЪрдХ рд╣реИ!

All Articles