📄 sdl_riscosasm.s
字号:
;; SDL - Simple DirectMedia Layer; Copyright (C) 1997-2004 Sam Lantinga;; This library is free software; you can redistribute it and/or; modify it under the terms of the GNU Library General Public; License as published by the Free Software Foundation; either; version 2 of the License, or (at your option) any later version.;; This library is distributed in the hope that it will be useful,; but WITHOUT ANY WARRANTY; without even the implied warranty of; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU; Library General Public License for more details.;; You should have received a copy of the GNU Library General Public; License along with this library; if not, write to the Free; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA;; Sam Lantinga; slouken@libsdl.org;; Assembler routines for RISC OS display; AREA |C$$CODE| EXPORT |RISCOS_Put32|; Display 32bpp to 32bpp, 1:1;; Code provided by Adrain Lees;; entry a1 -> destination; a2 = dest width in pixels; a3 = dest line length in bytes; a4 = dest height in scanlines; arg5 -> source; arg6 = byte offset from end of source line to start of nextArg5 * 10*4Arg6 * Arg5+4RISCOS_Put32 ROUT STMFD sp!,{a2,v1-v6,sl,fp,lr} LDR ip,[sp,#Arg5] MOV lr,a1 B ucp64lp00 ;tail strip of 1-15 pixels LDR v1,[ip],#401 SUBS a2,a2,#1 STR v1,[lr],#4 LDRHI v1,[ip],#4 BHI %01 B %02ucp64end ADDS a2,a2,#16 BNE %0002 SUBS a4,a4,#1 ;height-- LDRHI v1,[sp,#Arg6] LDRHI a2,[sp] ;reload width BLS %03 ;move to start of next scanline ADD lr,a1,a3 ADD a1,a1,a3 ADD ip,ip,v1ucp64lp SUBS a2,a2,#16 BLO ucp64end PLD [ip,#64] LDR v1,[ip],#4 LDR v2,[ip],#4 LDR v3,[ip],#4 LDR v4,[ip],#4 LDR v5,[ip],#4 LDR v6,[ip],#4 LDR sl,[ip],#4 LDR fp,[ip],#4 STR v1,[lr],#4 STR v2,[lr],#4 STR v3,[lr],#4 STR v4,[lr],#4 STR v5,[lr],#4 STR v6,[lr],#4 STR sl,[lr],#4 STR fp,[lr],#4 PLD [ip,#64] LDR v1,[ip],#4 LDR v2,[ip],#4 LDR v3,[ip],#4 LDR v4,[ip],#4 LDR v5,[ip],#4 LDR v6,[ip],#4 LDR sl,[ip],#4 LDR fp,[ip],#4 STR v1,[lr],#4 STR v2,[lr],#4 STR v3,[lr],#4 STR v4,[lr],#4 STR v5,[lr],#4 STR v6,[lr],#4 STR sl,[lr],#4 STR fp,[lr],#4 B ucp64lp03 LDMFD sp!,{a2,v1-v6,sl,fp,pc}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -