OpenLLM-France/wikimedia huggingface dataset:
# TI 83 Plus Assembly/Appendix C

The following tables show all the key codes that can be accessed with GetKey or GetSCS. These may also be found inside ti83plus.inc.

## GetKey Codes

Accessed with B_Call(_GetKey). After the command, the key code is stored into the accumulator and (KeyExtend). Alpha-Alpha Function Keys must be enabled with the following system flag:

### Alpha-Alpha-Function Keys
## GetCSC (Scan Key) Codes

These KeyCodes are returned from the B_Call(_GetSCS) call. Note that the [APPS] key is equated to skMatrix for portability to the TI-83.
| Key | Equate | Value | Key | Equate | Value | Key | Equate | Value |
| [Y=] | skYEqu | $35 | [2nd] | sk2nd | $36 | [ALPHA] | skAlpha | $30 |
| [WINDOW] | skWindow | $34 | [MODE] | skMode | $37 | [X,T,θ,n] | skGraphVar | $28 |
| [ZOOM] | skZoom | $33 | [DEL] | skDel | $38 | [STAT] | skStat | $20 |
| [TRACE] | skTrace | $32 | < | skLeft | $02 | V | skDown | $01 |
| [GRAPH] | skGraph | $31 | Λ | skUp | $04 | > | skRight | $03 |
| [MATH] | skMath | $2F | [x$^{-1}$] | skRecip | $2E | [x$^2$] | skSquare | $2D |
| [APPS] | skMatrix | $27 | [SIN] | skSin | $26 | [,] | skComma | $25 |
| [PRGM] | skPrgm | $1F | [COS] | skCos | $1E | [ | skLParen | $1D |
| [VARS] | skVars | $17 | [TAN] | skTan | $16 |] | skRParen | $15 |
| [CLEAR] | skClear | $0F | [^] | skPower | $0E | [÷] | skDiv | $0D |
| [LOG] | skLog | $2C | [LN] | skLn | $2B | [STO=>] | skStore | $2A |
| [7] | sk7 | $24 | [4] | sk4 | $23 | [1] | sk1 | $22 |
| [8] | sk8 | $1C | [5] | sk5 | $1B | [2] | sk2 | $1A |
| [9] | sk9 | $14 | [6] | sk6 | $13 | [3] | sk3 | $12 |
| [×] | skMul | $0C | [-] | skSub | $0B | [+] | skAdd | $0A |
| [0] | sk0 | $21 | | | | | | |
| [.] | skDecPnt | $19 | | | | | | |
| [(-)] | skChs | $11 | | | | | | |
| [ENTER] | skEnter | $09 | | | | | | |
# Data types on the TI 83+/84+

There are only 5 data types for the TI 83+/84+, one of them being an emulated one (not supported by hardware, calculated in software).
The data types are:
* uByte 8-bit value in the range of 0 through 255
* sByte 8-bit signed value in the range of -128 through 127
* Word 16-bit value in the range of 0 through 65535
* sWord 16-bit signed value in the range of -32768 through 32767
* TI float, 9 bytes, 1 sign byte, 1 signed exponent, 7 BCD bytes of the mantissa.
sword is a signed word, not a piece of metal, TI floats are not supported by hardware.
Assemblers often use db for a byte (signed or unsigned) and dw for a word (signed or unsigned).
Although TI floats are not supported by hardware, there are a lot of ROM calls for them, most of which can be found in '83psysroutines.pdf' which can be downloaded from TI's site.
For math with other data types it is best to take a look at z80bits (archived page)
Previous: Memory Table of Contents: TI 83 Plus Assembly
# TI 83 Plus Assembly/Input
## Input

There are three ways to receive input from an assembly program on your TI-83+. The first two are ROM calls, and the last one is directly interfacing with the calculator's keypad.

## The ROM calls

These are two routines called with the b_call macro. They are both good ways to receive input.

### GetKey

This routine will wait for the user to press a key, and only when the user does, will it return to the main program. What is nice about this routine is that it processes [2nd] and [Alpha] key presses for you. Parameters: None Returns:Key value in the accumulator To see a list of the codes, click here
Example:
So, the example is a simple program that pauses execution until the user presses the [Enter] key.

### GetCSC

This routine is like the GetKey routine, except for two things. The first is that, unlike the GetKey routine, it will not wait for the user to press a key. The second is that it uses a different set of key codes, which you can find here. Also, it does not process key combinations, but you can make your own parser for them.
Parameters: None Returns:Key Code in accumulator if key was pressed, else 0 (In the accumulator). Example:
This example waits until ANY key is pressed.

