OcttBitsOfFun/HelloWorld-PS1-PsyQ+ASM/HelloWorld2.s

100 lines
1.3 KiB
ArmAsm

.extern c_init
.extern c_display
.extern DrawSync
.extern FntFlush
.extern FntPrint
.extern PutDispEnv
.extern PutDrawEnv
.extern ResetGraph
.extern SetDefDispEnv
.extern SetDefDrawEnv
.extern SetDispMask
.extern SetVideoMode
.extern VSync
.macro CallSetDefDispDrawEnv function,address,y
la $a0,\address
li $a1,0
li $a2,\y
li $a3,320
li $t0,240
sw $t0,16($sp)
jal \function
.endm
.macro SetBackgroundRgb address,r,g,b
# set params to items 26 27 28 of \address
.endm
.global main
main:
addi $sp,$sp,-4*6
lw $a0,0($0)
jal ResetGraph
CallSetDefDispDrawEnv SetDefDispEnv,dispEnvs+0, 0
CallSetDefDispDrawEnv SetDefDispEnv,dispEnvs+20,240
CallSetDefDispDrawEnv SetDefDrawEnv,drawEnvs+0, 240
CallSetDefDispDrawEnv SetDefDrawEnv,drawEnvs+92,0
SetBackgroundRgb drawEnvs+0, 32,32,32
SetBackgroundRgb drawEnvs+92,32,32,32
jal c_init
addi $sp,$sp,4*6
MainLoop:
#addi $sp,$sp,-4*5
jal DrawSync
jal VSync
jal c_display
la $a0,helloStr
jal FntPrint
# li $a0,70
# li $a1,71
# li $a2,72
# li $a3,73
# li $t0,120
# sw $t0,16($sp)
# jal Print12345
jal FntFlush
j MainLoop
#addi $sp,$sp,4*5
.data
helloStr:
.asciiz "Hello testin'!"
.global displayIndex
displayIndex:
.byte 0
# libgpu.h > DISPENV
.global disp
disp:
dispEnvs:
.align 2
.space 40
# libgpu.h > DRAWENV
.global draw
draw:
drawEnvs:
.align 2
.space 184