📄 a915.asm
字号:
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 + -