ich habe ein wenig mit meiner Logitech G15-Tastatur gespielt.
Dieses Teil hat ein LCD-Display, welches sich programmieren lässt.
Also habe ich mal die Header-Datei vom SDK für PB umgeschrieben und auch gleich ein kleines Beispiel gebastelt.
Ich brauche das für nen Messanger, also nicht die Grafiken klauen, nur inspirieren lassen (vorrausgesetzt irgendjemand hat diese Tastatur überhaupt, bzw. will seinen Applikationen den Zugriff darauf ermöglichen).
Dank geht an Freak, der mir durch seinen Tipp die letzten Haare gerettet hat (*Rauf* *Rauf*).
Unterstützt werden nur Bitmaps, und auch nur bis kleinstenfalls 8 Bit Farbtiefe.
Klar wären Monochrom-Pics (weil LCD-Display) perfekt gewesen, aber ich war zu faul die Bits in Bytes umzuwursten.
(Ausserdem macht PB eh meistens 24Bit-Bilder draus).
Hier die Inlcude:
Code: Alles auswählen
;/---------------------------------
;|
;| G15_Header.pbi
;|
;| Main Include for playing with
;| the Logitech G15 Keyboard-Display
;|
;| You need to copy the 'lgLcd.lib'
;| to the same dir as this Header.
;| The 'lgLcd.lib' should be on the
;| Driver CD shipping with your
;| Keyboard.
;| (Or here:
;| http://evemon.battleclinic.com/cgi-bin/trac.cgi/changeset/402 )
;|
;| lglcd.h (c)Logitech,
;| G15_Header.pbi (PB-Version) (c)HeX0R
;|
;/---------------------------------
;Invalid handle definitions
#LGLCD_INVALID_CONNECTION = -1
#LGLCD_INVALID_DEVICE = -1
;Soft-Button masks
#LGLCDBUTTON_BUTTON0 = $00000001
#LGLCDBUTTON_BUTTON1 = $00000002
#LGLCDBUTTON_BUTTON2 = $00000004
#LGLCDBUTTON_BUTTON3 = $00000008
;lgLcdBitmap
#LGLCD_BMP_FORMAT_160x43x1 = $00000001
#LGLCD_BMP_WIDTH = 160
#LGLCD_BMP_HEIGHT = 43
;Priorities
#LGLCD_PRIORITY_IDLE_NO_SHOW = 0
#LGLCD_PRIORITY_BACKGROUND = 64
#LGLCD_PRIORITY_NORMAL = 128
#LGLCD_PRIORITY_ALERT = 255
Macro LGLCD_SYNC_UPDATE(priority)
($80000000 | priority)
EndMacro
Macro LGLCD_ASYNC_UPDATE(priority)
priority
EndMacro
;Callback used To notify client of soft button change
;Declare.l lgLcdOnSoftButtonsCB(device.l, dwButtons, pContext.l)
;Callback used To allow client To pop up a "configuration panel"
;Declare.l lgLcdOnConfigureCB(connection.l, pContect.l)
Structure lgLcdDeviceDesc
Width.l
Height.l
Bpp.l
NumSoftButtons.l
EndStructure
Structure lgLcdBitmapHeader
Format.l
EndStructure
Structure lgLcdBitmap160x43x1
hdr.lgLcdBitmapHeader
pixels.b[#LGLCD_BMP_WIDTH * #LGLCD_BMP_HEIGHT]
EndStructure
Structure lgLcdConfigureContext
*configCallback
*configContext
EndStructure
Structure lgLcdConnectContext
*appFriendlyName
isPersistent.l
isAutostartable.l
onConfigure.lgLcdConfigureContext
connection.l
EndStructure
Structure lgLcdSoftbuttonsChangedContext
*softbuttonsChangedCallback
*softbuttonsChangedContext
EndStructure
Structure lgLcdOpenContext
connection.l
index.l
onSoftbuttonsChanged.lgLcdSoftbuttonsChangedContext
device.l
EndStructure
Import "lgLcd.lib"
lgLcdInit()
lgLcdDeInit()
CompilerIf #PB_Compiler_Unicode
lgLcdConnect.l(*ctx.lgLcdConnectContext) As "_lgLcdConnectW@4"
CompilerElse
lgLcdConnect.l(*ctx.lgLcdConnectContext) As "_lgLcdConnectA@4"
CompilerEndIf
lgLcdDisconnect.l(connection.l)
lgLcdEnumerate.l(connection.l, index.l, *description.lgLcdDeviceDesc)
lgLcdOpen.l(*ctx.lgLcdOpenContext)
lgLcdClose.l(device.l)
lgLcdReadSoftButtons.l(device.l, *buttons)
lgLcdUpdateBitmap.l(device.l, *bitmap.lgLcdBitmapHeader, priority.l)
EndImport
Procedure.l Img2G15(Image.l, *bitmap.lgLcdBitmap160x43x1, Invers.l = 0)
Protected A.l, B.l, x.l, y.l, w.l, h.l, d.l, Result.l, hDC.l, *bmi.BITMAPINFO, *Buffer, Add.l
If IsImage(Image) = 0
ProcedureReturn #False
EndIf
w = ImageWidth(Image)
h = ImageHeight(Image)
d = ImageDepth(Image)
If w > #LGLCD_BMP_WIDTH
w = #LGLCD_BMP_WIDTH
h = h * #LGLCD_BMP_WIDTH / ImageWidth(Image)
If h > #LGLCD_BMP_HEIGHT
h = #LGLCD_BMP_HEIGHT
w = w * #LGLCD_BMP_HEIGHT / ImageHeight(Image)
EndIf
ElseIf h > #LGLCD_BMP_HEIGHT
h = #LGLCD_BMP_HEIGHT
w = w * #LGLCD_BMP_HEIGHT / ImageHeight(Image)
If w > #LGLCD_BMP_WIDTH
w = #LGLCD_BMP_WIDTH
h = h * #LGLCD_BMP_WIDTH / ImageWidth(Image)
EndIf
EndIf
If w <> ImageWidth(Image) Or h <> ImageHeight(Image)
ResizeImage(Image, w, h)
EndIf
*bitmap\hdr\Format = #LGLCD_BMP_FORMAT_160x43x1
hDC = StartDrawing(ImageOutput(Image))
If hDC
*bmi = AllocateMemory(SizeOf(BITMAPINFO) + 255 * SizeOf(RGBQUAD))
If *bmi
*bmi\bmiHeader\biSize = SizeOf(BITMAPINFOHEADER)
*bmi\bmiheader\biWidth = w
*bmi\bmiheader\biHeight = -h
*bmi\bmiheader\biPlanes = 1
*bmi\bmiheader\biBitCount = d
*bmi\bmiheader\biCompression = #BI_RGB
*Buffer = AllocateMemory(w * h * (d / 8))
If *Buffer = 0
StopDrawing()
Else
Result = GetDIBits_(hDC, ImageID(Image), 0, h, *Buffer, *bmi, #DIB_RGB_COLORS)
StopDrawing()
If Result
Add = 0
Select d
Case 8
For y = 0 To #LGLCD_BMP_HEIGHT - 1
For x = 0 To #LGLCD_BMP_WIDTH - 1
If y >= h Or x >= w
B = 255
Else
A = PeekB(*Buffer + Add) & $FF
A = PeekL(*bmi\bmiColors + A * SizeOf(RGBQUAD))
B = (A & $FF) + ((A >> 8) & $FF) + ((A >> 16) & $FF)
Add + 1
EndIf
If Invers
*bitmap\pixels[y * #LGLCD_BMP_WIDTH + x] = B / 3
Else
*bitmap\pixels[y * #LGLCD_BMP_WIDTH + x] = 255 - (B / 3)
EndIf
Next
Next
Case 16
For y = 0 To #LGLCD_BMP_HEIGHT - 1
For x = 0 To #LGLCD_BMP_WIDTH - 1
If y >= h Or x >= w
B = 510
Else
A = PeekW(*Buffer + Add)
B = (A & $FF) + ((A >> 8) & $FF)
Add + 2
EndIf
If Invers
*bitmap\pixels[y * #LGLCD_BMP_WIDTH + x] = B / 2
Else
*bitmap\pixels[y * #LGLCD_BMP_WIDTH + x] = 255 - (B / 2)
EndIf
Next
Next
Case 24
For y = 0 To #LGLCD_BMP_HEIGHT - 1
For x = 0 To #LGLCD_BMP_WIDTH - 1
If y >= h Or x >= w
B = 765
Else
A = PeekL(*Buffer + Add)
B = (A & $FF) + ((A >> 8) & $FF) + ((A >> 16) & $FF)
Add + 3
EndIf
If Invers
*bitmap\pixels[y * #LGLCD_BMP_WIDTH + x] = B / 3
Else
*bitmap\pixels[y * #LGLCD_BMP_WIDTH + x] = 255 - (B / 3)
EndIf
Next
Next
Case 32
For y = 0 To #LGLCD_BMP_HEIGHT - 1
For x = 0 To #LGLCD_BMP_WIDTH - 1
If y >= h Or x >= w
B = 765
Else
A = PeekL(*Buffer + Add)
B = (A & $FF) + ((A >> 8) & $FF) + ((A >> 16) & $FF)
Add + 4
EndIf
If Invers
*bitmap\pixels[y * #LGLCD_BMP_WIDTH + x] = B / 3
Else
*bitmap\pixels[y * #LGLCD_BMP_WIDTH + x] = 255 - (B / 3)
EndIf
Next
Next
EndSelect
EndIf
FreeMemory(*Buffer)
EndIf
FreeMemory(*bmi)
EndIf
EndIf
ProcedureReturn Result
EndProcedure
und das Beispiel:
Code: Alles auswählen
;/----------------------------
;|
;| Example File for the G15_Header.pbi
;|
;| Not much commented
;| (As allways...i'm sooo lazy)
;| but should be selfexplaining.
;|
;| If not study the 'lglcd.pdf'
;| which came with your keyboard.
;|
;| Pics are (c)HeX0R and for my
;| Messanger-Project, so don't
;| use them on your own Project!
;| (Or i will HeX0R you 2 D347H! *g*)
;|
;| SoftButtons (the 4 Small Buttons
;| under the Display) will only be
;| catched, when you switch the
;| Display-Focus to this App
;| (Named 'My Test Application').
;| This is by Logitech-Design.
;|
;| Have Phun!
;| HeX
;| http://h3x0r.ath.cx
;|
;/----------------------------
XIncludeFile "G15_Header.pbi"
Procedure.l lgLcdOnSoftButtonsCB(device.l, dwButtons.l, pContext.l)
;Callback which is being called, whenever a SoftButton is pressed
;(AND YOUR APPLICATION HAS THE FOCUS ON THE DISPLAY!)
If dwButtons & #LGLCDBUTTON_BUTTON0
SetGadgetState(0, ImageID(16))
Else
SetGadgetState(0, 0)
EndIf
If dwButtons & #LGLCDBUTTON_BUTTON1
SetGadgetState(1, ImageID(17))
Else
SetGadgetState(1, 0)
EndIf
If dwButtons & #LGLCDBUTTON_BUTTON2
SetGadgetState(2, ImageID(18))
Else
SetGadgetState(2, 0)
EndIf
If dwButtons & #LGLCDBUTTON_BUTTON3
SetGadgetState(3, ImageID(19))
Else
SetGadgetState(3, 0)
EndIf
EndProcedure
Procedure Main()
Protected ctx.lgLcdConnectContext, ctxo.lgLcdOpenContext, *bitmap
Protected FID.l, A.l, R.l, *Image_Buffer, i.l
*Image_Buffer = AllocateMemory(16384)
Dim Pointer.l(15)
CopyMemory(?MyPackPointers, @Pointer(), 64)
For i = 0 To 15
R = UnpackMemory(Pointer(i), *Image_Buffer + A)
CatchImage(i, *Image_Buffer + A)
A + R
Next i
If lgLcdInit() <> #ERROR_SUCCESS
MessageRequester("Error!", "Can't initialize G15-Display!")
End
EndIf
ctx\appFriendlyName = @"My Test Application"
ctx\isPersistent = 0
ctx\isAutostartable = 0
;Check for Callbacks
CompilerIf Defined(lgLcdOnConfigureCB, #PB_Procedure)
ctx\onConfigure\configCallback = @lgLcdOnConfigureCB()
ctx\onConfigure\configContext = 0
CompilerEndIf
CompilerIf Defined(lgLcdOnSoftButtonsCB, #PB_Procedure)
ctxo\onSoftbuttonsChanged\softbuttonsChangedCallback = @lgLcdOnSoftButtonsCB()
ctxo\onSoftbuttonsChanged\softbuttonsChangedContext = 0
CompilerEndIf
If lgLcdConnect(@ctx) <> #ERROR_SUCCESS
MessageRequester("Error!", "Can't Connect to G15-Display")
lgLcdDeInit()
End
EndIf
*bitmap = AllocateMemory(SizeOf(lgLcdBitmap160x43x1))
;-Start here
ctxo\connection = ctx\connection
ctxo\index = 0
If lgLcdOpen(@ctxo) = #ERROR_SUCCESS
If OpenWindow(0, 522, 122, 320, 90, "G15 Button-Status", #PB_Window_SystemMenu | #PB_Window_TitleBar) And CreateGadgetList(WindowID(0))
FID = LoadFont(0, "Verdana", 10, #PB_Font_Bold)
For i = 0 To 3
If CreateImage(16 + i, 70, 70)
StartDrawing(ImageOutput(16 + i))
Box(0, 0, 70, 70, 0)
Box(2, 2, 66, 66, RGB(255, 0, 0))
DrawingFont(FID)
DrawText(5, 25, "Button" + Str(i + 1), RGB(255, 255, 255), RGB(255, 0, 0))
StopDrawing()
ImageGadget(i, 5 + i*70 + i*10, 10, 70, 70, 0, #PB_Image_Border)
EndIf
Next i
R = Img2G15(0, *bitmap)
If R <> 0
lgLcdUpdateBitmap(ctxo\device, *bitmap, LGLCD_ASYNC_UPDATE(#LGLCD_PRIORITY_NORMAL))
EndIf
A = 0
Repeat
Select WaitWindowEvent(100)
Case #PB_Event_CloseWindow
Break
Case 0
A = (A + 1) & $0F
R = Img2G15(A, *bitmap)
If R <> 0
lgLcdUpdateBitmap(ctxo\device, *bitmap, LGLCD_ASYNC_UPDATE(#LGLCD_PRIORITY_NORMAL))
EndIf
EndSelect
ForEver
lgLcdClose(ctxo\device)
EndIf
lgLcdDisconnect(ctx\connection)
lgLcdDeInit()
FreeMemory(*bitmap)
FreeMemory(*Image_Buffer)
EndIf
EndProcedure
;
;-------------------------
;
Main()
End
DataSection
MyPack1:
Data.l $039A434A, $EBF30000, $A9B949E9, $146920D0, $CA12A819, $2B4AF008, $200DD025, $09800201
Data.l $A0025C62, $EB9F74FF, $87B04C03, $614CE016, $4EE36DEF, $7F182B7F, $699FB166, $FCB02520
Data.l $D17BD091, $31E3A261, $264FE28E, $E93A7C8F, $792ED853, $F5F35788, $4CFE015F, $548C9F98
Data.l $E69A5BC0, $52780A03, $14CE4367, $99E621B6, $F59F041A, $94BD0989, $614598C2, $F4A42098
Data.l $DBF8BF11, $4F3F1664, $64D28926, $E58AC9D8, $44FC7E87, $4C281E6B, $249A49AC, $F15CE36E
Data.l $28F5850C, $C09F396C, $D07F4F01, $E5214223, $FC780267, $E5F390A3, $61451FC8, $AB3FBFFB
Data.l $63952CE2, $BFA45191, $9AF9F052, $BE685517, $E9A79851, $97F3C4A1, $4D399F0C, $FA9EFD3F
Data.l $9E02FE2B, $846C9B02, $CC8CE68B, $6FE068AD, $0AC341D3, $CDFAB4F8, $FACBD851, $D66C1F0B
Data.l $94601F6F, $24485E9F, $00001DFC, $00000000, $00000000, $00000000, $00000000, $00000000
MyPack2:
Data.l $039A434A, $01430000, $A9B9A87C, $146920D0, $CA12A819, $2B4AF008, $200DD025, $09800201
Data.l $A0025C62, $EB9F74FF, $0AC34C03, $F7B0EBF8, $0800D836, $2CCFA4C3, $A40DDC76, $123FE304
Data.l $4C3A33F8, $34F89614, $78DF67F5, $3FB3A38C, $FA6E2659, $1E4BF614, $FD7C95E2, $133F8057
Data.l $1523E7E6, $F9A696F0, $D49E0280, $614C90D9, $A99E099F, $9F59E041, $19D26098, $0986F98D
Data.l $F11FF015, $664D145B, $92644A41, $9D86BF88, $E87EF3FC, $E6B44D27, $9AC458A1, $6FD04FC4
Data.l $A850C28E, $C396FE49, $0285CF15, $C09FC50B, $D07F4F01, $E1214223, $FC780267, $E5F390A3
Data.l $614A1FC8, $6761BFFB, $2AFAFE89, $8766D985, $0C2825FD, $CC28013E, $F9A3CD7C, $A69E53D0
Data.l $5FCF1287, $B7C67C32, $1CFFF328, $4F4D8E02, $705115FD, $D170BE30, $3C93C05C, $8C418D8D
Data.l $7A1EA1CC, $3D36D3C9, $F06609FC, $4D80FCA5, $45463701, $C2407461, $0000017F, $00000000
MyPack3:
Data.l $039A434A, $02E40000, $A9B9D1FC, $146920D0, $CA12A819, $2B4AF008, $200DD025, $09800201
Data.l $A0025C62, $EB9F74FF, $0AC34C03, $F7B0EBF8, $0800D836, $073FA4C3, $18D5DC76, $2904A97F
Data.l $8513206C, $DF148FE5, $1BE40E8B, $7EC2718F, $88797932, $5FF58BD7, $984C2E01, $F118F39F
Data.l $CD34FE00, $A4F01407, $0A1686CE, $106A4CBB, $2627F4B8, $679D6798, $7A41D67E, $8B7E8509
Data.l $482C30C2, $D67F23E9, $4C8FC9CC, $7BFD014A, $F2C59864, $8FE23F43, $4F371A02, $26A14D62
Data.l $570EE023, $37E2433C, $53C05B0A, $D0887E89, $C09D7027, $2A3FF41F, $FC8EBF19, $FFB4C781
Data.l $A0525F3B, $88C0CF81, $8E0AB3B1, $8AA33783, $51AA57F4, $F8009C04, $46259801, $86C7A3F3
Data.l $051F0F45, $945BCF86, $3CFFE7F9, $4F4D000A, $005115FD, $D36CA03F, $1B1AC05C, $43990A21
Data.l $A2B779F9, $0F4D1883, $D43E827F, $E12FB83F, $66C50CC6, $DBFE0FF5, $8489CF8A, $0000AC00
Data.l $00000000, $00000000, $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
MyPack4:
Data.l $039A434A, $2EF00000, $A9B9523E, $146920D0, $CA12A819, $2B4AF008, $200DD025, $09800201
Data.l $A0025C62, $EB9F74FF, $0AC34C03, $F7B0EBF8, $0800D836, $2CCFA4C3, $A40DDC76, $123FE304
Data.l $4C3A33FA, $53989614, $95FD2F7C, $27E9F14F, $E4B8851F, $D7CE5E21, $33F9057F, $52307E61
Data.l $9A692F01, $49E0280F, $142D0D9D, $20D49936, $4C4FE970, $CF1BCF30, $4C30ACFC, $4C8F0A60
Data.l $B327A5E7, $24C8A520, $4D271B47, $58A3F986, $FC49E87E, $B7C34051, $1824AC49, $678A7E48
Data.l $6146D428, $23E9E1CB, $F027F060, $F41C54CB, $D486D088, $F133F261, $5F3B428F, $C227FC8E
Data.l $CE2AFFB4, $18D6814A, $014AB3F5, $545080F8, $D54CFE91, $C10FDA38, $287BC287, $90F99A31
Data.l $A26F1E30, $38D4F0C0, $1CFFFC69, $4F3D0CEA, $FBCF15FD, $D608A060, $0A44C05C, $E134DA0E
Data.l $82E96C69, $E0983991, $F0F6B29C, $46E47827, $D6581459, $4D80F85F, $2448F3EE, $0000555C
Data.l $00009000, $00000000, $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
MyPack5:
Data.l $039A434A, $EF8F0000, $A9B90F0D, $146920D0, $CA12A819, $2B4AF008, $200DD025, $09800201
Data.l $A0025C62, $EFD074FF, $BDE94C03, $12BFF608, $C7479FE0, $D3A0B0A5, $9F963F84, $3A676C77
Data.l $C29D094C, $FEDFF2FE, $BE47F14C, $72F1D8F3, $C02B9853, $73F30F25, $F015FEBE, $80F909D2
Data.l $D9D42302, $93CFA690, $BC059E09, $6A678C9D, $27D67810, $8D9E9826, $4C307E67, $46FC1890
Data.l $9059A5E7, $83A357D2, $524C939A, $7ED0E740, $6191C28B, $E23D87A3, $4628CFCF, $609C0701
Data.l $693573F1, $52FC0281, $E49A8936, $F15C050F, $E601850C, $5F813968, $08C712A6, $08093E84
Data.l $428F8185, $FC8EE406, $FFB6F131, $7E045F3B, $14CF1420, $50DC4B38, $0A57D40A, $A29F1FE0
Data.l $3269F48A, $30A2C879, $3C9FCD54, $C9430126, $C230CC14, $9F0CD3BF, $C387DB87, $1AE70A3F
Data.l $A9E61141, $C05CF88B, $C236ADCF, $E646D853, $ADE03456, $D15B20E8, $28C09FC3, $1224E17F
Data.l $00002BAE, $00000000, $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
MyPack6:
Data.l $039A434A, $73150000, $A9B9D953, $146920D0, $CA12A819, $2B4AF008, $200DD025, $09800201
Data.l $A0025C62, $EFD074FF, $BDEC4C03, $EBFBF608, $7614279F, $34E804DC, $F92FCFE1, $87451A67
Data.l $38C7CA29, $6593EF8A, $85178DF2, $F25CF861, $EBE7AF10, $984802BF, $C0A03F30, $A4360788
Data.l $82643E69, $9DFD7527, $C053F2E0, $A679BFCF, $7D678106, $FCE98262, $B1F2E678, $130C7FBF
Data.l $D1BF4030, $7A122979, $734597E8, $BC0A0B32, $7CC3E7F2, $23083264, $A1E923C7, $0FC47E58
Data.l $C28A8441, $44789AC4, $6A1434D8, $70E53F92, $601133C5, $3813B0A3, $7A0FAA66, $C0A4E844
Data.l $7F8FE04C, $1CBE3214, $6C2803F9, $13F477FF, $21F870FC, $22DEACE0, $526B32A3, $9552FFEA
Data.l $53FEF828, $4F9A93C0, $7A6947D3, $25FC3128, $D34EE7C3, $FEA7FF4F, $3F017F8A, $4F089AB7
Data.l $5B997361, $A2B3D8D1, $F6141883, $7F285B90, $AE12DBE1, $0000C02B, $00002400, $00000000
MyPack7:
Data.l $039A434A, $CEFE0000, $A9B9050C, $146920D0, $CA12A819, $2B4AF008, $200DD025, $09800201
Data.l $A0025C62, $EFD074FF, $BDEC4C03, $EBFBF608, $7614279F, $34E804DC, $F92FCFE1, $87451A67
Data.l $38C7CA29, $6593EF8A, $614F8DF2, $C4AFF97E, $5C023797, $7CFC10F2, $FEFCBFE3, $6050C264
Data.l $D21B0424, $C1321F34, $FA7D3A93, $1E046484, $E6093C05, $7E671A99, $291C8396, $130C8C90
Data.l $C9228E24, $89482979, $CCD64F2B, $00A32CC9, $2311472B, $323D264F, $4EFC04CC, $DC008052
Data.l $49ACB143, $812F51FC, $850C49B7, $3968E49A, $12A7F15C, $4FA1E405, $39E480E0, $BC0511E8
Data.l $7F8FCF3C, $1CBE64D4, $6A3E03F9, $B38A77FF, $490F3D26, $F051ACFD, $DFC824D7, $F3462A8B
Data.l $4D3CFA69, $BF9F250F, $69CFF864, $D4F3E9FA, $E02EF15F, $E11B56E7, $73236C29, $56F01A2B
Data.l $E8AD1074, $94604FE1, $0912F0BF, $000015D7, $00000000, $00000000, $00000000, $00000000
MyPack8:
Data.l $039A434A, $24F10000, $A9B9DA96, $146920D0, $CA12A819, $2B4AF008, $200DD025, $09800201
Data.l $A0025C62, $EFD074FF, $BDEC4C03, $EBFBF608, $7614279F, $34E804DC, $F92FCFE1, $874E1A67
Data.l $DF14CA29, $1BE4FBA3, $9AE6718F, $612FCB27, $21E4C29E, $7FD7695E, $6132B805, $83E4CE7E
Data.l $E69A0692, $52780A03, $967D4367, $652E264C, $99E62854, $F59F041A, $24750989, $261899E3
Data.l $92448510, $529052F3, $99AC824E, $52935993, $9C0AC056, $191E30A3, $D0FC9A66, $C0A5F040
Data.l $5891B143, $26A1F893, $570E5BF9, $F083433C, $F01C5A2D, $223CA254, $9D0F09F4, $3FC773C0
Data.l $8E5F192A, $B51F81FC, $59C53BFF, $A4871E93, $F828567E, $EFE4926B, $F9A39545, $A69E7D34
Data.l $5FCF1287, $34E77C32, $EA79F4FD, $F017F8AF, $F08DAB73, $B9913614, $2B788D15, $F456883A
Data.l $CA3027F0, $8489F85F, $00000AEB, $00000000, $00000000, $00000000, $00000000, $00000000
MyPack9:
Data.l $039A434A, $E9DB0000, $A9B95F83, $146920D0, $CA12A819, $2B4AF008, $200DD025, $09800201
Data.l $A0025C62, $EFD074FF, $BDEC4C03, $EBFBF608, $7614279F, $34E804DC, $F92FCFE1, $874E1A67
Data.l $DF14CA29, $3D8FE7A3, $CB27CF06, $C29E3BE4, $2F10024E, $02BF6011, $3F30F25C, $B380EBE7
Data.l $14079981, $86CEA918, $4C99CD34, $2944A4F0, $41A92CB8, $989FD2E0, $9E329E60, $3E6959F9
Data.l $86145E70, $91A04409, $2CC9BCE4, $D470E948, $30A3CD19, $EC321593, $3F969F04, $147F681E
Data.l $122B28D0, $D428126B, $E1CB7F24, $E895678A, $027D4721, $41FC3C07, $E8F8088F, $FE3C099F
Data.l $72F9C951, $A8F80FE4, $CE2ADFFD, $243CF49A, $C144B3F5, $7F23935F, $CD18AA2F, $34F3E9A7
Data.l $FE7F943D, $A73FE192, $53CDA7E9, $80B9C57F, $846C5B9F, $CC8CB0A7, $5BC168AD, $A2B741D1
Data.l $51803F87, $2448C2FE, $0000575C, $00000000, $00000000, $00000000, $00000000, $00000000
MyPack10:
Data.l $039A434A, $498B0000, $A9B9FF96, $146920D0, $CA12A819, $2B4AF008, $200DD025, $09800201
Data.l $A0025C62, $EFD074FF, $BDEC4C03, $EBFBF608, $7614279F, $34E804DC, $F92FCFE1, $874C1A67
Data.l $D1EFCA29, $839EFD63, $F2658A67, $4F61C79D, $E95E9381, $8C954FAC, $39F921E4, $1A4AFF5F
Data.l $280F84CE, $0D9D0F90, $99309A69, $DE0949E0, $83530403, $313EA0B6, $3C603CC1, $D070B3F3
Data.l $86140807, $083C1509, $1590BCE0, $52685470, $29325998, $83A6CE05, $EFCB79F0, $F8936193
Data.l $536F147D, $850C5898, $3968E49A, $1E89F15C, $7027B7EA, $F41F53C0, $4A7ED088, $7F8FC098
Data.l $1CBE3254, $6A3E03F9, $B38A77FF, $490F3D26, $F051ACFD, $DFC824D7, $F3462A8B, $4D3CFA69
Data.l $BF9F250F, $69CFF864, $D4F3E9FA, $E02EF15F, $E11B56E7, $73236C29, $56F01A2B, $E8AD1074
Data.l $94604FE1, $0912F0BF, $000015D7, $00000000, $00000000, $00000000, $00000000, $00000000
MyPack11:
Data.l $039A434A, $99270000, $A9B9F8E6, $146920D0, $CA12A819, $2B4AF008, $200DD025, $09800201
Data.l $A0025C62, $EFD074FF, $BDEC4C03, $EBFBF608, $7610279F, $F8C304DC, $614C8047, $9874A903
Data.l $C11EFCA2, $6F2FCDF7, $3CCFF8A6, $93C617F6, $7E88932C, $4B8014FA, $7CE7561E, $AB0057FD
Data.l $0501E613, $21B34246, $1326F34D, $F03CA93C, $01970099, $A6799EC6, $7D678106, $C0108262
Data.l $002AE678, $297950AB, $8512130C, $4E66C011, $594A4166, $8E11B231, $61914CC2, $4D0F88A6
Data.l $3D80EC04, $F893CB14, $516F81A1, $0FE45898, $0CF1041D, $68B79A85, $89535C39, $27D0FA1E
Data.l $1FC0C070, $FE3288F4, $8F03984A, $BE77547F, $3E3DF91C, $8AACFF6A, $0F2426B3, $F82AFD49
Data.l $7F23C16B, $CD18C29F, $34F3E9A7, $FE7F943D, $A73FE192, $53CDA7E9, $80B9C57F, $846C5B9F
Data.l $CC8CB0A7, $5BC168AD, $A2B741D1, $51803F87, $2448C2FE, $0000575C, $00000000, $00000000
MyPack12:
Data.l $039A434A, $08BB0000, $A9B9496A, $146920D0, $CA12A819, $2B4AF008, $200DD025, $09800201
Data.l $A0025C62, $EFD074FF, $BDEC4C03, $EBFBF608, $7610279F, $F8C304DC, $614C8047, $9874A903
Data.l $A67FFCA2, $79DF5EF8, $3FAC2FEC, $6E182659, $85E229E0, $80578382, $E7E61E4B, $1FD9FD7C
Data.l $918111BE, $D348F0DA, $4F04407C, $265C6CEA, $F91EC980, $041AFF83, $0989051E, $99E399E6
Data.l $3828F59F, $A013004F, $79C09D87, $0E570C29, $482C1414, $57E023E8, $27E8C9C3, $51C9BD47
Data.l $FE8D4998, $3E11E472, $48CC8647, $F88C08C3, $3F1250E7, $0A284C05, $07436B13, $A1434B05
Data.l $0E5AF926, $7E893C57, $70272C4A, $F41F53C0, $43D2D088, $C781C0A3, $5F3B6A3F, $1452FC8E
Data.l $B3F5FFB6, $935FCE2A, $AA2F243C, $E9A7C144, $943D7F23, $E192CD18, $A7E934F3, $C57FFE7F
Data.l $5B9FA73F, $B0A753CD, $68AD80B9, $41D1846C, $3F87CC8C, $C2FE5BC1, $575CA2B7, $00005180
Data.l $00002448, $00000000, $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
MyPack13:
Data.l $039A434A, $453C0000, $A9B93202, $146920D0, $CA12A819, $2B4AF008, $200DD025, $09800201
Data.l $A0025C62, $EFD074FF, $BDE94C03, $12BFF608, $C7479FE0, $D3A0B0A5, $E5143F84, $7F2F68E7
Data.l $C51CC3A6, $F932E8F7, $9F7F63C6, $10F2CCC2, $BFEB512F, $309D5C02, $5230E73F, $9A693F01
Data.l $49E0280F, $05090D9D, $E0419930, $60981052, $F99EA99E, $66409F59, $30A53005, $5051904C
Data.l $20B3E700, $FFDFAFA5, $C0802709, $8516F91F, $0146C499, $C723E021, $1F96C323, $01308A4A
Data.l $91F82873, $98518C37, $0C689358, $28676834, $CB6164D4, $94448AE1, $E04F46DF, $E83FA999
Data.l $7E03A111, $3FC4811B, $97CE726A, $47C76D23, $743FFFED, $243CA4D6, $C14413F5, $3550935F
Data.l $7CC1AA2F, $3D34C26A, $92FE4C94, $E9A7F3E1, $7F537FA7, $9F803FC5, $A784CD5B, $ADCCB9B0
Data.l $D15B6C68, $87A28C41, $FE51C13F, $5C24B7C2, $00008057, $00004800, $00000000, $00000000
MyPack14:
Data.l $039A434A, $C45D0000, $A9B9734E, $146920D0, $CA12A819, $2B4AF008, $200DD025, $09800201
Data.l $A0025C62, $EFD074FF, $BDE94C03, $12BFF608, $C7479FE0, $D3A0B0A5, $E5143F84, $7F2F68E7
Data.l $C533C3A6, $63CEE8F7, $CCC2FB7F, $1DE2F932, $80579F05, $E7E61E4B, $92F0FD7C, $0280133F
Data.l $90D91523, $0993F9A6, $51B7D49E, $83530050, $313EA5C0, $3C603CC1, $0120B3F3, $4BCE0ACF
Data.l $41579861, $416600AD, $0E8FC146, $99854E6A, $C9F780AC, $1CFC1730, $CFC0E58A, $6261128F
Data.l $1038524D, $7F24453E, $678AC052, $6144D428, $C9C3E1CB, $E038F040, $447AD2A9, $30C813E8
Data.l $8D1F0E75, $FE47540C, $FFDBE3C0, $31F32F9D, $38B40A01, $0A53051B, $1FD4CFD4, $F43FC005
Data.l $518024D7, $DAA90558, $C6026C14, $5325801B, $F380DF30, $147F0F4E, $FA9ABE18, $FC579FE9
Data.l $D5B95A73, $9B0AF53C, $C68AF80B, $C41D7846, $9487DCC8, $DF0B159A, $015DB0A6, $2000F946
Data.l $00007091, $00000000, $00000000, $00000000, $00000000, $00000000, $00000000, $00000000
MyPack15:
Data.l $039A434A, $4F850000, $A9B9BB0E, $146920D0, $CA12A819, $2B4AF008, $200DD025, $09800201
Data.l $A0025C62, $EB9F74FF, $87B04C03, $614CE016, $4EE36DEF, $C2692B7F, $CFE0A39F, $5851D034
Data.l $BDF148FE, $263C30E8, $E4594C13, $9FA56F91, $92E08536, $5F397887, $E93815FF, $8140F984
Data.l $486C0A91, $13267CD3, $A36FE8E4, $06A600A0, $627D4B81, $78C07982, $209867E6, $CE001585
Data.l $FA8F614B, $82CCA079, $1C0A828C, $7CC39CD4, $F43F5264, $F7E02693, $C9AC2C50, $C52F144A
Data.l $850C49B7, $3968E49A, $9225F15C, $C09FB604, $D07F4F01, $FA034223, $2A3F0237, $FC8EC119
Data.l $FFB6C781, $60E55F3B, $B2C86320, $0FE026B3, $F48ACC74, $750B0A57, $DAA9A2D0, $4B345014
Data.l $9923814D, $7C9FF982, $97F388E7, $45039F0C, $E2BFFD3F, $A09D1B9F, $02E6A9E7, $6C6B0286
Data.l $73238B84, $14DB0DAB, $87AC1076, $F0BFC13F, $15D790AD, $00009460, $00000912, $00000000
MyPack16:
Data.l $039A434A, $E3A40000, $A9B95170, $146920D0, $CA12A819, $2B4AF008, $200DD025, $09800201
Data.l $A0025C62, $EB9F74FF, $0AC34C03, $F7B0EBF8, $0800D836, $2CCFA4C3, $A40DDC76, $123FE304
Data.l $4C3A33F8, $533F9614, $3CEF2F7C, $4C66B7F6, $7E9591E6, $4B8014DA, $7CE7E21E, $A6E057FD
Data.l $0501E613, $21B32A46, $1326F34D, $A36FA93C, $06A600A0, $627D4B81, $78C07982, $209867E6
Data.l $CE001585, $2F4A614B, $4E6AA0A3, $80AC4166, $17300E8F, $FA7E9985, $8A1EC8F7, $C49A87E5
Data.l $9B15052F, $A19EC4C7, $2D169350, $9D4F2B87, $9F42FC02, $7F0201C0, $64E823D0, $07F267C0
Data.l $EFFEFF1E, $E7C1397C, $18B3D30E, $16C04ACE, $4AFEF519, $5B0363C1, $1AA99154, $02A5CF45
Data.l $0532801E, $5BEE65F3, $0C9750F4, $3F45879F, $9FE2F3FD, $E9B486C7, $79F8BFA9, $0A781C04
Data.l $9B630B9B, $462046C6, $E09FD2E6, $6EFAE8AD, $F946C3D3, $70915F0B, $0000015D, $00002000
MyPackPointers:
Data.l ?MyPack1, ?MyPack2, ?MyPack3, ?MyPack4, ?MyPack5, ?MyPack6, ?MyPack7, ?MyPack8
Data.l ?MyPack9, ?MyPack10, ?MyPack11, ?MyPack12, ?MyPack13, ?MyPack14, ?MyPack15, ?MyPack16
EndDataSection