diff --git a/boot/rocket.ks b/boot/rocket.ks index 8a5fb47..1a1b969 100644 --- a/boot/rocket.ks +++ b/boot/rocket.ks @@ -1,5 +1,11 @@ -COPYPATH("0:/noop", ""). -COMPILE "0:/launch" to "1:/launch". -COMPILE "0:/lib/guidance" to "1:/lib/guidance". +// rocketOS bootstrapping sequence -SET core:bootfilename to "noop". +// Install software. +compile "0:/os/rocketos" to "1:/boot/rocketos". +compile "0:/lib/guidance" to "1:/lib/guidance". +compile "0:/launch" to "1:/launch". + +// Set OS to boot and restart. +set core:bootfilename to "boot/rocketos". + +reboot. diff --git a/launch.ks b/launch.ks index 67d7d70..e912f82 100644 --- a/launch.ks +++ b/launch.ks @@ -4,6 +4,11 @@ local APOAPSIS_TARGET is 80000. local GRAVITY_TURN_START is 5000. SensorCheck(). +// Configure subsystems. +CORE:PART:GETMODULE("kOSProcessor"):DOEVENT("Open Terminal"). +RCS off. +SAS off. + // Countdowns are cute. print "Initiating automated launch sequence". from { local x is 5. } until x = 0 step { set x to x - 1. } do { @@ -12,10 +17,6 @@ from { local x is 5. } until x = 0 step { set x to x - 1. } do { } print "Launching". -// Disable subsystems. -RCS off. -SAS off. - // throttle controls when TWR() > 1.5 then { if SHIP:ALTITUDE > 32000 { @@ -23,9 +24,7 @@ when TWR() > 1.5 then { return false. } - local newThrot is ThrottleToTWR(1.5). - print "Setting throttle to " + newThrot. - lock THROTTLE to newThrot. + lock THROTTLE to ThrottleToTWR(1.5). return true. } @@ -39,11 +38,18 @@ lock STEERING to heading(90, 85, -90). wait until SHIP:ALTITUDE > GRAVITY_TURN_START. print "Beginning gravity turn". -until SHIP:APOAPSIS > 80000 { - local angle is max(30, SHIP:PROGRADE:PITCH - 2). +until SHIP:ORBIT:APOAPSIS > 80000 { + local adjustedPrograde is SHIP:ORBIT:PROGRADE * NORTH. + local angle is max(30, adjustedPrograde:pitch). + print "Adjusted Prograde = " + adjustedPrograde. + print "Angle = " + angle. lock STEERING to heading(90, angle, -90). wait 0.001. } print "Releasing controls. Good luck, Kerman!". set THROTTLE to 0.0. +unlock THROTTLE. +unlock STEERING. +wait 5. +CORE:PART:GETMODULE("kOSProcessor"):DOEVENT("Close Terminal"). diff --git a/os/rocketos.ks b/os/rocketos.ks new file mode 100644 index 0000000..9b6f667 --- /dev/null +++ b/os/rocketos.ks @@ -0,0 +1,13 @@ +function launchButtonPressed { + run "launch". +} + +// Button panel +local interface is gui(200). + +// Launch button +local launchButton is interface:addbutton("Launch"). +set launchButton:onClick to launchButtonPressed@. +interface:show(). + +wait until false.