Subject: Help needed for WPS

From: [email-masked]
Date: Mon, 19 Oct 1992 03:15:55 +0001

Hi Dear CCNETters:

Still remember someone mentioned "Super Star Desktop publishing package"
by Beijing University New Technology Corp. (in AUG 3, 1992) ? I got it
recently. It consists of
1) A big font file (4M) called XSDOS.LPH and a font manager called
splib.exe which emulates a Super-chinese card II.
2) Super-DOS 5.1.
3) WPS, wordprocessor.
4) SPT, (super star) a DTP software.

Problem: The splib.exe does not work under DOS 5.0. It runs under DOS 3.3.
Under DOS 5.0 it prints a message: "C:\XSDOS.LPH not found". (Of course
the "C:\XSDOS.LPH" is there, only splib.exe can not find it).

I used DOS debug to trace the splib.exe, found two points:
1) It uses INT 21, FUN 32, Get Drive Parameter Block, in DOS 3.3 way.
   (It uses a byte at offset 16 of Drive Parameter Block as Media
   Description).
2) It uses also INT 25, Absolute Disk read, in DOS 3.3 way.

So help: Can any wizard who plays a lot of debug help me to modify the
program? I tried to write a TSR to "convert" INT 25 from DOS 3.3 way to
dos 5.0 way, as the followings

--------------------------------------------------------------------------
code          segment
              assume  cs:code
              org     100h
begin:        jmp     init
old25         dd      ?
datablk       dd      ?
              dw      ?
              dd      ?
;---------------------------------------
my25          proc    far
              push    ds
              push    es
              push    bx
              push    cx
              push    dx
              pushf
              push    ax
              cmp     cx, -1
              jz      toold25
              mov     word ptr datablk, dx
              mov     word ptr datablk[4], cx
              mov     word ptr datablk[6], bx
              mov     word ptr datablk[8], ds
              mov     cx, -1
              mov     bx, offset datablk
              mov     ax, cs
              mov     ds, ax
              mov     es, ax
              pop     ax
toold25:      call    cs:[old25]
              pop     dx
              pop     cx
              pop     bx
              pop     es
              pop     ds
              iret
my25          endp
;---------------------------------------
mymsg         db      "Xxxx Xxxxxx October 1992",13,10,"$"
init          proc    near
              assume  cs:code,ds:code
              mov     ah, 9
              mov     dx, offset mymsg
              int     21h
inst25:       mov     ax, 3525h
              int     21h
              mov     word ptr old25, bx
              mov     word ptr old25[2], es
              mov     ax, 2525h
              mov     dx, offset my25
              int     21h
              mov     ax, 3100h
              mov     dx, (offset mymsg - offset code + 15) shr 4
              int     21h
init          endp
code          ends
              end     begin
--------------------------------------------------------------------------

It does not work. Actually it crashes the machine when I use some program
such as Norton's Sysinfo.exe. Can any one tell me what's wrong? My machine
is 386 PC with DOS 5.0.
Many thanx in advance.
Tian [email-masked]