中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS汉化世界 & 中文系统 (中文化室) » 字库终极减肥的思路:矢量压缩!
作者:
标题: 字库终极减肥的思路:矢量压缩! 上一主题 | 下一主题
本是
银牌会员





积分 2201
发帖 789
注册 2005-1-27
状态 离线
『楼 主』:  字库终极减肥的思路:矢量压缩!

字库终极减肥的思路:
使用压缩字库--XZL就是这样!
如果能有人编写挂接程序,就成功了!!!
而且所有汉字系统都行--只是基本内存占用太多!

附件中是昆明明星公司的YSZK.EXE。

[ Last edited by 本是 on 2005-10-13 at 09:46 ]

附件 1: YSZK.RAR (2005-10-9 14:24, 46.3 K, 下载附件所需积分 1 点 ,下载次数: 76)


my major is english----my love is dos----my teacher is the buddha----my friends--how about U
2005-10-9 14:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
本是
银牌会员





积分 2201
发帖 789
注册 2005-1-27
状态 离线
『第 2 楼』:  

谁知道INT6Ah的调用接口?请提供一下!



my major is english----my love is dos----my teacher is the buddha----my friends--how about U
2005-10-9 16:01
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 3 楼』:  

YSZK.EXE基本内存占用多少?



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2005-10-9 16:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 4 楼』:  

INT6Ah的调用接口可試著查詢一下x86/MS-DOS Interrupt List。



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2005-10-9 21:59
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
本是
银牌会员





积分 2201
发帖 789
注册 2005-1-27
状态 离线
『第 5 楼』:  

Re qwe1234567:
TSR约占内存68Kb。

Re Wengier:
我说Int 6Ah指的是YSZK驻留后所占的中断。它是昆明明星公司的产品,应该与ACIOS中国龙类似吧!谁有中国龙的字库中断调用入口、出口参数,请帮个忙!



my major is english----my love is dos----my teacher is the buddha----my friends--how about U
2005-10-10 08:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 6 楼』:  

那比TW占内存的大!



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2005-10-10 08:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
born2be
中级用户




积分 220
发帖 82
注册 2005-9-3
状态 离线
『第 7 楼』:  

那当然啦!
压缩字库是少占外存(磁盘)、多占内存,XZL就是!
所以只适合启动软盘!



my major is english
my love is dos
my teacher is buddha
my friends--how about U
2005-10-10 13:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 8 楼』:  

YSZK是不是比XZL更加小?



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2005-10-10 15:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
本是
银牌会员





积分 2201
发帖 789
注册 2005-1-27
状态 离线
『第 9 楼』:  

这个问题看你怎么理解。YSZK只是字库载入模块,汉字系统至少要包括字库载入、显示、键盘三大模块,还没有加上打印及其它功能。每一模块都要消耗内存(基本、扩展、扩充等),否则你就得做成硬卡。



my major is english----my love is dos----my teacher is the buddha----my friends--how about U
2005-10-10 20:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
本是
银牌会员





积分 2201
发帖 789
注册 2005-1-27
状态 离线
『第 10 楼』:  

第1楼的YSZK.EXE直接调用的话会死机!请改动4个字节就可以运行了。
步骤如下:
1)REN YSZK.EXE YSZK.EX
2)DEBUG YSZK.EX
 E 200 EB 29
 E1065 EB 29
 W
 Q
3)REN YSZK.EX YSZK.EXE
这样就能正常调用了。

