; H8/536 ROM disassembly ; input: ROM\M27C512@DIP28_1.BIN ; bytes: 65536 ; vector mode: min ; analysis: linear sweep ; ; Notes from the manual: ; - H8/536 uses the H8/500 CPU instruction set. ; - In minimum mode the reset vector at H'0000-H'0001 is a 16-bit PC. ; - The register field is H'FE80-H'FFFF; names below come from appendix B. ; - @aa:8 short absolute operands use BR as the upper address byte. ; - SCI baud inference uses section 14.2.8 BRR formulas when SMR/BRR are known. ; - LCD inference treats E-clock H'F200/H'F201 accesses as status/control and data candidates. ; Memory Map ; H'0000-H'009F exception_vectors vectors ; H'00A0-H'00FF dtc_vectors dtc_vectors ; H'0100-H'F67F program_or_external program ; H'F680-H'FE7F on_chip_ram ram ; H'FE80-H'FFFF register_field registers ; Vectors ; H'0000 reset -> vec_reset_1000 (H'1000) ; H'0004 invalid_instruction -> vec_reset_1000 (H'1000) ; H'0006 zero_divide -> vec_reset_1000 (H'1000) ; H'0008 trap_vs -> vec_reset_1000 (H'1000) ; H'0010 address_error -> vec_reset_1000 (H'1000) ; H'0012 trace -> vec_reset_1000 (H'1000) ; H'0016 nmi -> vec_nmi_4393 (H'4393) ; H'0020 trapa_0 -> vec_reset_1000 (H'1000) ; H'0022 trapa_1 -> vec_reset_1000 (H'1000) ; H'0024 trapa_2 -> vec_reset_1000 (H'1000) ; H'0026 trapa_3 -> vec_reset_1000 (H'1000) ; H'0028 trapa_4 -> vec_reset_1000 (H'1000) ; H'002A trapa_5 -> vec_reset_1000 (H'1000) ; H'002C trapa_6 -> vec_reset_1000 (H'1000) ; H'002E trapa_7 -> vec_reset_1000 (H'1000) ; H'0030 trapa_8 -> vec_reset_1000 (H'1000) ; H'0032 trapa_9 -> vec_reset_1000 (H'1000) ; H'0034 trapa_a -> vec_reset_1000 (H'1000) ; H'0036 trapa_b -> vec_reset_1000 (H'1000) ; H'0038 trapa_c -> vec_reset_1000 (H'1000) ; H'003A trapa_d -> vec_reset_1000 (H'1000) ; H'003C trapa_e -> vec_reset_1000 (H'1000) ; H'003E trapa_f -> vec_reset_1000 (H'1000) ; H'0040 irq0 -> vec_reset_1000 (H'1000) ; H'0042 interval_timer -> vec_interval_timer_BFC4 (H'BFC4) ; H'0048 irq1 -> vec_reset_1000 (H'1000) ; H'0050 irq2 -> vec_reset_1000 (H'1000) ; H'0052 irq3 -> vec_irq3_3C30 (H'3C30) ; H'0058 irq4 -> vec_irq4_3AC7 (H'3AC7) ; H'005A irq5 -> vec_reset_1000 (H'1000) ; H'0062 frt1_ocia -> vec_frt1_ocia_BEEA (H'BEEA) ; H'006A frt2_ocia -> vec_frt2_ocia_BF23 (H'BF23) ; H'0080 sci1_eri -> vec_sci1_eri_BB57 (H'BB57) ; H'0082 sci1_rxi -> vec_sci1_rxi_BB67 (H'BB67) ; H'0084 sci1_txi -> vec_sci1_txi_BA84 (H'BA84) ; H'0090 ad_adi -> vec_ad_adi_3D99 (H'3D99) ; Symbols ; mem_E026 H'E026 program_or_external memory r=4 w=0 width=word ; mem_E02A H'E02A program_or_external memory r=1 w=0 width=word ; mem_E046 H'E046 program_or_external memory r=0 w=1 width=word ; mem_E110 H'E110 program_or_external memory r=1 w=0 width=word ; mem_E134 H'E134 program_or_external memory r=1 w=0 width=word ; mem_E824 H'E824 program_or_external memory r=0 w=1 width=word ; mem_E826 H'E826 program_or_external memory r=0 w=4 width=word ; mem_E82A H'E82A program_or_external memory r=0 w=1 width=word ; mem_E8D6 H'E8D6 program_or_external memory r=0 w=1 width=word ; ram_F6D4 H'F6D4 on_chip_ram ram r=1 w=0 width=byte ; ram_F6DB H'F6DB on_chip_ram ram r=3 w=0 width=byte ; ram_F713 H'F713 on_chip_ram ram r=2 w=2 width=byte ; ram_F726 H'F726 on_chip_ram ram r=0 w=1 width=byte ; ram_F730 H'F730 on_chip_ram ram r=1 w=0 width=byte ; ram_F731 H'F731 on_chip_ram ram r=5 w=2 width=byte ; ram_F732 H'F732 on_chip_ram ram r=0 w=1 width=word ; ram_F76A H'F76A on_chip_ram ram r=0 w=1 width=word ; ram_F76E H'F76E on_chip_ram ram r=1 w=1 width=byte ; ram_F791 H'F791 on_chip_ram ram r=2 w=1 width=byte ; ram_F798 H'F798 on_chip_ram ram r=0 w=2 width=byte ; ram_FB03 H'FB03 on_chip_ram ram r=1 w=1 width=byte ; Board Profile ; Board trace ties the H8/536 SCI1 pins to a MAX202 RS232 transceiver. ; H8 pin 66 P95/TXD (TXD) -> MAX202 pin 11 ; H8 pin 67 P96/RXD (RXD) -> MAX202 pin 12 ; SCI2 pin routing is disabled by SYSCR2.P9SCI2E=0 in the observed setup. ; LCD/Text Scan ; search 'CONNECT': not literal, hits=0 1FC0: F7 13 C5 1D ROTR.B @(H'13C5,R7) 1FC4: E8 24 07 80 00 MOV:G.W #H'8000, @(H'24,R0) 1FC9: 52 80 MOV:E.B #H'80, R2 ; dataflow R2=H'80 1FCB: 5B 40 12 MOV:I.W #H'4012, R3 ; dataflow R3=H'4012 1FCE: 1E 1E 83 BSR loc_3E54 1FD1: 19 RTS 1FD2: 15 F7 91 D7 BCLR.B #7, @H'F791 ; refs ram_F791 in on_chip_ram 1FD6: 15 F7 13 D5 BCLR.B #5, @H'F713 ; refs ram_F713 in on_chip_ram 1FDA: 1D E8 24 06 00 MOV:G.W #H'00, @H'E824 ; refs mem_E824 in program_or_external 1FDF: 52 80 MOV:E.B #H'80, R2 ; dataflow R2=H'80 1FE1: 5B 40 12 MOV:I.W #H'4012, R3 ; dataflow R3=H'4012 1FE4: 1E 1E 6D BSR loc_3E54 1FE7: 19 RTS 1FE8: 1D E0 26 80 MOV:G.W @H'E026, R0 ; refs mem_E026 in program_or_external 1FEC: A8 CF BSET.W #15, R0 1FEE: 1D E8 26 90 MOV:G.W R0, @H'E826 ; refs mem_E826 in program_or_external 1FF2: 52 80 MOV:E.B #H'80, R2 ; dataflow R2=H'80 1FF4: 5B 00 13 MOV:I.W #H'0013, R3 ; dataflow R3=H'0013 1FF7: 1E 1E 5A BSR loc_3E54 1FFA: 19 RTS 1FFB: 1D E0 26 80 MOV:G.W @H'E026, R0 ; refs mem_E026 in program_or_external 1FFF: A8 DF BCLR.W #15, R0 2001: 1D E8 26 90 MOV:G.W R0, @H'E826 ; refs mem_E826 in program_or_external 2005: 52 80 MOV:E.B #H'80, R2 ; dataflow R2=H'80 2007: 5B 00 13 MOV:I.W #H'0013, R3 ; dataflow R3=H'0013 200A: 1E 1E 47 BSR loc_3E54 200D: 19 RTS 200E: 15 F6 DB F7 BTST.B #7, @H'F6DB ; refs ram_F6DB in on_chip_ram 2012: 27 33 BEQ loc_2047 2014: 15 F7 31 04 03 CMP:G.B #H'03, @H'F731 ; refs ram_F731 in on_chip_ram 2019: 22 2C BHI loc_2047 201B: 15 F7 91 F5 BTST.B #5, @H'F791 ; refs ram_F791 in on_chip_ram 201F: 26 14 BNE loc_2035 2021: 1D E0 26 80 MOV:G.W @H'E026, R0 ; refs mem_E026 in program_or_external 2025: A8 CE BSET.W #14, R0 2027: 1D E8 26 90 MOV:G.W R0, @H'E826 ; refs mem_E826 in program_or_external 202B: 52 80 MOV:E.B #H'80, R2 ; dataflow R2=H'80 202D: 5B 00 13 MOV:I.W #H'0013, R3 ; dataflow R3=H'0013 2030: 1E 1E 21 BSR loc_3E54 2033: 20 12 BRA loc_2047 loc_2035: 2035: 1D E0 26 80 MOV:G.W @H'E026, R0 ; refs mem_E026 in program_or_external 2039: A8 DE BCLR.W #14, R0 203B: 1D E8 26 90 MOV:G.W R0, @H'E826 ; refs mem_E826 in program_or_external 203F: 52 80 MOV:E.B #H'80, R2 ; dataflow R2=H'80 2041: 5B 00 13 MOV:I.W #H'0013, R3 ; dataflow R3=H'0013 2044: 1E 1E 0D BSR loc_3E54 loc_2047: 2047: 19 RTS 2048: 15 F6 D4 F6 BTST.B #6, @H'F6D4 ; refs ram_F6D4 in on_chip_ram 204C: 27 52 BEQ loc_20A0 204E: 15 F7 31 04 02 CMP:G.B #H'02, @H'F731 ; refs ram_F731 in on_chip_ram 2053: 22 4B BHI loc_20A0 2055: 15 F7 30 F7 BTST.B #7, @H'F730 ; refs ram_F730 in on_chip_ram 2059: 27 19 BEQ loc_2074 205B: 1D E8 D6 07 80 00 MOV:G.W #H'8000, @H'E8D6 ; refs mem_E8D6 in program_or_external 2061: 52 80 MOV:E.B #H'80, R2 ; dataflow R2=H'80 2063: 5B 00 6B MOV:I.W #H'006B, R3 ; dataflow R3=H'006B 2066: 1E 1D EB BSR loc_3E54 2069: 15 F7 31 C7 BSET.B #7, @H'F731 ; refs ram_F731 in on_chip_ram 206D: 15 F7 98 06 C8 MOV:G.B #H'C8, @H'F798 ; refs ram_F798 in on_chip_ram 2072: 20 2C BRA loc_20A0 loc_2074: 2074: 1D F7 32 13 CLR.W @H'F732 ; refs ram_F732 in on_chip_ram 2078: 15 FB 03 D7 BCLR.B #7, @H'FB03 ; refs ram_FB03 in on_chip_ram 207C: 1D E0 46 13 CLR.W @H'E046 ; refs mem_E046 in program_or_external 2080: 1D F7 6A 13 CLR.W @H'F76A ; refs ram_F76A in on_chip_ram 2084: 1E 28 73 BSR loc_48FA 2087: 15 F7 13 C6 BSET.B #6, @H'F713 ; refs ram_F713 in on_chip_ram 208B: 15 F7 26 06 1E MOV:G.B #H'1E, @H'F726 ; refs ram_F726 in on_chip_ram 2090: 15 F7 6E C6 BSET.B #6, @H'F76E ; refs ram_F76E in on_chip_ram 2094: 15 F7 31 C7 BSET.B #7, @H'F731 ; refs ram_F731 in on_chip_ram 2098: 15 F7 98 06 C8 MOV:G.B #H'C8, @H'F798 ; refs ram_F798 in on_chip_ram 209D: 1E 36 38 BSR loc_56D8 loc_20A0: 20A0: 19 RTS 20A1: 1D E0 2A 80 MOV:G.W @H'E02A, R0 ; refs mem_E02A in program_or_external 20A5: 15 F6 DB F5 BTST.B #5, @H'F6DB ; refs ram_F6DB in on_chip_ram 20A9: 27 04 BEQ loc_20AF 20AB: A8 CF BSET.W #15, R0 20AD: 20 02 BRA loc_20B1 loc_20AF: 20AF: A8 DF BCLR.W #15, R0 loc_20B1: 20B1: 1D E8 2A 90 MOV:G.W R0, @H'E82A ; refs mem_E82A in program_or_external 20B5: 52 80 MOV:E.B #H'80, R2 ; dataflow R2=H'80 20B7: 5B 00 15 MOV:I.W #H'0015, R3 ; dataflow R3=H'0015 20BA: 1E 1D 97 BSR loc_3E54 20BD: 19 RTS 20BE: 15 F6 DB F3 BTST.B #3, @H'F6DB ; refs ram_F6DB in on_chip_ram 20C2: 27 2C BEQ loc_20F0 20C4: 15 F7 31 04 03 CMP:G.B #H'03, @H'F731 ; refs ram_F731 in on_chip_ram 20C9: 22 25 BHI loc_20F0 20CB: 1D E1 10 16 TST.W @H'E110 ; refs mem_E110 in program_or_external 20CF: 27 05 BEQ loc_20D6 20D1: 1E 06 14 BSR loc_26E8 20D4: 20 1A BRA loc_20F0 loc_20D6: 20D6: 1D E1 34 80 MOV:G.W @H'E134, R0 ; refs mem_E134 in program_or_external 20DA: A8 FB BTST.W #11, R0 20DC: 27 04 BEQ loc_20E2 20DE: A8 DB BCLR.W #11, R0