⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a915.asm

📁 高质量的汇编程序
💻 ASM
📖 第 1 页 / 共 5 页
字号:
        LD      (IY+4),A
        JP      CL182
ALMUJ:  RET
KEYLL:  CP      0AH
        JP      NZ,KEYLL1       ; 不等,转
        CALL    CLA
        RET
KEYLL1: CP      0BH
        JP      NZ,KEYLL2       ; 不等,转
        CALL    CLB
        RET
KEYLL2: SUB     10H
        ADD     A,A
        LD      C,A
        LD      B,0
        LD      HL,KEYB
        ADD     HL,BC
        LD      A,(HL)
        INC     HL
        LD      H,(HL)
        LD      L,A
        JP      (HL)
KEYIN:  CALL    KEYD
        CP      0FFH
        JP      NZ,KEYIN1       ; 不等,转
        CALL    KEYM
        CP      0FFH
        JP      NZ,KEYIN1       ; 不等,转
        XOR     A
        LD      (KEYDA1),A
        LD      (KEYDA2),A
        LD      (KEYDA3),A
KEYIN2: LD      A,0FFH
KEYINE: RET
KEYIN1: LD      A,(KEYDA3)
        CP      0FH
        JP      Z,KEYIN2        ; 等于,转
        LD      A,B
        LD      (KEYDA1),A
        LD      A,(KEYDA2)
        INC     A
        LD      (KEYDA2),A
        CP      02
        JP      NZ,KEYIN2       ; 不等,转
        LD      A,0FH
        LD      (KEYDA3),A
        LD      A,B
        LD      IX,KEYTAB
        LD      B,39
KEYIN4: CP      (IX)
        JP      Z,KEYIN3        ; 等于,转
        INC     IX
        DEC     B
        JP      NZ,KEYIN4       ; 不等0,转
KEYIN3: LD      A,B
        RET
KEYD:   LD      A,0
        OUT     (PB2),A
        LD      A,02
        OUT     (PC2),A
        CALL    STOP1
        IN      A,(PA2)
        LD      B,A
        LD      A,0
        OUT     (PC2),A
        LD      A,B
        CP      0FFH
        JP      Z,KEYD1         ; 等于,转
        RET
KEYD1:  LD      A,01
        OUT     (PB2),A
        LD      A,02
        OUT     (PC2),A
        CALL    STOP1
        IN      A,(PA2)
        OR      0F0H
        LD      B,A
        LD      A,0
        OUT     (PC2),A
        LD      A,B
        CP      0FFH
        RET     Z
        SUB     5
        LD      B,A
        RET
KEYM:   LD      A,0
        OUT     (PB2),A
        LD      A,01
        OUT     (PC2),A
        CALL    STOP1
        IN      A,(PA2)
        LD      B,A
        LD      A,0
        OUT     (PC2),A
        LD      A,B
        CP      0FFH
        JP      Z,MKEY1         ; 等于,转
        CPL     
        LD      B,A
        RET
MKEY1:  LD      A,01
        OUT     (PB2),A
        LD      A,01
        OUT     (PC2),A
        CALL    STOP1
        IN      A,(PA2)
        LD      B,A
        CP      0FFH
        JP      Z,MKEY2 ; 等于,转
        LD      A,B
        CPL     
        ADD     A,0AH
        LD      B,A
        RET
MKEY2:  LD      A,02
        OUT     (PB2),A
        LD      A,01
        OUT     (PC2),A
        CALL    STOP1
        IN      A,(PA2)
        LD      B,A
        CP      0FFH
        RET     Z
        CPL     
        ADD     A,5
        LD      B,A
        RET
DIS0:   LD      A,(WDIS00)
        CP      12
        JP      C,DIS01 ; 小于,转
        LD      A,0
        LD      (WDIS00),A
