further cleanup of message callback changes
[dcpu16] / docs / spc2000.txt
1 NE_SPC2000 v1.1
2
3 \ | ___
4 |\ \| ___
5 | \
6
7 NYA ELEKTRISKA
8 innovation information
9
10
11 DCPU-16 Hardware Info:
12 Name: SPC2000 - Suspension Chamber 2000
13 ID: 0x40e41d9d, version: 0x005e
14 Manufacturer: 0x1c6c8b36 (NYA_ELEKTRISKA)
15
16
17 ======================= WARNING WARNING WARNING WARNING ========================
18 FERMIONS NEAR THE ACTIVATION RADIUS ARE CATASTROPHICALLY DESTROYED. DO NOT
19 USE NEAR EARTH OR MARS OR ANY OTHER FUTURE EARTH COLONIES. DO NOT TAMPER
20 WITH THE VACUUM DETECTOR. DO NOT USE IN AN UNEVEN GRAVITATIONAL FIELD. DO
21 NOT USE WHEN ROTATING. DO NOT USE WHEN ACCELERATING. ABSOLUTELY NO WARRANTY
22 IS PROVIDED, USE AT YOUR OWN RISK.
23 THE ZEF882 INCLUDED IN THIS SUSPENSION CHAMBER IS ILLEGAL IN ALL COUNTRIES.
24 ======================= WARNING WARNING WARNING WARNING ========================
25
26 Description:
27 The SPC2000 is a deep sleep cell based on the ZEF882 time dilation field
28 generator (available from Polytron Corporation Incorporated).
29 It provides safe and nearly instantaneous time passage, making long journeys
30 in space much easier on the passengers, and allowing cargo to reach its
31 destination with minimal aging occurring.
32 Due to the nature of the ZEF882, it affects the entire vessel (50 meter
33 radius, and will only engage in a near vacuum. Once the SPC2000 is active,
34 the vessel will be almost nowhere to an external observer, and detection of
35 the vessel is beyond unlikely.
36 Because of the strong extra-dimensional acceleration and non-linear temporal
37 distortion that occurs, it's highly recommended that passengers are strapped
38 in and asleep when triggering the SCP2000.
39
40
41 Improvements:
42 * Added the ability to set the unit to skip to something other than the
43 default setting of milliseconds.
44
45
46 Interrupt behavior:
47 When a HWI is received by the SPC2000, it reads the A register and does one
48 of the following actions:
49
50 0: GET_STATUS
51 Sets the C register to 1 if the SPC2000 is ready to trigger. If it's not,
52 the B register is set to one of the following values:
53 0x0000: ######################## - EVACUATE VESSEL IMMEDIATELY
54 0x0001: Not in a vacuum
55 0x0002: Not enough fuel
56 0x0003: Gravitational forces too uneven
57 0x0004: Too much angular momentum
58 0x0005: One or more cell doors are open
59 0x0006: Mechanical error
60 0xffff: Unknown error - EVACUATE VESSEL IMMEDIATELY
61 1: SET_UNIT_TO_SKIP
62 Reads the B register, and reads a 64 bit number from memory address B
63 in big endian, and sets the number of units to skip to that number.
64 2: TRIGGER_DEVICE
65 Performs GET_STATUS, and if C is 0, triggers the SCP2000. The status can
66 be read as the result of the GET_STATUS call.
67 3: SET_SKIP_UNIT
68 Reads the B register, and sets the size of the unit to skip to one of:
69 0x0000: Milliseconds
70 0x0001: Minutes
71 0x0002: Days
72 0x0003: Years
73
74
75 A message from Ola:
76 Good morning,
77
78 Thanks for purchasing this piece of hardware! I hope it will enlighten you
79 and give you new hope in life. As this suspension chamber basically works as
80 a one way time machine, I suppose I should wish you a pleasant journey, and
81 ask of you to enjoy the future. It is yours now. All of it.
82
83 - Ola Kristian Carlsson
84