:-( 但是,我还是取不出字模信息。调用规范估计是:
入口:AX=汉字内码
出口:DS:SI指向字模信息存储的缓冲区首址
不知道哪位汉字系统高高手能帮帮忙!!!!!!!!!!!!!!!!!!!!!!!!!

如果成功,我就可以把启动盘上用的汉字系统体积大大缩小,只有70K到100K了!!!

[ Last edited by 本是 on 2005-11-5 at 13:17 ]



my major is english----my love is dos----my teacher is the buddha----my friends--how about U
2005-11-5 13:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yaya
银牌会员





积分 1009
发帖 353
注册 2003-9-4
状态 离线
『第 11 楼』:  

INT 6A - OPTHELP.COM
Program: OPTHELP is an optionally-resident help system for SLR Systems's OPTASM
          assembler
Range:        INT 60h to INT 7Fh, selected by configuration
--------N-6A---------------------------------
INT 6A - DECnet DOS - LOCAL AREA TRANSPORT PROGRAM - INSTALLATION CHECK
InstallCheck:        test for a signature area immediately preceding the interrupt
          handler (see #03715)
SeeAlso: AH=01h/DH=FFh,INT 6B"DECnet",INT 6D"DECnet"
Index:        installation check;DECnet DOS Local Area Transport

Format of DECnet DOS signature area:
Offset        Size        Description        (Table 03715)
-5        BYTE        major version number
-4        BYTE        minor version number
-3   3 BYTEs        signature (ASCII "LAT"
--------h-6A---------------------------------
INT 6A C - HP Vectra AT - IRQ18 - RESERVED HARDWARE INTERRUPT
SeeAlso: INT 0A"IRQ2",INT 69"HP Vectra",INT 6B"HP Vectra"
--------N-6A0000-----------------------------
INT 6A U - Super-TCP DOS TSR Kernel v3.57 - INSTALLATION CHECK
        AX = 0000h
Return: AX = 4357h ('CW')
Program: Super-TCP is a TCP/IP protocol stack by Frontier Technologies Corp.
Note:        an alternate installation check is to test for the ASCIZ signature
          "FTC Super-TCP" three bytes past the interrupt handler
SeeAlso: AX=0001h,AX=0002h,AX=000Fh,AX=0010h,INT 21/AH=3Fh"BW-TCP"
SeeAlso: INT 61"FTP Software",INT 62/AH=00h"ETHDEV"
--------N-6A0001-----------------------------
INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ???
        AX = 0001h
        BH = function number
            01h ???
                DS:SI -> ??? 24-byte record1 (see #03717)
                ESI -> buffer containing ???
            02h ???
                DS:SI -> ??? 18-byte record2 (see #03718)
                ESI -> buffer containing ???
            04h ???
                BL = subfunction
                    01h
                        DS:SI -> ??? 28-byte record3 (see #03719)
                        ESI -> buffer containing ???
                    02h
                        DS:SI -> ??? 28-byte record3 (see #03719)
                        ESI -> buffer containing ???
                    03h
                        DS:SI -> ??? 28-byte record3 (see #03719)
                    else Return: AX = 0005h
            05h ???
                DS:SI -> ??? 20-byte record4 (see #03720)
                ESI -> buffer containing ???
            06h ???
                BL = subfunction
                    01h
                        DS:SI -> ??? 40-byte record5 (see #03721)
                    02h
                        DS:SI -> ??? 20-byte record6 (see #03722)
                        ESI -> ???
                    03h
                        DS:SI -> ??? 20-byte record6 (see #03722)
                    04h
                        DS:SI -> ??? 46-byte record7 (see #03723)
                    else Return: AX = 0005h
            11h ???
                DS:SI -> ??? 28-byte record8 (see #03724)
                ESI -> ???
Return: AX = function status (see #03716)
SeeAlso: AX=0000h

(Table 03716)
Values for Super-TCP function status:
0000h        successful
0005h        unsupported function
000Ah        out of memory

Format of record1:
Offset        Size        Description        (Table 03717)
00h  4 BYTEs        ???
04h        WORD        size of ESI buffer
06h 18 BYTEs        ???

Format of record2:
Offset        Size        Description        (Table 03718)
00h  4 BYTEs        ???
04h        WORD        size of ESI buffer
06h 12 BYTEs        ???

Format of record3:
Offset        Size        Description        (Table 03719)
00h  2 BYTEs        ???
02h        WORD        ???
04h        WORD        size of ESI buffer
06h        WORD        ???
08h        WORD        operation number (for function 0401h)
0Ah        DWORD        -> ???
0Eh        WORD        (ret) ???
10h 12 BYTEs        ???

Format of record4:
Offset        Size        Description        (Table 03720)
00h  4 BYTEs        ???
04h        WORD        size of ESI buffer
06h 14 BYTEs        ???

Format of record5:
Offset        Size        Description        (Table 03721)
00h        BYTE        operation??? (00h-07h)
01h        BYTE        ???
02h        WORD        (ret) ???
04h        DWORD        -> ???
08h  4 BYTEs        ???
0Ch        DWORD        -> ??? or 0000h:0000h
10h 16 BYTEs        ???
20h        DWORD        ???
24h  4 BYTEs        ???

Format of record6:
Offset        Size        Description        (Table 03722)
00h  4 BYTEs        ???
04h        WORD        size of ESI buffer
06h 14 BYTEs        ???

Format of record7:
Offset        Size        Description        (Table 03723)
00h        WORD        ???
02h        WORD        ???
04h        WORD        ???
06h 40 BYTEs        ???

Format of record8:
Offset        Size        Description        (Table 03724)
00h  4 BYTEs        ???
04h        WORD        size of ESI buffer
06h  6 BYTEs        ???
0Ch        WORD        (ret) ???
0Eh        WORD        operation??? (01h-03h)
10h 12 BYTEs        ???
--------N-6A0002-----------------------------
INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ???
        AX = 0002h
        BX = ??? (zero/nonzero)
        CX = ??? identifier (see AX=0004h)
        DS:SI -> 40-byte buffer for ??? or 0000h:0000h
        ESI -> buffer for ??? or 0000h:0000h
Return: AX = 0000h (successful) ???
        BL = ???
        BH = ???
        CX = ???
        DX = ???
--------N-6A0003-----------------------------
INT 6A U - Super-TCP DOS TSR Kernel v3.57 - GET ??? DATA AREA
        AX = 0003h
Return: CXX -> data area (see #03725)

Format of Super-TCP data area:
Offset        Size        Description        (Table 03725)
00h  2 BYTEs        ???
02h        DWORD        original INT 6A vector
06h  2 BYTEs        ???
08h 96 BYTEs        array of 16 6-byte ???
68h        WORD        number of elements of above array in use
6Ah        WORD        ???
        ???
--------N-6A0004-----------------------------
INT 6A U - Super-TCP DOS TSR Kernel v3.57 - ALLOCATE ???
        AX = 0004h
        CX = size in ???
Return: AX = 0000h (successful)
        CX = DX = ???
SeeAlso: AX=0005h,AX=000Fh
--------N-6A0005-----------------------------
INT 6A U - Super-TCP DOS TSR Kernel v3.57 - FREE/CLOSE ???
        AX = 0005h
        CX = ??? identifier (from AX=0004h)
Return: AX = status (0000h successful, FFFFh failed)
SeeAlso: AX=0004h,AX=000Fh
--------N-6A000F-----------------------------
INT 6A U - Super-TCP DOS TSR Kernel v3.57 - FREE/CLOSE ALL ???
        AX = 000Fh
Return: AX = 0000h (successful)
SeeAlso: AX=0000h,AX=0004h,AX=0005h
--------N-6A0010-----------------------------
INT 6A U - Super-TCP DOS TSR Kernel v3.57 - UNINSTALL
        AX = 0010h
Return: AX = status
            0000h successful
            0002h can't uninstall, interrupt vector hooked by another program
Program: Super-TCP is a TCP/IP protocol stack by Frontier Technologies Corp.
Note:        if AX is not one of the values listed here on entry, Super-TCP
          returns AX=FFFEh
SeeAlso: AX=0000h
--------N-6A01--DHFF-------------------------
INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BYTE
        AH = 01h
        DH = FFh
        AL = character
        DL = handle
Return: AH >= 80h on error
SeeAlso: AH=02h
--------N-6A02--DHFF-------------------------
INT 6A - DECnet DOS LOCAL AREA TRANSPORT - READ BYTE
        AH = 02h
        DH = FFh
        DL = handle
Return: AH < 80h if successful
            AL = character
        AH >= 80h on error
SeeAlso: AH=01h
--------N-6A03--DHFF-------------------------
INT 6A - DECnet DOS LOCAL AREA TRANSPORT - STATUS
        AH = 03h
        DH = FFh
        DL = handle
Return: AH = status flags (see #03726)

Bitfields for DECnet DOS LAT status flags:
Bit(s)        Description        (Table 03726)
5        transmit buffer empty
3        session in start state
2        session not active
1        unable to queue transmit data
0        receive data available
--------N-6AD0--DHFF-------------------------
INT 6A - DECnet DOS LOCAL AREA TRANSPORT - OPEN SESSION
        AH = D0h
        DH = FFh
        AL = password flag
            FFh no password
            0Fh password at ESI
        ES:BX -> LAT session control block (see #03727)
        ESI -> 16-byte blank-padded password (optional)
Return: AH = 00h success
            DL = handle
SeeAlso: AX=D000h

Format of LAT Session Control Block:
Offset        Size        Description        (Table 03727)
00h 18 BYTEs        service name
12h 18 BYTEs        node name (future use)
24h 18 BYTEs        port name (future use)
36h        DWORD        -> session stopped post routine
3Ah        DWORD        -> service table overflow post routine
3Eh        DWORD        -> transmit post routine
42h        DWORD        -> receive post routine
46h        WORD        session status
                04h circuit failure
                08h stop slot received
---LAT v???---
48h        WORD        slot state (LAT driver use)
4Ah        WORD        local credits (LAT driver use)
4Ch        DWORD        -> VCB (LAT driver use)
50h        WORD        backward slot (LAT driver use)
52h        WORD        forward slot (LAT driver use)
54h        WORD        remote slot ID (LAT driver use)
56h        WORD        local slot ID (LAT driver use)
58h        WORD        slot byte count (LAT driver use)
5Ah        BYTE        remote credits (LAT driver use)
5Bh 255 BYTEs        transmitted data slot
15Ah        BYTE        number of receive data slots (4 recommended)
15Bh        BYTE        number of occupied slots
15Ch        BYTE        index of next receive slot to use
15Dh        BYTE        index of current receive slot
15Eh        WORD        pointer to first received character
160h  N WORDs        pointers to receive slots (buffers); each is 259 bytes
     259N BYTEs        buffers
Note:        set post routines to 0000h:0000h if polled operation will be used
---LAT v4.1.17---
48h        WORD        session state (LAT driver use)
4Ah        BYTE        local credits (LAT driver use)
4Bh        DWORD        -> VCB (LAT driver use)
4Fh        WORD        backward slot (LAT driver use)
51h        WORD        forward slot (LAT driver use)
53h        BYTE        remote slot ID (LAT driver use)
54h        BYTE        local slot ID (LAT driver use)
55h        BYTE        slot byte count (LAT driver use)
56h        BYTE        remote credits (LAT driver use)
57h 255 BYTEs        transmitted data slot
156h        BYTE        number of receive data slots (4 recommended)
157h        BYTE        number of occupied slots
158h        BYTE        index of next receive slot to use
159h        BYTE        index of current receive slot
15Ah        WORD        pointer to first received character
15Ch  N WORDs        pointers to receive slots (buffers); each is 259 bytes
     259N BYTEs        buffers
Note:        set post routines to 0000h:0000h if polled operation will be used
--------N-6AD000DHFF-------------------------
INT 6A - DECnet DOS LOCAL AREA TRANSPORT - CLOSE SESSION
        AX = D000h
        DH = FFh
        DL = handle
Return: AX = status (see #03728)
SeeAlso: AH=D0h

(Table 03728)
Values for DECnet DOS LAT function status:
0000h        successful
0001h        no such session
0002h        session not running, try again later
--------N-6AD100DHFF-------------------------
INT 6A - DECnet DOS LOCAL AREA TRANSPORT - SEND BREAK
        AX = D100h
        DH = FFh
        DL = handle
Return: AX = 0000h if successful
        AH bit 7 set if unable to send break
--------N-6AD300DHFF-------------------------
INT 6A - DECnet DOS LOCAL AREA TRANSPORT - RESET LAT COUNTERS
        AX = D300h
        DH = FFh
SeeAlso: AX=D400h
--------N-6AD400DHFF-------------------------
INT 6A - DECnet DOS LOCAL AREA TRANSPORT - COPY LAT COUNTERS
        AX = D400h
        DH = FFh
        CX = buffer size
        ES:BX -> buffer for LAT counters
Return: AX = status
            0000h counters copied into buffer
            FFFFh buffer too small
SeeAlso: AX=D300h
--------N-6AD500DHFF-------------------------
INT 6A - DECnet DOS LOCAL AREA TRANSPORT - GET NEXT LAT SERVICE NAME
        AX = D500h
        DH = FFh
        ES:BX -> 17-byte buffer for name
Return: AH = 00h if successful
           ES:BX buffer filled
        AX = FFFFh if end of table or no name available
Notes:        use this function to get the names of the hosts on the network
        successive calls are necessary to get all names
SeeAlso: AX=D600h/DH=FFh
--------N-6AD600DHFF-------------------------
INT 6A - DECnet DOS LOCAL AREA TRANSPORT - LAT SERVICE TABLE RESET
        AX = D600h
        DH = FFh
Return: AX = number of service table entries
        BX = status
            0000h service table has not overflowed
            FFFFh service table has overflowed
SeeAlso: AX=D500h
--------!---Section--------------------------
Interrupt List, part 17 of 18
Copyright (c) 1989-1999,2000 Ralf Brown

2005-11-5 15:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
本是
银牌会员





积分 2201
发帖 789
注册 2005-1-27
状态 离线
『第 12 楼』:  

谢谢yaya提供的资料!

不过,我这儿说的INT 6Ah是指以YSZK.EXE自己替换掉的字库载入中断,ACIOS 3.x版不知道谁有?因为它们都是昆明明星公司的产品。



my major is english----my love is dos----my teacher is the buddha----my friends--how about U
2005-11-5 16:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ygp2sfec
初级用户




积分 172
发帖 68
注册 2006-2-9
状态 离线
『第 13 楼』:  谁知道怎么退出天汇汉字系统

我的启动盘用的是天汇汉字系统,但有时也想用用别的汉字系统,可网上找来的天汇汉字系统都不带退出程序,我要怎么退出啊。

2006-2-11 11:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
本是
银牌会员





积分 2201
发帖 789
注册 2005-1-27
状态 离线
『第 14 楼』:  

先按Ctrl F5,再选按0,就能退出了。



my major is english----my love is dos----my teacher is the buddha----my friends--how about U
2006-2-11 22:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jawbin
高级用户




积分 994
发帖 444
注册 2005-1-29
状态 离线
『第 15 楼』:  

倒哦,贴了好多表情,呵呵
对了,这里的矢量压缩能不能大概介绍一下?
我还是对矢量字体等矢量图形对象感兴趣一些.

2006-5-25 16:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: