8-Bit Software

The BBC and Master Computer Public Domain Library

Back to 8BS Or Back to Disassembly


Page Last Altered:

BE87 OSCLI

Submitted by Steve Fewell

Description:

[BE87] Call &BE36 to do the following:
* Set BASIC Text Pointer B offset to BASIC Text Pointer A offset.
* Get result of expression at BASIC Text Pointer B.
* Issue 'Type mismatch' error if the result is not a String value.
* Call routine &BE25 to Store a carriage return (#&0D) character at the end of the String, and to set &37-&38
to point the the SWA address (&0600).
* Call &9B91 to check that the Statement is terminated correctly.
This obtains the ASCII String specified after the OSCLI keyword and appends a '<CR>' character to the end of the SWA value
so that the string is in the correct format to be processed by the Operating System as a MOS command - ready for an operating
system call to OSCLI (&FFF7) [which requires a <cr> to terminate the command String].

Set X (LSB - &00) and Y (MSB - &06) to the SWA address (&0600). This is the address of the command to send
to the operating system command line interpreter routine (OSCLI).
Call OSCLI (&FFF7) to execute the Operating System ('*') command.
Jump to &9005 to execute the next BASIC command/statement.


Disassembly for the OSCLI routine

BE87 6 032 054 190 20 36 BE JSR &BE36 Obtain string value and append an '<cr>' character to the string
BE8A   162 000 A2 00 LDX#&00
BE8C   160 006 A0 06 LDY#&06
BE8E   032 247 255 20 F7 FF JSR &FFF7   OSCLI
BE91   128 024 80 18 BRA 24 --> &BEAB   [JMP &9005 Execute next statement]

 


 Back to 8BS
Or