hhj123 发表于 2006-7-21 13:38:00

不错,支持!

Isword 发表于 2006-7-21 13:58:00

以下是引用17th_Apostle在2006-7-21 12:54:00的发言:支持原创^_^

还有没?


近期发布一些原创的3000的汇编资料.届时,希望来关注啊

资料的首发地在我的BLOG上.请大家密切关注哦.

地址为:http://219.153.32.168/wqxblog/blog.php?uid=42


十七·烈行风 发表于 2006-7-21 12:54:00

支持原创^_^

还有没?

Eastsun 发表于 2006-7-21 17:03:00

呵呵,支持一下

qyfcool 发表于 2006-7-22 12:52:00

近期发布一些原创的3000的汇编资料.届时,希望来关注啊

资料的首发地在我的BLOG上.请大家密切关注哦.

地址为:http://219.153.32.168/wqxblog/blog.php?uid=42

好!支持!

gcwy 发表于 2006-7-25 10:06:00

好像有人写过2600的!

支持!

lcq 发表于 2006-7-28 16:18:43

我只看过画框框的程序,我的中断里是这样的边框:不过我好想自己写一个INT$CA12啊,弄更漂亮的
没法粘图片啊

SAILOR-HB 发表于 2006-8-3 10:38:17

支持原创。继续努力

gcwy 发表于 2006-8-3 15:16:52

支持

JIPU_PHIL 发表于 2006-8-6 20:57:24

有抄袭的嫌疑啊!

Isword 发表于 2006-8-6 21:17:56

应该来说是sossb整理和添加的.....呵呵.......别见怪..........

qiucaizhong 发表于 2006-8-23 17:13:50

加精华啊

yoyohenry 发表于 2006-9-2 11:18:44

不错的说~

Isword 发表于 2006-7-21 12:31:32

[原创]漫谈信息框之用法 for NC2k/2600/3000....

作者:Isword
   信息框在汇编程序中使用的频率很高,用户常常通过对信息框的操作来使用程序.所以,信息框的编辑对于程序员来说是相当的重要的,而系统自带的信息框功能还是比较强大的.笔者就重点叙述一下中断int $ca12的详细用法,希望能对新手有一定的帮助.
   int $ca12此中断的信息框,根据寄存器A存放的值不同,一共可以分为5种类型,下面,笔者就来讲讲这5种类型的信息框的具体用法.
1.弹出式信息框.
[入口参数]:
寄存器X放参数表地址低8位,寄存器Y放参数表地址高8位,寄存器A的值为#$00.
[参数表定义]:
偏移00: 80
   01: 信息文字内容开始地址低8位
   02: 信息文字内容开始地址高8位(文字以#$00结尾或换行)
   03: 信息框在X轴位置
   04: 信息框在Y轴位置
   05: 信息内容的长度(最大为#$10)
   06: 信息框宽度(#$02 显示8*16字体的1行,8*8字体的2行,#$04 显示8*16字体的2行,8*8字体的4行,#$06 8*16字体的3行,8*8字体的6行......最大只能是#$08)
   07: 文字状态地址低8位
   08: 文字状态地址高8位
   09: 文字状态(#$02 显示8*16字体;#$04 显示8*8字体;#$82 显示8*16反显字体;#$84 显示8*8反显字体.......)
[实例]:
main:
LDA #$00
LDX #<table
LDY #>table
INT $ca12
INT $c006(2600=c00a);按键等待
RTS
table:
.db $80
.dw l2
.db $13 $10 $0b $02
.dw l1
l1:
.db $02
l2:
.db "hello world",$00,$00

2.选择式信息框.
[入口参数]:
寄存器X放参数表地址低8位,寄存器Y放参数表地址高8位,寄存器A=#$02,显示问号,寄存器A=#$01,显示感叹号.
[参数表定义]:
偏移   00: 80
      01: 信息内容开始地址低8位
      02: 信息内容开始地址高8位
      03: 信息框在X轴位置
      04: 信息框在Y轴位置
      05: 信息内容的长度(如果显示是4个汉字,这里就是08,每个菜单项大小必须一样,最大为#$10)
      06: 信息框宽度(#$02 显示8*16字体的1行,$04 显示8*16字体的2行,#$06 8*16字体的3行......最大只能是#$08)
      07: 文字状态地址低8位
      08: 文字状态地址高8位
      09: 文字状态(#$02 显示8*16字体;#$04 显示8*8字体;#$82 显示8*16反显字体;#$84 显示8*8反显字体.......)
[注意点]:
使用int $ca12中断后,用户选择是与否的结果保存在寄存器A里,若选择了是,寄存器A的值为#$79,若选择了否,寄存器A的值不为#$79.
[实例]:略.

3.菜单选择框:
[入口参数]:
寄存器X放参数表地址低8位,寄存器Y放参数表地址高8位,寄存器A的值为#$03.
[参数表定义]:
偏移   00: 80/82(80时为圆点选择菜单,82时为条形选择菜单)
      01: 信息内容开始地址低8位
      02: 信息内容开始地址高8位
      03: 信息框在X轴位置
      04: 信息框在Y轴位置
      05: 信息内容的长度(如果显示是4个汉字,这里就是08,每个菜单项大小必须一样,最大为#$10)
      06: 信息框宽度(#$02 显示8*16字体的1行,$04 显示8*16字体的2行,#$06 8*16字体的3行......最大只能是#$08)
      07: 文字状态地址低8位
      08: 文字状态地址高8位
      09: 执行菜单项开始地址低8位
      0A: 执行菜单项开始地址高8位         
      0B: 文字状态(#$02 显示8*16字体;#$04 显示8*8字体;#$82 显示8*16反显字体;#$84 显示8*8反显字体.......)
      0C: 第一个菜单项执行地址低8位
      0D: 第一个菜单项执行地址高8位
      0E: 第二个菜单项执行地址低8位
      0F: 第二个菜单项执行地址高8位
      ........
[实例]:略.

   值得注意的地方是:此中断在超过使用两个时会出现错误的,即在屏幕的中央出现"error"的字样,解决的方法是:每次使用前使$0661=#$00就可以了
比如:
      lda $0661
      pha
      lda #$00
      sta $0661
      子程序;调用int $ca12
      pla
      sta $0661
      rts
   关于int $ca12的详细用法,笔者就此收笔,望可以对新手有所帮助...




相关连接点这里
页: [1]
查看完整版本: [原创]漫谈信息框之用法 for NC2k/2600/3000....