which included commits to RCS files with non-trunk default branches. git-svn-id: svn://10.65.10.50/trunk@5403 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			282 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			ArmAsm
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			282 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			ArmAsm
		
	
	
		
			Executable File
		
	
	
	
	
; SWI veneers used by Zip/Unzip
 | 
						|
;
 | 
						|
 | 
						|
r0		RN	0
 | 
						|
r1		RN	1
 | 
						|
r2		RN	2
 | 
						|
r3		RN	3
 | 
						|
r4		RN	4
 | 
						|
r5		RN	5
 | 
						|
r6		RN	6
 | 
						|
r7		RN	7
 | 
						|
r8		RN	8
 | 
						|
r9		RN	9
 | 
						|
r10		RN	10
 | 
						|
r11		RN	11
 | 
						|
r12		RN	12
 | 
						|
sp		RN	13
 | 
						|
lr		RN	14
 | 
						|
pc		RN	15
 | 
						|
 | 
						|
sl		RN	10
 | 
						|
fp		RN	11
 | 
						|
ip		RN	12
 | 
						|
 | 
						|
 | 
						|
XOS_Bit				EQU &020000
 | 
						|
 | 
						|
OS_GBPB				EQU &00000C
 | 
						|
OS_File				EQU &000008
 | 
						|
OS_FSControl			EQU &000029
 | 
						|
OS_CLI				EQU &000005
 | 
						|
OS_ReadC			EQU &000004
 | 
						|
OS_ReadVarVal			EQU &000023
 | 
						|
DDEUtils_Prefix			EQU &042580
 | 
						|
Territory_ReadCurrentTimeZone	EQU &043048
 | 
						|
 | 
						|
	MACRO
 | 
						|
	STARTCODE $name
 | 
						|
	EXPORT $name
 | 
						|
$name
 | 
						|
	MEND
 | 
						|
 | 
						|
 | 
						|
		AREA	|C$$code|, CODE, READONLY
 | 
						|
 | 
						|
; os_error *SWI_OS_FSControl_26(char *source, char *dest, int actionmask);
 | 
						|
 | 
						|
	STARTCODE SWI_OS_FSControl_26
 | 
						|
 | 
						|
	MOV	ip, lr
 | 
						|
 | 
						|
	MOV	r3, r2
 | 
						|
	MOV	r2, r1
 | 
						|
	MOV	r1, r0
 | 
						|
	MOV	r0, #26
 | 
						|
 | 
						|
	SWI	OS_FSControl + XOS_Bit
 | 
						|
 | 
						|
	MOVVC	r0, #0
 | 
						|
 | 
						|
	MOVS	pc, ip
 | 
						|
 | 
						|
 | 
						|
; os_error *SWI_OS_FSControl_27(char *filename, int actionmask);
 | 
						|
 | 
						|
	STARTCODE SWI_OS_FSControl_27
 | 
						|
 | 
						|
	MOV	ip, lr
 | 
						|
 | 
						|
	MOV	r3, r1
 | 
						|
	MOV	r1, r0
 | 
						|
	MOV	r0, #27
 | 
						|
 | 
						|
	SWI	OS_FSControl + XOS_Bit
 | 
						|
 | 
						|
	MOVVC	r0, #0
 | 
						|
 | 
						|
	MOVS	pc, ip
 | 
						|
 | 
						|
 | 
						|
; os_error *SWI_OS_GBPB_9(char *dirname, void *buf, int *number,
 | 
						|
;			  int *offset, int size, char *match);
 | 
						|
 | 
						|
	STARTCODE SWI_OS_GBPB_9
 | 
						|
 | 
						|
	MOV	ip, sp
 | 
						|
	STMFD	sp!, {r2-r6,lr}
 | 
						|
	LDMIA	ip, {r5,r6}
 | 
						|
	LDR	r4, [r3]
 | 
						|
	LDR	r3, [r2]
 | 
						|
	MOV	r2, r1
 | 
						|
	MOV	r1, r0
 | 
						|
	MOV	r0, #9
 | 
						|
	SWI	OS_GBPB + XOS_Bit
 | 
						|
	LDMVSFD sp!, {r2-r6,pc}^
 | 
						|
	MOV	r0, #0
 | 
						|
	LDMFD	sp, {r5,r6}
 | 
						|
	STR	r3, [r5]
 | 
						|
	STR	r4, [r6]
 | 
						|
	LDMFD	sp!, {r2-r6,pc}^
 | 
						|
 | 
						|
 | 
						|
; os_error *SWI_OS_File_1(char *filename, int loadaddr, int execaddr, int attrib);
 | 
						|
 | 
						|
	STARTCODE SWI_OS_File_1
 | 
						|
 | 
						|
	STMFD	sp!, {r5,lr}
 | 
						|
	MOV	r5, r3
 | 
						|
	MOV	r3, r2
 | 
						|
	MOV	r2, r1
 | 
						|
	MOV	r1, r0
 | 
						|
	MOV	r0, #1
 | 
						|
	SWI	OS_File + XOS_Bit
 | 
						|
	MOVVC	r0, #0
 | 
						|
	LDMFD	sp!, {r5,pc}^
 | 
						|
 | 
						|
 | 
						|
 | 
						|
; os_error *SWI_OS_File_5(char *filename, int *objtype, int *loadaddr,
 | 
						|
;			  int *execaddr, int *length, int *attrib);
 | 
						|
 | 
						|
	STARTCODE SWI_OS_File_5
 | 
						|
 | 
						|
	STMFD	sp!, {r1-r5,lr}
 | 
						|
	MOV	r1, r0
 | 
						|
	MOV	r0, #5
 | 
						|
	SWI	OS_File + XOS_Bit
 | 
						|
	LDMVSFD sp!, {r1-r5,pc}^
 | 
						|
	LDR	lr, [sp]
 | 
						|
	TEQ	lr, #0
 | 
						|
	STRNE	r0, [lr]
 | 
						|
	LDR	lr, [sp, #4]
 | 
						|
	TEQ	lr ,#0
 | 
						|
	STRNE	r2, [lr]
 | 
						|
	LDR	lr, [sp, #8]
 | 
						|
	TEQ	lr, #0
 | 
						|
	STRNE	r3, [lr]
 | 
						|
	LDR	lr, [sp ,#24]
 | 
						|
	TEQ	lr, #0
 | 
						|
	STRNE	r4, [lr]
 | 
						|
	LDR	lr, [sp ,#28]
 | 
						|
	TEQ	lr, #0
 | 
						|
	STRNE	r5, [lr]
 | 
						|
	MOV	r0, #0
 | 
						|
	LDMFD	sp!, {r1-r5,pc}^
 | 
						|
 | 
						|
 | 
						|
; os_error *SWI_OS_File_6(char *filename);
 | 
						|
 | 
						|
	STARTCODE SWI_OS_File_6
 | 
						|
 | 
						|
	STMFD	sp!, {r4-r5,lr}
 | 
						|
	MOV	r1, r0
 | 
						|
	MOV	r0, #6
 | 
						|
	SWI	OS_File + XOS_Bit
 | 
						|
	MOVVC	r0, #0
 | 
						|
	LDMFD	sp!, {r4-r5,pc}^
 | 
						|
 | 
						|
 | 
						|
; os_error *SWI_OS_File_7(char *filename, int loadaddr, int execaddr, int size);
 | 
						|
 | 
						|
	STARTCODE SWI_OS_File_7
 | 
						|
 | 
						|
	STMFD	sp!, {r4-r5,lr}
 | 
						|
	MOV	r5, r3
 | 
						|
	MOV	r4, #0
 | 
						|
	MOV	r3, r2
 | 
						|
	MOV	r2, r1
 | 
						|
	MOV	r1, r0
 | 
						|
	MOV	r0, #7
 | 
						|
	SWI	OS_File + XOS_Bit
 | 
						|
	MOVVC	r0, #0
 | 
						|
	LDMFD	sp!, {r4-r5,pc}^
 | 
						|
 | 
						|
 | 
						|
; os_error *SWI_OS_File_8(char *dirname);
 | 
						|
 | 
						|
	STARTCODE SWI_OS_File_8
 | 
						|
 | 
						|
	STMFD	sp!, {r4,lr}
 | 
						|
	MOV	r1, r0
 | 
						|
	MOV	r4, #0
 | 
						|
	MOV	r0, #8
 | 
						|
	SWI	OS_File + XOS_Bit
 | 
						|
	MOVVC	r0, #0
 | 
						|
	LDMFD	sp!, {r4,pc}^
 | 
						|
 | 
						|
 | 
						|
; os_error *SWI_OS_CLI(char *cmd);
 | 
						|
 | 
						|
	STARTCODE SWI_OS_CLI
 | 
						|
 | 
						|
	MOV	ip, lr
 | 
						|
	SWI	OS_CLI + XOS_Bit
 | 
						|
	MOVVC	r0, #0
 | 
						|
	MOVS	pc, ip
 | 
						|
 | 
						|
 | 
						|
; int SWI_OS_ReadC(void);
 | 
						|
 | 
						|
	STARTCODE SWI_OS_ReadC
 | 
						|
 | 
						|
	MOV	ip, lr
 | 
						|
	SWI	OS_ReadC + XOS_Bit
 | 
						|
	MOVS	pc, ip
 | 
						|
 | 
						|
 | 
						|
; os_error *SWI_OS_ReadVarVal(char *var, char *buf, int len, int *bytesused);
 | 
						|
 | 
						|
	STARTCODE SWI_OS_ReadVarVal
 | 
						|
 | 
						|
	STMFD	sp!, {r4,lr}
 | 
						|
	MOV	ip, r3
 | 
						|
	MOV	r3, #0
 | 
						|
	MOV	r4, #0
 | 
						|
	SWI	OS_ReadVarVal + XOS_Bit
 | 
						|
	LDMVSFD	sp!, {r4,pc}^
 | 
						|
	TEQ	ip, #0
 | 
						|
	STRNE	r2, [ip]
 | 
						|
	MOV	r0, #0
 | 
						|
	LDMFD	sp!, {r4,pc}^
 | 
						|
 | 
						|
 | 
						|
; os_error *SWI_OS_FSControl_54(char *buffer, int dir, char *fsname, int *size);
 | 
						|
 | 
						|
	STARTCODE SWI_OS_FSControl_54
 | 
						|
 | 
						|
	STMFD	sp!, {r3-r6,lr}
 | 
						|
	LDR	r5, [r3]
 | 
						|
	MOV	r3, r2
 | 
						|
	MOV	r2, r1
 | 
						|
	MOV	r1, r0
 | 
						|
	MOV	r0, #54
 | 
						|
	SWI	OS_FSControl + XOS_Bit
 | 
						|
	LDMVSFD sp!, {r3-r6,pc}^
 | 
						|
	MOV	r0, #0
 | 
						|
	LDMFD	sp!, {r3}
 | 
						|
	STR	r5, [r3]
 | 
						|
	LDMFD	sp!, {r4-r6,pc}^
 | 
						|
 | 
						|
 | 
						|
; os_error *SWI_OS_FSControl_37(char *pathname, char *buffer, int *size);
 | 
						|
 | 
						|
	STARTCODE SWI_OS_FSControl_37
 | 
						|
 | 
						|
	STMFD	sp!, {r2,r3-r5,lr}
 | 
						|
	LDR	r5, [r2]
 | 
						|
	MOV	r3, #0
 | 
						|
	MOV	r4, #0
 | 
						|
	MOV	r2, r1
 | 
						|
	MOV	r1, r0
 | 
						|
	MOV	r0, #37
 | 
						|
	SWI	OS_FSControl + XOS_Bit
 | 
						|
	LDMVSFD sp!, {r2,r3-r5,pc}^
 | 
						|
	MOV	r0, #0
 | 
						|
	LDMFD	sp!, {r2}
 | 
						|
	STR	r5, [r2]
 | 
						|
	LDMFD	sp!, {r3-r5,pc}^
 | 
						|
 | 
						|
 | 
						|
; os_error *SWI_DDEUtils_Prefix(char *dir);
 | 
						|
 | 
						|
	STARTCODE SWI_DDEUtils_Prefix
 | 
						|
 | 
						|
	MOV	ip, lr
 | 
						|
	SWI	DDEUtils_Prefix + XOS_Bit
 | 
						|
	MOVVC	r0, #0
 | 
						|
	MOVS	pc, ip
 | 
						|
 | 
						|
; int SWI_Read_Timezone(void);
 | 
						|
 | 
						|
	STARTCODE SWI_Read_Timezone
 | 
						|
 | 
						|
	MOV	ip, lr
 | 
						|
	SWI	Territory_ReadCurrentTimeZone + XOS_Bit
 | 
						|
	MOVVC	r0, r1
 | 
						|
	MOVVS	r0, #0
 | 
						|
	MOVS	pc, ip
 | 
						|
 | 
						|
 | 
						|
	END
 |