📄 frmbootload.frm
字号:
Err.Clear
End Sub
Private Sub M_About_Click()
frmAbout.Show vbModal, frmBootload
End Sub
'******************************************************************************
'Data file related functions
'******************************************************************************
Private Sub EraseDataFiles()
Open VB.App.Path & "\" & PicBootS.ProgMemFile For Output As #1
Close #1
Open VB.App.Path & "\" & PicBootS.EEDataFile For Output As #1
Close #1
Open VB.App.Path & "\" & PicBootS.ConfigFile For Output As #1
Close #1
End Sub
Private Sub ViewDataFiles()
If M_MemAccess(1).Checked = True Then
test = Shell(PicBootS.EditorFile & " " & VB.App.Path & "\" & PicBootS.ProgMemFile, vbNormalFocus)
End If
If M_MemAccess(2).Checked = True Then
test = Shell(PicBootS.EditorFile & " " & VB.App.Path & "\" & PicBootS.EEDataFile, vbNormalFocus)
End If
If M_MemAccess(3).Checked = True Then
test = Shell(PicBootS.EditorFile & " " & VB.App.Path & "\" & PicBootS.ConfigFile, vbNormalFocus)
End If
End Sub
'******************************************************************************
'******************************************************************************
'Port related setting functions
'******************************************************************************
Private Sub M_FPBaud_Click(Index As Integer)
DisconnectDev
M_FPBaud(1).Checked = Not CBool(Index Xor 1)
M_FPBaud(2).Checked = Not CBool(Index Xor 2)
M_FPBaud(3).Checked = Not CBool(Index Xor 3)
M_FPBaud(4).Checked = Not CBool(Index Xor 4)
M_FPBaud(5).Checked = Not CBool(Index Xor 5)
M_FPBaud(6).Checked = Not CBool(Index Xor 6)
M_FPBaud(7).Checked = Not CBool(Index Xor 7)
M_FPBaud(8).Checked = Not CBool(Index Xor 8)
PicBootS.BitRate = CLng(M_FPBaud(Index).Caption)
StatusBar1.Panels(PANEL_BITRATE) = M_FPBaud(Index).Caption
SetDisplayMode MODE_NOT_CONNECTED
End Sub
Private Sub M_FPPort_Click(Index As Integer)
Dim tempStr As String
DisconnectDev
M_FPPort(1).Checked = Not CBool(Index Xor 1)
M_FPPort(2).Checked = Not CBool(Index Xor 2)
M_FPPort(3).Checked = Not CBool(Index Xor 3)
M_FPPort(4).Checked = Not CBool(Index Xor 4)
M_FPPort(5).Checked = Not CBool(Index Xor 5)
M_FPPort(6).Checked = Not CBool(Index Xor 6)
M_FPPort(7).Checked = Not CBool(Index Xor 7)
M_FPPort(8).Checked = Not CBool(Index Xor 8)
M_FPPort(9).Checked = Not CBool(Index Xor 9)
M_FPPort(10).Checked = Not CBool(Index Xor 10)
If Index < 10 Then
PicBootS.CommPort = "\\.\" & M_FPPort(Index).Caption
StatusBar1.Panels(PANEL_PORT) = M_FPPort(Index).Caption
Else
tempStr = InputBox("Enter Port Name (e.g. COM10)", "Enter Custom Port", Mid(PicBootS.CommPort, 5))
If tempStr = "" Then
MsgBox ("Invalid Entry")
Else
PicBootS.CommPort = "\\.\" & tempStr
StatusBar1.Panels(PANEL_PORT) = tempStr
End If
End If
SetDisplayMode MODE_NOT_CONNECTED
End Sub
'******************************************************************************
Private Sub M_MemAccess_Click(Index As Integer)
If M_MemAccess(Index).Checked = True Then
M_MemAccess(Index).Checked = False
Select Case Index
Case 1
cProgMem.Value = 0
Case 2
cDataEE.Value = 0
Case 3
cConfig.Value = 0
End Select
Else
M_MemAccess(Index).Checked = True
Select Case Index
Case 1
cProgMem.Value = 1
Case 2
cDataEE.Value = 1
Case 3
cConfig.Value = 1
End Select
End If
End Sub
'******************************************************************************
'Toolbar related functions
'******************************************************************************
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Dim sFile As String
Dim ProgMemAddrH As Long
Dim command(5) As Byte
Dim writeFail As Boolean
Select Case Button.Key
Case "Open"
With CommonDialog1
.DialogTitle = "Open HEX File"
.CancelError = False
.Flags = cdlOFNHideReadOnly
.Filter = "INHEX32 Files (*.HEX)|*.HEX|All Files (*.*)|*.*"
.ShowOpen
If Len(.FileName) = 0 Then
Exit Sub
End If
PicBootS.InFileName = .FileName
.FileName = ""
End With
RetStat = ImportP24HEXFile(PicBootS.InFileName)
If RetStat = -2 Then
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_HEX_FORMAT
Else
If RetStat > 0 Then
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_HEX_IMPORTED
Else
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_INVALID_HEX
End If
End If
Case "Save"
With CommonDialog1
.DialogTitle = "Save HEX File"
.CancelError = False
.Flags = cdlOFNHideReadOnly
.Filter = "INHEX32 Files (*.HEX)|*.HEX|All Files (*.*)|*.*"
.ShowSave
If Len(.FileName) = 0 Then
Exit Sub
End If
PicBootS.OutFileName = .FileName
.FileName = ""
End With
ExportP24HEXFile PicBootS.OutFileName
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_HEX_EXPORTED
Case "Clear"
EraseDataFiles
Case "View"
ViewDataFiles
Case "Abort"
AbortFlag = 0
Case "Connect"
If Toolbar1.Buttons(9).Value = tbrUnpressed Then
DisconnectDev
Else
ConnectToPIC
End If
Case "Read"
frmBootload.MousePointer = 13
SetDisplayMode MODE_WORKING
'read program memory
If M_MemAccess(1).Checked = True Then
Select Case ReadRangeDevMem(PicBootS.ProgMemAddrL, PicBootS.ProgMemAddrH, PicBootS.DevBytesPerAddr, 1, PicBootS.ProgMemFile)
Case -100
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_ABORT
SetDisplayMode MODE_DONE
frmBootload.MousePointer = 0
Exit Sub
Case 1
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_FINISHED
Case Else
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_READ_FAILURE
End Select
End If
'read eedata
If M_MemAccess(2).Checked = True Then
Select Case ReadRangeDevMem(PicBootS.EEDataAddrL, PicBootS.EEDataAddrH, PicBootS.DevBytesPerAddr, 4, PicBootS.EEDataFile)
Case -100
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_ABORT
SetDisplayMode MODE_DONE
frmBootload.MousePointer = 0
Exit Sub
Case 1
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_FINISHED
Case Else
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_READ_FAILURE
End Select
End If
'read config
If M_MemAccess(3).Checked = True Then
Select Case ReadRangeDevMem(PicBootS.ConfigAddrL, PicBootS.ConfigAddrH, PicBootS.DevBytesPerAddr, 6, PicBootS.ConfigFile)
Case -100
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_ABORT
SetDisplayMode MODE_DONE
frmBootload.MousePointer = 0
Exit Sub
Case 1
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_FINISHED
Case Else
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_READ_FAILURE
End Select
End If
SetDisplayMode MODE_DONE
frmBootload.MousePointer = 0
Case "Write"
frmBootload.MousePointer = 13
SetDisplayMode MODE_WORKING
writeFail = False
If M_MemAccess(1).Checked = True Then
Select Case WriteRangeDevMem(PicBootS.DeviceWrtBlock, PicBootS.DevBytesPerAddr, 2, PicBootS.ProgMemFile)
Case -100
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_ABORT
SetDisplayMode MODE_DONE
frmBootload.MousePointer = 0
writeFail = True
Exit Sub
Case -101
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_VERIFY_ERROR
SetDisplayMode MODE_DONE
frmBootload.MousePointer = 0
test = Shell(PicBootS.EditorFile & " " & VB.App.Path & "\" & PicBootS.ErrorLogFile, vbNormalFocus)
writeFail = True
Exit Sub
Case 1
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_FINISHED
Case Else
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_WRITE_FAILURE
writeFail = True
End Select
End If
If M_MemAccess(2).Checked = True Then
Select Case WriteRangeDevMem(2, PicBootS.DevBytesPerAddr, 5, PicBootS.EEDataFile)
Case -100
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_ABORT
SetDisplayMode MODE_DONE
frmBootload.MousePointer = 0
writeFail = True
Exit Sub
Case -101
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_VERIFY_ERROR
SetDisplayMode MODE_DONE
frmBootload.MousePointer = 0
test = Shell(PicBootS.EditorFile & " " & VB.App.Path & "\" & PicBootS.ErrorLogFile, vbNormalFocus)
writeFail = True
Exit Sub
Case 1
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_FINISHED
Case Else
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_WRITE_FAILURE
writeFail = True
End Select
End If
If M_MemAccess(3).Checked = True Then
Select Case WriteRangeDevMem(1, PicBootS.DevBytesPerAddr, 7, PicBootS.ConfigFile)
Case -100
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_ABORT
SetDisplayMode MODE_DONE
frmBootload.MousePointer = 0
writeFail = True
Exit Sub
Case -101
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -