//弹出式信息框

 实现这样的信息框

 

 中断调用: 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中的一个地址,然后每次把信息内容发送到那里就可以

这样我们只要一个表,就可以实现多个信息框