home *** CD-ROM | disk | FTP | other *** search
- GET Desk.sh.FnNames
-
- AREA |C$code|, CODE, READONLY
-
-
- Desk_ASMacros_EXTERNALFUNCTION Desk_OSBuffer_InsertByte
- ; On entry, regs are: r0=osbuffer, r1=byte.
- ; For call to service, need: r0=0, r1=id, r2=byte, r12=pw.
- ; Could use r3 as a temporary and avoid stacking r4, but this way
- ; all of the routines are vaguely similar.
- STMFD sp!, { r4, lr}
- MOV r4, r0
-
- LDR r12, [r4, #8]
- MOV r2, r1
- LDR r1, [r4, #0]
- MOV r0, #0
-
- MOV lr, pc
- LDR pc, [r4, #4]
- MOVCC r0, #0
- MOVCS r0, #1
- LDMFD sp!, { r4, pc}^
-
-
- Desk_ASMacros_EXTERNALFUNCTION Desk_OSBuffer_InsertBlock
- ; On entry, regs are: r0=osbuffer, r1=data, r2=numbytes
- ; For call to service, need: r0=1, r1=id, r2=data, r3=numbytes, r12=pw.
- STMFD sp!, { r4, lr}
- MOV r4, r0
-
- LDR r12, [r4, #8]
- MOV r3, r2
- MOV r2, r1
- LDR r1, [ r4, #0]
- MOV r0, #1
-
- MOV lr, pc
- LDR pc, [ r4, #4]
-
- MOV r0, r3
- LDMFD sp!, { r4, pc}^
-
-
- Desk_ASMacros_EXTERNALFUNCTION Desk_OSBuffer_RemoveByte
- ; On entry, regs are: r0=osbuffer
- ; For call to service, need: r0=2, r1=id, r12=pw
-
- STMFD sp!, { r4, lr}
- MOV r4, r0
-
- LDR r12, [r4, #8]
- LDR r1, [ r4, #0]
- MOV r0, #2
-
- MOV lr, pc
- LDR pc, [ r4, #4]
-
- MOVCC r0, r2
- MOVCS r0, #-1
- LDMFD sp!, { r4, pc}^
-
-
- Desk_ASMacros_EXTERNALFUNCTION Desk_OSBuffer_RemoveBlock
- ; On entry, regs are: r0=osbuffer, r1=buffer, r2=numbytes
- ; For call to service, need: r0=3, r1=id, r2=buffer, r3=numbytes
- STMFD sp!, { r4, lr}
- MOV r4, r0
-
- LDR r12, [r4, #8]
- MOV r3, r2
- MOV r2, r1
- LDR r1, [ r4, #0]
- MOV r0, #3
-
- MOV lr, pc
- LDR pc, [ r4, #4]
-
- MOV r0, r3
- LDMFD sp!, { r4, pc}^
-
-
-
- END
-