Commit 0b08c342 authored by Steve Revill's avatar Steve Revill :soccer:
Browse files

Fixed so that it builds. There was a PC-relative LDR out-of-range error.

Version 0.91. Tagged as 'Pinboard-0_91'
......@@ -11,13 +11,13 @@
GBLS Module_HelpVersion
GBLS Module_ComponentName
GBLS Module_ComponentPath
Module_MajorVersion SETS "0.90"
Module_Version SETA 90
Module_MajorVersion SETS "0.91"
Module_Version SETA 91
Module_MinorVersion SETS ""
Module_Date SETS "14 Apr 2011"
Module_ApplicationDate SETS "14-Apr-11"
Module_Date SETS "15 Apr 2011"
Module_ApplicationDate SETS "15-Apr-11"
Module_ComponentName SETS "Pinboard"
Module_ComponentPath SETS "castle/RiscOS/Sources/Desktop/Pinboard"
Module_FullVersion SETS "0.90"
Module_HelpVersion SETS "0.90 (14 Apr 2011)"
Module_FullVersion SETS "0.91"
Module_HelpVersion SETS "0.91 (15 Apr 2011)"
END
/* (0.90)
/* (0.91)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
*
*/
#define Module_MajorVersion_CMHG 0.90
#define Module_MajorVersion_CMHG 0.91
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 14 Apr 2011
#define Module_Date_CMHG 15 Apr 2011
#define Module_MajorVersion "0.90"
#define Module_Version 90
#define Module_MajorVersion "0.91"
#define Module_Version 91
#define Module_MinorVersion ""
#define Module_Date "14 Apr 2011"
#define Module_Date "15 Apr 2011"
#define Module_ApplicationDate "14-Apr-11"
#define Module_ApplicationDate "15-Apr-11"
#define Module_ComponentName "Pinboard"
#define Module_ComponentPath "castle/RiscOS/Sources/Desktop/Pinboard"
#define Module_FullVersion "0.90"
#define Module_HelpVersion "0.90 (14 Apr 2011)"
#define Module_LibraryVersionInfo "0:90"
#define Module_FullVersion "0.91"
#define Module_HelpVersion "0.91 (15 Apr 2011)"
#define Module_LibraryVersionInfo "0:91"
......@@ -184,6 +184,63 @@ IconbarDataLoad
Pull "PC"
ToggleBackdrop ROUT
MOV R0,#User_Message_Acknowledge ; =19
LDR R3,[R1,#ms_myref] ;
LDR R2,[R1,#ms_taskhandle] ;
STR R3,[R1,#ms_yourref] ;
SWI XWimp_SendMessage ; acknowledge message
STR R2,[R1,#ms_taskhandle] ; restore as ack screwed it
LDR R0,[R1,#ms_size] ; get message size
LDR R2,[R1,#ms_data] ; get flags
CMP R0,#&18 ; is msg >= 24 bytes, ie flags present?
MOVLT R2,#0 ; if not, assume 0
ADD R1,R1,#128 ; use upper half of wimp data block
LDR R0,backdrop_handle ; get window handle of backdrop
STR R0,[R1,#u_handle] ; pop window handle in block
SWI XWimp_GetWindowState ; get state of backdrop
LDR R14,[R1,#u_bhandle] ; get handle to open behind
CMP R14,#-1 ; is it -1, ie backdrop at front?
MOVNE R14,#-2 ; if not, pretend it's at back
AND R2,R2,#3 ; isolate bottom two bits of flags
ADD R2,R2,#1 ; convert flags to something that's
AND R2,R2,#3 ; easier to use (0,1,2,3 -> 1,2,3,0)
CMP R2,#1 ;
EOREQ R14,R14,#1 ; toggle -2 <-> -1
RSBHI R14,R2,#1 ; convert %10 to -1, %11 to -2
BLO %FT01 ; just notify, skip code to move backdrop
CMP R14,#-1 ; is backdrop to be moved to front?
LDR R0,[R1,#u_wflags] ; get flags for backdrop window
BICEQ R0,R0,#wf_backwindow ; if to front, clear background stack bit
ORRNE R0,R0,#wf_backwindow ; if to back, set background stack bit
STR R0,[R1,#u_wflags] ; write flags for backdrop window back
STR R14,[R1,#u_bhandle] ; write handle to open behind back
LDR R2,taskidentifier ; magic word "TASK"
MOV R3,#-1 ; -1 =>
MOV R4,#1 ; bit 0 set =>
SWI XWimp_OpenWindow ; open backdrop window in new position
01 SUB R1,R1,#128 ; reset to start of wimp data block
MOV R2,#&18 ; message size
RSB R3,R14,#0 ;
LDR R4,[R1,#ms_myref] ;
STR R2,[R1,#ms_size] ;
STR R3,[R1,#ms_data] ;
STR R4,[R1,#ms_yourref] ;
MOV R0,#User_Message ; =17
LDR R2,[R1,#ms_taskhandle] ;
SWI XWimp_SendMessage ;
Pull "PC"
FilerSelection ROUT
ADD r14,r1,#ms_data
......@@ -1130,61 +1187,4 @@ close_task
B %BT01
ToggleBackdrop ROUT
MOV R0,#User_Message_Acknowledge ; =19
LDR R3,[R1,#ms_myref] ;
LDR R2,[R1,#ms_taskhandle] ;
STR R3,[R1,#ms_yourref] ;
SWI XWimp_SendMessage ; acknowledge message
STR R2,[R1,#ms_taskhandle] ; restore as ack screwed it
LDR R0,[R1,#ms_size] ; get message size
LDR R2,[R1,#ms_data] ; get flags
CMP R0,#&18 ; is msg >= 24 bytes, ie flags present?
MOVLT R2,#0 ; if not, assume 0
ADD R1,R1,#128 ; use upper half of wimp data block
LDR R0,backdrop_handle ; get window handle of backdrop
STR R0,[R1,#u_handle] ; pop window handle in block
SWI XWimp_GetWindowState ; get state of backdrop
LDR R14,[R1,#u_bhandle] ; get handle to open behind
CMP R14,#-1 ; is it -1, ie backdrop at front?
MOVNE R14,#-2 ; if not, pretend it's at back
AND R2,R2,#3 ; isolate bottom two bits of flags
ADD R2,R2,#1 ; convert flags to something that's
AND R2,R2,#3 ; easier to use (0,1,2,3 -> 1,2,3,0)
CMP R2,#1 ;
EOREQ R14,R14,#1 ; toggle -2 <-> -1
RSBHI R14,R2,#1 ; convert %10 to -1, %11 to -2
BLO %FT01 ; just notify, skip code to move backdrop
CMP R14,#-1 ; is backdrop to be moved to front?
LDR R0,[R1,#u_wflags] ; get flags for backdrop window
BICEQ R0,R0,#wf_backwindow ; if to front, clear background stack bit
ORRNE R0,R0,#wf_backwindow ; if to back, set background stack bit
STR R0,[R1,#u_wflags] ; write flags for backdrop window back
STR R14,[R1,#u_bhandle] ; write handle to open behind back
LDR R2,taskidentifier ; magic word "TASK"
MOV R3,#-1 ; -1 =>
MOV R4,#1 ; bit 0 set =>
SWI XWimp_OpenWindow ; open backdrop window in new position
01 SUB R1,R1,#128 ; reset to start of wimp data block
MOV R2,#&18 ; message size
RSB R3,R14,#0 ;
LDR R4,[R1,#ms_myref] ;
STR R2,[R1,#ms_size] ;
STR R3,[R1,#ms_data] ;
STR R4,[R1,#ms_yourref] ;
MOV R0,#User_Message ; =17
LDR R2,[R1,#ms_taskhandle] ;
SWI XWimp_SendMessage ;
Pull "PC"
LNK Help.s
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment