1
0
mirror of https://gitlab.os-k.eu/os-k-team/kvisc.git synced 2023-08-25 14:05:46 +02:00
kvisc/vm/in/SUPER
2019-08-14 09:52:39 +02:00

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