//系统菜单函数A

  1.菜单A

    如图示的菜单:

 中断调用: INT $C205

  入口参数:菜单参数表的低8位地址送寄存器X,

          高8位地址送寄存器Y

  参数表定义:

  偏移  00: 09

        01: 菜单项个数

        02:第1个菜单项对应程序入口地址低8位

        03:第1个菜单项对应程序入口地址高8位

        04:第1个菜单项对应帮助内容开始地址低8位

        05:第1个菜单项对应帮助内容开始地址高8位

        .

        .

        .

        XX:    第N个菜单项对应程序入口地址低8位

        XX + 1:第N个菜单项对应程序入口地址低8位

        XX + 2:第N个菜单项对应帮助内开始地址低8位

        XX + 3:第N个菜单项对应帮助内容开始地址高8位

        然后下面紧接着就是:

        第1个菜单项的文字说明,例如上面的"1.汉英字典",以 FF 结尾

        第2个菜单项的文字说明,例如上面的"2.英英字典",以 FF 结尾

        .

        .

        .

        第N个菜单项的文字说明,以 FF 结尾

 

   例: 设计一个如图所示的菜单

      功能:当选中第1个菜单项,弹出信息框,显示 "选中第1菜单项"

          当选中第2个菜单项,弹出信息框,显示 "选中第2菜单项"

          当选中第3个菜单项,弹出信息框,显示 "选中第3菜单项"

      设计步骤:

     进入NCTOOLS,同时按住 Z,H 键,将地址2000-2FFF全部清为 FF

    设计思路:

    ①先做弹出式信息框,这里由于弹出的信息仅相差一个字节,所以我们可以做一个子程序,寄存器A放31,32,或33

然后调用这个子程序,该子程序把寄存器A的值先送哪个地址,再中断调用

    ②然后做帮助,这里帮助内容简单些,是"菜单帮助内容",后面加 00 00,作为结束标志

    ③然后做菜单参数表

    ④最后实现菜单

   

    V 2000

    输入法  输入  选中第N菜单项,后面紧接着用 E C 命令输入 0000,作为结束标志

    如图:

  做弹出信息框参数表,从地址2010开始

  E C 2010

  输入

  80 00 20 09 11 0D 02 19 20 02   

  如图:

  实现弹出信息框子程序,要显示的数字放寄存器A就可以,例如 (A) = 31,那么就显示 选中第1菜单项

  A 2020

  2020: STA $2006

  2023:  LDX #$10

  2025:  LDY #$20

  2027:  LDA #$00

  2029:  INT $C312

  202C:  INT $C008

  202F:  RTS

 

  A 2030    显示信息框   选中第1菜单项

  2030: LDA #$31

  2032: JSR $2020

  2035: RTS

 

 A 2038    显示信息框   选中第2菜单项

  2038: LDA #$32

  203A: JSR $2020

  203D: RTS

 

 A 2040    显示信息框   选中第3菜单项

   2040: LDA #$33

   2042: JSR $2020

   2045: RTS

 

做菜单帮助内容

从地址2048开始:

输入法  输入  "菜单帮助内容",注意后面输入结束标志 0000

 

现在我们确定一下

第一菜单项入口地址  2030

第二菜单项入口地址  2038

第三菜单项入口地址  2040

帮助入口地址       2048

 

做菜单参数表

从地址 2060开始

E C 2060

输入 09 03 30 20 48 20 38 20 48 20 40 20 48 20

按 输入法 输入

"1.菜单项1"  后面紧接 FF

"2.菜单项2"  后面紧接 FF

"3.菜单项3"  后面紧接 FF

 

实现整个程序主程序

从地址2088开始

A 2088

2088: LDX #$60

208A: LDY #$20

208C: INT $C505

208F: RTS

 G 2088