http, pcspeaker driver

Former-commit-id: a3ad38695e8c1e1040a6a3f4b8470217e8a98489
Former-commit-id: cd3809edcae7b26e7b3d846dab17f1f63761f30f
This commit is contained in:
Song Minjae
2016-09-29 23:04:04 +09:00
parent 793bca4b55
commit 1b4aca320f
35 changed files with 678 additions and 385 deletions

View File

@@ -2,11 +2,22 @@
# 0: neutral, 1: amicable (welcoming), -1: hostile (will not barter, like 'unassigned' neutral)
# -2: enemy (this is the holy war! WAAAGH!!)
# Put some ideas here:
# ABSTRACT (ideologies, philosophies, etc.) #
# war: WAAAGH!!
# randomness: All hail the Random Number God!
# strength: tranees; disciplinants
# brute: mostly "brute" wild mobs, or spheres that is fond of brute-ness
# TANGIBLE (certain creatures, (gem)stones, metals) #
# steels: dwarven1
# stones: dwarven2
# octocat: a chimera creature of octopus and cat. put that to the gitchen!
"↓from to→";"strength";"harmony";"war";"randomness";"wealth";"brute";"helix"
"strength" ; "1"; "1"; "0"; "0"; "0"; "0"; "0"
"harmony" ; "0"; "1"; "-1"; "0"; "0"; "0"; "0"
Can't render this file because it contains an unexpected character in line 8 and column 17.

View File

