`
sylinx_yqg
  • 浏览: 143414 次
  • 性别: Icon_minigender_1
  • 来自: 福建 漳州
社区版块
存档分类
最新评论

13h视频模式下的几个宏

 
阅读更多

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;filename bios.inc
;asm macro about the bios
;create on 06.3.10 by yqg
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;**************setmode macro*****************;
setmode macro var
    push ax
    mov ah,0
    mov al,var
    int 10h      ;set the screen mode
    pop ax
endm
;*************setmode endm********************;

 

;***********setpixel macro**********************;
;notice that this is can use in 13mode
;it direct set rom from 0xa0000000
;notice the x,y only can use reg by bl,al
setpixel MACRO x,y,color
    PUSH ES
    PUSH DI
    PUSH AX
    push dx
    MOV       AX,0a000h
    MOV       ES,AX
    mov       al,y
    mov       ah,0
    mov       bl,160
    mul       bl
    mov       bx,2
    mul       bx        ;this here will made dx 0
    pop       dx
    push      dx
    mov       bl,x
    mov       bh,0
    add       ax,bx  ;location,only a 1 kb,don't afraid to overflow
    mov       DI,ax
    MOV       AL,color
    MOV       ES:[DI],AL     ;set color 
    pop dx
    POP AX
    POP DI
    POP ES
ENDM
;***********setpixel endm*************************;
;--------------------------------------------------;
;***********setbkcolor macro************************;
 setbkcolor macro color
  local again
    PUSH ES
    PUSH DI
    PUSH AX
    push cx
    MOV       AX,0a000h
    MOV       ES,AX
    XOR       DI,DI
    MOV       AL,color
    mov       cx,64000
 again:
    MOV       ES:[DI],AL     ;set color
    inc       di
    loop again
    pop cx
    POP AX
    POP DI
    POP ES
endm
;***********line macro*****************************;
;notice the line now only can draw straight
;that meant that x1=x2 or y1=y2
line macro x1,y1,x2,y2,color
    local again,again1
    PUSH ES
    PUSH DI
    PUSH AX
    push cx
    MOV       AX,0a000h
    MOV       ES,AX
    XOR       DI,DI
    mov       di,x1+y1*320    ;across line
    MOV       AL,color
    mov       cx,x2-x1+1
 again:
    MOV       ES:[DI],AL     ;set color
    inc       di
    loop again
    mov       di,x1+y1*320   
    MOV       AL,color
    mov       cx,y2-y1+1
  again1:
    MOV       ES:[DI],AL    
    add       di,320
    loop again1
    pop cx
    POP AX
    POP DI
    POP ES
endm
;***********line endm****************************;
;---------------------------------------------------;
;**************box endm******************************;
box macro x1,y1,x2,y2,color
    line x1,y1,x2,y1,color
    line x1,y1,x1,y2,color
    line x1,y2,x2,y2,color
    line x2,y1,x2,y2,color
endm
;***************box endm******************************;

 

;************outchar macro********************;
outchar macro x,y,char,color
   local again,again1,next
   push es
   push bp
   push ax
   push bx
   push cx
   push dx
   mov ax,0f000h
   mov es,ax
   mov bp,0fa6eh 
   add bp,char*8       ;get the char address
   mov cx,8
   mov dl,x
   mov dh,y
again1:
   push cx
   mov ah,es:[bp]
   mov cx,8
again:
   rcl ah,1
   jnc next
   setpixel dl,dh,color  
 next:
   inc dl
   loop again
   mov dl,x
   pop cx
   inc dh
   inc bp
   loop again1
   pop dx
   pop cx
   pop bx
   pop ax
   pop bp
   pop es
endm
;*************outchar endm*******************;
    



分享到:
评论

相关推荐

    FLV格式编码测试视频H264、H263视频+MP3音频

    这个压缩包包含了几个FLV格式的视频文件,用于测试不同的视频编码技术和音频编码技术。 1. FLV格式详解: FLV文件结构主要包括一个文件头、一个或多个数据块(tags)以及一个文件尾。文件头包含了文件标识、版本...

    h264 视频码流测试文件

    1. **分块编码**:H264将视频帧分为多个宏块,每个宏块由若干个亮度和色度样本组成。这种分块策略便于执行不同的编码策略,如运动补偿、预测和变换等。 2. **运动估计与补偿**:为了节省带宽,H264编码器会寻找相邻...

    Flv文件提取视频流H264

    提取H264视频流的过程涉及以下几个关键知识点: 1. **FLV文件结构**:FLV文件由头部信息、数据标签(Data Tags)和尾部信息组成。数据标签包含音频帧和视频帧,其中视频帧通常是用H264编码的。 2. **H264编码原理*...

    H.264视频编码

    视频图像被分割成多个宏块(Macroblocks),每个宏块又可以进一步划分为不同的分块(Blocks)。不同的分块类型对应不同的编码策略,例如:I块表示不依赖于其他帧的帧内编码,P块使用帧间预测,而B块则可以同时使用前...

    H264与H265的区别.docx

    H264的块划分方式是将一个视频图像划分成片,每个片又划分为多个宏块,宏块的尺寸为16x16。用于帧间预测的宏块可划分为子宏块,子宏块的尺寸为16x16、16x8、8x16、8x8、4x8、8x4和4x4。 H265的块划分方式比H264要...

    新一代视频压缩编码标准-H.264_AVC(第二版).pdf

    综上所述,H.264/AVC作为一种革命性的视频压缩标准,在过去十几年里对整个视频行业产生了深远影响。尽管H.265/HEVC等更新技术逐渐崭露头角,但H.264/AVC凭借其成熟稳定的表现依然占据着市场主流地位。未来,随着超...

    h.264视频编解码器

    在H.264视频编解码器的设计中,其核心技术主要包括以下几个方面: 1. **分块编码**:视频画面被分割成多个宏块,每个宏块通常为16x16像素大小,便于进行独立编码。这样可以简化处理复杂度,同时允许编码器根据画面...

    h264中文协议(中英文对照)H264解码手册.pdf

    2. 宏块和分区:H.264将视频帧分割成宏块,一个宏块由16x16的亮度像素(Y)组成,以及和该亮度块对应的两个8x8的色度块(Cb、Cr)。每个宏块可被进一步分割成更小的块,进行更加细致的预测编码。 3. 空间冗余度的...

    新一代编码标准h264

    1. **宏块划分与运动估计**:H264将视频帧划分为不同大小的宏块,每个宏块可以包含16x16像素的亮度区域以及对应的色度区域。宏块可以根据内容选择不同的编码模式,运动估计则通过比较相邻帧之间的相似性来预测当前宏...

    H264Visa_H264Visa

    在H.264编码中,有几个关键知识点: 1. **编码框架**:H.264采用基于宏块的编码框架,将图像划分为16x16像素的宏块,每个宏块可以进一步分割为更小的块进行编码。 2. **熵编码**:包括CABAC(Context-Adaptive ...

    H264Visa H264分析工具

    H264Visa能够详细地显示这些编码细节,如NAL单元(Network Abstraction Layer Units)、Slice信息、宏块模式、量化参数等,这对于开发者、视频工程师以及质量控制人员来说,是不可或缺的辅助工具。 在提供的文件...

    h264中文协议(中英文对照)H264解码手册.zip_G2T_h.264 手册_h264_h264协议意思_h264手册

    2. **块级处理**:H264将视频帧划分为不同的宏块,每个宏块可以进一步细分为不同大小的块,这样可以根据内容的复杂程度进行不同程度的压缩。 3. **运动估计与补偿**:通过比较相邻帧之间的像素差异,H264可以预测...

    解析神秘H264格式-从开始1-6帧.zip

    每个宏块可以包含16x16像素的亮度分量和对应的色度分量(Cb和Cr)。编码器通过运动估计和补偿、DCT变换、量化、熵编码等步骤来减少冗余,提高压缩效率。在开始的几帧,尤其是I帧(无参考帧的帧),编码器会使用帧内...

    音视频-编解码-H264AVC视频编码器中模式选择研究.pdf

    H264/AVC标准相比MPEG4和H.263,提供了更高的压缩比率,支持更多种类的帧内预测模式(13种)和不同尺寸的宏块分割(7种),这使得视频编码的灵活性大大增强,但也带来了计算量的显著增加。 在H264/AVC中,每个宏块...

Global site tag (gtag.js) - Google Analytics