DIS01:  CP      0
        JP      Z,DIS0Z         ; 等于,转
        CP      1
        JP      Z,DIS0H         ; 等于,转
        SUB     2
        LD      E,A
        LD      C,A
        LD      HL,DISTAB
        LD      B,0
        ADD     HL,BC
        LD      C,(HL)
        LD      IY,WDISU
        ADD     IY,BC
        LD      HL,(WDIS2)
        LD      A,(WDIS0)
        LD      C,A
        ADD     IY,BC
        LD      A,(WDIS0)
        CP      0
        JP      Z,DIS02         ; 等于,转
        CP      12
        JP      C,DIS03         ; 小于,转
        BIT     0,E
        JP      NZ,DIS03        ; 不等,转
        CALL    DIS00H
        JP      DIS04
DIS02:  BIT     0,E
        JP      Z,DIS03         ; 等于,转
        CALL    DIS00L
        JP      DIS04
DIS03:  CALL    DIS00
DIS04:  LD      A,(WDIS0)
        CP      12
        JP      C,DIS05         ; 小于,转
        LD      A,0
        LD      (WDIS0),A
        LD      HL,WDIS1
        LD      (WDIS2),HL
        RET
DIS05:  INC     A
DIS06:  LD      (WDIS0),A
        LD      (WDIS2),HL
        RET
DIS0Z:  LD      IY,WDISZ
        LD      HL,WDIS1
        LD      A,(WDIS0)
        CP      0               ;1993.4.22
        JP      NZ,DIS0Z1       ; 不等0,转
        PUSH    AF
        LD      A,(HL)
        RES     7,A
        OUT     (PB2),A
        LD      A,04
        OUT     (PC2),A
        NOP
        NOP
        NOP
        NOP
        NOP
        LD      A,0
        OUT     (PC2),A
        POP     AF              ;1993.4.22
DIS0Z1: NOP
        LD      C,A
        LD      B,0
        ADD     IY,BC
        SLA     C
        SLA     C
        SLA     C
        ADD     HL,BC
        INC     HL              ;1993,4,22
        LD      A,(WDIS0)
        CP      6
        JP      C,DIS0Z3        ; 小于,转
        CP      13
        JP      NC,DIS0Z4       ; 不小于,转
        LD      (IY),0
DIS0Z3: CALL    DIS00
        LD      A,(WDIS0)
        INC     A
        LD      (WDIS0),A
        RET
DIS0Z4: LD      A,0
        LD      (WDIS0),A
        RET
DIS0H:  LD      IY,WDISH
        LD      HL,WDIS1
        LD      A,(WDIS0)
        CP      0               ;1993,4,22
        JP      NZ,DIS0H1       ; 不等0,转
        PUSH    AF
        LD      A,(HL)
        RES     7,A
        OUT     (PB2),A
        LD      A,04
        OUT     (PC2),A
        NOP
        NOP
        NOP
        NOP
        NOP
        LD      A,0
        OUT     (PC2),A
        POP     AF
DIS0H1: NOP             ;1993.4.22^^^
        LD      C,A
        LD      B,0
        ADD     IY,BC
        SLA     C
        SLA     C
        SLA     C
        ADD     HL,BC
        INC     HL              ;1993,4,22
        LD      A,(WDIS0)
        CP      13
        JP      NC,DIS0H4       ; 不小于,转
        CP      8
        JP      C,DIS0H3        ; 小于,转
        LD      (IY),0
DIS0H3: CALL    DIS00
        LD      A,(WDIS0)
        INC     A
        LD      (WDIS0),A
        RET
DIS0H4: LD      A,0
        LD      (WDIS0),A
        RET
DIS00:  LD      C,8
        LD      D,(IY)
DIS001: LD      A,(HL)
        BIT     7,D
        JP      NZ,DIS000       ; 不等0,转
        RES     7,A
        JP      DIS002
DIS000: SET     7,A
DIS002: OUT     (PB2),A
        LD      A,04
        OUT     (PC2),A
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        LD      A,0
        OUT     (PC2),A
        INC     HL
        SLA     D
        DEC     C
        JP      NZ,DIS001       ; 不等0,转
        RET
