Difference between revisions of "Hardware projects"

From Ninerpedia
Jump to navigation Jump to search
m
Line 2: Line 2:


Here are instructions to build a [[Video Cable]] to bypass the RF modulator in order to directly connect the console to modern TV sets.
Here are instructions to build a [[Video Cable]] to bypass the RF modulator in order to directly connect the console to modern TV sets.
== Using a TI console as a keyboard ==
If you are using an emulator like MESS you can actually make good use of your old TI console: use it as a [[TI console as a USB keyboard | keyboard]].


== Various hardware concepts ==
== Various hardware concepts ==

Revision as of 17:49, 28 March 2015

Creating a video cable

Here are instructions to build a Video Cable to bypass the RF modulator in order to directly connect the console to modern TV sets.

Using a TI console as a keyboard

If you are using an emulator like MESS you can actually make good use of your old TI console: use it as a keyboard.

Various hardware concepts

A hypothetical Super-TI

How would a super TI have looked like if TI had used the most advanced processor in their collection, the TMS99000?

Let's call it the TI-99K.


Why privileged mode?

You can create a real operating system which manages several user processes, possibly from different users. As with every higher operating system, you can abstract from the hardware and leave immediate access to the operating system. The user programs will lose any direct access. This allows us to design a driver model with drivers running in kernel mode.

The first thing you will notice when writing user programs is that the LIMI command has been taken away. User programs will be unable to change the interrupt mask, even with RTWP or LST because these commands refuse to set certain bits in the status register when executed in user mode. Modifying interrupt masks is something exclusive for the kernel.

Yes, no more access to memory-mapped devices. In such a system, you just cannot allow access to the VDP or other devices. Instead, all such accesses must be done in kernel mode, and this is only accessible via XOP, which finally takes it role seriously as a system call interface. The Geneve MDOS already realizes such a concept, albeit with no protection against circumvention.

You can add a memory mapper circuit for memory paging. To prevent user processes from changing the map, the mapper should be locked and unlocked, maybe with an external command like CKON and CKOF. These commands are privileged, and so a user process will be unable to change memory maps.

All these concepts are somewhat possible without a privileged mode, and some parts (system calls, memory mapping) are realized in the Geneve. But only with a privileged mode you can ensure that the operating system will run in a safe, stable way, and you can enforce authorization and access control which cannot be compromised by a user process.

TODO: Carry on dreaming ...