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
 |