DIS00L: LD      C,4
        LD      A,(IY)
        SLA     A
        SLA     A
        SLA     A
        SLA     A
        LD      D,A
        JP      DIS001
DIS00H: LD      C,4
        LD      D,(IY)
        JP      DIS001
NW1:    DB      0,32H,6,3,2
NW2:    DB      0,0,0,48H,64H,32H
SCTB:   DW      SCOM0,SCOM1,SCOM2,SCOM3,SCOM4,SCOM5,SCOM6
        DW      SCOM7,SCOM8,SCOM9,SCOMA,SCOMB,SCOMC,SCOMD
        DW      SCOME,SCOMF
SCOM0:  CALL    SCOM9
        RET
SCOMB:  CALL    ERROR
        RET
SCOMC:  CALL    ERROR
        RET
SCOMD:  CALL    ERROR
        RET
SCOME:  CALL    ERROR
        RET
SCOMF:  CALL    ERROR
        RET
CL1:    LD      IX,KAB1
        LD      A,(IX+16)
        CP      0
        JP      NZ,CL1W         ; 不等0,转
        LD      A,(IX)
        CP      9               ;1993,5,18
        JP      NZ,CL120P       ;1993,5,18 不等,转
        LD      A,(IX+1)        ;1993,5,18
        CP      1
        JP      Z,ERROR         ;1993,5,18 等于,转
        LD      A,17H           ;1993,5,18
        LD      (SDPW),A        ;1993,5,18
        LD      IY,SIOW         ;1993,5,18
        LD      (IY+3),0        ;1993,5,18
        LD      (IY+4),0        ;1993,5,18
        JP      SCOM11          ;1993,5,18
CL120P: LD      A,17H           ;1993,5,18
        LD      (SDPW),A                ;1993,5,18
        JP      CL1021          ;1993,5,18
CL1W:   CP      3
        JP      NZ,CL1M         ; 不等,转
        CALL    DRF532
        LD      A,0
        LD      (ALMOP),A
        LD      A,(WKK)
        CP      0
        JP      Z,CL1K1         ; 等于,转
        LD      A,0
        LD      (WKK),A
        LD      C,PL5
        RES     7,C
        CALL    DISIO
        RET
CL1K1:  LD      A,0FFH
        LD      (WKK),A 
CL1K2:  LD      C,PL5
        CALL    DISIO
        RET
CL1M:   CALL    CL21
        LD      A,(IX)
        CP      8
        JP      Z,STIME         ; 等于,转
        CP      3
        JP      NZ,CL100        ; 不等,转
        LD      A,71H
        LD      (SDPW),A                ;1992,6,29
        JP      CL103
CL100:  LD      A,17H
        LD      (SDPW),A                ;1992,6,29
        LD      A,(IX)
        CP      1
        JP      Z,CL101         ; 等于,转
        CP      2
        JP      Z,CL102         ; 等于,转
        CP      9
        JP      NZ,ERROR        ; 不等,转
        LD      A,(IX+16)
        CP      1
        JP      Z,SCOMA         ; 等于,转
        LD      C,(IX+1)
        LD      B,0
        LD      HL,SCTB
        ADD     HL,BC
        ADD     HL,BC
        LD      A,(HL)
        INC     HL
        LD      H,(HL)
        LD      L,A
        JP      (HL)
CL101:  LD      A,(IX+1)
        CP      8
        JP      NC,ERROR        ; 不小于,转
        LD      HL,SDSB1
CL1011: LD      C,(IX+1)
        LD      B,0
        ADD     HL,BC
        ADD     HL,BC
        LD      A,(HL)
        INC     HL
        LD      H,(HL)
        LD      L,A
        JP      (HL)
CL102:  LD      A,(IX+16)
        CP      2
        JP      NZ,ERROR        ; 不等,转
CL1021: LD      A,(IX+1)
        CP      5               ;1992,9,85  =5
        JP      NC,ERROR        ; 不小于,转
        LD      HL,SDSB2
        JP      CL1011
