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

📄 ball.asm

📁 独孤剑客 ASM Source Code 1998-2001 for DOS
💻 ASM
字号:
code    segment
        org     100h
        assume  cs:code,ds:code
Start:  push    cs
        pop     ds

        mov     ax,1130h
        mov     bh,06h
        int     10h

        push    bp
        push    es

        push    cs
        pop     es
        lea     bp,BallBuf;点阵表偏移地址
        call    SetASC

        mov     ax,0b800h
        mov     es,ax

        call    ball

        pop     es
        pop     bp       ;点阵表偏移地址
        add     bp,0c00h
        call    SetASC

        mov     ah,4ch
        int     21h

SetASC  proc    near
        mov     ax,1100h ;加载用户点阵,重编程控制
        mov     bh,10h   ;点
        mov     bl,00    ;块
        mov     cx,2     ;cx每字符字节
        mov     dx,00c0h ;表中首字符
        int     10h      ;
        ret
SetASC  endp

ball    proc    near
        xor     di,di

        mov     ah,es:[di]
        mov     al,es:[di+2]
        mov     Buff,ax

l000:
        mov     ax,Buff
        mov     es:[di],ah
        mov     es:[di+2],al

FixY:
        mov     ah,d_y
        add     y,ah
        cmp     y,0
        jl      dy_neg
        cmp     y,25
        jl      FixX
Dy_neg: neg     d_y
        jmp     FixY
FixX:
        mov     al,d_x
        add     x,al
        cmp     x,0
        jl      dx_neg
        cmp     x,39
        jl      FixEnd
Dx_neg: neg     d_x
        jmp     FixX
FixEnd:

        mov     ax,160
        mul     y
        mov     di,ax
        mov     ax,4
        mul     x
        add     di,ax

        mov     ah,es:[di]
        mov     al,es:[di+2]
        mov     Buff,ax

        mov     byte ptr es:[di],0c0h
        mov     byte ptr es:[di+2],0c1h

        mov     ah,86h
        mov     dx,07fffh
        xor     cx,cx
        int     15h

        mov     ah,01h
        int     16h
        jz      l000

        mov     ax,Buff
        mov     es:[di],ah
        mov     es:[di+2],al

        ret

ball    endp

BallBuf db      0,3,15,31,31,63,63,63,63,63,31,31,15,3,0,0
	db	0,192,240,248,248,252,252,252,252,252,248,248,240,192,0,0
;*************<< ● >>****************

x       db      0
y       db      0
d_x     db      1
d_y     db      1

Buff    dw      0

code    ends
        end     Start

⌨️ 快捷键说明

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