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

📄 hco00_00.asm

📁 用于电力系统自动化的逸精显示界面的ASM 编程
💻 ASM
📖 第 1 页 / 共 5 页
字号:
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 + -