From c22c2007710db317dd5fc27195bf03ad9229ce46 Mon Sep 17 00:00:00 2001 From: developer8 Date: Fri, 28 Aug 2015 12:24:35 +0000 Subject: [PATCH] git-svn-id: svn://192.168.1.162/sw_open/ufr/c++/examples/trunk@32 0fae45b4-cbfc-db4a-83f8-6dc45b954d62 --- uFCoderAdvanced/BlockReadWrite.dfm | 947 ------------------- uFCoderAdvanced/BlockReadWrite.h | 124 --- uFCoderAdvanced/BlockReadWrite.obj | Bin 148710 -> 0 bytes uFCoderAdvanced/Globals.h | 347 ------- uFCoderAdvanced/Globals.~h | 346 ------- uFCoderAdvanced/LinearFormatCard.cpp | 256 ------ uFCoderAdvanced/LinearFormatCard.ddp | Bin 51 -> 0 bytes uFCoderAdvanced/LinearFormatCard.dfm | 785 ---------------- uFCoderAdvanced/LinearFormatCard.h | 93 -- uFCoderAdvanced/LinearFormatCard.obj | Bin 133928 -> 0 bytes uFCoderAdvanced/LinearFormatCard.~cpp | 256 ------ uFCoderAdvanced/LinearFormatCard.~ddp | Bin 51 -> 0 bytes uFCoderAdvanced/LinearFormatCard.~dfm | 785 ---------------- uFCoderAdvanced/LinearFormatCard.~h | 93 -- uFCoderAdvanced/LinearReadWrite.cpp | 539 ----------- uFCoderAdvanced/LinearReadWrite.ddp | Bin 51 -> 0 bytes uFCoderAdvanced/LinearReadWrite.dfm | 1063 ---------------------- uFCoderAdvanced/LinearReadWrite.h | 130 --- uFCoderAdvanced/LinearReadWrite.obj | Bin 179086 -> 0 bytes uFCoderAdvanced/SectorTrailerWrite.cpp | 281 ------ uFCoderAdvanced/SectorTrailerWrite.ddp | Bin 51 -> 0 bytes uFCoderAdvanced/SectorTrailerWrite.dfm | 1153 ------------------------ uFCoderAdvanced/ftd2xx.dll | Bin 206144 -> 0 bytes 23 files changed, 7198 deletions(-) delete mode 100644 uFCoderAdvanced/BlockReadWrite.dfm delete mode 100644 uFCoderAdvanced/BlockReadWrite.h delete mode 100644 uFCoderAdvanced/BlockReadWrite.obj delete mode 100644 uFCoderAdvanced/Globals.h delete mode 100644 uFCoderAdvanced/Globals.~h delete mode 100644 uFCoderAdvanced/LinearFormatCard.cpp delete mode 100644 uFCoderAdvanced/LinearFormatCard.ddp delete mode 100644 uFCoderAdvanced/LinearFormatCard.dfm delete mode 100644 uFCoderAdvanced/LinearFormatCard.h delete mode 100644 uFCoderAdvanced/LinearFormatCard.obj delete mode 100644 uFCoderAdvanced/LinearFormatCard.~cpp delete mode 100644 uFCoderAdvanced/LinearFormatCard.~ddp delete mode 100644 uFCoderAdvanced/LinearFormatCard.~dfm delete mode 100644 uFCoderAdvanced/LinearFormatCard.~h delete mode 100644 uFCoderAdvanced/LinearReadWrite.cpp delete mode 100644 uFCoderAdvanced/LinearReadWrite.ddp delete mode 100644 uFCoderAdvanced/LinearReadWrite.dfm delete mode 100644 uFCoderAdvanced/LinearReadWrite.h delete mode 100644 uFCoderAdvanced/LinearReadWrite.obj delete mode 100644 uFCoderAdvanced/SectorTrailerWrite.cpp delete mode 100644 uFCoderAdvanced/SectorTrailerWrite.ddp delete mode 100644 uFCoderAdvanced/SectorTrailerWrite.dfm delete mode 100644 uFCoderAdvanced/ftd2xx.dll diff --git a/uFCoderAdvanced/BlockReadWrite.dfm b/uFCoderAdvanced/BlockReadWrite.dfm deleted file mode 100644 index e948135..0000000 --- a/uFCoderAdvanced/BlockReadWrite.dfm +++ /dev/null @@ -1,947 +0,0 @@ -object frmBlockReadWrite: TfrmBlockReadWrite - Left = 340 - Top = 220 - Width = 527 - Height = 402 - Caption = 'frmBlockReadWrite' - Color = clBtnFace - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [] - OldCreateOrder = False - OnCreate = FormCreate - PixelsPerInch = 96 - TextHeight = 13 - object pnlHeader: TStaticText - Left = 0 - Top = 0 - Width = 511 - Height = 25 - Align = alTop - Alignment = taCenter - AutoSize = False - BorderStyle = sbsSingle - Caption = 'Block Read/Write(AKM1,AKM2,PK)' - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -17 - Font.Name = 'Verdana' - Font.Style = [] - ParentColor = False - ParentFont = False - TabOrder = 0 - end - object pnlAuth: TPanel - Left = 0 - Top = 25 - Width = 511 - Height = 31 - Align = alTop - Caption = ' ' - Ctl3D = True - ParentCtl3D = False - TabOrder = 1 - object lblKeyIndex: TLabel - Left = 179 - Top = 8 - Width = 59 - Height = 13 - Caption = 'Key Index' - end - object lblPK: TLabel - Left = 297 - Top = 8 - Width = 15 - Height = 13 - Caption = 'PK' - end - object rbAUTH1A: TRadioButton - Left = 8 - Top = 7 - Width = 73 - Height = 17 - Cursor = crHandPoint - Caption = 'AUTH 1A' - Checked = True - TabOrder = 0 - TabStop = True - end - object rbAUTH1B: TRadioButton - Left = 87 - Top = 7 - Width = 73 - Height = 17 - Cursor = crHandPoint - Caption = 'AUTH 1B' - TabOrder = 1 - end - object cboKeyIndex: TComboBox - Left = 245 - Top = 5 - Width = 40 - Height = 21 - Cursor = crHandPoint - Ctl3D = True - DropDownCount = 10 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 13 - ItemIndex = 0 - ParentCtl3D = False - ParentFont = False - TabOrder = 2 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7' - '8' - '9' - '10' - '11' - '12' - '13' - '14' - '15' - '16' - '17' - '18' - '19' - '20' - '21' - '22' - '23' - '24' - '25' - '26' - '27' - '28' - '29' - '30' - '31') - end - end - object stbFunction: TStatusBar - Left = 0 - Top = 339 - Width = 511 - Height = 25 - Font.Charset = ANSI_CHARSET - Font.Color = clBtnText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [] - Panels = < - item - Alignment = taCenter - Text = 'Function Error:' - Width = 119 - end - item - Alignment = taCenter - Width = 50 - end - item - Alignment = taCenter - Width = 50 - end> - SimplePanel = False - UseSystemFont = False - end - object pgBlockReadWrite: TPageControl - Left = 0 - Top = 56 - Width = 511 - Height = 283 - ActivePage = tabBlockRead - Align = alClient - TabIndex = 0 - TabOrder = 3 - object tabBlockRead: TTabSheet - Caption = 'Block Read' - object pnlBlockRead: TPanel - Left = 3 - Top = 1 - Width = 235 - Height = 121 - BorderStyle = bsSingle - TabOrder = 0 - object lblBRBlockAddress: TLabel - Left = 8 - Top = 32 - Width = 81 - Height = 13 - Caption = 'Block Address' - end - object lblReadData: TLabel - Left = 8 - Top = 75 - Width = 60 - Height = 13 - Caption = 'Read Data' - end - object lblBlockRead: TStaticText - Left = 1 - Top = 1 - Width = 229 - Height = 18 - Align = alTop - Alignment = taCenter - AutoSize = False - BorderStyle = sbsSingle - Caption = 'Block Read' - Color = clSilver - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentColor = False - ParentFont = False - TabOrder = 2 - end - object txtBRBlockAddress: TEdit - Left = 96 - Top = 30 - Width = 41 - Height = 24 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 2 - ParentFont = False - TabOrder = 0 - end - object btnBlockRead: TButton - Left = 144 - Top = 28 - Width = 75 - Height = 40 - Cursor = crHandPoint - Caption = 'READ' - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 1 - OnClick = btnBlockReadClick - end - object txtBlockRead: TEdit - Left = 8 - Top = 91 - Width = 210 - Height = 21 - Ctl3D = True - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentCtl3D = False - ParentFont = False - ReadOnly = True - TabOrder = 3 - end - object chkBRHex: TCheckBox - Left = 175 - Top = 72 - Width = 43 - Height = 17 - Caption = 'Hex' - TabOrder = 4 - OnClick = chkBRHexClick - end - end - object pnlBlockReadAKM1: TPanel - Left = 265 - Top = 1 - Width = 235 - Height = 121 - BorderStyle = bsSingle - TabOrder = 1 - object lblBRBlockAddressAKM1: TLabel - Left = 8 - Top = 32 - Width = 81 - Height = 13 - Caption = 'Block Address' - end - object lblReadDataAKM1: TLabel - Left = 8 - Top = 75 - Width = 60 - Height = 13 - Caption = 'Read Data' - end - object lblBlockReadAKM1: TStaticText - Left = 1 - Top = 1 - Width = 229 - Height = 18 - Align = alTop - Alignment = taCenter - AutoSize = False - BorderStyle = sbsSingle - Caption = 'BlockRead_AKM1' - Color = clSilver - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentColor = False - ParentFont = False - TabOrder = 2 - end - object txtBRBlockAddressAKM1: TEdit - Left = 96 - Top = 30 - Width = 41 - Height = 24 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 2 - ParentFont = False - TabOrder = 0 - end - object btnBlockReadAKM1: TButton - Left = 144 - Top = 28 - Width = 75 - Height = 40 - Cursor = crHandPoint - Caption = 'READ' - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 1 - OnClick = btnBlockReadAKM1Click - end - object txtBlockReadAKM1: TEdit - Left = 8 - Top = 91 - Width = 210 - Height = 21 - Ctl3D = True - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentCtl3D = False - ParentFont = False - ReadOnly = True - TabOrder = 3 - end - object chkBRHexAKM1: TCheckBox - Left = 175 - Top = 72 - Width = 43 - Height = 17 - Caption = 'Hex' - TabOrder = 4 - OnClick = chkBRHexAKM1Click - end - end - object pnlBlockReadAKM2: TPanel - Left = 3 - Top = 128 - Width = 235 - Height = 121 - BorderStyle = bsSingle - TabOrder = 2 - object lblBRBlockAddressAKM2: TLabel - Left = 8 - Top = 32 - Width = 81 - Height = 13 - Caption = 'Block Address' - end - object lblReadDataAKM2: TLabel - Left = 8 - Top = 75 - Width = 60 - Height = 13 - Caption = 'Read Data' - end - object lblBlockReadAKM2: TStaticText - Left = 1 - Top = 1 - Width = 229 - Height = 18 - Align = alTop - Alignment = taCenter - AutoSize = False - BorderStyle = sbsSingle - Caption = 'BlockRead_AKM2' - Color = clSilver - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentColor = False - ParentFont = False - TabOrder = 2 - end - object txtBRBlockAddressAKM2: TEdit - Left = 96 - Top = 30 - Width = 41 - Height = 24 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 2 - ParentFont = False - TabOrder = 0 - end - object btnBlockReadAKM2: TButton - Left = 144 - Top = 28 - Width = 75 - Height = 40 - Cursor = crHandPoint - Caption = 'READ' - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 1 - OnClick = btnBlockReadAKM2Click - end - object txtBlockReadAKM2: TEdit - Left = 8 - Top = 91 - Width = 210 - Height = 21 - Ctl3D = True - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentCtl3D = False - ParentFont = False - ReadOnly = True - TabOrder = 3 - end - object chkBRHexAKM2: TCheckBox - Left = 175 - Top = 72 - Width = 43 - Height = 17 - Caption = 'Hex' - TabOrder = 4 - OnClick = chkBRHexAKM2Click - end - end - object pnlBlockReadPK: TPanel - Left = 265 - Top = 128 - Width = 235 - Height = 121 - BorderStyle = bsSingle - TabOrder = 3 - object lblBRBlockAddressPK: TLabel - Left = 8 - Top = 32 - Width = 81 - Height = 13 - Caption = 'Block Address' - end - object lblReadDataPK: TLabel - Left = 8 - Top = 75 - Width = 60 - Height = 13 - Caption = 'Read Data' - end - object lblBlockReadPK: TStaticText - Left = 1 - Top = 1 - Width = 229 - Height = 18 - Align = alTop - Alignment = taCenter - AutoSize = False - BorderStyle = sbsSingle - Caption = 'BlockRead_PK' - Color = clSilver - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentColor = False - ParentFont = False - TabOrder = 2 - end - object txtBRBlockAddressPK: TEdit - Left = 96 - Top = 30 - Width = 41 - Height = 24 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 2 - ParentFont = False - TabOrder = 0 - end - object btnBlockReadPK: TButton - Left = 144 - Top = 28 - Width = 75 - Height = 40 - Cursor = crHandPoint - Caption = 'READ' - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 1 - OnClick = btnBlockReadPKClick - end - object txtBlockReadPK: TEdit - Left = 8 - Top = 91 - Width = 210 - Height = 21 - Ctl3D = True - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentCtl3D = False - ParentFont = False - ReadOnly = True - TabOrder = 3 - end - object chkBRHexPK: TCheckBox - Left = 175 - Top = 72 - Width = 43 - Height = 17 - Caption = 'Hex' - TabOrder = 4 - OnClick = chkBRHexPKClick - end - end - end - object tabBlockWrite: TTabSheet - Caption = 'Block Write' - ImageIndex = 1 - object pnlBlockWrite: TPanel - Left = 3 - Top = 1 - Width = 235 - Height = 121 - BorderStyle = bsSingle - TabOrder = 0 - object lblBWBlockAddress: TLabel - Left = 8 - Top = 80 - Width = 81 - Height = 13 - Caption = 'Block Address' - end - object lblWriteData: TLabel - Left = 8 - Top = 25 - Width = 61 - Height = 13 - Caption = 'Write Data' - end - object lblBlockWrite: TStaticText - Left = 1 - Top = 1 - Width = 229 - Height = 18 - Align = alTop - Alignment = taCenter - AutoSize = False - BorderStyle = sbsSingle - Caption = 'Block Write' - Color = clSilver - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentColor = False - ParentFont = False - TabOrder = 3 - end - object txtBWBlockAddress: TEdit - Left = 96 - Top = 77 - Width = 41 - Height = 24 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 2 - ParentFont = False - TabOrder = 1 - end - object btnWriteData: TButton - Left = 144 - Top = 68 - Width = 75 - Height = 40 - Cursor = crHandPoint - Caption = 'WRITE' - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 2 - OnClick = btnWriteDataClick - end - object txtBlockWrite: TEdit - Left = 8 - Top = 41 - Width = 210 - Height = 21 - Ctl3D = True - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentCtl3D = False - ParentFont = False - TabOrder = 0 - end - object chkBWHex: TCheckBox - Left = 175 - Top = 24 - Width = 43 - Height = 17 - Caption = 'Hex' - TabOrder = 4 - end - end - object pnlBlockWriteAKM1: TPanel - Left = 265 - Top = 1 - Width = 235 - Height = 121 - BorderStyle = bsSingle - TabOrder = 1 - object lblBWBlockWriteAKM1: TLabel - Left = 8 - Top = 80 - Width = 81 - Height = 13 - Caption = 'Block Address' - end - object lblWriteDataAKM1: TLabel - Left = 8 - Top = 25 - Width = 61 - Height = 13 - Caption = 'Write Data' - end - object lblBlockWriteAKM1: TStaticText - Left = 1 - Top = 1 - Width = 229 - Height = 18 - Align = alTop - Alignment = taCenter - AutoSize = False - BorderStyle = sbsSingle - Caption = 'BlockWrite_AKM1' - Color = clSilver - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentColor = False - ParentFont = False - TabOrder = 3 - end - object txtBWBlockAddressAKM1: TEdit - Left = 96 - Top = 77 - Width = 41 - Height = 24 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 2 - ParentFont = False - TabOrder = 1 - end - object btnBlockWriteAKM1: TButton - Left = 144 - Top = 68 - Width = 75 - Height = 40 - Cursor = crHandPoint - Caption = 'WRITE' - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 2 - OnClick = btnBlockWriteAKM1Click - end - object txtBlockWriteAKM1: TEdit - Left = 8 - Top = 41 - Width = 210 - Height = 21 - Ctl3D = True - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentCtl3D = False - ParentFont = False - TabOrder = 0 - end - object chkBWHexAKM1: TCheckBox - Left = 175 - Top = 24 - Width = 43 - Height = 17 - Caption = 'Hex' - TabOrder = 4 - end - end - object pnlBlockWriteAKM2: TPanel - Left = 3 - Top = 128 - Width = 235 - Height = 121 - BorderStyle = bsSingle - TabOrder = 2 - object lblBWBlockAddressAKM2: TLabel - Left = 8 - Top = 80 - Width = 81 - Height = 13 - Caption = 'Block Address' - end - object lblWriteDataAKM2: TLabel - Left = 8 - Top = 24 - Width = 61 - Height = 13 - Caption = 'Write Data' - end - object lblBlockWriteAKM2: TStaticText - Left = 1 - Top = 1 - Width = 229 - Height = 18 - Align = alTop - Alignment = taCenter - AutoSize = False - BorderStyle = sbsSingle - Caption = 'BlockWrite_AKM2' - Color = clSilver - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentColor = False - ParentFont = False - TabOrder = 3 - end - object txtBWBlockAddressAKM2: TEdit - Left = 96 - Top = 77 - Width = 41 - Height = 24 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 2 - ParentFont = False - TabOrder = 1 - end - object btnBlockWriteAKM2: TButton - Left = 144 - Top = 68 - Width = 75 - Height = 40 - Cursor = crHandPoint - Caption = 'WRITE' - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 2 - OnClick = btnBlockWriteAKM2Click - end - object txtBlockWriteAKM2: TEdit - Left = 8 - Top = 40 - Width = 210 - Height = 21 - Ctl3D = True - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentCtl3D = False - ParentFont = False - TabOrder = 0 - end - object chkBWHexAKM2: TCheckBox - Left = 175 - Top = 23 - Width = 43 - Height = 17 - Caption = 'Hex' - TabOrder = 4 - end - end - object pnlBlockWritePK: TPanel - Left = 266 - Top = 128 - Width = 235 - Height = 121 - BorderStyle = bsSingle - TabOrder = 3 - object lblBWBlockAddressPK: TLabel - Left = 8 - Top = 80 - Width = 81 - Height = 13 - Caption = 'Block Address' - end - object lblWriteDataPK: TLabel - Left = 8 - Top = 24 - Width = 61 - Height = 13 - Caption = 'Write Data' - end - object lblBlockWritePK: TStaticText - Left = 1 - Top = 1 - Width = 229 - Height = 18 - Align = alTop - Alignment = taCenter - AutoSize = False - BorderStyle = sbsSingle - Caption = 'BlockWrite_PK' - Color = clSilver - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentColor = False - ParentFont = False - TabOrder = 3 - end - object txtBWBlockAddressPK: TEdit - Left = 96 - Top = 77 - Width = 41 - Height = 24 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 2 - ParentFont = False - TabOrder = 1 - end - object btnBlockWritePK: TButton - Left = 144 - Top = 68 - Width = 75 - Height = 40 - Cursor = crHandPoint - Caption = 'WRITE' - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 2 - OnClick = btnBlockWritePKClick - end - object txtBlockWritePK: TEdit - Left = 8 - Top = 40 - Width = 210 - Height = 21 - Ctl3D = True - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentCtl3D = False - ParentFont = False - TabOrder = 0 - end - object chkBWHexPK: TCheckBox - Left = 175 - Top = 23 - Width = 43 - Height = 17 - Caption = 'Hex' - TabOrder = 4 - end - end - end - end -end diff --git a/uFCoderAdvanced/BlockReadWrite.h b/uFCoderAdvanced/BlockReadWrite.h deleted file mode 100644 index b627c33..0000000 --- a/uFCoderAdvanced/BlockReadWrite.h +++ /dev/null @@ -1,124 +0,0 @@ -//--------------------------------------------------------------------------- - -#ifndef BlockReadWriteH -#define BlockReadWriteH -//--------------------------------------------------------------------------- -#include -#include -#include -#include -#include -#include -#include "Globals.h" -//--------------------------------------------------------------------------- -class TfrmBlockReadWrite : public TForm -{ -__published: // IDE-managed Components - TStaticText *pnlHeader; - TPanel *pnlAuth; - TLabel *lblKeyIndex; - TLabel *lblPK; - TRadioButton *rbAUTH1A; - TRadioButton *rbAUTH1B; - TComboBox *cboKeyIndex; - TStatusBar *stbFunction; - TPageControl *pgBlockReadWrite; - TTabSheet *tabBlockRead; - TTabSheet *tabBlockWrite; - TPanel *pnlBlockRead; - TStaticText *lblBlockRead; - TLabel *lblBRBlockAddress; - TEdit *txtBRBlockAddress; - TButton *btnBlockRead; - TLabel *lblReadData; - TEdit *txtBlockRead; - TPanel *pnlBlockReadAKM1; - TLabel *lblBRBlockAddressAKM1; - TLabel *lblReadDataAKM1; - TStaticText *lblBlockReadAKM1; - TEdit *txtBRBlockAddressAKM1; - TButton *btnBlockReadAKM1; - TEdit *txtBlockReadAKM1; - TPanel *pnlBlockReadAKM2; - TLabel *lblBRBlockAddressAKM2; - TLabel *lblReadDataAKM2; - TStaticText *lblBlockReadAKM2; - TEdit *txtBRBlockAddressAKM2; - TButton *btnBlockReadAKM2; - TEdit *txtBlockReadAKM2; - TPanel *pnlBlockReadPK; - TLabel *lblBRBlockAddressPK; - TLabel *lblReadDataPK; - TStaticText *lblBlockReadPK; - TEdit *txtBRBlockAddressPK; - TButton *btnBlockReadPK; - TEdit *txtBlockReadPK; - TPanel *pnlBlockWrite; - TLabel *lblBWBlockAddress; - TStaticText *lblBlockWrite; - TEdit *txtBWBlockAddress; - TButton *btnWriteData; - TLabel *lblWriteData; - TEdit *txtBlockWrite; - TPanel *pnlBlockWriteAKM1; - TLabel *lblBWBlockWriteAKM1; - TLabel *lblWriteDataAKM1; - TStaticText *lblBlockWriteAKM1; - TEdit *txtBWBlockAddressAKM1; - TButton *btnBlockWriteAKM1; - TEdit *txtBlockWriteAKM1; - TPanel *pnlBlockWriteAKM2; - TLabel *lblBWBlockAddressAKM2; - TLabel *lblWriteDataAKM2; - TStaticText *lblBlockWriteAKM2; - TEdit *txtBWBlockAddressAKM2; - TButton *btnBlockWriteAKM2; - TEdit *txtBlockWriteAKM2; - TPanel *pnlBlockWritePK; - TLabel *lblBWBlockAddressPK; - TLabel *lblWriteDataPK; - TStaticText *lblBlockWritePK; - TEdit *txtBWBlockAddressPK; - TButton *btnBlockWritePK; - TEdit *txtBlockWritePK; - TCheckBox *chkBRHex; - TCheckBox *chkBRHexAKM1; - TCheckBox *chkBRHexAKM2; - TCheckBox *chkBRHexPK; - TCheckBox *chkBWHex; - TCheckBox *chkBWHexAKM1; - TCheckBox *chkBWHexAKM2; - TCheckBox *chkBWHexPK; - void __fastcall FormCreate(TObject *Sender); - void __fastcall OnPK_KeyPress(TObject *Sender,char &Key); - void __fastcall OnPK_Exit(TObject *Sender); - void __fastcall btnBlockReadClick(TObject *Sender); - void __fastcall btnBlockReadAKM1Click(TObject *Sender); - void __fastcall btnBlockReadAKM2Click(TObject *Sender); - void __fastcall btnBlockReadPKClick(TObject *Sender); - void __fastcall btnWriteDataClick(TObject *Sender); - void __fastcall btnBlockWriteAKM1Click(TObject *Sender); - void __fastcall btnBlockWriteAKM2Click(TObject *Sender); - void __fastcall btnBlockWritePKClick(TObject *Sender); - - void __fastcall chkBRHexClick(TObject *Sender); - void __fastcall chkBRHexAKM1Click(TObject *Sender); - void __fastcall chkBRHexAKM2Click(TObject *Sender); - void __fastcall chkBRHexPKClick(TObject *Sender); -private: - - - const char* CONV_ERROR; - - unsigned char* HexConvert(TEdit* sTextBox); - String __fastcall ConvertToHex(bool chkCheck); - unsigned char aucReadDatas[BLOCK_MAX_INDEX]; - -public: - - __fastcall TfrmBlockReadWrite(TComponent* Owner); -}; -//--------------------------------------------------------------------------- -extern PACKAGE TfrmBlockReadWrite *frmBlockReadWrite; -//--------------------------------------------------------------------------- -#endif diff --git a/uFCoderAdvanced/BlockReadWrite.obj b/uFCoderAdvanced/BlockReadWrite.obj deleted file mode 100644 index 323185dd3596352912d70f738436b7c7e0a93190..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148710 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 -#include -#include -#include -#include -#include -#include -#include "uFCoder1x.h" - -const unsigned short - MAX_SECTORS_1k = 16, - MAX_SECTORS_4k = 40, - MAX_BYTES_NTAG_203 = 144, - MAX_BYTES_ULTRALIGHT = 48, - MAX_BYTES_ULTRALIGHT_C = 144, - MAX_BYTES_CLASSIC_1K = 752, - MAX_BYTES_CLASSIC_4k = 3440; - -// max page and max block length for NTAG and MIFARE ULTRALIGHT -const unsigned char - MAX_PAGE_NTAG203 = 39, - MAX_PAGE_ULTRALIGHT = 15, - MAX_PAGE_ULTRALIGHT_C = 39; - - -const unsigned char - MAX_BLOCK = 16, - MAX_BLOCK_NTAG_ULTRAL = 5, - FORMAT_SIGN = 0xFF; - -typedef unsigned long DL_STATUS; -const unsigned - FRES_OK_LIGHT = 4, - FRES_OK_SOUND = 0, - FERR_LIGHT = 2, - FERR_SOUND = 0, - DL_OK = 0, - MAX_KEY_INDEX = 6, - MAX_USER_DATA = 15, - BLOCK_MAX_INDEX = 15; - - - -const AUTH1A = 0x60, - AUTH1B = 0x61; - -const char* CONVERT_ERROR = "You must enter only whole decimal number !"; -const char* APPROPRIATE_FORMAT = "You must enter the appropriate format !"; -const char* WRONG_ENTRY = "Wrong entry ! You must enter the numeric value between 0 - 255 !"; -AnsiString ERR_CODE[200]; -unsigned char ucCardTypes; - -unsigned char GetCardType(void) -{ - return ucCardTypes; -} -unsigned char SetCardType(unsigned char AValue) -{ - ucCardTypes=AValue; -} - -bool boReaderStart, - boFunctionStart; - -bool GetReaderStart(void) -{ - return boReaderStart; -} -void SetReaderStart(bool AValue) -{ - boReaderStart=AValue; -} - -bool GetFunctionStart(void) -{ - return boFunctionStart; -} -void SetFunctionStart(bool AValue) -{ - boFunctionStart=AValue; -} - - -static String asErrorCode[200]; - -void __fastcall SetStatusBar(TStatusBar *StatusBar,unsigned long Result) -{ - StatusBar->Panels->Items[1]->Text="0x"+AnsiString().IntToHex(Result,2); - StatusBar->Panels->Items[2]->Text=asErrorCode[Result]; -} - -void ErrorCodes(void) -{ - asErrorCode[0x00]="DL_OK "; - asErrorCode[0x01]="COMMUNICATION_ERROR "; - asErrorCode[0x02]="CHKSUM_ERROR "; - asErrorCode[0x03]="READING_ERROR "; - asErrorCode[0x04]="WRITING_ERROR "; - asErrorCode[0x05]="BUFFER_OVERFLOW "; - asErrorCode[0x06]="MAX_ADDRESS_EXCEEDED "; - asErrorCode[0x07]="MAX_KEY_INDEX_EXCEEDED "; - asErrorCode[0x08]="NO_CARD "; - asErrorCode[0x09]="COMMAND_NOT_SUPPORTED "; - asErrorCode[0x0A]="FORBIDEN_DIRECT_WRITE_IN_SECTOR_TRAILER "; - asErrorCode[0x0B]="ADDRESSED_BLOCK_IS_NOT_SECTOR_TRAILER "; - asErrorCode[0x0C]="WRONG_ADDRESS_MODE "; - asErrorCode[0x0D]="WRONG_ACCESS_BITS_VALUES "; - asErrorCode[0x0E]="AUTH_ERROR "; - asErrorCode[0x0F]="PARAMETERS_ERROR "; - asErrorCode[0x10]="MAX_SIZE_EXCEEDED "; - asErrorCode[0x11]="UNSUPPORTED_CARD_TYPE "; - - asErrorCode[0x50]="COMMUNICATION_BREAK "; - asErrorCode[0x51]="NO_MEMORY_ERROR "; - asErrorCode[0x52]="CAN_NOT_OPEN_READER "; - asErrorCode[0x53]="READER_NOT_SUPPORTED "; - asErrorCode[0x54]="READER_OPENING_ERROR "; - asErrorCode[0x55]="READER_PORT_NOT_OPENED "; - asErrorCode[0x56]="CANT_CLOSE_READER_PORT "; - - asErrorCode[0x70]="WRITE_VERIFICATION_ERROR "; - asErrorCode[0x71]="BUFFER_SIZE_EXCEEDED "; - asErrorCode[0x72]="VALUE_BLOCK_INVALID "; - asErrorCode[0x73]="VALUE_BLOCK_ADDR_INVALID "; - asErrorCode[0x74]="VALUE_BLOCK_MANIPULATION_ERROR "; - asErrorCode[0x75]="WRONG_UI_MODE"; - asErrorCode[0x76]="KEYS_LOCKED"; - asErrorCode[0x77]="KEYS_UNLOCKED"; - asErrorCode[0x78]="WRONG_PASSWORD"; - asErrorCode[0x79]="CAN_NOT_LOCK_DEVICE"; - asErrorCode[0x7A]="CAN_NOT_UNLOCK_DEVICE"; - asErrorCode[0x7B]="DEVICE_EEPROM_BUSY"; - asErrorCode[0x7C]="RTC_SET_ERROR"; - - asErrorCode[0xA0]="FT_STATUS_ERROR_1"; - asErrorCode[0xA1]="FT_STATUS_ERROR_2"; - asErrorCode[0xA2]="FT_STATUS_ERROR_3"; - asErrorCode[0xA3]="FT_STATUS_ERROR_4"; - asErrorCode[0xA4]="FT_STATUS_ERROR_5"; - asErrorCode[0xA5]="FT_STATUS_ERROR_6"; - asErrorCode[0xA6]="FT_STATUS_ERROR_7"; - asErrorCode[0xA7]="FT_STATUS_ERROR_8"; - asErrorCode[0xA8]="FT_STATUS_ERROR_9"; -} - void ShowForm(TForm *my_form,TPanel *pnlContainer) - { - my_form->Align=alClient; - my_form->BorderStyle=bsNone; - my_form->Show(); - my_form->Parent=pnlContainer; - } - void CreateKey(TForm *key_owner,int key_height,int key_width,int key_left,int key_top, - AnsiString key_name,TPanel *pnlContainer,TKeyPressEvent on_key_press,TNotifyEvent on_exit) - - { - TEdit *edit_key[10]; - for (char count=0;count<6;count++) - { - edit_key[count]=new TEdit(key_owner); - edit_key[count]->Height=key_height; - edit_key[count]->Width=key_width; - edit_key[count]->Left =key_left+(key_width*count+2); - edit_key[count]->Top=key_top; - edit_key[count]->Font->Name="Verdana"; - edit_key[count]->Text="255"; - edit_key[count]->MaxLength=3; - edit_key[count]->Name=key_name+IntToStr(count+1); - edit_key[count]->OnKeyPress=on_key_press; - edit_key[count]->OnExit=on_exit; - edit_key[count]->Parent=pnlContainer; - - } - } - void Check_hex(TForm *key_owner,TCheckBox *check_box,AnsiString key_name) - { - switch (check_box->Checked) - { - case true: - for(unsigned char br=0;br<6;br++) - ((TEdit*)(key_owner->FindComponent(key_name+IntToStr(br+1))))->Text= - AnsiString().IntToHex(StrToInt(((TEdit*)(key_owner->FindComponent(key_name+IntToStr(br+1))))->Text),2); - break; - case false: - for(unsigned char br=0;br<6;br++) - ((TEdit*)(key_owner->FindComponent(key_name+IntToStr(br+1))))->Text=IntToStr(StrToInt("0x"+((TEdit*)(key_owner->FindComponent(key_name+IntToStr(br+1))))->Text)); - break; - } - } - void Check_PK_key_press(TObject *Sender,char &Key) - { - try - { - if (Key==VK_BACK) return; - ((TEdit*)(Sender))->MaxLength=3; - if (Key<(0x30) || Key>(0x39)) Key='\0'; - else return; - } - catch (char *message) - { - Application->MessageBoxA(message,"Error!",MB_OK|MB_ICONERROR); - } - } - void Check_On_ExitPK(TObject *Sender,TCheckBox *check_box) - { - TEdit *TB= ((TEdit*)(Sender)); - if (AnsiString(Trim(TB->Text)).IsEmpty()) - { - TB->Undo(); - TB->SetFocus(); - return; - } - if (check_box->Checked) return; - if (((TEdit*)(Sender))->Text.ToInt()>255) - { - Application->MessageBoxA("Wrong entry ! You must enter the numeric value between 0 - 255 !","Error !",MB_OK|MB_ICONERROR); - TB->SetFocus(); - TB->Undo(); - } - } - void Check_On_Exit(TObject *Sender) - { - TEdit *TB= ((TEdit*)(Sender)); - if (AnsiString(Trim(TB->Text)).IsEmpty()) - { - TB->Undo(); - TB->SetFocus(); - return; - } - if (((TEdit*)(Sender))->Text.ToInt()>255) - { - Application->MessageBoxA("Wrong entry ! You must enter the numeric value between 0 - 255 !","Error !",MB_OK|MB_ICONERROR); - TB->SetFocus(); - TB->Undo(); - } - } - void Check_key_press(TObject *Sender,char &Key,TCheckBox *check_box) - { - try - { - if (Key==VK_BACK) return; - if (check_box->Checked) - { - ((TEdit*)(Sender))->MaxLength=2; - switch(Key) - { - case 'a': case '0':case '1': - case 'b': case '2':case '3': - case 'c': case '4':case '5': - case 'd': case '6':case '7': - case 'e': case '8':case '9': - case 'f': - return; - - default: Key='\0'; - } - - } - else - { - ((TEdit*)(Sender))->MaxLength=3; - if (Key<(0x30) || Key>(0x39)) Key='\0'; - else return; - } - } - catch(char *message) - { - Application->MessageBoxA(message,"Error !",MB_OK | MB_ICONERROR); - } - } - void Key_save(TForm *key_owner,TCheckBox *check_box,unsigned char *dim_key,AnsiString key_name) - { - if (check_box->Checked) - { - for(unsigned char br=0;br<6;br++) - dim_key[br]=StrToInt("0x"+((TEdit*)(key_owner->FindComponent(key_name+IntToStr(br+1))))->Text); - } - else - { - for(unsigned char br=0;br<6;br++) - dim_key[br]=StrToInt(((TEdit*)(key_owner->FindComponent(key_name+IntToStr(br+1))))->Text),2; - } - } - -unsigned char __fastcall AuthMode(TRadioButton *rbRadioButton) -{ - return rbRadioButton->Checked ? MIFARE_AUTHENT1A : MIFARE_AUTHENT1B; -} - -inline unsigned char *PKValue(TForm *Forma) -{ - unsigned char aucPKKey[6]; - for(int br=0;br<6;br++) - aucPKKey[br]=StrToInt(((TEdit*)(Forma->FindComponent("txtPKKey"+IntToStr(br+1))))->Text); - return aucPKKey; -} - -unsigned short MaxBlock(unsigned char ucCardType) -{ - USHORT usResult=0; - - switch(ucCardType) - { - case DL_NTAG_203 :usResult = MAX_PAGE_NTAG203; - break; - case DL_MIFARE_ULTRALIGHT :usResult = MAX_PAGE_ULTRALIGHT; - break; - case DL_MIFARE_ULTRALIGHT_C:usResult = MAX_PAGE_ULTRALIGHT_C; - break; - case DL_MIFARE_CLASSIC_1K : - usResult = MAX_SECTORS_1k *4; - break; - case - DL_MIFARE_CLASSIC_4K : - case - DL_MIFARE_PLUS_S_4K : - usResult = ((MAX_SECTORS_1k*2)*4)+((MAX_SECTORS_1k-8)*16); - break; - } - return usResult; -} - -unsigned short MaxBytes(unsigned char ucCardType) -{ - unsigned short usMaxBytes = 0; - switch(ucCardType) - { - case 0x08: - usMaxBytes=752; - break; - case 0x18: - usMaxBytes=3440; - break; - } - return usMaxBytes; -} - - - - -#endif - - - - diff --git a/uFCoderAdvanced/Globals.~h b/uFCoderAdvanced/Globals.~h deleted file mode 100644 index ee207cc..0000000 --- a/uFCoderAdvanced/Globals.~h +++ /dev/null @@ -1,346 +0,0 @@ -#ifndef GlobalH -#define GlobalH -#pragma hrdstop -#include -#include -#include -#include -#include -#include -#include -#include "uFCoder1x.h" - -const unsigned short - MAX_SECTORS_1k = 16, - MAX_SECTORS_4k = 40, - MAX_BYTES_NTAG_203 = 144, - MAX_BYTES_ULTRALIGHT = 48, - MAX_BYTES_ULTRALIGHT_C = 144, - MAX_BYTES_CLASSIC_1K = 752, - MAX_BYTES_CLASSIC_4k = 3440; - -// max page and max block length for NTAG and MIFARE ULTRALIGHT -const unsigned char - MAX_PAGE_NTAG203 = 39, - MAX_PAGE_ULTRALIGHT = 15, - MAX_PAGE_ULTRALIGHT_C = 39, - MAX_BLOCK_NTAG_ULTRAL = 4; //5 - -const unsigned char - MAX_BLOCK = 16, - FORMAT_SIGN = 0xFF; - -typedef unsigned long DL_STATUS; -const unsigned - FRES_OK_LIGHT = 4, - FRES_OK_SOUND = 0, - FERR_LIGHT = 2, - FERR_SOUND = 0, - DL_OK = 0, - MAX_KEY_INDEX = 6, - MAX_USER_DATA = 15, - BLOCK_MAX_INDEX = 15; - - - -const AUTH1A = 0x60, - AUTH1B = 0x61; - -const char* CONVERT_ERROR = "You must enter only whole decimal number !"; -const char* APPROPRIATE_FORMAT = "You must enter the appropriate format !"; -const char* WRONG_ENTRY = "Wrong entry ! You must enter the numeric value between 0 - 255 !"; -AnsiString ERR_CODE[200]; -unsigned char ucCardTypes; - -unsigned char GetCardType(void) -{ - return ucCardTypes; -} -unsigned char SetCardType(unsigned char AValue) -{ - ucCardTypes=AValue; -} - -bool boReaderStart, - boFunctionStart; - -bool GetReaderStart(void) -{ - return boReaderStart; -} -void SetReaderStart(bool AValue) -{ - boReaderStart=AValue; -} - -bool GetFunctionStart(void) -{ - return boFunctionStart; -} -void SetFunctionStart(bool AValue) -{ - boFunctionStart=AValue; -} - - -static String asErrorCode[200]; - -void __fastcall SetStatusBar(TStatusBar *StatusBar,unsigned long Result) -{ - StatusBar->Panels->Items[1]->Text="0x"+AnsiString().IntToHex(Result,2); - StatusBar->Panels->Items[2]->Text=asErrorCode[Result]; -} - -void ErrorCodes(void) -{ - asErrorCode[0x00]="DL_OK "; - asErrorCode[0x01]="COMMUNICATION_ERROR "; - asErrorCode[0x02]="CHKSUM_ERROR "; - asErrorCode[0x03]="READING_ERROR "; - asErrorCode[0x04]="WRITING_ERROR "; - asErrorCode[0x05]="BUFFER_OVERFLOW "; - asErrorCode[0x06]="MAX_ADDRESS_EXCEEDED "; - asErrorCode[0x07]="MAX_KEY_INDEX_EXCEEDED "; - asErrorCode[0x08]="NO_CARD "; - asErrorCode[0x09]="COMMAND_NOT_SUPPORTED "; - asErrorCode[0x0A]="FORBIDEN_DIRECT_WRITE_IN_SECTOR_TRAILER "; - asErrorCode[0x0B]="ADDRESSED_BLOCK_IS_NOT_SECTOR_TRAILER "; - asErrorCode[0x0C]="WRONG_ADDRESS_MODE "; - asErrorCode[0x0D]="WRONG_ACCESS_BITS_VALUES "; - asErrorCode[0x0E]="AUTH_ERROR "; - asErrorCode[0x0F]="PARAMETERS_ERROR "; - asErrorCode[0x10]="MAX_SIZE_EXCEEDED "; - asErrorCode[0x11]="UNSUPPORTED_CARD_TYPE "; - - asErrorCode[0x50]="COMMUNICATION_BREAK "; - asErrorCode[0x51]="NO_MEMORY_ERROR "; - asErrorCode[0x52]="CAN_NOT_OPEN_READER "; - asErrorCode[0x53]="READER_NOT_SUPPORTED "; - asErrorCode[0x54]="READER_OPENING_ERROR "; - asErrorCode[0x55]="READER_PORT_NOT_OPENED "; - asErrorCode[0x56]="CANT_CLOSE_READER_PORT "; - - asErrorCode[0x70]="WRITE_VERIFICATION_ERROR "; - asErrorCode[0x71]="BUFFER_SIZE_EXCEEDED "; - asErrorCode[0x72]="VALUE_BLOCK_INVALID "; - asErrorCode[0x73]="VALUE_BLOCK_ADDR_INVALID "; - asErrorCode[0x74]="VALUE_BLOCK_MANIPULATION_ERROR "; - asErrorCode[0x75]="WRONG_UI_MODE"; - asErrorCode[0x76]="KEYS_LOCKED"; - asErrorCode[0x77]="KEYS_UNLOCKED"; - asErrorCode[0x78]="WRONG_PASSWORD"; - asErrorCode[0x79]="CAN_NOT_LOCK_DEVICE"; - asErrorCode[0x7A]="CAN_NOT_UNLOCK_DEVICE"; - asErrorCode[0x7B]="DEVICE_EEPROM_BUSY"; - asErrorCode[0x7C]="RTC_SET_ERROR"; - - asErrorCode[0xA0]="FT_STATUS_ERROR_1"; - asErrorCode[0xA1]="FT_STATUS_ERROR_2"; - asErrorCode[0xA2]="FT_STATUS_ERROR_3"; - asErrorCode[0xA3]="FT_STATUS_ERROR_4"; - asErrorCode[0xA4]="FT_STATUS_ERROR_5"; - asErrorCode[0xA5]="FT_STATUS_ERROR_6"; - asErrorCode[0xA6]="FT_STATUS_ERROR_7"; - asErrorCode[0xA7]="FT_STATUS_ERROR_8"; - asErrorCode[0xA8]="FT_STATUS_ERROR_9"; -} - void ShowForm(TForm *my_form,TPanel *pnlContainer) - { - my_form->Align=alClient; - my_form->BorderStyle=bsNone; - my_form->Show(); - my_form->Parent=pnlContainer; - } - void CreateKey(TForm *key_owner,int key_height,int key_width,int key_left,int key_top, - AnsiString key_name,TPanel *pnlContainer,TKeyPressEvent on_key_press,TNotifyEvent on_exit) - - { - TEdit *edit_key[10]; - for (char count=0;count<6;count++) - { - edit_key[count]=new TEdit(key_owner); - edit_key[count]->Height=key_height; - edit_key[count]->Width=key_width; - edit_key[count]->Left =key_left+(key_width*count+2); - edit_key[count]->Top=key_top; - edit_key[count]->Font->Name="Verdana"; - edit_key[count]->Text="255"; - edit_key[count]->MaxLength=3; - edit_key[count]->Name=key_name+IntToStr(count+1); - edit_key[count]->OnKeyPress=on_key_press; - edit_key[count]->OnExit=on_exit; - edit_key[count]->Parent=pnlContainer; - - } - } - void Check_hex(TForm *key_owner,TCheckBox *check_box,AnsiString key_name) - { - switch (check_box->Checked) - { - case true: - for(unsigned char br=0;br<6;br++) - ((TEdit*)(key_owner->FindComponent(key_name+IntToStr(br+1))))->Text= - AnsiString().IntToHex(StrToInt(((TEdit*)(key_owner->FindComponent(key_name+IntToStr(br+1))))->Text),2); - break; - case false: - for(unsigned char br=0;br<6;br++) - ((TEdit*)(key_owner->FindComponent(key_name+IntToStr(br+1))))->Text=IntToStr(StrToInt("0x"+((TEdit*)(key_owner->FindComponent(key_name+IntToStr(br+1))))->Text)); - break; - } - } - void Check_PK_key_press(TObject *Sender,char &Key) - { - try - { - if (Key==VK_BACK) return; - ((TEdit*)(Sender))->MaxLength=3; - if (Key<(0x30) || Key>(0x39)) Key='\0'; - else return; - } - catch (char *message) - { - Application->MessageBoxA(message,"Error!",MB_OK|MB_ICONERROR); - } - } - void Check_On_ExitPK(TObject *Sender,TCheckBox *check_box) - { - TEdit *TB= ((TEdit*)(Sender)); - if (AnsiString(Trim(TB->Text)).IsEmpty()) - { - TB->Undo(); - TB->SetFocus(); - return; - } - if (check_box->Checked) return; - if (((TEdit*)(Sender))->Text.ToInt()>255) - { - Application->MessageBoxA("Wrong entry ! You must enter the numeric value between 0 - 255 !","Error !",MB_OK|MB_ICONERROR); - TB->SetFocus(); - TB->Undo(); - } - } - void Check_On_Exit(TObject *Sender) - { - TEdit *TB= ((TEdit*)(Sender)); - if (AnsiString(Trim(TB->Text)).IsEmpty()) - { - TB->Undo(); - TB->SetFocus(); - return; - } - if (((TEdit*)(Sender))->Text.ToInt()>255) - { - Application->MessageBoxA("Wrong entry ! You must enter the numeric value between 0 - 255 !","Error !",MB_OK|MB_ICONERROR); - TB->SetFocus(); - TB->Undo(); - } - } - void Check_key_press(TObject *Sender,char &Key,TCheckBox *check_box) - { - try - { - if (Key==VK_BACK) return; - if (check_box->Checked) - { - ((TEdit*)(Sender))->MaxLength=2; - switch(Key) - { - case 'a': case '0':case '1': - case 'b': case '2':case '3': - case 'c': case '4':case '5': - case 'd': case '6':case '7': - case 'e': case '8':case '9': - case 'f': - return; - - default: Key='\0'; - } - - } - else - { - ((TEdit*)(Sender))->MaxLength=3; - if (Key<(0x30) || Key>(0x39)) Key='\0'; - else return; - } - } - catch(char *message) - { - Application->MessageBoxA(message,"Error !",MB_OK | MB_ICONERROR); - } - } - void Key_save(TForm *key_owner,TCheckBox *check_box,unsigned char *dim_key,AnsiString key_name) - { - if (check_box->Checked) - { - for(unsigned char br=0;br<6;br++) - dim_key[br]=StrToInt("0x"+((TEdit*)(key_owner->FindComponent(key_name+IntToStr(br+1))))->Text); - } - else - { - for(unsigned char br=0;br<6;br++) - dim_key[br]=StrToInt(((TEdit*)(key_owner->FindComponent(key_name+IntToStr(br+1))))->Text),2; - } - } - -unsigned char __fastcall AuthMode(TRadioButton *rbRadioButton) -{ - return rbRadioButton->Checked ? MIFARE_AUTHENT1A : MIFARE_AUTHENT1B; -} - -inline unsigned char *PKValue(TForm *Forma) -{ - unsigned char aucPKKey[6]; - for(int br=0;br<6;br++) - aucPKKey[br]=StrToInt(((TEdit*)(Forma->FindComponent("txtPKKey"+IntToStr(br+1))))->Text); - return aucPKKey; -} - -unsigned short MaxBlock(unsigned char ucCardType) -{ - USHORT usResult=0; - - switch(ucCardType) - { - case DL_NTAG_203 :usResult = MAX_PAGE_NTAG203; - break; - case DL_MIFARE_ULTRALIGHT :usResult = MAX_PAGE_ULTRALIGHT; - break; - case DL_MIFARE_ULTRALIGHT_C:usResult = MAX_PAGE_ULTRALIGHT_C; - break; - case DL_MIFARE_CLASSIC_1K : - usResult = MAX_SECTORS_1k *4; - break; - case - DL_MIFARE_CLASSIC_4K : - case - DL_MIFARE_PLUS_S_4K : - usResult = ((MAX_SECTORS_1k*2)*4)+((MAX_SECTORS_1k-8)*16); - break; - } - return usResult; -} - -unsigned short MaxBytes(unsigned char ucCardType) -{ - unsigned short usMaxBytes = 0; - switch(ucCardType) - { - case 0x08: - usMaxBytes=752; - break; - case 0x18: - usMaxBytes=3440; - break; - } - return usMaxBytes; -} - - - - -#endif - - - - diff --git a/uFCoderAdvanced/LinearFormatCard.cpp b/uFCoderAdvanced/LinearFormatCard.cpp deleted file mode 100644 index 86b6778..0000000 --- a/uFCoderAdvanced/LinearFormatCard.cpp +++ /dev/null @@ -1,256 +0,0 @@ - - -#include -#pragma hdrstop - -#include "LinearFormatCard.h" -#include "Globals.h" -#include "uFCoder1x.h" - -#pragma package(smart_init) -#pragma resource "*.dfm" -TfrmLinearFormatCard *frmLinearFormatCard; - - -__fastcall TfrmLinearFormatCard::TfrmLinearFormatCard(TComponent* Owner) - : TForm(Owner) -{ - -} - -void __fastcall TfrmLinearFormatCard::OnPK_KeyPress(TObject *Sender,char &Key) -{ - Check_PK_key_press(Sender,Key); -} - -void __fastcall TfrmLinearFormatCard:: OnPK_Exit(TObject *Sender) -{ - Check_On_Exit(Sender); -} -void __fastcall TfrmLinearFormatCard::OnKeyA_KeyPress(TObject *Sender,char &Key) -{ - Check_key_press(Sender,Key,chkHexA); -} -void __fastcall TfrmLinearFormatCard::OnKeyB_KeyPress(TObject *Sender,char &Key) -{ - Check_key_press(Sender,Key,chkHexB); -} -void __fastcall TfrmLinearFormatCard:: OnKeyA_Exit(TObject *Sender) -{ - Check_On_ExitPK(Sender,chkHexA); -} -void __fastcall TfrmLinearFormatCard:: OnKeyB_Exit(TObject *Sender) -{ - Check_On_ExitPK(Sender,chkHexB); -} -void __fastcall TfrmLinearFormatCard::FormCreate(TObject *Sender) -{ - CreateKey(this,31,27,320,5,"txtPKKey",pnlAuth,OnPK_KeyPress,OnPK_Exit); - CreateKey(this,31,27,40,25,"txtKeyA",pnlKeyA,OnKeyA_KeyPress,OnKeyA_Exit); - CreateKey(this,31,27,40,25,"txtKeyB",pnlKeyB,OnKeyB_KeyPress,OnKeyB_Exit); -} - -void __fastcall TfrmLinearFormatCard::chkHexAClick(TObject *Sender) -{ - Check_hex(this,chkHexA,"txtKeyA"); -} - -void __fastcall TfrmLinearFormatCard::chkHexBClick(TObject *Sender) -{ - Check_hex(this,chkHexB,"txtKeyB"); -} - -void __fastcall TfrmLinearFormatCard::btnLinearFormatCardClick(TObject *Sender) -{ - if (GetFunctionStart() || GetReaderStart()) return; - unsigned char ucKeyIndex = cboKeyIndex->Text.ToInt(), - ucAuthMode = AuthMode(rbAUTH1A), - ucBlockAccessBits = 0, - ucSectorTrailerAccessBits = 0, - ucSectorTrailerByte9 = 0, - ucSectorFormatted = 0, - KeyA[6], - KeyB[6]; - DL_STATUS ulFResult =0; - try - { - SetFunctionStart(true); - if (AnsiString(Trim(txtSectorTrailerByte9->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the SECTOR TRAILER BYTE 9!","Warning !",MB_OK | MB_ICONWARNING); - txtSectorTrailerByte9->SetFocus(); - return; - } - txtSectorFormatted->Clear(); - ucBlockAccessBits = cboBlockAccessBits->Text.ToInt(); - ucSectorTrailerAccessBits = cboSectorTrailerAccessBits->Text.ToInt(); - ucSectorTrailerByte9 = txtSectorTrailerByte9->Text.ToInt(); - Key_save(this,chkHexA,KeyA,"txtKeyA"); - Key_save(this,chkHexB,KeyB,"txtKeyB"); - ulFResult = LinearFormatCard(KeyA,ucBlockAccessBits,ucSectorTrailerAccessBits,ucSectorTrailerByte9,KeyB,&ucSectorFormatted, - ucAuthMode,ucKeyIndex); - if (ulFResult==DL_OK) - { - txtSectorFormatted->Text=IntToStr(ucSectorFormatted); - ReaderUISignal(FRES_OK_LIGHT,FRES_OK_SOUND); - SetStatusBar(stbFunction,ulFResult); - } - else - { - txtSectorFormatted->Text=IntToStr(ucSectorFormatted); - ReaderUISignal(FERR_LIGHT,FERR_SOUND); - - } - } - __finally - { - SetFunctionStart(false); - } -} - - -void __fastcall TfrmLinearFormatCard::btnLinearFormatCardAKM1Click(TObject *Sender) -{ - if (GetFunctionStart() || GetReaderStart()) return; - unsigned char - ucAuthMode = AuthMode(rbAUTH1A), - ucBlockAccessBits = 0, - ucSectorTrailerAccessBits = 0, - ucSectorTrailerByte9 = 0, - ucSectorFormatted = 0, - KeyA[6], - KeyB[6]; - DL_STATUS ulFResult = 0; - try - { - SetFunctionStart(true); - if (AnsiString(Trim(txtSectorTrailerByte9AKM1->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the SECTOR TRAILER BYTE 9!","Warning !",MB_OK | MB_ICONWARNING); - txtSectorTrailerByte9AKM1->SetFocus(); - return; - } - txtSectorFormattedAKM1->Clear(); - ucBlockAccessBits = cboBlockAccessBitsAKM1->Text.ToInt(); - ucSectorTrailerAccessBits = cboSectorTrailerAccessBitsAKM1->Text.ToInt(); - ucSectorTrailerByte9 = txtSectorTrailerByte9AKM1->Text.ToInt(); - Key_save(this,chkHexA,KeyA,"txtKeyA"); - Key_save(this,chkHexB,KeyB,"txtKeyB"); - ulFResult = LinearFormatCard_AKM1(KeyA,ucBlockAccessBits,ucSectorTrailerAccessBits,ucSectorTrailerByte9,KeyB, - &ucSectorFormatted,ucAuthMode); - if (ulFResult==DL_OK) - { - txtSectorFormattedAKM1->Text=IntToStr(ucSectorFormatted); - ReaderUISignal(FRES_OK_LIGHT,FRES_OK_SOUND); - SetStatusBar(stbFunction,ulFResult); - } - else - { - txtSectorFormattedAKM1->Text=IntToStr(ucSectorFormatted); - ReaderUISignal(FERR_LIGHT,FERR_SOUND); - } - } - __finally - { - SetFunctionStart(false); - } -} - - -void __fastcall TfrmLinearFormatCard::btnLinearFormatCardAKM2Click(TObject *Sender) -{ - if (GetFunctionStart() || GetReaderStart()) return; - unsigned char - ucAuthMode = AuthMode(rbAUTH1A), - ucBlockAccessBits = 0, - ucSectorTrailerAccessBits = 0, - ucSectorTrailerByte9 = 0, - ucSectorFormatted = 0, - KeyA[6], - KeyB[6]; - DL_STATUS ulFResult = 0; - try - { - SetFunctionStart(true); - if (AnsiString(Trim(txtSectorTrailerByte9AKM2->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the SECTOR TRAILER BYTE 9!","Warning !",MB_OK | MB_ICONWARNING); - txtSectorTrailerByte9AKM2->SetFocus(); - return; - } - txtSectorFormattedAKM2->Clear(); - ucBlockAccessBits = cboBlockAccessBitsAKM2->Text.ToInt(); - ucSectorTrailerAccessBits = cboSectorTrailerAccessBitsAKM2->Text.ToInt(); - ucSectorTrailerByte9 = txtSectorTrailerByte9AKM2->Text.ToInt(); - Key_save(this,chkHexA,KeyA,"txtKeyA"); - Key_save(this,chkHexB,KeyB,"txtKeyB"); - ulFResult = LinearFormatCard_AKM2(KeyA,ucBlockAccessBits,ucSectorTrailerAccessBits,ucSectorTrailerByte9,KeyB, - &ucSectorFormatted,ucAuthMode); - if (ulFResult==DL_OK) - { - txtSectorFormattedAKM2->Text=IntToStr(ucSectorFormatted); - ReaderUISignal(FRES_OK_LIGHT,FRES_OK_SOUND); - SetStatusBar(stbFunction,ulFResult); - } - else - { - txtSectorFormattedAKM2->Text=IntToStr(ucSectorFormatted); - ReaderUISignal(FERR_LIGHT,FERR_SOUND); - } - } - __finally - { - SetFunctionStart(false); - } -} - - -void __fastcall TfrmLinearFormatCard::btnLinearFormatCardPKClick(TObject *Sender) -{ - if (GetFunctionStart() || GetReaderStart()) return; - unsigned char - ucAuthMode = AuthMode(rbAUTH1A), - ucBlockAccessBits = 0, - ucSectorTrailerAccessBits = 0, - ucSectorTrailerByte9 = 0, - ucSectorFormatted = 0, - KeyA[6], - KeyB[6]; - DL_STATUS ulFResult = 0; - try - { - SetFunctionStart(true); - if (AnsiString(Trim(txtSectorTrailerByte9PK->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the SECTOR TRAILER BYTE 9!","Warning !",MB_OK | MB_ICONWARNING); - txtSectorTrailerByte9PK->SetFocus(); - return; - } - txtSectorFormattedPK->Clear(); - ucBlockAccessBits = cboBlockAccessBitsPK->Text.ToInt(); - ucSectorTrailerAccessBits = cboSectorTrailerAccessBitsPK->Text.ToInt(); - ucSectorTrailerByte9 = txtSectorTrailerByte9PK->Text.ToInt(); - Key_save(this,chkHexA,KeyA,"txtKeyA"); - Key_save(this,chkHexB,KeyB,"txtKeyB"); - ulFResult = LinearFormatCard_PK(KeyA,ucBlockAccessBits,ucSectorTrailerAccessBits,ucSectorTrailerByte9,KeyB, - &ucSectorFormatted,ucAuthMode,PKValue(this)); - if (ulFResult==DL_OK) - { - txtSectorFormattedPK->Text=IntToStr(ucSectorFormatted); - ReaderUISignal(FRES_OK_LIGHT,FRES_OK_SOUND); - SetStatusBar(stbFunction,ulFResult); - } - else - { - txtSectorFormattedPK->Text=IntToStr(ucSectorFormatted); - ReaderUISignal(FERR_LIGHT,FERR_SOUND); - - } - } - __finally - { - SetFunctionStart(false); - } -} - - diff --git a/uFCoderAdvanced/LinearFormatCard.ddp b/uFCoderAdvanced/LinearFormatCard.ddp deleted file mode 100644 index cdc0ee8c2b54a98895d906932c4351134611c8d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxFz;K0Pl$;KI)SCUzhlbT}4#=r!G E07AM8lK=n! diff --git a/uFCoderAdvanced/LinearFormatCard.dfm b/uFCoderAdvanced/LinearFormatCard.dfm deleted file mode 100644 index 289f456..0000000 --- a/uFCoderAdvanced/LinearFormatCard.dfm +++ /dev/null @@ -1,785 +0,0 @@ -object frmLinearFormatCard: TfrmLinearFormatCard - Left = 373 - Top = 213 - Width = 527 - Height = 401 - Caption = 'LinearFormat Card' - Color = clBtnFace - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [] - OldCreateOrder = False - OnCreate = FormCreate - PixelsPerInch = 96 - TextHeight = 13 - object pnlKeys: TPanel - Left = 0 - Top = 56 - Width = 511 - Height = 73 - Align = alTop - TabOrder = 0 - object pnlKeyA: TPanel - Left = 1 - Top = 1 - Width = 255 - Height = 71 - Align = alLeft - Caption = ' ' - TabOrder = 0 - object lblKeyA: TStaticText - Left = 1 - Top = 1 - Width = 253 - Height = 18 - Align = alTop - Alignment = taCenter - AutoSize = False - BorderStyle = sbsSingle - Caption = 'KEY A' - Color = clWhite - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentColor = False - ParentFont = False - TabOrder = 0 - end - object chkHexA: TCheckBox - Left = 42 - Top = 48 - Width = 57 - Height = 17 - Cursor = crHandPoint - Caption = 'Hex' - TabOrder = 1 - OnClick = chkHexAClick - end - end - object pnlKeyB: TPanel - Left = 256 - Top = 1 - Width = 254 - Height = 71 - Align = alClient - Caption = ' ' - TabOrder = 1 - object lblKeyB: TStaticText - Left = 1 - Top = 1 - Width = 252 - Height = 18 - Align = alTop - Alignment = taCenter - AutoSize = False - BorderStyle = sbsSingle - Caption = 'KEY B' - Color = clWhite - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentColor = False - ParentFont = False - TabOrder = 0 - end - object chkHexB: TCheckBox - Left = 42 - Top = 48 - Width = 57 - Height = 17 - Cursor = crHandPoint - Caption = 'Hex' - TabOrder = 1 - OnClick = chkHexBClick - end - end - end - object pnlAuth: TPanel - Left = 0 - Top = 25 - Width = 511 - Height = 31 - Align = alTop - Caption = ' ' - Ctl3D = True - ParentCtl3D = False - TabOrder = 1 - object lblKeyIndex: TLabel - Left = 179 - Top = 8 - Width = 59 - Height = 13 - Caption = 'Key Index' - end - object lblPK: TLabel - Left = 297 - Top = 8 - Width = 15 - Height = 13 - Caption = 'PK' - end - object rbAUTH1A: TRadioButton - Left = 8 - Top = 7 - Width = 73 - Height = 17 - Cursor = crHandPoint - Caption = 'AUTH 1A' - Checked = True - TabOrder = 0 - TabStop = True - end - object rbAUTH1B: TRadioButton - Left = 87 - Top = 7 - Width = 73 - Height = 17 - Cursor = crHandPoint - Caption = 'AUTH 1B' - TabOrder = 1 - end - object cboKeyIndex: TComboBox - Left = 245 - Top = 5 - Width = 40 - Height = 21 - Cursor = crHandPoint - Ctl3D = True - DropDownCount = 10 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 13 - ItemIndex = 0 - ParentCtl3D = False - ParentFont = False - TabOrder = 2 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7' - '8' - '9' - '10' - '11' - '12' - '13' - '14' - '15' - '16' - '17' - '18' - '19' - '20' - '21' - '22' - '23' - '24' - '25' - '26' - '27' - '28' - '29' - '30' - '31') - end - end - object pnlHeader: TStaticText - Left = 0 - Top = 0 - Width = 511 - Height = 25 - Align = alTop - Alignment = taCenter - AutoSize = False - BorderStyle = sbsSingle - Caption = 'LinearFormat Card(AKM1,AKM2,PK)' - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -17 - Font.Name = 'Verdana' - Font.Style = [] - ParentColor = False - ParentFont = False - TabOrder = 2 - end - object stbFunction: TStatusBar - Left = 0 - Top = 338 - Width = 511 - Height = 25 - Font.Charset = ANSI_CHARSET - Font.Color = clBtnText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [] - Panels = < - item - Alignment = taCenter - Text = 'Function Error:' - Width = 119 - end - item - Alignment = taCenter - Width = 50 - end - item - Alignment = taCenter - Width = 50 - end> - SimplePanel = False - UseSystemFont = False - end - object pgLinearFormatCard: TPageControl - Left = 0 - Top = 129 - Width = 511 - Height = 209 - ActivePage = tabLinearFormatCard - Align = alClient - TabIndex = 0 - TabOrder = 4 - object tabLinearFormatCard: TTabSheet - Caption = 'LinearFormat Card' - object lblBlockAccessBits: TLabel - Left = 49 - Top = 51 - Width = 99 - Height = 13 - Caption = 'Block Access Bits' - end - object lblSectorTrailerAccessBits: TLabel - Left = 49 - Top = 78 - Width = 146 - Height = 13 - Caption = 'Sector Trailer Access Bits' - end - object lblSectorTrailerByte9: TLabel - Left = 49 - Top = 103 - Width = 119 - Height = 13 - Caption = 'Sector Trailer Byte 9' - end - object lblSectorFormatted: TLabel - Left = 273 - Top = 113 - Width = 99 - Height = 13 - Caption = 'Sector Formatted' - end - object cboBlockAccessBits: TComboBox - Left = 207 - Top = 48 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 0 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object cboSectorTrailerAccessBits: TComboBox - Left = 207 - Top = 75 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 1 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object txtSectorTrailerByte9: TEdit - Left = 207 - Top = 101 - Width = 41 - Height = 24 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 3 - ParentFont = False - TabOrder = 2 - Text = ' ' - end - object btnLinearFormatCard: TButton - Left = 271 - Top = 48 - Width = 185 - Height = 50 - Cursor = crHandPoint - Caption = 'FORMAT' - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 3 - OnClick = btnLinearFormatCardClick - end - object txtSectorFormatted: TEdit - Left = 415 - Top = 109 - Width = 41 - Height = 22 - Color = clSilver - Ctl3D = False - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 3 - ParentCtl3D = False - ParentFont = False - ReadOnly = True - TabOrder = 4 - Text = ' ' - end - end - object tabLinearFormatCardAKM1: TTabSheet - Caption = 'LinearFormat_AKM1' - ImageIndex = 1 - object lblBlockAccessBitsAKM1: TLabel - Left = 49 - Top = 51 - Width = 99 - Height = 13 - Caption = 'Block Access Bits' - end - object lblSectorTrailerAccessBitsAKM1: TLabel - Left = 49 - Top = 78 - Width = 146 - Height = 13 - Caption = 'Sector Trailer Access Bits' - end - object lblSectorTrailerByte9AKM1: TLabel - Left = 49 - Top = 103 - Width = 119 - Height = 13 - Caption = 'Sector Trailer Byte 9' - end - object lblSectorFormattedAKM1: TLabel - Left = 273 - Top = 113 - Width = 99 - Height = 13 - Caption = 'Sector Formatted' - end - object cboBlockAccessBitsAKM1: TComboBox - Left = 207 - Top = 48 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 0 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object cboSectorTrailerAccessBitsAKM1: TComboBox - Left = 207 - Top = 75 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 1 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object txtSectorTrailerByte9AKM1: TEdit - Left = 207 - Top = 101 - Width = 41 - Height = 24 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 3 - ParentFont = False - TabOrder = 2 - Text = ' ' - end - object btnLinearFormatCardAKM1: TButton - Left = 271 - Top = 48 - Width = 185 - Height = 50 - Cursor = crHandPoint - Caption = 'FORMAT' - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 3 - OnClick = btnLinearFormatCardAKM1Click - end - object txtSectorFormattedAKM1: TEdit - Left = 415 - Top = 109 - Width = 41 - Height = 19 - Color = clSilver - Ctl3D = False - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 3 - ParentCtl3D = False - ParentFont = False - ReadOnly = True - TabOrder = 4 - Text = ' ' - end - end - object tabLinearFormatCardAKM2: TTabSheet - Caption = 'LinearFormat_AKM2' - ImageIndex = 2 - object lblBlockAccessBitsAKM2: TLabel - Left = 49 - Top = 51 - Width = 99 - Height = 13 - Caption = 'Block Access Bits' - end - object lblSectorTrailerAccessBitsAKM2: TLabel - Left = 49 - Top = 78 - Width = 146 - Height = 13 - Caption = 'Sector Trailer Access Bits' - end - object lblSectorTrailerByte9AKM2: TLabel - Left = 49 - Top = 103 - Width = 119 - Height = 13 - Caption = 'Sector Trailer Byte 9' - end - object lblSectorFormattedAKM2: TLabel - Left = 273 - Top = 113 - Width = 99 - Height = 13 - Caption = 'Sector Formatted' - end - object cboBlockAccessBitsAKM2: TComboBox - Left = 207 - Top = 48 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 0 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object cboSectorTrailerAccessBitsAKM2: TComboBox - Left = 207 - Top = 75 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 1 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object txtSectorTrailerByte9AKM2: TEdit - Left = 207 - Top = 101 - Width = 41 - Height = 24 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 3 - ParentFont = False - TabOrder = 2 - Text = ' ' - end - object btnLinearFormatCardAKM2: TButton - Left = 271 - Top = 48 - Width = 185 - Height = 50 - Cursor = crHandPoint - Caption = 'FORMAT' - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 3 - OnClick = btnLinearFormatCardAKM2Click - end - object txtSectorFormattedAKM2: TEdit - Left = 415 - Top = 109 - Width = 41 - Height = 19 - Color = clSilver - Ctl3D = False - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 3 - ParentCtl3D = False - ParentFont = False - ReadOnly = True - TabOrder = 4 - Text = ' ' - end - end - object tabLinearFormatCardPK: TTabSheet - Caption = 'LinearFormat_PK' - ImageIndex = 3 - object lblBlockAccessBitsPK: TLabel - Left = 49 - Top = 51 - Width = 99 - Height = 13 - Caption = 'Block Access Bits' - end - object lblSectorTrailerAccessBitsPK: TLabel - Left = 49 - Top = 78 - Width = 146 - Height = 13 - Caption = 'Sector Trailer Access Bits' - end - object lblSectorTrailerByte9PK: TLabel - Left = 49 - Top = 103 - Width = 119 - Height = 13 - Caption = 'Sector Trailer Byte 9' - end - object lblSectorFormattedPK: TLabel - Left = 273 - Top = 113 - Width = 99 - Height = 13 - Caption = 'Sector Formatted' - end - object cboBlockAccessBitsPK: TComboBox - Left = 207 - Top = 48 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 0 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object cboSectorTrailerAccessBitsPK: TComboBox - Left = 207 - Top = 75 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 1 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object txtSectorTrailerByte9PK: TEdit - Left = 207 - Top = 101 - Width = 41 - Height = 24 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 3 - ParentFont = False - TabOrder = 2 - Text = ' ' - end - object btnLinearFormatCardPK: TButton - Left = 271 - Top = 48 - Width = 185 - Height = 50 - Cursor = crHandPoint - Caption = 'FORMAT' - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 3 - OnClick = btnLinearFormatCardPKClick - end - object txtSectorFormattedPK: TEdit - Left = 415 - Top = 109 - Width = 41 - Height = 19 - Color = clSilver - Ctl3D = False - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 3 - ParentCtl3D = False - ParentFont = False - ReadOnly = True - TabOrder = 4 - Text = ' ' - end - end - end -end diff --git a/uFCoderAdvanced/LinearFormatCard.h b/uFCoderAdvanced/LinearFormatCard.h deleted file mode 100644 index eeb1279..0000000 --- a/uFCoderAdvanced/LinearFormatCard.h +++ /dev/null @@ -1,93 +0,0 @@ -//--------------------------------------------------------------------------- - -#ifndef LinearFormatCardH -#define LinearFormatCardH -//--------------------------------------------------------------------------- -#include -#include -#include -#include -#include -#include -//--------------------------------------------------------------------------- -class TfrmLinearFormatCard : public TForm -{ -__published: // IDE-managed Components - TPanel *pnlKeys; - TPanel *pnlKeyA; - TStaticText *lblKeyA; - TCheckBox *chkHexA; - TPanel *pnlKeyB; - TStaticText *lblKeyB; - TCheckBox *chkHexB; - TPanel *pnlAuth; - TLabel *lblKeyIndex; - TLabel *lblPK; - TRadioButton *rbAUTH1A; - TRadioButton *rbAUTH1B; - TComboBox *cboKeyIndex; - TStaticText *pnlHeader; - TStatusBar *stbFunction; - TPageControl *pgLinearFormatCard; - TTabSheet *tabLinearFormatCard; - TTabSheet *tabLinearFormatCardAKM1; - TTabSheet *tabLinearFormatCardAKM2; - TTabSheet *tabLinearFormatCardPK; - TLabel *lblBlockAccessBits; - TComboBox *cboBlockAccessBits; - TLabel *lblSectorTrailerAccessBits; - TComboBox *cboSectorTrailerAccessBits; - TLabel *lblSectorTrailerByte9; - TEdit *txtSectorTrailerByte9; - TButton *btnLinearFormatCard; - TLabel *lblSectorFormatted; - TEdit *txtSectorFormatted; - TLabel *lblBlockAccessBitsAKM1; - TComboBox *cboBlockAccessBitsAKM1; - TLabel *lblSectorTrailerAccessBitsAKM1; - TComboBox *cboSectorTrailerAccessBitsAKM1; - TLabel *lblSectorTrailerByte9AKM1; - TEdit *txtSectorTrailerByte9AKM1; - TButton *btnLinearFormatCardAKM1; - TLabel *lblSectorFormattedAKM1; - TEdit *txtSectorFormattedAKM1; - TLabel *lblBlockAccessBitsAKM2; - TComboBox *cboBlockAccessBitsAKM2; - TLabel *lblSectorTrailerAccessBitsAKM2; - TComboBox *cboSectorTrailerAccessBitsAKM2; - TLabel *lblSectorTrailerByte9AKM2; - TEdit *txtSectorTrailerByte9AKM2; - TButton *btnLinearFormatCardAKM2; - TLabel *lblSectorFormattedAKM2; - TEdit *txtSectorFormattedAKM2; - TLabel *lblBlockAccessBitsPK; - TComboBox *cboBlockAccessBitsPK; - TLabel *lblSectorTrailerAccessBitsPK; - TComboBox *cboSectorTrailerAccessBitsPK; - TLabel *lblSectorTrailerByte9PK; - TEdit *txtSectorTrailerByte9PK; - TButton *btnLinearFormatCardPK; - TLabel *lblSectorFormattedPK; - TEdit *txtSectorFormattedPK; - void __fastcall OnPK_KeyPress(TObject *Sender,char &Key); - void __fastcall OnPK_Exit(TObject *Sender); - void __fastcall OnKeyA_KeyPress(TObject *Sender,char &Key); - void __fastcall OnKeyA_Exit(TObject *Sender); - void __fastcall OnKeyB_KeyPress(TObject *Sender,char &Key); - void __fastcall OnKeyB_Exit(TObject *Sender); - void __fastcall FormCreate(TObject *Sender); - void __fastcall chkHexAClick(TObject *Sender); - void __fastcall chkHexBClick(TObject *Sender); - void __fastcall btnLinearFormatCardClick(TObject *Sender); - void __fastcall btnLinearFormatCardAKM1Click(TObject *Sender); - void __fastcall btnLinearFormatCardAKM2Click(TObject *Sender); - void __fastcall btnLinearFormatCardPKClick(TObject *Sender); -private: - unsigned long result; -public: - __fastcall TfrmLinearFormatCard(TComponent* Owner); -}; -//--------------------------------------------------------------------------- -extern PACKAGE TfrmLinearFormatCard *frmLinearFormatCard; -//--------------------------------------------------------------------------- -#endif diff --git a/uFCoderAdvanced/LinearFormatCard.obj b/uFCoderAdvanced/LinearFormatCard.obj deleted file mode 100644 index 30422f580dfba9b2b53d8d5af3a1a30933ac94aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133928 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 diff --git a/uFCoderAdvanced/LinearFormatCard.~cpp b/uFCoderAdvanced/LinearFormatCard.~cpp deleted file mode 100644 index 21d5482..0000000 --- a/uFCoderAdvanced/LinearFormatCard.~cpp +++ /dev/null @@ -1,256 +0,0 @@ - - -#include -#pragma hdrstop - -#include "LinearFormatCard.h" -#include "Globals.h" -#include "uFCoder1x.h" - -#pragma package(smart_init) -#pragma resource "*.dfm" -TfrmLinearFormatCard *frmLinearFormatCard; - - -__fastcall TfrmLinearFormatCard::TfrmLinearFormatCard(TComponent* Owner) - : TForm(Owner) -{ - -} - -void __fastcall TfrmLinearFormatCard::OnPK_KeyPress(TObject *Sender,char &Key) -{ - Check_PK_key_press(Sender,Key); -} - -void __fastcall TfrmLinearFormatCard:: OnPK_Exit(TObject *Sender) -{ - Check_On_Exit(Sender); -} -void __fastcall TfrmLinearFormatCard::OnKeyA_KeyPress(TObject *Sender,char &Key) -{ - Check_key_press(Sender,Key,chkHexA); -} -void __fastcall TfrmLinearFormatCard::OnKeyB_KeyPress(TObject *Sender,char &Key) -{ - Check_key_press(Sender,Key,chkHexB); -} -void __fastcall TfrmLinearFormatCard:: OnKeyA_Exit(TObject *Sender) -{ - Check_On_ExitPK(Sender,chkHexA); -} -void __fastcall TfrmLinearFormatCard:: OnKeyB_Exit(TObject *Sender) -{ - Check_On_ExitPK(Sender,chkHexB); -} -void __fastcall TfrmLinearFormatCard::FormCreate(TObject *Sender) -{ - CreateKey(this,31,27,320,5,"txtPKKey",pnlAuth,OnPK_KeyPress,OnPK_Exit); - CreateKey(this,31,27,40,25,"txtKeyA",pnlKeyA,OnKeyA_KeyPress,OnKeyA_Exit); - CreateKey(this,31,27,40,25,"txtKeyB",pnlKeyB,OnKeyB_KeyPress,OnKeyB_Exit); -} - -void __fastcall TfrmLinearFormatCard::chkHexAClick(TObject *Sender) -{ - Check_hex(this,chkHexA,"txtKeyA"); -} - -void __fastcall TfrmLinearFormatCard::chkHexBClick(TObject *Sender) -{ - Check_hex(this,chkHexB,"txtKeyB"); -} - -void __fastcall TfrmLinearFormatCard::btnLinearFormatCardClick(TObject *Sender) -{ - if (GetFunctionStart() || GetReaderStart()) return; - unsigned char ucKeyIndex = cboKeyIndex->Text.ToInt(), - ucAuthMode = AuthMode(rbAUTH1A), - ucBlockAccessBits = 0, - ucSectorTrailerAccessBits = 0, - ucSectorTrailerByte9 = 0, - ucSectorFormatted = 0, - KeyA[6], - KeyB[6]; - DL_STATUS ulFResult =0; - try - { - SetFunctionStart(true); - if (AnsiString(Trim(txtSectorTrailerByte9->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the SECTOR TRAILER BYTE 9!","Warning !",MB_OK | MB_ICONWARNING); - txtSectorTrailerByte9->SetFocus(); - return; - } - txtSectorFormatted->Clear(); - ucBlockAccessBits = cboBlockAccessBits->Text.ToInt(); - ucSectorTrailerAccessBits = cboSectorTrailerAccessBits->Text.ToInt(); - ucSectorTrailerByte9 = txtSectorTrailerByte9->Text.ToInt(); - Key_save(this,chkHexA,KeyA,"txtKeyA"); - Key_save(this,chkHexB,KeyB,"txtKeyB"); - ulFResult = LinearFormatCard(KeyA,ucBlockAccessBits,ucSectorTrailerAccessBits,ucSectorTrailerByte9,KeyB,&ucSectorFormatted, - ucAuthMode,ucKeyIndex); - if (ulFResult==DL_OK) - { - txtSectorFormatted->Text=IntToStr(ucSectorFormatted); - ReaderUISignal(FRES_OK_LIGHT,FRES_OK_SOUND); - SetStatusBar(stbFunction,ulFResult); - } - else - { - txtSectorFormatted->Text=IntToStr(ucSectorFormatted); - ReaderUISignal(ERROR_LIGHT,ERROR_SOUND); - - } - } - __finally - { - SetFunctionStart(false); - } -} - - -void __fastcall TfrmLinearFormatCard::btnLinearFormatCardAKM1Click(TObject *Sender) -{ - if (GetFunctionStart() || GetReaderStart()) return; - unsigned char - ucAuthMode = AuthMode(rbAUTH1A), - ucBlockAccessBits = 0, - ucSectorTrailerAccessBits = 0, - ucSectorTrailerByte9 = 0, - ucSectorFormatted = 0, - KeyA[6], - KeyB[6]; - DL_STATUS ulFResult = 0; - try - { - SetFunctionStart(true); - if (AnsiString(Trim(txtSectorTrailerByte9AKM1->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the SECTOR TRAILER BYTE 9!","Warning !",MB_OK | MB_ICONWARNING); - txtSectorTrailerByte9AKM1->SetFocus(); - return; - } - txtSectorFormattedAKM1->Clear(); - ucBlockAccessBits = cboBlockAccessBitsAKM1->Text.ToInt(); - ucSectorTrailerAccessBits = cboSectorTrailerAccessBitsAKM1->Text.ToInt(); - ucSectorTrailerByte9 = txtSectorTrailerByte9AKM1->Text.ToInt(); - Key_save(this,chkHexA,KeyA,"txtKeyA"); - Key_save(this,chkHexB,KeyB,"txtKeyB"); - ulFResult = LinearFormatCard_AKM1(KeyA,ucBlockAccessBits,ucSectorTrailerAccessBits,ucSectorTrailerByte9,KeyB, - &ucSectorFormatted,ucAuthMode); - if (ulFResult==DL_OK) - { - txtSectorFormattedAKM1->Text=IntToStr(ucSectorFormatted); - ReaderUISignal(FRES_OK_LIGHT,FRES_OK_SOUND); - SetStatusBar(stbFunction,ulFResult); - } - else - { - txtSectorFormattedAKM1->Text=IntToStr(ucSectorFormatted); - ReaderUISignal(ERROR_LIGHT,ERROR_SOUND); - } - } - __finally - { - SetFunctionStart(false); - } -} - - -void __fastcall TfrmLinearFormatCard::btnLinearFormatCardAKM2Click(TObject *Sender) -{ - if (GetFunctionStart() || GetReaderStart()) return; - unsigned char - ucAuthMode = AuthMode(rbAUTH1A), - ucBlockAccessBits = 0, - ucSectorTrailerAccessBits = 0, - ucSectorTrailerByte9 = 0, - ucSectorFormatted = 0, - KeyA[6], - KeyB[6]; - DL_STATUS ulFResult = 0; - try - { - SetFunctionStart(true); - if (AnsiString(Trim(txtSectorTrailerByte9AKM2->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the SECTOR TRAILER BYTE 9!","Warning !",MB_OK | MB_ICONWARNING); - txtSectorTrailerByte9AKM2->SetFocus(); - return; - } - txtSectorFormattedAKM2->Clear(); - ucBlockAccessBits = cboBlockAccessBitsAKM2->Text.ToInt(); - ucSectorTrailerAccessBits = cboSectorTrailerAccessBitsAKM2->Text.ToInt(); - ucSectorTrailerByte9 = txtSectorTrailerByte9AKM2->Text.ToInt(); - Key_save(this,chkHexA,KeyA,"txtKeyA"); - Key_save(this,chkHexB,KeyB,"txtKeyB"); - ulFResult = LinearFormatCard_AKM2(KeyA,ucBlockAccessBits,ucSectorTrailerAccessBits,ucSectorTrailerByte9,KeyB, - &ucSectorFormatted,ucAuthMode); - if (ulFResult==DL_OK) - { - txtSectorFormattedAKM2->Text=IntToStr(ucSectorFormatted); - ReaderUISignal(FRES_OK_LIGHT,FRES_OK_SOUND); - SetStatusBar(stbFunction,ulFResult); - } - else - { - txtSectorFormattedAKM2->Text=IntToStr(ucSectorFormatted); - ReaderUISignal(ERROR_LIGHT,ERROR_SOUND); - } - } - __finally - { - SetFunctionStart(false); - } -} - - -void __fastcall TfrmLinearFormatCard::btnLinearFormatCardPKClick(TObject *Sender) -{ - if (GetFunctionStart() || GetReaderStart()) return; - unsigned char - ucAuthMode = AuthMode(rbAUTH1A), - ucBlockAccessBits = 0, - ucSectorTrailerAccessBits = 0, - ucSectorTrailerByte9 = 0, - ucSectorFormatted = 0, - KeyA[6], - KeyB[6]; - DL_STATUS ulFResult = 0; - try - { - SetFunctionStart(true); - if (AnsiString(Trim(txtSectorTrailerByte9PK->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the SECTOR TRAILER BYTE 9!","Warning !",MB_OK | MB_ICONWARNING); - txtSectorTrailerByte9PK->SetFocus(); - return; - } - txtSectorFormattedPK->Clear(); - ucBlockAccessBits = cboBlockAccessBitsPK->Text.ToInt(); - ucSectorTrailerAccessBits = cboSectorTrailerAccessBitsPK->Text.ToInt(); - ucSectorTrailerByte9 = txtSectorTrailerByte9PK->Text.ToInt(); - Key_save(this,chkHexA,KeyA,"txtKeyA"); - Key_save(this,chkHexB,KeyB,"txtKeyB"); - ulFResult = LinearFormatCard_PK(KeyA,ucBlockAccessBits,ucSectorTrailerAccessBits,ucSectorTrailerByte9,KeyB, - &ucSectorFormatted,ucAuthMode,PKValue(this)); - if (ulFResult==DL_OK) - { - txtSectorFormattedPK->Text=IntToStr(ucSectorFormatted); - ReaderUISignal(FRES_OK_LIGHT,FRES_OK_SOUND); - SetStatusBar(stbFunction,ulFResult); - } - else - { - txtSectorFormattedPK->Text=IntToStr(ucSectorFormatted); - ReaderUISignal(ERROR_LIGHT,ERROR_SOUND); - - } - } - __finally - { - SetFunctionStart(false); - } -} - - diff --git a/uFCoderAdvanced/LinearFormatCard.~ddp b/uFCoderAdvanced/LinearFormatCard.~ddp deleted file mode 100644 index cdc0ee8c2b54a98895d906932c4351134611c8d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxFz;K0Pl$;KI)SCUzhlbT}4#=r!G E07AM8lK=n! diff --git a/uFCoderAdvanced/LinearFormatCard.~dfm b/uFCoderAdvanced/LinearFormatCard.~dfm deleted file mode 100644 index 289f456..0000000 --- a/uFCoderAdvanced/LinearFormatCard.~dfm +++ /dev/null @@ -1,785 +0,0 @@ -object frmLinearFormatCard: TfrmLinearFormatCard - Left = 373 - Top = 213 - Width = 527 - Height = 401 - Caption = 'LinearFormat Card' - Color = clBtnFace - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [] - OldCreateOrder = False - OnCreate = FormCreate - PixelsPerInch = 96 - TextHeight = 13 - object pnlKeys: TPanel - Left = 0 - Top = 56 - Width = 511 - Height = 73 - Align = alTop - TabOrder = 0 - object pnlKeyA: TPanel - Left = 1 - Top = 1 - Width = 255 - Height = 71 - Align = alLeft - Caption = ' ' - TabOrder = 0 - object lblKeyA: TStaticText - Left = 1 - Top = 1 - Width = 253 - Height = 18 - Align = alTop - Alignment = taCenter - AutoSize = False - BorderStyle = sbsSingle - Caption = 'KEY A' - Color = clWhite - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentColor = False - ParentFont = False - TabOrder = 0 - end - object chkHexA: TCheckBox - Left = 42 - Top = 48 - Width = 57 - Height = 17 - Cursor = crHandPoint - Caption = 'Hex' - TabOrder = 1 - OnClick = chkHexAClick - end - end - object pnlKeyB: TPanel - Left = 256 - Top = 1 - Width = 254 - Height = 71 - Align = alClient - Caption = ' ' - TabOrder = 1 - object lblKeyB: TStaticText - Left = 1 - Top = 1 - Width = 252 - Height = 18 - Align = alTop - Alignment = taCenter - AutoSize = False - BorderStyle = sbsSingle - Caption = 'KEY B' - Color = clWhite - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentColor = False - ParentFont = False - TabOrder = 0 - end - object chkHexB: TCheckBox - Left = 42 - Top = 48 - Width = 57 - Height = 17 - Cursor = crHandPoint - Caption = 'Hex' - TabOrder = 1 - OnClick = chkHexBClick - end - end - end - object pnlAuth: TPanel - Left = 0 - Top = 25 - Width = 511 - Height = 31 - Align = alTop - Caption = ' ' - Ctl3D = True - ParentCtl3D = False - TabOrder = 1 - object lblKeyIndex: TLabel - Left = 179 - Top = 8 - Width = 59 - Height = 13 - Caption = 'Key Index' - end - object lblPK: TLabel - Left = 297 - Top = 8 - Width = 15 - Height = 13 - Caption = 'PK' - end - object rbAUTH1A: TRadioButton - Left = 8 - Top = 7 - Width = 73 - Height = 17 - Cursor = crHandPoint - Caption = 'AUTH 1A' - Checked = True - TabOrder = 0 - TabStop = True - end - object rbAUTH1B: TRadioButton - Left = 87 - Top = 7 - Width = 73 - Height = 17 - Cursor = crHandPoint - Caption = 'AUTH 1B' - TabOrder = 1 - end - object cboKeyIndex: TComboBox - Left = 245 - Top = 5 - Width = 40 - Height = 21 - Cursor = crHandPoint - Ctl3D = True - DropDownCount = 10 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 13 - ItemIndex = 0 - ParentCtl3D = False - ParentFont = False - TabOrder = 2 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7' - '8' - '9' - '10' - '11' - '12' - '13' - '14' - '15' - '16' - '17' - '18' - '19' - '20' - '21' - '22' - '23' - '24' - '25' - '26' - '27' - '28' - '29' - '30' - '31') - end - end - object pnlHeader: TStaticText - Left = 0 - Top = 0 - Width = 511 - Height = 25 - Align = alTop - Alignment = taCenter - AutoSize = False - BorderStyle = sbsSingle - Caption = 'LinearFormat Card(AKM1,AKM2,PK)' - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -17 - Font.Name = 'Verdana' - Font.Style = [] - ParentColor = False - ParentFont = False - TabOrder = 2 - end - object stbFunction: TStatusBar - Left = 0 - Top = 338 - Width = 511 - Height = 25 - Font.Charset = ANSI_CHARSET - Font.Color = clBtnText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [] - Panels = < - item - Alignment = taCenter - Text = 'Function Error:' - Width = 119 - end - item - Alignment = taCenter - Width = 50 - end - item - Alignment = taCenter - Width = 50 - end> - SimplePanel = False - UseSystemFont = False - end - object pgLinearFormatCard: TPageControl - Left = 0 - Top = 129 - Width = 511 - Height = 209 - ActivePage = tabLinearFormatCard - Align = alClient - TabIndex = 0 - TabOrder = 4 - object tabLinearFormatCard: TTabSheet - Caption = 'LinearFormat Card' - object lblBlockAccessBits: TLabel - Left = 49 - Top = 51 - Width = 99 - Height = 13 - Caption = 'Block Access Bits' - end - object lblSectorTrailerAccessBits: TLabel - Left = 49 - Top = 78 - Width = 146 - Height = 13 - Caption = 'Sector Trailer Access Bits' - end - object lblSectorTrailerByte9: TLabel - Left = 49 - Top = 103 - Width = 119 - Height = 13 - Caption = 'Sector Trailer Byte 9' - end - object lblSectorFormatted: TLabel - Left = 273 - Top = 113 - Width = 99 - Height = 13 - Caption = 'Sector Formatted' - end - object cboBlockAccessBits: TComboBox - Left = 207 - Top = 48 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 0 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object cboSectorTrailerAccessBits: TComboBox - Left = 207 - Top = 75 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 1 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object txtSectorTrailerByte9: TEdit - Left = 207 - Top = 101 - Width = 41 - Height = 24 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 3 - ParentFont = False - TabOrder = 2 - Text = ' ' - end - object btnLinearFormatCard: TButton - Left = 271 - Top = 48 - Width = 185 - Height = 50 - Cursor = crHandPoint - Caption = 'FORMAT' - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 3 - OnClick = btnLinearFormatCardClick - end - object txtSectorFormatted: TEdit - Left = 415 - Top = 109 - Width = 41 - Height = 22 - Color = clSilver - Ctl3D = False - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 3 - ParentCtl3D = False - ParentFont = False - ReadOnly = True - TabOrder = 4 - Text = ' ' - end - end - object tabLinearFormatCardAKM1: TTabSheet - Caption = 'LinearFormat_AKM1' - ImageIndex = 1 - object lblBlockAccessBitsAKM1: TLabel - Left = 49 - Top = 51 - Width = 99 - Height = 13 - Caption = 'Block Access Bits' - end - object lblSectorTrailerAccessBitsAKM1: TLabel - Left = 49 - Top = 78 - Width = 146 - Height = 13 - Caption = 'Sector Trailer Access Bits' - end - object lblSectorTrailerByte9AKM1: TLabel - Left = 49 - Top = 103 - Width = 119 - Height = 13 - Caption = 'Sector Trailer Byte 9' - end - object lblSectorFormattedAKM1: TLabel - Left = 273 - Top = 113 - Width = 99 - Height = 13 - Caption = 'Sector Formatted' - end - object cboBlockAccessBitsAKM1: TComboBox - Left = 207 - Top = 48 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 0 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object cboSectorTrailerAccessBitsAKM1: TComboBox - Left = 207 - Top = 75 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 1 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object txtSectorTrailerByte9AKM1: TEdit - Left = 207 - Top = 101 - Width = 41 - Height = 24 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 3 - ParentFont = False - TabOrder = 2 - Text = ' ' - end - object btnLinearFormatCardAKM1: TButton - Left = 271 - Top = 48 - Width = 185 - Height = 50 - Cursor = crHandPoint - Caption = 'FORMAT' - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 3 - OnClick = btnLinearFormatCardAKM1Click - end - object txtSectorFormattedAKM1: TEdit - Left = 415 - Top = 109 - Width = 41 - Height = 19 - Color = clSilver - Ctl3D = False - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 3 - ParentCtl3D = False - ParentFont = False - ReadOnly = True - TabOrder = 4 - Text = ' ' - end - end - object tabLinearFormatCardAKM2: TTabSheet - Caption = 'LinearFormat_AKM2' - ImageIndex = 2 - object lblBlockAccessBitsAKM2: TLabel - Left = 49 - Top = 51 - Width = 99 - Height = 13 - Caption = 'Block Access Bits' - end - object lblSectorTrailerAccessBitsAKM2: TLabel - Left = 49 - Top = 78 - Width = 146 - Height = 13 - Caption = 'Sector Trailer Access Bits' - end - object lblSectorTrailerByte9AKM2: TLabel - Left = 49 - Top = 103 - Width = 119 - Height = 13 - Caption = 'Sector Trailer Byte 9' - end - object lblSectorFormattedAKM2: TLabel - Left = 273 - Top = 113 - Width = 99 - Height = 13 - Caption = 'Sector Formatted' - end - object cboBlockAccessBitsAKM2: TComboBox - Left = 207 - Top = 48 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 0 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object cboSectorTrailerAccessBitsAKM2: TComboBox - Left = 207 - Top = 75 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 1 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object txtSectorTrailerByte9AKM2: TEdit - Left = 207 - Top = 101 - Width = 41 - Height = 24 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 3 - ParentFont = False - TabOrder = 2 - Text = ' ' - end - object btnLinearFormatCardAKM2: TButton - Left = 271 - Top = 48 - Width = 185 - Height = 50 - Cursor = crHandPoint - Caption = 'FORMAT' - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 3 - OnClick = btnLinearFormatCardAKM2Click - end - object txtSectorFormattedAKM2: TEdit - Left = 415 - Top = 109 - Width = 41 - Height = 19 - Color = clSilver - Ctl3D = False - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 3 - ParentCtl3D = False - ParentFont = False - ReadOnly = True - TabOrder = 4 - Text = ' ' - end - end - object tabLinearFormatCardPK: TTabSheet - Caption = 'LinearFormat_PK' - ImageIndex = 3 - object lblBlockAccessBitsPK: TLabel - Left = 49 - Top = 51 - Width = 99 - Height = 13 - Caption = 'Block Access Bits' - end - object lblSectorTrailerAccessBitsPK: TLabel - Left = 49 - Top = 78 - Width = 146 - Height = 13 - Caption = 'Sector Trailer Access Bits' - end - object lblSectorTrailerByte9PK: TLabel - Left = 49 - Top = 103 - Width = 119 - Height = 13 - Caption = 'Sector Trailer Byte 9' - end - object lblSectorFormattedPK: TLabel - Left = 273 - Top = 113 - Width = 99 - Height = 13 - Caption = 'Sector Formatted' - end - object cboBlockAccessBitsPK: TComboBox - Left = 207 - Top = 48 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 0 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object cboSectorTrailerAccessBitsPK: TComboBox - Left = 207 - Top = 75 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 1 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object txtSectorTrailerByte9PK: TEdit - Left = 207 - Top = 101 - Width = 41 - Height = 24 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 3 - ParentFont = False - TabOrder = 2 - Text = ' ' - end - object btnLinearFormatCardPK: TButton - Left = 271 - Top = 48 - Width = 185 - Height = 50 - Cursor = crHandPoint - Caption = 'FORMAT' - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 3 - OnClick = btnLinearFormatCardPKClick - end - object txtSectorFormattedPK: TEdit - Left = 415 - Top = 109 - Width = 41 - Height = 19 - Color = clSilver - Ctl3D = False - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 3 - ParentCtl3D = False - ParentFont = False - ReadOnly = True - TabOrder = 4 - Text = ' ' - end - end - end -end diff --git a/uFCoderAdvanced/LinearFormatCard.~h b/uFCoderAdvanced/LinearFormatCard.~h deleted file mode 100644 index eeb1279..0000000 --- a/uFCoderAdvanced/LinearFormatCard.~h +++ /dev/null @@ -1,93 +0,0 @@ -//--------------------------------------------------------------------------- - -#ifndef LinearFormatCardH -#define LinearFormatCardH -//--------------------------------------------------------------------------- -#include -#include -#include -#include -#include -#include -//--------------------------------------------------------------------------- -class TfrmLinearFormatCard : public TForm -{ -__published: // IDE-managed Components - TPanel *pnlKeys; - TPanel *pnlKeyA; - TStaticText *lblKeyA; - TCheckBox *chkHexA; - TPanel *pnlKeyB; - TStaticText *lblKeyB; - TCheckBox *chkHexB; - TPanel *pnlAuth; - TLabel *lblKeyIndex; - TLabel *lblPK; - TRadioButton *rbAUTH1A; - TRadioButton *rbAUTH1B; - TComboBox *cboKeyIndex; - TStaticText *pnlHeader; - TStatusBar *stbFunction; - TPageControl *pgLinearFormatCard; - TTabSheet *tabLinearFormatCard; - TTabSheet *tabLinearFormatCardAKM1; - TTabSheet *tabLinearFormatCardAKM2; - TTabSheet *tabLinearFormatCardPK; - TLabel *lblBlockAccessBits; - TComboBox *cboBlockAccessBits; - TLabel *lblSectorTrailerAccessBits; - TComboBox *cboSectorTrailerAccessBits; - TLabel *lblSectorTrailerByte9; - TEdit *txtSectorTrailerByte9; - TButton *btnLinearFormatCard; - TLabel *lblSectorFormatted; - TEdit *txtSectorFormatted; - TLabel *lblBlockAccessBitsAKM1; - TComboBox *cboBlockAccessBitsAKM1; - TLabel *lblSectorTrailerAccessBitsAKM1; - TComboBox *cboSectorTrailerAccessBitsAKM1; - TLabel *lblSectorTrailerByte9AKM1; - TEdit *txtSectorTrailerByte9AKM1; - TButton *btnLinearFormatCardAKM1; - TLabel *lblSectorFormattedAKM1; - TEdit *txtSectorFormattedAKM1; - TLabel *lblBlockAccessBitsAKM2; - TComboBox *cboBlockAccessBitsAKM2; - TLabel *lblSectorTrailerAccessBitsAKM2; - TComboBox *cboSectorTrailerAccessBitsAKM2; - TLabel *lblSectorTrailerByte9AKM2; - TEdit *txtSectorTrailerByte9AKM2; - TButton *btnLinearFormatCardAKM2; - TLabel *lblSectorFormattedAKM2; - TEdit *txtSectorFormattedAKM2; - TLabel *lblBlockAccessBitsPK; - TComboBox *cboBlockAccessBitsPK; - TLabel *lblSectorTrailerAccessBitsPK; - TComboBox *cboSectorTrailerAccessBitsPK; - TLabel *lblSectorTrailerByte9PK; - TEdit *txtSectorTrailerByte9PK; - TButton *btnLinearFormatCardPK; - TLabel *lblSectorFormattedPK; - TEdit *txtSectorFormattedPK; - void __fastcall OnPK_KeyPress(TObject *Sender,char &Key); - void __fastcall OnPK_Exit(TObject *Sender); - void __fastcall OnKeyA_KeyPress(TObject *Sender,char &Key); - void __fastcall OnKeyA_Exit(TObject *Sender); - void __fastcall OnKeyB_KeyPress(TObject *Sender,char &Key); - void __fastcall OnKeyB_Exit(TObject *Sender); - void __fastcall FormCreate(TObject *Sender); - void __fastcall chkHexAClick(TObject *Sender); - void __fastcall chkHexBClick(TObject *Sender); - void __fastcall btnLinearFormatCardClick(TObject *Sender); - void __fastcall btnLinearFormatCardAKM1Click(TObject *Sender); - void __fastcall btnLinearFormatCardAKM2Click(TObject *Sender); - void __fastcall btnLinearFormatCardPKClick(TObject *Sender); -private: - unsigned long result; -public: - __fastcall TfrmLinearFormatCard(TComponent* Owner); -}; -//--------------------------------------------------------------------------- -extern PACKAGE TfrmLinearFormatCard *frmLinearFormatCard; -//--------------------------------------------------------------------------- -#endif diff --git a/uFCoderAdvanced/LinearReadWrite.cpp b/uFCoderAdvanced/LinearReadWrite.cpp deleted file mode 100644 index 8224f06..0000000 --- a/uFCoderAdvanced/LinearReadWrite.cpp +++ /dev/null @@ -1,539 +0,0 @@ - - -#include -#pragma hdrstop - -#include "LinearReadWrite.h" -#include "uFAdvance.h" -#include "Globals.h" -#include "uFCoder1x.h" - - -#pragma package(smart_init) -#pragma resource "*.dfm" -TfrmLinearReadWrite *frmLinearReadWrite; - -__fastcall TfrmLinearReadWrite::TfrmLinearReadWrite(TComponent* Owner) - : TForm(Owner) -{ - -} - -void __fastcall TfrmLinearReadWrite::OnPK_KeyPress(TObject *Sender,char &Key) -{ - Check_PK_key_press(Sender,Key); -} -void __fastcall TfrmLinearReadWrite::FormCreate(TObject *Sender) -{ - CreateKey(this,31,27,320,5,"txtPKKey",pnlAuth,OnPK_KeyPress,OnPK_Exit); -} -void __fastcall TfrmLinearReadWrite:: OnPK_Exit(TObject *Sender) -{ - Check_On_Exit(Sender); -} - - -void __fastcall TfrmLinearReadWrite::btnLinearReadClick(TObject *Sender) -{ - if (GetFunctionStart() || GetReaderStart()) return; - SetFunctionStart(true); - unsigned char ucKeyIndex = cboKeyIndex->Text.ToInt(), - ucAuthMode = AuthMode(rbAUTH1A); - unsigned short usLinearAddress = 0, - usDataLength = 0, - usBytesRet = 0; - char *pData = 0; - DL_STATUS ulFResult = 0; - try - { - txtLinearRead->Clear(); - - if (AnsiString(Trim(txtLRLinearAddress->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the LINEAR ADDRESS !","Warning !",MB_OK | MB_ICONWARNING); - txtLRLinearAddress->SetFocus(); - txtLRLinearAddress->Undo(); - return; - } - if (AnsiString(Trim(txtLRDataLength->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the DATA LENGTH !","Warning !",MB_OK | MB_ICONWARNING); - txtLRDataLength->SetFocus(); - txtLRDataLength->Undo(); - return; - } - - txtLRBytesReturned->Clear(); - usLinearAddress = txtLRLinearAddress->Text.ToInt(); - usDataLength = txtLRDataLength->Text.ToInt(); - pData = new char[usDataLength]; - ulFResult = LinearRead(pData,usLinearAddress,usDataLength,&usBytesRet,ucAuthMode,ucKeyIndex); - - if (ulFResult==DL_OK) - { - txtLinearRead->Text=pData; - txtLRBytesReturned->Text=IntToStr(usBytesRet); - ReaderUISignal(FRES_OK_LIGHT,FRES_OK_SOUND); - SetStatusBar(stbFunction,ulFResult); - } - else - { - txtLRBytesReturned->Text=IntToStr(usBytesRet); - ReaderUISignal(FERR_LIGHT,FERR_SOUND); - SetStatusBar(stbFunction,ulFResult); - } - - } - __finally - { - delete[]pData; - pData=0; - SetFunctionStart(false); - } -} - - -void __fastcall TfrmLinearReadWrite::btnLinearReadAKM1Click(TObject *Sender) -{ - if (GetFunctionStart() || GetReaderStart()) return; - SetFunctionStart(true); - - unsigned char ucAuthMode = AuthMode(rbAUTH1A); - unsigned short usLinearAddress = 0, - usDataLength = 0, - usBytesRet = 0; - char *pData = 0; - DL_STATUS ulFResult = 0; - try - { - if (AnsiString(Trim(txtLRLinearAddressAKM1->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the LINEAR ADDRESS !","Warning !",MB_OK | MB_ICONWARNING); - txtLRLinearAddressAKM1->SetFocus(); - txtLRLinearAddressAKM1->Undo(); - return; - } - if (AnsiString(Trim(txtLRDataLengthAKM1->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the DATA LENGTH !","Warning !",MB_OK | MB_ICONWARNING); - txtLRDataLengthAKM1->SetFocus(); - txtLRDataLengthAKM1->Undo(); - return; - } - txtLRBytesReturnedAKM1->Clear(); - usLinearAddress = txtLRLinearAddressAKM1->Text.ToInt(); - usDataLength = txtLRDataLengthAKM1->Text.ToInt(); - pData = new char[usDataLength]; - ulFResult=LinearRead_AKM1(pData,usLinearAddress,usDataLength,&usBytesRet,ucAuthMode); - if (ulFResult==DL_OK) - { - txtLinearReadAKM1 ->Text=pData; - txtLRBytesReturnedAKM1->Text=IntToStr(usBytesRet); - ReaderUISignal(FRES_OK_LIGHT,FRES_OK_SOUND); - SetStatusBar(stbFunction,ulFResult); - } - else - { - txtLRBytesReturnedAKM1->Text=IntToStr(usBytesRet); - ReaderUISignal(FERR_LIGHT,FERR_SOUND); - SetStatusBar(stbFunction,ulFResult); - } - } - __finally - { - delete []pData; - pData=0; - SetFunctionStart(false); - } - -} - - -void __fastcall TfrmLinearReadWrite::btnLinearReadAKM2Click(TObject *Sender) -{ - if (GetFunctionStart() || GetReaderStart()) return; - SetFunctionStart(true); - - unsigned char ucAuthMode = AuthMode(rbAUTH1A); - unsigned short usLinearAddress = 0, - usDataLength = 0, - usBytesRet = 0; - char *pData = 0; - DL_STATUS ulFResult = 0; - try - { - if (AnsiString(Trim(txtLRLinearAddressAKM2->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the LINEAR ADDRESS !","Warning !",MB_OK | MB_ICONWARNING); - txtLRLinearAddressAKM2->SetFocus(); - txtLRLinearAddressAKM2->Undo(); - return; - } - if (AnsiString(Trim(txtLRDataLengthAKM2->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the DATA LENGTH !","Warning !",MB_OK | MB_ICONWARNING); - txtLRDataLengthAKM2->SetFocus(); - txtLRDataLengthAKM2->Undo(); - return; - } - txtLRBytesReturnedAKM2->Clear(); - usLinearAddress = txtLRLinearAddressAKM2->Text.ToInt(); - usDataLength = txtLRDataLengthAKM2->Text.ToInt(); - pData = new char[usDataLength]; - ulFResult=LinearRead_AKM2(pData,usLinearAddress,usDataLength,&usBytesRet,ucAuthMode); - if (ulFResult==DL_OK) - { - txtLinearReadAKM2 ->Text=pData; - txtLRBytesReturnedAKM2->Text=IntToStr(usBytesRet); - ReaderUISignal(FRES_OK_LIGHT,FRES_OK_SOUND); - SetStatusBar(stbFunction,ulFResult); - } - else - { - txtLRBytesReturnedAKM2->Text=IntToStr(usBytesRet); - ReaderUISignal(FERR_LIGHT,FERR_SOUND); - SetStatusBar(stbFunction,ulFResult); - } - } - __finally - { - delete []pData; - pData=0; - SetFunctionStart(false); - } -} - - -void __fastcall TfrmLinearReadWrite::btnLinearReadPKClick(TObject *Sender) -{ - if (GetFunctionStart() || GetReaderStart()) return; - SetFunctionStart(true); - - unsigned char ucAuthMode = AuthMode(rbAUTH1A); - unsigned short usLinearAddress = 0, - usDataLength = 0, - usBytesRet = 0; - char *pData = 0; - - DL_STATUS ulFResult = 0; - - try - { - if (AnsiString(Trim(txtLRLinearAddressPK->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the LINEAR ADDRESS !","Warning !",MB_OK | MB_ICONWARNING); - txtLRLinearAddressPK->SetFocus(); - txtLRLinearAddressPK->Undo(); - return; - } - if (AnsiString(Trim(txtLRDataLengthPK->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the DATA LENGTH !","Warning !",MB_OK | MB_ICONWARNING); - txtLRDataLengthPK->SetFocus(); - txtLRDataLengthPK->Undo(); - return; - } - - txtLRBytesReturnedPK->Clear(); - usLinearAddress = txtLRLinearAddressPK->Text.ToInt(); - usDataLength = txtLRDataLengthPK->Text.ToInt(); - pData = new char[usDataLength]; - - ulFResult=LinearRead_PK(pData,usLinearAddress,usDataLength,&usBytesRet,ucAuthMode,PKValue(this)); - if (ulFResult==DL_OK) - { - txtLinearReadPK ->Text=pData; - txtLRBytesReturnedPK ->Text=IntToStr(usBytesRet); - ReaderUISignal(FRES_OK_LIGHT,FRES_OK_SOUND); - SetStatusBar(stbFunction,ulFResult); - } - else - { - txtLRBytesReturnedPK ->Text=IntToStr(usBytesRet); - ReaderUISignal(FERR_LIGHT,FERR_SOUND); - SetStatusBar(stbFunction,ulFResult); - } - } - __finally - { - delete []pData; - pData=0; - SetFunctionStart(false); - } - -} - - -void __fastcall TfrmLinearReadWrite::btnLinearWriteClick(TObject *Sender) -{ - if (GetFunctionStart() || GetReaderStart()) return; - SetFunctionStart(true); - - unsigned char ucKeyIndex = cboKeyIndex->Text.ToInt(), - ucAuthMode = AuthMode(rbAUTH1A); - unsigned short usLinearAddress = 0, - usDataLength = 0, - usBytesRet = 0; - char *pData = 0; - - DL_STATUS ulFResult = 0; - - try - { - if (AnsiString(Trim(txtLinearWrite->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter any data !","Warning !",MB_OK | MB_ICONWARNING); - txtLinearWrite->SetFocus(); - txtLinearWrite->Undo(); - return; - } - if (AnsiString(Trim(txtLWLinearAddress->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the LINEAR ADDRESS !","Warning !",MB_OK | MB_ICONWARNING); - txtLWLinearAddress->SetFocus(); - txtLWLinearAddress->Undo(); - return; - } - if (AnsiString(Trim(txtLWDataLength->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the DATA LENGTH !","Warning !",MB_OK | MB_ICONWARNING); - txtLWDataLength->SetFocus(); - txtLWDataLength->Undo(); - return; - } - - txtBytesWritten->Clear(); - usLinearAddress = txtLWLinearAddress->Text.ToInt(); - usDataLength = txtLWDataLength->Text.ToInt(); - pData = new char[usDataLength]; - memcpy(pData,txtLinearWrite->Text.c_str(),usDataLength); - ulFResult=LinearWrite(pData,usLinearAddress,usDataLength,&usBytesRet,ucAuthMode,ucKeyIndex); - - if (ulFResult==DL_OK) - ReaderUISignal(FRES_OK_LIGHT,FRES_OK_SOUND); - else - ReaderUISignal(FERR_LIGHT,FERR_SOUND); - - SetStatusBar(stbFunction,ulFResult); - txtBytesWritten->Text=IntToStr(usBytesRet); - - } - __finally - { - delete []pData; - pData=0; - SetFunctionStart(false); - } -} - - -void __fastcall TfrmLinearReadWrite::btnLinearWriteAKM2Click(TObject *Sender) -{ - if (GetFunctionStart() || GetReaderStart()) return; - SetFunctionStart(true); - - unsigned char ucAuthMode = AuthMode(rbAUTH1A); - unsigned short usLinearAddress = 0, - usDataLength = 0, - usBytesRet = 0; - char *pData = 0; - - DL_STATUS ulFResult = 0; - - try - { - if (AnsiString(Trim(txtLinearWriteAKM2->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter any data !","Warning !",MB_OK | MB_ICONWARNING); - txtLinearWriteAKM2->SetFocus(); - txtLinearWriteAKM2 ->Undo(); - return; - } - if (AnsiString(Trim(txtLWLinearAddressAKM2->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter LINEAR ADDRESS !","Warning !",MB_OK | MB_ICONWARNING); - txtLWLinearAddressAKM2->SetFocus(); - txtLWLinearAddressAKM2->Undo(); - return; - } - if (AnsiString(Trim(txtLWDataLengthAKM2 ->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter DATA LENGTH !","Warning !",MB_OK | MB_ICONWARNING); - txtLWDataLengthAKM2->SetFocus(); - txtLWDataLengthAKM2->Undo(); - return; - } - txtBytesWrittenAKM2->Clear(); - usLinearAddress = txtLWLinearAddressAKM2->Text.ToInt(); - usDataLength = txtLWDataLengthAKM2->Text.ToInt(); - pData = new char[usDataLength]; - memcpy(pData,txtLinearWriteAKM2->Text.c_str(),usDataLength); - ulFResult=LinearWrite_AKM2(pData,usLinearAddress,usDataLength,&usBytesRet,ucAuthMode); - - if (ulFResult==DL_OK) - ReaderUISignal(FRES_OK_LIGHT,FRES_OK_SOUND); - else - ReaderUISignal(FERR_LIGHT,FERR_SOUND); - - SetStatusBar(stbFunction,ulFResult); - txtBytesWrittenAKM2->Text=IntToStr(usBytesRet); - - } - __finally - { - delete []pData; - pData=0; - SetFunctionStart(false); - } -} - - -void __fastcall TfrmLinearReadWrite::btnLinearWriteAKM1Click(TObject *Sender) -{ - if (GetFunctionStart() || GetReaderStart()) return; - SetFunctionStart(true); - - unsigned char ucAuthMode = AuthMode(rbAUTH1A); - unsigned short usLinearAddress = 0, - usDataLength = 0, - usBytesRet = 0; - char *pData = 0; - - DL_STATUS ulFResult = 0; - - try - { - if (AnsiString(Trim(txtLinearWriteAKM1->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter any data !","Warning !",MB_OK | MB_ICONWARNING); - txtLinearWriteAKM1->SetFocus(); - txtLinearWriteAKM1 ->Undo(); - return; - } - if (AnsiString(Trim(txtLWLinearAddressAKM1->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the LINEAR ADDRESS !","Warning !",MB_OK | MB_ICONWARNING); - txtLWLinearAddressAKM1->SetFocus(); - txtLWLinearAddressAKM1->Undo(); - return; - } - if (AnsiString(Trim(txtLWDataLengthAKM1 ->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the DATA LENGTH !","Warning !",MB_OK | MB_ICONWARNING); - txtLWDataLengthAKM1->SetFocus(); - txtLWDataLengthAKM1->Undo(); - return; - } - txtBytesWrittenAKM1->Clear(); - usLinearAddress = txtLWLinearAddressAKM1->Text.ToInt(); - usDataLength = txtLWDataLengthAKM1->Text.ToInt(); - pData = new char[usDataLength]; - memcpy(pData,txtLinearWriteAKM1->Text.c_str(),usDataLength); - ulFResult=LinearWrite_AKM1(pData,usLinearAddress,usDataLength,&usBytesRet,ucAuthMode); - - if (ulFResult==DL_OK) - ReaderUISignal(FRES_OK_LIGHT,FRES_OK_SOUND); - else - ReaderUISignal(FERR_LIGHT,FERR_SOUND); - - SetStatusBar(stbFunction,ulFResult); - txtBytesWrittenAKM1->Text=IntToStr(usBytesRet); - - } - __finally - { - delete []pData; - pData=0; - SetFunctionStart(false); - } - -} - - -void __fastcall TfrmLinearReadWrite::btnLinearWritePKClick(TObject *Sender) -{ - if (GetFunctionStart() || GetReaderStart()) return; - SetFunctionStart(true); - - unsigned char ucAuthMode = AuthMode(rbAUTH1A); - unsigned short usLinearAddress = 0, - usDataLength = 0, - usBytesRet = 0; - char *pData = 0; - - DL_STATUS ulFResult = 0; - - try - { - if (AnsiString(Trim(txtLinearWritePK->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter any data !","Warning !",MB_OK | MB_ICONWARNING); - txtLinearWritePK->SetFocus(); - txtLinearWritePK->Undo(); - return; - } - if (AnsiString(Trim(txtLWLinearAddressPK->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the LINEAR ADDRESS !","Warning !",MB_OK | MB_ICONWARNING); - txtLWLinearAddressPK->SetFocus(); - txtLWLinearAddressPK->Undo(); - return; - } - if (AnsiString(Trim(txtLWDataLengthPK->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the DATA LENGTH !","Warning !",MB_OK | MB_ICONWARNING); - txtLWDataLengthPK->SetFocus(); - txtLWDataLengthPK->Undo(); - return; - } - txtBytesWrittenPK->Clear(); - usLinearAddress = txtLWLinearAddressPK->Text.ToInt(); - usDataLength = txtLWDataLengthPK->Text.ToInt(); - pData = new char[usDataLength]; - memcpy(pData,txtLinearWritePK->Text.c_str(),usDataLength); - ulFResult=LinearWrite_PK(pData,usLinearAddress,usDataLength,&usBytesRet,ucAuthMode,PKValue(this)); - - if (ulFResult==DL_OK) - ReaderUISignal(FRES_OK_LIGHT,FRES_OK_SOUND); - else - ReaderUISignal(FERR_LIGHT,FERR_SOUND); - - SetStatusBar(stbFunction,ulFResult); - txtBytesWrittenPK->Text=IntToStr(usBytesRet); - } - __finally - { - delete []pData; - pData=0; - SetFunctionStart(false); - } -} - - -void __fastcall TfrmLinearReadWrite::txtLinearWriteChange(TObject *Sender) -{ - txtLWDataLength->Text=AnsiString(txtLinearWrite->Text).Length(); -} -//--------------------------------------------------------------------------- - -void __fastcall TfrmLinearReadWrite::txtLinearWritePKChange( - TObject *Sender) -{ - txtLWDataLengthPK->Text=AnsiString(txtLinearWritePK->Text).Length(); -} -//--------------------------------------------------------------------------- - -void __fastcall TfrmLinearReadWrite::txtLinearWriteAKM2Change( - TObject *Sender) -{ - txtLWDataLengthAKM2->Text=AnsiString(txtLinearWriteAKM2->Text).Length(); -} -//--------------------------------------------------------------------------- - -void __fastcall TfrmLinearReadWrite::txtLinearWriteAKM1Change( - TObject *Sender) -{ - txtLWDataLengthAKM1->Text=AnsiString(txtLinearWriteAKM1->Text).Length(); -} -//--------------------------------------------------------------------------- - diff --git a/uFCoderAdvanced/LinearReadWrite.ddp b/uFCoderAdvanced/LinearReadWrite.ddp deleted file mode 100644 index cdc0ee8c2b54a98895d906932c4351134611c8d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxFz;K0Pl$;KI)SCUzhlbT}4#=r!G E07AM8lK=n! diff --git a/uFCoderAdvanced/LinearReadWrite.dfm b/uFCoderAdvanced/LinearReadWrite.dfm deleted file mode 100644 index 9f9c32a..0000000 --- a/uFCoderAdvanced/LinearReadWrite.dfm +++ /dev/null @@ -1,1063 +0,0 @@ -object frmLinearReadWrite: TfrmLinearReadWrite - Left = 403 - Top = 168 - Width = 527 - Height = 402 - Caption = 'LinearReadWrite' - Color = clBtnFace - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [] - OldCreateOrder = False - OnCreate = FormCreate - PixelsPerInch = 96 - TextHeight = 13 - object pnlHeader: TStaticText - Left = 0 - Top = 0 - Width = 511 - Height = 25 - Align = alTop - Alignment = taCenter - AutoSize = False - BorderStyle = sbsSingle - Caption = 'Linear Read/Write(AKM1,AKM2,PK)' - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -17 - Font.Name = 'Verdana' - Font.Style = [] - ParentColor = False - ParentFont = False - TabOrder = 0 - end - object pnlAuth: TPanel - Left = 0 - Top = 25 - Width = 511 - Height = 31 - Align = alTop - Caption = ' ' - Ctl3D = True - ParentCtl3D = False - TabOrder = 1 - object lblKeyIndex: TLabel - Left = 179 - Top = 8 - Width = 59 - Height = 13 - Caption = 'Key Index' - end - object lblPK: TLabel - Left = 297 - Top = 8 - Width = 15 - Height = 13 - Caption = 'PK' - end - object rbAUTH1A: TRadioButton - Left = 8 - Top = 7 - Width = 73 - Height = 17 - Cursor = crHandPoint - Caption = 'AUTH 1A' - Checked = True - TabOrder = 0 - TabStop = True - end - object rbAUTH1B: TRadioButton - Left = 87 - Top = 7 - Width = 73 - Height = 17 - Cursor = crHandPoint - Caption = 'AUTH 1B' - TabOrder = 1 - end - object cboKeyIndex: TComboBox - Left = 245 - Top = 5 - Width = 40 - Height = 21 - Cursor = crHandPoint - Ctl3D = True - DropDownCount = 10 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 13 - ItemIndex = 0 - ParentCtl3D = False - ParentFont = False - TabOrder = 2 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7' - '8' - '9' - '10' - '11' - '12' - '13' - '14' - '15' - '16' - '17' - '18' - '19' - '20' - '21' - '22' - '23' - '24' - '25' - '26' - '27' - '28' - '29' - '30' - '31') - end - end - object stbFunction: TStatusBar - Left = 0 - Top = 339 - Width = 511 - Height = 25 - Font.Charset = ANSI_CHARSET - Font.Color = clBtnText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [] - Panels = < - item - Alignment = taCenter - Text = 'Function Error:' - Width = 119 - end - item - Alignment = taCenter - Width = 50 - end - item - Alignment = taCenter - Width = 50 - end> - SimplePanel = False - UseSystemFont = False - end - object pgLinearReadWrite: TPageControl - Left = 0 - Top = 56 - Width = 511 - Height = 283 - ActivePage = tabLinearRead - Align = alClient - TabIndex = 0 - TabOrder = 3 - object tabLinearRead: TTabSheet - Caption = 'Linear Read' - object lblLinearRead: TLabel - Left = 8 - Top = 4 - Width = 68 - Height = 13 - Caption = 'Linear Read' - end - object lblLRLinearAddress: TLabel - Left = 8 - Top = 204 - Width = 85 - Height = 13 - Caption = 'Linear Address' - end - object lblLRDataLength: TLabel - Left = 8 - Top = 228 - Width = 69 - Height = 13 - Caption = 'Data Length' - end - object lblReadBytes: TLabel - Left = 167 - Top = 220 - Width = 65 - Height = 13 - Caption = 'Read Bytes' - end - object txtLinearRead: TMemo - Left = 8 - Top = 22 - Width = 485 - Height = 171 - Ctl3D = False - Lines.Strings = ( - '') - ParentCtl3D = False - ReadOnly = True - ScrollBars = ssVertical - TabOrder = 3 - end - object txtLRLinearAddress: TEdit - Left = 101 - Top = 201 - Width = 40 - Height = 24 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 4 - ParentFont = False - TabOrder = 0 - Text = ' ' - end - object txtLRDataLength: TEdit - Left = 101 - Top = 225 - Width = 40 - Height = 24 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 4 - ParentFont = False - TabOrder = 1 - Text = ' ' - end - object btnLinearRead: TButton - Left = 336 - Top = 200 - Width = 141 - Height = 48 - Cursor = crHandPoint - Caption = 'READ' - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 2 - OnClick = btnLinearReadClick - end - object txtLRBytesReturned: TEdit - Left = 260 - Top = 216 - Width = 40 - Height = 22 - BevelOuter = bvRaised - Color = clSilver - Ctl3D = False - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 4 - ParentCtl3D = False - ParentFont = False - ReadOnly = True - TabOrder = 4 - Text = ' ' - end - end - object tabLinearReadAKM1: TTabSheet - Caption = 'LinearRead AKM1' - ImageIndex = 1 - object lblLinearReadAKM1: TLabel - Left = 8 - Top = 4 - Width = 68 - Height = 13 - Caption = 'Linear Read' - end - object lblLRLinearAddressAKM1: TLabel - Left = 8 - Top = 204 - Width = 85 - Height = 13 - Caption = 'Linear Address' - end - object lblLRDataLengthAKM1: TLabel - Left = 8 - Top = 228 - Width = 69 - Height = 13 - Caption = 'Data Length' - end - object lblReadBytesAKM1: TLabel - Left = 167 - Top = 220 - Width = 65 - Height = 13 - Caption = 'Read Bytes' - end - object txtLinearReadAKM1: TMemo - Left = 8 - Top = 22 - Width = 485 - Height = 171 - Ctl3D = False - Lines.Strings = ( - '') - ParentCtl3D = False - ReadOnly = True - ScrollBars = ssVertical - TabOrder = 4 - end - object txtLRLinearAddressAKM1: TEdit - Left = 101 - Top = 201 - Width = 40 - Height = 24 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 4 - ParentFont = False - TabOrder = 0 - Text = ' ' - end - object txtLRDataLengthAKM1: TEdit - Left = 101 - Top = 225 - Width = 40 - Height = 24 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 4 - ParentFont = False - TabOrder = 1 - Text = ' ' - end - object txtLRBytesReturnedAKM1: TEdit - Left = 260 - Top = 216 - Width = 40 - Height = 19 - BevelOuter = bvRaised - Color = clSilver - Ctl3D = False - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 4 - ParentCtl3D = False - ParentFont = False - ReadOnly = True - TabOrder = 3 - Text = ' ' - end - object btnLinearReadAKM1: TButton - Left = 336 - Top = 200 - Width = 141 - Height = 48 - Cursor = crHandPoint - Caption = 'READ' - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 2 - OnClick = btnLinearReadAKM1Click - end - end - object tabLinearReadAKM2: TTabSheet - Caption = 'LinearRead AKM2' - ImageIndex = 2 - object lblLinearReadAKM2: TLabel - Left = 8 - Top = 4 - Width = 68 - Height = 13 - Caption = 'Linear Read' - end - object lblLRLinearAddressAKM2: TLabel - Left = 8 - Top = 204 - Width = 85 - Height = 13 - Caption = 'Linear Address' - end - object lblLRDataLengthAKM2: TLabel - Left = 8 - Top = 228 - Width = 69 - Height = 13 - Caption = 'Data Length' - end - object lblReadBytesAKM2: TLabel - Left = 167 - Top = 220 - Width = 65 - Height = 13 - Caption = 'Read Bytes' - end - object txtLinearReadAKM2: TMemo - Left = 8 - Top = 22 - Width = 485 - Height = 171 - Ctl3D = False - Lines.Strings = ( - '') - ParentCtl3D = False - ReadOnly = True - ScrollBars = ssVertical - TabOrder = 3 - end - object txtLRLinearAddressAKM2: TEdit - Left = 101 - Top = 201 - Width = 40 - Height = 24 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 4 - ParentFont = False - TabOrder = 0 - Text = ' ' - end - object txtLRDataLengthAKM2: TEdit - Left = 101 - Top = 225 - Width = 40 - Height = 24 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 4 - ParentFont = False - TabOrder = 1 - Text = ' ' - end - object txtLRBytesReturnedAKM2: TEdit - Left = 260 - Top = 216 - Width = 40 - Height = 19 - BevelOuter = bvRaised - Color = clSilver - Ctl3D = False - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 4 - ParentCtl3D = False - ParentFont = False - ReadOnly = True - TabOrder = 4 - Text = ' ' - end - object btnLinearReadAKM2: TButton - Left = 336 - Top = 200 - Width = 141 - Height = 48 - Cursor = crHandPoint - Caption = 'READ' - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 2 - OnClick = btnLinearReadAKM2Click - end - end - object tabLinearReadPK: TTabSheet - Caption = 'LinearRead PK' - ImageIndex = 3 - object lblLinearReadPK: TLabel - Left = 8 - Top = 4 - Width = 68 - Height = 13 - Caption = 'Linear Read' - end - object lblLRLinearAdrressPK: TLabel - Left = 8 - Top = 204 - Width = 85 - Height = 13 - Caption = 'Linear Address' - end - object lblLRDataLengthPK: TLabel - Left = 8 - Top = 228 - Width = 69 - Height = 13 - Caption = 'Data Length' - end - object lblReadBytesPK: TLabel - Left = 167 - Top = 220 - Width = 65 - Height = 13 - Caption = 'Read Bytes' - end - object txtLinearReadPK: TMemo - Left = 8 - Top = 22 - Width = 485 - Height = 171 - Ctl3D = False - Lines.Strings = ( - '') - ParentCtl3D = False - ReadOnly = True - ScrollBars = ssVertical - TabOrder = 3 - end - object txtLRLinearAddressPK: TEdit - Left = 101 - Top = 201 - Width = 40 - Height = 24 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 4 - ParentFont = False - TabOrder = 0 - Text = ' ' - end - object txtLRDataLengthPK: TEdit - Left = 101 - Top = 225 - Width = 40 - Height = 24 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 4 - ParentFont = False - TabOrder = 1 - Text = ' ' - end - object txtLRBytesReturnedPK: TEdit - Left = 260 - Top = 216 - Width = 40 - Height = 19 - BevelOuter = bvRaised - Color = clSilver - Ctl3D = False - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 4 - ParentCtl3D = False - ParentFont = False - ReadOnly = True - TabOrder = 4 - Text = ' ' - end - object btnLinearReadPK: TButton - Left = 336 - Top = 200 - Width = 141 - Height = 48 - Cursor = crHandPoint - Caption = 'READ' - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 2 - OnClick = btnLinearReadPKClick - end - end - object tabLinearWrite: TTabSheet - Caption = 'Linear Write' - ImageIndex = 4 - object lblLinearWrite: TLabel - Left = 8 - Top = 4 - Width = 69 - Height = 13 - Caption = 'Linear Write' - end - object lblLWLinearAddress: TLabel - Left = 8 - Top = 204 - Width = 85 - Height = 13 - Caption = 'Linear Address' - end - object lblLWDataLength: TLabel - Left = 8 - Top = 228 - Width = 69 - Height = 13 - Caption = 'Data Length' - end - object lblBytesWritten: TLabel - Left = 167 - Top = 220 - Width = 77 - Height = 13 - Caption = 'Bytes Written' - end - object txtLWLinearAddress: TEdit - Left = 101 - Top = 201 - Width = 40 - Height = 24 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 4 - ParentFont = False - TabOrder = 0 - Text = ' ' - end - object txtLWDataLength: TEdit - Left = 101 - Top = 225 - Width = 40 - Height = 24 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 4 - ParentFont = False - TabOrder = 1 - Text = ' ' - end - object txtBytesWritten: TEdit - Left = 260 - Top = 216 - Width = 40 - Height = 19 - BevelOuter = bvRaised - Color = clSilver - Ctl3D = False - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 4 - ParentCtl3D = False - ParentFont = False - ReadOnly = True - TabOrder = 3 - Text = ' ' - end - object btnLinearWrite: TButton - Left = 336 - Top = 200 - Width = 152 - Height = 48 - Cursor = crHandPoint - Caption = 'WRITE' - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 2 - OnClick = btnLinearWriteClick - end - object txtLinearWrite: TRichEdit - Left = 8 - Top = 24 - Width = 480 - Height = 169 - BevelInner = bvLowered - BevelKind = bkFlat - BorderStyle = bsNone - Ctl3D = False - ParentCtl3D = False - ScrollBars = ssVertical - TabOrder = 4 - OnChange = txtLinearWriteChange - end - end - object tabLinearWriteAKM1: TTabSheet - Caption = 'LinearWrite AKM1' - ImageIndex = 5 - object lblLinearWriteAKM1: TLabel - Left = 8 - Top = 4 - Width = 69 - Height = 13 - Caption = 'Linear Write' - end - object lblLWLinearAddressAKM1: TLabel - Left = 8 - Top = 204 - Width = 85 - Height = 13 - Caption = 'Linear Address' - end - object lblLWDataLengthAKM1: TLabel - Left = 8 - Top = 228 - Width = 69 - Height = 13 - Caption = 'Data Length' - end - object lblBytesWrittenAKM1: TLabel - Left = 167 - Top = 220 - Width = 77 - Height = 13 - Caption = 'Bytes Written' - end - object txtLWLinearAddressAKM1: TEdit - Left = 101 - Top = 201 - Width = 40 - Height = 24 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 4 - ParentFont = False - TabOrder = 0 - Text = ' ' - end - object txtLWDataLengthAKM1: TEdit - Left = 101 - Top = 225 - Width = 40 - Height = 24 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 4 - ParentFont = False - TabOrder = 1 - Text = ' ' - end - object txtBytesWrittenAKM1: TEdit - Left = 260 - Top = 216 - Width = 40 - Height = 19 - BevelOuter = bvRaised - Color = clSilver - Ctl3D = False - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 4 - ParentCtl3D = False - ParentFont = False - ReadOnly = True - TabOrder = 3 - Text = ' ' - end - object btnLinearWriteAKM1: TButton - Left = 336 - Top = 200 - Width = 152 - Height = 48 - Cursor = crHandPoint - Caption = 'WRITE' - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 2 - OnClick = btnLinearWriteAKM1Click - end - object txtLinearWriteAKM1: TRichEdit - Left = 8 - Top = 24 - Width = 480 - Height = 169 - BevelInner = bvLowered - BevelKind = bkFlat - BorderStyle = bsNone - Ctl3D = False - ParentCtl3D = False - ScrollBars = ssVertical - TabOrder = 4 - OnChange = txtLinearWriteAKM1Change - end - end - object tabLinearWriteAKM2: TTabSheet - Caption = 'LinearWrite AKM2' - ImageIndex = 6 - object lblLinearWriteAKM2: TLabel - Left = 8 - Top = 4 - Width = 69 - Height = 13 - Caption = 'Linear Write' - end - object lblLWLinearAddressAKM2: TLabel - Left = 8 - Top = 204 - Width = 85 - Height = 13 - Caption = 'Linear Address' - end - object lblLWDataLengthAKM2: TLabel - Left = 8 - Top = 228 - Width = 69 - Height = 13 - Caption = 'Data Length' - end - object lblBytesWrittenAKM2: TLabel - Left = 167 - Top = 220 - Width = 77 - Height = 13 - Caption = 'Bytes Written' - end - object txtLWLinearAddressAKM2: TEdit - Left = 101 - Top = 201 - Width = 40 - Height = 24 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 4 - ParentFont = False - TabOrder = 0 - Text = ' ' - end - object txtLWDataLengthAKM2: TEdit - Left = 101 - Top = 225 - Width = 40 - Height = 24 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 4 - ParentFont = False - TabOrder = 1 - Text = ' ' - end - object txtBytesWrittenAKM2: TEdit - Left = 260 - Top = 216 - Width = 40 - Height = 19 - BevelOuter = bvRaised - Color = clSilver - Ctl3D = False - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 4 - ParentCtl3D = False - ParentFont = False - ReadOnly = True - TabOrder = 3 - Text = ' ' - end - object btnLinearWriteAKM2: TButton - Left = 336 - Top = 200 - Width = 152 - Height = 48 - Cursor = crHandPoint - Caption = 'WRITE' - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 2 - OnClick = btnLinearWriteAKM2Click - end - object txtLinearWriteAKM2: TRichEdit - Left = 8 - Top = 24 - Width = 480 - Height = 169 - BevelInner = bvLowered - BevelKind = bkFlat - BorderStyle = bsNone - Ctl3D = False - ParentCtl3D = False - ScrollBars = ssVertical - TabOrder = 4 - OnChange = txtLinearWriteAKM2Change - end - end - object tabLinearWritePK: TTabSheet - Caption = 'LinearWrite PK' - ImageIndex = 7 - object lblLinearWritePK: TLabel - Left = 8 - Top = 4 - Width = 69 - Height = 13 - Caption = 'Linear Write' - end - object lblLWLinearAddressPK: TLabel - Left = 8 - Top = 204 - Width = 85 - Height = 13 - Caption = 'Linear Address' - end - object lblLWDataLengthPK: TLabel - Left = 8 - Top = 228 - Width = 69 - Height = 13 - Caption = 'Data Length' - end - object lblBytesWrittenPK: TLabel - Left = 167 - Top = 220 - Width = 77 - Height = 13 - Caption = 'Bytes Written' - end - object txtLWLinearAddressPK: TEdit - Left = 101 - Top = 201 - Width = 40 - Height = 24 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 4 - ParentFont = False - TabOrder = 0 - Text = ' ' - end - object txtLWDataLengthPK: TEdit - Left = 101 - Top = 225 - Width = 40 - Height = 24 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 4 - ParentFont = False - TabOrder = 1 - Text = ' ' - end - object txtBytesWrittenPK: TEdit - Left = 260 - Top = 216 - Width = 40 - Height = 22 - BevelOuter = bvRaised - Color = clSilver - Ctl3D = False - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 4 - ParentCtl3D = False - ParentFont = False - ReadOnly = True - TabOrder = 3 - Text = ' ' - end - object btnLinearWritePK: TButton - Left = 336 - Top = 200 - Width = 152 - Height = 48 - Cursor = crHandPoint - Caption = 'WRITE' - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 2 - OnClick = btnLinearWritePKClick - end - object txtLinearWritePK: TRichEdit - Left = 8 - Top = 24 - Width = 480 - Height = 169 - BevelInner = bvLowered - BevelKind = bkFlat - BorderStyle = bsNone - Ctl3D = False - ParentCtl3D = False - ScrollBars = ssVertical - TabOrder = 4 - OnChange = txtLinearWritePKChange - end - end - end -end diff --git a/uFCoderAdvanced/LinearReadWrite.h b/uFCoderAdvanced/LinearReadWrite.h deleted file mode 100644 index 3797f06..0000000 --- a/uFCoderAdvanced/LinearReadWrite.h +++ /dev/null @@ -1,130 +0,0 @@ -//--------------------------------------------------------------------------- - -#ifndef LinearReadWriteH -#define LinearReadWriteH -//--------------------------------------------------------------------------- -#include -#include -#include -#include -#include -#include -//--------------------------------------------------------------------------- -class TfrmLinearReadWrite : public TForm -{ -__published: // IDE-managed Components - TStaticText *pnlHeader; - TPanel *pnlAuth; - TStatusBar *stbFunction; - TRadioButton *rbAUTH1A; - TRadioButton *rbAUTH1B; - TLabel *lblKeyIndex; - TComboBox *cboKeyIndex; - TLabel *lblPK; - TPageControl *pgLinearReadWrite; - TTabSheet *tabLinearRead; - TTabSheet *tabLinearReadAKM1; - TTabSheet *tabLinearReadAKM2; - TTabSheet *tabLinearReadPK; - TMemo *txtLinearRead; - TLabel *lblLinearRead; - TLabel *lblLRLinearAddress; - TEdit *txtLRLinearAddress; - TLabel *lblLRDataLength; - TEdit *txtLRDataLength; - TButton *btnLinearRead; - TLabel *lblReadBytes; - TEdit *txtLRBytesReturned; - TLabel *lblLinearReadAKM1; - TMemo *txtLinearReadAKM1; - TLabel *lblLRLinearAddressAKM1; - TEdit *txtLRLinearAddressAKM1; - TLabel *lblLRDataLengthAKM1; - TEdit *txtLRDataLengthAKM1; - TLabel *lblReadBytesAKM1; - TEdit *txtLRBytesReturnedAKM1; - TButton *btnLinearReadAKM1; - TLabel *lblLinearReadAKM2; - TMemo *txtLinearReadAKM2; - TLabel *lblLRLinearAddressAKM2; - TEdit *txtLRLinearAddressAKM2; - TLabel *lblLRDataLengthAKM2; - TEdit *txtLRDataLengthAKM2; - TLabel *lblReadBytesAKM2; - TEdit *txtLRBytesReturnedAKM2; - TButton *btnLinearReadAKM2; - TLabel *lblLinearReadPK; - TMemo *txtLinearReadPK; - TLabel *lblLRLinearAdrressPK; - TEdit *txtLRLinearAddressPK; - TLabel *lblLRDataLengthPK; - TEdit *txtLRDataLengthPK; - TLabel *lblReadBytesPK; - TEdit *txtLRBytesReturnedPK; - TButton *btnLinearReadPK; - TTabSheet *tabLinearWrite; - TTabSheet *tabLinearWriteAKM1; - TTabSheet *tabLinearWriteAKM2; - TTabSheet *tabLinearWritePK; - TLabel *lblLinearWrite; - TLabel *lblLWLinearAddress; - TEdit *txtLWLinearAddress; - TLabel *lblLWDataLength; - TEdit *txtLWDataLength; - TLabel *lblBytesWritten; - TEdit *txtBytesWritten; - TButton *btnLinearWrite; - TLabel *lblLinearWriteAKM1; - TLabel *lblLWLinearAddressAKM1; - TEdit *txtLWLinearAddressAKM1; - TLabel *lblLWDataLengthAKM1; - TEdit *txtLWDataLengthAKM1; - TLabel *lblBytesWrittenAKM1; - TEdit *txtBytesWrittenAKM1; - TButton *btnLinearWriteAKM1; - TLabel *lblLinearWriteAKM2; - TLabel *lblLWLinearAddressAKM2; - TEdit *txtLWLinearAddressAKM2; - TLabel *lblLWDataLengthAKM2; - TEdit *txtLWDataLengthAKM2; - TLabel *lblBytesWrittenAKM2; - TEdit *txtBytesWrittenAKM2; - TButton *btnLinearWriteAKM2; - TLabel *lblLinearWritePK; - TLabel *lblLWLinearAddressPK; - TEdit *txtLWLinearAddressPK; - TLabel *lblLWDataLengthPK; - TEdit *txtLWDataLengthPK; - TLabel *lblBytesWrittenPK; - TEdit *txtBytesWrittenPK; - TButton *btnLinearWritePK; - TRichEdit *txtLinearWrite; - TRichEdit *txtLinearWriteAKM1; - TRichEdit *txtLinearWriteAKM2; - TRichEdit *txtLinearWritePK; - void __fastcall OnPK_KeyPress(TObject *Sender,char &Key); - void __fastcall FormCreate(TObject *Sender); - void __fastcall OnPK_Exit(TObject *Sender); - void __fastcall btnLinearReadClick(TObject *Sender); - void __fastcall btnLinearReadAKM1Click(TObject *Sender); - void __fastcall btnLinearReadAKM2Click(TObject *Sender); - void __fastcall btnLinearReadPKClick(TObject *Sender); - void __fastcall btnLinearWriteClick(TObject *Sender); - void __fastcall btnLinearWriteAKM2Click(TObject *Sender); - void __fastcall btnLinearWriteAKM1Click(TObject *Sender); - void __fastcall btnLinearWritePKClick(TObject *Sender); - void __fastcall txtLinearWriteChange(TObject *Sender); - void __fastcall txtLinearWritePKChange(TObject *Sender); - void __fastcall txtLinearWriteAKM2Change(TObject *Sender); - void __fastcall txtLinearWriteAKM1Change(TObject *Sender); -private: - unsigned long result; - -public: - __fastcall TfrmLinearReadWrite(TComponent* Owner); - -}; -//--------------------------------------------------------------------------- -extern PACKAGE TfrmLinearReadWrite *frmLinearReadWrite; -//--------------------------------------------------------------------------- -#endif diff --git a/uFCoderAdvanced/LinearReadWrite.obj b/uFCoderAdvanced/LinearReadWrite.obj deleted file mode 100644 index 63944b335dce8a217546c8a2a1da5a812bb91662..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179086 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

O>1&k9q^ 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 -#pragma hdrstop - -#include "SectorTrailerWrite.h" -#include "Globals.h" -#include "uFCoder1x.h" - -#pragma package(smart_init) -#pragma resource "*.dfm" -TfrmSectorTrailerWrite *frmSectorTrailerWrite; - -__fastcall TfrmSectorTrailerWrite::TfrmSectorTrailerWrite(TComponent* Owner) - : TForm(Owner) -{ - -} - -void __fastcall TfrmSectorTrailerWrite::OnPK_KeyPress(TObject *Sender,char &Key) -{ - Check_PK_key_press(Sender,Key); -} - -void __fastcall TfrmSectorTrailerWrite:: OnPK_Exit(TObject *Sender) -{ - Check_On_Exit(Sender); -} -void __fastcall TfrmSectorTrailerWrite::OnKeyA_KeyPress(TObject *Sender,char &Key) -{ - Check_key_press(Sender,Key,chkHexA); -} -void __fastcall TfrmSectorTrailerWrite::OnKeyB_KeyPress(TObject *Sender,char &Key) -{ - Check_key_press(Sender,Key,chkHexB); -} -void __fastcall TfrmSectorTrailerWrite:: OnKeyA_Exit(TObject *Sender) -{ - Check_On_ExitPK(Sender,chkHexA); -} -void __fastcall TfrmSectorTrailerWrite:: OnKeyB_Exit(TObject *Sender) -{ - Check_On_ExitPK(Sender,chkHexB); -} - - - -void __fastcall TfrmSectorTrailerWrite::FormCreate(TObject *Sender) -{ - CreateKey(this,31,27,320,5,"txtPKKey",pnlAuth,OnPK_KeyPress,OnPK_Exit); - CreateKey(this,31,27,40,25,"txtKeyA",pnlKeyA,OnKeyA_KeyPress,OnKeyA_Exit); - CreateKey(this,31,27,40,25,"txtKeyB",pnlKeyB,OnKeyB_KeyPress,OnKeyB_Exit); -} - -void __fastcall TfrmSectorTrailerWrite::chkHexAClick(TObject *Sender) -{ - Check_hex(this,chkHexA,"txtKeyA"); -} - -void __fastcall TfrmSectorTrailerWrite::chkHexBClick(TObject *Sender) -{ - Check_hex(this,chkHexB,"txtKeyB"); -} - -void __fastcall TfrmSectorTrailerWrite::btnSectorTrailerWriteClick(TObject *Sender) -{ - if (GetFunctionStart() || GetReaderStart()) return; - unsigned char ucKeyIndex = cboKeyIndex->Text.ToInt(), - ucAuthMode = AuthMode(rbAUTH1A), - ucAddressingMode = 0, - ucBlockOrSectorAddress = 0, - ucAccessBits0 = 0, - ucAccessBits1 = 0, - ucAccessBits2 = 0, - ucTrailerAccessBits = 0, - ucTrailerByte9 = 0, - KeyA[6], - KeyB[6]; - DL_STATUS ulFResult = 0; - try - { - SetFunctionStart(true); - if (AnsiString(Trim(txtTrailerByte9->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the TRAILER BYTE 9 !","Warning !",MB_OK | MB_ICONWARNING); - txtTrailerByte9->SetFocus(); - return; - } - - ucAddressingMode = cboAddressingMode->Text.ToInt(); - ucBlockOrSectorAddress = cboBlockOrSectorAccess->Text.ToInt(); - ucAccessBits0 = cboAccessBits0->Text.ToInt(); - ucAccessBits1 = cboAccessBits1->Text.ToInt(); - ucAccessBits2 = cboAccessBits2->Text.ToInt(); - ucTrailerAccessBits = cboTrailerAccessBits->Text.ToInt(); - ucTrailerByte9 = txtTrailerByte9->Text.ToInt(); - Key_save(this,chkHexA,KeyA,"txtKeyA"); - Key_save(this,chkHexB,KeyB,"txtKeyB"); - ulFResult=SectorTrailerWrite(ucAddressingMode,ucBlockOrSectorAddress,KeyA,ucAccessBits0,ucAccessBits1,ucAccessBits2, - ucTrailerAccessBits,ucTrailerByte9,KeyB,ucAuthMode,ucKeyIndex); - if (ulFResult==DL_OK) - { - ReaderUISignal(FRES_OK_LIGHT,FRES_OK_SOUND); - SetStatusBar(stbFunction,ulFResult); - } - else - { - ReaderUISignal(FERR_LIGHT,FERR_SOUND); - SetStatusBar(stbFunction,ulFResult); - } - } - __finally - { - SetFunctionStart(false); - } -} - - -void __fastcall TfrmSectorTrailerWrite::btnSectorTrailerWriteAKM1Click(TObject *Sender) -{ - if (GetFunctionStart() || GetReaderStart()) return; - - unsigned char ucAuthMode = AuthMode(rbAUTH1A), - ucAddressingMode = 0, - ucBlockOrSectorAddress = 0, - ucAccessBits0 = 0, - ucAccessBits1 = 0, - ucAccessBits2 = 0, - ucTrailerAccessBits = 0, - ucTrailerByte9 = 0, - KeyA[6], - KeyB[6]; - DL_STATUS ulFResult = 0; - try - { - SetFunctionStart(true); - if (AnsiString(Trim(txtTrailerByte9AKM1->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the TRAILER BYTE 9 !","Warning !",MB_OK | MB_ICONWARNING); - txtTrailerByte9AKM1->SetFocus(); - return; - } - - ucAddressingMode = cboAddressingModeAKM1->Text.ToInt(); - ucBlockOrSectorAddress = cboBlockOrSectorAccessAKM1->Text.ToInt(); - ucAccessBits0 = cboAccessBits0AKM1->Text.ToInt(); - ucAccessBits1 = cboAccessBits1AKM1->Text.ToInt(); - ucAccessBits2 = cboAccessBits2AKM1->Text.ToInt(); - ucTrailerAccessBits = cboTrailerAccessBitsAKM1->Text.ToInt(); - ucTrailerByte9 = txtTrailerByte9AKM1->Text.ToInt(); - Key_save(this,chkHexA,KeyA,"txtKeyA"); - Key_save(this,chkHexB,KeyB,"txtKeyB"); - ulFResult = SectorTrailerWrite_AKM1(ucAddressingMode,ucBlockOrSectorAddress,KeyA,ucAccessBits0,ucAccessBits1,ucAccessBits2, - ucTrailerAccessBits,ucTrailerByte9,KeyB,ucAuthMode); - if (ulFResult==DL_OK) - { - ReaderUISignal(FRES_OK_LIGHT,FRES_OK_SOUND); - SetStatusBar(stbFunction,ulFResult); - } - else - { - ReaderUISignal(FERR_LIGHT,FERR_SOUND); - SetStatusBar(stbFunction,ulFResult); - } - } - __finally - { - SetFunctionStart(false); - } -} - - -void __fastcall TfrmSectorTrailerWrite::btnSectorTrailerWriteAKM2Click(TObject *Sender) -{ - if (GetFunctionStart() || GetReaderStart()) return; - - unsigned char ucAuthMode = AuthMode(rbAUTH1A), - ucAddressingMode = 0, - ucBlockOrSectorAddress = 0, - ucAccessBits0 = 0, - ucAccessBits1 = 0, - ucAccessBits2 = 0, - ucTrailerAccessBits = 0, - ucTrailerByte9 = 0, - KeyA[6], - KeyB[6]; - DL_STATUS ulFResult = 0; - try - { - SetFunctionStart(true); - if (AnsiString(Trim(txtTrailerByte9AKM2->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the TRAILER BYTE 9 !","Warning !",MB_OK | MB_ICONWARNING); - txtTrailerByte9AKM2->SetFocus(); - return; - } - - ucAddressingMode = cboAddressingModeAKM2->Text.ToInt(); - ucBlockOrSectorAddress = cboBlockOrSectorAccessAKM2->Text.ToInt(); - ucAccessBits0 = cboAccessBits0AKM2->Text.ToInt(); - ucAccessBits1 = cboAccessBits1AKM2->Text.ToInt(); - ucAccessBits2 = cboAccessBits2AKM2->Text.ToInt(); - ucTrailerAccessBits = cboTrailerAccessBitsAKM2->Text.ToInt(); - ucTrailerByte9 = txtTrailerByte9AKM2->Text.ToInt(); - Key_save(this,chkHexA,KeyA,"txtKeyA"); - Key_save(this,chkHexB,KeyB,"txtKeyB"); - ulFResult = SectorTrailerWrite_AKM2(ucAddressingMode,ucBlockOrSectorAddress,KeyA,ucAccessBits0,ucAccessBits1,ucAccessBits2, - ucTrailerAccessBits,ucTrailerByte9,KeyB,ucAuthMode); - if (ulFResult==DL_OK) - { - ReaderUISignal(FRES_OK_LIGHT,FRES_OK_SOUND); - SetStatusBar(stbFunction,ulFResult); - } - else - { - ReaderUISignal(FERR_LIGHT,FERR_SOUND); - SetStatusBar(stbFunction,ulFResult); - } - } - __finally - { - SetFunctionStart(false); - } -} - - -void __fastcall TfrmSectorTrailerWrite::btnSectorTrailerWritePKClick(TObject *Sender) -{ - if (GetFunctionStart() || GetReaderStart()) return; - - unsigned char ucAuthMode = AuthMode(rbAUTH1A), - ucAddressingMode = 0, - ucBlockOrSectorAddress = 0, - ucAccessBits0 = 0, - ucAccessBits1 = 0, - ucAccessBits2 = 0, - ucTrailerAccessBits = 0, - ucTrailerByte9 = 0, - KeyA[6], - KeyB[6]; - DL_STATUS ulFResult = 0; - try - { - SetFunctionStart(true); - if (AnsiString(Trim(txtTrailerByte9PK->Text)).IsEmpty()) - { - Application->MessageBoxA("You must enter the TRAILER BYTE 9 !","Warning !",MB_OK | MB_ICONWARNING); - txtTrailerByte9PK->SetFocus(); - return; - } - - ucAddressingMode = cboAddressingModePK->Text.ToInt(); - ucBlockOrSectorAddress = cboBlockOrSectorAccessPK->Text.ToInt(); - ucAccessBits0 = cboAccessBits0PK->Text.ToInt(); - ucAccessBits1 = cboAccessBits1PK->Text.ToInt(); - ucAccessBits2 = cboAccessBits2PK->Text.ToInt(); - ucTrailerAccessBits = cboTrailerAccessBitsPK->Text.ToInt(); - ucTrailerByte9 = txtTrailerByte9PK->Text.ToInt(); - Key_save(this,chkHexA,KeyA,"txtKeyA"); - Key_save(this,chkHexB,KeyB,"txtKeyB"); - - ulFResult = SectorTrailerWrite_PK(ucAddressingMode,ucBlockOrSectorAddress,KeyA,ucAccessBits0,ucAccessBits1,ucAccessBits2, - ucTrailerAccessBits,ucTrailerByte9,KeyB,ucAuthMode,PKValue(this)); - if (ulFResult==DL_OK) - { - ReaderUISignal(FRES_OK_LIGHT,FRES_OK_SOUND); - SetStatusBar(stbFunction,ulFResult); - } - else - { - ReaderUISignal(FERR_LIGHT,FERR_SOUND); - SetStatusBar(stbFunction,ulFResult); - } - } - __finally - { - SetFunctionStart(false); - } -} - - diff --git a/uFCoderAdvanced/SectorTrailerWrite.ddp b/uFCoderAdvanced/SectorTrailerWrite.ddp deleted file mode 100644 index cdc0ee8c2b54a98895d906932c4351134611c8d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51 zcmZRVaB=ks@bJ`g@pN<#a`e>;@DB=c^Y`)e=VxFz;K0Pl$;KI)SCUzhlbT}4#=r!G E07AM8lK=n! diff --git a/uFCoderAdvanced/SectorTrailerWrite.dfm b/uFCoderAdvanced/SectorTrailerWrite.dfm deleted file mode 100644 index 4697eb7..0000000 --- a/uFCoderAdvanced/SectorTrailerWrite.dfm +++ /dev/null @@ -1,1153 +0,0 @@ -object frmSectorTrailerWrite: TfrmSectorTrailerWrite - Left = 386 - Top = 173 - Width = 527 - Height = 402 - Caption = 'Sector Trailer Write' - Color = clBtnFace - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [] - OldCreateOrder = False - OnCreate = FormCreate - PixelsPerInch = 96 - TextHeight = 13 - object pnlHeader: TStaticText - Left = 0 - Top = 0 - Width = 511 - Height = 25 - Align = alTop - Alignment = taCenter - AutoSize = False - BorderStyle = sbsSingle - Caption = 'SectorTrailer Write(AKM1,AKM2,PK)' - Color = clWhite - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -17 - Font.Name = 'Verdana' - Font.Style = [] - ParentColor = False - ParentFont = False - TabOrder = 0 - end - object pnlAuth: TPanel - Left = 0 - Top = 25 - Width = 511 - Height = 31 - Align = alTop - Caption = ' ' - Ctl3D = True - ParentCtl3D = False - TabOrder = 1 - object lblKeyIndex: TLabel - Left = 179 - Top = 8 - Width = 59 - Height = 13 - Caption = 'Key Index' - end - object lblPK: TLabel - Left = 297 - Top = 8 - Width = 15 - Height = 13 - Caption = 'PK' - end - object rbAUTH1A: TRadioButton - Left = 8 - Top = 7 - Width = 73 - Height = 17 - Cursor = crHandPoint - Caption = 'AUTH 1A' - Checked = True - TabOrder = 0 - TabStop = True - end - object rbAUTH1B: TRadioButton - Left = 87 - Top = 7 - Width = 73 - Height = 17 - Cursor = crHandPoint - Caption = 'AUTH 1B' - TabOrder = 1 - end - object cboKeyIndex: TComboBox - Left = 245 - Top = 5 - Width = 40 - Height = 21 - Cursor = crHandPoint - Ctl3D = True - DropDownCount = 10 - Font.Charset = ANSI_CHARSET - Font.Color = clWindowText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 13 - ItemIndex = 0 - ParentCtl3D = False - ParentFont = False - TabOrder = 2 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7' - '8' - '9' - '10' - '11' - '12' - '13' - '14' - '15' - '16' - '17' - '18' - '19' - '20' - '21' - '22' - '23' - '24' - '25' - '26' - '27' - '28' - '29' - '30' - '31') - end - end - object stbFunction: TStatusBar - Left = 0 - Top = 339 - Width = 511 - Height = 25 - Font.Charset = ANSI_CHARSET - Font.Color = clBtnText - Font.Height = -11 - Font.Name = 'Verdana' - Font.Style = [] - Panels = < - item - Alignment = taCenter - Text = 'Function Error:' - Width = 119 - end - item - Alignment = taCenter - Width = 50 - end - item - Alignment = taCenter - Width = 50 - end> - SimplePanel = False - UseSystemFont = False - end - object pnlKeys: TPanel - Left = 0 - Top = 56 - Width = 511 - Height = 73 - Align = alTop - TabOrder = 3 - object pnlKeyA: TPanel - Left = 1 - Top = 1 - Width = 255 - Height = 71 - Align = alLeft - Caption = ' ' - TabOrder = 0 - object lblKeyA: TStaticText - Left = 1 - Top = 1 - Width = 253 - Height = 18 - Align = alTop - Alignment = taCenter - AutoSize = False - BorderStyle = sbsSingle - Caption = 'KEY A' - Color = clWhite - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentColor = False - ParentFont = False - TabOrder = 0 - end - object chkHexA: TCheckBox - Left = 42 - Top = 48 - Width = 57 - Height = 17 - Cursor = crHandPoint - Caption = 'Hex' - TabOrder = 1 - OnClick = chkHexAClick - end - end - object pnlKeyB: TPanel - Left = 256 - Top = 1 - Width = 254 - Height = 71 - Align = alClient - Caption = ' ' - TabOrder = 1 - object lblKeyB: TStaticText - Left = 1 - Top = 1 - Width = 252 - Height = 18 - Align = alTop - Alignment = taCenter - AutoSize = False - BorderStyle = sbsSingle - Caption = 'KEY B' - Color = clWhite - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -12 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentColor = False - ParentFont = False - TabOrder = 0 - end - object chkHexB: TCheckBox - Left = 42 - Top = 48 - Width = 57 - Height = 17 - Cursor = crHandPoint - Caption = 'Hex' - TabOrder = 1 - OnClick = chkHexBClick - end - end - end - object pgSectorTrailerWrite: TPageControl - Left = 0 - Top = 129 - Width = 511 - Height = 210 - ActivePage = tabSectorTrailerWrite - Align = alClient - TabIndex = 0 - TabOrder = 4 - object tabSectorTrailerWrite: TTabSheet - Caption = 'SectorTrailer Write' - object lblAddressingMode: TLabel - Left = 49 - Top = 24 - Width = 97 - Height = 13 - Caption = 'Addressing Mode' - end - object lblBlockOrSectorAccess: TLabel - Left = 49 - Top = 49 - Width = 131 - Height = 13 - Caption = 'Block or Sector Access' - end - object lblAccessBits0: TLabel - Left = 49 - Top = 79 - Width = 75 - Height = 13 - Caption = 'Access Bits 0' - end - object lblAccessBits1: TLabel - Left = 49 - Top = 103 - Width = 75 - Height = 13 - Caption = 'Access Bits 1' - end - object lblAccessBits2: TLabel - Left = 49 - Top = 127 - Width = 79 - Height = 13 - Caption = 'Access Bits 2 ' - end - object lblTrailerAccessBits: TLabel - Left = 273 - Top = 23 - Width = 105 - Height = 13 - Caption = 'Trailer Access Bits' - end - object lblTrailerByte9: TLabel - Left = 273 - Top = 50 - Width = 78 - Height = 13 - Caption = 'Trailer Byte 9' - end - object cboAddressingMode: TComboBox - Left = 193 - Top = 22 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ItemIndex = 0 - ParentFont = False - TabOrder = 0 - Text = '0' - Items.Strings = ( - '0' - '1') - end - object cboBlockOrSectorAccess: TComboBox - Left = 193 - Top = 46 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ItemIndex = 0 - ParentFont = False - TabOrder = 1 - Text = '0' - Items.Strings = ( - '0' - '1') - end - object cboAccessBits0: TComboBox - Left = 193 - Top = 76 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 2 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object cboAccessBits1: TComboBox - Left = 193 - Top = 100 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 3 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object cboAccessBits2: TComboBox - Left = 193 - Top = 124 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 4 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object cboTrailerAccessBits: TComboBox - Left = 417 - Top = 20 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 5 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object txtTrailerByte9: TEdit - Left = 417 - Top = 48 - Width = 39 - Height = 24 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 3 - ParentFont = False - TabOrder = 6 - Text = ' ' - end - object btnSectorTrailerWrite: TButton - Left = 273 - Top = 80 - Width = 185 - Height = 65 - Cursor = crHandPoint - Caption = 'WRITE' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 7 - OnClick = btnSectorTrailerWriteClick - end - end - object tabSectorTrailerWriteAKM1: TTabSheet - Caption = 'SectorTrailer_AKM1' - ImageIndex = 1 - object lblAddressingModeAKM1: TLabel - Left = 49 - Top = 24 - Width = 97 - Height = 13 - Caption = 'Addressing Mode' - end - object lblBlockOrSectorAccessAKM1: TLabel - Left = 49 - Top = 49 - Width = 131 - Height = 13 - Caption = 'Block or Sector Access' - end - object lblAccessBits0AKM1: TLabel - Left = 49 - Top = 79 - Width = 75 - Height = 13 - Caption = 'Access Bits 0' - end - object lblAccessBits1AKM1: TLabel - Left = 49 - Top = 103 - Width = 75 - Height = 13 - Caption = 'Access Bits 1' - end - object lblAccessBits2AKM1: TLabel - Left = 49 - Top = 127 - Width = 79 - Height = 13 - Caption = 'Access Bits 2 ' - end - object lblTrailerAccessBitsAKM1: TLabel - Left = 273 - Top = 23 - Width = 105 - Height = 13 - Caption = 'Trailer Access Bits' - end - object lblTrailerByte9AKM1: TLabel - Left = 273 - Top = 50 - Width = 78 - Height = 13 - Caption = 'Trailer Byte 9' - end - object cboAddressingModeAKM1: TComboBox - Left = 193 - Top = 22 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ItemIndex = 0 - ParentFont = False - TabOrder = 0 - Text = '0' - Items.Strings = ( - '0' - '1') - end - object cboBlockOrSectorAccessAKM1: TComboBox - Left = 193 - Top = 46 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ItemIndex = 0 - ParentFont = False - TabOrder = 1 - Text = '0' - Items.Strings = ( - '0' - '1') - end - object cboAccessBits0AKM1: TComboBox - Left = 193 - Top = 76 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 2 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object cboAccessBits1AKM1: TComboBox - Left = 193 - Top = 100 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 3 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object cboAccessBits2AKM1: TComboBox - Left = 193 - Top = 124 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 4 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object cboTrailerAccessBitsAKM1: TComboBox - Left = 417 - Top = 20 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 5 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object txtTrailerByte9AKM1: TEdit - Left = 417 - Top = 48 - Width = 39 - Height = 24 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 3 - ParentFont = False - TabOrder = 6 - Text = ' ' - end - object btnSectorTrailerWriteAKM1: TButton - Left = 273 - Top = 80 - Width = 185 - Height = 65 - Cursor = crHandPoint - Caption = 'WRITE' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 7 - OnClick = btnSectorTrailerWriteAKM1Click - end - end - object tabSectorTrailerWriteAKM2: TTabSheet - Caption = 'SectorTrailer_AKM2' - ImageIndex = 2 - object lblAddressingModeAKM2: TLabel - Left = 49 - Top = 24 - Width = 97 - Height = 13 - Caption = 'Addressing Mode' - end - object lblBlockOrSectorAccessAKM2: TLabel - Left = 49 - Top = 49 - Width = 131 - Height = 13 - Caption = 'Block or Sector Access' - end - object lblAccessBits0AKM2: TLabel - Left = 49 - Top = 79 - Width = 75 - Height = 13 - Caption = 'Access Bits 0' - end - object lblAccessBits1AKM2: TLabel - Left = 49 - Top = 103 - Width = 75 - Height = 13 - Caption = 'Access Bits 1' - end - object lblAccessBits2AKM2: TLabel - Left = 49 - Top = 127 - Width = 79 - Height = 13 - Caption = 'Access Bits 2 ' - end - object lblTrailerAccessBitsAKM2: TLabel - Left = 273 - Top = 23 - Width = 105 - Height = 13 - Caption = 'Trailer Access Bits' - end - object lblTrailerByte9AKM2: TLabel - Left = 273 - Top = 50 - Width = 78 - Height = 13 - Caption = 'Trailer Byte 9' - end - object cboAddressingModeAKM2: TComboBox - Left = 193 - Top = 22 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ItemIndex = 0 - ParentFont = False - TabOrder = 0 - Text = '0' - Items.Strings = ( - '0' - '1') - end - object cboBlockOrSectorAccessAKM2: TComboBox - Left = 193 - Top = 46 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ItemIndex = 0 - ParentFont = False - TabOrder = 1 - Text = '0' - Items.Strings = ( - '0' - '1') - end - object cboAccessBits0AKM2: TComboBox - Left = 193 - Top = 76 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 2 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object cboAccessBits1AKM2: TComboBox - Left = 193 - Top = 100 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 3 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object cboAccessBits2AKM2: TComboBox - Left = 193 - Top = 124 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 4 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object cboTrailerAccessBitsAKM2: TComboBox - Left = 417 - Top = 20 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 5 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object txtTrailerByte9AKM2: TEdit - Left = 417 - Top = 48 - Width = 39 - Height = 24 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 3 - ParentFont = False - TabOrder = 6 - Text = ' ' - end - object btnSectorTrailerWriteAKM2: TButton - Left = 273 - Top = 80 - Width = 185 - Height = 65 - Cursor = crHandPoint - Caption = 'WRITE' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 7 - OnClick = btnSectorTrailerWriteAKM2Click - end - end - object tabSectorTrailerWritePK: TTabSheet - Caption = 'SectorTrailer_PK' - ImageIndex = 3 - object lblAddressingModePK: TLabel - Left = 49 - Top = 24 - Width = 97 - Height = 13 - Caption = 'Addressing Mode' - end - object lblBlockOrSectorAccessPK: TLabel - Left = 49 - Top = 49 - Width = 131 - Height = 13 - Caption = 'Block or Sector Access' - end - object lblAccessBits0PK: TLabel - Left = 49 - Top = 79 - Width = 75 - Height = 13 - Caption = 'Access Bits 0' - end - object lblAccessBits1PK: TLabel - Left = 49 - Top = 103 - Width = 75 - Height = 13 - Caption = 'Access Bits 1' - end - object lblAccessBits2PK: TLabel - Left = 49 - Top = 127 - Width = 79 - Height = 13 - Caption = 'Access Bits 2 ' - end - object lblTrailerAccessBitsPK: TLabel - Left = 273 - Top = 23 - Width = 105 - Height = 13 - Caption = 'Trailer Access Bits' - end - object lblTrailerByte9PK: TLabel - Left = 273 - Top = 50 - Width = 78 - Height = 13 - Caption = 'Trailer Byte 9' - end - object cboAddressingModePK: TComboBox - Left = 193 - Top = 22 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ItemIndex = 0 - ParentFont = False - TabOrder = 0 - Text = '0' - Items.Strings = ( - '0' - '1') - end - object cboBlockOrSectorAccessPK: TComboBox - Left = 193 - Top = 46 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ItemIndex = 0 - ParentFont = False - TabOrder = 1 - Text = '0' - Items.Strings = ( - '0' - '1') - end - object cboAccessBits0PK: TComboBox - Left = 193 - Top = 76 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 2 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object cboAccessBits1PK: TComboBox - Left = 193 - Top = 100 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 3 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object cboAccessBits2PK: TComboBox - Left = 193 - Top = 124 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 4 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object cboTrailerAccessBitsPK: TComboBox - Left = 417 - Top = 20 - Width = 41 - Height = 24 - Cursor = crHandPoint - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ItemHeight = 16 - ParentFont = False - TabOrder = 5 - Text = '0' - Items.Strings = ( - '0' - '1' - '2' - '3' - '4' - '5' - '6' - '7') - end - object txtTrailerByte9PK: TEdit - Left = 417 - Top = 48 - Width = 39 - Height = 24 - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - MaxLength = 3 - ParentFont = False - TabOrder = 6 - Text = ' ' - end - object btnSectorTrailerWritePK: TButton - Left = 273 - Top = 80 - Width = 185 - Height = 65 - Cursor = crHandPoint - Caption = 'WRITE' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -13 - Font.Name = 'Verdana' - Font.Style = [fsBold] - ParentFont = False - TabOrder = 7 - OnClick = btnSectorTrailerWritePKClick - end - end - end -end diff --git a/uFCoderAdvanced/ftd2xx.dll b/uFCoderAdvanced/ftd2xx.dll deleted file mode 100644 index dc923a9cf2d49238ae76f12064270a907e3b7265..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206144 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 -- GitLab