File:  [Isaki's NoNo m68k/m88k emulator] / nono / exp / optestxp / gen.asm
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs
Wed Apr 29 17:05:20 2026 UTC (2 months, 3 weeks ago) by root
Branches: MAIN, Isaki
CVS tags: v027, v026, v025, v024, v023, v022, v021, v020, v019, v018, HEAD
nono 0.6.0

	org	0100H
	JP	main

test_add:
	LD	HL,testset_add
	JP	testrun2
testexec_add:
	ADD	A,D
	RET
testset_add:
	defw	testname_add
	defw	testexec_add
	defw	testdata_add
	defb	0
testname_add:
	defm	"ADD $"

testdata_add:
	defb	000H,002H,000H,000H,040H	; add_00
	defb	000H,002H,001H,001H,000H	; add_01
	defb	000H,002H,00fH,00fH,000H	; add_02
	defb	000H,002H,010H,010H,000H	; add_03
	defb	000H,002H,07fH,07fH,000H	; add_04
	defb	000H,002H,080H,080H,080H	; add_05
	defb	000H,002H,0ffH,0ffH,080H	; add_06
	defb	001H,002H,000H,001H,000H	; add_07
	defb	001H,002H,001H,002H,000H	; add_08
	defb	001H,002H,00fH,010H,010H	; add_09
	defb	001H,002H,010H,011H,000H	; add_0a
	defb	001H,002H,07fH,080H,094H	; add_0b
	defb	001H,002H,080H,081H,080H	; add_0c
	defb	001H,002H,0ffH,000H,051H	; add_0d
	defb	00fH,002H,000H,00fH,000H	; add_0e
	defb	00fH,002H,001H,010H,010H	; add_0f
	defb	00fH,002H,00fH,01eH,010H	; add_10
	defb	00fH,002H,010H,01fH,000H	; add_11
	defb	00fH,002H,07fH,08eH,094H	; add_12
	defb	00fH,002H,080H,08fH,080H	; add_13
	defb	00fH,002H,0ffH,00eH,011H	; add_14
	defb	010H,002H,000H,010H,000H	; add_15
	defb	010H,002H,001H,011H,000H	; add_16
	defb	010H,002H,00fH,01fH,000H	; add_17
	defb	010H,002H,010H,020H,000H	; add_18
	defb	010H,002H,07fH,08fH,084H	; add_19
	defb	010H,002H,080H,090H,080H	; add_1a
	defb	010H,002H,0ffH,00fH,001H	; add_1b
	defb	07fH,002H,000H,07fH,000H	; add_1c
	defb	07fH,002H,001H,080H,094H	; add_1d
	defb	07fH,002H,00fH,08eH,094H	; add_1e
	defb	07fH,002H,010H,08fH,084H	; add_1f
	defb	07fH,002H,07fH,0feH,094H	; add_20
	defb	07fH,002H,080H,0ffH,080H	; add_21
	defb	07fH,002H,0ffH,07eH,011H	; add_22
	defb	080H,002H,000H,080H,080H	; add_23
	defb	080H,002H,001H,081H,080H	; add_24
	defb	080H,002H,00fH,08fH,080H	; add_25
	defb	080H,002H,010H,090H,080H	; add_26
	defb	080H,002H,07fH,0ffH,080H	; add_27
	defb	080H,002H,080H,000H,045H	; add_28
	defb	080H,002H,0ffH,07fH,005H	; add_29
	defb	0ffH,002H,000H,0ffH,080H	; add_2a
	defb	0ffH,002H,001H,000H,051H	; add_2b
	defb	0ffH,002H,00fH,00eH,011H	; add_2c
	defb	0ffH,002H,010H,00fH,001H	; add_2d
	defb	0ffH,002H,07fH,07eH,011H	; add_2e
	defb	0ffH,002H,080H,07fH,005H	; add_2f
	defb	0ffH,002H,0ffH,0feH,091H	; add_30
	defb	0,0,0,0,0FFH

test_adc:
	LD	HL,testset_adc
	JP	testrun2
testexec_adc:
	ADC	A,D
	RET
testset_adc:
	defw	testname_adc
	defw	testexec_adc
	defw	testdata_adc
	defb	0
testname_adc:
	defm	"ADC $"

testdata_adc:
	defb	000H,002H,000H,000H,040H	; adc_00
	defb	000H,003H,000H,001H,000H	; adc_01
	defb	000H,002H,001H,001H,000H	; adc_02
	defb	000H,003H,001H,002H,000H	; adc_03
	defb	000H,002H,00fH,00fH,000H	; adc_04
	defb	000H,003H,00fH,010H,010H	; adc_05
	defb	000H,002H,010H,010H,000H	; adc_06
	defb	000H,003H,010H,011H,000H	; adc_07
	defb	000H,002H,07fH,07fH,000H	; adc_08
	defb	000H,003H,07fH,080H,094H	; adc_09
	defb	000H,002H,080H,080H,080H	; adc_0a
	defb	000H,003H,080H,081H,080H	; adc_0b
	defb	000H,002H,0ffH,0ffH,080H	; adc_0c
	defb	000H,003H,0ffH,000H,051H	; adc_0d
	defb	001H,002H,000H,001H,000H	; adc_0e
	defb	001H,003H,000H,002H,000H	; adc_0f
	defb	001H,002H,001H,002H,000H	; adc_10
	defb	001H,003H,001H,003H,000H	; adc_11
	defb	001H,002H,00fH,010H,010H	; adc_12
	defb	001H,003H,00fH,011H,010H	; adc_13
	defb	001H,002H,010H,011H,000H	; adc_14
	defb	001H,003H,010H,012H,000H	; adc_15
	defb	001H,002H,07fH,080H,094H	; adc_16
	defb	001H,003H,07fH,081H,094H	; adc_17
	defb	001H,002H,080H,081H,080H	; adc_18
	defb	001H,003H,080H,082H,080H	; adc_19
	defb	001H,002H,0ffH,000H,051H	; adc_1a
	defb	001H,003H,0ffH,001H,011H	; adc_1b
	defb	00fH,002H,000H,00fH,000H	; adc_1c
	defb	00fH,003H,000H,010H,010H	; adc_1d
	defb	00fH,002H,001H,010H,010H	; adc_1e
	defb	00fH,003H,001H,011H,010H	; adc_1f
	defb	00fH,002H,00fH,01eH,010H	; adc_20
	defb	00fH,003H,00fH,01fH,010H	; adc_21
	defb	00fH,002H,010H,01fH,000H	; adc_22
	defb	00fH,003H,010H,020H,010H	; adc_23
	defb	00fH,002H,07fH,08eH,094H	; adc_24
	defb	00fH,003H,07fH,08fH,094H	; adc_25
	defb	00fH,002H,080H,08fH,080H	; adc_26
	defb	00fH,003H,080H,090H,090H	; adc_27
	defb	00fH,002H,0ffH,00eH,011H	; adc_28
	defb	00fH,003H,0ffH,00fH,011H	; adc_29
	defb	010H,002H,000H,010H,000H	; adc_2a
	defb	010H,003H,000H,011H,000H	; adc_2b
	defb	010H,002H,001H,011H,000H	; adc_2c
	defb	010H,003H,001H,012H,000H	; adc_2d
	defb	010H,002H,00fH,01fH,000H	; adc_2e
	defb	010H,003H,00fH,020H,010H	; adc_2f
	defb	010H,002H,010H,020H,000H	; adc_30
	defb	010H,003H,010H,021H,000H	; adc_31
	defb	010H,002H,07fH,08fH,084H	; adc_32
	defb	010H,003H,07fH,090H,094H	; adc_33
	defb	010H,002H,080H,090H,080H	; adc_34
	defb	010H,003H,080H,091H,080H	; adc_35
	defb	010H,002H,0ffH,00fH,001H	; adc_36
	defb	010H,003H,0ffH,010H,011H	; adc_37
	defb	07fH,002H,000H,07fH,000H	; adc_38
	defb	07fH,003H,000H,080H,094H	; adc_39
	defb	07fH,002H,001H,080H,094H	; adc_3a
	defb	07fH,003H,001H,081H,094H	; adc_3b
	defb	07fH,002H,00fH,08eH,094H	; adc_3c
	defb	07fH,003H,00fH,08fH,094H	; adc_3d
	defb	07fH,002H,010H,08fH,084H	; adc_3e
	defb	07fH,003H,010H,090H,094H	; adc_3f
	defb	07fH,002H,07fH,0feH,094H	; adc_40
	defb	07fH,003H,07fH,0ffH,094H	; adc_41
	defb	07fH,002H,080H,0ffH,080H	; adc_42
	defb	07fH,003H,080H,000H,051H	; adc_43
	defb	07fH,002H,0ffH,07eH,011H	; adc_44
	defb	07fH,003H,0ffH,07fH,011H	; adc_45
	defb	080H,002H,000H,080H,080H	; adc_46
	defb	080H,003H,000H,081H,080H	; adc_47
	defb	080H,002H,001H,081H,080H	; adc_48
	defb	080H,003H,001H,082H,080H	; adc_49
	defb	080H,002H,00fH,08fH,080H	; adc_4a
	defb	080H,003H,00fH,090H,090H	; adc_4b
	defb	080H,002H,010H,090H,080H	; adc_4c
	defb	080H,003H,010H,091H,080H	; adc_4d
	defb	080H,002H,07fH,0ffH,080H	; adc_4e
	defb	080H,003H,07fH,000H,051H	; adc_4f
	defb	080H,002H,080H,000H,045H	; adc_50
	defb	080H,003H,080H,001H,005H	; adc_51
	defb	080H,002H,0ffH,07fH,005H	; adc_52
	defb	080H,003H,0ffH,080H,091H	; adc_53
	defb	0ffH,002H,000H,0ffH,080H	; adc_54
	defb	0ffH,003H,000H,000H,051H	; adc_55
	defb	0ffH,002H,001H,000H,051H	; adc_56
	defb	0ffH,003H,001H,001H,011H	; adc_57
	defb	0ffH,002H,00fH,00eH,011H	; adc_58
	defb	0ffH,003H,00fH,00fH,011H	; adc_59
	defb	0ffH,002H,010H,00fH,001H	; adc_5a
	defb	0ffH,003H,010H,010H,011H	; adc_5b
	defb	0ffH,002H,07fH,07eH,011H	; adc_5c
	defb	0ffH,003H,07fH,07fH,011H	; adc_5d
	defb	0ffH,002H,080H,07fH,005H	; adc_5e
	defb	0ffH,003H,080H,080H,091H	; adc_5f
	defb	0ffH,002H,0ffH,0feH,091H	; adc_60
	defb	0ffH,003H,0ffH,0ffH,091H	; adc_61
	defb	0,0,0,0,0FFH

test_sub:
	LD	HL,testset_sub
	JP	testrun2
testexec_sub:
	SUB	D
	RET
testset_sub:
	defw	testname_sub
	defw	testexec_sub
	defw	testdata_sub
	defb	0
testname_sub:
	defm	"SUB $"

testdata_sub:
	defb	000H,000H,000H,000H,042H	; sub_00
	defb	000H,000H,001H,0ffH,093H	; sub_01
	defb	000H,000H,00fH,0f1H,093H	; sub_02
	defb	000H,000H,010H,0f0H,083H	; sub_03
	defb	000H,000H,07fH,081H,093H	; sub_04
	defb	000H,000H,080H,080H,087H	; sub_05
	defb	000H,000H,0ffH,001H,013H	; sub_06
	defb	001H,000H,000H,001H,002H	; sub_07
	defb	001H,000H,001H,000H,042H	; sub_08
	defb	001H,000H,00fH,0f2H,093H	; sub_09
	defb	001H,000H,010H,0f1H,083H	; sub_0a
	defb	001H,000H,07fH,082H,093H	; sub_0b
	defb	001H,000H,080H,081H,087H	; sub_0c
	defb	001H,000H,0ffH,002H,013H	; sub_0d
	defb	00fH,000H,000H,00fH,002H	; sub_0e
	defb	00fH,000H,001H,00eH,002H	; sub_0f
	defb	00fH,000H,00fH,000H,042H	; sub_10
	defb	00fH,000H,010H,0ffH,083H	; sub_11
	defb	00fH,000H,07fH,090H,083H	; sub_12
	defb	00fH,000H,080H,08fH,087H	; sub_13
	defb	00fH,000H,0ffH,010H,003H	; sub_14
	defb	010H,000H,000H,010H,002H	; sub_15
	defb	010H,000H,001H,00fH,012H	; sub_16
	defb	010H,000H,00fH,001H,012H	; sub_17
	defb	010H,000H,010H,000H,042H	; sub_18
	defb	010H,000H,07fH,091H,093H	; sub_19
	defb	010H,000H,080H,090H,087H	; sub_1a
	defb	010H,000H,0ffH,011H,013H	; sub_1b
	defb	07fH,000H,000H,07fH,002H	; sub_1c
	defb	07fH,000H,001H,07eH,002H	; sub_1d
	defb	07fH,000H,00fH,070H,002H	; sub_1e
	defb	07fH,000H,010H,06fH,002H	; sub_1f
	defb	07fH,000H,07fH,000H,042H	; sub_20
	defb	07fH,000H,080H,0ffH,087H	; sub_21
	defb	07fH,000H,0ffH,080H,087H	; sub_22
	defb	080H,000H,000H,080H,082H	; sub_23
	defb	080H,000H,001H,07fH,016H	; sub_24
	defb	080H,000H,00fH,071H,016H	; sub_25
	defb	080H,000H,010H,070H,006H	; sub_26
	defb	080H,000H,07fH,001H,016H	; sub_27
	defb	080H,000H,080H,000H,042H	; sub_28
	defb	080H,000H,0ffH,081H,093H	; sub_29
	defb	0ffH,000H,000H,0ffH,082H	; sub_2a
	defb	0ffH,000H,001H,0feH,082H	; sub_2b
	defb	0ffH,000H,00fH,0f0H,082H	; sub_2c
	defb	0ffH,000H,010H,0efH,082H	; sub_2d
	defb	0ffH,000H,07fH,080H,082H	; sub_2e
	defb	0ffH,000H,080H,07fH,002H	; sub_2f
	defb	0ffH,000H,0ffH,000H,042H	; sub_30
	defb	0,0,0,0,0FFH

test_sbc:
	LD	HL,testset_sbc
	JP	testrun2
testexec_sbc:
	SBC	A,D
	RET
testset_sbc:
	defw	testname_sbc
	defw	testexec_sbc
	defw	testdata_sbc
	defb	0
testname_sbc:
	defm	"SBC $"

testdata_sbc:
	defb	000H,000H,000H,000H,042H	; sbc_00
	defb	000H,001H,000H,0ffH,093H	; sbc_01
	defb	000H,000H,001H,0ffH,093H	; sbc_02
	defb	000H,001H,001H,0feH,093H	; sbc_03
	defb	000H,000H,00fH,0f1H,093H	; sbc_04
	defb	000H,001H,00fH,0f0H,093H	; sbc_05
	defb	000H,000H,010H,0f0H,083H	; sbc_06
	defb	000H,001H,010H,0efH,093H	; sbc_07
	defb	000H,000H,07fH,081H,093H	; sbc_08
	defb	000H,001H,07fH,080H,093H	; sbc_09
	defb	000H,000H,080H,080H,087H	; sbc_0a
	defb	000H,001H,080H,07fH,013H	; sbc_0b
	defb	000H,000H,0ffH,001H,013H	; sbc_0c
	defb	000H,001H,0ffH,000H,053H	; sbc_0d
	defb	001H,000H,000H,001H,002H	; sbc_0e
	defb	001H,001H,000H,000H,042H	; sbc_0f
	defb	001H,000H,001H,000H,042H	; sbc_10
	defb	001H,001H,001H,0ffH,093H	; sbc_11
	defb	001H,000H,00fH,0f2H,093H	; sbc_12
	defb	001H,001H,00fH,0f1H,093H	; sbc_13
	defb	001H,000H,010H,0f1H,083H	; sbc_14
	defb	001H,001H,010H,0f0H,083H	; sbc_15
	defb	001H,000H,07fH,082H,093H	; sbc_16
	defb	001H,001H,07fH,081H,093H	; sbc_17
	defb	001H,000H,080H,081H,087H	; sbc_18
	defb	001H,001H,080H,080H,087H	; sbc_19
	defb	001H,000H,0ffH,002H,013H	; sbc_1a
	defb	001H,001H,0ffH,001H,013H	; sbc_1b
	defb	00fH,000H,000H,00fH,002H	; sbc_1c
	defb	00fH,001H,000H,00eH,002H	; sbc_1d
	defb	00fH,000H,001H,00eH,002H	; sbc_1e
	defb	00fH,001H,001H,00dH,002H	; sbc_1f
	defb	00fH,000H,00fH,000H,042H	; sbc_20
	defb	00fH,001H,00fH,0ffH,093H	; sbc_21
	defb	00fH,000H,010H,0ffH,083H	; sbc_22
	defb	00fH,001H,010H,0feH,083H	; sbc_23
	defb	00fH,000H,07fH,090H,083H	; sbc_24
	defb	00fH,001H,07fH,08fH,093H	; sbc_25
	defb	00fH,000H,080H,08fH,087H	; sbc_26
	defb	00fH,001H,080H,08eH,087H	; sbc_27
	defb	00fH,000H,0ffH,010H,003H	; sbc_28
	defb	00fH,001H,0ffH,00fH,013H	; sbc_29
	defb	010H,000H,000H,010H,002H	; sbc_2a
	defb	010H,001H,000H,00fH,012H	; sbc_2b
	defb	010H,000H,001H,00fH,012H	; sbc_2c
	defb	010H,001H,001H,00eH,012H	; sbc_2d
	defb	010H,000H,00fH,001H,012H	; sbc_2e
	defb	010H,001H,00fH,000H,052H	; sbc_2f
	defb	010H,000H,010H,000H,042H	; sbc_30
	defb	010H,001H,010H,0ffH,093H	; sbc_31
	defb	010H,000H,07fH,091H,093H	; sbc_32
	defb	010H,001H,07fH,090H,093H	; sbc_33
	defb	010H,000H,080H,090H,087H	; sbc_34
	defb	010H,001H,080H,08fH,097H	; sbc_35
	defb	010H,000H,0ffH,011H,013H	; sbc_36
	defb	010H,001H,0ffH,010H,013H	; sbc_37
	defb	07fH,000H,000H,07fH,002H	; sbc_38
	defb	07fH,001H,000H,07eH,002H	; sbc_39
	defb	07fH,000H,001H,07eH,002H	; sbc_3a
	defb	07fH,001H,001H,07dH,002H	; sbc_3b
	defb	07fH,000H,00fH,070H,002H	; sbc_3c
	defb	07fH,001H,00fH,06fH,012H	; sbc_3d
	defb	07fH,000H,010H,06fH,002H	; sbc_3e
	defb	07fH,001H,010H,06eH,002H	; sbc_3f
	defb	07fH,000H,07fH,000H,042H	; sbc_40
	defb	07fH,001H,07fH,0ffH,093H	; sbc_41
	defb	07fH,000H,080H,0ffH,087H	; sbc_42
	defb	07fH,001H,080H,0feH,087H	; sbc_43
	defb	07fH,000H,0ffH,080H,087H	; sbc_44
	defb	07fH,001H,0ffH,07fH,013H	; sbc_45
	defb	080H,000H,000H,080H,082H	; sbc_46
	defb	080H,001H,000H,07fH,016H	; sbc_47
	defb	080H,000H,001H,07fH,016H	; sbc_48
	defb	080H,001H,001H,07eH,016H	; sbc_49
	defb	080H,000H,00fH,071H,016H	; sbc_4a
	defb	080H,001H,00fH,070H,016H	; sbc_4b
	defb	080H,000H,010H,070H,006H	; sbc_4c
	defb	080H,001H,010H,06fH,016H	; sbc_4d
	defb	080H,000H,07fH,001H,016H	; sbc_4e
	defb	080H,001H,07fH,000H,056H	; sbc_4f
	defb	080H,000H,080H,000H,042H	; sbc_50
	defb	080H,001H,080H,0ffH,093H	; sbc_51
	defb	080H,000H,0ffH,081H,093H	; sbc_52
	defb	080H,001H,0ffH,080H,093H	; sbc_53
	defb	0ffH,000H,000H,0ffH,082H	; sbc_54
	defb	0ffH,001H,000H,0feH,082H	; sbc_55
	defb	0ffH,000H,001H,0feH,082H	; sbc_56
	defb	0ffH,001H,001H,0fdH,082H	; sbc_57
	defb	0ffH,000H,00fH,0f0H,082H	; sbc_58
	defb	0ffH,001H,00fH,0efH,092H	; sbc_59
	defb	0ffH,000H,010H,0efH,082H	; sbc_5a
	defb	0ffH,001H,010H,0eeH,082H	; sbc_5b
	defb	0ffH,000H,07fH,080H,082H	; sbc_5c
	defb	0ffH,001H,07fH,07fH,016H	; sbc_5d
	defb	0ffH,000H,080H,07fH,002H	; sbc_5e
	defb	0ffH,001H,080H,07eH,002H	; sbc_5f
	defb	0ffH,000H,0ffH,000H,042H	; sbc_60
	defb	0ffH,001H,0ffH,0ffH,093H	; sbc_61
	defb	0,0,0,0,0FFH

test_and:
	LD	HL,testset_and
	JP	testrun2
testexec_and:
	AND	D
	RET
testset_and:
	defw	testname_and
	defw	testexec_and
	defw	testdata_and
	defb	0
testname_and:
	defm	"AND $"

testdata_and:
	defb	000H,003H,000H,000H,054H	; and_00
	defb	000H,003H,001H,000H,054H	; and_01
	defb	000H,003H,003H,000H,054H	; and_02
	defb	000H,003H,055H,000H,054H	; and_03
	defb	000H,003H,07fH,000H,054H	; and_04
	defb	000H,003H,0aaH,000H,054H	; and_05
	defb	000H,003H,0ffH,000H,054H	; and_06
	defb	001H,003H,000H,000H,054H	; and_07
	defb	001H,003H,001H,001H,010H	; and_08
	defb	001H,003H,003H,001H,010H	; and_09
	defb	001H,003H,055H,001H,010H	; and_0a
	defb	001H,003H,07fH,001H,010H	; and_0b
	defb	001H,003H,0aaH,000H,054H	; and_0c
	defb	001H,003H,0ffH,001H,010H	; and_0d
	defb	003H,003H,000H,000H,054H	; and_0e
	defb	003H,003H,001H,001H,010H	; and_0f
	defb	003H,003H,003H,003H,014H	; and_10
	defb	003H,003H,055H,001H,010H	; and_11
	defb	003H,003H,07fH,003H,014H	; and_12
	defb	003H,003H,0aaH,002H,010H	; and_13
	defb	003H,003H,0ffH,003H,014H	; and_14
	defb	055H,003H,000H,000H,054H	; and_15
	defb	055H,003H,001H,001H,010H	; and_16
	defb	055H,003H,003H,001H,010H	; and_17
	defb	055H,003H,055H,055H,014H	; and_18
	defb	055H,003H,07fH,055H,014H	; and_19
	defb	055H,003H,0aaH,000H,054H	; and_1a
	defb	055H,003H,0ffH,055H,014H	; and_1b
	defb	07fH,003H,000H,000H,054H	; and_1c
	defb	07fH,003H,001H,001H,010H	; and_1d
	defb	07fH,003H,003H,003H,014H	; and_1e
	defb	07fH,003H,055H,055H,014H	; and_1f
	defb	07fH,003H,07fH,07fH,010H	; and_20
	defb	07fH,003H,0aaH,02aH,010H	; and_21
	defb	07fH,003H,0ffH,07fH,010H	; and_22
	defb	0aaH,003H,000H,000H,054H	; and_23
	defb	0aaH,003H,001H,000H,054H	; and_24
	defb	0aaH,003H,003H,002H,010H	; and_25
	defb	0aaH,003H,055H,000H,054H	; and_26
	defb	0aaH,003H,07fH,02aH,010H	; and_27
	defb	0aaH,003H,0aaH,0aaH,094H	; and_28
	defb	0aaH,003H,0ffH,0aaH,094H	; and_29
	defb	0ffH,003H,000H,000H,054H	; and_2a
	defb	0ffH,003H,001H,001H,010H	; and_2b
	defb	0ffH,003H,003H,003H,014H	; and_2c
	defb	0ffH,003H,055H,055H,014H	; and_2d
	defb	0ffH,003H,07fH,07fH,010H	; and_2e
	defb	0ffH,003H,0aaH,0aaH,094H	; and_2f
	defb	0ffH,003H,0ffH,0ffH,094H	; and_30
	defb	0,0,0,0,0FFH

test_or:
	LD	HL,testset_or
	JP	testrun2
testexec_or:
	OR	D
	RET
testset_or:
	defw	testname_or
	defw	testexec_or
	defw	testdata_or
	defb	0
testname_or:
	defm	"OR $"

testdata_or:
	defb	000H,013H,000H,000H,044H	; or_00
	defb	000H,013H,001H,001H,000H	; or_01
	defb	000H,013H,003H,003H,004H	; or_02
	defb	000H,013H,055H,055H,004H	; or_03
	defb	000H,013H,07fH,07fH,000H	; or_04
	defb	000H,013H,0aaH,0aaH,084H	; or_05
	defb	000H,013H,0ffH,0ffH,084H	; or_06
	defb	001H,013H,000H,001H,000H	; or_07
	defb	001H,013H,001H,001H,000H	; or_08
	defb	001H,013H,003H,003H,004H	; or_09
	defb	001H,013H,055H,055H,004H	; or_0a
	defb	001H,013H,07fH,07fH,000H	; or_0b
	defb	001H,013H,0aaH,0abH,080H	; or_0c
	defb	001H,013H,0ffH,0ffH,084H	; or_0d
	defb	003H,013H,000H,003H,004H	; or_0e
	defb	003H,013H,001H,003H,004H	; or_0f
	defb	003H,013H,003H,003H,004H	; or_10
	defb	003H,013H,055H,057H,000H	; or_11
	defb	003H,013H,07fH,07fH,000H	; or_12
	defb	003H,013H,0aaH,0abH,080H	; or_13
	defb	003H,013H,0ffH,0ffH,084H	; or_14
	defb	055H,013H,000H,055H,004H	; or_15
	defb	055H,013H,001H,055H,004H	; or_16
	defb	055H,013H,003H,057H,000H	; or_17
	defb	055H,013H,055H,055H,004H	; or_18
	defb	055H,013H,07fH,07fH,000H	; or_19
	defb	055H,013H,0aaH,0ffH,084H	; or_1a
	defb	055H,013H,0ffH,0ffH,084H	; or_1b
	defb	07fH,013H,000H,07fH,000H	; or_1c
	defb	07fH,013H,001H,07fH,000H	; or_1d
	defb	07fH,013H,003H,07fH,000H	; or_1e
	defb	07fH,013H,055H,07fH,000H	; or_1f
	defb	07fH,013H,07fH,07fH,000H	; or_20
	defb	07fH,013H,0aaH,0ffH,084H	; or_21
	defb	07fH,013H,0ffH,0ffH,084H	; or_22
	defb	0aaH,013H,000H,0aaH,084H	; or_23
	defb	0aaH,013H,001H,0abH,080H	; or_24
	defb	0aaH,013H,003H,0abH,080H	; or_25
	defb	0aaH,013H,055H,0ffH,084H	; or_26
	defb	0aaH,013H,07fH,0ffH,084H	; or_27
	defb	0aaH,013H,0aaH,0aaH,084H	; or_28
	defb	0aaH,013H,0ffH,0ffH,084H	; or_29
	defb	0ffH,013H,000H,0ffH,084H	; or_2a
	defb	0ffH,013H,001H,0ffH,084H	; or_2b
	defb	0ffH,013H,003H,0ffH,084H	; or_2c
	defb	0ffH,013H,055H,0ffH,084H	; or_2d
	defb	0ffH,013H,07fH,0ffH,084H	; or_2e
	defb	0ffH,013H,0aaH,0ffH,084H	; or_2f
	defb	0ffH,013H,0ffH,0ffH,084H	; or_30
	defb	0,0,0,0,0FFH

test_xor:
	LD	HL,testset_xor
	JP	testrun2
testexec_xor:
	XOR	D
	RET
testset_xor:
	defw	testname_xor
	defw	testexec_xor
	defw	testdata_xor
	defb	0
testname_xor:
	defm	"XOR $"

testdata_xor:
	defb	000H,013H,000H,000H,044H	; xor_00
	defb	000H,013H,001H,001H,000H	; xor_01
	defb	000H,013H,003H,003H,004H	; xor_02
	defb	000H,013H,055H,055H,004H	; xor_03
	defb	000H,013H,07fH,07fH,000H	; xor_04
	defb	000H,013H,0aaH,0aaH,084H	; xor_05
	defb	000H,013H,0ffH,0ffH,084H	; xor_06
	defb	001H,013H,000H,001H,000H	; xor_07
	defb	001H,013H,001H,000H,044H	; xor_08
	defb	001H,013H,003H,002H,000H	; xor_09
	defb	001H,013H,055H,054H,000H	; xor_0a
	defb	001H,013H,07fH,07eH,004H	; xor_0b
	defb	001H,013H,0aaH,0abH,080H	; xor_0c
	defb	001H,013H,0ffH,0feH,080H	; xor_0d
	defb	003H,013H,000H,003H,004H	; xor_0e
	defb	003H,013H,001H,002H,000H	; xor_0f
	defb	003H,013H,003H,000H,044H	; xor_10
	defb	003H,013H,055H,056H,004H	; xor_11
	defb	003H,013H,07fH,07cH,000H	; xor_12
	defb	003H,013H,0aaH,0a9H,084H	; xor_13
	defb	003H,013H,0ffH,0fcH,084H	; xor_14
	defb	055H,013H,000H,055H,004H	; xor_15
	defb	055H,013H,001H,054H,000H	; xor_16
	defb	055H,013H,003H,056H,004H	; xor_17
	defb	055H,013H,055H,000H,044H	; xor_18
	defb	055H,013H,07fH,02aH,000H	; xor_19
	defb	055H,013H,0aaH,0ffH,084H	; xor_1a
	defb	055H,013H,0ffH,0aaH,084H	; xor_1b
	defb	07fH,013H,000H,07fH,000H	; xor_1c
	defb	07fH,013H,001H,07eH,004H	; xor_1d
	defb	07fH,013H,003H,07cH,000H	; xor_1e
	defb	07fH,013H,055H,02aH,000H	; xor_1f
	defb	07fH,013H,07fH,000H,044H	; xor_20
	defb	07fH,013H,0aaH,0d5H,080H	; xor_21
	defb	07fH,013H,0ffH,080H,080H	; xor_22
	defb	0aaH,013H,000H,0aaH,084H	; xor_23
	defb	0aaH,013H,001H,0abH,080H	; xor_24
	defb	0aaH,013H,003H,0a9H,084H	; xor_25
	defb	0aaH,013H,055H,0ffH,084H	; xor_26
	defb	0aaH,013H,07fH,0d5H,080H	; xor_27
	defb	0aaH,013H,0aaH,000H,044H	; xor_28
	defb	0aaH,013H,0ffH,055H,004H	; xor_29
	defb	0ffH,013H,000H,0ffH,084H	; xor_2a
	defb	0ffH,013H,001H,0feH,080H	; xor_2b
	defb	0ffH,013H,003H,0fcH,084H	; xor_2c
	defb	0ffH,013H,055H,0aaH,084H	; xor_2d
	defb	0ffH,013H,07fH,080H,080H	; xor_2e
	defb	0ffH,013H,0aaH,055H,004H	; xor_2f
	defb	0ffH,013H,0ffH,000H,044H	; xor_30
	defb	0,0,0,0,0FFH

test_cp:
	LD	HL,testset_cp
	JP	testrun2
testexec_cp:
	CP	D
	RET
testset_cp:
	defw	testname_cp
	defw	testexec_cp
	defw	testdata_cp
	defb	0
testname_cp:
	defm	"CP $"

testdata_cp:
	defb	000H,000H,000H,000H,042H	; cp_00
	defb	000H,000H,001H,000H,093H	; cp_01
	defb	000H,000H,00fH,000H,093H	; cp_02
	defb	000H,000H,010H,000H,083H	; cp_03
	defb	000H,000H,07fH,000H,093H	; cp_04
	defb	000H,000H,080H,000H,087H	; cp_05
	defb	000H,000H,0ffH,000H,013H	; cp_06
	defb	001H,000H,000H,001H,002H	; cp_07
	defb	001H,000H,001H,001H,042H	; cp_08
	defb	001H,000H,00fH,001H,093H	; cp_09
	defb	001H,000H,010H,001H,083H	; cp_0a
	defb	001H,000H,07fH,001H,093H	; cp_0b
	defb	001H,000H,080H,001H,087H	; cp_0c
	defb	001H,000H,0ffH,001H,013H	; cp_0d
	defb	00fH,000H,000H,00fH,002H	; cp_0e
	defb	00fH,000H,001H,00fH,002H	; cp_0f
	defb	00fH,000H,00fH,00fH,042H	; cp_10
	defb	00fH,000H,010H,00fH,083H	; cp_11
	defb	00fH,000H,07fH,00fH,083H	; cp_12
	defb	00fH,000H,080H,00fH,087H	; cp_13
	defb	00fH,000H,0ffH,00fH,003H	; cp_14
	defb	010H,000H,000H,010H,002H	; cp_15
	defb	010H,000H,001H,010H,012H	; cp_16
	defb	010H,000H,00fH,010H,012H	; cp_17
	defb	010H,000H,010H,010H,042H	; cp_18
	defb	010H,000H,07fH,010H,093H	; cp_19
	defb	010H,000H,080H,010H,087H	; cp_1a
	defb	010H,000H,0ffH,010H,013H	; cp_1b
	defb	07fH,000H,000H,07fH,002H	; cp_1c
	defb	07fH,000H,001H,07fH,002H	; cp_1d
	defb	07fH,000H,00fH,07fH,002H	; cp_1e
	defb	07fH,000H,010H,07fH,002H	; cp_1f
	defb	07fH,000H,07fH,07fH,042H	; cp_20
	defb	07fH,000H,080H,07fH,087H	; cp_21
	defb	07fH,000H,0ffH,07fH,087H	; cp_22
	defb	080H,000H,000H,080H,082H	; cp_23
	defb	080H,000H,001H,080H,016H	; cp_24
	defb	080H,000H,00fH,080H,016H	; cp_25
	defb	080H,000H,010H,080H,006H	; cp_26
	defb	080H,000H,07fH,080H,016H	; cp_27
	defb	080H,000H,080H,080H,042H	; cp_28
	defb	080H,000H,0ffH,080H,093H	; cp_29
	defb	0ffH,000H,000H,0ffH,082H	; cp_2a
	defb	0ffH,000H,001H,0ffH,082H	; cp_2b
	defb	0ffH,000H,00fH,0ffH,082H	; cp_2c
	defb	0ffH,000H,010H,0ffH,082H	; cp_2d
	defb	0ffH,000H,07fH,0ffH,082H	; cp_2e
	defb	0ffH,000H,080H,0ffH,002H	; cp_2f
	defb	0ffH,000H,0ffH,0ffH,042H	; cp_30
	defb	0,0,0,0,0FFH

test_inc:
	LD	HL,testset_inc
	JP	testrun1
testexec_inc:
	INC	A
	RET
testset_inc:
	defw	testname_inc
	defw	testexec_inc
	defw	testdata_inc
	defb	0
testname_inc:
	defm	"INC $"

testdata_inc:
	defb	000H,002H,001H,000H	; inc_00
	defb	000H,003H,001H,001H	; inc_01
	defb	001H,002H,002H,000H	; inc_02
	defb	001H,003H,002H,001H	; inc_03
	defb	00fH,002H,010H,010H	; inc_04
	defb	00fH,003H,010H,011H	; inc_05
	defb	010H,002H,011H,000H	; inc_06
	defb	010H,003H,011H,001H	; inc_07
	defb	07fH,002H,080H,094H	; inc_08
	defb	07fH,003H,080H,095H	; inc_09
	defb	080H,002H,081H,080H	; inc_0a
	defb	080H,003H,081H,081H	; inc_0b
	defb	0ffH,002H,000H,050H	; inc_0c
	defb	0ffH,003H,000H,051H	; inc_0d
	defb	0,0,0,0FFH

test_dec:
	LD	HL,testset_dec
	JP	testrun1
testexec_dec:
	DEC	A
	RET
testset_dec:
	defw	testname_dec
	defw	testexec_dec
	defw	testdata_dec
	defb	0
testname_dec:
	defm	"DEC $"

testdata_dec:
	defb	000H,000H,0ffH,092H	; dec_00
	defb	000H,001H,0ffH,093H	; dec_01
	defb	001H,000H,000H,042H	; dec_02
	defb	001H,001H,000H,043H	; dec_03
	defb	00fH,000H,00eH,002H	; dec_04
	defb	00fH,001H,00eH,003H	; dec_05
	defb	010H,000H,00fH,012H	; dec_06
	defb	010H,001H,00fH,013H	; dec_07
	defb	07fH,000H,07eH,002H	; dec_08
	defb	07fH,001H,07eH,003H	; dec_09
	defb	080H,000H,07fH,016H	; dec_0a
	defb	080H,001H,07fH,017H	; dec_0b
	defb	0ffH,000H,0feH,082H	; dec_0c
	defb	0ffH,001H,0feH,083H	; dec_0d
	defb	0,0,0,0FFH

test_neg:
	LD	HL,testset_neg
	JP	testrun1
testexec_neg:
	NEG
	RET
testset_neg:
	defw	testname_neg
	defw	testexec_neg
	defw	testdata_neg
	defb	0
testname_neg:
	defm	"NEG $"

testdata_neg:
	defb	000H,000H,000H,042H	; neg_00
	defb	001H,000H,0ffH,093H	; neg_01
	defb	00fH,000H,0f1H,093H	; neg_02
	defb	010H,000H,0f0H,083H	; neg_03
	defb	07fH,000H,081H,093H	; neg_04
	defb	080H,000H,080H,087H	; neg_05
	defb	0ffH,000H,001H,013H	; neg_06
	defb	0,0,0,0FFH

test_cpl:
	LD	HL,testset_cpl
	JP	testrun1
testexec_cpl:
	CPL
	RET
testset_cpl:
	defw	testname_cpl
	defw	testexec_cpl
	defw	testdata_cpl
	defb	0
testname_cpl:
	defm	"CPL $"

testdata_cpl:
	defb	000H,0c5H,0ffH,0d7H	; cpl_00
	defb	001H,000H,0feH,012H	; cpl_01
	defb	003H,0c5H,0fcH,0d7H	; cpl_02
	defb	055H,000H,0aaH,012H	; cpl_03
	defb	07fH,0c5H,080H,0d7H	; cpl_04
	defb	0aaH,000H,055H,012H	; cpl_05
	defb	0ffH,0c5H,000H,0d7H	; cpl_06
	defb	0,0,0,0FFH

test_rla:
	LD	HL,testset_rla
	JP	testrun1
testexec_rla:
	RLA
	RET
testset_rla:
	defw	testname_rla
	defw	testexec_rla
	defw	testdata_rla
	defb	0
testname_rla:
	defm	"RLA $"

testdata_rla:
	defb	000H,0d6H,000H,0c4H	; rla_00
	defb	000H,0d7H,001H,0c4H	; rla_01
	defb	001H,012H,002H,000H	; rla_02
	defb	001H,013H,003H,000H	; rla_03
	defb	003H,0d6H,006H,0c4H	; rla_04
	defb	003H,0d7H,007H,0c4H	; rla_05
	defb	055H,012H,0aaH,000H	; rla_06
	defb	055H,013H,0abH,000H	; rla_07
	defb	07fH,0d6H,0feH,0c4H	; rla_08
	defb	07fH,0d7H,0ffH,0c4H	; rla_09
	defb	0aaH,012H,054H,001H	; rla_0a
	defb	0aaH,013H,055H,001H	; rla_0b
	defb	0ffH,0d6H,0feH,0c5H	; rla_0c
	defb	0ffH,0d7H,0ffH,0c5H	; rla_0d
	defb	0,0,0,0FFH

test_rra:
	LD	HL,testset_rra
	JP	testrun1
testexec_rra:
	RRA
	RET
testset_rra:
	defw	testname_rra
	defw	testexec_rra
	defw	testdata_rra
	defb	0
testname_rra:
	defm	"RRA $"

testdata_rra:
	defb	000H,0d6H,000H,0c4H	; rra_00
	defb	000H,0d7H,080H,0c4H	; rra_01
	defb	001H,012H,000H,001H	; rra_02
	defb	001H,013H,080H,001H	; rra_03
	defb	003H,0d6H,001H,0c5H	; rra_04
	defb	003H,0d7H,081H,0c5H	; rra_05
	defb	055H,012H,02aH,001H	; rra_06
	defb	055H,013H,0aaH,001H	; rra_07
	defb	07fH,0d6H,03fH,0c5H	; rra_08
	defb	07fH,0d7H,0bfH,0c5H	; rra_09
	defb	0aaH,012H,055H,000H	; rra_0a
	defb	0aaH,013H,0d5H,000H	; rra_0b
	defb	0ffH,0d6H,07fH,0c5H	; rra_0c
	defb	0ffH,0d7H,0ffH,0c5H	; rra_0d
	defb	0,0,0,0FFH

test_rlca:
	LD	HL,testset_rlca
	JP	testrun1
testexec_rlca:
	RLCA
	RET
testset_rlca:
	defw	testname_rlca
	defw	testexec_rlca
	defw	testdata_rlca
	defb	0
testname_rlca:
	defm	"RLCA $"

testdata_rlca:
	defb	000H,0d6H,000H,0c4H	; rlca_00
	defb	001H,012H,002H,000H	; rlca_01
	defb	003H,0d6H,006H,0c4H	; rlca_02
	defb	055H,012H,0aaH,000H	; rlca_03
	defb	07fH,0d6H,0feH,0c4H	; rlca_04
	defb	0aaH,012H,055H,001H	; rlca_05
	defb	0ffH,0d6H,0ffH,0c5H	; rlca_06
	defb	0,0,0,0FFH

test_rrca:
	LD	HL,testset_rrca
	JP	testrun1
testexec_rrca:
	RRCA
	RET
testset_rrca:
	defw	testname_rrca
	defw	testexec_rrca
	defw	testdata_rrca
	defb	0
testname_rrca:
	defm	"RRCA $"

testdata_rrca:
	defb	000H,0d6H,000H,0c4H	; rrca_00
	defb	001H,012H,080H,001H	; rrca_01
	defb	003H,0d6H,081H,0c5H	; rrca_02
	defb	055H,012H,0aaH,001H	; rrca_03
	defb	07fH,0d6H,0bfH,0c5H	; rrca_04
	defb	0aaH,012H,055H,000H	; rrca_05
	defb	0ffH,0d6H,0ffH,0c5H	; rrca_06
	defb	0,0,0,0FFH

test_rl:
	LD	HL,testset_rl
	JP	testrun1
testexec_rl:
	RL	A
	RET
testset_rl:
	defw	testname_rl
	defw	testexec_rl
	defw	testdata_rl
	defb	0
testname_rl:
	defm	"RL $"

testdata_rl:
	defb	000H,012H,000H,044H	; rl_00
	defb	000H,013H,001H,000H	; rl_01
	defb	001H,012H,002H,000H	; rl_02
	defb	001H,013H,003H,004H	; rl_03
	defb	003H,012H,006H,004H	; rl_04
	defb	003H,013H,007H,000H	; rl_05
	defb	055H,012H,0aaH,084H	; rl_06
	defb	055H,013H,0abH,080H	; rl_07
	defb	07fH,012H,0feH,080H	; rl_08
	defb	07fH,013H,0ffH,084H	; rl_09
	defb	0aaH,012H,054H,001H	; rl_0a
	defb	0aaH,013H,055H,005H	; rl_0b
	defb	0ffH,012H,0feH,081H	; rl_0c
	defb	0ffH,013H,0ffH,085H	; rl_0d
	defb	0,0,0,0FFH

test_rr:
	LD	HL,testset_rr
	JP	testrun1
testexec_rr:
	RR	A
	RET
testset_rr:
	defw	testname_rr
	defw	testexec_rr
	defw	testdata_rr
	defb	0
testname_rr:
	defm	"RR $"

testdata_rr:
	defb	000H,012H,000H,044H	; rr_00
	defb	000H,013H,080H,080H	; rr_01
	defb	001H,012H,000H,045H	; rr_02
	defb	001H,013H,080H,081H	; rr_03
	defb	003H,012H,001H,001H	; rr_04
	defb	003H,013H,081H,085H	; rr_05
	defb	055H,012H,02aH,001H	; rr_06
	defb	055H,013H,0aaH,085H	; rr_07
	defb	07fH,012H,03fH,005H	; rr_08
	defb	07fH,013H,0bfH,081H	; rr_09
	defb	0aaH,012H,055H,004H	; rr_0a
	defb	0aaH,013H,0d5H,080H	; rr_0b
	defb	0ffH,012H,07fH,001H	; rr_0c
	defb	0ffH,013H,0ffH,085H	; rr_0d
	defb	0,0,0,0FFH

test_rlc:
	LD	HL,testset_rlc
	JP	testrun1
testexec_rlc:
	RLC	A
	RET
testset_rlc:
	defw	testname_rlc
	defw	testexec_rlc
	defw	testdata_rlc
	defb	0
testname_rlc:
	defm	"RLC $"

testdata_rlc:
	defb	000H,012H,000H,044H	; rlc_00
	defb	001H,012H,002H,000H	; rlc_01
	defb	003H,012H,006H,004H	; rlc_02
	defb	055H,012H,0aaH,084H	; rlc_03
	defb	07fH,012H,0feH,080H	; rlc_04
	defb	0aaH,012H,055H,005H	; rlc_05
	defb	0ffH,012H,0ffH,085H	; rlc_06
	defb	0,0,0,0FFH

test_rrc:
	LD	HL,testset_rrc
	JP	testrun1
testexec_rrc:
	RRC	A
	RET
testset_rrc:
	defw	testname_rrc
	defw	testexec_rrc
	defw	testdata_rrc
	defb	0
testname_rrc:
	defm	"RRC $"

testdata_rrc:
	defb	000H,012H,000H,044H	; rrc_00
	defb	001H,012H,080H,081H	; rrc_01
	defb	003H,012H,081H,085H	; rrc_02
	defb	055H,012H,0aaH,085H	; rrc_03
	defb	07fH,012H,0bfH,081H	; rrc_04
	defb	0aaH,012H,055H,004H	; rrc_05
	defb	0ffH,012H,0ffH,085H	; rrc_06
	defb	0,0,0,0FFH

test_sla:
	LD	HL,testset_sla
	JP	testrun1
testexec_sla:
	SLA	A
	RET
testset_sla:
	defw	testname_sla
	defw	testexec_sla
	defw	testdata_sla
	defb	0
testname_sla:
	defm	"SLA $"

testdata_sla:
	defb	000H,012H,000H,044H	; sla_00
	defb	001H,012H,002H,000H	; sla_01
	defb	003H,012H,006H,004H	; sla_02
	defb	055H,012H,0aaH,084H	; sla_03
	defb	07fH,012H,0feH,080H	; sla_04
	defb	0aaH,012H,054H,001H	; sla_05
	defb	0ffH,012H,0feH,081H	; sla_06
	defb	0,0,0,0FFH

test_sra:
	LD	HL,testset_sra
	JP	testrun1
testexec_sra:
	SRA	A
	RET
testset_sra:
	defw	testname_sra
	defw	testexec_sra
	defw	testdata_sra
	defb	0
testname_sra:
	defm	"SRA $"

testdata_sra:
	defb	000H,012H,000H,044H	; sra_00
	defb	001H,012H,000H,045H	; sra_01
	defb	003H,012H,001H,001H	; sra_02
	defb	055H,012H,02aH,001H	; sra_03
	defb	07fH,012H,03fH,005H	; sra_04
	defb	0aaH,012H,0d5H,080H	; sra_05
	defb	0ffH,012H,0ffH,085H	; sra_06
	defb	0,0,0,0FFH

test_srl:
	LD	HL,testset_srl
	JP	testrun1
testexec_srl:
	SRL	A
	RET
testset_srl:
	defw	testname_srl
	defw	testexec_srl
	defw	testdata_srl
	defb	0
testname_srl:
	defm	"SRL $"

testdata_srl:
	defb	000H,012H,000H,044H	; srl_00
	defb	001H,012H,000H,045H	; srl_01
	defb	003H,012H,001H,001H	; srl_02
	defb	055H,012H,02aH,001H	; srl_03
	defb	07fH,012H,03fH,005H	; srl_04
	defb	0aaH,012H,055H,004H	; srl_05
	defb	0ffH,012H,07fH,001H	; srl_06
	defb	0,0,0,0FFH

main:
	CALL	test_add
	CALL	test_adc
	CALL	test_sub
	CALL	test_sbc
	CALL	test_and
	CALL	test_or
	CALL	test_xor
	CALL	test_cp
	CALL	test_inc
	CALL	test_dec
	CALL	test_neg
	CALL	test_cpl
	CALL	test_rla
	CALL	test_rra
	CALL	test_rlca
	CALL	test_rrca
	CALL	test_rl
	CALL	test_rr
	CALL	test_rlc
	CALL	test_rrc
	CALL	test_sla
	CALL	test_sra
	CALL	test_srl
	RET

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.