home *** CD-ROM | disk | FTP | other *** search
- ; system functions Asm Assembler
-
-
- AREA SYSFUNC,CODE
- EXPORT getvarval
- EXPORT ftype
- EXPORT exist
- EXPORT iflater
-
-
- buf:
- RESB 256
-
- ; get string value of a system variable
- getvarval:
- stmfd sp!,{r4,r5,link}
- adr r1,buf
- mov r5,r0
- mvn r2,#0
- mov r3,#0
- mov r4,#3 ; convert to string
- swi &20023 ; XOS_ReadVarVal
- cmp r2,#0 ; does variable exist
- moveq r0,r2 ; if not return null string pointer
- ldmeqfd sp!,{r4,r5,pc}
- mov r0,r5
- mov r2,#256
- mov r3,#0
- mov r4,#3
- swi &20023
- mov r0,r1
- mov r1,#0
- strb r1,[r0,r2]
- ldmfd sp!,{r4,r5,pc}
-
- ; get filetype as a number
- ftype:
- stmfd sp!,{r4-r6,link}
- mov r1,r0
- mov r0,#23
- swi 8 ; OS_File
- mov r0,r6
- ldmfd sp!,{r4-r6,pc}
-
- ; get existence of file
- exist:
- stmfd sp!,{r4-r6,link}
- mov r1,r0
- mov r0,#23
- swi 8 ; OS_File
- ldmfd sp!,{r4-r6,pc}
-
- ; compare filestamps
- iflater:
- stmfd sp!,{r4-r9,link}
- mov r7,r1
- mov r1,r0
- mov r0,#23
- swi 8 ; OS_File
- cmp r0,#1
- mvnne r0,#0
- bne error
- mov r8,r2
- mov r9,r3
- mov r1,r7
- mov r0,#23
- swi 8 ; OS_File
- cmp r0,#1
- mvnne r0,#0
- bne error
- cmp r8,r2
- movcc r0,#0
- movgt r0,#1
- ldmnefd sp!,{r4-r9,pc}
- cmp r9,r3
- movcc r0,#0
- movcs r0,#1
- error:
- ldmfd sp!,{r4-r9,pc} ; exit with -1 either arg not a file
-
-
-