OSCLI

From BeebWiki
Jump to: navigation, search

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 system fscommand while executing name
  • -fscommand-name : temporarily select filing system fscommand while executing name

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)