在汇编语言中调用DOS命令
(二)、对于有预置参数的DOS命令,可以模拟键入DOS命令后,由DOS解释执行的方法,在键盘缓冲区$200开始的单元,依次放入DOS命令及预置参数的ASCII码,再调用入口为$9FCD的DOS命令扫描子程序,即可达到调用DOS的目的。如DOS命令LOCKHELLO的ASCII码依次为:CCCFC3CBC8C5CCCCCF8D,可用如下汇编程序来实现这一功能。
程序中,$320单元存放DOS命令的ASCII码的总数(含回车键),从$321单元开始,依次放入DOS命令的ASCII码,且最后必须有CTRL_M(回车)的代码8K,这一点千万不可忽略。这样,我们就可以用JSR$0300来达到DOS命令LOCKHELLO的目的。对于其它的DOS命令,亦可仿照所示的汇编程序编写。
0300-LDY #$00
0302-LDA $0321,Y
0305-STA $0200,Y
0308-INY
0309-CPY $0320
030C-BNE $0302
030E-JSR $9FCD
0311-RTS
0320:0A CC CF C3 CB
0325:C8 C5 CC CC CF 8D
(王建民)