Editing
SmartBox OS
(section)
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=== internal_vec and unknownjob_vec === The main operation of extended JobCalls rely on patching some vectors, two in fact. These two are unknownjob_vec and internal_vec. unknownjob_vec is the one which the OS calls to actually tell everybody that a JobCall has been requested which it does not know about (the JobCall MUST have been claimed before hand with OS_CALLOS, function 1, or else it is not passed on). internal_vec is the one which the OS calls in request to a NameCode or CodeName. The vectors are defined as thus: ==== internal_vec ==== ===== internal_vec 0 ===== {|class="calltable" |Purpose|| Nothing |- |Entry|| * A = 0 * X, Y, c, z = undefined |- |Exit|| Leave everything as it is and exit straight away |- |Note|| Used for claimed calls |} ===== internal_vec 1 ===== {|class="calltable" |Purpose|| NameCode request |- |Entry|| * A = 1 * X, Y, c, z = undefined * jobin_buf contains JobName (CR terminated) |- |Exit|| * if JobName recognised then ** A = 0 ** first byte of jobin_buf contains matched JobCode * if JobName not recognised then ** A = 1 ** X, Y, c, z = undefined |} ===== internal_vec 2 ===== {|class="calltable" |Purpose|| CodeName request |- |Entry|| * A = 2 * X, Y, c, z = undefined * jobin_buf contains JobCode |- |Exit|| * if JobCode recognised then ** A = 0 ** jobin_buf contains matched JobName (CR terminated) * if JobCode not recognised then ** A = 2 ** X, Y, c, z = undefined |} All other calls (ie. not 0, 1 or 2 should be passed on straight away for future expansion) ==== unknownjob_vec ==== {|class="calltable" |Purpose|| To pass on unknown JobCalls to the correct owner |- |Entry|| * A = environment (0 = internal call, 1 = serial call) * Y = JobCode * X = JOB ID of owner * c, z = undefined |- |Exit|| * if jobcode yours then ** if wrong environment then *** A = 1 *** Y = 0 *** X, c, z = undefined ** if right environment then *** perform function *** A = 0 *** Y = 0 *** X, c, z = undefined * if jobcode not yours then ** pass on with registers unaltered |}
Summary:
Please note that all contributions to Smart Box may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Smart Box:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Page
Discussion
British English
Views
Read
Edit
View history
More
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Tools
What links here
Related changes
Special pages
Page information