vxKernel/vxgos/bootloader/boards/fxcg50/src/bios/dtext.S

52 lines
1.0 KiB
ArmAsm

#include "fxcg50/asm_utils.h"
.text
!---
! Public
!---
/* _bios_dtext() (Bdisp_PrintMiniMini): display string */
function(_bios_dtext):
! prologue
sts.l pr, @-r15
mov.l r8, @-r15
! prepare space for the syscall prototype
add #-4, r15
mov r15, r0 ! *x
add #-4, r15
mov r15, r1 ! *y
add #-4, r15
mov r15, r2 ! color
add #-4, r15
mov r15, r3 ! mode2
! setup info
mov.l r4, @r0 ! *x
mov.l r5, @r1 ! *y
mov.l r6, @r2 ! color
mov #0, r8 ! mode1
mov.l r8, @r3 ! mode2
! invoke syscall
mov r0, r4 ! *x
mov r1, r5 ! *y
mov r7, r6 ! text
mov r8, r7 ! mode1
mov.l 1f, r2 ! syscall trampoline code
mov.w 2f, r0 ! syscall ID
jsr @r2
nop
! restore stack and exit (epilogue)
add #16, r15
mov.l @r15+, r8
lds.l @r15+, pr
rts
nop
.balign 4
1: .long FXCG50_SYSCALL_TRAMPOLINE
2: .word 0x021b