📄 a915.asm
字号:
LD A,(IX+2)
LD (IY),A
LD A,(IX+3)
LD (IY+1),A
RET
COM2C: LD C,1
JP COM2B1
COM2D: LD C,2
JP COM2B1
COM2E: LD C,3
JP COM2B1
COM2F: LD A,(SIORD+2)
CP 40H
JP C,ERRORS ; 小于,转
CP 7FH
JP NC,ERRORS ; 不小于,转
SUB 40H
LD C,A
LD B,0
LD IY,WDISU
ADD IY,BC
ADD IY,BC
LD A,(SIORD+3)
CP 0
JP Z,ERRORS ; 等于,转
CP 9
JP NC,ERRORS ; 不小于,转
LD E,A
COM2F1: LD (IY),0
LD (IY+1),0
INC IY
INC IY
DEC E
JP NZ,COM2F1 ; 不等,转
RET
COM40: LD A,(SIORD+1)
SUB 40H
LD C,A
LD IY,WDISU
LD B,0
ADD IY,BC
ADD IY,BC
LD A,(SIORD+2)
LD (IY),A
LD A,(SIORD+3)
LD (IY+1),A
RET
CL20: LD IX,SIOW
LD (IX),4
LD (IX+1),0FFH
LD (IX+2),12H
LD (IX+3),00
LD (IX+4),00
CALL SIOTW
RET
CLA1: LD A,(WADD1)
LD (WADD),A
CALL ADDS2
RET
ADDS2: LD A,0
OUT (PC2),A
LD A,(WADD)
OUT (PB2),A
LD A,10H
OUT (PC2),A
CALL STOP3
LD A,0
OUT (PC2),A
RET
CL21: LD A,0
OUT (PC2),A
NOP
LD A,(WADD)
OUT (PB2),A
NOP
LD A,10H
OUT (PC2),A
CALL STOP3
LD A,0
OUT (PC2),A
LD A,20H
CALL DIS11
LD A,(WADD)
CP 80H
JP Z,CLB1 ; 等于,转
DEC A
LD (WADD),A
JP CL21
CLB1: LD A,0
OUT (PC2),A
LD A,80H
OUT (PB2),A
LD A,10H
OUT (PC2),A
CALL STOP3
LD A,0
OUT (PC2),A
RET
CL3: LD A,(HIN1)
CP 1
JP Z,CL31 ; 等于,转
CP 0
JP NZ,ERROR ; 不等,转
LD C,PL16
CALL DISIO
LD A,1
LD (HIN1),A
LD E,A
CL30: LD IY,SIOW
LD (IY+4),E
LD (IY),4
LD (IY+1),0FFH
LD (IY+2),0BH
LD (IY+3),0
JP CL172
CL31: LD A,0
LD (HIN1),A
LD C,PL16
RES 7,C
CALL DISIO
LD E,0
JP CL30
CL5: LD IX,KAB1
LD A,(IX+16)
CP 4
JP NZ,ERROR ; 不等,转
LD A,(IX)
CP 3
JP NC,ERROR ; 不小于,转
LD A,(IX)
CP 2
JP NZ,CL51 ; 不等,转
LD A,(IX+1)
CP 5
JP NC,ERROR ; 不小于,转
CL51: LD A,(IX+2)
CP 7
JP NC,ERROR ; 不小于,转
LD A,(IX+4)
CP 7
JP NC,ERROR ; 不小于,转
LD A,80H
OUT (PD1),A
NOP
NOP
LD A,0BH
OUT (PD1),A
CALL STOP4
LD B,2
LD C,(IX+3)
CALL CLTIME
LD B,3
LD C,(IX+2)
CALL CLTIME
LD B,4
LD C,(IX+1)
CALL CLTIME
LD B,5
LD C,(IX)
LD A,C
OR 08H
LD C,A
CALL CLTIME
LD A,0
OUT (PC1),A
CL5Q: LD A,0
LD (KAB1+16),A
LD A,(IX)
LD (KAB2),A
LD A,(IX+1)
LD (KAB2+1),A
LD A,(IX+2)
LD (KAB2+3),A
LD A,(IX+3)
LD (KAB2+4),A
LD A,10
LD (KAB2+2),A
LD A,5
LD (KAB2+5),A
CALL CL21
LD A,90H ;1992,8,19
OUT (PD1),A ;1992,8,19
RET
CLTIME: LD A,C
OUT (PA1),A
NOP
NOP
LD A,B
OUT (PB1),A
NOP
NOP
LD A,0FH
OUT (PD1),A
CALL STOP1
NOP
NOP
LD A,0EH
OUT (PD1),A
RET
CL6: LD A,(KAB1+16)
CP 0
JP NZ,CL60 ; 不等,转
LD A,10
LD (KAB3+11),A
RET
CL6Q: CALL WSUN
LD A,0
LD (KAB1+16),A
CALL CL21
RET
CL60: LD IX,KAB1
LD A,(IX)
CP 3
JP NC,ERROR ; 不小于,转
LD A,(IX+4)
CP 2
JP NC,ERROR ; 不小于,转
LD A,(IX+6)
CP 4
JP NC,ERROR ; 不小于,转
CALL WSUN1
LD A,80H
OUT (PD1),A
LD A,0BH
OUT (PD1),A
CALL STOP4
LD B,14
CL61: LD C,(IX)
CALL CLTIME
INC IX
DEC B
LD A,B
CP 6
JP NZ,CL61 ; 不等,转
LD A,0
OUT (PC1),A
LD (KAB1+16),A
CALL CL21
LD A,90H ;1992,8,19
OUT (PD1),A ;1992,8,19
RET
WSUN: LD IX,KAB1
LD A,(IX+4)
CP 2
JP NC,ERROR ; 不小于,转
WSUN1: LD IX,KAB1
LD IY,KAB3
LD A,(IX)
LD (IY),A
LD A,(IX+1)
LD (IY+1),A
LD A,(IX+2)
LD (IY+2),A
LD A,(IX+3)
LD (IY+3),A
LD A,(IX+4)
LD (IY+4),2FH
LD (IY+5),A
LD A,(IX+5)
LD (IY+6),A
LD A,(IX+6)
LD (IY+7),2FH
LD (IY+8),A
LD A,(IX+7)
LD (IY+9),A
LD (IY+10),2FH
LD (IY+11),10
LD A,0
LD (KAB1+16),A
CALL CL21
RET
CL7: LD IX,KAB1
LD A,(IX)
CP 6
JP Z,CL75 ; 等于,转
JP NC,ERROR ; 不小于,转
LD A,(IX+16)
CP 1
JP NZ,ERROR ; 不等,转
LD A,(IX)
CP 0
JP Z,CL70 ; 等于0,转
CP 1
JP Z,CL71 ; 等于1,转
CP 2
JP Z,CL72 ; 等于2,转
CP 3
JP Z,CL73 ; 等于3,转
CP 4
JP Z,CL74 ; 等于4,转
JP ERROR
CL70: LD E,0
CL701: LD IY,SIOW
LD (IY),4
LD (IY+1),0FFH
LD (IY+2),8
LD (IY+3),0
LD (IY+4),E
CL702: CALL CL182
LD A,3
LD (STABS),A
CALL CL21
LD A,0
LD (IX+16),A
LD C,PL0
CALL DISIO
RET
CL71: LD E,01
JP CL701
CL72: LD E,2
JP CL701
CL73: LD E,3
JP CL701
CL74: LD E,4
JP CL701
CL75: LD A,(IX+16)
CP 3
JP NZ,ERROR ; 不等,转
LD IY,SIOW
LD A,(IX+1)
SLA A
SLA A
SLA A
SLA A
OR (IX+2)
CP 49H
JP NC,ERROR ; 不小于,转
LD (IY+4),A
LD (IY),4
LD (IY+1),0FFH
LD (IY+2),8
LD (IY+3),02
JP CL702
CL4: LD E,04
CL41: LD IX,KAB1
LD A,(IX+16)
CP 4
JP NZ,ERROR ; 不等,转
LD A,(IX)
CP 2
JP Z,CL42 ; 等于,转
CP 0
JP NZ,ERROR ; 不等,转
LD A,(IX+1)
CP 3
JP Z,CL03 ; 等于,转
CP 4
JP Z,CL04 ; 等于,转
CP 5
JP Z,CL05 ; 等于,转
ERRORS: RET
ERROR: CALL ALMWK
LD A,0
LD (KAB1+16),A
LD A,80H
LD (WADD),A
LD A,0FFH
LD (WNEXT),A
RET
CL03: LD A,(IX+2)
SLA A
SLA A
SLA A
SLA A
OR (IX+3)
CP 49H
JP NC,ERROR ; 不小于,转
JP CL42
CL04: LD A,(IX+2)
SLA A
SLA A
SLA A
SLA A
OR (IX+3)
CP 65H
JP NC,ERROR ; 不小于,转
JP CL42
CL05: LD A,(IX+2)
SLA A
SLA A
SLA A
SLA A
OR (IX+3)
CP 49H
JP NC,ERROR ; 不小于,转
CL42: LD IY,SIOW
LD (IY),4
LD (IY+1),0FFH
LD (IY+2),E
LD A,(IX)
SLA A
SLA A
SLA A
SLA A
OR (IX+1)
LD (IY+3),A
LD A,(IX+2)
SLA A
SLA A
SLA A
SLA A
OR (IX+3)
LD (IY+4),A
CALL SIOTW
CALL CL21
LD A,0
LD (KAB1+16),A
RET
CL8: LD C,PL0
CALL DISIO
LD E,01 ;1992,8,31,=3
JP CL41
CL9: LD E,07
CL91: LD IX,KAB1
LD A,(IX+16)
CP 4
JP NZ,ERROR ; 不等,转
LD A,(IX)
CP 2
JP NZ,ERROR ; 不等,转
LD IY,SIOW
LD (IY),4
LD (IY+1),0FFH
LD (IY+2),E
LD A,(IX)
SLA A
SLA A
SLA A
SLA A
OR (IX+1)
LD (IY+3),A
LD A,(IX+2)
SLA A
SLA A
SLA A
SLA A
OR (IX+3)
LD (IY+4),A
CALL CL182
CALL CL21
LD A,0
LD (KAB1+16),A
LD C,PL0
CALL DISIO
RET
CL10: LD A,1
LD (WDIS00),A
LD A,0
LD (WDIS0),A
CALL DIS0
RET
CL11: LD A,0
LD (STABS),A
CALL CL21
LD A,0
LD (KAB1+16),A
LD IY,SIOW
LD (IY),4
LD (IY+1),0FFH
LD (IY+2),10H
LD (IY+3),0
LD (IY+4),0
CALL SIOTW
RET
TAB12: DW SH0,SH1,SH2,SH3,SH4,SH5,SH6,SH7,SH8
DW SH9,SH10,SH11,SH12,SH13,SH14,SH15,SH16
SH0: RET
SH1: LD A,(IY+2)
CP 2
JP NZ,ERROR ; 不等,转
SLA A
SLA A
SLA A
SLA A
OR (IY+3)
LD (IX+3),A
LD A,(IY+4)
SLA A
SLA A
SLA A
SLA A
OR (IY+5)
LD (IX+4),A
LD (IX),4
LD (IX+1),0FFH
LD (IX+2),80H
CALL SIOTW
CALL CL21
LD A,0
LD (KAB1+16),A
RET
SH2: LD A,(IY+2)
SLA A
SLA A
SLA A
SLA A
OR (IY+3)
CP 49H
JP NC,ERROR ; 不小于,转
LD (IX+4),A
LD (IX),4
LD (IX+1),0FFH
LD (IX+2),80H
LD (IX+3),01
CALL SIOTW
CALL CL21
LD A,0
LD (KAB1+16),A
RET
SH3: LD A,(IY+2)
SLA A
SLA A
SLA A
SLA A
OR (IY+3)
CP 65H
JP NC,ERROR ; 不小于,转
LD (IX+4),
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -