mirror of
https://gitlab.os-k.eu/os-k-team/kvisc.git
synced 2023-08-25 14:05:46 +02:00
88 lines
1.8 KiB
Plaintext
88 lines
1.8 KiB
Plaintext
# The OS/K Team licenses this file to you under the MIT license.
|
|
# See the LICENSE file in the project root for more information.
|
|
|
|
#---------------------------------------------------------------------------#
|
|
# Supervisor only instructions #
|
|
#---------------------------------------------------------------------------#
|
|
|
|
#
|
|
# Crash virtual machine (CRASH)
|
|
#
|
|
# THROW #1023
|
|
#
|
|
# Throws:
|
|
# #SYS if not in supervisor mode
|
|
# #ILL if disabled through DV
|
|
# #1023 otherwise
|
|
#
|
|
crash 0
|
|
|
|
#
|
|
# Initiate machine shutdown (STOP)
|
|
#
|
|
# THROW #SHT
|
|
#
|
|
# Throws:
|
|
# #SYS if not in supervisor mode
|
|
# #ILL if disabled through DV
|
|
# #SHT otherwise
|
|
#
|
|
stop 0
|
|
|
|
#
|
|
# Halt the processor until next E/I (HLT)
|
|
#
|
|
# Throws:
|
|
# #SYS if not in supervisor mode
|
|
#
|
|
hlt 0
|
|
|
|
#---------------------------------------------------------------------------#
|
|
# E/I handling instructions #
|
|
#---------------------------------------------------------------------------#
|
|
|
|
#
|
|
# Trap into exception handler (TRAP)
|
|
#
|
|
# Throw:
|
|
# #ILL if $1 > 255
|
|
# #($1+256) otherwise
|
|
#
|
|
trap 1
|
|
|
|
#
|
|
# Return from exception/interrupt (IRET)
|
|
#
|
|
# Throws:
|
|
# #SYS if not in supervisor mode
|
|
#
|
|
iret 0
|
|
|
|
cli 0
|
|
sti 0
|
|
|
|
#---------------------------------------------------------------------------#
|
|
# Device control instructions #
|
|
#---------------------------------------------------------------------------#
|
|
|
|
#
|
|
# Call an architecture-reserved function slot of device (DEVCTL)
|
|
#
|
|
# See dv/DEVAPI
|
|
#
|
|
# Throws:
|
|
# #SYS if not in supervisor mode
|
|
#
|
|
devctl 2
|
|
|
|
#
|
|
# Call a device-defined function slot of device (IOCALL)
|
|
#
|
|
# See dv/DEVAPI
|
|
#
|
|
# Throws:
|
|
# #SYS if not in supervisor mode
|
|
#
|
|
iocall 2
|
|
|