OpenLLM-France/wikimedia huggingface dataset:
# A Guide To PIC Microcontroller Documentation/Notes for contributors
## Note for contributors

Firstly, thank you for stopping by here - you are probably about to make a small or perhaps even large contribution to this book. Please don't forget to add yourself as an author or contributor once you are done.
In order to keep the content of this book consistent, please consider the following when making changes or adding content:
* Language - this book is written in the Queen's English
* Style - this book has a medium-serious tone. We are trying to impart information as efficiently and professionally as possible without being as dry as a Martini and sending readers to sleep. On the other hand, please also avoid being jocular or using colloquialisms. Be aware that readers may not be native English language speakers.
* Grammar - if in doubt, please review the rules of grammar here "www.gpuss.co.uk". For a and an before abbreviations the "abbreviation verbalised" rule is used.
* Level - please review the expected level of readers when adding content. Detailed explanations of terms should be moved into the glossary, or alternatively make a reference to Wikipedia or similar information sources.

## New to WikiBooks and don't know what to do or how to help?

We were all new to something once; riding a bike, driving a car, writing, reading. What is important is the will and desire to change and improve this text rather than the actual changes themselves. If you see something that you think is wrong, needs improvement or is missing, but are not sure how to change it or don't want to change it yourself, please leave a note on our discussion page - just click on the "Discussion" tab at the top of the page, click an "edit" link and enter your thoughts. You don't even have to give your name if you prefer not to. Others will take a look at your comments and do their best to absorb them into the appropriate point in the text.
Good luck!
# A Guide To PIC Microcontroller Documentation/Section 2 - Processor-family based guide to documentation
## Detailed analysis of controller family documentation

In this section we will be taking an in depth look at the main documentation for one controller out of each PIC microcontroller family. In each case the key documents will be listed and then the datasheet will be analysed chapter by chapter to highlight the information that is provided, and how related information can be found in the cases where the documentation is rather sparse.
In each case we will select a device that is the largest in its class in terms of performance, memory and number of peripherals. All other devices in that family will contain a sub-section of the information contained in the analysed device. There is a lot of similarity between families, and therefore there will be lots of repetition between chapters here, but since each engineer only focusses on one family or device at one time this method of documenting the datasheets here should prove to be most beneficial to the reader.

## Further reading

* http://microchip.wikidot.com/
* The PIClist is a mailing list of people discussing Microchip PICmicros and related devices and the things people do with them. There's a huge amount of useful code in the archives and wiki-like library.
* The Electronics Engineering stackexchange often discusses PICmicros.
# Ada Programming/Libraries/Ada.Real Time

This language feature is available from Ada 95 on.
Ada.Real_Time is a unit of the Predefined Language Environment since Ada 95.

## See also
### Wikibook

* Ada Programming/Libraries/Ada

### External examples

* Search for examples of Ada.Real_Time in: Rosetta Code, GitHub (gists), any Alire crate or this Wikibook.
* Search for posts related to Ada.Real_Time in: Stack Overflow, comp.lang.ada or any Ada related page.

### Ada Reference Manual
#### Ada 95

* D.8: Monotonic Time

#### Ada 2005

* D.8: Monotonic Time

#### Ada 2012

* D.8: Monotonic Time

### Open-Source Implementations

FSF GNAT
* Specification: a-reatim.ads
* Body: a-reatim.adb
drake
* Specification: calendar/a-reatim.ads
* Body: calendar/a-reatim.adb
# Ada Programming/Libraries/Ada.Real Time.Timing Events

This language feature is only available from Ada 2005 on.
Ada.Real_Time.Timing_Events is a unit of the Predefined Language Environment since Ada 2005.

## See also
### Wikibook

* Ada Programming/Libraries/Ada

### External examples

* Search for examples of Ada.Real_Time.Timing_Events in: Rosetta Code, GitHub (gists), any Alire crate or this Wikibook.
* Search for posts related to Ada.Real_Time.Timing_Events in: Stack Overflow, comp.lang.ada or any Ada related page.

### Ada Reference Manual
#### Ada 2005

* D.15: Timing Events

#### Ada 2012

* D.15: Timing Events

### Open-Source Implementations

FSF GNAT
* Specification: a-rttiev.ads
* Body: a-rttiev.adb
drake
* Specification: tasking/a-rttiev.ads
# Ada Programming/Libraries/Ada.Storage IO

This language feature is available from Ada 95 on.
Ada.Storage_IO is a unit of the Predefined Language Environment since Ada 95.

## Description

