×

foxprn

消耗积分:2 | 格式:rar | 大小:2 | 2010-02-25

刘高

分享资料个

foxprn.rar

;sptp.asm
;此程序为foxbase的一个图形函数
;使用LQ 1600K 作图形打印
;图形格式:Super Star.
;将SPT图形先左右翻转,再旋转90度,最后反白显示,即可打出正常的图形
.model tiny
.code
        org 00h
start:
        jmp bg
file    db 50 dup(0)
wth     dw 0
lenth   dw 0
handle  dw 0
mdv     db 0
hdv     db 0
npos    dw 0
buff    db 3 dup(0)
bg:
_cts proc far
        push cs
        pop es
        mov si,bx
        lea di,file
        mov cx,50
        cld
        repz movsb
;从Foxbase环境的with 参
;数中得到文件名
        xor si,si
        push cs
        pop ds
        mov ah,3dh
        mov al,0;只读
        lea dx,file
        int 21h;打开文件
        mov handle,ax
        ;保存文件句柄
        mov ah,42h
        mov al,0
        mov bx,handle
        xor cx,cx
        mov dx,22h
        int 21h
        ;设置当前文件位置
        mov ah,3fh
        mov bx,handle
        mov cx,2
        lea dx,wth
        int 21h
        ;读入图形的宽度
        mov ah,42h
        mov al,0
        mov bx,handle
        xor cx,cx
        mov dx,24h
        int 21h
        ;设置当前文件位置
        mov ah,3fh
        mov bx,handle
        mov cx,2
        lea dx,lenth
        int 21h
        ;读入图形的高度
        mov ah,42h
        mov al,0
        mov bx,handle
        xor cx,cx
        mov dx,40h
        int 21h
        ;设置当前文件位置
        xor dx,dx
        mov ax,lenth
        mov bx,256
        div bx
        mov mdv,dl;余数
        mov hdv,al;商
        xor dx,dx
        mov ax,wth
        mov bx,8
        div bx
        sub ax,3
        mov npos,ax;商
        mov ah,1
        xor dx,dx
        int 17h
print_bytes:
        xor dx,dx
        mov ax,wth
        mov bx,24
        div bx
        mov bp,ax;行数
rpt:
        mov bx,lenth;列数
        mov ah,0
        ;调用DOS的打印功能
        mov al,1bh;换码代码
        xor dx,dx
        int 17h
        ;发送这个码
        xor ah,ah
        mov al,2ah
        ;图形方式码
        int 17h
        xor ah,ah
        mov al,39
        ;设定三倍密度24针
        int 17h
        xor ah,ah
        mov al,mdv;列数(余数)
        int 17h
        xor ah,ah
        mov al,hdv;(商)
        int 17h
pt:
        push bx
        mov ah,3fh
        mov bx,handle
        mov cx,3
        lea dx,buff
        ;读入三个字节的内容
        int 21h
        mov ah,42h
        mov al,1
        mov bx,handle
        xor cx,cx
        mov dx,npos
        int 21h
        ;设置新位置
        mov ah,0
        mov al,buff
        xor dx,dx
        int 17h
        xor ah,ah
        mov al,buff+1
        int 17h
        xor ah,ah
        mov al,buff+2
        int 17h
        pop bx
        dec bx
        jnz pt
        xor ah,ah
        mov al,1bh
        int 17h
        xor ah,ah
        mov al,4ah
        int 17h
        xor ah,ah
        mov al,24
        int 17h;换行
        xor ah,ah
        mov al,13
        int 17h;回车
        mov ah,42h
        mov al,0
        mov bx,handle
        xor cx,cx
        mov dx,40h
        add si,3
        add dx,si
        int 21h
        ;设置当前文件位置
        dec bp
        jz cont2
        jmp far ptr rpt
cont2:
        mov ah,3eh
        mov bx,handle
        int 21h;关闭文件
        ret
_cts endp
ends
end start

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !