<commit_before>; Lチカ for ATmega328P

; 内部クロック(8MHz)を用いて、
; B0ピンに約1秒おきにHIGHとLOWを交互に出力します。

; Extended Fuse Byte = 0x07
; Fuse High Byte     = 0xDF
; Fuse Low Byte      = 0xE2

; 割り込みベクタ
jmp reset_handler
jmp int0_handler
jmp int1_handler
jmp pcint0_handler
jmp pcint1_handler
jmp pcint2_handler
jmp wdt_handler
jmp timer2_compa_handler
jmp timer2_compb_handler
jmp timer2_ovf_handler
jmp timer1_capt_handller
jmp timer1_compa_handler
jmp timer1_compb_handler
jmp timer1_ovf_handler
jmp timer16_compa_handler
jmp timer16_compb_handler
jmp timer16_ovf_handler
jmp spi_stc_handler
jmp usart_rx_handler
jmp usart_udre_handler
jmp usatr_tx_handler
jmp adc_handler
jmp ee_ready_handler
jmp analog_comp_handler
jmp twi_handler
jmp spm_ready_handler

; 何もせずに戻る
int0_handler:
int1_handler:
pcint0_handler:
pcint1_handler:
pcint2_handler:
wdt_handler:
timer2_compa_handler:
timer2_compb_handler:
timer2_ovf_handler:
timer1_capt_handller:
timer1_compa_handler:
timer1_compb_handler:
timer1_ovf_handler:
timer16_compa_handler:
timer16_compb_handler:
timer16_ovf_handler:
spi_stc_handler:
usart_rx_handler:
usart_udre_handler:
usatr_tx_handler:
adc_handler:
ee_ready_handler:
analog_comp_handler:
twi_handler:
spm_ready_handler:
	reti

; エントリポイント
reset_handler:
	; WDTを無効に設定する
	ldi r16, 0x00
	sts 0x60, r16
	; B0を出力に、Bn(n=1, ... ,7)を入力に設定する
	ldi r16, 0x01
	out 0x04, r16
loop:
	; B0をLOWに設定する
	ldi r16, 0x00
	out 0x05, r16
	; ウェイトを入れる
	rcall wait
	nop
	nop
	; B0をHIGHに設定する
	ldi r16, 0x01
	out 0x05, r16
	; ウェイトを入れる
	rcall wait
	; 戻る
	rjmp loop

; 約1秒待つ(8MHz)
wait:
	ldi r17, 200
wait_loop1:
	ldi r18, 200
	; ----- ここから
wait_loop2:
	ldi r19, 65
wait_loop3:
	dec r19
	brne wait_loop3
	nop
	dec r18
	brne wait_loop2
	; ----- ここ(ジャンプする)までで1周200クロック
	dec r17
	brne wait_loop1
	ret<commit_msg>improve wait in l_tika.txt<commit_after>; Lチカ for ATmega328P

; 内部クロック(8MHz)を用いて、
; B0ピンに約1秒おきにHIGHとLOWを交互に出力します。

; Extended Fuse Byte = 0x07
; Fuse High Byte     = 0xDF
; Fuse Low Byte      = 0xE2

; 割り込みベクタ
jmp reset_handler
jmp int0_handler
jmp int1_handler
jmp pcint0_handler
jmp pcint1_handler
jmp pcint2_handler
jmp wdt_handler
jmp timer2_compa_handler
jmp timer2_compb_handler
jmp timer2_ovf_handler
jmp timer1_capt_handller
jmp timer1_compa_handler
jmp timer1_compb_handler
jmp timer1_ovf_handler
jmp timer16_compa_handler
jmp timer16_compb_handler
jmp timer16_ovf_handler
jmp spi_stc_handler
jmp usart_rx_handler
jmp usart_udre_handler
jmp usatr_tx_handler
jmp adc_handler
jmp ee_ready_handler
jmp analog_comp_handler
jmp twi_handler
jmp spm_ready_handler

; 何もせずに戻る
int0_handler:
int1_handler:
pcint0_handler:
pcint1_handler:
pcint2_handler:
wdt_handler:
timer2_compa_handler:
timer2_compb_handler:
timer2_ovf_handler:
timer1_capt_handller:
timer1_compa_handler:
timer1_compb_handler:
timer1_ovf_handler:
timer16_compa_handler:
timer16_compb_handler:
timer16_ovf_handler:
spi_stc_handler:
usart_rx_handler:
usart_udre_handler:
usatr_tx_handler:
adc_handler:
ee_ready_handler:
analog_comp_handler:
twi_handler:
spm_ready_handler:
	reti

; エントリポイント
reset_handler:
	; WDTを無効に設定する
	ldi r16, 0x00
	sts 0x60, r16
	; B0を出力に、Bn(n=1, ... ,7)を入力に設定する
	ldi r16, 0x01
	out 0x04, r16
loop:
	; B0をLOWに設定する
	ldi r16, 0x00
	out 0x05, r16
	; ウェイトを入れる
	rcall wait
	nop
	nop
	; B0をHIGHに設定する
	ldi r16, 0x01
	out 0x05, r16
	; ウェイトを入れる
	rcall wait
	; 戻る
	rjmp loop

; 約1秒待つ(8MHz)
wait:
	ldi r17, 200
wait_loop1:
	; ----- この地点から
	ldi r18, 199
wait_loop2:
	; ---------- ここから
	ldi r19, 65
wait_loop3:
	dec r19
	brne wait_loop3
	nop
	nop
	dec r18
	brne wait_loop2
	; ---------- ここ(ジャンプする)までで1周200クロック
	; ----- この地点まで39800クロック
	; -- この場所から
	ldi r19, 65
wait_post_loop2:
	dec r19
	brne wait_post_loop2
	nop
	nop
	dec r17
	brne wait_loop1
	; -- この場所までジャンプを含めて200クロック
	ret
{'fraction_non_alphanumeric': 0.058791946308724835, 'fraction_numerical': 0.07140939597315436, 'mean_word_length': 5.491289198606272, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1412472', 'n_tokens_mistral': 2054, 'n_tokens_neox': 1918, 'n_words': 359}