home *** CD-ROM | disk | FTP | other *** search
-
- GET OS:Hdr.Filter
- AREA |ObjAsm$$code|, CODE, READONLY
- IMPORT |__RelocCode|
-
- EXPORT rm_init
- EXPORT rm_final
- IMPORT match
-
- GBLA no_messages
- no_messages SETA 0
- MACRO
- add_message $msg
- no_messages SETA no_messages+1
- message$no_messages = "$msg", 0
- ALIGN
- MEND
-
- GET Masked
-
- rm_title
- = "MaskThrowback", 0
- ALIGN
-
- rm_init
- stmfd r13!, {r14}
- bl |__RelocCode|
- adr r0, rm_title
- adr r1, filter
- mov r2, #0
- mov r3, #0
- swi XFilter_RegisterPostFilter
- mov r0, #0
- ldmfd r13!, {pc}
-
- rm_final
- stmfd r13!, {r14}
- adr r0, rm_title
- adr r1, filter
- mov r2, #0
- mov r3, #0
- swi XFilter_DeRegisterPostFilter
- mov r0, #0
- ldmfd r13!, {pc}
-
-
- message
- DCD &42583
-
- filter
- ; is this a wimp message?
- cmp r0, #17
- cmpne r0, #18
- movnes pc, r14
- stmfd r13!, {r3-r4, r14}
-
- ; is this a throwback message?
- ldr r3, [r1, #16]
- ldr r4, message
- cmp r3, r4
- ldmnefds r13!, {r3-r4, pc}
-
- ; check if the description matches
- WHILE no_messages>0
- stmfd r13!, {r0-r3}
- adr r0, message$no_messages
- add r1, r1, #28
- bl match
- cmp r0, #0
- ldmfd r13!, {r0-r3}
- movne r0, #-1
- no_messages SETA no_messages-1
- WEND
-
- ; ...and return
- ldmfds r13!, {r3-r4, pc}
-
- END
-