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) # 0: neutral, 1: amicable (welcoming), -1: hostile (will not barter, like 'unassigned' neutral)
# -2: enemy (this is the holy war! WAAAGH!!) # -2: enemy (this is the holy war! WAAAGH!!)
# Put some ideas here:
# ABSTRACT (ideologies, philosophies, etc.) #
# war: WAAAGH!! # war: WAAAGH!!
# randomness: All hail the Random Number God! # randomness: All hail the Random Number God!
# strength: tranees; disciplinants # strength: tranees; disciplinants
# brute: mostly "brute" wild mobs, or spheres that is fond of brute-ness # 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" "↓from to→";"strength";"harmony";"war";"randomness";"wealth";"brute";"helix"
"strength" ; "1"; "1"; "0"; "0"; "0"; "0"; "0" "strength" ; "1"; "1"; "0"; "0"; "0"; "0"; "0"
"harmony" ; "0"; "1"; "-1"; "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() { class StateVTTest : BasicGameState() {
// HiRes: 100x64, LoRes: 80x25 // HiRes: 100x64, LoRes: 80x25
val computerInside = BaseTerrarumComputer() val computerInside = BaseTerrarumComputer(8)
val vt = SimpleTextTerminal(SimpleTextTerminal.WHITE, 80, 25, val vt = SimpleTextTerminal(SimpleTextTerminal.GREEN, 80, 25,
computerInside, colour = false, hires = false) computerInside, colour = false, hires = false)

View File