@@ -20,8 +20,8 @@ import org.newdawn.slick.state.StateBasedGame
class StateVTTest : BasicGameState() {
// HiRes: 100x64, LoRes: 80x25
val computerInside = BaseTerrarumComputer()
val vt = SimpleTextTerminal(SimpleTextTerminal.WHITE, 80, 25,
val computerInside = BaseTerrarumComputer(8)
val vt = SimpleTextTerminal(SimpleTextTerminal.GREEN, 80, 25,
computerInside, colour = false, hires = false)

View File

@@ -1,6 +1,5 @@
package net.torvald.terrarum.virtualcomputer.computer
import com.jme3.math.FastMath
import org.luaj.vm2.Globals
import org.luaj.vm2.LuaError
import org.luaj.vm2.LuaTable
@@ -11,6 +10,7 @@ import org.luaj.vm2.lib.jse.JsePlatform
import net.torvald.terrarum.KVHashMap
import net.torvald.terrarum.gameactors.roundInt
import net.torvald.terrarum.virtualcomputer.luaapi.*
import net.torvald.terrarum.virtualcomputer.peripheral.*
import net.torvald.terrarum.virtualcomputer.terminal.*
import net.torvald.terrarum.virtualcomputer.worldobject.ComputerPartsCodex
import org.lwjgl.BufferUtils
@@ -30,10 +30,13 @@ import java.util.*
* @param term : terminal that is connected to the computer fixtures, null if not connected any.
* Created by minjaesong on 16-09-10.
*/
class BaseTerrarumComputer() {
class BaseTerrarumComputer(peripheralSlots: Int) {
var maxPeripherals: Int = peripheralSlots
private set
val DEBUG_UNLIMITED_MEM = false
val DEBUG = false
val DEBUG = true
lateinit var luaJ_globals: Globals
@@ -71,6 +74,8 @@ class BaseTerrarumComputer() {
lateinit var term: Teletype
private set
val peripheralTable = ArrayList<Peripheral>()
// os-related functions. These are called "machine" library-wise.
private val startupTimestamp: Long = System.currentTimeMillis()
/** Time elapsed since the power is on. */
@@ -102,6 +107,28 @@ class BaseTerrarumComputer() {
computerValue["boot"] = computerValue.getAsString("hda")!!
}
fun attachPeripheral(peri: Peripheral) {
if (peripheralTable.size < maxPeripherals) {
peripheralTable.add(peri)
peri.loadLib()
println("[BaseTerrarumComputer] loading peripheral $peri")
}
else {
throw Error("No vacant peripheral slot")
}
}
fun detachPeripheral(peri: Peripheral) {
if (peripheralTable.contains(peri)) {
peripheralTable.remove(peri)
peri.unloadLib()
println("[BaseTerrarumComputer] unloading peripheral $peri")
}
else {
throw IllegalArgumentException("Peripheral not exists: $peri")
}
}
fun attachTerminal(term: Teletype) {
this.term = term
initSandbox(term)
@@ -126,7 +153,7 @@ class BaseTerrarumComputer() {
Filesystem(luaJ_globals, this)
HostAccessProvider(luaJ_globals, this)
Input(luaJ_globals, this)
Http(luaJ_globals, this)
PeripheralInternet(luaJ_globals, this)
PcSpeakerDriver(luaJ_globals, this)
WorldInformationProvider(luaJ_globals)
@@ -146,7 +173,16 @@ class BaseTerrarumComputer() {
luaJ_globals["computer"] = LuaTable()
// rest of the "computer" APIs should be implemented in BOOT.lua
if (DEBUG) luaJ_globals["emittone"] = ComputerEmitTone(this)
// load every peripheral if we're in DEBUG
if (DEBUG) {
maxPeripherals = 32
attachPeripheral(PeripheralInternet(luaJ_globals, this))
attachPeripheral(PeripheralPSG(luaJ_globals, this))
// ...
}
}
var threadTimer = 0
@@ -253,7 +289,7 @@ class BaseTerrarumComputer() {
class ComputerEmitTone(val computer: BaseTerrarumComputer) : TwoArgFunction() {
override fun call(millisec: LuaValue, freq: LuaValue): LuaValue {
computer.playTone(millisec.toint(), freq.tofloat())
computer.playTone(millisec.checkint(), freq.checkdouble())
return LuaValue.NONE
}
}
@@ -264,7 +300,7 @@ class BaseTerrarumComputer() {
private val beepMaxLen = 10000
// let's regard it as a tracker...
private val beepQueue = ArrayList<Pair<Int, Float>>()
private val beepQueue = ArrayList<Pair<Int, Double>>()
private var beepCursor = -1
private var beepQueueLineExecTimer = 0 // millisec
private var beepQueueFired = false
@@ -285,7 +321,8 @@ class BaseTerrarumComputer() {
// complete emitTone queue
if (beepCursor >= beepQueue.size) {
clearBeepQueue()
if (DEBUG) println("!! Beep queue clear")
AL.destroy()
if (DEBUG) println("[BaseTerrarumComputer] !! Beep queue clear")
}
// actually play queue
@@ -303,7 +340,7 @@ class BaseTerrarumComputer() {
beepQueueLineExecTimer = 0
}
fun enqueueBeep(duration: Int, freq: Float) {
fun enqueueBeep(duration: Int, freq: Double) {
beepQueue.add(Pair(Math.min(duration, beepMaxLen), freq))
}
@@ -326,48 +363,48 @@ class BaseTerrarumComputer() {
*
* ,---. (true, true) ,---- (true, false) ----. (false, true) ----- (false, false)
*/
private fun makeAudioData(duration: Int, freq: Float,
private fun makeAudioData(duration: Int, freq: Double,
rampUp: Boolean = true, rampDown: Boolean = true): ByteBuffer {
val audioData = BufferUtils.createByteBuffer(duration.times(sampleRate).div(1000))
val realDuration = duration * sampleRate / 1000
val chopSize = freq / sampleRate
val amp = Math.max(4600f / freq, 1f)
val nHarmonics = if (freq >= 22050f) 1
else if (freq >= 11025f) 2
else if (freq >= 5512.5f) 3
else if (freq >= 2756.25f) 4
else if (freq >= 1378.125f) 5
else if (freq >= 689.0625f) 6
val amp = Math.max(4600.0 / freq, 1.0)
val nHarmonics = if (freq >= 22050.0) 1
else if (freq >= 11025.0) 2
else if (freq >= 5512.5) 3
else if (freq >= 2756.25) 4
else if (freq >= 1378.125) 5
else if (freq >= 689.0625) 6
else 7
val transitionThre = 974.47218f
val transitionThre = 974.47218
// TODO volume ramping?
if (freq == 0f) {
if (freq == 0.0) {
for (x in 0..realDuration - 1) {
audioData.put(0x00.toByte())
}
}
else if (freq < transitionThre) { // chopper generator (for low freq)
for (x in 0..realDuration - 1) {
var sine: Float = amp * FastMath.cos(FastMath.TWO_PI * x * chopSize)
if (sine > 0.79f) sine = 0.79f
else if (sine < -0.79f) sine = -0.79f
var sine: Double = amp * Math.cos(Math.PI * 2 * x * chopSize)
if (sine > 0.79) sine = 0.79
else if (sine < -0.79) sine = -0.79
audioData.put(
(0.5f + 0.5f * sine).times(0xFF).roundInt().toByte()
(0.5 + 0.5 * sine).times(0xFF).roundInt().toByte()
)
}
}
else { // harmonics generator (for high freq)
for (x in 0..realDuration - 1) {
var sine: Float = 0f
var sine: Double = 0.0
for (k in 1..nHarmonics) { // mix only odd harmonics in order to make a squarewave
sine += FastMath.sin(FastMath.TWO_PI * (2*k - 1) * chopSize * x) / (2*k - 1)
sine += Math.sin(Math.PI * 2 * (2*k - 1) * chopSize * x) / (2*k - 1)
}
audioData.put(
(0.5f + 0.5f * sine).times(0xFF).roundInt().toByte()
(0.5 + 0.5 * sine).times(0xFF).roundInt().toByte()
)
}
}
@@ -377,7 +414,7 @@ class BaseTerrarumComputer() {
return audioData
}
private fun playTone(leninmilli: Int, freq: Float) {
private fun playTone(leninmilli: Int, freq: Double) {
audioData = makeAudioData(leninmilli, freq)

View File

@@ -1,12 +0,0 @@
package net.torvald.terrarum.virtualcomputer.luaapi
import org.luaj.vm2.Globals
import net.torvald.terrarum.virtualcomputer.computer.BaseTerrarumComputer
/**
* Provides internet access, if @param computer has internet card(s).
*
* Created by minjaesong on 16-09-24.
*/
internal class Http(globals: Globals, computer: BaseTerrarumComputer) {
}

View File

@@ -1,9 +0,0 @@
package net.torvald.terrarum.virtualcomputer.luaapi
/**
* Virtual driver for 4-track squarewave soundcard
*
* Created by minjaesong on 16-09-27.
*/
class Kukeiha {
}

View File

@@ -6,23 +6,79 @@ import org.luaj.vm2.LuaValue
import org.luaj.vm2.lib.TwoArgFunction
import org.luaj.vm2.lib.ZeroArgFunction
import net.torvald.terrarum.virtualcomputer.computer.BaseTerrarumComputer
import org.luaj.vm2.lib.OneArgFunction
/**
* PC Speaker driver and arpeggiator (MONOTONE-style 4 channels)
*
* Notes are tuned to A440, equal temperament. This is an ISO standard.
*
* Created by minjaesong on 16-09-27.
*/
class PcSpeakerDriver(globals: Globals, host: BaseTerrarumComputer) {
class PcSpeakerDriver(val globals: Globals, host: BaseTerrarumComputer) {
init {
globals["speaker"] = LuaTable()
globals["speaker"]["enqueue"] = EnqueueTone(host)
globals["speaker"]["clear"] = ClearQueue(host)
globals["speaker"]["retune"] = Retune(globals)
globals["speaker"]["resetTune"] = ResetTune(globals)
globals["speaker"]["toFreq"] = StringToFrequency(globals)
globals["speaker"]["__basefreq__"] = LuaValue.valueOf(BASE_FREQ) // every other PSGs should use this very variable
// constants
// e.g. speaker.A0 returns number 1
fun Int.toNote(): String = NOTE_NAMES[this % 12] + this.plus(8).div(12).toString()
fun Int.toNoteAlt(): String = NOTE_NAMES_ALT[this % 12] + this.plus(8).div(12).toString()
for (i in 1..126) {
globals["speaker"][i.toNote()] = i // sharps
globals["speaker"][i.toNoteAlt()] = i // flats
}
}
companion object {
val BASE_FREQ = 27.5 // frequency of A0
val NOTE_NAMES = arrayOf("GS", "A", "AS", "B", "C", "CS",
"D", "DS", "E", "F", "FS", "G")
val NOTE_NAMES_ALT = arrayOf("Ab", "A", "Bb", "B", "C", "Db",
"D", "Eb", "E", "F", "Gb", "G")
/** @param basefreq: Frequency of A-0 */
fun Int.toFreq(basefreq: Double): Double = basefreq * Math.pow(2.0, (this - 1.0) / 12.0)
/** @param "A-5", "B4", "C#5", ... */
fun String.toNoteIndex(): Int {
var notestr = this.replace("-", "")
notestr = notestr.replace("#", "S")
val baseNote = if (notestr.contains("S") || notestr.contains("b"))
notestr.substring(0, 2)
else
notestr.substring(0, 1)
var note: Int = NOTE_NAMES.indexOf(baseNote) // [0-11]
if (note < 0) note = NOTE_NAMES_ALT.indexOf(baseNote) // search again
if (note < 0) throw IllegalArgumentException("Unknown note: $this") // failed to search
val octave: Int = notestr.replace(Regex("""[^0-9]"""), "").toInt()
return octave.minus(if (note >= 4) 1 else 0) * 12 + note
}
}
class EnqueueTone(val host: BaseTerrarumComputer) : TwoArgFunction() {
/**
* @param freq: number (hertz) or string (A-4, A4, B#2, ...)
*/
override fun call(millisec: LuaValue, freq: LuaValue): LuaValue {
host.enqueueBeep(millisec.checkint(), freq.tofloat())
if (freq.isnumber())
host.enqueueBeep(millisec.checkint(), freq.checkdouble())
else {
host.enqueueBeep(millisec.checkint(),
freq.checkjstring().toNoteIndex()
.toFreq(host.luaJ_globals["speaker"]["__basefreq__"].checkdouble())
)
}
return LuaValue.NONE
}
}
@@ -34,4 +90,53 @@ class PcSpeakerDriver(globals: Globals, host: BaseTerrarumComputer) {
}
}
class Retune(val globals: Globals) : OneArgFunction() {
/**
* Examples: C256, A440, A#440, ...
*/
override fun call(arg: LuaValue): LuaValue {
val tuneName = arg.checkjstring()
val baseNote = if (tuneName.contains("#") || tuneName.contains("b")) tuneName.substring(0, 2) else tuneName.substring(0, 1)
val freq = tuneName.replace(Regex("""[^0-9]"""), "").toInt()
// we're assuming C4, C#4, ... A4, A#4, B4
val diffPivot = arrayOf(11, 12, 13, 14, 3, 4, 5, 6, 7, 8, 9, 10) // 2^(12 / n)
var diff = diffPivot[NOTE_NAMES.indexOf(baseNote)]
if (diff < 0) diff = diffPivot[NOTE_NAMES_ALT.indexOf(baseNote)] // search again
if (diff < 0) throw IllegalArgumentException("Unknown note: $baseNote") // failed to search
val exp = 12.0 / diff
val basefreq = freq * Math.pow(2.0, exp) / 32.0 // converts whatever baseNote to A0
globals["speaker"]["__basefreq__"] = basefreq
return LuaValue.NONE
}
}
class ResetTune(val globals: Globals) : ZeroArgFunction() {
override fun call(): LuaValue {
globals["speaker"]["__basefreq__"] = LuaValue.valueOf(BASE_FREQ)
return LuaValue.NONE
}
}
/**
* usage = speaker.toFreq(speaker.AS5) --'S' is a substitution for '#'
*/
class StringToFrequency(val globals: Globals) : OneArgFunction() {
/**
* @param arg: number (note index) or string (A-4, A4, B#2, ...)
*/
override fun call(arg: LuaValue): LuaValue {
val note = if (arg.isint()) arg.checkint()
else {
arg.checkjstring().toNoteIndex()
}
val basefreq = globals["speaker"]["__basefreq__"].checkdouble()
return LuaValue.valueOf(note.toFreq(basefreq))
}
}
}

View File

@@ -0,0 +1,20 @@
package net.torvald.terrarum.virtualcomputer.peripheral
import org.luaj.vm2.Globals
import org.luaj.vm2.LuaTable
import org.luaj.vm2.LuaValue
/**
* Created by minjaesong on 16-09-29.
*/
open class Peripheral(val luaG: Globals, val tableName: String) {
open fun loadLib() {
luaG[tableName] = LuaTable()
}
open fun unloadLib() {
luaG[tableName] = LuaValue.NIL
}
override fun toString(): String = tableName
}

View File

@@ -0,0 +1,41 @@
package net.torvald.terrarum.virtualcomputer.peripheral
import org.luaj.vm2.Globals
import net.torvald.terrarum.virtualcomputer.computer.BaseTerrarumComputer
import org.luaj.vm2.LuaValue
import org.luaj.vm2.lib.OneArgFunction
import java.io.BufferedReader
import java.io.InputStreamReader
import java.net.URL
/**
* Provides internet access.
*
* Created by minjaesong on 16-09-24.
*/
internal class PeripheralInternet(val globals: Globals, val host: BaseTerrarumComputer)
: Peripheral(globals, "internet"){
override fun loadLib() {
super.loadLib()
globals["internet"]["fetch"] = FetchWebPage()
}
class FetchWebPage() : OneArgFunction() {
override fun call(urlstr: LuaValue): LuaValue {
val url = URL(urlstr.checkjstring())
val inputstream = BufferedReader(InputStreamReader(url.openStream()))
var inline = ""
var readline = inputstream.readLine()
while (readline != null) {
inline += readline
readline = inputstream.readLine()
}
inputstream.close()
return LuaValue.valueOf(inline)
}
}
}

View File

@@ -0,0 +1,21 @@
package net.torvald.terrarum.virtualcomputer.peripheral
import net.torvald.terrarum.virtualcomputer.computer.BaseTerrarumComputer
import org.luaj.vm2.Globals
import org.luaj.vm2.LuaTable
import org.luaj.vm2.LuaValue
/**
* Virtual driver for 4-track squarewave PSG, which has no ability of changing a duty cycle
* but has a volume control
*
* Created by minjaesong on 16-09-27.
*/
internal class PeripheralPSG(val globals: Globals, val host: BaseTerrarumComputer)
: Peripheral(globals, "psg") {
override fun loadLib() {
super.loadLib()
}
}

View File

@@ -318,7 +318,7 @@ open class SimpleTextTerminal(
* @param duration: milliseconds
* @param freg: Frequency (float)
*/
override fun emitTone(duration: Int, freq: Float) {
override fun emitTone(duration: Int, freq: Double) {
// println("!! Beep playing row $beepCursor, d ${Math.min(duration, maxDuration)} f $freq")
host.clearBeepQueue()
host.enqueueBeep(duration, freq)
@@ -328,19 +328,19 @@ open class SimpleTextTerminal(
override fun bell(pattern: String) {
host.clearBeepQueue()
val freq: Float =
val freq: Double =
if (host.luaJ_globals["computer"]["bellpitch"].isnil())
1000f
1000.0
else
host.luaJ_globals["computer"]["bellpitch"].checkdouble().toFloat()
host.luaJ_globals["computer"]["bellpitch"].checkdouble()
for (c in pattern) {
when (c) {
'.' -> { host.enqueueBeep(80, freq); host.enqueueBeep(50, 0f) }
'-' -> { host.enqueueBeep(200, freq); host.enqueueBeep(50, 0f) }
'=' -> { host.enqueueBeep(500, freq); host.enqueueBeep(50, 0f) }
' ' -> { host.enqueueBeep(200, 0f) }
',' -> { host.enqueueBeep(50, 0f) }
'.' -> { host.enqueueBeep(80, freq); host.enqueueBeep(50, 0.0) }
'-' -> { host.enqueueBeep(200, freq); host.enqueueBeep(50, 0.0) }
'=' -> { host.enqueueBeep(500, freq); host.enqueueBeep(50, 0.0) }
' ' -> { host.enqueueBeep(200, 0.0) }
',' -> { host.enqueueBeep(50, 0.0) }
else -> throw IllegalArgumentException("Unacceptable pattern: $c (from '$pattern')")
}
}

View File

@@ -61,7 +61,7 @@ interface Terminal : Teletype {
* @param duration: milliseconds
* @param freg: Frequency (float)
*/
fun emitTone(duration: Int, freq: Float)
fun emitTone(duration: Int, freq: Double)
override fun bell(pattern: String)
/** Requires keyPressed() event to be processed.

View File

@@ -14,7 +14,7 @@ import java.util.*
*/
class FixtureBasicTerminal(phosphor: Color) : FixtureBase() {
val computer = BaseTerrarumComputer()
val computer = BaseTerrarumComputer(8)
val vt: Terminal = SimpleTextTerminal(phosphor, 80, 25, computer)
val ui = UITextTerminal(vt)

View File

@@ -33,7 +33,7 @@ open class FixtureComputerBase() : FixtureBase() {
fun attachTerminal(uuid: String) {
val fetchedTerminal = getTerminalByUUID(uuid)
computerInside = BaseTerrarumComputer()
computerInside = BaseTerrarumComputer(8)
computerInside!!.attachTerminal(fetchedTerminal!!)
actorValue["computerid"] = computerInside!!.UUID
}

View File

@@ -6,7 +6,7 @@
°03°03° °05°úúú úúú°F#5 úúú°úúú úúú°úúú úúú°\ Note offTAB Next channel
°04°04° °06°úúú úúú°A-5 úúú°úúú úúú°úúú úúú°
°05°05° °07°úúú úúú°G-5 úúú°G-5 úúú°úúú úúú°
°06°06° °08°úúú úúú°C-6 úúú°úúú úúú°úúú úúú° ALT Select blockPAGE Move by 16 rows
°06°06° °08°úúú úúú°C-6 úúú°úúú úúú°úúú úúú°    Select blockPAGE Move by 16 rows
°07°07°  09 úúú úúú E-6 úúú úúú úúú úúú úúú  ALT C Copy selectionHM/ED Move to top/bottom
°08°08° °0A°úúú úúú°C-5 úúú°=== úúú°úúú úúú° ALT V Paste selection
°09°09° °0B°úúú úúú°úúú úúú°úúú úúú°úúú úúú°
@@ -28,42 +28,42 @@
°19°19° °1B°úúú úúú°úúú úúú°úúú úúú°úúú F20°
°1A°1A° °1C°úúú úúú°úúú úúú°úúú úúú°úúú úúú°
°1B°1B° °1D°úúú úúú°úúú úúú°úúú úúú°úúú úúú°
°1C°1C° °1E°úúú úúú°úúú úúú°G-3 úúú°úúú F03° Effects
°1C°1C° °1E°úúú úúú°úúú úúú°G-3 úúú°úúú F03°  EffectsTranspose
°1D°1D° °1F°úúú úúú°úúú úúú°A-3 úúú°úúú úúú°
°1E°1E° °20°úúú úúú°úúú úúú°B-3 úúú°úúú úúú°0xy Arpeggio
°1F°1E° °21°úúú úúú°úúú úúú°C-4 úúú°úúú úúú°
°20°1E° °22°úúú úúú°úúú úúú°D-4 úúú°úúú úúú°1xx Portamento up
°21°1F° °23°úúú úúú°úúú úúú°E-4 úúú°úúú úúú°
°úú°úú° °24°úúú úúú°úúú úúú°F-4 úúú°úúú úúú°2xx Portamento down
°1E°1E° °20°úúú úúú°úúú úúú°B-3 úúú°úúú úúú° 0xy ArpeggioALT ] +12
°1F°1E° °21°úúú úúú°úúú úúú°C-4 úúú°úúú úúú°ALT [ -12
°20°1E° °22°úúú úúú°úúú úúú°D-4 úúú°úúú úúú° 1xx Portamento up
°21°1F° °23°úúú úúú°úúú úúú°E-4 úúú°úúú úúú° ALT = +1
°úú°úú° °24°úúú úúú°úúú úúú°F-4 úúú°úúú úúú° 2xx Portamento down ALT - -1
°úú°úú° °25°úúú úúú°úúú úúú°G-4 úúú°úúú úúú°
°úú°úú° °26°úúú úúú°úúú úúú°A-4 úúú°úúú úúú°3xx Portamento to note
°úú°úú° °26°úúú úúú°úúú úúú°A-4 úúú°úúú úúú° 3xx Portamento to note
°úú°úú° °27°úúú úúú°úúú úúú°B-4 úúú°úúú úúú°
°úú°úú° °28°úúú úúú°úúú úúú°C-5 úúú°úúú úúú°4xy Vibrato
°úú°úú° °28°úúú úúú°úúú úúú°C-5 úúú°úúú úúú° 4xy Vibrato
°úú°úú° °29°úúú úúú°úúú úúú°D-5 úúú°úúú úúú°
°úú°úú° °2A°úúú úúú°úúú úúú°E-5 úúú°úúú úúú°Bxx Jump to order
°úú°úú° °2A°úúú úúú°úúú úúú°E-5 úúú°úúú úúú° Bxx Jump to order
°úú°úú° °2B°úúú úúú°úúú úúú°F-5 úúú°úúú úúú°
°úú°úú° °2C°úúú úúú°úúú úúú°G-5 úúú°úúú úúú°Dxx Pattern break
°úú°úú° °2C°úúú úúú°úúú úúú°G-5 úúú°úúú úúú° Dxx Pattern break
°úú°úú° °2D°úúú úúú°úúú úúú°A-5 úúú°úúú úúú°
°úú°úú° °2E°úúú úúú°úúú úúú°B-5 úúú°úúú úúú°Fxx Set tick speed
°úú°úú° °2E°úúú úúú°úúú úúú°B-5 úúú°úúú úúú° Fxx Set tick speed
°úú°úú° °2F°úúú úúú°úúú úúú°C-6 úúú°úúú úúú°
°úú°úú° °30°úúú úúú°úúú úúú°D-6 úúú°úúú úúú°
°úú°úú° °31°úúú úúú°úúú úúú°E-6 úúú°úúú úúú° ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
°úú°úú° °32°úúú úúú°úúú úúú°F-6 úúú°úúú úúú° ±±Ý ÞÝ Þ±±±Ý ÞÝ ÞÝ Þ±±±Ý ÞÝ Þ±±±Ý Þ±±±
°úú°úú° °33°úúú úúú°úúú úúú°G-6 úúú°úúú úúú° ±±Ý2ÞÝ3Þ±±±Ý5ÞÝ6ÞÝ7Þ±±±Ý9ÞÝ0Þ±±±Ý=Þ±±±
°úú°úú° °34°úúú úúú°úúú úúú°A-6 úúú°úúú úúú° ±±Ý ÞÝ Þ±±±Ý ÞÝ ÞÝ Þ±±±Ý ÞÝ Þ±±±Ý Þ±±±
°úú°úú° °35°úúú úúú°úúú úúú°B-6 D00°úúú úúú° ±Ý ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ Þ±
°úú°úú° °36°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±ÝQÞÝWÞÝEÞÝRÞÝTÞÝYÞÝUÞÝIÞÝOÞÝPÞÝ{ÞÝ}Þ±
°úú°úú° °37°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±Ý ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ Þ±
°úú°úú° °38°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
°úú°úú° °39°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±±±Ý ÞÝ Þ±±±Ý ÞÝ ÞÝ Þ±±±Ý ÞÝ Þ±±±±±±±±
°úú°úú° °3A°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±±±ÝSÞÝDÞ±±±ÝGÞÝHÞÝJÞ±±±ÝLÞÝ;Þ±±±±±±±±
  °3B°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±±±Ý ÞÝ Þ±±±Ý ÞÝ ÞÝ Þ±±±Ý ÞÝ Þ±±±±±±±±
°3C°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±±Ý ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ Þ±±±±±±
RecPlay °3D°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±±ÝZÞÝXÞÝCÞÝVÞÝBÞÝNÞÝMÞÝ,ÞÝ.ÞÝ/Þ±Oct±±
Trcks 4 °3E°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±±Ý ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ Þ± -1±±
Tick 00 °3F°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
°úú°úú° °31°úúú úúú°úúú úúú°E-6 úúú°úúú úúú° ± ±
°úú°úú° °32°úúú úúú°úúú úúú°F-6 úúú°úúú úúú° ± Ý ÞÝ Þ Ý ÞÝ ÞÝ Þ Ý ÞÝ Þ ±
°úú°úú° °33°úúú úúú°úúú úúú°G-6 úúú°úúú úúú° ± Ý2ÞÝ3Þ Ý5ÞÝ6ÞÝ7Þ Ý9ÞÝ0Þ ÛÛÛ±
°úú°úú° °34°úúú úúú°úúú úúú°A-6 úúú°úúú úúú° ± Ý ÞÝ Þ Ý ÞÝ ÞÝ Þ Ý ÞÝ Þ ÛÛÛ±
°úú°úú° °35°úúú úúú°úúú úúú°B-6 D00°úúú úúú° ±Ý ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÛÛÛ±
°úú°úú° °36°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±ÝQÞÝWÞÝEÞÝRÞÝTÞÝYÞÝUÞÝIÞÝOÞÝPÞ ±
°úú°úú° °37°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±Ý ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ Þ ±
°úú°úú° °38°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ± ±
°úú°úú° °39°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ± O Ý ÞÝ Þ Ý ÞÝ ÞÝ Þ Ý ÞÝ Þ ±
°úú°úú° °3A°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ± c ÝSÞÝDÞ ÝGÞÝHÞÝJÞ ÝLÞÝ;Þ ±
  °3B°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ± t Ý ÞÝ Þ Ý ÞÝ ÞÝ Þ Ý ÞÝ Þ ±
°3C°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±  Ý ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ Þ±
RecPlay °3D°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±-1 ÝZÞÝXÞÝCÞÝVÞÝBÞÝNÞÝMÞÝ,ÞÝ.ÞÝ/Þ±
Trcks 4 °3E°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ± Ý ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ Þ±
Tick 00 °3F°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ± ±
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
RecPlay RecPlay
Trcks 4 Trcks 4  Editable
Tick 00 Tick 00  Current play tick
SAUCE00 20160924u~dEIBM VGA50
SAUCE00 20160924ø€dEIBM VGA50

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

View File

@@ -2,7 +2,7 @@ The Filesystem API provides functions for manipulating files and the filesystem.
The path for the argument of functions blocks `\,.\,.\,' to be entered, preventing users from access outside of the computer and eliminating the potential of harming the real computer of the innocent players.
\subsection{Functions}
\section{Functions}
\begin{tabularx}{\textwidth}{l l X}
\textbf{\large Function} & \textbf{\large Return} & \textbf{\large Description}
@@ -39,7 +39,7 @@ The path for the argument of functions blocks `\,.\,.\,' to be entered, preventi
fs.fetchText(\textbf{path}: string) & string & Opens the file on \textbf{path} and returns its contents as a plain text.
\end{tabularx}
\subsection{File Handler}
\section{File Handler}
When it comes to opening a file, there are six modes available---r, w, a, rb, wb, ab, each represents \textbf{r}ead, \textbf{w}rite, \textbf{a}ppend and \textbf{b}yte.

View File

@@ -1,6 +1,6 @@
The Hexutils library provides utility to convert byte value to hexadecimal string.
\subsection{Functions}
\section{Functions}
\begin{tabularx}{\textwidth}{l l X}
\textbf{\large Function} & \textbf{\large Return} & \textbf{\large Description}

View File

@@ -1,6 +1,6 @@
The Input API provides access to game's Input API to get input-related informations.
\subsection{Functions}
\section{Functions}
\begin{tabularx}{\textwidth}{l l X}
\textbf{\large Function} & \textbf{\large Return} & \textbf{\large Description}

View File

@@ -11,7 +11,7 @@ Notes on compatibility with ComputerCraft: although this library is ComputerCraf
keys.getName(keycode: int) & string & Returns key name corresponds to the keycode.
\end{tabularx}
\subsection{Accepted Key Names}
\section{Accepted Key Names}
\emph{NOTE: following sets are considered as the same keys.}

View File

@@ -1,4 +1,4 @@
The Machine API provides means to control the machine itself.
The Machine API provides means to control the host machine.
\begin{tabularx}{\textwidth}{l l X}
\textbf{\large Function} & \textbf{\large Return} & \textbf{\large Description}

View File

@@ -9,7 +9,7 @@ The OS library provides functions and constants for the system. Most of the func
os.date(format: string) & string & Returns world's current time in desired format, or default if no arguments are provided. NOTE: displaying different time is not possible; Lua's TIME\_T is only 32 bit, world's history can be much longer.
\end{tabularx}
\subsection{Date Format String}
\section{Date Format String}
\begin{tabularx}{\textwidth}{c X c X}
\textbf{\large } & \textbf{\large Description} & \textbf{\large } & \textbf{\large Description}

View File

@@ -1,6 +1,6 @@
The Serurity API provides functions for security purposes, such as hashing and CSPRNG\footnote{Cryptographically secure psuedo-random number generator}.
\subsection{Functions}
\section{Functions}
\begin{tabularx}{\textwidth}{l l X}
\textbf{\large Function} & \textbf{\large Return} & \textbf{\large Description}

View File

@@ -4,7 +4,8 @@ The Speaker API provides means to control computer's built-in beeper speaker.
\textbf{\large Function} & \textbf{\large Return} & \textbf{\large Description}
\\ \\
\endhead
speaker.enqueue(len: int, freq: num) & nil & Enqueues speaker driving information. Queues will be started automatically.
speaker.enqueue(len: int, freq: num\footnote{Frequency in hertz (double) or the name of the note (``A-5'', ``B3'', ``F\#2'', ``Db6'', \ldots)}) & nil & Enqueues speaker driving information. Queues will be started automatically.
\\ \\
speaker.clear() & nil & Clears speaker queue.
\\ \\
\end{tabularx}

View File

@@ -1,6 +1,6 @@
The Terminal API provides functions for sending text to the terminals, and drawing text-mode graphics. The API expects connected terminal to use Codepage 437. See section \emph{Codepage} for details.
\subsection{Functions}
\section{Functions}
Note: cursor coordinates starts from one, not zero.
@@ -67,7 +67,7 @@ Note: cursor coordinates starts from one, not zero.
term.backCol() & int & Returns current background colour.
\end{tabularx}
\subsection{Standard Colours}
\section{Standard Colours}
\begin{tabularx}{\textwidth}{c l c l c l c l}
0 & \textcolor{black}{Black} & 1 & White & 2 & \textcolor{dimgrey}{Dim grey} & 3 & \textcolor{brightgrey}{Bright grey}
@@ -81,7 +81,7 @@ Note: cursor coordinates starts from one, not zero.
Non-colour terminals support colour index of 0--3.
\subsection{Codepage}
\section{Codepage}
\newlength{\cpimagew}
\setlength{\cpimagew}{\linewidth}
@@ -91,7 +91,7 @@ Non-colour terminals support colour index of 0--3.
Character 0x9E (currency symbol) and 0xFA (middle dot) can be accessed with following Lua constants: \emph{MONEY} and \emph{MIDDOT}. See \emph{Lua Globals} > \emph{Constants} section.
\subsection{Accepted Control Sequences}
\section{Accepted Control Sequences}
\begin{tabularx}{\textwidth}{c X c X}
\textbf{\large No.} & \textbf{\large Description} & \textbf{\large No.} & \textbf{\large Description}

View File

@@ -1,6 +1,6 @@
The Bit API is for manipulating numbers using bitwise binary operations. The ROMBASIC already comes with Lua's bit32 library so make sure to use that for your casual usage.
\subsection{Functions}
\section{Functions}
\begin{tabularx}{\textwidth}{l X}
\textbf{\large Function} & \textbf{\large Notes}

View File

@@ -1,6 +1,6 @@
The Colors API allows you to manipulate sets of colors. This is useful in colors on Advanced Computers and Advanced Monitors. British spellings are also supported.
\subsection{Constants}
\section{Constants}
When the colours are used in ComputerCraft's Term API, nearest console colours will be used. Below is the table of colours coded with their substitutions.
@@ -16,6 +16,6 @@ When the colours are used in ComputerCraft's Term API, nearest console colours w
Note that pink is understood as \textcolor{tan}{tan} when it is used, lightBlue and cyan are merged to \textcolor{cyan}{cyan}.
\subsection{Functions}
\section{Functions}
All three functions are not supported, as there is no bundled cable thus there is no use of them.

View File

@@ -1,6 +1,6 @@
ROMBASIC adds global functions and constants for operability.
\subsection{Functions}
\section{Functions}
\begin{tabularx}{\textwidth}{l l X}
\textbf{\large Function} & \textbf{\large Return} & \textbf{\large Description}
@@ -15,7 +15,7 @@ ROMBASIC adds global functions and constants for operability.
computer.freeMemory() & int & Returns the amount of free memory on the computer.
\end{tabularx}
\subsection{Constants}
\section{Constants}
\begin{tabularx}{\textwidth}{l l X}
\textbf{\large Name} & \textbf{\large Type} & \textbf{\large Description}
@@ -54,7 +54,7 @@ ROMBASIC adds global functions and constants for operability.
computer.emitTone(\textbf{len}, \textbf{freq}) & nil & Generates square wave. \textbf{len} is integer, in milliseconds, \textbf{freq} is number, in Hertz.
\end{tabularx}
\subsection{Bell Codes}
\section{Bell Codes}
Bell Codes are patterns for driving bell/beeper. Each code is followed by short break of 50 milliseconds.

View File

@@ -2,7 +2,7 @@ The line printer is a printer that operates on line basis. It only prints text i
Line printers do not work indefinitely; ignoring the obvious depletion of ink, belt for loading paper will be out of service on about 50 000 lines of printing, give or take a few, or paper will jam if the printer had struck with the unluckiness.
\subsection{Functions}
\section{Functions}
\begin{tabularx}{\textwidth}{l l X}
\textbf{\large Function} & \textbf{\large Return} & \textbf{\large Description}

View File

@@ -17,37 +17,43 @@
\gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand\HyField@AuxAddToFields[1]{}
\providecommand\HyField@AuxAddToCoFields[2]{}
\@writefile{lof}{\addvspace {10pt}}
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {1}APIs and Libraries}{5}{chapter.1}}
\@writefile{toc}{\contentsline {part}{\partnumberline {I}APIs and Libraries}{5}{part.1}}
\gdef \LT@i {\LT@entry
{2}{155.06007pt}\LT@entry
{1}{45.25516pt}\LT@entry
{1}{134.68477pt}}
\@writefile{toc}{\contentsline {section}{\numberline {1.1}Filesystem}{6}{section.1.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.1.1}Functions}{6}{subsection.1.1.1}}
\@writefile{lof}{\addvspace {10pt}}
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {1}Filesystem}{6}{chapter.1}}
\@writefile{toc}{\contentsline {section}{\numberline {1.1}Functions}{6}{section.1.1}}
\gdef \LT@ii {\LT@entry
{2}{99.95pt}\LT@entry
{1}{235.05pt}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.1.2}File Handler}{7}{subsection.1.1.2}}
\@writefile{toc}{\contentsline {section}{\numberline {1.2}File Handler}{7}{section.1.2}}
\gdef \LT@iii {\LT@entry
{2}{154.76003pt}\LT@entry
{1}{45.25516pt}\LT@entry
{1}{134.98482pt}}
\@writefile{toc}{\contentsline {section}{\numberline {1.2}Hexutils}{9}{section.1.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.2.1}Functions}{9}{subsection.1.2.1}}
\@writefile{lof}{\addvspace {10pt}}
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {2}Hexutils}{9}{chapter.2}}
\@writefile{toc}{\contentsline {section}{\numberline {2.1}Functions}{9}{section.2.1}}
\gdef \LT@iv {\LT@entry
{2}{138.81004pt}\LT@entry
{1}{45.25516pt}\LT@entry
{1}{150.9348pt}}
\@writefile{toc}{\contentsline {section}{\numberline {1.3}Input}{10}{section.1.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.3.1}Functions}{10}{subsection.1.3.1}}
\@writefile{lof}{\addvspace {10pt}}
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {3}Input}{10}{chapter.3}}
\@writefile{toc}{\contentsline {section}{\numberline {3.1}Functions}{10}{section.3.1}}
\gdef \LT@v {\LT@entry
{2}{126.83005pt}\LT@entry
{1}{45.25516pt}\LT@entry
{1}{162.9148pt}}
\@writefile{toc}{\contentsline {section}{\numberline {1.4}Keys}{11}{section.1.4}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.4.1}Accepted Key Names}{11}{subsection.1.4.1}}
\@writefile{lof}{\addvspace {10pt}}
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {4}Keys}{11}{chapter.4}}
\@writefile{toc}{\contentsline {section}{\numberline {4.1}Accepted Key Names}{11}{section.4.1}}
\gdef \LT@vi {\LT@entry
{2}{104.04007pt}\LT@entry
{2}{45.37001pt}\LT@entry
@@ -57,30 +63,40 @@
{1}{138.0pt}\LT@entry
{2}{29.6pt}\LT@entry
{1}{138.0pt}}
\@writefile{toc}{\contentsline {section}{\numberline {1.5}OS}{12}{section.1.5}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.5.1}Date Format String}{12}{subsection.1.5.1}}
\@writefile{lof}{\addvspace {10pt}}
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {5}OS}{13}{chapter.5}}
\@writefile{toc}{\contentsline {section}{\numberline {5.1}Date Format String}{13}{section.5.1}}
\gdef \LT@viii {\LT@entry
{2}{136.82pt}\LT@entry
{1}{45.25516pt}\LT@entry
{1}{152.92484pt}}
\@writefile{toc}{\contentsline {section}{\numberline {1.6}Security}{13}{section.1.6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.6.1}Functions}{13}{subsection.1.6.1}}
\@writefile{lof}{\addvspace {10pt}}
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {6}Security}{15}{chapter.6}}
\@writefile{toc}{\contentsline {section}{\numberline {6.1}Functions}{15}{section.6.1}}
\gdef \LT@ix {\LT@entry
{2}{102.18004pt}\LT@entry
{1}{45.25516pt}\LT@entry
{2}{180.42001pt}}
\@writefile{toc}{\contentsline {section}{\numberline {1.7}Shell}{14}{section.1.7}}
\@writefile{lof}{\addvspace {10pt}}
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {7}Shell}{16}{chapter.7}}
\gdef \LT@x {\LT@entry
{2}{161.65002pt}\LT@entry
{2}{165.05502pt}\LT@entry
{1}{45.25516pt}\LT@entry
{1}{128.09482pt}}
\@writefile{toc}{\contentsline {section}{\numberline {1.8}Speaker}{15}{section.1.8}}
{1}{124.68982pt}}
\@writefile{lof}{\addvspace {10pt}}
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {8}Speaker}{17}{chapter.8}}
\gdef \LT@xi {\LT@entry
{2}{139.76003pt}\LT@entry
{1}{45.25516pt}\LT@entry
{1}{149.98482pt}}
\@writefile{toc}{\contentsline {section}{\numberline {1.9}Terminal}{16}{section.1.9}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.9.1}Functions}{16}{subsection.1.9.1}}
\@writefile{lof}{\addvspace {10pt}}
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {9}Terminal}{18}{chapter.9}}
\@writefile{toc}{\contentsline {section}{\numberline {9.1}Functions}{18}{section.9.1}}
\gdef \LT@xii {\LT@entry
{1}{22.26001pt}\LT@entry
{1}{39.16003pt}\LT@entry
@@ -90,14 +106,14 @@
{1}{49.88002pt}\LT@entry
{1}{22.26001pt}\LT@entry
{1}{58.02002pt}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.9.2}Standard Colours}{18}{subsection.1.9.2}}
\@writefile{toc}{\contentsline {section}{\numberline {9.2}Standard Colours}{20}{section.9.2}}
\gdef \LT@xiii {\LT@entry
{1}{28.3155pt}\LT@entry
{1}{139.1845pt}\LT@entry
{1}{28.3155pt}\LT@entry
{1}{139.1845pt}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.9.3}Codepage}{19}{subsection.1.9.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.9.4}Accepted Control Sequences}{19}{subsection.1.9.4}}
\@writefile{toc}{\contentsline {section}{\numberline {9.3}Codepage}{21}{section.9.3}}
\@writefile{toc}{\contentsline {section}{\numberline {9.4}Accepted Control Sequences}{21}{section.9.4}}
\gdef \LT@xiv {\LT@entry
{2}{134.13005pt}\LT@entry
{1}{45.25516pt}\LT@entry
@@ -106,53 +122,62 @@
{2}{135.95003pt}\LT@entry
{2}{36.06001pt}\LT@entry
{1}{162.98996pt}}
\@writefile{toc}{\contentsline {section}{\numberline {1.10}Lua Globals}{20}{section.1.10}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.10.1}Functions}{20}{subsection.1.10.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.10.2}Constants}{20}{subsection.1.10.2}}
\@writefile{lof}{\addvspace {10pt}}
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {10}Lua Globals}{22}{chapter.10}}
\@writefile{toc}{\contentsline {section}{\numberline {10.1}Functions}{22}{section.10.1}}
\@writefile{toc}{\contentsline {section}{\numberline {10.2}Constants}{22}{section.10.2}}
\gdef \LT@xvi {\LT@entry
{1}{49.09001pt}\LT@entry
{1}{108.52003pt}\LT@entry
{1}{53.81001pt}\LT@entry
{1}{122.25pt}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.10.3}Bell Codes}{22}{subsection.1.10.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.10.4}Changes from Generic Lua Environment}{22}{subsection.1.10.4}}
\@writefile{toc}{\contentsline {section}{\numberline {10.3}Bell Codes}{24}{section.10.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {10.3.1}Changes from Generic Lua Environment}{24}{subsection.10.3.1}}
\gdef \LT@xvii {\LT@entry
{2}{94.0pt}\LT@entry
{1}{45.25516pt}\LT@entry
{1}{195.74484pt}}
\@writefile{toc}{\contentsline {section}{\numberline {1.11}Machine}{23}{section.1.11}}
\@writefile{lof}{\addvspace {10pt}}
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {2}Compatibility Layers---ComputerCraft}{25}{chapter.2}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {11}Machine}{25}{chapter.11}}
\@writefile{toc}{\contentsline {part}{\partnumberline {II}Compatibility Layers---ComputerCraft}{26}{part.2}}
\gdef \LT@xviii {\LT@entry
{2}{108.45001pt}\LT@entry
{2}{125.76003pt}}
\@writefile{toc}{\contentsline {section}{\numberline {2.1}Bit}{26}{section.2.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.1}Functions}{26}{subsection.2.1.1}}
\@writefile{lof}{\addvspace {10pt}}
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {12}Bit}{27}{chapter.12}}
\@writefile{toc}{\contentsline {section}{\numberline {12.1}Functions}{27}{section.12.1}}
\gdef \LT@xix {\LT@entry
{1}{77.19011pt}\LT@entry
{1}{68.63008pt}\LT@entry
{1}{76.35007pt}\LT@entry
{1}{76.36005pt}}
\@writefile{toc}{\contentsline {section}{\numberline {2.2}Colors}{27}{section.2.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}Constants}{27}{subsection.2.2.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.2}Functions}{27}{subsection.2.2.2}}
\@writefile{toc}{\contentsline {section}{\numberline {2.3}Term}{28}{section.2.3}}
\@writefile{toc}{\contentsline {section}{\numberline {2.4}Filesystem}{29}{section.2.4}}
\@writefile{lof}{\addvspace {10pt}}
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {3}Compatibility Layers---OpenComputers}{31}{chapter.3}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {13}Colors}{28}{chapter.13}}
\@writefile{toc}{\contentsline {section}{\numberline {13.1}Constants}{28}{section.13.1}}
\@writefile{toc}{\contentsline {section}{\numberline {13.2}Functions}{28}{section.13.2}}
\@writefile{lof}{\addvspace {10pt}}
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {4}Peripherals}{33}{chapter.4}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {14}Term}{29}{chapter.14}}
\@writefile{lof}{\addvspace {10pt}}
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {15}Filesystem}{30}{chapter.15}}
\@writefile{toc}{\contentsline {part}{\partnumberline {III}Compatibility Layers---OpenComputers}{31}{part.3}}
\@writefile{toc}{\contentsline {part}{\partnumberline {IV}Peripherals}{32}{part.4}}
\gdef \LT@xx {\LT@entry
{2}{71.78003pt}\LT@entry
{1}{45.25516pt}\LT@entry
{2}{153.90001pt}}
\@writefile{toc}{\contentsline {section}{\numberline {4.1}Line Printer}{34}{section.4.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1.1}Functions}{34}{subsection.4.1.1}}
\@writefile{lof}{\addvspace {10pt}}
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {5}References}{35}{chapter.5}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {16}Line Printer}{33}{chapter.16}}
\@writefile{toc}{\contentsline {section}{\numberline {16.1}Functions}{33}{section.16.1}}
\@writefile{lof}{\addvspace {10pt}}
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {17}PSG}{34}{chapter.17}}
\@writefile{toc}{\contentsline {part}{\partnumberline {V}References}{35}{part.5}}
\memsetcounter{lastsheet}{37}
\memsetcounter{lastpage}{37}

