⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rdos.s

📁 Newlib 嵌入式 C库 标准实现代码
💻 S
📖 第 1 页 / 共 5 页
字号:
#   Parameters.: SrcHandle#                DestHandle#                width, height#                SrcX, SrcY#                DestX, DestY###########################################################################*/    .global RdosBlit    RdosBlit:	pushl %ebp	movl %esp,%ebp	pushl %eax	pushl %ebx	pushl %ecx	pushl %edx	pushl %esi	pushl %edi;	movw 8(%ebp),%ax	movw 12(%ebp),%bx	movw 16(%ebp),%cx	movw 20(%ebp),%dx	movw 28(%ebp),%si	shll $16,%esi	movw 24(%ebp),%si	movw 36(%ebp),%di	shll $16,%edi	movw 32(%ebp),%di	UserGate blit_nr	popl %edi	popl %esi	popl %edx	popl %ecx	popl %ebx	popl %eax	leave	ret					    					    /*############################################################################   Name       : RdosDrawMask##   Purpose....: Draw mask##   Parameters.: Bitmap handle#                mask#                RowSize#                width, height#                SrcX, SrcY#                DestX, DestY###########################################################################*/    .global RdosDrawMask    RdosDrawMask:	pushl %ebp	movl %esp,%ebp	pushl %eax	pushl %ebx	pushl %ecx	pushl %edx	pushl %esi	pushl %edi;	movw 8(%ebp),%bx	movl 12(%ebp),%edi	movw 16(%ebp),%ax	movw 24(%ebp),%si	shll $16,%esi	movw 20(%ebp),%si	movw 32(%ebp),%cx	shll $16,%ecx	movw 28(%ebp),%cx	movw 40(%ebp),%dx	shll $16,%edx	movw 36(%ebp),%dx	UserGate draw_mask_nr	popl %edi	popl %esi	popl %edx	popl %ecx	popl %ebx	popl %eax	leave	ret					    					    /*############################################################################   Name       : RdosDrawLine##   Purpose....: Draw a line##   Parameters.: Bitmap handle#                x1, y1#                x2, y2###########################################################################*/    .global RdosDrawLine    RdosDrawLine:	pushl %ebp	movl %esp,%ebp	pushl %ebx	pushl %ecx	pushl %edx	pushl %esi	pushl %edi;	movw 8(%ebp),%bx	movw 12(%ebp),%cx	movw 16(%ebp),%dx	movw 20(%ebp),%si	movw 24(%ebp),%di	UserGate draw_line_nr	popl %edi	popl %esi	popl %edx	popl %ecx	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosDrawString##   Purpose....: Draw a string##   Parameters.: Bitmap handle#                x, y#                string###########################################################################*/    .global RdosDrawString    RdosDrawString:	pushl %ebp	movl %esp,%ebp	pushl %ebx	pushl %ecx	pushl %edx	pushl %edi;	movw 8(%ebp),%bx	movw 12(%ebp),%cx	movw 16(%ebp),%dx	movl 20(%ebp),%edi	UserGate draw_string_nr	popl %edi	popl %edx	popl %ecx	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosDrawRect##   Purpose....: Draw a rect##   Parameters.: Bitmap handle#                x, y#                width, height###########################################################################*/    .global RdosDrawRect    RdosDrawRect:	pushl %ebp	movl %esp,%ebp	pushl %ebx	pushl %ecx	pushl %edx	pushl %esi	pushl %edi	movw 8(%ebp),%bx	movw 12(%ebp),%cx	movw 16(%ebp),%dx	movw 20(%ebp),%si	movw 24(%ebp),%di	UserGate draw_rect_nr	popl %edi	popl %esi	popl %edx	popl %ecx	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosDrawEllipse##   Purpose....: Draw an ellipse##   Parameters.: Bitmap handle#                x, y#                width, height###########################################################################*/    .global RdosDrawEllipse    RdosDrawEllipse:	pushl %ebp	movl %esp,%ebp	pushl %ebx	pushl %ecx	pushl %edx	pushl %esi	pushl %edi	movw 8(%ebp),%bx	movw 12(%ebp),%cx	movw 16(%ebp),%dx	movw 20(%ebp),%si	movw 24(%ebp),%di	UserGate draw_ellipse_nr	popl %edi	popl %esi	popl %edx	popl %ecx	popl %ebx	leave	ret					    /*############################################################################   Name       : RdosCreateBitmap##   Purpose....: Create a bitmap##   Parameters.: BitsPerPixel#                width, height##   Returns....: Bitmap handle###########################################################################*/    .global RdosCreateBitmap    RdosCreateBitmap:	pushl %ebp	movl %esp,%ebp	pushl %ebx	pushl %ecx	pushl %edx	movw 8(%ebp),%ax	movw 12(%ebp),%cx	movw 16(%ebp),%dx	UserGate create_bitmap_nr	movzx %bx,%eax;	popl %edx	popl %ecx	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosDuplicateBitmapHandle##   Purpose....: Duplicate bitmap handle for use in another thread / object##   Parameters.: Bitmap handle##   Returns....: Bitmap handle###########################################################################*/    .global RdosDuplicateBitmapHandle    RdosDuplicateBitmapHandle:	pushl %ebp	movl %esp,%ebp	pushl %ebx	movw 8(%ebp),%bx	UserGate dup_bitmap_handle_nr	movzx %bx,%eax	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosCloseBitmap##   Purpose....: Close bitmap handle##   Parameters.: Bitmap handle###########################################################################*/    .global RdosCloseBitmap    RdosCloseBitmap:	pushl %ebp	movl %esp,%ebp	pushl %ebx	movw 8(%ebp),%bx	UserGate close_bitmap_nr	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosCreateStringBitmap##   Purpose....: Create bitmap from string & font##   Parameters.: Font#                string##   Returns....: Bitmap handle###########################################################################*/    .global RdosCreateStringBitmap    RdosCreateStringBitmap:	pushl %ebp	movl %esp,%ebp	pushl %ebx	pushl %edi	movw 8(%ebp),%bx	movl 12(%ebp),%edi	UserGate create_string_bitmap_nr	movzx %bx,%eax;	popl %edi	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosGetBitmapInfo##   Purpose....: Get info about bitmap##   Parameters.: Bitmap handle#                &BitsPerPixel#                &width, &height#                &linesize#                &LFB###########################################################################*/    .global RdosGetBitmapInfo    RdosGetBitmapInfo:	pushl %ebp	movl %esp,%ebp	pushl %eax	pushl %ebx	pushl %ecx	pushl %edx	pushl %esi	pushl %edi	movw 8(%ebp),%bx	UserGate get_bitmap_info_nr	jc gbiFail	pushl %edi	movl 12(%ebp),%edi	movzx %al,%eax	movl %eax,(%edi)	movl 16(%ebp),%edi	movzx %cx,%ecx	movl %ecx,(%edi)		movl 20(%ebp),%edi	movzx %dx,%edx	movl %edx,(%edi)	movl 24(%ebp),%edi	movzx %si,%esi	movl %esi,(%edi)	popl %edi		movl 28(%ebp),%eax	movl %edi,(%eax)	jmp gbiDonegbiFail:	xorl %eax,%eax	movl 12(%ebp),%edi	movl %eax,(%edi)	movl 16(%ebp),%edi	movl %eax,(%edi)	movl 20(%ebp),%edi	movl %eax,(%edi)	movl 24(%ebp),%edi	movl %eax,(%edi)	movl 28(%ebp),%edi	movl %eax,(%edi)gbiDone:	popl %edi	popl %esi	popl %edx	popl %ecx	popl %ebx	popl %eax	leave	ret					    /*############################################################################   Name       : RdosCreateSprite##   Purpose....: Create a sprite##   Parameters.: dest#                bitmap#                mask#                LGOP##   Returns....: Sprite handle###########################################################################*/    .global RdosCreateSprite    RdosCreateSprite:	pushl %ebp	movl %esp,%ebp	pushl %ebx	pushl %ecx	pushl %edx	movw 8(%ebp),%bx	movw 12(%ebp),%cx	movw 16(%ebp),%dx	movw 20(%ebp),%ax	UserGate create_sprite_nr	movzx %bx,%eax	popl %edx	popl %ecx	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosCloseSprite##   Purpose....: Close sprite handle##   Parameters.: Sprite handle###########################################################################*/    .global RdosCloseSprite    RdosCloseSprite:	pushl %ebp	movl %esp,%ebp	pushl %ebx	movw 8(%ebp),%bx	UserGate close_sprite_nr	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosShowSprite##   Purpose....: Show sprite##   Parameters.: Sprite handle###########################################################################*/    .global RdosShowSprite    RdosShowSprite:	pushl %ebp	movl %esp,%ebp	pushl %ebx	movw 8(%ebp),%bx	UserGate show_sprite_nr	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosHideSprite##   Purpose....: Hide sprite##   Parameters.: Sprite handle###########################################################################*/    .global RdosHideSprite    RdosHideSprite:	pushl %ebp	movl %esp,%ebp	pushl %ebx	movw 8(%ebp),%bx	UserGate hide_sprite_nr	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosMoveSprite##   Purpose....: Move sprite##   Parameters.: Sprite handle#                x, y###########################################################################*/    .global RdosMoveSprite    RdosMoveSprite:	pushl %ebp	movl %esp,%ebp	pushl %ebx	pushl %ecx	pushl %edx	movw 8(%ebp),%bx	movw 12(%ebp),%cx	movw 16(%ebp),%dx	UserGate move_sprite_nr	popl %edx	popl %ecx	popl %ebx	leave	ret					    					    /*############################################################################   Name       : RdosSetForeColor##   Purpose....: Set text-mode fore color##   Parameters.: palette index###########################################################################*/    .global RdosSetForeColor    RdosSetForeColor:	pushl %ebp	movl %esp,%ebp	pushl %eax	movb 8(%ebp),%al	UserGate set_forecolor_nr	popl %eax	leave	ret					    					    /*############################################################################   Name       : RdosSetBackColor##   Purpose....: Set text-mode back color##   Parameters.: palette index###########################################################################*/    .global RdosSetBackColor    RdosSetBackColor:	pushl %ebp	movl %esp,%ebp	pushl %eax	movb 8(%ebp),%al	UserGate set_backcolor_nr	popl %eax	leave	ret					    					    /*############################################################################   Name       : RdosGetSysTime##   Purpose....: Get system time##   Parameters.: &year, &month, &day#                &hour, &min, &sec, &ms###########################################################################*/    .global RdosGetSysTime    RdosGetSysTime:	pushl %ebp	movl %esp,%ebp	pushal	UserGate get_system_time_nr	pushl %eax	UserGate binary_to_time_nr	pushl %edx	movl 8(%ebp),%esi	movzx %dx,%edx	movl %edx,(%esi)	movl 12(%ebp),%esi	movzx %ch,%edx	movl %edx,(%esi)	movl 16(%ebp),%esi	movzx %cl,%edx	movl %edx,(%esi)	movl 20(%ebp),%esi	movzx %bh,%edx	movl %edx,(%esi)	movl 24(%ebp),%esi	movzx %bl,%edx	movl %edx,(%esi)	movl 28(%ebp),%esi	movzx %ah,%edx	movl %edx,(%esi)	popl %edx	UserGate time_to_binary_nr	movl %eax,%ebx	popl %eax	subl %ebx,%eax	xorl %edx,%edx	movl $1192,%ebx	divl %ebx	movl 32(%ebp),%esi	movzx %ax,%eax	movl %eax,(%esi)	popal	leave	ret					    					    /*############################################################################   Name       : RdosGetTime##   Purpose....: Get time##   Parameters.: &year, &month, &day#                &hour, &min, &sec, &ms###########################################################################*/    .global RdosGetTime    RdosGetTime:	pushl %ebp	movl %esp,%ebp	pushal	UserGate get_time_nr	pushl %eax	UserGate binary_to_time_nr	pushl %edx	movl 8(%ebp),%esi	movzx %dx,%edx	movl %edx,(%esi)	movl 12(%ebp),%esi	movzx %ch,%edx	movl %edx,(%esi)	movl 16(%ebp),%esi	movzx %cl,%edx	movl %edx,(%esi)	movl 20(%ebp),%esi	movzx %bh,%edx	movl %edx,(%esi)	movl 24(%ebp),%esi	movzx %bl,%edx	movl %edx,(%esi)	movl 28(%ebp),%esi	movzx %ah,%edx	movl %edx,(%esi)	popl %edx	UserGate time_to_binary_nr	movl %eax,%ebx	popl %eax	subl %ebx,%eax	xorl %edx,%edx	movl $1192,%ebx

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -