Annotation of nono/hd64180/instructions.txt, revision 1.1

1.1     ! root        1: ;
        !             2: ; nono
        !             3: ; Copyright (C) 2022 nono project
        !             4: ; Licensed under nono-license.txt
        !             5: ;
        !             6: 
        !             7: ; ビットパターンはこの定義順に展開するので、前の行を後の行で上書きする。
        !             8: ; そのためより限定的なほうを後ろ(下)に記述すること。
        !             9: ; それ以外は概ねソートすること。
        !            10: ;
        !            11: ; ビットパターン
        !            12: ;      0, 1    … 0 または 1 固定のビット
        !            13: ;      n       … 0 および 1 の両方に展開される
        !            14: ;      rrr,sss … レジスタ (B,C,D,E,H,L,A) に展開 (%110=(HL) は除く)
        !            15: ;                  ixr,ixs なら B,C,D,E, IXH, IXL, A に展開
        !            16: ;      ww      … レジスタ BC,DE,HL,SP に展開
        !            17: ;      zz      … レジスタ BC,DE,HL,AF に展開
        !            18: ;      fff     … 条件に展開
        !            19: ;      bbb     … ビット番号 0-7 に展開
        !            20: ;
        !            21: ; CPU
        !            22: ;      0               … Z80 (not supported, reference only)
        !            23: ;      1               … HD64*180
        !            24: ;      R               … R800 (not supported, reference only)
        !            25: 
        !            26: ; ここだけ紛らわしいので注意。
        !            27: ;    00100010 LD (nn),HL
        !            28: ; DD:00100010 LD (nn),IX/IY
        !            29: ; ED:01ww0011 LD (nn),ww (ww = BC,DE,HL,SP)
        !            30: ; と
        !            31: ;    00101010 LD HL,(nn)
        !            32: ; DD:00101010 LD IX/IY,(nn)
        !            33: ; ED:01ww1011 LD ww,(nn) (ww = BC,DE,HL,SP)
        !            34: 
        !            35: ; パターン         CPU             関数名               表示名
        !            36: 00ww0001               01R             ld_ww_nn        LD ww,nn
        !            37: 00ww0010               01R             ld_wwin_a       LD (ww),A
        !            38: 00ww0011               01R             inc_ww          INC ww
        !            39: 00rrr100               01R             inc_r           INC r
        !            40: 00110100               01R             inc_hlin        INC (HL)
        !            41: 00rrr101               01R             dec_r           DEC r
        !            42: 00110101               01R             dec_hlin        DEC (HL)
        !            43: 00rrr110               01R             ld_r_n          LD r,n
        !            44: 00110110               01R             ld_hlin_n       LD (HL),n
        !            45: 00ww1001               01R             add_hl_ww       ADD HL,ww
        !            46: 00ww1010               01R             ld_a_wwin       LD A,(ww)
        !            47: 00ww1011               01R             dec_ww          DEC ww
        !            48: 
        !            49: 00000000               01R             nop
        !            50: 00000111               01R             rlca
        !            51: 00001000               01R             ex_af_af        EX AF,AF'
        !            52: 00001111               01R             rrca
        !            53: 
        !            54: 00010000               01R             djnz            DJNZ n
        !            55: 00010111               01R             rla
        !            56: 00011000               01R             jr                      JR n
        !            57: 00011111               01R             rra
        !            58: 
        !            59: 00100000               01R             jr_nz           JR NZ,n
        !            60: 00100010               01R             ld_nnin_hl      LD (nn),HL
        !            61: 00100111               01R             daa
        !            62: 00101000               01R             jr_z            JR Z,n
        !            63: 00101010               01R             ld_hl_nnin      LD HL,(nn)
        !            64: 00101111               01R             cpl
        !            65: 
        !            66: 00110000               01R             jr_nc           JR NC,n
        !            67: 00110010               01R             ld_nnin_a       LD (nn),A
        !            68: 00110111               01R             scf
        !            69: 00111000               01R             jr_c            JR C,n
        !            70: 00111010               01R             ld_a_nnin       LD A,(nn)
        !            71: 00111111               01R             ccf
        !            72: 
        !            73: 01rrrsss               01R             ld_r_s          LD r,s
        !            74: 01110sss               01R             ld_hlin_s       LD (HL),s
        !            75: 01rrr110               01R             ld_r_hlin       LD r,(HL)
        !            76: 01110110               01R             halt
        !            77: 
        !            78: 10000rrr               01R             add_a_r         ADD A,r
        !            79: 10000110               01R             add_a_hlin      ADD A,(HL)
        !            80: 10001rrr               01R             adc_a_r         ADC A,r
        !            81: 10001110               01R             adc_a_hlin      ADC A,(HL)
        !            82: 10010rrr               01R             sub_r           SUB r
        !            83: 10010110               01R             sub_hlin        SUB (HL)
        !            84: 10011rrr               01R             sbc_a_r         SBC A,r
        !            85: 10011110               01R             sbc_a_hlin      SBC A,(HL)
        !            86: 10100rrr               01R             and_r           AND r
        !            87: 10100110               01R             and_hlin        AND (HL)
        !            88: 10101rrr               01R             xor_r           XOR r
        !            89: 10101110               01R             xor_hlin        XOR (HL)
        !            90: 10110rrr               01R             or_r            OR r
        !            91: 10110110               01R             or_hlin         OR (HL)
        !            92: 10111rrr               01R             cp_r            CP r
        !            93: 10111110               01R             cp_hlin         CP (HL)
        !            94: 
        !            95: 11fff000               01R             ret_f           RET f
        !            96: 11zz0001               01R             pop_zz          POP zz
        !            97: 11110001               01R             pop_af          POP AF
        !            98: 11fff010               01R             jp_f_nn         JP f,nn
        !            99: 11fff100               01R             call_f_nn       CALL f,nn
        !           100: 11zz0101               01R             push_zz         PUSH zz
        !           101: 11110101               01R             push_af         PUSH AF
        !           102: 11vvv111               01R             rst                     RST v
        !           103: 
        !           104: 11000011               01R             jp_nn           JP nn
        !           105: 11000110               01R             add_a_n         ADD A,n
        !           106: 11001001               01R             ret
        !           107: 11001011               01R             cb                      op_CB
        !           108: 11001101               01R             call            CALL nn
        !           109: 11001110               01R             adc_a_n         ADC A,n
        !           110: 
        !           111: 11010011               01R             out_n_a         OUT (n),A
        !           112: 11010110               01R             sub_n           SUB n
        !           113: 11011001               01R             exx
        !           114: 11011011               01R             in_a_n          IN A,(n)
        !           115: 11011101               01R             dd                      op_DD
        !           116: 11011110               01R             sbc_a_n         SBC A,n
        !           117: 
        !           118: 11100011               01R             ex_sp_hl        EX (SP),HL
        !           119: 11100110               01R             and_n           AND n
        !           120: 11101001               01R             jp_hl           JP (HL)
        !           121: 11101011               01R             ex_de_hl        EX DE,HL
        !           122: 11101101               01R             ed                      op_ED
        !           123: 11101110               01R             xor_n           XOR n
        !           124: 
        !           125: 11110011               01R             di
        !           126: 11110110               01R             or_n            OR n
        !           127: 11111001               01R             ld_sp_hl        LD SP,HL
        !           128: 11111011               01R             ei
        !           129: 11111101               01R             fd                      op_FD
        !           130: 11111110               01R             cp_n            CP n
        !           131: 
        !           132: 
        !           133: CB:00000rrr            01R             rlc_r           RLC r
        !           134: CB:00000110            01R             rlc_hlin        RLC (HL)
        !           135: CB:00001rrr            01R             rrc_r           RRC r
        !           136: CB:00001110            01R             rrc_hlin        RRC (HL)
        !           137: CB:00010rrr            01R             rl_r            RL r
        !           138: CB:00010110            01R             rl_hlin         RL (HL)
        !           139: CB:00011rrr            01R             rr_r            RR r
        !           140: CB:00011110            01R             rr_hlin         RR (HL)
        !           141: CB:00100rrr            01R             sla_r           SLA r
        !           142: CB:00100110            01R             sla_hlin        SLA (HL)
        !           143: CB:00101rrr            01R             sra_r           SRA r
        !           144: CB:00101110            01R             sra_hlin        SRA (HL)
        !           145: CB:00111rrr            01R             srl_r           SRL r
        !           146: CB:00111110            01R             srl_hlin        SRL (HL)
        !           147: CB:01bbbrrr            01R             bit_r           BIT b,r
        !           148: CB:01bbb110            01R             bit_hlin        BIT b,(HL)
        !           149: CB:10bbbrrr            01R             res_r           RES b,r
        !           150: CB:10bbb110            01R             res_hlin        RES b,(HL)
        !           151: CB:11bbbrrr            01R             set_r           SET b,r
        !           152: CB:11bbb110            01R             set_hlin        SET b,(HL)
        !           153: 
        !           154: 
        !           155: ED:00rrr000            -1-             in0_r_n         IN0 r,(n)
        !           156: ED:00110000            -1-             in0_f_n         IN0 F,(n)
        !           157: ED:00rrr001            -1-             out0_n_r        OUT0 (n),r
        !           158: ED:00rrr100            -1-             tst_r           TST r
        !           159: ED:00110100            -1-             tst_hlin        TST (HL)
        !           160: 
        !           161: ED:01rrr000            01R             in_r_c          IN r,(C)
        !           162: ED:01110000            01R             in_f_c          IN F,(C)
        !           163: ED:01rrr001            01R             out_c_r         OUT (C),r
        !           164: ED:01ww0010            01R             sbc_hl_ww       SBC HL,ww
        !           165: ED:01ww0011            01R             ld_nnin_ww      LD (nn),ww
        !           166: ED:01ww1010            01R             adc_hl_ww       ADC HL,ww
        !           167: ED:01ww1011            01R             ld_ww_nnin      LD ww,(nn)
        !           168: ED:01ww1100            -1-             mlt                     MLT ww
        !           169: 
        !           170: ED:01000100            01R             neg
        !           171: ED:01000101            01R             retn
        !           172: ED:01000110            01R             im_0            IM 0
        !           173: ED:01000111            01R             ld_i_a          LD I,A
        !           174: ED:01001101            01R             reti
        !           175: ED:01001111            01R             ld_r_a          LD R,A
        !           176: 
        !           177: ED:01010110            01R             im_1            IM 1
        !           178: ED:01010111            01R             ld_a_i          LD A,I
        !           179: ED:01011110            01R             im_2            IM 2
        !           180: ED:01011111            01R             ld_a_r          LD A,R
        !           181: 
        !           182: ED:01100100            -1-             tst_n           TST n
        !           183: ED:01100111            01R             rrd
        !           184: ED:01101111            01R             rld
        !           185: 
        !           186: ED:01110100            -1-             tstio_n         TSTIO n
        !           187: ED:01110110            -1-             slp
        !           188: 
        !           189: ED:10000011            -1-             otim
        !           190: ED:10001011            -1-             otdm
        !           191: ED:10010011            -1-             otimr
        !           192: ED:10011011            -1-             otdmr
        !           193: 
        !           194: ED:10100000            01R             ldi
        !           195: ED:10100001            01R             cpi
        !           196: ED:10100010            01R             ini
        !           197: ED:10100011            01R             outi
        !           198: ED:10101000            01R             ldd
        !           199: ED:10101001            01R             cpd
        !           200: ED:10101010            01R             ind
        !           201: ED:10101011            01R             outd
        !           202: 
        !           203: ED:10110000            01R             ldir
        !           204: ED:10110001            01R             cpir
        !           205: ED:10110010            01R             inir
        !           206: ED:10110011            01R             otir
        !           207: ED:10111000            01R             lddr
        !           208: ED:10111001            01R             cpdr
        !           209: ED:10111010            01R             indr
        !           210: ED:10111011            01R             otdr
        !           211: 
        !           212: ED:11rrr001            --R             mulub_a_r       MULUB A,r
        !           213: ED:11000011            --R             mulub_hl_bc     MULUB HL,BC
        !           214: ED:11110011            --R             mulub_hl_sp     MULUB HL,SP
        !           215: 
        !           216: ED:11111111            -1-             syscall         SYSCALL         ; MSXDOS エミュレーション
        !           217: 
        !           218: 
        !           219: DD:00ww1001            01R             add_hl_ww       ADD IX,ww
        !           220: DD:00100001            01R             ld_ww_nn        LD IX,nn
        !           221: DD:00100010            01R             ld_nnin_hl      LD (nn),IX
        !           222: DD:00100011            01R             inc_ww          INC IX
        !           223: DD:00101010            01R             ld_hl_nnin      LD IX,(nn)
        !           224: DD:00101011            01R             dec_ww          DEC IX
        !           225: DD:00rrr100            0-R             inc_ixr         INC ixr
        !           226: DD:00110100            01R             inc_hlin        INC (IX+d)
        !           227: DD:00rrr101            0-R             dec_ixr         DEC ixr
        !           228: DD:00110101            01R             dec_hlin        DEC (IX+d)
        !           229: DD:00110110            01R             ld_hlin_n       LD (IX+d),n
        !           230: DD:01rrr110            01R             ld_r_hlin       LD r,(IX+d)
        !           231: DD:01110sss            01R             ld_hlin_s       LD (IX+d),s
        !           232: DD:01rrrsss            0-R             ld_r_ixs        LD r,ixs
        !           233: DD:10000rrr            0-R             add_a_ixr       ADD A,ixr
        !           234: DD:10000110            01R             add_a_hlin      ADD A,(IX+d)
        !           235: DD:10001rrr            0-R             adc_a_ixr       ADC A,ixr
        !           236: DD:10001110            01R             adc_a_hlin      ADC A,(IX+d)
        !           237: DD:10010rrr            0-R             sub_ixr         SUB ixr
        !           238: DD:10010110            01R             sub_hlin        SUB (IX+d)
        !           239: DD:10011rrr            0-R             sbc_a_ixr       SBC A,ixr
        !           240: DD:10011110            01R             sbc_a_hlin      SBC A,(IX+d)
        !           241: DD:10100rrr            0-R             and_ixr         AND ixr
        !           242: DD:10100110            01R             and_hlin        AND (IX+d)
        !           243: DD:10101rrr            0-R             xor_ixr         XOR ixr
        !           244: DD:10101110            01R             xor_hlin        XOR (IX+d)
        !           245: DD:10110rrr            0-R             or_ixr          OR ixr
        !           246: DD:10110110            01R             or_hlin         OR (IX+d)
        !           247: DD:10111rrr            0-R             cp_ixr          CP ixr
        !           248: DD:10111110            01R             cp_hlin         CP (IX+d)
        !           249: DD:11001011            01R             dd_cb           op_DD_CB
        !           250: DD:11100001            01R             pop_zz          POP IX
        !           251: DD:11100011            01R             ex_sp_hl        EX (SP),IX
        !           252: DD:11100101            01R             push_zz         PUSH IX
        !           253: DD:11101001            01R             jp_hl           JP (IX)
        !           254: DD:11111001            01R             ld_sp_hl        LD SP,IX
        !           255: DD_CB:00000110 01R             rlc_hlin        RLC (IX+d)
        !           256: DD_CB:00001110 01R             rrc_hlin        RRC (IX+d)
        !           257: DD_CB:00010110 01R             rl_hlin         RL (IX+d)
        !           258: DD_CB:00011110 01R             rr_hlin         RR (IX+d)
        !           259: DD_CB:00100110 01R             sla_hlin        SLA (IX+d)
        !           260: DD_CB:00101110 01R             sra_hlin        SRA (IX+d)
        !           261: DD_CB:00111110 01R             srl_hlin        SRL (IX+d)
        !           262: DD_CB:01bbb110 01R             bit_hlin        BIT b,(IX+d)
        !           263: DD_CB:10bbb110 01R             res_hlin        RES b,(IX+d)
        !           264: DD_CB:11bbb110 01R             set_hlin        SET b,(IX+d)

unix.superglobalmegacorp.com

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