- 积分
- 90
- 实力分
- 点
- 金钱数
- 两
- 技术分
- 分
- 贡献分
- 分
|
楼主 |
发表于 2006-2-15 14:27:11
|
显示全部楼层
文件存取系统函数5601
> 0xDFA73E: open (r13:r12 -> filename, r14 - flags, r15 - mode;
> return r4
> = fd, -1 on error)
> 0xDFF6AA: fstat (r12 - fd, r14:r13 -> buffer; return r4=0 - success)
> 0xDFABAE: read (r12 - fd, r14:r13 -> buffer, r15 - size; return r4 =
> Nbytes read)
> 0xDFB868: lseek (r12 - fd, r14:r13 - offset, r15 - whence)
> 0xDFC570: close (r12 - fd)
org 0E45AC0h
loc_EBIN:
mov r4, #0
jmpr cc_UC, loc_447350
mov r4, #1
jmpr cc_UC, loc_447350
mov r4, #2
jmpr cc_UC, loc_447350
mov r4, #3
jmpr cc_UC, loc_447350
mov r4, #4
jmpr cc_UC, loc_447350
mov r4, #5
jmpr cc_UC, loc_447350
mov r4, #6
jmpr cc_UC, loc_447350
mov r4, #7
jmpr cc_UC, loc_447350
mov r4, #8
jmpr cc_UC, loc_447350
mov r4, #9
jmpr cc_UC, loc_447350
mov r4, #0Ah
jmpr cc_UC, loc_447350
mov r4, #0Bh
jmpr cc_UC, loc_447350
mov r4, #0Ch
jmpr cc_UC, loc_447350
mov r4, #0Dh
jmpr cc_UC, loc_447350
mov r4, #0Eh
jmpr cc_UC, loc_447350
mov r4, #0Fh
jmpr cc_UC, loc_447350
loc_447350:
mov [-r0], r4
mov r12, #10h
mov [-r0], r12
mov r12, #0000h
mov r13, #23h
mov r14, #pof(ebindw)
mov r15, #pag(ebindw)
calls 0C7h, 83DCh
add r0, #2
mov r4, [r0+]
add r4, #6161h
mov r13, #23h
mov r12, #0000h
extp r13, #2
movb [r12+#9], rh4
movb [r12+#0Ah], rl4
mov r14, r12
mov r15, r13
callr loc_readbin
rets
loc_FAM33:
calls 0CAh, 1DC0h
cmp r4, #0
jmpr cc_Z, loc_pFAM32
mov r12, #1
calls 0C5h, 0BECAh
cmp r4, #3
jmpr cc_Z, loc_callin
mov r12, #sof(playmp3)
mov r13, #seg(playmp3)
push r13
push r12
loc_callin:
mov r12, #35E8h
mov r13, #0Eh
mov r14, #0ACh
mov r15, #24h
calls 0B4h, 724Ch
loc_445AF0:
calls 0CAh, 1DC0h
cmp r4, #0
jmpr cc_NZ, loc_445AF0
loc_pFAM32:
cmp r8, #40h
jmpr cc_Z, loc_445B06
cmp r8, #22h
jmps 0DCh, 1EDEh
loc_445B06:
mov r4, [r0+#0Ah]
mov r5, [r0+#0Ch]
mov r12, [r0+#0Eh]
mov r13, [r0+#10h]
calls 0C7h, 0EE88h
jmps 0DCh, 2B60h
loc_FAM32:
mov [-r0], r15
mov [-r0], r14
mov [-r0], r13
mov [-r0], r12
mov r12, #3870h
mov r13, #0Eh
mov r14, #40h
mov r15, #0
calls 0B4h, 724Ch
add r0, #8
rets
playmp3:
mov r12, #35E8h
mov r13, #0Eh
mov r14, #0ACh
mov r15, #26h
calls 0B4h, 724Ch
loc_445B30:
calls 0CAh, 1DC0h
cmp r4, #0
jmpr cc_Z, loc_445B30
rets
loc_exttable:
cmpb rl6, #06h
jmpr cc_Z, loc_BFA
cmpb rl6, #14h
jmpr cc_Z, loc_TXT
loc_expret:
jmps 0D3h, 2B0h
loc_BFA:
callr loc_pBFA
jmpr cc_UC, loc_expret
loc_TXT:
callr loc_pTXT
jmpr cc_UC, loc_expret
loc_pBFA:
mov r14, r8
mov r15, r9
add r14, #0B2h
loc_readbin:
mov r12, #sof(pBFAROUTIME)
mov r13, #seg(pBFAROUTIME)
calls 0E5h, 0FFF2h
ret
loc_pTXT:
mov r14, r8
mov r15, r9
add r14, #0B2h
mov r14, [r0+]
mov r15, [r0+]
calls loc_copyname
mov r12, #0000h
extp #37h, #1
mov 3FF2h, r12
mov r15, [r0+]
mov r14, [r0+]
mov r12, #sof(TXTROUTIME)
mov r13, #seg(TXTROUTIME)
calls 0E5h, 0FFF2h
ret
loc_copyname:
mov r12, #30h
mov [-r0], r12
mov r12, #3F00h
mov r13, #33h
calls 0C7h, 83DCh
rets
pBFAROUTIME:
mov r14, #0
mov r15, #0
calls 0DBh, 0AF5Ch
mov r8, r4
cmp r8, #0FFFFh
jmpa cc_NZ, loc_445BC0
mov r12, #1
mov r13, #04B3h
calls 0E6h, 00538h
rets
loc_445BC0:
mov r12, r8
mov r9, #20h
loc_445B9A:
mov r14, r9
mov r13, #0
mov r15, #4000h
calls 0DBh, 0B3CCh
mov r12, r8
cmp r4, #4000h
jmpr cc_C, loc_445BB8
cmp r9, #23h
jmpr cc_Z, loc_445BB8
add r9, #1
jmpr cc_UC, loc_445B9A
loc_445BB8:
calls 0DBh, 0CD8Eh
calls 8, 0
rets
loc_IDLE:
calls loc_IDLESUB
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
calls 0C8h, 0C3EEh
rets
loc_memadd:
mov r8, r4
mov r9, r5
jmpr cc_UC, loc_445C00
loc_bh_imeadd:
mov r6, r4
mov r7, r5
jmpr cc_UC, loc_445C00
loc_IDLESUB:
extp #34h, #1
movb rl4, 3E2Bh
cmpb rl4, #1
jmpr cc_Z, loc_445C0E
rets
loc_Creatprocessadd:
mov r7, r13
mov r6, r12
loc_445C00:
callr loc_445C18
calls 0B4h, 9B72h
callr loc_445C26
rets
loc_exitprocesssub:
calls 0CFh, 364Ch
loc_445C0E:
callr loc_445C18
calls 0B4h, 9B5Eh
callr loc_445C26
rets
loc_445C18:
mov [-r0], r8
mov [-r0], r9
mov [-r0], r12
mov [-r0], r13
mov [-r0], r14
mov [-r0], r15
ret
loc_445C26:
mov r15, [r0+]
mov r14, [r0+]
mov r13, [r0+]
mov r12, [r0+]
mov r9, [r0+]
mov r8, [r0+]
ret
TXTROUTIME:
calls loc_readdata
calls 0E4h, 6300h
rets
loc_readdata:
mov r14, #0
mov r15, #0
calls 0DBh, 0AF5Ch
cmp r4, #0FFFFh
jmpr cc_Z, loc_445CBE
mov r8, r4
extp #37h, #1
mov 3FF0h, r8
calls loc_txtread
extp #37h, #1
mov r15, 3FF2h
loc_loop:
extp #37h, #1
mov r4, 3FF4h
cmp r4, #4000h
jmpr cc_C, loc_closefile
cmp r15, #0
jmpr cc_Z, loc_closefile
mov [-r0], r15
calls loc_txtread
mov r15, [r0+]
sub r15, #1
jmpr cc_UC, loc_loop
loc_closefile:
extp #37h, #1
mov r12, 3FF0h
calls 0DBh, 0CD8Eh
loc_445CBE:
rets
loc_txtread:
extp #37h, #1
mov r12, 3FF0h
mov r13, #100h
mov r9, #20h
mov r15, #3F00h
loc_445CD4:
mov r14, r9
calls 0DBh, 0B3CCh
extp #37h, #2
mov 3FF0h, r8
mov 3FF4h, r4
mov r12, r8
cmp r4, #3F00h
jmpr cc_C, loc_445CFA
cmp r9, #26h
jmpr cc_Z, loc_445CFA
add r9, #1
mov r13, #0
mov r15, #4000h
jmpr cc_UC, loc_445CD4
loc_445CFA:
mov r2, r4
cmp r4, #4000h
jmpr cc_NZ, loc_445D08
sub r4, #4000h
add r9, #1
loc_445D08:
cmp r9, #20h
jmpr cc_NZ, loc_445D12
add r4, #100h
loc_445D12:
mov r12, #0
extp r9, #1
mov [r4], r12
mov r9, #0
mov r13, #20h
mov r14, #0FFh
mov r15, #100h
calls 0C7h, 8416h
rets
loc_loopread:
mov [-r0], r12
mov [-r0], r13
mov [-r0], r14
mov [-r0], r15
extp #37h, #1
mov r12, 3FF2h
add r12, #1
extp #37h, #1
mov 3FF2h, r12
mov r12, #sof(loc_readdata)
mov r13, #seg(loc_readdata)
mov r14, #3F00h
mov r15, #33h
calls 0E5h, 0FFF2h
mov r15, [r0+]
mov r14, [r0+]
mov r13, [r0+]
mov r12, [r0+]
rets
loc_smsmp3:
mov r9, r13
mov r8, r12
mov [-r0], r4
mov [-r0], r12
mov [-r0], r13
mov [-r0], r14
mov [-r0], r15
calls loc_ispause
mov r15, [r0+]
mov r14, [r0+]
mov r13, [r0+]
mov r12, [r0+]
mov r4, [r0+]
rets
loc_ispause:
extp #32h, #1
movb rl4, 2F7Ch
cmpb rl4, #4
jmpr cc_Z, loc_smsplaymp3
cmpb rl4, #1
jmpr cc_Z, loc_smspausemp3
rets
loc_smspausemp3:
mov r12, #35E8h
mov r13, #0Eh
mov r14, #0ACh
mov r15, #24h
calls 0B4h, 724Ch
rets
loc_smsplaymp3:
mov r12, #35E8h
mov r13, #0Eh
mov r14, #0ACh
mov r15, #26h
calls 0B4h, 724Ch
rets
ebindw:
db 61h,3Ah,5Ch,7Ah,62h,69h,6Eh,5Ch,7Ah,61h,61h,2Eh,62h,69h,6Eh,00h
jmps loc_FAM33
jmps loc_FAM32
jmps loc_exttable
calls loc_IDLE
calls loc_Creatprocessadd
calls loc_exitprocesssub
calls loc_memadd
calls loc_loopread
calls loc_smsmp3
calls loc_bh_imeadd
end
下面是我改的txt关联的主程序
可以直接在ram阅读中切换到进入时的栈顶,然后calls 0E4h, 627Eh,就可以读下一部分数据,不过我找不到需要的栈顶。。。
org 0E46212h
calls 0E4h, 621Ah
jmps 0D3h, 2B0h 退出mmc浏览器
mov r14, r8 r8,r9 point to file name ascⅡ
mov r15, r9
add r14, #0B2h
mov r12, #6230h
mov r13, #0E4h
calls 0E4h, 484Ch calls fam3.2,传送文件名到r12,r13并执行r到14,r15所在
rets
mov r14, #0 r14,r15指向这里
mov r15, #0
calls 0DBh, 0AF5Ch open file,-1=faild,if open,r4=filehandle
mov r8, r4
cmp r8, #0FFFFh 打开失败?
jmpr cc_Z, loc_44626C 失败就出去返回
extp #37h, #1
mov 3FFEh, r8 将filehandle保存到37h,3ffe
calls 0E4h, 627Eh 自己写的ram阅读专用读文件子程序
extp #36h, #1 取得应用程序菜单第2大项
mov r4, 0D74h
jb r4.14, loc_44625C 第二大项14处,没选跳
calls 0E4h, 627Eh ram读文件
extp #36h, #1 取得应用程序菜单
mov r4, 0D74h
jb r4.14, loc_44625C 没选跳
calls 0E4h, 627Eh ram读文件
loc_44625C:
calls 0E4h, 6300h 到ram阅读器
extp #37h, #1 取得filehandle
mov r12, 3FFEh
calls 0DBh, 0CD8Eh close file
loc_44626C:
rets
这里是ram阅读专用读文件子程序
extp #37h, #1
mov r12, 3FFEh 取得filehandle
mov r13, #100h 读文件的buffer pof
mov r9, #20h buffer pag
mov r15, #3F00h size
loc_446282:
mov r14, r9
calls 0DBh, 0B3CCh readfile,r12=f hle,r13=b pof,r14=b pag,r15=size,读取完成后,r8=filehandle,r4=N bytes read
extp #37h, #1 保存读文件后的filehandle
mov 3FFEh, r8
mov r12, r8 filehandle到r12,为继续读做准备
cmp r4, #3F00h 是否读了16k
jmpr cc_C, loc_4462A8 小于16k就说明文件本身小于16k,跳出
cmp r9, #2Ah 比较b buffer pag是否为2A,限制最大为2A
jmpr cc_Z, loc_4462A8 是2a就出去
add r9, #1 否则buffer page +1
mov r13, #0 buffer pof
mov r15, #4000h size
jmpr cc_UC, loc_446282 循环
loc_4462A8:
cmp r4, #4000h 是否读了16k
jmpr cc_NZ, loc_4462B4 不是就跳
sub r4, #4000h 否则将r4清零
add r9, #1 buffer page+1
loc_4462B4:
cmp r9, #20h 比较buffer pag是否是20
jmpr cc_NZ, loc_4462BE 不是就跳
add r4, #100h 否则 r4+100=buffer pof
loc_4462BE:
mov r12, #0
extp r9, #1
mov [r4], r12 0写入buffer pof,即文本结束位置
mov r9, #0 r9清空
mov r13, #20h pag
mov r14, #0FFh 用FF填充
mov r15, #100h size
calls 0C7h, 8416h 内存快速填充函数,r13=pag,r12=pof,r14=填充数据,r15=数量
rets
end
; *** FTA v2.1. No Case Sensitive ***
; *** File Type Association v2.0 ***
; Copiright(C)2005 by Rst7/CBSIE
;
; Need FAM3.2 & ESI patch. Undo all FAM2 stuff
; and patches, used FAM2 (JSTV and other)
;
; Patch use text file A:\execute.ext as
;
; ...
; file_extention:full_path_and_name_of_binfile
; ...
;
; One line - one extention. Without spaces!
; If extention not found, run
; last binfile defined in execute.ext
;
; For coders: full path and name of openfile
; passed to binfile trows R12/R13 as far pointer
; to ASCIIZ string
;
; Check R13 (_pof(commandline)) for 0x35 - if equ
; then run from FTA, else run from BFA
;
; Version 2.1->Use any case of chars in file extention and record in execute.ext
;
; Необходим FAM3.2 и ESI, откатить все барахло
; FAM2 и кто его пользует (JSTV и остальное).
;
; Использует текстовый файл A:\execute.ext в виде
;
; ...
; расширение:полный_путь_и_имя_бинарника
; ...
;
; Одна строка - одно расширение. Без пробелов!
; Для неизвестных расширений - запуск
; бинарника в последней записи
;
; Для кодеров: полный путь и имя открываемого
; файла передается в бинарник через R12/R13 как
; far-указатель на ASCIIZ строку.
;
; Сравнить R13 (_pof(commandline)) с 0x35 - если равно,
; то запущен через FTA, иначе через BFA.
;
; Версия 2.1->Не зависима от регистра символов расширения и записи в execute.ext
;使用方式,在mmc根目录新建文本文件execute.ext,内容格式如下
;org:A:/bin/fileorg.bin >>意为关联org文件到A:\fileorg.bin
;txt:A:/bin/ted.bin >>关联txt文件到A:\bin\ted.bin
;sie:A:/bin/null.bin
;注意!!!sie:A:/bin/null.bin必须在最后(该文件只需要4个16进制的字符就行db00)
;否则它会将未知文件关联到定义的最后一个bin上
003874CE: EAE01876 FAE4304F
0x445BE0: FAD3B002 FAE4304F
00444F20: 2A2A2A204654412076322E31202A2A2AFAE4384FFAD3B002F0E8F0F906FEB200
00444F40: E6FCBA51E6FDE400DAE5F2FFFAD3B002F04CF05DFAE4C07E
00444F58: 413A5C657865637574652E657874000000000000000000000000000000000000
00444F78: 071291032E1291031E129103
00444F84: 889088808870886026F00801F07DF06CE009E00CE00DC4C00201C4D00401F0C6
00444FA4: F0D7DAC73685F084EA20A85146F87F00EAE0A851F0C6F0D7DAC736850064F0C6
00444FC4: F0D70D0828813D05E6F60612E6F791030D072861DC47F426FFFF47F22E003DF2
00444FE4: E6FC580FE6FD9103E00EE00FDADB5CAFC440000146F4FFFFEA209E51F0C4F0D0
00445004: 66FDFF3FF2FE02FEE6FF8000DADBCCB3F084E6FC8000C4C0060146F880009D17
00445024: E1020080B9280D2CE6F880008880E02C00C066FCFF3FF2FD02FEE6FE820000E0
00445044: 66FEFF3FF2FF02FEDAC7B4830802D4C00001E6FD800000D066FDFF3FF2FE02FE
00445064: E6FF8000DADBCCB3F08446F880009D08E1020080E4288000E6F80001C4800601
00445084: E008D4C00601408C2DCFF0D8088100D0A92DEA20205146F9FFFF2D0446F9FEFF
004450A4: 2D0F0D1647F23A003D0BF0C066FCFF3FF2FD02FE00C8C4C00201C4D004012891
004450C4: 47F20D002D0347F20A003DDBE0090DD947F20D002D0347F20A003D02E0090DD1
004450E4: 47F23A003D06F0C6F0D700C9DC4DA94C2D21F011C02CDADBA6D88840F0C6F0D7
00445104: 00C9DC4DA92CC02CDADBA6D8981041283D0208910DB6E6F9FFFF0DB3D4800201
00445124: D490040170893D10E01CE6FD290EDAE638050D38F09066F9FF3FF2F602FE0098
00445144: C4900201C4600401D4C00001DADB8ECDE0080D010881D4C00201D4D0040100C8
00445164: DC4DA9CC47FC1F00EDF5E10CDC4DB9CCD4C00201D4D00401E00EE00FDADB5CAF
00445184: C440000146F4FFFF3D05E01CE6FD280EDAE63805D44000010D07E01CE6FD270E
004451A4: DAE63805E6F4FFFF06F008019860987098809890DB00889088808860F06DF09C
004451C4: E6FC780FE6FD9103DAE4504FF0C9F0D6DAE4844FF08446F8FFFF2D0FF0C8E00D
004451E4: E6FE2000E6FF0040DADBCCB3F0C8DADB8ECDF0C9F0D6DA080000986098809890
00445204: DB00
00445206: 00455845435554452E4558540D6E6F7420666F756E6421004E6F7468696E6720
00445226: 746F2072756E210042696E2066696C650D6E6F7420666F756E642
org 0E45AC0h
loc_EBIN:
mov r4, #0
jmpr cc_UC, loc_447350
mov r4, #1
jmpr cc_UC, loc_447350
mov r4, #2
jmpr cc_UC, loc_447350
mov r4, #3
jmpr cc_UC, loc_447350
mov r4, #4
jmpr cc_UC, loc_447350
mov r4, #5
jmpr cc_UC, loc_447350
mov r4, #6
jmpr cc_UC, loc_447350
mov r4, #7
jmpr cc_UC, loc_447350
mov r4, #8
jmpr cc_UC, loc_447350
mov r4, #9
jmpr cc_UC, loc_447350
mov r4, #0Ah
jmpr cc_UC, loc_447350
mov r4, #0Bh
jmpr cc_UC, loc_447350
mov r4, #0Ch
jmpr cc_UC, loc_447350
mov r4, #0Dh
jmpr cc_UC, loc_447350
mov r4, #0Eh
jmpr cc_UC, loc_447350
mov r4, #0Fh
jmpr cc_UC, loc_447350
loc_447350:
mov [-r0], r4
mov r12, #10h
mov [-r0], r12
mov r12, #0000h
mov r13, #23h
mov r14, #pof(ebindw)
mov r15, #pag(ebindw)
calls 0C7h, 83DCh
add r0, #2
mov r4, [r0+]
add r4, #6161h
mov r13, #23h
mov r12, #0000h
extp r13, #2
movb [r12+#9], rh4
movb [r12+#0Ah], rl4
mov r14, r12
mov r15, r13
callr loc_readbin
rets
loc_FAM33:
calls 0CAh, 1DC0h
cmp r4, #0
jmpr cc_Z, loc_pFAM32
mov r12, #1
calls 0C5h, 0BECAh
cmp r4, #3
jmpr cc_Z, loc_callin
mov r12, #sof(playmp3)
mov r13, #seg(playmp3)
push r13
push r12
loc_callin:
mov r12, #35E8h
mov r13, #0Eh
mov r14, #0ACh
mov r15, #24h
calls 0B4h, 724Ch
loc_445AF0:
calls 0CAh, 1DC0h
cmp r4, #0
jmpr cc_NZ, loc_445AF0
loc_pFAM32:
cmp r8, #40h
jmpr cc_Z, loc_445B06
cmp r8, #22h
jmps 0DCh, 1EDEh
loc_445B06:
mov r4, [r0+#0Ah]
mov r5, [r0+#0Ch]
mov r12, [r0+#0Eh]
mov r13, [r0+#10h]
calls 0C7h, 0EE88h
jmps 0DCh, 2B60h
loc_FAM32:
mov [-r0], r15
mov [-r0], r14
mov [-r0], r13
mov [-r0], r12
mov r12, #3870h
mov r13, #0Eh
mov r14, #40h
mov r15, #0
calls 0B4h, 724Ch
add r0, #8
rets
playmp3:
mov r12, #35E8h
mov r13, #0Eh
mov r14, #0ACh
mov r15, #26h
calls 0B4h, 724Ch
loc_445B30:
calls 0CAh, 1DC0h
cmp r4, #0
jmpr cc_Z, loc_445B30
rets
loc_exttable:
cmpb rl6, #6h
jmpr cc_Z, loc_BFA
cmpb rl6, #14
jmpr cc_Z, loc_TXT
loc_expret:
jmps 0D3h, 2B0h
loc_BFA:
callr loc_pBFA
jmpr cc_UC, loc_expret
loc_TXT:
callr loc_pTXT
jmpr cc_UC, loc_expret
loc_pBFA:
mov r14, r8
mov r15, r9
add r14, #0B2h
loc_readbin:
mov r12, #sof(pBFAROUTIME)
mov r13, #seg(pBFAROUTIME)
calls 0E5h, 0FFF2h
ret
loc_pTXT:
mov r14, r8
mov r15, r9
add r14, #0B2h
mov r14, [r0+]
mov r15, [r0+]
calls loc_copyname
mov r12, #0000h
extp #37h, #1
mov 3FF2h, r12
mov r15, [r0+]
mov r14, [r0+]
mov r12, #sof(ptxtread)
mov r13, #seg(ptxtread)
calls 0E5h, 0FFF2h
ret
pBFAROUTIME:
mov r14, #0
mov r15, #0
calls 0DBh, 0AF5Ch
mov r8, r4
cmp r8, #0FFFFh
jmpa cc_NZ, loc_445BC0
mov r12, #1
mov r13, #04B3h
calls 0E6h, 00538h
rets
loc_445BC0:
mov r12, r8
mov r9, #20h
loc_445B9A:
mov r14, r9
mov r13, #0
mov r15, #4000h
calls 0DBh, 0B3CCh
mov r12, r8
cmp r4, #4000h
jmpr cc_C, loc_445BB8
cmp r9, #23h
jmpr cc_Z, loc_445BB8
add r9, #1
jmpr cc_UC, loc_445B9A
loc_445BB8:
calls 0DBh, 0CD8Eh
calls 8, 0
rets
loc_IDLE:
calls loc_IDLESUB
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
calls 0C8h, 0C3EEh
rets
loc_memadd:
mov r8, r4
mov r9, r5
jmpr cc_UC, loc_445C00
loc_IDLESUB:
extp #34h, #1
movb rl4, 3E2Bh
cmpb rl4, #1
jmpr cc_Z, loc_445C0E
rets
loc_Creatprocessadd:
mov r7, r13
mov r6, r12
loc_445C00:
callr loc_445C18
calls 0B4h, 9B72h
callr loc_445C26
rets
loc_exitprocesssub:
calls 0CFh, 364Ch
loc_445C0E:
callr loc_445C18
calls 0B4h, 9B5Eh
callr loc_445C26
rets
loc_445C18:
mov [-r0], r8
mov [-r0], r9
mov [-r0], r12
mov [-r0], r13
mov [-r0], r14
mov [-r0], r15
ret
loc_445C26:
mov r15, [r0+]
mov r14, [r0+]
mov r13, [r0+]
mov r12, [r0+]
mov r9, [r0+]
mov r8, [r0+]
ret
ptxtread:
calls loc_readdata
calls 0E4h, 6300h
RETS
loc_readdata:
mov r14, #0
mov r15, #0
calls 0DBh, 0AF5Ch
cmp r4, #0FFFFh
jmpr cc_Z, loc_445CBE
mov r8, r4
extp #37h, #1
mov 3FF0h, r8
calls loc_txtread
extp #37h, #1
mov r15, 3FF2h
loc_loop:
extp #37h, #1
mov r4, 3FF4h
cmp r4, #4000h
jmpr cc_C, loc_closefile
cmp r15, #0
jmpr cc_Z, loc_closefile
mov [-r0], r15
calls loc_txtread
mov r15, [r0+]
sub r15, #1
jmpr cc_UC, loc_loop
loc_closefile:
extp #37h, #1
mov r12, 3FF0h
calls 0DBh, 0CD8Eh
loc_445CBE:
rets
loc_txtread:
extp #37h, #1
mov r12, 3FF0h
mov r13, #100h
mov r9, #20h
mov r15, #3F00h
loc_445CD4:
mov r14, r9
calls 0DBh, 0B3CCh
extp #37h, #2
mov 3FF0h, r8
mov 3FF4h, r4
mov r12, r8
cmp r4, #3F00h
jmpr cc_C, loc_445CFA
cmp r9, #26h
jmpr cc_Z, loc_445CFA
add r9, #1
mov r13, #0
mov r15, #4000h
jmpr cc_UC, loc_445CD4
loc_445CFA:
cmp r4, #4000h
jmpr cc_NZ, loc_445D08
sub r4, #4000h
add r9, #1
loc_445D08:
cmp r9, #20h
jmpr cc_NZ, loc_445D12
add r4, #100h
loc_445D12:
mov r12, #0
extp r9, #1
mov [r4], r12
mov r9, #0
mov r13, #20h
mov r14, #0FFh
mov r15, #100h
calls 0C7h, 8416h
rets
loc_loopread:
mov [-r0], r12
mov [-r0], r13
mov [-r0], r14
mov [-r0], r15
extp #37h, #1
mov r12, 3FF2h
add r12, #1
extp #37h, #1
mov 3FF2h, r12
mov r12, #sof(loc_readdata)
mov r13, #seg(loc_readdata)
mov r14, #3F00h
mov r15, #33h
calls 0E5h, 0FFF2h
mov r15, [r0+]
mov r14, [r0+]
mov r13, [r0+]
mov r12, [r0+]
rets
loc_smsmp3:
mov r9, r13
mov r8, r12
mov [-r0], r4
mov [-r0], r12
mov [-r0], r13
mov [-r0], r14
mov [-r0], r15
calls loc_ispause
mov r15, [r0+]
mov r14, [r0+]
mov r13, [r0+]
mov r12, [r0+]
mov r4, [r0+]
rets
loc_ispause:
extp #32h, #1
movb rl4, 2F7Ch
cmpb rl4, #4
jmpr cc_Z, loc_smsplaymp3
cmpb rl4, #1
jmpr cc_Z, loc_smspausemp3
rets
loc_smspausemp3:
mov r12, #35E8h
mov r13, #0Eh
mov r14, #0ACh
mov r15, #24h
calls 0B4h, 724Ch
rets
loc_smsplaymp3:
mov r12, #35E8h
mov r13, #0Eh
mov r14, #0ACh
mov r15, #26h
calls 0B4h, 724Ch
rets
loc_copyname:
mov r12, #30h
mov [-r0], r12
mov r12, #3F00h
mov r13, #33h
calls 0C7h, 83DCh
rets
ebindw:
db 61h,3Ah,5Ch,7Ah,62h,69h,6Eh,5Ch,7Ah,61h,61h,2Eh,62h,69h,6Eh,00h
jmps loc_FAM33
jmps loc_FAM32
jmps loc_exttable
calls loc_IDLE
calls loc_Creatprocessadd
calls loc_exitprocesssub
calls loc_memadd
calls loc_loopread
calls loc_smsmp3
end
[ 本帖最后由 JunFeng 于 2006-4-22 05:00 编辑 ] |
|