Ada.Storage_IO is not a general-purpose Input/Output package. According to A.9: The Generic Package Storage_IO(1), it is designed for the construction of user-defined input-output packages, but may also be used to transfer elements from one task to another. Note: None of the language defined IO packages is task-safe.
It allows you to store one element inside a memory buffer. The element needs to be of a definite subtype.
Be careful: The exception Data_Error need not be called when the value read cannot be interpreted as a value of the subtype Element_Type (you have to follow several references given in the RM to A.13: Exceptions in Input-Output), which may lead to erroneous execution; this may especially occur if a value has never been written. Use the 'Valid attribute when not sure.

## See also
### Wikibook

* Ada Programming
* Ada Programming/Input Output
* Ada Programming/Libraries
* Ada Programming/Libraries/Ada

### External examples

* Search for examples of Ada.Storage_IO in: Rosetta Code, GitHub (gists), any Alire crate or this Wikibook.
* Search for posts related to Ada.Storage_IO in: Stack Overflow, comp.lang.ada or any Ada related page.

### Ada Reference Manual
#### Ada 95

* A.9: The Generic Package Storage_IO

#### Ada 2005

* A.9: The Generic Package Storage_IO

#### Ada 2012

* A.9: The Generic Package Storage_IO

### Open-Source Implementations

FSF GNAT
* Specification: a-storio.ads
* Body: a-storio.adb
drake
* Specification: streams/a-storio.ads
* Body: streams/a-storio.adb
# Ada Programming/Libraries/Ada.Sequential IO

This language feature is available from Ada 95 on.
Ada.Sequential_IO is a unit of the Predefined Language Environment since Ada 95.

## Background

Not all data read or written is in text format. For storage or inter-process communication, it is more space- and processing time-efficient to store data in binary format.
Binary input and output for sequential data (that is, read/written one after another) is managed by the generic Ada package Ada.Sequential_IO.
The generic package must be instantiated with some Element_Type, and provides a limited private File_Type.
The file mode, In_File or Out_File, is established on open or create.
The package provides the basic input/output (I/O) operations:
* Open, Create
* Close, Delete, and Reset
* Read, Write
In addition, the package provides status and information functions:
* Is_Open
* End_Of_File
* Name, Mode, and Form
One important restriction is that every element of a file must be the same element type.

### Ada Code Example

For example, suppose that a student has collected information on trees in a 10 meter by 10 meter plot, and wishes a report generated from the data. The following is a simple program to read the sequential data, previously recorded:

## See also
### Wikibook

* Ada Programming/Libraries/Ada

### External examples

* Search for examples of Ada.Sequential_IO in: Rosetta Code, GitHub (gists), any Alire crate or this Wikibook.
* Search for posts related to Ada.Sequential_IO in: Stack Overflow, comp.lang.ada or any Ada related page.

### Ada Reference Manual
#### Ada 95

* A.8.1: The Generic Package Sequential_IO

#### Ada 2005

* A.8.1: The Generic Package Sequential_IO

#### Ada 2012

* A.8.1: The Generic Package Sequential_IO

### Open-Source Implementations

FSF GNAT
* Specification: a-sequio.ads
* Body: a-sequio.adb
drake
* Specification: streams/a-sequio.ads
* Body: streams/a-sequio.adb
# Ada Programming/Libraries/Ada.Numerics.Real Arrays

This language feature is only available from Ada 2005 on.
Ada.Numerics.Real_Arrays is a unit of the Predefined Language Environment since Ada 2005.

## See also
### Wikibook

* Ada Programming/Libraries/Ada

### External examples

* Search for examples of Ada.Numerics.Real_Arrays in: Rosetta Code, GitHub (gists), any Alire crate or this Wikibook.
* Search for posts related to Ada.Numerics.Real_Arrays in: Stack Overflow, comp.lang.ada or any Ada related page.

### Ada Reference Manual
#### Ada 2005

* G.3.1: Real Vectors and Matrices

#### Ada 2012

* G.3.1: Real Vectors and Matrices

### Open-Source Implementations

FSF GNAT
* Specification: a-nurear.ads
drake
* Specification: numerics/a-nurear.ads
# Ada Programming/Libraries/Ada.Strings

