//弹出式信息框
实现这样的信息框
中断调用: INT $C312
入口参数: 寄存器X放参数表地址低8位
寄存器Y放参数表地址高8位
寄存器 (A) = 00
参数表定义:
偏移 00 :80
01:信息框在 X轴位置
02:信息框在 Y轴位置
03:信息所占字节数
04:信息框的宽度 02 显示一行,04 显示两行 06 显示三行。。。
05:02 所在地址低8位
06:02 所在地址高8位
07:02
例如我们实现在屏幕上弹出信息框,显示 "这是一个信息框"
进入 NCTOOLS,按 Z + H,
先输入 信息:
从地址2000开始
V 2000
按输入法,输入 "这是一个信息框",后面用E C 命令紧接着输入 0000,作为信息结束标志
然后做参数表
这里我们确定下:
信息所在开始地址 2000
X 轴位置 09
Y 轴位置 10
字节数 0E (因为是7个汉字,所以是14个字节,即16进制 0E)
02 的地址 2019
我们从地址2010开始做表
E C命令 输入 80 00 20 09 10 0E 02 19 20 02
然后我们实现主程序,从地址2020开始输入程序
A 2020
2020: LDX #$10 ;确定表的位置
2022: LDY #$20
2024: LDA #$00 ;00 表示是弹出式信息框
2026: INT $C312 ;调用该中断,显示信息框
2029: INT $C008 ;该中断是读键中断,这样信息框能 "定"住,要不信息框一闪就没有了
202C: RTS ;结束
我们 G 2020,看看效果
这里,告诉大家一个方法,如果我们程序中多次用到信息框,那么是不是每一个信息框都要做表呢?
其实我们可以让 信息内容的开始地址固定为RAM中的一个地址,然后每次把信息内容发送到那里就可以
这样我们只要一个表,就可以实现多个信息框