Home » Archimedes archive » Acorn User » AU 1994-11.adf » !StarInfo_StarInfo » Filter/Source

Filter/Source

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Acorn User » AU 1994-11.adf » !StarInfo_StarInfo
Filename: Filter/Source
Read OK:
File size: 0BCC bytes
Load address: 0000
Exec address: 0000
File contents
    1REM    >Source for title bar resize filter
    2REM By  Dave Lawrence
    3REM For RISC OS 3 and above
    4REM (C) August 1994
    5:
    6DIM code 1024
    7sp=13:lr=14:pc=15
    8name$="Resizer"
    9version$="0.01"
   10Open_Window = 2
   11
   12REM Stack from in filter_code
   13mouse_x       = 0
   14mouse_y       = 4
   15mouse_buttons = 8
   16mouse_window  = 12
   17mouse_icon    = 16
   18stacked_r0    = 20
   19stacked_r1    = 24
   20
   21Select = 1
   22Menu   = 2
   23Adjust = 4
   24
   25FOR pass=4 TO 6 STEP 2:P%=0:O%=code
   26[OPT pass
   27
   28        EQUD    0 ; entry
   29        EQUD    initialise
   30        EQUD    finalise
   31        EQUD    0 ; service
   32        EQUD    module_title
   33        EQUD    module_help
   34        EQUD    0 ; star table
   35        EQUD    0 ; SWI chunk
   36        EQUD    0 ; SWI code
   37        EQUD    0 ; SWI table
   38
   39.filter_name
   40.module_title
   41        EQUS    name$
   42        EQUB    0
   43.module_help
   44        EQUS    name$
   45        EQUB    9
   46        EQUB    9
   47        EQUS    version$
   48        EQUS    " (18 Aug 1994) by DL"
   49        EQUB    0
   50        ALIGN
   51
   52
   53.initialise
   54;==========
   55        STMFD   sp !,{r0-r3,lr}
   56
   57        ADR     r0,filter_name
   58        ADR     r1,filter_code
   59        MOV     r2,r12
   60        MOV     r3,#0
   61        LDR     r4,filter_mask
   62        SWI     "XFilter_RegisterPostFilter"
   63
   64        MOV     r0,#0
   65        STR     r0,dragging
   66
   67        LDMFD   sp !,{r0-r3,pc}
   68
   69.finalise
   70;========
   71        STMFD   sp !,{r0-r3,lr}
   72
   73        ADR     r0,filter_name
   74        ADR     r1,filter_code
   75        MOV     r2,r12
   76        MOV     r3,#0
   77        LDR     r4,filter_mask
   78        SWI     "XFilter_DeRegisterPostFilter"
   79
   80        LDMFD   sp !,{r0-r3,pc}
   81
   82.filter_mask
   83        EQUD     -1 EOR (1<<Open_Window)
   84
   85.filter_code
   86;===========
   87        STMFD   sp !,{r0-r2,lr}
   88        SUB     sp,sp,#4*5
   89
   90        MOV     r1,sp
   91        SWI     "XWimp_GetPointerInfo"
   92        LDR     r2,[sp,#mouse_buttons]
   93
   94        LDR     r0,dragging
   95        CMP     r0,#0
   96        BNE     do_drag
   97
   98        LDR     r0,[sp,#mouse_icon]
   99        CMN     r0,#- -4
  100        CMPEQ   r2,#Select + Adjust
  101        BNE     exit
  102
  103        MOV     r0,#1
  104        STR     r0,dragging
  105        LDR     r1,[sp,#stacked_r1]
  106        SWI     "XWimp_GetWindowState"
  107        LDR     lr,[r1,#12]
  108        STR     lr,xmax
  109        LDR     lr,[r1,#8]
  110        STR     lr,ymin
  111        B       exit
  112
  113.do_drag
  114        LDR     r1,[sp,#stacked_r1]
  115        LDR     lr,xmax
  116        STR     lr,[r1,#12]
  117        LDR     lr,ymin
  118        STR     lr,[r1,#8]
  119
  120        CMP     r2,#0
  121        MOVEQ   lr,#0
  122        STREQ   lr,dragging
  123
  124.exit   ADD     sp,sp,#4*5
  125        LDMFD   sp !,{r0-r2,pc}^
  126
  127.dragging
  128        EQUD    0
  129.xmax
  130        EQUD    0
  131.ymin
  132        EQUD    0
  133]NEXT
  134SYS "OS_File",10,name$,&FFA,,code,O%
,�    >Source for title bar resize filter
� By  Dave Lawrence
� For RISC OS 3 and above
� (C) August 1994
:
� code 1024
sp=13:lr=14:pc=15
name$="Resizer"
	version$="0.01"

Open_Window = 2

� Stack from in filter_code

mouse_x       = 0
mouse_y       = 4
mouse_buttons = 8
mouse_window  = 12
mouse_icon    = 16
stacked_r0    = 20
stacked_r1    = 24

Select = 1
Menu   = 2
Adjust = 4

!� pass=4 � 6 � 2:P%=0:O%=code

[OPT pass

        EQUD    0 ; entry
        EQUD    initialise
        EQUD    finalise
        EQUD    0 ; service
          EQUD    module_title
!        EQUD    module_help
""        EQUD    0 ; star table
#!        EQUD    0 ; SWI chunk
$         EQUD    0 ; SWI code
%!        EQUD    0 ; SWI table
&
'.filter_name
(.module_title
)        EQUS    name$
*        EQUB    0
+.module_help
,        EQUS    name$
-        EQUB    9
.        EQUB    9
/        EQUS    version$
0*        EQUS    " (18 Aug 1994) by DL"
1        EQUB    0
2        ALIGN
3
4
5.initialise
6;==========
7#        STMFD   sp !,{r0-r3,lr}
8
9"        ADR     r0,filter_name
:"        ADR     r1,filter_code
;        MOV     r2,r12
<        MOV     r3,#0
="        LDR     r4,filter_mask
>0        SWI     "XFilter_RegisterPostFilter"
?
@        MOV     r0,#0
A        STR     r0,dragging
B
C#        LDMFD   sp !,{r0-r3,pc}
D
E
.finalise
F
;========
G#        STMFD   sp !,{r0-r3,lr}
H
I"        ADR     r0,filter_name
J"        ADR     r1,filter_code
K        MOV     r2,r12
L        MOV     r3,#0
M"        LDR     r4,filter_mask
N2        SWI     "XFilter_DeRegisterPostFilter"
O
P#        LDMFD   sp !,{r0-r3,pc}
Q
R.filter_mask
S*        EQUD     -1 � (1<<Open_Window)
T
U.filter_code
V;===========
W#        STMFD   sp !,{r0-r2,lr}
X        SUB     sp,sp,#4*5
Y
Z        MOV     r1,sp
[*        SWI     "XWimp_GetPointerInfo"
\*        LDR     r2,[sp,#mouse_buttons]
]
^        LDR     r0,dragging
_        CMP     r0,#0
`        BNE     do_drag
a
b'        LDR     r0,[sp,#mouse_icon]
c        CMN     r0,#- -4
d'        CMPEQ   r2,#Select + Adjust
e        BNE     exit
f
g        MOV     r0,#1
h        STR     r0,dragging
i'        LDR     r1,[sp,#stacked_r1]
j*        SWI     "XWimp_GetWindowState"
k        LDR     lr,[r1,#12]
l        STR     lr,xmax
m        LDR     lr,[r1,#8]
n        STR     lr,ymin
o        B       exit
p
q.do_drag
r'        LDR     r1,[sp,#stacked_r1]
s        LDR     lr,xmax
t        STR     lr,[r1,#12]
u        LDR     lr,ymin
v        STR     lr,[r1,#8]
w
x        CMP     r2,#0
y        �Q   lr,#0
z        STREQ   lr,dragging
{
|.exit   ADD     sp,sp,#4*5
}$        LDMFD   sp !,{r0-r2,pc}^
~

.dragging
�        EQUD    0
�	.xmax
�        EQUD    0
�	.ymin
�        EQUD    0
�]�
�'ș "OS_File",10,name$,&FFA,,code,O%
�
00000000  0d 00 01 2c f4 20 20 20  20 3e 53 6f 75 72 63 65  |...,.    >Source|
00000010  20 66 6f 72 20 74 69 74  6c 65 20 62 61 72 20 72  | for title bar r|
00000020  65 73 69 7a 65 20 66 69  6c 74 65 72 0d 00 02 17  |esize filter....|
00000030  f4 20 42 79 20 20 44 61  76 65 20 4c 61 77 72 65  |. By  Dave Lawre|
00000040  6e 63 65 0d 00 03 1d f4  20 46 6f 72 20 52 49 53  |nce..... For RIS|
00000050  43 20 4f 53 20 33 20 61  6e 64 20 61 62 6f 76 65  |C OS 3 and above|
00000060  0d 00 04 15 f4 20 28 43  29 20 41 75 67 75 73 74  |..... (C) August|
00000070  20 31 39 39 34 0d 00 05  05 3a 0d 00 06 0f de 20  | 1994....:..... |
00000080  63 6f 64 65 20 31 30 32  34 0d 00 07 15 73 70 3d  |code 1024....sp=|
00000090  31 33 3a 6c 72 3d 31 34  3a 70 63 3d 31 35 0d 00  |13:lr=14:pc=15..|
000000a0  08 13 6e 61 6d 65 24 3d  22 52 65 73 69 7a 65 72  |..name$="Resizer|
000000b0  22 0d 00 09 13 76 65 72  73 69 6f 6e 24 3d 22 30  |"....version$="0|
000000c0  2e 30 31 22 0d 00 0a 13  4f 70 65 6e 5f 57 69 6e  |.01"....Open_Win|
000000d0  64 6f 77 20 3d 20 32 0d  00 0b 04 0d 00 0c 1f f4  |dow = 2.........|
000000e0  20 53 74 61 63 6b 20 66  72 6f 6d 20 69 6e 20 66  | Stack from in f|
000000f0  69 6c 74 65 72 5f 63 6f  64 65 0d 00 0d 15 6d 6f  |ilter_code....mo|
00000100  75 73 65 5f 78 20 20 20  20 20 20 20 3d 20 30 0d  |use_x       = 0.|
00000110  00 0e 15 6d 6f 75 73 65  5f 79 20 20 20 20 20 20  |...mouse_y      |
00000120  20 3d 20 34 0d 00 0f 15  6d 6f 75 73 65 5f 62 75  | = 4....mouse_bu|
00000130  74 74 6f 6e 73 20 3d 20  38 0d 00 10 16 6d 6f 75  |ttons = 8....mou|
00000140  73 65 5f 77 69 6e 64 6f  77 20 20 3d 20 31 32 0d  |se_window  = 12.|
00000150  00 11 16 6d 6f 75 73 65  5f 69 63 6f 6e 20 20 20  |...mouse_icon   |
00000160  20 3d 20 31 36 0d 00 12  16 73 74 61 63 6b 65 64  | = 16....stacked|
00000170  5f 72 30 20 20 20 20 3d  20 32 30 0d 00 13 16 73  |_r0    = 20....s|
00000180  74 61 63 6b 65 64 5f 72  31 20 20 20 20 3d 20 32  |tacked_r1    = 2|
00000190  34 0d 00 14 04 0d 00 15  0e 53 65 6c 65 63 74 20  |4........Select |
000001a0  3d 20 31 0d 00 16 0e 4d  65 6e 75 20 20 20 3d 20  |= 1....Menu   = |
000001b0  32 0d 00 17 0e 41 64 6a  75 73 74 20 3d 20 34 0d  |2....Adjust = 4.|
000001c0  00 18 04 0d 00 19 21 e3  20 70 61 73 73 3d 34 20  |......!. pass=4 |
000001d0  b8 20 36 20 88 20 32 3a  50 25 3d 30 3a 4f 25 3d  |. 6 . 2:P%=0:O%=|
000001e0  63 6f 64 65 0d 00 1a 0d  5b 4f 50 54 20 70 61 73  |code....[OPT pas|
000001f0  73 0d 00 1b 04 0d 00 1c  1d 20 20 20 20 20 20 20  |s........       |
00000200  20 45 51 55 44 20 20 20  20 30 20 3b 20 65 6e 74  | EQUD    0 ; ent|
00000210  72 79 0d 00 1d 1e 20 20  20 20 20 20 20 20 45 51  |ry....        EQ|
00000220  55 44 20 20 20 20 69 6e  69 74 69 61 6c 69 73 65  |UD    initialise|
00000230  0d 00 1e 1c 20 20 20 20  20 20 20 20 45 51 55 44  |....        EQUD|
00000240  20 20 20 20 66 69 6e 61  6c 69 73 65 0d 00 1f 1f  |    finalise....|
00000250  20 20 20 20 20 20 20 20  45 51 55 44 20 20 20 20  |        EQUD    |
00000260  30 20 3b 20 73 65 72 76  69 63 65 0d 00 20 20 20  |0 ; service..   |
00000270  20 20 20 20 20 20 20 45  51 55 44 20 20 20 20 6d  |       EQUD    m|
00000280  6f 64 75 6c 65 5f 74 69  74 6c 65 0d 00 21 1f 20  |odule_title..!. |
00000290  20 20 20 20 20 20 20 45  51 55 44 20 20 20 20 6d  |       EQUD    m|
000002a0  6f 64 75 6c 65 5f 68 65  6c 70 0d 00 22 22 20 20  |odule_help..""  |
000002b0  20 20 20 20 20 20 45 51  55 44 20 20 20 20 30 20  |      EQUD    0 |
000002c0  3b 20 73 74 61 72 20 74  61 62 6c 65 0d 00 23 21  |; star table..#!|
000002d0  20 20 20 20 20 20 20 20  45 51 55 44 20 20 20 20  |        EQUD    |
000002e0  30 20 3b 20 53 57 49 20  63 68 75 6e 6b 0d 00 24  |0 ; SWI chunk..$|
000002f0  20 20 20 20 20 20 20 20  20 45 51 55 44 20 20 20  |         EQUD   |
00000300  20 30 20 3b 20 53 57 49  20 63 6f 64 65 0d 00 25  | 0 ; SWI code..%|
00000310  21 20 20 20 20 20 20 20  20 45 51 55 44 20 20 20  |!        EQUD   |
00000320  20 30 20 3b 20 53 57 49  20 74 61 62 6c 65 0d 00  | 0 ; SWI table..|
00000330  26 04 0d 00 27 10 2e 66  69 6c 74 65 72 5f 6e 61  |&...'..filter_na|
00000340  6d 65 0d 00 28 11 2e 6d  6f 64 75 6c 65 5f 74 69  |me..(..module_ti|
00000350  74 6c 65 0d 00 29 19 20  20 20 20 20 20 20 20 45  |tle..).        E|
00000360  51 55 53 20 20 20 20 6e  61 6d 65 24 0d 00 2a 15  |QUS    name$..*.|
00000370  20 20 20 20 20 20 20 20  45 51 55 42 20 20 20 20  |        EQUB    |
00000380  30 0d 00 2b 10 2e 6d 6f  64 75 6c 65 5f 68 65 6c  |0..+..module_hel|
00000390  70 0d 00 2c 19 20 20 20  20 20 20 20 20 45 51 55  |p..,.        EQU|
000003a0  53 20 20 20 20 6e 61 6d  65 24 0d 00 2d 15 20 20  |S    name$..-.  |
000003b0  20 20 20 20 20 20 45 51  55 42 20 20 20 20 39 0d  |      EQUB    9.|
000003c0  00 2e 15 20 20 20 20 20  20 20 20 45 51 55 42 20  |...        EQUB |
000003d0  20 20 20 39 0d 00 2f 1c  20 20 20 20 20 20 20 20  |   9../.        |
000003e0  45 51 55 53 20 20 20 20  76 65 72 73 69 6f 6e 24  |EQUS    version$|
000003f0  0d 00 30 2a 20 20 20 20  20 20 20 20 45 51 55 53  |..0*        EQUS|
00000400  20 20 20 20 22 20 28 31  38 20 41 75 67 20 31 39  |    " (18 Aug 19|
00000410  39 34 29 20 62 79 20 44  4c 22 0d 00 31 15 20 20  |94) by DL"..1.  |
00000420  20 20 20 20 20 20 45 51  55 42 20 20 20 20 30 0d  |      EQUB    0.|
00000430  00 32 11 20 20 20 20 20  20 20 20 41 4c 49 47 4e  |.2.        ALIGN|
00000440  0d 00 33 04 0d 00 34 04  0d 00 35 0f 2e 69 6e 69  |..3...4...5..ini|
00000450  74 69 61 6c 69 73 65 0d  00 36 0f 3b 3d 3d 3d 3d  |tialise..6.;====|
00000460  3d 3d 3d 3d 3d 3d 0d 00  37 23 20 20 20 20 20 20  |======..7#      |
00000470  20 20 53 54 4d 46 44 20  20 20 73 70 20 21 2c 7b  |  STMFD   sp !,{|
00000480  72 30 2d 72 33 2c 6c 72  7d 0d 00 38 04 0d 00 39  |r0-r3,lr}..8...9|
00000490  22 20 20 20 20 20 20 20  20 41 44 52 20 20 20 20  |"        ADR    |
000004a0  20 72 30 2c 66 69 6c 74  65 72 5f 6e 61 6d 65 0d  | r0,filter_name.|
000004b0  00 3a 22 20 20 20 20 20  20 20 20 41 44 52 20 20  |.:"        ADR  |
000004c0  20 20 20 72 31 2c 66 69  6c 74 65 72 5f 63 6f 64  |   r1,filter_cod|
000004d0  65 0d 00 3b 1a 20 20 20  20 20 20 20 20 4d 4f 56  |e..;.        MOV|
000004e0  20 20 20 20 20 72 32 2c  72 31 32 0d 00 3c 19 20  |     r2,r12..<. |
000004f0  20 20 20 20 20 20 20 4d  4f 56 20 20 20 20 20 72  |       MOV     r|
00000500  33 2c 23 30 0d 00 3d 22  20 20 20 20 20 20 20 20  |3,#0..="        |
00000510  4c 44 52 20 20 20 20 20  72 34 2c 66 69 6c 74 65  |LDR     r4,filte|
00000520  72 5f 6d 61 73 6b 0d 00  3e 30 20 20 20 20 20 20  |r_mask..>0      |
00000530  20 20 53 57 49 20 20 20  20 20 22 58 46 69 6c 74  |  SWI     "XFilt|
00000540  65 72 5f 52 65 67 69 73  74 65 72 50 6f 73 74 46  |er_RegisterPostF|
00000550  69 6c 74 65 72 22 0d 00  3f 04 0d 00 40 19 20 20  |ilter"..?...@.  |
00000560  20 20 20 20 20 20 4d 4f  56 20 20 20 20 20 72 30  |      MOV     r0|
00000570  2c 23 30 0d 00 41 1f 20  20 20 20 20 20 20 20 53  |,#0..A.        S|
00000580  54 52 20 20 20 20 20 72  30 2c 64 72 61 67 67 69  |TR     r0,draggi|
00000590  6e 67 0d 00 42 04 0d 00  43 23 20 20 20 20 20 20  |ng..B...C#      |
000005a0  20 20 4c 44 4d 46 44 20  20 20 73 70 20 21 2c 7b  |  LDMFD   sp !,{|
000005b0  72 30 2d 72 33 2c 70 63  7d 0d 00 44 04 0d 00 45  |r0-r3,pc}..D...E|
000005c0  0d 2e 66 69 6e 61 6c 69  73 65 0d 00 46 0d 3b 3d  |..finalise..F.;=|
000005d0  3d 3d 3d 3d 3d 3d 3d 0d  00 47 23 20 20 20 20 20  |=======..G#     |
000005e0  20 20 20 53 54 4d 46 44  20 20 20 73 70 20 21 2c  |   STMFD   sp !,|
000005f0  7b 72 30 2d 72 33 2c 6c  72 7d 0d 00 48 04 0d 00  |{r0-r3,lr}..H...|
00000600  49 22 20 20 20 20 20 20  20 20 41 44 52 20 20 20  |I"        ADR   |
00000610  20 20 72 30 2c 66 69 6c  74 65 72 5f 6e 61 6d 65  |  r0,filter_name|
00000620  0d 00 4a 22 20 20 20 20  20 20 20 20 41 44 52 20  |..J"        ADR |
00000630  20 20 20 20 72 31 2c 66  69 6c 74 65 72 5f 63 6f  |    r1,filter_co|
00000640  64 65 0d 00 4b 1a 20 20  20 20 20 20 20 20 4d 4f  |de..K.        MO|
00000650  56 20 20 20 20 20 72 32  2c 72 31 32 0d 00 4c 19  |V     r2,r12..L.|
00000660  20 20 20 20 20 20 20 20  4d 4f 56 20 20 20 20 20  |        MOV     |
00000670  72 33 2c 23 30 0d 00 4d  22 20 20 20 20 20 20 20  |r3,#0..M"       |
00000680  20 4c 44 52 20 20 20 20  20 72 34 2c 66 69 6c 74  | LDR     r4,filt|
00000690  65 72 5f 6d 61 73 6b 0d  00 4e 32 20 20 20 20 20  |er_mask..N2     |
000006a0  20 20 20 53 57 49 20 20  20 20 20 22 58 46 69 6c  |   SWI     "XFil|
000006b0  74 65 72 5f 44 65 52 65  67 69 73 74 65 72 50 6f  |ter_DeRegisterPo|
000006c0  73 74 46 69 6c 74 65 72  22 0d 00 4f 04 0d 00 50  |stFilter"..O...P|
000006d0  23 20 20 20 20 20 20 20  20 4c 44 4d 46 44 20 20  |#        LDMFD  |
000006e0  20 73 70 20 21 2c 7b 72  30 2d 72 33 2c 70 63 7d  | sp !,{r0-r3,pc}|
000006f0  0d 00 51 04 0d 00 52 10  2e 66 69 6c 74 65 72 5f  |..Q...R..filter_|
00000700  6d 61 73 6b 0d 00 53 2a  20 20 20 20 20 20 20 20  |mask..S*        |
00000710  45 51 55 44 20 20 20 20  20 2d 31 20 82 20 28 31  |EQUD     -1 . (1|
00000720  3c 3c 4f 70 65 6e 5f 57  69 6e 64 6f 77 29 0d 00  |<<Open_Window)..|
00000730  54 04 0d 00 55 10 2e 66  69 6c 74 65 72 5f 63 6f  |T...U..filter_co|
00000740  64 65 0d 00 56 10 3b 3d  3d 3d 3d 3d 3d 3d 3d 3d  |de..V.;=========|
00000750  3d 3d 0d 00 57 23 20 20  20 20 20 20 20 20 53 54  |==..W#        ST|
00000760  4d 46 44 20 20 20 73 70  20 21 2c 7b 72 30 2d 72  |MFD   sp !,{r0-r|
00000770  32 2c 6c 72 7d 0d 00 58  1e 20 20 20 20 20 20 20  |2,lr}..X.       |
00000780  20 53 55 42 20 20 20 20  20 73 70 2c 73 70 2c 23  | SUB     sp,sp,#|
00000790  34 2a 35 0d 00 59 04 0d  00 5a 19 20 20 20 20 20  |4*5..Y...Z.     |
000007a0  20 20 20 4d 4f 56 20 20  20 20 20 72 31 2c 73 70  |   MOV     r1,sp|
000007b0  0d 00 5b 2a 20 20 20 20  20 20 20 20 53 57 49 20  |..[*        SWI |
000007c0  20 20 20 20 22 58 57 69  6d 70 5f 47 65 74 50 6f  |    "XWimp_GetPo|
000007d0  69 6e 74 65 72 49 6e 66  6f 22 0d 00 5c 2a 20 20  |interInfo"..\*  |
000007e0  20 20 20 20 20 20 4c 44  52 20 20 20 20 20 72 32  |      LDR     r2|
000007f0  2c 5b 73 70 2c 23 6d 6f  75 73 65 5f 62 75 74 74  |,[sp,#mouse_butt|
00000800  6f 6e 73 5d 0d 00 5d 04  0d 00 5e 1f 20 20 20 20  |ons]..]...^.    |
00000810  20 20 20 20 4c 44 52 20  20 20 20 20 72 30 2c 64  |    LDR     r0,d|
00000820  72 61 67 67 69 6e 67 0d  00 5f 19 20 20 20 20 20  |ragging.._.     |
00000830  20 20 20 43 4d 50 20 20  20 20 20 72 30 2c 23 30  |   CMP     r0,#0|
00000840  0d 00 60 1b 20 20 20 20  20 20 20 20 42 4e 45 20  |..`.        BNE |
00000850  20 20 20 20 64 6f 5f 64  72 61 67 0d 00 61 04 0d  |    do_drag..a..|
00000860  00 62 27 20 20 20 20 20  20 20 20 4c 44 52 20 20  |.b'        LDR  |
00000870  20 20 20 72 30 2c 5b 73  70 2c 23 6d 6f 75 73 65  |   r0,[sp,#mouse|
00000880  5f 69 63 6f 6e 5d 0d 00  63 1c 20 20 20 20 20 20  |_icon]..c.      |
00000890  20 20 43 4d 4e 20 20 20  20 20 72 30 2c 23 2d 20  |  CMN     r0,#- |
000008a0  2d 34 0d 00 64 27 20 20  20 20 20 20 20 20 43 4d  |-4..d'        CM|
000008b0  50 45 51 20 20 20 72 32  2c 23 53 65 6c 65 63 74  |PEQ   r2,#Select|
000008c0  20 2b 20 41 64 6a 75 73  74 0d 00 65 18 20 20 20  | + Adjust..e.   |
000008d0  20 20 20 20 20 42 4e 45  20 20 20 20 20 65 78 69  |     BNE     exi|
000008e0  74 0d 00 66 04 0d 00 67  19 20 20 20 20 20 20 20  |t..f...g.       |
000008f0  20 4d 4f 56 20 20 20 20  20 72 30 2c 23 31 0d 00  | MOV     r0,#1..|
00000900  68 1f 20 20 20 20 20 20  20 20 53 54 52 20 20 20  |h.        STR   |
00000910  20 20 72 30 2c 64 72 61  67 67 69 6e 67 0d 00 69  |  r0,dragging..i|
00000920  27 20 20 20 20 20 20 20  20 4c 44 52 20 20 20 20  |'        LDR    |
00000930  20 72 31 2c 5b 73 70 2c  23 73 74 61 63 6b 65 64  | r1,[sp,#stacked|
00000940  5f 72 31 5d 0d 00 6a 2a  20 20 20 20 20 20 20 20  |_r1]..j*        |
00000950  53 57 49 20 20 20 20 20  22 58 57 69 6d 70 5f 47  |SWI     "XWimp_G|
00000960  65 74 57 69 6e 64 6f 77  53 74 61 74 65 22 0d 00  |etWindowState"..|
00000970  6b 1f 20 20 20 20 20 20  20 20 4c 44 52 20 20 20  |k.        LDR   |
00000980  20 20 6c 72 2c 5b 72 31  2c 23 31 32 5d 0d 00 6c  |  lr,[r1,#12]..l|
00000990  1b 20 20 20 20 20 20 20  20 53 54 52 20 20 20 20  |.        STR    |
000009a0  20 6c 72 2c 78 6d 61 78  0d 00 6d 1e 20 20 20 20  | lr,xmax..m.    |
000009b0  20 20 20 20 4c 44 52 20  20 20 20 20 6c 72 2c 5b  |    LDR     lr,[|
000009c0  72 31 2c 23 38 5d 0d 00  6e 1b 20 20 20 20 20 20  |r1,#8]..n.      |
000009d0  20 20 53 54 52 20 20 20  20 20 6c 72 2c 79 6d 69  |  STR     lr,ymi|
000009e0  6e 0d 00 6f 18 20 20 20  20 20 20 20 20 42 20 20  |n..o.        B  |
000009f0  20 20 20 20 20 65 78 69  74 0d 00 70 04 0d 00 71  |     exit..p...q|
00000a00  0c 2e 64 6f 5f 64 72 61  67 0d 00 72 27 20 20 20  |..do_drag..r'   |
00000a10  20 20 20 20 20 4c 44 52  20 20 20 20 20 72 31 2c  |     LDR     r1,|
00000a20  5b 73 70 2c 23 73 74 61  63 6b 65 64 5f 72 31 5d  |[sp,#stacked_r1]|
00000a30  0d 00 73 1b 20 20 20 20  20 20 20 20 4c 44 52 20  |..s.        LDR |
00000a40  20 20 20 20 6c 72 2c 78  6d 61 78 0d 00 74 1f 20  |    lr,xmax..t. |
00000a50  20 20 20 20 20 20 20 53  54 52 20 20 20 20 20 6c  |       STR     l|
00000a60  72 2c 5b 72 31 2c 23 31  32 5d 0d 00 75 1b 20 20  |r,[r1,#12]..u.  |
00000a70  20 20 20 20 20 20 4c 44  52 20 20 20 20 20 6c 72  |      LDR     lr|
00000a80  2c 79 6d 69 6e 0d 00 76  1e 20 20 20 20 20 20 20  |,ymin..v.       |
00000a90  20 53 54 52 20 20 20 20  20 6c 72 2c 5b 72 31 2c  | STR     lr,[r1,|
00000aa0  23 38 5d 0d 00 77 04 0d  00 78 19 20 20 20 20 20  |#8]..w...x.     |
00000ab0  20 20 20 43 4d 50 20 20  20 20 20 72 32 2c 23 30  |   CMP     r2,#0|
00000ac0  0d 00 79 16 20 20 20 20  20 20 20 20 ec 51 20 20  |..y.        .Q  |
00000ad0  20 6c 72 2c 23 30 0d 00  7a 1f 20 20 20 20 20 20  | lr,#0..z.      |
00000ae0  20 20 53 54 52 45 51 20  20 20 6c 72 2c 64 72 61  |  STREQ   lr,dra|
00000af0  67 67 69 6e 67 0d 00 7b  04 0d 00 7c 1e 2e 65 78  |gging..{...|..ex|
00000b00  69 74 20 20 20 41 44 44  20 20 20 20 20 73 70 2c  |it   ADD     sp,|
00000b10  73 70 2c 23 34 2a 35 0d  00 7d 24 20 20 20 20 20  |sp,#4*5..}$     |
00000b20  20 20 20 4c 44 4d 46 44  20 20 20 73 70 20 21 2c  |   LDMFD   sp !,|
00000b30  7b 72 30 2d 72 32 2c 70  63 7d 5e 0d 00 7e 04 0d  |{r0-r2,pc}^..~..|
00000b40  00 7f 0d 2e 64 72 61 67  67 69 6e 67 0d 00 80 15  |....dragging....|
00000b50  20 20 20 20 20 20 20 20  45 51 55 44 20 20 20 20  |        EQUD    |
00000b60  30 0d 00 81 09 2e 78 6d  61 78 0d 00 82 15 20 20  |0.....xmax....  |
00000b70  20 20 20 20 20 20 45 51  55 44 20 20 20 20 30 0d  |      EQUD    0.|
00000b80  00 83 09 2e 79 6d 69 6e  0d 00 84 15 20 20 20 20  |....ymin....    |
00000b90  20 20 20 20 45 51 55 44  20 20 20 20 30 0d 00 85  |    EQUD    0...|
00000ba0  06 5d ed 0d 00 86 27 c8  99 20 22 4f 53 5f 46 69  |.]....'.. "OS_Fi|
00000bb0  6c 65 22 2c 31 30 2c 6e  61 6d 65 24 2c 26 46 46  |le",10,name$,&FF|
00000bc0  41 2c 2c 63 6f 64 65 2c  4f 25 0d ff              |A,,code,O%..|
00000bcc