Commit 9fb5cd56 authored by Kevin Bracey's avatar Kevin Bracey

New version (1.26) of UnSqueeze module that can cope with images squeezed with...

New version (1.26) of UnSqueeze module that can cope with images squeezed with Squeeze 5.08. The decompress code from 5.08 has an added

OS_SynchroniseCodeAreas that meant UnSqueeze didn't recognise it.

Version 0.02. Tagged as 'Patch-0_02'
parent bbe9d194
/* (0.01)
/* (0.02)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.68.
*
*/
#define Module_MajorVersion_CMHG 0.01
#define Module_MajorVersion_CMHG 0.02
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 15 Jan 2004
#define Module_MajorVersion "0.01"
#define Module_Version 1
#define Module_MajorVersion "0.02"
#define Module_Version 2
#define Module_MinorVersion ""
#define Module_Date "15 Jan 2004"
......@@ -18,6 +18,6 @@
#define Module_ComponentName "Patch"
#define Module_ComponentPath "RiscOS/Sources/Utilities/Patches/Patch"
#define Module_FullVersion "0.01"
#define Module_HelpVersion "0.01 (15 Jan 2004)"
#define Module_LibraryVersionInfo "0:1"
#define Module_FullVersion "0.02"
#define Module_HelpVersion "0.02 (15 Jan 2004)"
#define Module_LibraryVersionInfo "0:2"
......@@ -64,7 +64,7 @@ UnSqueeze_Title
DCB "UnSqueeze", 0
UnSqueeze_HelpStr
DCB "UnSqueeze", 9, "1.25 (09 Nov 2002)", 0
DCB "UnSqueeze", 9, "1.26 (15 Jan 2004)", 0
GET s.TokHelpSrc
......@@ -291,12 +291,9 @@ not_aif_image
evaluate_size
LDR r0, bl_decompress
TEQ pc, pc
TEQEQ pc, pc
LDRNE r1, =&03FFFFFC ; Addr bits shifted 2
ANDNE r0, r1, r0, LSL #2 ; Get addr bits and shift 2
BIC r0, r0, #&FF000000 ; Get offset (assume positive)
ADR r1, bl_zeroinit ; Add 8 for pipeline in BL
ADD r0, r1, r0 ; Add address where loaded
ADD r0, r1, r0, LSL #2 ; Add address where loaded
LDR r0, [r0, r10] ; Load XX words previous
ADD r0, r0, r8 ; Add YY words on
STR r0, output_length ; Save output file length
......@@ -330,9 +327,13 @@ decomp_slot_ok
; Put a NOP after the mode change, as the following code access R11
; which is a banked register.
[ No32bitCode
TEQ pc, #0
|
MRS r0, CPSR
BIC r0, r0, #&F
MSR CPSR_c, r0
]
; Put the return instruction and return address into our workspace, along
; with the user mode stack pointer which must also be preserved, and call
......@@ -455,9 +456,9 @@ patch_unsqueeze ROUT
BNE %BT02
SUBS r6,r6,#4
BNE %BT04
;matched whole sig, patch last word
;matched whole sig, patch next word
LDR r7,mov_pc_8000
STR r7,[r0,#-4]
STR r7,[r0,#0]
;now find the MOV PC,R8 and patch it
LDR r5,mov_pc_r8
ADD r1,r1,#UnsqSigSize-4
......@@ -481,8 +482,7 @@ UnsqSignature
STMIA R7!,{R0-R3}
CMP R5,R6
BLT UnsqSignature
MOV PC,R4
UnsqSigSize * 5*4
UnsqSigSize * 4*4
; --------------------------------------------------------------------------
......
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