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!
== Modules == The module is located at &8000 in memory, and should be a EPROM placed in the second ROM socket in the controller (ie. the top RAM socket). This module is primary designed to turn the Controller into a dedicated task, making it perform some function from switch on. It could also be used to add more permant JobCalls to the Controller, in the process taking up much less RAM), but because of there being only one Module present this feature is limited, and is much more suited to a collection of the user's own personal routines. For the OS to recognise a module as being in place the text "Module" is looked for, the layout of a module should be like this (starting at &8000): {|class="wikitable" !Offset!!Value!!Comment |- |0||"Module"||The OS checks for this string |- |6||0||End of check string |- |7||Language entry||Address of 'Language' entry |- |9||Service entry||Address of 'Service' entry |- |11||"<Module Title>"||Module title |- | ||0||End of Module title |- | ||"<Module part>"||Part Module Title |- | ||0||End of Part Module Title |- | ||"x.xx"||Part version number |- | ||&FF||End of parts list |} The language entry is a 2 byte value holding the address of the language entry routine, this is called on reset, if the BCD is set correctly. A value of less than &8000 means there is no valid language entry and any language calls are ignored. If a RTS is made the OS carries on as it would have if there wasn't a language call. The service entry is a 2 byte value holding the address of the service entry routine, this is called at various appropriate moments with service numbers in A. A list of current calls is thus: * 0 - Not used * 1 - Unknown Job Code * 2 - Centisecond call * 3 - irq2 (unknown IRQ) * 4 - internal_vec call (exit with A=0 to claim) * 254 - RESET * 255 - BRK On exit all registers and flags should be preserved. For call 1 the unknown job value is held in the Y register, the environment is held in the X register, on exit, X should contain the flag, as A does from the exit of unknownjob_vec. For the rest of calls, X and Y are undefined. For both Service and Language entry points, a value of 0 means "there is no valid routine" and the module isn't called for that type of entry.
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