📄 form100.frm
字号:
Case "Save"
With CommonDialog1
.DialogTitle = "Save HEX File"
.CancelError = False
'ToDo: set the flags and attributes of the common dialog control
.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
'ToDo: add code to process the opened file
'crap = ConvertHEX(PicBootS.OutFileName, "D:\Crapp.HEX")
If PicBootS.DeviceType = 1 Then
ExportP18HEXFile PicBootS.OutFileName
Else
ExportP16HEXFile PicBootS.OutFileName
End If
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"
Fm_Bootload.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)
' Select Case ReadRangeDevMem(0, PicBootS.ProgMemAddrH, PicBootS.DevBytesPerAddr, 1, PicBootS.ProgMemFile)
'Select Case ReadRangeDevMem(0, 511, 1, PicBootS.ProgMemFile)
Case -100
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_ABORT
SetDisplayMode MODE_CONNECTED_IDLE
Fm_Bootload.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, 1, 4, PicBootS.EEDataFile)
Case -100
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_ABORT
SetDisplayMode MODE_CONNECTED_IDLE
Fm_Bootload.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, 1, 1, PicBootS.ConfigFile)
Case -100
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_ABORT
SetDisplayMode MODE_CONNECTED_IDLE
Fm_Bootload.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 userID
If M_MemAccess(4).Checked = True Then
Select Case ReadRangeDevMem(PicBootS.UserIDAddrL, PicBootS.UserIDAddrH, 1, 1, PicBootS.UserIDFile)
Case -100
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_ABORT
SetDisplayMode MODE_CONNECTED_IDLE
Fm_Bootload.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_CONNECTED_IDLE
Fm_Bootload.MousePointer = 0
Case "Write"
Fm_Bootload.MousePointer = 13
SetDisplayMode MODE_WORKING
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_CONNECTED_IDLE
Fm_Bootload.MousePointer = 0
Exit Sub
Case -101
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_VERIFY_ERROR
SetDisplayMode MODE_CONNECTED_IDLE
Fm_Bootload.MousePointer = 0
test = Shell(PicBootS.EditorFile & " " & VB.App.Path & "\" & PicBootS.ErrorLogFile, vbNormalFocus)
Exit Sub
Case 1
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_FINISHED
Case Else
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_WRITE_FAILURE
End Select
End If
If M_MemAccess(2).Checked = True Then
Select Case WriteRangeDevMem(1, 1, 5, PicBootS.EEDataFile)
Case -100
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_ABORT
SetDisplayMode MODE_CONNECTED_IDLE
Fm_Bootload.MousePointer = 0
Exit Sub
Case -101
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_VERIFY_ERROR
SetDisplayMode MODE_CONNECTED_IDLE
Fm_Bootload.MousePointer = 0
test = Shell(PicBootS.EditorFile & " " & VB.App.Path & "\" & PicBootS.ErrorLogFile, vbNormalFocus)
Exit Sub
Case 1
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_FINISHED
Case Else
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_WRITE_FAILURE
End Select
End If
If M_MemAccess(4).Checked = True Then
Select Case WriteRangeDevMem(PicBootS.DeviceWrtBlock, 1, 2, PicBootS.UserIDFile)
Case -100
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_ABORT
SetDisplayMode MODE_CONNECTED_IDLE
Fm_Bootload.MousePointer = 0
Exit Sub
Case -101
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_VERIFY_ERROR
SetDisplayMode MODE_CONNECTED_IDLE
Fm_Bootload.MousePointer = 0
test = Shell(PicBootS.EditorFile & " " & VB.App.Path & "\" & PicBootS.ErrorLogFile, vbNormalFocus)
Exit Sub
Case 1
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_FINISHED
Case Else
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_WRITE_FAILURE
End Select
End If
SetDisplayMode MODE_CONNECTED_IDLE
Fm_Bootload.MousePointer = 0
Case "Erase"
Fm_Bootload.MousePointer = 13
SetDisplayMode MODE_WORKING
If M_MemAccess(1).Checked = True Then
Select Case EraseRangeDevMem(PicBootS.ProgMemAddrL, PicBootS.ProgMemAddrH)
Case -100
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_ABORT
SetDisplayMode MODE_CONNECTED_IDLE
Fm_Bootload.MousePointer = 0
Exit Sub
Case 1
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_FINISHED
Case Else
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_WRITE_FAILURE
End Select
End If
If M_MemAccess(4).Checked = True Then
Select Case EraseRangeDevMem(PicBootS.UserIDAddrL, PicBootS.UserIDAddrH)
Case -100
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_ABORT
SetDisplayMode MODE_CONNECTED_IDLE
Fm_Bootload.MousePointer = 0
Exit Sub
Case 1
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_FINISHED
Case Else
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_WRITE_FAILURE
End Select
End If
SetDisplayMode MODE_CONNECTED_IDLE
Fm_Bootload.MousePointer = 0
Case "Run"
MyButtons = MsgBox("Disabling the bootloader will lock out boot mode. Be sure to have re-entry" & vbCrLf & "code within your firmware to use the bootloader in the future." & vbCrLf & vbCrLf & "Do you want to continue?", vbYesNo, "Disable Bootloader...")
If MyButtons = vbNo Then ' User chose Yes.
Exit Sub ' Perform some action.
End If
GotoRunMode
DisconnectDev
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_RUNMODE_SET
End Select
End Sub
Private Sub Toolbar1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = 2 Then
MsConFlag = 2
PopupMenu M_Program, vbPopupMenuRightButton
End If
End Sub
'******************************************************************************
Private Sub DisconnectDev()
AbortFlag = 0
DoEvents
'close the port
If PicBootS.PortHandle > 0 Then
ClosePIC (PicBootS.PortHandle)
PicBootS.PortHandle = -1
End If
Toolbar1.Buttons(9).Value = tbrUnpressed
StatusBar1.Panels(PANEL_STATUS).Text = STATUS_NOT_CON
StatusBar1.Panels(PANEL_FWVER).Text = " "
StatusBar1.Panels(PANEL_DEVICE).Text = " "
SetDisplayMode (MODE_NOT_CONNECTED)
End Sub
Private Sub SetDisplayMode(DspMode As Integer)
Toolbar1.Buttons(1).Enabled = False
Toolbar1.Buttons(2).Enabled = False
Toolbar1.Buttons(4).Enabled = True
Toolbar1.Buttons(5).Enabled = True
Toolbar1.Buttons(7).Enabled = False
Toolbar1.Buttons(9).Enabled = True
Toolbar1.Buttons(10).Enabled = False
Toolbar1.Buttons(11).Enabled = False
Toolbar1.Buttons(12).Enabled = False
Toolbar1.Buttons(14).Enabled = False
M_FPPort(1).Enabled = True
M_FPPort(2).Enabled = True
M_FPPort(3).Enabled = True
M_FPPort(4).Enabled = True
M_FPBaud(1).Enabled = True
M_FPBaud(2).Enabled = True
M_FPBaud(3).Enabled = True
M_FPBaud(4).Enabled = True
M_FPBaud(5).Enabled = True
M_MemAccess(1).Enabled = True
M_MemAccess(2).Enabled = True
M_MemAccess(3).Enabled = True
M_MemAccess(4).Enabled = True
M_PSendCfg.Visible = False
space101.Visible = False
If (DspMode And MODE_CONNECTED_IDLE) Then
Toolbar1.Buttons(1).Enabled = True
Toolbar1.Buttons(2).Enabled = True
Toolbar1.Buttons(10).Enabled = True
Toolbar1.Buttons(11).Enabled = True
Toolbar1.Buttons(12).Enabled = True
Toolbar1.Buttons(14).Enabled = True
M_PSendCfg.Visible = True
space101.Visible = True
M_Program.Enabled = True
End If
If (DspMode And MODE_WORKING) Then
M_PSendCfg.Visible = False
Toolbar1.Buttons(7).Enabled = True
Toolbar1.Buttons(1).Enabled = False
Toolbar1.Buttons(2).Enabled = False
Toolbar1.Buttons(4).Enabled = False
Toolbar1.Buttons(5).Enabled = False
M_MemAccess(1).Enabled = False
M_MemAccess(2).Enabled = False
M_MemAccess(3).Enabled = False
M_MemAccess(4).Enabled = False
M_FPBaud(1).Enabled = False
M_FPBaud(2).Enabled = False
M_FPBaud(3).Enabled = False
M_FPBaud(4).Enabled = False
M_FPBaud(5).Enabled = False
M_FPPort(1).Enabled = False
M_FPPort(2).Enabled = False
M_FPPort(3).Enabled = False
M_FPPort(4).Enabled = False
End If
If PicBootS.DeviceType = 0 Then
M_MemAccess(3).Visible = False
M_MemAccess(4).Visible = False
Toolbar1.Buttons(12).Enabled = False
M_MemAccess(3).Checked = False
M_MemAccess(4).Checked = False
M_PSendCfg.Visible = False
space101.Visible = False
Else
M_MemAccess(3).Visible = True
M_MemAccess(4).Visible = True
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -