Annotation of nono/exp/asci.asm, revision 1.1

1.1     ! root        1: ;
        !             2: ; nono
        !             3: ; Copyright (C) 2025 nono project
        !             4: ; Licensed under nono-license.txt
        !             5: ;
        !             6: 
        !             7: ; ASCI の入出力をテストする。
        !             8: ;
        !             9: ; % z80-asm asci.asm 100:asci.z80
        !            10: ; % perl ../util/runcom/z80tocom.pl asci.z80
        !            11: 
        !            12: CNTLA  equ     0
        !            13: CNTLB  equ     2
        !            14: STAT   equ     4
        !            15: TDR    equ     6
        !            16: RDR    equ     8
        !            17: 
        !            18:        org     0100H
        !            19: START:
        !            20:        LD      A,08H   ; 9600bps
        !            21:        LD      C,CNTLB
        !            22:        CALL    ASCI_OUT
        !            23: 
        !            24:        LD      A,7CH   ; RE|TE|CKA1D|EFR|DATA8
        !            25:        LD      C,CNTLA
        !            26:        CALL    ASCI_OUT
        !            27: LOOP:
        !            28:        LD      C,STAT
        !            29:        CALL    ASCI_IN_F
        !            30:        JP      P,LOOP  ; loop unless RDRF
        !            31:        ; Get Received char
        !            32:        LD      C,RDR
        !            33:        CALL    ASCI_IN
        !            34:        LD      E,A
        !            35:        ; PUTC でホストに出力
        !            36:        LD      C,02H
        !            37:        CALL    0005H
        !            38:        ; エコーバック
        !            39:        LD      A,E
        !            40:        LD      C,TDR
        !            41:        CALL    ASCI_OUT
        !            42: 
        !            43:        JR      LOOP
        !            44: 
        !            45: ; OUT0 (C),A をする (その際 CHANNEL を見る)
        !            46: ; IN:  A = 出力データ
        !            47: ;      C = I/O アドレス(の CH0 側)
        !            48: ; OUT: -
        !            49: ; USE: -
        !            50: ASCI_OUT:
        !            51:        PUSH    BC
        !            52:        PUSH    AF
        !            53:        LD      A,(CHANNEL)
        !            54:        ADD     A,C
        !            55:        LD      C,A
        !            56:        LD      B,00H
        !            57:        POP     AF
        !            58:        defb    0EDH, 79H       ; OUT (C),A
        !            59:        POP     BC
        !            60:        RET
        !            61: 
        !            62: ; IN0 A,(C) をする (その際 CHANNEL を見る)
        !            63: ; IN:  C = I/O アドレス(の CH0 側)
        !            64: ; OUT: A = 入力データ
        !            65: ; USE: F は不定
        !            66: ASCI_IN:
        !            67:        PUSH    BC
        !            68:        LD      A,(CHANNEL)
        !            69:        ADD     A,C
        !            70:        LD      C,A
        !            71:        LD      B,00H
        !            72:        defb    0EDH, 78H       ; IN A,(C)
        !            73:        POP     BC
        !            74:        RET
        !            75: 
        !            76: ; IN0 F,(C) をする (その際 CHANNEL を見る)
        !            77: ; IN:  C = I/O アドレス(の CH0 側)
        !            78: ; OUT: F = 入力データ
        !            79: ; USE: A
        !            80: ASCI_IN_F:
        !            81:        PUSH    BC
        !            82:        LD      A,(CHANNEL)
        !            83:        ADD     A,C
        !            84:        LD      C,A
        !            85:        LD      B,00H
        !            86:        defb    0EDH,70H        ; IN F,(C)
        !            87:        POP     BC
        !            88:        RET
        !            89: 
        !            90: CHANNEL:
        !            91:        defb    01H             ; 使用するチャンネル
        !            92: 
        !            93: ; vi:set ts=8:

unix.superglobalmegacorp.com

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