This language feature is available from Ada 95 on.
Ada.Strings is a unit of the Predefined Language Environment since Ada 95.
This package is the base package for all string packages. It defines common exceptions and constants.
These child packages are:
* Ada.Strings.Bounded
* Ada.Strings.Bounded.Hash (Ada 2005 generic function)
* Ada.Strings.Fixed
* Ada.Strings.Fixed.Hash (Ada 2005 generic function)
* Ada.Strings.Hash (Ada 2005 generic function)
* Ada.Strings.Maps
* Ada.Strings.Maps.Constants
* Ada.Strings.Unbounded
* Ada.Strings.Unbounded.Hash (Ada 2005 generic function)
* Ada.Strings.Wide_Bounded
* Ada.Strings.Wide_Bounded.Wide_Hash (Ada 2005 generic function)
* Ada.Strings.Wide_Fixed
* Ada.Strings.Wide_Fixed.Wide_Hash (Ada 2005 generic function)
* Ada.Strings.Wide_Hash (Ada 2005 generic function)
* Ada.Strings.Wide_Maps
* Ada.Strings.Wide_Maps.Wide_Constants
* Ada.Strings.Wide_Unbounded
* Ada.Strings.Wide_Unbounded.Wide_Hash (Ada 2005 generic function)
* Ada.Strings.Wide_Wide_Bounded (Ada 2005)
* Ada.Strings.Wide_Wide_Bounded.Wide_Wide_Hash (Ada 2005 generic function)
* Ada.Strings.Wide_Wide_Fixed (Ada 2005)
* Ada.Strings.Wide_Wide_Fixed.Wide_Wide_Hash (Ada 2005 generic function)
* Ada.Strings.Wide_Wide_Hash (Ada 2005 generic function)
* Ada.Strings.Wide_Wide_Maps (Ada 2005)
* Ada.Strings.Wide_Wide_Maps.Wide_Wide_Constants (Ada 2005)
* Ada.Strings.Wide_Wide_Unbounded (Ada 2005)
* Ada.Strings.Wide_Wide_Unbounded.Wide_Wide_Hash (Ada 2005 generic function)

## See also
### Wikibook

* Ada Programming/Libraries/Ada
* Ada Programming/Strings

### External examples

* Search for examples of Ada.Strings in: Rosetta Code, GitHub (gists), any Alire crate or this Wikibook.
* Search for posts related to Ada.Strings in: Stack Overflow, comp.lang.ada or any Ada related page.

### Ada Reference Manual
#### Ada 95

* A.4.1: The Package Strings

#### Ada 2005

* A.4.1: The Package Strings

#### Ada 2012

* A.4.1: The Package Strings

### Open-Source Implementations

FSF GNAT
* Specification: a-string.ads
drake
* Specification: strings/a-string.ads
# Ada Programming/Libraries/Ada.Strings.Bounded

This language feature is available from Ada 95 on.
Ada.Strings.Bounded is a unit of the Predefined Language Environment since Ada 95.

## See also
### Wikibook

* Ada Programming/Libraries/Ada
* Ada Programming/Strings

### External examples

* Search for examples of Ada.Strings.Bounded in: Rosetta Code, GitHub (gists), any Alire crate or this Wikibook.
* Search for posts related to Ada.Strings.Bounded in: Stack Overflow, comp.lang.ada or any Ada related page.

### Ada Reference Manual
#### Ada 95

* A.4.4: Bounded-Length String Handling

#### Ada 2005

* A.4.4: Bounded-Length String Handling

#### Ada 2012

* A.4.4: Bounded-Length String Handling

### Open-Source Implementations

FSF GNAT
* Specification: a-strbou.ads
* Body: a-strbou.adb
drake
* Specification: strings/a-strbou.ads
# ActionScript Programming

ActionScript is a scripting language developed by Adobe (formerly Macromedia) for its Flash animation studio. ActionScript is similar to JavaScript with its syntax and functionality. The latest version, ActionScript 3.0, released together with Flash CS3, emphasizes Object oriented programming more so than previous versions. ActionScript is a proprietary language designed to control animations and create advanced interactive applications such as slide-shows, games, quizzes, tutorials, and websites. ActionScript 3.0 has grown substantial capabilities in comparison with previous versions. ActionScript may be difficult to learn for beginners with no programming experiencing, however, it becomes easier to grasp with repeated practice and use.
This tutorial is designed for use with Actionscript 2.0. Changes for ActionScript 3.0 will be listed as well.

## Table of Contents
### Part I

* PartI/Getting Started
* AS In A Nutshell

#### Chapter 1 - Properties

* Page 1:
** X, Y Coordinates
** Width, Height Measures
** XScale, YScale
** Visible
** Rotation
** Quality
** Name
** Alpha
* Page 2:
** XMouse, YMouse
** CurrentFrame
** TotalFrames
** URL
** Target
** DropTarget
** FocusRect
** FramesLoaded
** SoundBufTime

#### Chapter 2

* Operators (1)
* Comments

#### Chapter 3 – Data types

* General and difference between Number and String data types
* String
** Methods
*** charAt
*** charCodeAt
*** concat
*** fromCharCode
*** indexOf
*** lastIndexOf
*** slice
*** split
*** substr
*** substring
*** toLowerCase
*** toUpperCase
** Properties
*** length
* Number
** Methods
*** toStringtoString
*** valueOf
* Boolean
** Methods
*** toString
*** valueOf
* Date
** Methods
* Arrays
** Properties
*** Length
** Methods
*** concat
*** join
*** pop
*** push
*** reverse
*** shift
*** slice
*** sort
*** sortOn
*** splice
*** toString
*** unshift
* String.split (method)
* Objects
* Scopes of variables
* Global variables
* Timeline variables
* Local variables

### Part II
#### Chapter 4

* Conditions/Loops (part 1)
** If, else if, else
* Operators (part 2)
* Conditions/Loops (part 2)
** For
** For .. In

## Authors and contributors

Ruben Vardanyan

## Contributors

Wolf Warrior

## See also

* A Wikiversity course on ActionScript
* Actionscript.org
* Flash MX 2004 Live Documents
* ActionScript Tutorials
* Flash 8 Live Documents
* osflash - Open source Flash community and projects.
* Ultrashock Forums and Tutorials
* Flash Forum
* Cute Flash Games
* AS Main: List of helpful ActionScript tutorials
# Acoustics/formulas/Ultrasonic Intensity

This formula is a template, for inclusion into pages about Acoustics. Use the following syntax to include it:
$I_{\mathrm {w} max}={\frac {1}{2}}(\omega _{5}u_{l})_{max}^{2}\ \rho _{m\mathrm {w} }\nu _{\mathrm {w} }(W/m^{2})$
# ActionScript Programming/AS In A Nutshell
## AS in a Nutshell
### Setting up an ActionScript application

To get started coding in ActionScript 2.0 (or AS 2.0 for short which is how I will be referring to it from now on), start up the Flash MX 2004 or later program. Then create a New Flash Document. When your new Document comes up, go to where the Timeline is and click the first frame of Layer 1. Now open up the Actions panel by either clicking on the Actions pane on the bottom of the screen or going to the File menu and clicking Window>Development Panels>Actions. Anything you type in here will be run first when you run or test the Flash movie. Now let’s create a simple program.
Put this code into the Actions panel:
# ActionScript Programming/PartI/Chapter 2
## Operators (1)

In this chapter you will learn all of the operators which are used in ActionScript.
Usual operators
| Operator | Description |
| " " | Text. Example: "hello", "hi", "button" |
| | performs a grouping operation on one or more parameters, or surrounds one or more parameters and passes them as parameters to a function outside the parentheses. Example: trace ("hello!!!"); |
Arithmetic operators
| Operator | Description |
| - | used for negating or subtracting. Example: a = 5 – 2; b = a -1; |
| % | calculates the remainder of expression1 divided by expression2. Example trace (12% 5); returns 2 |
| * | multiplies two numerical expressions. Example: a = 5 * 5; b = a * 2; |
| / | divides expression1 by expression2. Example: a = 20 / 4; b = a / 5; |
| + | adds numeric expressions or concatenates (combines) strings. Example: a = 5 + 5; b = "hel" + "lo"; |
Assignment operators
| Operator | Description |
| -= | assigns expression1 the value of expression1 -expression2. a = 5; b = 2; a -= b instead of a = a - b; |
| %= | assigns expression1 the value of expression1% expression2. a = 12; b = 5; a%=b instead of a=a % b; |
| *= | assigns expression1 the value of expression1 *expression2. a = 2; b = 4; a *= b instead of a = a * b; |
| /= | assigns expression1 the value of expression1/expression2. a = 4; b = 2; a /= b instead of a = a / b; |
| += | assigns expression1 the value of expression1 + expression2. a = 3; b = 2; a += b instead of a=a + b; |
| = | assigns the type of expression2 to expression1. b = "hello"; z = b; c = z + "!!!"; |
Other operators are discussed later after chapter Data types.

### Comments

Comments are useful for keeping track of what you intended, and for passing information to other developers if you work in a collaborative environment or are providing samples. There are two types of using comments. The first one is a one line comment and the other one: multi-line comment. For implementing one line comment just put "//" followed by your comment at the end of the line, if the line is not empty, and at the beginning of the line if it is empty. Examples:
This example demonstrates the use of comment at the end of the line
This example demonstrates the use of comment in an empty line
This example demonstrates the use of comment in an empty line in work
Note that you cannot use any type of comment inside the script! For implementing a multi-line comment you must just put your comment between symbols "/*" and "*/" (Note that all rules applied for one line comment are also applied for multi-line comment). Examples:
You cannot use comments like this:
This is a syntax error.
<< Previous   Next >>
# Autodesk Vault Programmer's Cookbook/Login/Log in to Vault
## Problem