@@ -1,6 +1,5 @@
package net.torvald.terrarum.virtualcomputer.computer package net.torvald.terrarum.virtualcomputer.computer
import com.jme3.math.FastMath
import org.luaj.vm2.Globals import org.luaj.vm2.Globals
import org.luaj.vm2.LuaError import org.luaj.vm2.LuaError
import org.luaj.vm2.LuaTable 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.KVHashMap
import net.torvald.terrarum.gameactors.roundInt import net.torvald.terrarum.gameactors.roundInt
import net.torvald.terrarum.virtualcomputer.luaapi.* import net.torvald.terrarum.virtualcomputer.luaapi.*
import net.torvald.terrarum.virtualcomputer.peripheral.*
import net.torvald.terrarum.virtualcomputer.terminal.* import net.torvald.terrarum.virtualcomputer.terminal.*
import net.torvald.terrarum.virtualcomputer.worldobject.ComputerPartsCodex import net.torvald.terrarum.virtualcomputer.worldobject.ComputerPartsCodex
import org.lwjgl.BufferUtils 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. * @param term : terminal that is connected to the computer fixtures, null if not connected any.
* Created by minjaesong on 16-09-10. * 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_UNLIMITED_MEM = false
val DEBUG = false val DEBUG = true
lateinit var luaJ_globals: Globals lateinit var luaJ_globals: Globals
@@ -71,6 +74,8 @@ class BaseTerrarumComputer() {
lateinit var term: Teletype lateinit var term: Teletype
private set private set
val peripheralTable = ArrayList<Peripheral>()
// os-related functions. These are called "machine" library-wise. // os-related functions. These are called "machine" library-wise.
private val startupTimestamp: Long = System.currentTimeMillis() private val startupTimestamp: Long = System.currentTimeMillis()
/** Time elapsed since the power is on. */ /** Time elapsed since the power is on. */
@@ -102,6 +107,28 @@ class BaseTerrarumComputer() {
computerValue["boot"] = computerValue.getAsString("hda")!! 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) { fun attachTerminal(term: Teletype) {
this.term = term this.term = term
initSandbox(term) initSandbox(term)
@@ -126,7 +153,7 @@ class BaseTerrarumComputer() {
Filesystem(luaJ_globals, this) Filesystem(luaJ_globals, this)
HostAccessProvider(luaJ_globals, this) HostAccessProvider(luaJ_globals, this)
Input(luaJ_globals, this) Input(luaJ_globals, this)
Http(luaJ_globals, this) PeripheralInternet(luaJ_globals, this)
PcSpeakerDriver(luaJ_globals, this) PcSpeakerDriver(luaJ_globals, this)
WorldInformationProvider(luaJ_globals) WorldInformationProvider(luaJ_globals)
@@ -146,7 +173,16 @@ class BaseTerrarumComputer() {
luaJ_globals["computer"] = LuaTable() luaJ_globals["computer"] = LuaTable()
// rest of the "computer" APIs should be implemented in BOOT.lua // 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 var threadTimer = 0
@@ -253,7 +289,7 @@ class BaseTerrarumComputer() {
class ComputerEmitTone(val computer: BaseTerrarumComputer) : TwoArgFunction() { class ComputerEmitTone(val computer: BaseTerrarumComputer) : TwoArgFunction() {
override fun call(millisec: LuaValue, freq: LuaValue): LuaValue { override fun call(millisec: LuaValue, freq: LuaValue): LuaValue {
computer.playTone(millisec.toint(), freq.tofloat()) computer.playTone(millisec.checkint(), freq.checkdouble())
return LuaValue.NONE return LuaValue.NONE
} }
} }
@@ -264,7 +300,7 @@ class BaseTerrarumComputer() {
private val beepMaxLen = 10000 private val beepMaxLen = 10000
// let's regard it as a tracker... // 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 beepCursor = -1
private var beepQueueLineExecTimer = 0 // millisec private var beepQueueLineExecTimer = 0 // millisec
private var beepQueueFired = false private var beepQueueFired = false
@@ -285,7 +321,8 @@ class BaseTerrarumComputer() {
// complete emitTone queue // complete emitTone queue
if (beepCursor >= beepQueue.size) { if (beepCursor >= beepQueue.size) {
clearBeepQueue() clearBeepQueue()
if (DEBUG) println("!! Beep queue clear") AL.destroy()
if (DEBUG) println("[BaseTerrarumComputer] !! Beep queue clear")
} }
// actually play queue // actually play queue
@@ -303,7 +340,7 @@ class BaseTerrarumComputer() {
beepQueueLineExecTimer = 0 beepQueueLineExecTimer = 0
} }
fun enqueueBeep(duration: Int, freq: Float) { fun enqueueBeep(duration: Int, freq: Double) {
beepQueue.add(Pair(Math.min(duration, beepMaxLen), freq)) beepQueue.add(Pair(Math.min(duration, beepMaxLen), freq))
} }
@@ -326,48 +363,48 @@ class BaseTerrarumComputer() {
* *
* ,---. (true, true) ,---- (true, false) ----. (false, true) ----- (false, false) * ,---. (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 { rampUp: Boolean = true, rampDown: Boolean = true): ByteBuffer {
val audioData = BufferUtils.createByteBuffer(duration.times(sampleRate).div(1000)) val audioData = BufferUtils.createByteBuffer(duration.times(sampleRate).div(1000))
val realDuration = duration * sampleRate / 1000 val realDuration = duration * sampleRate / 1000
val chopSize = freq / sampleRate val chopSize = freq / sampleRate
val amp = Math.max(4600f / freq, 1f) val amp = Math.max(4600.0 / freq, 1.0)
val nHarmonics = if (freq >= 22050f) 1 val nHarmonics = if (freq >= 22050.0) 1
else if (freq >= 11025f) 2 else if (freq >= 11025.0) 2
else if (freq >= 5512.5f) 3 else if (freq >= 5512.5) 3
else if (freq >= 2756.25f) 4 else if (freq >= 2756.25) 4
else if (freq >= 1378.125f) 5 else if (freq >= 1378.125) 5
else if (freq >= 689.0625f) 6 else if (freq >= 689.0625) 6
else 7 else 7
val transitionThre = 974.47218f val transitionThre = 974.47218
// TODO volume ramping? // TODO volume ramping?
if (freq == 0f) { if (freq == 0.0) {
for (x in 0..realDuration - 1) { for (x in 0..realDuration - 1) {
audioData.put(0x00.toByte()) audioData.put(0x00.toByte())
} }
} }
else if (freq < transitionThre) { // chopper generator (for low freq) else if (freq < transitionThre) { // chopper generator (for low freq)
for (x in 0..realDuration - 1) { for (x in 0..realDuration - 1) {
var sine: Float = amp * FastMath.cos(FastMath.TWO_PI * x * chopSize) var sine: Double = amp * Math.cos(Math.PI * 2 * x * chopSize)
if (sine > 0.79f) sine = 0.79f if (sine > 0.79) sine = 0.79
else if (sine < -0.79f) sine = -0.79f else if (sine < -0.79) sine = -0.79
audioData.put( 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) else { // harmonics generator (for high freq)
for (x in 0..realDuration - 1) { 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 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( 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 return audioData
} }
private fun playTone(leninmilli: Int, freq: Float) { private fun playTone(leninmilli: Int, freq: Double) {
audioData = makeAudioData(leninmilli, freq) 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.TwoArgFunction
import org.luaj.vm2.lib.ZeroArgFunction import org.luaj.vm2.lib.ZeroArgFunction
import net.torvald.terrarum.virtualcomputer.computer.BaseTerrarumComputer import net.torvald.terrarum.virtualcomputer.computer.BaseTerrarumComputer
import org.luaj.vm2.lib.OneArgFunction
/** /**
* PC Speaker driver and arpeggiator (MONOTONE-style 4 channels) * 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. * Created by minjaesong on 16-09-27.
*/ */
class PcSpeakerDriver(globals: Globals, host: BaseTerrarumComputer) { class PcSpeakerDriver(val globals: Globals, host: BaseTerrarumComputer) {
init { init {
globals["speaker"] = LuaTable() globals["speaker"] = LuaTable()
globals["speaker"]["enqueue"] = EnqueueTone(host) globals["speaker"]["enqueue"] = EnqueueTone(host)
globals["speaker"]["clear"] = ClearQueue(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() { 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 { 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 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 duration: milliseconds
* @param freg: Frequency (float) * @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") // println("!! Beep playing row $beepCursor, d ${Math.min(duration, maxDuration)} f $freq")
host.clearBeepQueue() host.clearBeepQueue()
host.enqueueBeep(duration, freq) host.enqueueBeep(duration, freq)
@@ -328,19 +328,19 @@ open class SimpleTextTerminal(
override fun bell(pattern: String) { override fun bell(pattern: String) {
host.clearBeepQueue() host.clearBeepQueue()
val freq: Float = val freq: Double =
if (host.luaJ_globals["computer"]["bellpitch"].isnil()) if (host.luaJ_globals["computer"]["bellpitch"].isnil())
1000f 1000.0
else else
host.luaJ_globals["computer"]["bellpitch"].checkdouble().toFloat() host.luaJ_globals["computer"]["bellpitch"].checkdouble()
for (c in pattern) { for (c in pattern) {
when (c) { when (c) {
'.' -> { host.enqueueBeep(80, freq); host.enqueueBeep(50, 0f) } '.' -> { host.enqueueBeep(80, freq); host.enqueueBeep(50, 0.0) }
'-' -> { host.enqueueBeep(200, freq); host.enqueueBeep(50, 0f) } '-' -> { host.enqueueBeep(200, freq); host.enqueueBeep(50, 0.0) }
'=' -> { host.enqueueBeep(500, freq); host.enqueueBeep(50, 0f) } '=' -> { host.enqueueBeep(500, freq); host.enqueueBeep(50, 0.0) }
' ' -> { host.enqueueBeep(200, 0f) } ' ' -> { host.enqueueBeep(200, 0.0) }
',' -> { host.enqueueBeep(50, 0f) } ',' -> { host.enqueueBeep(50, 0.0) }
else -> throw IllegalArgumentException("Unacceptable pattern: $c (from '$pattern')") else -> throw IllegalArgumentException("Unacceptable pattern: $c (from '$pattern')")
} }
} }

View File

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

View File

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

View File

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

View File

@@ -6,7 +6,7 @@
°03°03° °05°úúú úúú°F#5 úúú°úúú úúú°úúú úúú°\ Note offTAB Next channel °03°03° °05°úúú úúú°F#5 úúú°úúú úúú°úúú úúú°\ Note offTAB Next channel
°04°04° °06°úúú úúú°A-5 úúú°úúú úúú°úúú úúú° °04°04° °06°úúú úúú°A-5 úúú°úúú úúú°úúú úúú°
°05°05° °07°úúú úúú°G-5 úúú°G-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 °07°07°  09 úúú úúú E-6 úúú úúú úúú úúú úúú  ALT C Copy selectionHM/ED Move to top/bottom
°08°08° °0A°úúú úúú°C-5 úúú°=== úúú°úúú úúú° ALT V Paste selection °08°08° °0A°úúú úúú°C-5 úúú°=== úúú°úúú úúú° ALT V Paste selection
°09°09° °0B°úúú úúú°úúú úúú°úúú úúú°úúú úúú° °09°09° °0B°úúú úúú°úúú úúú°úúú úúú°úúú úúú°
@@ -28,42 +28,42 @@
°19°19° °1B°úúú úúú°úúú úúú°úúú úúú°úúú F20° °19°19° °1B°úúú úúú°úúú úúú°úúú úúú°úúú F20°
°1A°1A° °1C°úúú úúú°úúú úúú°úúú úúú°úúú úúú° °1A°1A° °1C°úúú úúú°úúú úúú°úúú úúú°úúú úúú°
°1B°1B° °1D°úúú úúú°úúú úúú°úúú úúú°úúú úúú° °1B°1B° °1D°úúú úúú°úúú úúú°úúú úúú°úúú úúú°
°1C°1C° °1E°úúú úúú°úúú úúú°G-3 úúú°úúú F03° Effects °1C°1C° °1E°úúú úúú°úúú úúú°G-3 úúú°úúú F03°  EffectsTranspose
°1D°1D° °1F°úúú úúú°úúú úúú°A-3 úúú°úúú úúú° °1D°1D° °1F°úúú úúú°úúú úúú°A-3 úúú°úúú úúú°
°1E°1E° °20°úúú úúú°úúú úúú°B-3 úúú°úúú úúú°0xy Arpeggio °1E°1E° °20°úúú úúú°úúú úúú°B-3 úúú°úúú úúú° 0xy ArpeggioALT ] +12
°1F°1E° °21°úúú úúú°úúú úúú°C-4 úúú°úúú úúú° °1F°1E° °21°úúú úúú°úúú úúú°C-4 úúú°úúú úúú°ALT [ -12
°20°1E° °22°úúú úúú°úúú úúú°D-4 úúú°úúú úúú°1xx Portamento up °20°1E° °22°úúú úúú°úúú úúú°D-4 úúú°úúú úúú° 1xx Portamento up
°21°1F° °23°úúú úúú°úúú úúú°E-4 úúú°úúú úúú° °21°1F° °23°úúú úúú°úúú úúú°E-4 úúú°úúú úúú° ALT = +1
°úú°úú° °24°úúú úúú°úúú úúú°F-4 úúú°úúú úúú°2xx Portamento down °úú°úú° °24°úúú úúú°úúú úúú°F-4 úúú°úúú úúú° 2xx Portamento down ALT - -1
°úú°úú° °25°úúú úúú°úúú úúú°G-4 úúú°úúú úúú° °úú°úú° °25°úúú úúú°úúú úúú°G-4 úúú°úúú úúú°
°úú°úú° °26°úúú úúú°úúú úúú°A-4 úúú°úúú úúú°3xx Portamento to note °úú°úú° °26°úúú úúú°úúú úúú°A-4 úúú°úúú úúú° 3xx Portamento to note
°úú°úú° °27°úúú úúú°úúú úúú°B-4 úúú°úúú úúú° °úú°úú° °27°úúú úúú°úúú úúú°B-4 úúú°úúú úúú°
°úú°úú° °28°úúú úúú°úúú úúú°C-5 úúú°úúú úúú°4xy Vibrato °úú°úú° °28°úúú úúú°úúú úúú°C-5 úúú°úúú úúú° 4xy Vibrato
°úú°úú° °29°úúú úúú°úúú úúú°D-5 úúú°úúú úúú° °úú°úú° °29°úúú úúú°úúú úúú°D-5 úúú°úúú úúú°
°úú°úú° °2A°úúú úúú°úúú úúú°E-5 úúú°úúú úúú°Bxx Jump to order °úú°úú° °2A°úúú úúú°úúú úúú°E-5 úúú°úúú úúú° Bxx Jump to order
°úú°úú° °2B°úúú úúú°úúú úúú°F-5 úúú°úúú úúú° °úú°úú° °2B°úúú úúú°úúú úúú°F-5 úúú°úúú úúú°
°úú°úú° °2C°úúú úúú°úúú úúú°G-5 úúú°úúú úúú°Dxx Pattern break °úú°úú° °2C°úúú úúú°úúú úúú°G-5 úúú°úúú úúú° Dxx Pattern break
°úú°úú° °2D°úúú úúú°úúú úúú°A-5 úúú°úúú úúú° °úú°úú° °2D°úúú úúú°úúú úúú°A-5 úúú°úúú úúú°
°úú°úú° °2E°úúú úúú°úúú úúú°B-5 úúú°úúú úúú°Fxx Set tick speed °úú°úú° °2E°úúú úúú°úúú úúú°B-5 úúú°úúú úúú° Fxx Set tick speed
°úú°úú° °2F°úúú úúú°úúú úúú°C-6 úúú°úúú úúú° °úú°úú° °2F°úúú úúú°úúú úúú°C-6 úúú°úúú úúú°
°úú°úú° °30°úúú úúú°úúú úúú°D-6 úúú°úúú úúú° °úú°úú° °30°úúú úúú°úúú úúú°D-6 úúú°úúú úúú°
°úú°úú° °31°úúú úúú°úúú úúú°E-6 úúú°úúú úúú° ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± °úú°úú° °31°úúú úúú°úúú úúú°E-6 úúú°úúú úúú° ± ±
°úú°úú° °32°úúú úúú°úúú úúú°F-6 úúú°úúú úúú° ±±Ý ÞÝ Þ±±±Ý ÞÝ ÞÝ Þ±±±Ý ÞÝ Þ±±±Ý Þ±±± °úú°úú° °32°úúú úúú°úúú úúú°F-6 úúú°úúú úúú° ± Ý ÞÝ Þ Ý ÞÝ ÞÝ Þ Ý ÞÝ Þ ±
°úú°úú° °33°úúú úúú°úúú úúú°G-6 úúú°úúú úúú° ±±Ý2ÞÝ3Þ±±±Ý5ÞÝ6ÞÝ7Þ±±±Ý9ÞÝ0Þ±±±Ý=Þ±±± °úú°úú° °33°úúú úúú°úúú úúú°G-6 úúú°úúú úúú° ± Ý2ÞÝ3Þ Ý5ÞÝ6ÞÝ7Þ Ý9ÞÝ0Þ ÛÛÛ±
°úú°úú° °34°úúú úúú°úúú úúú°A-6 úúú°úúú úúú° ±±Ý ÞÝ Þ±±±Ý ÞÝ ÞÝ Þ±±±Ý ÞÝ Þ±±±Ý Þ±±± °úú°úú° °34°úúú úúú°úúú úúú°A-6 úúú°úúú úúú° ± Ý ÞÝ Þ Ý ÞÝ ÞÝ Þ Ý ÞÝ Þ ÛÛÛ±
°úú°úú° °35°úúú úúú°úúú úúú°B-6 D00°úúú úúú° ±Ý ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ Þ± °úú°úú° °35°úúú úúú°úúú úúú°B-6 D00°úúú úúú° ±Ý ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÛÛÛ±
°úú°úú° °36°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±ÝQÞÝWÞÝEÞÝRÞÝTÞÝYÞÝUÞÝIÞÝOÞÝPÞÝ{ÞÝ}Þ± °úú°úú° °36°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±ÝQÞÝWÞÝEÞÝRÞÝTÞÝYÞÝUÞÝIÞÝOÞÝPÞ ±
°úú°úú° °37°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±Ý ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ Þ± °úú°úú° °37°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±Ý ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ Þ ±
°úú°úú° °38°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± °úú°úú° °38°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ± ±
°úú°úú° °39°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±±±Ý ÞÝ Þ±±±Ý ÞÝ ÞÝ Þ±±±Ý ÞÝ Þ±±±±±±±± °úú°úú° °39°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ± O Ý ÞÝ Þ Ý ÞÝ ÞÝ Þ Ý ÞÝ Þ ±
°úú°úú° °3A°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±±±ÝSÞÝDÞ±±±ÝGÞÝHÞÝJÞ±±±ÝLÞÝ;Þ±±±±±±±± °úú°úú° °3A°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ± c ÝSÞÝDÞ ÝGÞÝHÞÝJÞ ÝLÞÝ;Þ ±
  °3B°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±±±Ý ÞÝ Þ±±±Ý ÞÝ ÞÝ Þ±±±Ý ÞÝ Þ±±±±±±±±   °3B°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ± t Ý ÞÝ Þ Ý ÞÝ ÞÝ Þ Ý ÞÝ Þ ±
°3C°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±±Ý ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ Þ±±±±±± °3C°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±  Ý ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ Þ±
RecPlay °3D°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±±ÝZÞÝXÞÝCÞÝVÞÝBÞÝNÞÝMÞÝ,ÞÝ.ÞÝ/Þ±Oct±± RecPlay °3D°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±-1 ÝZÞÝXÞÝCÞÝVÞÝBÞÝNÞÝMÞÝ,ÞÝ.ÞÝ/Þ±
Trcks 4 °3E°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±±Ý ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ Þ± -1±± Trcks 4 °3E°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ± Ý ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ ÞÝ Þ±
Tick 00 °3F°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± Tick 00 °3F°úúú úúú°úúú úúú°úúú úúú°úúú úúú° ± ±
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
RecPlay RecPlay RecPlay RecPlay
Trcks 4 Trcks 4  Editable Trcks 4 Trcks 4  Editable
Tick 00 Tick 00  Current play tick 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. 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} \begin{tabularx}{\textwidth}{l l X}
\textbf{\large Function} & \textbf{\large Return} & \textbf{\large Description} \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. fs.fetchText(\textbf{path}: string) & string & Opens the file on \textbf{path} and returns its contents as a plain text.
\end{tabularx} \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. 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. The Hexutils library provides utility to convert byte value to hexadecimal string.
\subsection{Functions} \section{Functions}
\begin{tabularx}{\textwidth}{l l X} \begin{tabularx}{\textwidth}{l l X}
\textbf{\large Function} & \textbf{\large Return} & \textbf{\large Description} \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. 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} \begin{tabularx}{\textwidth}{l l X}
\textbf{\large Function} & \textbf{\large Return} & \textbf{\large Description} \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. keys.getName(keycode: int) & string & Returns key name corresponds to the keycode.
\end{tabularx} \end{tabularx}
\subsection{Accepted Key Names} \section{Accepted Key Names}
\emph{NOTE: following sets are considered as the same keys.} \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} \begin{tabularx}{\textwidth}{l l X}
\textbf{\large Function} & \textbf{\large Return} & \textbf{\large Description} \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. 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} \end{tabularx}
\subsection{Date Format String} \section{Date Format String}
\begin{tabularx}{\textwidth}{c X c X} \begin{tabularx}{\textwidth}{c X c X}
\textbf{\large } & \textbf{\large Description} & \textbf{\large } & \textbf{\large Description} \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}. 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} \begin{tabularx}{\textwidth}{l l X}
\textbf{\large Function} & \textbf{\large Return} & \textbf{\large Description} \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} \textbf{\large Function} & \textbf{\large Return} & \textbf{\large Description}
\\ \\ \\ \\
\endhead \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. speaker.clear() & nil & Clears speaker queue.
\\ \\
\end{tabularx} \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. 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. 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. term.backCol() & int & Returns current background colour.
\end{tabularx} \end{tabularx}
\subsection{Standard Colours} \section{Standard Colours}
\begin{tabularx}{\textwidth}{c l c l c l c l} \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} 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. Non-colour terminals support colour index of 0--3.
\subsection{Codepage} \section{Codepage}
\newlength{\cpimagew} \newlength{\cpimagew}
\setlength{\cpimagew}{\linewidth} \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. 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} \begin{tabularx}{\textwidth}{c X c X}
\textbf{\large No.} & \textbf{\large Description} & \textbf{\large No.} & \textbf{\large Description} \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. 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} \begin{tabularx}{\textwidth}{l X}
\textbf{\large Function} & \textbf{\large Notes} \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. 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. 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}. 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. 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. ROMBASIC adds global functions and constants for operability.
\subsection{Functions} \section{Functions}
\begin{tabularx}{\textwidth}{l l X} \begin{tabularx}{\textwidth}{l l X}
\textbf{\large Function} & \textbf{\large Return} & \textbf{\large Description} \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. computer.freeMemory() & int & Returns the amount of free memory on the computer.
\end{tabularx} \end{tabularx}
\subsection{Constants} \section{Constants}
\begin{tabularx}{\textwidth}{l l X} \begin{tabularx}{\textwidth}{l l X}
\textbf{\large Name} & \textbf{\large Type} & \textbf{\large Description} \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. computer.emitTone(\textbf{len}, \textbf{freq}) & nil & Generates square wave. \textbf{len} is integer, in milliseconds, \textbf{freq} is number, in Hertz.
\end{tabularx} \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. 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. 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} \begin{tabularx}{\textwidth}{l l X}
\textbf{\large Function} & \textbf{\large Return} & \textbf{\large Description} \textbf{\large Function} & \textbf{\large Return} & \textbf{\large Description}

View File

@@ -17,37 +17,43 @@
\gdef\HyperFirstAtBeginDocument#1{#1} \gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand\HyField@AuxAddToFields[1]{} \providecommand\HyField@AuxAddToFields[1]{}
\providecommand\HyField@AuxAddToCoFields[2]{} \providecommand\HyField@AuxAddToCoFields[2]{}
\@writefile{lof}{\addvspace {10pt}} \@writefile{toc}{\contentsline {part}{\partnumberline {I}APIs and Libraries}{5}{part.1}}
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {1}APIs and Libraries}{5}{chapter.1}}
\gdef \LT@i {\LT@entry \gdef \LT@i {\LT@entry
{2}{155.06007pt}\LT@entry {2}{155.06007pt}\LT@entry
{1}{45.25516pt}\LT@entry {1}{45.25516pt}\LT@entry
{1}{134.68477pt}} {1}{134.68477pt}}
\@writefile{toc}{\contentsline {section}{\numberline {1.1}Filesystem}{6}{section.1.1}} \@writefile{lof}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.1.1}Functions}{6}{subsection.1.1.1}} \@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 \gdef \LT@ii {\LT@entry
{2}{99.95pt}\LT@entry {2}{99.95pt}\LT@entry
{1}{235.05pt}} {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 \gdef \LT@iii {\LT@entry
{2}{154.76003pt}\LT@entry {2}{154.76003pt}\LT@entry
{1}{45.25516pt}\LT@entry {1}{45.25516pt}\LT@entry
{1}{134.98482pt}} {1}{134.98482pt}}
\@writefile{toc}{\contentsline {section}{\numberline {1.2}Hexutils}{9}{section.1.2}} \@writefile{lof}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.2.1}Functions}{9}{subsection.1.2.1}} \@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 \gdef \LT@iv {\LT@entry
{2}{138.81004pt}\LT@entry {2}{138.81004pt}\LT@entry
{1}{45.25516pt}\LT@entry {1}{45.25516pt}\LT@entry
{1}{150.9348pt}} {1}{150.9348pt}}
\@writefile{toc}{\contentsline {section}{\numberline {1.3}Input}{10}{section.1.3}} \@writefile{lof}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.3.1}Functions}{10}{subsection.1.3.1}} \@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 \gdef \LT@v {\LT@entry
{2}{126.83005pt}\LT@entry {2}{126.83005pt}\LT@entry
{1}{45.25516pt}\LT@entry {1}{45.25516pt}\LT@entry
{1}{162.9148pt}} {1}{162.9148pt}}
\@writefile{toc}{\contentsline {section}{\numberline {1.4}Keys}{11}{section.1.4}} \@writefile{lof}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.4.1}Accepted Key Names}{11}{subsection.1.4.1}} \@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 \gdef \LT@vi {\LT@entry
{2}{104.04007pt}\LT@entry {2}{104.04007pt}\LT@entry
{2}{45.37001pt}\LT@entry {2}{45.37001pt}\LT@entry
@@ -57,30 +63,40 @@
{1}{138.0pt}\LT@entry {1}{138.0pt}\LT@entry
{2}{29.6pt}\LT@entry {2}{29.6pt}\LT@entry
{1}{138.0pt}} {1}{138.0pt}}
\@writefile{toc}{\contentsline {section}{\numberline {1.5}OS}{12}{section.1.5}} \@writefile{lof}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.5.1}Date Format String}{12}{subsection.1.5.1}} \@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 \gdef \LT@viii {\LT@entry
{2}{136.82pt}\LT@entry {2}{136.82pt}\LT@entry
{1}{45.25516pt}\LT@entry {1}{45.25516pt}\LT@entry
{1}{152.92484pt}} {1}{152.92484pt}}
\@writefile{toc}{\contentsline {section}{\numberline {1.6}Security}{13}{section.1.6}} \@writefile{lof}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.6.1}Functions}{13}{subsection.1.6.1}} \@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 \gdef \LT@ix {\LT@entry
{2}{102.18004pt}\LT@entry {2}{102.18004pt}\LT@entry
{1}{45.25516pt}\LT@entry {1}{45.25516pt}\LT@entry
{2}{180.42001pt}} {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 \gdef \LT@x {\LT@entry
{2}{161.65002pt}\LT@entry {2}{165.05502pt}\LT@entry
{1}{45.25516pt}\LT@entry {1}{45.25516pt}\LT@entry
{1}{128.09482pt}} {1}{124.68982pt}}
\@writefile{toc}{\contentsline {section}{\numberline {1.8}Speaker}{15}{section.1.8}} \@writefile{lof}{\addvspace {10pt}}
\@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {chapter}{\chapternumberline {8}Speaker}{17}{chapter.8}}
\gdef \LT@xi {\LT@entry \gdef \LT@xi {\LT@entry
{2}{139.76003pt}\LT@entry {2}{139.76003pt}\LT@entry
{1}{45.25516pt}\LT@entry {1}{45.25516pt}\LT@entry
{1}{149.98482pt}} {1}{149.98482pt}}
\@writefile{toc}{\contentsline {section}{\numberline {1.9}Terminal}{16}{section.1.9}} \@writefile{lof}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.9.1}Functions}{16}{subsection.1.9.1}} \@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 \gdef \LT@xii {\LT@entry
{1}{22.26001pt}\LT@entry {1}{22.26001pt}\LT@entry
{1}{39.16003pt}\LT@entry {1}{39.16003pt}\LT@entry
@@ -90,14 +106,14 @@
{1}{49.88002pt}\LT@entry {1}{49.88002pt}\LT@entry
{1}{22.26001pt}\LT@entry {1}{22.26001pt}\LT@entry
{1}{58.02002pt}} {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 \gdef \LT@xiii {\LT@entry
{1}{28.3155pt}\LT@entry {1}{28.3155pt}\LT@entry
{1}{139.1845pt}\LT@entry {1}{139.1845pt}\LT@entry
{1}{28.3155pt}\LT@entry {1}{28.3155pt}\LT@entry
{1}{139.1845pt}} {1}{139.1845pt}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.9.3}Codepage}{19}{subsection.1.9.3}} \@writefile{toc}{\contentsline {section}{\numberline {9.3}Codepage}{21}{section.9.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.9.4}Accepted Control Sequences}{19}{subsection.1.9.4}} \@writefile{toc}{\contentsline {section}{\numberline {9.4}Accepted Control Sequences}{21}{section.9.4}}
\gdef \LT@xiv {\LT@entry \gdef \LT@xiv {\LT@entry
{2}{134.13005pt}\LT@entry {2}{134.13005pt}\LT@entry
{1}{45.25516pt}\LT@entry {1}{45.25516pt}\LT@entry
@@ -106,53 +122,62 @@
{2}{135.95003pt}\LT@entry {2}{135.95003pt}\LT@entry
{2}{36.06001pt}\LT@entry {2}{36.06001pt}\LT@entry
{1}{162.98996pt}} {1}{162.98996pt}}
\@writefile{toc}{\contentsline {section}{\numberline {1.10}Lua Globals}{20}{section.1.10}} \@writefile{lof}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.10.1}Functions}{20}{subsection.1.10.1}} \@writefile{lot}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.10.2}Constants}{20}{subsection.1.10.2}} \@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 \gdef \LT@xvi {\LT@entry
{1}{49.09001pt}\LT@entry {1}{49.09001pt}\LT@entry
{1}{108.52003pt}\LT@entry {1}{108.52003pt}\LT@entry
{1}{53.81001pt}\LT@entry {1}{53.81001pt}\LT@entry
{1}{122.25pt}} {1}{122.25pt}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.10.3}Bell Codes}{22}{subsection.1.10.3}} \@writefile{toc}{\contentsline {section}{\numberline {10.3}Bell Codes}{24}{section.10.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.10.4}Changes from Generic Lua Environment}{22}{subsection.1.10.4}} \@writefile{toc}{\contentsline {subsection}{\numberline {10.3.1}Changes from Generic Lua Environment}{24}{subsection.10.3.1}}
\gdef \LT@xvii {\LT@entry \gdef \LT@xvii {\LT@entry
{2}{94.0pt}\LT@entry {2}{94.0pt}\LT@entry
{1}{45.25516pt}\LT@entry {1}{45.25516pt}\LT@entry
{1}{195.74484pt}} {1}{195.74484pt}}
\@writefile{toc}{\contentsline {section}{\numberline {1.11}Machine}{23}{section.1.11}}
\@writefile{lof}{\addvspace {10pt}} \@writefile{lof}{\addvspace {10pt}}
\@writefile{lot}{\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 \gdef \LT@xviii {\LT@entry
{2}{108.45001pt}\LT@entry {2}{108.45001pt}\LT@entry
{2}{125.76003pt}} {2}{125.76003pt}}
\@writefile{toc}{\contentsline {section}{\numberline {2.1}Bit}{26}{section.2.1}} \@writefile{lof}{\addvspace {10pt}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.1}Functions}{26}{subsection.2.1.1}} \@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 \gdef \LT@xix {\LT@entry
{1}{77.19011pt}\LT@entry {1}{77.19011pt}\LT@entry
{1}{68.63008pt}\LT@entry {1}{68.63008pt}\LT@entry
{1}{76.35007pt}\LT@entry {1}{76.35007pt}\LT@entry
{1}{76.36005pt}} {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{lof}{\addvspace {10pt}}
\@writefile{lot}{\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{lof}{\addvspace {10pt}}
\@writefile{lot}{\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 \gdef \LT@xx {\LT@entry
{2}{71.78003pt}\LT@entry {2}{71.78003pt}\LT@entry
{1}{45.25516pt}\LT@entry {1}{45.25516pt}\LT@entry
{2}{153.90001pt}} {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{lof}{\addvspace {10pt}}
\@writefile{lot}{\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{lastsheet}{37}
\memsetcounter{lastpage}{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. restricted \write18 enabled.
file:line:error style messages enabled. file:line:error style messages enabled.
**romapidoc.tex **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@curscurs"] = 7
luatexbase-attr: luatexbase.attributes["luaotfload@cursdone"] = 8 luatexbase-attr: luatexbase.attributes["luaotfload@cursdone"] = 8
luatexbase-attr: luatexbase.attributes["luaotfload@state"] = 9 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' luatexbase-mcb: inserting 'luaotfload.node_processor'
at position 1 in 'pre_linebreak_filter' at position 1 in 'pre_linebreak_filter'
luatexbase-mcb: inserting 'luaotfload.node_processor' 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. . 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 (/usr/local/texlive/2015/texmf-dist/tex/latex/hyperref/puenc.def
File: puenc.def 2012/11/06 v6.83m Hyperref: PDF Unicode definition (HO) 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) (./romapidoc.aux)
\openout1 = romapidoc.aux \openout1 = romapidoc.aux
LaTeX Font Info: Checking defaults for OML/cmm/m/it 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 87. LaTeX Font Info: ... okay on input line 93.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 87. LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 93.
LaTeX Font Info: ... okay on input line 87. LaTeX Font Info: ... okay on input line 93.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 87. LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 93.
LaTeX Font Info: ... okay on input line 87. LaTeX Font Info: ... okay on input line 93.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 87. LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 93.
LaTeX Font Info: ... okay on input line 87. LaTeX Font Info: ... okay on input line 93.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 87. LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 93.
LaTeX Font Info: ... okay on input line 87. LaTeX Font Info: ... okay on input line 93.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 87. LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 93.
LaTeX Font Info: ... okay on input line 87. LaTeX Font Info: ... okay on input line 93.
LaTeX Font Info: Checking defaults for EU2/lmr/m/n on input line 87. LaTeX Font Info: Checking defaults for EU2/lmr/m/n on input line 93.
LaTeX Font Info: ... okay on input line 87. LaTeX Font Info: ... okay on input line 93.
LaTeX Font Info: Checking defaults for T3/cmr/m/n on input line 87. 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 87. 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 (/usr/local/texlive/2015/texmf-dist/tex/latex/tipa/t3cmr.fd
File: t3cmr.fd 2001/12/31 TIPA font definitions File: t3cmr.fd 2001/12/31 TIPA font definitions
) )
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 87. LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 93.
LaTeX Font Info: ... okay on input line 87. LaTeX Font Info: ... okay on input line 93.
LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 87. LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 93.
LaTeX Font Info: ... okay on input line 87. LaTeX Font Info: ... okay on input line 93.
(/usr/local/texlive/2015/texmf-dist/tex/context/base/supp-pdf.mkii (/usr/local/texlive/2015/texmf-dist/tex/context/base/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).] [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 \symlegacymaths=\mathgroup4
LaTeX Font Info: Overwriting symbol font `legacymaths' in version `bold' LaTeX Font Info: Overwriting symbol font `legacymaths' in version `bold'
(Font) OT1/cmr/m/n --> OT1/cmr/bx/n 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 87. LaTeX Font Info: Redeclaring math accent \acute on input line 93.
LaTeX Font Info: Redeclaring math accent \grave on input line 87. LaTeX Font Info: Redeclaring math accent \grave on input line 93.
LaTeX Font Info: Redeclaring math accent \ddot on input line 87. LaTeX Font Info: Redeclaring math accent \ddot on input line 93.
LaTeX Font Info: Redeclaring math accent \tilde on input line 87. LaTeX Font Info: Redeclaring math accent \tilde on input line 93.
LaTeX Font Info: Redeclaring math accent \bar on input line 87. LaTeX Font Info: Redeclaring math accent \bar on input line 93.
LaTeX Font Info: Redeclaring math accent \breve on input line 87. LaTeX Font Info: Redeclaring math accent \breve on input line 93.
LaTeX Font Info: Redeclaring math accent \check on input line 87. LaTeX Font Info: Redeclaring math accent \check on input line 93.
LaTeX Font Info: Redeclaring math accent \hat on input line 87. LaTeX Font Info: Redeclaring math accent \hat on input line 93.
LaTeX Font Info: Redeclaring math accent \dot on input line 87. LaTeX Font Info: Redeclaring math accent \dot on input line 93.
LaTeX Font Info: Redeclaring math accent \mathring on input line 87. LaTeX Font Info: Redeclaring math accent \mathring on input line 93.
LaTeX Font Info: Redeclaring math symbol \colon on input line 87. LaTeX Font Info: Redeclaring math symbol \colon on input line 93.
LaTeX Font Info: Redeclaring math symbol \Gamma on input line 87. LaTeX Font Info: Redeclaring math symbol \Gamma on input line 93.
LaTeX Font Info: Redeclaring math symbol \Delta on input line 87. LaTeX Font Info: Redeclaring math symbol \Delta on input line 93.
LaTeX Font Info: Redeclaring math symbol \Theta on input line 87. LaTeX Font Info: Redeclaring math symbol \Theta on input line 93.
LaTeX Font Info: Redeclaring math symbol \Lambda on input line 87. LaTeX Font Info: Redeclaring math symbol \Lambda on input line 93.
LaTeX Font Info: Redeclaring math symbol \Xi on input line 87. LaTeX Font Info: Redeclaring math symbol \Xi on input line 93.
LaTeX Font Info: Redeclaring math symbol \Pi on input line 87. LaTeX Font Info: Redeclaring math symbol \Pi on input line 93.
LaTeX Font Info: Redeclaring math symbol \Sigma on input line 87. LaTeX Font Info: Redeclaring math symbol \Sigma on input line 93.
LaTeX Font Info: Redeclaring math symbol \Upsilon on input line 87. LaTeX Font Info: Redeclaring math symbol \Upsilon on input line 93.
LaTeX Font Info: Redeclaring math symbol \Phi on input line 87. LaTeX Font Info: Redeclaring math symbol \Phi on input line 93.
LaTeX Font Info: Redeclaring math symbol \Psi on input line 87. LaTeX Font Info: Redeclaring math symbol \Psi on input line 93.
LaTeX Font Info: Redeclaring math symbol \Omega on input line 87. LaTeX Font Info: Redeclaring math symbol \Omega on input line 93.
LaTeX Font Info: Redeclaring math symbol \mathdollar on input line 87. LaTeX Font Info: Redeclaring math symbol \mathdollar on input line 93.
LaTeX Font Info: Redeclaring symbol font `operators' on input line 87. LaTeX Font Info: Redeclaring symbol font `operators' on input line 93.
LaTeX Font Info: Encoding `OT1' has changed to `EU2' for symbol font 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' 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 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' 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' LaTeX Font Info: Overwriting symbol font `operators' in version `normal'
(Font) EU2/MyriadPro(0)/m/n --> EU2/MyriadPro(0)/m/n on input l (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' 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' 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' 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' 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' LaTeX Font Info: Overwriting symbol font `operators' in version `bold'
(Font) EU2/MyriadPro(0)/m/n --> EU2/MyriadPro(0)/bx/n on input (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' LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold'
(Font) OT1/cmr/bx/it --> EU2/MyriadPro(0)/bx/it on input line 8 (Font) OT1/cmr/bx/it --> EU2/MyriadPro(0)/bx/it on input line 9
7. 3.
LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' 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' 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 \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 (/usr/local/texlive/2015/texmf-dist/tex/latex/hyperref/nameref.sty
Package: nameref 2012/10/27 v2.43 Cross-referencing by name of section 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 sectioning
Redoing nameref's label Redoing nameref's label
LaTeX Info: Redefining \nameref on input line 87. LaTeX Info: Redefining \nameref on input line 93.
LaTeX Info: Redefining \ref on input line 87. LaTeX Info: Redefining \ref on input line 93.
LaTeX Info: Redefining \pageref on input line 87. LaTeX Info: Redefining \pageref on input line 93.
LaTeX Info: Redefining \nameref on input line 87. LaTeX Info: Redefining \nameref on input line 93.
(./romapidoc.out) (./romapidoc.out) (./romapidoc.out) (./romapidoc.out)
\@outlinefile=\write4 \@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"
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 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 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 LaTeX Font Info: External font `cmex10' loaded for size
(Font) <6> on input line 89. (Font) <6> on input line 95.
[1 [1
{/usr/local/texlive/2015/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] [2 {/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 luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Bold.otf" (./romapid
oc.toc oc.toc
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Bold.otf" 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"
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 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 LaTeX Font Info: External font `cmex10' loaded for size
(Font) <5> on input line 1. (Font) <5> on input line 2.
) [3] [4 [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 (./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-Bold.otf"
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-It.otf"
Underfull \hbox (badness 2735) in paragraph at lines 40--40 Underfull \hbox (badness 2735) in paragraph at lines 40--40
[][]|\EU2/MyriadPro(0)/m/n/10 Moves the di-rec-tory to the [][]|\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 / \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 [6
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
] [7]) [8] (./api_hexutils.tex ] [7]) [8] (./api_hexutils.tex
@@ -1439,6 +1439,7 @@ Underfull \hbox (badness 4792) in paragraph at lines 10--10
) [9 ) [9
] (./api_input.tex ] (./api_input.tex
Underfull \hbox (badness 1515) in paragraph at lines 12--12 Underfull \hbox (badness 1515) in paragraph at lines 12--12
\EU2/MyriadPro(0)/m/n/10 By com-bin-ing with and or or \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 ) [10
] (./api_keys.tex ] (./api_keys.tex
Overfull \hbox (3.01012pt too wide) in paragraph at lines 3--4 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: [][]\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| []|\EU2/MyriadPro(0)/m/n/10 underscore|
[] []
[11
]
Overfull \hbox (4.14001pt too wide) in paragraph at lines 72--72 Overfull \hbox (4.14001pt too wide) in paragraph at lines 72--72
[]|\EU2/MyriadPro(0)/m/n/10 pageDown| []|\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| []|\EU2/MyriadPro(0)/m/n/10 leftCommand|
[] []
) [11 ) [12] (./api_os.tex
] (./api_os.tex
Underfull \hbox (badness 10000) in paragraph at lines 33--33 Underfull \hbox (badness 10000) in paragraph at lines 33--33
[][]|\EU2/MyriadPro(0)/m/n/10 Short month name. (e.g. [][]|\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 Underfull \hbox (badness 3354) in paragraph at lines 20--20
[][]|\EU2/MyriadPro(0)/m/n/10 Re-turns SHA-256 hash of in-put [][]|\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 [][]|\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 ] (./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 [][]|\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 ] (./api_terminal.tex
Underfull \hbox (badness 2165) in paragraph at lines 68--68 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 [][]|\EU2/MyriadPro(0)/m/n/10 Re-turns cur-rent back-ground
[] []
[16 [18
] [17]
] [19]
\cpimagew=\skip279 \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) File: mda.png Graphic file (type png)
<use mda.png> <use mda.png>
Package pdftex.def Info: mda.png used on input line 90. 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 [] Underfull \vbox (badness 10000) has occurred while \output is active []
[18] [20]
Underfull \hbox (badness 6658) in paragraph at lines 111--111 Underfull \hbox (badness 6658) in paragraph at lines 111--111
[][]|\EU2/MyriadPro(0)/m/n/10 DEL. Backspace and deletes [][]|\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 Underfull \hbox (badness 1092) in paragraph at lines 16--16
\EU2/MyriadPro(0)/m/n/10 ory in-stalled in the com-puter, in \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 \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 [] luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Bold.otf" [26
[21])
(./luadifferences.tex) [22] (./api_machine.tex) [23
] [24
] ]
luaotfload | load : Lookup/name: "MyriadPro" -> "MyriadPro-Bold.otf" [25] (./cc (./cc_bit.tex) [27
_bit.tex)
[26
] (./cc_colors.tex) [27 ] (./cc_colors.tex) [28
] [28
] [29 ] [29
] [30 ] [30
] [31] [32
] [31
] [32
] (./peri_lp.tex)
[33
] [33] (./peri_lp.tex) ] [34
[34
] [35 ] [35
] [36 ] [36] [37
] [37
] ]
\tf@toc=\write5 \tf@toc=\write5
\openout5 = romapidoc.toc \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 longtable Warning: Table widths have changed. Rerun LaTeX.
Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 173.
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 173. 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. Package rerunfilecheck Info: File `romapidoc.out' has not changed.
(rerunfilecheck) Checksum: 36E048903F7D7E12751FBA89BBC694EF;2202. (rerunfilecheck) Checksum: E6AA534E637E70890D852319B9FFD1B2;4249.
Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 173. Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 182.
) )
Here is how much of LuaTeX's memory you used: 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 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 3 hlist, 1 vlist, 1 rule, 2 glue, 1 kern, 5 attribute, 141 glue_spec, 5 attri
bute_list, 2 write nodes 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 avail lists: 2:15095,3:297,4:3729,5:1384,6:6444,7:355,8:30,9:919,10:406
30213 multiletter control sequences out of 65536+600000 30235 multiletter control sequences out of 65536+600000
62 fonts using 5300671 bytes 62 fonts using 5300367 bytes
67i,12n,59p,1189b,492s stack positions out of 5000i,500n,10000p,200000b,100000s 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 </Library/Fonts/MyriadPro-It.otf></Library/Fonts/MyriadPro-Regular.otf></Library
/Fonts/MyriadPro-Bold.otf> /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) PDF statistics: 429 PDF objects out of 1000 (max. 8388607)
286 compressed objects within 3 object streams 372 compressed objects within 4 object streams
99 named destinations out of 1000 (max. 131072) 106 named destinations out of 1000 (max. 131072)
169 words of extra memory for PDF output out of 10000 (max. 10000000) 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][-]{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 [1][-]{section.1.1}{\376\377\000F\000i\000l\000e\000s\000y\000s\000t\000e\000m}{chapter.1}% 2 \BOOKMARK [0][-]{chapter.1}{\376\377\000F\000i\000l\000e\000s\000y\000s\000t\000e\000m}{part.1}% 2
\BOOKMARK [1][-]{section.1.2}{\376\377\000H\000e\000x\000u\000t\000i\000l\000s}{chapter.1}% 3 \BOOKMARK [1][-]{section.1.1}{\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000s}{chapter.1}% 3
\BOOKMARK [1][-]{section.1.3}{\376\377\000I\000n\000p\000u\000t}{chapter.1}% 4 \BOOKMARK [1][-]{section.1.2}{\376\377\000F\000i\000l\000e\000\040\000H\000a\000n\000d\000l\000e\000r}{chapter.1}% 4
\BOOKMARK [1][-]{section.1.4}{\376\377\000K\000e\000y\000s}{chapter.1}% 5 \BOOKMARK [0][-]{chapter.2}{\376\377\000H\000e\000x\000u\000t\000i\000l\000s}{part.1}% 5
\BOOKMARK [1][-]{section.1.5}{\376\377\000O\000S}{chapter.1}% 6 \BOOKMARK [1][-]{section.2.1}{\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000s}{chapter.2}% 6
\BOOKMARK [1][-]{section.1.6}{\376\377\000S\000e\000c\000u\000r\000i\000t\000y}{chapter.1}% 7 \BOOKMARK [0][-]{chapter.3}{\376\377\000I\000n\000p\000u\000t}{part.1}% 7
\BOOKMARK [1][-]{section.1.7}{\376\377\000S\000h\000e\000l\000l}{chapter.1}% 8 \BOOKMARK [1][-]{section.3.1}{\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000s}{chapter.3}% 8
\BOOKMARK [1][-]{section.1.8}{\376\377\000S\000p\000e\000a\000k\000e\000r}{chapter.1}% 9 \BOOKMARK [0][-]{chapter.4}{\376\377\000K\000e\000y\000s}{part.1}% 9
\BOOKMARK [1][-]{section.1.9}{\376\377\000T\000e\000r\000m\000i\000n\000a\000l}{chapter.1}% 10 \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 [1][-]{section.1.10}{\376\377\000L\000u\000a\000\040\000G\000l\000o\000b\000a\000l\000s}{chapter.1}% 11 \BOOKMARK [0][-]{chapter.5}{\376\377\000O\000S}{part.1}% 11
\BOOKMARK [1][-]{section.1.11}{\376\377\000M\000a\000c\000h\000i\000n\000e}{chapter.1}% 12 \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.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 [0][-]{chapter.6}{\376\377\000S\000e\000c\000u\000r\000i\000t\000y}{part.1}% 13
\BOOKMARK [1][-]{section.2.1}{\376\377\000B\000i\000t}{chapter.2}% 14 \BOOKMARK [1][-]{section.6.1}{\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000s}{chapter.6}% 14
\BOOKMARK [1][-]{section.2.2}{\376\377\000C\000o\000l\000o\000r\000s}{chapter.2}% 15 \BOOKMARK [0][-]{chapter.7}{\376\377\000S\000h\000e\000l\000l}{part.1}% 15
\BOOKMARK [1][-]{section.2.3}{\376\377\000T\000e\000r\000m}{chapter.2}% 16 \BOOKMARK [0][-]{chapter.8}{\376\377\000S\000p\000e\000a\000k\000e\000r}{part.1}% 16
\BOOKMARK [1][-]{section.2.4}{\376\377\000F\000i\000l\000e\000s\000y\000s\000t\000e\000m}{chapter.2}% 17 \BOOKMARK [0][-]{chapter.9}{\376\377\000T\000e\000r\000m\000i\000n\000a\000l}{part.1}% 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 [1][-]{section.9.1}{\376\377\000F\000u\000n\000c\000t\000i\000o\000n\000s}{chapter.9}% 18
\BOOKMARK [0][-]{chapter.4}{\376\377\000P\000e\000r\000i\000p\000h\000e\000r\000a\000l\000s}{}% 19 \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.4.1}{\376\377\000L\000i\000n\000e\000\040\000P\000r\000i\000n\000t\000e\000r}{chapter.4}% 20 \BOOKMARK [1][-]{section.9.3}{\376\377\000C\000o\000d\000e\000p\000a\000g\000e}{chapter.9}% 20
\BOOKMARK [0][-]{chapter.5}{\376\377\000R\000e\000f\000e\000r\000e\000n\000c\000e\000s}{}% 21 \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 % !TEX TS-program = lualatex
\documentclass[10pt, stock]{memoir} \documentclass[10pt, stock, openany]{memoir}
\usepackage{fontspec} \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{black}{HTML}{000000}
\definecolor{white}{HTML}{FFFFFF} \definecolor{white}{HTML}{FFFFFF}
\definecolor{dimgrey}{HTML}{555555} \definecolor{dimgrey}{HTML}{555555}
@@ -68,8 +59,23 @@
\posttitle{\par\end{flushright}\vskip 0.5em} \posttitle{\par\end{flushright}\vskip 0.5em}
% new sections are new page % new sections are new page
\let\oldsection\section \let\oldsection\chapter
\renewcommand\section{\clearpage\oldsection} \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 % The title
@@ -95,70 +101,73 @@
\chapter{APIs and Libraries} \part{APIs and Libraries}
\section{Filesystem} \chapter{Filesystem}
\input{api_filesystem} \input{api_filesystem}
\section{Hexutils} \chapter{Hexutils}
\input{api_hexutils} \input{api_hexutils}
\section{Input} \chapter{Input}
\input{api_input} \input{api_input}
\section{Keys} \chapter{Keys}
\input{api_keys} \input{api_keys}
\section{OS} \chapter{OS}
\input{api_os} \input{api_os}
\section{Security} \chapter{Security}
\input{api_security} \input{api_security}
\section{Shell} \chapter{Shell}
\input{api_shell} \input{api_shell}
\section{Speaker} \chapter{Speaker}
\input{api_speaker} \input{api_speaker}
\section{Terminal} \chapter{Terminal}
\input{api_terminal} \input{api_terminal}
\section{Lua Globals} \chapter{Lua Globals}
\input{luaglobals} \input{luaglobals}
\subsection{Changes from Generic Lua Environment} \subsection{Changes from Generic Lua Environment}
\input{luadifferences} \input{luadifferences}
\section{Machine} \chapter{Machine}
\input{api_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} \input{cc_bit}
\section{Colors} \chapter{Colors}
\input{cc_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} \input{peri_lp}
\chapter{PSG}
%\input{peri_psg}
\chapter{References}
\part{References}
Some of the texts are taken from following sources: 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 {part}{\partnumberline {I}APIs and Libraries}{5}{part.1}
\contentsline {section}{\numberline {1.1}Filesystem}{6}{section.1.1} \contentsline {chapter}{\chapternumberline {1}Filesystem}{6}{chapter.1}
\contentsline {subsection}{\numberline {1.1.1}Functions}{6}{subsection.1.1.1} \contentsline {section}{\numberline {1.1}Functions}{6}{section.1.1}
\contentsline {subsection}{\numberline {1.1.2}File Handler}{7}{subsection.1.1.2} \contentsline {section}{\numberline {1.2}File Handler}{7}{section.1.2}
\contentsline {section}{\numberline {1.2}Hexutils}{9}{section.1.2} \contentsline {chapter}{\chapternumberline {2}Hexutils}{9}{chapter.2}
\contentsline {subsection}{\numberline {1.2.1}Functions}{9}{subsection.1.2.1} \contentsline {section}{\numberline {2.1}Functions}{9}{section.2.1}
\contentsline {section}{\numberline {1.3}Input}{10}{section.1.3} \contentsline {chapter}{\chapternumberline {3}Input}{10}{chapter.3}
\contentsline {subsection}{\numberline {1.3.1}Functions}{10}{subsection.1.3.1} \contentsline {section}{\numberline {3.1}Functions}{10}{section.3.1}
\contentsline {section}{\numberline {1.4}Keys}{11}{section.1.4} \contentsline {chapter}{\chapternumberline {4}Keys}{11}{chapter.4}
\contentsline {subsection}{\numberline {1.4.1}Accepted Key Names}{11}{subsection.1.4.1} \contentsline {section}{\numberline {4.1}Accepted Key Names}{11}{section.4.1}
\contentsline {section}{\numberline {1.5}OS}{12}{section.1.5} \contentsline {chapter}{\chapternumberline {5}OS}{13}{chapter.5}
\contentsline {subsection}{\numberline {1.5.1}Date Format String}{12}{subsection.1.5.1} \contentsline {section}{\numberline {5.1}Date Format String}{13}{section.5.1}
\contentsline {section}{\numberline {1.6}Security}{13}{section.1.6} \contentsline {chapter}{\chapternumberline {6}Security}{15}{chapter.6}
\contentsline {subsection}{\numberline {1.6.1}Functions}{13}{subsection.1.6.1} \contentsline {section}{\numberline {6.1}Functions}{15}{section.6.1}
\contentsline {section}{\numberline {1.7}Shell}{14}{section.1.7} \contentsline {chapter}{\chapternumberline {7}Shell}{16}{chapter.7}
\contentsline {section}{\numberline {1.8}Speaker}{15}{section.1.8} \contentsline {chapter}{\chapternumberline {8}Speaker}{17}{chapter.8}
\contentsline {section}{\numberline {1.9}Terminal}{16}{section.1.9} \contentsline {chapter}{\chapternumberline {9}Terminal}{18}{chapter.9}
\contentsline {subsection}{\numberline {1.9.1}Functions}{16}{subsection.1.9.1} \contentsline {section}{\numberline {9.1}Functions}{18}{section.9.1}
\contentsline {subsection}{\numberline {1.9.2}Standard Colours}{18}{subsection.1.9.2} \contentsline {section}{\numberline {9.2}Standard Colours}{20}{section.9.2}
\contentsline {subsection}{\numberline {1.9.3}Codepage}{19}{subsection.1.9.3} \contentsline {section}{\numberline {9.3}Codepage}{21}{section.9.3}
\contentsline {subsection}{\numberline {1.9.4}Accepted Control Sequences}{19}{subsection.1.9.4} \contentsline {section}{\numberline {9.4}Accepted Control Sequences}{21}{section.9.4}
\contentsline {section}{\numberline {1.10}Lua Globals}{20}{section.1.10} \contentsline {chapter}{\chapternumberline {10}Lua Globals}{22}{chapter.10}
\contentsline {subsection}{\numberline {1.10.1}Functions}{20}{subsection.1.10.1} \contentsline {section}{\numberline {10.1}Functions}{22}{section.10.1}
\contentsline {subsection}{\numberline {1.10.2}Constants}{20}{subsection.1.10.2} \contentsline {section}{\numberline {10.2}Constants}{22}{section.10.2}
\contentsline {subsection}{\numberline {1.10.3}Bell Codes}{22}{subsection.1.10.3} \contentsline {section}{\numberline {10.3}Bell Codes}{24}{section.10.3}
\contentsline {subsection}{\numberline {1.10.4}Changes from Generic Lua Environment}{22}{subsection.1.10.4} \contentsline {subsection}{\numberline {10.3.1}Changes from Generic Lua Environment}{24}{subsection.10.3.1}
\contentsline {section}{\numberline {1.11}Machine}{23}{section.1.11} \contentsline {chapter}{\chapternumberline {11}Machine}{25}{chapter.11}
\contentsline {chapter}{\chapternumberline {2}Compatibility Layers---ComputerCraft}{25}{chapter.2} \contentsline {part}{\partnumberline {II}Compatibility Layers---ComputerCraft}{26}{part.2}
\contentsline {section}{\numberline {2.1}Bit}{26}{section.2.1} \contentsline {chapter}{\chapternumberline {12}Bit}{27}{chapter.12}
\contentsline {subsection}{\numberline {2.1.1}Functions}{26}{subsection.2.1.1} \contentsline {section}{\numberline {12.1}Functions}{27}{section.12.1}
\contentsline {section}{\numberline {2.2}Colors}{27}{section.2.2} \contentsline {chapter}{\chapternumberline {13}Colors}{28}{chapter.13}
\contentsline {subsection}{\numberline {2.2.1}Constants}{27}{subsection.2.2.1} \contentsline {section}{\numberline {13.1}Constants}{28}{section.13.1}
\contentsline {subsection}{\numberline {2.2.2}Functions}{27}{subsection.2.2.2} \contentsline {section}{\numberline {13.2}Functions}{28}{section.13.2}
\contentsline {section}{\numberline {2.3}Term}{28}{section.2.3} \contentsline {chapter}{\chapternumberline {14}Term}{29}{chapter.14}
\contentsline {section}{\numberline {2.4}Filesystem}{29}{section.2.4} \contentsline {chapter}{\chapternumberline {15}Filesystem}{30}{chapter.15}
\contentsline {chapter}{\chapternumberline {3}Compatibility Layers---OpenComputers}{31}{chapter.3} \contentsline {part}{\partnumberline {III}Compatibility Layers---OpenComputers}{31}{part.3}
\contentsline {chapter}{\chapternumberline {4}Peripherals}{33}{chapter.4} \contentsline {part}{\partnumberline {IV}Peripherals}{32}{part.4}
\contentsline {section}{\numberline {4.1}Line Printer}{34}{section.4.1} \contentsline {chapter}{\chapternumberline {16}Line Printer}{33}{chapter.16}
\contentsline {subsection}{\numberline {4.1.1}Functions}{34}{subsection.4.1.1} \contentsline {section}{\numberline {16.1}Functions}{33}{section.16.1}
\contentsline {chapter}{\chapternumberline {5}References}{35}{chapter.5} \contentsline {chapter}{\chapternumberline {17}PSG}{34}{chapter.17}
\contentsline {part}{\partnumberline {V}References}{35}{part.5}