- 注册时间
- 2004-9-25
- 最后登录
- 1970-1-1
|
新华词典下载版说明:
下载xh.dat,xh两个文件到LavaData文件夹,将xh当作系统程序运行或者修改nor 03页5c2d的那个路径修改成/LavaData/xh(以00结尾),这样就可以用原来的菜单运行新华词典了。
提供一下思路:
首先将由0b3c到0c2f块,也就是 新华数据.bin,xh_to_uni,xh_input,xh_exfont,xh_bs,xh_bh,xh_grap这些文件对应的块保存为一个文件xh.dat,然后写一段程序:
.org $9000
ReadAllBlockNum
ldx #$20
RABNL1
lda xhdat-1,x
sta $088c,x
dex
bne RABNL1
lda #$80
sta $08c9
int $0515
bcc RABNL2
int $0312
RABNL2
ldx #$06
RABNL3
lda $08e5,x
sta $bcff,x ;xh.dat文件的第一第二第三块写入$bd00
dex
bne RABNL3
lda $08ec
sta $0888
lda $08ed
sta $0889
LDA #$00
STA $088A
STA $088B
LDA #$06
STA $F0
LDA #$bd
STA $F1
LDA #$fa
STA $09D2
LDA #$01
STA $09D3
int $0505 ;由最后一块的块号读出剩余块的块号
int $0517
rts
ReadNandM
lda $0888
pha
lda $0889
pha
lda $088a
pha
lda $088b
pha
sec
lda $0888
sbc #$3c
sta $4e
lda $0889
sbc #$0b ;原块号减去0b3c
sta $4f
asl $4e
rol $4f
clc
lda $4e
adc #$00
sta $4e
lda $4f
adc #$bd
sta $4f
ldy #$00
lda ($4e),y
sta $0888
iny
lda ($4e),y
sta $0889 ;读得新的块号
int $0505
pla
sta $088b
pla
sta $088a
pla
sta $0889
pla
sta $0888
rts
xhdat
.db "/LavaData/xh.dat",0
将这段程序写入到xinhua文件偏移$5000,然后将文件原来的全部int $0505修改成jsr ReadNandM。再在文件偏移的$7fe0处写入:
20 00 90 4c d3 44 20 00 90 4c c1 44 20 00 90 4c ca 44
再修改一下文件头,也就是将偏移0处改成:
4c e0 bf 60 60 ea e0 bf e6 bf ec bf
文件在这里:
不提供下载了 -__-
里边的xh.rar就是了(假如看不到文件就按一下文件列表上面的那个刷新按钮)。
郁闷了,发现要改系统中断int $c701(这个是取字模的中断,int $c719用到的)才可以显示那些字。。。很难做到通用啊。。。除非在程序中自己写一个修改版的int $c719,但是那也太郁闷了。。。
崩溃。。。越反发现要改的东西越多,竟然bios都要改。。。
我放弃了,无能为力啊。
大家当我没发过这帖吧。。。 |
|