CL103:  LD      A,(IX+16)
        CP      2
        JP      NZ,ERROR        ; 不等,转
        LD      A,(IX+1)
        CP      8
        JP      NC,ERROR        ; 不小于,转
        LD      HL,SDSB3
        JP      CL1011
KEYB:   DW      CL1,CL2,CL5,CL6,CL3,CL16,CL10,CL14
        DW      CL9,CL7,CL11,CL12,CL8,CL24,CL22,CL25
        DW      CL17,CL18,CL19,CL15,CL4,CL13,CL20,CL23
TAB4:   DW      COM1,COM2,COM3,COM4,COM5,COM6,COM7,COM8
        DW      COM9,COMA,COMB,COMC,COMD,COME,COMF,COM10
        DW      COM11,COM12,COM13,COM14,COM15,COM16,COM17
        DW      COM18,COM19,COM1A,COM1B,COM1C,COM1D,COM1E
        DW      COM1F,COM20,COM21,COM22,COM23,COM24,COM25
        DW      COM26,COM27,COM28,COM29,COM2A,COM2B,COM2C
        DW      COM2D,COM2E,COM2F
DATAB:  DW      CK20,CK21,CK22,CK23,CK24,CK25,CK26,CK27
        DW      CK28,CK29,CK2A,CK2B,CK2C,CK2D,CK2E,CK2F
        DW      CK30,CK31,CK32,CK33,CK34,CK35,CK36,CK37
        DW      CK38,CK39,CK3A,CK3B,CK3C,CK3D
        DW      CK3E,CK3F
        DW      CK40,CK41,CK42,CK43,CK44,CK45,CK46,CK47
        DW      CK48
COM1:   LD      A,(SIORD+3)
        CP      0
        RET     Z
        LD      A,(SIORD+2)
        CP      0
        RET     NZ
        CALL    ALMWD
        LD      A,10
        LD      (ALM9D),A
        RET
COM2:   RET
COM3:   LD      A,(SIORD+3)
        CP      0CH
        RET     NC
        LD      A,(SIORD+2)
        CP      0
        RET     NZ
        CALL    ALMWM
        RET
COM4:   RET
        LD      A,(SIORD)
        AND     0F0H
        SRA     A
        SRA     A
        SRA     A
        SRA     A
        LD      (HW1),A
        RET
COM5:   CALL    ALMWO
        RET
COMF:   LD      A,0FFH
        LD      (ZX25),A
        RET
        LD      IY,DISW
        LD      (IY),4
        LD      (IY+1),0FFH
        LD      (IY+2),0CH              ;CCCCCCC
        CALL    SIOTW
COM7:   RET
COM8:   RET
COM9:   RET
COMA:   RET
COMB:   RET
COMC:   RET
COMD:   LD C,PL10
        CALL    DISIO
        RET                     ;1992,9,16+3
COME:   RET
COM6:   RET
COM10:  RET
COM11:  RET
COM12:  RET
COM13:  RET
COM14:  RET
COM15:  RET
COM16:  RET
COM17:  RET
COM18:  RET
COM19:  RET
COM1A:  RET
COM1B:  RET
COM1C:  RET
COM1D:  RET
COM1E:  RET
COM1F:  RET
COM20:  RET
COM21:  RET
COM22:  RET
COM23:  RET
COM24:  RET
COM25:  RET
COM26:  RET
COM27:  RET
COM28:  LD      C,0
COM281: LD      IX,SIORD
        LD      IY,WDISZ
        LD      B,0
        ADD     IY,BC
        ADD     IY,BC
        LD      A,(IX+2)
        LD      (IY),A
        LD      A,(IX+3)
        LD      (IY+1),A
        RET
COM29:  LD      C,1
        JP      COM281
COM2A:  LD      C,2
        JP      COM281
COM2B:  LD      C,0
COM2B1: LD      IX,SIORD
        LD      IY,WDISH
        LD      B,0
        ADD     IY,BC
        ADD     IY,BC

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -