Difference between revisions of "OSCLI"
(Corrected entry registers) |
(→Notes) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
==Specification== | ==Specification== | ||
{| cellpadding="0" cellspacing="0" border="1" | {| cellpadding="0" cellspacing="0" border="1" | ||
− | | 6502 || Z80 || 6809 || PDP11 || 80x86 || 32016 || ARM || RISC-V || align="left" | '''On entry:''' || align="left" | '''On exit:''' | + | | 6502 || Z80 || 6809 || PDP11 || 80x86 || 32016 || ARM || 68000 || RISC-V || align="left" | '''On entry:''' || align="left" | '''On exit:''' |
|- align="center" valign="top" | |- align="center" valign="top" | ||
− | | YX || HL || X || R0 || BX || R1 || R0 || A0 || align="left" | => command string, terminated with CR || align="left" | undefined | + | | YX || HL || X || R0 || BX || R1 || R0 || D0 || A0 || align="left" | => command string, terminated with CR || align="left" | undefined |
|} | |} | ||
Line 18: | Line 18: | ||
* Z80 Entry Address: &FFF7, vectors via &FFF8 | * Z80 Entry Address: &FFF7, vectors via &FFF8 | ||
* 6809 Entry Address: &FFF7, vectors via &FFF8 | * 6809 Entry Address: &FFF7, vectors via &FFF8 | ||
− | * 80x86 Entry Address: INT & | + | * 80x86 Entry Address: INT &4C, vectors via 0000:0130 |
* 32000 Entry Address: SVC &08 | * 32000 Entry Address: SVC &08 | ||
* PDP11 Entry Address: EMT 1 | * PDP11 Entry Address: EMT 1 | ||
* ARM Entry Address: SWI &06 "OS_CLI", vector &05 | * ARM Entry Address: SWI &06 "OS_CLI", vector &05 | ||
+ | * 68000 Entry Address: MOV #&06,A0:TRAP 12 | ||
* RISC-V Entry Address: ECALL &AC0001 | * RISC-V Entry Address: ECALL &AC0001 | ||
+ | |||
+ | ==Notes== | ||
+ | Some systems allow a command line to be prefixed to modify the action: | ||
+ | * '''<code>|name</code>''' : comment | ||
+ | * '''<code>/name</code>''' : run file, similar to '''<code>*RUN</code>''' | ||
+ | * '''<code>%name</code>''' : bypass aliasing (eg RISC OS) | ||
+ | * '''<code>@name</code>''' : pass command to host system (eg HostFS) | ||
+ | * '''<code>\name</code>''' : only check as filing system command, don't look for file (MDFS, HADFS) | ||
+ | |||
+ | Additionally, systems with a FileSwitch implement: | ||
+ | * '''<code>fscommand:name</code>''' : temporarily select filing system '''<code>fscommand</code>''' while executing '''<code>name</code>''' | ||
+ | * '''<code>-fscommand-name</code>''' : temporarily select filing system '''<code>fscommand</code>''' while executing '''<code>name</code>''' | ||
+ | |||
+ | The two can be combined, so - where supported - you could use: | ||
+ | * '''<code>fscommand:/name</code>''' : temporarily select filing system and run file. | ||
[[User:Jgharston|Jgharston]] ([[User talk:Jgharston|talk]]) 20:33, 10 September 2023 (CEST) | [[User:Jgharston|Jgharston]] ([[User talk:Jgharston|talk]]) 20:33, 10 September 2023 (CEST) | ||
+ | [[User:Jgharston|Jgharston]] ([[User talk:Jgharston|talk]]) 02:51, 29 May 2024 (CEST) |
Latest revision as of 01:11, 5 June 2024
OSCLI passes a command to the MOS, ROMs and filing system to execute.
Specification
6502 | Z80 | 6809 | PDP11 | 80x86 | 32016 | ARM | 68000 | RISC-V | On entry: | On exit: |
YX | HL | X | R0 | BX | R1 | R0 | D0 | A0 | => command string, terminated with CR | undefined |
Calling from BBC BASIC
- OSCLI and inline *commands call OSCLI
Entry points
- BBC BASIC Entry Address: &FFF7
- 6502 Entry Address: &FFF7, vectors via &0208
- Z80 Entry Address: &FFF7, vectors via &FFF8
- 6809 Entry Address: &FFF7, vectors via &FFF8
- 80x86 Entry Address: INT &4C, vectors via 0000:0130
- 32000 Entry Address: SVC &08
- PDP11 Entry Address: EMT 1
- ARM Entry Address: SWI &06 "OS_CLI", vector &05
- 68000 Entry Address: MOV #&06,A0:TRAP 12
- RISC-V Entry Address: ECALL &AC0001
Notes
Some systems allow a command line to be prefixed to modify the action:
-
|name
: comment -
/name
: run file, similar to*RUN
-
%name
: bypass aliasing (eg RISC OS) -
@name
: pass command to host system (eg HostFS) -
\name
: only check as filing system command, don't look for file (MDFS, HADFS)
Additionally, systems with a FileSwitch implement:
-
fscommand:name
: temporarily select filing systemfscommand
while executingname
-
-fscommand-name
: temporarily select filing systemfscommand
while executingname
The two can be combined, so - where supported - you could use:
-
fscommand:/name
: temporarily select filing system and run file.
Jgharston (talk) 20:33, 10 September 2023 (CEST) Jgharston (talk) 02:51, 29 May 2024 (CEST)