爱技术

 找回密码
 注册会员

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 3049|回复: 8
收起左侧

[FLASH源码交流]通话详单原代码

[复制链接]
发表于 2005-8-11 00:00:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册会员 微信登录

x
;如果使用系统函数,可以有效减小本程序大小
;由于没有时间,只进行了简单注释
;For M55C v11
;ZiHwA[spgc]

$Segmented
$Mod167

MAIN_Address            EQU 0x551A00
CreateFile  EQU 0xB05BAE

rom  section code word at MAIN_Address
procrom proc
  sub r0, #30h ; '0'
  mov r15, r0
  mov [-r0], r14
  mov [-r0], r13
  mov [-r0], r12
  extp    #8, #1
  mov     r1, 0B08h
  jmpr cc_NZ, loc_cont0
  extp #7, #2
  mov 3c02h, r1  ; 1FC02h
  mov 3c04h, r1  ; 1FC04h
loc_cont0:
  extp #0Dh, #4
  movb rl4, 25c8h ;min
  movb rh4, 25cah ;hour
  movb rl5, 25cch ;day
  movb rh5, 25ceh ;month
  extp #7, #2
  mov r14, 3c02h        ; 1F3C2h, 状态字  
  mov r1, 33deh         ; 1F3DEh, 状态字     
  jmpr cc_Z, loc_DM  ;1F3DE=0 jmpr M, if 1F3C2h> jmpr D
  cmp r14, #6
  jmpr cc_NC, loc_O ;1F3DE>6 jmpr O
loc_I:
  movb rl1, #49h ; 'I'已接
  jmpr cc_UC, loc_cont1
loc_DM:
  cmp r14,#6
  jmpr cc_C, loc_M ;1F3C2h<6 jmpr M
loc_D:  
  movb rl1, #44h ; 'D'拨号
  jmpr cc_UC, continu
loc_M:
  movb rl1, #4Dh ; 'M'未接
  jmpr cc_UC, loc_cont1
loc_
  movb rl1, #4Fh ; 'O'
loc_cont1:
  callr AddChar
  callr addspace
  jmpr cc_UC, loc_cont2
loc_cont3:
  subb rl4, #1
  jmpr cc_NZ, loc_cont2
  movb rl4, #3Bh ; ';'
  subb rh4, #1
  jmpr cc_NZ, loc_cont2
  movb rh4, #17h
  subb rl5, #1
  jmpr cc_NZ, loc_cont2
  subb rh5, #1
  jmpr cc_NZ, loc_cont4
  movb rh5, #0Ch
loc_cont4:
  movbz r13, rh5
  add r13, #pof buff
  mov     r14, #1d4h; buff seg
  extp r14, #1
  movb rl5, [r13]
loc_cont2:
  sub r1, #3Ch        ; 分离月日XX.YY
  jmpr cc_NC, loc_cont3
  movb rl1, rh5
  callr    HexToDec
  movb rl1, #2Eh ; '.'
  callr    AddChar
  movb rl1, rl5
  callr    HexToDec
  callr    addspace
  movb rl1, rh4         ;分离时间XX:YY
  callr   HexToDec
  movb rl1, #3Ah ; ':'
  callr   AddChar
  movb rl1, rl4
  callr HexToDec
  callr   addspace
  extp #7, #1
  mov r4, 33deh ; 1F3DEh
  jmpr    cc_Z, loc_CallNum ;如果时长为0则直接记录电话号码
  movb rl1, #0FFh
loc_cont5:
  addb rl1, #1
  sub r4, #3Ch        ; 分离时长
  jmpr cc_NC, loc_cont5
  add r4, #3Ch ; '<'
  callr HexToDec
  movb rl1, #3Ah ; ':'
  callr AddChar
  movb rl1, rl4
  callr HexToDec
  callr addspace
loc_CallNum:
  extp #7, #1
  mov r4, 3c04h ; 1FC04h
  cmpb rl4, #91h ; '? ; 国际格式+
  jmpr cc_NZ, loc_cont6
  movb rl1, #2Bh ; '+'
  callr AddChar
loc_cont6:
  mov r5, #0F30h
  mov r14, #3C08h
  jmpr cc_UC, loc_cont8
loc_cont7:
  extp #7, #1
  movb rl4, [r14+]
  movb rl1, rl4
  andb rl1, rh5
  addb rl1, rl5
  callr AddChar
  movb rl1, rl4
  shr r1, #4
  andb rl1, rh5
  cmpb rl1, rh5
  jmpr cc_Z, loc_cont8
  addb rl1, rl5
  callr AddChar
loc_cont8:
  subb rh4, #1
  jmpr cc_NC, loc_cont7
  movb rl1, #0Dh
  callr AddChar
  movb rl1, #0Ah
  callr AddChar
Continu:
  mov r12, [r0+]
  mov r13, [r0+]
  mov r14, [r0+]
  mov [-r0], r15
  calls   21h, 0BCF6h
  mov r15, [r0+]
  mov r14, r0
  sub r15, r14
  jmpr cc_Z, loc_cont9
  callr sub_1
loc_cont9:
  add r0, #30h ; '0'
  rets
HexToDec:
  movb rh1, #2Fh
loc_cont10:
  addb rh1, #1
  subb rl1, #0Ah
  jmpr cc_NC, loc_cont10
  addb rl1, #3Ah
  mov [-r0], r1
  movb rl1, rh1
  callr AddChar
  mov r1, [r0+]
  callr AddChar
  ret
addspace:
  movb rl1, #20h ; ' '
AddChar:
  movb [r15], rl1
  add r15, #1
  ret
sub_1:
  mov r8, r14
  mov r9, r15
  sub r0, #10h
  mov r14, r0
  and r14, #3FFFh
  mov r15, DPP1
  mov [-r0], r15
  mov [-r0], r14
  add r14, #8
  mov [-r0], r15
  mov [-r0], r14
  mov r13, #1d4h ;sof fileAll
  mov r12, #pof fileAll
  mov r14, #101h;avg1
  mov r15, #180h;avg2
  calls seg createfile, sof createfile
  cmp r4, #0FFFFh
  jmpr cc_NZ, sub_cont1
  add r0, #8
  jmpr cc_UC, sub_cont2
sub_cont1:
  push r4
  mov r12, r4
  mov r13, #0
  mov r14, #0
  mov r15, #2
  calls   0B0h, 045Dh
  mov r13, r8
  and r13, #3FFFh
  mov r14, DPP1
  mov r15, r9
  pop r8
  mov r12, r8
  calls   0B0h, 545Dh
  add r0, #4
  mov r13, [r0+]
  mov r14, [r0+]
  mov r12, r8
  calls   0B0h, 965Dh
sub_cont2:
  add r0, #10h
  ret
EndAddress      equ $
procrom endp
rom ends

mydata section data word at EndAddress
buff: db 00,1Fh,1Ch,1Fh,1Eh,1Fh,1Eh,1Fh,1Fh,1Eh,1Fh,1Eh,1Fh,00,00,00
fileAll: db 'a:\listall.txt',00,0FFh
mydata ends

end

[此贴子已经被作者于2004-5-31 22:24:44编辑过]

发表于 2005-8-11 00:01:00 | 显示全部楼层
谢谢 ZiHwA! 研究研究 :)
发表于 2005-8-11 00:02:00 | 显示全部楼层
要是用C语言来写就安逸了!---Jewes
发表于 2005-8-11 00:03:00 | 显示全部楼层
不错!
发表于 2005-8-11 00:04:00 | 显示全部楼层
能不能移植到小8上面啊,等了好久了。
发表于 2005-8-11 00:05:00 | 显示全部楼层
请问这个源程序用什么可以编译??
发表于 2005-8-11 00:06:00 | 显示全部楼层
收藏一下,有空再研究
回复 支持 反对

使用道具 举报

发表于 2005-8-11 00:07:00 | 显示全部楼层
X618的能用吗?
回复 支持 反对

使用道具 举报

发表于 2005-8-11 00:08:00 | 显示全部楼层
楼上不回答网友们的问题吗
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员 微信登录

本版积分规则

小黑屋|Archiver|手机版|爱技术 ( 沪ICP备08115260号-3 )

GMT+8, 2024-5-20 05:04

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表