## Direct Input

Note:This is a more advanced method, because it deals directly with the keyboard driver. The keypad of the TI 83+ calculator is divided into Seven sections. These are:
* The arrow keys
* [ENTER], going vertically to [CLEAR]
* [(-)], going vertically to [VARS]
* [.], going vertically to [DEL]
* [0], going vertically to [MODE]
* [STO->], going vertically to [2ND]
* [Y=], going horizontally to [GRAPH]
To read a value from the keys of a group, you must first turn the group on. This is done by writing to port 1 (01 hex.). Bit 0 - Group 1 Bit 1 - Group 2 Bit 2 - Group 3 And so on. To turn a group on, you set its designated bit to 0 (zero).
Example:
It does the same thing as the previous two examples. Note that this method does not require any ROM calls, and is less readable. For a list of keycodes, go here.
# TI 83 Plus Assembly/Jumps
### jp

In the previous program a label was written:
text: is a label. Labels are never tabbed and always end with a colon. Labels are actually 16-bit numbers, pointing to the instruction directly following them. Thus labels are actually 16-bit immediate numbers and can be treated the same (the same loads apply to them). They mark a place in a program. You can jump to a label by using jp labelname:
(B_CALL(_ClrLCDFull) clears the screen.) The program above clears the screen but never displays text. Why? Because jp clearscreen automatically jumps to the label clearscreen and contintues until the end of the program, skipping over all the text display code.
jp label is equal to this invalid-syntax code LD PC,label.
By the way, the stuff followed by the semicolon are comments: they are used to explain the code and are ignored by the compiler. (The compiler is the program which converts the code you write to code a machine can read.)

### jr

jr is a jumping instruction similar to jp, but with a few important differences. It's one byte smaller (this may not seem like a lot, but it can add up); however, unlike jp (which can jump to any address), jr can only jump to a label that's up to 127 bytes forward or up to 128 bytes backward in your code. So, use jp if the label is far away but otherwise use jr. In fact, you may want to always use jr, because when you compile an error will be returned if the label is too distant. The compiler subtracts the address to which the label behind the jr is pointing to from the address of the label itself, if the result does not fit in a signed 8-bit number it will throw an error because it can not be compiled (address exceeds range). JR's are always slower than JP's, and you can not use all conditions with them. JR can use the conditions Z, NZ, C and NC, whereas JP, RET and CALL can use the conditions Z, NZ, C, NC, PO (parity odd), PE (parity even), P (positive)and M (negative).
The jump in the above program could be replaced with jr:

### call

Imagine if you want to jump somewhere and then go back. CALL pushes its address +3 on the stack; RET pops the top of the stack in PC. This is the very same stack as the PUSH-POP stack, so be careful. Use call and ret to 'jump' somewhere and return:
As you can see, the first ret (right after the _ClrLCDFull) went back to after the call command. Then, the second ret ended the program. You can think of your program as one big call routine, with the ending ret going back to the main calculator. Warning: Calls interfere with stacks.
These jumps can be combined with code learned in later sections.
Previous: Hello World Next: Registers Table of Contents: TI 83 Plus Assembly
# TI 83 Plus Assembly/What you need

You need a few basic things to begin programming.
* A calculator. A TI 83 Plus, TI 83 Plus Silver Edition, TI 84 Plus or TI 84 Plus Silver Edition is needed.
* An assembler. Such programs "assemble" the assembly code you will write into a form that the calculator can execute. Some assemblers include:
** TASM. Tasm did not work with enclosed examples. Downloading executable files via the internet is always risky. Does not work for Turbo Assembler 5 code.
** Brass is an assembler targeted at the TI-83+, written by Benjamin Ryves. It is no longer maintained.
** Zilog Developer Studio is Zilog's official IDE. Various versions can be found on Zilog's website.
** Spasm-ng is a z80/ez80 assembler that includes features targeted towards TI calculators. Builds for various systems are available on the download page.
* TI 83 Plus Include File. This text file assists the assembler by giving it necessary information when assembling. Does not recognize instructions.
* DevPac8x. This program changes the code that TASM has assembled into a file that you can transfer to your calculator.
* TI SDK (Software Development Kit). Also known as the TI 83 Plus Flash Debugger, this program allows programs to be tested on the computer for errors without having to transfer them to the calculator.
* Linking cable. A linking cable will allow you to transfer your programs to the calculator from the computer.
Now that you have everything, you will need to set everything up. I highly recommended that you follow the examples I give.
* Make a folder where you will put all your ASM (assembly) files (e.g. C:\ASM).
* Unzip the TASM folder into a subfolder in your ASM folder titled "TASM" (e.g. C:\ASM\TASM).
* Put the ti83plus.inc file into your TASM folder.
* Unzip the DevPac8x folder into a subfolder titled "devpac8x" (e.g. C:\ASM\devpac8x).
* Make another subfolder titled "Programs" (e.g. C:\ASM\Programs). This folder will be where you put all your programs in.
* Install the TI SDK.
* You need to open Notepad and type the following text in:
Save this as "compile.bat" into your Programs folder. And finally you need to make sure you know how to operate the link and turn on your calculator...
That is all you need to get started!
Also see Alternate Methods. The above instructions do not work on an x64 bit architecture.
Next: Hello World Table of Contents: TI 83 Plus Assembly
# Main memory map

