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

📄 lclist2val.frm

📁 开发单片机的汇编程序时
💻 FRM
字号:
VERSION 5.00
Begin VB.Form lclst2val 
   Appearance      =   0  'Flat
   AutoRedraw      =   -1  'True
   BackColor       =   &H00FFFFFF&
   Caption         =   " LC87-LST2VAL"
   ClientHeight    =   3930
   ClientLeft      =   6720
   ClientTop       =   1440
   ClientWidth     =   6000
   DrawStyle       =   6  'Inside Solid
   ForeColor       =   &H00000000&
   Icon            =   "lclist2val.frx":0000
   LinkTopic       =   "csXS"
   PaletteMode     =   1  'UseZOrder
   ScaleHeight     =   3930
   ScaleWidth      =   6000
   Begin VB.TextBox filelisttxt 
      Height          =   270
      Left            =   0
      TabIndex        =   11
      Top             =   3240
      Width           =   6135
   End
   Begin VB.CommandButton lst2val 
      BackColor       =   &H0000FF00&
      Caption         =   "lst2val"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   14.25
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Left            =   0
      MaskColor       =   &H0000FF00&
      TabIndex        =   7
      Top             =   0
      Width           =   1575
   End
   Begin VB.Timer Timer1 
      Interval        =   10
      Left            =   1320
      Top             =   0
   End
   Begin VB.DirListBox fdir 
      Height          =   2610
      Left            =   0
      TabIndex        =   6
      Top             =   720
      Width           =   3615
   End
   Begin VB.DriveListBox fDrive 
      Height          =   300
      Left            =   0
      TabIndex        =   5
      Top             =   480
      Width           =   3615
   End
   Begin VB.FileListBox Flist 
      Height          =   2610
      Left            =   3600
      Pattern         =   "*.lst"
      TabIndex        =   4
      Top             =   480
      Width           =   2415
   End
   Begin VB.TextBox outText 
      Height          =   2145
      Left            =   480
      MultiLine       =   -1  'True
      ScrollBars      =   2  'Vertical
      TabIndex        =   2
      Text            =   "lclist2val.frx":27A2
      Top             =   720
      Width           =   3135
   End
   Begin VB.CommandButton exit 
      Caption         =   "exit"
      Height          =   375
      Left            =   3840
      TabIndex        =   1
      Top             =   0
      Width           =   1215
   End
   Begin VB.Label Label3 
      Caption         =   "OutputFileName:"
      Height          =   255
      Left            =   3240
      TabIndex        =   10
      Top             =   3480
      Width           =   2775
   End
   Begin VB.Label OUTFILE 
      BackStyle       =   0  'Transparent
      Caption         =   "OUTFILE"
      Height          =   255
      Left            =   3240
      TabIndex        =   9
      Top             =   3720
      Width           =   2895
   End
   Begin VB.Label Label1 
      BackColor       =   &H00C0FFC0&
      Caption         =   "InputFileName:"
      Height          =   255
      Left            =   0
      TabIndex        =   8
      Top             =   3480
      Width           =   3255
   End
   Begin VB.Label FNAME 
      BackStyle       =   0  'Transparent
      Caption         =   "FNAME"
      Height          =   255
      Left            =   0
      TabIndex        =   3
      Top             =   3720
      Width           =   3015
   End
   Begin VB.Label timelbl 
      BackColor       =   &H00FFC0FF&
      BackStyle       =   0  'Transparent
      Caption         =   "12:12:12 am"
      Height          =   255
      Left            =   1920
      TabIndex        =   0
      Top             =   0
      Width           =   1215
   End
End
Attribute VB_Name = "lclst2val"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim in1, lstfl, valfl, ln1, ln2, ln3 As String
Dim X, Y As String
Dim drvstr, pathstr, OUTFLSTR, flstr As String
Dim fin(1 To 1000) As String
Dim fout(1 To 10000) As String
Dim datstr, mainloop, strx(100), ln11(100) As String
Dim datold, I, J, K, L As Long
Dim n As Integer
Dim str30, str300, str3000, kc, cx As String
Dim filelisttxtText, SFR(66666) As String


Private Sub GETOUTFILE()
OUTFLSTR = FNAME.Caption
dnum = InStr(OUTFLSTR, ".")
LNUM = Len(OUTFLSTR)
If dnum > 1 Then
    OUTFLSTR = Left$(OUTFLSTR, dnum - 1) + "_A_C.Hxx"
End If
End Sub

Private Sub exit_Click()
End
End Sub

Private Sub filelisttxt_Change()
On Error GoTo exitsub
FdirPath = fdir.Path
FlistPath = Flist.Path
I = InStr(filelisttxt.Text, ":")
If I > 1 Then
    drvstr = Left(filelisttxt.Text, I)
End If
I = InStr(filelisttxt.Text, ".")
If I = 0 And FlistPath <> Flist.Path And FdirPath <> fdir.Path Then
    flstr = ""
    FNAME.Caption = flstr
    OUTFILE = ""
    OUTFLSTR = ""
