Initial commit
This commit is contained in:
commit
51f73b9843
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,159 @@
|
|||
/* ClickTabExample.e - Ported to E by Eric Sauvageau. */
|
||||
|
||||
OPT PREPROCESS
|
||||
|
||||
MODULE 'tools/constructors', 'tools/boopsi'
|
||||
|
||||
MODULE 'exec/types','exec/memory','dos/dos','dos/dosextens','exec/lists',
|
||||
'exec/nodes','intuition','graphics','intuition/intuition',
|
||||
'intuition/gadgetclass','intuition/imageclass',
|
||||
'intuition/intuitionbase','intuition/classusr',
|
||||
'intuition/gadgetclass','intuition/cghooks','intuition/icclass',
|
||||
'intuition/classes','intuition/sghooks','graphics/gfxbase',
|
||||
'graphics/text','graphics/gfxmacros','utility/tagitem','utility/hooks'
|
||||
|
||||
|
||||
MODULE 'clicktab','gadgets/clicktab','window','classes/window','layout',
|
||||
'gadgets/layout', 'other/classact_macros'
|
||||
|
||||
DEF listitems:PTR TO mlh
|
||||
|
||||
|
||||
CONST ID_CLICKTAB =1
|
||||
|
||||
|
||||
PROC clickTabNodes(list:PTR TO lh, labels:PTR TO LONG)
|
||||
DEF node=NIL, i=0
|
||||
|
||||
newlist(list)
|
||||
|
||||
WHILE labels[i]
|
||||
|
||||
IF (node := AllocClickTabNodeA([TNA_TEXT, labels[i],
|
||||
TNA_NUMBER, i,
|
||||
TNA_ENABLED, TRUE,
|
||||
TNA_SPACING, 6,
|
||||
TAG_DONE]))
|
||||
|
||||
AddTail(list,node)
|
||||
ENDIF
|
||||
|
||||
INC i
|
||||
|
||||
ENDWHILE
|
||||
ENDPROC
|
||||
|
||||
|
||||
PROC freeClickTabNodes(list:PTR TO lh)
|
||||
DEF node:PTR TO ln, nextnode:PTR TO ln
|
||||
|
||||
node:= list.head
|
||||
|
||||
WHILE (nextnode = node.succ)
|
||||
FreeClickTabNode(node)
|
||||
node := nextnode
|
||||
ENDWHILE
|
||||
|
||||
END list -> Optional, the E cleanup code would do it for us anyway.
|
||||
ENDPROC
|
||||
|
||||
PROC main()
|
||||
DEF win=NIL:PTR TO window, tab_object=NIL:PTR TO object, win_object=NIL:PTR TO object
|
||||
DEF wait, signal, result, done = FALSE, code, tmpres,tmpres2
|
||||
DEF names:PTR TO LONG
|
||||
|
||||
names:=['Tab_1','Tab_2','Tab_3','Tab_4',NIL]
|
||||
|
||||
-> Open the classes
|
||||
|
||||
windowbase := OpenLibrary('window.class',0)
|
||||
layoutbase := OpenLibrary('gadgets/layout.gadget',0)
|
||||
clicktabbase := OpenLibrary('gadgets/clicktab.gadget',0)
|
||||
|
||||
IF (windowbase AND layoutbase AND clicktabbase)
|
||||
clickTabNodes(NEW listitems, names)
|
||||
|
||||
/* Create the window object. */
|
||||
win_object := WindowObject,
|
||||
WA_SCREENTITLE, 'ClassAct Copyright 1995, Phantom Development LLC.',
|
||||
WA_TITLE, 'ClassAct clicktab.gadget Example',
|
||||
WA_SIZEGADGET, TRUE,
|
||||
WA_LEFT, 40,
|
||||
WA_TOP, 30,
|
||||
WA_DEPTHGADGET, TRUE,
|
||||
WA_DRAGBAR, TRUE,
|
||||
WA_CLOSEGADGET, TRUE,
|
||||
WA_ACTIVATE, TRUE,
|
||||
WA_SMARTREFRESH, TRUE,
|
||||
WINDOW_PARENTGROUP, VLayoutObject,
|
||||
LAYOUT_SPACEOUTER, TRUE,
|
||||
LAYOUT_DEFERLAYOUT, TRUE,
|
||||
LAYOUT_ADDCHILD, tab_object := ClickTabObject,
|
||||
GA_ID, ID_CLICKTAB,
|
||||
CLICKTAB_LABELS, listitems,
|
||||
CLICKTAB_CURRENT, 0,
|
||||
End,
|
||||
End,
|
||||
End
|
||||
|
||||
-> Object creation sucessful?
|
||||
|
||||
IF win_object
|
||||
|
||||
-> Open the window.
|
||||
|
||||
IF (win := CA_OpenWindow(win_object))
|
||||
|
||||
-> Obtain the window wait signal mask.
|
||||
|
||||
GetAttr( WINDOW_SIGMASK, win_object, {signal})
|
||||
|
||||
-> Input Event Loop
|
||||
|
||||
WHILE done = FALSE
|
||||
wait:= Wait(signal OR SIGBREAKF_CTRL_C)
|
||||
|
||||
IF (wait AND SIGBREAKF_CTRL_C)
|
||||
done := TRUE
|
||||
ELSE
|
||||
|
||||
WHILE (result := domethod(win_object, [WM_HANDLEINPUT,{code}])) <> WMHI_LASTMSG
|
||||
tmpres := (result AND WMHI_CLASSMASK)
|
||||
SELECT tmpres
|
||||
|
||||
CASE WMHI_CLOSEWINDOW
|
||||
done := TRUE
|
||||
|
||||
CASE WMHI_GADGETUP
|
||||
tmpres2 := (result AND WMHI_GADGETMASK)
|
||||
|
||||
SELECT tmpres2
|
||||
CASE ID_CLICKTAB ; NOP
|
||||
NOP
|
||||
ENDSELECT
|
||||
|
||||
ENDSELECT
|
||||
ENDWHILE
|
||||
ENDIF
|
||||
ENDWHILE
|
||||
ENDIF
|
||||
|
||||
/* Disposing of the window object will
|
||||
* also close the window if it is
|
||||
* already opened and it will dispose of
|
||||
* all objects attached to it.
|
||||
*/
|
||||
DisposeObject(win_object)
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
freeClickTabNodes(listitems)
|
||||
|
||||
/* Close the classes. */
|
||||
|
||||
IF clicktabbase THEN CloseLibrary(clicktabbase)
|
||||
IF layoutbase THEN CloseLibrary(layoutbase)
|
||||
IF windowbase THEN CloseLibrary(windowbase)
|
||||
|
||||
ENDPROC
|
||||
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,166 @@
|
|||
/* ClassAct Inter-Connection Notification Example
|
||||
Ported to E by Eric Sauvageau.
|
||||
*/
|
||||
|
||||
OPT PREPROCESS
|
||||
|
||||
MODULE 'tools/boopsi'
|
||||
|
||||
MODULE 'exec/nodes','intuition','graphics','intuition/intuition',
|
||||
'intuition/gadgetclass','intuition/imageclass',
|
||||
'intuition/intuitionbase','intuition/classusr',
|
||||
'intuition/gadgetclass','intuition/cghooks','intuition/icclass',
|
||||
'intuition/classes'
|
||||
|
||||
MODULE 'libraries/gadtools','intuition/icclass','dos','dos/dos',
|
||||
'graphics','intuition','intuition/intuition','utility/tagitem'
|
||||
|
||||
|
||||
MODULE 'window','classes/window','layout','gadgets/layout','gadgets/palette',
|
||||
'gadgets/button','images/bevel','palette','images/label','label',
|
||||
'classes/window','other/classact_macros','button'
|
||||
|
||||
|
||||
CONST ID_BUTTON = 1
|
||||
CONST ID_FOREGROUND = 2
|
||||
CONST ID_BACKGROUND = 3
|
||||
|
||||
|
||||
PROC main()
|
||||
|
||||
DEF window:PTR TO window,
|
||||
but_object:PTR TO object,
|
||||
win_object:PTR TO object,
|
||||
mapfg2button, mapbg2button,
|
||||
tmpres1,tmpres2
|
||||
|
||||
DEF wait, signal, result, done=FALSE, code
|
||||
|
||||
|
||||
mapfg2button := [PALETTE_COLOR, BUTTON_TEXTPEN, TAG_END]
|
||||
mapbg2button := [PALETTE_COLOR, BUTTON_BACKGROUNDPEN, TAG_END]
|
||||
|
||||
windowbase := OpenLibrary('window.class',0)
|
||||
layoutbase := OpenLibrary('gadgets/layout.gadget',0)
|
||||
buttonbase := OpenLibrary('gadgets/button.gadget',0)
|
||||
palettebase := OpenLibrary('gadgets/palette.gadget',0)
|
||||
labelbase := OpenLibrary('images/label.image',0)
|
||||
|
||||
IF (windowbase AND layoutbase AND buttonbase AND palettebase AND labelbase)
|
||||
|
||||
-> Create the window object.
|
||||
|
||||
win_object := WindowObject,
|
||||
WA_SCREENTITLE, 'ClassAct Copyright 1995, Phantom Development LLC.',
|
||||
WA_TITLE, 'ClassAct Example',
|
||||
WA_SIZEGADGET, TRUE,
|
||||
WA_LEFT, 40,
|
||||
WA_TOP, 30,
|
||||
WA_DEPTHGADGET, TRUE,
|
||||
WA_DRAGBAR, TRUE,
|
||||
WA_CLOSEGADGET, TRUE,
|
||||
WA_ACTIVATE, TRUE,
|
||||
WA_SMARTREFRESH, TRUE,
|
||||
|
||||
WINDOW_PARENTGROUP, VLayoutObject,
|
||||
LAYOUT_SPACEOUTER, TRUE,
|
||||
LAYOUT_DEFERLAYOUT, TRUE,
|
||||
LAYOUT_BEVELSTYLE, GroupFrame,
|
||||
LAYOUT_LABEL, 'InterConnection',
|
||||
|
||||
StartMember, but_object := ButtonObject,
|
||||
GA_TEXT, '_Inter-Connection Example',
|
||||
GA_ID, ID_BUTTON,
|
||||
EndMember,
|
||||
CHILD_WEIGHTEDHEIGHT, 0,
|
||||
|
||||
StartMember, HLayoutObject,
|
||||
LAYOUT_SPACEOUTER, FALSE,
|
||||
|
||||
StartMember, PaletteObject,
|
||||
GA_ID, ID_FOREGROUND,
|
||||
PALETTE_NUMCOLORS, 8,
|
||||
PALETTE_COLOR, 1,
|
||||
ICA_TARGET, but_object, /* object to connect to */
|
||||
ICA_MAP, mapfg2button, /* tag mapping array */
|
||||
EndMember,
|
||||
CHILD_LABEL, LabelObject, LABEL_TEXT, '_ForeGround', LabelEnd,
|
||||
CHILD_MINWIDTH, 90,
|
||||
CHILD_MINHEIGHT, 20,
|
||||
|
||||
StartMember, PaletteObject,
|
||||
GA_ID, ID_BACKGROUND,
|
||||
PALETTE_NUMCOLORS, 8,
|
||||
PALETTE_COLOR, 0,
|
||||
ICA_TARGET, but_object, /* object to connect to */
|
||||
ICA_MAP, mapbg2button, /* tag mapping array */
|
||||
EndMember,
|
||||
CHILD_LABEL, LabelObject, LABEL_TEXT, '_BackGround', LabelEnd,
|
||||
CHILD_MINWIDTH, 90,
|
||||
CHILD_MINHEIGHT, 20,
|
||||
EndMember,
|
||||
EndMember,
|
||||
EndWindow
|
||||
|
||||
-> Object creation sucessful?
|
||||
|
||||
IF win_object
|
||||
|
||||
-> Open the window.
|
||||
|
||||
IF (window := CA_OpenWindow(win_object))
|
||||
|
||||
-> Obtain the window wait signal mask.
|
||||
|
||||
GetAttr(WINDOW_SIGMASK, win_object, {signal})
|
||||
|
||||
-> Input Event Loop
|
||||
|
||||
WHILE (done = FALSE)
|
||||
wait := Wait(signal OR SIGBREAKF_CTRL_C)
|
||||
|
||||
IF (wait AND SIGBREAKF_CTRL_C)
|
||||
done := TRUE
|
||||
|
||||
ELSE
|
||||
|
||||
WHILE ((result := CA_HandleInput(win_object,{code})) <> WMHI_LASTMSG)
|
||||
|
||||
tmpres1 := (result AND WMHI_CLASSMASK)
|
||||
|
||||
SELECT tmpres1
|
||||
|
||||
CASE WMHI_CLOSEWINDOW ; done := TRUE
|
||||
|
||||
CASE WMHI_GADGETUP
|
||||
tmpres2 := (result AND WMHI_GADGETMASK)
|
||||
|
||||
SELECT tmpres2
|
||||
CASE ID_BUTTON ; NOP
|
||||
ENDSELECT
|
||||
|
||||
ENDSELECT
|
||||
|
||||
ENDWHILE
|
||||
ENDIF
|
||||
ENDWHILE
|
||||
ENDIF
|
||||
|
||||
/* Disposing of the window object will
|
||||
* also close the window if it is
|
||||
* already opened and it will dispose of
|
||||
* all objects attached to it.
|
||||
*/
|
||||
DisposeObject(win_object )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
-> Close the classes.
|
||||
|
||||
IF labelbase THEN CloseLibrary(labelbase)
|
||||
IF palettebase THEN CloseLibrary(palettebase)
|
||||
IF buttonbase THEN CloseLibrary(buttonbase)
|
||||
IF layoutbase THEN CloseLibrary(layoutbase)
|
||||
IF windowbase THEN CloseLibrary(windowbase)
|
||||
|
||||
ENDPROC
|
Binary file not shown.
|
@ -0,0 +1,25 @@
|
|||
Notes for the Amiga E API for ClassAct
|
||||
--------------------------------------
|
||||
|
||||
o Remember that in E, an external function name must have the first letter
|
||||
in uppercase, and the second one in lowercase. For this reason, some
|
||||
function call have slightly different names than the ones used in
|
||||
the Autodocs:
|
||||
|
||||
LAYOUT_GetClass() is Layout_GetClass()
|
||||
CLICKTAB_GetClass() is ClickTab_GetClass()
|
||||
etc...
|
||||
|
||||
Check the modules when uncertain about the name to use.
|
||||
|
||||
|
||||
o Don't forget to put OPT PREPROCESS at the top of your source to be able
|
||||
to use the macros.
|
||||
|
||||
|
||||
|
||||
Other/Classact_lib.m
|
||||
----------------------
|
||||
This module holds a few goodies for ClassAct, ported from the linked
|
||||
library. Note that some functions in it are still untested.
|
||||
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,531 @@
|
|||
/*************************************************************************
|
||||
* ClassAct Comprehensive Demo Program
|
||||
* Copyright © 1995 Phantom Development Co.
|
||||
*
|
||||
* Translated from C to E by Eric Sauvageau.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
Supply inithook.m with ClassAct? Or at least its source? Might be added
|
||||
to classact_lib.m?
|
||||
|
||||
*/
|
||||
|
||||
OPT PREPROCESS
|
||||
|
||||
MODULE 'tools/constructors'
|
||||
MODULE 'tools/boopsi','tools/installhook','tools/inithook'
|
||||
|
||||
MODULE 'exec/types','exec/memory','intuition/intuition','exec/ports',
|
||||
'intuition/gadgetclass','intuition/icclass','libraries/gadtools',
|
||||
'graphics/gfxbase','graphics/text','graphics/gfxmacros',
|
||||
'utility/tagitem','workbench/startup','workbench/workbench',
|
||||
'intuition','graphics','exec','dos','diskfont','utility','wb','icon',
|
||||
'utility/hooks','intuition/classes','intuition/classusr',
|
||||
'exec/lists','exec/nodes','dos/rdargs','dos/dos'
|
||||
|
||||
|
||||
MODULE 'classes/window','gadgets/listbrowser','listbrowser',
|
||||
'other/classact_macros','layout','gadgets/layout','images/bevel',
|
||||
'gadgets/chooser','chooser','images/label','label','window',
|
||||
'button'
|
||||
|
||||
MODULE 'tools/classact_lib'
|
||||
|
||||
/* a simple button */
|
||||
#define Button(a) ButtonObject, GA_TEXT, a, ButtonEnd
|
||||
#define DButton(a) ButtonObject, GA_TEXT, a, GA_DISABLED, TRUE, ButtonEnd
|
||||
|
||||
|
||||
/**************************************************************************
|
||||
* Some label arrays for the gadgets in this demo.
|
||||
*/
|
||||
|
||||
DEF objtypes:PTR TO LONG,
|
||||
objnames:PTR TO LONG
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
* ReadArgs
|
||||
*/
|
||||
|
||||
#define TEMPLATE 'S=SIMPLEREFRESH/S,NC=NOCAREREFRESH/S,ND=NDEFER/S'
|
||||
|
||||
ENUM A_SIMPLE, A_NOCARE, A_NODEFER
|
||||
|
||||
DEF arguments:PTR TO LONG
|
||||
|
||||
|
||||
-> Must use separate vars because for some reason, EC chokes when you try
|
||||
-> to assign a value to an indexed array in the middle of a list... Will
|
||||
-> have to notify Wouter about that bugger.
|
||||
-> We will manualy build the list later.
|
||||
|
||||
ENUM G_OBJTYPE=1, G_OBJLIST, G_TOP, G_UP, G_DOWN, G_BOTTOM, G_SORT,
|
||||
G_NEW, G_EDIT, G_COPY, G_REMOVE, G_HELP, G_SAVE, G_USE, G_TEST,
|
||||
G_CANCEL,G_END
|
||||
|
||||
DEF gl[18]: ARRAY OF LONG
|
||||
|
||||
DEF g_objtype,
|
||||
g_objlist,
|
||||
g_top,
|
||||
g_up,
|
||||
g_down,
|
||||
g_bottom,
|
||||
g_sort,
|
||||
g_new,
|
||||
g_edit,
|
||||
g_copy,
|
||||
g_remove,
|
||||
g_help,
|
||||
g_save,
|
||||
g_use,
|
||||
g_test,
|
||||
g_cancel
|
||||
|
||||
|
||||
PROC init()
|
||||
objtypes:=['Exec','Image','Sound','Menu','Icon','Dock','Access',NIL]
|
||||
objnames:=['ToolManager','ScreenMode','WBPattern',NIL]
|
||||
|
||||
buttonbase :=openClass('gadgets/button.gadget',0)
|
||||
listbrowserbase :=openClass('gadgets/listbrowser.gadget',0)
|
||||
chooserbase :=openClass('gadgets/chooser.gadget',0)
|
||||
windowbase :=openClass('window.class',0)
|
||||
layoutbase :=openClass('gadgets/layout.gadget',0)
|
||||
labelbase := openClass('images/label.image',0)
|
||||
|
||||
iconbase := OpenLibrary('icon.library',36)
|
||||
|
||||
ENDPROC
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
* App message hook.
|
||||
* Workbench App messages can be caught with a callback hook such as this.
|
||||
* We'll not worry about the app message type in this hook. Objects dropped
|
||||
* on the window or on the icon (while iconified) will be added to the
|
||||
* listview.
|
||||
*/
|
||||
|
||||
|
||||
PROC appMsgFunc(hook:PTR TO hook, window:PTR TO object, msg:PTR TO appmessage)
|
||||
DEF win: PTR TO window, i, arg:PTR TO wbarg, l: PTR TO lh, n:PTR TO ln,
|
||||
name[256]:STRING
|
||||
|
||||
i := msg.numargs
|
||||
arg := msg.arglist
|
||||
l := hook.data
|
||||
|
||||
GetAttr(WINDOW_WINDOW, window, {win} )
|
||||
|
||||
|
||||
-> Detach the list for modifications.
|
||||
|
||||
SetGadgetAttrsA(g_objlist, win, NIL,[LISTBROWSER_LABELS, Not(0), TAG_END])
|
||||
|
||||
WHILE i
|
||||
/* Add the name of the icon to the listview. ListBrowser can copy the
|
||||
* text into an internal buffer and thus let us not worry about the
|
||||
* pointer validity.
|
||||
*/
|
||||
|
||||
DEC i
|
||||
|
||||
NameFromLock(arg.lock, name, 256)
|
||||
AddPart(name,arg.name, 256)
|
||||
|
||||
IF (n := AllocListBrowserNodeA(1, [LBNCA_COPYTEXT, TRUE, LBNCA_TEXT, name, TAG_END])) THEN AddTail(l, n)
|
||||
|
||||
arg++
|
||||
|
||||
ENDWHILE
|
||||
|
||||
-> Reattach the list
|
||||
|
||||
SetGadgetAttrsA(g_objlist, win, NIL, [LISTBROWSER_LABELS, l, TAG_END])
|
||||
ENDPROC
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
* Main Program
|
||||
*/
|
||||
|
||||
PROC main() HANDLE
|
||||
DEF objlist=NIL:PTR TO lh,
|
||||
typelist:PTR TO lh,
|
||||
args=NIL:PTR TO rdargs,
|
||||
appport: PTR TO mp,
|
||||
window=NIL:PTR TO object,
|
||||
mainlayout:PTR TO window,
|
||||
apphook:hook,
|
||||
win:PTR TO window,
|
||||
wsig, asig,done=FALSE,
|
||||
sig,result,code,
|
||||
tmp,tmp2,tmp3,
|
||||
ids:PTR TO LONG,
|
||||
dis=FALSE,i,
|
||||
helptext[40]:STRING
|
||||
|
||||
|
||||
-> Init some lists, and open the required gadgets/libraries.
|
||||
|
||||
init()
|
||||
|
||||
ids := [G_TOP, G_UP, G_DOWN, G_BOTTOM, G_EDIT, G_COPY, G_REMOVE, G_END ]
|
||||
|
||||
arguments:=[0,0,0]
|
||||
IF (args := ReadArgs(TEMPLATE, arguments, NIL))=NIL THEN Raise(20)
|
||||
|
||||
|
||||
IF ((iconbase<>NIL) AND (buttonbase<>NIL) AND (listbrowserbase<>NIL) AND (chooserbase<>NIL) AND (windowbase<>NIL) AND (layoutbase<>NIL) AND (labelbase<>NIL))
|
||||
|
||||
WriteF('\seferred \s refresh \s\n', (IF arguments[A_NODEFER] THEN 'Non-d' ELSE 'D'), (IF arguments[A_SIMPLE] THEN 'Simple' ELSE 'Smart'), (IF arguments[A_NOCARE] THEN '(NoCare)' ELSE ''))
|
||||
|
||||
objlist := browserNodesA(objnames)
|
||||
typelist := chooserLabelsA(objtypes)
|
||||
|
||||
/* By providing a message port you enable windowclass to handle iconification
|
||||
* and appwindows. This port can shared by all the windows of your application.
|
||||
*/
|
||||
|
||||
appport := CreateMsgPort()
|
||||
|
||||
IF (objlist AND typelist AND appport)
|
||||
inithook(apphook,{appMsgFunc},objlist)
|
||||
|
||||
/* Create a Window object with a Layout. When Window is asked to open itself,
|
||||
* it will calculate how much space the Layout needs and size itself accordingly.
|
||||
*/
|
||||
|
||||
|
||||
window := WindowObject,
|
||||
WA_IDCMP, IDCMP_RAWKEY,
|
||||
WA_TOP, 20,
|
||||
WA_LEFT, 20,
|
||||
WA_SIZEGADGET, TRUE,
|
||||
WA_DEPTHGADGET, TRUE,
|
||||
WA_DRAGBAR, TRUE,
|
||||
WA_CLOSEGADGET, TRUE,
|
||||
WA_ACTIVATE, TRUE,
|
||||
|
||||
/* About window refreshes:
|
||||
* Because WindowClass and LayoutClass can, when used together, change the
|
||||
* normal Intuition practise of refreshing gadgets in the input.device context,
|
||||
* some rules about the refresh system change.
|
||||
* Deferred refresh works in both smart and simple refresh windows, but
|
||||
* if nocarerefresh is used, Intuition does not retain the damage regions
|
||||
* and any window damage will force the whole window to be refreshed.
|
||||
* This demo allows you to try combinations of refresh types.
|
||||
* In the normal case you can ignore this and let WindowClass and the user
|
||||
* decide what kind of refreshes they want. Nocare refresh can be
|
||||
* combined with smart refresh to provide a fast, but somewhat more memory
|
||||
* hungry refresh method. Simple refresh can save some memory but it's
|
||||
* slower.
|
||||
*/
|
||||
|
||||
WA_SIMPLEREFRESH, arguments[A_SIMPLE],
|
||||
WA_NOCAREREFRESH, arguments[A_NOCARE],
|
||||
WA_SMARTREFRESH, Not(arguments[A_SIMPLE]),
|
||||
|
||||
WA_TITLE, 'ClassAct layout.gadget Example (ToolManager preferences mockup)',
|
||||
WA_SCREENTITLE, 'ClassAct Copyright 1995 Phantom Development LLC.',
|
||||
|
||||
/* Turn on gadget help in the window
|
||||
*/
|
||||
|
||||
WINDOW_GADGETHELP, TRUE,
|
||||
|
||||
/* Add an iconification gadget. If you have this, you must listen to
|
||||
* WMHI_ICONIFY.
|
||||
*/
|
||||
|
||||
WINDOW_ICONIFYGADGET, TRUE,
|
||||
|
||||
/* This message port lets windowclass handle the icon and appwindow.
|
||||
*/
|
||||
|
||||
WINDOW_APPPORT, appport,
|
||||
WINDOW_APPWINDOW, TRUE,
|
||||
WINDOW_APPMSGHOOK, apphook,
|
||||
|
||||
/* The windowclass will automatically free the DiskObject used when
|
||||
* iconifying the window. If you do not provide a valid DiskObject,
|
||||
* windowclass will try to use env:sys/def_window.info or the default
|
||||
* project icon.
|
||||
*/
|
||||
|
||||
WINDOW_ICON, GetDiskObject( 'LayoutExample' ),
|
||||
WINDOW_ICONTITLE, 'ClassAct Example',
|
||||
|
||||
/* Below is the layout of the window
|
||||
*/
|
||||
|
||||
WINDOW_PARENTGROUP, mainlayout := VGroupObject,
|
||||
LAYOUT_SPACEOUTER, TRUE,
|
||||
LAYOUT_BEVELSTYLE, BVS_THIN,
|
||||
|
||||
/* this tag instructs layout.gadget to defer GM_LAYOUT and GM_RENDER and ask
|
||||
* the windowclass to do them. This lessens the load on input.device
|
||||
*/
|
||||
|
||||
LAYOUT_DEFERLAYOUT, Not(arguments[A_NODEFER]),
|
||||
|
||||
/* A 1-of-n chooser using the labels list we made from the label array earlier
|
||||
*/
|
||||
|
||||
StartMember, g_objtype := ChooserObject,
|
||||
CHOOSER_LABELS, typelist,
|
||||
EndMember,
|
||||
MemberLabel('_Object Type'),
|
||||
|
||||
/* Objects can be given arbitary weights within groups, and layout.gadget
|
||||
* will distribute space relative to the total weight of the group.
|
||||
* Here we set the button column to 0 weight which means minimum space.
|
||||
* Thus the listview gets all available extra space.
|
||||
*/
|
||||
|
||||
StartHGroup, BAligned,
|
||||
|
||||
StartMember, g_objlist := ListBrowserObject,
|
||||
LISTBROWSER_LABELS, objlist,
|
||||
LISTBROWSER_SHOWSELECTED, TRUE,
|
||||
EndMember,
|
||||
|
||||
StartVGroup,
|
||||
StartMember, g_top := DButton('Top'),
|
||||
StartMember, g_up := DButton('Up'),
|
||||
StartMember, g_down := DButton('Down'),
|
||||
StartMember, g_bottom := DButton('Bottom'),
|
||||
StartMember, g_sort := Button('So_rt'),
|
||||
EndGroup,
|
||||
CHILD_WEIGHTEDWIDTH, 0,
|
||||
|
||||
/* One way to keep the buttons constant size is to set the
|
||||
* group to stay at minimum size with a weight of 0. We could
|
||||
* also set the weight of each of the buttons to 0. That way
|
||||
* extra space would be distributed between the buttons
|
||||
* instead of all below. This looks better.
|
||||
*/
|
||||
|
||||
CHILD_WEIGHTEDHEIGHT, 0,
|
||||
EndGroup,
|
||||
|
||||
/* two rows of buttons. EvenSized instructs layout.gadget that it
|
||||
* should make sure the minimum size of each matches, so that we
|
||||
* get four neat columns.
|
||||
* Again the weight is set to 0. When the window is resized, all
|
||||
* space is given to the listview.
|
||||
*/
|
||||
|
||||
|
||||
StartHGroup, EvenSized,
|
||||
StartMember, g_new := Button('_New...'),
|
||||
StartMember, g_edit := DButton('_Edit...'),
|
||||
StartMember, g_copy := DButton('Co_py'),
|
||||
StartMember, g_remove := DButton('Remove'),
|
||||
EndGroup,
|
||||
CHILD_WEIGHTEDHEIGHT, 0,
|
||||
|
||||
StartHGroup, EvenSized,
|
||||
StartMember, g_save := Button('_Save'),
|
||||
StartMember, g_use := Button('_Use'),
|
||||
StartMember, g_test := Button('_Test'),
|
||||
StartMember, g_cancel := Button('_Cancel'),
|
||||
EndGroup,
|
||||
CHILD_WEIGHTEDHEIGHT, 0,
|
||||
|
||||
|
||||
StartMember, g_help := ButtonObject,
|
||||
GA_READONLY, TRUE,
|
||||
GA_TEXT, 'Welcome to ClassAct demo!',
|
||||
EndMember,
|
||||
CHILD_WEIGHTEDHEIGHT, 0,
|
||||
|
||||
EndGroup,
|
||||
EndWindow
|
||||
|
||||
IF window
|
||||
|
||||
/* Finish the gadgetarray initialisation. Set gadget IDs and release verify.
|
||||
* This is one way of avoiding boring repetition in the layout description
|
||||
* taglist itself.
|
||||
*/
|
||||
|
||||
-> Let's also generate the array of gadget pointers. We couldn't generate it
|
||||
-> while we created gadgets because some bug (?) in EC prevents the use of
|
||||
-> an array in the middle of a list.
|
||||
-> Fortunately, it's a breeze to do using E lists.
|
||||
|
||||
gl:=[NIL,
|
||||
g_objtype,
|
||||
g_objlist,
|
||||
g_top,
|
||||
g_up,
|
||||
g_down,
|
||||
g_bottom,
|
||||
g_sort,
|
||||
g_new,
|
||||
g_edit,
|
||||
g_copy,
|
||||
g_remove,
|
||||
g_help,
|
||||
g_save,
|
||||
g_use,
|
||||
g_test,
|
||||
g_cancel,
|
||||
NIL]
|
||||
|
||||
i:=1
|
||||
|
||||
REPEAT
|
||||
SetAttrsA(gl[i], [GA_ID, i, GA_RELVERIFY, TRUE, TAG_END])
|
||||
INC i
|
||||
UNTIL (i = G_END)
|
||||
|
||||
IF (win := CA_OpenWindow(window))
|
||||
asig := Shl(1,appport.sigbit)
|
||||
|
||||
/* Now that the window has been opened, we can get the signal mask
|
||||
* of its user port. If the program supported iconification and didn't
|
||||
* use a shared IDCMP port between all windows, this signal bit
|
||||
* would have to be re-queried before each Wait().
|
||||
*/
|
||||
|
||||
GetAttr( WINDOW_SIGMASK, window, {wsig} )
|
||||
|
||||
WHILE (done = FALSE)
|
||||
sig := Wait(wsig OR asig OR SIGBREAKF_CTRL_C)
|
||||
|
||||
IF (sig AND (wsig OR asig))
|
||||
|
||||
/* Messages waiting at the window's IDCMP port. Loop at WM_HANDLEINPUT
|
||||
* until all have been processed.
|
||||
*/
|
||||
|
||||
WHILE ((result := CA_HandleInput(window,{code})) <> WMHI_LASTMSG)
|
||||
|
||||
/* The return code of this method is two-part. The upper word describes the
|
||||
* class of the message (gadgetup, menupick, closewindow, iconify, etc),
|
||||
* and the lower word is a class-defined ID, currently in use in the
|
||||
* gadgetup and menupick return codes.
|
||||
* Switch on the class, then on the ID.
|
||||
*/
|
||||
|
||||
tmp := (result AND WMHI_CLASSMASK)
|
||||
|
||||
SELECT tmp
|
||||
|
||||
CASE WMHI_GADGETUP
|
||||
/* OK, got a gadgetup from something. Lets find out what the something is.
|
||||
* The code WORD to which a pointer was passed to WM_HANDLEINPUT has been
|
||||
* set to the Code value from the IDCMP_GADGETUP, in case we need it.
|
||||
*/
|
||||
|
||||
tmp2 := (result AND WMHI_GADGETMASK)
|
||||
SELECT tmp2
|
||||
|
||||
CASE G_OBJLIST
|
||||
/* User clicked on the listview
|
||||
*/
|
||||
IF (code = Not(0)) THEN dis := TRUE /* no node was selected */
|
||||
|
||||
i := 0
|
||||
REPEAT
|
||||
SetGadgetAttrsA( gl[ids[i]], win, NIL, [GA_DISABLED, dis, TAG_END])
|
||||
RefreshGList( gl[ids[i]], win, NIL, 1 )
|
||||
INC i
|
||||
UNTIL (ids[i] = G_END)
|
||||
ENDSELECT
|
||||
|
||||
CASE WMHI_GADGETHELP
|
||||
|
||||
/* A gadget help message informs the application about the gadget
|
||||
* under the mouse pointer. The code WORD is set to the value the
|
||||
* gadget returned. Result code contains the ID of the gadget,
|
||||
* or NULL (not in the window) or WMHI_GADGETMASK (not over a gadget).
|
||||
*/
|
||||
|
||||
tmp3 := (result AND WMHI_GADGETMASK)
|
||||
SELECT tmp3
|
||||
|
||||
CASE G_OBJTYPE ; StrCopy(helptext,'Choose object type')
|
||||
CASE G_OBJLIST ; StrCopy(helptext,'Choose object to modify')
|
||||
CASE G_TOP ; StrCopy(helptext,'Move object to top')
|
||||
CASE G_UP ; StrCopy(helptext,'Move object upwards')
|
||||
CASE G_DOWN ; StrCopy(helptext,'Move object downwards')
|
||||
CASE G_BOTTOM ; StrCopy(helptext,'Move object to bottom')
|
||||
CASE G_SORT ; StrCopy(helptext,'Sort object list')
|
||||
CASE G_NEW ; StrCopy(helptext,'Create new object')
|
||||
CASE G_EDIT ; StrCopy(helptext,'Edit object')
|
||||
CASE G_COPY ; StrCopy(helptext,'Make a new copy of object')
|
||||
CASE G_REMOVE ; StrCopy(helptext,'Delete the object')
|
||||
CASE G_HELP ; StrCopy(helptext,'Hey there ;)')
|
||||
CASE G_SAVE ; StrCopy(helptext,'Save settings')
|
||||
CASE G_USE ; StrCopy(helptext,'Use these settings')
|
||||
CASE G_TEST ; StrCopy(helptext,'Test these settings')
|
||||
CASE G_CANCEL ; StrCopy(helptext,'Cancel changes')
|
||||
DEFAULT ; StrCopy(helptext,'')
|
||||
ENDSELECT
|
||||
|
||||
IF (SetGadgetAttrsA(gl[G_HELP], win, NIL, [GA_TEXT, helptext, TAG_END] )) THEN RefreshGList(gl[G_HELP], win, NIL, 1)
|
||||
|
||||
CASE WMHI_CLOSEWINDOW
|
||||
/* The window close gadget was hit. Time to die...
|
||||
*/
|
||||
done := TRUE
|
||||
|
||||
CASE WMHI_ICONIFY
|
||||
/* Window requests that it be iconified. Handle this event as
|
||||
* soon as possible. The window is not iconified automatically to
|
||||
* give you a chance to make note that the window pointer will be
|
||||
* invalid before the window closes. It also allows you to free
|
||||
* resources only needed when the window is open, if you wish to.
|
||||
*/
|
||||
IF (CA_Iconify( window )) THEN win := NIL
|
||||
|
||||
CASE WMHI_UNICONIFY
|
||||
/* The window should be reopened. If you had free'd something
|
||||
* on iconify, now is the time to re-allocate it, before calling
|
||||
* CA_OpenWindow.
|
||||
*/
|
||||
win := CA_OpenWindow( window )
|
||||
|
||||
ENDSELECT
|
||||
ENDWHILE
|
||||
|
||||
ELSEIF (sig AND SIGBREAKF_CTRL_C)
|
||||
done := TRUE
|
||||
ENDIF
|
||||
|
||||
ENDWHILE
|
||||
|
||||
/* Close the window and dispose of all attached gadgets
|
||||
*/
|
||||
DisposeObject( window )
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF appport THEN DeleteMsgPort(appport)
|
||||
|
||||
/* NIL is valid input for these helper functions, so no need to check.
|
||||
*/
|
||||
freeChooserLabels( typelist )
|
||||
freeBrowserNodes( objlist )
|
||||
|
||||
FreeArgs(args)
|
||||
ENDIF
|
||||
|
||||
EXCEPT DO
|
||||
|
||||
IF buttonbase THEN CloseLibrary(buttonbase)
|
||||
IF listbrowserbase THEN CloseLibrary(listbrowserbase)
|
||||
IF chooserbase THEN CloseLibrary(chooserbase)
|
||||
IF windowbase THEN CloseLibrary(windowbase)
|
||||
IF layoutbase THEN CloseLibrary(layoutbase)
|
||||
IF labelbase THEN CloseLibrary(labelbase)
|
||||
IF iconbase THEN CloseLibrary(iconbase)
|
||||
ENDPROC
|
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
@ -0,0 +1,261 @@
|
|||
ClassAct 2.0 Demo
|
||||
-----------------
|
||||
-------
|
||||
---
|
||||
|
||||
ClassAct is a set of over 30 BOOPSI classes co-authored by Christopher
|
||||
Aldi, Timothy Aston, Osma Ahvenlampi, and Petter Nilsen. Its now being
|
||||
published by Finale Development, Inc.
|
||||
|
||||
ClassAct provides object-oriented building blocks for your application in
|
||||
the form of Intuition BOOPSI classes available as either shared run-time or
|
||||
link-time libraries. As they are standard classes, they may be used with
|
||||
any application environment supporting BOOPSI. ClassAct is a complete GUI
|
||||
system in its own right, supporting everything from simple buttons to an
|
||||
advanced list management class, and includes a complete window GUI layout
|
||||
system classes that lets you create font-sensitive and resizable interfaces
|
||||
quickly and easily, including any preferenced window backfill pattern
|
||||
loadable via the system DataTypes.
|
||||
|
||||
Programs that use ClassAct can be made freely distributable, shareware,
|
||||
commercial, etc. and there is NO FEE for users. When you purchase
|
||||
ClassAct, users of your software get to use all the preferences functions
|
||||
of our system. ClassAct a powerful and time-saving choice for software
|
||||
developers, and an affordable and convenient one as well.
|
||||
|
||||
Since ClassAct classes are BOOPSI, they automatically support all kinds of
|
||||
great features such as window relatively (resizability), 3.x help,
|
||||
notification, and interconnections with other BOOPSI classes (which do not
|
||||
necessarily have to be ClassAct classes). ClassAct classes are "standard"
|
||||
AmigaOS BOOPSI class libraries, much like the colorwheel and gradient
|
||||
sliders that come with release 3.x of the Amiga's operating system.
|
||||
ClassAct classes are built for speed, power, efficiency and stability.
|
||||
|
||||
ClassAct is compatible with 2.04 (V37) thru 3.1 (V40) releases of the Amiga
|
||||
operating system and take advantage of performance increases available in
|
||||
release 3.x (V39+). ClassAct has been tested with ECS, AGA, CyberGraphics,
|
||||
Retina, Picasso II and EGS Spectrum.
|
||||
|
||||
ClassAct is an expanding project, providing you with the graphical user
|
||||
interface tools you need to write your application. ClassAct is currently
|
||||
over 30 different classes, and the list is growing all the time!
|
||||
|
||||
Installation:
|
||||
-------------
|
||||
|
||||
You must first run the Install_Classes Installer script to install the
|
||||
ClassAct classes and prefs tool on your Amiga. You will not be able to run
|
||||
any of the examples without the classes installed. If you already have
|
||||
some ClassAct classes on your system, the Installer will only copy NEWER
|
||||
versions. Note that the Installer does not copy the examples or demo
|
||||
documentation. You may run the demos right out of the extracted archive
|
||||
one installing the classes. Class updates dated newer than this demo
|
||||
archive may, or may not be available for FTP from ftp.warped.com or
|
||||
ftp.finale-dev.com user support sites.
|
||||
|
||||
Support Classes:
|
||||
----------------
|
||||
|
||||
* ARexx class
|
||||
- Powerful ARexx class which can be used to create and manage
|
||||
arexxports. Supports many arexx abilities such as stems, etc.
|
||||
|
||||
* Window class
|
||||
- creates intuition window objects. Windows maybe opened, closed
|
||||
or iconified at will. Many window attributes may be set while
|
||||
the window is open. Automatically handles keyboard control,
|
||||
task defered display rendering, and many other issues to
|
||||
simplify IDCMP processing and programming overhead. Preference
|
||||
user backfill hooks are also supported.
|
||||
|
||||
Gadget Classes:
|
||||
---------------
|
||||
* Button gadget class
|
||||
- powerful button class with many of options including built-in
|
||||
arrow glyphs, tab-cycle support, custom images and more.
|
||||
|
||||
* CheckBox gadget class
|
||||
- for checkbox gadgets, very much like GadTools CHECKBOX_KIND.
|
||||
|
||||
* Chooser gadget class
|
||||
- for pop-up and drop-down menus simular in purpose to CycleGadgets.
|
||||
|
||||
* Clicktab gadget class
|
||||
- for file folder like click tab pages
|
||||
|
||||
* Fuel Gauge gadget class
|
||||
- for progress indication, several features including optional
|
||||
tick marks, and orientation settings.
|
||||
|
||||
* GetFile gadget class
|
||||
- Allows the user the option of typing in a file name or popping up a
|
||||
file requester to choose a file.
|
||||
|
||||
* GetFont gadget class
|
||||
- Lets the user pop up a font requester to choose a font.
|
||||
|
||||
* GetScreenMode gadget class
|
||||
- Lets the user pop up a screen mode requester to choose a screen mode.
|
||||
|
||||
* Integer gadget class
|
||||
- an integer gadget with optional arrows.
|
||||
|
||||
* ListBrowser gadget class
|
||||
- a listview supporting multiple columns, images, multi-select, etc.
|
||||
|
||||
* Layout gadget class -
|
||||
- for laying out gadgets and images in a font-sensitive and resizable
|
||||
hierarchical group fashion.
|
||||
|
||||
* Page gadget class -
|
||||
- may be used in conjuntion with clicktab or other classes
|
||||
to provided paged gui displays.
|
||||
|
||||
* RadioButton gadget class
|
||||
- for radio button gadgets, like GadTools MX_KIND.
|
||||
|
||||
* Scroller gadget class
|
||||
- a proportional scrollbar with arrows, and slider mode.
|
||||
|
||||
* SpeedBar gadget class
|
||||
- for button tool bars (horizontal or vertical orientations) with
|
||||
optional window title bar help messages.
|
||||
|
||||
* String gadget class
|
||||
- a simple string gadget with bevel frame.
|
||||
|
||||
|
||||
Image Classes:
|
||||
--------------
|
||||
* Bevel image class
|
||||
- for drawing bevel grouping boxes
|
||||
- supports all kinds of standard bevels, including titled grouping.
|
||||
bevels, drop-box bevels, optional inner fill color and text, etc.
|
||||
|
||||
* Bitmap image class
|
||||
- A contributed class, by Yvon Rozijn (Author of A-Web Amiga WWW
|
||||
Browser)
|
||||
- easily create images for Bitmap structures.
|
||||
- loads images seamlessly through datatypes.library.
|
||||
- resultant bitmap image can be embedded within a GUI Layout, Button,
|
||||
Speedbar, etc.
|
||||
|
||||
* Draw List image class
|
||||
- for designing custom colorized and scaled vector/areafill images.
|
||||
|
||||
* Glyph image class
|
||||
- for standard scalable system images
|
||||
- includes many images: arrows, get file, get font, etc.
|
||||
|
||||
* Label image class
|
||||
- makes multi-line labels mixing text, colors, images, styles, etc.
|
||||
|
||||
* Penmap image class
|
||||
- for pen-remapped images.
|
||||
|
||||
|
||||
Future classes in development include requester class, balance groups,
|
||||
virtual groups, application class, external tracker, printer class,
|
||||
and more!
|
||||
|
||||
Should You Use ClassAct?:
|
||||
-------------------------
|
||||
Have you written or are you currently in the process of developing Amiga
|
||||
applications? If so, the answer is a very definite YES, you should be
|
||||
using ClassAct.
|
||||
|
||||
The graphic user interfaces of many Amiga applications fit atleast one or
|
||||
more of the following descriptions:
|
||||
|
||||
- Non-existant (i.e. command line only)
|
||||
- Not font sensitive
|
||||
- Not Locale sensitive
|
||||
- Slow
|
||||
- Memory Intensive
|
||||
- Unattractive
|
||||
- Lacking in intuitiveness and originality
|
||||
- Non-standard
|
||||
- Poor or limited keyboard control
|
||||
|
||||
The reasons for this are simple. Many of the existing systems for creating
|
||||
a GUI are either limited in features, slow, hard to use, and/or violate
|
||||
system standards. ClassAct makes every attempt to combine compability,
|
||||
flexiblity, usablility and some originality while following Amiga style
|
||||
guide.
|
||||
|
||||
This is why you should use ClassAct. The Amiga is a graphic system and
|
||||
applications should have a attractive and responsive graphic user
|
||||
interface. The ClassAct toolkit allows you to easily create an attractive
|
||||
GUI that doesn't suffer from the deficiencies listed above.
|
||||
|
||||
If you want your application to be easy to use, fast and professional
|
||||
looking then you should consider ClassAct.
|
||||
|
||||
|
||||
Purchasing ClassAct:
|
||||
--------------------
|
||||
|
||||
ClassAct is availble NOW only from for just $39.95 USD for public domain
|
||||
and sharware authors, and $69.95 USD for commercial developers. It can be
|
||||
ordered directly from Finale Development, Inc:
|
||||
|
||||
|
||||
Finale Development, Inc.
|
||||
P.O. Box 6905
|
||||
West Palm Beach, FL. 33405
|
||||
USA
|
||||
|
||||
Phone: 1 (203) 235-7518
|
||||
Fax: 1 (203) 237-8459
|
||||
|
||||
E-Mail: caldi@ct1.nai.net
|
||||
E-Mail: caldi@finale-dev.com
|
||||
|
||||
If you are an author of an exising application using a competitive GUI
|
||||
product such as MUI, BGUI, StormWizard, GadLayout, GTLayout, Triton,
|
||||
GadOutline, or GUIEnv, you may take an advantage of a $10 USD discount
|
||||
off the purchase price.
|
||||
|
||||
|
||||
The ClassAct web site url is:
|
||||
|
||||
WWW: http://www.warped.com/~timmer/classact/
|
||||
|
||||
|
||||
Here is some of what is included with ClassAct:
|
||||
|
||||
- The complete set of ClassAct BOOPSI classes.
|
||||
|
||||
- Documentation how to use each class in C= AutoDoc format.
|
||||
|
||||
- Examples programs in C and AmigaE for using each of the classes.
|
||||
|
||||
- C, AmigaE, Cyclone Module II, includes that you will need for writing
|
||||
programs that use ClassAct. Assember support available, ask for details.
|
||||
We offer FREE copies of ClassAct to anyone who wishes to create the
|
||||
support modules and includes for other compilers. Please email us for
|
||||
more details.
|
||||
|
||||
- classact.lib which includes SAS/C or DICE auto-open support for
|
||||
ClassAct classes easing use. Source included.
|
||||
|
||||
- SBGen which allows you to quickly generate SpeedBar gadget source
|
||||
code and image data from a collection of 100+ pre-designed images.
|
||||
|
||||
- Free bug fixes via ftp/email.
|
||||
|
||||
- Free minor updates via ftp/email.
|
||||
|
||||
- Technical support directly from the ClassAct Development Team
|
||||
and via the ClassAct Mailing list. (See our FAQ for more info).
|
||||
|
||||
We hope you enjoy the ClassAct demo. Be sure you experiment with the
|
||||
included preferences program to configure various GUI styles. If you
|
||||
have any questions or comments, suggestions or problems, please do not
|
||||
hesitate to contact us.
|
||||
|
||||
We want your comments and suggestions so we can improve ClassAct. If you
|
||||
should find a bug, or shortcoming in the system, we encorage you to contact
|
||||
us immediatly with as much related information as possible - an unreported
|
||||
bug may never get fixed if it is not discovered and reported.
|
||||
|
Binary file not shown.
|
@ -0,0 +1,444 @@
|
|||
CLASSACT FAQ
|
||||
|
||||
|
||||
THIS DOCUMENT
|
||||
|
||||
This document was written to answer to frequently asked questions
|
||||
about the ClassAct GUI toolkit. It addresses both user and developer
|
||||
questions. Sorry, some information is not quite up-to-date for
|
||||
ClassAct 2.0 yet.
|
||||
|
||||
|
||||
MAINTAINER
|
||||
|
||||
This FAQ is maintained by Osma Ahvenlampi <Osma.Ahvenlampi@hut.fi>
|
||||
|
||||
|
||||
CONTENTS
|
||||
|
||||
1.1 What is ClassAct?
|
||||
1.2 What's the availability?
|
||||
1.3 Why is it better than the other GUI toolkits?
|
||||
1.4 Where can I get ClassAct?
|
||||
1.5 Is there a mailing list?
|
||||
1.6 What uses ClassAct?
|
||||
|
||||
2.1 What is in ClassAct?
|
||||
2.2 How about the developer support stuff?
|
||||
2.3 How does writing ClassAct applications differ from GadTools?
|
||||
2.4 From other toolkits?
|
||||
|
||||
3.1 Can I change the way ClassAct looks?
|
||||
3.2 Is there a preferences editor?
|
||||
3.3 Can ClassAct use background patterns?
|
||||
|
||||
4.1 What is this deferred refresh thing?
|
||||
4.2 How does it work?
|
||||
4.3 How do the gadgets interconnect?
|
||||
4.4 How does ClassAct support keyboard control?
|
||||
|
||||
THE FAQ
|
||||
|
||||
1.1 What is ClassAct?
|
||||
|
||||
ClassAct is a GUI toolkit for the Amiga, implemented as a set of
|
||||
easy to use shared BOOPSI class libraries.
|
||||
|
||||
ClassAct provides object-oriented building blocks for your
|
||||
application in the form of Intuition BOOPSI classes available as
|
||||
either shared run-time libraries. As they are standard classes,
|
||||
they may be used with any application environment supporting
|
||||
BOOPSI. However, ClassAct is a complete GUI system in its own right,
|
||||
supporting everything from simple buttons to an advanced listview
|
||||
class supporting multi-select, images, multi-column and more.
|
||||
In addition, a complete GUI fast window and layout system class that
|
||||
lets you create font-sensitive and resizable interfaces quickly
|
||||
and easily.
|
||||
|
||||
1.2 What's the availability?
|
||||
|
||||
Programs that use ClassAct can be made freely distributable,
|
||||
shareware, commercial, etc. as there is no fee for users! When you
|
||||
purchase ClassAct, users of your software get to use all the
|
||||
functions/preferences of our classes. This not only makes ClassAct
|
||||
a powerful and time-saving choice for software developers, but an
|
||||
affordable and convenient one as well.
|
||||
|
||||
ClassAct is a commercial toolkit with a developer kit available for
|
||||
$69.95. This kit contains the latest ClassAct libraries, the C
|
||||
headers, and the programmer documentation, plus many example programs
|
||||
with source. The kit also includes a distribution license for the
|
||||
class libraries, which means that they can be distributed free of
|
||||
charge with the applications using them. For inclusion with software
|
||||
to be bundled and/or distributed with the AmigaOS, a special license
|
||||
is available.
|
||||
|
||||
For freeware and shareware developers there is a special deal of the
|
||||
toolkit for only $39.95. The package is exactly the same and entitles
|
||||
the buyer to the same support, but the distribution license restricts
|
||||
the use of the toolkit to non-commercial programs. That means public
|
||||
domain, freeware, shareware and similar applications.
|
||||
|
||||
1.3 Why is it better than other GUI toolkits?
|
||||
|
||||
Since ClassAct all classes are BOOPSI, they automatically support all
|
||||
sorts of great features, such as window relativity (resizability),
|
||||
3.x gadgethelp, notification, and interconnections with other BOOPSI
|
||||
classes (which do not necessarily have to be ClassAct classes).
|
||||
ClassAct classes are totally standard BOOPSI objects, just like the
|
||||
colorwheel and gradient sliders that come with release 3.x of the
|
||||
Amiga's operating system. ClassAct classes are built for speed,
|
||||
power and efficiency. Many systems are cumbersome or limited in
|
||||
ability, and user preference, often the result of trying to build
|
||||
on top of the limited GadTools system. Many people think BOOPSI and
|
||||
get scared off, this is only because until now, there have not been
|
||||
many BOOPSI objects to work with. Making a BOOPSI interface often
|
||||
requiers writing your own gadget classes since AmigaOS does not
|
||||
provide anything beyond the basic button, string and scroller.
|
||||
|
||||
ClassAct provides all of the ground work, over 25 font adaptive
|
||||
feature rich classes, letting you concentrate on your application,
|
||||
and its GUI, not how to implement it or work around short comings
|
||||
of lesser systems.
|
||||
|
||||
All ClassAct classes are compatible with 2.04 (V37) thru 3.1 (V40)
|
||||
releases of the Amiga operating system and take advantage of
|
||||
performance increases available in release 3.x.
|
||||
|
||||
1.4 Where can I get ClassAct?
|
||||
|
||||
ClassAct is availble NOW only from for just $39.95 USD for public
|
||||
domain and sharware authors, and $69.95 USD for commercial
|
||||
developers. It can be ordered directly from Finale Development, Inc:
|
||||
|
||||
Finale Development, Inc.
|
||||
P.O. Box 6905
|
||||
West Palm Beach, FL. 33405
|
||||
USA
|
||||
|
||||
Phone: 1 203 235 7518
|
||||
Fax: 1 203 237 8459
|
||||
|
||||
E-Mail: caldi@ct1.nai.net
|
||||
|
||||
Demos and maintenance updates are available via FTP from:
|
||||
|
||||
FTP: ftp.warped.com
|
||||
/pub/amiga/classact/ClassActDemo.lha
|
||||
/pub/amiga/classact/Classes-##-XXX-##.lha
|
||||
|
||||
Where ##-XXX-## prepresents the date of the update release,
|
||||
for example: Classes-8-May-97.lha
|
||||
|
||||
The ClassAct web site is at:
|
||||
WWW: http://www.warped.com/~timmer/classact/
|
||||
|
||||
1.5 Is there a mailing list?
|
||||
|
||||
Yes. To subscribe, send a message to;
|
||||
|
||||
majordomo@warped.com
|
||||
|
||||
with the line,
|
||||
|
||||
subscribe classact <your-email-address>
|
||||
|
||||
in the BODY of the message. For example,
|
||||
|
||||
subscribe classact joe@bob.com
|
||||
|
||||
This mailing list is the primary form of support for the toolkit.
|
||||
All of the developers read it and answer questions.
|
||||
|
||||
1.6 What uses ClassAct?
|
||||
|
||||
Several ClassAct applications are being developed. A few
|
||||
have already been, or are very near release;
|
||||
|
||||
Excelsior BBS - The lastest version of E! BBS now usess ClassAct.
|
||||
|
||||
SysInspector - System Inspector, simular in purpose to Xoper
|
||||
with a very attractive ClassAct GUI.
|
||||
|
||||
EnPrint - Epson Stylus printer driver/control software
|
||||
Available from Endicor Technologies.
|
||||
|
||||
IW225 Pro - IW225 Professional TCP/IP Stack is now using
|
||||
ClassAct for point & click GUI QuickPrefs
|
||||
configuration as well as bundled with the
|
||||
new DaFTP. Available from InterWorks.
|
||||
|
||||
NewYork - An NNTP News Reader, styled after Voodoo. In
|
||||
beta stages of development, and like Voodoo,
|
||||
this is being written by one one of the ClassAct
|
||||
co-authors. Email caldi@ct1.nai.net for more info.
|
||||
|
||||
NewIcons 3.0 - Recently release version of NewIcons, uses
|
||||
ClassAct for NI3 prefs.
|
||||
|
||||
AmiFTP - AmiFTP, another popular GUI FTP client has been
|
||||
re-implemented with ClassAct. More info at:
|
||||
|
||||
http://www.lysator.liu.se/~lilja/AmiFTP.html
|
||||
|
||||
DaFTP'96 - The popular DaFTP has been re-implemented
|
||||
using ClassAct.
|
||||
|
||||
Voodoo - A multithreaded mail reader with MIME support,
|
||||
Rexx interface for OS 3.x, and included
|
||||
in the Amiga Technologies Surfer bundle.
|
||||
|
||||
http://www.niksula.cs.hut.fi/~oahvenla/voodoo/
|
||||
|
||||
Thor 2.5 - The popular THOR news/email offline/tcp reader
|
||||
is being ported to ClassAct. Available Soon!
|
||||
|
||||
Note, V2.5 beta/preview is available now for
|
||||
registered users.
|
||||
|
||||
Grapevine2 - A greatly enhanced version of the original GUI IRC
|
||||
client is in the hands of a small group of
|
||||
testers now - and a year later now, it still is. <g>
|
||||
|
||||
CompactPlayer - A SCSI-2 audio CD player implemented as an early
|
||||
demo of using ClassAct is available with source
|
||||
from:
|
||||
|
||||
Aminet: /disk/cdrom/CompactPlayer.lha
|
||||
|
||||
Asokoban3 - Amiga version xsokoban, a very impressive game.
|
||||
|
||||
AmiLights - A puzzel game, playable on the Workbench screen,
|
||||
from Doug Dyer - author of the popular AmiCheck.
|
||||
|
||||
A list with links to respective software is also on the ClassAct
|
||||
web page. And there is much more to come!
|
||||
|
||||
|
||||
2.1 What is in ClassAct?
|
||||
|
||||
ClassAct is an expanding project. Currently over 30 different classes,
|
||||
and the number is expanding all the time. ClassAct also has some tools
|
||||
to aid in building user interfaces. And here is a list of classes;
|
||||
|
||||
Gadget Classes:
|
||||
* Button gadget class
|
||||
- powerful button class with many of options including built-in
|
||||
arrow glyphs, tab-cycle support, custom images and more.
|
||||
|
||||
* CheckBox gadget class
|
||||
- for checkbox gadgets, very much like GadTools CHECKBOX_KIND.
|
||||
|
||||
* Chooser gadget class
|
||||
- for pop-up and drop-down menus similar in purpose to GadTools
|
||||
CYCLE_KIND.
|
||||
|
||||
* Clicktab gadget class
|
||||
- for file-folder tabs gadgets. May used in conjunction with
|
||||
the Page gadget to "flip" the virtual pages.
|
||||
|
||||
* Fuel Gauge gadget class
|
||||
- for progress indication, several features including optional
|
||||
tick marks, and orientation settings.
|
||||
|
||||
* Integer gadget class
|
||||
- an integer gadget with optional arrows.
|
||||
|
||||
* Layout gadget class
|
||||
- for laying out gadgets and images in a font-sensitive and
|
||||
resizable hierarchical group fashion.
|
||||
|
||||
* ListBrowser gadget class
|
||||
- a listview supporting multiple columns, images, multi-select,
|
||||
hierarchical lists, etc.
|
||||
|
||||
* Page gadget class
|
||||
- a virtual page class for hiding groups of gadgets from view.
|
||||
|
||||
* Palette gadget class
|
||||
- for color selection, like GadTools PALETTE_KIND.
|
||||
|
||||
* RadioButton gadget class
|
||||
- for radio button gadgets, like GadTools MX_KIND.
|
||||
|
||||
* Scroller gadget class
|
||||
- a proportional scrollbar with arrows, and slider mode.
|
||||
|
||||
* SpeedBar gadget class
|
||||
- for button tool bars (horizontal or vertical orientations) with
|
||||
optional window title bar help messages.
|
||||
|
||||
* String gadget class
|
||||
- a simple string gadget with bevel frame, compatible with
|
||||
strgclass.
|
||||
|
||||
Image Classes:
|
||||
* Bevel image class
|
||||
- for drawing bevel grouping boxes
|
||||
- supports all kinds of standard bevels, including titled grouping.
|
||||
bevels, drop-box bevels, optional inner fill color and text, etc.
|
||||
|
||||
* Draw List image class
|
||||
- for designing custom colorized and scaled vector/areafill images.
|
||||
|
||||
* Glyph image class
|
||||
- for standard scalable system images
|
||||
- includes many images: arrows, get file, get font, etc.
|
||||
|
||||
* Label image class
|
||||
- makes multi-line labels mixing text, colors, images, styles, etc.
|
||||
|
||||
* Penmap image class
|
||||
- for pen-remapped images.
|
||||
|
||||
Other Support Classes:
|
||||
* Window class
|
||||
- deferred layout & gadget refresh support.
|
||||
- automatic gadget keyboard control support with visual feedback.
|
||||
- iconification.
|
||||
- greatly simplified IDCMP processing.
|
||||
|
||||
* ARexx class
|
||||
- simplifies creation and handling of ARexx ports.
|
||||
|
||||
|
||||
2.2 How about the developer support stuff?
|
||||
|
||||
Here is some of what is included with ClassAct:
|
||||
|
||||
- The complete set of ClassAct BOOPSI classes.
|
||||
- Autodocs in text and AmigaGuide format telling you how to use each
|
||||
class.
|
||||
- classact.lib (with source) which includes SAS/C and DICE autoopen
|
||||
support for ClassAct classes, plus useful support routines.
|
||||
- SBGen which allows you to quickly generate SpeedBar gadget source
|
||||
code and image data.
|
||||
- PMGen for creating penmap.image source data from pictures.
|
||||
- Examples programs in C for using each of the classes.
|
||||
- C includes that you will need for writing programs that use ClassAct.
|
||||
- Technical support from Phantom Development.
|
||||
|
||||
2.3 How does writing ClassAct applications differ from GadTools?
|
||||
|
||||
The first and foremost difference is that designing a GUI is much
|
||||
easier. Even with GUI builders such as GadToolsBox, making a GadTools
|
||||
GUI includes a lot of pixel-level tweaking to make it look right
|
||||
for font sensitivity, notably with various locales, and prop fonts.
|
||||
|
||||
With ClassAct the GUI is described as a layout hierarchy, and the
|
||||
layout engine will take care of sizing and positioning gadgets. The
|
||||
developer need not, and should not, try to place objects in absolute
|
||||
positions. Resizability needs no extra work, because layout.gadget
|
||||
will scale the hierarchy to fit any size.
|
||||
|
||||
Second, of course, is that the GadTools counterparts of ClassAct
|
||||
gadgets are much more restricted, if they in fact even exist at all.
|
||||
|
||||
GadTools may be harder to use because many operations require that
|
||||
the gadgets be destroyed and recreated in some instances, eg resize,
|
||||
changing fonts/screens, etc. With ClassAct they don't even have to be
|
||||
detached from the window before modifying - they are BOOPSI objects.
|
||||
|
||||
2.4 From other toolkits?
|
||||
|
||||
Many available GUI toolkits are based on GadTools. While they make
|
||||
creating a GUI easier, they can not fix some deficiencies of
|
||||
GadTools. Because ClassAct is BOOPSI, these deficiencies often do
|
||||
not exist. In addition, ClassAct provides many gadgets and abilities
|
||||
absent from some other packages.
|
||||
|
||||
In some ways, ClassAct resembles MUI. However, there are many big
|
||||
differences. ClassAct can be used at many levels. The simplest
|
||||
applications might only need a single gadget, such as the fuelgauge
|
||||
progress indicator. ClassAct allows putting single gadgets such as
|
||||
this into existing GadTools interfaces, because the gadgets are
|
||||
as useful independantly as they are when part of the whole. The
|
||||
gadgets send normal IDCMP messages back to the application, and do
|
||||
not require special front end event handlers. Exec and Intuition
|
||||
functions are enough to deal with ClassAct. On the other hand, the
|
||||
whole GUI can be quickly created using ClassAct gadgets, the
|
||||
ClassAct Window Class can even provide completely transparent
|
||||
keyboard shortcuts with no additional effort by the programmer.
|
||||
This is the prefered and recommended usage.
|
||||
|
||||
|
||||
3.1 Can I change the way ClassAct looks?
|
||||
|
||||
ClassAct has a number of system-wide default settings. While we
|
||||
accept that some GUI features have to be user configurable, the
|
||||
common methods of providing this configurability have until now been
|
||||
sub-optimal. We are working on giving application-level
|
||||
configurability to ClassAct with a method that differs from the
|
||||
usual approaches to the problem. Suggestions welcome!
|
||||
|
||||
3.2 Is there a preferences editor?
|
||||
|
||||
Yes. An editor for setting global GUI preferences for things such as
|
||||
bevel styles, default window backfill patterns, fallback font label
|
||||
pen settings and built-in gadget imagery and so on is constantly
|
||||
being worked on. The current version is available in the demo and
|
||||
update archives and is provided free to all ClassAct users.
|
||||
|
||||
3.3 Can ClassAct use background patterns?
|
||||
|
||||
The layout system accepts both a simple RectFill pattern and a
|
||||
backfill hook for more complicated patterns (such as a background
|
||||
picture). It is very simple to use a generic backfill hook with
|
||||
ClassAct. Examples are provided on how to override the default hook.
|
||||
|
||||
|
||||
4.1 What is this deferred refresh thing?
|
||||
|
||||
Normally, when a window requires refreshing, Intuition will
|
||||
automatically refresh the "damaged" regions in the window's borders
|
||||
and gadgets. However, with complex gadgets, this can take time, and
|
||||
that time is taken by input.device. Unfortunately input.device is
|
||||
responsible for other things too, such as moving the mouse pointer.
|
||||
A refresh of a window filled with complex BOOPSI gadgets can make the
|
||||
mouse pointer "freeze" for a second. Not only that, but since
|
||||
input.device runs at a high priority, the whole machine appears to
|
||||
stop for a fraction of a second while the refresh is taking place.
|
||||
|
||||
This is even worse when the window is resized. Not only do the
|
||||
gadgets have to be redrawn, but also their size has to be
|
||||
recalculated. Resizing a window can stop input.device for even a
|
||||
couple of seconds at worst.
|
||||
|
||||
ClassAct's window and layout classes work together to eliminate this
|
||||
problem. When using the deferred refresh feature of these classes,
|
||||
input.device can continue while the relayout and refresh are done by
|
||||
the application task.
|
||||
|
||||
4.2 How does it work?
|
||||
|
||||
The concept is quite simple. When a layout gadget receives a command
|
||||
to refresh itself and notices that it was dispatched by input.device,
|
||||
it will check whether it had been instructed to defer refreshes. If
|
||||
that is the case, it will, instead of refreshing itself, notify the
|
||||
window class that it should restart the refresh in the application
|
||||
context. Windowclass will then decide on the exact method of refresh
|
||||
based on the refresh type (smart or simple, possibly nocare) and send
|
||||
another refresh command to the layout gadget. Meanwhile, input.device
|
||||
can do something else.
|
||||
|
||||
4.3 How do the gadgets interconnect?
|
||||
|
||||
You can use the normal BOOPSI ICA_MAP and ICA_TARGET tags and the
|
||||
ic and model classes built in the OS. All of the ClassAct classes
|
||||
provide state information through the OM_NOTIFY method. In addition,
|
||||
the layout.gadget automatically connects objects to their labels,
|
||||
groups to each other, etc.
|
||||
|
||||
4.4 How does ClassAct support keyboard control?
|
||||
|
||||
The ClassAct window class, together with the layout class, will make
|
||||
keyboard control completely transparent to applications. As long as
|
||||
the gadget label contains a shortcut character (normally the
|
||||
character after a '_' character), the gadget will have a keyboard
|
||||
shortcut. Gadgets provide visual feedback through two custom gadget
|
||||
methods (documented in case you want to make your own custom gadget),
|
||||
ie. a button will "depress" when you press the shortcut key, and
|
||||
release when you release the key. The message you get afterwards is
|
||||
identical to a normal mouse button triggered gadget event. Window
|
||||
class can deal with several keys pressed down and other such special
|
||||
case events.
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,6 @@
|
|||
FROM LIB:c.o "ClassActDemo.o"+"Images.o"
|
||||
TO "ClassActDemo"
|
||||
LIB lib:classact.lib lib:debug.lib LIB:sc.lib LIB:amiga.lib
|
||||
SMALLCODE
|
||||
SMALLDATA
|
||||
|
Binary file not shown.
|
@ -0,0 +1,949 @@
|
|||
#include <exec/types.h>
|
||||
#include <intuition/intuition.h>
|
||||
|
||||
__chip UWORD picture_data[2205] =
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0000, 0x0000, 0x0001, 0x8000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0003, 0x8000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0007, 0xF000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x000F, 0xF800, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0x3400, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x003D, 0x9E00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0078, 0xDF00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x00F0, 0x6F80, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x01E0, 0x37C0, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x03C0, 0x1FE0, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0780, 0x8DF0, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0F01, 0x06F8, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x1E02, 0x037C, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x3C04, 0x01BE, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x7808, 0x08DF, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0xF010, 0x106F, 0x8000, 0x0000, 0x0000,
|
||||
0x0000, 0x0001, 0xE020, 0x207F, 0xC000, 0x0000, 0x0000,
|
||||
0x0000, 0x0003, 0xC040, 0x407F, 0xE000, 0x0000, 0x0000,
|
||||
0x0000, 0x0007, 0x8080, 0x80FF, 0xF000, 0x0000, 0x0000,
|
||||
0x0000, 0x000F, 0x0101, 0x01FF, 0xF800, 0x0000, 0x0000,
|
||||
0x0000, 0x001E, 0x0202, 0x03FF, 0xFC00, 0x0000, 0x0000,
|
||||
0x0000, 0x001C, 0x0404, 0x07FF, 0xFE00, 0x0000, 0x0000,
|
||||
0x0000, 0x007C, 0x0808, 0x0FF2, 0xFF00, 0x0000, 0x0000,
|
||||
0x0000, 0x007E, 0x1010, 0x1FEF, 0x7F80, 0x0000, 0x0000,
|
||||
0x0000, 0x003F, 0x0020, 0x3FFF, 0xBF80, 0x0000, 0x0000,
|
||||
0x0000, 0x001F, 0x8040, 0x7E7F, 0xDF00, 0x0000, 0x0000,
|
||||
0x0000, 0x000F, 0xC080, 0xFC1F, 0xE600, 0x0000, 0x0000,
|
||||
0x0000, 0x0007, 0xE101, 0xF97F, 0xF400, 0x0000, 0x0000,
|
||||
0x0000, 0x0003, 0xF003, 0xF303, 0xF800, 0x0000, 0x0000,
|
||||
0x0000, 0x0001, 0xF807, 0xE7C1, 0xF000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0xFC0F, 0xCFC1, 0xE000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x7E1F, 0x9FC1, 0xC000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x3F3F, 0x25E0, 0xC000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x1FFE, 0x6EF1, 0x8000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0FBC, 0x7F63, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x07FE, 0x7FA6, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x03FF, 0x1FAC, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x01FF, 0x9FF8, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x00FF, 0xC630, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x007F, 0xE660, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x003F, 0xF0C0, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0xF980, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x000F, 0xFF00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0xFF80, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x3FFF, 0xFF80, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x001F, 0xFFFF, 0xFFFF, 0x8000, 0x0000, 0x0000,
|
||||
0x0000, 0x007F, 0xFFEF, 0xFF7F, 0xFF00, 0x0000, 0x0000,
|
||||
0x0000, 0x01FF, 0xFFEF, 0xFF7F, 0xFFC0, 0x0000, 0x0000,
|
||||
0x0000, 0x03FF, 0xFFEF, 0x9F7F, 0xFFF0, 0x0000, 0x0000,
|
||||
0x0000, 0x07FF, 0xEFEF, 0x2F7F, 0x7FF8, 0x0000, 0x0000,
|
||||
0x0000, 0x07FF, 0xEFE0, 0x207F, 0x7FFC, 0x0000, 0x0000,
|
||||
0x0000, 0x0FFF, 0xEFE0, 0x207F, 0x7FFC, 0x0000, 0x0000,
|
||||
0x0000, 0x0FFF, 0xF7E0, 0x207E, 0xFFFE, 0x0000, 0x0000,
|
||||
0x0000, 0x1FFF, 0xF7F0, 0x20FE, 0xFFFE, 0x0000, 0x0000,
|
||||
0x0000, 0x1FFF, 0xF7F0, 0x20FE, 0xFFFF, 0x0000, 0x0000,
|
||||
0x0000, 0x3FFF, 0xF1F0, 0x20F8, 0xFFFF, 0x0000, 0x0000,
|
||||
0x0000, 0x3FFF, 0xFEF0, 0x20F7, 0xFFFF, 0x8000, 0x0000,
|
||||
0x0000, 0x7FFF, 0xFDF8, 0x21FB, 0xFFFF, 0x8000, 0x0000,
|
||||
0x0000, 0x7FFF, 0xFBF8, 0x21FD, 0xFFFF, 0xC000, 0x0000,
|
||||
0x0000, 0xFFFF, 0xFBF8, 0x21FD, 0xFFFF, 0xC000, 0x0000,
|
||||
0x0000, 0xFFFF, 0xFDF8, 0x21FB, 0xFFFF, 0xE000, 0x0000,
|
||||
0x0001, 0xFFFF, 0xFDFC, 0x23FB, 0xFFFF, 0xE000, 0x0000,
|
||||
0x0001, 0xFFFF, 0xFDFC, 0x23FB, 0xFFFF, 0xF000, 0x0000,
|
||||
0x0003, 0xFFFF, 0xFEFC, 0x23F7, 0xFFFF, 0xF000, 0x0000,
|
||||
0x0003, 0xFFFF, 0xFEFE, 0x27F7, 0xFFFF, 0xF800, 0x0000,
|
||||
0x0007, 0xFFFF, 0xFEFE, 0x27F7, 0xFFFF, 0xF800, 0x0000,
|
||||
0x0007, 0xFFFF, 0xFF7E, 0x27EF, 0xFFFF, 0xFC00, 0x0000,
|
||||
0x000F, 0xFFFF, 0xFF7F, 0x2FEF, 0xFFFF, 0xFC00, 0x0000,
|
||||
0x000F, 0xFFFF, 0xFFBF, 0x2FDF, 0xFFFF, 0xFE00, 0x0000,
|
||||
0x001F, 0xFFFF, 0xFFBF, 0x2FDF, 0xFFFF, 0xFE00, 0x0000,
|
||||
0x001F, 0xFFFF, 0xFFDF, 0xBFBF, 0xFFFF, 0xFF00, 0x0000,
|
||||
0x003F, 0xFFFF, 0xFFDF, 0xBFBF, 0xFFFF, 0xFF00, 0x0000,
|
||||
0x003F, 0xFFFF, 0xFFEF, 0xBF7F, 0xFEFF, 0xFF80, 0x0000,
|
||||
0x007F, 0xFFFF, 0xFFEF, 0xBF7F, 0xFEFF, 0xFF80, 0x0000,
|
||||
0x007F, 0xFFEF, 0xFFF7, 0xDEFF, 0xFEFF, 0xFFC0, 0x0000,
|
||||
0x00FF, 0xFFEF, 0xFFF7, 0xDEFF, 0xFEFF, 0xFFC0, 0x0000,
|
||||
0x00FF, 0xFFCF, 0xFFFB, 0xDDFF, 0xFEFF, 0xFFE0, 0x0000,
|
||||
0x01FF, 0xFFCF, 0xFFFB, 0xDDFF, 0xFE7F, 0xFFE0, 0x0000,
|
||||
0x01FF, 0xFF8F, 0xFFFD, 0xEBFF, 0xFE7F, 0xFFF0, 0x0000,
|
||||
0x03FF, 0xFF8F, 0xFFFD, 0xEBFF, 0xFE3F, 0xFFF0, 0x0000,
|
||||
0x03FF, 0xFF0F, 0xFFFE, 0xE7FF, 0xFE3F, 0xFFF8, 0x0000,
|
||||
0x07FF, 0xFF0F, 0xFFFE, 0xE7FF, 0xFE1F, 0xFFF8, 0x0000,
|
||||
0x07FF, 0xFE0F, 0xFFFF, 0x6FFF, 0xFE1F, 0xFFFC, 0x0000,
|
||||
0x0FFF, 0xFE0F, 0xFFFF, 0x6FFF, 0xFE0F, 0xFFFC, 0x0000,
|
||||
0x0FFF, 0xFC0F, 0xFFFF, 0xAFFF, 0xFE0F, 0xFFFE, 0x0000,
|
||||
0x1FFF, 0xFC0F, 0xFFFF, 0xAFFF, 0xFE07, 0xFFFE, 0x0000,
|
||||
0x1FFF, 0xF80F, 0xFFFF, 0xCFFF, 0xFE07, 0xFFFF, 0x0000,
|
||||
0x3FFF, 0xF80F, 0xFFFF, 0xCFFF, 0xFE03, 0xFFFF, 0x0000,
|
||||
0x3FFF, 0xF00F, 0xFFFF, 0xEFFF, 0xFE03, 0xFFFF, 0x8000,
|
||||
0x7FFF, 0xF00F, 0xFFFF, 0xEFFF, 0xFE01, 0xFFFF, 0x8000,
|
||||
0xFFFF, 0xE00F, 0xFFFF, 0xC7FF, 0xFE01, 0xFFFF, 0xC000,
|
||||
0xFFFF, 0xE00F, 0xFFFF, 0xEFFF, 0xFE00, 0xFFFF, 0xE000,
|
||||
0xFFFF, 0xC00F, 0xFFFF, 0xEFFF, 0xFE00, 0xFFFF, 0xE000,
|
||||
0xFFFF, 0xC00F, 0xFFFF, 0xEFFF, 0xFE00, 0x7FFF, 0xE000,
|
||||
0xEFFF, 0x800F, 0xFFFF, 0xEFFF, 0xFE00, 0x7FFF, 0x0000,
|
||||
0x03FF, 0x800F, 0xFFFF, 0xEFFF, 0xFE00, 0x3FFC, 0x0000,
|
||||
0x007F, 0x000F, 0xFFFF, 0xC7FF, 0xFE00, 0x3FE0, 0x0000,
|
||||
0x001F, 0x000F, 0xFFFF, 0xEFFF, 0xFE00, 0x1F80, 0x0000,
|
||||
0x0000, 0x000F, 0xFFFF, 0xEFFF, 0xFE00, 0x1E00, 0x0000,
|
||||
0x0000, 0x000F, 0xFFFF, 0xEFFF, 0xFE00, 0x0300, 0x0000,
|
||||
0x0000, 0x000F, 0xFFFF, 0xEFFF, 0xFE00, 0x0200, 0x0000,
|
||||
0x0000, 0x000F, 0xFFFF, 0xEFFF, 0xFE00, 0x0000, 0x0000,
|
||||
0x0000, 0x000F, 0xFFFF, 0xEFFF, 0xFE00, 0x0000, 0x0000,
|
||||
0x0000, 0x000F, 0xFFFF, 0xC7FF, 0xFE00, 0x0000, 0x0000,
|
||||
0x0000, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x0000, 0x0002, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0007, 0x8000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x000F, 0xE000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0xF000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x003E, 0x2000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x007E, 0x0400, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x00FF, 0x1E00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x01FF, 0x8F00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x03FD, 0xC780, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x07FB, 0xE7C0, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0FF7, 0x71E0, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x1FEE, 0xF8F0, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x3FDD, 0xDC78, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x7FBB, 0xBE3C, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0xFF77, 0x771E, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0001, 0xFEEE, 0xEF8F, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0003, 0xFDDD, 0xDD8F, 0x8000, 0x0000, 0x0000,
|
||||
0x0000, 0x0007, 0xFBBB, 0xBB9F, 0xC000, 0x0000, 0x0000,
|
||||
0x0000, 0x000F, 0xF777, 0x773F, 0xE000, 0x0000, 0x0000,
|
||||
0x0000, 0x001F, 0xEEEE, 0xEE7F, 0xF000, 0x0000, 0x0000,
|
||||
0x0000, 0x003F, 0xDDDD, 0xDCFF, 0xF800, 0x0000, 0x0000,
|
||||
0x0000, 0x0077, 0xBBBB, 0xB9FF, 0xFC00, 0x0000, 0x0000,
|
||||
0x0000, 0x007B, 0xF777, 0x73F2, 0xFE00, 0x0000, 0x0000,
|
||||
0x0000, 0x007D, 0xEEEE, 0xE7EF, 0x7E00, 0x0000, 0x0000,
|
||||
0x0000, 0x007E, 0xFDDD, 0xCE1F, 0xBE00, 0x0000, 0x0000,
|
||||
0x0000, 0x003F, 0x7BBB, 0x9D87, 0xDE00, 0x0000, 0x0000,
|
||||
0x0000, 0x001F, 0xBF77, 0x3BE3, 0xE000, 0x0000, 0x0000,
|
||||
0x0000, 0x000F, 0xDEEE, 0x7601, 0xF000, 0x0000, 0x0000,
|
||||
0x0000, 0x0007, 0xEFDC, 0xEC0C, 0xE000, 0x0000, 0x0000,
|
||||
0x0000, 0x0003, 0xF7B9, 0xD806, 0x6000, 0x0000, 0x0000,
|
||||
0x0000, 0x0001, 0xFBF3, 0xB002, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0xFDE7, 0x6000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x7ECE, 0xC200, 0x4000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x3F1D, 0x8700, 0x8000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x1FBD, 0x8781, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0FFD, 0x83C2, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x07FE, 0xE1C4, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x03FF, 0x6088, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x01FF, 0xB810, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x00FF, 0xD820, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x007F, 0xE840, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x003F, 0xF080, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0xF900, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x6000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x000F, 0x0F00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x000F, 0x9F00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0xFF80, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0xFF80, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0xFF80, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0xFF80, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0xDF80, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0xDF80, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0xDF80, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x000F, 0xFF00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x000F, 0xDF00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x000F, 0xDF00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x000F, 0xDF00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0007, 0xFE00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0007, 0xDE00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0007, 0xDE00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0007, 0xDE00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0003, 0xFC00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0003, 0xDC00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0003, 0xDC00, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0001, 0xD800, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0001, 0xF800, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0001, 0xD800, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0xD000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0xD000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0xF000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x4000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x4000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x4000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x4000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x1000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8000,
|
||||
0x3C00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0003, 0xC000,
|
||||
0x1F80, 0x0000, 0x0000, 0x0000, 0x0000, 0x001F, 0x8000,
|
||||
0x01E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0078, 0x0000,
|
||||
0x0078, 0x0000, 0x0000, 0x0000, 0x0000, 0x01E0, 0x0000,
|
||||
0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* Plane 2 */
|
||||
0x0000, 0x0000, 0x0001, 0xC000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x6000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001E, 0x4000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x003D, 0x2000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0078, 0x8000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x00F0, 0x4000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x01E2, 0x2000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x03C4, 0x1000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0788, 0x8800, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0F11, 0x0400, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x1E22, 0x2200, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x3C44, 0x4100, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x7888, 0x8880, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0xF111, 0x1040, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0001, 0xE222, 0x2250, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0003, 0xC444, 0x4420, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0007, 0x8888, 0x8840, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x000F, 0x1111, 0x1080, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x000E, 0x2222, 0x2100, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0004, 0x4444, 0x4200, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0888, 0x840C, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x1111, 0x0810, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0222, 0x1000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0444, 0x2060, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0088, 0x4018, 0x1800, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0110, 0x817C, 0x0800, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0021, 0x0302, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0042, 0x07D1, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0004, 0x0FD9, 0x8000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0008, 0x1FDF, 0x8000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0010, 0x39FE, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0020, 0x70FE, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0042, 0x7060, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x7820, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x1C20, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x1E60, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0600, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0600, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0600, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0600, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x001F, 0x9F80, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x3FFF, 0xFFFF, 0xC000, 0x0000, 0x0000,
|
||||
0x0000, 0x001F, 0xE01F, 0xFF80, 0x7F80, 0x0000, 0x0000,
|
||||
0x0000, 0x0070, 0x000F, 0xFF00, 0x00E0, 0x0000, 0x0000,
|
||||
0x0000, 0x01C0, 0x000F, 0xFF00, 0x0038, 0x0000, 0x0000,
|
||||
0x0000, 0x0300, 0x000F, 0x9F00, 0x000C, 0x0000, 0x0000,
|
||||
0x0000, 0x0600, 0x100F, 0x0F00, 0x8006, 0x0000, 0x0000,
|
||||
0x0000, 0x0400, 0x1000, 0x2000, 0x8002, 0x0000, 0x0000,
|
||||
0x0000, 0x0C00, 0x1000, 0x2000, 0x8003, 0x0000, 0x0000,
|
||||
0x0000, 0x0800, 0x0800, 0x2001, 0x0001, 0x0000, 0x0000,
|
||||
0x0000, 0x1800, 0x0800, 0x0001, 0x0001, 0x8000, 0x0000,
|
||||
0x0000, 0x1000, 0x0800, 0x2001, 0x0000, 0x8000, 0x0000,
|
||||
0x0000, 0x3000, 0x0E00, 0x2007, 0x0000, 0xC000, 0x0000,
|
||||
0x0000, 0x2000, 0x0100, 0x2008, 0x0000, 0x4000, 0x0000,
|
||||
0x0000, 0x6000, 0x0200, 0x0004, 0x0000, 0x6000, 0x0000,
|
||||
0x0000, 0x4000, 0x0400, 0x2002, 0x0000, 0x2000, 0x0000,
|
||||
0x0000, 0xC000, 0x0400, 0x2002, 0x0000, 0x3000, 0x0000,
|
||||
0x0000, 0x8000, 0x0200, 0x2004, 0x0000, 0x1000, 0x0000,
|
||||
0x0001, 0x8000, 0x0200, 0x0004, 0x0000, 0x1800, 0x0000,
|
||||
0x0001, 0x0000, 0x0200, 0x2004, 0x0000, 0x0800, 0x0000,
|
||||
0x0003, 0x0000, 0x0100, 0x2008, 0x0000, 0x0C00, 0x0000,
|
||||
0x0002, 0x0000, 0x0100, 0x2008, 0x0000, 0x0400, 0x0000,
|
||||
0x0006, 0x0000, 0x0100, 0x0008, 0x0000, 0x0600, 0x0000,
|
||||
0x0004, 0x0000, 0x0080, 0x2010, 0x0000, 0x0200, 0x0000,
|
||||
0x000C, 0x0000, 0x0080, 0x2010, 0x0000, 0x0300, 0x0000,
|
||||
0x0008, 0x0000, 0x0040, 0x2020, 0x0000, 0x0100, 0x0000,
|
||||
0x0018, 0x0000, 0x0040, 0x0020, 0x0000, 0x0180, 0x0000,
|
||||
0x0010, 0x0000, 0x0020, 0x2040, 0x0000, 0x0080, 0x0000,
|
||||
0x0030, 0x0000, 0x0020, 0x2040, 0x0000, 0x00C0, 0x0000,
|
||||
0x0020, 0x0008, 0x0010, 0x2080, 0x0100, 0x0040, 0x0000,
|
||||
0x0060, 0x0008, 0x0010, 0x0080, 0x0100, 0x0060, 0x0000,
|
||||
0x0040, 0x0018, 0x0008, 0x2100, 0x0180, 0x0020, 0x0000,
|
||||
0x00C0, 0x0018, 0x0008, 0x2100, 0x0180, 0x0030, 0x0000,
|
||||
0x0080, 0x0038, 0x0004, 0x2200, 0x01C0, 0x0010, 0x0000,
|
||||
0x0180, 0x0028, 0x0004, 0x2200, 0x0140, 0x0018, 0x0000,
|
||||
0x0100, 0x0068, 0x0002, 0x1400, 0x0160, 0x0008, 0x0000,
|
||||
0x0300, 0x0048, 0x0002, 0x1400, 0x0120, 0x000C, 0x0000,
|
||||
0x0200, 0x00C8, 0x0001, 0x1800, 0x0130, 0x0004, 0x0000,
|
||||
0x0600, 0x0088, 0x0001, 0x1800, 0x0110, 0x0006, 0x0000,
|
||||
0x0400, 0x0188, 0x0000, 0x9000, 0x0118, 0x0002, 0x0000,
|
||||
0x0C00, 0x0108, 0x0000, 0x9000, 0x0108, 0x0003, 0x0000,
|
||||
0x0800, 0x0308, 0x0000, 0x5000, 0x010C, 0x0001, 0x0000,
|
||||
0x1800, 0x0208, 0x0000, 0x5000, 0x0104, 0x0001, 0x8000,
|
||||
0x1000, 0x0608, 0x0000, 0x3000, 0x0106, 0x0000, 0x8000,
|
||||
0x3000, 0x0408, 0x0000, 0x3000, 0x0102, 0x0000, 0xC000,
|
||||
0x2000, 0x0C08, 0x0000, 0x1000, 0x0103, 0x0000, 0x4000,
|
||||
0x6000, 0x0808, 0x0000, 0x1000, 0x0101, 0x0000, 0x6000,
|
||||
0xC000, 0x1808, 0x0000, 0x3800, 0x0101, 0x8000, 0x3000,
|
||||
0x8000, 0x1008, 0x0000, 0x1000, 0x0100, 0x8000, 0x1000,
|
||||
0x8000, 0x3008, 0x0000, 0x1000, 0x0100, 0xC000, 0x1000,
|
||||
0x8000, 0x2008, 0x0000, 0x1000, 0x0100, 0x4000, 0x1000,
|
||||
0xE000, 0x6008, 0x0000, 0x1000, 0x0100, 0x6000, 0x7000,
|
||||
0x4000, 0x4008, 0x0000, 0x1000, 0x0100, 0x2000, 0x2000,
|
||||
0x6000, 0xC008, 0x0000, 0x3800, 0x0100, 0x3000, 0x6000,
|
||||
0x3E00, 0x8008, 0x0000, 0x1000, 0x0100, 0x1007, 0xC000,
|
||||
0x0387, 0x8008, 0x0000, 0x1000, 0x0100, 0x1E1C, 0x0000,
|
||||
0x00F4, 0x0008, 0x0000, 0x1000, 0x0100, 0x03F0, 0x0000,
|
||||
0x001C, 0x0008, 0x0000, 0x1000, 0x0100, 0x0380, 0x0000,
|
||||
0x0000, 0x0008, 0x0000, 0x1000, 0x0100, 0x0000, 0x0000,
|
||||
0x0000, 0x0008, 0x0000, 0x1000, 0x0100, 0x0000, 0x0000,
|
||||
0x0000, 0x0008, 0x0000, 0x3800, 0x0100, 0x0000, 0x0000,
|
||||
0x0000, 0x000F, 0xFFFF, 0xFFFF, 0xFF00, 0x0000, 0x0000
|
||||
};
|
||||
|
||||
struct Image picture_image =
|
||||
{
|
||||
0, 0, 100, 105, 3, &picture_data[0], 0x7, 0x0, NULL
|
||||
};
|
||||
|
||||
|
||||
|
||||
__chip UWORD classact_data[5814] =
|
||||
{
|
||||
/* Plane 0 */
|
||||
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF80,
|
||||
0xC226, 0x0F04, 0xE2BB, 0xD1A6, 0xE113, 0x0784, 0xE2BB, 0xD1A6, 0xE113, 0x0782, 0x715D, 0xE8D3, 0x7089, 0x83C2, 0x715D, 0xE8D3, 0x7089, 0x83C1, 0x3800,
|
||||
0xE092, 0x6ACD, 0x91EB, 0x9993, 0x5049, 0x354D, 0x91EB, 0x9993, 0x5049, 0x3566, 0xC8F5, 0xCCC9, 0xA824, 0x9AA6, 0xC8F5, 0xCCC9, 0xA824, 0x9AB3, 0x6400,
|
||||
0xC70B, 0xED09, 0x0AD2, 0x1314, 0x2385, 0xF689, 0x0AD2, 0x1314, 0x2385, 0xF684, 0x8569, 0x098A, 0x11C2, 0xFB44, 0x8569, 0x098A, 0x11C2, 0xFB42, 0x4200,
|
||||
0xD667, 0x73C2, 0x4A49, 0x461F, 0xAB33, 0xB9C2, 0x4A49, 0x461F, 0xAB33, 0xB9E1, 0x2524, 0xA30F, 0xD599, 0xDCE1, 0x2524, 0xA30F, 0xD599, 0xDCF0, 0x9200,
|
||||
0xC6E8, 0x0A1A, 0x8556, 0x087E, 0x0374, 0x051A, 0x8556, 0x087E, 0x0374, 0x050D, 0x42AB, 0x043F, 0x01BA, 0x028D, 0x42AB, 0x043F, 0x01BA, 0x0286, 0xA100,
|
||||
0xD25A, 0x470A, 0xD394, 0xF4C1, 0xC92D, 0x238A, 0xD394, 0xF4C1, 0xC92D, 0x2385, 0x69CA, 0x7A60, 0xE496, 0x91C5, 0x69CA, 0x7A60, 0xE496, 0x91C2, 0xB400,
|
||||
0xD2ED, 0xF50B, 0x7F7D, 0x987C, 0xC976, 0xFA8B, 0x7F7D, 0x987C, 0xC976, 0xFA85, 0xBFBE, 0xCC3E, 0x64BB, 0x7D45, 0xBFBE, 0xCC3E, 0x64BB, 0x7D42, 0xDF00,
|
||||
0xC864, 0xFB2D, 0x1B42, 0x38FC, 0xC432, 0x7DAD, 0x1B42, 0x38FC, 0xC432, 0x7D96, 0x8DA1, 0x1C7E, 0x6219, 0x3ED6, 0x8DA1, 0x1C7E, 0x6219, 0x3ECB, 0x4600,
|
||||
0xF461, 0x7EC8, 0x6714, 0x5B95, 0xDA30, 0xBF48, 0x6714, 0x5B95, 0xDA30, 0xBF64, 0x338A, 0x2DCA, 0xED18, 0x5FA4, 0x338A, 0x2DCA, 0xED18, 0x5FB2, 0x1900,
|
||||
0xF4EA, 0x902C, 0x5D80, 0xB355, 0xBA75, 0x4824, 0x5D80, 0xB355, 0xBA75, 0x4816, 0x2EC0, 0x59AA, 0xDD3A, 0xA412, 0x2EC0, 0x59AA, 0xDD3A, 0xA40B, 0x1700,
|
||||
0xDCFE, 0x38F0, 0x4F33, 0x765F, 0x8E7F, 0x1C70, 0x4F33, 0x765F, 0x8E7F, 0x1C78, 0x2799, 0xBB2F, 0xC73F, 0x8E38, 0x2799, 0xBB2F, 0xC73F, 0x8E3C, 0x1300,
|
||||
0xECB1, 0xE217, 0x3E31, 0x8A02, 0xD658, 0xF117, 0x3E31, 0x8A02, 0xD658, 0xF10B, 0x9F18, 0xC501, 0x6B2C, 0x788B, 0x9F18, 0xC501, 0x6B2C, 0x7885, 0xCF00,
|
||||
0xCAD5, 0xFC1D, 0x7981, 0x5A67, 0xA56F, 0xFE1D, 0x7981, 0x5A67, 0xA56A, 0xFE0E, 0xBCC0, 0xAD33, 0xD2B5, 0x7F0E, 0xBCC0, 0xAD33, 0xD2B5, 0x7F07, 0x5E00,
|
||||
0xE0C3, 0x5316, 0x3FD1, 0xCF27, 0x30FF, 0xFF96, 0x3FD1, 0xCF27, 0x3061, 0xA98B, 0x1FE8, 0xE793, 0x9830, 0xD4CB, 0x1FE8, 0xE793, 0x9830, 0xD4C5, 0x8F00,
|
||||
0xD4C7, 0x2E12, 0x73F3, 0x5E4F, 0x0BFF, 0xFFF2, 0x73F3, 0x5E4F, 0x0A63, 0x9709, 0x39F9, 0xAFF7, 0x8531, 0xCB89, 0x39F9, 0xAF27, 0x8531, 0xCB84, 0x9C00,
|
||||
0xC00F, 0xAE24, 0xFD5A, 0xE719, 0xA7FF, 0xFFFC, 0x7D5A, 0xE719, 0xA007, 0xD712, 0x7EAD, 0x7FFC, 0xD003, 0xEB92, 0x3EAD, 0x738C, 0xD003, 0xEB89, 0x3F00,
|
||||
0xE8A6, 0xCA11, 0x7221, 0xF161, 0x7FFF, 0xFFFD, 0x7221, 0xF161, 0x7453, 0x6508, 0xB910, 0xFFF8, 0xBA29, 0xB288, 0xB910, 0xF8B0, 0xBA29, 0xB284, 0x5C00,
|
||||
0xF86A, 0x1E23, 0x20AA, 0x9900, 0x7FFF, 0xFFFF, 0x20AA, 0x9900, 0x7C35, 0x0F11, 0x9055, 0x4FF8, 0x3E1A, 0x8791, 0x9055, 0x4C80, 0x3E1A, 0x8788, 0xC800,
|
||||
0xF141, 0x2C04, 0x37DE, 0x5809, 0x7FFA, 0x8FFF, 0x37DE, 0x5809, 0x78A0, 0x9602, 0x1BEF, 0x3FFC, 0xBC50, 0x4B02, 0x1BEF, 0x2C04, 0xBC50, 0x4B01, 0x0D00,
|
||||
0xF9EE, 0xE8CA, 0xAEBE, 0x5A70, 0xFFC0, 0x23FF, 0xAEBE, 0x5A70, 0xBCF7, 0x7465, 0x575F, 0x3FFC, 0x5E7B, 0xBA25, 0x575F, 0x2D38, 0x5E7B, 0xBA32, 0xAB00,
|
||||
0xE954, 0xE81C, 0x0E66, 0xDAAC, 0xFF30, 0x777F, 0x8E66, 0xDAAC, 0x94AA, 0x740E, 0x0733, 0x7FFD, 0x4A55, 0x3A0E, 0x0733, 0x6D56, 0x4A55, 0x3A07, 0x0300,
|
||||
0xD8A7, 0x8029, 0x074A, 0x8BA6, 0xFE43, 0xC83F, 0xC74A, 0x8BA6, 0x8C53, 0xC014, 0x83A5, 0x7F7E, 0x4629, 0xE414, 0x83A5, 0x45D3, 0x4629, 0xE00A, 0x4100,
|
||||
0xDA1F, 0xDFE3, 0x27C4, 0xA98F, 0xFC0F, 0xEFFF, 0xE7C4, 0xA98F, 0x8D0F, 0xEFF1, 0x93E2, 0x7F7E, 0xC687, 0xF7F1, 0x93E2, 0x54C7, 0xC687, 0xF7F8, 0xC900,
|
||||
0xE635, 0x34FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x4D35, 0x9D00,
|
||||
0xD7F8, 0x64FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x1932, 0xFC00,
|
||||
0xC90A, 0xF77F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xBDCF, 0xB200,
|
||||
0xC768, 0x777F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x1DCC, 0xE200,
|
||||
0xE65D, 0xD77F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x75C0, 0xEF00,
|
||||
0xDEC7, 0xE4FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xF93B, 0x3F00,
|
||||
0xDDFE, 0x56FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x95BB, 0xB900,
|
||||
0xEE61, 0x667F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x5983, 0xFB00,
|
||||
0xE667, 0x74FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xDD36, 0x5400,
|
||||
0xE06D, 0xF97F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x7E49, 0xFD00,
|
||||
0xC11F, 0xA87F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xEA03, 0xFB00,
|
||||
0xF7F5, 0x41FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xC89F, 0x3A00,
|
||||
0xFD5C, 0x37FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x9001, 0xD400,
|
||||
0xCFD8, 0x8B7F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x9806, 0x3800,
|
||||
0xEF5F, 0x31FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x221A, 0x7400,
|
||||
0xE5EC, 0xCBFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x8C07, 0xF400,
|
||||
0xD71D, 0xF4FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x000E, 0x7600,
|
||||
0xFC9E, 0xF97F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x402F, 0xBD00,
|
||||
0xFF49, 0xF3FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x000C, 0xE000,
|
||||
0xC48E, 0xFBFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0011, 0x5900,
|
||||
0xF3F8, 0x7BFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0002, 0x8700,
|
||||
0xFBFD, 0xF57F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0082, 0x6E00,
|
||||
0xFEB3, 0x277F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0400, 0x7100,
|
||||
0xC7C6, 0x5B7F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0800, 0x6F00,
|
||||
0xD0AB, 0x537F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x080C, 0x3F00,
|
||||
0xE29A, 0xE37F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0025, 0x7F00,
|
||||
0xDB19, 0x777F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0038, 0x8800,
|
||||
0xCF22, 0xF37F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0135, 0xA000,
|
||||
0xDA35, 0xF5FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x001C, 0x3B00,
|
||||
0xD915, 0xF27F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x007A, 0x7B00,
|
||||
0xDEF0, 0xA2FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x5046, 0xBF00,
|
||||
0xCDF4, 0x48FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x60D6, 0x0F00,
|
||||
0xF772, 0x90FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x40D0, 0x0D00,
|
||||
0xC763, 0x307F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x20F9, 0xEB00,
|
||||
0xE6CD, 0xD07F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0074, 0xA900,
|
||||
0xD699, 0xF2FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x004A, 0x9F00,
|
||||
0xE669, 0x2B7F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x3022, 0x1200,
|
||||
0xCC23, 0x417F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x20BF, 0x4F00,
|
||||
0xD11A, 0x1A7F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x6072, 0x8B00,
|
||||
0xFBAF, 0xF07F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x01BB, 0xEF00,
|
||||
0xC2C5, 0x11FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x211A, 0xEE00,
|
||||
0xC226, 0x0F7F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x6821, 0x3800,
|
||||
0xE092, 0x6AFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x4053, 0x6400,
|
||||
0xC70B, 0xED7F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0082, 0x4200,
|
||||
0xD667, 0x73FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0100, 0x9200,
|
||||
0xC6E8, 0x0A7F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xB146, 0xA100,
|
||||
0xD25A, 0x477F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x2202, 0xB400,
|
||||
0xD2ED, 0xF57F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0282, 0xDF00,
|
||||
0xC864, 0xFB7F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x410B, 0x4600,
|
||||
0xF461, 0x7EFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x8052, 0x1900,
|
||||
0xF4EA, 0x907F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x118B, 0x1700,
|
||||
0xDCFE, 0x38FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x219C, 0x1300,
|
||||
0xECB1, 0xE27F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0505, 0xCF00,
|
||||
0xCAD5, 0xFC7F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0027, 0x5E00,
|
||||
0xE0C3, 0x5316, 0x3820, 0x0080, 0x4202, 0x4060, 0x0020, 0x0080, 0x4202, 0x4070, 0x0010, 0x0040, 0x2101, 0x2030, 0x0010, 0x0040, 0x2101, 0x2025, 0x8F00,
|
||||
0xD4C7, 0x2E12, 0x7400, 0x0180, 0x4404, 0x40E4, 0x0400, 0x0180, 0x4404, 0x40F2, 0x0200, 0x00C0, 0x2202, 0x2072, 0x0200, 0x00C0, 0x2202, 0x2074, 0x9C00,
|
||||
0xC00F, 0xAE24, 0xF880, 0x0882, 0x0A20, 0x00C0, 0x8080, 0x0882, 0x0A20, 0x00E0, 0x0040, 0x0441, 0x0510, 0x0060, 0x4040, 0x0441, 0x0510, 0x0079, 0x3F00,
|
||||
0xE8A6, 0xCA11, 0x7110, 0x0892, 0x0824, 0x82C0, 0x8110, 0x0892, 0x0824, 0x82E0, 0x4088, 0x0449, 0x0412, 0x4160, 0x4088, 0x0449, 0x0412, 0x4164, 0x5C00,
|
||||
0xF86A, 0x1E23, 0x2240, 0x20E2, 0x0042, 0x80C0, 0xC240, 0x20E2, 0x0042, 0x80E0, 0x6120, 0x1071, 0x0021, 0x4060, 0x6120, 0x1071, 0x0021, 0x4068, 0xC800,
|
||||
0xF141, 0x2C04, 0x3000, 0x21C2, 0x0457, 0x01C3, 0x8000, 0x21C2, 0x0457, 0x01E1, 0xC000, 0x10E1, 0x022B, 0x80E1, 0xC000, 0x10E1, 0x022B, 0x80F1, 0x0D00,
|
||||
0xF9EE, 0xE8CA, 0xA900, 0x2182, 0x0000, 0x0385, 0x0100, 0x2182, 0x0000, 0x0382, 0x8080, 0x10C1, 0x0000, 0x01C2, 0x8080, 0x10C1, 0x0000, 0x01D2, 0xAB00,
|
||||
0xE954, 0xE81C, 0x0910, 0x2142, 0x0815, 0x0303, 0x0110, 0x2142, 0x0815, 0x0301, 0x8088, 0x10A1, 0x040A, 0x8181, 0x8088, 0x10A1, 0x040A, 0x8187, 0x0300,
|
||||
0xD8A7, 0x8029, 0x0424, 0x6040, 0x1028, 0x2606, 0x0824, 0x6040, 0x1028, 0x2603, 0x0412, 0x3020, 0x0814, 0x1303, 0x0412, 0x3020, 0x0814, 0x130A, 0x4100,
|
||||
0xDA1F, 0xDFE3, 0x2008, 0x5040, 0x1070, 0x000C, 0x1008, 0x5040, 0x1070, 0x0006, 0x0804, 0x2820, 0x0838, 0x0006, 0x0804, 0x2820, 0x0838, 0x0008, 0xC900,
|
||||
0xE635, 0x34D6, 0x7538, 0x4080, 0x0043, 0x190C, 0x7121, 0xA204, 0x0209, 0x0106, 0x0850, 0x1040, 0x0030, 0xC084, 0x1A90, 0x68C1, 0x48A8, 0x8895, 0x9D00,
|
||||
0xE635, 0x34AC, 0xED33, 0xA6ED, 0x2635, 0x34AC, 0xED33, 0xA6ED, 0x2635, 0x34D6, 0x7699, 0xD376, 0x931A, 0x9A56, 0x7699, 0xD376, 0x931A, 0x9A6B, 0x3B00,
|
||||
0xD7F8, 0x6497, 0xE2E3, 0x6FF7, 0x97F8, 0x6497, 0xE2E3, 0x6FF7, 0x97F8, 0x64CB, 0xF171, 0xB7FB, 0xCBFC, 0x324B, 0xF171, 0xB7FB, 0xCBFC, 0x3265, 0xF800,
|
||||
0xC90A, 0xF77D, 0x94FA, 0x057D, 0x090A, 0xF77D, 0x94FA, 0x057D, 0x090A, 0xF73E, 0xCA7D, 0x02BE, 0x8485, 0x7BBE, 0xCA7D, 0x02BE, 0x8485, 0x7B9F, 0x6500,
|
||||
0xC768, 0x7767, 0x117E, 0x37DA, 0x8768, 0x7767, 0x117E, 0x37DA, 0x8768, 0x7733, 0x88BF, 0x1BED, 0x43B4, 0x3BB3, 0x88BF, 0x1BED, 0x43B4, 0x3B99, 0xC400,
|
||||
0xE65D, 0xD707, 0x79F2, 0x71F6, 0xA65D, 0xD707, 0x79F2, 0x71F6, 0xA65D, 0xD703, 0xBCF9, 0x38FB, 0x532E, 0xEB83, 0xBCF9, 0x38FB, 0x532E, 0xEB81, 0xDE00,
|
||||
0xDEC7, 0xE4D9, 0xF965, 0x3BFF, 0x5EC7, 0xE4D9, 0xF965, 0x3BFF, 0x5EC7, 0xE4EC, 0xFCB2, 0x9DFF, 0xAF63, 0xF26C, 0xFCB2, 0x9DFF, 0xAF63, 0xF276, 0x7E00,
|
||||
0xDDFE, 0x56DD, 0xCBC2, 0xFD5A, 0xDDFE, 0x56DD, 0xCBC2, 0xFD5A, 0xDDFE, 0x56EE, 0xE5E1, 0x7EAD, 0x6EFF, 0x2B6E, 0xE5E1, 0x7EAD, 0x6EFF, 0x2B77, 0x7200,
|
||||
0xEE61, 0x661F, 0xDBEE, 0x9B7E, 0x2E61, 0x661F, 0xDBEE, 0x9B7E, 0x2E61, 0x660F, 0xEDF7, 0x4DBF, 0x1730, 0xB30F, 0xEDF7, 0x4DBF, 0x1730, 0xB307, 0xF600,
|
||||
0xE667, 0x74B2, 0xA31D, 0xF96A, 0xA667, 0x74B2, 0xA31D, 0xF96A, 0xA667, 0x74D9, 0x518E, 0xFCB5, 0x5333, 0xBA59, 0x518E, 0xFCB5, 0x5333, 0xBA6C, 0xA800,
|
||||
0xE06D, 0xF94F, 0xEBBD, 0xABC0, 0x606D, 0xF94F, 0xEBBD, 0xABC0, 0x606D, 0xF927, 0xF5DE, 0xD5E0, 0x3036, 0xFCA7, 0xF5DE, 0xD5E0, 0x3036, 0xFC93, 0xFA00,
|
||||
0xC11F, 0xA81F, 0xD9FB, 0xFB99, 0x811F, 0xA81F, 0xD9FB, 0xFB99, 0x811F, 0xA80F, 0xECFD, 0xFDCC, 0xC08F, 0xD40F, 0xECFD, 0xFDCC, 0xC08F, 0xD407, 0xF600,
|
||||
0xF7F5, 0x41F9, 0xD34F, 0x83BD, 0xB7F5, 0x41F9, 0xD34F, 0x83BD, 0xB7F5, 0x41FC, 0xE9A7, 0xC1DE, 0xDBFA, 0xA0FC, 0xE9A7, 0xC1DE, 0xDBFA, 0xA0FE, 0x7400,
|
||||
0x8000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0040,
|
||||
0x2881, 0xA0C3, 0x1100, 0x0611, 0x1440, 0xD043, 0x1100, 0x0611, 0x1440, 0xD061, 0x8880, 0x0308, 0x8A20, 0x6821, 0x8880, 0x0308, 0x8A20, 0x6830, 0xC4C0,
|
||||
0x1105, 0x0102, 0x0400, 0x0608, 0x8882, 0x8082, 0x0400, 0x0608, 0x8882, 0x8081, 0x0200, 0x0304, 0x4441, 0x4041, 0x0200, 0x0304, 0x4441, 0x4040, 0x81C0,
|
||||
0x2014, 0x0206, 0x3101, 0x0C03, 0x500A, 0x0106, 0x3101, 0x0C03, 0x500A, 0x0103, 0x1880, 0x8601, 0xA805, 0x0083, 0x1880, 0x8601, 0xA805, 0x0081, 0x8CC0,
|
||||
0x0010, 0x040C, 0x3082, 0x1800, 0x4008, 0x020C, 0x3082, 0x1800, 0x4008, 0x0206, 0x1841, 0x0C00, 0x2004, 0x0106, 0x1841, 0x0C00, 0x2004, 0x0103, 0x0CC0,
|
||||
0x1002, 0xC504, 0x7080, 0x7401, 0xC801, 0x6284, 0x7080, 0x7401, 0xC801, 0x6282, 0x3840, 0x3A00, 0xE400, 0xB142, 0x3840, 0x3A00, 0xE400, 0xB141, 0x1CC0,
|
||||
0x0400, 0x8804, 0x2000, 0x080A, 0x0200, 0x4404, 0x2000, 0x080A, 0x0200, 0x4402, 0x1000, 0x0405, 0x0100, 0x2202, 0x1000, 0x0405, 0x0100, 0x2201, 0x08C0,
|
||||
0x0C00, 0x0A04, 0x8000, 0x6102, 0x0600, 0x0504, 0x8000, 0x6102, 0x0600, 0x0502, 0x4000, 0x3081, 0x0300, 0x0282, 0x4000, 0x3081, 0x0300, 0x0281, 0x20C0,
|
||||
0x1409, 0x0402, 0xA030, 0xC200, 0x0A04, 0x8202, 0xA030, 0xC200, 0x0A04, 0x8201, 0x5018, 0x6100, 0x0502, 0x4101, 0x5018, 0x6100, 0x0502, 0x4100, 0xA8C0,
|
||||
0x080A, 0x0107, 0x0061, 0x8040, 0x0405, 0x0087, 0x0061, 0x8040, 0x0405, 0x0083, 0x8030, 0xC020, 0x0202, 0x8043, 0x8030, 0xC020, 0x0202, 0x8041, 0xC0C0,
|
||||
0x0804, 0x4603, 0x0061, 0x0080, 0x0402, 0x230B, 0x0061, 0x0080, 0x0402, 0x2301, 0x8030, 0x8040, 0x0201, 0x1185, 0x8030, 0x8040, 0x0201, 0x1180, 0xC0C0,
|
||||
0x2000, 0x860F, 0x1040, 0x0180, 0x3000, 0x430F, 0x1040, 0x0180, 0x3000, 0x4307, 0x8820, 0x00C0, 0x1800, 0x2187, 0x8820, 0x00C0, 0x1800, 0x2183, 0xC4C0,
|
||||
0x0044, 0x1428, 0x0080, 0x4190, 0x2022, 0x0A28, 0x0080, 0x4190, 0x2022, 0x0A14, 0x0040, 0x20C8, 0x1011, 0x0514, 0x0040, 0x20C8, 0x1011, 0x050A, 0x00C0,
|
||||
0x2000, 0x00E2, 0x0430, 0x8190, 0x5000, 0x0062, 0x0430, 0x8190, 0x5000, 0x0071, 0x0218, 0x40C8, 0x2800, 0x0031, 0x0218, 0x40C8, 0x2800, 0x0038, 0x81C0,
|
||||
0x0404, 0x80E0, 0x0020, 0x0080, 0x4200, 0x0060, 0x0020, 0x0080, 0x4202, 0x4070, 0x0010, 0x0040, 0x2101, 0x2030, 0x0010, 0x0040, 0x2101, 0x2038, 0x00C0,
|
||||
0x0808, 0x81E4, 0x0400, 0x0180, 0x4400, 0x0004, 0x0400, 0x0180, 0x4404, 0x40F2, 0x0200, 0x0000, 0x2202, 0x2072, 0x0200, 0x00C0, 0x2202, 0x2079, 0x01C0,
|
||||
0x1440, 0x01C0, 0x0080, 0x0882, 0x0800, 0x0000, 0x8080, 0x0882, 0x0A20, 0x00E0, 0x0040, 0x0001, 0x0510, 0x0060, 0x4040, 0x0441, 0x0510, 0x0070, 0x00C0,
|
||||
0x1049, 0x05C0, 0x8110, 0x0892, 0x0000, 0x0000, 0x8110, 0x0892, 0x0824, 0x82E0, 0x4088, 0x0001, 0x0412, 0x4160, 0x4088, 0x0449, 0x0412, 0x4170, 0x20C0,
|
||||
0x0085, 0x01C0, 0xC240, 0x20E2, 0x0000, 0x0000, 0xC240, 0x20E2, 0x0042, 0x80E0, 0x6120, 0x1001, 0x0021, 0x4060, 0x6120, 0x1071, 0x0021, 0x4070, 0x30C0,
|
||||
0x08AE, 0x03C3, 0x8000, 0x21C2, 0x0000, 0x0000, 0x8000, 0x21C2, 0x0457, 0x01E1, 0xC000, 0x0001, 0x022B, 0x80E1, 0xC000, 0x10E1, 0x022B, 0x80F0, 0xE0C0,
|
||||
0x0000, 0x0705, 0x0100, 0x2182, 0x0000, 0x0000, 0x0100, 0x2182, 0x0000, 0x0382, 0x8080, 0x0001, 0x0000, 0x01C2, 0x8080, 0x10C1, 0x0000, 0x01C1, 0x40C0,
|
||||
0x102A, 0x0603, 0x0110, 0x2142, 0x0001, 0x0000, 0x0110, 0x2142, 0x0815, 0x0301, 0x8088, 0x0000, 0x040A, 0x8181, 0x8088, 0x10A1, 0x040A, 0x8180, 0xC0C0,
|
||||
0x2050, 0x4C06, 0x0824, 0x6040, 0x0008, 0x2600, 0x0824, 0x6040, 0x1028, 0x2603, 0x0412, 0x0000, 0x0814, 0x1303, 0x0412, 0x3020, 0x0814, 0x1301, 0x82C0,
|
||||
0x20E0, 0x000C, 0x1008, 0x5040, 0x0030, 0x0000, 0x1008, 0x5040, 0x1070, 0x0006, 0x0804, 0x0000, 0x0838, 0x0006, 0x0804, 0x2820, 0x0838, 0x0003, 0x04C0,
|
||||
0x00C2, 0x027F, 0xFFFF, 0xFFFC, 0x02FF, 0xFFF0, 0x2FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xC080, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x8082, 0x00C0,
|
||||
0x0006, 0x027F, 0xFFFF, 0xFFFC, 0x05FF, 0xFFF0, 0x1FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x8140, 0x7FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x8085, 0x01C0,
|
||||
0x1454, 0x007F, 0xFFFF, 0xFFFC, 0x0BFF, 0xFFF8, 0x0FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x8080, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x01C0,
|
||||
0x1814, 0x807F, 0xFFFF, 0xFFF8, 0x05FF, 0xFFF8, 0x17FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x8140, 0x7FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x2003, 0x05C0,
|
||||
0x1020, 0x207F, 0xFFFF, 0xFFF8, 0x0BFF, 0xFFFE, 0xAFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x02E0, 0x3FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0806, 0x00C0,
|
||||
0x0028, 0x027F, 0xFFFF, 0xFFF8, 0x17FF, 0xFFFF, 0x57FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0160, 0x7FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0084, 0x80C0,
|
||||
0x0001, 0x007F, 0xFFFF, 0xFFF8, 0x0FFF, 0xFFFF, 0xFFFF, 0xE3FF, 0xFFFF, 0xFFFF, 0xFFFF, 0x02E0, 0x3FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x4004, 0x02C0,
|
||||
0x0106, 0x107F, 0xFFFF, 0xFFF0, 0x17FF, 0xFFFF, 0xFFFF, 0x03FF, 0xFFFF, 0xFFFF, 0xFFFE, 0x05F0, 0x1FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x840C, 0x04C0,
|
||||
0x0100, 0x007F, 0xFFFF, 0xFFF0, 0x2FFF, 0xFFFF, 0xFFF8, 0x02FF, 0xFFFF, 0xFFFF, 0xFFFE, 0x02F0, 0x2FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0008, 0x88C0,
|
||||
0x0E82, 0x00FF, 0xFFFF, 0xFFF0, 0x17FF, 0xFFFF, 0xFFFF, 0x05FF, 0xFFFF, 0xFFFF, 0xFFFC, 0x05F0, 0x1FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x8030, 0x00C0,
|
||||
0x0C80, 0x11FF, 0xFFFF, 0xFFF0, 0x2FFF, 0xFFFF, 0xFFFE, 0x0BFF, 0xFFFF, 0xFFFF, 0xFFFC, 0x0BF8, 0x0FFF, 0xFFFF, 0xFFFE, 0x7FFF, 0xFFFF, 0x0470, 0x00C0,
|
||||
0x0802, 0x327F, 0xFFFF, 0xFFF0, 0x1FFF, 0xFFFF, 0xFFFE, 0x05FF, 0xFFFF, 0xFFFF, 0xFFFC, 0x05F8, 0x17FF, 0xFFFF, 0xFFFC, 0x7FFF, 0xFFFF, 0x0400, 0x44C0,
|
||||
0x0002, 0x407F, 0xFFFF, 0xFFF0, 0x2FFF, 0xFFFF, 0xFFFC, 0x0BFF, 0xFFFF, 0xFFFF, 0xFFF8, 0x0BF8, 0x0FFF, 0xFFFF, 0xFFF0, 0xBFFF, 0xFFFF, 0x0002, 0x08C0,
|
||||
0x3002, 0x607F, 0xFFFF, 0xFFF0, 0x1FFF, 0xFFFF, 0xFFFC, 0x17FF, 0xFFFF, 0xFFFF, 0xFFF8, 0x17FC, 0x07FF, 0xFFFF, 0xFFF0, 0x5FFF, 0xFFFF, 0x0000, 0x44C0,
|
||||
0x1080, 0x887F, 0xFFFF, 0xFFF0, 0x2FFF, 0xFFFF, 0xFFF8, 0x2FFF, 0xFFFF, 0xFFFF, 0xFFF8, 0x0BFC, 0x0BFF, 0xFFFF, 0xFFC0, 0xBFFF, 0xFFFF, 0x0000, 0x88C0,
|
||||
0x1202, 0x307F, 0xFFFF, 0xFFF0, 0x1FFF, 0xFFFF, 0xFFF8, 0x17FF, 0xFFFF, 0xFFFF, 0xFFF0, 0x17FC, 0x07FF, 0xFFFF, 0xFF81, 0x7FFF, 0xFFFF, 0x0000, 0x00C0,
|
||||
0x0000, 0x007F, 0xFFFF, 0xFFF0, 0x2FFF, 0xFFFF, 0xFFF0, 0x2FC0, 0x3FF0, 0x33F8, 0x19F0, 0x2FFE, 0x03FF, 0xFFE0, 0x7E00, 0x3FFF, 0xFFFF, 0x0000, 0x80C0,
|
||||
0x0221, 0x00FF, 0xFFFF, 0xFFF0, 0x1FFF, 0xFFFF, 0xFFF0, 0x5F0E, 0x1FE3, 0x83F1, 0xC1F0, 0x0000, 0x05FF, 0xFF8E, 0x1C00, 0x3FFF, 0xFFFF, 0x0000, 0x00C0,
|
||||
0x0024, 0x007F, 0xFFFF, 0xFFF0, 0x0FFF, 0xFFF8, 0x1FE0, 0xBC3A, 0x0F8E, 0x86C6, 0x82E0, 0x0000, 0x03FF, 0xFC7A, 0x1F02, 0xAFFF, 0xFFFF, 0x0000, 0x0BC0,
|
||||
0x2260, 0x007F, 0xFFFF, 0xFFF8, 0x1FFF, 0xFFF8, 0x1FE0, 0x5816, 0x070D, 0xC585, 0x6160, 0x0000, 0x01FF, 0xF876, 0x0705, 0x5FFF, 0xFFFF, 0x0008, 0x86C0,
|
||||
0x0404, 0x007F, 0xFFFF, 0xFFF8, 0x0FFF, 0xFFF0, 0x0FC0, 0xB02C, 0x0E0B, 0x8B0B, 0xC2E0, 0x0000, 0x00FF, 0xF1BC, 0x0E0B, 0xFFFF, 0xFFFF, 0x0001, 0x18C0,
|
||||
0x0400, 0x027F, 0xFFFF, 0xFFF8, 0x07FF, 0xFFF0, 0x17C1, 0x705C, 0x1617, 0xC505, 0xE5C0, 0x0000, 0x01FF, 0xE15C, 0x1605, 0xFFFF, 0xFFFF, 0x0001, 0x11C0,
|
||||
0x0100, 0x107F, 0xFFFF, 0xFFF8, 0x0FFF, 0xFFF0, 0x2F82, 0xF0B8, 0x2C0F, 0xEA0B, 0xFBC0, 0x0000, 0x00FF, 0xC6FC, 0x2C0B, 0xFFFF, 0xFFFF, 0x0003, 0x0AC0,
|
||||
0x3020, 0x207F, 0xFFFF, 0xFFFC, 0x07FF, 0xFFE0, 0x1F81, 0x7D50, 0x1407, 0xF603, 0xFD80, 0x5555, 0x007F, 0x857F, 0x5417, 0xFFFF, 0xFFFF, 0x0007, 0x10C0,
|
||||
0x2140, 0x207F, 0xFFFF, 0xFFFC, 0x03FF, 0xFFE0, 0x2F02, 0xFE00, 0x2C03, 0xFE01, 0xFF80, 0xAAAA, 0x80FF, 0x0BFF, 0xB82F, 0xFFFF, 0xFFFF, 0x0003, 0x00C0,
|
||||
0x0140, 0x00FF, 0xFFFF, 0xFFFE, 0x01FF, 0xFFC0, 0x5F05, 0xFC00, 0x5E00, 0xFF00, 0x7F81, 0x7FFF, 0x807F, 0x05FF, 0xF817, 0xFFFF, 0xFFFF, 0x001A, 0x00C0,
|
||||
0x00C0, 0x00FF, 0xFFFF, 0xFFFE, 0x01FF, 0xFF80, 0xBE0B, 0xE0E0, 0xBE00, 0x7F00, 0x3F00, 0xBFFF, 0xC03E, 0x0BFF, 0xF02F, 0xFFFF, 0xFFFF, 0x0002, 0x10C0,
|
||||
0x0088, 0x04FF, 0xFFFF, 0xFFFF, 0x00FF, 0xFF00, 0x5E05, 0xC340, 0x5F80, 0x7FC0, 0x1F01, 0x7FFF, 0xC07E, 0x17FF, 0xF05F, 0xFFFF, 0xFFFF, 0x0002, 0x11C0,
|
||||
0x0180, 0x007F, 0xFFFF, 0xFFFF, 0x003F, 0xFC00, 0xBC0B, 0x0280, 0xBF80, 0x3FE0, 0x2F00, 0xFFFF, 0xC03C, 0x0FFC, 0xE0BF, 0xFFFF, 0xFFFF, 0x0002, 0x00C0,
|
||||
0x02A0, 0x01FF, 0xFFFF, 0xFFFF, 0x800F, 0xF001, 0x7C16, 0x05C1, 0x67F0, 0x53F0, 0x1E01, 0x7FFF, 0xE01E, 0x17F9, 0xE05F, 0xFFFF, 0xFFFF, 0x0004, 0x00C0,
|
||||
0x0105, 0x417F, 0xFFFF, 0xFFFF, 0xC000, 0x0002, 0xF82C, 0x0B82, 0xCFF0, 0xA7F8, 0x2E02, 0xFFFF, 0xE03C, 0x0FF3, 0x80BF, 0xFFFF, 0xFFFF, 0x0008, 0x00C0,
|
||||
0x2201, 0x837F, 0xFFFF, 0xFFFF, 0xE000, 0x0005, 0xF814, 0x1781, 0x45F0, 0x41F8, 0x5E01, 0xFFFF, 0xE01C, 0x07E7, 0x417F, 0xFFFF, 0xFFFF, 0x0008, 0x60C0,
|
||||
0x0081, 0x037F, 0xFFFF, 0xFFFF, 0xF000, 0x000B, 0xF028, 0x0C00, 0x83E0, 0x83F0, 0xBC02, 0xFFFF, 0xF00C, 0x070E, 0x809F, 0xFFFF, 0xFFFF, 0x0008, 0x40C0,
|
||||
0x3080, 0x83FF, 0xFFFF, 0xFFFF, 0xFC00, 0x0017, 0xF058, 0x0000, 0x81E1, 0x41F1, 0x5C05, 0xFFFF, 0xF01E, 0x001D, 0x803F, 0xFFFF, 0xFFFF, 0x0000, 0x00C0,
|
||||
0x1100, 0x01FF, 0xFFFF, 0xFFFF, 0xFE00, 0x00AF, 0xC038, 0x0203, 0x038A, 0x80C6, 0xBC03, 0xFFFF, 0xF00E, 0x006B, 0x80EF, 0xFFFF, 0xFFFF, 0x0001, 0x02C0,
|
||||
0x2100, 0x017F, 0xFFFF, 0xFFFF, 0xFF50, 0x055F, 0x001C, 0x0505, 0x303D, 0x901D, 0x7805, 0xFFFF, 0xF807, 0x8157, 0xC15F, 0xFFFF, 0xFFFF, 0x0001, 0x00C0,
|
||||
0x0100, 0xC0FF, 0xFFFF, 0xFFFF, 0xFFEA, 0xAABF, 0xFABE, 0xAAAA, 0xEAEB, 0xEAFB, 0xFFAB, 0xFFFF, 0xFEAF, 0xAABF, 0xEABF, 0xFFFF, 0xFFFF, 0x0019, 0x08C0,
|
||||
0x0248, 0x82FF, 0xFFFF, 0xFFFF, 0xFFFD, 0x55FF, 0xD557, 0x57D5, 0xDD5F, 0xF757, 0xFF57, 0xFFFF, 0xFF57, 0xF57F, 0xF57F, 0xFFFF, 0xFFFF, 0x0000, 0x10C0,
|
||||
0x0841, 0x81FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0008, 0x30C0,
|
||||
0x0040, 0x06FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x10C0,
|
||||
0x2000, 0x847F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x10C0,
|
||||
0x2881, 0xA0FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0010, 0xC4C0,
|
||||
0x1105, 0x017F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x81C0,
|
||||
0x2014, 0x027F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0001, 0x8CC0,
|
||||
0x0010, 0x047F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0003, 0x0CC0,
|
||||
0x1002, 0xC57F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0001, 0x1CC0,
|
||||
0x0400, 0x887F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0001, 0x08C0,
|
||||
0x0C00, 0x0A7F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0001, 0x20C0,
|
||||
0x1409, 0x047F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xA8C0,
|
||||
0x080A, 0x017F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0001, 0xC0C0,
|
||||
0x0804, 0x467F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xC0C0,
|
||||
0x2000, 0x867F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0003, 0xC4C0,
|
||||
0x0044, 0x147F, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x000A, 0x00C0,
|
||||
0x2000, 0x00FF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0018, 0x81C0,
|
||||
0x0404, 0x80E0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0018, 0x00C0,
|
||||
0x0808, 0x81E4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x01C0,
|
||||
0x1440, 0x01C0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x00C0,
|
||||
0x1049, 0x05C0, 0x8000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x20C0,
|
||||
0x0085, 0x01C0, 0xC000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x30C0,
|
||||
0x08AE, 0x03C3, 0x8000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xE0C0,
|
||||
0x0000, 0x0705, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x40C0,
|
||||
0x102A, 0x0603, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xC0C0,
|
||||
0x2050, 0x4C06, 0x0800, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0001, 0x82C0,
|
||||
0x20E0, 0x000C, 0x1000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0003, 0x04C0,
|
||||
0x00C2, 0x0208, 0x0000, 0x2000, 0x0020, 0x0000, 0x0000, 0x0080, 0x0060, 0x0000, 0x0080, 0x0000, 0x0000, 0x0000, 0x0000, 0x1000, 0x0010, 0x0002, 0x00C0,
|
||||
0x00C2, 0x0210, 0x0200, 0x4100, 0x00C2, 0x0210, 0x0200, 0x4100, 0x00C2, 0x0208, 0x0100, 0x2080, 0x0061, 0x0108, 0x0100, 0x2080, 0x0061, 0x0104, 0x00C0,
|
||||
0x0006, 0x0228, 0x0C08, 0x8008, 0x0006, 0x0228, 0x0C08, 0x8008, 0x0006, 0x0214, 0x0604, 0x4004, 0x0003, 0x0114, 0x0604, 0x4004, 0x0003, 0x010A, 0x03C0,
|
||||
0x1454, 0x0000, 0x0801, 0x8800, 0x1454, 0x0000, 0x0801, 0x8800, 0x1454, 0x0000, 0x0400, 0xC400, 0x0A2A, 0x0000, 0x0400, 0xC400, 0x0A2A, 0x0000, 0x02C0,
|
||||
0x1814, 0x8018, 0x2881, 0x8820, 0x1814, 0x8018, 0x2881, 0x8820, 0x1814, 0x800C, 0x1440, 0xC410, 0x0C0A, 0x400C, 0x1440, 0xC410, 0x0C0A, 0x4006, 0x0AC0,
|
||||
0x1020, 0x2030, 0x0001, 0x0800, 0x1020, 0x2030, 0x0001, 0x0800, 0x1020, 0x2018, 0x0000, 0x8400, 0x0810, 0x1018, 0x0000, 0x8400, 0x0810, 0x100C, 0x00C0,
|
||||
0x0028, 0x0224, 0x0082, 0x8000, 0x8028, 0x0224, 0x0082, 0x8000, 0x8028, 0x0212, 0x0041, 0x4000, 0x4014, 0x0112, 0x0041, 0x4000, 0x4014, 0x0109, 0x00C0,
|
||||
0x0001, 0x0020, 0x1005, 0x0004, 0x0001, 0x0020, 0x1005, 0x0004, 0x0001, 0x0010, 0x0802, 0x8002, 0x0000, 0x8010, 0x0802, 0x8002, 0x0000, 0x8008, 0x04C0,
|
||||
0x0106, 0x1060, 0x2001, 0x2000, 0x8106, 0x1060, 0x2001, 0x2000, 0x8106, 0x1030, 0x1000, 0x9000, 0x4083, 0x0830, 0x1000, 0x9000, 0x4083, 0x0818, 0x08C0,
|
||||
0x0100, 0x0044, 0x4042, 0x0004, 0x0100, 0x0044, 0x4042, 0x0004, 0x0100, 0x0022, 0x2021, 0x0002, 0x0080, 0x0022, 0x2021, 0x0002, 0x0080, 0x0011, 0x10C0,
|
||||
0x0E82, 0x0080, 0x0002, 0x100C, 0x8E82, 0x0080, 0x0002, 0x100C, 0x8E82, 0x00C0, 0x0001, 0x0806, 0x4741, 0x0040, 0x0001, 0x0806, 0x4741, 0x0060, 0x00C0,
|
||||
0x0C80, 0x1180, 0x0004, 0x0004, 0x0C80, 0x1180, 0x0004, 0x0004, 0x0C80, 0x11C0, 0x0002, 0x0002, 0x0640, 0x08C0, 0x0002, 0x0002, 0x0640, 0x08E0, 0x00C0,
|
||||
0x0802, 0x3202, 0x2030, 0x3000, 0x0802, 0x3202, 0x2030, 0x3000, 0x0802, 0x3201, 0x1018, 0x1800, 0x0401, 0x1901, 0x1018, 0x1800, 0x0401, 0x1900, 0x88C0,
|
||||
0x7FFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFC0,
|
||||
/* Plane 2 */
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x1226, 0x0F04, 0xE2BB, 0xF1A6, 0xE913, 0x0784, 0xE2BB, 0xF1A6, 0xE913, 0x0782, 0x715D, 0xF8D3, 0x7489, 0x83C2, 0x715D, 0xF8D3, 0x7489, 0x83C1, 0x3800,
|
||||
0x2092, 0x6ACD, 0x91EB, 0xB993, 0x5049, 0x354D, 0x91EB, 0xB993, 0x5049, 0x3566, 0xC8F5, 0xDCC9, 0xA824, 0x9AA6, 0xC8F5, 0xDCC9, 0xA824, 0x9AB3, 0x6400,
|
||||
0x0F0B, 0xED09, 0x0AD2, 0x1314, 0x2785, 0xF689, 0x0AD2, 0x1314, 0x2785, 0xF684, 0x8569, 0x098A, 0x13C2, 0xFB44, 0x8569, 0x098A, 0x13C2, 0xFB42, 0x4200,
|
||||
0x3667, 0x73C2, 0x4A49, 0xC61F, 0xBB33, 0xB9C2, 0x4A49, 0xC61F, 0xBB33, 0xB9E1, 0x2524, 0xE30F, 0xDD99, 0xDCE1, 0x2524, 0xE30F, 0xDD99, 0xDCF0, 0x9200,
|
||||
0x26E8, 0x0A1A, 0x8556, 0x097E, 0x1374, 0x051A, 0x8556, 0x097E, 0x1374, 0x050D, 0x42AB, 0x04BF, 0x09BA, 0x028D, 0x42AB, 0x04BF, 0x09BA, 0x0286, 0xA100,
|
||||
0x125A, 0x470A, 0xD394, 0xF6C1, 0xC92D, 0x238A, 0xD394, 0xF6C1, 0xC92D, 0x2385, 0x69CA, 0x7B60, 0xE496, 0x91C5, 0x69CA, 0x7B60, 0xE496, 0x91C2, 0xB400,
|
||||
0x12ED, 0xF50B, 0x7F7D, 0x987C, 0xC976, 0xFA8B, 0x7F7D, 0x987C, 0xC976, 0xFA85, 0xBFBE, 0xCC3E, 0x64BB, 0x7D45, 0xBFBE, 0xCC3E, 0x64BB, 0x7D42, 0xDF00,
|
||||
0x0864, 0xFB2D, 0x1B46, 0x3CFC, 0xC432, 0x7DAD, 0x1B46, 0x3CFC, 0xC432, 0x7D96, 0x8DA3, 0x1E7E, 0x6219, 0x3ED6, 0x8DA3, 0x1E7E, 0x6219, 0x3ECB, 0x4600,
|
||||
0x3461, 0x7EC8, 0x671C, 0x5B95, 0xDA30, 0xBF48, 0x671C, 0x5B95, 0xDA30, 0xBF64, 0x338E, 0x2DCA, 0xED18, 0x5FA4, 0x338E, 0x2DCA, 0xED18, 0x5FB2, 0x1900,
|
||||
0x35EA, 0x902C, 0x5D84, 0xB355, 0xBAF5, 0x4824, 0x5D84, 0xB355, 0xBAF5, 0x4816, 0x2EC2, 0x59AA, 0xDD7A, 0xA412, 0x2EC2, 0x59AA, 0xDD7A, 0xA40B, 0x1700,
|
||||
0x1CFE, 0x38F0, 0x4F33, 0x765F, 0x8E7F, 0x1C70, 0x4F33, 0x765F, 0x8E7F, 0x1C78, 0x2799, 0xBB2F, 0xC73F, 0x8E38, 0x2799, 0xBB2F, 0xC73F, 0x8E3C, 0x1300,
|
||||
0x2CB9, 0xE217, 0xBE31, 0x8A02, 0xD65C, 0xF117, 0xBE31, 0x8A02, 0xD65C, 0xF10B, 0xDF18, 0xC501, 0x6B2E, 0x788B, 0xDF18, 0xC501, 0x6B2E, 0x7885, 0xEF00,
|
||||
0x0AD5, 0xFC1D, 0x7985, 0x5A67, 0xA560, 0x061D, 0x7985, 0x5A67, 0xA56A, 0xFE0E, 0xBCC2, 0xAD33, 0xD2B5, 0x7F0E, 0xBCC2, 0xAD33, 0xD2B5, 0x7F07, 0x5E00,
|
||||
0x22CB, 0x5316, 0x3FD5, 0xCF2F, 0x3100, 0x0016, 0x3FD5, 0xCF2F, 0x3165, 0xA98B, 0x1FEA, 0xE797, 0x98B2, 0xD4CB, 0x1FEA, 0xE797, 0x98B2, 0xD4C5, 0x8F00,
|
||||
0x14C7, 0x2E12, 0x73F3, 0x5E4F, 0x0800, 0x0012, 0x73F3, 0x5E4F, 0x0A63, 0x9709, 0x39F9, 0xA807, 0x8531, 0xCB89, 0x39F9, 0xAF27, 0x8531, 0xCB84, 0x9C00,
|
||||
0x000F, 0xAE25, 0xFD5A, 0xE719, 0xA000, 0x0005, 0x7D5A, 0xE719, 0xA007, 0xD712, 0xFEAD, 0x7004, 0xD003, 0xEB92, 0xBEAD, 0x738C, 0xD003, 0xEB89, 0x7F00,
|
||||
0x28A6, 0xCA11, 0x7221, 0xF161, 0x7000, 0x0001, 0x7221, 0xF161, 0x7453, 0x6508, 0xB910, 0xF004, 0xBA29, 0xB288, 0xB910, 0xF8B0, 0xBA29, 0xB284, 0x5C00,
|
||||
0x396A, 0x1E2B, 0x20AA, 0x9900, 0x6000, 0x0001, 0x20AA, 0x9900, 0x7CB5, 0x0F15, 0x9055, 0x4006, 0x3E5A, 0x8795, 0x9055, 0x4C80, 0x3E5A, 0x878A, 0xC800,
|
||||
0x3541, 0x2C0C, 0x37DE, 0x5809, 0x4002, 0xA000, 0x37DE, 0x5809, 0x7AA0, 0x9606, 0x1BEF, 0x2002, 0xBD50, 0x4B06, 0x1BEF, 0x2C04, 0xBD50, 0x4B03, 0x0D00,
|
||||
0x39EE, 0xE8EA, 0xBEBE, 0x5A70, 0x8014, 0xBA00, 0xBEBE, 0x5A70, 0xBCF7, 0x7475, 0x5F5F, 0x2002, 0x5E7B, 0xBA35, 0x5F5F, 0x2D38, 0x5E7B, 0xBA3A, 0xAF00,
|
||||
0x2954, 0xE81C, 0x0E66, 0xDAAC, 0x0032, 0x7700, 0x0E66, 0xDAAC, 0x94AA, 0x740E, 0x0733, 0x6001, 0x4A55, 0x3A0E, 0x0733, 0x6D56, 0x4A55, 0x3A07, 0x0300,
|
||||
0x18A7, 0xA029, 0x074A, 0x8BA6, 0x0053, 0xD840, 0x074A, 0x8BA6, 0x8C53, 0xD014, 0x83A5, 0x4080, 0x4629, 0xEC14, 0x83A5, 0x45D3, 0x4629, 0xE80A, 0x4100,
|
||||
0x1E1F, 0xDFE3, 0x27C4, 0xA98E, 0x024F, 0xEFE0, 0x27C4, 0xA98F, 0x8F0F, 0xEFF1, 0x93E2, 0x4080, 0xC787, 0xF7F1, 0x93E2, 0x54C7, 0xC787, 0xF7F8, 0xC900,
|
||||
0x2635, 0x3480, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4D35, 0x9D00,
|
||||
0x17F8, 0x6480, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1932, 0xFC00,
|
||||
0x090A, 0xF700, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xBDCF, 0xB200,
|
||||
0x0768, 0x7700, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1DCC, 0xE200,
|
||||
0x265D, 0xDF00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x77C0, 0xEF00,
|
||||
0x1EC7, 0xE480, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xF93B, 0x3F00,
|
||||
0x1DFE, 0x5680, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x95BB, 0xB900,
|
||||
0x2E61, 0x6600, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5983, 0xFB00,
|
||||
0x2667, 0x7480, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDD36, 0x5400,
|
||||
0x306D, 0xF900, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7E49, 0xFD00,
|
||||
0x011F, 0xA800, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xEA03, 0xFB00,
|
||||
0x37F5, 0xC180, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xEB9F, 0x3A00,
|
||||
0x3D5C, 0x3780, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xF201, 0xD500,
|
||||
0x0FD8, 0x8B00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xDD36, 0x3800,
|
||||
0x2F5F, 0x3180, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x339A, 0x7400,
|
||||
0x25EC, 0xCB80, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xCD07, 0xF400,
|
||||
0x171F, 0xF480, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x82CE, 0x7600,
|
||||
0x3C9E, 0xF900, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x41AF, 0xBD00,
|
||||
0x3F49, 0xF380, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x830C, 0xE000,
|
||||
0x048E, 0xFB80, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4111, 0x5900,
|
||||
0x33F8, 0x7B80, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xE106, 0xA700,
|
||||
0x3BFD, 0xF500, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x82B2, 0x6E00,
|
||||
0x3EB3, 0x2700, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3620, 0x7100,
|
||||
0x07C6, 0x5B00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6930, 0x6F00,
|
||||
0x10AB, 0x5300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2B3C, 0x3F00,
|
||||
0x229A, 0xE300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4725, 0x7F00,
|
||||
0x3B19, 0x7700, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xA238, 0x8800,
|
||||
0x0F22, 0xF300, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x4335, 0xA000,
|
||||
0x1A35, 0xF580, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x829C, 0x3B00,
|
||||
0x1915, 0xF200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x837A, 0x7B00,
|
||||
0x1EF2, 0xA280, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xD747, 0xBF00,
|
||||
0x0DF4, 0x4C80, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xEDD6, 0x0F00,
|
||||
0x3772, 0x9080, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5BD0, 0x0D00,
|
||||
0x0F63, 0x3000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x33F9, 0xEB00,
|
||||
0x2ECD, 0xD000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8BF4, 0xA900,
|
||||
0x1E99, 0xF680, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x834A, 0x9F00,
|
||||
0x2E69, 0x3B00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xB522, 0x1200,
|
||||
0x1C23, 0x4100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2FBF, 0x4F00,
|
||||
0x311A, 0x1A00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7972, 0x8B00,
|
||||
0x3BAF, 0xF000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x03FB, 0xEF00,
|
||||
0x02C5, 0x1180, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xBB9A, 0xEE00,
|
||||
0x1226, 0x0F00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x7C21, 0x3800,
|
||||
0x2092, 0x6A80, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6553, 0x6400,
|
||||
0x0F0B, 0xED00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x04B2, 0x4200,
|
||||
0x3667, 0x7380, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2300, 0x9200,
|
||||
0x26E8, 0x0A00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFD76, 0xA100,
|
||||
0x125A, 0x4700, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6E32, 0xB400,
|
||||
0x12ED, 0xF500, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x82B2, 0xDF00,
|
||||
0x0864, 0xFB00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xC12B, 0x4600,
|
||||
0x3461, 0x7E80, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xA052, 0x1900,
|
||||
0x35EA, 0x9000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x5BEB, 0x1700,
|
||||
0x1CFE, 0x3880, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x71DC, 0x1300,
|
||||
0x2CB9, 0xE200, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8765, 0xEF00,
|
||||
0x0AD5, 0xFC00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x80E7, 0x5E00,
|
||||
0x22CB, 0x5316, 0x382E, 0x30D8, 0xCF9E, 0x5669, 0xC02E, 0x30D8, 0xCF9E, 0x5674, 0xE017, 0x186C, 0x67CF, 0x2B34, 0xE017, 0x186C, 0x67CF, 0x2B25, 0x8F00,
|
||||
0x14C7, 0x2E12, 0x740C, 0xA1B0, 0xF59C, 0x68ED, 0x8C0C, 0xA1B0, 0xF59C, 0x68F6, 0xC606, 0x50D8, 0x7ACE, 0x3476, 0xC606, 0x50D8, 0x7ACE, 0x3474, 0x9C00,
|
||||
0x000F, 0xAE25, 0xFAA5, 0x18E6, 0x5FF8, 0x28DB, 0x82A5, 0x18E6, 0x5FF8, 0x28ED, 0x8152, 0x8C73, 0x2FFC, 0x146D, 0xC152, 0x8C73, 0x2FFC, 0x1479, 0x7F00,
|
||||
0x28A6, 0xCA11, 0x71DE, 0x0E9E, 0x8BAC, 0x9AEE, 0x8DDE, 0x0E9E, 0x8BAC, 0x9AF7, 0x46EF, 0x074F, 0x45D6, 0x4D77, 0x46EF, 0x074F, 0x45D6, 0x4D64, 0x5C00,
|
||||
0x396A, 0x1E2B, 0x2355, 0x66FF, 0x83CA, 0xF0DC, 0xDF55, 0x66FF, 0x83CA, 0xF0EE, 0x6FAA, 0xB37F, 0xC1E5, 0x786E, 0x6FAA, 0xB37F, 0xC1E5, 0x786A, 0xC800,
|
||||
0x3541, 0x2C0C, 0x3021, 0xA7F6, 0x875F, 0x69FB, 0xC821, 0xA7F6, 0x875F, 0x69FD, 0xE410, 0xD3FB, 0x43AF, 0xB4FD, 0xE410, 0xD3FB, 0x43AF, 0xB4F3, 0x0D00,
|
||||
0x39EE, 0xE8EA, 0xB941, 0xA58F, 0x4308, 0x8BB5, 0x5141, 0xA58F, 0x4308, 0x8B9A, 0xA8A0, 0xD2C7, 0xA184, 0x45DA, 0xA8A0, 0xD2C7, 0xA184, 0x45DA, 0xAF00,
|
||||
0x2954, 0xE81C, 0x0999, 0x2553, 0x6B55, 0x8BE3, 0xF199, 0x2553, 0x6B55, 0x8BF1, 0xF8CC, 0x92A9, 0xB5AA, 0xC5F1, 0xF8CC, 0x92A9, 0xB5AA, 0xC5F7, 0x0300,
|
||||
0x18A7, 0xA029, 0x04B5, 0x7459, 0x73AC, 0x37D6, 0xF8B5, 0x7459, 0x73AC, 0x3FEB, 0x7C5A, 0xBA2C, 0xB9D6, 0x1BEB, 0x7C5A, 0xBA2C, 0xB9D6, 0x1FFA, 0x4100,
|
||||
0x1E1F, 0xDFE3, 0x203B, 0x5670, 0x72F0, 0x101C, 0xD83B, 0x5670, 0x72F0, 0x100E, 0x6C1D, 0xAB38, 0x3978, 0x080E, 0x6C1D, 0xAB38, 0x3978, 0x0808, 0xC900,
|
||||
0x2635, 0x34D6, 0x753E, 0x4C81, 0x20C7, 0x1DAD, 0x7127, 0xAE05, 0x4E0D, 0x6596, 0xCC73, 0x1444, 0xB670, 0xF2D4, 0xDA93, 0x6EC5, 0x7EE8, 0xBAD5, 0x9D00,
|
||||
0x2635, 0x34AC, 0xED33, 0xB6ED, 0x2635, 0x34AC, 0xED33, 0xB6ED, 0x2635, 0x34D6, 0x7699, 0xDB76, 0x931A, 0x9A56, 0x7699, 0xDB76, 0x931A, 0x9A6B, 0x3B00,
|
||||
0x17F8, 0x6497, 0xE2E3, 0x6FF7, 0x97F8, 0x6497, 0xE2E3, 0x6FF7, 0x97F8, 0x64CB, 0xF171, 0xB7FB, 0xCBFC, 0x324B, 0xF171, 0xB7FB, 0xCBFC, 0x3265, 0xF800,
|
||||
0x090A, 0xF77D, 0x94FA, 0x057D, 0x090A, 0xF77D, 0x94FA, 0x057D, 0x090A, 0xF73E, 0xCA7D, 0x02BE, 0x8485, 0x7BBE, 0xCA7D, 0x02BE, 0x8485, 0x7B9F, 0x6500,
|
||||
0x0768, 0x7767, 0x117E, 0x37DA, 0x8768, 0x7767, 0x117E, 0x37DA, 0x8768, 0x7733, 0x88BF, 0x1BED, 0x43B4, 0x3BB3, 0x88BF, 0x1BED, 0x43B4, 0x3B99, 0xC400,
|
||||
0x265D, 0xDF07, 0x79F2, 0x71F6, 0xA65D, 0xDF07, 0x79F2, 0x71F6, 0xA65D, 0xDF03, 0xBCF9, 0x38FB, 0x532E, 0xEF83, 0xBCF9, 0x38FB, 0x532E, 0xEF81, 0xDE00,
|
||||
0x1EC7, 0xE4D9, 0xF965, 0x3BFF, 0x5EC7, 0xE4D9, 0xF965, 0x3BFF, 0x5EC7, 0xE4EC, 0xFCB2, 0x9DFF, 0xAF63, 0xF26C, 0xFCB2, 0x9DFF, 0xAF63, 0xF276, 0x7E00,
|
||||
0x1DFE, 0x56DD, 0xCBC2, 0xFD5A, 0xDDFE, 0x56DD, 0xCBC2, 0xFD5A, 0xDDFE, 0x56EE, 0xE5E1, 0x7EAD, 0x6EFF, 0x2B6E, 0xE5E1, 0x7EAD, 0x6EFF, 0x2B77, 0x7200,
|
||||
0x2E61, 0x661F, 0xDBEE, 0x9B7E, 0x2E61, 0x661F, 0xDBEE, 0x9B7E, 0x2E61, 0x660F, 0xEDF7, 0x4DBF, 0x1730, 0xB30F, 0xEDF7, 0x4DBF, 0x1730, 0xB307, 0xF600,
|
||||
0x2667, 0x74B2, 0xA31D, 0xF96A, 0xA667, 0x74B2, 0xA31D, 0xF96A, 0xA667, 0x74D9, 0x518E, 0xFCB5, 0x5333, 0xBA59, 0x518E, 0xFCB5, 0x5333, 0xBA6C, 0xA800,
|
||||
0x306D, 0xF94F, 0xEBBD, 0xAFC0, 0x706D, 0xF94F, 0xEBBD, 0xAFC0, 0x706D, 0xF927, 0xF5DE, 0xD7E0, 0x3836, 0xFCA7, 0xF5DE, 0xD7E0, 0x3836, 0xFC93, 0xFA00,
|
||||
0x011F, 0xA81F, 0xD9FB, 0xFB99, 0x811F, 0xA81F, 0xD9FB, 0xFB99, 0x811F, 0xA80F, 0xECFD, 0xFDCC, 0xC08F, 0xD40F, 0xECFD, 0xFDCC, 0xC08F, 0xD407, 0xF600,
|
||||
0x37F5, 0xC1F9, 0xD34F, 0x83BD, 0xB7F5, 0xC1F9, 0xD34F, 0x83BD, 0xB7F5, 0xC1FC, 0xE9A7, 0xC1DE, 0xDBFA, 0xE0FC, 0xE9A7, 0xC1DE, 0xDBFA, 0xE0FE, 0x7400,
|
||||
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
|
||||
};
|
||||
|
||||
struct Image classact_image =
|
||||
{
|
||||
0, 0, 298, 102, 3, &classact_data[0], 0x7, 0x0, NULL
|
||||
};
|
||||
|
||||
__chip UWORD sb_data[][64] =
|
||||
{
|
||||
/* Cut
|
||||
*/
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0e01, 0xc000, 0x1107, 0x8000,
|
||||
0x191e, 0x0000, 0x0f78, 0x0000,
|
||||
0x01e0, 0x0000, 0x0f78, 0x0000,
|
||||
0x191e, 0x0000, 0x1107, 0x8000,
|
||||
0x0e01, 0xc000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000
|
||||
},
|
||||
/* Copy
|
||||
*/
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x01fe, 0x0000, 0x0186, 0x0000,
|
||||
0x01fe, 0x0000, 0x0630, 0x8000,
|
||||
0x1fff, 0xe000, 0x1f87, 0xe000,
|
||||
0x1f03, 0xe000, 0x1f03, 0xe000,
|
||||
0x1f03, 0xe000, 0x1f87, 0xe000,
|
||||
0x1fff, 0xe000, 0x1fff, 0xe000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0078, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0060, 0x0000, 0x0044, 0x0000,
|
||||
0x0004, 0x0000, 0x0018, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000
|
||||
},
|
||||
/* Paste
|
||||
*/
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0000, 0x0000, 0x003f, 0x0000,
|
||||
0x0021, 0x0000, 0x007f, 0x8000,
|
||||
0x0080, 0x4000, 0x0081, 0xc000,
|
||||
0x0780, 0x4000, 0x0861, 0xc000,
|
||||
0x0f20, 0x4000, 0x0891, 0xc000,
|
||||
0x0950, 0x4000, 0x0251, 0xc000,
|
||||
0x05e0, 0x4000, 0x0880, 0xc000,
|
||||
0x307f, 0x8000, 0x0000, 0x0000,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0006, 0x0000, 0x0000, 0x0000,
|
||||
0x0007, 0x0000, 0x0002, 0x0000,
|
||||
0x0002, 0x0000, 0x0782, 0x0000,
|
||||
0x00c2, 0x0000, 0x0062, 0x0000,
|
||||
0x0222, 0x0000, 0x0422, 0x0000,
|
||||
0x0802, 0x0000, 0x1002, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000
|
||||
},
|
||||
/* Erase
|
||||
*/
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0000, 0x0000, 0x002e, 0xb800,
|
||||
0x005d, 0x7800, 0x00ba, 0xf800,
|
||||
0x01f5, 0xf000, 0x03eb, 0xe000,
|
||||
0x05f7, 0xc000, 0x08ff, 0x8000,
|
||||
0x107f, 0x0000, 0x103e, 0x0000,
|
||||
0x101c, 0x0000, 0x0828, 0x0000,
|
||||
0x0450, 0x0000, 0x02a0, 0x0000,
|
||||
0x01ff, 0xf800, 0x0000, 0x0000,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x0000, 0x001a, 0xa800,
|
||||
0x0035, 0x5000, 0x006a, 0xa000,
|
||||
0x0015, 0x4000, 0x000a, 0x8000,
|
||||
0x0205, 0x0000, 0x0502, 0x0000,
|
||||
0x0a80, 0x0000, 0x0540, 0x0000,
|
||||
0x0aa0, 0x0000, 0x0540, 0x0000,
|
||||
0x0280, 0x0000, 0x0100, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000
|
||||
},
|
||||
/* Mail
|
||||
*/
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0800, 0xd000,
|
||||
0x0094, 0xd000, 0x0000, 0x1000,
|
||||
0x0060, 0x1000, 0x0000, 0x1000,
|
||||
0x00d0, 0x1000, 0x0000, 0x1000,
|
||||
0x1fff, 0xf000, 0x0000, 0x0000,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0018, 0x0000, 0x007c, 0x0000,
|
||||
0x01ca, 0x0000, 0x0515, 0x0000,
|
||||
0x3fff, 0xe000, 0x2bff, 0xe000,
|
||||
0x3e97, 0xe000, 0x3fff, 0xe000,
|
||||
0x3f6f, 0xe000, 0x3fff, 0xe000,
|
||||
0x3fd7, 0xe000, 0x3fff, 0xe000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000
|
||||
},
|
||||
/* Time
|
||||
*/
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0000, 0x0000, 0x0070, 0x0000,
|
||||
0x0376, 0x0000, 0x06db, 0x0000,
|
||||
0x0505, 0x0000, 0x0262, 0x0000,
|
||||
0x0421, 0x0000, 0x0421, 0x0000,
|
||||
0x0439, 0x0000, 0x0401, 0x0000,
|
||||
0x0401, 0x0000, 0x0202, 0x0000,
|
||||
0x0104, 0x0000, 0x01fc, 0x0000,
|
||||
0x0306, 0x0000, 0x0000, 0x0000,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0020, 0x0000,
|
||||
0x0000, 0x0000, 0x0098, 0x0000,
|
||||
0x01dc, 0x0000, 0x01dc, 0x0000,
|
||||
0x01c4, 0x0000, 0x01fc, 0x0000,
|
||||
0x01fc, 0x0000, 0x00f8, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000
|
||||
},
|
||||
/* Date
|
||||
*/
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0000, 0x0000, 0x037b, 0x0000,
|
||||
0x0285, 0x8000, 0x0201, 0x8000,
|
||||
0x0201, 0x8000, 0x0299, 0x8000,
|
||||
0x02a7, 0x8000, 0x052b, 0x8000,
|
||||
0x0535, 0x8000, 0x080d, 0x8000,
|
||||
0x1ff5, 0x8000, 0x0205, 0x8000,
|
||||
0x0201, 0x8000, 0x03ff, 0x8000,
|
||||
0x01ff, 0x8000, 0x0000, 0x0000,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x017a, 0x0000, 0x01fe, 0x0000,
|
||||
0x01fe, 0x0000, 0x0166, 0x0000,
|
||||
0x0158, 0x0000, 0x02d4, 0x0000,
|
||||
0x02c8, 0x0000, 0x07f2, 0x0000,
|
||||
0x0000, 0x0000, 0x00aa, 0x0000,
|
||||
0x0154, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000
|
||||
},
|
||||
/* Disk
|
||||
*/
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0000, 0x0000, 0x0038, 0x0000,
|
||||
0x0054, 0x0000, 0x008e, 0x0000,
|
||||
0x0107, 0x0000, 0x0207, 0x8000,
|
||||
0x040b, 0xc000, 0x0417, 0xe000,
|
||||
0x0e29, 0xe000, 0x0750, 0xc000,
|
||||
0x03a0, 0x8000, 0x01d9, 0x8000,
|
||||
0x00eb, 0x0000, 0x0076, 0x0000,
|
||||
0x003c, 0x0000, 0x0010, 0x0000,
|
||||
/* Plane 1 */
|
||||
0x0020, 0x0000, 0x0070, 0x0000,
|
||||
0x00c0, 0x0000, 0x01a4, 0x0000,
|
||||
0x0352, 0x0000, 0x06ab, 0x0000,
|
||||
0x0d53, 0x8000, 0x12a1, 0xc000,
|
||||
0x1d46, 0xc000, 0x0e89, 0x0000,
|
||||
0x0710, 0x0000, 0x03ac, 0x8000,
|
||||
0x01d1, 0x0000, 0x00e2, 0x0000,
|
||||
0x0074, 0x0000, 0x0000, 0x0000
|
||||
},
|
||||
/* Spray Paint
|
||||
*/
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0000, 0x0000, 0x0186, 0xc000,
|
||||
0x01bf, 0x0000, 0x07ec, 0xc000,
|
||||
0x0423, 0x0000, 0x0ff0, 0xc000,
|
||||
0x1008, 0x0000, 0x1078, 0x0000,
|
||||
0x1078, 0x0000, 0x1078, 0x0000,
|
||||
0x1078, 0x0000, 0x1078, 0x0000,
|
||||
0x1008, 0x0000, 0x1038, 0x0000,
|
||||
0x1008, 0x0000, 0x0000, 0x0000,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x0000, 0x0006, 0xc000,
|
||||
0x003f, 0x0000, 0x000c, 0xc000,
|
||||
0x0243, 0x0000, 0x0000, 0xc000,
|
||||
0x02e0, 0x0000, 0x0440, 0x0000,
|
||||
0x0470, 0x0000, 0x0440, 0x0000,
|
||||
0x0470, 0x0000, 0x0440, 0x0000,
|
||||
0x0440, 0x0000, 0x0440, 0x0000,
|
||||
0x0440, 0x0000, 0x0000, 0x0000
|
||||
},
|
||||
/* Print
|
||||
*/
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0000, 0x0000, 0x03fe, 0x0000,
|
||||
0x0205, 0x0000, 0x02a7, 0x0000,
|
||||
0x0201, 0x0000, 0x02d5, 0x0000,
|
||||
0x0201, 0x0000, 0x0601, 0x8000,
|
||||
0x1fff, 0xe000, 0x2000, 0x1000,
|
||||
0x2803, 0xd000, 0x2000, 0x1000,
|
||||
0x3fff, 0xf000, 0x1fff, 0xe000,
|
||||
0x0fff, 0xc000, 0x0000, 0x0000,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x01fa, 0x0000, 0x0118, 0x0000,
|
||||
0x01fe, 0x0000, 0x0102, 0x0000,
|
||||
0x01fe, 0x0000, 0x01fe, 0x0000,
|
||||
0x0000, 0x0000, 0x1555, 0x4000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000,
|
||||
0x0000, 0x0000, 0x0000, 0x0000
|
||||
}
|
||||
};
|
||||
|
||||
/* Image structures for above data.
|
||||
*/
|
||||
struct Image sb_images[] =
|
||||
{
|
||||
{ 0, 0, 22, 16, 2, sb_data[0], 0x03, 0x00, NULL },
|
||||
{ 0, 0, 22, 16, 2, sb_data[1], 0x03, 0x00, NULL },
|
||||
{ 0, 0, 22, 16, 2, sb_data[2], 0x03, 0x00, NULL },
|
||||
{ 0, 0, 22, 16, 2, sb_data[3], 0x03, 0x00, NULL },
|
||||
{ 0, 0, 22, 16, 2, sb_data[4], 0x03, 0x00, NULL },
|
||||
{ 0, 0, 22, 16, 2, sb_data[5], 0x03, 0x00, NULL },
|
||||
{ 0, 0, 22, 16, 2, sb_data[6], 0x03, 0x00, NULL },
|
||||
{ 0, 0, 22, 16, 2, sb_data[7], 0x03, 0x00, NULL },
|
||||
{ 0, 0, 22, 16, 2, sb_data[8], 0x03, 0x00, NULL },
|
||||
{ 0, 0, 22, 16, 2, sb_data[9], 0x03, 0x00, NULL },
|
||||
};
|
||||
|
||||
/* Custom show/hide images.
|
||||
*/
|
||||
__chip UWORD hide_data[28] =
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0000, 0xC000, 0xC000, 0xC002,
|
||||
0xC203, 0xC203, 0xC203, 0xC203,
|
||||
0x6203, 0x3203, 0x1A03, 0x0FFF,
|
||||
0x0FFF, 0x0600,
|
||||
/* Plane 1 */
|
||||
0x2000, 0x7000, 0x781C, 0x6CFE,
|
||||
0x77F6, 0x7FDE, 0x6F76, 0x77DE,
|
||||
0x3F72, 0x1FCE, 0x0FBE, 0x07FE,
|
||||
0x0600, 0x0000
|
||||
};
|
||||
|
||||
struct Image hide_image =
|
||||
{
|
||||
0,0, 16,14, 2, &hide_data[0], 0x3,0x0, NULL
|
||||
};
|
||||
|
||||
__chip UWORD show_data[28] =
|
||||
{
|
||||
/* Plane 0 */
|
||||
0x0180, 0x07C0, 0x1FE0, 0x7F70,
|
||||
0xFF78, 0xBF7C, 0xDF7E, 0x6C7F,
|
||||
0x37FC, 0x1BF1, 0x0DC6, 0x0618,
|
||||
0x0260, 0x0180,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x0180, 0x07C0, 0x1FE0,
|
||||
0x7F70, 0x3FF8, 0x5F7C, 0x2EFC,
|
||||
0x17F2, 0x0BCE, 0x0538, 0x02E0,
|
||||
0x0080, 0x0000
|
||||
};
|
||||
|
||||
struct Image show_image =
|
||||
{
|
||||
0,0, 16,14, 2, &show_data[0], 0x3,0x0, NULL
|
||||
};
|
||||
|
||||
__chip UWORD leaf_data[28] =
|
||||
{
|
||||
/* Plane 0 */
|
||||
0xFF00, 0x8180, 0x8140, 0x8120,
|
||||
0x81F0, 0x8030, 0x8030, 0x8030,
|
||||
0x8030, 0x8030, 0x8030, 0x8030,
|
||||
0xFFF0, 0x7FF0,
|
||||
/* Plane 1 */
|
||||
0x0000, 0x7E00, 0x7E80, 0x7EC0,
|
||||
0x7E00, 0x7FC0, 0x7FC0, 0x7FC0,
|
||||
0x7FC0, 0x7FC0, 0x7FC0, 0x7FC0,
|
||||
0x0000, 0x0000
|
||||
};
|
||||
|
||||
struct Image leaf_image =
|
||||
{
|
||||
0,0, 12,14, 2, &leaf_data[0], 0x3,0x0, NULL
|
||||
};
|
||||
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,11 @@
|
|||
NOSTACKCHECK
|
||||
NOSTACKEXTEND
|
||||
ERRORREXX
|
||||
SAVEDS
|
||||
SMALLCODE
|
||||
SMALLDATA
|
||||
NOERRORCONSOLE
|
||||
MEMORYSIZE=HUGE
|
||||
OPTIMIZERTIME
|
||||
LIBRARY=lib:classact.lib
|
||||
LIBRARY=lib:debug.lib
|
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# Makefile automatically generated by MKMK V6.55
|
||||
# Sat Aug 19 12:47:39 1995
|
||||
#
|
||||
|
||||
OBJS= ClassActDemo.o Images.o
|
||||
|
||||
SBGen: $(OBJS)
|
||||
sc link to ClassActDemo with <<
|
||||
$(OBJS)
|
||||
<
|
||||
|
||||
ClassActDemo.o: ClassActDemo.c
|
||||
|
||||
Images.o: Images.c
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,292 @@
|
|||
#include <dos/dos.h>
|
||||
#include <dos/datetime.h>
|
||||
#include <libraries/gadtools.h>
|
||||
|
||||
#include <clib/alib_protos.h>
|
||||
|
||||
#include <proto/exec.h>
|
||||
#include <proto/intuition.h>
|
||||
#include <proto/dos.h>
|
||||
#include <proto/utility.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <classact.h>
|
||||
#include <classact_macros.h>
|
||||
|
||||
#ifdef _DCC
|
||||
#define SAVEDS __geta4
|
||||
#define ASM
|
||||
#define REG_A0 __A0
|
||||
#define REG_A1 __A1
|
||||
#else
|
||||
#define SAVEDS __saveds
|
||||
#define ASM __asm
|
||||
#define REG_A0 register __a0
|
||||
#define REG_A1 register __a1
|
||||
#endif
|
||||
|
||||
#ifdef _DCC
|
||||
extern __stkargs ULONG HookEntry();
|
||||
#else
|
||||
extern __stdargs ULONG HookEntry();
|
||||
#endif
|
||||
|
||||
/* Gadget IDs.
|
||||
*/
|
||||
#define GAD_QUIT 1
|
||||
|
||||
/* ARexx command IDs.
|
||||
*/
|
||||
enum { REXX_NAME, REXX_VERSION, REXX_AUTHOR, REXX_SEND, REXX_DATE };
|
||||
|
||||
|
||||
/* Protos for the reply hook and ARexx command functions.
|
||||
*/
|
||||
VOID SAVEDS reply_callback(struct Hook *, Object *, struct RexxMsg *);
|
||||
VOID ASM rexx_Name(REG_A0 struct ARexxCmd *, REG_A1 struct RexxMsg *);
|
||||
VOID ASM rexx_Version(REG_A0 struct ARexxCmd *, REG_A1 struct RexxMsg *);
|
||||
VOID ASM rexx_Author(REG_A0 struct ARexxCmd *, REG_A1 struct RexxMsg *);
|
||||
VOID ASM rexx_Send(REG_A0 struct ARexxCmd *, REG_A1 struct RexxMsg *);
|
||||
VOID ASM rexx_Date(REG_A0 struct ARexxCmd *, REG_A1 struct RexxMsg *);
|
||||
|
||||
/* Buffer for the system date.
|
||||
*/
|
||||
UBYTE systemDate[32];
|
||||
|
||||
/* Our reply hook function.
|
||||
*/
|
||||
struct Hook reply_hook;
|
||||
|
||||
/* The following commands are valid for this demo.
|
||||
*/
|
||||
struct ARexxCmd Commands[] =
|
||||
{
|
||||
{ "NAME", REXX_NAME, rexx_Name, NULL, NULL, },
|
||||
{ "VERSION", REXX_VERSION, rexx_Version, NULL, NULL, },
|
||||
{ "AUTHOR", REXX_AUTHOR, rexx_Author, NULL, NULL, },
|
||||
{ "SEND", REXX_SEND, rexx_Send, "TEXT/F", NULL, },
|
||||
{ "DATE", REXX_DATE, rexx_Date, "SYSTEM/S", NULL, },
|
||||
{ NULL, NULL, NULL, NULL, NULL, }
|
||||
};
|
||||
|
||||
|
||||
/* Starting point.
|
||||
*/
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
Object *arexx_obj;
|
||||
|
||||
if (!ButtonBase) return(20);
|
||||
|
||||
/* Create host object.
|
||||
*/
|
||||
if (arexx_obj = ARexxObject,
|
||||
AREXX_HostName, "AREXXDEMO",
|
||||
AREXX_Commands, Commands,
|
||||
AREXX_NoSlot, TRUE,
|
||||
AREXX_ReplyHook, &reply_hook,
|
||||
End)
|
||||
{
|
||||
Object *win_obj;
|
||||
|
||||
/* Create the window object.
|
||||
*/
|
||||
if (win_obj = WindowObject,
|
||||
WA_Title, "ClassAct arexx.class Demo",
|
||||
WA_DragBar, TRUE,
|
||||
WA_CloseGadget, TRUE,
|
||||
WA_DepthGadget, TRUE,
|
||||
WINDOW_ParentGroup, LayoutObject,
|
||||
LAYOUT_AddChild, ButtonObject,
|
||||
GA_Text, "_Quit",
|
||||
GA_ID, GAD_QUIT,
|
||||
GA_RelVerify, TRUE,
|
||||
ButtonEnd,
|
||||
LayoutEnd,
|
||||
EndWindow)
|
||||
{
|
||||
struct Window *window;
|
||||
|
||||
/* try to open the window.
|
||||
*/
|
||||
if (window = (struct Window *)CA_OpenWindow(win_obj))
|
||||
{
|
||||
ULONG wnsig = 0, rxsig = 0, signal, result, Code;
|
||||
BOOL running = TRUE;
|
||||
|
||||
/* Setup the reply callback hook.
|
||||
*/
|
||||
reply_hook.h_Entry = HookEntry;
|
||||
reply_hook.h_SubEntry = reply_callback;
|
||||
reply_hook.h_Data = NULL;
|
||||
|
||||
/* Try to start the macro "Demo.rexx". Note that the
|
||||
* current directory and REXX: will be searched for this
|
||||
* macro. Our reply hook will get the results of our
|
||||
* efforts to start this macro. To be totally robust, we
|
||||
* should have also passed pointers for the various result
|
||||
* variables.
|
||||
*/
|
||||
DoMethod(arexx_obj, AM_EXECUTE, "Demo.rexx", NULL, NULL, NULL, NULL, NULL);
|
||||
|
||||
/* Obtain wait masks.
|
||||
*/
|
||||
GetAttr(WINDOW_SigMask, win_obj, &wnsig);
|
||||
GetAttr(AREXX_SigMask, arexx_obj, &rxsig);
|
||||
|
||||
/* Event loop...
|
||||
*/
|
||||
do
|
||||
{
|
||||
signal = Wait(wnsig | rxsig | SIGBREAKF_CTRL_C);
|
||||
|
||||
/* ARexx event?
|
||||
*/
|
||||
if (signal & rxsig)
|
||||
CA_HandleRexx(arexx_obj);
|
||||
|
||||
/* Window event?
|
||||
*/
|
||||
if (signal & wnsig)
|
||||
{
|
||||
while ((result = CA_HandleInput(win_obj, &Code)) != WMHI_LASTMSG)
|
||||
{
|
||||
switch (result & WMHI_CLASSMASK)
|
||||
{
|
||||
case WMHI_CLOSEWINDOW:
|
||||
running = FALSE;
|
||||
break;
|
||||
|
||||
case WMHI_GADGETUP:
|
||||
switch(result & WMHI_GADGETMASK)
|
||||
{
|
||||
case GAD_QUIT:
|
||||
running = FALSE;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (signal & SIGBREAKF_CTRL_C)
|
||||
{
|
||||
running = FALSE;
|
||||
}
|
||||
}
|
||||
while (running);
|
||||
}
|
||||
else
|
||||
puts ("Could not open the window");
|
||||
DisposeObject(win_obj);
|
||||
}
|
||||
else
|
||||
puts("Could not create the window object");
|
||||
DisposeObject(arexx_obj);
|
||||
}
|
||||
else
|
||||
puts("Could not create the ARexx host.");
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
#ifdef _DCC
|
||||
int wbmain(struct WBStartup *wbs)
|
||||
{
|
||||
return(main(0, NULL));
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/* Note the use of SAVEDS, it is required for the callback
|
||||
* ARexx command functions if access the global data such as
|
||||
* systemData[] made in the callback.
|
||||
*/
|
||||
|
||||
/* This function gets called whenever we get an ARexx reply. In this example,
|
||||
* we will see a reply come back from the REXX server when it has finished
|
||||
* attempting to start the Demo.rexx macro.
|
||||
*/
|
||||
VOID SAVEDS reply_callback(struct Hook *hook, Object *o, struct RexxMsg *rxm)
|
||||
{
|
||||
Printf("Args[0]: %s\nResult1: %ld Result2: %ld\n",
|
||||
rxm->rm_Args[0], rxm->rm_Result1, rxm->rm_Result2);
|
||||
}
|
||||
|
||||
/* NAME
|
||||
*/
|
||||
VOID SAVEDS ASM rexx_Name(REG_A0 struct ARexxCmd *ac, REG_A1 struct RexxMsg *rxm)
|
||||
{
|
||||
/* return the program name.
|
||||
*/
|
||||
ac->ac_Result = "ARexxTest";
|
||||
}
|
||||
|
||||
/* VERSION
|
||||
*/
|
||||
VOID SAVEDS ASM rexx_Version(REG_A0 struct ARexxCmd *ac, REG_A1 struct RexxMsg *rxm)
|
||||
{
|
||||
/* return the program version.
|
||||
*/
|
||||
ac->ac_Result = "1.0";
|
||||
}
|
||||
|
||||
/* AUTHOR
|
||||
*/
|
||||
VOID SAVEDS ASM rexx_Author(REG_A0 struct ARexxCmd *ac, REG_A1 struct RexxMsg *rxm)
|
||||
{
|
||||
/* return the authors name.
|
||||
*/
|
||||
ac->ac_Result = "Phantom Development LLC";
|
||||
}
|
||||
|
||||
/* SEND
|
||||
*/
|
||||
VOID SAVEDS ASM rexx_Send(REG_A0 struct ARexxCmd *ac, REG_A1 struct RexxMsg *rxm)
|
||||
{
|
||||
/* Print some text
|
||||
*/
|
||||
if (ac->ac_ArgList[0])
|
||||
Printf("%s\n", (STRPTR)ac->ac_ArgList[0]);
|
||||
}
|
||||
|
||||
/* DATE
|
||||
*/
|
||||
VOID SAVEDS ASM rexx_Date(REG_A0 struct ARexxCmd *ac, REG_A1 struct RexxMsg *rxm)
|
||||
{
|
||||
struct DateTime dt;
|
||||
|
||||
/* SYSTEM switch specified?
|
||||
*/
|
||||
if (!ac->ac_ArgList[0])
|
||||
{
|
||||
/* return the compilation date.
|
||||
*/
|
||||
ac->ac_Result = "11-10-95";
|
||||
}
|
||||
else
|
||||
{
|
||||
/* compute system date and store in systemDate buffer
|
||||
*/
|
||||
DateStamp((struct DateStamp *)&dt);
|
||||
|
||||
dt.dat_Format = FORMAT_USA;
|
||||
dt.dat_Flags = 0;
|
||||
dt.dat_StrDay = NULL;
|
||||
dt.dat_StrDate = systemDate;
|
||||
dt.dat_StrTime = NULL;
|
||||
|
||||
DateToStr(&dt);
|
||||
|
||||
/* return system date
|
||||
*/
|
||||
ac->ac_Result = systemDate;
|
||||
}
|
||||
}
|
||||
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,25 @@
|
|||
/* Small script for the small arexxclass demo */
|
||||
|
||||
options results
|
||||
|
||||
address AREXXDEMO
|
||||
|
||||
NAME
|
||||
|
||||
say 'Program name : ' RESULT
|
||||
|
||||
VERSION
|
||||
|
||||
say 'Program version : ' RESULT
|
||||
|
||||
AUTHOR
|
||||
|
||||
say 'Program author : ' RESULT
|
||||
|
||||
DATE
|
||||
|
||||
say 'Program compilation date: ' RESULT
|
||||
|
||||
'DATE SYSTEM'
|
||||
|
||||
say 'Current system date : ' RESULT
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,397 @@
|
|||
/*************************************************************************
|
||||
* ClassAct Comprehensive Demo Program
|
||||
* Copyright © 1995 Osma Ahvenlampi
|
||||
*
|
||||
*/
|
||||
|
||||
#include <exec/types.h>
|
||||
#include <exec/memory.h>
|
||||
#include <intuition/intuition.h>
|
||||
#include <intuition/gadgetclass.h>
|
||||
#include <intuition/icclass.h>
|
||||
#include <libraries/gadtools.h>
|
||||
#include <graphics/gfxbase.h>
|
||||
#include <graphics/text.h>
|
||||
#include <graphics/gfxmacros.h>
|
||||
#include <utility/tagitem.h>
|
||||
#include <workbench/startup.h>
|
||||
#include <workbench/workbench.h>
|
||||
#include <datatypes/datatypes.h>
|
||||
#include <datatypes/datatypesclass.h>
|
||||
|
||||
#include <proto/datatypes.h>
|
||||
#include <proto/intuition.h>
|
||||
#include <proto/graphics.h>
|
||||
#include <proto/exec.h>
|
||||
#include <proto/dos.h>
|
||||
#include <proto/diskfont.h>
|
||||
#include <proto/utility.h>
|
||||
#include <proto/wb.h>
|
||||
#include <proto/icon.h>
|
||||
|
||||
#include <classact.h>
|
||||
#include <classact_lib.h>
|
||||
#include <clib/classact_lib_protos.h>
|
||||
|
||||
/* get LayerHook.lha from Aminet for this */
|
||||
#include <imagebackfill.h>
|
||||
|
||||
/*************************************************************************
|
||||
* Backfill options
|
||||
* We're using the public domain LayerHook here.
|
||||
*/
|
||||
struct BackFillOptions Options =
|
||||
{
|
||||
256,256,
|
||||
// !!! 0,0,
|
||||
TRUE,FALSE,
|
||||
0,0,
|
||||
TRUE
|
||||
};
|
||||
|
||||
struct BackFillInfo BF1, BF2, *Backfill;
|
||||
|
||||
UBYTE name[256];
|
||||
|
||||
/*************************************************************************
|
||||
* Gadget list
|
||||
* This wouldn't be strictly necessary, but it's an easy way of keeping
|
||||
* the gadget pointers for when we need to access the gadgets.
|
||||
*/
|
||||
typedef enum { G_Backfill = 1, G_Datatype, G_MAX } GadgetIDs;
|
||||
|
||||
struct Gadget *GL[G_MAX+1];
|
||||
|
||||
/*************************************************************************
|
||||
* App message hook.
|
||||
* Workbench App messages can be caught with a callback hook such as this.
|
||||
* We'll not worry about the app message type in this hook. Objects dropped
|
||||
* on the window or on the icon (while iconified) will be added to the
|
||||
* listview.
|
||||
*/
|
||||
|
||||
void __asm __saveds AppMsgFunc( register __a0 struct Hook *Hook,
|
||||
register __a2 Object *Window,
|
||||
register __a1 struct AppMessage *Msg )
|
||||
{
|
||||
struct Window *Win;
|
||||
struct WBArg *arg = Msg->am_ArgList;
|
||||
Object *dt;
|
||||
|
||||
GetAttr( WINDOW_Window, Window, (ULONG *)&Win );
|
||||
|
||||
NameFromLock( arg->wa_Lock, name, sizeof(name) );
|
||||
AddPart( name, arg->wa_Name, sizeof(name) );
|
||||
|
||||
dt = NewDTObject( name,
|
||||
DTA_GroupID, GID_PICTURE,
|
||||
ICA_TARGET, ICTARGET_IDCMP,
|
||||
TAG_END );
|
||||
|
||||
if (dt)
|
||||
{
|
||||
SetGadgetAttrs( (struct Gadget *)Hook->h_Data, Win, NULL,
|
||||
LAYOUT_ModifyChild, GL[G_Datatype],
|
||||
CHILD_ReplaceObject, dt,
|
||||
TAG_END );
|
||||
GL[G_Datatype] = (struct Gadget *)dt;
|
||||
RethinkLayout( (struct Gadget *)Hook->h_Data, Win, NULL, FALSE );
|
||||
}
|
||||
}
|
||||
|
||||
struct Hook apphook;
|
||||
|
||||
/*************************************************************************
|
||||
* IDCMP hook
|
||||
*/
|
||||
|
||||
void __asm __saveds IDCMPFunc( register __a0 struct Hook *Hook,
|
||||
register __a2 Object *Window,
|
||||
register __a1 struct IntuiMessage *Msg )
|
||||
{
|
||||
struct Window *Win;
|
||||
|
||||
GetAttr( WINDOW_Window, Window, (ULONG *)&Win );
|
||||
|
||||
if (Msg->Class == IDCMP_IDCMPUPDATE)
|
||||
{
|
||||
if ( GetTagData( DTA_Sync, FALSE, Msg->IAddress ) )
|
||||
{
|
||||
RefreshGList( (struct Gadget *)Hook->h_Data, Win, NULL, 1 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct Hook idcmphook;
|
||||
|
||||
/*************************************************************************
|
||||
* This function creates our gadgets for the window.
|
||||
*/
|
||||
Object *CreateLayout(void)
|
||||
{
|
||||
return VGroupObject, Offset(32,32,32,32),
|
||||
LAYOUT_BevelStyle, BVS_THIN,
|
||||
|
||||
/* this tag instructs layout.gadget to defer GM_LAYOUT and GM_RENDER and ask
|
||||
* the windowclass to do them. This lessens the load on input.device
|
||||
*/
|
||||
LAYOUT_DeferLayout, TRUE,
|
||||
|
||||
/* this gives us a backfill
|
||||
*/
|
||||
CLASSACT_BackFill, Backfill,
|
||||
|
||||
/* this dummy object will be replaced with a datatype when we have a picture
|
||||
*/
|
||||
StartMember, apphook.h_Data = idcmphook.h_Data = LayoutObject, VCentered, HCentered,
|
||||
LAYOUT_BevelStyle, BVS_THIN,
|
||||
LAYOUT_BevelState, IDS_SELECTED,
|
||||
LAYOUT_SpaceOuter, TRUE,
|
||||
|
||||
/* We need to install this clearing backfill hook because
|
||||
* most of the datatypes really screw up rendering if the
|
||||
* background isn't color 0.
|
||||
*/
|
||||
LAYOUT_BackFill, LAYERS_BACKFILL,
|
||||
StartImage, GL[G_Datatype] = LabelObject,
|
||||
LABEL_Text, "Please drop picture icons on this window",
|
||||
EndImage,
|
||||
CHILD_MinHeight, 128,
|
||||
EndMember,
|
||||
|
||||
StartMember, GL[G_Backfill] = ButtonObject,
|
||||
GA_Text, "Use as a backfill",
|
||||
GA_ID, G_Backfill,
|
||||
GA_RelVerify, TRUE,
|
||||
EndMember,
|
||||
CHILD_WeightedHeight, 0,
|
||||
EndGroup;
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
* Main Program
|
||||
*/
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
struct MsgPort *appport;
|
||||
struct Screen *Scr;
|
||||
|
||||
if (!ButtonBase) /* force it open */
|
||||
return 30;
|
||||
|
||||
/* By providing a message port you enable windowclass to handle iconification
|
||||
* and appwindows. This port can shared by all the windows of your application.
|
||||
*/
|
||||
appport = CreateMsgPort();
|
||||
Scr = LockPubScreen(NULL);
|
||||
|
||||
if (appport && Scr)
|
||||
{
|
||||
Object *Window;
|
||||
|
||||
apphook.h_Entry = (ULONG (* )())AppMsgFunc;
|
||||
apphook.h_SubEntry = NULL;
|
||||
|
||||
idcmphook.h_Entry = (ULONG (* )())IDCMPFunc;
|
||||
idcmphook.h_SubEntry = NULL;
|
||||
|
||||
/* Create a Window object with a Layout. When Window is asked to open itself,
|
||||
* it will calculate how much space the Layout needs and size itself accordingly.
|
||||
*/
|
||||
|
||||
Window = WindowObject,
|
||||
|
||||
/* these tags describe the window
|
||||
*/
|
||||
|
||||
WA_IDCMP, IDCMP_RAWKEY,
|
||||
WA_Top, 20,
|
||||
WA_Left, 20,
|
||||
WA_SizeGadget, TRUE,
|
||||
WA_DepthGadget, TRUE,
|
||||
WA_DragBar, TRUE,
|
||||
WA_CloseGadget, TRUE,
|
||||
WA_Activate, TRUE,
|
||||
|
||||
WA_Title, "ClassAct backfill/datatype example",
|
||||
WA_ScreenTitle, "ClassAct Copyright 1995 Phantom Development LLC.",
|
||||
|
||||
/* Add an iconification gadget. If you have this, you must listen to
|
||||
* WMHI_ICONIFY.
|
||||
*/
|
||||
|
||||
WINDOW_IconifyGadget, TRUE,
|
||||
|
||||
/* This message port lets windowclass handle the icon and appwindow.
|
||||
*/
|
||||
|
||||
WINDOW_AppPort, appport,
|
||||
WINDOW_AppWindow, TRUE,
|
||||
WINDOW_AppMsgHook, &apphook,
|
||||
|
||||
/* This sets up windowclass to relay IDCMPUPDATE messages to the
|
||||
* application's hook.
|
||||
*/
|
||||
|
||||
WINDOW_IDCMPHook, &idcmphook,
|
||||
WINDOW_IDCMPHookBits, IDCMP_IDCMPUPDATE,
|
||||
|
||||
/* The windowclass will automatically free the DiskObject used when
|
||||
* iconifying the window. If you do not provide a valid DiskObject,
|
||||
* windowclass will try to use env:sys/def_window.info or the default
|
||||
* project icon.
|
||||
*/
|
||||
|
||||
WINDOW_Icon, GetDiskObject( "BackfillExample" ),
|
||||
WINDOW_IconTitle, "ClassAct Example",
|
||||
|
||||
/* Below is the layout of the window
|
||||
*/
|
||||
|
||||
WINDOW_Layout, CreateLayout(),
|
||||
EndWindow;
|
||||
|
||||
if (Window)
|
||||
{
|
||||
/* Window pointer cache.
|
||||
*/
|
||||
|
||||
struct Window *Win;
|
||||
BOOL changebackfill = FALSE;
|
||||
|
||||
if (Win = CA_OpenWindow( Window ))
|
||||
{
|
||||
ULONG wsig, asig = 1L << appport->mp_SigBit;
|
||||
BOOL done = FALSE;
|
||||
|
||||
/* Now that the window has been opened, we can get the signal mask
|
||||
* of its user port. If the program supported iconification and didn't
|
||||
* use a shared IDCMP port between all windows, this signal bit
|
||||
* would have to be re-queried before each Wait().
|
||||
*/
|
||||
|
||||
GetAttr( WINDOW_SigMask, Window, &wsig );
|
||||
|
||||
while (done == FALSE)
|
||||
{
|
||||
ULONG sig = Wait(wsig | asig | SIGBREAKF_CTRL_C);
|
||||
ULONG result;
|
||||
UWORD code;
|
||||
|
||||
if (sig & (wsig | asig))
|
||||
{
|
||||
/* Messages waiting at the window's IDCMP port. Loop at WM_HANDLEINPUT
|
||||
* until all have been processed.
|
||||
*/
|
||||
|
||||
while ((result = CA_HandleInput(Window,&code)) != WMHI_LASTMSG)
|
||||
{
|
||||
/* The return code of this method is two-part. The upper word describes the
|
||||
* class of the message (gadgetup, menupick, closewindow, iconify, etc),
|
||||
* and the lower word is a class-defined ID, currently in use in the
|
||||
* gadgetup and menupick return codes.
|
||||
* Switch on the class, then on the ID.
|
||||
*/
|
||||
|
||||
switch(result & WMHI_CLASSMASK)
|
||||
{
|
||||
case WMHI_GADGETUP:
|
||||
|
||||
/* OK, got a gadgetup from something. Lets find out what the something is.
|
||||
* The code WORD to which a pointer was passed to WM_HANDLEINPUT has been
|
||||
* set to the Code value from the IDCMP_GADGETUP, in case we need it.
|
||||
*/
|
||||
|
||||
switch(result & WMHI_GADGETMASK)
|
||||
{
|
||||
case G_Backfill:
|
||||
changebackfill = TRUE;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case WMHI_CLOSEWINDOW:
|
||||
/* The window close gadget was hit. Time to die...
|
||||
*/
|
||||
done = TRUE;
|
||||
break;
|
||||
|
||||
case WMHI_ICONIFY:
|
||||
/* Window requests that it be iconified. Handle this event as
|
||||
* soon as possible. The window is not iconified automatically to
|
||||
* give you a chance to make note that the window pointer will be
|
||||
* invalid before the window closes. It also allows you to free
|
||||
* resources only needed when the window is open, if you wish to.
|
||||
*/
|
||||
if (CA_Iconify( Window ))
|
||||
Win = NULL;
|
||||
break;
|
||||
|
||||
case WMHI_UNICONIFY:
|
||||
/* The window should be reopened. If you had free'd something
|
||||
* on iconify, now is the time to re-allocate it, before calling
|
||||
* CA_OpenWindow.
|
||||
*/
|
||||
Win = CA_OpenWindow( Window );
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (sig & SIGBREAKF_CTRL_C)
|
||||
{
|
||||
done = TRUE;
|
||||
}
|
||||
|
||||
if (changebackfill)
|
||||
{
|
||||
Object *layout;
|
||||
|
||||
/* This is a quick&dirty demo using an unmodified LayerHook (on Aminet).
|
||||
* This hook can not change its source bitmap on the fly.
|
||||
* Becaue of this, we have to do a bit of a juggling act to
|
||||
* replace the current backfill.
|
||||
*/
|
||||
if (Backfill == &BF1)
|
||||
{
|
||||
Backfill = NULL;
|
||||
if (LoadBackgroundImage( &BF2, name, Scr, &Options ))
|
||||
{
|
||||
Backfill = &BF2;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Backfill = NULL;
|
||||
if (LoadBackgroundImage( &BF1, name, Scr, &Options ))
|
||||
{
|
||||
Backfill = &BF1;
|
||||
}
|
||||
}
|
||||
if (layout = CreateLayout())
|
||||
{
|
||||
SetAttrs(Window, WINDOW_Layout, layout, TAG_END);
|
||||
/* backfill changed, it's not safe to dispose the old
|
||||
* one. */
|
||||
UnloadBackgroundImage((Backfill == &BF1) ? &BF2 : &BF1);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* layout failed */
|
||||
UnloadBackgroundImage(Backfill);
|
||||
}
|
||||
changebackfill = FALSE;
|
||||
}
|
||||
}
|
||||
/* Close the window and dispose of all attached gadgets
|
||||
*/
|
||||
DisposeObject( Window );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (appport)
|
||||
DeleteMsgPort(appport);
|
||||
if (Scr)
|
||||
UnlockPubScreen(NULL,Scr);
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,171 @@
|
|||
/* ClassAct Example
|
||||
* Copyright 1995 Phantom Development LLC.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* This Example Shows ClassAct's bitmap.image
|
||||
*/
|
||||
|
||||
#include <proto/intuition.h>
|
||||
|
||||
#include <classact.h>
|
||||
|
||||
#include <clib/exec_protos.h>
|
||||
#include <clib/alib_protos.h>
|
||||
#include <clib/intuition_protos.h>
|
||||
|
||||
struct ClassLibrary *WindowBase;
|
||||
struct ClassLibrary *LayoutBase;
|
||||
struct ClassLibrary *ButtonBase;
|
||||
struct ClassLibrary *BitMapBase;
|
||||
|
||||
static struct Image *image;
|
||||
static struct Screen *screen;
|
||||
static struct Gadget *gadget;
|
||||
|
||||
int main( void )
|
||||
{ Object *Win_Object;
|
||||
Object *But_Object;
|
||||
struct Window *window;
|
||||
struct Image *image1=NULL,*image2=NULL,*image3=NULL;
|
||||
struct BitMap *bitmap;
|
||||
ULONG result,signal;
|
||||
BOOL done=FALSE;
|
||||
|
||||
/* Open the classes we will use. Note, classlib.lib SAS/C or DICE autoinit
|
||||
* can do this for you automatically.
|
||||
*/
|
||||
if( (WindowBase = (struct ClassLibrary *)OpenLibrary("window.class",0L) )
|
||||
&& (LayoutBase = (struct ClassLibrary *)OpenLibrary("gadgets/layout.gadget",0L) )
|
||||
&& (ButtonBase = (struct ClassLibrary *)OpenLibrary("gadgets/button.gadget",0L) )
|
||||
&& (BitMapBase = (struct ClassLibrary *)OpenLibrary("images/bitmap.image",0L) )
|
||||
)
|
||||
{
|
||||
if(screen=LockPubScreen(NULL))
|
||||
{
|
||||
/* Make an image out of an IFF file.
|
||||
* The image will be included in the window layout, and is
|
||||
* used to clip two other images from
|
||||
*/
|
||||
image1=BitMapObject,
|
||||
BITMAP_SourceFile,"PROGDIR:buttons.iff",
|
||||
BITMAP_OffsetX, 0,
|
||||
BITMAP_OffsetY, 0,
|
||||
BITMAP_Width, 577,
|
||||
BITMAP_Height, 30,
|
||||
BITMAP_Screen,screen,
|
||||
EndImage;
|
||||
|
||||
if(image1)
|
||||
{
|
||||
/* Get the bitmap of the image
|
||||
*/
|
||||
GetAttr(BITMAP_BitMap,image1,(ULONG *)&bitmap);
|
||||
|
||||
Win_Object = WindowObject,
|
||||
WA_ScreenTitle, "ClassAct Copyright 1995,1996 ClassAct Development Team..",
|
||||
WA_Title, "BitMap Example",
|
||||
WA_SizeGadget, TRUE,
|
||||
WA_Left, 40,
|
||||
WA_Top, 30,
|
||||
WA_InnerWidth,100,
|
||||
WA_DepthGadget, TRUE,
|
||||
WA_DragBar, TRUE,
|
||||
WA_CloseGadget, TRUE,
|
||||
WA_Activate, TRUE,
|
||||
WA_PubScreen,screen,
|
||||
WINDOW_ParentGroup, VGroupObject,
|
||||
LAYOUT_SpaceOuter, TRUE,
|
||||
LAYOUT_HorizAlignment,LALIGN_CENTER,
|
||||
|
||||
StartImage,image1,
|
||||
CHILD_NoDispose,TRUE,
|
||||
|
||||
/* Add a button with its imagery read from two
|
||||
* transparent GIF files. BITMAP_Masking,TRUE will
|
||||
* make the imagery appear transparent.
|
||||
*/
|
||||
StartMember, But_Object = ButtonObject,
|
||||
GA_ReadOnly, TRUE,
|
||||
GA_Image,image2=BitMapObject,
|
||||
BITMAP_BitMap,bitmap,
|
||||
BITMAP_OffsetX,0,
|
||||
BITMAP_OffsetY,0,
|
||||
BITMAP_Width,120,
|
||||
BITMAP_Height,30,
|
||||
BITMAP_SelectBitMap,bitmap,
|
||||
BITMAP_SelectOffsetX,30,
|
||||
BITMAP_SelectOffsetY,0,
|
||||
BITMAP_SelectWidth,120,
|
||||
BITMAP_SelectHeight,30,
|
||||
BITMAP_Masking,TRUE,
|
||||
EndImage,
|
||||
EndMember,
|
||||
CHILD_WeightedWidth, 0,
|
||||
CHILD_WeightedHeight, 0,
|
||||
|
||||
EndMember,
|
||||
EndWindow;
|
||||
/* Object creation sucessful?
|
||||
*/
|
||||
if( Win_Object )
|
||||
{
|
||||
/* Open the window.
|
||||
*/
|
||||
if( window = (struct Window *) CA_OpenWindow(Win_Object) )
|
||||
{
|
||||
ULONG wait;
|
||||
|
||||
/* Obtain the window wait signal mask.
|
||||
*/
|
||||
GetAttr( WINDOW_SigMask, Win_Object, &signal );
|
||||
/* Input Event Loop
|
||||
*/
|
||||
while( !done )
|
||||
{
|
||||
SetAttrs(image2, BITMAP_OffsetX, 32, TAG_END);
|
||||
|
||||
wait = Wait(signal|SIGBREAKF_CTRL_C);
|
||||
|
||||
if (wait & SIGBREAKF_CTRL_C) done = TRUE;
|
||||
else
|
||||
while ((result = CA_HandleInput(Win_Object,NULL)) != WMHI_LASTMSG)
|
||||
{
|
||||
switch(result)
|
||||
{
|
||||
case WMHI_CLOSEWINDOW:
|
||||
done = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/* Disposing of the window object will
|
||||
* also close the window if it is
|
||||
* already opened and it will dispose of
|
||||
* all objects attached to it.
|
||||
*/
|
||||
DisposeObject( Win_Object );
|
||||
}
|
||||
|
||||
/* Dispose the images ourselves as button.gadget doesn't
|
||||
* do this for its GA_Image...
|
||||
*/
|
||||
if(image2) DisposeObject(image2);
|
||||
if(image3) DisposeObject(image3);
|
||||
if(image1) DisposeObject(image1);
|
||||
|
||||
}
|
||||
|
||||
UnlockPubScreen(NULL,screen);
|
||||
}
|
||||
}
|
||||
|
||||
/* Close the classes.
|
||||
*/
|
||||
if (BitMapBase) CloseLibrary( (struct Library *)BitMapBase );
|
||||
if (ButtonBase) CloseLibrary( (struct Library *)ButtonBase );
|
||||
if (LayoutBase) CloseLibrary( (struct Library *)LayoutBase );
|
||||
if (WindowBase) CloseLibrary( (struct Library *)WindowBase );
|
||||
|
||||
}
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,233 @@
|
|||
;/* CheckBox Example
|
||||
sc link checkboxexample.c lib lib:classact.lib
|
||||
quit
|
||||
*/
|
||||
|
||||
/**
|
||||
** CheckBoxExample.c -- CheckBox class Example.
|
||||
**
|
||||
** This is a simple example testing some of the capabilities of the
|
||||
** CheckBox gadget class.
|
||||
**
|
||||
** This code opens a window and then creates 2 CheckBox gadgets which
|
||||
** are subsequently attached to the window's gadget list. One uses
|
||||
** arrows, one does not. Notice that you can tab cycle between them.
|
||||
**/
|
||||
|
||||
/* system includes
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <exec/types.h>
|
||||
#include <exec/memory.h>
|
||||
#include <intuition/intuition.h>
|
||||
#include <intuition/gadgetclass.h>
|
||||
#include <libraries/gadtools.h>
|
||||
#include <graphics/gfxbase.h>
|
||||
#include <graphics/text.h>
|
||||
#include <graphics/gfxmacros.h>
|
||||
#include <utility/tagitem.h>
|
||||
#include <workbench/startup.h>
|
||||
#include <workbench/workbench.h>
|
||||
|
||||
#include <proto/intuition.h>
|
||||
#include <proto/graphics.h>
|
||||
#include <proto/exec.h>
|
||||
#include <proto/dos.h>
|
||||
#include <proto/utility.h>
|
||||
#include <proto/wb.h>
|
||||
#include <proto/icon.h>
|
||||
|
||||
/* ClassAct includes
|
||||
*/
|
||||
#include <classact.h>
|
||||
|
||||
|
||||
enum
|
||||
{
|
||||
GID_MAIN=0,
|
||||
GID_CHECKBOX1,
|
||||
GID_CHECKBOX2,
|
||||
GID_DOWN,
|
||||
GID_UP,
|
||||
GID_QUIT,
|
||||
GID_LAST
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
WID_MAIN=0,
|
||||
WID_LAST
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
OID_MAIN=0,
|
||||
OID_LAST
|
||||
};
|
||||
|
||||
int main(void)
|
||||
{
|
||||
struct MsgPort *AppPort;
|
||||
|
||||
struct Window *windows[WID_LAST];
|
||||
|
||||
struct Gadget *gadgets[GID_LAST];
|
||||
|
||||
Object *objects[OID_LAST];
|
||||
|
||||
/* make sure our classes opened... */
|
||||
if (!ButtonBase || !CheckBoxBase || !WindowBase || !LayoutBase)
|
||||
return(30);
|
||||
else if ( AppPort = CreateMsgPort() )
|
||||
{
|
||||
/* Create the window object.
|
||||
*/
|
||||
objects[OID_MAIN] = WindowObject,
|
||||
WA_ScreenTitle, "ClassAct Release 2.0",
|
||||
WA_Title, "ClassAct CheckBox Example",
|
||||
WA_Activate, TRUE,
|
||||
WA_DepthGadget, TRUE,
|
||||
WA_DragBar, TRUE,
|
||||
WA_CloseGadget, TRUE,
|
||||
WA_SizeGadget, TRUE,
|
||||
WINDOW_IconifyGadget, TRUE,
|
||||
WINDOW_IconTitle, "CheckBox",
|
||||
WINDOW_AppPort, AppPort,
|
||||
WINDOW_Position, WPOS_CENTERMOUSE,
|
||||
WINDOW_ParentGroup, gadgets[GID_MAIN] = VGroupObject,
|
||||
LAYOUT_SpaceOuter, TRUE,
|
||||
LAYOUT_DeferLayout, TRUE,
|
||||
|
||||
LAYOUT_AddChild, gadgets[GID_CHECKBOX1] = CheckBoxObject,
|
||||
GA_ID, GID_CHECKBOX1,
|
||||
GA_RelVerify, TRUE,
|
||||
GA_Text, "CheckBox _1",
|
||||
CHECKBOX_TextPlace, PLACETEXT_RIGHT,
|
||||
CheckBoxEnd,
|
||||
CHILD_NominalSize, TRUE,
|
||||
|
||||
LAYOUT_AddChild, gadgets[GID_CHECKBOX2] = CheckBoxObject,
|
||||
GA_ID, GID_CHECKBOX2,
|
||||
GA_RelVerify, TRUE,
|
||||
GA_Text, "CheckBox _2",
|
||||
CHECKBOX_TextPlace, PLACETEXT_LEFT,
|
||||
CheckBoxEnd,
|
||||
|
||||
LAYOUT_AddChild, VGroupObject,
|
||||
CLASSACT_BackFill, NULL,
|
||||
LAYOUT_SpaceOuter, TRUE,
|
||||
LAYOUT_VertAlignment, LALIGN_CENTER,
|
||||
LAYOUT_HorizAlignment, LALIGN_CENTER,
|
||||
LAYOUT_BevelStyle, BVS_FIELD,
|
||||
|
||||
LAYOUT_AddImage, LabelObject,
|
||||
LABEL_Text, "The checkbox may have its label placed\n",
|
||||
LABEL_Text, "either on the left or right side.\n",
|
||||
LABEL_Text, " \n",
|
||||
LABEL_Text, "You may click the label text as well\n",
|
||||
LABEL_Text, "as the check box itself.\n",
|
||||
LabelEnd,
|
||||
LayoutEnd,
|
||||
|
||||
LAYOUT_AddChild, ButtonObject,
|
||||
GA_ID, GID_QUIT,
|
||||
GA_RelVerify, TRUE,
|
||||
GA_Text,"_Quit",
|
||||
ButtonEnd,
|
||||
CHILD_WeightedHeight, 0,
|
||||
|
||||
EndGroup,
|
||||
EndWindow;
|
||||
|
||||
/* Object creation sucessful?
|
||||
*/
|
||||
if (objects[OID_MAIN])
|
||||
{
|
||||
/* Open the window.
|
||||
*/
|
||||
if (windows[WID_MAIN] = (struct Window *) CA_OpenWindow(objects[OID_MAIN]))
|
||||
{
|
||||
ULONG wait, signal, app = (1L << AppPort->mp_SigBit);
|
||||
ULONG done = FALSE;
|
||||
ULONG result;
|
||||
UWORD code;
|
||||
|
||||
/* Obtain the window wait signal mask.
|
||||
*/
|
||||
GetAttr(WINDOW_SigMask, objects[OID_MAIN], &signal);
|
||||
|
||||
/* Input Event Loop
|
||||
*/
|
||||
while (!done)
|
||||
{
|
||||
wait = Wait( signal | SIGBREAKF_CTRL_C | app );
|
||||
|
||||
if ( wait & SIGBREAKF_CTRL_C )
|
||||
{
|
||||
done = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
while ( (result = CA_HandleInput(objects[OID_MAIN], &code) ) != WMHI_LASTMSG )
|
||||
{
|
||||
switch (result & WMHI_CLASSMASK)
|
||||
{
|
||||
case WMHI_CLOSEWINDOW:
|
||||
windows[WID_MAIN] = NULL;
|
||||
done = TRUE;
|
||||
break;
|
||||
|
||||
case WMHI_GADGETUP:
|
||||
switch (result & WMHI_GADGETMASK)
|
||||
{
|
||||
case GID_CHECKBOX1:
|
||||
/* code is TRUE or FALSE depending on check state */
|
||||
break;
|
||||
|
||||
case GID_CHECKBOX2:
|
||||
/* code is TRUE or FALSE depending on check state */
|
||||
break;
|
||||
|
||||
case GID_QUIT:
|
||||
done = TRUE;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case WMHI_ICONIFY:
|
||||
CA_Iconify(objects[OID_MAIN]);
|
||||
windows[WID_MAIN] = NULL;
|
||||
break;
|
||||
|
||||
case WMHI_UNICONIFY:
|
||||
windows[WID_MAIN] = (struct Window *) CA_OpenWindow(objects[OID_MAIN]);
|
||||
|
||||
if (windows[WID_MAIN])
|
||||
{
|
||||
GetAttr(WINDOW_SigMask, objects[OID_MAIN], &signal);
|
||||
}
|
||||
else
|
||||
{
|
||||
done = TRUE; // error re-opening window!
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Disposing of the window object will also close the window if it is
|
||||
* already opened, and it will dispose of the layout object attached to it.
|
||||
*/
|
||||
DisposeObject(objects[OID_MAIN]);
|
||||
}
|
||||
|
||||
DeleteMsgPort(AppPort);
|
||||
}
|
||||
|
||||
return(0);
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,228 @@
|
|||
;/* Chooser Example
|
||||
sc link chooserexample.c lib lib:classact.lib
|
||||
quit
|
||||
*/
|
||||
|
||||
/**
|
||||
** ChoosserExample.c -- chooser class example.
|
||||
**
|
||||
** This is a simple example testing some of the capabilities of the
|
||||
** chooser gadget class.
|
||||
**
|
||||
** This opens a window with chooser gadget. We will usse ClassAct.lib's
|
||||
** ChooserLables() and FreeChooserLabels() utility functions to create the
|
||||
** item labels.
|
||||
**
|
||||
**/
|
||||
|
||||
/* system includes
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <exec/types.h>
|
||||
#include <exec/memory.h>
|
||||
#include <intuition/intuition.h>
|
||||
#include <intuition/gadgetclass.h>
|
||||
#include <graphics/gfxbase.h>
|
||||
#include <graphics/text.h>
|
||||
#include <graphics/gfxmacros.h>
|
||||
#include <utility/tagitem.h>
|
||||
#include <workbench/startup.h>
|
||||
#include <workbench/workbench.h>
|
||||
|
||||
#include <proto/intuition.h>
|
||||
#include <proto/graphics.h>
|
||||
#include <proto/exec.h>
|
||||
#include <proto/dos.h>
|
||||
#include <proto/utility.h>
|
||||
#include <proto/wb.h>
|
||||
#include <proto/icon.h>
|
||||
|
||||
/* ClassAct includes
|
||||
*/
|
||||
#include <classact.h>
|
||||
|
||||
/* button option texts
|
||||
*/
|
||||
UBYTE *chooser[] =
|
||||
{
|
||||
"1200",
|
||||
"2400",
|
||||
"4800",
|
||||
"9600",
|
||||
"19200",
|
||||
"38400",
|
||||
"57600",
|
||||
"115200",
|
||||
"230400",
|
||||
NULL
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
GID_MAIN=0,
|
||||
GID_CHOOSER1,
|
||||
GID_QUIT,
|
||||
GID_LAST
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
WID_MAIN=0,
|
||||
WID_LAST
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
OID_MAIN=0,
|
||||
OID_LAST
|
||||
};
|
||||
|
||||
int main(void)
|
||||
{
|
||||
struct MsgPort *AppPort;
|
||||
|
||||
struct Window *windows[WID_LAST];
|
||||
|
||||
struct Gadget *gadgets[GID_LAST];
|
||||
|
||||
Object *objects[OID_LAST];
|
||||
|
||||
struct List *chooserlist1;
|
||||
|
||||
/* make sure our classes opened... */
|
||||
if (!ButtonBase || !ChooserBase || !WindowBase || !LayoutBase)
|
||||
return(30);
|
||||
else if ( AppPort = CreateMsgPort() )
|
||||
{
|
||||
/* Create chooser label list.
|
||||
*/
|
||||
chooserlist1 = ChooserLabels( "1200","2400","4800","9600","19200","38400","57600", NULL );
|
||||
|
||||
if (chooserlist1)
|
||||
{
|
||||
/* Create the window object.
|
||||
*/
|
||||
objects[OID_MAIN] = WindowObject,
|
||||
WA_ScreenTitle, "ClassAct Release 2.0",
|
||||
WA_Title, "ClassAct Chooser Example",
|
||||
WA_Activate, TRUE,
|
||||
WA_DepthGadget, TRUE,
|
||||
WA_DragBar, TRUE,
|
||||
WA_CloseGadget, TRUE,
|
||||
WA_SizeGadget, TRUE,
|
||||
WINDOW_IconifyGadget, TRUE,
|
||||
WINDOW_IconTitle, "Chooser",
|
||||
WINDOW_AppPort, AppPort,
|
||||
WINDOW_Position, WPOS_CENTERMOUSE,
|
||||
WINDOW_ParentGroup, gadgets[GID_MAIN] = VGroupObject,
|
||||
LAYOUT_SpaceOuter, TRUE,
|
||||
LAYOUT_DeferLayout, TRUE,
|
||||
|
||||
LAYOUT_AddChild, gadgets[GID_CHOOSER1] = ChooserObject,
|
||||
GA_ID, GID_CHOOSER1,
|
||||
GA_RelVerify, TRUE,
|
||||
CHOOSER_Labels, chooserlist1,
|
||||
CHOOSER_Selected, 0,
|
||||
ChooserEnd,
|
||||
CHILD_NominalSize, TRUE,
|
||||
CHILD_Label, LabelObject, LABEL_Text, "_Baud Rate", LabelEnd,
|
||||
|
||||
LAYOUT_AddChild, ButtonObject,
|
||||
GA_ID, GID_QUIT,
|
||||
GA_RelVerify, TRUE,
|
||||
GA_Text,"_Quit",
|
||||
ButtonEnd,
|
||||
CHILD_WeightedHeight, 0,
|
||||
|
||||
EndGroup,
|
||||
EndWindow;
|
||||
|
||||
/* Object creation sucessful?
|
||||
*/
|
||||
if (objects[OID_MAIN])
|
||||
{
|
||||
/* Open the window.
|
||||
*/
|
||||
if (windows[WID_MAIN] = (struct Window *) CA_OpenWindow(objects[OID_MAIN]))
|
||||
{
|
||||
ULONG wait, signal, app = (1L << AppPort->mp_SigBit);
|
||||
ULONG done = FALSE;
|
||||
ULONG result;
|
||||
UWORD code;
|
||||
|
||||
/* Obtain the window wait signal mask.
|
||||
*/
|
||||
GetAttr(WINDOW_SigMask, objects[OID_MAIN], &signal);
|
||||
|
||||
/* Input Event Loop
|
||||
*/
|
||||
while (!done)
|
||||
{
|
||||
wait = Wait( signal | SIGBREAKF_CTRL_C | app );
|
||||
|
||||
if ( wait & SIGBREAKF_CTRL_C )
|
||||
{
|
||||
done = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
while ( (result = CA_HandleInput(objects[OID_MAIN], &code) ) != WMHI_LASTMSG )
|
||||
{
|
||||
switch (result & WMHI_CLASSMASK)
|
||||
{
|
||||
case WMHI_CLOSEWINDOW:
|
||||
windows[WID_MAIN] = NULL;
|
||||
done = TRUE;
|
||||
break;
|
||||
|
||||
case WMHI_GADGETUP:
|
||||
switch (result & WMHI_GADGETMASK)
|
||||
{
|
||||
case GID_QUIT:
|
||||
done = TRUE;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case WMHI_ICONIFY:
|
||||
CA_Iconify(objects[OID_MAIN]);
|
||||
windows[WID_MAIN] = NULL;
|
||||
break;
|
||||
|
||||
case WMHI_UNICONIFY:
|
||||
windows[WID_MAIN] = (struct Window *) CA_OpenWindow(objects[OID_MAIN]);
|
||||
|
||||
if (windows[WID_MAIN])
|
||||
{
|
||||
GetAttr(WINDOW_SigMask, objects[OID_MAIN], &signal);
|
||||
}
|
||||
else
|
||||
{
|
||||
done = TRUE; // error re-opening window!
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Disposing of the window object will also close the window if it is
|
||||
* already opened, and it will dispose of the layout object attached to it.
|
||||
*/
|
||||
DisposeObject(objects[OID_MAIN]);
|
||||
}
|
||||
|
||||
/* free the chooser list
|
||||
*/
|
||||
FreeChooserLabels(chooserlist1);
|
||||
}
|
||||
|
||||
DeleteMsgPort(AppPort);
|
||||
}
|
||||
|
||||
return(0);
|
||||
}
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,225 @@
|
|||
;/* Hidden Chooser Example
|
||||
sc link hiddenchooser.c lib lib:classact.lib
|
||||
quit
|
||||
*/
|
||||
|
||||
/** This example demonstrates the "hidden mode" mode of the chooser gadget.
|
||||
**
|
||||
** It is a NEW mode added recently to ClassAct release 2.0 - you *must*
|
||||
** have atleast V41.101 or later installed. Officially, this is a V42
|
||||
** ClassAct 2.1 feature, but made available now due to developer demand.
|
||||
**
|
||||
** Hidden choosers currently need to be handled differently than visible
|
||||
** gadget objects. Since they are NOT added to the window, or layout group,
|
||||
** they do not trigger a GADGETUP. So, you must use an IDCMPUPDATE hook
|
||||
** and use the CHOOSER_Active notifications to get the selection.
|
||||
**/
|
||||
|
||||
#define USE_BUILTIN_MATH
|
||||
#define USE_SYSBASE
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
|
||||
#define INTUI_V36_NAMES_ONLY
|
||||
|
||||
#include <exec/types.h>
|
||||
#include <exec/memory.h>
|
||||
#include <dos/dos.h>
|
||||
#include <dos/dosextens.h>
|
||||
#include <intuition/intuition.h>
|
||||
#include <intuition/gadgetclass.h>
|
||||
#include <intuition/intuitionbase.h>
|
||||
#include <intuition/classusr.h>
|
||||
#include <intuition/imageclass.h>
|
||||
#include <intuition/gadgetclass.h>
|
||||
#include <intuition/icclass.h>
|
||||
#include <intuition/cghooks.h>
|
||||
#include <intuition/classes.h>
|
||||
#include <graphics/gfxbase.h>
|
||||
#include <graphics/text.h>
|
||||
#include <graphics/gfxmacros.h>
|
||||
#include <utility/tagitem.h>
|
||||
#include <utility/hooks.h>
|
||||
|
||||
#include <clib/macros.h>
|
||||
|
||||
#include <proto/intuition.h>
|
||||
#include <proto/graphics.h>
|
||||
#include <proto/dos.h>
|
||||
#include <proto/exec.h>
|
||||
#include <proto/utility.h>
|
||||
|
||||
#include <classact.h>
|
||||
|
||||
#define ID_BUTTON 1
|
||||
#define ID_HIDDEN 2
|
||||
|
||||
/* Labels for the popup.
|
||||
*/
|
||||
UBYTE *chooser_strs[] =
|
||||
{
|
||||
"Save Image",
|
||||
"Load Image",
|
||||
"Follow URL",
|
||||
"Save to HotList",
|
||||
NULL
|
||||
};
|
||||
|
||||
/*************************************************************************
|
||||
* IDCMP hook
|
||||
*/
|
||||
|
||||
void __asm __saveds IDCMPFunc( register __a0 struct Hook *Hook,
|
||||
register __a2 Object *Window,
|
||||
register __a1 struct IntuiMessage *Msg )
|
||||
{
|
||||
ULONG active;
|
||||
|
||||
if (Msg->Class == IDCMP_IDCMPUPDATE)
|
||||
{
|
||||
/* The notification might include one of the tags we want to look at...
|
||||
*/
|
||||
if (GetTagData(GA_ID, 0, Msg->IAddress) == ID_HIDDEN)
|
||||
{
|
||||
active = GetTagData(CHOOSER_Active, -1, Msg->IAddress);
|
||||
printf("active: %ld\n", active);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
if (ButtonBase)
|
||||
{
|
||||
Object *Chooser_Object_Hidden;
|
||||
Object *Window_Object;
|
||||
struct Window *window;
|
||||
struct List *chooserlist;
|
||||
struct Hook idcmphook;
|
||||
|
||||
idcmphook.h_Entry = (ULONG (* )())IDCMPFunc;
|
||||
idcmphook.h_SubEntry = NULL;
|
||||
|
||||
chooserlist = ChooserLabelsA(chooser_strs);
|
||||
|
||||
if (chooserlist)
|
||||
{
|
||||
/* Create an instance of the chooser class that will remain hidden.
|
||||
*/
|
||||
Chooser_Object_Hidden = ChooserObject,
|
||||
GA_RelVerify, TRUE,
|
||||
GA_ID, ID_HIDDEN,
|
||||
CHOOSER_Labels, chooserlist,
|
||||
CHOOSER_DropDown, TRUE,
|
||||
CHOOSER_AutoFit, TRUE,
|
||||
CHOOSER_Hidden, TRUE,
|
||||
ICA_TARGET, ICTARGET_IDCMP,
|
||||
ChooserEnd;
|
||||
|
||||
/* Create the window object. */
|
||||
Window_Object = WindowObject,
|
||||
WA_ScreenTitle, "ClassAct Release 2.0",
|
||||
WA_Title, "Another ClassAct chooser.gadget Example",
|
||||
WA_SizeGadget, TRUE,
|
||||
WA_Left, 40,
|
||||
WA_Top, 30,
|
||||
WA_DepthGadget, TRUE,
|
||||
WA_DragBar, TRUE,
|
||||
WA_CloseGadget, TRUE,
|
||||
WA_Activate, TRUE,
|
||||
WA_SmartRefresh, TRUE,
|
||||
WA_IDCMP, IDCMP_GADGETUP|IDCMP_GADGETDOWN|IDCMP_IDCMPUPDATE,
|
||||
WINDOW_IDCMPHook, &idcmphook, /* For BOOPSI notification */
|
||||
WINDOW_IDCMPHookBits, IDCMP_IDCMPUPDATE,
|
||||
WINDOW_ParentGroup, VGroupObject,
|
||||
LAYOUT_SpaceOuter, TRUE,
|
||||
LAYOUT_DeferLayout, TRUE,
|
||||
|
||||
LAYOUT_AddChild, ButtonObject,
|
||||
GA_RelVerify, TRUE,
|
||||
GA_ID, ID_BUTTON,
|
||||
GA_Text, "Press me to show the hidden chooser!",
|
||||
ButtonEnd,
|
||||
CHILD_WeightedHeight, 0,
|
||||
|
||||
LAYOUT_AddChild, VGroupObject,
|
||||
CLASSACT_BackFill, NULL,
|
||||
LAYOUT_SpaceOuter, TRUE,
|
||||
LAYOUT_VertAlignment, LALIGN_CENTER,
|
||||
LAYOUT_HorizAlignment, LALIGN_CENTER,
|
||||
LAYOUT_BevelStyle, BVS_FIELD,
|
||||
|
||||
LAYOUT_AddImage, LabelObject,
|
||||
LABEL_Text, "Selecting the button above will\n",
|
||||
LABEL_Text, "reveal the hidden popup chooser!\n\n",
|
||||
LABEL_Text, "Hidden choosers are useful for\n",
|
||||
LABEL_Text, "context sensitive quick menus.\n",
|
||||
LabelEnd,
|
||||
|
||||
LayoutEnd,
|
||||
LayoutEnd,
|
||||
WindowEnd;
|
||||
|
||||
/* Object creation sucessful?
|
||||
*/
|
||||
if( Window_Object )
|
||||
{
|
||||
/* Open the window.
|
||||
*/
|
||||
if( window = (struct Window *) CA_OpenWindow(Window_Object) )
|
||||
{
|
||||
ULONG wait, signal, result, done = FALSE;
|
||||
WORD Code;
|
||||
|
||||
/* Obtain the window wait signal mask.
|
||||
*/
|
||||
GetAttr( WINDOW_SigMask, Window_Object, &signal );
|
||||
|
||||
/* Input Event Loop
|
||||
*/
|
||||
while( !done )
|
||||
{
|
||||
wait = Wait(signal|SIGBREAKF_CTRL_C);
|
||||
|
||||
if (wait & SIGBREAKF_CTRL_C) done = TRUE;
|
||||
else
|
||||
|
||||
while ((result = CA_HandleInput(Window_Object,&Code)) != WMHI_LASTMSG)
|
||||
{
|
||||
switch (result & WMHI_CLASSMASK)
|
||||
{
|
||||
case WMHI_CLOSEWINDOW:
|
||||
done = TRUE;
|
||||
break;
|
||||
|
||||
case WMHI_GADGETUP:
|
||||
switch(result & WMHI_GADGETMASK)
|
||||
{
|
||||
case ID_BUTTON:
|
||||
ActivateGadget((struct Gadget *)Chooser_Object_Hidden, window, NULL);
|
||||
break;
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Disposing of the window object will also close the window if it is
|
||||
* already opened and it will dispose of all objects attached to it.
|
||||
*/
|
||||
DisposeObject( Window_Object );
|
||||
|
||||
/* The hidden chooser isn't attached to anything, so we must dispose
|
||||
* it ourselves...
|
||||
*/
|
||||
DisposeObject( Chooser_Object_Hidden );
|
||||
}
|
||||
}
|
||||
FreeChooserLabels(chooserlist);
|
||||
}
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,207 @@
|
|||
#define USE_BUILTIN_MATH
|
||||
#define USE_SYSBASE
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
|
||||
#define INTUI_V36_NAMES_ONLY
|
||||
|
||||
#include <exec/types.h>
|
||||
#include <exec/memory.h>
|
||||
#include <dos/dos.h>
|
||||
#include <dos/dosextens.h>
|
||||
#include <intuition/intuition.h>
|
||||
#include <intuition/gadgetclass.h>
|
||||
#include <intuition/intuitionbase.h>
|
||||
#include <intuition/classusr.h>
|
||||
#include <intuition/imageclass.h>
|
||||
#include <intuition/gadgetclass.h>
|
||||
#include <intuition/cghooks.h>
|
||||
#include <intuition/icclass.h>
|
||||
#include <intuition/classes.h>
|
||||
#include <intuition/sghooks.h>
|
||||
#include <graphics/gfxbase.h>
|
||||
#include <graphics/text.h>
|
||||
#include <graphics/gfxmacros.h>
|
||||
#include <utility/tagitem.h>
|
||||
#include <utility/hooks.h>
|
||||
|
||||
#include <clib/macros.h>
|
||||
|
||||
#include <proto/intuition.h>
|
||||
#include <proto/graphics.h>
|
||||
#include <proto/dos.h>
|
||||
#include <proto/exec.h>
|
||||
#include <proto/gadtools.h>
|
||||
#include <proto/utility.h>
|
||||
|
||||
#include <classact.h>
|
||||
#include <classact_author.h>
|
||||
|
||||
#include <proto/clicktab.h>
|
||||
#include <gadgets/clicktab.h>
|
||||
|
||||
struct ClassLibrary *WindowBase;
|
||||
struct ClassLibrary *LayoutBase;
|
||||
struct ClassLibrary *ClickTabBase;
|
||||
|
||||
#define ID_CLICKTAB 1
|
||||
|
||||
struct List listitems;
|
||||
UBYTE *names[] =
|
||||
{
|
||||
"Tab_1",
|
||||
"Tab_2",
|
||||
"Tab_3",
|
||||
"Tab_4",
|
||||
NULL
|
||||
};
|
||||
|
||||
BOOL ClickTabNodes(struct List *list, UBYTE **labels)
|
||||
{
|
||||
struct Node *node;
|
||||
WORD i = 0;
|
||||
|
||||
NewList(list);
|
||||
|
||||
while (*labels)
|
||||
{
|
||||
if (node = (struct Node *)AllocClickTabNode(
|
||||
TNA_Text, *labels,
|
||||
TNA_Number, i,
|
||||
TNA_Enabled, TRUE,
|
||||
TNA_Spacing, 6,
|
||||
TAG_DONE))
|
||||
{
|
||||
AddTail(list, node);
|
||||
}
|
||||
labels++;
|
||||
i++;
|
||||
}
|
||||
return(TRUE);
|
||||
}
|
||||
|
||||
VOID FreeClickTabNodes(struct List *list)
|
||||
{
|
||||
struct Node *node, *nextnode;
|
||||
|
||||
node = list->lh_Head;
|
||||
while (nextnode = node->ln_Succ)
|
||||
{
|
||||
FreeClickTabNode(node);
|
||||
node = nextnode;
|
||||
}
|
||||
NewList(list);
|
||||
}
|
||||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
struct Window *window;
|
||||
Object *Tab_Object;
|
||||
Object *Win_Object;
|
||||
|
||||
/* Open the classes - typically not required to be done manually.
|
||||
* SAS/C or DICE AutoInit can do this for you if linked with the
|
||||
* supplied classact.lib
|
||||
*/
|
||||
WindowBase = (struct ClassLibrary *)OpenLibrary("window.class",0L);
|
||||
LayoutBase = (struct ClassLibrary *)OpenLibrary("gadgets/layout.gadget",0L);
|
||||
ClickTabBase = (struct ClassLibrary *)OpenLibrary("gadgets/clicktab.gadget",0L);
|
||||
|
||||
if(WindowBase && LayoutBase && ClickTabBase)
|
||||
{
|
||||
ClickTabNodes(&listitems, names);
|
||||
|
||||
/* Create the window object.
|
||||
*/
|
||||
Win_Object = WindowObject,
|
||||
WA_ScreenTitle, "ClassAct Copyright 1995, Phantom Development LLC.",
|
||||
WA_Title, "ClassAct clicktab.gadget Example",
|
||||
WA_SizeGadget, TRUE,
|
||||
WA_Left, 40,
|
||||
WA_Top, 30,
|
||||
WA_DepthGadget, TRUE,
|
||||
WA_DragBar, TRUE,
|
||||
WA_CloseGadget, TRUE,
|
||||
WA_Activate, TRUE,
|
||||
WA_SmartRefresh, TRUE,
|
||||
WINDOW_ParentGroup, VLayoutObject,
|
||||
LAYOUT_SpaceOuter, TRUE,
|
||||
LAYOUT_DeferLayout, TRUE,
|
||||
StartMember, Tab_Object = ClickTabObject,
|
||||
GA_ID, ID_CLICKTAB,
|
||||
CLICKTAB_Labels, &listitems,
|
||||
CLICKTAB_Current, 0L,
|
||||
EndMember,
|
||||
EndMember,
|
||||
EndWindow;
|
||||
|
||||
/* Object creation sucessful?
|
||||
*/
|
||||
if( Win_Object )
|
||||
{
|
||||
/* Open the window.
|
||||
*/
|
||||
if( window = (struct Window *) CA_OpenWindow(Win_Object) )
|
||||
{
|
||||
ULONG wait, signal, result, done = FALSE;
|
||||
WORD Code;
|
||||
|
||||
/* Obtain the window wait signal mask.
|
||||
*/
|
||||
GetAttr( WINDOW_SigMask, Win_Object, &signal );
|
||||
|
||||
/* Input Event Loop
|
||||
*/
|
||||
while( !done )
|
||||
{
|
||||
wait = Wait(signal|SIGBREAKF_CTRL_C);
|
||||
|
||||
if (wait & SIGBREAKF_CTRL_C) done = TRUE;
|
||||
else
|
||||
|
||||
while ((result = CA_HandleInput(Win_Object,&Code)) != WMHI_LASTMSG)
|
||||
{
|
||||
switch (result & WMHI_CLASSMASK)
|
||||
{
|
||||
case WMHI_CLOSEWINDOW:
|
||||
done = TRUE;
|
||||
break;
|
||||
|
||||
case WMHI_GADGETUP:
|
||||
switch(result & WMHI_GADGETMASK)
|
||||
{
|
||||
case ID_CLICKTAB:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Disposing of the window object will
|
||||
* also close the window if it is
|
||||
* already opened and it will dispose of
|
||||
* all objects attached to it.
|
||||
*/
|
||||
DisposeObject( Win_Object );
|
||||
}
|
||||
}
|
||||
|
||||
FreeClickTabNodes(&listitems);
|
||||
|
||||
/* Close the classes.
|
||||
*/
|
||||
if (ClickTabBase) CloseLibrary( (struct Library *)ClickTabBase );
|
||||
if (LayoutBase) CloseLibrary( (struct Library *)LayoutBase );
|
||||
if (WindowBase) CloseLibrary( (struct Library *)WindowBase );
|
||||
}
|
||||
|
||||
#ifdef _DCC
|
||||
int wbmain( struct WBStartup *wbs )
|
||||
{
|
||||
return( main( 0, NULL ));
|
||||
}
|
||||
#endif
|
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue