易码技术论坛

 找回密码
 加入易码
搜索
查看: 231383|回复: 7

[原创] WQX系统函数详解 Vol.1 - 文字输入输出

[复制链接]
发表于 2004-11-29 12:18:00 | 显示全部楼层
多来点呀!
发表于 2004-11-29 12:44:00 | 显示全部楼层
是ggv给的还是以前研究出来?
 楼主| 发表于 2004-11-29 13:07:00 | 显示全部楼层
这些是以前研究出来的,曾经发在Wqxnet.com上。
发表于 2004-11-29 13:39:00 | 显示全部楼层
。。。。。。。。。。
还要PC1000的。。。。。。。。。。。。。。。。
发表于 2004-11-29 18:47:00 | 显示全部楼层
PC1000。。。太过时了吧。。
发表于 2004-12-7 17:52:00 | 显示全部楼层
tc1000的?
不过时了吧
发表于 2004-12-8 12:19:00 | 显示全部楼层
我也研究过
3770_5095_1558.jpg
 楼主| 发表于 2004-10-5 21:11:49 | 显示全部楼层 |阅读模式
  为活跃人气,激发大家学习WQX汇编编程的兴趣。Lendy决定暑假期间在此发布《WQX系统函数详解》~欢迎有兴趣学习WQX编程的星迷踊跃参与。当然,前提是你必须要有一定的6502基础。

《WQX系统函数详解》将以NC2k系列文曲星为平台,主要公布系统函数及用法,并配套详细说明及部分实例。

P.S. 如无详细说明,则可通用于NC2000/NC2010/NC2600三种机型

□ WQX系统函数详解 Vol.1 - 文字输入输出

(一)相关地址

屏幕缓冲区:$19C0 - $1FFF

该缓冲区存放屏幕点阵信息。

文字缓冲区:中文大字体模式 $02C0 - $0323,小字体模式 $02C0 - $035D

该缓冲区存放欲显示到屏幕上的文字资料。

其余相关地址详见下面系统函数说明。

(二)相关系统函数

清屏幕缓冲区
[指令] BRK $C729
[入参] 无
[出参] 无

清文字缓冲区
[指令] BRK $C72A
[入参] 无
[出参] 无

等待按键
[指令] BRK $C009, BRK $C00A (这两个指令功能基本相同,现在就不多作说明了)
[入参] 无
[出参] A - 键值
[说明] 按键之后,寄存器A将被赋予所按按键的键值

显示文字
[指令] BRK $C719
[入参] $0391 $0392 - 显示模式(当$0391为01,$0392为00时显示大字体;当$0391为00,$0392为01时显示小字体)
       $03E8 - 内码(当$03E8为80时显示纯英文,当$03E8为40时显示GB码 简体,当$03E8为20时显示BIG5码 繁体)
[出参] 无
[说明] 将文字缓冲区内容显示到屏幕上。
[实例] 3000 LDX #$0B
       3002 LDA $3800,X
       3005 STA $02C0,X
       3008 DEX
       3009 BPL $3002
       300B RTS
       ....
       3800 这是一个实例

文字输入
[指令] BRK $CB07
[入参] X,Y   输入框状态设定的地址
       $0448 输入栏提示内容
       [输入框状态设定] 第一个字节为输入框所处屏幕位置,第二个字节为输入的字节数,第三个字节为可用输入法(一般设为21,可使用全部输入法),第4&5个字节为帮助信息地址
       [输入栏提示内容] 00 姓名,01 备注,02 课程,03 便签,04 纪念,05 行程,06 定时,07 账本,08 储蓄,09 个人,0A 邮编,0B 生字,0C 中文,0D 要事,0E 笔记,0F 查询,10 开机,11 英汉,12 录音,13 题词,14 自建,15 (无提示),16 职务,17 公司,18 简称,19 电话,1A 电邮,1B 地址,1C 便签,1D 类别,1E 血型,1F 提示
[出参] 对应的屏幕缓冲区(如输入框所处位置为14,对应则为$02C0+$14 = $02D4,即从$02D4起为所输入内容)
[实例] 在屏幕第二行第一列($14)输入文字,文字最长10($0A)个字节,可用所有输入法($21),帮助信息($00 $39)“这是帮助”
       3000 LDX #$00
       3002 LDY #$38
       3004 LDA #$03
       3006 STA $0448
       3009 BRK $CB07
       ....
       3800 $14 $0A $21 $00 $39
       ....
       3900 这是帮助

将数字转换为字符串信息
[指令] BRK $C733
[入参] $80, $81 - 欲转换的值
[出参] $82, $83, $84, $85, $86 - 转换后的字符串
[实例] 将数值270F(十进制数9999)转换为字符串信息并显示到屏幕上
       3000 BRK $C72A  ;清文字缓冲区
       3003 LDA #$0F
       3005 STA $80
       3007 LDA #$27
       3009 STA $81
       300B BRK $C733
       300E LDX #$04
       3010 LDA $82,X
       3012 STA $02C0,X
       3015 DEX
       3016 BPL $3010
       3018 BRK $C719
       301B BRK $C00A
       301E RTS


[此贴子已经被作者于2004-10-5 21:13:21编辑过]

您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

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

GMT+8, 2024-4-19 11:29 , Processed in 0.012995 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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