The basic memory map of the TI-83+ looks like this:
* $0000–$3FFF: Boot ROM page (fixed)
* $4000–$7FFF: Swappable Memory block A
* $8000–$BFFF: Swappable Memory block B
* $C000-$FFFF: Swappable RAM block
You generally won't care about what's in $0000–$7FFF, and I wouldn't try changing anything in that range. Unless you're writing a Flash app, which executes in $4000-$7FFF. $8000–$FFFF is the calculator's RAM and contains fixed locations, fixed variables, and Flags used by the OS. IY should always point to these flags so do not mess with IY unless you know what you're doing. Know however that PUSH and POP change the memory at $C000-$FFFF, and that you can NOT execute in this area.
Previous: Jumps Next: Data Types Table of Contents: TI 83 Plus Assembly
# The Rowers of Vanity Fair/Douglas-Scott-Montagu JWE
## Douglas-Scott-Montagu, John Walter Edward (2nd Baron Montagu of Beaulieu)
### “A Southern Scott” (Spy), October 8, 1896

He became the first son of his father (now Lord Montagu of Beaulieu) and grandson of the fifth Duke of Buccleuch thirty years ago; and he has never been still since. So full of energy is he that when he went to Eton he rowed, and shot for his school at Wimbledon; when he went to Oxford he helped the New College boat to the Head of the River; and, after having shown himself something of a scholar as well as a good actor, he worked for a year in the sheds of the London and South-Western Railway Company, and so was made into a practical engineer. Then we went round the world with his cousin, the late Lord Ancrum, and his friend, Lord Ennismore; and when his father was made a Peer, he followed him into Parliament, getting himself returned as the wholesome Tory Member for the New Forest Division of Hampshire: from all which it is clear that he is a versatile young fellow of considerable parts.
He is a good-looking all-round sportsman, a capital shot, a wonderful hand at wild fowling, and almost the only gentleman in England who can scull a gunning-punt. Popular with all classes, he recalls to those who knew it the hearty simplicity of his grandfather. He owns a ranch in America; he has twice been to South Africa (where he is supposed to have studied the railway question); he has acted as correspondent of The Times, and he has interviewed Oom Paul. Consequently he is on the Board of several South African Companies; and, having written a Prize Essay on finance at Oxford, he is as great an authority on money matters as he is on railway difficulties. Yet he yachts partially, cycles with ease, writes fluently for magazines, throws flies quite irresistibly, and talks well with nervous energy. He often steered the Sciola (built by Admiral Victor Montagu) to victory, and he is both a Justice of the Peace and a Captain of Volunteers.
He owns a beautiful collection of shooting coats; some of which are very well worn.
J.W.E. Douglas-Scott-Montagu (1866-1929) rowed for the Oxford Etonians in the 1887 Grand with Guy Nickalls and D.H. McLean. He is remembered as a pioneer of motoring, commemorated by his son in 1950 with the establishment of the National Motor Museum at Beaulieu, the family estate in the New Forest, Hampshire. Douglas-Scott-Montagu was responsible for the iconic Rolls Royce hood ornament, in that the design he commissioned in 1910 from Charles Sykes became the Spirit of Ecstasy that the company eventually adopted as a standard feature.
# The Rowers of Vanity Fair/De Rutzen A
## De Rutzen, Albert
### “A Model Magistrate” (WAG), August 16, 1900