View File

@@ -1,4 +1,4 @@
This is LuaTeX, Version beta-0.80.0 (TeX Live 2015) (rev 5238) (format=lualatex 2015.10.5) 29 SEP 2016 00:19
This is LuaTeX, Version beta-0.80.0 (TeX Live 2015) (rev 5238) (format=lualatex 2015.10.5) 29 SEP 2016 19:27
restricted \write18 enabled.
file:line:error style messages enabled.
**romapidoc.tex
@@ -552,7 +552,7 @@ luatexbase-attr: luatexbase.attributes["luaotfload@cursbase"] = 6
luatexbase-attr: luatexbase.attributes["luaotfload@curscurs"] = 7
luatexbase-attr: luatexbase.attributes["luaotfload@cursdone"] = 8
luatexbase-attr: luatexbase.attributes["luaotfload@state"] = 9
luaotfload | main : fontloader loaded in 0.031 seconds
luaotfload | main : fontloader loaded in 0.057 seconds
luatexbase-mcb: inserting 'luaotfload.node_processor'
at position 1 in 'pre_linebreak_filter'
luatexbase-mcb: inserting 'luaotfload.node_processor'
@@ -1224,7 +1224,7 @@ File: tasks.cfg 2014/07/29 v0.10a tasks instances
. Defining command \settasks with sig. 'm' on line 710.
.................................................
)
Package hyperref Info: Option `unicode' set `true' on input line 83.
Package hyperref Info: Option `unicode' set `true' on input line 89.
(/usr/local/texlive/2015/texmf-dist/tex/latex/hyperref/puenc.def
File: puenc.def 2012/11/06 v6.83m Hyperref: PDF Unicode definition (HO)
@@ -1232,30 +1232,30 @@ File: puenc.def 2012/11/06 v6.83m Hyperref: PDF Unicode definition (HO)
(./romapidoc.aux)
\openout1 = romapidoc.aux
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 87.
LaTeX Font Info: ... okay on input line 87.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 87.
LaTeX Font Info: ... okay on input line 87.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 87.
LaTeX Font Info: ... okay on input line 87.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 87.
LaTeX Font Info: ... okay on input line 87.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 87.
LaTeX Font Info: ... okay on input line 87.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 87.
LaTeX Font Info: ... okay on input line 87.
LaTeX Font Info: Checking defaults for EU2/lmr/m/n on input line 87.
LaTeX Font Info: ... okay on input line 87.
LaTeX Font Info: Checking defaults for T3/cmr/m/n on input line 87.
LaTeX Font Info: Try loading font information for T3+cmr on input line 87.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 93.
LaTeX Font Info: ... okay on input line 93.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 93.
LaTeX Font Info: ... okay on input line 93.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 93.
LaTeX Font Info: ... okay on input line 93.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 93.
LaTeX Font Info: ... okay on input line 93.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 93.
LaTeX Font Info: ... okay on input line 93.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 93.
LaTeX Font Info: ... okay on input line 93.
LaTeX Font Info: Checking defaults for EU2/lmr/m/n on input line 93.
LaTeX Font Info: ... okay on input line 93.
LaTeX Font Info: Checking defaults for T3/cmr/m/n on input line 93.
LaTeX Font Info: Try loading font information for T3+cmr on input line 93.
(/usr/local/texlive/2015/texmf-dist/tex/latex/tipa/t3cmr.fd
File: t3cmr.fd 2001/12/31 TIPA font definitions
)
LaTeX Font Info: ... okay on input line 87.
LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 87.
LaTeX Font Info: ... okay on input line 87.
LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 87.
LaTeX Font Info: ... okay on input line 87.
LaTeX Font Info: ... okay on input line 93.
LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 93.
LaTeX Font Info: ... okay on input line 93.
LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 93.
LaTeX Font Info: ... okay on input line 93.
(/usr/local/texlive/2015/texmf-dist/tex/context/base/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
@@ -1291,64 +1291,64 @@ File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Live
.................................................
\symlegacymaths=\mathgroup4
LaTeX Font Info: Overwriting symbol font `legacymaths' in version `bold'
(Font) OT1/cmr/m/n --> OT1/cmr/bx/n on input line 87.
LaTeX Font Info: Redeclaring math accent \acute on input line 87.
LaTeX Font Info: Redeclaring math accent \grave on input line 87.
LaTeX Font Info: Redeclaring math accent \ddot on input line 87.
LaTeX Font Info: Redeclaring math accent \tilde on input line 87.
LaTeX Font Info: Redeclaring math accent \bar on input line 87.
LaTeX Font Info: Redeclaring math accent \breve on input line 87.
LaTeX Font Info: Redeclaring math accent \check on input line 87.
LaTeX Font Info: Redeclaring math accent \hat on input line 87.
LaTeX Font Info: Redeclaring math accent \dot on input line 87.
LaTeX Font Info: Redeclaring math accent \mathring on input line 87.
LaTeX Font Info: Redeclaring math symbol \colon on input line 87.
LaTeX Font Info: Redeclaring math symbol \Gamma on input line 87.
LaTeX Font Info: Redeclaring math symbol \Delta on input line 87.
LaTeX Font Info: Redeclaring math symbol \Theta on input line 87.
LaTeX Font Info: Redeclaring math symbol \Lambda on input line 87.
LaTeX Font Info: Redeclaring math symbol \Xi on input line 87.
LaTeX Font Info: Redeclaring math symbol \Pi on input line 87.
LaTeX Font Info: Redeclaring math symbol \Sigma on input line 87.
LaTeX Font Info: Redeclaring math symbol \Upsilon on input line 87.
LaTeX Font Info: Redeclaring math symbol \Phi on input line 87.
LaTeX Font Info: Redeclaring math symbol \Psi on input line 87.
LaTeX Font Info: Redeclaring math symbol \Omega on input line 87.
LaTeX Font Info: Redeclaring math symbol \mathdollar on input line 87.
LaTeX Font Info: Redeclaring symbol font `operators' on input line 87.
(Font) OT1/cmr/m/n --> OT1/cmr/bx/n on input line 93.
LaTeX Font Info: Redeclaring math accent \acute on input line 93.
LaTeX Font Info: Redeclaring math accent \grave on input line 93.
LaTeX Font Info: Redeclaring math accent \ddot on input line 93.
LaTeX Font Info: Redeclaring math accent \tilde on input line 93.
LaTeX Font Info: Redeclaring math accent \bar on input line 93.
LaTeX Font Info: Redeclaring math accent \breve on input line 93.
LaTeX Font Info: Redeclaring math accent \check on input line 93.
LaTeX Font Info: Redeclaring math accent \hat on input line 93.
LaTeX Font Info: Redeclaring math accent \dot on input line 93.
LaTeX Font Info: Redeclaring math accent \mathring on input line 93.
LaTeX Font Info: Redeclaring math symbol \colon on input line 93.
LaTeX Font Info: Redeclaring math symbol \Gamma on input line 93.
LaTeX Font Info: Redeclaring math symbol \Delta on input line 93.
LaTeX Font Info: Redeclaring math symbol \Theta on input line 93.
LaTeX Font Info: Redeclaring math symbol \Lambda on input line 93.
LaTeX Font Info: Redeclaring math symbol \Xi on input line 93.
LaTeX Font Info: Redeclaring math symbol \Pi on input line 93.
LaTeX Font Info: Redeclaring math symbol \Sigma on input line 93.
LaTeX Font Info: Redeclaring math symbol \Upsilon on input line 93.
LaTeX Font Info: Redeclaring math symbol \Phi on input line 93.
LaTeX Font Info: Redeclaring math symbol \Psi on input line 93.
LaTeX Font Info: Redeclaring math symbol \Omega on input line 93.
LaTeX Font Info: Redeclaring math symbol \mathdollar on input line 93.
LaTeX Font Info: Redeclaring symbol font `operators' on input line 93.
LaTeX Font Info: Encoding `OT1' has changed to `EU2' for symbol font
(Font) `operators' in the math version `normal' on input line 87.
(Font) `operators' in the math version `normal' on input line 93.
LaTeX Font Info: Overwriting symbol font `operators' in version `normal'
(Font) OT1/cmr/m/n --> EU2/MyriadPro(0)/m/n on input line 87.
(Font) OT1/cmr/m/n --> EU2/MyriadPro(0)/m/n on input line 93.
LaTeX Font Info: Encoding `OT1' has changed to `EU2' for symbol font
(Font) `operators' in the math version `bold' on input line 87.
(Font) `operators' in the math version `bold' on input line 93.
LaTeX Font Info: Overwriting symbol font `operators' in version `bold'
(Font) OT1/cmr/bx/n --> EU2/MyriadPro(0)/m/n on input line 87.
(Font) OT1/cmr/bx/n --> EU2/MyriadPro(0)/m/n on input line 93.
LaTeX Font Info: Overwriting symbol font `operators' in version `normal'
(Font) EU2/MyriadPro(0)/m/n --> EU2/MyriadPro(0)/m/n on input l
ine 87.
ine 93.
LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal'
(Font) OT1/cmr/m/it --> EU2/MyriadPro(0)/m/it on input line 87.
(Font) OT1/cmr/m/it --> EU2/MyriadPro(0)/m/it on input line 93.
LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal'
(Font) OT1/cmr/bx/n --> EU2/MyriadPro(0)/bx/n on input line 87.
(Font) OT1/cmr/bx/n --> EU2/MyriadPro(0)/bx/n on input line 93.
LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal'
(Font) OT1/cmss/m/n --> EU2/lmss/m/n on input line 87.
(Font) OT1/cmss/m/n --> EU2/lmss/m/n on input line 93.
LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal'
(Font) OT1/cmtt/m/n --> EU2/lmtt/m/n on input line 87.
(Font) OT1/cmtt/m/n --> EU2/lmtt/m/n on input line 93.
LaTeX Font Info: Overwriting symbol font `operators' in version `bold'
(Font) EU2/MyriadPro(0)/m/n --> EU2/MyriadPro(0)/bx/n on input
line 87.
line 93.
LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold'
(Font) OT1/cmr/bx/it --> EU2/MyriadPro(0)/bx/it on input line 8
7.
(Font) OT1/cmr/bx/it --> EU2/MyriadPro(0)/bx/it on input line 9
3.
LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold'
(Font) OT1/cmss/bx/n --> EU2/lmss/bx/n on input line 87.
(Font) OT1/cmss/bx/n --> EU2/lmss/bx/n on input line 93.
LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold'
(Font) OT1/cmtt/m/n --> EU2/lmtt/bx/n on input line 87.
(Font) OT1/cmtt/m/n --> EU2/lmtt/bx/n on input line 93.
\AtBeginShipoutBox=\box267
Package hyperref Info: Link coloring OFF on input line 87.
Package hyperref Info: Link coloring OFF on input line 93.
(/usr/local/texlive/2015/texmf-dist/tex/latex/hyperref/nameref.sty
Package: nameref 2012/10/27 v2.43 Cross-referencing by name of section
@@ -1360,10 +1360,10 @@ Package: gettitlestring 2010/12/03 v1.4 Cleanup title references (HO)
)
Redoing nameref's sectioning
Redoing nameref's label
LaTeX Info: Redefining \nameref on input line 87.
LaTeX Info: Redefining \ref on input line 87.
LaTeX Info: Redefining \pageref on input line 87.
LaTeX Info: Redefining \nameref on input line 87.
LaTeX Info: Redefining \nameref on input line 93.
LaTeX Info: Redefining \ref on input line 93.
LaTeX Info: Redefining \pageref on input line 93.
LaTeX Info: Redefining \nameref on input line 93.
(./romapidoc.out) (./romapidoc.out)
\@outlinefile=\write4
@@ -1375,11 +1375,11 @@ luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-It.otf"
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Regular.otf"
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Regular.otf"
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <10.95> on input line 89.
(Font) <10.95> on input line 95.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <8> on input line 89.
(Font) <8> on input line 95.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <6> on input line 89.
(Font) <6> on input line 95.
[1
{/usr/local/texlive/2015/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] [2
@@ -1389,22 +1389,27 @@ luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Regular.otf"
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Bold.otf" (./romapid
oc.toc
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Bold.otf"
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Bold.otf"
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Regular.otf"
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Regular.otf"
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <7> on input line 1.
(Font) <7> on input line 2.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <5> on input line 1.
) [3] [4
(Font) <5> on input line 2.
[3])
LaTeX Font Info: Font shape `EU2/MyriadPro(0)/m/sl' in size <10> not availabl
e
(Font) Font shape `EU2/MyriadPro(0)/m/it' tried instead on input li
ne 104.
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-It.otf"
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-It.otf" [4]
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Regular.otf"
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Bold.otf" [5
]
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Regular.otf"
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Bold.otf" [5]
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Regular.otf"
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Bold.otf"
(./api_filesystem.tex
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Regular.otf"
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Bold.otf"
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-It.otf"
Underfull \hbox (badness 2735) in paragraph at lines 40--40
[][]|\EU2/MyriadPro(0)/m/n/10 Moves the di-rec-tory to the
[]
@@ -1424,12 +1429,7 @@ Underfull \hbox (badness 1655) in paragraph at lines 40--40
\EU2/MyriadPro(0)/m/n/10 des-ti-na-tion. Sub-di-rec-to-ries /
[]
LaTeX Font Info: Font shape `EU2/MyriadPro(0)/m/sl' in size <10> not availabl
e
(Font) Font shape `EU2/MyriadPro(0)/m/it' tried instead on input li
ne 40.
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-It.otf"
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-It.otf" [6
[6
] [7]) [8] (./api_hexutils.tex
@@ -1439,6 +1439,7 @@ Underfull \hbox (badness 4792) in paragraph at lines 10--10
) [9
] (./api_input.tex
Underfull \hbox (badness 1515) in paragraph at lines 12--12
\EU2/MyriadPro(0)/m/n/10 By com-bin-ing with and or or
@@ -1451,6 +1452,7 @@ Underfull \hbox (badness 3884) in paragraph at lines 12--12
) [10
] (./api_keys.tex
Overfull \hbox (3.01012pt too wide) in paragraph at lines 3--4
[][]\EU2/MyriadPro(0)/m/n/10 Notes on com-pat-i-bil-ity with Com-put-er-Craft:
@@ -1503,7 +1505,10 @@ Overfull \hbox (5.03001pt too wide) in paragraph at lines 72--72
[]|\EU2/MyriadPro(0)/m/n/10 underscore|
[]
[11
]
Overfull \hbox (4.14001pt too wide) in paragraph at lines 72--72
[]|\EU2/MyriadPro(0)/m/n/10 pageDown|
[]
@@ -1513,16 +1518,15 @@ Overfull \hbox (15.58pt too wide) in paragraph at lines 72--72
[]|\EU2/MyriadPro(0)/m/n/10 leftCommand|
[]
) [11
] (./api_os.tex
) [12] (./api_os.tex
Underfull \hbox (badness 10000) in paragraph at lines 33--33
[][]|\EU2/MyriadPro(0)/m/n/10 Short month name. (e.g.
[]
) [12
[13
] (./api_security.tex
]) [14] (./api_security.tex
Underfull \hbox (badness 3354) in paragraph at lines 20--20
[][]|\EU2/MyriadPro(0)/m/n/10 Re-turns SHA-256 hash of in-put
[]
@@ -1537,16 +1541,28 @@ Underfull \hbox (badness 2707) in paragraph at lines 20--20
[][]|\EU2/MyriadPro(0)/m/n/10 En-codes in-put string as Base64
[]
) [13
) [15
] (./api_shell.tex) [16
] (./api_shell.tex) [14
] (./api_speaker.tex
Underfull \hbox (badness 6961) in paragraph at lines 10--10
Overfull \hbox (0.686pt too wide) in alignment at lines 11--11
[] [] []
[]
Underfull \hbox (badness 1577) in paragraph at lines 11--11
[][]|\EU2/MyriadPro(0)/m/n/10 En-queues speaker driv-ing
[]
) [15
Package longtable Warning: Column widths have changed
(longtable) in table 8.1 on input line 11.
) [17
] (./api_terminal.tex
Underfull \hbox (badness 2165) in paragraph at lines 68--68
@@ -1591,11 +1607,12 @@ Underfull \hbox (badness 10000) in paragraph at lines 68--68
[][]|\EU2/MyriadPro(0)/m/n/10 Re-turns cur-rent back-ground
[]
[16
[18
] [17]
] [19]
\cpimagew=\skip279
<mda.png, id=206, 4625.28pt x 1798.72pt>
<mda.png, id=310, 4625.28pt x 1798.72pt>
File: mda.png Graphic file (type png)
<use mda.png>
Package pdftex.def Info: mda.png used on input line 90.
@@ -1603,12 +1620,12 @@ Package pdftex.def Info: mda.png used on input line 90.
Underfull \vbox (badness 10000) has occurred while \output is active []
[18]
[20]
Underfull \hbox (badness 6658) in paragraph at lines 111--111
[][]|\EU2/MyriadPro(0)/m/n/10 DEL. Backspace and deletes
[]
) [19<./mda.png>] (./luaglobals.tex
) [21<./mda.png>] (./luaglobals.tex
Underfull \hbox (badness 1092) in paragraph at lines 16--16
\EU2/MyriadPro(0)/m/n/10 ory in-stalled in the com-puter, in
[]
@@ -1628,73 +1645,80 @@ Underfull \hbox (badness 2591) in paragraph at lines 55--55
\EU2/MyriadPro(0)/m/n/10 change fore-ground colour to dim
[]
[20
[22
] [23]) (./luadifferences.tex) [24] (./api_machine.tex) [25
]
Underfull \vbox (badness 10000) has occurred while \output is active []
[21])
(./luadifferences.tex) [22] (./api_machine.tex) [23
] [24
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Bold.otf" [26
]
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Bold.otf" [25] (./cc
_bit.tex)
[26
(./cc_bit.tex) [27
] (./cc_colors.tex) [27
] (./cc_colors.tex) [28
] [28
] [29
] [30
] [31] [32
] [31
] [32
] (./peri_lp.tex)
[33
] [33] (./peri_lp.tex)
[34
] [34
] [35
] [36
] [37
] [36] [37
]
\tf@toc=\write5
\openout5 = romapidoc.toc
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 173.
Package atveryend Info: Empty hook `AfterLastShipout' on input line 173.
(./romapidoc.aux)
Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 173.
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 173.
Package longtable Warning: Table widths have changed. Rerun LaTeX.
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 182.
Package atveryend Info: Empty hook `AfterLastShipout' on input line 182.
(./romapidoc.aux)
Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 182.
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 182.
Package rerunfilecheck Info: File `romapidoc.out' has not changed.
(rerunfilecheck) Checksum: 36E048903F7D7E12751FBA89BBC694EF;2202.
Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 173.
(rerunfilecheck) Checksum: E6AA534E637E70890D852319B9FFD1B2;4249.
Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 182.
)
Here is how much of LuaTeX's memory you used:
27311 strings out of 494693
27337 strings out of 494693
125070,662416 words of node,token memory allocated
782 words of node memory still in use:
794 words of node memory still in use:
3 hlist, 1 vlist, 1 rule, 2 glue, 1 kern, 5 attribute, 141 glue_spec, 5 attri
bute_list, 2 write nodes
avail lists: 2:15165,3:285,4:3728,5:1382,6:6439,7:355,8:23,9:917,10:405
30213 multiletter control sequences out of 65536+600000
62 fonts using 5300671 bytes
67i,12n,59p,1189b,492s stack positions out of 5000i,500n,10000p,200000b,100000s
avail lists: 2:15095,3:297,4:3729,5:1384,6:6444,7:355,8:30,9:919,10:406
30235 multiletter control sequences out of 65536+600000
62 fonts using 5300367 bytes
67i,12n,59p,1189b,507s stack positions out of 5000i,500n,10000p,200000b,100000s
LuaTeX warning (dest): name{Hfootnote.2} has been referenced but does not exist,
replaced by a fixed one
</Library/Fonts/MyriadPro-It.otf></Library/Fonts/MyriadPro-Regular.otf></Library
/Fonts/MyriadPro-Bold.otf>
Output written on romapidoc.pdf (37 pages, 100709 bytes).
Output written on romapidoc.pdf (37 pages, 103609 bytes).
PDF statistics: 339 PDF objects out of 1000 (max. 8388607)
286 compressed objects within 3 object streams
99 named destinations out of 1000 (max. 131072)
169 words of extra memory for PDF output out of 10000 (max. 10000000)
PDF statistics: 429 PDF objects out of 1000 (max. 8388607)
372 compressed objects within 4 object streams
106 named destinations out of 1000 (max. 131072)
321 words of extra memory for PDF output out of 10000 (max. 10000000)

View File

@@ -1,21 +1,40 @@
\BOOKMARK [0][-]{chapter.1}{\376\377\000A\000P\000I\000s\000\040\000a\000n\000d\000\040\000L\000i\000b\000r\000a\000r\000i\000e\000s}{}% 1
\BOOKMARK [1][-]{section.1.1}{\376\377\000F\000i\000l\000e\000s\000y\000s\000t\000e\000m}{chapter.1}% 2
\BOOKMARK [1][-]{section.1.2}{\376\377\000H\000e\000x\000u\000t\000i\000l\000s}{chapter.1}% 3
\BOOKMARK [1][-]{section.1.3}{\376\377\000I\000n\000p\000u\000t}{chapter.1}% 4
\BOOKMARK [1][-]{section.1.4}{\376\377\000K\000e\000y\000s}{chapter.1}% 5
\BOOKMARK [1][-]{section.1.5}{\376\377\000O\000S}{chapter.1}% 6
\BOOKMARK [1][-]{section.1.6}{\376\377\000S\000e\000c\000u\000r\000i\000t\000y}{chapter.1}% 7
\BOOKMARK [1][-]{section.1.7}{\376\377\000S\000h\000e\000l\000l}{chapter.1}% 8
\BOOKMARK [1][-]{section.1.8}{\376\377\000S\000p\000e\000a\000k\000e\000r}{chapter.1}% 9
\BOOKMARK [1][-]{section.1.9}{\376\377\000T\000e\000r\000m\000i\000n\000a\000l}{chapter.1}% 10
\BOOKMARK [1][-]{section.1.10}{\376\377\000L\000u\000a\000\040\000G\000l\000o\000b\000a\000l\000s}{chapter.1}% 11
\BOOKMARK [1][-]{section.1.11}{\376\377\000M\000a\000c\000h\000i\000n\000e}{chapter.1}% 12
\BOOKMARK [0][-]{chapter.2}{\376\377\000C\000o\000m\000p\000a\000t\000i\000b\000i\000l\000i\000t\000y\000\040\000L\000a\000y\000e\000r\000s\040\024\000C\000o\000m\000p\000u\000t\000e\000r\000C\000r\000a\000f\000t}{}% 13
\BOOKMARK [1][-]{section.2.1}{\376\377\000B\000i\000t}{chapter.2}% 14
\BOOKMARK [1][-]{section.2.2}{\376\377\000C\000o\000l\000o\000r\000s}{chapter.2}% 15
\BOOKMARK [1][-]{section.2.3}{\376\377\000T\000e\000r\000m}{chapter.2}% 16
\BOOKMARK [1][-]{section.2.4}{\376\377\000F\000i\000l\000e\000s\000y\000s\000t\000e\000m}{chapter.2}% 17
\BOOKMARK [0][-]{chapter.3}{\376\377\000C\000o\000m\000p\000a\000t\000i\000b\000i\000l\000i\000t\000y\000\040\000L\000a\000y\000e\000r\000s\040\024\000O\000p\000e\000n\000C\000o\000m\000p\000u\000t\000e\000r\000s}{}% 18
\BOOKMARK [0][-]{chapter.4}{\376\377\000P\000e\000r\000i\000p\000h\000e\000r\000a\000l\000s}{}% 19
\BOOKMARK [1][-]{section.4.1}{\376\377\000L\000i\000n\000e\000\040\000P\000r\000i\000n\000t\000e\000r}{chapter.4}% 20
\BOOKMARK [0][-]{chapter.5}{\376\377\000R\000e\000f\000e\000r\000e\000n\000c\000e\000s}{}% 21
\BOOKMARK [-1][-]{part.1}{\376\377\000A\000P\000I\000s\000\040\000a\000n\000d\000\040\000L\000i\000b\000r\000a\000r\000i\000e\000s}{}% 1
\BOOKMARK [0][-]{chapter.1}{\376\377\000F\000i\000l\000e\000s\000y\000s\000t\000e\000m}{part.1}% 2
\BOOKMARK [1][-]{section.1.1}{\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000s}{chapter.1}% 3
\BOOKMARK [1][-]{section.1.2}{\376\377\000F\000i\000l\000e\000\040\000H\000a\000n\000d\000l\000e\000r}{chapter.1}% 4
\BOOKMARK [0][-]{chapter.2}{\376\377\000H\000e\000x\000u\000t\000i\000l\000s}{part.1}% 5
\BOOKMARK [1][-]{section.2.1}{\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000s}{chapter.2}% 6
\BOOKMARK [0][-]{chapter.3}{\376\377\000I\000n\000p\000u\000t}{part.1}% 7
\BOOKMARK [1][-]{section.3.1}{\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000s}{chapter.3}% 8
\BOOKMARK [0][-]{chapter.4}{\376\377\000K\000e\000y\000s}{part.1}% 9
\BOOKMARK [1][-]{section.4.1}{\376\377\000A\000c\000c\000e\000p\000t\000e\000d\000\040\000K\000e\000y\000\040\000N\000a\000m\000e\000s}{chapter.4}% 10
\BOOKMARK [0][-]{chapter.5}{\376\377\000O\000S}{part.1}% 11
\BOOKMARK [1][-]{section.5.1}{\376\377\000D\000a\000t\000e\000\040\000F\000o\000r\000m\000a\000t\000\040\000S\000t\000r\000i\000n\000g}{chapter.5}% 12
\BOOKMARK [0][-]{chapter.6}{\376\377\000S\000e\000c\000u\000r\000i\000t\000y}{part.1}% 13
\BOOKMARK [1][-]{section.6.1}{\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000s}{chapter.6}% 14
\BOOKMARK [0][-]{chapter.7}{\376\377\000S\000h\000e\000l\000l}{part.1}% 15
\BOOKMARK [0][-]{chapter.8}{\376\377\000S\000p\000e\000a\000k\000e\000r}{part.1}% 16
\BOOKMARK [0][-]{chapter.9}{\376\377\000T\000e\000r\000m\000i\000n\000a\000l}{part.1}% 17
\BOOKMARK [1][-]{section.9.1}{\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000s}{chapter.9}% 18
\BOOKMARK [1][-]{section.9.2}{\376\377\000S\000t\000a\000n\000d\000a\000r\000d\000\040\000C\000o\000l\000o\000u\000r\000s}{chapter.9}% 19
\BOOKMARK [1][-]{section.9.3}{\376\377\000C\000o\000d\000e\000p\000a\000g\000e}{chapter.9}% 20
\BOOKMARK [1][-]{section.9.4}{\376\377\000A\000c\000c\000e\000p\000t\000e\000d\000\040\000C\000o\000n\000t\000r\000o\000l\000\040\000S\000e\000q\000u\000e\000n\000c\000e\000s}{chapter.9}% 21
\BOOKMARK [0][-]{chapter.10}{\376\377\000L\000u\000a\000\040\000G\000l\000o\000b\000a\000l\000s}{part.1}% 22
\BOOKMARK [1][-]{section.10.1}{\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000s}{chapter.10}% 23
\BOOKMARK [1][-]{section.10.2}{\376\377\000C\000o\000n\000s\000t\000a\000n\000t\000s}{chapter.10}% 24
\BOOKMARK [1][-]{section.10.3}{\376\377\000B\000e\000l\000l\000\040\000C\000o\000d\000e\000s}{chapter.10}% 25
\BOOKMARK [0][-]{chapter.11}{\376\377\000M\000a\000c\000h\000i\000n\000e}{part.1}% 26
\BOOKMARK [-1][-]{part.2}{\376\377\000C\000o\000m\000p\000a\000t\000i\000b\000i\000l\000i\000t\000y\000\040\000L\000a\000y\000e\000r\000s\040\024\000C\000o\000m\000p\000u\000t\000e\000r\000C\000r\000a\000f\000t}{}% 27
\BOOKMARK [0][-]{chapter.12}{\376\377\000B\000i\000t}{part.2}% 28
\BOOKMARK [1][-]{section.12.1}{\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000s}{chapter.12}% 29
\BOOKMARK [0][-]{chapter.13}{\376\377\000C\000o\000l\000o\000r\000s}{part.2}% 30
\BOOKMARK [1][-]{section.13.1}{\376\377\000C\000o\000n\000s\000t\000a\000n\000t\000s}{chapter.13}% 31
\BOOKMARK [1][-]{section.13.2}{\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000s}{chapter.13}% 32
\BOOKMARK [0][-]{chapter.14}{\376\377\000T\000e\000r\000m}{part.2}% 33
\BOOKMARK [0][-]{chapter.15}{\376\377\000F\000i\000l\000e\000s\000y\000s\000t\000e\000m}{part.2}% 34
\BOOKMARK [-1][-]{part.3}{\376\377\000C\000o\000m\000p\000a\000t\000i\000b\000i\000l\000i\000t\000y\000\040\000L\000a\000y\000e\000r\000s\040\024\000O\000p\000e\000n\000C\000o\000m\000p\000u\000t\000e\000r\000s}{}% 35
\BOOKMARK [-1][-]{part.4}{\376\377\000P\000e\000r\000i\000p\000h\000e\000r\000a\000l\000s}{}% 36
\BOOKMARK [0][-]{chapter.16}{\376\377\000L\000i\000n\000e\000\040\000P\000r\000i\000n\000t\000e\000r}{part.4}% 37
\BOOKMARK [1][-]{section.16.1}{\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000s}{chapter.16}% 38
\BOOKMARK [0][-]{chapter.17}{\376\377\000P\000S\000G}{part.4}% 39
\BOOKMARK [-1][-]{part.5}{\376\377\000R\000e\000f\000e\000r\000e\000n\000c\000e\000s}{}% 40

Binary file not shown.

View File

@@ -1,6 +1,6 @@
% !TEX TS-program = lualatex
\documentclass[10pt, stock]{memoir}
\documentclass[10pt, stock, openany]{memoir}
\usepackage{fontspec}
@@ -29,15 +29,6 @@
\aliaspagestyle{part}{empty}
\aliaspagestyle{chapter}{empty}
\makeatletter
\renewcommand\memendofchapterhook{%
\clearpage\m@mindentafterchapter\@afterheading}
\makeatother
\definecolor{black}{HTML}{000000}
\definecolor{white}{HTML}{FFFFFF}
\definecolor{dimgrey}{HTML}{555555}
@@ -68,8 +59,23 @@
\posttitle{\par\end{flushright}\vskip 0.5em}
% new sections are new page
\let\oldsection\section
\renewcommand\section{\clearpage\oldsection}
\let\oldsection\chapter
\renewcommand\chapter{\clearpage\oldsection}
% chapter title -- no now page after
\renewcommand\chapterheadstart{} % kill the drop
\renewcommand\afterchapternum{\vskip 0.5em} % space between number and title
\makeatletter
\renewcommand\memendofchapterhook{%
\m@mindentafterchapter\@afterheading}
\makeatother
\renewcommand{\thefootnote}{\fnsymbol{footnote}}
\aliaspagestyle{part}{empty}
\aliaspagestyle{chapter}{empty}
% The title
@@ -95,70 +101,73 @@
\chapter{APIs and Libraries}
\part{APIs and Libraries}
\section{Filesystem}
\chapter{Filesystem}
\input{api_filesystem}
\section{Hexutils}
\chapter{Hexutils}
\input{api_hexutils}
\section{Input}
\chapter{Input}
\input{api_input}
\section{Keys}
\chapter{Keys}
\input{api_keys}
\section{OS}
\chapter{OS}
\input{api_os}
\section{Security}
\chapter{Security}
\input{api_security}
\section{Shell}
\chapter{Shell}
\input{api_shell}
\section{Speaker}
\chapter{Speaker}
\input{api_speaker}
\section{Terminal}
\chapter{Terminal}
\input{api_terminal}
\section{Lua Globals}
\chapter{Lua Globals}
\input{luaglobals}
\subsection{Changes from Generic Lua Environment}
\input{luadifferences}
\section{Machine}
\chapter{Machine}
\input{api_machine}
\chapter[Compatibility Layers---ComputerCraft]{{\LARGE Compatibility Layers} \\ ComputerCraft}
\part[Compatibility Layers---ComputerCraft]{{\LARGE Compatibility Layers} \\ ComputerCraft}
\section{Bit}
\chapter{Bit}
\input{cc_bit}
\section{Colors}
\chapter{Colors}
\input{cc_colors}
\section{Term}
\chapter{Term}
\section{Filesystem}
\chapter{Filesystem}
\chapter[Compatibility Layers---OpenComputers]{{\LARGE Compatibility Layers} \\ OpenComputers}
\part[Compatibility Layers---OpenComputers]{{\LARGE Compatibility Layers} \\ OpenComputers}
\chapter{Peripherals}
\part{Peripherals}
\section{Line Printer}
\chapter{Line Printer}
\input{peri_lp}
\chapter{PSG}
%\input{peri_psg}
\chapter{References}
\part{References}
Some of the texts are taken from following sources:

View File

@@ -1,40 +1,41 @@
\contentsline {chapter}{\chapternumberline {1}APIs and Libraries}{5}{chapter.1}
\contentsline {section}{\numberline {1.1}Filesystem}{6}{section.1.1}
\contentsline {subsection}{\numberline {1.1.1}Functions}{6}{subsection.1.1.1}
\contentsline {subsection}{\numberline {1.1.2}File Handler}{7}{subsection.1.1.2}
\contentsline {section}{\numberline {1.2}Hexutils}{9}{section.1.2}
\contentsline {subsection}{\numberline {1.2.1}Functions}{9}{subsection.1.2.1}
\contentsline {section}{\numberline {1.3}Input}{10}{section.1.3}
\contentsline {subsection}{\numberline {1.3.1}Functions}{10}{subsection.1.3.1}
\contentsline {section}{\numberline {1.4}Keys}{11}{section.1.4}
\contentsline {subsection}{\numberline {1.4.1}Accepted Key Names}{11}{subsection.1.4.1}
\contentsline {section}{\numberline {1.5}OS}{12}{section.1.5}
\contentsline {subsection}{\numberline {1.5.1}Date Format String}{12}{subsection.1.5.1}
\contentsline {section}{\numberline {1.6}Security}{13}{section.1.6}
\contentsline {subsection}{\numberline {1.6.1}Functions}{13}{subsection.1.6.1}
\contentsline {section}{\numberline {1.7}Shell}{14}{section.1.7}
\contentsline {section}{\numberline {1.8}Speaker}{15}{section.1.8}
\contentsline {section}{\numberline {1.9}Terminal}{16}{section.1.9}
\contentsline {subsection}{\numberline {1.9.1}Functions}{16}{subsection.1.9.1}
\contentsline {subsection}{\numberline {1.9.2}Standard Colours}{18}{subsection.1.9.2}
\contentsline {subsection}{\numberline {1.9.3}Codepage}{19}{subsection.1.9.3}
\contentsline {subsection}{\numberline {1.9.4}Accepted Control Sequences}{19}{subsection.1.9.4}
\contentsline {section}{\numberline {1.10}Lua Globals}{20}{section.1.10}
\contentsline {subsection}{\numberline {1.10.1}Functions}{20}{subsection.1.10.1}
\contentsline {subsection}{\numberline {1.10.2}Constants}{20}{subsection.1.10.2}
\contentsline {subsection}{\numberline {1.10.3}Bell Codes}{22}{subsection.1.10.3}
\contentsline {subsection}{\numberline {1.10.4}Changes from Generic Lua Environment}{22}{subsection.1.10.4}
\contentsline {section}{\numberline {1.11}Machine}{23}{section.1.11}
\contentsline {chapter}{\chapternumberline {2}Compatibility Layers---ComputerCraft}{25}{chapter.2}
\contentsline {section}{\numberline {2.1}Bit}{26}{section.2.1}
\contentsline {subsection}{\numberline {2.1.1}Functions}{26}{subsection.2.1.1}
\contentsline {section}{\numberline {2.2}Colors}{27}{section.2.2}
\contentsline {subsection}{\numberline {2.2.1}Constants}{27}{subsection.2.2.1}
\contentsline {subsection}{\numberline {2.2.2}Functions}{27}{subsection.2.2.2}
\contentsline {section}{\numberline {2.3}Term}{28}{section.2.3}
\contentsline {section}{\numberline {2.4}Filesystem}{29}{section.2.4}
\contentsline {chapter}{\chapternumberline {3}Compatibility Layers---OpenComputers}{31}{chapter.3}
\contentsline {chapter}{\chapternumberline {4}Peripherals}{33}{chapter.4}
\contentsline {section}{\numberline {4.1}Line Printer}{34}{section.4.1}
\contentsline {subsection}{\numberline {4.1.1}Functions}{34}{subsection.4.1.1}
\contentsline {chapter}{\chapternumberline {5}References}{35}{chapter.5}
\contentsline {part}{\partnumberline {I}APIs and Libraries}{5}{part.1}
\contentsline {chapter}{\chapternumberline {1}Filesystem}{6}{chapter.1}
\contentsline {section}{\numberline {1.1}Functions}{6}{section.1.1}
\contentsline {section}{\numberline {1.2}File Handler}{7}{section.1.2}
\contentsline {chapter}{\chapternumberline {2}Hexutils}{9}{chapter.2}
\contentsline {section}{\numberline {2.1}Functions}{9}{section.2.1}
\contentsline {chapter}{\chapternumberline {3}Input}{10}{chapter.3}
\contentsline {section}{\numberline {3.1}Functions}{10}{section.3.1}
\contentsline {chapter}{\chapternumberline {4}Keys}{11}{chapter.4}
\contentsline {section}{\numberline {4.1}Accepted Key Names}{11}{section.4.1}
\contentsline {chapter}{\chapternumberline {5}OS}{13}{chapter.5}
\contentsline {section}{\numberline {5.1}Date Format String}{13}{section.5.1}
\contentsline {chapter}{\chapternumberline {6}Security}{15}{chapter.6}
\contentsline {section}{\numberline {6.1}Functions}{15}{section.6.1}
\contentsline {chapter}{\chapternumberline {7}Shell}{16}{chapter.7}
\contentsline {chapter}{\chapternumberline {8}Speaker}{17}{chapter.8}
\contentsline {chapter}{\chapternumberline {9}Terminal}{18}{chapter.9}
\contentsline {section}{\numberline {9.1}Functions}{18}{section.9.1}
\contentsline {section}{\numberline {9.2}Standard Colours}{20}{section.9.2}
\contentsline {section}{\numberline {9.3}Codepage}{21}{section.9.3}
\contentsline {section}{\numberline {9.4}Accepted Control Sequences}{21}{section.9.4}
\contentsline {chapter}{\chapternumberline {10}Lua Globals}{22}{chapter.10}
\contentsline {section}{\numberline {10.1}Functions}{22}{section.10.1}
\contentsline {section}{\numberline {10.2}Constants}{22}{section.10.2}
\contentsline {section}{\numberline {10.3}Bell Codes}{24}{section.10.3}
\contentsline {subsection}{\numberline {10.3.1}Changes from Generic Lua Environment}{24}{subsection.10.3.1}
\contentsline {chapter}{\chapternumberline {11}Machine}{25}{chapter.11}
\contentsline {part}{\partnumberline {II}Compatibility Layers---ComputerCraft}{26}{part.2}
\contentsline {chapter}{\chapternumberline {12}Bit}{27}{chapter.12}
\contentsline {section}{\numberline {12.1}Functions}{27}{section.12.1}
\contentsline {chapter}{\chapternumberline {13}Colors}{28}{chapter.13}
\contentsline {section}{\numberline {13.1}Constants}{28}{section.13.1}
\contentsline {section}{\numberline {13.2}Functions}{28}{section.13.2}
\contentsline {chapter}{\chapternumberline {14}Term}{29}{chapter.14}
\contentsline {chapter}{\chapternumberline {15}Filesystem}{30}{chapter.15}
\contentsline {part}{\partnumberline {III}Compatibility Layers---OpenComputers}{31}{part.3}
\contentsline {part}{\partnumberline {IV}Peripherals}{32}{part.4}
\contentsline {chapter}{\chapternumberline {16}Line Printer}{33}{chapter.16}
\contentsline {section}{\numberline {16.1}Functions}{33}{section.16.1}
\contentsline {chapter}{\chapternumberline {17}PSG}{34}{chapter.17}
\contentsline {part}{\partnumberline {V}References}{35}{part.5}