End If
pathstr = filelisttxt.Text
fDrive.Drive = drvstr
fdir.Path = pathstr
Flist.Path = pathstr
wtfile
Exit Sub
exitsub:
filelisttxt.Text = filelisttxtText
fdir.Path = FdirPath
Flist.Path = FlistPath
End Sub

Private Sub flist_Click()
flstr = Flist.FileName
FNAME.Caption = Flist.FileName
GETOUTFILE
OUTFILE = OUTFLSTR
wtfile
End Sub

Private Sub fdir_Change()
pathstr = fdir.Path
Flist.Path = fdir.Path
wtfile
End Sub

Private Sub fDrive_Change()
drvstr = fDrive.Drive
fdir.Path = fDrive.Drive
Flist.Path = fdir.Path
wtfile
End Sub
Private Sub wtfile()
Open "c:\lclst2val.txt" For Output As #2
Print #2, drvstr
Print #2, pathstr
Print #2, flstr
Close #2
filelisttxtText = pathstr
filelisttxt.Text = pathstr
End Sub

Private Sub Form_Load()
Timer1.Interval = 108
Timer1.Enabled = True

On Error GoTo NOFILE

Open "c:\LClst2val.txt" For Input As #1
Input #1, drvstr
Input #1, pathstr
Input #1, flstr
Close #1
GoTo flini
NOFILE:
drvstr = "c:\"
pathstr = "c:\"
flstr = ""
Close #1
wtfile
flini:
Flist.Path = pathstr
fdir.Path = pathstr
fDrive.Drive = drvstr
FNAME.Caption = flstr
GETOUTFILE
OUTFILE = OUTFLSTR
RXSTR = ""
wtfile
timelbl.Caption = ""
outText.Text = ""
End Sub
Private Sub Form_Unload(Cancel As Integer)
End
End Sub
Function str2val(ByVal a As String) As Long
alen = Len(a)
abak = a
str2val = 0
str2mul = 1
alx = 0
Do While alen > 0
    ABC = Asc(Right(abak, 1))
    If ABC = Asc("X") Or ABC = Asc("x") Then
        Exit Do
    End If
    If alen > 1 Then
        abak = Left(abak, alen - 1)
    End If
    alen = alen - 1
    If (ABC < 58 And ABC > 47) Or (ABC < 71 And ABC > 64) Or (ABC < 103 And ABC > 96) Then
        If (ABC < 58 And ABC > 47) Then
            str2val = str2val + str2mul * (ABC - 48)
        ElseIf (ABC < 80 And ABC > 64) Then
            str2val = str2val + str2mul * (ABC - 55)
        ElseIf (ABC < 112 And ABC > 96) Then
            str2val = str2val + str2mul * (ABC - 95)
        End If
        str2mul = str2mul * 16
    End If
Loop

End Function
Function str2dec(ByVal a As String) As Long
alen = Len(a)
abak = a
str2dec = 0
str2mul = 1
alx = 0
Do While alen > 0
    ABC = Asc(Right(abak, 1))
    If ABC = Asc("X") Or ABC = Asc("x") Then
        Exit Do
    End If
    If alen > 1 Then
        abak = Left(abak, alen - 1)
    End If
    alen = alen - 1
    If (ABC < 58 And ABC > 47) Or (ABC < 71 And ABC > 64) Or (ABC < 103 And ABC > 96) Then
        If (ABC < 58 And ABC > 47) Then
            str2dec = str2dec + str2mul * (ABC - 48)
        ElseIf (ABC < 80 And ABC > 64) Then
            str2dec = str2dec + str2mul * (ABC - 55)
        ElseIf (ABC < 112 And ABC > 96) Then
            str2dec = str2dec + str2mul * (ABC - 95)
        End If
        str2mul = str2mul * 10
    End If
Loop

End Function
Function bstr2str(ByVal a As String) As String
alen = Len(a)
abak = a
bstr2val = 0
str2mul = 1
alx = 0
Do While alen > 0
    ABC = Right(abak, 1)
    If alen > 1 Then
        abak = Left(abak, alen - 1)
    End If
    alen = alen - 1
    If ABC = "0" Or ABC = "1" Then
        If ABC = "1" Then
            bstr2val = bstr2val + str2mul
        End If
        str2mul = str2mul * 2
    End If
Loop
bstr2str = Format(bstr2val, "#####0")
End Function
Function toupcase(ByVal a As String) As String
la = Len(a) + 1
I = 1
toupcase = ""
Do While I < la
    A1 = Asc(Mid(a, I, 1))
    If A1 > 96 Then
        A1 = A1 - 32
    End If
    toupcase = toupcase + Chr(A1)
    I = I + 1
Loop
End Function

Private Sub lst2val_Click()
timelbl.Caption = "Waiting"
On Error GoTo NOFILE
outText = ""

FLN = pathstr + "\" + flstr
Open FLN For Input As #10

OUTLN = pathstr + "\" + OUTFLSTR
Open OUTLN For Output As #20
I = 1
ILN = 0
lnxyz = 0
LNCON = 0
For K = 1 To 2048
    SFR(K) = " "
