Commit 8e01d779 authored by Robert Sprowson's avatar Robert Sprowson
Browse files

Rework the 32 bitting to allow a 26 bit version to be made

Some of the changes were one way only, the use of some RETURN[V[C|S]] macros allows 26 bit version to be created.

Version 0.25. Tagged as 'Filter-0_25'
parent 2593b13f
;
; This file is automatically maintained by srccommit, do not edit manually.
; Last processed by srccommit version: 1.1.
;
GBLS Module_MajorVersion
GBLA Module_Version
GBLS Module_MinorVersion
GBLS Module_Date
GBLS Module_FullVersion
GBLS Module_ApplicationDate2
GBLS Module_ApplicationDate4
GBLS Module_ApplicationDate
GBLS Module_HelpVersion
GBLS Module_ComponentName
GBLS Module_ComponentPath
Module_MajorVersion SETS "0.24"
Module_Version SETA 24
Module_MajorVersion SETS "0.25"
Module_Version SETA 25
Module_MinorVersion SETS ""
Module_Date SETS "16 Mar 2001"
Module_ApplicationDate2 SETS "16-Mar-01"
Module_ApplicationDate4 SETS "16-Mar-2001"
Module_Date SETS "09 Jan 2012"
Module_ApplicationDate SETS "09-Jan-12"
Module_ComponentName SETS "Filter"
Module_ComponentPath SETS "RiscOS/Sources/Desktop/Filter"
Module_FullVersion SETS "0.24"
Module_HelpVersion SETS "0.24 (16 Mar 2001)"
Module_ComponentPath SETS "castle/RiscOS/Sources/Desktop/Filter"
Module_FullVersion SETS "0.25"
Module_HelpVersion SETS "0.25 (09 Jan 2012)"
END
/* (0.24)
/* (0.25)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
*
*/
#define Module_MajorVersion_CMHG 0.24
#define Module_MajorVersion_CMHG 0.25
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 16 Mar 2001
#define Module_Date_CMHG 09 Jan 2012
#define Module_MajorVersion "0.24"
#define Module_Version 24
#define Module_MajorVersion "0.25"
#define Module_Version 25
#define Module_MinorVersion ""
#define Module_Date "16 Mar 2001"
#define Module_Date "09 Jan 2012"
#define Module_ApplicationDate2 "16-Mar-01"
#define Module_ApplicationDate4 "16-Mar-2001"
#define Module_ApplicationDate "09-Jan-12"
#define Module_ComponentName "Filter"
#define Module_ComponentPath "RiscOS/Sources/Desktop/Filter"
#define Module_ComponentPath "castle/RiscOS/Sources/Desktop/Filter"
#define Module_FullVersion "0.24"
#define Module_HelpVersion "0.24 (16 Mar 2001)"
#define Module_FullVersion "0.25"
#define Module_HelpVersion "0.25 (09 Jan 2012)"
#define Module_LibraryVersionInfo "0:25"
......@@ -42,7 +42,11 @@ copy_filter_handler
LDR r1,copy_filters
copy_filter_exit
CMP r1,#0
Pull "r0-r2,r10,r11,PC",EQ ; End of list.
[ No26bitCode
Pull "r0-r2,r10,r11,PC",EQ ; End of list
|
Pull "r0-r2,r10,r11,PC",EQ,^ ; End of list
]
LDR r14,[r1,#next_ptr]
Push "r14"
......
......@@ -68,26 +68,17 @@ Module_BaseAddr
[ :LNOT: :DEF: standalone
GBLL standalone
standalone SETL false ; Build-in Messages file and i/f to ResourceFS
standalone SETL {FALSE} ; Build-in Messages file and i/f to ResourceFS
]
debug SETL false ; ONLY FALSE IF NO DEBUGGING
hostvdu SETL true ; True to send debug to tube
debug SETL {FALSE} ; ONLY FALSE IF NO DEBUGGING
hostvdu SETL {TRUE} ; True to send debug to tube
debugxx SETL false ; General debugging.
debugregister SETL false ; Register/de-register
debugxx SETL {FALSE} ; General debugging.
debugregister SETL {FALSE} ; Register/de-register
wsptr RN R12
; ----------------------------------------------------------------------------------------------------------------------
MACRO
$label ALIGNHASH $o,$m
[ ((@-$o):AND:($m-1))<>0
$label # $m-((@-$o):AND:($m-1))
|
$label # 0
]
MEND
; ----------------------------------------------------------------------------------------------------------------------
; Filter block structure
^ 0
......
......@@ -34,7 +34,9 @@ MySWIBase * Module_SWISystemBase + FilterSWI * Module_SWIChunkSize
|
DCD 0
]
[ :LNOT: No32bitCode
DCD ModuleFlags - Module_BaseAddr
]
; ----------------------------------------------------------------------------------------------------------------------
Title DCB "FilterManager",0
......@@ -58,7 +60,9 @@ mask_token DCB "Mask",0
all_token DCB "All",0
ALIGN
ModuleFlags DCD 1 ; 32-bit compatible module
[ :LNOT: No32bitCode
ModuleFlags DCD ModuleFlag_32bit
]
min_gap * 3
min_tab1 * 20
......@@ -586,8 +590,8 @@ Init
SWI XOS_AddCallBack ; install the call back to broadcast we are here message
MOVVC R0,#-1
STRVC R0,callbackpending ; and then setup a suitable flag to indicate we have a callback pending
SUBVSS r0, r0, r0 ; clear V
Pull "r0-r3,PC" ; No errors
Pull "r0-r3,LR" ; No errors
RETURNVC ; clear V
;;-----------------------------------------------------------------------------
;; When the CallBack is granted we then broadcast a service call so that
......@@ -595,7 +599,7 @@ Init
;;-----------------------------------------------------------------------------
servicecallback
Entry "R0-R1"
EntryS "R0-R1"
MOV R1,#0 ; the callback has been granted, so flag as no longer pending
STR R1,callbackpending
......@@ -604,18 +608,19 @@ servicecallback
MOV R1,#Service_FilterManagerInstalled
SWI XOS_ServiceCall ; broadcast the service
EXIT
EXITS
LTORG
; ----------------------------------------------------------------------------------------------------------------------
; Module service entry point
ServiceTable
ASSERT Service_ResourceFSStarting < Service_WimpRegisterFilters
DCD 0 ; flags word
DCD Service2 - Module_BaseAddr
[ standalone
DCD Service_ResourceFSStarting ; &60 ;
] ; must be in ascending order
DCD Service_WimpRegisterFilters ; &86 ;
DCD Service_ResourceFSStarting
]
DCD Service_WimpRegisterFilters
DCD 0 ; terminator
DCD ServiceTable - Module_BaseAddr
......@@ -754,8 +759,8 @@ RegisterFilters
DebugE register,"Can't register post-rect-filter "
Pull "r0-r2,PC"
Pull "r0-r2,LR"
RETURNVC
[ standalone
; ResourceFS has been reloaded - redeclare resource files
......@@ -763,21 +768,24 @@ RegisterFilters
; R3 -> workspace for ResourceFS module
serviceresourcefsstarting
Push "R0,LR"
Push "r0,LR"
ADRL R0,resourcefsfiles
MOV LR,PC ; LR -> return address
MOV PC,R2 ; R2 -> address to call
Pull "R0,PC"
NOP
Pull "r0,LR"
RETURN
]
; ----------------------------------------------------------------------------------------------------------------------
; RMKill'ing the module - Release filter handlers. Release linked lists of filters.
Die
Push "R0-R11,LR"
;
LDR r12, [r12]
CMP r12, #0
Pull "R0-R11,PC",EQ
RETURN EQ
Push "r0-r11,LR"
ADR r2, pre_filters
BL free_list ; Free list of pre filters
......@@ -840,9 +848,9 @@ Die
]
BL MsgTrans_CloseFile ; Make sure Messages file is closed.
CLRV VS ; clear V - don't refuse to die
Pull "R0-R11,PC"
Pull "R0-R11,LR"
RETURNVC ; clear V - don't refuse to die
; ----------------------------------------------------------------------------------------------------------------------
......
......@@ -46,7 +46,11 @@ post_icon_filter_handler
LDR r1,post_icon_filters
post_icon_filter_exit
CMP r1,#0
[ No26bitCode
Pull "r0-r2,PC",EQ ; End of list.
|
Pull "r0-r2,PC",EQ,^ ; End of list.
]
LDR r14,[r1,#next_ptr]
Push "r14"
......
......@@ -45,7 +45,11 @@ post_rect_filter_handler
LDR r1,post_rect_filters
post_rect_filter_exit
CMP r1,#0
[ No26bitCode
Pull "r0-r2,PC",EQ ; End of list.
|
Pull "r0-r2,PC",EQ,^ ; End of list.
]
LDR r14,[r1,#next_ptr]
Push "r14"
......
......@@ -50,8 +50,11 @@ post_filter_handler
CMPEQ R6,#-1
MOVEQ R0,#-1
CMP r3,#0
[ No26bitCode
Pull "r1-r7,PC",EQ,^ ; End of list.
|
Pull "r1-r7,PC",EQ ; End of list.
]
LDR r4,[r3,#next_ptr]
Push "r4"
......
......@@ -55,7 +55,11 @@ rect_filter_handler
LDR r1,rect_filters
rect_filter_exit
CMP r1,#0
[ No26bitCode
Pull "r0-r2,PC",EQ ; End of list.
|
Pull "r0-r2,PC",EQ,^ ; End of list.
]
LDR r14,[r1,#next_ptr]
Push "r14"
......
......@@ -86,7 +86,7 @@ Filter_SWInames
SWIFilter_RegisterPreFilter
Push "r0-r3"
Push "r0-r3"
DebugS register,"Register pre-filter",R0,80
Debug register,"Name, address, ws, task",R0,R1,R2,R3
......@@ -135,7 +135,8 @@ SWIFilter_RegisterPreFilter
; Exit to caller ; Preserves caller's flags.
Pull "r0-r3,PC" ; V will be clear
Pull "r0-r3,LR" ; V will be clear
RETURNVC
; Error exit, freeing claimed block
......@@ -168,7 +169,7 @@ SWIFilter_RegisterPreFilter
SWIFilter_RegisterPostFilter
Push "r0-r4"
Push "r0-r4"
DebugS register,"Register post-filter",R0,80
Debug register,"Name, address, ws, task",R0,R1,R2,R3
......@@ -220,7 +221,8 @@ SWIFilter_RegisterPostFilter
; Exit to caller ; Preserves caller's flags.
Pull "r0-r4,PC" ; V will be clear
Pull "r0-r4,LR" ; V will be clear
RETURNVC
; Error exit
......@@ -295,7 +297,7 @@ find_filter
SWIFilter_DeRegisterPreFilter
Push "r0-r4"
Push "r0-r4"
DebugS register,"De-register pre-filter",R0,80
Debug register,"Name, address, ws, task",R0,R1,R2,R3
......@@ -368,7 +370,7 @@ SWIFilter_DeRegisterPreFilter
SWIFilter_DeRegisterPostFilter
Push "r0-r4"
Push "r0-r4"
DebugS register,"De-register post-filter",R0,80
Debug register,"Name, address, ws, task",R0,R1,R2,R3
......@@ -444,7 +446,7 @@ ErrorBlock_UnknownFilter
SWIFilter_RegisterRectFilter
Push "r0-r3"
Push "r0-r3"
DebugS register,"Register rect-filter",R0,80
Debug register,"Name, address, ws, task",R0,R1,R2,R3
......@@ -493,7 +495,8 @@ SWIFilter_RegisterRectFilter
; Exit to caller ; Preserves caller's flags.
Pull "r0-r3,PC" ; V will be clear
Pull "r0-r3,LR" ; V will be clear
RETURNVC
; Error exit, freeing claimed block
......@@ -523,7 +526,7 @@ SWIFilter_RegisterRectFilter
SWIFilter_RegisterCopyFilter
Push "r0-r3"
Push "r0-r3"
DebugS register,"Register copy-filter",R0,80
Debug register,"Name, address, ws",R0,R1,R2
......@@ -569,7 +572,8 @@ SWIFilter_RegisterCopyFilter
; Exit to caller ; Preserves caller's flags.
Pull "r0-r3,PC"
Pull "r0-r3,LR"
RETURNVC
; Error exit, freeing claimed block
......@@ -600,7 +604,7 @@ SWIFilter_RegisterCopyFilter
SWIFilter_RegisterPostRectFilter
Push "r0-r3"
Push "r0-r3"
DebugS register,"Register post-rect-filter",R0,80
Debug register,"Name, address, ws, task",R0,R1,R2,R3
......@@ -649,7 +653,8 @@ SWIFilter_RegisterPostRectFilter
; Exit to caller ; Preserves caller's flags.
Pull "r0-r3,PC"
Pull "r0-r3,LR"
RETURNVC
; Error exit, freeing claimed block
......@@ -680,7 +685,7 @@ SWIFilter_RegisterPostRectFilter
SWIFilter_RegisterPostIconFilter
Push "r0-r3"
Push "r0-r3"
DebugS register,"Register post-icon-filter",R0,80
Debug register,"Name, address, ws, task",R0,R1,R2,R3
......@@ -729,7 +734,8 @@ SWIFilter_RegisterPostIconFilter
; Exit to caller ; Preserves caller's flags.
Pull "r0-r3,PC"
Pull "r0-r3,LR"
RETURNVC
; Error exit, freeing claimed block
......@@ -761,7 +767,7 @@ SWIFilter_RegisterPostIconFilter
SWIFilter_DeRegisterRectFilter
Push "r0-r4"
Push "r0-r4"
DebugS register,"De-register rect-filter",R0,80
Debug register,"Name, address, ws, task",R0,R1,R2,R3
......@@ -836,7 +842,7 @@ deregister_rect_for_fake_post_rect
SWIFilter_DeRegisterPostRectFilter
Push "r0-r4"
Push "r0-r4"
DebugS register,"De-register post-rect-filter",R0,80
Debug register,"Name, address, ws, task",R0,R1,R2,R3
......@@ -912,7 +918,7 @@ SWIFilter_DeRegisterPostRectFilter
SWIFilter_DeRegisterCopyFilter
Push "r0-r4"
Push "r0-r4"
DebugS register,"De-register copy-filter",R0,80
Debug register,"Name, address, ws",R0,R1,R2
......@@ -982,7 +988,7 @@ SWIFilter_DeRegisterCopyFilter
SWIFilter_DeRegisterPostIconFilter
Push "r0-r4"
Push "r0-r4"
DebugS register,"De-register post-icon-filter",R0,80
Debug register,"Name, address, ws",R0,R1,R2
......
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