Establish Autodesk Vault connection.

## Solution

Create WebServiceManager from Autodesk.Connectivity.WebServices.dll with credentials parameters.

## Discussion

WebServiceManager is your gates to the garden of Vaulty API. And IWebServiceCredentials is a key to this gates. You can create this key in at least 16 different ways (A-P) of getting IWebServiceCredentials.
After connection you can get next information about connection:
| Method | Description |
| ReadOnly | Gets if the connection is read only. |
| RequiresSignIn | Gets the value telling if a sign in is required before a service can be used. |
| RequiresSignOut | Gets the value telling if a sign out should be called when the service goes out of scope. |
| SecurityHeader | Gets the security header. |
| ServerIdentities | Gets the server identity. |
| SupportsSignIn | Gets the value telling if the credentials can sign in. |
| SupportsSignOut | Gets the value telling if the credentials can sign out. |
| UserName | Gets the username. |
| VaultName | Gets the vault name. |
Connecting is quite simple operation, but its fundamental for any program that needs connect to Vault server. Here's algorithm, that describes logging with UserPasswordCredentials: And here's "cmd edition", that handles errors and gives more verbose:
And the best way to login - is certainly by using dialogs fromVDF.
As a result, you'll get a login dialog with the information you entered last time.
# Automobile Repair/Checking the oil level

Cars, light vans and trucks have similar engines so the oil level verification procedures are very similar.
The correct oil level is important for the engine life time. Not enough oil will cause damage to the engine from overheating and excessive wear resulting in possible destruction of the engine. Too much oil can seriously damage the engine because oil is incompressible and a large volume of it can stop the motor components from rotating correctly.

## Check oil level

The oil dipstick is the main indicator of oil level. To check the level:
* Hot or cold? Consult the vehicles manual wether to check the oil level with a warm or cold motor
* Turn off engine. Ensure that the motor is turned off
* Vehicle leveled. Ensure that the vehicle is roughly leveled (e.g. not standing at a decline)
* Wait a while. If the engine was running before or you just filled up oil, wait half a minute for the oil to "gravitate"
* Pull dip stick. Locate the dip stick and pull the stick out of the housing. This stick will be quite long because it needs to reach down to the bottom of the engine.
* Clean dip stick. Usually the end of the dip stick will be covered in oil. You need to clean it with a clean rag or kitchen paper. Do not use a dirty rag because this may allow dirt to enter the engine and damage the motor.
* Reinsert dip stick. Reinsert and remove the dip stick to get a proper reading
* Check marks. The dipstick will have marks that indicate the lower, upper and possibly the ideal oil levels.
Remark on "warm or cold motor": Most engines have a "wet sump", where there is no real difference between warm or cold motor (the oil extend due to temp is negligable). Some engine have a "dry sump" where the check of a cold motor is misleading. Therefore: Check your vehicles manual.

## Fill-Up

An engine will have an oil filler cap, usually on the very top of the engine and easily accessible from the hood or bonnet of the vehicle.
If you need to add engine oil:
* Remove filler cap. Locate the oil filler cap and remove it
* Add oil. Add enough oil to the motor to ensure that the level is between the two level indicator marks. Add the oil about half a pint or quarter of a liter at a time and check the level by using the dip-stick.
* Avoid adding too much! More oil is easily added, removing oil is pretty hard!
* Reattach filler cap

## How often?

Oil consumption usually increases over the vehicles age and mileage. Modern cars may not need an oil fill-up between oil changes at all, older cars may consume half a liter for 1000 km and still running perfect. Manufacturers often state that up to 1l per 1000 km is within normal operation (but that's already quite a lot).
With an unknown car, I would start with an oil check every fuel refill and extend this period according to the actual oil consumption - you'll quickly get a feeling for it :-)
# Automobile Repair/Battery Checking

One of the most important things in driving is to start the car which is mostly performed by battery to kick jump to start the engines.
Therefore , it is important to check how the battery level is (Preferably by weekly / 2 weeks basis)
To check battery , you need to have a battery tester checkers
* Actions
* Jump start the engine using donor battery car if unable to start.
* Once started, please directly go to the nearest workshop to replace the battery.
* Applicable to Wet Type battery:
* Go to the nearest workshop as soon as possible to deep charging the car battery
* If ignore Charge - Retest result for few days/weeks, it may lead to the engine unable to start at all.
* Need to call for tow car to tow to nearest workshop and replace with new battery