He is the third son of the late Charles, Baron de Rutzen of Slebeck Park, in Pembrokeshire; he was born sixty-nine years ago; he began life at Eton, and continued it at Trinity, Cambridge; and he became a Barrister of the Inner Temple at the age of six-and-twenty. His conduct of his own (and of other people's) affairs at the Bar is forgotten; for he took upon him the duties of a Magistrate more than thirty years ago -- as Stipendiary at Merthyr Tydfil. There he became a Justice of the Peace and Deputy-Chairman of Quarter Sessions for Glamorganshire, and did so well that he was summoned to a London Police Court in 1876. He sat successfully and successively at Marylebone, Westminster, and Marlborough Street; and last year he was "moved on" to Bow Street, where he is now dispensing equal Justice among sinners. He is a big-hearted Magistrate, full of cruel and sordid experiences which have not hardened his soul. On the contrary, Mr. De Rutzen is a very honest, painstaking, kindly mentor to those whose distress brings them before him; and, despite the tedious monotony of his Office, he never fails in any one of his virtues.
He is a model Magistrate.
Albert de Rutzen (1831-1913) rowed no. 3 for Cambridge in the two Boat Races of 1849. He appeared in Vanity Fair on becoming Chief Magistrate in London, a post he held until retirement in 1913.
# Trainz/Kinds/kind industry

Back to the Top
* Trainz Annotated References
* TOC | Beginnings | Fun | AM&C | Creation | InBook Refs | ORP Refs:  • Index • Containers • Kinds • Tags | Appendixes  • Vers
Glossary :
HKeys-CM :
HKeys-DVR :
HKeys-SUR :
HKeys-WIN :
Mouse use :
Notations :

## Industry data types

KIND Industry provides the basis for interactive assets such as factories, grain silos and passenger stations, or any other activity that involves loading onto, or unloading from, a trains cargo carrying traincars. Industries use processes and queues to manage the loading and unloading activity, as do interactive freight vehicles and some locomotive types.

## KIND Hierarchy
### Parent Classes

* kind scenerywithtrack —Industries without track attached nor interactive behaviour are just buildings, a scenery categorized asset. When made into a dynamic programmable interactive industry, the parent type is SceneryWithTrack.

### Child Classes

* kind product — without this type, which includes passengers, there would be no reason for carrying anything, nor need of railways.

### Sister Class

* kind traincar — On a railroad simulation, industries need rolling stock to move product and feedstock into and out of the plant. Both rolling stock and industries are thereby tied by the daughter level data type kind product, for it is difficult to unclog the pipes emptying a tank car when it is filled with Coal chunks, and fuel oil and acids spill off the odd flat car.

## Supported Tags

kind industry supports all of the kind scenerywithtrack tags, and adds the following tags.

#### processes

    Type: Process element container
    Desc: Contains one or more process elements. Each process element provides information about the process, including duration, start status, and the input and output queues associated with that process.

## Example Config.txt

Below is a sample config.txt file for an industry asset, with the standard tags excluded for brevity. This particular example is for a simple coal mine which takes in diesel fuel and outputs coal.
# Trainz/Kinds/kind scenery-trackside

Back to the Top
* Trainz Annotated Reference Pages Trainz Asset Maintenance and Creation
* TOC | Beginnings | Fun | AM&C | Creation | InBook Refs | ORP Refs:  • Index • Containers • Kinds • Tags | Appendixes  • Vers
Glossary :
HKeys-CM :
HKeys-DVR :
HKeys-SUR :
HKeys-WIN :
Mouse use :
Notations :
KIND Scenery-trackside provides the basis for all track-attached scenery assets, such as trackside signs and devices.
This asset type inherits all map object characteristics except positioning, and adds trackside positioning and TrackSearch semantics.
The config.txt file for a KIND Scenery-trackside asset has the same kind scenery entry as kind scenery for historical reasons, however the two kinds are quite distinct and should not be confused. A KIND Scenery-trackside will contain a trackside tag, whereas KIND Scenery does not.

## KIND Hierarchy
### Parent Classes

* KIND Scenery

### Child Classes

* KIND MOSpeedboard
* KIND MOSignal

## Supported Tags

Each trackside asset supports the following tags. Each tag is shown here with its default value.

#### buffer-speed

    Type: Decimal
    Desc: Used for buffers, this sets the maximum speed, in meters per second, at which the buffer can stop a train. If the Train passes the track-side object travelling faster than the buffer speed it will derail. If it's traveling below, or equal, to the buffer speed the train will stop harmlessly.

#### follow-gradient

    Type: Boolean
    Desc: Specifies that the object should be vertically perpendicular to the track gradient when placed. If 0 (default) the asset will point straight up.

#### placeable-on-splines-of-group

    Introduced:trainz-build 3.5
    Type: KUID list container, TBD.
    Desc: A list of KIND Asset-group describing the spline types on which this trackside object may be placed. This object cannot be placed on a spline unless the spline is a member of one of the groups specified here. If not specified, the list defaults to a single entry, Asset-groups <kuid:30501:100043>.

#### search-limit

    Type: Boolean
    Desc: Search limit objects are used by the Driver AI and indicate the direction of travel for a section of track.

#### speedlimit

    Type: Decimal
    Desc: Sets the speed limit, in meters per second, for the track it is placed on, after the object. If this tag is provided with no value, the speed limit will be set to 100m/s.

#### trackmark

    Type: Boolean
    Desc: Specifies if the object is a trackmark. Trackmarks can be used to place consists in [[Scripting|TrainzScript}}.

#### trackside

    Type: Float
    Compulsory: 3.4
    Desc: The distance, in meters, the object will be placed from the center of the track. Negative values will put the object on the left side of the track, and positive values will place it on the right.

## Example Config.txt

Sample config.txt file for a trackside asset, with the Standard Tags excluded for brevity:

## Downloads

Attach sample files here?
# Windows Registry Hacks

The Windows Registry is a database used by Microsoft Windows 95 and subsequent versions of Microsoft Windows that is used to store user preferences, setup, device, system configuration, etc. It is one of the least focused subjects in Windows operating system family. This book focusses on the various 'tweaks' that can be implemented using the Windows registry. For subjects like history of registry, structure of registry etc, please check Windows Registry.

## Table of Contents

* Windows XP tweaks
** Visual enhancement tweaks
** Common irritants
** Other miscellaneous tweaks
* Internet software tweaks
** Internet Explorer
** Outlook express
* Hardware Tweaks
* Network Related tweaks
* Security Related tweaks
* Software Removal
* HKEY_CLASSES_ROOT
* HKEY_CURRENT_CONFIG
* HKEY_CURRENT_USER
* HKEY_LOCAL_MACHINE
* HKEY_USERS
* Alphanumerical List of Microsoft Windows Registry Class Identifiers
* Alphanumerical List of Microsoft Windows Registry Type Library Entries
* Alphanumerical List of Microsoft Windows Registry Installer Component Entries
# Windows Registry Hacks/Alphanumerical List of Microsoft Windows Registry Type Library Entries

The *Microsoft Windows Registry* contains a set of Globally Unique Identifier keys that are used as type library entries within the Microsoft Windows registry. These entries are stored in a subclass of the HKEY_CLASSES_ROOT\Typelib registry subset:
# Windows Registry Hacks/HKEY LOCAL MACHINE
## Autologon

In the case of a Windows family with one (admin) user and no password, his desktop may open automatically after the boot: that's the autologin system.
To set it on the other configurations (eg: Windows professional), just execute a .reg file with the following keys:
Beware: the password will become readable (in Regedit) by anyone who touches the machine.

## Changing program installation directories

With Cygwin you can list the registry entries concerning installation directories with one of these commands:
    regtool list -v /HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Microsoft/Windows/CurrentVersion | grep Program
or
    regtool list -v /HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion | grep Program
The output should be something like:

## Changing the user home directory

The registry key that has to be changed is
    HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CurrentVersion\ProfileList\ProfilesDirectory
The default value is %SystemDrive%\Users and can be changed to a specific path (without %SystemDrive%), like for instance U:\usr\unix\cygwin\home.
To move the remaining content of C:\users you have to open "Start -> Control Panel -> Folder Options" and select the "Show Hidden files, folders, and drives" option in the "View" tab. This will make a "default" subdirectory visible in the C:\users directory. Now most of the content of C:\users can be copied to the new destination (but not all the files of the active user).
For the "default" and "public" subdirectories the following keys need to be set to point to the new location:
    HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CurrentVersion\ProfileList\Default
    HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CurrentVersion\ProfileList\Public
On Windows 7 (and probably other versions) the procedure does only affect accounts created after changing the ProfilesDirectory setting. For all other accounts the location of the Desktop, Documents and other standardized directories have to be changed manually, which is, of course, also possible without changing the registry. These locations are: Contacts, Desktop, Documents, Downloads, Favorites, Links, Music, Pictures, Saved Games, Searches, Videos and Virtual Machines.
For accounts created earlier one should also use %windir%\system32\compmgmt.msc (Computer Management) to change the location of the home folder local path under the "Profile" tab. This will, however, not automatically change the location of Desktop, Documents and other standardized directories.
# Windows Registry Hacks/HKEY USERS

HKEY USERS/Default/Control panel/Desktop/ select wallpaper and in path enter your own wall paper path