📄 hco00_00.asm
字号:
CLCURSOR:ST MAX,CLCURMAX[0]
LD MAX,POSCURSOR[0]
SJMP SETCU0D
SETCURSOR:ST MAX,CLCURMAX[0]
LD MAX,CMAX
ST MAX,POSCURSOR[R0]
SETCU0D:ST MBX,SETCUMBX[R0]
ST MCX,SETCUMCX[R0]
ST MDX,SETCUMDX[R0]
ST MEX,SETCUMEX[R0]
LDB MEX,#2
SHLB MAX,#1
DECB MAX
DECB MAXH
SHLB MAXH,#3
CMPB MAXH,#63
JH SETCU00
;ADDB MAXH,#3
SETCU0B:CALL SETM202P
LD MBX,#CURSOR01
LDB MCX,#64
LDB MDX,RDAM202[R0]
SETCU04:LDB Mcxh,STAM202[R0]
jbs mcxh,7,setcu04
LDB MdX,RDAM202[R0]
STB MdX,[MBX]+
DJNZ MCX,SETCU04
CALL SETM202P
LD MBX,#CURSOR01
LDB MCX,#64
SETCU06:LDB MDX,[MBX]+
NOTB MDX
;ORB MdX,#11000000B
SETCU05:LDB McXh,STAM202[R0]
jbs mcxh,7,setcu05
STB MdX,WDAM202[R0]
DJNZ MCX,SETCU06
DECB MEX
JE SETCU0A
DECB MAX
SJMP SETCU0B
SETCU0A:sjmp setcurret
SETCU00:SUBB MAXH,#64
SETCU0C:CALL SETS202P
LD MBX,#CURSOR01
JBC FLAGP4,1,SETCU07
LDB MCX,#8
SJMP SETCU08
SETCU07:LDB MCX,#64
SETCU08:LDB MDX,RDAS202[R0]
SETCU01:LDB Mcxh,STAS202[R0]
jbs mcxh,7,setcu01
LDB MdX,RDAS202[R0]
STB MdX,[MBX]+
DJNZ MCX,SETCU01
CALL SETS202P
LD MBX,#CURSOR01
JBC FLAGP4,1,SETCU09
LDB MCX,#8
SJMP SETCU03
SETCU09:LDB MCX,#64
SETCU03:LDB MDX,[MBX]+
NOTB MDX
;ORB MdX,#11000000B
SETCU02:LDB McXh,STAS202[R0]
jbs mcxh,7,setcu02
STB MdX,WDAS202[R0]
DJNZ MCX,SETCU03
DECB MEX
JE SETCURRET
DECB MAX
SJMP SETCU0C
SETCURRET:LD MAX,CLCURMAX[0]
LD MBX,SETCUMBX[R0]
LD MCX,SETCUMCX[R0]
LD MDX,SETCUMDX[R0]
LD MEX,SETCUMEX[R0]
RET
GJ: CALL CLEAR
LD MAX,#1
LDB MPNT,#96
CALL XSHHZ
CMPB MBX,#65H
JE GJ2
ADDB MPNT,MBX
ADD MAX,#2
CALL XSHHZ
GJ1: LD MAX,#0FFFFH
STB R0,ADWDRST[0]
DJNZW MAX,GJ1
GJ2: RET
WAIT: LDB MAXH,#4
WAIT0: LD MBX,#0FFFFH
WAIT1: STB R0,ADWDRST[0]
DJNZW MBX,WAIT1
DJNZ MAXH,WAIT0
RET
ZJJX: LDB PAGE,#25
CALL XPAGET
RET
STAR0: LDB PAGE,#21
CALL XPAGET
LD MAX,#0702H
ST MAX,TEMP12[0]
LD MFX,#3
LD MPNT,#MESS
STAR01:;LD MAX,RPTBL1[0]
;MULU MAX,MAX,#150
LD MAX,#45000
LD MBX,[MPNT]+
MULU MAX,MBX
DIVU MAX,#2048
CLR MBX
CALL HEXTODEC
LDB MCNTH,#5
LD MAX,TEMP12[0]
LD MEX,#2
ST MEX,DIPBIT[0]
CALL XNUMBER
INCB MAX
ST MAX,TEMP12[0]
DJNZ MFX,STAR01
RET
STAR1: LDB PAGE,#23
CALL XPAGET
LD MPNT,#MESS+12
LD MAX,#0401H
ST MAX,TEMP12[0]
LD MFX,#2
STAR11: LD MAX,RCTBL1[0]
MULU MAX,#1000
DIVU MAX,#1024
CMP MBX,#512
JNH STAR12
ADD MAX,#1
STAR12: LD MBX,[MPNT]
MULU MAX,MBX
CALL HEXTODEC
LDB MCNTH,#7
LD MAX,TEMP12[0]
LD MEX,#3
ST MEX,DIPBIT[0]
CALL XNUMBER
INCB MAX
ST MAX,TEMP12[0]
ADD MPNT,#4
DJNZ MFX,STAR11
LD MAX,SWD1[0]
JBC MAXH,7,STAR13
NEG MAX
ST MAX,TEMP12[0]
LD MAX,#0903H
LD MPNT,#ASMINUS
CALL XSASCII
LD MAX,TEMP12[0]
STAR13: CLR MBX
CALL HEXTODEC
LD MAX,#0A03H
LDB MCNTH,#3
LD MEX,#1
ST MEX,DIPBIT[0]
CALL XNUMBER
LD MPNT,#MESS+24
LD MAX,[MPNT]
SUBB MAXH,#08H
JLT STAR14
CMP MAX,#NEGTIVE
JGT STAR16
CLR MAX
SJMP STAR16
STAR14: CMP MAX,#POSITIVE
JLT STAR15
CLR MAX
SJMP STAR16
STAR15: ST MAX,TEMP12[0]
LD MAX,#0904H
LD MPNT,#ASMINUS
CALL XSASCII
LD MAX,TEMP12[0]
STAR16: MULU MAX,#1000
DIVU MAX,#2048
CLR MBX
CALL HEXTODEC
LD MAX,#0A04H
LDB MCNTH,#3
LD MEX,#1
ST MEX,DIPBIT[0]
CALL XNUMBER
RET
STAR2: LDB PAGE,#22
CALL XPAGET
LD MAX,#0702H
ST MAX,TEMP12[0]
LD MFX,#3
LD MPNT,#MESS+6
STAR21:;LD MAX,RPTBL2[0]
;MULU MAX,MAX,#150
LD MAX,#45000
LD MBX,[MPNT]+
MULU MAX,MBX
DIVU MAX,#2048
CLR MBX
CALL HEXTODEC
LDB MCNTH,#5
LD MAX,TEMP12[0]
LD MEX,#2
ST MEX,DIPBIT[0]
CALL XNUMBER
INCB MAX
ST MAX,TEMP12[0]
DJNZ MFX,STAR21
RET
STAR3: LDB PAGE,#24
CALL XPAGET
LD MPNT,#MESS+18
LD MAX,#0401H
ST MAX,TEMP12[0]
LD MFX,#2
STAR31: LD MAX,RCTBL2[0]
MULU MAX,#1000
DIVU MAX,#1024
CMP MBX,#512
JNH STAR32
ADD MAX,#1
STAR32: LD MBX,[MPNT]
MULU MAX,MBX
CALL HEXTODEC
LDB MCNTH,#7
LD MAX,TEMP12[0]
LD MEX,#3
ST MEX,DIPBIT[0]
CALL XNUMBER
INCB MAX
ST MAX,TEMP12[0]
ADD MPNT,#4
DJNZ MFX,STAR31
LD MAX,SWD2[0]
JBC MAXH,7,STAR33
NEG MAX
ST MAX,TEMP12[0]
LD MAX,#0903H
LD MPNT,#ASMINUS
CALL XSASCII
LD MAX,TEMP12[0]
STAR33: CLR MBX
CALL HEXTODEC
LD MAX,#0A03H
LDB MCNTH,#3
LD MEX,#1
ST MEX,DIPBIT[0]
CALL XNUMBER
LD MPNT,#MESS+28
LD MAX,[MPNT]
CMP MAX,#168
JNH STAR34
SUB MAX,#168
SJMP STAR35
STAR34: CLR MAX
SJMP STAR37
STAR35: SUBB MAXH,#08H
JGE STAR36
CLR MAX
SJMP STAR37
STAR36: CMP MAX,#NEGTIVE
JGT STAR37
CLR MAX
STAR37: MULU MAX,#25000
DIVU MAX,#16384
CLR MBX
CALL HEXTODEC
LD MAX,#0A04H
LDB MCNTH,#3
LD MEX,#1
ST MEX,DIPBIT[0]
CALL XNUMBER
RET
XPAGET: ST MFX,SMFX[0]
ST MCNT,SMCNT[0]
CALL CLEAR
CLR MBX
CLR MPNT
DECB PAGE
LDB PAGE1,PAGE
LD MAX,#1
LDB MBX,PAGE1
LDB MPNT,X_MPNT[MBX]
LDB MLOOP,X_MLOOP[MBX]
XP10: CALL XSHHZ
INC MAX
INC MPNT
DJNZ MLOOP,XP10
STB MPNT,TEMP2[0]
XXPAGET:CLR MAX
CLR MBX
CLR MEX
LDB PAGE1,PAGE
INCB PAGE1
AA: ADDB MBX,X_NUM[MAX]
INC MAX
DJNZ PAGE1,AA
LDB MEX,PAGE
INCB MEX
LDB MLOOP,X_NUM[MEX]
CMPB MLOOP,#0
JE XP30
MULUB MBX,#2
XP20: LD MAX,X_MAX[MBX]
LD MPNT,X_MPNT1[MBX]
CALL XSASCII
ADDB MBX,#2
DJNZ MLOOP,XP20
XP30: CLR MAX
CLR MFX
CLR MEX
LDB PAGE1,PAGE
INCB PAGE1
BB: ADDB MFX,X_NUM1[MAX]
INC MAX
DJNZ PAGE1,BB
LDB MEX,PAGE
INCB MEX
LDB MLOOP,X_NUM1[MEX]
CMPB MLOOP,#0
JE XP50
MULUB MFX,#2
XP40: LD MAX,X_BR[MFX]
LD MAX,[MAX]
CLR MBX
CALL HEXTODEC
LD MAX,X_MAX1[MFX]
LD MCX,MFX
SHR MCX,#1
LDB MEX,X_MEX[MCX]
ST MEX,DIPBIT[0]
LDB MCNTH,#4
CALL XNUMBER
ADDB MFX,#2
DJNZ MLOOP,XP40
ST R0,DIPBIT[R0]
XP50: CLR MAX
CLR MBX
CLR MCX
CLR MEX
LDB PAGE1,PAGE
INCB PAGE1
CC: ADDB MBX,X_NUM2[MAX]
INCB MAX
DJNZ PAGE1,CC
LDB MEX,PAGE
INCB MEX
LDB MLOOP,X_NUM2[MEX]
CMPB MLOOP,#0
JE XP90
MULUB MBX,#2
XP60: LD MAX,X_MAX2[MBX]
LD MDX,X_KW[MBX]
LDB MDX,[MDX]
LD MCX,MBX
SHR MCX,#1
LDB MEX,X_BIT[MCX]
ANDB MDX,MEX
JE XP70
LD MPNT,#ASY
SJMP XP80
XP70: LD MPNT,#ASN
XP80: CALL XSASCII
ADDB MBX,#2
DJNZ MLOOP,XP60
XP90: INCB PAGE
LD MFX,SMFX[0]
LD MCNT,SMCNT[0]
RET
STAM: JBS MAX,ESC,STATUS5
STATUS7:ANDB FLAGP4,#0FBH
LJMP SUREP1
STATUS5:JBS MAX,ENTER,STATUS4
CALL CLEAR
INCB MPNT
INCB MDX
CMPB MDX,#3
JE STATUS7
LD MAX,#01H
SJMP STATUS6
STATUS: CALL CLEAR
CLR MDX
LD MAX,#01H
LD MPNT,#73
STATUS6:ST MPNT,STATUSMPNT[0]
CALL XSHHZ
STATUS0:ORB FLAGP4,#04H
LDB MLOOP,#8
LD MAX,#0202H
LD MBX,#0
STATUS1:ST MBX,ONEBYTE[0]
LDB MCNTH,#1
ST R0,DIPBIT[0]
CALL XNUMBER
LDB MCX,#1
SHLB MCX,MBX
ADD MDX,#MESS+36
ANDB MCXH,MCX,[MDX]
JE STATUS2
LD MPNT,#ASHE
SJMP STATUS3
STATUS2:LD MPNT,#ASFEN
STATUS3:ADDB MAX,#2
CALL XSASCII
SUBB MAX,#2
SUB MDX,#MESS+36
INC MBX
ADDB MAXH,#2
DJNZ MLOOP,STATUS1
LD MPNT,STATUSMPNT[0]
LD ADDRBR1,#STAM
STATUS4:LJMP LOOP
PWS: ST R0,BRWORD[0]
ORB FLAGP4,#0AH
LDB PAGE,#12
CALL XPAGET
LD CMAX,#0F01H
CALL SETCURSOR
RET
PWC: LD MBX,BRWORD[0]
LD MAX,#0457H;0000H
CMP MAX,MBX
JE PWC1
LD MAX,RWORD[0]
LD MBX,BRWORD[0]
CMP MAX,MBX
JNE PWCRET
PWC1: ORB FLAGP4,#01H
PWCRET: RET
PWERR: CALL CLEAR
LDB PAGE,#14
CALL XPAGET
RET
CALLUP: CALL CLCURSOR
LD MAX,PAGE
LDB MBX,X_NUM1[MAX]
ADDB MBX,X_NUM2[MAX]
ST CMAX,MCX
DECB CMAX
CLR MAX
UP2: CMPB CMAX,X_MAX3[MAX]
JE UP1
INCB MAX
DJNZ MBX,UP2
LD CMAX,MCX
UP1: CALL SETCURSOR
RET
CALLDOWN:CALL CLCURSOR
LD MAX,PAGE
LDB MBX,X_NUM1[MAX]
ADDB MBX,X_NUM2[MAX]
SUB MCX,MBX,#1
INCB CMAX
CLR MAX
DOWN2: CMPB CMAX,X_MAX3[MAX]
JE DOWN1
INCB MAX
DJNZ MBX,DOWN2
LDB CMAX,X_MAX3[MCX]
DOWN1: CALL SETCURSOR
RET
CALLRHT:LD MAX,PAGE
LDB MBX,X_NUM1[MAX]
CMPB MBX,R0
JE RRET
CMPB CMAXH,#0FH
JE RRET
CALL CLCURSOR
INCB CMAXH
CALL SETCURSOR
RRET: RET
CALLLEFT:CLR MDX
LD MAX,PAGE
LDB MBX,X_NUM1[MAX]
CMPB MBX,R0
JE LRET
CLR MBX
LEFT1: ADDB MDX,X_NUM1[MBX]
INC MBX
DJNZ MAX,LEFT1
ADDB MDX,CMAX
DEC MDX
ADDB MDX,MDX
CMP CMAX,X_MAX1[MDX]
JE LRET
CALL CLCURSOR
DECB CMAXH
CALL SETCURSOR
LRET: RET
CALLADD:CLR MCX
LD MAX,PAGE
LDB MBX,X_NUM1[MAX]
CLR MFX
CMPB MBX,R0
JE KWADD
ADD1: ADDB MFX,X_NUM1[MCX]
INC MCX
DJNZ MAX,ADD1
SUBB MFXH,CMAX,#1
ADDB MFX,MFXH
CLRB MFXH
LD MDX,X_MEX[MFX]
ADD MFX,MFX
LD MAX,X_BR[MFX]
LD MPNT,[MAX]
CALL MODNUM
CLR MAX
ANDB MDX,MDX
JNE ADD2
LDB MDX,#4
ADD2: NEGB MDX
CLRB MDXH
ADDB MDX,#4
CMPB CMAXH,X_NUM3[MDX]
JE ADDRET
ADD3: CMPB CMAXH,X_NUM3[MAX]
JE ADD4
INC MAX
SJMP ADD3
ADD4: CMPB CMAXH,X_NUM3[MDX]
JNH ADD7
DEC MAX
ADD7: LD MDX,MAX
CALL AORS
CALL DEAL
LD MAX,X_BR[MFX]
ST MEX,[MAX]
KWADD1: DECB PAGE
CALL XXPAGET
CALL SETCURSOR
ADDRET: RET
KWADD: LDB PAGE1,PAGE
CLR MAX
KWADD2: ADDB MFX,X_NUM2[MAX]
INCB MAX
DJNZ PAGE1,KWADD2
SUBB MEX,CMAX,#1
ADDB MFX,MEX
LDB MCXH,X_BIT[MFX]
ADD MFX,MFX
LD MAX,X_KW[MFX]
LDB MCX,[MAX]
XORB MCX,MCXH
STB MCX,[MAX]
SJMP KWADD1
CALLSUB:NOP
RET
MODNUM: ST MFX,MODMFX[0]
CLR MFX
LD MEX,MPNT
DIVU MEX,#1000
STB MEX,N1000[0]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -