易码技术论坛

 找回密码
 加入易码
搜索
查看: 2373|回复: 43

电力……电力……

[复制链接]
发表于 2008-5-21 12:13:13 | 显示全部楼层 |阅读模式
想问问TC808的电力是怎么检测啊,想做一个软件,谁能告诉我方法啊。
 楼主| 发表于 2008-5-21 12:16:50 | 显示全部楼层
电力值是否储存在内存中 ……
发表于 2008-5-21 16:17:40 | 显示全部楼层
这种东西还是用系统中断吧````
发表于 2008-5-21 16:38:27 | 显示全部楼层
繁琐的中断,地址等等
我是这么认为的
 楼主| 发表于 2008-5-21 17:16:40 | 显示全部楼层
首先,别跟我说有内置的,我现在想做一个。
我分析过LOJA的代码后没发现用了CALL,而他本人也说没用到中断,我现在不明白的是怎么记算出来
发表于 2008-5-21 17:55:19 | 显示全部楼层
估计用PEEK在某内存段可0以检测到,这要知道TC808存放电力值的内存位置了。。。
发表于 2008-5-21 19:05:17 | 显示全部楼层
很简单,读取$040B的值就行了。

想自己做的话又不知道原理,那放着系统中断不用干什么。

电力检测的中断是 INT $0311。
测试结果放$040B与A寄存器中:
$040B:电量充足(两格或以上)则结果为0,不充足时按不充足程度依次为20h,40h,……
A寄存器:电量值。对应关系你自己实验吧。
由于系统在使用中会经常测试电量,而$040B这个内存地址一般不会被其他程序所占用,所以一般来说,你读取的$040B的值就是当前的电量。这就是原理。

反汇编一下这个中断就会知道得更清楚了。

[ 本帖最后由 dragon_ 于 2008-5-21 19:15 编辑 ]
 楼主| 发表于 2008-5-21 20:27:58 | 显示全部楼层
跪谢楼上啊,感动流涕。想问楼上那些中断在哪里找到的,我就是不知道那个中断
 楼主| 发表于 2008-5-21 20:30:14 | 显示全部楼层
还有,bas中是不是把040B换成十进制?
 楼主| 发表于 2008-5-21 20:38:07 | 显示全部楼层
还有一个问题:用内置检测得17
读取040B是零。这是怎么回事啊。寄存器A也是零
发表于 2008-5-21 20:43:15 | 显示全部楼层
原帖由 jljeee 于 2008-5-21 20:27 发表
跪谢楼上啊,感动流涕。想问楼上那些中断在哪里找到的,我就是不知道那个中断

大量反汇编系统程序的结果。这些中断只不过是副产品罢了。
送你篇东西,会有用的。

TC808的系统调用
INT $000A 相当于V+W+开机
INT $000B 相当于X+开机
INT $0103 进度条
INT $0108 电脑连线
INT $0109 双机通信
INT $0310 返回上一级热键,可以按照$0AF0的值启动各种功能。如$0AF0=4Ah:进入应用程序。
INT $0311 电量测试 结果放$040B,电量充足则结果为0
INT $0321 最有吓人效果的中断,愚人节整蛊专用。GGV居然会把这个做成一个中断,真是让我震惊不已……
INT $0608 秒表
INT $0607 定时器
INT $0606 闹钟
INT $0605 万年历
INT $0603 时钟设定
INT $0601 时间
INT $0609 倒计日
INT $060B 日期计算
(INT $060A-INT $060F暂缺)

但是要提醒大家一点:一般尽量不要用INT $060F这个中断。这个中断运行后出现的选项里面有一个是"erase",意思就是擦除nand,如果你试图进入的话就会造成the nflash is error的恶果!我自己就栽在这上头过,所以不希望大家也步我后尘,把自己的文曲星弄得the nflash is error。

INT $0610 闹钟开关
INT $0611 显示方式
INT $0612 整点闹钟
INT $0613 发音速度
INT $0614 按键音
INT $0615 关机设置
INT $0616 屏幕亮度
INT $0617 输入反查
INT $0618 输入联想
INT $0619 厂商信息


TC808的常用中断
INT $0501 测试超级块
INT $0502 更新逻辑区和物理区映射表
INT $0503 读一页NAND(物理,不做ECC)
INT $0504 读一页NAND(物理,做ECC)
INT $0505 读一页NAND(逻辑)NAND块号在$081D~$0820
INT $0506 读一页NAND(逻辑)
INT $0507 读一页NOR
INT $0508 读多字节NOR
INT $0509 根具INODE找对应的目录名
INT $050a 测试目录能否列出
INT $050B 创建目录(目录名放$0824)
INT $050c 读取目录
INT $050F 删除目录(目录名$0824,必须为空目录)
INT $050d 切换目录
INT $050e 删除文件
INT $0515 打开或创建文件
INT $0516 读文件
INT $0517 关闭文件
INT $0518 写文件
INT $0519 追加
INT $051a 读INODE
INT $0524 格式化闪存
INT $0704 反查;汉字学习
INT $080B 新华词典
INT $080C 成语词典
INT $080D 多音字词典
INT $0901 反查英文
INT $0905 词网功能
INT $0906 应试英汉词典
INT $0B01~$0B07 与发音有关的中断
INT $0B08 公理定理
INT $0B09 下载词典
INT $0C05 序列号察看
INT $0C08 英文猜字游戏
INT $0C09 单词精灵
INT $C004 那个传说中的“open_803_lcd”中断,对此中断的反汇编导致了硬件四灰度模式的成功……
INT $C006 读键等待,会停顿,键值在A中
INT $C00A 读键等待,不会停顿,键值在A中
INT $C021 设置屏幕亮度。亮度在$03e9
INT $C719 字符缓冲刷到显存($02C0字符缓存地址)
INT $C733 把bin数字转换为ASCII码,要转换的数字放在$80,$81,转换结果在$82,$83,$84,$85,$86。
INT $C737 清除部分显存(清屏),不包括左边的电池电量显示等
INT $C729 清除全部显存($19C0显存地址)
INT $C72A 清除文字缓存
INT $CA09 矩形作图
INT $CA0D 矩形作图2
INT $CA12 多功能信息框
INT $CA16 正在查找
INT $CA17 没有找到
INT $CB01 系统菜单
INT $CB02 显示资料
INT $CB05 输入法
INT $CB08 系统帮助
INT $CA14 等级棒
INT $CA15 通用菜单
INT $FFxx 喇叭发声(音乐),xx从01h到35h

TC808的常用系统地址
$02c0 文字缓存
$03e7 $01简体文字菜单 $繁体
$03e8 $20 BIG5码 $40 GB码
$03e9 屏幕亮度
$03EA 音量大小
$03B1 设置刷新行
$03B2 设置刷新列
$03B3 光标类型 $00 宽高 $08 宽低 $10 窄高 $18 窄低
$044a 输入法提示:$0c 提示为中文
以下地址打开文件后才可看见
$086d 当前文件属性 $086B 文件号
$0869 文件INODE号   

TC808文件操作类地址
$085d $085e 新建文件大小
$0860 文件操作类型 $70 新件 $80 打开 $c0 修改
$0861 $0862 新建文件属性 都为$EF时,新建文件属性为RWX
通过INT$0518写文件时,欲写入内容的起始地址放在$DD $DE处   

TC808部分bios调用:
JSR $E015 按键声音
JSR $E018 出错提示音
JSR $E030 延时约1秒钟
JSR $E03F 散转子程序1
JSR $E042 散转子程序2,自己较常用
JSR $E057 系统内置的debug

另外,你到GGV官方网站的汇编专区看看,有关于Tc808的很多东西。

[ 本帖最后由 dragon_ 于 2008-5-21 20:53 编辑 ]
发表于 2008-5-21 20:48:04 | 显示全部楼层
那说明你的电池电量充足,这时$040B的值就是00。电量不足的时候就不是0了。
至于A寄存器……你是怎么看A的值的?可能是我记混了,好久没玩了, 你要不然反汇编一下内置检测部分的程序看看?
 楼主| 发表于 2008-5-21 21:19:42 | 显示全部楼层
怎么反汇编那个啊,我才刚刚学,很多都不懂
寄存器X变了
发表于 2008-5-21 21:29:49 | 显示全部楼层
用工具看的话是不行的....
我以前就失误过
要把A的值存到一个地址去
发表于 2008-5-22 09:53:49 | 显示全部楼层
原帖由 jljeee 于 2008-5-21 21:19 发表
怎么反汇编那个啊,我才刚刚学,很多都不懂
寄存器X变了

那倒也是……你现在用的什么汇编工具啊?
那大概就是X寄存器吧。
 楼主| 发表于 2008-5-22 10:01:30 | 显示全部楼层
我用的是NCTOOL和WQXHEX
发表于 2008-5-22 10:17:34 | 显示全部楼层
原帖由 jljeee 于 2008-5-22 10:01 发表
我用的是NCTOOL和WQXHEX

那你应该先去学学INT中断的执行过程是什么样的。
ASMFUN808可以跟踪INT中断。
过几天考试,需要用文曲星作弊,所以我最近会修一下我的文曲星。那时给你详细解释。

[ 本帖最后由 dragon_ 于 2008-5-22 10:26 编辑 ]
发表于 2008-5-22 12:12:45 | 显示全部楼层
WQX作弊,厉害
发表于 2008-5-22 12:30:02 | 显示全部楼层
考实验,把公式编成程序输进去,然后就只用把实验数据输进去就可以抄结果了。
 楼主| 发表于 2008-5-22 13:15:40 | 显示全部楼层
原来文曲星还有这样的用途
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2025-4-29 03:46 , Processed in 0.016174 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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