Next
SFR(65024) = "A_reg"
SFR(65025) = "B_reg"
SFR(65026) = "C_reg" '7 8 9
SFR(65027) = "D_reg" '7 8 9
SFR(65028) = "E_reg" '7 8 9
SFR(65029) = "F_reg" '7 8 9
SFR(65030) = "PSW_reg"
SFR(65031) = "PCON_reg"
SFR(65032) = "IE_reg"
SFR(65033) = "IP_reg"
SFR(65034) = "SPL_reg"
SFR(65035) = "SPH_reg"
For K = 65036 To 65536
    SFR(K) = " "
Next
Print #20, "_sfrbyte        A_reg       _at(0XFE00);"
Print #20, "_sfrbyte        B_reg       _at(0XFE01);"
Print #20, "_sfrbyte        C_reg       _at(0XFE02);"
Print #20, "_sfrbyte        PSW_reg     _at(0XFE06);"
Print #20, "_sfrbyte        PCON_reg    _at(0XFE07);"
Print #20, "_sfrbyte        IE_reg      _at(0XFE08);"
Print #20, "_sfrbyte        IP_reg      _at(0XFE09);"
Print #20, "_sfrbyte        SPL_reg     _at(0XFE0A);"
Print #20, "_sfrbyte        SPH_reg     _at(0XFE0B);"
Print #20, "_sfrbyte        A       _at(0XFE00);"
Print #20, "_sfrbyte        B       _at(0XFE01);"
Print #20, "_sfrword        SP       _at(0XFE0A);"
Print #20, "_sfrbyte        PSW     _at(0XFE06);"
Print #20, "_sfrbyte        PCON    _at(0XFE07);"
Print #20, "_sfrbyte        IE      _at(0XFE08);"
Print #20, "_sfrbyte        IP      _at(0XFE09);"
Print #20, "_sfrbyte        SPL     _at(0XFE0A);"
Print #20, "_sfrbyte        SPH     _at(0XFE0B);"
Do While Not EOF(10)
DoEvents
K = 5030
                                            cx = SFR(K)
                                            cx = SFR(65030)
                                            'CX = SFR(K - 1)
    If cx <> "PSW_REG" Then
        XX = 1
    End If
    If LNCON = 0 Then
        Line Input #10, ln1
    End If
    ILN = ILN + 1
    If ILN = 5 Then
        ILN = 5
    End If
    J = Len(ln1)
    jln1 = J
    If LNCON = 0 Then
        I = 1
        lnxyz = 0
        lnnxt = 1
        Do While I < J
            If Asc(Mid(ln1, I, 1)) = 10 Then
                lnxyz = lnxyz + 1
                ln11(lnxyz) = Mid(ln1, lnnxt, I - lnnxt)
                lnnxt = I + 1
          '  ln11(lnxyz) = ln11(lnxyz) + Chr(13)
            End If
            I = I + 1
        Loop
        If lnnxt < I And lnxyz > 0 Then
            lnxyz = lnxyz + 1
            ln11(lnxyz) = Mid(ln1, lnnxt, I - lnnxt)
            LNCON = 1
        Else
            LNCON = 0
        End If
    End If
    If LNCON > 0 Then
        ln1 = ln11(LNCON)
        LNCON = LNCON + 1
        J = Len(ln1)
        jln1 = J
        If lnxyz < LNCON Then
            LNCON = 0
        End If
    End If
    If J >= 23 Then
        char20 = Asc(Mid(ln1, 20, 1))
        char21 = Mid(ln1, 21, 1)
        char22 = Mid(ln1, 22, 1)
        If char20 < 58 And char20 > 47 Then
            If char21 = " " Then
                If char22 = ";" Then
                    Print #20, "//" + Right$(ln1, J - 20)
                ElseIf char22 <> " " Then
                    endj = InStr(ln1, ";")
                    If endj = 0 Then
                        endj = jln1 + 1
                    End If
                    J = 0
                    For I = 22 To endj
                        ln2 = Mid(ln1, I, endj - I)
                        lspc = InStr(ln2, " ")
                        iln2 = 1
                        J = J + 1
                        If lspc <> 0 Then
                            strx(J) = Mid(ln2, iln2, lspc - iln2)
                        Else
                            strx(J) = ln2
                            lspc = Len(ln2)
                        End If
                        I = I + lspc
                        Do While I < endj
                            midln2 = Mid(ln1, I, 1)
                            If midln2 <> " " Then
                                I = I - 1
                                Exit Do
                            End If
                            I = I + 1
                        Loop
                    Next
                    
                    If J > 1 Then
                        If J > 2 Then
                            c1up = toupcase(strx(1))
                            c2up = toupcase(strx(2))
                            If c1up = "DEFINE" Then
'10                    define TR       'R8'            ;TR-->R8
                                I = Len(strx(3))
'                  11 TRL     EQU     0010H           ;R8壓埵
                                If (Asc(Left(strx(3), 1)) > 47 And Asc(Left(strx(3), 1)) < 58) And (Right(strx(3), 1) = "H" Or Right(strx(3), 1) = "h") Then
                                    strx(3) = "0x" + Left(strx(3), I - 1)
                                End If
'                 156 CP0INI          equ     00010001B       ;撪晹踢俦

⌨️ 快捷键说明

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